From 26d8c769964e16b3875acc192a55d94a24f40d74 Mon Sep 17 00:00:00 2001 From: Richard Barry Date: Wed, 2 May 2018 04:04:54 +0000 Subject: [PATCH] Update Zynq, MPSoc Cortex-A53 and MPSoc Cortex-R5 demo projects to build with the 18.1 version of the Xilinx SDK - building BUT NOT YET TESTED. --- .../RTOSDemo_A53/src/FreeRTOSConfig.h | 1 + .../RTOSDemo_A53/src/FreeRTOS_asm_vectors.S | 72 +- .../RTOSDemo_A53/src/lscript.ld | 1 + .../RTOSDemo_A53_bsp/.cproject | 4 +- .../RTOSDemo_A53_bsp/.project | 2 +- .../RTOSDemo_A53_bsp/Makefile | 8 +- .../psu_cortexa53_0/include/xparameters.h | 779 +- .../libsrc/avbuf_v2_1/src/Makefile | 40 + .../libsrc/avbuf_v2_1/src/xavbuf.c | 1092 + .../libsrc/avbuf_v2_1/src/xavbuf.h | 302 + .../libsrc/avbuf_v2_1/src/xavbuf_clk.c | 561 + .../libsrc/avbuf_v2_1/src/xavbuf_clk.h | 97 + .../xemacps_g.c => avbuf_v2_1/src/xavbuf_g.c} | 10 +- .../libsrc/avbuf_v2_1/src/xavbuf_hw.h | 1675 + .../avbuf_v2_1/src/xavbuf_videoformats.c | 227 + .../libsrc/axipmon_v6_5/src/Makefile | 27 - .../libsrc/axipmon_v6_6/src/Makefile | 40 + .../libsrc/axipmon_v6_6}/src/xaxipmon.c | 2 +- .../src/xaxipmon.h | 10 +- .../libsrc/axipmon_v6_6}/src/xaxipmon_g.c | 4 +- .../src/xaxipmon_hw.h | 2 +- .../src/xaxipmon_selftest.c | 2 +- .../src/xaxipmon_sinit.c | 2 +- .../libsrc/canps_v3_2/src/xcanps.c | 2 +- .../libsrc/canps_v3_2/src/xcanps.h | 4 +- .../libsrc/canps_v3_2/src/xcanps_g.c | 4 +- .../libsrc/canps_v3_2/src/xcanps_hw.c | 2 +- .../libsrc/canps_v3_2/src/xcanps_hw.h | 2 +- .../libsrc/canps_v3_2/src/xcanps_intr.c | 2 +- .../libsrc/canps_v3_2/src/xcanps_selftest.c | 2 +- .../libsrc/canps_v3_2/src/xcanps_sinit.c | 2 +- .../src/Makefile | 0 .../src/xcoresightpsdcc.c | 6 +- .../src/xcoresightpsdcc.h | 2 +- .../src/Makefile | 5 +- .../src/xcpu_cortexa53.h | 7 +- .../{csudma_v1_1 => csudma_v1_2}/src/Makefile | 0 .../libsrc/csudma_v1_2}/src/xcsudma.c | 78 +- .../src/xcsudma.h | 13 +- .../libsrc/csudma_v1_2}/src/xcsudma_g.c | 4 +- .../libsrc/csudma_v1_2}/src/xcsudma_hw.h | 2 +- .../libsrc/csudma_v1_2}/src/xcsudma_intr.c | 2 +- .../csudma_v1_2}/src/xcsudma_selftest.c | 2 +- .../src/xcsudma_sinit.c | 2 +- .../libsrc/ddrcpsu_v1_1/src/xddrcpsu.h | 7 +- .../libsrc/dpdma_v1_0/src/Makefile | 40 + .../libsrc/dpdma_v1_0/src/xdpdma.c | 966 + .../libsrc/dpdma_v1_0/src/xdpdma.h | 283 + .../libsrc/dpdma_v1_0/src/xdpdma_g.c | 55 + .../libsrc/dpdma_v1_0/src/xdpdma_hw.h | 1811 + .../libsrc/dpdma_v1_0/src/xdpdma_intr.c | 166 + .../libsrc/dpdma_v1_0/src/xdpdma_sinit.c | 96 + .../{emacps_v3_3 => emacps_v3_7}/src/Makefile | 0 .../libsrc/emacps_v3_7}/src/xemacps.c | 5 +- .../src/xemacps.h | 19 +- .../libsrc/emacps_v3_7}/src/xemacps_bd.h | 2 +- .../src/xemacps_bdring.c | 31 +- .../libsrc/emacps_v3_7}/src/xemacps_bdring.h | 7 +- .../libsrc/emacps_v3_7}/src/xemacps_control.c | 2 +- .../libsrc/emacps_v3_7}/src/xemacps_g.c | 7 +- .../src/xemacps_hw.c | 2 +- .../libsrc/emacps_v3_7}/src/xemacps_hw.h | 2 +- .../libsrc/emacps_v3_7}/src/xemacps_intr.c | 2 +- .../libsrc/emacps_v3_7}/src/xemacps_sinit.c | 2 +- .../{gpiops_v3_1 => gpiops_v3_3}/src/Makefile | 0 .../libsrc/gpiops_v3_3}/src/xgpiops.c | 2 +- .../libsrc/gpiops_v3_3}/src/xgpiops.h | 13 +- .../src/xgpiops_g.c | 4 +- .../libsrc/gpiops_v3_3}/src/xgpiops_hw.c | 2 +- .../libsrc/gpiops_v3_3}/src/xgpiops_hw.h | 2 +- .../src/xgpiops_intr.c | 4 +- .../gpiops_v3_3}/src/xgpiops_selftest.c | 2 +- .../libsrc/gpiops_v3_3}/src/xgpiops_sinit.c | 2 +- .../{iicps_v3_4 => iicps_v3_6}/src/Makefile | 0 .../{iicps_v3_4 => iicps_v3_6}/src/xiicps.c | 2 +- .../libsrc/iicps_v3_6}/src/xiicps.h | 4 +- .../{iicps_v3_4 => iicps_v3_6}/src/xiicps_g.c | 4 +- .../src/xiicps_hw.c | 2 +- .../src/xiicps_hw.h | 2 +- .../src/xiicps_intr.c | 2 +- .../src/xiicps_master.c | 14 +- .../src/xiicps_options.c | 2 +- .../libsrc/iicps_v3_6}/src/xiicps_selftest.c | 2 +- .../src/xiicps_sinit.c | 2 +- .../libsrc/iicps_v3_6}/src/xiicps_slave.c | 2 +- .../{ipipsu_v2_1 => ipipsu_v2_3}/src/Makefile | 0 .../src/xipipsu.c | 41 +- .../src/xipipsu.h | 21 +- .../src/xipipsu_g.c | 20 +- .../src/xipipsu_hw.h | 6 +- .../libsrc/ipipsu_v2_3}/src/xipipsu_sinit.c | 2 +- .../src/Makefile | 0 .../libsrc/qspipsu_v1_7}/src/xqspipsu.c | 62 +- .../libsrc/qspipsu_v1_7}/src/xqspipsu.h | 39 +- .../src/xqspipsu_g.c | 7 +- .../libsrc/qspipsu_v1_7}/src/xqspipsu_hw.h | 5 +- .../qspipsu_v1_7}/src/xqspipsu_options.c | 51 +- .../src/xqspipsu_sinit.c | 2 +- .../libsrc/resetps_v1_0/src/Makefile | 40 + .../libsrc/resetps_v1_0/src/xresetps.c | 1030 + .../libsrc/resetps_v1_0/src/xresetps.h | 382 + .../libsrc/resetps_v1_0/src/xresetps_g.c | 53 + .../libsrc/resetps_v1_0/src/xresetps_hw.h | 327 + .../libsrc/resetps_v1_0/src/xresetps_sinit.c | 94 + .../{rtcpsu_v1_3 => rtcpsu_v1_5}/src/Makefile | 0 .../libsrc/rtcpsu_v1_5}/src/xrtcpsu.c | 38 +- .../libsrc/rtcpsu_v1_5}/src/xrtcpsu.h | 20 +- .../src/xrtcpsu_g.c | 4 +- .../src/xrtcpsu_hw.h | 6 +- .../src/xrtcpsu_intr.c | 6 +- .../rtcpsu_v1_5}/src/xrtcpsu_selftest.c | 6 +- .../src/xrtcpsu_sinit.c | 6 +- .../{scugic_v3_5 => scugic_v3_9}/src/Makefile | 0 .../libsrc/scugic_v3_9}/src/xscugic.c | 202 +- .../libsrc/scugic_v3_9}/src/xscugic.h | 31 +- .../src/xscugic_g.c | 7 +- .../libsrc/scugic_v3_9}/src/xscugic_hw.c | 83 +- .../libsrc/scugic_v3_9}/src/xscugic_hw.h | 10 +- .../libsrc/scugic_v3_9}/src/xscugic_intr.c | 2 +- .../scugic_v3_9}/src/xscugic_selftest.c | 2 +- .../libsrc/scugic_v3_9}/src/xscugic_sinit.c | 2 +- .../{sdps_v3_1 => sdps_v3_4}/src/Makefile | 0 .../{sdps_v3_1 => sdps_v3_4}/src/xsdps.c | 356 +- .../libsrc/sdps_v3_4}/src/xsdps.h | 27 +- .../{sdps_v3_1 => sdps_v3_4}/src/xsdps_g.c | 7 +- .../libsrc/sdps_v3_4}/src/xsdps_hw.h | 88 +- .../libsrc/sdps_v3_4}/src/xsdps_options.c | 371 +- .../libsrc/sdps_v3_4}/src/xsdps_sinit.c | 2 +- .../libsrc/standalone_v6_1/src/asm_vectors.S | 208 - .../libsrc/standalone_v6_1/src/sleep.h | 50 - .../libsrc/standalone_v6_1/src/xstatus.h | 432 - .../src/Makefile | 15 +- .../src/_exit.c | 0 .../libsrc/standalone_v6_6}/src/_open.c | 2 +- .../src/_sbrk.c | 9 +- .../src/abort.c | 0 .../libsrc/standalone_v6_6/src/asm_vectors.S | 374 + .../src/boot.S | 191 +- .../src/bspconfig.h | 10 +- .../libsrc/standalone_v6_6}/src/changelog.txt | 137 + .../src/close.c | 0 .../src/config.make | 0 .../src/errno.c | 0 .../src/fcntl.c | 0 .../src/fstat.c | 0 .../src/getpid.c | 0 .../src/inbyte.c | 0 .../src/includes_ps/xddr_xmpu0_cfg.h | 0 .../src/includes_ps/xddr_xmpu1_cfg.h | 0 .../src/includes_ps/xddr_xmpu2_cfg.h | 0 .../src/includes_ps/xddr_xmpu3_cfg.h | 0 .../src/includes_ps/xddr_xmpu4_cfg.h | 0 .../src/includes_ps/xddr_xmpu5_cfg.h | 0 .../src/includes_ps/xfpd_slcr.h | 0 .../src/includes_ps/xfpd_slcr_secure.h | 0 .../src/includes_ps/xfpd_xmpu_cfg.h | 0 .../src/includes_ps/xfpd_xmpu_sink.h | 0 .../src/includes_ps/xiou_secure_slcr.h | 0 .../src/includes_ps/xiou_slcr.h | 0 .../src/includes_ps/xlpd_slcr.h | 0 .../src/includes_ps/xlpd_slcr_secure.h | 0 .../src/includes_ps/xlpd_xppu.h | 0 .../src/includes_ps/xlpd_xppu_sink.h | 0 .../src/includes_ps/xocm_xmpu_cfg.h | 0 .../src/initialise_monitor_handles.c | 0 .../src/isatty.c | 0 .../src/kill.c | 0 .../src/lseek.c | 0 .../libsrc/standalone_v6_6}/src/open.c | 2 +- .../src/outbyte.c | 0 .../src/print.c | 4 + .../src/putnum.c | 0 .../src/read.c | 0 .../libsrc/standalone_v6_6}/src/sbrk.c | 6 +- .../src/sleep.c | 31 +- .../libsrc/standalone_v6_6/src/sleep.h | 119 + .../src/translation_table.S | 108 +- .../src/uart.c | 0 .../libsrc/standalone_v6_6}/src/unlink.c | 2 +- .../src/vectors.c | 0 .../src/vectors.h | 0 .../libsrc/standalone_v6_6}/src/write.c | 11 +- .../src/xbasic_types.h | 0 .../src/xdebug.h | 0 .../src/xenv.h | 0 .../src/xenv_standalone.h | 0 .../src/xil-crt0.S | 26 +- .../libsrc/standalone_v6_6}/src/xil_assert.c | 27 +- .../libsrc/standalone_v6_6}/src/xil_assert.h | 56 +- .../src/xil_cache.c | 382 +- .../src/xil_cache.h | 18 +- .../src/xil_cache_vxworks.h | 0 .../libsrc/standalone_v6_6/src/xil_errata.h} | 67 +- .../standalone_v6_6}/src/xil_exception.c | 63 +- .../src/xil_exception.h | 29 +- .../src/xil_hal.h | 0 .../src/xil_io.c | 19 +- .../libsrc/standalone_v6_6}/src/xil_io.h | 108 +- .../src/xil_macroback.h | 0 .../libsrc/standalone_v6_6/src/xil_mem.c | 83 + .../libsrc/standalone_v6_6/src/xil_mem.h | 59 + .../src/xil_mmu.c | 27 +- .../src/xil_mmu.h | 10 +- .../libsrc/standalone_v6_6}/src/xil_printf.c | 13 +- .../libsrc/standalone_v6_6}/src/xil_printf.h | 4 + .../standalone_v6_6/src/xil_sleepcommon.c | 106 + .../standalone_v6_6/src/xil_sleeptimer.c | 161 + .../standalone_v6_6/src/xil_sleeptimer.h | 116 + .../libsrc/standalone_v6_6/src/xil_smc.c | 110 + .../libsrc/standalone_v6_6/src/xil_smc.h | 118 + .../standalone_v6_6}/src/xil_testcache.c | 53 +- .../src/xil_testcache.h | 10 +- .../libsrc/standalone_v6_6}/src/xil_testio.c | 84 +- .../src/xil_testio.h | 13 +- .../libsrc/standalone_v6_6}/src/xil_testmem.c | 74 +- .../libsrc/standalone_v6_6}/src/xil_testmem.h | 64 +- .../src/xil_types.h | 59 +- .../src/xparameters_ps.h | 27 +- .../src/xplatform_info.c | 50 +- .../standalone_v6_6}/src/xplatform_info.h | 24 +- .../src/xpseudo_asm.h | 18 +- .../src/xpseudo_asm_gcc.h | 8 +- .../src/xreg_cortexa53.h | 0 .../libsrc/standalone_v6_6/src/xstatus.h | 535 + .../src/xtime_l.c | 82 +- .../src/xtime_l.h | 32 +- .../src/Makefile | 0 .../libsrc/sysmonpsu_v2_3}/src/xsysmonpsu.c | 89 +- .../src/xsysmonpsu.h | 119 +- .../src/xsysmonpsu_g.c | 7 +- .../src/xsysmonpsu_hw.h | 10 +- .../src/xsysmonpsu_intr.c | 4 +- .../src/xsysmonpsu_selftest.c | 4 +- .../sysmonpsu_v2_3}/src/xsysmonpsu_sinit.c | 4 +- .../{ttcps_v3_2 => ttcps_v3_5}/src/Makefile | 0 .../libsrc/ttcps_v3_5}/src/xttcps.c | 17 +- .../{ttcps_v3_2 => ttcps_v3_5}/src/xttcps.h | 31 +- .../{ttcps_v3_2 => ttcps_v3_5}/src/xttcps_g.c | 2 +- .../libsrc/ttcps_v3_5}/src/xttcps_hw.h | 27 +- .../libsrc/ttcps_v3_5}/src/xttcps_options.c | 2 +- .../libsrc/ttcps_v3_5}/src/xttcps_selftest.c | 2 +- .../src/xttcps_sinit.c | 2 +- .../{uartps_v3_3 => uartps_v3_6}/src/Makefile | 0 .../libsrc/uartps_v3_6}/src/xuartps.c | 7 +- .../libsrc/uartps_v3_6}/src/xuartps.h | 12 +- .../libsrc/uartps_v3_6}/src/xuartps_g.c | 4 +- .../libsrc/uartps_v3_6}/src/xuartps_hw.c | 2 +- .../src/xuartps_hw.h | 8 +- .../libsrc/uartps_v3_6}/src/xuartps_intr.c | 2 +- .../libsrc/uartps_v3_6}/src/xuartps_options.c | 2 +- .../uartps_v3_6}/src/xuartps_selftest.c | 2 +- .../libsrc/uartps_v3_6}/src/xuartps_sinit.c | 2 +- .../{usbpsu_v1_1 => usbpsu_v1_4}/src/Makefile | 0 .../libsrc/usbpsu_v1_4/src/xusb_wrapper.c | 329 + .../libsrc/usbpsu_v1_4/src/xusb_wrapper.h | 190 + .../libsrc/usbpsu_v1_4}/src/xusbpsu.c | 70 +- .../src/xusbpsu.h | 221 +- .../src/xusbpsu_controltransfers.c | 77 +- .../usbpsu_v1_4}/src/xusbpsu_endpoint.c | 360 +- .../usbpsu_v1_4}/src/xusbpsu_endpoint.h | 7 +- .../src/xusbpsu_g.c | 9 +- .../usbpsu_v1_4/src/xusbpsu_hibernation.c | 688 + .../src/xusbpsu_hw.h | 96 +- .../libsrc/usbpsu_v1_4}/src/xusbpsu_intr.c | 184 +- .../libsrc/usbpsu_v1_4}/src/xusbpsu_sinit.c | 2 +- .../libsrc/video_common_v4_3/src/Makefile | 40 + .../libsrc/video_common_v4_3/src/xvidc.c | 1204 + .../libsrc/video_common_v4_3/src/xvidc.h | 621 + .../video_common_v4_3/src/xvidc_cea861.h | 399 + .../libsrc/video_common_v4_3/src/xvidc_edid.c | 707 + .../libsrc/video_common_v4_3/src/xvidc_edid.h | 484 + .../video_common_v4_3/src/xvidc_edid_ext.c | 174 + .../video_common_v4_3/src/xvidc_edid_ext.h | 626 + .../video_common_v4_3/src/xvidc_parse_edid.c | 1332 + .../src/xvidc_timings_table.c | 534 + .../libsrc/wdtps_v3_0/src/xwdtps.h | 2 + .../libsrc/wdtps_v3_0/src/xwdtps_g.c | 4 +- .../{zdma_v1_1 => zdma_v1_5}/src/Makefile | 0 .../libsrc/zdma_v1_5}/src/xzdma.c | 18 +- .../{zdma_v1_1 => zdma_v1_5}/src/xzdma.h | 44 +- .../libsrc/zdma_v1_5}/src/xzdma_g.c | 52 +- .../libsrc/zdma_v1_5}/src/xzdma_hw.h | 5 +- .../{zdma_v1_1 => zdma_v1_5}/src/xzdma_intr.c | 2 +- .../libsrc/zdma_v1_5}/src/xzdma_selftest.c | 2 +- .../src/xzdma_sinit.c | 2 +- .../RTOSDemo_A53_bsp/system.mss | 130 +- .../ZynqMP_ZCU102_hw_platform/psu_init.c | 38885 +++++++-------- .../ZynqMP_ZCU102_hw_platform/psu_init.h | 38166 +++++++++------ .../ZynqMP_ZCU102_hw_platform/psu_init.tcl | 9570 ++-- .../ZynqMP_ZCU102_hw_platform/psu_init_gpl.c | 38896 ++++++++-------- .../ZynqMP_ZCU102_hw_platform/psu_init_gpl.h | 38168 +++++++++------ .../ZynqMP_ZCU102_hw_platform/system.hdf | Bin 867807 -> 830291 bytes .../CORTEX_A9_Zynq_ZC702/RTOSDemo/.project | 25 +- .../RTOSDemo/src/FreeRTOSConfig.h | 1 + .../RTOSDemo/src/lwipopts.h | 3 + .../RTOSDemo_bsp/.cproject | 4 +- .../RTOSDemo_bsp/.project | 2 +- .../RTOSDemo_bsp/Makefile | 8 +- .../ps7_cortexa9_0/include/xparameters.h | 100 +- .../{canps_v3_1 => canps_v3_2}/src/Makefile | 0 .../{canps_v3_1 => canps_v3_2}/src/xcanps.c | 2 +- .../{canps_v3_1 => canps_v3_2}/src/xcanps.h | 4 +- .../{canps_v3_1 => canps_v3_2}/src/xcanps_g.c | 4 +- .../src/xcanps_hw.c | 2 +- .../src/xcanps_hw.h | 2 +- .../src/xcanps_intr.c | 2 +- .../src/xcanps_selftest.c | 4 +- .../src/xcanps_sinit.c | 2 +- .../src/Makefile | 0 .../src/xcoresightpsdcc.c | 6 +- .../src/xcoresightpsdcc.h | 2 +- .../src/Makefile | 4 +- .../src/xcpu_cortexa9.h | 7 +- .../libsrc/ddrps_v1_0/src/xddrps.h | 4 +- .../{devcfg_v3_4 => devcfg_v3_5}/src/Makefile | 0 .../src/xdevcfg.c | 2 +- .../src/xdevcfg.h | 12 +- .../src/xdevcfg_g.c | 2 +- .../src/xdevcfg_hw.c | 2 +- .../src/xdevcfg_hw.h | 0 .../src/xdevcfg_intr.c | 2 +- .../src/xdevcfg_selftest.c | 2 +- .../src/xdevcfg_sinit.c | 9 +- .../{dmaps_v2_1 => dmaps_v2_3}/src/Makefile | 0 .../{dmaps_v2_1 => dmaps_v2_3}/src/xdmaps.c | 40 +- .../{dmaps_v2_1 => dmaps_v2_3}/src/xdmaps.h | 35 +- .../{dmaps_v2_1 => dmaps_v2_3}/src/xdmaps_g.c | 4 +- .../src/xdmaps_hw.c | 2 +- .../src/xdmaps_hw.h | 2 +- .../src/xdmaps_selftest.c | 2 +- .../src/xdmaps_sinit.c | 2 +- .../{emacps_v3_2 => emacps_v3_7}/src/Makefile | 0 .../libsrc/emacps_v3_7}/src/xemacps.c | 5 +- .../src/xemacps.h | 19 +- .../libsrc/emacps_v3_7}/src/xemacps_bd.h | 2 +- .../libsrc/emacps_v3_7}/src/xemacps_bdring.c | 31 +- .../src/xemacps_bdring.h | 7 +- .../src/xemacps_control.c | 2 +- .../src/xemacps_g.c | 7 +- .../src/xemacps_hw.c | 2 +- .../libsrc/emacps_v3_7}/src/xemacps_hw.h | 2 +- .../libsrc/emacps_v3_7}/src/xemacps_intr.c | 2 +- .../src/xemacps_sinit.c | 2 +- .../{gpiops_v3_1 => gpiops_v3_3}/src/Makefile | 0 .../libsrc/gpiops_v3_3}/src/xgpiops.c | 2 +- .../src/xgpiops.h | 13 +- .../src/xgpiops_g.c | 4 +- .../libsrc/gpiops_v3_3}/src/xgpiops_hw.c | 2 +- .../src/xgpiops_hw.h | 2 +- .../src/xgpiops_intr.c | 4 +- .../src/xgpiops_selftest.c | 2 +- .../libsrc/gpiops_v3_3}/src/xgpiops_sinit.c | 2 +- .../{iicps_v3_1 => iicps_v3_6}/src/Makefile | 0 .../libsrc/iicps_v3_6}/src/xiicps.c | 2 +- .../libsrc/iicps_v3_6}/src/xiicps.h | 4 +- .../{iicps_v3_1 => iicps_v3_6}/src/xiicps_g.c | 4 +- .../libsrc/iicps_v3_6}/src/xiicps_hw.c | 2 +- .../libsrc/iicps_v3_6}/src/xiicps_hw.h | 2 +- .../libsrc/iicps_v3_6}/src/xiicps_intr.c | 2 +- .../libsrc/iicps_v3_6}/src/xiicps_master.c | 14 +- .../libsrc/iicps_v3_6}/src/xiicps_options.c | 2 +- .../libsrc/iicps_v3_6}/src/xiicps_selftest.c | 2 +- .../libsrc/iicps_v3_6}/src/xiicps_sinit.c | 2 +- .../libsrc/iicps_v3_6}/src/xiicps_slave.c | 2 +- .../{qspips_v3_3 => qspips_v3_4}/src/Makefile | 0 .../src/xqspips.c | 2 +- .../src/xqspips.h | 10 +- .../src/xqspips_g.c | 4 +- .../src/xqspips_hw.c | 2 +- .../src/xqspips_hw.h | 2 +- .../src/xqspips_options.c | 2 +- .../src/xqspips_selftest.c | 2 +- .../src/xqspips_sinit.c | 2 +- .../{scugic_v3_2 => scugic_v3_9}/src/Makefile | 0 .../libsrc/scugic_v3_9}/src/xscugic.c | 202 +- .../libsrc/scugic_v3_9}/src/xscugic.h | 31 +- .../src/xscugic_g.c | 7 +- .../libsrc/scugic_v3_9}/src/xscugic_hw.c | 83 +- .../libsrc/scugic_v3_9}/src/xscugic_hw.h | 10 +- .../libsrc/scugic_v3_9}/src/xscugic_intr.c | 2 +- .../src/xscugic_selftest.c | 2 +- .../libsrc/scugic_v3_9}/src/xscugic_sinit.c | 2 +- .../libsrc/scutimer_v2_1/src/xscutimer.h | 2 + .../libsrc/scutimer_v2_1/src/xscutimer_g.c | 4 +- .../libsrc/scuwdt_v2_1/src/xscuwdt.c | 1 - .../libsrc/scuwdt_v2_1/src/xscuwdt.h | 2 + .../libsrc/scuwdt_v2_1/src/xscuwdt_g.c | 4 +- .../{sdps_v2_7 => sdps_v3_4}/src/Makefile | 0 .../libsrc/sdps_v3_4}/src/xsdps.c | 356 +- .../libsrc/sdps_v3_4}/src/xsdps.h | 27 +- .../{sdps_v2_7 => sdps_v3_4}/src/xsdps_g.c | 10 +- .../libsrc/sdps_v3_4}/src/xsdps_hw.h | 88 +- .../libsrc/sdps_v3_4}/src/xsdps_options.c | 371 +- .../libsrc/sdps_v3_4}/src/xsdps_sinit.c | 2 +- .../libsrc/standalone_v5_4/src/sleep.h | 49 - .../libsrc/standalone_v5_4/src/xil_io.c | 344 - .../libsrc/standalone_v5_4/src/xil_io.h | 246 - .../libsrc/standalone_v5_4/src/xstatus.h | 430 - .../src/Makefile | 13 +- .../src/_exit.c | 0 .../libsrc/standalone_v6_6}/src/_open.c | 2 +- .../libsrc/standalone_v6_6}/src/_sbrk.c | 9 +- .../src/abort.c | 0 .../src/asm_vectors.S | 0 .../src/boot.S | 84 +- .../libsrc/standalone_v6_6}/src/bspconfig.h | 7 +- .../libsrc/standalone_v6_6}/src/changelog.txt | 137 + .../src/close.c | 0 .../src/config.make | 0 .../src/cpu_init.S | 0 .../src/errno.c | 0 .../src/fcntl.c | 0 .../src/fstat.c | 0 .../src/getpid.c | 0 .../src/inbyte.c | 0 .../src/isatty.c | 0 .../libsrc/standalone_v6_6}/src/kill.c | 0 .../src/lseek.c | 0 .../src/open.c | 2 +- .../src/outbyte.c | 0 .../libsrc/standalone_v6_6}/src/print.c | 4 + .../src/profile/Makefile | 0 .../src/profile/_profile_clean.c | 0 .../src/profile/_profile_init.c | 0 .../src/profile/_profile_timer_hw.c | 0 .../src/profile/_profile_timer_hw.h | 0 .../src/profile/dummy.S | 0 .../src/profile/mblaze_nt_types.h | 0 .../src/profile/profile.h | 0 .../src/profile/profile_cg.c | 0 .../src/profile/profile_config.h | 0 .../src/profile/profile_hist.c | 0 .../src/profile/profile_mcount_arm.S | 0 .../src/profile/profile_mcount_mb.S | 0 .../src/profile/profile_mcount_ppc.S | 0 .../libsrc/standalone_v6_6}/src/putnum.c | 0 .../libsrc/standalone_v6_6}/src/read.c | 0 .../libsrc/standalone_v6_6}/src/sbrk.c | 6 +- .../src/sleep.c | 33 +- .../libsrc/standalone_v6_6/src/sleep.h | 119 + .../src/smc.h | 0 .../src/translation_table.S | 53 +- .../libsrc/standalone_v6_6}/src/unlink.c | 2 +- .../src/usleep.c | 21 +- .../libsrc/standalone_v6_6}/src/vectors.c | 0 .../libsrc/standalone_v6_6}/src/vectors.h | 0 .../libsrc/standalone_v6_6}/src/write.c | 11 +- .../src/xbasic_types.h | 0 .../src/xdebug.h | 0 .../src/xenv.h | 0 .../src/xenv_standalone.h | 0 .../src/xil-crt0.S | 11 +- .../libsrc/standalone_v6_6}/src/xil_assert.c | 27 +- .../libsrc/standalone_v6_6}/src/xil_assert.h | 56 +- .../src/xil_cache.c | 565 +- .../src/xil_cache.h | 12 +- .../src/xil_cache_l.h | 5 + .../src/xil_cache_vxworks.h | 0 .../src/xil_errata.h | 50 +- .../standalone_v6_6}/src/xil_exception.c | 63 +- .../standalone_v6_6}/src/xil_exception.h | 29 +- .../src/xil_hal.h | 0 .../libsrc/standalone_v6_6}/src/xil_io.c | 19 +- .../libsrc/standalone_v6_6}/src/xil_io.h | 108 +- .../src/xil_macroback.h | 0 .../libsrc/standalone_v6_6/src/xil_mem.c | 83 + .../libsrc/standalone_v6_6/src/xil_mem.h | 59 + .../src/xil_misc_psreset_api.c | 0 .../src/xil_misc_psreset_api.h | 0 .../src/xil_mmu.c | 36 +- .../src/xil_mmu.h | 11 +- .../libsrc/standalone_v6_6}/src/xil_printf.c | 13 +- .../src/xil_printf.h | 4 + .../standalone_v6_6/src/xil_sleepcommon.c | 106 + .../standalone_v6_6/src/xil_sleeptimer.c | 161 + .../standalone_v6_6/src/xil_sleeptimer.h | 116 + .../standalone_v6_6}/src/xil_testcache.c | 53 +- .../src/xil_testcache.h | 10 +- .../libsrc/standalone_v6_6}/src/xil_testio.c | 84 +- .../src/xil_testio.h | 13 +- .../libsrc/standalone_v6_6}/src/xil_testmem.c | 74 +- .../src/xil_testmem.h | 64 +- .../src/xil_types.h | 59 +- .../src/xl2cc.h | 0 .../src/xl2cc_counter.c | 29 +- .../src/xl2cc_counter.h | 21 +- .../src/xparameters_ps.h | 7 +- .../standalone_v6_6}/src/xplatform_info.c | 50 +- .../src/xplatform_info.h | 24 +- .../src/xpm_counter.c | 27 +- .../src/xpm_counter.h | 24 +- .../src/xpseudo_asm.h | 18 +- .../standalone_v6_6}/src/xpseudo_asm_gcc.h | 8 +- .../src/xreg_cortexa9.h | 0 .../libsrc/standalone_v6_6/src/xstatus.h | 535 + .../src/xtime_l.c | 23 +- .../src/xtime_l.h | 24 +- .../{ttcps_v3_1 => ttcps_v3_5}/src/Makefile | 0 .../libsrc/ttcps_v3_5}/src/xttcps.c | 17 +- .../libsrc/ttcps_v3_5}/src/xttcps.h | 31 +- .../{ttcps_v3_1 => ttcps_v3_5}/src/xttcps_g.c | 2 +- .../libsrc/ttcps_v3_5}/src/xttcps_hw.h | 27 +- .../libsrc/ttcps_v3_5}/src/xttcps_options.c | 2 +- .../libsrc/ttcps_v3_5}/src/xttcps_selftest.c | 2 +- .../src/xttcps_sinit.c | 2 +- .../{uartps_v3_1 => uartps_v3_6}/src/Makefile | 0 .../libsrc/uartps_v3_6}/src/xuartps.c | 7 +- .../libsrc/uartps_v3_6}/src/xuartps.h | 12 +- .../src/xuartps_g.c | 4 +- .../libsrc/uartps_v3_6}/src/xuartps_hw.c | 2 +- .../libsrc/uartps_v3_6}/src/xuartps_hw.h | 8 +- .../libsrc/uartps_v3_6}/src/xuartps_intr.c | 2 +- .../libsrc/uartps_v3_6}/src/xuartps_options.c | 2 +- .../src/xuartps_selftest.c | 2 +- .../libsrc/uartps_v3_6}/src/xuartps_sinit.c | 2 +- .../{usbps_v2_3 => usbps_v2_4}/src/Makefile | 0 .../{usbps_v2_3 => usbps_v2_4}/src/xusbps.c | 2 +- .../{usbps_v2_3 => usbps_v2_4}/src/xusbps.h | 11 +- .../src/xusbps_endpoint.c | 2 +- .../src/xusbps_endpoint.h | 2 +- .../{usbps_v2_3 => usbps_v2_4}/src/xusbps_g.c | 4 +- .../src/xusbps_hw.c | 2 +- .../src/xusbps_hw.h | 2 +- .../src/xusbps_intr.c | 2 +- .../src/xusbps_sinit.c | 2 +- .../libsrc/xadcps_v2_2/src/xadcps.h | 10 +- .../libsrc/xadcps_v2_2/src/xadcps_g.c | 4 +- .../RTOSDemo_bsp/system.mss | 32 +- .../ZC702_hw_platform/ps7_init.c | 132 +- .../ZC702_hw_platform/ps7_init.html | 1971 - .../ZC702_hw_platform/ps7_init.tcl | 14 - .../ZC702_hw_platform/ps7_init_gpl.c | 132 +- .../ZC702_hw_platform/system.hdf | Bin 383990 -> 380997 bytes .../FreeRTOSConfig.h | 2 +- .../RTOSDemo_R5/.cproject | 107 +- .../RTOSDemo_R5/.project | 19 +- .../RTOSDemo_R5/src/FreeRTOSConfig.h | 1 + .../RTOSDemo_R5_bsp/.cproject | 4 +- .../RTOSDemo_R5_bsp/.project | 2 +- .../RTOSDemo_R5_bsp/Makefile | 8 +- .../psu_cortexr5_0/include/xparameters.h | 819 +- .../libsrc/avbuf_v2_1/src/Makefile | 40 + .../libsrc/avbuf_v2_1/src/xavbuf.c | 1092 + .../libsrc/avbuf_v2_1/src/xavbuf.h | 302 + .../libsrc/avbuf_v2_1/src/xavbuf_clk.c | 561 + .../libsrc/avbuf_v2_1/src/xavbuf_clk.h | 97 + .../libsrc/avbuf_v2_1/src/xavbuf_g.c | 55 + .../libsrc/avbuf_v2_1/src/xavbuf_hw.h | 1675 + .../avbuf_v2_1/src/xavbuf_videoformats.c | 227 + .../libsrc/axipmon_v6_5/src/Makefile | 27 - .../libsrc/axipmon_v6_6/src/Makefile | 40 + .../libsrc/axipmon_v6_6}/src/xaxipmon.c | 2 +- .../src/xaxipmon.h | 10 +- .../libsrc/axipmon_v6_6}/src/xaxipmon_g.c | 4 +- .../src/xaxipmon_hw.h | 2 +- .../src/xaxipmon_selftest.c | 2 +- .../src/xaxipmon_sinit.c | 2 +- .../libsrc/canps_v3_2/src/xcanps.c | 2 +- .../libsrc/canps_v3_2/src/xcanps.h | 4 +- .../libsrc/canps_v3_2/src/xcanps_g.c | 4 +- .../libsrc/canps_v3_2/src/xcanps_hw.c | 2 +- .../libsrc/canps_v3_2/src/xcanps_hw.h | 2 +- .../libsrc/canps_v3_2/src/xcanps_intr.c | 2 +- .../libsrc/canps_v3_2/src/xcanps_selftest.c | 2 +- .../libsrc/canps_v3_2/src/xcanps_sinit.c | 2 +- .../src/Makefile | 0 .../src/xcoresightpsdcc.c | 15 +- .../src/xcoresightpsdcc.h | 8 +- .../src/Makefile | 5 +- .../src/xcpu_cortexr5.h | 7 +- .../{csudma_v1_1 => csudma_v1_2}/src/Makefile | 0 .../libsrc/csudma_v1_2}/src/xcsudma.c | 78 +- .../src/xcsudma.h | 13 +- .../libsrc/csudma_v1_2}/src/xcsudma_g.c | 4 +- .../libsrc/csudma_v1_2}/src/xcsudma_hw.h | 2 +- .../libsrc/csudma_v1_2}/src/xcsudma_intr.c | 2 +- .../csudma_v1_2}/src/xcsudma_selftest.c | 2 +- .../src/xcsudma_sinit.c | 2 +- .../libsrc/ddrcpsu_v1_1/src/xddrcpsu.h | 7 +- .../libsrc/dpdma_v1_0/src/Makefile | 40 + .../libsrc/dpdma_v1_0/src/xdpdma.c | 966 + .../libsrc/dpdma_v1_0/src/xdpdma.h | 283 + .../libsrc/dpdma_v1_0/src/xdpdma_g.c | 55 + .../libsrc/dpdma_v1_0/src/xdpdma_hw.h | 1811 + .../libsrc/dpdma_v1_0/src/xdpdma_intr.c | 166 + .../libsrc/dpdma_v1_0/src/xdpdma_sinit.c | 96 + .../{emacps_v3_3 => emacps_v3_7}/src/Makefile | 0 .../src/xemacps.c | 5 +- .../src/xemacps.h | 19 +- .../src/xemacps_bd.h | 2 +- .../libsrc/emacps_v3_7}/src/xemacps_bdring.c | 31 +- .../libsrc/emacps_v3_7}/src/xemacps_bdring.h | 7 +- .../libsrc/emacps_v3_7}/src/xemacps_control.c | 2 +- .../libsrc/emacps_v3_7/src/xemacps_g.c | 56 + .../src/xemacps_hw.c | 2 +- .../libsrc/emacps_v3_7}/src/xemacps_hw.h | 2 +- .../src/xemacps_intr.c | 2 +- .../libsrc/emacps_v3_7}/src/xemacps_sinit.c | 2 +- .../{gpiops_v3_1 => gpiops_v3_3}/src/Makefile | 0 .../libsrc/gpiops_v3_3}/src/xgpiops.c | 2 +- .../libsrc/gpiops_v3_3}/src/xgpiops.h | 13 +- .../src/xgpiops_g.c | 4 +- .../libsrc/gpiops_v3_3}/src/xgpiops_hw.c | 2 +- .../libsrc/gpiops_v3_3}/src/xgpiops_hw.h | 2 +- .../src/xgpiops_intr.c | 4 +- .../gpiops_v3_3}/src/xgpiops_selftest.c | 2 +- .../libsrc/gpiops_v3_3}/src/xgpiops_sinit.c | 2 +- .../{iicps_v3_4 => iicps_v3_6}/src/Makefile | 0 .../libsrc/iicps_v3_6}/src/xiicps.c | 9 +- .../libsrc/iicps_v3_6}/src/xiicps.h | 7 +- .../{iicps_v3_4 => iicps_v3_6}/src/xiicps_g.c | 4 +- .../libsrc/iicps_v3_6}/src/xiicps_hw.c | 4 +- .../libsrc/iicps_v3_6}/src/xiicps_hw.h | 4 +- .../libsrc/iicps_v3_6}/src/xiicps_intr.c | 4 +- .../libsrc/iicps_v3_6}/src/xiicps_master.c | 82 +- .../libsrc/iicps_v3_6}/src/xiicps_options.c | 19 +- .../libsrc/iicps_v3_6}/src/xiicps_selftest.c | 4 +- .../libsrc/iicps_v3_6}/src/xiicps_sinit.c | 4 +- .../libsrc/iicps_v3_6}/src/xiicps_slave.c | 29 +- .../{ipipsu_v2_1 => ipipsu_v2_3}/src/Makefile | 0 .../src/xipipsu.c | 41 +- .../src/xipipsu.h | 21 +- .../src/xipipsu_g.c | 20 +- .../src/xipipsu_hw.h | 6 +- .../libsrc/ipipsu_v2_3}/src/xipipsu_sinit.c | 2 +- .../src/Makefile | 0 .../libsrc/qspipsu_v1_7}/src/xqspipsu.c | 62 +- .../libsrc/qspipsu_v1_7}/src/xqspipsu.h | 39 +- .../src/xqspipsu_g.c | 7 +- .../libsrc/qspipsu_v1_7}/src/xqspipsu_hw.h | 5 +- .../qspipsu_v1_7}/src/xqspipsu_options.c | 51 +- .../src/xqspipsu_sinit.c | 2 +- .../libsrc/resetps_v1_0/src/Makefile | 40 + .../libsrc/resetps_v1_0/src/xresetps.c | 1030 + .../libsrc/resetps_v1_0/src/xresetps.h | 382 + .../libsrc/resetps_v1_0/src/xresetps_g.c | 53 + .../libsrc/resetps_v1_0/src/xresetps_hw.h | 327 + .../libsrc/resetps_v1_0/src/xresetps_sinit.c | 94 + .../{rtcpsu_v1_3 => rtcpsu_v1_5}/src/Makefile | 0 .../libsrc/rtcpsu_v1_5}/src/xrtcpsu.c | 38 +- .../libsrc/rtcpsu_v1_5}/src/xrtcpsu.h | 20 +- .../src/xrtcpsu_g.c | 4 +- .../src/xrtcpsu_hw.h | 6 +- .../src/xrtcpsu_intr.c | 6 +- .../rtcpsu_v1_5}/src/xrtcpsu_selftest.c | 6 +- .../src/xrtcpsu_sinit.c | 6 +- .../{scugic_v3_5 => scugic_v3_9}/src/Makefile | 0 .../libsrc/scugic_v3_9}/src/xscugic.c | 385 +- .../libsrc/scugic_v3_9}/src/xscugic.h | 49 +- .../src/xscugic_g.c | 7 +- .../libsrc/scugic_v3_9}/src/xscugic_hw.c | 83 +- .../libsrc/scugic_v3_9}/src/xscugic_hw.h | 10 +- .../libsrc/scugic_v3_9}/src/xscugic_intr.c | 2 +- .../scugic_v3_9}/src/xscugic_selftest.c | 2 +- .../libsrc/scugic_v3_9}/src/xscugic_sinit.c | 2 +- .../{sdps_v3_1 => sdps_v3_4}/src/Makefile | 0 .../libsrc/sdps_v3_4}/src/xsdps.c | 528 +- .../libsrc/sdps_v3_4}/src/xsdps.h | 56 +- .../{sdps_v3_1 => sdps_v3_4}/src/xsdps_g.c | 7 +- .../libsrc/sdps_v3_4}/src/xsdps_hw.h | 157 +- .../libsrc/sdps_v3_4}/src/xsdps_options.c | 858 +- .../libsrc/sdps_v3_4}/src/xsdps_sinit.c | 4 +- .../libsrc/standalone_v6_1/src/sleep.h | 50 - .../libsrc/standalone_v6_1/src/xil_mpu.c | 258 - .../libsrc/standalone_v6_1/src/xstatus.h | 432 - .../src/Makefile | 17 +- .../src/_exit.c | 0 .../libsrc/standalone_v6_6}/src/_open.c | 2 +- .../libsrc/standalone_v6_6}/src/_sbrk.c | 9 +- .../src/abort.c | 0 .../src/asm_vectors.S | 18 +- .../src/boot.S | 49 +- .../libsrc/standalone_v6_6}/src/bspconfig.h | 7 +- .../libsrc/standalone_v6_6}/src/changelog.txt | 215 + .../src/close.c | 0 .../src/config.make | 0 .../src/cpu_init.S | 0 .../src/errno.c | 0 .../src/fcntl.c | 0 .../src/fstat.c | 0 .../src/getpid.c | 0 .../src/inbyte.c | 0 .../src/includes_ps/xddr_xmpu0_cfg.h | 0 .../src/includes_ps/xddr_xmpu1_cfg.h | 0 .../src/includes_ps/xddr_xmpu2_cfg.h | 0 .../src/includes_ps/xddr_xmpu3_cfg.h | 0 .../src/includes_ps/xddr_xmpu4_cfg.h | 0 .../src/includes_ps/xddr_xmpu5_cfg.h | 0 .../src/includes_ps/xfpd_slcr.h | 0 .../src/includes_ps/xfpd_slcr_secure.h | 0 .../src/includes_ps/xfpd_xmpu_cfg.h | 0 .../src/includes_ps/xfpd_xmpu_sink.h | 0 .../src/includes_ps/xiou_secure_slcr.h | 0 .../src/includes_ps/xiou_slcr.h | 0 .../src/includes_ps/xlpd_slcr.h | 0 .../src/includes_ps/xlpd_slcr_secure.h | 0 .../src/includes_ps/xlpd_xppu.h | 0 .../src/includes_ps/xlpd_xppu_sink.h | 0 .../src/includes_ps/xocm_xmpu_cfg.h | 0 .../src/isatty.c | 0 .../libsrc/standalone_v6_6}/src/kill.c | 8 +- .../src/lseek.c | 0 .../src/mpu.c | 25 +- .../libsrc/standalone_v6_6}/src/open.c | 2 +- .../src/outbyte.c | 0 .../libsrc/standalone_v6_6}/src/print.c | 9 +- .../libsrc/standalone_v6_6}/src/putnum.c | 2 +- .../libsrc/standalone_v6_6}/src/read.c | 40 +- .../src/sbrk.c | 6 +- .../src/sleep.c | 96 +- .../libsrc/standalone_v6_6/src/sleep.h | 119 + .../src/uart.c | 0 .../src/unlink.c | 2 +- .../src/usleep.c | 93 +- .../libsrc/standalone_v6_6}/src/vectors.c | 85 +- .../libsrc/standalone_v6_6}/src/vectors.h | 12 +- .../src/write.c | 11 +- .../src/xbasic_types.h | 0 .../src/xdebug.h | 0 .../src/xenv.h | 0 .../src/xenv_standalone.h | 0 .../src/xil-crt0.S | 14 +- .../libsrc/standalone_v6_6}/src/xil_assert.c | 33 +- .../libsrc/standalone_v6_6}/src/xil_assert.h | 60 +- .../src/xil_cache.c | 206 +- .../src/xil_cache.h | 26 +- .../src/xil_cache_vxworks.h | 0 .../standalone_v6_6}/src/xil_exception.c | 185 +- .../standalone_v6_6}/src/xil_exception.h | 69 +- .../src/xil_hal.h | 0 .../libsrc/standalone_v6_6/src/xil_io.c | 102 + .../libsrc/standalone_v6_6/src/xil_io.h | 345 + .../src/xil_macroback.h | 0 .../libsrc/standalone_v6_6/src/xil_mem.c | 83 + .../libsrc/standalone_v6_6/src/xil_mem.h | 59 + .../src/xil_mmu.h | 4 +- .../libsrc/standalone_v6_6/src/xil_mpu.c | 579 + .../libsrc/standalone_v6_6/src/xil_mpu.h | 134 + .../libsrc/standalone_v6_6}/src/xil_printf.c | 97 +- .../libsrc/standalone_v6_6}/src/xil_printf.h | 4 + .../standalone_v6_6/src/xil_sleepcommon.c | 106 + .../standalone_v6_6/src/xil_sleeptimer.c | 161 + .../standalone_v6_6/src/xil_sleeptimer.h | 116 + .../standalone_v6_6}/src/xil_testcache.c | 53 +- .../src/xil_testcache.h | 10 +- .../libsrc/standalone_v6_6}/src/xil_testio.c | 84 +- .../src/xil_testio.h | 13 +- .../libsrc/standalone_v6_6}/src/xil_testmem.c | 74 +- .../libsrc/standalone_v6_6}/src/xil_testmem.h | 64 +- .../src/xil_types.h | 59 +- .../src/xparameters_ps.h | 44 +- .../standalone_v6_6}/src/xplatform_info.c | 54 +- .../standalone_v6_6}/src/xplatform_info.h | 24 +- .../src/xpm_counter.c | 41 +- .../src/xpm_counter.h | 22 +- .../src/xpseudo_asm.h | 24 +- .../standalone_v6_6}/src/xpseudo_asm_gcc.h | 82 +- .../src/xreg_cortexr5.h | 0 .../libsrc/standalone_v6_6/src/xstatus.h | 535 + .../src/xtime_l.c | 98 +- .../src/xtime_l.h | 27 +- .../src/Makefile | 0 .../libsrc/sysmonpsu_v2_3}/src/xsysmonpsu.c | 89 +- .../src/xsysmonpsu.h | 119 +- .../src/xsysmonpsu_g.c | 7 +- .../src/xsysmonpsu_hw.h | 10 +- .../src/xsysmonpsu_intr.c | 4 +- .../src/xsysmonpsu_selftest.c | 4 +- .../sysmonpsu_v2_3}/src/xsysmonpsu_sinit.c | 4 +- .../{ttcps_v3_2 => ttcps_v3_5}/src/Makefile | 0 .../libsrc/ttcps_v3_5}/src/xttcps.c | 29 +- .../libsrc/ttcps_v3_5}/src/xttcps.h | 81 +- .../{ttcps_v3_2 => ttcps_v3_5}/src/xttcps_g.c | 2 +- .../libsrc/ttcps_v3_5}/src/xttcps_hw.h | 27 +- .../libsrc/ttcps_v3_5}/src/xttcps_options.c | 2 +- .../libsrc/ttcps_v3_5}/src/xttcps_selftest.c | 2 +- .../src/xttcps_sinit.c | 2 +- .../{uartps_v3_3 => uartps_v3_6}/src/Makefile | 0 .../libsrc/uartps_v3_6}/src/xuartps.c | 7 +- .../libsrc/uartps_v3_6}/src/xuartps.h | 13 +- .../libsrc/uartps_v3_6}/src/xuartps_g.c | 4 +- .../libsrc/uartps_v3_6}/src/xuartps_hw.c | 2 +- .../libsrc/uartps_v3_6}/src/xuartps_hw.h | 8 +- .../libsrc/uartps_v3_6}/src/xuartps_intr.c | 4 +- .../libsrc/uartps_v3_6}/src/xuartps_options.c | 5 +- .../uartps_v3_6}/src/xuartps_selftest.c | 2 +- .../libsrc/uartps_v3_6}/src/xuartps_sinit.c | 2 +- .../{usbpsu_v1_1 => usbpsu_v1_4}/src/Makefile | 0 .../libsrc/usbpsu_v1_4/src/xusb_wrapper.c | 329 + .../libsrc/usbpsu_v1_4/src/xusb_wrapper.h | 190 + .../libsrc/usbpsu_v1_4}/src/xusbpsu.c | 70 +- .../src/xusbpsu.h | 221 +- .../src/xusbpsu_controltransfers.c | 77 +- .../usbpsu_v1_4}/src/xusbpsu_endpoint.c | 360 +- .../usbpsu_v1_4}/src/xusbpsu_endpoint.h | 7 +- .../src/xusbpsu_g.c | 9 +- .../usbpsu_v1_4/src/xusbpsu_hibernation.c | 688 + .../src/xusbpsu_hw.h | 96 +- .../libsrc/usbpsu_v1_4}/src/xusbpsu_intr.c | 184 +- .../libsrc/usbpsu_v1_4}/src/xusbpsu_sinit.c | 2 +- .../libsrc/video_common_v4_3/src/Makefile | 40 + .../libsrc/video_common_v4_3/src/xvidc.c | 1204 + .../libsrc/video_common_v4_3/src/xvidc.h | 621 + .../video_common_v4_3/src/xvidc_cea861.h | 399 + .../libsrc/video_common_v4_3/src/xvidc_edid.c | 707 + .../libsrc/video_common_v4_3/src/xvidc_edid.h | 484 + .../video_common_v4_3/src/xvidc_edid_ext.c | 174 + .../video_common_v4_3/src/xvidc_edid_ext.h | 626 + .../video_common_v4_3/src/xvidc_parse_edid.c | 1332 + .../src/xvidc_timings_table.c | 534 + .../libsrc/wdtps_v3_0/src/xwdtps.h | 2 + .../libsrc/wdtps_v3_0/src/xwdtps_g.c | 8 +- .../{zdma_v1_1 => zdma_v1_5}/src/Makefile | 0 .../libsrc/zdma_v1_5}/src/xzdma.c | 18 +- .../{zdma_v1_1 => zdma_v1_5}/src/xzdma.h | 44 +- .../libsrc/zdma_v1_5}/src/xzdma_g.c | 52 +- .../libsrc/zdma_v1_5}/src/xzdma_hw.h | 5 +- .../{zdma_v1_1 => zdma_v1_5}/src/xzdma_intr.c | 2 +- .../libsrc/zdma_v1_5}/src/xzdma_selftest.c | 2 +- .../src/xzdma_sinit.c | 2 +- .../RTOSDemo_R5_bsp/system.mss | 140 +- .../ZynqMP_ZCU102_hw_platform/psu_init.c | 38885 +++++++-------- .../ZynqMP_ZCU102_hw_platform/psu_init.h | 38166 +++++++++------ .../ZynqMP_ZCU102_hw_platform/psu_init.tcl | 9570 ++-- .../ZynqMP_ZCU102_hw_platform/psu_init_gpl.c | 38896 ++++++++-------- .../ZynqMP_ZCU102_hw_platform/psu_init_gpl.h | 38168 +++++++++------ .../ZynqMP_ZCU102_hw_platform/system.hdf | Bin 867807 -> 830291 bytes 827 files changed, 236693 insertions(+), 152370 deletions(-) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/Makefile create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_clk.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_clk.h rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{emacps_v3_3/src/xemacps_g.c => avbuf_v2_1/src/xavbuf_g.c} (87%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_hw.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_videoformats.c delete mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/Makefile create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/Makefile rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6}/src/xaxipmon.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{axipmon_v6_5 => axipmon_v6_6}/src/xaxipmon.h (98%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6}/src/xaxipmon_g.c (94%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{axipmon_v6_5 => axipmon_v6_6}/src/xaxipmon_hw.h (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{axipmon_v6_5 => axipmon_v6_6}/src/xaxipmon_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{axipmon_v6_5 => axipmon_v6_6}/src/xaxipmon_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{coresightps_dcc_v1_3 => coresightps_dcc_v1_4}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{coresightps_dcc_v1_3 => coresightps_dcc_v1_4}/src/xcoresightpsdcc.c (98%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_4}/src/xcoresightpsdcc.h (98%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{cpu_cortexa53_v1_2 => cpu_cortexa53_v1_5}/src/Makefile (78%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{cpu_cortexa53_v1_2 => cpu_cortexa53_v1_5}/src/xcpu_cortexa53.h (86%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{csudma_v1_1 => csudma_v1_2}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2}/src/xcsudma.c (90%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{csudma_v1_1 => csudma_v1_2}/src/xcsudma.h (95%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2}/src/xcsudma_g.c (90%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2}/src/xcsudma_hw.h (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2}/src/xcsudma_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2}/src/xcsudma_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{csudma_v1_1 => csudma_v1_2}/src/xcsudma_sinit.c (99%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/Makefile create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_g.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_hw.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_intr.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_sinit.c rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{emacps_v3_3 => emacps_v3_7}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7}/src/xemacps.c (98%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{emacps_v3_3 => emacps_v3_7}/src/xemacps.h (97%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7}/src/xemacps_bd.h (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{emacps_v3_3 => emacps_v3_7}/src/xemacps_bdring.c (97%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7}/src/xemacps_bdring.h (97%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7}/src/xemacps_control.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7}/src/xemacps_g.c (87%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{emacps_v3_3 => emacps_v3_7}/src/xemacps_hw.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7}/src/xemacps_hw.h (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7}/src/xemacps_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7}/src/xemacps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3}/src/xgpiops.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3}/src/xgpiops.h (94%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/xgpiops_g.c (90%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3}/src/xgpiops_hw.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3}/src/xgpiops_hw.h (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/xgpiops_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3}/src/xgpiops_selftest.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3}/src/xgpiops_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/xiicps.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6}/src/xiicps.h (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/xiicps_g.c (91%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/xiicps_hw.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/xiicps_hw.h (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/xiicps_intr.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/xiicps_master.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/xiicps_options.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6}/src/xiicps_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/xiicps_sinit.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6}/src/xiicps_slave.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{ipipsu_v2_1 => ipipsu_v2_3}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{ipipsu_v2_1 => ipipsu_v2_3}/src/xipipsu.c (87%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{ipipsu_v2_1 => ipipsu_v2_3}/src/xipipsu.h (92%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{ipipsu_v2_1 => ipipsu_v2_3}/src/xipipsu_g.c (83%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{ipipsu_v2_1 => ipipsu_v2_3}/src/xipipsu_hw.h (95%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3}/src/xipipsu_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{qspipsu_v1_3 => qspipsu_v1_7}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7}/src/xqspipsu.c (96%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7}/src/xqspipsu.h (85%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{qspipsu_v1_3 => qspipsu_v1_7}/src/xqspipsu_g.c (88%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7}/src/xqspipsu_hw.h (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7}/src/xqspipsu_options.c (92%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{qspipsu_v1_3 => qspipsu_v1_7}/src/xqspipsu_sinit.c (99%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/Makefile create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_g.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_hw.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_sinit.c rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{rtcpsu_v1_3 => rtcpsu_v1_5}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5}/src/xrtcpsu.c (96%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5}/src/xrtcpsu.h (95%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{rtcpsu_v1_3 => rtcpsu_v1_5}/src/xrtcpsu_g.c (90%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{rtcpsu_v1_3 => rtcpsu_v1_5}/src/xrtcpsu_hw.h (98%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{rtcpsu_v1_3 => rtcpsu_v1_5}/src/xrtcpsu_intr.c (98%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5}/src/xrtcpsu_selftest.c (97%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{rtcpsu_v1_3 => rtcpsu_v1_5}/src/xrtcpsu_sinit.c (96%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{scugic_v3_5 => scugic_v3_9}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9}/src/xscugic.c (82%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9}/src/xscugic.h (87%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{scugic_v3_5 => scugic_v3_9}/src/xscugic_g.c (87%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9}/src/xscugic_hw.c (88%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9}/src/xscugic_hw.h (98%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9}/src/xscugic_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9}/src/xscugic_selftest.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9}/src/xscugic_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{sdps_v3_1 => sdps_v3_4}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{sdps_v3_1 => sdps_v3_4}/src/xsdps.c (81%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4}/src/xsdps.h (90%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{sdps_v3_1 => sdps_v3_4}/src/xsdps_g.c (89%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4}/src/xsdps_hw.h (95%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4}/src/xsdps_options.c (77%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4}/src/xsdps_sinit.c (99%) delete mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/asm_vectors.S delete mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/sleep.h delete mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xstatus.h rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/Makefile (82%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/_exit.c (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/_open.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/_sbrk.c (95%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/abort.c (100%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/asm_vectors.S rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/boot.S (58%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/bspconfig.h (84%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/changelog.txt (71%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/close.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/config.make (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/errno.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/fcntl.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/fstat.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/getpid.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/inbyte.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu0_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu1_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu2_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu3_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu4_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu5_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xfpd_slcr.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xfpd_slcr_secure.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xfpd_xmpu_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xfpd_xmpu_sink.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xiou_secure_slcr.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xiou_slcr.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xlpd_slcr.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xlpd_slcr_secure.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xlpd_xppu.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xlpd_xppu_sink.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xocm_xmpu_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/initialise_monitor_handles.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/isatty.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/kill.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/lseek.c (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/open.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/outbyte.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/print.c (90%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/putnum.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/read.c (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/sbrk.c (94%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/sleep.c (79%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/sleep.h rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/translation_table.S (54%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/uart.c (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/unlink.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/vectors.c (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/vectors.h (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/write.c (93%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xbasic_types.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xdebug.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xenv.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xenv_standalone.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil-crt0.S (83%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xil_assert.c (83%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xil_assert.h (77%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_cache.c (61%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_cache.h (80%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_cache_vxworks.h (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mpu.h => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_errata.h} (64%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xil_exception.c (85%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_exception.h (90%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_hal.h (100%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_io.c (90%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xil_io.h (74%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_macroback.h (100%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mem.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mem.h rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_mmu.c (82%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_mmu.h (92%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xil_printf.c (98%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xil_printf.h (91%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_smc.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_smc.h rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xil_testcache.c (83%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_testcache.h (92%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xil_testio.c (70%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_testio.h (93%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xil_testmem.c (92%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xil_testmem.h (79%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_types.h (76%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xparameters_ps.h (91%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xplatform_info.c (73%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6}/src/xplatform_info.h (80%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xpseudo_asm.h (74%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xpseudo_asm_gcc.h (97%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xreg_cortexa53.h (100%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xstatus.h rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xtime_l.c (70%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xtime_l.h (76%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3}/src/xsysmonpsu.c (96%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/xsysmonpsu.h (86%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/xsysmonpsu_g.c (88%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/xsysmonpsu_hw.h (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/xsysmonpsu_intr.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/xsysmonpsu_selftest.c (98%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3}/src/xsysmonpsu_sinit.c (97%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{ttcps_v3_2 => ttcps_v3_5}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5}/src/xttcps.c (95%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{ttcps_v3_2 => ttcps_v3_5}/src/xttcps.h (93%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{ttcps_v3_2 => ttcps_v3_5}/src/xttcps_g.c (94%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5}/src/xttcps_hw.h (90%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5}/src/xttcps_options.c (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5}/src/xttcps_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{ttcps_v3_2 => ttcps_v3_5}/src/xttcps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{uartps_v3_3 => uartps_v3_6}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6}/src/xuartps.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6}/src/xuartps.h (96%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6}/src/xuartps_g.c (91%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6}/src/xuartps_hw.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{uartps_v3_3 => uartps_v3_6}/src/xuartps_hw.h (98%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6}/src/xuartps_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6}/src/xuartps_options.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6}/src/xuartps_selftest.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6}/src/xuartps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{usbpsu_v1_1 => usbpsu_v1_4}/src/Makefile (100%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.h rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4}/src/xusbpsu.c (95%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{usbpsu_v1_1 => usbpsu_v1_4}/src/xusbpsu.h (78%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{usbpsu_v1_1 => usbpsu_v1_4}/src/xusbpsu_controltransfers.c (90%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4}/src/xusbpsu_endpoint.c (72%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4}/src/xusbpsu_endpoint.h (98%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{usbpsu_v1_1 => usbpsu_v1_4}/src/xusbpsu_g.c (86%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_hibernation.c rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{usbpsu_v1_1 => usbpsu_v1_4}/src/xusbpsu_hw.h (83%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4}/src/xusbpsu_intr.c (70%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4}/src/xusbpsu_sinit.c (99%) create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/Makefile create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_cea861.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.h create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_parse_edid.c create mode 100644 FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_timings_table.c rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{zdma_v1_1 => zdma_v1_5}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5}/src/xzdma.c (98%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{zdma_v1_1 => zdma_v1_5}/src/xzdma.h (93%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5}/src/xzdma_g.c (68%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5}/src/xzdma_hw.h (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{zdma_v1_1 => zdma_v1_5}/src/xzdma_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1 => CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5}/src/xzdma_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/{zdma_v1_1 => zdma_v1_5}/src/xzdma_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{canps_v3_1 => canps_v3_2}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{canps_v3_1 => canps_v3_2}/src/xcanps.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{canps_v3_1 => canps_v3_2}/src/xcanps.h (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{canps_v3_1 => canps_v3_2}/src/xcanps_g.c (91%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{canps_v3_1 => canps_v3_2}/src/xcanps_hw.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{canps_v3_1 => canps_v3_2}/src/xcanps_hw.h (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{canps_v3_1 => canps_v3_2}/src/xcanps_intr.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{canps_v3_1 => canps_v3_2}/src/xcanps_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{canps_v3_1 => canps_v3_2}/src/xcanps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{coresightps_dcc_v1_2 => coresightps_dcc_v1_4}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_4}/src/xcoresightpsdcc.c (98%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_4}/src/xcoresightpsdcc.h (98%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{cpu_cortexa9_v2_2 => cpu_cortexa9_v2_6}/src/Makefile (78%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{cpu_cortexa9_v2_2 => cpu_cortexa9_v2_6}/src/xcpu_cortexa9.h (86%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{devcfg_v3_4 => devcfg_v3_5}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{devcfg_v3_4 => devcfg_v3_5}/src/xdevcfg.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{devcfg_v3_4 => devcfg_v3_5}/src/xdevcfg.h (96%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{devcfg_v3_4 => devcfg_v3_5}/src/xdevcfg_g.c (94%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{devcfg_v3_4 => devcfg_v3_5}/src/xdevcfg_hw.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{devcfg_v3_4 => devcfg_v3_5}/src/xdevcfg_hw.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{devcfg_v3_4 => devcfg_v3_5}/src/xdevcfg_intr.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{devcfg_v3_4 => devcfg_v3_5}/src/xdevcfg_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{devcfg_v3_4 => devcfg_v3_5}/src/xdevcfg_sinit.c (93%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{dmaps_v2_1 => dmaps_v2_3}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{dmaps_v2_1 => dmaps_v2_3}/src/xdmaps.c (97%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{dmaps_v2_1 => dmaps_v2_3}/src/xdmaps.h (86%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{dmaps_v2_1 => dmaps_v2_3}/src/xdmaps_g.c (91%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{dmaps_v2_1 => dmaps_v2_3}/src/xdmaps_hw.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{dmaps_v2_1 => dmaps_v2_3}/src/xdmaps_hw.h (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{dmaps_v2_1 => dmaps_v2_3}/src/xdmaps_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{dmaps_v2_1 => dmaps_v2_3}/src/xdmaps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{emacps_v3_2 => emacps_v3_7}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7}/src/xemacps.c (98%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{emacps_v3_2 => emacps_v3_7}/src/xemacps.h (97%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7}/src/xemacps_bd.h (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7}/src/xemacps_bdring.c (97%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{emacps_v3_2 => emacps_v3_7}/src/xemacps_bdring.h (97%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{emacps_v3_2 => emacps_v3_7}/src/xemacps_control.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{emacps_v3_2 => emacps_v3_7}/src/xemacps_g.c (87%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{emacps_v3_2 => emacps_v3_7}/src/xemacps_hw.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7}/src/xemacps_hw.h (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7}/src/xemacps_intr.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{emacps_v3_2 => emacps_v3_7}/src/xemacps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3}/src/xgpiops.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/xgpiops.h (94%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/xgpiops_g.c (90%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3}/src/xgpiops_hw.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/xgpiops_hw.h (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/xgpiops_intr.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/xgpiops_selftest.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3}/src/xgpiops_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{iicps_v3_1 => iicps_v3_6}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6}/src/xiicps.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6}/src/xiicps.h (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{iicps_v3_1 => iicps_v3_6}/src/xiicps_g.c (91%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6}/src/xiicps_hw.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6}/src/xiicps_hw.h (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6}/src/xiicps_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6}/src/xiicps_master.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6}/src/xiicps_options.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6}/src/xiicps_selftest.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6}/src/xiicps_sinit.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6}/src/xiicps_slave.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{qspips_v3_3 => qspips_v3_4}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{qspips_v3_3 => qspips_v3_4}/src/xqspips.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{qspips_v3_3 => qspips_v3_4}/src/xqspips.h (98%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{qspips_v3_3 => qspips_v3_4}/src/xqspips_g.c (91%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{qspips_v3_3 => qspips_v3_4}/src/xqspips_hw.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{qspips_v3_3 => qspips_v3_4}/src/xqspips_hw.h (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{qspips_v3_3 => qspips_v3_4}/src/xqspips_options.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{qspips_v3_3 => qspips_v3_4}/src/xqspips_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{qspips_v3_3 => qspips_v3_4}/src/xqspips_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{scugic_v3_2 => scugic_v3_9}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9}/src/xscugic.c (82%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9}/src/xscugic.h (87%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{scugic_v3_2 => scugic_v3_9}/src/xscugic_g.c (87%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9}/src/xscugic_hw.c (88%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9}/src/xscugic_hw.h (98%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9}/src/xscugic_intr.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{scugic_v3_2 => scugic_v3_9}/src/xscugic_selftest.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9}/src/xscugic_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{sdps_v2_7 => sdps_v3_4}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4}/src/xsdps.c (81%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4}/src/xsdps.h (90%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{sdps_v2_7 => sdps_v3_4}/src/xsdps_g.c (85%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4}/src/xsdps_hw.h (95%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4}/src/xsdps_options.c (77%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4}/src/xsdps_sinit.c (99%) delete mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/sleep.h delete mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_io.c delete mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_io.h delete mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xstatus.h rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/Makefile (91%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/_exit.c (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/_open.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/_sbrk.c (95%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/abort.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/asm_vectors.S (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/boot.S (84%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/bspconfig.h (87%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/changelog.txt (71%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/close.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/config.make (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/cpu_init.S (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/errno.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/fcntl.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/fstat.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/getpid.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/inbyte.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/isatty.c (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/kill.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/lseek.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/open.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/outbyte.c (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/print.c (90%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/Makefile (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/_profile_clean.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/_profile_init.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/_profile_timer_hw.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/_profile_timer_hw.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/dummy.S (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/mblaze_nt_types.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/profile.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/profile_cg.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/profile_config.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/profile_hist.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/profile_mcount_arm.S (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/profile_mcount_mb.S (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/profile/profile_mcount_ppc.S (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/putnum.c (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/read.c (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/sbrk.c (94%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/sleep.c (78%) create mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/sleep.h rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/smc.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/translation_table.S (72%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/unlink.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/usleep.c (81%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/vectors.c (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/vectors.h (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/write.c (93%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xbasic_types.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xdebug.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xenv.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xenv_standalone.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil-crt0.S (91%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xil_assert.c (83%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xil_assert.h (77%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_cache.c (72%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_cache.h (91%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_cache_l.h (97%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_cache_vxworks.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_errata.h (77%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xil_exception.c (85%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xil_exception.h (90%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_hal.h (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xil_io.c (90%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xil_io.h (74%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_macroback.h (100%) create mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mem.c create mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mem.h rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_misc_psreset_api.c (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_misc_psreset_api.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_mmu.c (85%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_mmu.h (93%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xil_printf.c (98%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_printf.h (91%) create mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c create mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c create mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xil_testcache.c (83%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_testcache.h (92%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xil_testio.c (70%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_testio.h (93%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xil_testmem.c (92%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_testmem.h (79%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xil_types.h (76%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xl2cc.h (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xl2cc_counter.c (86%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xl2cc_counter.h (87%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xparameters_ps.h (98%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xplatform_info.c (73%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xplatform_info.h (80%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xpm_counter.c (90%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xpm_counter.h (96%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xpseudo_asm.h (75%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6}/src/xpseudo_asm_gcc.h (97%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xreg_cortexa9.h (100%) create mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xstatus.h rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xtime_l.c (88%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{standalone_v5_4 => standalone_v6_6}/src/xtime_l.h (83%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{ttcps_v3_1 => ttcps_v3_5}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5}/src/xttcps.c (95%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5}/src/xttcps.h (93%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{ttcps_v3_1 => ttcps_v3_5}/src/xttcps_g.c (94%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5}/src/xttcps_hw.h (90%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5}/src/xttcps_options.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5}/src/xttcps_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{ttcps_v3_1 => ttcps_v3_5}/src/xttcps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{uartps_v3_1 => uartps_v3_6}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6}/src/xuartps.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6}/src/xuartps.h (96%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{uartps_v3_1 => uartps_v3_6}/src/xuartps_g.c (91%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6}/src/xuartps_hw.c (99%) rename FreeRTOS/Demo/{CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6}/src/xuartps_hw.h (98%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6}/src/xuartps_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6}/src/xuartps_options.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{uartps_v3_1 => uartps_v3_6}/src/xuartps_selftest.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3 => CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6}/src/xuartps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{usbps_v2_3 => usbps_v2_4}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{usbps_v2_3 => usbps_v2_4}/src/xusbps.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{usbps_v2_3 => usbps_v2_4}/src/xusbps.h (98%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{usbps_v2_3 => usbps_v2_4}/src/xusbps_endpoint.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{usbps_v2_3 => usbps_v2_4}/src/xusbps_endpoint.h (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{usbps_v2_3 => usbps_v2_4}/src/xusbps_g.c (91%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{usbps_v2_3 => usbps_v2_4}/src/xusbps_hw.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{usbps_v2_3 => usbps_v2_4}/src/xusbps_hw.h (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{usbps_v2_3 => usbps_v2_4}/src/xusbps_intr.c (99%) rename FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/{usbps_v2_3 => usbps_v2_4}/src/xusbps_sinit.c (99%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/Makefile create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_clk.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_clk.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_g.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_hw.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_videoformats.c delete mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/Makefile create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/Makefile rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6}/src/xaxipmon.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{axipmon_v6_5 => axipmon_v6_6}/src/xaxipmon.h (98%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6}/src/xaxipmon_g.c (94%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{axipmon_v6_5 => axipmon_v6_6}/src/xaxipmon_hw.h (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{axipmon_v6_5 => axipmon_v6_6}/src/xaxipmon_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{axipmon_v6_5 => axipmon_v6_6}/src/xaxipmon_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{coresightps_dcc_v1_3 => coresightps_dcc_v1_4}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_4}/src/xcoresightpsdcc.c (92%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_4}/src/xcoresightpsdcc.h (91%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{cpu_cortexr5_v1_1 => cpu_cortexr5_v1_4}/src/Makefile (78%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{cpu_cortexr5_v1_1 => cpu_cortexr5_v1_4}/src/xcpu_cortexr5.h (86%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{csudma_v1_1 => csudma_v1_2}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2}/src/xcsudma.c (90%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{csudma_v1_1 => csudma_v1_2}/src/xcsudma.h (95%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2}/src/xcsudma_g.c (90%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2}/src/xcsudma_hw.h (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2}/src/xcsudma_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2}/src/xcsudma_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{csudma_v1_1 => csudma_v1_2}/src/xcsudma_sinit.c (99%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/Makefile create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_g.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_hw.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_intr.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_sinit.c rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{emacps_v3_3 => emacps_v3_7}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{emacps_v3_3 => emacps_v3_7}/src/xemacps.c (98%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{emacps_v3_3 => emacps_v3_7}/src/xemacps.h (97%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{emacps_v3_3 => emacps_v3_7}/src/xemacps_bd.h (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7}/src/xemacps_bdring.c (97%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7}/src/xemacps_bdring.h (97%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7}/src/xemacps_control.c (99%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_g.c rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{emacps_v3_3 => emacps_v3_7}/src/xemacps_hw.c (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7}/src/xemacps_hw.h (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{emacps_v3_3 => emacps_v3_7}/src/xemacps_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7}/src/xemacps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3}/src/xgpiops.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3}/src/xgpiops.h (94%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/xgpiops_g.c (90%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3}/src/xgpiops_hw.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3}/src/xgpiops_hw.h (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{gpiops_v3_1 => gpiops_v3_3}/src/xgpiops_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3}/src/xgpiops_selftest.c (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3}/src/xgpiops_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6}/src/xiicps.c (97%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6}/src/xiicps.h (98%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{iicps_v3_4 => iicps_v3_6}/src/xiicps_g.c (91%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6}/src/xiicps_hw.c (98%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6}/src/xiicps_hw.h (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6}/src/xiicps_intr.c (97%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6}/src/xiicps_master.c (94%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6}/src/xiicps_options.c (97%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6}/src/xiicps_selftest.c (98%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6}/src/xiicps_sinit.c (97%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6}/src/xiicps_slave.c (96%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{ipipsu_v2_1 => ipipsu_v2_3}/src/Makefile (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{ipipsu_v2_1 => ipipsu_v2_3}/src/xipipsu.c (87%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{ipipsu_v2_1 => ipipsu_v2_3}/src/xipipsu.h (92%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{ipipsu_v2_1 => ipipsu_v2_3}/src/xipipsu_g.c (83%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{ipipsu_v2_1 => ipipsu_v2_3}/src/xipipsu_hw.h (95%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3}/src/xipipsu_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{qspipsu_v1_3 => qspipsu_v1_7}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7}/src/xqspipsu.c (96%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7}/src/xqspipsu.h (85%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{qspipsu_v1_3 => qspipsu_v1_7}/src/xqspipsu_g.c (88%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7}/src/xqspipsu_hw.h (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7}/src/xqspipsu_options.c (92%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{qspipsu_v1_3 => qspipsu_v1_7}/src/xqspipsu_sinit.c (99%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/Makefile create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_g.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_hw.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_sinit.c rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{rtcpsu_v1_3 => rtcpsu_v1_5}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5}/src/xrtcpsu.c (96%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5}/src/xrtcpsu.h (95%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{rtcpsu_v1_3 => rtcpsu_v1_5}/src/xrtcpsu_g.c (90%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{rtcpsu_v1_3 => rtcpsu_v1_5}/src/xrtcpsu_hw.h (98%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{rtcpsu_v1_3 => rtcpsu_v1_5}/src/xrtcpsu_intr.c (98%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5}/src/xrtcpsu_selftest.c (97%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{rtcpsu_v1_3 => rtcpsu_v1_5}/src/xrtcpsu_sinit.c (96%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{scugic_v3_5 => scugic_v3_9}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9}/src/xscugic.c (68%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9}/src/xscugic.h (81%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{scugic_v3_5 => scugic_v3_9}/src/xscugic_g.c (87%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9}/src/xscugic_hw.c (88%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9}/src/xscugic_hw.h (98%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9}/src/xscugic_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9}/src/xscugic_selftest.c (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9}/src/xscugic_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{sdps_v3_1 => sdps_v3_4}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4}/src/xsdps.c (73%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4}/src/xsdps.h (77%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{sdps_v3_1 => sdps_v3_4}/src/xsdps_g.c (89%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4}/src/xsdps_hw.h (90%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4}/src/xsdps_options.c (52%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4}/src/xsdps_sinit.c (97%) delete mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/sleep.h delete mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mpu.c delete mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xstatus.h rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/Makefile (83%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/_exit.c (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/_open.c (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/_sbrk.c (95%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/abort.c (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/asm_vectors.S (93%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/boot.S (85%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/bspconfig.h (87%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/changelog.txt (55%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/close.c (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/config.make (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/cpu_init.S (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/errno.c (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/fcntl.c (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/fstat.c (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/getpid.c (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/inbyte.c (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu0_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu1_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu2_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu3_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu4_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xddr_xmpu5_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xfpd_slcr.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xfpd_slcr_secure.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xfpd_xmpu_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xfpd_xmpu_sink.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xiou_secure_slcr.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xiou_slcr.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xlpd_slcr.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xlpd_slcr_secure.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xlpd_xppu.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xlpd_xppu_sink.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/includes_ps/xocm_xmpu_cfg.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/isatty.c (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/kill.c (89%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/lseek.c (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/mpu.c (93%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/open.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/outbyte.c (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/print.c (85%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/putnum.c (96%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/read.c (82%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/sbrk.c (94%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/sleep.c (61%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/sleep.h rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/uart.c (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/unlink.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/usleep.c (62%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/vectors.c (81%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/vectors.h (92%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/write.c (93%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xbasic_types.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xdebug.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xenv.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xenv_standalone.h (100%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil-crt0.S (87%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xil_assert.c (81%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xil_assert.h (75%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_cache.c (74%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_cache.h (77%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_cache_vxworks.h (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xil_exception.c (63%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xil_exception.h (80%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_hal.h (100%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_io.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_io.h rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_macroback.h (100%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mem.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mem.h rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_mmu.h (97%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mpu.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mpu.h rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xil_printf.c (80%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xil_printf.h (91%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xil_testcache.c (83%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_testcache.h (92%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xil_testio.c (70%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_testio.h (93%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xil_testmem.c (92%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xil_testmem.h (79%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xil_types.h (76%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xparameters_ps.h (88%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xplatform_info.c (72%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xplatform_info.h (80%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xpm_counter.c (87%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xpm_counter.h (97%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xpseudo_asm.h (71%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6}/src/xpseudo_asm_gcc.h (70%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xreg_cortexr5.h (100%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xstatus.h rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xtime_l.c (63%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{standalone_v6_1 => standalone_v6_6}/src/xtime_l.h (84%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3}/src/xsysmonpsu.c (96%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/xsysmonpsu.h (86%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/xsysmonpsu_g.c (88%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/xsysmonpsu_hw.h (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/xsysmonpsu_intr.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{sysmonpsu_v2_0 => sysmonpsu_v2_3}/src/xsysmonpsu_selftest.c (98%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3}/src/xsysmonpsu_sinit.c (97%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{ttcps_v3_2 => ttcps_v3_5}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5}/src/xttcps.c (93%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5}/src/xttcps.h (84%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{ttcps_v3_2 => ttcps_v3_5}/src/xttcps_g.c (94%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5}/src/xttcps_hw.h (90%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5}/src/xttcps_options.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5}/src/xttcps_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{ttcps_v3_2 => ttcps_v3_5}/src/xttcps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{uartps_v3_3 => uartps_v3_6}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6}/src/xuartps.c (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6}/src/xuartps.h (96%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6}/src/xuartps_g.c (91%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6}/src/xuartps_hw.c (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6}/src/xuartps_hw.h (98%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6}/src/xuartps_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6}/src/xuartps_options.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6}/src/xuartps_selftest.c (99%) rename FreeRTOS/Demo/{CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6}/src/xuartps_sinit.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{usbpsu_v1_1 => usbpsu_v1_4}/src/Makefile (100%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.h rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4}/src/xusbpsu.c (95%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{usbpsu_v1_1 => usbpsu_v1_4}/src/xusbpsu.h (78%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{usbpsu_v1_1 => usbpsu_v1_4}/src/xusbpsu_controltransfers.c (90%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4}/src/xusbpsu_endpoint.c (72%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4}/src/xusbpsu_endpoint.h (98%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{usbpsu_v1_1 => usbpsu_v1_4}/src/xusbpsu_g.c (86%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_hibernation.c rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{usbpsu_v1_1 => usbpsu_v1_4}/src/xusbpsu_hw.h (83%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4}/src/xusbpsu_intr.c (70%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4}/src/xusbpsu_sinit.c (99%) create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/Makefile create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_cea861.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.h create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_parse_edid.c create mode 100644 FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_timings_table.c rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{zdma_v1_1 => zdma_v1_5}/src/Makefile (100%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5}/src/xzdma.c (98%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{zdma_v1_1 => zdma_v1_5}/src/xzdma.h (93%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5}/src/xzdma_g.c (68%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5}/src/xzdma_hw.h (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{zdma_v1_1 => zdma_v1_5}/src/xzdma_intr.c (99%) rename FreeRTOS/Demo/{CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1 => CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5}/src/xzdma_selftest.c (99%) rename FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/{zdma_v1_1 => zdma_v1_5}/src/xzdma_sinit.c (99%) diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOSConfig.h index 626493a2b..3bf65213d 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOSConfig.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOSConfig.h @@ -117,6 +117,7 @@ to exclude the API function. */ #define INCLUDE_eTaskGetState 1 #define INCLUDE_xTaskAbortDelay 1 #define INCLUDE_xTaskGetHandle 1 +#define INCLUDE_xSemaphoreGetMutexHolder 1 /* This demo makes use of one or more example stats formatting functions. These format the raw data provided by the uxTaskGetSystemState() function in to human diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOS_asm_vectors.S b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOS_asm_vectors.S index da7065510..0e5b7a637 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOS_asm_vectors.S +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOS_asm_vectors.S @@ -53,85 +53,21 @@ -.org 0 -.text - -.globl _boot -.globl _vector_table .globl _freertos_vector_table - .globl FIQInterrupt .globl IRQInterrupt .globl SErrorInterrupt .globl SynchronousInterrupt -.org 0 - -.section .vectors, "a" - -_vector_table: - -.set VBAR, _vector_table - -.org VBAR - b _boot - -.org (VBAR + 0x80) - b . - -.org (VBAR + 0x100) - b . - -.org (VBAR + 0x180) - b . - - -.org (VBAR + 0x200) - b . - -.org (VBAR + 0x280) - b . - -.org (VBAR + 0x300) - b . - -.org (VBAR + 0x380) - b . - - - -.org (VBAR + 0x400) - b . - -.org (VBAR + 0x480) - b . - -.org (VBAR + 0x500) - b . - -.org (VBAR + 0x580) - b . - -.org (VBAR + 0x600) - b . - -.org (VBAR + 0x680) - b . - -.org (VBAR + 0x700) - b . - -.org (VBAR + 0x780) - b . - - /****************************************************************************** * Vector table to use when FreeRTOS is running. *****************************************************************************/ -.set FREERTOS_VBAR, (VBAR+0x1000) - +.text +.section .freertos_vectors +.align 8 +.set FREERTOS_VBAR, . .org(FREERTOS_VBAR) _freertos_vector_table: b FreeRTOS_SWI_Handler diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/lscript.ld b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/lscript.ld index 4e2ff8a27..0ff6bab67 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/lscript.ld +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/lscript.ld @@ -40,6 +40,7 @@ SECTIONS { .text : { KEEP (*(.vectors)) + KEEP (*(.freertos_vectors)) *(.boot) *(.text) *(.text.*) diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.cproject b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.cproject index d46760bba..6f2169939 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.cproject +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.cproject @@ -1,8 +1,8 @@ - - + + diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.project b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.project index 4261c804c..a764f13fd 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.project +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.project @@ -1,7 +1,7 @@ RTOSDemo_A53_bsp - Created by SDK v2016.4 + Created by SDK v2018.1 diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/Makefile index 71f250e6a..e6a3e6c6b 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/Makefile +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/Makefile @@ -16,16 +16,20 @@ include: $(addsuffix /make.include,$(SUBDIRS)) libs: $(addsuffix /make.libs,$(SUBDIRS)) +clean: $(addsuffix /make.clean,$(SUBDIRS)) + $(PROCESSOR)/lib/libxil.a: $(PROCESSOR)/lib/libxil_init.a cp -f $< $@ %/make.include: $(if $(wildcard $(PROCESSOR)/lib/libxil_init.a),$(PROCESSOR)/lib/libxil.a,) @echo "Running Make include in $(subst /make.include,,$@)" - $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=aarch64-none-elf-gcc" "ARCHIVER=aarch64-none-elf-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-g" + $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=aarch64-none-elf-gcc" "ARCHIVER=aarch64-none-elf-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-g -Wall -Wextra" %/make.libs: include @echo "Running Make libs in $(subst /make.libs,,$@)" - $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=aarch64-none-elf-gcc" "ARCHIVER=aarch64-none-elf-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-g" + $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=aarch64-none-elf-gcc" "ARCHIVER=aarch64-none-elf-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-g -Wall -Wextra" +%/make.clean: + $(MAKE) -C $(subst /make.clean,,$@) -s clean clean: rm -f ${PROCESSOR}/lib/libxil.a diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/include/xparameters.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/include/xparameters.h index 8401c40c1..afb049d71 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/include/xparameters.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/include/xparameters.h @@ -1,22 +1,25 @@ +#ifndef XPARAMETERS_H /* prevent circular inclusions */ +#define XPARAMETERS_H /* by using protection macros */ + /* Definition for CPU ID */ -#define XPAR_CPU_ID 0 +#define XPAR_CPU_ID 0U /* Definitions for peripheral PSU_CORTEXA53_0 */ -#define XPAR_PSU_CORTEXA53_0_CPU_CLK_FREQ_HZ 1099989014 -#define XPAR_PSU_CORTEXA53_0_TIMESTAMP_CLK_FREQ 99998999 +#define XPAR_PSU_CORTEXA53_0_CPU_CLK_FREQ_HZ 1199880000 +#define XPAR_PSU_CORTEXA53_0_TIMESTAMP_CLK_FREQ 99990000 /******************************************************************/ /* Canonical definitions for peripheral PSU_CORTEXA53_0 */ -#define XPAR_CPU_CORTEXA53_0_CPU_CLK_FREQ_HZ 1099989014 -#define XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ 99998999 +#define XPAR_CPU_CORTEXA53_0_CPU_CLK_FREQ_HZ 1199880000 +#define XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ 99990000 /******************************************************************/ /* Definition for PSS REF CLK FREQUENCY */ -#define XPAR_PSU_PSS_REF_CLK_FREQ_HZ 33333000U +#define XPAR_PSU_PSS_REF_CLK_FREQ_HZ 33330000U #include "xparameters_ps.h" @@ -29,192 +32,219 @@ #define STDIN_BASEADDRESS 0xFF000000 #define STDOUT_BASEADDRESS 0xFF000000 +/******************************************************************/ + +/* Platform specific definitions */ +#define PLATFORM_ZYNQMP + +/* Definitions for sleep timer configuration */ +#define XSLEEP_TIMER_IS_DEFAULT_TIMER + + +/******************************************************************/ +/* Definitions for driver AVBUF */ +#define XPAR_XAVBUF_NUM_INSTANCES 1 + +/* Definitions for peripheral PSU_DP */ +#define XPAR_PSU_DP_DEVICE_ID 0 +#define XPAR_PSU_DP_BASEADDR 0xFD4A0000 +#define XPAR_PSU_DP_HIGHADDR 0xFD4AFFFF + + +/******************************************************************/ + +/* Canonical definitions for peripheral PSU_DP */ +#define XPAR_XAVBUF_0_DEVICE_ID XPAR_PSU_DP_DEVICE_ID +#define XPAR_XAVBUF_0_BASEADDR 0xFD4A0000 +#define XPAR_XAVBUF_0_HIGHADDR 0xFD4AFFFF + + /******************************************************************/ /* Definitions for driver AXIPMON */ -#define XPAR_XAXIPMON_NUM_INSTANCES 4 +#define XPAR_XAXIPMON_NUM_INSTANCES 4U /* Definitions for peripheral PSU_APM_0 */ -#define XPAR_PSU_APM_0_DEVICE_ID 0 -#define XPAR_PSU_APM_0_BASEADDR 0xFD0B0000 -#define XPAR_PSU_APM_0_HIGHADDR 0xFD0BFFFF -#define XPAR_PSU_APM_0_GLOBAL_COUNT_WIDTH 32 -#define XPAR_PSU_APM_0_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_PSU_APM_0_ENABLE_EVENT_COUNT 1 -#define XPAR_PSU_APM_0_NUM_MONITOR_SLOTS 6 -#define XPAR_PSU_APM_0_NUM_OF_COUNTERS 10 -#define XPAR_PSU_APM_0_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_PSU_APM_0_ENABLE_EVENT_LOG 0 -#define XPAR_PSU_APM_0_FIFO_AXIS_DEPTH 32 -#define XPAR_PSU_APM_0_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_PSU_APM_0_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_PSU_APM_0_METRIC_COUNT_SCALE 1 -#define XPAR_PSU_APM_0_ENABLE_ADVANCED 1 -#define XPAR_PSU_APM_0_ENABLE_PROFILE 0 -#define XPAR_PSU_APM_0_ENABLE_TRACE 0 -#define XPAR_PSU_APM_0_S_AXI4_BASEADDR 0x00000000 -#define XPAR_PSU_APM_0_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_PSU_APM_0_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_PSU_APM_0_DEVICE_ID 0U +#define XPAR_PSU_APM_0_BASEADDR 0xFD0B0000U +#define XPAR_PSU_APM_0_HIGHADDR 0xFD0BFFFFU +#define XPAR_PSU_APM_0_GLOBAL_COUNT_WIDTH 32U +#define XPAR_PSU_APM_0_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_PSU_APM_0_ENABLE_EVENT_COUNT 1U +#define XPAR_PSU_APM_0_NUM_MONITOR_SLOTS 6U +#define XPAR_PSU_APM_0_NUM_OF_COUNTERS 10U +#define XPAR_PSU_APM_0_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_PSU_APM_0_ENABLE_EVENT_LOG 0U +#define XPAR_PSU_APM_0_FIFO_AXIS_DEPTH 32U +#define XPAR_PSU_APM_0_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_PSU_APM_0_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_PSU_APM_0_METRIC_COUNT_SCALE 1U +#define XPAR_PSU_APM_0_ENABLE_ADVANCED 1U +#define XPAR_PSU_APM_0_ENABLE_PROFILE 0U +#define XPAR_PSU_APM_0_ENABLE_TRACE 0U +#define XPAR_PSU_APM_0_S_AXI4_BASEADDR 0x00000000U +#define XPAR_PSU_APM_0_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_PSU_APM_0_ENABLE_32BIT_FILTER_ID 1U /* Definitions for peripheral PSU_APM_1 */ -#define XPAR_PSU_APM_1_DEVICE_ID 1 -#define XPAR_PSU_APM_1_BASEADDR 0xFFA00000 -#define XPAR_PSU_APM_1_HIGHADDR 0xFFA0FFFF -#define XPAR_PSU_APM_1_GLOBAL_COUNT_WIDTH 32 -#define XPAR_PSU_APM_1_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_PSU_APM_1_ENABLE_EVENT_COUNT 1 -#define XPAR_PSU_APM_1_NUM_MONITOR_SLOTS 1 -#define XPAR_PSU_APM_1_NUM_OF_COUNTERS 3 -#define XPAR_PSU_APM_1_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_PSU_APM_1_ENABLE_EVENT_LOG 0 -#define XPAR_PSU_APM_1_FIFO_AXIS_DEPTH 32 -#define XPAR_PSU_APM_1_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_PSU_APM_1_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_PSU_APM_1_METRIC_COUNT_SCALE 1 -#define XPAR_PSU_APM_1_ENABLE_ADVANCED 1 -#define XPAR_PSU_APM_1_ENABLE_PROFILE 0 -#define XPAR_PSU_APM_1_ENABLE_TRACE 0 -#define XPAR_PSU_APM_1_S_AXI4_BASEADDR 0x00000000 -#define XPAR_PSU_APM_1_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_PSU_APM_1_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_PSU_APM_1_DEVICE_ID 1U +#define XPAR_PSU_APM_1_BASEADDR 0xFFA00000U +#define XPAR_PSU_APM_1_HIGHADDR 0xFFA0FFFFU +#define XPAR_PSU_APM_1_GLOBAL_COUNT_WIDTH 32U +#define XPAR_PSU_APM_1_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_PSU_APM_1_ENABLE_EVENT_COUNT 1U +#define XPAR_PSU_APM_1_NUM_MONITOR_SLOTS 1U +#define XPAR_PSU_APM_1_NUM_OF_COUNTERS 3U +#define XPAR_PSU_APM_1_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_PSU_APM_1_ENABLE_EVENT_LOG 0U +#define XPAR_PSU_APM_1_FIFO_AXIS_DEPTH 32U +#define XPAR_PSU_APM_1_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_PSU_APM_1_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_PSU_APM_1_METRIC_COUNT_SCALE 1U +#define XPAR_PSU_APM_1_ENABLE_ADVANCED 1U +#define XPAR_PSU_APM_1_ENABLE_PROFILE 0U +#define XPAR_PSU_APM_1_ENABLE_TRACE 0U +#define XPAR_PSU_APM_1_S_AXI4_BASEADDR 0x00000000U +#define XPAR_PSU_APM_1_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_PSU_APM_1_ENABLE_32BIT_FILTER_ID 1U /* Definitions for peripheral PSU_APM_2 */ -#define XPAR_PSU_APM_2_DEVICE_ID 2 -#define XPAR_PSU_APM_2_BASEADDR 0xFFA10000 -#define XPAR_PSU_APM_2_HIGHADDR 0xFFA1FFFF -#define XPAR_PSU_APM_2_GLOBAL_COUNT_WIDTH 32 -#define XPAR_PSU_APM_2_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_PSU_APM_2_ENABLE_EVENT_COUNT 1 -#define XPAR_PSU_APM_2_NUM_MONITOR_SLOTS 1 -#define XPAR_PSU_APM_2_NUM_OF_COUNTERS 3 -#define XPAR_PSU_APM_2_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_PSU_APM_2_ENABLE_EVENT_LOG 0 -#define XPAR_PSU_APM_2_FIFO_AXIS_DEPTH 32 -#define XPAR_PSU_APM_2_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_PSU_APM_2_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_PSU_APM_2_METRIC_COUNT_SCALE 1 -#define XPAR_PSU_APM_2_ENABLE_ADVANCED 1 -#define XPAR_PSU_APM_2_ENABLE_PROFILE 0 -#define XPAR_PSU_APM_2_ENABLE_TRACE 0 -#define XPAR_PSU_APM_2_S_AXI4_BASEADDR 0x00000000 -#define XPAR_PSU_APM_2_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_PSU_APM_2_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_PSU_APM_2_DEVICE_ID 2U +#define XPAR_PSU_APM_2_BASEADDR 0xFFA10000U +#define XPAR_PSU_APM_2_HIGHADDR 0xFFA1FFFFU +#define XPAR_PSU_APM_2_GLOBAL_COUNT_WIDTH 32U +#define XPAR_PSU_APM_2_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_PSU_APM_2_ENABLE_EVENT_COUNT 1U +#define XPAR_PSU_APM_2_NUM_MONITOR_SLOTS 1U +#define XPAR_PSU_APM_2_NUM_OF_COUNTERS 3U +#define XPAR_PSU_APM_2_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_PSU_APM_2_ENABLE_EVENT_LOG 0U +#define XPAR_PSU_APM_2_FIFO_AXIS_DEPTH 32U +#define XPAR_PSU_APM_2_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_PSU_APM_2_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_PSU_APM_2_METRIC_COUNT_SCALE 1U +#define XPAR_PSU_APM_2_ENABLE_ADVANCED 1U +#define XPAR_PSU_APM_2_ENABLE_PROFILE 0U +#define XPAR_PSU_APM_2_ENABLE_TRACE 0U +#define XPAR_PSU_APM_2_S_AXI4_BASEADDR 0x00000000U +#define XPAR_PSU_APM_2_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_PSU_APM_2_ENABLE_32BIT_FILTER_ID 1U /* Definitions for peripheral PSU_APM_5 */ -#define XPAR_PSU_APM_5_DEVICE_ID 3 -#define XPAR_PSU_APM_5_BASEADDR 0xFD490000 -#define XPAR_PSU_APM_5_HIGHADDR 0xFD49FFFF -#define XPAR_PSU_APM_5_GLOBAL_COUNT_WIDTH 32 -#define XPAR_PSU_APM_5_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_PSU_APM_5_ENABLE_EVENT_COUNT 1 -#define XPAR_PSU_APM_5_NUM_MONITOR_SLOTS 1 -#define XPAR_PSU_APM_5_NUM_OF_COUNTERS 3 -#define XPAR_PSU_APM_5_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_PSU_APM_5_ENABLE_EVENT_LOG 0 -#define XPAR_PSU_APM_5_FIFO_AXIS_DEPTH 32 -#define XPAR_PSU_APM_5_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_PSU_APM_5_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_PSU_APM_5_METRIC_COUNT_SCALE 1 -#define XPAR_PSU_APM_5_ENABLE_ADVANCED 1 -#define XPAR_PSU_APM_5_ENABLE_PROFILE 0 -#define XPAR_PSU_APM_5_ENABLE_TRACE 0 -#define XPAR_PSU_APM_5_S_AXI4_BASEADDR 0x00000000 -#define XPAR_PSU_APM_5_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_PSU_APM_5_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_PSU_APM_5_DEVICE_ID 3U +#define XPAR_PSU_APM_5_BASEADDR 0xFD490000U +#define XPAR_PSU_APM_5_HIGHADDR 0xFD49FFFFU +#define XPAR_PSU_APM_5_GLOBAL_COUNT_WIDTH 32U +#define XPAR_PSU_APM_5_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_PSU_APM_5_ENABLE_EVENT_COUNT 1U +#define XPAR_PSU_APM_5_NUM_MONITOR_SLOTS 1U +#define XPAR_PSU_APM_5_NUM_OF_COUNTERS 3U +#define XPAR_PSU_APM_5_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_PSU_APM_5_ENABLE_EVENT_LOG 0U +#define XPAR_PSU_APM_5_FIFO_AXIS_DEPTH 32U +#define XPAR_PSU_APM_5_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_PSU_APM_5_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_PSU_APM_5_METRIC_COUNT_SCALE 1U +#define XPAR_PSU_APM_5_ENABLE_ADVANCED 1U +#define XPAR_PSU_APM_5_ENABLE_PROFILE 0U +#define XPAR_PSU_APM_5_ENABLE_TRACE 0U +#define XPAR_PSU_APM_5_S_AXI4_BASEADDR 0x00000000U +#define XPAR_PSU_APM_5_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_PSU_APM_5_ENABLE_32BIT_FILTER_ID 1U /******************************************************************/ /* Canonical definitions for peripheral PSU_APM_0 */ #define XPAR_AXIPMON_0_DEVICE_ID XPAR_PSU_APM_0_DEVICE_ID -#define XPAR_AXIPMON_0_BASEADDR 0xFD0B0000 -#define XPAR_AXIPMON_0_HIGHADDR 0xFD0BFFFF -#define XPAR_AXIPMON_0_GLOBAL_COUNT_WIDTH 32 -#define XPAR_AXIPMON_0_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_AXIPMON_0_ENABLE_EVENT_COUNT 1 -#define XPAR_AXIPMON_0_NUM_MONITOR_SLOTS 6 -#define XPAR_AXIPMON_0_NUM_OF_COUNTERS 10 -#define XPAR_AXIPMON_0_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_AXIPMON_0_ENABLE_EVENT_LOG 0 -#define XPAR_AXIPMON_0_FIFO_AXIS_DEPTH 32 -#define XPAR_AXIPMON_0_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_AXIPMON_0_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_AXIPMON_0_METRIC_COUNT_SCALE 1 -#define XPAR_AXIPMON_0_ENABLE_ADVANCED 1 -#define XPAR_AXIPMON_0_ENABLE_PROFILE 0 -#define XPAR_AXIPMON_0_ENABLE_TRACE 0 -#define XPAR_AXIPMON_0_S_AXI4_BASEADDR 0x00000000 -#define XPAR_AXIPMON_0_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_AXIPMON_0_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_AXIPMON_0_BASEADDR 0xFD0B0000U +#define XPAR_AXIPMON_0_HIGHADDR 0xFD0BFFFFU +#define XPAR_AXIPMON_0_GLOBAL_COUNT_WIDTH 32U +#define XPAR_AXIPMON_0_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_AXIPMON_0_ENABLE_EVENT_COUNT 1U +#define XPAR_AXIPMON_0_NUM_MONITOR_SLOTS 6U +#define XPAR_AXIPMON_0_NUM_OF_COUNTERS 10U +#define XPAR_AXIPMON_0_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_AXIPMON_0_ENABLE_EVENT_LOG 0U +#define XPAR_AXIPMON_0_FIFO_AXIS_DEPTH 32U +#define XPAR_AXIPMON_0_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_AXIPMON_0_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_AXIPMON_0_METRIC_COUNT_SCALE 1U +#define XPAR_AXIPMON_0_ENABLE_ADVANCED 1U +#define XPAR_AXIPMON_0_ENABLE_PROFILE 0U +#define XPAR_AXIPMON_0_ENABLE_TRACE 0U +#define XPAR_AXIPMON_0_S_AXI4_BASEADDR 0x00000000U +#define XPAR_AXIPMON_0_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_AXIPMON_0_ENABLE_32BIT_FILTER_ID 1U /* Canonical definitions for peripheral PSU_APM_1 */ #define XPAR_AXIPMON_1_DEVICE_ID XPAR_PSU_APM_1_DEVICE_ID -#define XPAR_AXIPMON_1_BASEADDR 0xFFA00000 -#define XPAR_AXIPMON_1_HIGHADDR 0xFFA0FFFF -#define XPAR_AXIPMON_1_GLOBAL_COUNT_WIDTH 32 -#define XPAR_AXIPMON_1_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_AXIPMON_1_ENABLE_EVENT_COUNT 1 -#define XPAR_AXIPMON_1_NUM_MONITOR_SLOTS 1 -#define XPAR_AXIPMON_1_NUM_OF_COUNTERS 3 -#define XPAR_AXIPMON_1_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_AXIPMON_1_ENABLE_EVENT_LOG 0 -#define XPAR_AXIPMON_1_FIFO_AXIS_DEPTH 32 -#define XPAR_AXIPMON_1_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_AXIPMON_1_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_AXIPMON_1_METRIC_COUNT_SCALE 1 -#define XPAR_AXIPMON_1_ENABLE_ADVANCED 1 -#define XPAR_AXIPMON_1_ENABLE_PROFILE 0 -#define XPAR_AXIPMON_1_ENABLE_TRACE 0 -#define XPAR_AXIPMON_1_S_AXI4_BASEADDR 0x00000000 -#define XPAR_AXIPMON_1_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_AXIPMON_1_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_AXIPMON_1_BASEADDR 0xFFA00000U +#define XPAR_AXIPMON_1_HIGHADDR 0xFFA0FFFFU +#define XPAR_AXIPMON_1_GLOBAL_COUNT_WIDTH 32U +#define XPAR_AXIPMON_1_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_AXIPMON_1_ENABLE_EVENT_COUNT 1U +#define XPAR_AXIPMON_1_NUM_MONITOR_SLOTS 1U +#define XPAR_AXIPMON_1_NUM_OF_COUNTERS 3U +#define XPAR_AXIPMON_1_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_AXIPMON_1_ENABLE_EVENT_LOG 0U +#define XPAR_AXIPMON_1_FIFO_AXIS_DEPTH 32U +#define XPAR_AXIPMON_1_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_AXIPMON_1_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_AXIPMON_1_METRIC_COUNT_SCALE 1U +#define XPAR_AXIPMON_1_ENABLE_ADVANCED 1U +#define XPAR_AXIPMON_1_ENABLE_PROFILE 0U +#define XPAR_AXIPMON_1_ENABLE_TRACE 0U +#define XPAR_AXIPMON_1_S_AXI4_BASEADDR 0x00000000U +#define XPAR_AXIPMON_1_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_AXIPMON_1_ENABLE_32BIT_FILTER_ID 1U /* Canonical definitions for peripheral PSU_APM_2 */ #define XPAR_AXIPMON_2_DEVICE_ID XPAR_PSU_APM_2_DEVICE_ID -#define XPAR_AXIPMON_2_BASEADDR 0xFFA10000 -#define XPAR_AXIPMON_2_HIGHADDR 0xFFA1FFFF -#define XPAR_AXIPMON_2_GLOBAL_COUNT_WIDTH 32 -#define XPAR_AXIPMON_2_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_AXIPMON_2_ENABLE_EVENT_COUNT 1 -#define XPAR_AXIPMON_2_NUM_MONITOR_SLOTS 1 -#define XPAR_AXIPMON_2_NUM_OF_COUNTERS 3 -#define XPAR_AXIPMON_2_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_AXIPMON_2_ENABLE_EVENT_LOG 0 -#define XPAR_AXIPMON_2_FIFO_AXIS_DEPTH 32 -#define XPAR_AXIPMON_2_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_AXIPMON_2_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_AXIPMON_2_METRIC_COUNT_SCALE 1 -#define XPAR_AXIPMON_2_ENABLE_ADVANCED 1 -#define XPAR_AXIPMON_2_ENABLE_PROFILE 0 -#define XPAR_AXIPMON_2_ENABLE_TRACE 0 -#define XPAR_AXIPMON_2_S_AXI4_BASEADDR 0x00000000 -#define XPAR_AXIPMON_2_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_AXIPMON_2_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_AXIPMON_2_BASEADDR 0xFFA10000U +#define XPAR_AXIPMON_2_HIGHADDR 0xFFA1FFFFU +#define XPAR_AXIPMON_2_GLOBAL_COUNT_WIDTH 32U +#define XPAR_AXIPMON_2_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_AXIPMON_2_ENABLE_EVENT_COUNT 1U +#define XPAR_AXIPMON_2_NUM_MONITOR_SLOTS 1U +#define XPAR_AXIPMON_2_NUM_OF_COUNTERS 3U +#define XPAR_AXIPMON_2_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_AXIPMON_2_ENABLE_EVENT_LOG 0U +#define XPAR_AXIPMON_2_FIFO_AXIS_DEPTH 32U +#define XPAR_AXIPMON_2_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_AXIPMON_2_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_AXIPMON_2_METRIC_COUNT_SCALE 1U +#define XPAR_AXIPMON_2_ENABLE_ADVANCED 1U +#define XPAR_AXIPMON_2_ENABLE_PROFILE 0U +#define XPAR_AXIPMON_2_ENABLE_TRACE 0U +#define XPAR_AXIPMON_2_S_AXI4_BASEADDR 0x00000000U +#define XPAR_AXIPMON_2_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_AXIPMON_2_ENABLE_32BIT_FILTER_ID 1U /* Canonical definitions for peripheral PSU_APM_5 */ #define XPAR_AXIPMON_3_DEVICE_ID XPAR_PSU_APM_5_DEVICE_ID -#define XPAR_AXIPMON_3_BASEADDR 0xFD490000 -#define XPAR_AXIPMON_3_HIGHADDR 0xFD49FFFF -#define XPAR_AXIPMON_3_GLOBAL_COUNT_WIDTH 32 -#define XPAR_AXIPMON_3_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_AXIPMON_3_ENABLE_EVENT_COUNT 1 -#define XPAR_AXIPMON_3_NUM_MONITOR_SLOTS 1 -#define XPAR_AXIPMON_3_NUM_OF_COUNTERS 3 -#define XPAR_AXIPMON_3_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_AXIPMON_3_ENABLE_EVENT_LOG 0 -#define XPAR_AXIPMON_3_FIFO_AXIS_DEPTH 32 -#define XPAR_AXIPMON_3_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_AXIPMON_3_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_AXIPMON_3_METRIC_COUNT_SCALE 1 -#define XPAR_AXIPMON_3_ENABLE_ADVANCED 1 -#define XPAR_AXIPMON_3_ENABLE_PROFILE 0 -#define XPAR_AXIPMON_3_ENABLE_TRACE 0 -#define XPAR_AXIPMON_3_S_AXI4_BASEADDR 0x00000000 -#define XPAR_AXIPMON_3_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_AXIPMON_3_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_AXIPMON_3_BASEADDR 0xFD490000U +#define XPAR_AXIPMON_3_HIGHADDR 0xFD49FFFFU +#define XPAR_AXIPMON_3_GLOBAL_COUNT_WIDTH 32U +#define XPAR_AXIPMON_3_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_AXIPMON_3_ENABLE_EVENT_COUNT 1U +#define XPAR_AXIPMON_3_NUM_MONITOR_SLOTS 1U +#define XPAR_AXIPMON_3_NUM_OF_COUNTERS 3U +#define XPAR_AXIPMON_3_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_AXIPMON_3_ENABLE_EVENT_LOG 0U +#define XPAR_AXIPMON_3_FIFO_AXIS_DEPTH 32U +#define XPAR_AXIPMON_3_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_AXIPMON_3_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_AXIPMON_3_METRIC_COUNT_SCALE 1U +#define XPAR_AXIPMON_3_ENABLE_ADVANCED 1U +#define XPAR_AXIPMON_3_ENABLE_PROFILE 0U +#define XPAR_AXIPMON_3_ENABLE_TRACE 0U +#define XPAR_AXIPMON_3_S_AXI4_BASEADDR 0x00000000U +#define XPAR_AXIPMON_3_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_AXIPMON_3_ENABLE_32BIT_FILTER_ID 1U /******************************************************************/ @@ -226,7 +256,7 @@ #define XPAR_PSU_CAN_1_DEVICE_ID 0 #define XPAR_PSU_CAN_1_BASEADDR 0xFF070000 #define XPAR_PSU_CAN_1_HIGHADDR 0xFF07FFFF -#define XPAR_PSU_CAN_1_CAN_CLK_FREQ_HZ 99998999 +#define XPAR_PSU_CAN_1_CAN_CLK_FREQ_HZ 99990000 /******************************************************************/ @@ -235,7 +265,7 @@ #define XPAR_XCANPS_0_DEVICE_ID XPAR_PSU_CAN_1_DEVICE_ID #define XPAR_XCANPS_0_BASEADDR 0xFF070000 #define XPAR_XCANPS_0_HIGHADDR 0xFF07FFFF -#define XPAR_XCANPS_0_CAN_CLK_FREQ_HZ 99998999 +#define XPAR_XCANPS_0_CAN_CLK_FREQ_HZ 99990000 /******************************************************************/ @@ -269,7 +299,7 @@ #define XPAR_PSU_DDRC_0_BASEADDR 0xFD070000 #define XPAR_PSU_DDRC_0_HIGHADDR 0xFD070FFF #define XPAR_PSU_DDRC_0_HAS_ECC 0 -#define XPAR_PSU_DDRC_0_DDRC_CLK_FREQ_HZ 533328002 +#define XPAR_PSU_DDRC_0_DDRC_CLK_FREQ_HZ 533280000 /******************************************************************/ @@ -278,7 +308,26 @@ #define XPAR_DDRCPSU_0_DEVICE_ID XPAR_PSU_DDRC_0_DEVICE_ID #define XPAR_DDRCPSU_0_BASEADDR 0xFD070000 #define XPAR_DDRCPSU_0_HIGHADDR 0xFD070FFF -#define XPAR_DDRCPSU_0_DDRC_CLK_FREQ_HZ 533328002 +#define XPAR_DDRCPSU_0_DDRC_CLK_FREQ_HZ 533280000 + + +/******************************************************************/ + +/* Definitions for driver DPDMA */ +#define XPAR_XDPDMA_NUM_INSTANCES 1 + +/* Definitions for peripheral PSU_DPDMA */ +#define XPAR_PSU_DPDMA_DEVICE_ID 0 +#define XPAR_PSU_DPDMA_BASEADDR 0xFD4C0000 +#define XPAR_PSU_DPDMA_HIGHADDR 0xFD4CFFFF + + +/******************************************************************/ + +/* Canonical definitions for peripheral PSU_DPDMA */ +#define XPAR_XDPDMA_0_DEVICE_ID XPAR_PSU_DPDMA_DEVICE_ID +#define XPAR_XDPDMA_0_BASEADDR 0xFD4C0000 +#define XPAR_XDPDMA_0_HIGHADDR 0xFD4CFFFF /******************************************************************/ @@ -290,28 +339,31 @@ #define XPAR_PSU_ETHERNET_3_DEVICE_ID 0 #define XPAR_PSU_ETHERNET_3_BASEADDR 0xFF0E0000 #define XPAR_PSU_ETHERNET_3_HIGHADDR 0xFF0EFFFF -#define XPAR_PSU_ETHERNET_3_ENET_CLK_FREQ_HZ 124998749 +#define XPAR_PSU_ETHERNET_3_ENET_CLK_FREQ_HZ 124987500 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_1000MBPS_DIV0 12 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_1000MBPS_DIV1 1 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_100MBPS_DIV0 60 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_100MBPS_DIV1 1 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_10MBPS_DIV0 60 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_10MBPS_DIV1 10 +#define XPAR_PSU_ETHERNET_3_ENET_TSU_CLK_FREQ_HZ 249975000 /******************************************************************/ +#define XPAR_PSU_ETHERNET_3_IS_CACHE_COHERENT 0 /* Canonical definitions for peripheral PSU_ETHERNET_3 */ #define XPAR_XEMACPS_0_DEVICE_ID XPAR_PSU_ETHERNET_3_DEVICE_ID #define XPAR_XEMACPS_0_BASEADDR 0xFF0E0000 #define XPAR_XEMACPS_0_HIGHADDR 0xFF0EFFFF -#define XPAR_XEMACPS_0_ENET_CLK_FREQ_HZ 124998749 +#define XPAR_XEMACPS_0_ENET_CLK_FREQ_HZ 124987500 #define XPAR_XEMACPS_0_ENET_SLCR_1000Mbps_DIV0 12 #define XPAR_XEMACPS_0_ENET_SLCR_1000Mbps_DIV1 1 #define XPAR_XEMACPS_0_ENET_SLCR_100Mbps_DIV0 60 #define XPAR_XEMACPS_0_ENET_SLCR_100Mbps_DIV1 1 #define XPAR_XEMACPS_0_ENET_SLCR_10Mbps_DIV0 60 #define XPAR_XEMACPS_0_ENET_SLCR_10Mbps_DIV1 10 +#define XPAR_XEMACPS_0_ENET_TSU_CLK_FREQ_HZ 249975000 /******************************************************************/ @@ -367,24 +419,24 @@ #define XPAR_PSU_CCI_REG_S_AXI_HIGHADDR 0xFD5EFFFF -/* Definitions for peripheral PSU_CRF_APB */ -#define XPAR_PSU_CRF_APB_S_AXI_BASEADDR 0xFD1A0000 -#define XPAR_PSU_CRF_APB_S_AXI_HIGHADDR 0xFD2DFFFF - - /* Definitions for peripheral PSU_CRL_APB */ #define XPAR_PSU_CRL_APB_S_AXI_BASEADDR 0xFF5E0000 #define XPAR_PSU_CRL_APB_S_AXI_HIGHADDR 0xFF85FFFF +/* Definitions for peripheral PSU_CTRL_IPI */ +#define XPAR_PSU_CTRL_IPI_S_AXI_BASEADDR 0xFF380000 +#define XPAR_PSU_CTRL_IPI_S_AXI_HIGHADDR 0xFF3FFFFF + + /* Definitions for peripheral PSU_DDR_0 */ #define XPAR_PSU_DDR_0_S_AXI_BASEADDR 0x00000000 -#define XPAR_PSU_DDR_0_S_AXI_HIGHADDR 0xFFFFFFFF +#define XPAR_PSU_DDR_0_S_AXI_HIGHADDR 0x7FFFFFFF /* Definitions for peripheral PSU_DDR_1 */ -#define XPAR_PSU_DDR_1_S_AXI_BASEADDR 0x00000000 -#define XPAR_PSU_DDR_1_S_AXI_HIGHADDR 0x7FFFFFFF +#define XPAR_PSU_DDR_1_S_AXI_BASEADDR 0x800000000 +#define XPAR_PSU_DDR_1_S_AXI_HIGHADDR 0x87FFFFFFF /* Definitions for peripheral PSU_DDR_PHY */ @@ -427,16 +479,6 @@ #define XPAR_PSU_DDR_XMPU5_CFG_S_AXI_HIGHADDR 0xFD05FFFF -/* Definitions for peripheral PSU_DP */ -#define XPAR_PSU_DP_S_AXI_BASEADDR 0xFD4A0000 -#define XPAR_PSU_DP_S_AXI_HIGHADDR 0xFD4AFFFF - - -/* Definitions for peripheral PSU_DPDMA */ -#define XPAR_PSU_DPDMA_S_AXI_BASEADDR 0xFD4C0000 -#define XPAR_PSU_DPDMA_S_AXI_HIGHADDR 0xFD4CFFFF - - /* Definitions for peripheral PSU_EFUSE */ #define XPAR_PSU_EFUSE_S_AXI_BASEADDR 0xFFCC0000 #define XPAR_PSU_EFUSE_S_AXI_HIGHADDR 0xFFCCFFFF @@ -517,6 +559,11 @@ #define XPAR_PSU_MBISTJTAG_S_AXI_HIGHADDR 0xFFCFFFFF +/* Definitions for peripheral PSU_MESSAGE_BUFFERS */ +#define XPAR_PSU_MESSAGE_BUFFERS_S_AXI_BASEADDR 0xFF990000 +#define XPAR_PSU_MESSAGE_BUFFERS_S_AXI_HIGHADDR 0xFF99FFFF + + /* Definitions for peripheral PSU_OCM */ #define XPAR_PSU_OCM_S_AXI_BASEADDR 0xFF960000 #define XPAR_PSU_OCM_S_AXI_HIGHADDR 0xFF96FFFF @@ -524,7 +571,7 @@ /* Definitions for peripheral PSU_OCM_RAM_0 */ #define XPAR_PSU_OCM_RAM_0_S_AXI_BASEADDR 0xFFFC0000 -#define XPAR_PSU_OCM_RAM_0_S_AXI_HIGHADDR 0xFFFEFFFF +#define XPAR_PSU_OCM_RAM_0_S_AXI_HIGHADDR 0xFFFFFFFF /* Definitions for peripheral PSU_OCM_XMPU_CFG */ @@ -547,9 +594,14 @@ #define XPAR_PSU_PCIE_DMA_S_AXI_HIGHADDR 0xFD0FFFFF -/* Definitions for peripheral PSU_PCIE_HIGH */ -#define XPAR_PSU_PCIE_HIGH_S_AXI_BASEADDR 0x00000000 -#define XPAR_PSU_PCIE_HIGH_S_AXI_HIGHADDR 0xFFFFFFFF +/* Definitions for peripheral PSU_PCIE_HIGH1 */ +#define XPAR_PSU_PCIE_HIGH1_S_AXI_BASEADDR 0x600000000 +#define XPAR_PSU_PCIE_HIGH1_S_AXI_HIGHADDR 0x7FFFFFFFF + + +/* Definitions for peripheral PSU_PCIE_HIGH2 */ +#define XPAR_PSU_PCIE_HIGH2_S_AXI_BASEADDR 0x8000000000 +#define XPAR_PSU_PCIE_HIGH2_S_AXI_HIGHADDR 0xBFFFFFFFFF /* Definitions for peripheral PSU_PCIE_LOW */ @@ -562,11 +614,6 @@ #define XPAR_PSU_PMU_GLOBAL_0_S_AXI_HIGHADDR 0xFFDBFFFF -/* Definitions for peripheral PSU_PMU_IOMODULE */ -#define XPAR_PSU_PMU_IOMODULE_S_AXI_BASEADDR 0xFFD40000 -#define XPAR_PSU_PMU_IOMODULE_S_AXI_HIGHADDR 0xFFD5FFFF - - /* Definitions for peripheral PSU_QSPI_LINEAR_0 */ #define XPAR_PSU_QSPI_LINEAR_0_S_AXI_BASEADDR 0xC0000000 #define XPAR_PSU_QSPI_LINEAR_0_S_AXI_HIGHADDR 0xDFFFFFFF @@ -632,6 +679,11 @@ #define XPAR_PSU_SMMU_REG_S_AXI_HIGHADDR 0xFD5FFFFF +/* Definitions for peripheral PSU_USB_0 */ +#define XPAR_PSU_USB_0_S_AXI_BASEADDR 0xFF9D0000 +#define XPAR_PSU_USB_0_S_AXI_HIGHADDR 0xFF9DFFFF + + /******************************************************************/ /* Definitions for driver GPIOPS */ @@ -660,14 +712,14 @@ #define XPAR_PSU_I2C_0_DEVICE_ID 0 #define XPAR_PSU_I2C_0_BASEADDR 0xFF020000 #define XPAR_PSU_I2C_0_HIGHADDR 0xFF02FFFF -#define XPAR_PSU_I2C_0_I2C_CLK_FREQ_HZ 99998999 +#define XPAR_PSU_I2C_0_I2C_CLK_FREQ_HZ 99990000 /* Definitions for peripheral PSU_I2C_1 */ #define XPAR_PSU_I2C_1_DEVICE_ID 1 #define XPAR_PSU_I2C_1_BASEADDR 0xFF030000 #define XPAR_PSU_I2C_1_HIGHADDR 0xFF03FFFF -#define XPAR_PSU_I2C_1_I2C_CLK_FREQ_HZ 99998999 +#define XPAR_PSU_I2C_1_I2C_CLK_FREQ_HZ 99990000 /******************************************************************/ @@ -676,25 +728,25 @@ #define XPAR_XIICPS_0_DEVICE_ID XPAR_PSU_I2C_0_DEVICE_ID #define XPAR_XIICPS_0_BASEADDR 0xFF020000 #define XPAR_XIICPS_0_HIGHADDR 0xFF02FFFF -#define XPAR_XIICPS_0_I2C_CLK_FREQ_HZ 99998999 +#define XPAR_XIICPS_0_I2C_CLK_FREQ_HZ 99990000 /* Canonical definitions for peripheral PSU_I2C_1 */ #define XPAR_XIICPS_1_DEVICE_ID XPAR_PSU_I2C_1_DEVICE_ID #define XPAR_XIICPS_1_BASEADDR 0xFF030000 #define XPAR_XIICPS_1_HIGHADDR 0xFF03FFFF -#define XPAR_XIICPS_1_I2C_CLK_FREQ_HZ 99998999 +#define XPAR_XIICPS_1_I2C_CLK_FREQ_HZ 99990000 /******************************************************************/ -#define XPAR_XIPIPSU_NUM_INSTANCES 1 +#define XPAR_XIPIPSU_NUM_INSTANCES 1U /* Parameter definitions for peripheral psu_ipi_0 */ -#define XPAR_PSU_IPI_0_DEVICE_ID 0 -#define XPAR_PSU_IPI_0_BASE_ADDRESS 0xFF300000 -#define XPAR_PSU_IPI_0_BIT_MASK 0x00000001 -#define XPAR_PSU_IPI_0_BUFFER_INDEX 2 -#define XPAR_PSU_IPI_0_INT_ID 67 +#define XPAR_PSU_IPI_0_DEVICE_ID 0U +#define XPAR_PSU_IPI_0_BASE_ADDRESS 0xFF300000U +#define XPAR_PSU_IPI_0_BIT_MASK 0x00000001U +#define XPAR_PSU_IPI_0_BUFFER_INDEX 2U +#define XPAR_PSU_IPI_0_INT_ID 67U /* Canonical definitions for peripheral psu_ipi_0 */ #define XPAR_XIPIPSU_0_DEVICE_ID XPAR_PSU_IPI_0_DEVICE_ID @@ -703,58 +755,50 @@ #define XPAR_XIPIPSU_0_BUFFER_INDEX XPAR_PSU_IPI_0_BUFFER_INDEX #define XPAR_XIPIPSU_0_INT_ID XPAR_PSU_IPI_0_INT_ID -#define XPAR_XIPIPSU_NUM_TARGETS 11 +#define XPAR_XIPIPSU_NUM_TARGETS 7U -#define XPAR_PSU_IPI_0_BIT_MASK 0x00000001 -#define XPAR_PSU_IPI_0_BUFFER_INDEX 2 -#define XPAR_PSU_IPI_1_BIT_MASK 0x00000100 -#define XPAR_PSU_IPI_1_BUFFER_INDEX 0 -#define XPAR_PSU_IPI_2_BIT_MASK 0x00000200 -#define XPAR_PSU_IPI_2_BUFFER_INDEX 1 -#define XPAR_PSU_IPI_3_BIT_MASK 0x00010000 -#define XPAR_PSU_IPI_3_BUFFER_INDEX 7 -#define XPAR_PSU_IPI_4_BIT_MASK 0x00020000 -#define XPAR_PSU_IPI_4_BUFFER_INDEX 7 -#define XPAR_PSU_IPI_5_BIT_MASK 0x00040000 -#define XPAR_PSU_IPI_5_BUFFER_INDEX 7 -#define XPAR_PSU_IPI_6_BIT_MASK 0x00080000 -#define XPAR_PSU_IPI_6_BUFFER_INDEX 7 -#define XPAR_PSU_IPI_7_BIT_MASK 0x01000000 -#define XPAR_PSU_IPI_7_BUFFER_INDEX 3 -#define XPAR_PSU_IPI_8_BIT_MASK 0x02000000 -#define XPAR_PSU_IPI_8_BUFFER_INDEX 4 -#define XPAR_PSU_IPI_9_BIT_MASK 0x04000000 -#define XPAR_PSU_IPI_9_BUFFER_INDEX 5 -#define XPAR_PSU_IPI_10_BIT_MASK 0x08000000 -#define XPAR_PSU_IPI_10_BUFFER_INDEX 6 +#define XPAR_PSU_IPI_0_BIT_MASK 0x00000001U +#define XPAR_PSU_IPI_0_BUFFER_INDEX 2U +#define XPAR_PSU_IPI_1_BIT_MASK 0x00000100U +#define XPAR_PSU_IPI_1_BUFFER_INDEX 0U +#define XPAR_PSU_IPI_2_BIT_MASK 0x00000200U +#define XPAR_PSU_IPI_2_BUFFER_INDEX 1U +#define XPAR_PSU_IPI_3_BIT_MASK 0x00010000U +#define XPAR_PSU_IPI_3_BUFFER_INDEX 7U +#define XPAR_PSU_IPI_4_BIT_MASK 0x00020000U +#define XPAR_PSU_IPI_4_BUFFER_INDEX 7U +#define XPAR_PSU_IPI_5_BIT_MASK 0x00040000U +#define XPAR_PSU_IPI_5_BUFFER_INDEX 7U +#define XPAR_PSU_IPI_6_BIT_MASK 0x00080000U +#define XPAR_PSU_IPI_6_BUFFER_INDEX 7U /* Target List for referring to processor IPI Targets */ #define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_0_CH0_MASK XPAR_PSU_IPI_0_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_0_CH0_INDEX 0 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_0_CH0_INDEX 0U #define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_1_CH0_MASK XPAR_PSU_IPI_0_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_1_CH0_INDEX 0 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_1_CH0_INDEX 0U #define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_2_CH0_MASK XPAR_PSU_IPI_0_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_2_CH0_INDEX 0 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_2_CH0_INDEX 0U #define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_3_CH0_MASK XPAR_PSU_IPI_0_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_3_CH0_INDEX 0 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_3_CH0_INDEX 0U #define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_0_CH0_MASK XPAR_PSU_IPI_1_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_0_CH0_INDEX 1 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_0_CH0_INDEX 1U #define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_1_CH0_MASK XPAR_PSU_IPI_2_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_1_CH0_INDEX 2 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_1_CH0_INDEX 2U #define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH0_MASK XPAR_PSU_IPI_3_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH0_INDEX 3 +#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH0_INDEX 3U #define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH1_MASK XPAR_PSU_IPI_4_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH1_INDEX 4 +#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH1_INDEX 4U #define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH2_MASK XPAR_PSU_IPI_5_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH2_INDEX 5 +#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH2_INDEX 5U #define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH3_MASK XPAR_PSU_IPI_6_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH3_INDEX 6 +#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH3_INDEX 6U /* Definitions for driver QSPIPSU */ #define XPAR_XQSPIPSU_NUM_INSTANCES 1 @@ -763,22 +807,31 @@ #define XPAR_PSU_QSPI_0_DEVICE_ID 0 #define XPAR_PSU_QSPI_0_BASEADDR 0xFF0F0000 #define XPAR_PSU_QSPI_0_HIGHADDR 0xFF0FFFFF -#define XPAR_PSU_QSPI_0_QSPI_CLK_FREQ_HZ 124998749 +#define XPAR_PSU_QSPI_0_QSPI_CLK_FREQ_HZ 124987500 #define XPAR_PSU_QSPI_0_QSPI_MODE 2 #define XPAR_PSU_QSPI_0_QSPI_BUS_WIDTH 2 /******************************************************************/ +#define XPAR_PSU_QSPI_0_IS_CACHE_COHERENT 0 /* Canonical definitions for peripheral PSU_QSPI_0 */ #define XPAR_XQSPIPSU_0_DEVICE_ID XPAR_PSU_QSPI_0_DEVICE_ID #define XPAR_XQSPIPSU_0_BASEADDR 0xFF0F0000 #define XPAR_XQSPIPSU_0_HIGHADDR 0xFF0FFFFF -#define XPAR_XQSPIPSU_0_QSPI_CLK_FREQ_HZ 124998749 +#define XPAR_XQSPIPSU_0_QSPI_CLK_FREQ_HZ 124987500 #define XPAR_XQSPIPSU_0_QSPI_MODE 2 #define XPAR_XQSPIPSU_0_QSPI_BUS_WIDTH 2 +/******************************************************************/ + +/* Definitions for driver RESETPS */ +#define XPAR_XRESETPS_NUM_INSTANCES 1U +/* Definitions for peripheral RESETPS */ +#define XPAR_XRESETPS_DEVICE_ID 0 +#define XPAR_XRESETPS_BASEADDR 0xFFFFFFFFU + /******************************************************************/ /* Definitions for driver RTCPSU */ @@ -801,22 +854,22 @@ /******************************************************************/ /* Definitions for driver SCUGIC */ -#define XPAR_XSCUGIC_NUM_INSTANCES 1 +#define XPAR_XSCUGIC_NUM_INSTANCES 1U /* Definitions for peripheral PSU_ACPU_GIC */ -#define XPAR_PSU_ACPU_GIC_DEVICE_ID 0 -#define XPAR_PSU_ACPU_GIC_BASEADDR 0xF9020000 -#define XPAR_PSU_ACPU_GIC_HIGHADDR 0xF9020FFF -#define XPAR_PSU_ACPU_GIC_DIST_BASEADDR 0xF9010000 +#define XPAR_PSU_ACPU_GIC_DEVICE_ID 0U +#define XPAR_PSU_ACPU_GIC_BASEADDR 0xF9020000U +#define XPAR_PSU_ACPU_GIC_HIGHADDR 0xF9020FFFU +#define XPAR_PSU_ACPU_GIC_DIST_BASEADDR 0xF9010000U /******************************************************************/ /* Canonical definitions for peripheral PSU_ACPU_GIC */ -#define XPAR_SCUGIC_0_DEVICE_ID 0 -#define XPAR_SCUGIC_0_CPU_BASEADDR 0xF9020000 -#define XPAR_SCUGIC_0_CPU_HIGHADDR 0xF9020FFF -#define XPAR_SCUGIC_0_DIST_BASEADDR 0xF9010000 +#define XPAR_SCUGIC_0_DEVICE_ID 0U +#define XPAR_SCUGIC_0_CPU_BASEADDR 0xF9020000U +#define XPAR_SCUGIC_0_CPU_HIGHADDR 0xF9020FFFU +#define XPAR_SCUGIC_0_DIST_BASEADDR 0xF9010000U /******************************************************************/ @@ -828,24 +881,25 @@ #define XPAR_PSU_SD_1_DEVICE_ID 0 #define XPAR_PSU_SD_1_BASEADDR 0xFF170000 #define XPAR_PSU_SD_1_HIGHADDR 0xFF17FFFF -#define XPAR_PSU_SD_1_SDIO_CLK_FREQ_HZ 199998006 +#define XPAR_PSU_SD_1_SDIO_CLK_FREQ_HZ 187481250 #define XPAR_PSU_SD_1_HAS_CD 1 #define XPAR_PSU_SD_1_HAS_WP 1 -#define XPAR_PSU_SD_1_BUS_WIDTH 4 +#define XPAR_PSU_SD_1_BUS_WIDTH 8 #define XPAR_PSU_SD_1_MIO_BANK 1 #define XPAR_PSU_SD_1_HAS_EMIO 0 /******************************************************************/ +#define XPAR_PSU_SD_1_IS_CACHE_COHERENT 0 /* Canonical definitions for peripheral PSU_SD_1 */ #define XPAR_XSDPS_0_DEVICE_ID XPAR_PSU_SD_1_DEVICE_ID #define XPAR_XSDPS_0_BASEADDR 0xFF170000 #define XPAR_XSDPS_0_HIGHADDR 0xFF17FFFF -#define XPAR_XSDPS_0_SDIO_CLK_FREQ_HZ 199998006 +#define XPAR_XSDPS_0_SDIO_CLK_FREQ_HZ 187481250 #define XPAR_XSDPS_0_HAS_CD 1 #define XPAR_XSDPS_0_HAS_WP 1 -#define XPAR_XSDPS_0_BUS_WIDTH 4 +#define XPAR_XSDPS_0_BUS_WIDTH 8 #define XPAR_XSDPS_0_MIO_BANK 1 #define XPAR_XSDPS_0_HAS_EMIO 0 @@ -863,6 +917,7 @@ /******************************************************************/ +#define XPAR_PSU_AMS_REF_FREQMHZ 49.995 /* Canonical definitions for peripheral PSU_AMS */ #define XPAR_XSYSMONPSU_0_DEVICE_ID XPAR_PSU_AMS_DEVICE_ID #define XPAR_XSYSMONPSU_0_BASEADDR 0xFFA50000 @@ -872,133 +927,133 @@ /******************************************************************/ /* Definitions for driver TTCPS */ -#define XPAR_XTTCPS_NUM_INSTANCES 12 +#define XPAR_XTTCPS_NUM_INSTANCES 12U /* Definitions for peripheral PSU_TTC_0 */ -#define XPAR_PSU_TTC_0_DEVICE_ID 0 -#define XPAR_PSU_TTC_0_BASEADDR 0XFF110000 -#define XPAR_PSU_TTC_0_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_0_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_1_DEVICE_ID 1 -#define XPAR_PSU_TTC_1_BASEADDR 0XFF110004 -#define XPAR_PSU_TTC_1_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_1_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_2_DEVICE_ID 2 -#define XPAR_PSU_TTC_2_BASEADDR 0XFF110008 -#define XPAR_PSU_TTC_2_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_2_TTC_CLK_CLKSRC 0 +#define XPAR_PSU_TTC_0_DEVICE_ID 0U +#define XPAR_PSU_TTC_0_BASEADDR 0XFF110000U +#define XPAR_PSU_TTC_0_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_0_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_1_DEVICE_ID 1U +#define XPAR_PSU_TTC_1_BASEADDR 0XFF110004U +#define XPAR_PSU_TTC_1_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_1_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_2_DEVICE_ID 2U +#define XPAR_PSU_TTC_2_BASEADDR 0XFF110008U +#define XPAR_PSU_TTC_2_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_2_TTC_CLK_CLKSRC 0U /* Definitions for peripheral PSU_TTC_1 */ -#define XPAR_PSU_TTC_3_DEVICE_ID 3 -#define XPAR_PSU_TTC_3_BASEADDR 0XFF120000 -#define XPAR_PSU_TTC_3_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_3_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_4_DEVICE_ID 4 -#define XPAR_PSU_TTC_4_BASEADDR 0XFF120004 -#define XPAR_PSU_TTC_4_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_4_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_5_DEVICE_ID 5 -#define XPAR_PSU_TTC_5_BASEADDR 0XFF120008 -#define XPAR_PSU_TTC_5_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_5_TTC_CLK_CLKSRC 0 +#define XPAR_PSU_TTC_3_DEVICE_ID 3U +#define XPAR_PSU_TTC_3_BASEADDR 0XFF120000U +#define XPAR_PSU_TTC_3_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_3_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_4_DEVICE_ID 4U +#define XPAR_PSU_TTC_4_BASEADDR 0XFF120004U +#define XPAR_PSU_TTC_4_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_4_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_5_DEVICE_ID 5U +#define XPAR_PSU_TTC_5_BASEADDR 0XFF120008U +#define XPAR_PSU_TTC_5_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_5_TTC_CLK_CLKSRC 0U /* Definitions for peripheral PSU_TTC_2 */ -#define XPAR_PSU_TTC_6_DEVICE_ID 6 -#define XPAR_PSU_TTC_6_BASEADDR 0XFF130000 -#define XPAR_PSU_TTC_6_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_6_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_7_DEVICE_ID 7 -#define XPAR_PSU_TTC_7_BASEADDR 0XFF130004 -#define XPAR_PSU_TTC_7_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_7_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_8_DEVICE_ID 8 -#define XPAR_PSU_TTC_8_BASEADDR 0XFF130008 -#define XPAR_PSU_TTC_8_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_8_TTC_CLK_CLKSRC 0 +#define XPAR_PSU_TTC_6_DEVICE_ID 6U +#define XPAR_PSU_TTC_6_BASEADDR 0XFF130000U +#define XPAR_PSU_TTC_6_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_6_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_7_DEVICE_ID 7U +#define XPAR_PSU_TTC_7_BASEADDR 0XFF130004U +#define XPAR_PSU_TTC_7_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_7_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_8_DEVICE_ID 8U +#define XPAR_PSU_TTC_8_BASEADDR 0XFF130008U +#define XPAR_PSU_TTC_8_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_8_TTC_CLK_CLKSRC 0U /* Definitions for peripheral PSU_TTC_3 */ -#define XPAR_PSU_TTC_9_DEVICE_ID 9 -#define XPAR_PSU_TTC_9_BASEADDR 0XFF140000 -#define XPAR_PSU_TTC_9_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_9_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_10_DEVICE_ID 10 -#define XPAR_PSU_TTC_10_BASEADDR 0XFF140004 -#define XPAR_PSU_TTC_10_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_10_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_11_DEVICE_ID 11 -#define XPAR_PSU_TTC_11_BASEADDR 0XFF140008 -#define XPAR_PSU_TTC_11_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_11_TTC_CLK_CLKSRC 0 +#define XPAR_PSU_TTC_9_DEVICE_ID 9U +#define XPAR_PSU_TTC_9_BASEADDR 0XFF140000U +#define XPAR_PSU_TTC_9_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_9_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_10_DEVICE_ID 10U +#define XPAR_PSU_TTC_10_BASEADDR 0XFF140004U +#define XPAR_PSU_TTC_10_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_10_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_11_DEVICE_ID 11U +#define XPAR_PSU_TTC_11_BASEADDR 0XFF140008U +#define XPAR_PSU_TTC_11_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_11_TTC_CLK_CLKSRC 0U /******************************************************************/ /* Canonical definitions for peripheral PSU_TTC_0 */ #define XPAR_XTTCPS_0_DEVICE_ID XPAR_PSU_TTC_0_DEVICE_ID -#define XPAR_XTTCPS_0_BASEADDR 0xFF110000 -#define XPAR_XTTCPS_0_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_0_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_0_BASEADDR 0xFF110000U +#define XPAR_XTTCPS_0_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_0_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_1_DEVICE_ID XPAR_PSU_TTC_1_DEVICE_ID -#define XPAR_XTTCPS_1_BASEADDR 0xFF110004 -#define XPAR_XTTCPS_1_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_1_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_1_BASEADDR 0xFF110004U +#define XPAR_XTTCPS_1_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_1_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_2_DEVICE_ID XPAR_PSU_TTC_2_DEVICE_ID -#define XPAR_XTTCPS_2_BASEADDR 0xFF110008 -#define XPAR_XTTCPS_2_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_2_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_2_BASEADDR 0xFF110008U +#define XPAR_XTTCPS_2_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_2_TTC_CLK_CLKSRC 0U /* Canonical definitions for peripheral PSU_TTC_1 */ #define XPAR_XTTCPS_3_DEVICE_ID XPAR_PSU_TTC_3_DEVICE_ID -#define XPAR_XTTCPS_3_BASEADDR 0xFF120000 -#define XPAR_XTTCPS_3_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_3_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_3_BASEADDR 0xFF120000U +#define XPAR_XTTCPS_3_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_3_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_4_DEVICE_ID XPAR_PSU_TTC_4_DEVICE_ID -#define XPAR_XTTCPS_4_BASEADDR 0xFF120004 -#define XPAR_XTTCPS_4_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_4_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_4_BASEADDR 0xFF120004U +#define XPAR_XTTCPS_4_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_4_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_5_DEVICE_ID XPAR_PSU_TTC_5_DEVICE_ID -#define XPAR_XTTCPS_5_BASEADDR 0xFF120008 -#define XPAR_XTTCPS_5_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_5_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_5_BASEADDR 0xFF120008U +#define XPAR_XTTCPS_5_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_5_TTC_CLK_CLKSRC 0U /* Canonical definitions for peripheral PSU_TTC_2 */ #define XPAR_XTTCPS_6_DEVICE_ID XPAR_PSU_TTC_6_DEVICE_ID -#define XPAR_XTTCPS_6_BASEADDR 0xFF130000 -#define XPAR_XTTCPS_6_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_6_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_6_BASEADDR 0xFF130000U +#define XPAR_XTTCPS_6_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_6_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_7_DEVICE_ID XPAR_PSU_TTC_7_DEVICE_ID -#define XPAR_XTTCPS_7_BASEADDR 0xFF130004 -#define XPAR_XTTCPS_7_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_7_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_7_BASEADDR 0xFF130004U +#define XPAR_XTTCPS_7_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_7_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_8_DEVICE_ID XPAR_PSU_TTC_8_DEVICE_ID -#define XPAR_XTTCPS_8_BASEADDR 0xFF130008 -#define XPAR_XTTCPS_8_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_8_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_8_BASEADDR 0xFF130008U +#define XPAR_XTTCPS_8_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_8_TTC_CLK_CLKSRC 0U /* Canonical definitions for peripheral PSU_TTC_3 */ #define XPAR_XTTCPS_9_DEVICE_ID XPAR_PSU_TTC_9_DEVICE_ID -#define XPAR_XTTCPS_9_BASEADDR 0xFF140000 -#define XPAR_XTTCPS_9_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_9_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_9_BASEADDR 0xFF140000U +#define XPAR_XTTCPS_9_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_9_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_10_DEVICE_ID XPAR_PSU_TTC_10_DEVICE_ID -#define XPAR_XTTCPS_10_BASEADDR 0xFF140004 -#define XPAR_XTTCPS_10_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_10_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_10_BASEADDR 0xFF140004U +#define XPAR_XTTCPS_10_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_10_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_11_DEVICE_ID XPAR_PSU_TTC_11_DEVICE_ID -#define XPAR_XTTCPS_11_BASEADDR 0xFF140008 -#define XPAR_XTTCPS_11_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_11_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_11_BASEADDR 0xFF140008U +#define XPAR_XTTCPS_11_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_11_TTC_CLK_CLKSRC 0U /******************************************************************/ @@ -1010,7 +1065,7 @@ #define XPAR_PSU_UART_0_DEVICE_ID 0 #define XPAR_PSU_UART_0_BASEADDR 0xFF000000 #define XPAR_PSU_UART_0_HIGHADDR 0xFF00FFFF -#define XPAR_PSU_UART_0_UART_CLK_FREQ_HZ 99998999 +#define XPAR_PSU_UART_0_UART_CLK_FREQ_HZ 99990000 #define XPAR_PSU_UART_0_HAS_MODEM 0 @@ -1018,7 +1073,7 @@ #define XPAR_PSU_UART_1_DEVICE_ID 1 #define XPAR_PSU_UART_1_BASEADDR 0xFF010000 #define XPAR_PSU_UART_1_HIGHADDR 0xFF01FFFF -#define XPAR_PSU_UART_1_UART_CLK_FREQ_HZ 99998999 +#define XPAR_PSU_UART_1_UART_CLK_FREQ_HZ 99990000 #define XPAR_PSU_UART_1_HAS_MODEM 0 @@ -1028,14 +1083,14 @@ #define XPAR_XUARTPS_0_DEVICE_ID XPAR_PSU_UART_0_DEVICE_ID #define XPAR_XUARTPS_0_BASEADDR 0xFF000000 #define XPAR_XUARTPS_0_HIGHADDR 0xFF00FFFF -#define XPAR_XUARTPS_0_UART_CLK_FREQ_HZ 99998999 +#define XPAR_XUARTPS_0_UART_CLK_FREQ_HZ 99990000 #define XPAR_XUARTPS_0_HAS_MODEM 0 /* Canonical definitions for peripheral PSU_UART_1 */ #define XPAR_XUARTPS_1_DEVICE_ID XPAR_PSU_UART_1_DEVICE_ID #define XPAR_XUARTPS_1_BASEADDR 0xFF010000 #define XPAR_XUARTPS_1_HIGHADDR 0xFF01FFFF -#define XPAR_XUARTPS_1_UART_CLK_FREQ_HZ 99998999 +#define XPAR_XUARTPS_1_UART_CLK_FREQ_HZ 99990000 #define XPAR_XUARTPS_1_HAS_MODEM 0 @@ -1044,16 +1099,17 @@ /* Definitions for driver USBPSU */ #define XPAR_XUSBPSU_NUM_INSTANCES 1 -/* Definitions for peripheral PSU_USB_0 */ -#define XPAR_PSU_USB_0_DEVICE_ID 0 -#define XPAR_PSU_USB_0_BASEADDR 0xFE200000 -#define XPAR_PSU_USB_0_HIGHADDR 0xFE20FFFF +/* Definitions for peripheral PSU_USB_XHCI_0 */ +#define XPAR_PSU_USB_XHCI_0_DEVICE_ID 0 +#define XPAR_PSU_USB_XHCI_0_BASEADDR 0xFE200000 +#define XPAR_PSU_USB_XHCI_0_HIGHADDR 0xFE20FFFF /******************************************************************/ -/* Canonical definitions for peripheral PSU_USB_0 */ -#define XPAR_XUSBPSU_0_DEVICE_ID XPAR_PSU_USB_0_DEVICE_ID +#define XPAR_PSU_USB_XHCI_0_IS_CACHE_COHERENT 0 +/* Canonical definitions for peripheral PSU_USB_XHCI_0 */ +#define XPAR_XUSBPSU_0_DEVICE_ID XPAR_PSU_USB_XHCI_0_DEVICE_ID #define XPAR_XUSBPSU_0_BASEADDR 0xFE200000 #define XPAR_XUSBPSU_0_HIGHADDR 0xFE20FFFF @@ -1067,14 +1123,14 @@ #define XPAR_PSU_WDT_0_DEVICE_ID 0 #define XPAR_PSU_WDT_0_BASEADDR 0xFF150000 #define XPAR_PSU_WDT_0_HIGHADDR 0xFF15FFFF -#define XPAR_PSU_WDT_0_WDT_CLK_FREQ_HZ 99999001 +#define XPAR_PSU_WDT_0_WDT_CLK_FREQ_HZ 99989998 /* Definitions for peripheral PSU_WDT_1 */ #define XPAR_PSU_WDT_1_DEVICE_ID 1 #define XPAR_PSU_WDT_1_BASEADDR 0xFD4D0000 #define XPAR_PSU_WDT_1_HIGHADDR 0xFD4DFFFF -#define XPAR_PSU_WDT_1_WDT_CLK_FREQ_HZ 99999001 +#define XPAR_PSU_WDT_1_WDT_CLK_FREQ_HZ 99989998 /******************************************************************/ @@ -1083,13 +1139,13 @@ #define XPAR_XWDTPS_0_DEVICE_ID XPAR_PSU_WDT_0_DEVICE_ID #define XPAR_XWDTPS_0_BASEADDR 0xFF150000 #define XPAR_XWDTPS_0_HIGHADDR 0xFF15FFFF -#define XPAR_XWDTPS_0_WDT_CLK_FREQ_HZ 99999001 +#define XPAR_XWDTPS_0_WDT_CLK_FREQ_HZ 99989998 /* Canonical definitions for peripheral PSU_WDT_1 */ #define XPAR_XWDTPS_1_DEVICE_ID XPAR_PSU_WDT_1_DEVICE_ID #define XPAR_XWDTPS_1_BASEADDR 0xFD4D0000 #define XPAR_XWDTPS_1_HIGHADDR 0xFD4DFFFF -#define XPAR_XWDTPS_1_WDT_CLK_FREQ_HZ 99999001 +#define XPAR_XWDTPS_1_WDT_CLK_FREQ_HZ 99989998 /******************************************************************/ @@ -1227,6 +1283,22 @@ /******************************************************************/ +#define XPAR_PSU_ADMA_0_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_1_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_2_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_3_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_4_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_5_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_6_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_7_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_0_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_1_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_2_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_3_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_4_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_5_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_6_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_7_IS_CACHE_COHERENT 0 /* Canonical definitions for peripheral PSU_ADMA_0 */ #define XPAR_XZDMA_0_DEVICE_ID XPAR_PSU_ADMA_0_DEVICE_ID #define XPAR_XZDMA_0_BASEADDR 0xFFA80000 @@ -1342,3 +1414,4 @@ /******************************************************************/ +#endif /* end of protection macro */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/Makefile new file mode 100644 index 000000000..2a2195c4d --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/Makefile @@ -0,0 +1,40 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +CC_FLAGS = $(COMPILER_FLAGS) +ECC_FLAGS = $(EXTRA_COMPILER_FLAGS) + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +OUTS = *.o + +LIBSOURCES:=*.c +INCLUDEFILES:=*.h + +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) + +libs: banner avbuf_libs clean + +%.o: %.c + ${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) -o $@ $< + +banner: + echo "Compiling avbuf" + +avbuf_libs: ${OBJECTS} + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} + +.PHONY: include +include: avbuf_includes + +avbuf_includes: + ${CP} ${INCLUDEFILES} ${INCLUDEDIR} + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf.c new file mode 100644 index 000000000..34e841ff5 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf.c @@ -0,0 +1,1092 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf.c + * + * This file implements all the functions related to the Video Pipeline of the + * DisplayPort Subsystem. See xavbuf.h for the detailed description of the + * driver. + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   aad  06/24/17 Initial release.
+ * 2.0   aad  10/08/17 Some APIs to use enums instead of Macros.
+ *		       Some bug fixes.
+ * 
+ * +*******************************************************************************/ +/******************************* Include Files ********************************/ +#include "xavbuf.h" +#include "xstatus.h" + +/**************************** Constant Definitions ****************************/ +const XAVBuf_VideoAttribute XAVBuf_SupportedFormats[XAVBUF_NUM_SUPPORTED]; + +/******************************************************************************/ +/** + * This function sets the scaling factors depending on the source video stream. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param RegOffset is the register offset of the SF0 register from the + * DP BaseAddress. + * @param Scaling Factors is a pointer to the scaling factors needed for + * scaling colors to 12 BPC. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +static void XAVBuf_SetScalingFactors(XAVBuf *InstancePtr, u32 RegOffset, + u32 *ScalingFactors) +{ + u32 Index = 0; + for (Index = 0; Index < 3; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + RegOffset + (Index * 4), ScalingFactors[Index]); + } + +} + +/******************************************************************************/ +/** + * This function sets the Layer Control for Video and Graphics layers. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param RegOffset is the register offset of Video Layer or Graphics + * Layer from the base address + * @param Video is a pointer to the XAVBuf_VideoAttribute struct which + * has been configured for the particular layer + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +static void XAVBuf_SetLayerControl(XAVBuf *InstancePtr, u32 RegOffset, + XAVBuf_VideoAttribute *Video) +{ + u32 RegVal = 0; + + RegVal = (Video->IsRGB << + XAVBUF_V_BLEND_LAYER0_CONTROL_RGB_MODE_SHIFT) | + Video->SamplingEn; + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, RegOffset, RegVal); +} + +/******************************************************************************/ +/** + * This function applies Attributes for Live source(Video/Graphics). + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param RegConfig is a register offset for Video or Graphics config + * register + * @param Video is a pointer to the attributes of the video to be applied + * + * @return None. + * + * @note Live source can be live Video or Live Graphics. +******************************************************************************/ +static void XAVBuf_SetLiveVideoAttributes(XAVBuf *InstancePtr, u32 RegConfig, + XAVBuf_VideoAttribute *Video) +{ + u32 RegVal = 0; + + RegVal |= Video->Value << XAVBUF_BUF_LIVE_VID_CFG_FORMAT_SHIFT; + RegVal |= Video->BPP/6 - 3; + RegVal |= Video->Swap << XAVBUF_BUF_LIVE_VID_CFG_CB_FIRST_SHIFT; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, RegConfig, RegVal); +} + +/******************************************************************************/ +/** + * This function applies Attributes for Non - Live source(Video/Graphics). + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param VideoSrc is the source of the Non-Live Video + * @param Video is a pointer to the attributes of the video to be applied + * + * @return None. + * + * @note Non Live source can be Non Live Video or Non Live Graphics. +******************************************************************************/ +static void XAVBuf_SetNonLiveVideoAttributes(XAVBuf *InstancePtr, u32 VideoSrc, + XAVBuf_VideoAttribute *Video) +{ + u32 RegVal = 0; + + RegVal = XAVBuf_ReadReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_FORMAT); + if(VideoSrc == XAVBUF_VIDSTREAM1_NONLIVE) { + RegVal &= ~XAVBUF_BUF_FORMAT_NL_VID_FORMAT_MASK; + RegVal |= Video->Value; + } + else if (VideoSrc == XAVBUF_VIDSTREAM2_NONLIVE_GFX) { + RegVal &= ~XAVBUF_BUF_FORMAT_NL_GRAPHX_FORMAT_MASK; + RegVal |= (Video->Value) << + XAVBUF_BUF_FORMAT_NL_GRAPHX_FORMAT_SHIFT; + } + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_BUF_FORMAT, + RegVal); +} + +/******************************************************************************/ +/** + * This function programs the coeffitients for Color Space Conversion. + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param RegOffset is a register offset for Video or Graphics config + * register + * @param Video is a pointer to the XAVBuf_Attribute structure + * + * @return None. + * + * @note None. +******************************************************************************/ +static void XAVBuf_InConvertToRGB(XAVBuf *InstancePtr, u32 RegOffset, + XAVBuf_VideoAttribute *Video) +{ + u16 Index; + u16 *CSCMatrix; + u16 *OffsetMatrix; + + /* SDTV Coefficients */ + u16 CSCCoeffs[] = { 0x1000, 0x0000, 0x166F, + 0x1000, 0x7A7F, 0x7493, + 0x1000, 0x1C5A, 0x0000 }; + u16 CSCOffset[] = { 0x0000, 0x1800, 0x1800 }; + u16 RGBCoeffs[] = { 0x1000, 0x0000, 0x0000, + 0x0000, 0x1000, 0x0000, + 0x0000, 0x0000, 0x1000 }; + u16 RGBOffset[] = { 0x0000, 0x0000, 0x0000 }; + if(Video->IsRGB) { + CSCMatrix = RGBCoeffs; + OffsetMatrix = RGBOffset; + } + else { + CSCMatrix = CSCCoeffs; + OffsetMatrix = CSCOffset; + } + /* Program Colorspace conversion coefficients */ + for (Index = 9; Index < 12; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + RegOffset + (Index * 4), + OffsetMatrix[Index - 9]); + } + + /* Program Colorspace conversion matrix */ + for (Index = 0; Index < 9; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + RegOffset + (Index * 4), CSCMatrix[Index]); + } + +} + +/******************************************************************************/ +/** + * This function converts the Blender output to the desired output format. + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param RegConfig is a register offset for Video or Graphics config + * register + * @param Video is a pointer to the XAVBuf_Attribute structure + * + * @return None. + * + * @note None. +******************************************************************************/ +static void XAVBuf_InConvertToOutputFormat(XAVBuf *InstancePtr, + XAVBuf_VideoAttribute *Video) + +{ u32 Index = 0; + u32 RegOffset = XAVBUF_V_BLEND_RGB2YCBCR_COEFF0; + u32 ColorOffset = XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET; + u8 Value = Video->Value; + u16 *MatrixCoeff; + u16 *MatrixOffset; + + /* SDTV Coeffitients */ + u16 CSCCoeffs[] = { 0x04C8, 0x0964, 0x01D3, + 0x7D4C, 0x7AB4, 0x0800, + 0x0800, 0x7945, 0x7EB5 }; + u16 CSCOffset[] = { 0x0000, 0x800, 0x800 }; + u16 RGBCoeffs[] = { 0x1000, 0x0000, 0x0000, + 0x0000, 0x1000, 0x0000, + 0x0000, 0x0000, 0x1000 }; + u16 RGBOffset[] = { 0x0000, 0x0000, 0x0000 }; + + + if(Value) { + MatrixCoeff = CSCCoeffs; + MatrixOffset = CSCOffset; + + } + else { + MatrixCoeff = RGBCoeffs; + MatrixOffset = RGBOffset; + } + + for (Index = 0; Index < 9; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + RegOffset + (Index * 4), MatrixCoeff[Index]); + } + for (Index = 0; Index < 3; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + ColorOffset + (Index * 4), + (MatrixOffset[Index] << + XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_POST_OFFSET_SHIFT)); + } +} +/******************************************************************************/ +/** + * This function configures the Video Pipeline for the selected source + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param VideoSrc is a parameter which indicates which Video Source + * selected + * + * @return None. + * + * @note None. +******************************************************************************/ +static int XAVBuf_ConfigureVideo(XAVBuf *InstancePtr, u8 VideoSrc) +{ + + u32 RegConfig = 0; + u32 ScalingOffset = 0; + u32 LayerOffset = 0; + u32 CSCOffset = 0; + XAVBuf_VideoAttribute *Video = NULL; + u32 *ScalingFactors = NULL; + + Xil_AssertNonvoid(InstancePtr != NULL); + switch(VideoSrc) { + case XAVBUF_VIDSTREAM1_LIVE: + RegConfig = XAVBUF_BUF_LIVE_VID_CFG; + ScalingOffset = XAVBUF_BUF_LIVE_VID_COMP0_SF; + LayerOffset = XAVBUF_V_BLEND_LAYER0_CONTROL; + CSCOffset = XAVBUF_V_BLEND_IN1CSC_COEFF0; + Video = InstancePtr->AVMode.LiveVideo; + ScalingFactors = Video->SF; + + /* Set the Video Attributes */ + XAVBuf_SetLiveVideoAttributes(InstancePtr, RegConfig, + Video); + break; + + case XAVBUF_VIDSTREAM2_LIVE_GFX: + RegConfig = XAVBUF_BUF_LIVE_GFX_CFG; + ScalingOffset = XAVBUF_BUF_LIVE_GFX_COMP0_SF; + LayerOffset = XAVBUF_V_BLEND_LAYER1_CONTROL; + CSCOffset = XAVBUF_V_BLEND_IN2CSC_COEFF0; + Video = InstancePtr->AVMode.LiveGraphics; + ScalingFactors = Video->SF; + + /* Set the Video Attributes */ + XAVBuf_SetLiveVideoAttributes(InstancePtr, RegConfig, + Video); + break; + + case XAVBUF_VIDSTREAM1_NONLIVE: + RegConfig = XAVBUF_BUF_LIVE_GFX_CFG; + ScalingOffset = XAVBUF_BUF_VID_COMP0_SCALE_FACTOR; + LayerOffset = XAVBUF_V_BLEND_LAYER0_CONTROL; + CSCOffset = XAVBUF_V_BLEND_IN1CSC_COEFF0; + Video = InstancePtr->AVMode.NonLiveVideo; + ScalingFactors = Video->SF; + + /* Set the Video Attributes */ + XAVBuf_SetNonLiveVideoAttributes(InstancePtr, VideoSrc, + Video); + break; + + case XAVBUF_VIDSTREAM2_NONLIVE_GFX: + RegConfig = XAVBUF_BUF_LIVE_GFX_CFG; + ScalingOffset = XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR; + LayerOffset = XAVBUF_V_BLEND_LAYER1_CONTROL; + CSCOffset = XAVBUF_V_BLEND_IN2CSC_COEFF0; + Video = InstancePtr->AVMode.NonLiveGraphics; + ScalingFactors = Video->SF; + + /* Set the Video Attributes */ + XAVBuf_SetNonLiveVideoAttributes(InstancePtr, VideoSrc, + Video); + break; + case XAVBUF_VIDSTREAM1_TPG: + RegConfig |= 1 << + XAVBUF_V_BLEND_LAYER0_CONTROL_RGB_MODE_SHIFT; + RegConfig |= 1 << + XAVBUF_V_BLEND_LAYER0_CONTROL_BYPASS_SHIFT; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_V_BLEND_LAYER0_CONTROL, + RegConfig); + break; + default: + return XST_FAILURE; + } + /* Setting the scaling factors */ + XAVBuf_SetScalingFactors(InstancePtr, ScalingOffset, ScalingFactors); + /* Layer Control */ + XAVBuf_SetLayerControl(InstancePtr, LayerOffset, Video); + /* Colorspace conversion */ + XAVBuf_InConvertToRGB(InstancePtr, CSCOffset, Video); + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function intializes the configuration for the AVBuf Instance. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param BaseAddr sets the base address of the AVBuf instance + * @param Deviceid is the id of the device from the design. + * + * @return None. + * + * @note Base address and DeviceId is same as the DP Core driver. + * +*******************************************************************************/ +void XAVBuf_CfgInitialize(XAVBuf *InstancePtr, u32 BaseAddr, u16 DeviceId) +{ + Xil_AssertVoid(InstancePtr != NULL); + + InstancePtr->Config.DeviceId = DeviceId; + InstancePtr->Config.BaseAddr = BaseAddr; +} + +/******************************************************************************/ +/** + * This function initializes all the data structures of the XAVBuf Instance. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XAVBuf_Initialize(XAVBuf *InstancePtr) +{ + Xil_AssertVoid(InstancePtr != NULL); + + InstancePtr->AVMode.NonLiveVideo = NULL; + InstancePtr->AVMode.LiveVideo = NULL; + InstancePtr->AVMode.LiveGraphics = NULL; + InstancePtr->AVMode.NonLiveGraphics = NULL; + InstancePtr->AVMode.VideoSrc = XAVBUF_VIDSTREAM1_NONE; + InstancePtr->AVMode.GraphicsSrc = XAVBUF_VIDSTREAM2_NONE; + InstancePtr->AVMode.Audio = NULL; + InstancePtr->AVMode.GraphicsAudio = NULL; + InstancePtr->AVMode.AudioSrc1 = XAVBUF_AUDSTREAM1_NO_AUDIO; + InstancePtr->AVMode.AudioSrc2 = XAVBUF_AUDSTREAM2_NO_AUDIO; + + InstancePtr->Blender.GlobalAlphaEn = 0; + InstancePtr->Blender.Alpha = 0; + InstancePtr->Blender.OutputVideo = NULL; + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_AUD_SOFT_RST, 0); +} + +/******************************************************************************/ +/** + * This function selects the source for the Video and Graphics streams that are + * passed on to the blender block. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param VidStream selects the stream coming from the video sources + * @param GfxStream selects the stream coming from the graphics sources + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XAVBuf_InputVideoSelect(XAVBuf *InstancePtr, XAVBuf_VideoStream VidStream, + XAVBuf_GfxStream GfxStream) +{ + + + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid((VidStream != XAVBUF_VIDSTREAM1_LIVE) | + (VidStream != XAVBUF_VIDSTREAM1_NONLIVE) | + (VidStream != XAVBUF_VIDSTREAM1_TPG) | + (VidStream != XAVBUF_VIDSTREAM1_NONE)); + Xil_AssertVoid((GfxStream != XAVBUF_VIDSTREAM2_DISABLEGFX) | + (GfxStream != XAVBUF_VIDSTREAM2_NONLIVE_GFX) | + (GfxStream != XAVBUF_VIDSTREAM2_LIVE_GFX) | + (GfxStream != XAVBUF_VIDSTREAM2_NONE)); + + InstancePtr->AVMode.VideoSrc = VidStream; + InstancePtr->AVMode.GraphicsSrc = GfxStream; + u32 RegVal; + RegVal = XAVBuf_ReadReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT); + RegVal &= ~(XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM2_SEL_MASK | + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM1_SEL_MASK); + RegVal |= VidStream | GfxStream; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT, RegVal); +} + +/******************************************************************************/ +/** + * This function sets the video format for the non-live video + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Format is the enum for the non-live video format + * + * @return XST_SUCCESS if the correct format has been set. + * XST_FAILURE if the format is invalid. + * + * @note None. +*******************************************************************************/ +int XAVBuf_SetInputNonLiveVideoFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format) +{ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((Format >= CbY0CrY1) | (Format <= YV16Ci2_420_10BPC)); + + InstancePtr->AVMode.NonLiveVideo = + XAVBuf_GetNLiveVideoAttribute(Format); + if(InstancePtr->AVMode.NonLiveVideo == NULL) + return XST_FAILURE; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the graphics format for the non-live video + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Format is the enum for the non-live video format + * + * @return XST_SUCCESS if the correct format has been set. + * XST_FAILURE if the format is invalid. + * + * @note None. +*******************************************************************************/ +int XAVBuf_SetInputNonLiveGraphicsFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format) +{ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((Format >= RGBA8888) |( Format <= YOnly)); + + InstancePtr->AVMode.NonLiveGraphics = + XAVBuf_GetNLGraphicsAttribute(Format); + if(InstancePtr->AVMode.NonLiveGraphics == NULL) + return XST_FAILURE; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the video format for the live video + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Format is the enum for the non-live video format + * + * @return XST_SUCCESS if the correct format has been set. + * XST_FAILURE if the format is invalid. + * + * @note None. +*******************************************************************************/ +int XAVBuf_SetInputLiveVideoFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format) +{ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((Format >= RGB_6BPC) | (Format <= YOnly_12BPC)); + + InstancePtr->AVMode.LiveVideo = XAVBuf_GetLiveVideoAttribute(Format); + if(InstancePtr->AVMode.LiveVideo == NULL) + return XST_FAILURE; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the graphics format for the live video + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Format is the enum for the non-live video format + * + * @return XST_SUCCESS if the correct format has been set. + * XST_FAILURE if the format is invalid. + * + * @note None. +*******************************************************************************/ +int XAVBuf_SetInputLiveGraphicsFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format) +{ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((Format >= RGB_6BPC) | (Format <= YOnly_12BPC)); + + InstancePtr->AVMode.LiveGraphics = + XAVBuf_GetLiveVideoAttribute(Format); + if(InstancePtr->AVMode.LiveGraphics == NULL) + return XST_FAILURE; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the Output Video Format + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Format is the enum for the non-live video format + * + * @return XST_SUCCESS if the correct format has been set. + * XST_FAILURE if the format is invalid. + * + * @note None. +*******************************************************************************/ +int XAVBuf_SetOutputVideoFormat(XAVBuf *InstancePtr, XAVBuf_VideoFormat Format) +{ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((Format >= RGB_6BPC) | (Format <= YOnly_12BPC)); + + InstancePtr->Blender.OutputVideo = + XAVBuf_GetLiveVideoAttribute(Format); + if(InstancePtr->Blender.OutputVideo == NULL) + return XST_FAILURE; + else + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the Audio and Video Clock Source and the video timing + * source. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param VideoClk selects the Video Clock Source + * @param AudioClk selects the Audio Clock Source + * + * @return None. + * + * @note System uses PL Clock for Video when Live source is in use. + * +*******************************************************************************/ +void XAVBuf_SetAudioVideoClkSrc(XAVBuf *InstancePtr, u8 VideoClk, u8 AudioClk) +{ + + u32 RegVal = 0; + + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid((VideoClk != XAVBUF_PS_CLK) | + (VideoClk!= XAVBUF_PL_CLK)); + Xil_AssertVoid((AudioClk != XAVBUF_PS_CLK) | + (AudioClk!= XAVBUF_PL_CLK)); + + if((InstancePtr->AVMode.VideoSrc != XAVBUF_VIDSTREAM1_LIVE) && + (InstancePtr->AVMode.GraphicsSrc != XAVBUF_VIDSTREAM2_LIVE_GFX)) { + RegVal = 1 << + XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_TIMING_SRC_SHIFT; + } + else if((InstancePtr->AVMode.VideoSrc == XAVBUF_VIDSTREAM1_LIVE) || + (InstancePtr->AVMode.GraphicsSrc == + XAVBUF_VIDSTREAM2_LIVE_GFX)) { + VideoClk = XAVBUF_PL_CLK; + } + + RegVal |= (VideoClk << + XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_CLK_SRC_SHIFT) | + (AudioClk << + XAVBUF_BUF_AUD_VID_CLK_SOURCE_AUD_CLK_SRC_SHIFT); + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_AUD_VID_CLK_SOURCE, RegVal); + /*Soft Reset VideoPipeline when changing the clock source*/ + XAVBuf_SoftReset(InstancePtr); +} + +/******************************************************************************/ +/** + * This function applies a soft reset to the Audio Video pipeline. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XAVBuf_SoftReset(XAVBuf *InstancePtr) +{ + Xil_AssertVoid(InstancePtr != NULL); + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_BUF_SRST_REG, + XAVBUF_BUF_SRST_REG_VID_RST_MASK); + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_BUF_SRST_REG, 0); +} + +/******************************************************************************/ +/** + * This function looks up if the video format is valid or not for the non-live + * video datapath and returns a pointer to the attributes of the video. + * + * @param Format takes in the video format for which attributes are being + * requested. + * + * @return A pointer to the structure XAVBuf_VideoAttribute if the video + * format is valid, else returns NULL. + * @note None. +*******************************************************************************/ +XAVBuf_VideoAttribute *XAVBuf_GetLiveVideoAttribute(XAVBuf_VideoFormat Format) +{ + u8 Index = 0; + XAVBuf_VideoAttribute *VideoAttribute; + Xil_AssertNonvoid((Format >= RGB_6BPC) | (Format <= YOnly_12BPC)); + + for (Index = RGB_6BPC; Index <= YOnly_12BPC; Index++) { + VideoAttribute = (XAVBuf_VideoAttribute *) + &XAVBuf_SupportedFormats[Index]; + if(Format == VideoAttribute->VideoFormat) { + return VideoAttribute; + } + } + return NULL; +} + +/******************************************************************************/ +/** + * This function looks up if the video format is valid or not and returns a + * pointer to the attributes of the video. + * + * @param Format takes in the video format for which attributes are being + * requested. + * + * @return A pointer to the structure XAVBuf_VideoAttribute if the video + * format is valid, else returns NULL. + * @note None. +*******************************************************************************/ +XAVBuf_VideoAttribute *XAVBuf_GetNLiveVideoAttribute(XAVBuf_VideoFormat Format) +{ + u8 Index = 0; + XAVBuf_VideoAttribute *VideoAttribute; + + Xil_AssertNonvoid((Format >= CbY0CrY1) | (Format <= YV16Ci2_420_10BPC)); + + for (Index = CbY0CrY1; Index <= YV16Ci2_420_10BPC; Index++) { + VideoAttribute = (XAVBuf_VideoAttribute *) + &XAVBuf_SupportedFormats[Index]; + if(Format == VideoAttribute->VideoFormat) { + return VideoAttribute; + } + } + return NULL; +} + +/******************************************************************************/ +/** + * This function looks up if the video format is valid or not and returns a + * pointer to the attributes of the video. + * + * @param Format takes in the video format for which attributes are being + * requested. + * + * @return A pointer to the structure XAVBuf_VideoAttribute if the video + * format is valid, else returns NULL. + * @note None. +*******************************************************************************/ +XAVBuf_VideoAttribute *XAVBuf_GetNLGraphicsAttribute(XAVBuf_VideoFormat Format) +{ + u32 Index = 0; + XAVBuf_VideoAttribute *VideoAttribute; + + Xil_AssertNonvoid((Format >= RGBA8888) | (Format <= YOnly)); + + for(Index = RGBA8888; Index <= YOnly; Index++) { + VideoAttribute = (XAVBuf_VideoAttribute *) + &XAVBuf_SupportedFormats[Index]; + if(Format == VideoAttribute->VideoFormat) { + return VideoAttribute; + } + } + return NULL; +} + +/******************************************************************************/ +/** + * This function configures the Video Pipeline + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * + * @return None. + * + * @note None. +******************************************************************************/ +void XAVBuf_ConfigureVideoPipeline(XAVBuf *InstancePtr) +{ + Xil_AssertVoid(InstancePtr != NULL); + + XAVBuf_ConfigureVideo(InstancePtr, InstancePtr->AVMode.VideoSrc); +} + +/******************************************************************************/ +/** + * This function configures the Graphics Pipeline + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * + * @return None. + * + * @note None. +******************************************************************************/ +void XAVBuf_ConfigureGraphicsPipeline(XAVBuf *InstancePtr) +{ + Xil_AssertVoid(InstancePtr != NULL); + XAVBuf_ConfigureVideo(InstancePtr, InstancePtr->AVMode.GraphicsSrc); +} + +/******************************************************************************/ +/** + * This function sets the blender background color + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param Color is a pointer to the structure XAVBuf_BlenderBgClr + * + * @return None. + * + * @note None. +******************************************************************************/ +void XAVBuf_BlendSetBgColor(XAVBuf *InstancePtr, XAVBuf_BlenderBgClr *Color) +{ + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid(Color != NULL); + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_V_BLEND_BG_CLR_0, + Color->RCr); + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_V_BLEND_BG_CLR_1, + Color->GY); + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_V_BLEND_BG_CLR_2, + Color->BCb); +} + +/******************************************************************************/ +/** + * This function enables or disables global alpha + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param Enable sets a software flag for global alpha + * @param Alpha sets the value for the global alpha blending + * + * @return None. + * + * @note GlobalAlphaEn = 1, enables the global alpha. + * GlobalAlphaEn = 0, disables the global alpha. + * Alpha = 0, passes stream2 + * Alpha = 255, passes stream1 +******************************************************************************/ +void XAVBuf_SetBlenderAlpha(XAVBuf *InstancePtr, u8 Alpha, u8 Enable) +{ + u32 RegVal; + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid((Enable !=0) | (Enable != 1)); + + InstancePtr->Blender.GlobalAlphaEn = Enable; + InstancePtr->Blender.Alpha = Alpha; + + RegVal = Enable; + RegVal |= Alpha << XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_VALUE_SHIFT; + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG, RegVal); +} + +/******************************************************************************/ +/** + * This function configures the Output of the Video Pipeline + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param OutputVideo is a pointer to the XAVBuf_VideoAttribute. + * + * @return None. + * + * @note None. +******************************************************************************/ +void XAVBuf_ConfigureOutputVideo(XAVBuf *InstancePtr) +{ + u32 RegVal = 0; + XAVBuf_VideoAttribute *OutputVideo = InstancePtr->Blender.OutputVideo; + + RegVal |= OutputVideo->SamplingEn << + XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_EN_DOWNSAMPLE_SHIFT; + RegVal |= OutputVideo->Value; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_V_BLEND_OUTPUT_VID_FORMAT, RegVal); + + XAVBuf_InConvertToOutputFormat(InstancePtr, OutputVideo); +} + +/******************************************************************************/ +/** + * This function selects the source for audio streams corresponding to the + * Video and Graphics streams that are passed on to the blender + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param AudStream1 selects the audio stream source corresponding to + * the video source selected + * @param AudStream2 selects the audio stream source corresponding to + * the graphics source selected. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XAVBuf_InputAudioSelect(XAVBuf *InstancePtr, XAVBuf_AudioStream1 AudStream1, + XAVBuf_AudioStream2 AudStream2) +{ + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid((AudStream1 != XAVBUF_AUDSTREAM1_NONLIVE) | + (AudStream1 != XAVBUF_AUDSTREAM1_LIVE) | + (AudStream1 != XAVBUF_AUDSTREAM1_TPG)); + Xil_AssertVoid((AudStream2 != XAVBUF_AUDSTREAM2_NO_AUDIO) | + (AudStream2 != XAVBUF_AUDSTREAM2_AUDIOGFX)); + + u32 RegVal; + RegVal = XAVBuf_ReadReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT); + RegVal &= ~(XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM2_SEL_MASK | + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM1_SEL_MASK); + RegVal |= AudStream1 | AudStream2; + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT, RegVal); +} + +/******************************************************************************/ +/** + * This function sets up the scaling factor for Audio Mixer Volume Control. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Channel0Volume is the volume to be set for Audio from Channel0 + * @param Channel1Volume is the volume to be set for Audio from Channel1 + * + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XAVBuf_AudioMixerVolumeControl(XAVBuf *InstancePtr, u8 Channel0Volume, + u8 Channel1Volume) +{ + u32 Val; + Xil_AssertVoid(InstancePtr != NULL); + Val = Channel1Volume << + XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH1_SHIFT; + Val |= Channel0Volume; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_AUD_MIXER_VOLUME_CONTROL, Val); +} + +/******************************************************************************/ +/** + * This function resets the Audio Pipe. + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * + * @returns None. + * + * @note Needed when non-live audio is disabled. + * + * + ******************************************************************************/ +void XAVBuf_AudioSoftReset(XAVBuf *InstancePtr) +{ + u32 RegVal = 0; + Xil_AssertVoid(InstancePtr != NULL); + RegVal = XAVBuf_ReadReg(InstancePtr->Config.BaseAddr, + XAVBUF_AUD_SOFT_RST); + RegVal |= XAVBUF_AUD_SOFT_RST_AUD_SRST_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_AUD_SOFT_RST, + RegVal); + RegVal &= ~XAVBUF_AUD_SOFT_RST_AUD_SRST_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_AUD_SOFT_RST, 0); + +} + +/******************************************************************************/ +/** + * This function enables End of Line Reset for reduced blanking resolutions. + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * @param Disable is to be set while using Reduced Blanking Resolutions. + * + * @returns None. + * + * @note None. + * + ******************************************************************************/ +void XABuf_LineResetDisable(XAVBuf *InstancePtr, u8 Disable) +{ + u32 RegVal = 0; + Xil_AssertVoid(InstancePtr != NULL); + RegVal = XAVBuf_ReadReg(InstancePtr->Config.BaseAddr, + XAVBUF_AUD_SOFT_RST); + if(Disable) + RegVal |= XAVBUF_AUD_SOFT_RST_LINE_RST_DISABLE_MASK; + else + RegVal &= ~XAVBUF_AUD_SOFT_RST_LINE_RST_DISABLE_MASK; + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_AUD_SOFT_RST, + RegVal); +} + +/******************************************************************************/ +/** + * This function enables the video channel interface between the DPDMA and the + * AVBuf + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * @param Enable sets the corresponding buffers. + * + * @returns None. + * + * @note None. + * + ******************************************************************************/ +void XAVBuf_EnableVideoBuffers(XAVBuf *InstancePtr, u8 Enable) +{ + u8 Index; + u32 RegVal = 0; + u8 NumPlanes = InstancePtr->AVMode.NonLiveVideo->Mode; + + RegVal = (0xF << XAVBUF_CHBUF0_BURST_LEN_SHIFT) | + (XAVBUF_CHBUF0_FLUSH_MASK); + + for (Index = 0; Index <= NumPlanes; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_CHBUF0 + (Index * 4), RegVal); + } + if(Enable) { + RegVal = (0xF << XAVBUF_CHBUF0_BURST_LEN_SHIFT) | + XAVBUF_CHBUF0_EN_MASK; + for (Index = 0; Index <= NumPlanes; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_CHBUF0 + (Index * 4), RegVal); + } + } +} +/******************************************************************************/ +/** + * This function enables the graphics interface between the DPDMA and the AVBuf. + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * @param Enable sets the corresponding buffers. + * + * @returns None. + * + * @note None. + * + ******************************************************************************/ +void XAVBuf_EnableGraphicsBuffers(XAVBuf *InstancePtr, u8 Enable) +{ + u32 RegVal = 0; + + RegVal = (0xF << XAVBUF_CHBUF3_BURST_LEN_SHIFT) | + XAVBUF_CHBUF3_FLUSH_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF3, RegVal); + if(Enable) { + RegVal = (0xF << XAVBUF_CHBUF3_BURST_LEN_SHIFT) | + XAVBUF_CHBUF0_EN_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF3, + RegVal); + } +} + +/******************************************************************************/ +/** + * This function enables the audio interface between the DPDMA and the AVBuf + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * @param Enable sets the corresponding buffers. + * + * @returns None. + * + * @note None. + * + ******************************************************************************/ +void XAVBuf_EnableAudio0Buffers(XAVBuf *InstancePtr, u8 Enable) +{ + u32 RegVal = 0; + + RegVal = (0x3 << XAVBUF_CHBUF4_BURST_LEN_SHIFT) | + XAVBUF_CHBUF4_FLUSH_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF4, RegVal); + if(Enable) { + RegVal = (0x3 << XAVBUF_CHBUF4_BURST_LEN_SHIFT) | + XAVBUF_CHBUF4_EN_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF4, + RegVal); + } +} + +/******************************************************************************/ +/** + * This function enables the audio interface between the DPDMA and the AVBuf + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * @param Enable sets the corresponding buffers. + * + * @returns None. + * + * @note None. + * + ******************************************************************************/ +void XAVBuf_EnableAudio1Buffers(XAVBuf *InstancePtr, u8 Enable) +{ + u32 RegVal = 0; + + RegVal = (0x3 << XAVBUF_CHBUF5_BURST_LEN_SHIFT) | + XAVBUF_CHBUF5_FLUSH_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF5, RegVal); + if(Enable) { + RegVal = (0x3 << XAVBUF_CHBUF5_BURST_LEN_SHIFT) | + XAVBUF_CHBUF5_EN_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF5, + RegVal); + } +} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf.h new file mode 100644 index 000000000..386bfbaa9 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf.h @@ -0,0 +1,302 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf.h + * + * This file implements all the functions related to the Video Pipeline of the + * DisplayPort Subsystem. + * + * Features supported by this driver + * - Live Video and Graphics input. + * - Non-Live Video Graphics input. + * - Output Formats Supported - RGB, YUV444, YUV4222. + * + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   aad  06/24/17 Initial release.
+ * 2.0   aad  10/07/17 Added Enums for Video and Audio sources.
+ * 
+ * +*******************************************************************************/ +#ifndef XAVBUF_H_ +/* Prevent circular inclusions by using protection macros. */ +#define XAVBUF_H_ + + +/******************************* Include Files ********************************/ +#include "xavbuf_hw.h" +#include "sleep.h" +/****************************** Type Definitions ******************************/ +/** + * This typedef describes all the Video Formats supported by the driver + */ +typedef enum { + //Non-Live Video Formats + CbY0CrY1, + CrY0CbY1, + Y0CrY1Cb, + Y0CbY1Cr, + YV16, + YV24, + YV16Ci, + MONOCHROME, + YV16Ci2, + YUV444, + RGB888, + RGBA8880, + RGB888_10BPC, + YUV444_10BPC, + YV16Ci2_10BPC, + YV16Ci_10BPC, + YV16_10BPC, + YV24_10BPC, + MONOCHROME_10BPC, + YV16_420, + YV16Ci_420, + YV16Ci2_420, + YV16_420_10BPC, + YV16Ci_420_10BPC, + YV16Ci2_420_10BPC, + + // Non-Live Graphics formats + RGBA8888, + ABGR8888, + RGB888_GFX, + BGR888, + RGBA5551, + RGBA4444, + RGB565, + BPP8, + BPP4, + BPP2, + BPP1, + YUV422, + YOnly, + + //Live Input/Output Video/Graphics Formats + RGB_6BPC, + RGB_8BPC, + RGB_10BPC, + RGB_12BPC, + YCbCr444_6BPC, + YCbCr444_8BPC, + YCbCr444_10BPC, + YCbCr444_12BPC, + YCbCr422_8BPC, + YCbCr422_10BPC, + YCbCr422_12BPC, + YOnly_8BPC, + YOnly_10BPC, + YOnly_12BPC, +} XAVBuf_VideoFormat; + +/** + * This data structure describes video planes. + */ +typedef enum { + Interleaved, + SemiPlanar, + Planar +} XAVBuf_VideoModes; + +/** + * This typedef describes the video source list + */ +typedef enum { + XAVBUF_VIDSTREAM1_LIVE, + XAVBUF_VIDSTREAM1_NONLIVE, + XAVBUF_VIDSTREAM1_TPG, + XAVBUF_VIDSTREAM1_NONE, +} XAVBuf_VideoStream; + +/** + * This typedef describes the graphics source list + */ +typedef enum { + XAVBUF_VIDSTREAM2_DISABLEGFX = 0x0, + XAVBUF_VIDSTREAM2_NONLIVE_GFX = 0x4, + XAVBUF_VIDSTREAM2_LIVE_GFX = 0x8, + XAVBUF_VIDSTREAM2_NONE = 0xC0, +} XAVBuf_GfxStream; + +/** + * This typedef describes the audio stream 1 source list + */ +typedef enum { + XAVBUF_AUDSTREAM1_LIVE = 0x00, + XAVBUF_AUDSTREAM1_NONLIVE = 0x10, + XAVBUF_AUDSTREAM1_TPG = 0x20, + XAVBUF_AUDSTREAM1_NO_AUDIO = 0x30, +} XAVBuf_AudioStream1; + +/** + * This typedef describes the audio stream 2 source list + */ +typedef enum { + XAVBUF_AUDSTREAM2_NO_AUDIO = 0X00, + XAVBUF_AUDSTREAM2_AUDIOGFX = 0X40, +} XAVBuf_AudioStream2; + +/** + * This typedef describes the attributes associated with the video formats. + */ +typedef struct { + XAVBuf_VideoFormat VideoFormat; + u8 Value; + XAVBuf_VideoModes Mode; + u32 SF[3]; + u8 SamplingEn; + u8 IsRGB; + u8 Swap; + u8 BPP; +} XAVBuf_VideoAttribute; + +/** + * This typedef stores the attributes of an audio stream + */ +typedef struct { + u32 Volume; + u8 SwapLR; +} XAVBuf_AudioAttribute; + +/** + * This typedef stores the data associated with the Audio Video input modes. + */ +typedef struct { + XAVBuf_VideoAttribute *NonLiveVideo, *NonLiveGraphics; + XAVBuf_VideoAttribute *LiveVideo, *LiveGraphics; + XAVBuf_AudioAttribute *Audio, *GraphicsAudio; + XAVBuf_VideoStream VideoSrc; + XAVBuf_GfxStream GraphicsSrc; + XAVBuf_AudioStream1 AudioSrc1; + XAVBuf_AudioStream2 AudioSrc2; + u8 AudioClk, VideoClk; +} XAVBuf_AVModes; + +/** + * This structure stores the background color information. + */ +typedef struct { + u16 RCr; + u16 GY; + u16 BCb; +} XAVBuf_BlenderBgClr; + +/** + * This typedef stores the AVBuf Configuration information. + */ +typedef struct { + u16 DeviceId; + u32 BaseAddr; +} XAVBuf_Config; + +/** + * This typedef stores all the attributes associated to the Blender block of the + * DisplayPort Subsystem + */ +typedef struct { + u8 GlobalAlphaEn; + u8 Alpha; + XAVBuf_VideoAttribute *OutputVideo; +} XAVBuf_Blender; + +/** + * The XAVBuf driver instance data. The user is required to allocate a variable + * of this type for every XAVBUF instance in the system. A pointer to this type + * is then passed to the driver API functions + */ +typedef struct { + XAVBuf_Config Config; + XAVBuf_AVModes AVMode; + XAVBuf_Blender Blender; +} XAVBuf; + + +/**************************** Function Prototypes *****************************/ + +/* xavbuf.c: Setup and initialization functions. */ +void XAVBuf_CfgInitialize(XAVBuf *InstancePtr, u32 BaseAddr, u16 DeviceId); + +/* xavbuf.c: Functions to setup the Input Video and Audio sources */ +void XAVBuf_InputVideoSelect(XAVBuf *InstancePtr, XAVBuf_VideoStream VidStream, + XAVBuf_GfxStream GfxStream); +void XAVBuf_InputAudioSelect(XAVBuf *InstancePtr, XAVBuf_AudioStream1 AudStream, + XAVBuf_AudioStream2 AudioStream2); + +/* xavbuf.c: Functions to setup the Video Format attributes */ +int XAVBuf_SetInputNonLiveVideoFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format); +int XAVBuf_SetInputNonLiveGraphicsFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format); +int XAVBuf_SetInputLiveVideoFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format); +int XAVBuf_SetInputLiveGraphicsFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format); +int XAVBuf_SetOutputVideoFormat(XAVBuf *InstancePtr, XAVBuf_VideoFormat Format); +XAVBuf_VideoAttribute *XAVBuf_GetLiveVideoAttribute(XAVBuf_VideoFormat Format); +XAVBuf_VideoAttribute *XAVBuf_GetNLiveVideoAttribute(XAVBuf_VideoFormat Format); +XAVBuf_VideoAttribute *XAVBuf_GetNLGraphicsAttribute(XAVBuf_VideoFormat Format); + +/* xavbuf.c: Functions to setup the clock sources for video and audio */ +void XAVBuf_SetAudioVideoClkSrc(XAVBuf *InstancePtr, u8 VideoClk, u8 AudioClk); + +/* xavbuf.c: Functions that setup Video and Graphics pipeline depending on the + * sources and format selected. + */ +void XAVBuf_ConfigureVideoPipeline(XAVBuf *InstancePtr); +void XAVBuf_ConfigureGraphicsPipeline(XAVBuf *InstancePtr); + +/* Functions to setup Blender Properties */ +void XAVBuf_BlendSetBgColor(XAVBuf *InstancePtr, XAVBuf_BlenderBgClr *Color); +void XAVBuf_SetBlenderAlpha(XAVBuf *InstancePtr, u8 Alpha, u8 Enable); +void XAVBuf_SoftReset(XAVBuf *InstancePtr); +void XABuf_LineResetDisable(XAVBuf *InstancePtr, u8 Disable); +void XAVBuf_ConfigureOutputVideo(XAVBuf *InstancePtr); + +/* Audio Configuration functions */ +void XAVBuf_AudioSoftReset(XAVBuf *InstancePtr); +void XAVBuf_AudioMixerVolumeControl(XAVBuf *InstancePtr, u8 Channel0Volume, + u8 Channel1Volume); + +/* DPDMA Interface functions */ +void XAVBuf_EnableGraphicsBuffers(XAVBuf *InstancePtr, u8 Enable); +void XAVBuf_EnableVideoBuffers(XAVBuf *InstancePtr, u8 Enable); +void XAVBuf_EnableAudio0Buffers(XAVBuf *InstancePtr, u8 Enable); +void XAVBuf_EnableAudio1Buffers(XAVBuf *InstancePtr, u8 Enable); + +#endif //XAVBUF_H_ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_clk.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_clk.c new file mode 100644 index 000000000..6ef5d7089 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_clk.c @@ -0,0 +1,561 @@ +/****************************************************************************** +* +* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf.c + * + * This header file contains PLL configuring functions. These Functions + * calculates and configures the PLL depending on desired frequency. + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   mh  06/24/17 Initial release.
+ * 2.1   tu  12/29/17 LPD and FPD offsets adjusted
+ * 
+ * +*******************************************************************************/ +/******************************* Include Files ********************************/ +#include "xavbuf_clk.h" + +/**************************** Constant Definitions ****************************/ +/*Input Frequency for the PLL with precision upto two decimals*/ +#define XAVBUF_INPUT_REF_CLK 3333333333 + +/*Frequency of VCO before divider to meet jitter requirement*/ +#define XAVBUF_PLL_OUT_FREQ 1450000000 + +/* Precision of Input Ref Frequency for PLL*/ +#define XAVBUF_INPUT_FREQ_PRECISION 100 + +/* 16 bit fractional shift to get Integer */ +#define XAVBUF_PRECISION 16 +#define XAVBUF_SHIFT_DECIMAL (1 << XAVBUF_PRECISION) +#define XAVBUF_DECIMAL (XAVBUF_SHIFT_DECIMAL - 1) +#define XDPSSU_MAX_VIDEO_FREQ 300000000 + +#define XAVBUF_AUDIO_SAMPLES 512 +#define XAVBUF_AUDIO_SAMPLE_RATE_44_1 44100 +#define XAVBUF_AUDIO_SAMPLE_RATE_48_0 48000 +#define XAVBUF_EXTERNAL_DIVIDER 2 + +/* Register offsets for address manipulation */ +#define XAVBUF_REG_OFFSET 4 +#define XAVBUF_FPD_CTRL_OFFSET 12 +#define XAVBUF_LPD_CTRL_OFFSET 16 +#define MOD_3(a) ((a) % (3)) + +/*************************** Constant Variable Definitions ********************/ +/** + * This typedef enumerates capacitor resistor and lock values to be programmed. + */ +typedef struct{ + u16 cp; + u16 res; + u16 lfhf; + u16 lock_dly; + u16 lock_cnt; +}PllConfig; + +/* PLL fractional divide programming table*/ +static const PllConfig PllFracDivideTable[] = { + {3, 5, 3, 63, 1000}, + {3, 5, 3, 63, 1000}, + {3, 9, 3, 63, 1000}, + {3, 9, 3, 63, 1000}, + {3, 9, 3, 63, 1000}, + {3, 9, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 975}, + {3, 14, 3, 63, 950}, + {3, 14, 3, 63, 925}, + {3, 1, 3, 63, 900}, + {3, 1, 3, 63, 875}, + {3, 1, 3, 63, 850}, + {3, 1, 3, 63, 850}, + {3, 1, 3, 63, 825}, + {3, 1, 3, 63, 800}, + {3, 1, 3, 63, 775}, + {3, 6, 3, 63, 775}, + {3, 6, 3, 63, 750}, + {3, 6, 3, 63, 725}, + {3, 6, 3, 63, 700}, + {3, 6, 3, 63, 700}, + {3, 6, 3, 63, 675}, + {3, 6, 3, 63, 675}, + {3, 6, 3, 63, 650}, + {3, 6, 3, 63, 650}, + {3, 6, 3, 63, 625}, + {3, 6, 3, 63, 625}, + {3, 6, 3, 63, 625}, + {3, 6, 3, 63, 600}, + {3, 6, 3, 63, 600}, + {3, 6, 3, 63, 600}, + {3, 6, 3, 63, 600}, + {3, 6, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600} +}; + +/******************************************************************************/ +/** + * This function initializes the parameters required to configure PLL. + * + * @param PllInstancePtr is pointer to the XAVBuf_Pll instance. + * @param Pll is the PLL chosen to be configured. + * @param Pll is the PLL chosen to be configured. + * @param CrossDomain is the bool which is used to mention if the PLL + * outputs in other domain. + * @param ExtDividerCnt is number of external divider out of VCO. + * + * @return XST_SUCCESS if PLL is configured without an error. + * XST_FAILURE otherwise. + * + * @note In order to avoid floating point usage we have a 16bit + * fractional fixed point arithmetic implementation + * +*******************************************************************************/ +static void XAVBuf_PllInitialize(XAVBuf_Pll *PllInstancePtr, + u8 Pll, u8 CrossDomain , u8 ExtDividerCnt) +{ + /* Instantiate input frequency. */ + PllInstancePtr->InputRefClk = XAVBUF_Pss_Ref_Clk; + PllInstancePtr->RefClkFreqhz = XAVBUF_INPUT_REF_CLK; + /* Turn on internal Divider*/ + PllInstancePtr->Divider = 1; + PllInstancePtr->Pll = Pll; + PllInstancePtr->ExtDividerCnt = ExtDividerCnt; + + //Check if CrossDomain is requested + if(CrossDomain) + PllInstancePtr->DomainSwitchDiv = 6; + else + PllInstancePtr->DomainSwitchDiv = 1; + //Check where PLL falls + if (Pll>2){ + PllInstancePtr->Fpd = 0; + PllInstancePtr->BaseAddress = XAVBUF_CLK_LPD_BASEADDR; + PllInstancePtr->Offset = XAVBUF_LPD_CTRL_OFFSET; + } + else{ + PllInstancePtr->Fpd = 1; + PllInstancePtr->BaseAddress = XAVBUF_CLK_FPD_BASEADDR; + PllInstancePtr->Offset = XAVBUF_FPD_CTRL_OFFSET; + } + +} + +/******************************************************************************/ +/** + * This function calculates the parameters which are required to configure PLL + * depending upon the requested frequency. + * + * @param PllInstancePtr is pointer to the XAVBuf_Pll instance + * @param FreqHz is the requested frequency to DP in Hz + * + * @return XST_SUCCESS if parameters are calculated + * XST_FAILURE otherwise. + * + * @note In order to avoid floating point usage we have a 16bit + * fractional fixed point arithmetic implementation + * +*******************************************************************************/ +static int XAVBuf_PllCalcParameterValues(XAVBuf_Pll *PllInstancePtr, + u64 FreqHz) +{ + u64 ExtDivider, Vco, VcoIntFrac; + + /* Instantiate input frequency. */ + PllInstancePtr->InputRefClk = XAVBUF_Pss_Ref_Clk; + PllInstancePtr->RefClkFreqhz = XAVBUF_INPUT_REF_CLK ; + /* Turn on internal Divider*/ + PllInstancePtr->Divider = 1; + PllInstancePtr->DomainSwitchDiv = 1; + + /* Estimate the total divider. */ + ExtDivider = (XAVBUF_PLL_OUT_FREQ / FreqHz) / + PllInstancePtr->DomainSwitchDiv; + if(ExtDivider > 63 && PllInstancePtr->ExtDividerCnt == 2){ + PllInstancePtr->ExtDivider0 = 63; + PllInstancePtr->ExtDivider1 = ExtDivider / 63; + } + else if(ExtDivider < 63){ + PllInstancePtr->ExtDivider0 = ExtDivider; + PllInstancePtr->ExtDivider1 = 1; + } + else + return XST_FAILURE; + + Vco = FreqHz *(PllInstancePtr->ExtDivider1 * + PllInstancePtr->ExtDivider0 * 2) * + PllInstancePtr->DomainSwitchDiv; + /* Calculate integer and fractional part. */ + VcoIntFrac = (Vco * XAVBUF_INPUT_FREQ_PRECISION * + XAVBUF_SHIFT_DECIMAL) / + PllInstancePtr->RefClkFreqhz ; + PllInstancePtr->Fractional = VcoIntFrac & XAVBUF_DECIMAL; + PllInstancePtr->FracIntegerFBDIV = VcoIntFrac >> XAVBUF_PRECISION; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function will Read modify and write into corresponding registers. + * + * @param BaseAddress is the base address to which the value has to be + * written. + * @param RegOffset is the relative offset from Base address. + * @param Mask is used to select the number of bits to be modified. + * @param Shift is the number bits to be shifted from LSB. + * @param Data is the Data to be written. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +static void XAVBuf_ReadModifyWriteReg(u32 BaseAddress, u32 RegOffset, u32 Mask, + u32 Shift, u32 Data) +{ + u32 RegValue; + + RegValue = XAVBuf_ReadReg(BaseAddress, RegOffset); + RegValue = (RegValue & ~Mask) | (Data << Shift); + XAVBuf_WriteReg(BaseAddress, RegOffset, RegValue); +} + +/******************************************************************************/ +/** + * This function configures PLL. + * + * @param PllInstancePtr is pointer to the XAVBuf_Pll instance. + * + * @return XST_SUCCESS if PLL is configured without an error. + * XST_FAILURE otherwise. + * + * @note None. + * +*******************************************************************************/ +static int XAVBuf_ConfigurePll(XAVBuf_Pll *PllInstancePtr) +{ + u64 BaseAddress = PllInstancePtr->BaseAddress; + u64 timer = 0; + u32 RegPll = 0; + u8 Pll = PllInstancePtr->Pll; + + RegPll |= XAVBUF_ENABLE_BIT << XAVBUF_PLL_CTRL_BYPASS_SHIFT; + RegPll |= PllInstancePtr->FracIntegerFBDIV << + XAVBUF_PLL_CTRL_FBDIV_SHIFT; + RegPll |= PllInstancePtr->Divider << XAVBUF_PLL_CTRL_DIV2_SHIFT; + RegPll |= PllInstancePtr->InputRefClk << XAVBUF_PLL_CTRL_PRE_SRC_SHIFT; + XAVBuf_WriteReg(BaseAddress, XAVBUF_PLL_CTRL + (MOD_3(Pll) * + PllInstancePtr->Offset), RegPll); + RegPll = 0; + /* Set the values for lock dly, lock counter, capacitor and resistor. */ + RegPll |= + PllFracDivideTable[PllInstancePtr->FracIntegerFBDIV -25].cp + << XAVBUF_PLL_CFG_CP_SHIFT; + RegPll |= + PllFracDivideTable[PllInstancePtr->FracIntegerFBDIV -25].res + << XAVBUF_PLL_CFG_RES_SHIFT; + RegPll |= + PllFracDivideTable[PllInstancePtr->FracIntegerFBDIV -25].lfhf + << XAVBUF_PLL_CFG_LFHF_SHIFT; + RegPll |= + PllFracDivideTable[PllInstancePtr->FracIntegerFBDIV -25].lock_dly + << XAVBUF_PLL_CFG_LOCK_DLY_SHIFT; + RegPll |= + PllFracDivideTable[PllInstancePtr->FracIntegerFBDIV -25].lock_cnt + << XAVBUF_PLL_CFG_LOCK_CNT_SHIFT; + XAVBuf_WriteReg(BaseAddress, XAVBUF_PLL_CFG + (MOD_3(Pll) * + PllInstancePtr->Offset), RegPll); + /* Enable and set Fractional Data. */ + XAVBuf_WriteReg(BaseAddress, XAVBUF_PLL_FRAC_CFG + (MOD_3(Pll) * + PllInstancePtr->Offset), (1 << XAVBUF_PLL_FRAC_CFG_ENABLED_SHIFT) | + (PllInstancePtr->Fractional << + XAVBUF_PLL_FRAC_CFG_DATA_SHIFT)); + /* Assert reset to the PLL. */ + XAVBuf_ReadModifyWriteReg(BaseAddress, XAVBUF_PLL_CTRL + (MOD_3(Pll) * + PllInstancePtr->Offset), + XAVBUF_PLL_CTRL_RESET_MASK, XAVBUF_PLL_CTRL_RESET_SHIFT, + XAVBUF_ENABLE_BIT); + + /* Deassert reset to the PLL. */ + XAVBuf_ReadModifyWriteReg(BaseAddress, XAVBUF_PLL_CTRL + (MOD_3(Pll) * + PllInstancePtr->Offset), + XAVBUF_PLL_CTRL_RESET_MASK, XAVBUF_PLL_CTRL_RESET_SHIFT, + XAVBUF_DISABLE_BIT); + + while(!(XAVBuf_ReadReg(BaseAddress, XAVBUF_PLL_STATUS - + ((1 - PllInstancePtr->Fpd) * XAVBUF_REG_OFFSET)) & + (1 << MOD_3(Pll)))) + if(++timer > 1000) + return XST_FAILURE; + + /* Deassert Bypass. */ + XAVBuf_ReadModifyWriteReg(BaseAddress, XAVBUF_PLL_CTRL + (MOD_3(Pll) * + PllInstancePtr->Offset), + XAVBUF_PLL_CTRL_BYPASS_MASK, XAVBUF_PLL_CTRL_BYPASS_SHIFT, + XAVBUF_DISABLE_BIT); + + if(PllInstancePtr->DomainSwitchDiv != 1) + XAVBuf_ReadModifyWriteReg(BaseAddress, (XAVBUF_DOMAIN_SWITCH_CTRL + + (MOD_3(Pll) * XAVBUF_REG_OFFSET) - ((1 - PllInstancePtr->Fpd) + * XAVBUF_REG_OFFSET)), + XAVBUF_DOMAIN_SWITCH_DIVISOR0_MASK, + XAVBUF_DOMAIN_SWITCH_DIVISOR0_SHIFT, + PllInstancePtr->DomainSwitchDiv); + usleep(1); + + return XST_SUCCESS; + +} + +/******************************************************************************/ +/** + * This function configures Configures external divider. + * + * @param PllInstancePtr is pointer to the XAVBuf_Pll instance. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +static void XAVBuf_ConfigureExtDivider(XAVBuf_Pll *PllInstancePtr, + u64 BaseAddress, u32 Offset) +{ + XAVBuf_ReadModifyWriteReg(BaseAddress, Offset, + XAVBUF_VIDEO_REF_CTRL_CLKACT_MASK, + XAVBUF_VIDEO_REF_CTRL_CLKACT_SHIFT, XAVBUF_DISABLE_BIT); + XAVBuf_ReadModifyWriteReg(BaseAddress, Offset, + XAVBUF_VIDEO_REF_CTRL_DIVISOR1_MASK, + XAVBUF_VIDEO_REF_CTRL_DIVISOR1_SHIFT, + PllInstancePtr->ExtDivider1); + XAVBuf_ReadModifyWriteReg(BaseAddress, Offset, + XAVBUF_VIDEO_REF_CTRL_DIVISOR0_MASK, + XAVBUF_VIDEO_REF_CTRL_DIVISOR0_SHIFT, + PllInstancePtr->ExtDivider0); + XAVBuf_ReadModifyWriteReg(BaseAddress, Offset, + XAVBUF_VIDEO_REF_CTRL_CLKACT_MASK, + XAVBUF_VIDEO_REF_CTRL_CLKACT_SHIFT, XAVBUF_ENABLE_BIT); + XAVBuf_WriteReg(BaseAddress, Offset, 0x1011003); +} + +/******************************************************************************/ +/** + * This function calls API to calculate and configure PLL with desired frequency + * for Video. + * + * @param FreqHz is the desired frequency in Hz. + * + * @return XST_SUCCESS if PLL is configured without an error. + * XST_FAILURE otherwise. + * + * @note The Pll used is design specific. + * +*******************************************************************************/ +int XAVBuf_SetPixelClock(u64 FreqHz) +{ + u32 PllAssigned; + XAVBuf_Pll PllInstancePtr; + u8 Pll, CrossDomain, Flag; + + /*Verify Input Arguments*/ + Xil_AssertNonvoid(FreqHz < XDPSSU_MAX_VIDEO_FREQ); + + PllAssigned = XAVBuf_ReadReg(XAVBUF_CLK_FPD_BASEADDR, + XAVBUF_VIDEO_REF_CTRL) & XAVBUF_VIDEO_REF_CTRL_SRCSEL_MASK; + + switch (PllAssigned) { + case XAVBUF_VPLL_SRC_SEL: + Pll = VPLL; + CrossDomain = 0; + break; + case XAVBUF_DPLL_SRC_SEL: + Pll = DPLL; + CrossDomain = 0; + break; + case XAVBUF_RPLL_TO_FPD_SRC_SEL: + Pll = RPLL; + CrossDomain = 1; + break; + default: + return XST_FAILURE; + } + + /*Calculate configure PLL and External Divider*/ + XAVBuf_PllInitialize(&PllInstancePtr, Pll, CrossDomain, + XAVBUF_EXTERNAL_DIVIDER); + Flag = XAVBuf_PllCalcParameterValues(&PllInstancePtr, FreqHz); + if(Flag != 0) + return XST_FAILURE; + Flag = XAVBuf_ConfigurePll(&PllInstancePtr); + if(Flag != 0) + return XST_FAILURE; + XAVBuf_ConfigureExtDivider(&PllInstancePtr, XAVBUF_CLK_FPD_BASEADDR, + XAVBUF_VIDEO_REF_CTRL); + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function calls API to calculate and configure PLL with desired + * frequency for Audio. + * + * @param FreqHz is the desired frequency in Hz. + * + * @return XST_SUCCESS if PLL is configured without an error. + * XST_FAILURE otherwise. + * + * @note The Pll used is design specific. + * +*******************************************************************************/ +int XAVBuf_SetAudioClock(u64 FreqHz) +{ + u32 Flag, PllAssigned; + u8 Pll, CrossDomain; + XAVBuf_Pll XAVBuf_RPllInstancePtr; + + /*Verify Input Arguments*/ + Flag = (FreqHz == (XAVBUF_AUDIO_SAMPLE_RATE_44_1 * + XAVBUF_AUDIO_SAMPLES)) || + (FreqHz == (XAVBUF_AUDIO_SAMPLE_RATE_48_0 * + XAVBUF_AUDIO_SAMPLES)); + Xil_AssertNonvoid(Flag); + + PllAssigned = XAVBuf_ReadReg(XAVBUF_CLK_FPD_BASEADDR, + XAVBUF_AUDIO_REF_CTRL) & + XAVBUF_AUDIO_REF_CTRL_SRCSEL_MASK; + + switch (PllAssigned) { + case XAVBUF_VPLL_SRC_SEL: + Pll = VPLL; + CrossDomain = 0; + break; + case XAVBUF_DPLL_SRC_SEL: + Pll = DPLL; + CrossDomain = 0; + break; + case XAVBUF_RPLL_TO_FPD_SRC_SEL: + Pll = RPLL; + CrossDomain = 1; + break; + default: + return XST_FAILURE; + } + + /*Calculate configure PLL and External Divider*/ + XAVBuf_PllInitialize(&XAVBuf_RPllInstancePtr, Pll, CrossDomain, + XAVBUF_EXTERNAL_DIVIDER); + Flag = XAVBuf_PllCalcParameterValues(&XAVBuf_RPllInstancePtr, FreqHz); + if(Flag != 0) + return XST_FAILURE; + Flag = XAVBuf_ConfigurePll(&XAVBuf_RPllInstancePtr); + if(Flag != 0) + return XST_FAILURE; + XAVBuf_ConfigureExtDivider(&XAVBuf_RPllInstancePtr, + XAVBUF_CLK_FPD_BASEADDR, XAVBUF_AUDIO_REF_CTRL); + + return XST_SUCCESS; +} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_clk.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_clk.h new file mode 100644 index 000000000..91ca3b5ed --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_clk.h @@ -0,0 +1,97 @@ +/****************************************************************************** +* +* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf_clk.h + * + * This header file contains the identifiers and low-level driver functions (or + * macros) that can be used to configure PLL to generate required frequency. + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   mh  06/24/17 Initial release.
+ * 2.1   tu  12/29/17 LPD and FPD offsets adjusted
+ * 
+ * +*******************************************************************************/ + +#ifndef XAVBUF_CLK_H_ +#define XAVBUF_CLK_H_ + +/******************************* Include Files ********************************/ +#include "xavbuf_hw.h" +#include "xstatus.h" +#include "sleep.h" + +/****************************** Type Definitions ******************************/ +/** + * This enum enumerates various PLL + */ +enum PLL{ + APLL = 0, + DPLL = 1, + VPLL = 2, + IOPLL = 3, + RPLL = 4 +}; + +/** + * This typedef enumerates various variables used to configure Pll + */ +typedef struct { + u64 BaseAddress; + u64 Fractional; + u64 RefClkFreqhz; + u32 Divider; + u8 Offset; + u8 ClkDividBy2; + u8 ExtDivider0; + u8 ExtDivider1; + u8 ExtDividerCnt; + u8 DomainSwitchDiv; + u8 FracIntegerFBDIV; + u8 IntegerFBDIV; + u8 InputRefClk; + u8 Fpd; + u8 Pll; +}XAVBuf_Pll; + +/**************************** Function Prototypes *****************************/ +int XAVBuf_SetPixelClock(u64 FreqHz); +int XAVBuf_SetAudioClock(u64 FreqHz); +#endif /* XAVBUF_CLK_H_ */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_g.c similarity index 87% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_g.c index db734b924..325e01b47 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -38,17 +38,17 @@ *******************************************************************/ #include "xparameters.h" -#include "xemacps.h" +#include "xavbuf.h" /* * The configuration table for devices */ -XEmacPs_Config XEmacPs_ConfigTable[] = +XAVBuf_Config XAVBuf_ConfigTable[XPAR_XAVBUF_NUM_INSTANCES] = { { - XPAR_PSU_ETHERNET_3_DEVICE_ID, - XPAR_PSU_ETHERNET_3_BASEADDR + XPAR_PSU_DP_DEVICE_ID, + XPAR_PSU_DP_BASEADDR } }; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_hw.h new file mode 100644 index 000000000..3454fa071 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_hw.h @@ -0,0 +1,1675 @@ +/******************************************************************************* + * + * Copyright C 2014 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf_hw.h + * + * This header file contains macros that can be used to access the device + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0	 aad 02/24/17	Initial Release
+ * 1.0   mh  06/24/17	Added Clock related register information
+ * 2.0   aad 10/07/17   Removed Macros related to Video and Audio Src
+ * 
+ * +*******************************************************************************/ +#ifndef XAVBUF_HW_H_ +/* Prevent circular inclusions by using protection macros. */ +#define XAVBUF_HW_H_ + +#ifdef __cplusplus +extern "C" { +#endif +/***************************** Include Files **********************************/ + +#include "xil_io.h" +#include "xil_types.h" + +/************************** Constant Definitions ******************************/ + +/******************************************************************************/ +/** + * Address mapping for the DisplayPort TX core. + * +*******************************************************************************/ + +#define XAVBUF_BASEADDR 0xFD4A0000 +/** + * * Register: XAVBUF_V_BLEND_BG_CLR_0 + * */ +#define XAVBUF_V_BLEND_BG_CLR_0 0X0000A000 + +#define XAVBUF_V_BLEND_BG_CLR_0_CLR0_SHIFT 0 +#define XAVBUF_V_BLEND_BG_CLR_0_CLR0_WIDTH 12 +#define XAVBUF_V_BLEND_BG_CLR_0_CLR0_MASK 0X00000FFF + +/** + * * Register: XAVBUF_V_BLEND_BG_CLR_1 + * */ +#define XAVBUF_V_BLEND_BG_CLR_1 0X0000A004 + +#define XAVBUF_V_BLEND_BG_CLR_1_CLR1_SHIFT 0 +#define XAVBUF_V_BLEND_BG_CLR_1_CLR1_WIDTH 12 +#define XAVBUF_V_BLEND_BG_CLR_1_CLR1_MASK 0X00000FFF + +/** + * * Register: XAVBUF_V_BLEND_BG_CLR_2 + * */ +#define XAVBUF_V_BLEND_BG_CLR_2 0X0000A008 + +#define XAVBUF_V_BLEND_BG_CLR_2_CLR2_SHIFT 0 +#define XAVBUF_V_BLEND_BG_CLR_2_CLR2_WIDTH 12 +#define XAVBUF_V_BLEND_BG_CLR_2_CLR2_MASK 0X00000FFF + +/** + * * Register: XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG + * */ +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG 0X0000A00C + +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_VALUE_SHIFT 1 +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_VALUE_WIDTH 8 +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_VALUE_MASK 0X000001FE + +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_EN_SHIFT 0 +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_EN_WIDTH 1 +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_V_BLEND_OUTPUT_VID_FORMAT + * */ +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT 0X0000A014 + +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_EN_DOWNSAMPLE_SHIFT 4 +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_EN_DOWNSAMPLE_WIDTH 1 +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_EN_DOWNSAMPLE_MASK 0X00000010 + +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_VID_FORMAT_SHIFT 0 +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_VID_FORMAT_WIDTH 3 +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_VID_FORMAT_MASK 0X00000007 + +/** + * * Register: XAVBUF_V_BLEND_LAYER0_CONTROL + * */ +#define XAVBUF_V_BLEND_LAYER0_CONTROL 0X0000A018 + +#define XAVBUF_V_BLEND_LAYER0_CONTROL_BYPASS_SHIFT 8 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_BYPASS_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_BYPASS_MASK 0X00000100 + +#define XAVBUF_V_BLEND_LAYER0_CONTROL_RGB_MODE_SHIFT 1 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_RGB_MODE_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_RGB_MODE_MASK 0X00000002 + +#define XAVBUF_V_BLEND_LAYER0_CONTROL_EN_US_SHIFT 0 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_EN_US_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_EN_US_MASK 0X00000001 + +/** + * * Register: XAVBUF_V_BLEND_LAYER1_CONTROL + * */ +#define XAVBUF_V_BLEND_LAYER1_CONTROL 0X0000A01C + +#define XAVBUF_V_BLEND_LAYER1_CONTROL_BYPASS_SHIFT 8 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_BYPASS_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_BYPASS_MASK 0X00000100 + +#define XAVBUF_V_BLEND_LAYER1_CONTROL_RGB_MODE_SHIFT 1 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_RGB_MODE_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_RGB_MODE_MASK 0X00000002 + +#define XAVBUF_V_BLEND_LAYER1_CONTROL_EN_US_SHIFT 0 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_EN_US_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_EN_US_MASK 0X00000001 + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF0 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF0 0X0000A020 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF0_RGB2Y_C0_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF0_RGB2Y_C0_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF0_RGB2Y_C0_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF1 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF1 0X0000A024 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF1_RGB2Y_C1_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF1_RGB2Y_C1_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF1_RGB2Y_C1_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF2 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF2 0X0000A028 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF2_RGB2Y_C2_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF2_RGB2Y_C2_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF2_RGB2Y_C2_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF3 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF3 0X0000A02C + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF3_RGB2Y_C3_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF3_RGB2Y_C3_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF3_RGB2Y_C3_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF4 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF4 0X0000A030 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF4_RGB2Y_C4_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF4_RGB2Y_C4_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF4_RGB2Y_C4_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF5 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF5 0X0000A034 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF5_RGB2Y_C5_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF5_RGB2Y_C5_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF5_RGB2Y_C5_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF6 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF6 0X0000A038 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF6_RGB2Y_C6_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF6_RGB2Y_C6_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF6_RGB2Y_C6_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF7 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF7 0X0000A03C + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF7_RGB2Y_C7_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF7_RGB2Y_C7_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF7_RGB2Y_C7_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF8 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF8 0X0000A040 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF8_RGB2Y_C8_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF8_RGB2Y_C8_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF8_RGB2Y_C8_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF0 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF0 0X0000A044 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF0_Y2R_C0_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF0_Y2R_C0_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF0_Y2R_C0_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF1 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF1 0X0000A048 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF1_Y2R_C1_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF1_Y2R_C1_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF1_Y2R_C1_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF2 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF2 0X0000A04C + +#define XAVBUF_V_BLEND_IN1CSC_COEFF2_Y2R_C2_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF2_Y2R_C2_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF2_Y2R_C2_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF3 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF3 0X0000A050 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF3_Y2R_C3_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF3_Y2R_C3_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF3_Y2R_C3_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF4 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF4 0X0000A054 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF4_Y2R_C4_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF4_Y2R_C4_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF4_Y2R_C4_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF5 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF5 0X0000A058 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF5_Y2R_C5_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF5_Y2R_C5_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF5_Y2R_C5_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF6 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF6 0X0000A05C + +#define XAVBUF_V_BLEND_IN1CSC_COEFF6_Y2R_C6_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF6_Y2R_C6_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF6_Y2R_C6_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF7 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF7 0X0000A060 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF7_Y2R_C7_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF7_Y2R_C7_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF7_Y2R_C7_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF8 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF8 0X0000A064 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF8_Y2R_C8_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF8_Y2R_C8_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF8_Y2R_C8_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET 0X0000A068 + +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CR_IN1CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET 0X0000A06C + +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CB_IN1CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET 0X0000A070 + +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET + * */ +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET 0X0000A074 + +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CR_OUTCSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET 0X0000A078 + +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CB_OUTCSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET 0X0000A07C + +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF0 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF0 0X0000A080 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF0_Y2R_C0_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF0_Y2R_C0_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF0_Y2R_C0_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF1 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF1 0X0000A084 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF1_Y2R_C1_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF1_Y2R_C1_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF1_Y2R_C1_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF2 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF2 0X0000A088 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF2_Y2R_C2_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF2_Y2R_C2_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF2_Y2R_C2_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF3 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF3 0X0000A08C + +#define XAVBUF_V_BLEND_IN2CSC_COEFF3_Y2R_C3_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF3_Y2R_C3_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF3_Y2R_C3_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF4 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF4 0X0000A090 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF4_Y2R_C4_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF4_Y2R_C4_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF4_Y2R_C4_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF5 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF5 0X0000A094 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF5_Y2R_C5_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF5_Y2R_C5_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF5_Y2R_C5_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF6 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF6 0X0000A098 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF6_Y2R_C6_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF6_Y2R_C6_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF6_Y2R_C6_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF7 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF7 0X0000A09C + +#define XAVBUF_V_BLEND_IN2CSC_COEFF7_Y2R_C7_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF7_Y2R_C7_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF7_Y2R_C7_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF8 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF8 0X0000A0A0 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF8_Y2R_C8_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF8_Y2R_C8_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF8_Y2R_C8_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET 0X0000A0A4 + +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CR_IN2CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET 0X0000A0A8 + +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CB_IN2CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET 0X0000A0AC + +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CHROMA_KEY_ENABLE + * */ +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE 0X0000A1D0 + +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_M_SEL_SHIFT 1 +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_M_SEL_WIDTH 1 +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_M_SEL_MASK 0X00000002 + +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_EN_SHIFT 0 +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_EN_WIDTH 1 +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_V_BLEND_CHROMA_KEY_COMP1 + * */ +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1 0X0000A1D4 + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MAX_SHIFT 16 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MAX_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MAX_MASK 0X0FFF0000 + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MIN_SHIFT 0 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MIN_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MIN_MASK 0X00000FFF + +/** + * * Register: XAVBUF_V_BLEND_CHROMA_KEY_COMP2 + * */ +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2 0X0000A1D8 + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MAX_SHIFT 16 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MAX_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MAX_MASK 0X0FFF0000 + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MIN_SHIFT 0 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MIN_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MIN_MASK 0X00000FFF + +/** + * * Register: XAVBUF_V_BLEND_CHROMA_KEY_COMP3 + * */ +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3 0X0000A1DC + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MAX_SHIFT 16 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MAX_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MAX_MASK 0X0FFF0000 + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MIN_SHIFT 0 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MIN_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MIN_MASK 0X00000FFF + +/** + * * Register: XAVBUF_BUF_FORMAT + * */ +#define XAVBUF_BUF_FORMAT 0X0000B000 + +#define XAVBUF_BUF_FORMAT_NL_GRAPHX_FORMAT_SHIFT 8 +#define XAVBUF_BUF_FORMAT_NL_GRAPHX_FORMAT_WIDTH 4 +#define XAVBUF_BUF_FORMAT_NL_GRAPHX_FORMAT_MASK 0X00000F00 + +#define XAVBUF_BUF_FORMAT_NL_VID_FORMAT_SHIFT 0 +#define XAVBUF_BUF_FORMAT_NL_VID_FORMAT_WIDTH 5 +#define XAVBUF_BUF_FORMAT_NL_VID_FORMAT_MASK 0X0000001F + +/** + * * Register: XAVBUF_BUF_NON_LIVE_LATENCY + * */ +#define XAVBUF_BUF_NON_LIVE_LATENCY 0X0000B008 + +#define XAVBUF_BUF_NON_LIVE_LATENCY_NL_LATENCY_SHIFT 0 +#define XAVBUF_BUF_NON_LIVE_LATENCY_NL_LATENCY_WIDTH 10 +#define XAVBUF_BUF_NON_LIVE_LATENCY_NL_LATENCY_MASK 0X000003FF + +/** + * * Register: XAVBUF_CHBUF0 + * */ +#define XAVBUF_CHBUF0 0X0000B010 + +#define XAVBUF_CHBUF0_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF0_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF0_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF0_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF0_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF0_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF0_EN_SHIFT 0 +#define XAVBUF_CHBUF0_EN_WIDTH 1 +#define XAVBUF_CHBUF0_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_CHBUF1 + * */ +#define XAVBUF_CHBUF1 0X0000B014 + +#define XAVBUF_CHBUF1_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF1_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF1_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF1_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF1_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF1_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF1_EN_SHIFT 0 +#define XAVBUF_CHBUF1_EN_WIDTH 1 +#define XAVBUF_CHBUF1_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_CHBUF2 + * */ +#define XAVBUF_CHBUF2 0X0000B018 + +#define XAVBUF_CHBUF2_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF2_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF2_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF2_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF2_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF2_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF2_EN_SHIFT 0 +#define XAVBUF_CHBUF2_EN_WIDTH 1 +#define XAVBUF_CHBUF2_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_CHBUF3 + * */ +#define XAVBUF_CHBUF3 0X0000B01C + +#define XAVBUF_CHBUF3_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF3_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF3_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF3_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF3_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF3_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF3_EN_SHIFT 0 +#define XAVBUF_CHBUF3_EN_WIDTH 1 +#define XAVBUF_CHBUF3_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_CHBUF4 + * */ +#define XAVBUF_CHBUF4 0X0000B020 + +#define XAVBUF_CHBUF4_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF4_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF4_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF4_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF4_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF4_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF4_EN_SHIFT 0 +#define XAVBUF_CHBUF4_EN_WIDTH 1 +#define XAVBUF_CHBUF4_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_CHBUF5 + * */ +#define XAVBUF_CHBUF5 0X0000B024 + +#define XAVBUF_CHBUF5_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF5_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF5_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF5_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF5_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF5_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF5_EN_SHIFT 0 +#define XAVBUF_CHBUF5_EN_WIDTH 1 +#define XAVBUF_CHBUF5_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_BUF_STC_CONTROL + * */ +#define XAVBUF_BUF_STC_CONTROL 0X0000B02C + +#define XAVBUF_BUF_STC_CONTROL_EN_SHIFT 0 +#define XAVBUF_BUF_STC_CONTROL_EN_WIDTH 1 +#define XAVBUF_BUF_STC_CONTROL_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_BUF_STC_INIT_VALUE0 + * */ +#define XAVBUF_BUF_STC_INIT_VALUE0 0X0000B030 + +#define XAVBUF_BUF_STC_INIT_VALUE0_INIT_VALUE0_SHIFT 0 +#define XAVBUF_BUF_STC_INIT_VALUE0_INIT_VALUE0_WIDTH 32 +#define XAVBUF_BUF_STC_INIT_VALUE0_INIT_VALUE0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_INIT_VALUE1 + * */ +#define XAVBUF_BUF_STC_INIT_VALUE1 0X0000B034 + +#define XAVBUF_BUF_STC_INIT_VALUE1_INIT_VALUE1_SHIFT 0 +#define XAVBUF_BUF_STC_INIT_VALUE1_INIT_VALUE1_WIDTH 10 +#define XAVBUF_BUF_STC_INIT_VALUE1_INIT_VALUE1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_STC_ADJ + * */ +#define XAVBUF_BUF_STC_ADJ 0X0000B038 + +#define XAVBUF_BUF_STC_ADJ_SIGN_SHIFT 31 +#define XAVBUF_BUF_STC_ADJ_SIGN_WIDTH 1 +#define XAVBUF_BUF_STC_ADJ_SIGN_MASK 0X80000000 + +#define XAVBUF_BUF_STC_ADJ_VALUE_SHIFT 0 +#define XAVBUF_BUF_STC_ADJ_VALUE_WIDTH 31 +#define XAVBUF_BUF_STC_ADJ_VALUE_MASK 0X7FFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_VID_VSYNC_TS_REG0 + * */ +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG0 0X0000B03C + +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG0_VSYNC_TS0_SHIFT 0 +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG0_VSYNC_TS0_WIDTH 32 +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG0_VSYNC_TS0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_VID_VSYNC_TS_REG1 + * */ +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG1 0X0000B040 + +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG1_VSYNC_TS1_SHIFT 0 +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG1_VSYNC_TS1_WIDTH 10 +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG1_VSYNC_TS1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_STC_EXT_VSYNC_TS_REG0 + * */ +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG0 0X0000B044 + +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG0_EXT_VSYNC_TS0_SHIFT 0 +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG0_EXT_VSYNC_TS0_WIDTH 32 +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG0_EXT_VSYNC_TS0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_EXT_VSYNC_TS_REG1 + * */ +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG1 0X0000B048 + +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG1_EXT_VSYNC_TS1_SHIFT 0 +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG1_EXT_VSYNC_TS1_WIDTH 10 +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG1_EXT_VSYNC_TS1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG0 + * */ +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG0 0X0000B04C + +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG0_CUST_EVENT_TS0_SHIFT 0 +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG0_CUST_EVENT_TS0_WIDTH 32 +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG0_CUST_EVENT_TS0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG1 + * */ +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG1 0X0000B050 + +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG1_CUST_EVENT_TS1_SHIFT 0 +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG1_CUST_EVENT_TS1_WIDTH 10 +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG1_CUST_EVENT_TS1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG0 + * */ +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG0 0X0000B054 + +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG0_CUST_EVENT2_TS0_SHIFT 0 +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG0_CUST_EVENT2_TS0_WIDTH 32 +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG0_CUST_EVENT2_TS0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG1 + * */ +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG1 0X0000B058 + +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG1_CUST_EVENT2_TS1_SHIFT 0 +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG1_CUST_EVENT2_TS1_WIDTH 10 +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG1_CUST_EVENT2_TS1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_STC_SNAPSHOT0 + * */ +#define XAVBUF_BUF_STC_SNAPSHOT0 0X0000B060 + +#define XAVBUF_BUF_STC_SNAPSHOT0_STC0_SHIFT 0 +#define XAVBUF_BUF_STC_SNAPSHOT0_STC0_WIDTH 32 +#define XAVBUF_BUF_STC_SNAPSHOT0_STC0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_SNAPSHOT1 + * */ +#define XAVBUF_BUF_STC_SNAPSHOT1 0X0000B064 + +#define XAVBUF_BUF_STC_SNAPSHOT1_STC1_SHIFT 0 +#define XAVBUF_BUF_STC_SNAPSHOT1_STC1_WIDTH 10 +#define XAVBUF_BUF_STC_SNAPSHOT1_STC1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_OUTPUT_AUD_VID_SELECT + * */ +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT 0X0000B070 + +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM2_SEL_SHIFT 6 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM2_SEL_WIDTH 1 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM2_SEL_MASK 0X00000040 + +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM1_SEL_SHIFT 4 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM1_SEL_WIDTH 2 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM1_SEL_MASK 0X00000030 + +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM2_SEL_SHIFT 2 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM2_SEL_WIDTH 2 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM2_SEL_MASK 0X0000000C + +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM1_SEL_SHIFT 0 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM1_SEL_WIDTH 2 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM1_SEL_MASK 0X00000003 + +/** + * * Register: XAVBUF_BUF_HCOUNT_VCOUNT_INT0 + * */ +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0 0X0000B074 + +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_HCOUNT_SHIFT 16 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_HCOUNT_WIDTH 14 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_HCOUNT_MASK 0X3FFF0000 + +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_VCOUNT_SHIFT 0 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_VCOUNT_WIDTH 14 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_VCOUNT_MASK 0X00003FFF + +/** + * * Register: XAVBUF_BUF_HCOUNT_VCOUNT_INT1 + * */ +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1 0X0000B078 + +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_HCOUNT_SHIFT 16 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_HCOUNT_WIDTH 14 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_HCOUNT_MASK 0X3FFF0000 + +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_VCOUNT_SHIFT 0 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_VCOUNT_WIDTH 14 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_VCOUNT_MASK 0X00003FFF + +/** + * * Register: XAVBUF_BUF_DITHER_CFG + * */ +#define XAVBUF_BUF_DITHER_CFG 0X0000B07C + +#define XAVBUF_BUF_DITHER_CFG_TAP_MSB_SHIFT 10 +#define XAVBUF_BUF_DITHER_CFG_TAP_MSB_WIDTH 1 +#define XAVBUF_BUF_DITHER_CFG_TAP_MSB_MASK 0X00000400 + +#define XAVBUF_BUF_DITHER_CFG_DW_SEL_SHIFT 9 +#define XAVBUF_BUF_DITHER_CFG_DW_SEL_WIDTH 1 +#define XAVBUF_BUF_DITHER_CFG_DW_SEL_MASK 0X00000200 + +#define XAVBUF_BUF_DITHER_CFG_LD_SHIFT 8 +#define XAVBUF_BUF_DITHER_CFG_LD_WIDTH 1 +#define XAVBUF_BUF_DITHER_CFG_LD_MASK 0X00000100 + +#define XAVBUF_BUF_DITHER_CFG_TRUNC_PT_SHIFT 5 +#define XAVBUF_BUF_DITHER_CFG_TRUNC_PT_WIDTH 3 +#define XAVBUF_BUF_DITHER_CFG_TRUNC_PT_MASK 0X000000E0 + +#define XAVBUF_BUF_DITHER_CFG_MODE_SHIFT 3 +#define XAVBUF_BUF_DITHER_CFG_MODE_WIDTH 2 +#define XAVBUF_BUF_DITHER_CFG_MODE_MASK 0X00000018 + +#define XAVBUF_BUF_DITHER_CFG_SIZE_SHIFT 0 +#define XAVBUF_BUF_DITHER_CFG_SIZE_WIDTH 3 +#define XAVBUF_BUF_DITHER_CFG_SIZE_MASK 0X00000007 + +/** + * * Register: XAVBUF_DITHER_CFG_SEED0 + * */ +#define XAVBUF_DITHER_CFG_SEED0 0X0000B080 + +#define XAVBUF_DITHER_CFG_SEED0_COLR0_SHIFT 0 +#define XAVBUF_DITHER_CFG_SEED0_COLR0_WIDTH 16 +#define XAVBUF_DITHER_CFG_SEED0_COLR0_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_DITHER_CFG_SEED1 + * */ +#define XAVBUF_DITHER_CFG_SEED1 0X0000B084 + +#define XAVBUF_DITHER_CFG_SEED1_COLR1_SHIFT 0 +#define XAVBUF_DITHER_CFG_SEED1_COLR1_WIDTH 16 +#define XAVBUF_DITHER_CFG_SEED1_COLR1_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_DITHER_CFG_SEED2 + * */ +#define XAVBUF_DITHER_CFG_SEED2 0X0000B088 + +#define XAVBUF_DITHER_CFG_SEED2_COLR2_SHIFT 0 +#define XAVBUF_DITHER_CFG_SEED2_COLR2_WIDTH 16 +#define XAVBUF_DITHER_CFG_SEED2_COLR2_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_DITHER_CFG_MAX + * */ +#define XAVBUF_DITHER_CFG_MAX 0X0000B08C + +#define XAVBUF_DITHER_CFG_MAX_COLR_MAX_SHIFT 0 +#define XAVBUF_DITHER_CFG_MAX_COLR_MAX_WIDTH 12 +#define XAVBUF_DITHER_CFG_MAX_COLR_MAX_MASK 0X00000FFF + +/** + * * Register: XAVBUF_DITHER_CFG_MIN + * */ +#define XAVBUF_DITHER_CFG_MIN 0X0000B090 + +#define XAVBUF_DITHER_CFG_MIN_COLR_MIN_SHIFT 0 +#define XAVBUF_DITHER_CFG_MIN_COLR_MIN_WIDTH 12 +#define XAVBUF_DITHER_CFG_MIN_COLR_MIN_MASK 0X00000FFF + +/** + * * Register: XAVBUF_PATTERN_GEN_SELECT + * */ +#define XAVBUF_PATTERN_GEN_SELECT 0X0000B100 + +#define XAVBUF_PATTERN_GEN_SELECT_OFFSET_EQ_SHIFT 8 +#define XAVBUF_PATTERN_GEN_SELECT_OFFSET_EQ_WIDTH 24 +#define XAVBUF_PATTERN_GEN_SELECT_OFFSET_EQ_MASK 0XFFFFFF00 + +#define XAVBUF_PATTERN_GEN_SELECT_AUD_RATE_SEL_SHIFT 0 +#define XAVBUF_PATTERN_GEN_SELECT_AUD_RATE_SEL_WIDTH 2 +#define XAVBUF_PATTERN_GEN_SELECT_AUD_RATE_SEL_MASK 0X00000003 + +/** + * * Register: XAVBUF_AUD_PATTERN_SELECT1 + * */ +#define XAVBUF_AUD_PATTERN_SELECT1 0X0000B104 + +#define XAVBUF_AUD_PATTERN_SELECT1_PATTERN_SHIFT 0 +#define XAVBUF_AUD_PATTERN_SELECT1_PATTERN_WIDTH 2 +#define XAVBUF_AUD_PATTERN_SELECT1_PATTERN_MASK 0X00000003 + +/** + * * Register: XAVBUF_AUD_PATTERN_SELECT2 + * */ +#define XAVBUF_AUD_PATTERN_SELECT2 0X0000B108 + +#define XAVBUF_AUD_PATTERN_SELECT2_PATTERN_SHIFT 0 +#define XAVBUF_AUD_PATTERN_SELECT2_PATTERN_WIDTH 2 +#define XAVBUF_AUD_PATTERN_SELECT2_PATTERN_MASK 0X00000003 + +/** + * * Register: XAVBUF_BUF_AUD_VID_CLK_SOURCE + * */ +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE 0X0000B120 + +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_TIMING_SRC_SHIFT 2 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_TIMING_SRC_WIDTH 1 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_TIMING_SRC_MASK 0X00000004 + +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_AUD_CLK_SRC_SHIFT 1 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_AUD_CLK_SRC_WIDTH 1 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_AUD_CLK_SRC_MASK 0X00000002 + +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_CLK_SRC_SHIFT 0 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_CLK_SRC_WIDTH 1 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_CLK_SRC_MASK 0X00000001 + +/** + * * Register: XAVBUF_BUF_SRST_REG + * */ +#define XAVBUF_BUF_SRST_REG 0X0000B124 + +#define XAVBUF_BUF_SRST_REG_VID_RST_SHIFT 1 +#define XAVBUF_BUF_SRST_REG_VID_RST_WIDTH 1 +#define XAVBUF_BUF_SRST_REG_VID_RST_MASK 0X00000002 + +/** + * * Register: XAVBUF_BUF_AUD_RDY_INTERVAL + * */ +#define XAVBUF_BUF_AUD_RDY_INTERVAL 0X0000B128 + +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH1_INT_SHIFT 16 +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH1_INT_WIDTH 16 +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH1_INT_MASK 0XFFFF0000 + +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH0_INT_SHIFT 0 +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH0_INT_WIDTH 16 +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH0_INT_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_BUF_AUD_CH_CFG + * */ +#define XAVBUF_BUF_AUD_CH_CFG 0X0000B12C + +#define XAVBUF_BUF_AUD_CH_CFG_AUD_CH_ID_SHIFT 0 +#define XAVBUF_BUF_AUD_CH_CFG_AUD_CH_ID_WIDTH 2 +#define XAVBUF_BUF_AUD_CH_CFG_AUD_CH_ID_MASK 0X00000003 + +/** + * * Register: XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR + * */ +#define XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR 0X0000B200 + +#define XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR0_SHIFT 0 +#define XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR0_WIDTH 17 +#define XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR0_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_GRAPHICS_COMP1_SCALE_FACTOR + * */ +#define XAVBUF_BUF_GRAPHICS_COMP1_SCALE_FACTOR 0X0000B204 + +#define XAVBUF_BUF_GRAPHICS_COMP1_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR1_SHIFT 0 +#define XAVBUF_BUF_GRAPHICS_COMP1_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR1_WIDTH 17 +#define XAVBUF_BUF_GRAPHICS_COMP1_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR1_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_GRAPHICS_COMP2_SCALE_FACTOR + * */ +#define XAVBUF_BUF_GRAPHICS_COMP2_SCALE_FACTOR 0X0000B208 + +#define XAVBUF_BUF_GRAPHICS_COMP2_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR2_SHIFT 0 +#define XAVBUF_BUF_GRAPHICS_COMP2_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR2_WIDTH 17 +#define XAVBUF_BUF_GRAPHICS_COMP2_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR2_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_VID_COMP0_SCALE_FACTOR + * */ +#define XAVBUF_BUF_VID_COMP0_SCALE_FACTOR 0X0000B20C + +#define XAVBUF_BUF_VID_COMP0_SCALE_FACTOR_VID_SCA_FACT0_SHIFT 0 +#define XAVBUF_BUF_VID_COMP0_SCALE_FACTOR_VID_SCA_FACT0_WIDTH 17 +#define XAVBUF_BUF_VID_COMP0_SCALE_FACTOR_VID_SCA_FACT0_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_VID_COMP1_SCALE_FACTOR + * */ +#define XAVBUF_BUF_VID_COMP1_SCALE_FACTOR 0X0000B210 + +#define XAVBUF_BUF_VID_COMP1_SCALE_FACTOR_VID_SCA_FACT1_SHIFT 0 +#define XAVBUF_BUF_VID_COMP1_SCALE_FACTOR_VID_SCA_FACT1_WIDTH 17 +#define XAVBUF_BUF_VID_COMP1_SCALE_FACTOR_VID_SCA_FACT1_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_VID_COMP2_SCALE_FACTOR + * */ +#define XAVBUF_BUF_VID_COMP2_SCALE_FACTOR 0X0000B214 + +#define XAVBUF_BUF_VID_COMP2_SCALE_FACTOR_VID_SCA_FACT2_SHIFT 0 +#define XAVBUF_BUF_VID_COMP2_SCALE_FACTOR_VID_SCA_FACT2_WIDTH 17 +#define XAVBUF_BUF_VID_COMP2_SCALE_FACTOR_VID_SCA_FACT2_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_VID_COMP0_SF + * */ +#define XAVBUF_BUF_LIVE_VID_COMP0_SF 0X0000B218 + +#define XAVBUF_BUF_LIVE_VID_COMP0_SF_LIV_VID_SCA_FACT0_SHIFT 0 +#define XAVBUF_BUF_LIVE_VID_COMP0_SF_LIV_VID_SCA_FACT0_WIDTH 17 +#define XAVBUF_BUF_LIVE_VID_COMP0_SF_LIV_VID_SCA_FACT0_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_VID_COMP1_SF + * */ +#define XAVBUF_BUF_LIVE_VID_COMP1_SF 0X0000B21C + +#define XAVBUF_BUF_LIVE_VID_COMP1_SF_LIV_VID_SCA_FACT1_SHIFT 0 +#define XAVBUF_BUF_LIVE_VID_COMP1_SF_LIV_VID_SCA_FACT1_WIDTH 17 +#define XAVBUF_BUF_LIVE_VID_COMP1_SF_LIV_VID_SCA_FACT1_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_VID_COMP2_SF + * */ +#define XAVBUF_BUF_LIVE_VID_COMP2_SF 0X0000B220 + +#define XAVBUF_BUF_LIVE_VID_COMP2_SF_LIV_VID_SCA_FACT2_SHIFT 0 +#define XAVBUF_BUF_LIVE_VID_COMP2_SF_LIV_VID_SCA_FACT2_WIDTH 17 +#define XAVBUF_BUF_LIVE_VID_COMP2_SF_LIV_VID_SCA_FACT2_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_VID_CFG + * */ +#define XAVBUF_BUF_LIVE_VID_CFG 0X0000B224 + +#define XAVBUF_BUF_LIVE_VID_CFG_CB_FIRST_SHIFT 8 +#define XAVBUF_BUF_LIVE_VID_CFG_CB_FIRST_WIDTH 1 +#define XAVBUF_BUF_LIVE_VID_CFG_CB_FIRST_MASK 0X00000100 + +#define XAVBUF_BUF_LIVE_VID_CFG_FORMAT_SHIFT 4 +#define XAVBUF_BUF_LIVE_VID_CFG_FORMAT_WIDTH 2 +#define XAVBUF_BUF_LIVE_VID_CFG_FORMAT_MASK 0X00000030 + +#define XAVBUF_BUF_LIVE_VID_CFG_BPC_SHIFT 0 +#define XAVBUF_BUF_LIVE_VID_CFG_BPC_WIDTH 3 +#define XAVBUF_BUF_LIVE_VID_CFG_BPC_MASK 0X00000007 + +/** + * * Register: XAVBUF_BUF_LIVE_GFX_COMP0_SF + * */ +#define XAVBUF_BUF_LIVE_GFX_COMP0_SF 0X0000B228 + +#define XAVBUF_BUF_LIVE_GFX_COMP0_SF_LIV_VID_SCA_FACT0_SHIFT 0 +#define XAVBUF_BUF_LIVE_GFX_COMP0_SF_LIV_VID_SCA_FACT0_WIDTH 17 +#define XAVBUF_BUF_LIVE_GFX_COMP0_SF_LIV_VID_SCA_FACT0_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_GFX_COMP1_SF + * */ +#define XAVBUF_BUF_LIVE_GFX_COMP1_SF 0X0000B22C + +#define XAVBUF_BUF_LIVE_GFX_COMP1_SF_LIV_VID_SCA_FACT1_SHIFT 0 +#define XAVBUF_BUF_LIVE_GFX_COMP1_SF_LIV_VID_SCA_FACT1_WIDTH 17 +#define XAVBUF_BUF_LIVE_GFX_COMP1_SF_LIV_VID_SCA_FACT1_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_GFX_COMP2_SF + * */ +#define XAVBUF_BUF_LIVE_GFX_COMP2_SF 0X0000B230 + +#define XAVBUF_BUF_LIVE_GFX_COMP2_SF_LIV_VID_SCA_FACT2_SHIFT 0 +#define XAVBUF_BUF_LIVE_GFX_COMP2_SF_LIV_VID_SCA_FACT2_WIDTH 17 +#define XAVBUF_BUF_LIVE_GFX_COMP2_SF_LIV_VID_SCA_FACT2_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_GFX_CFG + * */ +#define XAVBUF_BUF_LIVE_GFX_CFG 0X0000B234 + +#define XAVBUF_BUF_LIVE_GFX_CFG_CB_FIRST_SHIFT 8 +#define XAVBUF_BUF_LIVE_GFX_CFG_CB_FIRST_WIDTH 1 +#define XAVBUF_BUF_LIVE_GFX_CFG_CB_FIRST_MASK 0X00000100 + +#define XAVBUF_BUF_LIVE_GFX_CFG_FORMAT_SHIFT 4 +#define XAVBUF_BUF_LIVE_GFX_CFG_FORMAT_WIDTH 2 +#define XAVBUF_BUF_LIVE_GFX_CFG_FORMAT_MASK 0X00000030 + +#define XAVBUF_BUF_LIVE_GFX_CFG_BPC_SHIFT 0 +#define XAVBUF_BUF_LIVE_GFX_CFG_BPC_WIDTH 3 +#define XAVBUF_BUF_LIVE_GFX_CFG_BPC_MASK 0X00000007 + +/** + * * Register: XAVBUF_AUD_MIXER_VOLUME_CONTROL + * */ +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL 0X0000C000 + +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH1_SHIFT 16 +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH1_WIDTH 16 +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH1_MASK 0XFFFF0000 + +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH0_SHIFT 0 +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH0_WIDTH 16 +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH0_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_AUD_MIXER_META_DATA + * */ +#define XAVBUF_AUD_MIXER_META_DATA 0X0000C004 + +#define XAVBUF_AUD_MIXER_META_DATA_AUD_META_DATA_SEL_SHIFT 0 +#define XAVBUF_AUD_MIXER_META_DATA_AUD_META_DATA_SEL_WIDTH 1 +#define XAVBUF_AUD_MIXER_META_DATA_AUD_META_DATA_SEL_MASK 0X00000001 + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG0 + * */ +#define XAVBUF_AUD_CH_STATUS_REG0 0X0000C008 + +#define XAVBUF_AUD_CH_STATUS_REG0_STATUS0_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG0_STATUS0_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG0_STATUS0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG1 + * */ +#define XAVBUF_AUD_CH_STATUS_REG1 0X0000C00C + +#define XAVBUF_AUD_CH_STATUS_REG1_STATUS1_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG1_STATUS1_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG1_STATUS1_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG2 + * */ +#define XAVBUF_AUD_CH_STATUS_REG2 0X0000C010 + +#define XAVBUF_AUD_CH_STATUS_REG2_STATUS2_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG2_STATUS2_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG2_STATUS2_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG3 + * */ +#define XAVBUF_AUD_CH_STATUS_REG3 0X0000C014 + +#define XAVBUF_AUD_CH_STATUS_REG3_STATUS3_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG3_STATUS3_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG3_STATUS3_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG4 + * */ +#define XAVBUF_AUD_CH_STATUS_REG4 0X0000C018 + +#define XAVBUF_AUD_CH_STATUS_REG4_STATUS4_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG4_STATUS4_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG4_STATUS4_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG5 + * */ +#define XAVBUF_AUD_CH_STATUS_REG5 0X0000C01C + +#define XAVBUF_AUD_CH_STATUS_REG5_STATUS5_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG5_STATUS5_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG5_STATUS5_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG0 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG0 0X0000C020 + +#define XAVBUF_AUD_CH_A_DATA_REG0_USER_DATA0_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG0_USER_DATA0_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG0_USER_DATA0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG1 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG1 0X0000C024 + +#define XAVBUF_AUD_CH_A_DATA_REG1_USER_DATA1_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG1_USER_DATA1_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG1_USER_DATA1_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG2 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG2 0X0000C028 + +#define XAVBUF_AUD_CH_A_DATA_REG2_USER_DATA2_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG2_USER_DATA2_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG2_USER_DATA2_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG3 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG3 0X0000C02C + +#define XAVBUF_AUD_CH_A_DATA_REG3_USER_DATA3_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG3_USER_DATA3_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG3_USER_DATA3_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG4 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG4 0X0000C030 + +#define XAVBUF_AUD_CH_A_DATA_REG4_USER_DATA4_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG4_USER_DATA4_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG4_USER_DATA4_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG5 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG5 0X0000C034 + +#define XAVBUF_AUD_CH_A_DATA_REG5_USER_DATA5_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG5_USER_DATA5_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG5_USER_DATA5_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG0 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG0 0X0000C038 + +#define XAVBUF_AUD_CH_B_DATA_REG0_USER_DATA0_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG0_USER_DATA0_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG0_USER_DATA0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG1 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG1 0X0000C03C + +#define XAVBUF_AUD_CH_B_DATA_REG1_USER_DATA1_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG1_USER_DATA1_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG1_USER_DATA1_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG2 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG2 0X0000C040 + +#define XAVBUF_AUD_CH_B_DATA_REG2_USER_DATA2_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG2_USER_DATA2_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG2_USER_DATA2_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG3 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG3 0X0000C044 + +#define XAVBUF_AUD_CH_B_DATA_REG3_USER_DATA3_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG3_USER_DATA3_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG3_USER_DATA3_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG4 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG4 0X0000C048 + +#define XAVBUF_AUD_CH_B_DATA_REG4_USER_DATA4_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG4_USER_DATA4_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG4_USER_DATA4_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG5 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG5 0X0000C04C + +#define XAVBUF_AUD_CH_B_DATA_REG5_USER_DATA5_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG5_USER_DATA5_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG5_USER_DATA5_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_SOFT_RST + * */ +#define XAVBUF_AUD_SOFT_RST 0X0000CC00 + +#define XAVBUF_AUD_SOFT_RST_EXTRA_BS_CONTROL_SHIFT 2 +#define XAVBUF_AUD_SOFT_RST_EXTRA_BS_CONTROL_WIDTH 1 +#define XAVBUF_AUD_SOFT_RST_EXTRA_BS_CONTROL_MASK 0X00000004 + +#define XAVBUF_AUD_SOFT_RST_LINE_RST_DISABLE_SHIFT 1 +#define XAVBUF_AUD_SOFT_RST_LINE_RST_DISABLE_WIDTH 1 +#define XAVBUF_AUD_SOFT_RST_LINE_RST_DISABLE_MASK 0X00000002 + +#define XAVBUF_AUD_SOFT_RST_AUD_SRST_SHIFT 0 +#define XAVBUF_AUD_SOFT_RST_AUD_SRST_WIDTH 1 +#define XAVBUF_AUD_SOFT_RST_AUD_SRST_MASK 0X00000001 + +/** + * * Register: XAVBUF_PATGEN_CRC_R + * */ +#define XAVBUF_PATGEN_CRC_R 0X0000CC10 + +#define XAVBUF_PATGEN_CRC_R_CRC_R_SHIFT 0 +#define XAVBUF_PATGEN_CRC_R_CRC_R_WIDTH 16 +#define XAVBUF_PATGEN_CRC_R_CRC_R_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_PATGEN_CRC_G + * */ +#define XAVBUF_PATGEN_CRC_G 0X0000CC14 + +#define XAVBUF_PATGEN_CRC_G_CRC_G_SHIFT 0 +#define XAVBUF_PATGEN_CRC_G_CRC_G_WIDTH 16 +#define XAVBUF_PATGEN_CRC_G_CRC_G_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_PATGEN_CRC_B + * */ +#define XAVBUF_PATGEN_CRC_B 0X0000CC18 + +#define XAVBUF_PATGEN_CRC_B_CRC_B_SHIFT 0 +#define XAVBUF_PATGEN_CRC_B_CRC_B_WIDTH 16 +#define XAVBUF_PATGEN_CRC_B_CRC_B_MASK 0X0000FFFF + +#define XAVBUF_NUM_SUPPORTED 52 + +#define XAVBUF_BUF_4BIT_SF 0x11111 +#define XAVBUF_BUF_5BIT_SF 0x10842 +#define XAVBUF_BUF_6BIT_SF 0x10410 +#define XAVBUF_BUF_8BIT_SF 0x10101 +#define XAVBUF_BUF_10BIT_SF 0x10040 +#define XAVBUF_BUF_12BIT_SF 0x10000 + +#define XAVBUF_BUF_6BPC 0x000 +#define XAVBUF_BUF_8BPC 0x001 +#define XAVBUF_BUF_10BPC 0x010 +#define XAVBUF_BUF_12BPC 0x011 + +#define XAVBUF_CHBUF_V_BURST_LEN 0xF +#define XAVBUF_CHBUF_A_BURST_LEN 0x3 + +#define XAVBUF_PL_CLK 0x0 +#define XAVBUF_PS_CLK 0x1 + +#define XAVBUF_NUM_SUPPORTED_NLVID 25 +#define XAVBUF_NUM_SUPPORTED_NLGFX 14 +#define XAVBUF_NUM_SUPPORTED_LIVE 14 +#define XAVBUF_NUM_OUTPUT_FORMATS 14 + +/** + * Address mapping for PLL (CRF and CRL) + */ + +/* Base Address for CLOCK in FPD. */ +#define XAVBUF_CLK_FPD_BASEADDR 0XFD1A0000 + +/* Base Address for CLOCK in LPD. */ +#define XAVBUF_CLK_LPD_BASEADDR 0XFF5E0000 + +/** + * The following constants define values to manipulate + * the bits of the VPLL control register. + */ +#define XAVBUF_PLL_CTRL 0X00000020 + +#define XAVBUF_PLL_CTRL_POST_SRC_SHIFT 24 +#define XAVBUF_PLL_CTRL_POST_SRC_WIDTH 3 +#define XAVBUF_PLL_CTRL_POST_SRC_MASK 0X07000000 + +#define XAVBUF_PLL_CTRL_PRE_SRC_SHIFT 20 +#define XAVBUF_VPLL_CTRL_PRE_SRC_WIDTH 3 +#define XAVBUF_VPLL_CTRL_PRE_SRC_MASK 0X00700000 + +#define XAVBUF_PLL_CTRL_CLKOUTDIV_SHIFT 17 +#define XAVBUF_PLL_CTRL_CLKOUTDIV_WIDTH 1 +#define XAVBUF_PLL_CTRL_CLKOUTDIV_MASK 0X00020000 + +#define XAVBUF_PLL_CTRL_DIV2_SHIFT 16 +#define XAVBUF_PLL_CTRL_DIV2_WIDTH 1 +#define XAVBUF_PLL_CTRL_DIV2_MASK 0X00010000 + +#define XAVBUF_PLL_CTRL_FBDIV_SHIFT 8 +#define XAVBUF_PLL_CTRL_FBDIV_WIDTH 7 +#define XAVBUF_PLL_CTRL_FBDIV_MASK 0X00007F00 + +#define XAVBUF_PLL_CTRL_BYPASS_SHIFT 3 +#define XAVBUF_PLL_CTRL_BYPASS_WIDTH 1 +#define XAVBUF_PLL_CTRL_BYPASS_MASK 0X00000008 + +#define XAVBUF_PLL_CTRL_RESET_SHIFT 0 +#define XAVBUF_PLL_CTRL_RESET_WIDTH 1 +#define XAVBUF_PLL_CTRL_RESET_MASK 0X00000001 + +/** + * The following constants define values to manipulate + * the bits of the PLL config register. + */ +#define XAVBUF_PLL_CFG 0X00000024 + +#define XAVBUF_PLL_CFG_LOCK_DLY_SHIFT 25 +#define XAVBUF_PLL_CFG_LOCK_DLY_WIDTH 7 +#define XAVBUF_PLL_CFG_LOCK_DLY_MASK 0XFE000000 + +#define XAVBUF_PLL_CFG_LOCK_CNT_SHIFT 13 +#define XAVBUF_PLL_CFG_LOCK_CNT_WIDTH 10 +#define XAVBUF_PLL_CFG_LOCK_CNT_MASK 0X007FE000 + +#define XAVBUF_PLL_CFG_LFHF_SHIFT 10 +#define XAVBUF_PLL_CFG_LFHF_WIDTH 2 +#define XAVBUF_PLL_CFG_LFHF_MASK 0X00000C00 + +#define XAVBUF_PLL_CFG_CP_SHIFT 5 +#define XAVBUF_PLL_CFG_CP_WIDTH 4 +#define XAVBUF_PLL_CFG_CP_MASK 0X000001E0 + +#define XAVBUF_PLL_CFG_RES_SHIFT 0 +#define XAVBUF_PLL_CFG_RES_WIDTH 4 +#define XAVBUF_PLL_CFG_RES_MASK 0X0000000F + +/** + * The following constants define values to manipulate + * the bits of the VPLL fractional config register. + */ +#define XAVBUF_PLL_FRAC_CFG 0X00000028 + +#define XAVBUF_PLL_FRAC_CFG_ENABLED_SHIFT 31 +#define XAVBUF_PLL_FRAC_CFG_ENABLED_WIDTH 1 +#define XAVBUF_PLL_FRAC_CFG_ENABLED_MASK 0X80000000 + +#define XAVBUF_PLL_FRAC_CFG_SEED_SHIFT 22 +#define XAVBUF_PLL_FRAC_CFG_SEED_WIDTH 3 +#define XAVBUF_PLL_FRAC_CFG_SEED_MASK 0X01C00000 + +#define XAVBUF_PLL_FRAC_CFG_ALGRTHM_SHIFT 19 +#define XAVBUF_PLL_FRAC_CFG_ALGRTHM_WIDTH 1 +#define XAVBUF_PLL_FRAC_CFG_ALGRTHM_MASK 0X00080000 + +#define XAVBUF_PLL_FRAC_CFG_ORDER_SHIFT 18 +#define XAVBUF_PLL_FRAC_CFG_ORDER_WIDTH 1 +#define XAVBUF_PLL_FRAC_CFG_ORDER_MASK 0X00040000 + +#define XAVBUF_PLL_FRAC_CFG_DATA_SHIFT 0 +#define XAVBUF_PLL_FRAC_CFG_DATA_WIDTH 16 +#define XAVBUF_PLL_FRAC_CFG_DATA_MASK 0X0000FFFF + +/** + * The following constants define values to manipulate + * the bits of the PLL STATUS register. + */ +#define XAVBUF_PLL_STATUS 0X00000044 + +#define XAVBUF_PLL_STATUS_VPLL_STABLE_SHIFT 5 +#define XAVBUF_PLL_STATUS_VPLL_STABLE_WIDTH 1 +#define XAVBUF_PLL_STATUS_VPLL_STABLE_MASK 0X00000020 + +#define XAVBUF_PLL_STATUS_DPLL_STABLE_SHIFT 4 +#define XAVBUF_PLL_STATUS_DPLL_STABLE_WIDTH 1 +#define XAVBUF_PLL_STATUS_DPLL_STABLE_MASK 0X00000010 + +#define XAVBUF_PLL_STATUS_APLL_STABLE_SHIFT 3 +#define XAVBUF_PLL_STATUS_APLL_STABLE_WIDTH 1 +#define XAVBUF_PLL_STATUS_APLL_STABLE_MASK 0X00000008 + +#define XAVBUF_PLL_STATUS_VPLL_LOCK_SHIFT 2 +#define XAVBUF_PLL_STATUS_VPLL_LOCK_WIDTH 1 +#define XAVBUF_PLL_STATUS_VPLL_LOCK_MASK 0X00000004 + +#define XAVBUF_PLL_STATUS_DPLL_LOCK_SHIFT 1 +#define XAVBUF_PLL_STATUS_DPLL_LOCK_WIDTH 1 +#define XAVBUF_PLL_STATUS_DPLL_LOCK_MASK 0X00000002 + +#define XAVBUF_PLL_STATUS_APLL_LOCK_SHIFT 0 +#define XAVBUF_PLL_STATUS_APLL_LOCK_WIDTH 1 +#define XAVBUF_PLL_STATUS_APLL_LOCK_MASK 0X00000001 + +/** + * The following constants define values to manipulate + * the bits of the VIDEO reference control register. + */ +#define XAVBUF_VIDEO_REF_CTRL 0X00000070 + +#define XAVBUF_VIDEO_REF_CTRL_CLKACT_SHIFT 24 +#define XAVBUF_VIDEO_REF_CTRL_CLKACT_WIDTH 1 +#define XAVBUF_VIDEO_REF_CTRL_CLKACT_MASK 0X01000000 + +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR1_SHIFT 16 +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR1_WIDTH 6 +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR1_MASK 0X003F0000 + +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR0_SHIFT 8 +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR0_WIDTH 6 +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR0_MASK 0X00003F00 + +#define XAVBUF_VIDEO_REF_CTRL_SRCSEL_SHIFT 0 +#define XAVBUF_VIDEO_REF_CTRL_SRCSEL_WIDTH 3 +#define XAVBUF_VIDEO_REF_CTRL_SRCSEL_MASK 0X00000007 + +/** + * The following constants define values to manipulate + * the bits of the AUDIO reference control register. + */ +#define XAVBUF_AUDIO_REF_CTRL 0X00000074 + +#define XAVBUF_AUDIO_REF_CTRL_CLKACT_SHIFT 24 +#define XAVBUF_AUDIO_REF_CTRL_CLKACT_WIDTH 1 +#define XAVBUF_AUDIO_REF_CTRL_CLKACT_MASK 0X01000000 + +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR1_SHIFT 16 +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR1_WIDTH 6 +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR1_MASK 0X003F0000 + +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR0_SHIFT 8 +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR0_WIDTH 6 +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR0_MASK 0X00003F00 + +#define XAVBUF_AUDIO_REF_CTRL_SRCSEL_SHIFT 0 +#define XAVBUF_AUDIO_REF_CTRL_SRCSEL_WIDTH 3 +#define XAVBUF_AUDIO_REF_CTRL_SRCSEL_MASK 0X00000007 + +/** + * The following constants define values to manipulate + * the bits of the Domain Switch register. + * For eg. FPD to LPD. + */ +#define XAVBUF_DOMAIN_SWITCH_CTRL 0X00000044 + +#define XAVBUF_DOMAIN_SWITCH_DIVISOR0_SHIFT 8 +#define XAVBUF_DOMAIN_SWITCH_DIVISOR0_WIDTH 6 +#define XAVBUF_DOMAIN_SWITCH_DIVISOR0_MASK 0X00003F00 + +/** + * The following constants define values to Reference + * clock. + */ +#define XAVBUF_Pss_Ref_Clk 0 +#define XAVBUF_Video_Clk 4 +#define XAVBUF_Pss_alt_Ref_Clk 5 +#define XAVBUF_Aux_Ref_clk 6 +#define XAVBUF_Gt_Crx_Ref_Clk 7 + +/** + * The following constants define values to manipulate + * the bits of any register. + */ +#define XAVBUF_ENABLE_BIT 1 +#define XAVBUF_DISABLE_BIT 0 + +/** + * The following constants define values available + * PLL source to Audio and Video. + */ +#define XAVBUF_VPLL_SRC_SEL 0 +#define XAVBUF_DPLL_SRC_SEL 2 +#define XAVBUF_RPLL_TO_FPD_SRC_SEL 3 + +/******************* Macros (Inline Functions) Definitions ********************/ + +/** @name Register access macro definitions. + * @{ + */ +#define XAVBuf_In32 Xil_In32 +#define XAVBuf_Out32 Xil_Out32 +/* @} */ + +/******************************************************************************/ +/** + * This is a low-level function that reads from the specified register. + * + * @param BaseAddress is the base address of the device. + * @param RegOffset is the register offset to be read from. + * + * @return The 32-bit value of the specified register. + * + * @note C-style signature: + * u32 XAVBuf_ReadReg(u32 BaseAddress, u32 RegOffset) + * +*******************************************************************************/ +#define XAVBuf_ReadReg(BaseAddress, RegOffset) \ + XAVBuf_In32((BaseAddress) + (RegOffset)) + +/******************************************************************************/ +/** + * This is a low-level function that writes to the specified register. + * + * @param BaseAddress is the base address of the device. + * @param RegOffset is the register offset to write to. + * @param Data is the 32-bit data to write to the specified register. + * + * @return None. + * + * @note C-style signature: + * void XAVBuf_WriteReg(u32 BaseAddress, u32 RegOffset, u32 Data) + * +*******************************************************************************/ +#define XAVBuf_WriteReg(BaseAddress, RegOffset, Data) \ + XAVBuf_Out32((BaseAddress) + (RegOffset), (Data)) + + +#ifdef __cplusplus +} +#endif + + +#endif //XAVBUF_H_ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_videoformats.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_videoformats.c new file mode 100644 index 000000000..4651cd8d4 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_videoformats.c @@ -0,0 +1,227 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf_videoformats.c + * @addtogroup xavbuf_v2_1 + * @{ + * + * Contains attributes of the video formats mapped to the hardware + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   aad  03/10/17 Initial release.
+ * 2.0   aad  02/22/18 Fixed scaling factors and bits per pixel
+ * 
+ * +*******************************************************************************/ + +/******************************* Include Files ********************************/ + +#include "xavbuf.h" + + +/**************************** Variable Definitions ****************************/ +#ifdef __cplusplus +extern "C" +#endif + +const XAVBuf_VideoAttribute XAVBuf_SupportedFormats[XAVBUF_NUM_SUPPORTED] = +{ + /* Non - Live Video Formats */ + { CbY0CrY1, 0, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { CrY0CbY1, 1, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { Y0CrY1Cb, 2, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { Y0CbY1Cr, 3, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { YV16, 4, Planar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { YV24, 5, Planar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, FALSE, FALSE, 24}, + { YV16Ci, 6, SemiPlanar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { MONOCHROME, 7, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 8}, + { YV16Ci2, 8, SemiPlanar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, TRUE, 16}, + { YUV444, 9, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, FALSE, FALSE, 24}, + { RGB888, 10, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 24}, + { RGBA8880, 11, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 32}, + { RGB888_10BPC, 12, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + FALSE, TRUE, FALSE, 30}, + { YUV444_10BPC, 13, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + FALSE, FALSE, FALSE, 30}, + { YV16Ci2_10BPC, 14, SemiPlanar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, TRUE, 20}, + { YV16Ci_10BPC, 15, SemiPlanar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 20}, + { YV16_10BPC, 16, Planar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 20}, + { YV24_10BPC, 17, Planar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + FALSE, FALSE, FALSE, 30}, + { MONOCHROME_10BPC, 18, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 10}, + { YV16_420, 19, Planar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { YV16Ci_420, 20, SemiPlanar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { YV16Ci2_420, 21, SemiPlanar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, TRUE, 16}, + { YV16_420_10BPC, 22, Planar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 20}, + { YV16Ci_420_10BPC, 23, SemiPlanar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 20}, + { YV16Ci2_420_10BPC, 24, SemiPlanar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, TRUE, 20}, + + /* Non-Live Graphics formats */ + { RGBA8888, 0, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 32}, + { ABGR8888, 1, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 32}, + { RGB888_GFX, 2, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 24}, + { BGR888, 3, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 24}, + { RGBA5551, 4, Interleaved, + {XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_5BIT_SF}, + FALSE, TRUE, FALSE, 16}, + { RGBA4444, 5, Interleaved, + {XAVBUF_BUF_4BIT_SF, XAVBUF_BUF_4BIT_SF, XAVBUF_BUF_4BIT_SF}, + FALSE, TRUE, FALSE, 16}, + { RGB565, 6, Interleaved, + {XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_5BIT_SF}, + FALSE, TRUE, FALSE, 16}, + { BPP8, 7, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 8}, + { BPP4, 8, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 4}, + { BPP2, 9, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 2}, + { BPP1, 10, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 1}, + { YUV422, 11, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, FALSE, FALSE, 24}, + + /* Video Formats for Live Video/Graphics input and output sources */ + { RGB_6BPC, 0, Interleaved, + {XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF}, + FALSE, TRUE, FALSE, 18}, + { RGB_8BPC, 0, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 24}, + { RGB_10BPC, 0, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + FALSE, TRUE, FALSE, 30}, + { RGB_12BPC, 0, Interleaved, + {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF}, + FALSE, TRUE, FALSE, 36}, + { YCbCr444_6BPC, 1, Interleaved, + {XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF}, + FALSE, FALSE, FALSE, 18}, + { YCbCr444_8BPC, 1, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, FALSE, FALSE, 24}, + { YCbCr444_10BPC, 1, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + FALSE, FALSE, FALSE, 30}, + { YCbCr444_12BPC, 1, Interleaved, + {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF}, + FALSE, FALSE, FALSE, 36}, + { YCbCr422_8BPC, 2, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 24}, + { YCbCr422_10BPC, 2, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 30}, + { YCbCr422_12BPC, 2, Interleaved, + {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF}, + TRUE, FALSE, FALSE, 36}, + { YOnly_8BPC, 3, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 24}, + { YOnly_10BPC, 3, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 30}, + { YOnly_12BPC, 3, Interleaved, + {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF}, + TRUE, FALSE, FALSE, 36}, + +}; + +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/Makefile deleted file mode 100644 index 926b20c4e..000000000 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -COMPILER= -ARCHIVER= -CP=cp -COMPILER_FLAGS= -EXTRA_COMPILER_FLAGS= -LIB=libxil.a - -RELEASEDIR=../../../lib -INCLUDEDIR=../../../include -INCLUDES=-I./. -I${INCLUDEDIR} - -INCLUDEFILES=*.h -LIBSOURCES=*.c -OUTS = *.o - - -libs: - echo "Compiling axipmon" - $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) - $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} - make clean - -include: - ${CP} ${INCLUDEFILES} ${INCLUDEDIR} - -clean: - rm -rf ${OUTS} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/Makefile new file mode 100644 index 000000000..8c401268f --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/Makefile @@ -0,0 +1,40 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +CC_FLAGS = $(COMPILER_FLAGS) +ECC_FLAGS = $(EXTRA_COMPILER_FLAGS) + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +OUTS = *.o + +LIBSOURCES:=*.c +INCLUDEFILES:=*.h + +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) + +libs: banner xaxipmon_libs clean + +%.o: %.c + ${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) -o $@ $< + +banner: + echo "Compiling axipmon" + +xaxipmon_libs: ${OBJECTS} + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} + +.PHONY: include +include: xaxipmon_includes + +xaxipmon_includes: + ${CP} ${INCLUDEFILES} ${INCLUDEDIR} + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon.c index fbb867839..fc5d99fd2 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon.c @@ -33,7 +33,7 @@ /** * * @file xaxipmon.c -* @addtogroup axipmon_v6_3 +* @addtogroup axipmon_v6_6 * @{ * * This file contains the driver API functions that can be used to access diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon.h index f8d4d6467..ea347e07c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon.h @@ -33,7 +33,7 @@ /** * * @file xaxipmon.h -* @addtogroup axipmon_v6_3 +* @addtogroup axipmon_v6_6 * @{ * @details * @@ -253,6 +253,14 @@ * 6.3 kvn 07/02/15 Modified code according to MISRA-C:2012 guidelines. * 6.4 sk 11/10/15 Used UINTPTR instead of u32 for Baseaddress CR# 867425. * Changed the prototype of XAxiPmon_CfgInitialize API. +* 6.5 ms 01/23/17 Modified xil_printf statement in main function for all +* examples to ensure that "Successfully ran" and "Failed" +* strings are available in all examples. This is a fix +* for CR-965028. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* 6.6 ms 04/18/17 Modified tcl file to add suffix U for all macro +* definitions of axipmon in xparameters.h * * *****************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_g.c similarity index 94% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_g.c index 2bd473dd5..b54becbef 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XAxiPmon_Config XAxiPmon_ConfigTable[] = +XAxiPmon_Config XAxiPmon_ConfigTable[XPAR_XAXIPMON_NUM_INSTANCES] = { { XPAR_PSU_APM_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_hw.h index 68ed57aaf..b5d20f57f 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_hw.h @@ -33,7 +33,7 @@ /** * * @file xaxipmon_hw.h -* @addtogroup axipmon_v6_3 +* @addtogroup axipmon_v6_6 * @{ * * This header file contains identifiers and basic driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_selftest.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_selftest.c index df2a9da66..7a6679140 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_selftest.c @@ -33,7 +33,7 @@ /** * * @file xaxipmon_selftest.c -* @addtogroup axipmon_v6_3 +* @addtogroup axipmon_v6_6 * @{ * * This file contains a diagnostic self test function for the XAxiPmon driver. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_sinit.c index 737d80b48..2494aea8c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_6/src/xaxipmon_sinit.c @@ -33,7 +33,7 @@ /** * * @file xaxipmon_sinit.c -* @addtogroup axipmon_v6_3 +* @addtogroup axipmon_v6_6 * @{ * * This file contains the implementation of the XAxiPmon driver's static diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps.c index 243b3a81b..f852de4e6 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps.c @@ -33,7 +33,7 @@ /** * * @file xcanps.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * Functions in this file are the minimum required functions for the XCanPs diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps.h index b180e37ec..9feb45eea 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps.h @@ -33,7 +33,7 @@ /** * * @file xcanps.h -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * @details * @@ -204,6 +204,8 @@ * Data mismatch while sending data less than 8 bytes. * 3.1 nsk 12/21/15 Updated XCanPs_IntrHandler in xcanps_intr.c to handle * error interrupts correctly. CR#925615 +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_g.c index 4063a44eb..0ed8cd17c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XCanPs_Config XCanPs_ConfigTable[] = +XCanPs_Config XCanPs_ConfigTable[XPAR_XCANPS_NUM_INSTANCES] = { { XPAR_PSU_CAN_1_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_hw.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_hw.c index bbb96120a..7ca2f81eb 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_hw.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_hw.c @@ -33,7 +33,7 @@ /** * * @file xcanps_hw.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains the implementation of the canps interface reset sequence diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_hw.h index 9fe681aaf..30ec68ab9 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_hw.h @@ -33,7 +33,7 @@ /** * * @file xcanps_hw.h -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This header file contains the identifiers and basic driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_intr.c index f6721ca75..715b35eb2 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_intr.c @@ -33,7 +33,7 @@ /** * * @file xcanps_intr.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains functions related to CAN interrupt handling. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_selftest.c index 48a6f4031..26c9fcb68 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xcanps_selftest.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains a diagnostic self-test function for the XCanPs driver. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_sinit.c index 230c429b3..5321669d7 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/canps_v3_2/src/xcanps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xcanps_sinit.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains the implementation of the XCanPs driver's static diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_3/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_4/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_4/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.c index 4bad57094..fca26ca2e 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.c @@ -33,7 +33,7 @@ /** * * @file xcoresightpsdcc.c -* @addtogroup coresightps_dcc_v1_1 +* @addtogroup coresightps_dcc_v1_4 * @{ * * Functions in this file are the minimum required functions for the @@ -132,7 +132,7 @@ void XCoresightPs_DccSendByte(u32 BaseAddress, u8 Data) ******************************************************************************/ u8 XCoresightPs_DccRecvByte(u32 BaseAddress) { - u8 Data; + u8 Data = 0U; (void) BaseAddress; while (!(XCoresightPs_DccGetStatus() & XCORESIGHTPS_DCC_STATUS_RX)) @@ -169,7 +169,7 @@ u8 XCoresightPs_DccRecvByte(u32 BaseAddress) ******************************************************************************/ static INLINE u32 XCoresightPs_DccGetStatus(void) { - u32 Status; + u32 Status = 0U; #ifdef __aarch64__ asm volatile ("mrs %0, mdccsr_el0" : "=r" (Status)); diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.h index a732b235d..67959e327 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.h @@ -33,7 +33,7 @@ /** * * @file xcoresightpsdcc.h -* @addtogroup coresightps_dcc_v1_1 +* @addtogroup coresightps_dcc_v1_4 * @{ * @details * diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_2/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_5/src/Makefile similarity index 78% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_2/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_5/src/Makefile index 747a7a10d..4a326767b 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_2/src/Makefile +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_5/src/Makefile @@ -10,7 +10,7 @@ INCLUDEDIR=../../../include INCLUDES=-I${INCLUDEDIR} OUTS = *.o - +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) LIBSOURCES=*.c INCLUDEFILES=*.h @@ -20,3 +20,6 @@ libs: .PHONY: include include: ${CP} $(INCLUDEFILES) $(INCLUDEDIR) + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_2/src/xcpu_cortexa53.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_5/src/xcpu_cortexa53.h similarity index 86% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_2/src/xcpu_cortexa53.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_5/src/xcpu_cortexa53.h index 6083206d0..62a4a3247 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_2/src/xcpu_cortexa53.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/cpu_cortexa53_v1_5/src/xcpu_cortexa53.h @@ -33,11 +33,16 @@ /** * * @file xcpu_cortexa53.h -* @addtogroup cpu_cortexa53_v1_0 +* @addtogroup cpu_cortexa53_v1_5 * @{ * @details * * dummy file +* MODIFICATION HISTORY: * +* Ver Who Date Changes +* ----- ---- -------- --------------------------------------------------------- +* 1.4 ms 04/18/17 Modified tcl file to add suffix U for XPAR_CPU_ID +* parameter of cpu_cortexa53 in xparameters.h ******************************************************************************/ /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma.c index 4ed4dd60b..9aa4beedb 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014-2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,7 +34,7 @@ /** * * @file xcsudma.c -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * * This file contains the implementation of the interface functions for CSU_DMA @@ -188,6 +188,80 @@ void XCsuDma_Transfer(XCsuDma *InstancePtr, XCsuDma_Channel Channel, } } +/*****************************************************************************/ +/** +* +* This function sets the starting address and amount(size) of the data to be +* transfered from/to the memory through the AXI interface. +* This function is useful for pmu processor when it wishes to do +* a 64-bit DMA transfer. +* +* @param InstancePtr is a pointer to XCsuDma instance to be worked on. +* @param Channel represents the type of channel either it is Source or +* Destination. +* Source channel - XCSUDMA_SRC_CHANNEL +* Destination Channel - XCSUDMA_DST_CHANNEL +* @param AddrLow is a 32 bit variable which holds the starting lower address of +* data which needs to write into the memory(DST) (or read from +* the memory(SRC)). +* @param AddrHigh is a 32 bit variable which holds the higher address of data +* which needs to write into the memory(DST) (or read from +* the memroy(SRC)). +* @param Size is a 32 bit variable which represents the number of 4 byte +* words needs to be transfered from starting address. +* @param EnDataLast is to trigger an end of message. It will enable or +* disable data_inp_last signal to stream interface when current +* command is completed. It is applicable only to source channel +* and neglected for destination channel. +* - 1 - Asserts data_inp_last signal. +* - 0 - data_inp_last will not be asserted. +* +* @return None. +* +* @note Data_inp_last signal is asserted simultaneously with the +* data_inp_valid signal associated with the final 32-bit word +* transfer +* This API won't do flush/invalidation for the DMA buffer. +* It is recommened to call this API only through PMU processor. +* +******************************************************************************/ +void XCsuDma_64BitTransfer(XCsuDma *InstancePtr, XCsuDma_Channel Channel, + u32 AddrLow, u32 AddrHigh, u32 Size, u8 EnDataLast) +{ + /* Verify arguments */ + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid((Channel == (XCSUDMA_SRC_CHANNEL)) || + (Channel == (XCSUDMA_DST_CHANNEL))); + Xil_AssertVoid(Size <= (u32)(XCSUDMA_SIZE_MAX)); + Xil_AssertVoid(InstancePtr->IsReady == (u32)(XIL_COMPONENT_IS_READY)); + + + XCsuDma_WriteReg(InstancePtr->Config.BaseAddress, + ((u32)(XCSUDMA_ADDR_OFFSET) + + ((u32)Channel * (u32)(XCSUDMA_OFFSET_DIFF))), + (AddrLow & XCSUDMA_ADDR_MASK)); + + XCsuDma_WriteReg(InstancePtr->Config.BaseAddress, + ((u32)(XCSUDMA_ADDR_MSB_OFFSET) + + ((u32)Channel * (u32)(XCSUDMA_OFFSET_DIFF))), + (AddrHigh & XCSUDMA_MSB_ADDR_MASK)); + + if (EnDataLast == (u8)(XCSUDMA_LAST_WORD_MASK)) { + XCsuDma_WriteReg(InstancePtr->Config.BaseAddress, + ((u32)(XCSUDMA_SIZE_OFFSET) + + ((u32)Channel * (u32)(XCSUDMA_OFFSET_DIFF))), + ((Size << (u32)(XCSUDMA_SIZE_SHIFT)) | + (u32)(XCSUDMA_LAST_WORD_MASK))); + } + else { + XCsuDma_WriteReg(InstancePtr->Config.BaseAddress, + ((u32)(XCSUDMA_SIZE_OFFSET) + + ((u32)Channel * (u32)(XCSUDMA_OFFSET_DIFF))), + (Size << (u32)(XCSUDMA_SIZE_SHIFT))); + } +} + +/*****************************************************************************/ /*****************************************************************************/ /** * diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma.h similarity index 95% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma.h index 03a32c1ce..fc675a13c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014-2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -82,7 +82,7 @@ * to build and link only those parts of the driver that are necessary. * * @file xcsudma.h -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * @details * @@ -99,6 +99,13 @@ * 1.0 vnsld 22/10/14 First release * 1.1 adk 10/05/16 Fixed CR#951040 race condition in the recv path when * source and destination points to the same buffer. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/10/17 Modified filename tag in xcsudma_selftest_example.c to +* include the file in doxygen examples. +* 1.2 adk 11/22/17 Added peripheral test app support for CSUDMA driver. +* adk 09/03/18 Added new API XCsuDma_64BitTransfer() useful for 64-bit +* dma transfers through PMU processor(CR#996201). * * ******************************************************************************/ @@ -373,6 +380,8 @@ s32 XCsuDma_CfgInitialize(XCsuDma *InstancePtr, XCsuDma_Config *CfgPtr, u32 EffectiveAddr); void XCsuDma_Transfer(XCsuDma *InstancePtr, XCsuDma_Channel Channel, UINTPTR Addr, u32 Size, u8 EnDataLast); +void XCsuDma_64BitTransfer(XCsuDma *InstancePtr, XCsuDma_Channel Channel, + u32 AddrLow, u32 AddrHigh, u32 Size, u8 EnDataLast); void XCsuDma_LoopBackTransfer(XCsuDma *InstancePtr, u64 SrcAddr, u64 DstAddr, u32 Size); u64 XCsuDma_GetAddr(XCsuDma *InstancePtr, XCsuDma_Channel Channel); diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_g.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_g.c index 09e7f739a..1c2317e8e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XCsuDma_Config XCsuDma_ConfigTable[] = +XCsuDma_Config XCsuDma_ConfigTable[XPAR_XCSUDMA_NUM_INSTANCES] = { { XPAR_PSU_CSUDMA_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_hw.h index 6b2c2cdb8..031c13458 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_hw.h @@ -33,7 +33,7 @@ /** * * @file xcsudma_hw.h -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * * This header file contains identifiers and register-level driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_intr.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_intr.c index 9f37e4582..b45d6cf29 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_intr.c @@ -34,7 +34,7 @@ /** * * @file xcsudma_intr.c -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * * This file contains interrupt related functions of Xilinx CSU_DMA core. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_selftest.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_selftest.c index f61910fd4..00f35e145 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_selftest.c @@ -34,7 +34,7 @@ /** * * @file xcsudma_selftest.c -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * * This file contains a diagnostic self-test function for the CSU_DMA driver. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_sinit.c index 10e5c14f6..be962e298 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_2/src/xcsudma_sinit.c @@ -34,7 +34,7 @@ /** * * @file xcsudma_sinit.c -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * * This file contains static initialization methods for Xilinx CSU_DMA core. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ddrcpsu_v1_1/src/xddrcpsu.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ddrcpsu_v1_1/src/xddrcpsu.h index 2640a9462..412f335e4 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ddrcpsu_v1_1/src/xddrcpsu.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ddrcpsu_v1_1/src/xddrcpsu.h @@ -18,15 +18,14 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Except as contained in this notice, the name of the Xilinx shall not be used * in advertising or otherwise to promote the sale, use or other dealings in - * in advertising or otherwise to promote the sale, use or other dealings in * this Software without prior written authorization from Xilinx. * *******************************************************************************/ @@ -34,7 +33,7 @@ /** * * @file xddcrpsu.h - * @addtogroup ddrcpsu_v1_0 + * @addtogroup ddrcpsu_v1_1 * @{ * @details * diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/Makefile new file mode 100644 index 000000000..f5944f9d2 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/Makefile @@ -0,0 +1,40 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +CC_FLAGS = $(COMPILER_FLAGS) +ECC_FLAGS = $(EXTRA_COMPILER_FLAGS) + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +OUTS = *.o + +LIBSOURCES:=*.c +INCLUDEFILES:=*.h + +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) + +libs: banner dpdma_libs clean + +%.o: %.c + ${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) -o $@ $< + +banner: + echo "Compiling dpdma" + +dpdma_libs: ${OBJECTS} + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} + +.PHONY: include +include: dpdma_includes + +dpdma_includes: + ${CP} ${INCLUDEFILES} ${INCLUDEDIR} + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma.c new file mode 100644 index 000000000..92eaad2cd --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma.c @@ -0,0 +1,966 @@ +/****************************************************************************** +* +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* + +*******************************************************************************/ +/*****************************************************************************/ +/** + * + * @file xdpdma.c + * + * This file contains the implementation of the interface functions of the + * XDpDma driver. Refer to xdpdma.h for detailed information. + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver	Who   Date     Changes
+ * ---- ----- -------- ----------------------------------------------------
+ * 1.0  aad   04/12/16 Initial release.
+ *
+ *****************************************************************************/
+
+/***************************** Include Files **********************************/
+#include "xdpdma.h"
+#include "xavbuf.h"
+
+/************************** Constant Definitions ******************************/
+#define XDPDMA_CH_OFFSET		0x100
+#define XDPDMA_WAIT_TIMEOUT		10000
+
+#define XDPDMA_AUDIO_ALIGNMENT		128
+
+#define XDPDMA_VIDEO_CHANNEL0		0
+#define XDPDMA_VIDEO_CHANNEL1		1
+#define XDPDMA_VIDEO_CHANNEL2		2
+#define XDPDMA_GRAPHICS_CHANNEL		3
+#define XDPDMA_AUDIO_CHANNEL0		4
+#define XDPDMA_AUDIO_CHANNEL1		5
+
+#define XDPDMA_DESC_PREAMBLE		0xA5
+#define XDPDMA_DESC_IGNR_DONE		0x400
+#define XDPDMA_DESC_UPDATE		0x200
+#define XDPDMA_DESC_COMP_INTR		0x100
+#define XDPDMA_DESC_LAST_FRAME		0x200000
+#define XDPDMA_DESC_DONE_SHIFT		31
+#define XDPDMA_QOS_MIN			4
+#define XDPDMA_QOS_MAX			11
+
+/*************************************************************************/
+/**
+ *
+ * This function returns the number of outstanding transactions on a given
+ * channel.
+ *
+ * @param    InstancePtr is a pointer to the driver instance.
+ * @param    ChannelNum is the channel number on which the operation is
+ *	     being carried out.
+ *
+ * @return   Number of pending transactions.
+ *
+ * @note     None.
+ *
+ * **************************************************************************/
+static int XDpDma_GetPendingTransaction(XDpDma *InstancePtr, u32 ChannelNum)
+{
+	u32 RegVal;
+	RegVal = XDpDma_ReadReg(InstancePtr->Config.BaseAddr,
+				XDPDMA_CH0_STATUS + 0x100 * ChannelNum);
+	return (RegVal & XDPDMA_CH_STATUS_OTRAN_CNT_MASK);
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function waits until the outstanding transactions are completed.
+ *
+ * @param    InstancePtr is a pointer to the driver instance.
+ * @param    ChannelNum is the channel number on which the operation is
+ *	     being carried out.
+ *
+ * @return   XST_SUCCESS when all the pending transactions are complete
+ *	     before timeout.
+ *	     XST_FAILURE if timeout occurs before pending transactions are
+ *	     completed.
+ *
+ * @note     None.
+ *
+ * **************************************************************************/
+static int XDpDma_WaitPendingTransaction(XDpDma *InstancePtr, u8 ChannelNum)
+{
+	/* Verify arguments. */
+	Xil_AssertNonvoid(InstancePtr != NULL);
+	Xil_AssertNonvoid(ChannelNum <= XDPDMA_AUDIO_CHANNEL1);
+
+	u32 Timeout = 0;
+	u32 Count;
+	do {
+		Count = XDpDma_GetPendingTransaction(InstancePtr, ChannelNum);
+		Timeout++;
+	} while((Timeout != XDPDMA_WAIT_TIMEOUT) && Count);
+
+	if(Timeout ==  XDPDMA_WAIT_TIMEOUT) {
+		return XST_FAILURE;
+	}
+
+	return XST_SUCCESS;
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function controls the hardware channels of the DPDMA.
+ *
+ *
+ * @param    InstancePtr is a pointer to the driver instance.
+ * @param    ChannelNum is the physical channel number of the DPDMA.
+ * @param    ChannelState is an enum of type XDpDma_ChannelState.
+ *
+ * @return   XST_SUCCESS when the mentioned channel is enabled successfully.
+ *	     XST_FAILURE when the mentioned channel fails to be enabled.
+ *
+ * @note     None.
+ *
+ * **************************************************************************/
+static int XDpDma_ConfigChannelState(XDpDma *InstancePtr, u8 ChannelNum,
+				     XDpDma_ChannelState Enable)
+{
+	u32 Mask = 0;
+	u32 RegVal = 0;
+	u32 Status = 0;
+	/* Verify arguments. */
+	Xil_AssertNonvoid(InstancePtr != NULL);
+	Xil_AssertNonvoid(ChannelNum <= XDPDMA_AUDIO_CHANNEL1);
+
+	Mask = XDPDMA_CH_CNTL_EN_MASK | XDPDMA_CH_CNTL_PAUSE_MASK;
+	switch(Enable) {
+		case XDPDMA_ENABLE:
+			RegVal = XDPDMA_CH_CNTL_EN_MASK;
+			break;
+		case XDPDMA_DISABLE:
+			XDpDma_ConfigChannelState(InstancePtr, ChannelNum,
+						  XDPDMA_PAUSE);
+			Status = XDpDma_WaitPendingTransaction(InstancePtr,
+							       ChannelNum);
+			if(Status == XST_FAILURE) {
+				return XST_FAILURE;
+			}
+
+			RegVal = XDPDMA_DISABLE;
+			Mask = XDPDMA_CH_CNTL_EN_MASK;
+			break;
+		case XDPDMA_IDLE:
+			Status = XDpDma_ConfigChannelState(InstancePtr,
+							   ChannelNum,
+							   XDPDMA_DISABLE);
+			if(Status == XST_FAILURE) {
+				return XST_FAILURE;
+			}
+
+			RegVal = 0;
+			break;
+		case XDPDMA_PAUSE:
+			RegVal = XDPDMA_PAUSE;
+			break;
+	}
+	XDpDma_ReadModifyWrite(InstancePtr->Config.BaseAddr,
+			       XDPDMA_CH0_CNTL + XDPDMA_CH_OFFSET * ChannelNum,
+			       RegVal, Mask);
+	return XST_SUCCESS;
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function updates the descriptor that is not currently active on a
+ * Video/Graphics channel.
+ *
+ * @param    InstancePtr is a pointer to the driver instance.
+ * @param    Channel is a pointer to the channel on which the operation is
+ *	     to be carried out.
+ *
+ * @return   Descriptor for next operation.
+ *
+ * @note     None.
+ *
+ * **************************************************************************/
+static XDpDma_Descriptor *XDpDma_UpdateVideoDescriptor(XDpDma_Channel *Channel)
+{
+	if(Channel->Current == NULL) {
+		Channel->Current = &Channel->Descriptor0;
+	}
+	else if(Channel->Current == &Channel->Descriptor0) {
+		Channel->Current = &Channel->Descriptor1;
+	}
+	else if(Channel->Current == &Channel->Descriptor1) {
+		Channel->Current = &Channel->Descriptor0;
+	}
+	return Channel->Current;
+}
+
+/*************************************************************************/
+/**
+ * This function programs the address of the descriptor about to be active
+ *
+ * @param    InstancePtr is a pointer to the DPDMA instance.
+ * @param    Channel is an enum of the channel for which the descriptor
+ *	     address is to be set.
+ *
+ * @return   Descriptor for next operation.
+ *
+ * @note     None.
+ *
+ * **************************************************************************/
+static void XDpDma_SetDescriptorAddress(XDpDma *InstancePtr, u8 ChannelNum)
+{
+	u32 AddrOffset;
+	u32 AddrEOffset;
+	Xil_AssertVoid(ChannelNum <= XDPDMA_AUDIO_CHANNEL1);
+	AddrOffset = XDPDMA_CH0_DSCR_STRT_ADDR +
+					(XDPDMA_CH_OFFSET * ChannelNum);
+	AddrEOffset = XDPDMA_CH0_DSCR_STRT_ADDRE +
+					(XDPDMA_CH_OFFSET * ChannelNum);
+
+	XDpDma_Descriptor *Descriptor = NULL;
+	switch(ChannelNum) {
+	case XDPDMA_VIDEO_CHANNEL0:
+		Descriptor = InstancePtr->Video.Channel[ChannelNum].Current;
+		break;
+	case XDPDMA_VIDEO_CHANNEL1:
+		Descriptor = InstancePtr->Video.Channel[ChannelNum].Current;
+		break;
+	case XDPDMA_VIDEO_CHANNEL2:
+		Descriptor = InstancePtr->Video.Channel[ChannelNum].Current;
+		break;
+	case XDPDMA_GRAPHICS_CHANNEL:
+		Descriptor = InstancePtr->Gfx.Channel.Current;
+		break;
+	case XDPDMA_AUDIO_CHANNEL0:
+		Descriptor = InstancePtr->Audio[0].Current;
+		break;
+	case XDPDMA_AUDIO_CHANNEL1:
+		Descriptor = InstancePtr->Audio[1].Current;
+		break;
+	}
+
+	XDpDma_WriteReg(InstancePtr->Config.BaseAddr, AddrEOffset,
+			(INTPTR) Descriptor >> 32);
+	XDpDma_WriteReg(InstancePtr->Config.BaseAddr, AddrOffset,
+			(INTPTR) Descriptor);
+}
+
+/*************************************************************************/
+/**
+ *
+ * This functions sets the Audio Descriptor for Data Transfer.
+ *
+ * @param    CurrDesc is a pointer to the descriptor to be initialized
+ * @param    DataSize is the payload size of the buffer to be transferred
+ * @param    BuffAddr is the payload address
+ *
+ * @return   None.
+ *
+ * @note     None.
+ *
+ * **************************************************************************/
+static void XDpDma_SetupAudioDescriptor(XDpDma_Descriptor *CurrDesc,
+					u64 DataSize, u64 BuffAddr,
+					XDpDma_Descriptor *NextDesc)
+{
+	Xil_AssertVoid(CurrDesc != NULL);
+	Xil_AssertVoid(DataSize != 0);
+	Xil_AssertVoid(BuffAddr != 0);
+
+	if(NextDesc == NULL) {
+		CurrDesc->Control = XDPDMA_DESC_PREAMBLE |
+			XDPDMA_DESC_UPDATE | XDPDMA_DESC_IGNR_DONE |
+			XDPDMA_DESC_COMP_INTR;
+
+	}
+	else {
+		CurrDesc->Control = XDPDMA_DESC_PREAMBLE |
+			XDPDMA_DESC_UPDATE | XDPDMA_DESC_IGNR_DONE;
+	}
+	CurrDesc->DSCR_ID = 0;
+	CurrDesc->XFER_SIZE = DataSize;
+	CurrDesc->LINE_SIZE_STRIDE = 0;
+	CurrDesc->LSB_Timestamp = 0;
+	CurrDesc->MSB_Timestamp = 0;
+	CurrDesc->ADDR_EXT = ((BuffAddr >> XDPDMA_DESCRIPTOR_SRC_ADDR_WIDTH) <<
+			      XDPDMA_DESCRIPTOR_ADDR_EXT_SRC_ADDR_EXT_SHIFT) |
+			     ((INTPTR) NextDesc >>
+			      XDPDMA_DESCRIPTOR_NEXT_DESR_WIDTH);
+	CurrDesc->NEXT_DESR = (INTPTR) NextDesc;
+	CurrDesc->SRC_ADDR =  BuffAddr;
+}
+
+/*************************************************************************/
+/**
+ *
+ * This functions retrieves the configuration for this DPDMA driver and
+ * fills in the InstancePtr->Config structure.
+ *
+ * @param    InstancePtr is a pointer to the driver instance.
+ * @param    ConfigPtr is a pointer to the configuration structure that will
+ *           be used to copy the settings from.
+ *
+ * @return   None.
+ *
+ * @note     None.
+ *
+ * **************************************************************************/
+void XDpDma_CfgInitialize(XDpDma *InstancePtr, XDpDma_Config *CfgPtr)
+{
+	InstancePtr->Config.DeviceId = CfgPtr->DeviceId;
+	InstancePtr->Config.BaseAddr = CfgPtr->BaseAddr;
+
+	InstancePtr->Video.Channel[XDPDMA_VIDEO_CHANNEL0].Current = NULL;
+	InstancePtr->Video.Channel[XDPDMA_VIDEO_CHANNEL1].Current = NULL;
+	InstancePtr->Video.Channel[XDPDMA_VIDEO_CHANNEL2].Current = NULL;
+	InstancePtr->Video.TriggerStatus = XDPDMA_TRIGGER_DONE;
+	InstancePtr->Video.VideoInfo = NULL;
+	InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL0] = NULL;
+	InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL1] = NULL;
+	InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL2] = NULL;
+
+	InstancePtr->Gfx.Channel.Current = NULL;
+	InstancePtr->Gfx.TriggerStatus = XDPDMA_TRIGGER_DONE;
+	InstancePtr->Gfx.VideoInfo = NULL;
+	InstancePtr->Gfx.FrameBuffer = NULL;
+}
+
+/*************************************************************************/
+/**
+ *
+ * This functions controls the states in which a channel should go into.
+ *
+ * @param    InstancePtr is a pointer to the driver instance.
+ * @param    ChannelType is an enum of XDpDma_ChannelType.
+ * @param    ChannelState is an enum of type XDpDma_ChannelState.
+ *
+ * @return   XST_SUCCESS when the mentioned channel is enabled successfully.
+ *	     XST_FAILURE when the mentioned channel fails to be enabled.
+ *
+ * @note     None.
+ *
+ * **************************************************************************/
+int XDpDma_SetChannelState(XDpDma *InstancePtr, XDpDma_ChannelType Channel,
+					XDpDma_ChannelState ChannelState)
+{
+	u32 Index = 0;
+	u32 NumPlanes = 0;
+	u32 Status = 0;
+	/* Verify arguments. */
+	Xil_AssertNonvoid(InstancePtr != NULL);
+
+	switch(Channel) {
+	case VideoChan:
+		if(InstancePtr->Video.VideoInfo == NULL) {
+			return XST_FAILURE;
+		}
+		else {
+			NumPlanes = InstancePtr->Video.VideoInfo->Mode;
+			for(Index = 0; Index <= NumPlanes; Index++) {
+				Status = XDpDma_ConfigChannelState(InstancePtr,
+								Index,
+								ChannelState);
+				if(Status == XST_FAILURE) {
+					return XST_FAILURE;
+				}
+			}
+		}
+		break;
+	case GraphicsChan:
+		if(InstancePtr->Gfx.VideoInfo == NULL) {
+			return XST_FAILURE;
+		}
+		else {
+			return	XDpDma_ConfigChannelState(InstancePtr,
+					      XDPDMA_GRAPHICS_CHANNEL,
+					      ChannelState);
+		}
+		break;
+	case AudioChan0:
+		return	XDpDma_ConfigChannelState(InstancePtr,
+						  XDPDMA_AUDIO_CHANNEL0,
+						  ChannelState);
+		break;
+	case AudioChan1:
+		return XDpDma_ConfigChannelState(InstancePtr,
+						 XDPDMA_AUDIO_CHANNEL1,
+						 ChannelState);
+		break;
+	default:
+		return XST_FAILURE;
+		break;
+	}
+
+	return XST_SUCCESS;
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function allocates DPDMA Video Channels depending on the number of
+ * planes in the video
+ *
+ * @param	InstancePtr is a pointer to the driver instance.
+ * @params	Format is the video format to be used for the DPDMA transfer
+ *
+ * @return	XST_SUCCESS, When the format is valid Video Format.
+ *		XST_FAILURE, When the format is not valid Video Format
+ *
+ * @note	None.
+ *
+ * **************************************************************************/
+int XDpDma_SetVideoFormat(XDpDma *InstancePtr, XAVBuf_VideoFormat Format)
+{
+	/* Verify arguments. */
+	Xil_AssertNonvoid(InstancePtr != NULL);
+
+	InstancePtr->Video.VideoInfo = XAVBuf_GetNLiveVideoAttribute(Format);
+	if(InstancePtr->Video.VideoInfo == NULL) {
+		return XST_FAILURE;
+	}
+
+	return XST_SUCCESS;
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function allocates DPDMA Graphics Channels.
+ *
+ * @param	InstancePtr is a pointer to the driver instance.
+ * @params	Format is the video format to be used for the DPDMA transfer
+ *
+ * @return	XST_SUCCESS, When the format is a valid Graphics Format.
+ *		XST_FAILURE, When the format is not valid Graphics Format.
+ *
+ * @note	None.
+ *
+ * **************************************************************************/
+int XDpDma_SetGraphicsFormat(XDpDma *InstancePtr, XAVBuf_VideoFormat Format)
+{
+
+	/* Verify arguments. */
+	Xil_AssertNonvoid(InstancePtr != NULL);
+
+	InstancePtr->Gfx.VideoInfo = XAVBuf_GetNLGraphicsAttribute(Format);
+	if(InstancePtr->Gfx.VideoInfo == NULL) {
+		return XST_FAILURE;
+	}
+
+	return XST_SUCCESS;
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function starts the operation on the a given channel
+ *
+ * @param    InstancePtr is a pointer to the driver instance.
+ * @param    QOS is the Quality of Service value to be selected.
+ *
+ * @return   None.
+ *
+ * @note     .
+ *
+ * **************************************************************************/
+void XDpDma_SetQOS(XDpDma *InstancePtr, u8 QOS)
+{
+	u8 Index;
+	u32 RegVal = 0;
+
+	Xil_AssertVoid(QOS >= XDPDMA_QOS_MIN && QOS <= XDPDMA_QOS_MAX);
+
+	RegVal = ((QOS << XDPDMA_CH_CNTL_QOS_DATA_RD_SHIFT) |
+		   (QOS << XDPDMA_CH_CNTL_QOS_DSCR_RD_SHIFT) |
+		   (QOS << XDPDMA_CH_CNTL_QOS_DSCR_WR_SHIFT));
+
+	u32 Mask = XDPDMA_CH_CNTL_QOS_DATA_RD_MASK |
+		XDPDMA_CH_CNTL_QOS_DSCR_RD_MASK |
+		XDPDMA_CH_CNTL_QOS_DSCR_WR_MASK;
+
+	for(Index = 0; Index <= XDPDMA_AUDIO_CHANNEL1; Index++) {
+		XDpDma_ReadModifyWrite(InstancePtr->Config.BaseAddr,
+				XDPDMA_CH0_CNTL + (XDPDMA_CH_OFFSET * Index),
+			        RegVal, Mask);
+	}
+
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function Triggers DPDMA to start the transaction.
+ *
+ * @param	InstancePtr is a pointer to the XDpDma instance.
+ * @param	Channel is the XDpDma_ChannelType on which the transaction
+ *		is to be triggered.
+ *
+ * @return	XST_SUCCESS The channel has successfully been Triggered.
+ *		XST_FAILURE When the triggering Video and Graphics channel
+ *		without setting the Video Formats.
+ *
+ * @note	None.
+ *
+ * **************************************************************************/
+int XDpDma_Trigger(XDpDma *InstancePtr, XDpDma_ChannelType Channel)
+{
+	u32 Trigger = 0;
+	u8 Index = 0;
+	u8 NumPlanes = 0;
+	switch(Channel) {
+	case VideoChan:
+		if(InstancePtr->Video.VideoInfo == NULL) {
+			return XST_FAILURE;
+		}
+		else {
+			NumPlanes = InstancePtr->Video.VideoInfo->Mode;
+			for(Index = 0; Index <= NumPlanes; Index++) {
+				Trigger |= XDPDMA_GBL_TRG_CH0_MASK << Index;
+				InstancePtr->Video.TriggerStatus =
+					XDPDMA_TRIGGER_DONE;
+			}
+		}
+		break;
+	case GraphicsChan:
+		if(InstancePtr->Gfx.VideoInfo == NULL) {
+			return XST_FAILURE;
+		}
+		Trigger = XDPDMA_GBL_TRG_CH3_MASK;
+		InstancePtr->Gfx.TriggerStatus = XDPDMA_TRIGGER_DONE;
+		break;
+	case AudioChan0:
+		Trigger = XDPDMA_GBL_TRG_CH4_MASK;
+		InstancePtr->Audio[0].TriggerStatus = XDPDMA_TRIGGER_DONE;
+		break;
+	case AudioChan1:
+		Trigger = XDPDMA_GBL_TRG_CH5_MASK;
+		InstancePtr->Audio[1].TriggerStatus = XDPDMA_TRIGGER_DONE;
+		break;
+	}
+	XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_GBL, Trigger);
+
+	return XST_SUCCESS;
+
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function Retriggers DPDMA to fetch data from new descriptor.
+ *
+ * @param	InstancePtr is a pointer to the XDpDma instance.
+ * @param	Channel is the XDpDma_ChannelType on which the transaction
+ *		is to be retriggered.
+ *
+ * @return	XST_SUCCESS The channel has successfully been Triggered.
+ *		XST_FAILURE When the triggering Video and Graphics channel
+ *		without setting the Video Formats.
+ *
+ * @note	None.
+ *
+ * **************************************************************************/
+int XDpDma_ReTrigger(XDpDma *InstancePtr, XDpDma_ChannelType Channel)
+{
+	u32 Trigger = 0;
+	u8 NumPlanes;
+	u8 Index;
+	switch(Channel) {
+	case VideoChan:
+		if(InstancePtr->Video.VideoInfo == NULL) {
+			return XST_FAILURE;
+		}
+		else {
+			NumPlanes = InstancePtr->Video.VideoInfo->Mode;
+			for(Index = 0; Index <= NumPlanes; Index++) {
+				Trigger |= XDPDMA_GBL_RTRG_CH0_MASK << Index;
+				InstancePtr->Video.TriggerStatus =
+					XDPDMA_RETRIGGER_DONE;
+			}
+		}
+		break;
+	case GraphicsChan:
+		if(InstancePtr->Gfx.VideoInfo == NULL) {
+			return XST_FAILURE;
+		}
+		Trigger = XDPDMA_GBL_RTRG_CH3_MASK;
+		InstancePtr->Gfx.TriggerStatus = XDPDMA_RETRIGGER_DONE;
+		break;
+	case AudioChan0:
+		Trigger = XDPDMA_GBL_RTRG_CH4_MASK;
+		InstancePtr->Audio[0].TriggerStatus = XDPDMA_RETRIGGER_DONE;
+		break;
+	case AudioChan1:
+		Trigger = XDPDMA_GBL_RTRG_CH5_MASK;
+		InstancePtr->Audio[1].TriggerStatus = XDPDMA_RETRIGGER_DONE;
+		break;
+	}
+	XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_GBL, Trigger);
+
+	return XST_SUCCESS;
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function intializes Video Descriptor for Video and Graphics channel
+ *
+ * @param    Channel is a pointer to the current Descriptor of Video or
+ *	     Graphics Channel.
+ * @param    FrameBuffer is a pointer to the Frame Buffer structure
+ *
+ * @return   None.
+ *
+ * @note     None.
+ *
+ * **************************************************************************/
+void XDpDma_InitVideoDescriptor(XDpDma_Descriptor *CurrDesc,
+				XDpDma_FrameBuffer *FrameBuffer)
+{
+	Xil_AssertVoid(CurrDesc != NULL);
+	Xil_AssertVoid(FrameBuffer != NULL);
+	Xil_AssertVoid((FrameBuffer->Stride) % XDPDMA_DESCRIPTOR_ALIGN == 0);
+	CurrDesc->Control = XDPDMA_DESC_PREAMBLE | XDPDMA_DESC_IGNR_DONE |
+			    XDPDMA_DESC_LAST_FRAME;
+	CurrDesc->DSCR_ID = 0;
+	CurrDesc->XFER_SIZE = FrameBuffer->Size;
+	CurrDesc->LINE_SIZE_STRIDE = ((FrameBuffer->Stride >> 4) <<
+				XDPDMA_DESCRIPTOR_LINE_SIZE_STRIDE_SHIFT) |
+				(FrameBuffer->LineSize);
+	CurrDesc->ADDR_EXT = (((FrameBuffer->Address >>
+				XDPDMA_DESCRIPTOR_SRC_ADDR_WIDTH) <<
+			       XDPDMA_DESCRIPTOR_ADDR_EXT_SRC_ADDR_EXT_SHIFT) |
+				((INTPTR) CurrDesc >>
+				 XDPDMA_DESCRIPTOR_NEXT_DESR_WIDTH));
+	CurrDesc->NEXT_DESR = (INTPTR) CurrDesc;
+	CurrDesc->SRC_ADDR = FrameBuffer->Address;
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function intializes Descriptors for transactions on Audio Channel
+ *
+ * @param    Channel is a pointer to the XDpDma_AudioChannel instance
+ *
+ * @param    AudioBuffer is a pointer to the Audio Buffer structure
+ *
+ * @return   None.
+ *
+ * @note     None.
+ *
+ * **************************************************************************/
+void XDpDma_InitAudioDescriptor(XDpDma_AudioChannel *Channel,
+			       XDpDma_AudioBuffer *AudioBuffer)
+{
+	u32 Size;
+	u64 Address;
+	Xil_AssertVoid(Channel != NULL);
+	Xil_AssertVoid(AudioBuffer != NULL);
+	Xil_AssertVoid((AudioBuffer->Size) % XDPDMA_AUDIO_ALIGNMENT == 0);
+	Xil_AssertVoid((AudioBuffer->Address) % XDPDMA_AUDIO_ALIGNMENT == 0);
+
+	Size = AudioBuffer->Size / 4;
+	Address = AudioBuffer->Address;
+	if(Channel->Current == &Channel->Descriptor4) {
+		XDpDma_SetupAudioDescriptor(&Channel->Descriptor4, Size,
+					    Address,
+					    &Channel->Descriptor5);
+		XDpDma_SetupAudioDescriptor(&Channel->Descriptor5, Size,
+					    Address + Size,
+					    &Channel->Descriptor6);
+		XDpDma_SetupAudioDescriptor(&Channel->Descriptor6, Size,
+					    Address + (Size * 2),
+					    &Channel->Descriptor7);
+		XDpDma_SetupAudioDescriptor(&Channel->Descriptor7, Size,
+					    Address + (Size * 3), NULL);
+	}
+
+	else if(Channel->Current == &Channel->Descriptor0) {
+		XDpDma_SetupAudioDescriptor(&Channel->Descriptor0, Size,
+					    Address,
+					    &Channel->Descriptor1);
+		XDpDma_SetupAudioDescriptor(&Channel->Descriptor1, Size,
+					    Address + Size,
+					    &Channel->Descriptor2);
+		XDpDma_SetupAudioDescriptor(&Channel->Descriptor2, Size,
+					    Address + (Size * 2),
+					    &Channel->Descriptor3);
+		XDpDma_SetupAudioDescriptor(&Channel->Descriptor3, Size,
+					    Address + (Size * 3), NULL);
+
+	}
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function sets the next Frame Buffers to be displayed on the Video
+ * Channel.
+ *
+ * @param    InstancePtr is pointer to the instance of DPDMA.
+ * @param    Plane0 is a pointer to the Frame Buffer structure.
+ * @param    Plane1 is a pointer to the Frame Buffer structure.
+ * @param    Plane2 is a pointer to the Frame Buffer structure.
+ *
+ * @return   None.
+ *
+ * @note     For interleaved mode use Plane0.
+ *	     For semi-planar mode use Plane0 and Plane1.
+ *	     For planar mode use Plane0, Plane1 and Plane2
+ *
+ * **************************************************************************/
+void  XDpDma_DisplayVideoFrameBuffer(XDpDma *InstancePtr,
+				     XDpDma_FrameBuffer *Plane0,
+				     XDpDma_FrameBuffer *Plane1,
+				     XDpDma_FrameBuffer *Plane2)
+{
+	u8 NumPlanes;
+	Xil_AssertVoid(InstancePtr != NULL);
+	Xil_AssertVoid(InstancePtr->Video.VideoInfo != NULL);
+
+	NumPlanes = InstancePtr->Video.VideoInfo->Mode;
+
+	switch(NumPlanes) {
+		case XDPDMA_VIDEO_CHANNEL2:
+			Xil_AssertVoid(Plane2 != NULL);
+			InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL2] =
+				Plane2;
+		case XDPDMA_VIDEO_CHANNEL1:
+			Xil_AssertVoid(Plane1 != NULL);
+			InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL1] =
+				Plane1;
+		case XDPDMA_VIDEO_CHANNEL0:
+			Xil_AssertVoid(Plane0 != NULL);
+			InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL0] =
+				Plane0;
+			break;
+	}
+
+	if(InstancePtr->Video.Channel[XDPDMA_VIDEO_CHANNEL0].Current == NULL) {
+		InstancePtr->Video.TriggerStatus = XDPDMA_TRIGGER_EN;
+	}
+	else {
+		InstancePtr->Video.TriggerStatus = XDPDMA_RETRIGGER_EN;
+	}
+}
+
+/*************************************************************************/
+/**
+ *
+ * This function sets the next Frame Buffers to be displayed on the Graphics
+ * Channel.
+ *
+ * @param    InstancePtr is pointer to the instance of DPDMA.
+ * @param    Plane is a pointer to the Frame Buffer structure.
+ *
+ * @return   None.
+ *
+ * @note     None.
+ *
+ **************************************************************************/
+void XDpDma_DisplayGfxFrameBuffer(XDpDma *InstancePtr,
+				  XDpDma_FrameBuffer *Plane)
+{
+	Xil_AssertVoid(InstancePtr != NULL);
+	Xil_AssertVoid(Plane != NULL);
+
+	InstancePtr->Gfx.FrameBuffer = Plane;
+
+	if(InstancePtr->Gfx.Channel.Current == NULL) {
+		InstancePtr->Gfx.TriggerStatus = XDPDMA_TRIGGER_EN;
+	}
+	else {
+		InstancePtr->Gfx.TriggerStatus = XDPDMA_RETRIGGER_EN;
+	}
+}
+/*************************************************************************/
+/**
+ *
+ * This function sets the next Audio Buffer to be played on Audio Channel 0
+ *
+ * @param    InstancePtr is pointer to the instance of DPDMA.
+ * @param    Buffer is a pointer to the attributes of the Audio information
+ *	     to be played.
+ * @param    ChannelNum selects between Audio Channel 0 and Audio Channel 1
+ *
+ * @return   XST_SUCCESS when the play audio request is successful.
+ *	     XST_FAILURE when the play audio request fails, user has to
+ *	     retry to play the audio.
+ *
+ * @note     The user has to schedule new audio buffer before half the audio
+ *	     information is consumed by DPDMA to have a seamless playback.
+ *
+ **************************************************************************/
+int XDpDma_PlayAudio(XDpDma *InstancePtr, XDpDma_AudioBuffer *Buffer,
+		      u8 ChannelNum)
+{
+	XDpDma_AudioChannel *Channel;
+	Xil_AssertNonvoid(InstancePtr != NULL);
+	Xil_AssertNonvoid(Buffer != NULL);
+	Xil_AssertNonvoid(Buffer->Size >= 512);
+	Xil_AssertNonvoid(Buffer->Size % 128 == 0);
+	Xil_AssertNonvoid(Buffer->Address % 128 == 0);
+
+	Channel = &InstancePtr->Audio[ChannelNum];
+	Channel->Buffer = Buffer;
+
+	if(Channel->Current == NULL) {
+		Channel->TriggerStatus = XDPDMA_TRIGGER_EN;
+		Channel->Current = &Channel->Descriptor0;
+		Channel->Used = 0;
+	}
+
+else if(Channel->Current == &Channel->Descriptor0) {
+		/* Check if descriptor chain can be updated */
+		if(Channel->Descriptor1.MSB_Timestamp >>
+		   XDPDMA_DESC_DONE_SHIFT) {
+			Channel->Current = NULL;
+			return XST_FAILURE;
+		}
+		else if(Channel->Descriptor7.MSB_Timestamp >>
+			XDPDMA_DESC_DONE_SHIFT || !(Channel->Used)) {
+			Channel->Descriptor3.Control = XDPDMA_DESC_PREAMBLE |
+				XDPDMA_DESC_UPDATE | XDPDMA_DESC_IGNR_DONE;
+			Channel->Descriptor3.NEXT_DESR =
+				(INTPTR) &Channel->Descriptor4;
+			Channel->Descriptor3.ADDR_EXT &=
+				~XDPDMA_DESCRIPTOR_ADDR_EXT_DSC_NXT_MASK;
+			Channel->Descriptor3.ADDR_EXT |=
+				(INTPTR) &Channel->Descriptor4 >> 32;
+			Channel->Current = &Channel->Descriptor4;
+			Channel->Used = 1;
+			XDpDma_InitAudioDescriptor(Channel, Buffer);
+		}
+		else {
+			return XST_FAILURE;
+		}
+	}
+
+	else if(Channel->Current == &Channel->Descriptor4)  {
+		/* Check if descriptor chain can be updated */
+		if(Channel->Descriptor5.MSB_Timestamp >>
+		   XDPDMA_DESC_DONE_SHIFT) {
+			Channel->Current = NULL;
+			return XST_FAILURE;
+		}
+		else if(Channel->Descriptor3.MSB_Timestamp >>
+			XDPDMA_DESC_DONE_SHIFT) {
+			Channel->Descriptor7.Control = XDPDMA_DESC_PREAMBLE |
+				XDPDMA_DESC_UPDATE | XDPDMA_DESC_IGNR_DONE;
+			Channel->Descriptor7.NEXT_DESR =
+				(INTPTR) &Channel->Descriptor0;
+			Channel->Descriptor7.ADDR_EXT &=
+				~XDPDMA_DESCRIPTOR_ADDR_EXT_DSC_NXT_MASK;
+			Channel->Descriptor7.ADDR_EXT |=
+				(INTPTR) &Channel->Descriptor0 >> 32;
+			Channel->Current = &Channel->Descriptor0;
+			XDpDma_InitAudioDescriptor(Channel, Buffer);
+		}
+		else {
+			return XST_FAILURE;
+		}
+	}
+
+	return XST_SUCCESS;
+
+}
+/*************************************************************************/
+/**
+ *
+ * This function sets the channel with the latest framebuffer and the
+ * available descriptor for transfer on the next Vsync.
+ *
+ * @param    InstancePtr is pointer to the instance of DPDMA.
+ * @param    Channel indicates which channels are being setup for transfer.
+ *
+ * @return   None.
+ *
+ * @note     None.
+ *
+ **************************************************************************/
+void XDpDma_SetupChannel(XDpDma *InstancePtr, XDpDma_ChannelType Channel)
+{
+	XDpDma_Channel *Chan;
+	XDpDma_AudioChannel *AudChan;
+	XDpDma_FrameBuffer *FB;
+	XDpDma_AudioBuffer *AudioBuffer;
+	u8 Index, NumPlanes;
+	Xil_AssertVoid(InstancePtr != NULL);
+
+	switch(Channel) {
+		case VideoChan:
+			Xil_AssertVoid(InstancePtr->Video.VideoInfo != NULL);
+			Xil_AssertVoid(InstancePtr->Video.FrameBuffer != NULL);
+			NumPlanes = InstancePtr->Video.VideoInfo->Mode;
+			for(Index = 0; Index <= NumPlanes; Index++) {
+				Chan = &InstancePtr->Video.Channel[Index];
+				FB = InstancePtr->Video.FrameBuffer[Index];
+				XDpDma_UpdateVideoDescriptor(Chan);
+				XDpDma_InitVideoDescriptor(Chan->Current, FB);
+				XDpDma_SetDescriptorAddress(InstancePtr,
+							    Index);
+			}
+			break;
+
+		case GraphicsChan:
+			Xil_AssertVoid(InstancePtr->Gfx.VideoInfo != NULL);
+			Xil_AssertVoid(InstancePtr->Gfx.FrameBuffer != NULL);
+			Chan = &InstancePtr->Gfx.Channel;
+			FB = InstancePtr->Gfx.FrameBuffer;
+			XDpDma_UpdateVideoDescriptor(Chan);
+			XDpDma_InitVideoDescriptor(Chan->Current, FB);
+			XDpDma_SetDescriptorAddress(InstancePtr,
+						    XDPDMA_GRAPHICS_CHANNEL);
+			break;
+
+		case AudioChan0:
+			Xil_AssertVoid(InstancePtr->Audio[0].Buffer != NULL);
+			AudChan = &InstancePtr->Audio[0];
+			AudioBuffer = InstancePtr->Audio[0].Buffer;
+			XDpDma_InitAudioDescriptor(AudChan, AudioBuffer);
+			XDpDma_SetDescriptorAddress(InstancePtr,
+						    XDPDMA_AUDIO_CHANNEL0);
+			break;
+		case AudioChan1:
+			Xil_AssertVoid(InstancePtr->Audio[1].Buffer != NULL);
+			AudChan = &InstancePtr->Audio[1];
+			AudioBuffer = InstancePtr->Audio[1].Buffer;
+			XDpDma_InitAudioDescriptor(AudChan, AudioBuffer);
+			XDpDma_SetDescriptorAddress(InstancePtr,
+						    XDPDMA_AUDIO_CHANNEL1);
+			break;
+	}
+}
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma.h
new file mode 100644
index 000000000..95315b058
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma.h
@@ -0,0 +1,283 @@
+/******************************************************************************
+ *
+ * Copyright (C) 2017 Xilinx, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * Use of the Software is limited solely to applications:
+ * (a) running on a Xilinx device, or
+ * (b) that interact with a Xilinx device through a bus or interconnect.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Except as contained in this notice, the name of the Xilinx shall not be used
+ * in advertising or otherwise to promote the sale, use or other dealings in
+ * this Software without prior written authorization from Xilinx.
+ *
+ ******************************************************************************/
+
+/*****************************************************************************/
+/**
+ *
+ * @file xdpdma.h
+ *
+ * This file defines the functions implemented by the DPDMA driver present
+ * in the Zynq Ultrascale MP.
+ *
+ * @note	None.
+ *
+ * 
+ * MODIFICATION HISTORY:
+ *
+ * Ver	Who   Date     Changes
+ * ---- ----- -------- ----------------------------------------------------
+ * 1.0  aad   04/12/16 Initial release.
+ *
+ *****************************************************************************/
+
+
+#ifndef XDPDMA_H_
+/* Prevent circular inclusions by using protection macros. */
+#define XDPDMA_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************** Include Files **********************************/
+
+#include "xdpdma_hw.h"
+#include "xvidc.h"
+#include "xil_io.h"
+#include "xil_assert.h"
+#include "xstatus.h"
+#include "xavbuf.h"
+/************************** Constant Definitions ******************************/
+
+/* Alignment for DPDMA Descriptor and Payload */
+#define XDPDMA_DESCRIPTOR_ALIGN 256
+/* DPDMA preamble field */
+#define XDPDMA_DESCRIPTOR_PREAMBLE 0xA5
+/**************************** Type Definitions ********************************/
+
+/**
+ *  This typedef describes the DPDMA descriptor structure and its internals
+ *  which will be used when fetching data from a nonlive path
+ */
+typedef struct {
+	u32 Control;			/**<	[7:0] Descriptor Preamble
+						[8] Enable completion Interrupt
+						[9] Enable descriptor update
+						[10] Ignore Done
+						[11] AXI burst type
+						[15:12] AXACHE
+						[17:16] AXPROT
+						[18] Descriptor mode
+						[19] Last Descriptor
+						[20] Enable CRC
+						[21] Last descriptor frame
+						[31:22] Reserved */
+	u32 DSCR_ID;			/**<	[15:0] Descriptor ID
+						[31:16] Reserved */
+	u32 XFER_SIZE;			/**<	Size of transfer in bytes */
+	u32 LINE_SIZE_STRIDE;		/**<	[17:0] Horizontal Resolution
+						[31:18] Stride */
+	u32 LSB_Timestamp;		/**<	LSB of the Timestamp */
+	u32 MSB_Timestamp;		/**<	MSB of the Timestamp */
+	u32 ADDR_EXT;			/**<	[15:0] Next descriptor
+						extenstion
+						[31:16] SRC address extemsion */
+	u32 NEXT_DESR;			/**<	Address of next descriptor */
+	u32 SRC_ADDR;			/**<	Source Address */
+	u32 ADDR_EXT_23;		/**<	[15:0] Address extension for SRC
+						Address2
+						[31:16] Address extension for
+						SRC Address 3 */
+	u32 ADDR_EXT_45;		/**<	[15:0] Address extension for SRC
+						Address4
+						[31:16] Address extension for
+						SRC Address 5 */
+	u32 SRC_ADDR2;			/**<	Source address of 2nd page */
+	u32 SRC_ADDR3;			/**<	Source address of 3rd page */
+	u32 SRC_ADDR4;			/**<	Source address of 4th page */
+	u32 SRC_ADDR5;			/**<	Source address of 5th page */
+	u32 CRC;			/**<	Reserved */
+
+} XDpDma_Descriptor __attribute__ ((aligned(XDPDMA_DESCRIPTOR_ALIGN)));
+
+/**
+ * This typedef contains configuration information for the DPDMA.
+ */
+typedef struct {
+	u16 DeviceId;			/**< Device ID */
+	u32 BaseAddr;			/**< Base Address */
+} XDpDma_Config;
+
+/**
+ * The following data structure enumerates the types of
+ * DPDMA channels
+ */
+typedef enum {
+	VideoChan,
+	GraphicsChan,
+	AudioChan0,
+	AudioChan1,
+} XDpDma_ChannelType;
+
+/**
+ * This typedef lists the channel status.
+ */
+typedef enum {
+	XDPDMA_DISABLE,
+	XDPDMA_ENABLE,
+	XDPDMA_IDLE,
+	XDPDMA_PAUSE
+} XDpDma_ChannelState;
+
+/**
+ * This typedef is the information needed to transfer video info.
+ */
+typedef struct {
+	u64 Address;
+	u32 Size;
+	u32 Stride;
+	u32 LineSize;
+} XDpDma_FrameBuffer;
+/**
+ * This typedef is the information needed to transfer audio info.
+ */
+typedef struct {
+	u64 Address;
+	u64 Size;
+} XDpDma_AudioBuffer;
+
+/**
+ * This typedef defines the Video/Graphics Channel attributes.
+ */
+typedef struct {
+	XDpDma_Descriptor Descriptor0;
+	XDpDma_Descriptor Descriptor1;
+	XDpDma_Descriptor *Current;
+} XDpDma_Channel;
+
+/**
+ * This typedef defines the Video Channel attributes.
+ */
+typedef struct {
+	XDpDma_Channel Channel[3];
+	u8 TriggerStatus;
+	u8 AVBufEn;
+	XAVBuf_VideoAttribute *VideoInfo;
+	XDpDma_FrameBuffer *FrameBuffer[3];
+} XDpDma_VideoChannel;
+
+/**
+ * This typedef defines the Graphics Channel attributes.
+ */
+typedef struct {
+	XDpDma_Channel Channel;
+	u8 TriggerStatus;
+	u8 AVBufEn;
+	XAVBuf_VideoAttribute *VideoInfo;
+	XDpDma_FrameBuffer *FrameBuffer;
+} XDpDma_GfxChannel;
+
+/**
+ * This typedef defines the Audio Channel attributes.
+ */
+typedef struct {
+	XDpDma_Descriptor Descriptor0, Descriptor1, Descriptor2;
+	XDpDma_Descriptor Descriptor3, Descriptor4, Descriptor5;
+	XDpDma_Descriptor Descriptor6, Descriptor7;
+	XDpDma_Descriptor *Current;
+	u8 TriggerStatus;
+	XDpDma_AudioBuffer *Buffer;
+	u8 Used;
+} XDpDma_AudioChannel;
+/*************************************************************************/
+/**
+ * This callback type represents the handler for a DPDMA VSync interrupt.
+ *
+ * @param	InstancePtr is a pointer to the XDpDma instance.
+ *
+ * @note	None.
+ *
+**************************************************************************/
+typedef void (*XDpDma_VSyncInterruptHandler)(void *InstancePtr);
+
+/*************************************************************************/
+/**
+ * This callback type represents the handler for a DPDMA Done interrupt.
+ *
+ * @param	InstancePtr is a pointer to the XDpDma instance.
+ *
+ * @note	None.
+ *
+**************************************************************************/
+typedef void (*XDpDma_DoneInterruptHandler)(void *InstancePtr);
+
+/**
+ * The XDpDma driver instance data representing the DPDMA operation.
+ */
+typedef struct {
+	XDpDma_Config Config;
+	XDpDma_VideoChannel Video;
+	XDpDma_GfxChannel Gfx;
+	XDpDma_AudioChannel Audio[2];
+	XVidC_VideoTiming *Timing;
+	u8 QOS;
+
+	XDpDma_VSyncInterruptHandler VSyncHandler;
+	void * VSyncInterruptHandler;
+
+	XDpDma_DoneInterruptHandler DoneHandler;
+	void * DoneInterruptHandler;
+
+} XDpDma;
+
+void XDpDma_CfgInitialize(XDpDma *InstancePtr, XDpDma_Config *CfgPtr);
+XDpDma_Config *XDpDma_LookupConfig(u16 DeviceId);
+int XDpDma_SetChannelState(XDpDma *InstancePtr, XDpDma_ChannelType Channel,
+					XDpDma_ChannelState ChannelState);
+void XDpDma_SetQOS(XDpDma *InstancePtr, u8 QOS);
+void XDpDma_SetupChannel(XDpDma *InstancePtr, XDpDma_ChannelType Channel);
+int XDpDma_SetVideoFormat(XDpDma *InstancePtr, XAVBuf_VideoFormat Format);
+int XDpDma_SetGraphicsFormat(XDpDma *InstancePtr, XAVBuf_VideoFormat Format);
+void XDpDma_SetVideoTiming(XDpDma *InstancePtr, XVidC_VideoTiming *Timing);
+int XDpDma_Trigger(XDpDma *InstancePtr, XDpDma_ChannelType Channel);
+int XDpDma_ReTrigger(XDpDma *InstancePtr, XDpDma_ChannelType Channel);
+void XDpDma_InterruptEnable(XDpDma *InstancePtr, u32 Mask);
+void XDpDma_InterruptHandler(XDpDma *InstancePtr);
+void XDpDma_VSyncHandler(XDpDma *InstancePtr);
+void XDpDma_DoneHandler(XDpDma *InstancePtr);
+void XDpDma_InitVideoDescriptor(XDpDma_Descriptor *CurrDesc,
+				XDpDma_FrameBuffer *FrameBuffer);
+void  XDpDma_DisplayVideoFrameBuffer(XDpDma *InstancePtr,
+				   XDpDma_FrameBuffer *Plane1,
+				   XDpDma_FrameBuffer *Plane2,
+				   XDpDma_FrameBuffer *Plane3);
+void XDpDma_DisplayGfxFrameBuffer(XDpDma *InstancePtr,
+				   XDpDma_FrameBuffer *Plane);
+void XDpDma_InitAudioDescriptor(XDpDma_AudioChannel *Channel,
+			       XDpDma_AudioBuffer *AudioBuffer);
+int XDpDma_PlayAudio(XDpDma *InstancePtr, XDpDma_AudioBuffer *Buffer,
+		      u8 ChannelNum);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _XDPDMA_H_ */
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_g.c
new file mode 100644
index 000000000..5bedc6c8b
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_g.c
@@ -0,0 +1,55 @@
+
+/*******************************************************************
+*
+* CAUTION: This file is automatically generated by HSI.
+* Version: 
+* DO NOT EDIT.
+*
+* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.*
+*Permission is hereby granted, free of charge, to any person obtaining a copy
+*of this software and associated documentation files (the Software), to deal
+*in the Software without restriction, including without limitation the rights
+*to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+*copies of the Software, and to permit persons to whom the Software is
+*furnished to do so, subject to the following conditions:
+*
+*The above copyright notice and this permission notice shall be included in
+*all copies or substantial portions of the Software.
+* 
+* Use of the Software is limited solely to applications:
+*(a) running on a Xilinx device, or
+*(b) that interact with a Xilinx device through a bus or interconnect.
+*
+*THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+*IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+*FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
+*XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+*WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
+*OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*
+*Except as contained in this notice, the name of the Xilinx shall not be used
+*in advertising or otherwise to promote the sale, use or other dealings in
+*this Software without prior written authorization from Xilinx.
+*
+
+* 
+* Description: Driver configuration
+*
+*******************************************************************/
+
+#include "xparameters.h"
+#include "xdpdma.h"
+
+/*
+* The configuration table for devices
+*/
+
+XDpDma_Config XDpDma_ConfigTable[XPAR_XDPDMA_NUM_INSTANCES] =
+{
+	{
+		XPAR_PSU_DPDMA_DEVICE_ID,
+		XPAR_PSU_DPDMA_BASEADDR
+	}
+};
+
+
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_hw.h
new file mode 100644
index 000000000..14ebce221
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_hw.h
@@ -0,0 +1,1811 @@
+/******************************************************************************
+ *
+ * Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * Use of the Software is limited solely to applications:
+ * (a) running on a Xilinx device, or
+ * (b) that interact with a Xilinx device through a bus or interconnect.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ *
+ * Except as contained in this notice, the name of the Xilinx shall not be used
+ * in advertising or otherwise to promote the sale, use or other dealings in
+ * this Software without prior written authorization from Xilinx.
+ *
+ ******************************************************************************/
+
+/*****************************************************************************/
+/**
+ *
+ * @file xdpdma_hw.h
+ *
+ * This header file contains identifiers and low-level driver functions (or
+ * macros) that can be used to access the device. High-level driver functions
+ * are defined in xdpdma.h
+ *
+ * @note	None.
+ *
+ * 
+ * MODIFICATION HISTORY:
+ *
+ * Ver	Who   Date     Changes
+ * ---- ----- -------- ----------------------------------------------------
+ * 1.0  aad   04/12/16 Initial release.
+ *
+ *****************************************************************************/
+
+
+#ifndef XDPDMAHW_H_
+/* Prevent circular inclusions by using protection macros. */
+#define XDPDMAHW_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************** Include Files **********************************/
+
+#include "xil_io.h"
+
+/************************** Constant Definitions ******************************/
+
+/******************************************************************************/
+/**
+ * Address mapping for the DPDMA.
+ */
+/******************************************************************************/
+/** @name DPDMA registers
+ *  @{
+ */
+
+#define XDPDMA_BASEADDR					0XFD4C0000
+
+/**
+ * Register: XDPDMA_ERR_CTRL
+ */
+#define XDPDMA_ERR_CTRL					0X0000
+
+#define XDPDMA_ERR_CTRL_APB_ERR_RES_SHIFT		0
+#define XDPDMA_ERR_CTRL_APB_ERR_RES_WIDTH		1
+#define XDPDMA_ERR_CTRL_APB_ERR_RES_MASK		0X1
+
+/**
+ * Register: XDPDMA_ISR
+ */
+#define XDPDMA_ISR					0X0004
+
+#define XDPDMA_ISR_VSYNC_INT_SHIFT			27
+#define XDPDMA_ISR_VSYNC_INT_WIDTH			1
+#define XDPDMA_ISR_VSYNC_INT_MASK			0X08000000
+
+#define XDPDMA_ISR_AXI_RD_4K_CROSS_SHIFT		26
+#define XDPDMA_ISR_AXI_RD_4K_CROSS_WIDTH		1
+#define XDPDMA_ISR_AXI_RD_4K_CROSS_MASK			0X04000000
+
+#define XDPDMA_ISR_WR_DATA_FIFO_FULL_SHIFT		25
+#define XDPDMA_ISR_WR_DATA_FIFO_FULL_WIDTH		1
+#define XDPDMA_ISR_WR_DATA_FIFO_FULL_MASK		0X02000000
+
+#define XDPDMA_ISR_WR_CMD_FIFO_FULL_SHIFT		24
+#define XDPDMA_ISR_WR_CMD_FIFO_FULL_WIDTH		1
+#define XDPDMA_ISR_WR_CMD_FIFO_FULL_MASK		0X01000000
+
+#define XDPDMA_ISR_DSCR_ERR5_SHIFT			23
+#define XDPDMA_ISR_DSCR_ERR5_WIDTH			1
+#define XDPDMA_ISR_DSCR_ERR5_MASK			0X800000
+
+#define XDPDMA_ISR_DSCR_ERR4_SHIFT			22
+#define XDPDMA_ISR_DSCR_ERR4_WIDTH			1
+#define XDPDMA_ISR_DSCR_ERR4_MASK			0X400000
+
+#define XDPDMA_ISR_DSCR_ERR3_SHIFT			21
+#define XDPDMA_ISR_DSCR_ERR3_WIDTH			1
+#define XDPDMA_ISR_DSCR_ERR3_MASK			0X200000
+
+#define XDPDMA_ISR_DSCR_ERR2_SHIFT			20
+#define XDPDMA_ISR_DSCR_ERR2_WIDTH			1
+#define XDPDMA_ISR_DSCR_ERR2_MASK			0X100000
+
+#define XDPDMA_ISR_DSCR_ERR1_SHIFT			19
+#define XDPDMA_ISR_DSCR_ERR1_WIDTH			1
+#define XDPDMA_ISR_DSCR_ERR1_MASK			0X80000
+
+#define XDPDMA_ISR_DSCR_ERR0_SHIFT			18
+#define XDPDMA_ISR_DSCR_ERR0_WIDTH			1
+#define XDPDMA_ISR_DSCR_ERR0_MASK			0X40000
+
+#define XDPDMA_ISR_DATA_AXI_ERR5_SHIFT			17
+#define XDPDMA_ISR_DATA_AXI_ERR5_WIDTH			1
+#define XDPDMA_ISR_DATA_AXI_ERR5_MASK			0X20000
+
+#define XDPDMA_ISR_DATA_AXI_ERR4_SHIFT			16
+#define XDPDMA_ISR_DATA_AXI_ERR4_WIDTH			1
+#define XDPDMA_ISR_DATA_AXI_ERR4_MASK			0X10000
+
+#define XDPDMA_ISR_DATA_AXI_ERR3_SHIFT			15
+#define XDPDMA_ISR_DATA_AXI_ERR3_WIDTH			1
+#define XDPDMA_ISR_DATA_AXI_ERR3_MASK			0X8000
+
+#define XDPDMA_ISR_DATA_AXI_ERR2_SHIFT			14
+#define XDPDMA_ISR_DATA_AXI_ERR2_WIDTH			1
+#define XDPDMA_ISR_DATA_AXI_ERR2_MASK			0X4000
+
+#define XDPDMA_ISR_DATA_AXI_ERR1_SHIFT			13
+#define XDPDMA_ISR_DATA_AXI_ERR1_WIDTH			1
+#define XDPDMA_ISR_DATA_AXI_ERR1_MASK			0X2000
+
+#define XDPDMA_ISR_DATA_AXI_ERR0_SHIFT			12
+#define XDPDMA_ISR_DATA_AXI_ERR0_WIDTH			1
+#define XDPDMA_ISR_DATA_AXI_ERR0_MASK			0X1000
+
+#define XDPDMA_ISR_NO_OSTAND_TRAN5_SHIFT		11
+#define XDPDMA_ISR_NO_OSTAND_TRAN5_WIDTH		1
+#define XDPDMA_ISR_NO_OSTAND_TRAN5_MASK			0X0800
+
+#define XDPDMA_ISR_NO_OSTAND_TRAN4_SHIFT		10
+#define XDPDMA_ISR_NO_OSTAND_TRAN4_WIDTH		1
+#define XDPDMA_ISR_NO_OSTAND_TRAN4_MASK			0X0400
+
+#define XDPDMA_ISR_NO_OSTAND_TRAN3_SHIFT		9
+#define XDPDMA_ISR_NO_OSTAND_TRAN3_WIDTH		1
+#define XDPDMA_ISR_NO_OSTAND_TRAN3_MASK			0X0200
+
+#define XDPDMA_ISR_NO_OSTAND_TRAN2_SHIFT		8
+#define XDPDMA_ISR_NO_OSTAND_TRAN2_WIDTH		1
+#define XDPDMA_ISR_NO_OSTAND_TRAN2_MASK			0X0100
+
+#define XDPDMA_ISR_NO_OSTAND_TRAN1_SHIFT		7
+#define XDPDMA_ISR_NO_OSTAND_TRAN1_WIDTH		1
+#define XDPDMA_ISR_NO_OSTAND_TRAN1_MASK			0X80
+
+#define XDPDMA_ISR_NO_OSTAND_TRAN0_SHIFT		6
+#define XDPDMA_ISR_NO_OSTAND_TRAN0_WIDTH		1
+#define XDPDMA_ISR_NO_OSTAND_TRAN0_MASK			0X40
+
+#define XDPDMA_ISR_DSCR_DONE5_SHIFT			5
+#define XDPDMA_ISR_DSCR_DONE5_WIDTH			1
+#define XDPDMA_ISR_DSCR_DONE5_MASK			0X20
+
+#define XDPDMA_ISR_DSCR_DONE4_SHIFT			4
+#define XDPDMA_ISR_DSCR_DONE4_WIDTH			1
+#define XDPDMA_ISR_DSCR_DONE4_MASK			0X10
+
+#define XDPDMA_ISR_DSCR_DONE3_SHIFT			3
+#define XDPDMA_ISR_DSCR_DONE3_WIDTH			1
+#define XDPDMA_ISR_DSCR_DONE3_MASK			0X8
+
+#define XDPDMA_ISR_DSCR_DONE2_SHIFT			2
+#define XDPDMA_ISR_DSCR_DONE2_WIDTH			1
+#define XDPDMA_ISR_DSCR_DONE2_MASK			0X4
+
+#define XDPDMA_ISR_DSCR_DONE1_SHIFT			1
+#define XDPDMA_ISR_DSCR_DONE1_WIDTH			1
+#define XDPDMA_ISR_DSCR_DONE1_MASK			0X2
+
+#define XDPDMA_ISR_DSCR_DONE0_SHIFT			0
+#define XDPDMA_ISR_DSCR_DONE0_WIDTH			1
+#define XDPDMA_ISR_DSCR_DONE0_MASK			0X1
+
+/**
+ * Register: XDPDMA_IMR
+ */
+#define XDPDMA_IMR					0X0008
+
+#define XDPDMA_IMR_VSYNC_INT_SHIFT			27
+#define XDPDMA_IMR_VSYNC_INT_WIDTH			1
+#define XDPDMA_IMR_VSYNC_INT_MASK			0X08000000
+
+#define XDPDMA_IMR_AXI_RD_4K_CROSS_SHIFT		26
+#define XDPDMA_IMR_AXI_RD_4K_CROSS_WIDTH		1
+#define XDPDMA_IMR_AXI_RD_4K_CROSS_MASK			0X04000000
+
+#define XDPDMA_IMR_WR_DATA_FIFO_FULL_SHIFT		25
+#define XDPDMA_IMR_WR_DATA_FIFO_FULL_WIDTH		1
+#define XDPDMA_IMR_WR_DATA_FIFO_FULL_MASK		0X02000000
+
+#define XDPDMA_IMR_WR_CMD_FIFO_FULL_SHIFT		24
+#define XDPDMA_IMR_WR_CMD_FIFO_FULL_WIDTH		1
+#define XDPDMA_IMR_WR_CMD_FIFO_FULL_MASK		0X01000000
+
+#define XDPDMA_IMR_DSCR_ERR5_SHIFT			23
+#define XDPDMA_IMR_DSCR_ERR5_WIDTH			1
+#define XDPDMA_IMR_DSCR_ERR5_MASK			0X800000
+
+#define XDPDMA_IMR_DSCR_ERR4_SHIFT			22
+#define XDPDMA_IMR_DSCR_ERR4_WIDTH			1
+#define XDPDMA_IMR_DSCR_ERR4_MASK			0X400000
+
+#define XDPDMA_IMR_DSCR_ERR3_SHIFT			21
+#define XDPDMA_IMR_DSCR_ERR3_WIDTH			1
+#define XDPDMA_IMR_DSCR_ERR3_MASK			0X200000
+
+#define XDPDMA_IMR_DSCR_ERR2_SHIFT			20
+#define XDPDMA_IMR_DSCR_ERR2_WIDTH			1
+#define XDPDMA_IMR_DSCR_ERR2_MASK			0X100000
+
+#define XDPDMA_IMR_DSCR_ERR1_SHIFT			19
+#define XDPDMA_IMR_DSCR_ERR1_WIDTH			1
+#define XDPDMA_IMR_DSCR_ERR1_MASK			0X80000
+
+#define XDPDMA_IMR_DSCR_ERR0_SHIFT			18
+#define XDPDMA_IMR_DSCR_ERR0_WIDTH			1
+#define XDPDMA_IMR_DSCR_ERR0_MASK			0X40000
+
+#define XDPDMA_IMR_DATA_AXI_ERR5_SHIFT			17
+#define XDPDMA_IMR_DATA_AXI_ERR5_WIDTH			1
+#define XDPDMA_IMR_DATA_AXI_ERR5_MASK			0X20000
+
+#define XDPDMA_IMR_DATA_AXI_ERR4_SHIFT			16
+#define XDPDMA_IMR_DATA_AXI_ERR4_WIDTH			1
+#define XDPDMA_IMR_DATA_AXI_ERR4_MASK			0X10000
+
+#define XDPDMA_IMR_DATA_AXI_ERR3_SHIFT			15
+#define XDPDMA_IMR_DATA_AXI_ERR3_WIDTH			1
+#define XDPDMA_IMR_DATA_AXI_ERR3_MASK			0X8000
+
+#define XDPDMA_IMR_DATA_AXI_ERR2_SHIFT			14
+#define XDPDMA_IMR_DATA_AXI_ERR2_WIDTH			1
+#define XDPDMA_IMR_DATA_AXI_ERR2_MASK			0X4000
+
+#define XDPDMA_IMR_DATA_AXI_ERR1_SHIFT			13
+#define XDPDMA_IMR_DATA_AXI_ERR1_WIDTH			1
+#define XDPDMA_IMR_DATA_AXI_ERR1_MASK			0X2000
+
+#define XDPDMA_IMR_DATA_AXI_ERR0_SHIFT			12
+#define XDPDMA_IMR_DATA_AXI_ERR0_WIDTH			1
+#define XDPDMA_IMR_DATA_AXI_ERR0_MASK			0X1000
+
+#define XDPDMA_IMR_NO_OSTAND_TRAN5_SHIFT		11
+#define XDPDMA_IMR_NO_OSTAND_TRAN5_WIDTH		1
+#define XDPDMA_IMR_NO_OSTAND_TRAN5_MASK			0X0800
+
+#define XDPDMA_IMR_NO_OSTAND_TRAN4_SHIFT		10
+#define XDPDMA_IMR_NO_OSTAND_TRAN4_WIDTH		1
+#define XDPDMA_IMR_NO_OSTAND_TRAN4_MASK			0X0400
+
+#define XDPDMA_IMR_NO_OSTAND_TRAN3_SHIFT		9
+#define XDPDMA_IMR_NO_OSTAND_TRAN3_WIDTH		1
+#define XDPDMA_IMR_NO_OSTAND_TRAN3_MASK			0X0200
+
+#define XDPDMA_IMR_NO_OSTAND_TRAN2_SHIFT		8
+#define XDPDMA_IMR_NO_OSTAND_TRAN2_WIDTH		1
+#define XDPDMA_IMR_NO_OSTAND_TRAN2_MASK			0X0100
+
+#define XDPDMA_IMR_NO_OSTAND_TRAN1_SHIFT		7
+#define XDPDMA_IMR_NO_OSTAND_TRAN1_WIDTH		1
+#define XDPDMA_IMR_NO_OSTAND_TRAN1_MASK			0X80
+
+#define XDPDMA_IMR_NO_OSTAND_TRAN0_SHIFT		6
+#define XDPDMA_IMR_NO_OSTAND_TRAN0_WIDTH		1
+#define XDPDMA_IMR_NO_OSTAND_TRAN0_MASK			0X40
+
+#define XDPDMA_IMR_DSCR_DONE5_SHIFT			5
+#define XDPDMA_IMR_DSCR_DONE5_WIDTH			1
+#define XDPDMA_IMR_DSCR_DONE5_MASK			0X20
+
+#define XDPDMA_IMR_DSCR_DONE4_SHIFT			4
+#define XDPDMA_IMR_DSCR_DONE4_WIDTH			1
+#define XDPDMA_IMR_DSCR_DONE4_MASK			0X10
+
+#define XDPDMA_IMR_DSCR_DONE3_SHIFT			3
+#define XDPDMA_IMR_DSCR_DONE3_WIDTH			1
+#define XDPDMA_IMR_DSCR_DONE3_MASK			0X8
+
+#define XDPDMA_IMR_DSCR_DONE2_SHIFT			2
+#define XDPDMA_IMR_DSCR_DONE2_WIDTH			1
+#define XDPDMA_IMR_DSCR_DONE2_MASK			0X4
+
+#define XDPDMA_IMR_DSCR_DONE1_SHIFT			1
+#define XDPDMA_IMR_DSCR_DONE1_WIDTH			1
+#define XDPDMA_IMR_DSCR_DONE1_MASK			0X2
+
+#define XDPDMA_IMR_DSCR_DONE0_SHIFT			0
+#define XDPDMA_IMR_DSCR_DONE0_WIDTH			1
+#define XDPDMA_IMR_DSCR_DONE0_MASK			0X1
+
+/**
+ * Register: XDPDMA_IEN
+ */
+#define XDPDMA_IEN					0X000C
+
+#define XDPDMA_IEN_VSYNC_INT_SHIFT			27
+#define XDPDMA_IEN_VSYNC_INT_WIDTH			1
+#define XDPDMA_IEN_VSYNC_INT_MASK			0X08000000
+
+#define XDPDMA_IEN_AXI_RD_4K_CROSS_SHIFT		26
+#define XDPDMA_IEN_AXI_RD_4K_CROSS_WIDTH		1
+#define XDPDMA_IEN_AXI_RD_4K_CROSS_MASK			0X04000000
+
+#define XDPDMA_IEN_WR_DATA_FIFO_FULL_SHIFT		25
+#define XDPDMA_IEN_WR_DATA_FIFO_FULL_WIDTH		1
+#define XDPDMA_IEN_WR_DATA_FIFO_FULL_MASK		0X02000000
+
+#define XDPDMA_IEN_WR_CMD_FIFO_FULL_SHIFT		24
+#define XDPDMA_IEN_WR_CMD_FIFO_FULL_WIDTH		1
+#define XDPDMA_IEN_WR_CMD_FIFO_FULL_MASK		0X01000000
+
+#define XDPDMA_IEN_DSCR_ERR5_SHIFT			23
+#define XDPDMA_IEN_DSCR_ERR5_WIDTH			1
+#define XDPDMA_IEN_DSCR_ERR5_MASK			0X800000
+
+#define XDPDMA_IEN_DSCR_ERR4_SHIFT			22
+#define XDPDMA_IEN_DSCR_ERR4_WIDTH			1
+#define XDPDMA_IEN_DSCR_ERR4_MASK			0X400000
+
+#define XDPDMA_IEN_DSCR_ERR3_SHIFT			21
+#define XDPDMA_IEN_DSCR_ERR3_WIDTH			1
+#define XDPDMA_IEN_DSCR_ERR3_MASK			0X200000
+
+#define XDPDMA_IEN_DSCR_ERR2_SHIFT			20
+#define XDPDMA_IEN_DSCR_ERR2_WIDTH			1
+#define XDPDMA_IEN_DSCR_ERR2_MASK			0X100000
+
+#define XDPDMA_IEN_DSCR_ERR1_SHIFT			19
+#define XDPDMA_IEN_DSCR_ERR1_WIDTH			1
+#define XDPDMA_IEN_DSCR_ERR1_MASK			0X80000
+
+#define XDPDMA_IEN_DSCR_ERR0_SHIFT			18
+#define XDPDMA_IEN_DSCR_ERR0_WIDTH			1
+#define XDPDMA_IEN_DSCR_ERR0_MASK			0X40000
+
+#define XDPDMA_IEN_DATA_AXI_ERR5_SHIFT			17
+#define XDPDMA_IEN_DATA_AXI_ERR5_WIDTH			1
+#define XDPDMA_IEN_DATA_AXI_ERR5_MASK			0X20000
+
+#define XDPDMA_IEN_DATA_AXI_ERR4_SHIFT			16
+#define XDPDMA_IEN_DATA_AXI_ERR4_WIDTH			1
+#define XDPDMA_IEN_DATA_AXI_ERR4_MASK			0X10000
+
+#define XDPDMA_IEN_DATA_AXI_ERR3_SHIFT			15
+#define XDPDMA_IEN_DATA_AXI_ERR3_WIDTH			1
+#define XDPDMA_IEN_DATA_AXI_ERR3_MASK			0X8000
+
+#define XDPDMA_IEN_DATA_AXI_ERR2_SHIFT			14
+#define XDPDMA_IEN_DATA_AXI_ERR2_WIDTH			1
+#define XDPDMA_IEN_DATA_AXI_ERR2_MASK			0X4000
+
+#define XDPDMA_IEN_DATA_AXI_ERR1_SHIFT			13
+#define XDPDMA_IEN_DATA_AXI_ERR1_WIDTH			1
+#define XDPDMA_IEN_DATA_AXI_ERR1_MASK			0X2000
+
+#define XDPDMA_IEN_DATA_AXI_ERR0_SHIFT			12
+#define XDPDMA_IEN_DATA_AXI_ERR0_WIDTH			1
+#define XDPDMA_IEN_DATA_AXI_ERR0_MASK			0X1000
+
+#define XDPDMA_IEN_NO_OSTAND_TRAN5_SHIFT		11
+#define XDPDMA_IEN_NO_OSTAND_TRAN5_WIDTH		1
+#define XDPDMA_IEN_NO_OSTAND_TRAN5_MASK			0X0800
+
+#define XDPDMA_IEN_NO_OSTAND_TRAN4_SHIFT		10
+#define XDPDMA_IEN_NO_OSTAND_TRAN4_WIDTH		1
+#define XDPDMA_IEN_NO_OSTAND_TRAN4_MASK			0X0400
+
+#define XDPDMA_IEN_NO_OSTAND_TRAN3_SHIFT		9
+#define XDPDMA_IEN_NO_OSTAND_TRAN3_WIDTH		1
+#define XDPDMA_IEN_NO_OSTAND_TRAN3_MASK			0X0200
+
+#define XDPDMA_IEN_NO_OSTAND_TRAN2_SHIFT		8
+#define XDPDMA_IEN_NO_OSTAND_TRAN2_WIDTH		1
+#define XDPDMA_IEN_NO_OSTAND_TRAN2_MASK			0X0100
+
+#define XDPDMA_IEN_NO_OSTAND_TRAN1_SHIFT		7
+#define XDPDMA_IEN_NO_OSTAND_TRAN1_WIDTH		1
+#define XDPDMA_IEN_NO_OSTAND_TRAN1_MASK			0X80
+
+#define XDPDMA_IEN_NO_OSTAND_TRAN0_SHIFT		6
+#define XDPDMA_IEN_NO_OSTAND_TRAN0_WIDTH		1
+#define XDPDMA_IEN_NO_OSTAND_TRAN0_MASK			0X40
+
+#define XDPDMA_IEN_DSCR_DONE5_SHIFT			5
+#define XDPDMA_IEN_DSCR_DONE5_WIDTH			1
+#define XDPDMA_IEN_DSCR_DONE5_MASK			0X20
+
+#define XDPDMA_IEN_DSCR_DONE4_SHIFT			4
+#define XDPDMA_IEN_DSCR_DONE4_WIDTH			1
+#define XDPDMA_IEN_DSCR_DONE4_MASK			0X10
+
+#define XDPDMA_IEN_DSCR_DONE3_SHIFT			3
+#define XDPDMA_IEN_DSCR_DONE3_WIDTH			1
+#define XDPDMA_IEN_DSCR_DONE3_MASK			0X8
+
+#define XDPDMA_IEN_DSCR_DONE2_SHIFT			2
+#define XDPDMA_IEN_DSCR_DONE2_WIDTH			1
+#define XDPDMA_IEN_DSCR_DONE2_MASK			0X4
+
+#define XDPDMA_IEN_DSCR_DONE1_SHIFT			1
+#define XDPDMA_IEN_DSCR_DONE1_WIDTH			1
+#define XDPDMA_IEN_DSCR_DONE1_MASK			0X2
+
+#define XDPDMA_IEN_DSCR_DONE0_SHIFT			0
+#define XDPDMA_IEN_DSCR_DONE0_WIDTH			1
+#define XDPDMA_IEN_DSCR_DONE0_MASK			0X1
+
+/**
+ * Register: XDPDMA_IDS
+ */
+#define XDPDMA_IDS					0X0010
+
+#define XDPDMA_IDS_VSYNC_INT_SHIFT			27
+#define XDPDMA_IDS_VSYNC_INT_WIDTH			1
+#define XDPDMA_IDS_VSYNC_INT_MASK			0X08000000
+
+#define XDPDMA_IDS_AXI_RD_4K_CROSS_SHIFT		26
+#define XDPDMA_IDS_AXI_RD_4K_CROSS_WIDTH		1
+#define XDPDMA_IDS_AXI_RD_4K_CROSS_MASK		0X04000000
+
+#define XDPDMA_IDS_WR_DATA_FIFO_FULL_SHIFT		25
+#define XDPDMA_IDS_WR_DATA_FIFO_FULL_WIDTH		1
+#define XDPDMA_IDS_WR_DATA_FIFO_FULL_MASK		0X02000000
+
+#define XDPDMA_IDS_WR_CMD_FIFO_FULL_SHIFT		24
+#define XDPDMA_IDS_WR_CMD_FIFO_FULL_WIDTH		1
+#define XDPDMA_IDS_WR_CMD_FIFO_FULL_MASK		0X01000000
+
+#define XDPDMA_IDS_DSCR_ERR5_SHIFT			23
+#define XDPDMA_IDS_DSCR_ERR5_WIDTH			1
+#define XDPDMA_IDS_DSCR_ERR5_MASK			0X800000
+
+#define XDPDMA_IDS_DSCR_ERR4_SHIFT			22
+#define XDPDMA_IDS_DSCR_ERR4_WIDTH			1
+#define XDPDMA_IDS_DSCR_ERR4_MASK			0X400000
+
+#define XDPDMA_IDS_DSCR_ERR3_SHIFT			21
+#define XDPDMA_IDS_DSCR_ERR3_WIDTH			1
+#define XDPDMA_IDS_DSCR_ERR3_MASK			0X200000
+
+#define XDPDMA_IDS_DSCR_ERR2_SHIFT			20
+#define XDPDMA_IDS_DSCR_ERR2_WIDTH			1
+#define XDPDMA_IDS_DSCR_ERR2_MASK			0X100000
+
+#define XDPDMA_IDS_DSCR_ERR1_SHIFT			19
+#define XDPDMA_IDS_DSCR_ERR1_WIDTH			1
+#define XDPDMA_IDS_DSCR_ERR1_MASK			0X80000
+
+#define XDPDMA_IDS_DSCR_ERR0_SHIFT			18
+#define XDPDMA_IDS_DSCR_ERR0_WIDTH			1
+#define XDPDMA_IDS_DSCR_ERR0_MASK			0X40000
+
+#define XDPDMA_IDS_DATA_AXI_ERR5_SHIFT			17
+#define XDPDMA_IDS_DATA_AXI_ERR5_WIDTH			1
+#define XDPDMA_IDS_DATA_AXI_ERR5_MASK			0X20000
+
+#define XDPDMA_IDS_DATA_AXI_ERR4_SHIFT			16
+#define XDPDMA_IDS_DATA_AXI_ERR4_WIDTH			1
+#define XDPDMA_IDS_DATA_AXI_ERR4_MASK			0X10000
+
+#define XDPDMA_IDS_DATA_AXI_ERR3_SHIFT			15
+#define XDPDMA_IDS_DATA_AXI_ERR3_WIDTH			1
+#define XDPDMA_IDS_DATA_AXI_ERR3_MASK			0X8000
+
+#define XDPDMA_IDS_DATA_AXI_ERR2_SHIFT			14
+#define XDPDMA_IDS_DATA_AXI_ERR2_WIDTH			1
+#define XDPDMA_IDS_DATA_AXI_ERR2_MASK			0X4000
+
+#define XDPDMA_IDS_DATA_AXI_ERR1_SHIFT			13
+#define XDPDMA_IDS_DATA_AXI_ERR1_WIDTH			1
+#define XDPDMA_IDS_DATA_AXI_ERR1_MASK			0X2000
+
+#define XDPDMA_IDS_DATA_AXI_ERR0_SHIFT			12
+#define XDPDMA_IDS_DATA_AXI_ERR0_WIDTH			1
+#define XDPDMA_IDS_DATA_AXI_ERR0_MASK			0X1000
+
+#define XDPDMA_IDS_NO_OSTAND_TRAN5_SHIFT		11
+#define XDPDMA_IDS_NO_OSTAND_TRAN5_WIDTH		1
+#define XDPDMA_IDS_NO_OSTAND_TRAN5_MASK			0X0800
+
+#define XDPDMA_IDS_NO_OSTAND_TRAN4_SHIFT		10
+#define XDPDMA_IDS_NO_OSTAND_TRAN4_WIDTH		1
+#define XDPDMA_IDS_NO_OSTAND_TRAN4_MASK			0X0400
+
+#define XDPDMA_IDS_NO_OSTAND_TRAN3_SHIFT		9
+#define XDPDMA_IDS_NO_OSTAND_TRAN3_WIDTH		1
+#define XDPDMA_IDS_NO_OSTAND_TRAN3_MASK			0X0200
+
+#define XDPDMA_IDS_NO_OSTAND_TRAN2_SHIFT		8
+#define XDPDMA_IDS_NO_OSTAND_TRAN2_WIDTH		1
+#define XDPDMA_IDS_NO_OSTAND_TRAN2_MASK			0X0100
+
+#define XDPDMA_IDS_NO_OSTAND_TRAN1_SHIFT		7
+#define XDPDMA_IDS_NO_OSTAND_TRAN1_WIDTH		1
+#define XDPDMA_IDS_NO_OSTAND_TRAN1_MASK			0X80
+
+#define XDPDMA_IDS_NO_OSTAND_TRAN0_SHIFT		6
+#define XDPDMA_IDS_NO_OSTAND_TRAN0_WIDTH		1
+#define XDPDMA_IDS_NO_OSTAND_TRAN0_MASK			0X40
+
+#define XDPDMA_IDS_DSCR_DONE5_SHIFT			5
+#define XDPDMA_IDS_DSCR_DONE5_WIDTH			1
+#define XDPDMA_IDS_DSCR_DONE5_MASK			0X20
+
+#define XDPDMA_IDS_DSCR_DONE4_SHIFT			4
+#define XDPDMA_IDS_DSCR_DONE4_WIDTH			1
+#define XDPDMA_IDS_DSCR_DONE4_MASK			0X10
+
+#define XDPDMA_IDS_DSCR_DONE3_SHIFT			3
+#define XDPDMA_IDS_DSCR_DONE3_WIDTH			1
+#define XDPDMA_IDS_DSCR_DONE3_MASK			0X8
+
+#define XDPDMA_IDS_DSCR_DONE2_SHIFT			2
+#define XDPDMA_IDS_DSCR_DONE2_WIDTH			1
+#define XDPDMA_IDS_DSCR_DONE2_MASK			0X4
+
+#define XDPDMA_IDS_DSCR_DONE1_SHIFT			1
+#define XDPDMA_IDS_DSCR_DONE1_WIDTH			1
+#define XDPDMA_IDS_DSCR_DONE1_MASK			0X2
+
+#define XDPDMA_IDS_DSCR_DONE0_SHIFT			0
+#define XDPDMA_IDS_DSCR_DONE0_WIDTH			1
+#define XDPDMA_IDS_DSCR_DONE0_MASK			0X1
+
+/**
+ * Register: XDPDMA_EISR
+ */
+#define XDPDMA_EISR					0X0014
+
+#define XDPDMA_EISR_RD_CMD_FIFO_FULL_SHIFT		31
+#define XDPDMA_EISR_RD_CMD_FIFO_FULL_WIDTH		1
+#define XDPDMA_EISR_RD_CMD_FIFO_FULL_MASK		0X80000000
+
+#define XDPDMA_EISR_DSCR_DONE_ERR5_SHIFT		30
+#define XDPDMA_EISR_DSCR_DONE_ERR5_WIDTH		1
+#define XDPDMA_EISR_DSCR_DONE_ERR5_MASK			0X40000000
+
+#define XDPDMA_EISR_DSCR_DONE_ERR4_SHIFT		29
+#define XDPDMA_EISR_DSCR_DONE_ERR4_WIDTH		1
+#define XDPDMA_EISR_DSCR_DONE_ERR4_MASK			0X20000000
+
+#define XDPDMA_EISR_DSCR_DONE_ERR3_SHIFT		28
+#define XDPDMA_EISR_DSCR_DONE_ERR3_WIDTH		1
+#define XDPDMA_EISR_DSCR_DONE_ERR3_MASK			0X10000000
+
+#define XDPDMA_EISR_DSCR_DONE_ERR2_SHIFT		27
+#define XDPDMA_EISR_DSCR_DONE_ERR2_WIDTH		1
+#define XDPDMA_EISR_DSCR_DONE_ERR2_MASK			0X08000000
+
+#define XDPDMA_EISR_DSCR_DONE_ERR1_SHIFT		26
+#define XDPDMA_EISR_DSCR_DONE_ERR1_WIDTH		1
+#define XDPDMA_EISR_DSCR_DONE_ERR1_MASK			0X04000000
+
+#define XDPDMA_EISR_DSCR_DONE_ERR0_SHIFT		25
+#define XDPDMA_EISR_DSCR_DONE_ERR0_WIDTH		1
+#define XDPDMA_EISR_DSCR_DONE_ERR0_MASK			0X02000000
+
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR5_SHIFT		24
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR5_WIDTH		1
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR5_MASK		0X01000000
+
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR4_SHIFT		23
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR4_WIDTH		1
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR4_MASK		0X800000
+
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR3_SHIFT		22
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR3_WIDTH		1
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR3_MASK		0X400000
+
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR2_SHIFT		21
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR2_WIDTH		1
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR2_MASK		0X200000
+
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR1_SHIFT		20
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR1_WIDTH		1
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR1_MASK		0X100000
+
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR0_SHIFT		19
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR0_WIDTH		1
+#define XDPDMA_EISR_DSCR_WR_AXI_ERR0_MASK		0X80000
+
+#define XDPDMA_EISR_DSCR_CRC_ERR5_SHIFT			18
+#define XDPDMA_EISR_DSCR_CRC_ERR5_WIDTH			1
+#define XDPDMA_EISR_DSCR_CRC_ERR5_MASK			0X40000
+
+#define XDPDMA_EISR_DSCR_CRC_ERR4_SHIFT			17
+#define XDPDMA_EISR_DSCR_CRC_ERR4_WIDTH			1
+#define XDPDMA_EISR_DSCR_CRC_ERR4_MASK			0X20000
+
+#define XDPDMA_EISR_DSCR_CRC_ERR3_SHIFT			16
+#define XDPDMA_EISR_DSCR_CRC_ERR3_WIDTH			1
+#define XDPDMA_EISR_DSCR_CRC_ERR3_MASK			0X10000
+
+#define XDPDMA_EISR_DSCR_CRC_ERR2_SHIFT			15
+#define XDPDMA_EISR_DSCR_CRC_ERR2_WIDTH			1
+#define XDPDMA_EISR_DSCR_CRC_ERR2_MASK			0X8000
+
+#define XDPDMA_EISR_DSCR_CRC_ERR1_SHIFT			14
+#define XDPDMA_EISR_DSCR_CRC_ERR1_WIDTH			1
+#define XDPDMA_EISR_DSCR_CRC_ERR1_MASK			0X4000
+
+#define XDPDMA_EISR_DSCR_CRC_ERR0_SHIFT			13
+#define XDPDMA_EISR_DSCR_CRC_ERR0_WIDTH			1
+#define XDPDMA_EISR_DSCR_CRC_ERR0_MASK			0X2000
+
+#define XDPDMA_EISR_DSCR_PRE_ERR5_SHIFT			12
+#define XDPDMA_EISR_DSCR_PRE_ERR5_WIDTH			1
+#define XDPDMA_EISR_DSCR_PRE_ERR5_MASK			0X1000
+
+#define XDPDMA_EISR_DSCR_PRE_ERR4_SHIFT			11
+#define XDPDMA_EISR_DSCR_PRE_ERR4_WIDTH			1
+#define XDPDMA_EISR_DSCR_PRE_ERR4_MASK			0X0800
+
+#define XDPDMA_EISR_DSCR_PRE_ERR3_SHIFT			10
+#define XDPDMA_EISR_DSCR_PRE_ERR3_WIDTH			1
+#define XDPDMA_EISR_DSCR_PRE_ERR3_MASK			0X0400
+
+#define XDPDMA_EISR_DSCR_PRE_ERR2_SHIFT			9
+#define XDPDMA_EISR_DSCR_PRE_ERR2_WIDTH			1
+#define XDPDMA_EISR_DSCR_PRE_ERR2_MASK			0X0200
+
+#define XDPDMA_EISR_DSCR_PRE_ERR1_SHIFT			8
+#define XDPDMA_EISR_DSCR_PRE_ERR1_WIDTH			1
+#define XDPDMA_EISR_DSCR_PRE_ERR1_MASK			0X0100
+
+#define XDPDMA_EISR_DSCR_PRE_ERR0_SHIFT			7
+#define XDPDMA_EISR_DSCR_PRE_ERR0_WIDTH			1
+#define XDPDMA_EISR_DSCR_PRE_ERR0_MASK			0X80
+
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR5_SHIFT		6
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR5_WIDTH		1
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR5_MASK		0X40
+
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR4_SHIFT		5
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR4_WIDTH		1
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR4_MASK		0X20
+
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR3_SHIFT		4
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR3_WIDTH		1
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR3_MASK		0X10
+
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR2_SHIFT		3
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR2_WIDTH		1
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR2_MASK		0X8
+
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR1_SHIFT		2
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR1_WIDTH		1
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR1_MASK		0X4
+
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR0_SHIFT		1
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR0_WIDTH		1
+#define XDPDMA_EISR_DSCR_RD_AXI_ERR0_MASK		0X2
+
+#define XDPDMA_EISR_INV_APB_SHIFT			0
+#define XDPDMA_EISR_INV_APB_WIDTH			1
+#define XDPDMA_EISR_INV_APB_MASK			0X1
+
+/**
+ * Register: XDPDMA_EIMR
+ */
+#define XDPDMA_EIMR					0X0018
+
+#define XDPDMA_EIMR_RD_CMD_FIFO_FULL_SHIFT		31
+#define XDPDMA_EIMR_RD_CMD_FIFO_FULL_WIDTH		1
+#define XDPDMA_EIMR_RD_CMD_FIFO_FULL_MASK		0X80000000
+
+#define XDPDMA_EIMR_DSCR_DONE_ERR5_SHIFT		30
+#define XDPDMA_EIMR_DSCR_DONE_ERR5_WIDTH		1
+#define XDPDMA_EIMR_DSCR_DONE_ERR5_MASK			0X40000000
+
+#define XDPDMA_EIMR_DSCR_DONE_ERR4_SHIFT		29
+#define XDPDMA_EIMR_DSCR_DONE_ERR4_WIDTH		1
+#define XDPDMA_EIMR_DSCR_DONE_ERR4_MASK			0X20000000
+
+#define XDPDMA_EIMR_DSCR_DONE_ERR3_SHIFT		28
+#define XDPDMA_EIMR_DSCR_DONE_ERR3_WIDTH		1
+#define XDPDMA_EIMR_DSCR_DONE_ERR3_MASK			0X10000000
+
+#define XDPDMA_EIMR_DSCR_DONE_ERR2_SHIFT		27
+#define XDPDMA_EIMR_DSCR_DONE_ERR2_WIDTH		1
+#define XDPDMA_EIMR_DSCR_DONE_ERR2_MASK			0X08000000
+
+#define XDPDMA_EIMR_DSCR_DONE_ERR1_SHIFT		26
+#define XDPDMA_EIMR_DSCR_DONE_ERR1_WIDTH		1
+#define XDPDMA_EIMR_DSCR_DONE_ERR1_MASK			0X04000000
+
+#define XDPDMA_EIMR_DSCR_DONE_ERR0_SHIFT		25
+#define XDPDMA_EIMR_DSCR_DONE_ERR0_WIDTH		1
+#define XDPDMA_EIMR_DSCR_DONE_ERR0_MASK			0X02000000
+
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR5_SHIFT		24
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR5_WIDTH		1
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR5_MASK		0X01000000
+
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR4_SHIFT		23
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR4_WIDTH		1
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR4_MASK		0X800000
+
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR3_SHIFT		22
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR3_WIDTH		1
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR3_MASK		0X400000
+
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR2_SHIFT		21
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR2_WIDTH		1
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR2_MASK		0X200000
+
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR1_SHIFT		20
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR1_WIDTH		1
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR1_MASK		0X100000
+
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR0_SHIFT		19
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR0_WIDTH		1
+#define XDPDMA_EIMR_DSCR_WR_AXI_ERR0_MASK		0X80000
+
+#define XDPDMA_EIMR_DSCR_CRC_ERR5_SHIFT			18
+#define XDPDMA_EIMR_DSCR_CRC_ERR5_WIDTH			1
+#define XDPDMA_EIMR_DSCR_CRC_ERR5_MASK			0X40000
+
+#define XDPDMA_EIMR_DSCR_CRC_ERR4_SHIFT			17
+#define XDPDMA_EIMR_DSCR_CRC_ERR4_WIDTH			1
+#define XDPDMA_EIMR_DSCR_CRC_ERR4_MASK			0X20000
+
+#define XDPDMA_EIMR_DSCR_CRC_ERR3_SHIFT			16
+#define XDPDMA_EIMR_DSCR_CRC_ERR3_WIDTH			1
+#define XDPDMA_EIMR_DSCR_CRC_ERR3_MASK			0X10000
+
+#define XDPDMA_EIMR_DSCR_CRC_ERR2_SHIFT			15
+#define XDPDMA_EIMR_DSCR_CRC_ERR2_WIDTH			1
+#define XDPDMA_EIMR_DSCR_CRC_ERR2_MASK			0X8000
+
+#define XDPDMA_EIMR_DSCR_CRC_ERR1_SHIFT			14
+#define XDPDMA_EIMR_DSCR_CRC_ERR1_WIDTH			1
+#define XDPDMA_EIMR_DSCR_CRC_ERR1_MASK			0X4000
+
+#define XDPDMA_EIMR_DSCR_CRC_ERR0_SHIFT			13
+#define XDPDMA_EIMR_DSCR_CRC_ERR0_WIDTH			1
+#define XDPDMA_EIMR_DSCR_CRC_ERR0_MASK			0X2000
+
+#define XDPDMA_EIMR_DSCR_PRE_ERR5_SHIFT			12
+#define XDPDMA_EIMR_DSCR_PRE_ERR5_WIDTH			1
+#define XDPDMA_EIMR_DSCR_PRE_ERR5_MASK			0X1000
+
+#define XDPDMA_EIMR_DSCR_PRE_ERR4_SHIFT			11
+#define XDPDMA_EIMR_DSCR_PRE_ERR4_WIDTH			1
+#define XDPDMA_EIMR_DSCR_PRE_ERR4_MASK			0X0800
+
+#define XDPDMA_EIMR_DSCR_PRE_ERR3_SHIFT			10
+#define XDPDMA_EIMR_DSCR_PRE_ERR3_WIDTH			1
+#define XDPDMA_EIMR_DSCR_PRE_ERR3_MASK			0X0400
+
+#define XDPDMA_EIMR_DSCR_PRE_ERR2_SHIFT			9
+#define XDPDMA_EIMR_DSCR_PRE_ERR2_WIDTH			1
+#define XDPDMA_EIMR_DSCR_PRE_ERR2_MASK			0X0200
+
+#define XDPDMA_EIMR_DSCR_PRE_ERR1_SHIFT			8
+#define XDPDMA_EIMR_DSCR_PRE_ERR1_WIDTH			1
+#define XDPDMA_EIMR_DSCR_PRE_ERR1_MASK			0X0100
+
+#define XDPDMA_EIMR_DSCR_PRE_ERR0_SHIFT			7
+#define XDPDMA_EIMR_DSCR_PRE_ERR0_WIDTH			1
+#define XDPDMA_EIMR_DSCR_PRE_ERR0_MASK			0X80
+
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR5_SHIFT		6
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR5_WIDTH		1
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR5_MASK		0X40
+
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR4_SHIFT		5
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR4_WIDTH		1
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR4_MASK		0X20
+
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR3_SHIFT		4
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR3_WIDTH		1
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR3_MASK		0X10
+
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR2_SHIFT		3
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR2_WIDTH		1
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR2_MASK		0X8
+
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR1_SHIFT		2
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR1_WIDTH		1
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR1_MASK		0X4
+
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR0_SHIFT		1
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR0_WIDTH		1
+#define XDPDMA_EIMR_DSCR_RD_AXI_ERR0_MASK		0X2
+
+#define XDPDMA_EIMR_INV_APB_SHIFT			0
+#define XDPDMA_EIMR_INV_APB_WIDTH			1
+#define XDPDMA_EIMR_INV_APB_MASK			0X1
+
+/**
+ * Register: XDPDMA_EIEN
+ */
+#define XDPDMA_EIEN					0X001C
+
+#define XDPDMA_EIEN_RD_CMD_FIFO_FULL_SHIFT		31
+#define XDPDMA_EIEN_RD_CMD_FIFO_FULL_WIDTH		1
+#define XDPDMA_EIEN_RD_CMD_FIFO_FULL_MASK		0X80000000
+
+#define XDPDMA_EIEN_DSCR_DONE_ERR5_SHIFT		30
+#define XDPDMA_EIEN_DSCR_DONE_ERR5_WIDTH		1
+#define XDPDMA_EIEN_DSCR_DONE_ERR5_MASK			0X40000000
+
+#define XDPDMA_EIEN_DSCR_DONE_ERR4_SHIFT		29
+#define XDPDMA_EIEN_DSCR_DONE_ERR4_WIDTH		1
+#define XDPDMA_EIEN_DSCR_DONE_ERR4_MASK			0X20000000
+
+#define XDPDMA_EIEN_DSCR_DONE_ERR3_SHIFT		28
+#define XDPDMA_EIEN_DSCR_DONE_ERR3_WIDTH		1
+#define XDPDMA_EIEN_DSCR_DONE_ERR3_MASK			0X10000000
+
+#define XDPDMA_EIEN_DSCR_DONE_ERR2_SHIFT		27
+#define XDPDMA_EIEN_DSCR_DONE_ERR2_WIDTH		1
+#define XDPDMA_EIEN_DSCR_DONE_ERR2_MASK			0X08000000
+
+#define XDPDMA_EIEN_DSCR_DONE_ERR1_SHIFT		26
+#define XDPDMA_EIEN_DSCR_DONE_ERR1_WIDTH		1
+#define XDPDMA_EIEN_DSCR_DONE_ERR1_MASK			0X04000000
+
+#define XDPDMA_EIEN_DSCR_DONE_ERR0_SHIFT		25
+#define XDPDMA_EIEN_DSCR_DONE_ERR0_WIDTH		1
+#define XDPDMA_EIEN_DSCR_DONE_ERR0_MASK			0X02000000
+
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR5_SHIFT		24
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR5_WIDTH		1
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR5_MASK		0X01000000
+
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR4_SHIFT		23
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR4_WIDTH		1
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR4_MASK		0X800000
+
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR3_SHIFT		22
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR3_WIDTH		1
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR3_MASK		0X400000
+
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR2_SHIFT		21
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR2_WIDTH		1
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR2_MASK		0X200000
+
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR1_SHIFT		20
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR1_WIDTH		1
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR1_MASK		0X100000
+
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR0_SHIFT		19
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR0_WIDTH		1
+#define XDPDMA_EIEN_DSCR_WR_AXI_ERR0_MASK		0X80000
+
+#define XDPDMA_EIEN_DSCR_CRC_ERR5_SHIFT			18
+#define XDPDMA_EIEN_DSCR_CRC_ERR5_WIDTH			1
+#define XDPDMA_EIEN_DSCR_CRC_ERR5_MASK			0X40000
+
+#define XDPDMA_EIEN_DSCR_CRC_ERR4_SHIFT			17
+#define XDPDMA_EIEN_DSCR_CRC_ERR4_WIDTH			1
+#define XDPDMA_EIEN_DSCR_CRC_ERR4_MASK			0X20000
+
+#define XDPDMA_EIEN_DSCR_CRC_ERR3_SHIFT			16
+#define XDPDMA_EIEN_DSCR_CRC_ERR3_WIDTH			1
+#define XDPDMA_EIEN_DSCR_CRC_ERR3_MASK			0X10000
+
+#define XDPDMA_EIEN_DSCR_CRC_ERR2_SHIFT			15
+#define XDPDMA_EIEN_DSCR_CRC_ERR2_WIDTH			1
+#define XDPDMA_EIEN_DSCR_CRC_ERR2_MASK			0X8000
+
+#define XDPDMA_EIEN_DSCR_CRC_ERR1_SHIFT			14
+#define XDPDMA_EIEN_DSCR_CRC_ERR1_WIDTH			1
+#define XDPDMA_EIEN_DSCR_CRC_ERR1_MASK			0X4000
+
+#define XDPDMA_EIEN_DSCR_CRC_ERR0_SHIFT			13
+#define XDPDMA_EIEN_DSCR_CRC_ERR0_WIDTH			1
+#define XDPDMA_EIEN_DSCR_CRC_ERR0_MASK			0X2000
+
+#define XDPDMA_EIEN_DSCR_PRE_ERR5_SHIFT			12
+#define XDPDMA_EIEN_DSCR_PRE_ERR5_WIDTH			1
+#define XDPDMA_EIEN_DSCR_PRE_ERR5_MASK			0X1000
+
+#define XDPDMA_EIEN_DSCR_PRE_ERR4_SHIFT			11
+#define XDPDMA_EIEN_DSCR_PRE_ERR4_WIDTH			1
+#define XDPDMA_EIEN_DSCR_PRE_ERR4_MASK			0X0800
+
+#define XDPDMA_EIEN_DSCR_PRE_ERR3_SHIFT			10
+#define XDPDMA_EIEN_DSCR_PRE_ERR3_WIDTH			1
+#define XDPDMA_EIEN_DSCR_PRE_ERR3_MASK			0X0400
+
+#define XDPDMA_EIEN_DSCR_PRE_ERR2_SHIFT			9
+#define XDPDMA_EIEN_DSCR_PRE_ERR2_WIDTH			1
+#define XDPDMA_EIEN_DSCR_PRE_ERR2_MASK			0X0200
+
+#define XDPDMA_EIEN_DSCR_PRE_ERR1_SHIFT			8
+#define XDPDMA_EIEN_DSCR_PRE_ERR1_WIDTH			1
+#define XDPDMA_EIEN_DSCR_PRE_ERR1_MASK			0X0100
+
+#define XDPDMA_EIEN_DSCR_PRE_ERR0_SHIFT			7
+#define XDPDMA_EIEN_DSCR_PRE_ERR0_WIDTH			1
+#define XDPDMA_EIEN_DSCR_PRE_ERR0_MASK			0X80
+
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR5_SHIFT		6
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR5_WIDTH		1
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR5_MASK		0X40
+
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR4_SHIFT		5
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR4_WIDTH		1
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR4_MASK		0X20
+
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR3_SHIFT		4
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR3_WIDTH		1
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR3_MASK		0X10
+
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR2_SHIFT		3
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR2_WIDTH		1
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR2_MASK		0X8
+
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR1_SHIFT		2
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR1_WIDTH		1
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR1_MASK		0X4
+
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR0_SHIFT		1
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR0_WIDTH		1
+#define XDPDMA_EIEN_DSCR_RD_AXI_ERR0_MASK		0X2
+
+#define XDPDMA_EIEN_INV_APB_SHIFT			0
+#define XDPDMA_EIEN_INV_APB_WIDTH			1
+#define XDPDMA_EIEN_INV_APB_MASK			0X1
+
+/**
+ * Register: XDPDMA_EIDS
+ */
+#define XDPDMA_EIDS					0X0020
+
+#define XDPDMA_EIDS_RD_CMD_FIFO_FULL_SHIFT		31
+#define XDPDMA_EIDS_RD_CMD_FIFO_FULL_WIDTH		1
+#define XDPDMA_EIDS_RD_CMD_FIFO_FULL_MASK		0X80000000
+
+#define XDPDMA_EIDS_DSCR_DONE_ERR5_SHIFT		30
+#define XDPDMA_EIDS_DSCR_DONE_ERR5_WIDTH		1
+#define XDPDMA_EIDS_DSCR_DONE_ERR5_MASK			0X40000000
+
+#define XDPDMA_EIDS_DSCR_DONE_ERR4_SHIFT		29
+#define XDPDMA_EIDS_DSCR_DONE_ERR4_WIDTH		1
+#define XDPDMA_EIDS_DSCR_DONE_ERR4_MASK			0X20000000
+
+#define XDPDMA_EIDS_DSCR_DONE_ERR3_SHIFT		28
+#define XDPDMA_EIDS_DSCR_DONE_ERR3_WIDTH		1
+#define XDPDMA_EIDS_DSCR_DONE_ERR3_MASK			0X10000000
+
+#define XDPDMA_EIDS_DSCR_DONE_ERR2_SHIFT		27
+#define XDPDMA_EIDS_DSCR_DONE_ERR2_WIDTH		1
+#define XDPDMA_EIDS_DSCR_DONE_ERR2_MASK			0X08000000
+
+#define XDPDMA_EIDS_DSCR_DONE_ERR1_SHIFT		26
+#define XDPDMA_EIDS_DSCR_DONE_ERR1_WIDTH		1
+#define XDPDMA_EIDS_DSCR_DONE_ERR1_MASK			0X04000000
+
+#define XDPDMA_EIDS_DSCR_DONE_ERR0_SHIFT		25
+#define XDPDMA_EIDS_DSCR_DONE_ERR0_WIDTH		1
+#define XDPDMA_EIDS_DSCR_DONE_ERR0_MASK			0X02000000
+
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR5_SHIFT		24
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR5_WIDTH		1
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR5_MASK		0X01000000
+
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR4_SHIFT		23
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR4_WIDTH		1
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR4_MASK		0X800000
+
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR3_SHIFT		22
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR3_WIDTH		1
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR3_MASK		0X400000
+
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR2_SHIFT		21
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR2_WIDTH		1
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR2_MASK		0X200000
+
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR1_SHIFT		20
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR1_WIDTH		1
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR1_MASK		0X100000
+
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR0_SHIFT		19
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR0_WIDTH		1
+#define XDPDMA_EIDS_DSCR_WR_AXI_ERR0_MASK		0X80000
+
+#define XDPDMA_EIDS_DSCR_CRC_ERR5_SHIFT			18
+#define XDPDMA_EIDS_DSCR_CRC_ERR5_WIDTH			1
+#define XDPDMA_EIDS_DSCR_CRC_ERR5_MASK			0X40000
+
+#define XDPDMA_EIDS_DSCR_CRC_ERR4_SHIFT			17
+#define XDPDMA_EIDS_DSCR_CRC_ERR4_WIDTH			1
+#define XDPDMA_EIDS_DSCR_CRC_ERR4_MASK			0X20000
+
+#define XDPDMA_EIDS_DSCR_CRC_ERR3_SHIFT			16
+#define XDPDMA_EIDS_DSCR_CRC_ERR3_WIDTH			1
+#define XDPDMA_EIDS_DSCR_CRC_ERR3_MASK			0X10000
+
+#define XDPDMA_EIDS_DSCR_CRC_ERR2_SHIFT			15
+#define XDPDMA_EIDS_DSCR_CRC_ERR2_WIDTH			1
+#define XDPDMA_EIDS_DSCR_CRC_ERR2_MASK			0X8000
+
+#define XDPDMA_EIDS_DSCR_CRC_ERR1_SHIFT			14
+#define XDPDMA_EIDS_DSCR_CRC_ERR1_WIDTH			1
+#define XDPDMA_EIDS_DSCR_CRC_ERR1_MASK			0X4000
+
+#define XDPDMA_EIDS_DSCR_CRC_ERR0_SHIFT			13
+#define XDPDMA_EIDS_DSCR_CRC_ERR0_WIDTH			1
+#define XDPDMA_EIDS_DSCR_CRC_ERR0_MASK			0X2000
+
+#define XDPDMA_EIDS_DSCR_PRE_ERR5_SHIFT			12
+#define XDPDMA_EIDS_DSCR_PRE_ERR5_WIDTH			1
+#define XDPDMA_EIDS_DSCR_PRE_ERR5_MASK			0X1000
+
+#define XDPDMA_EIDS_DSCR_PRE_ERR4_SHIFT			11
+#define XDPDMA_EIDS_DSCR_PRE_ERR4_WIDTH			1
+#define XDPDMA_EIDS_DSCR_PRE_ERR4_MASK			0X0800
+
+#define XDPDMA_EIDS_DSCR_PRE_ERR3_SHIFT			10
+#define XDPDMA_EIDS_DSCR_PRE_ERR3_WIDTH			1
+#define XDPDMA_EIDS_DSCR_PRE_ERR3_MASK			0X0400
+
+#define XDPDMA_EIDS_DSCR_PRE_ERR2_SHIFT			9
+#define XDPDMA_EIDS_DSCR_PRE_ERR2_WIDTH			1
+#define XDPDMA_EIDS_DSCR_PRE_ERR2_MASK			0X0200
+
+#define XDPDMA_EIDS_DSCR_PRE_ERR1_SHIFT			8
+#define XDPDMA_EIDS_DSCR_PRE_ERR1_WIDTH			1
+#define XDPDMA_EIDS_DSCR_PRE_ERR1_MASK			0X0100
+
+#define XDPDMA_EIDS_DSCR_PRE_ERR0_SHIFT			7
+#define XDPDMA_EIDS_DSCR_PRE_ERR0_WIDTH			1
+#define XDPDMA_EIDS_DSCR_PRE_ERR0_MASK			0X80
+
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR5_SHIFT		6
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR5_WIDTH		1
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR5_MASK		0X40
+
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR4_SHIFT		5
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR4_WIDTH		1
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR4_MASK		0X20
+
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR3_SHIFT		4
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR3_WIDTH		1
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR3_MASK		0X10
+
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR2_SHIFT		3
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR2_WIDTH		1
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR2_MASK		0X8
+
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR1_SHIFT		2
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR1_WIDTH		1
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR1_MASK		0X4
+
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR0_SHIFT		1
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR0_WIDTH		1
+#define XDPDMA_EIDS_DSCR_RD_AXI_ERR0_MASK		0X2
+
+#define XDPDMA_EIDS_INV_APB_SHIFT			0
+#define XDPDMA_EIDS_INV_APB_WIDTH			1
+#define XDPDMA_EIDS_INV_APB_MASK			0X1
+
+/**
+ * Register: XDPDMA_CNTL
+ */
+#define XDPDMA_CNTL					0X0100
+
+/**
+ * Register: XDPDMA_GBL
+ */
+#define XDPDMA_GBL					0X0104
+
+#define XDPDMA_GBL_RTRG_CH5_SHIFT			11
+#define XDPDMA_GBL_RTRG_CH5_WIDTH			1
+#define XDPDMA_GBL_RTRG_CH5_MASK			0X0800
+
+#define XDPDMA_GBL_RTRG_CH4_SHIFT			10
+#define XDPDMA_GBL_RTRG_CH4_WIDTH			1
+#define XDPDMA_GBL_RTRG_CH4_MASK			0X0400
+
+#define XDPDMA_GBL_RTRG_CH3_SHIFT			9
+#define XDPDMA_GBL_RTRG_CH3_WIDTH			1
+#define XDPDMA_GBL_RTRG_CH3_MASK			0X0200
+
+#define XDPDMA_GBL_RTRG_CH2_SHIFT			8
+#define XDPDMA_GBL_RTRG_CH2_WIDTH			1
+#define XDPDMA_GBL_RTRG_CH2_MASK			0X0100
+
+#define XDPDMA_GBL_RTRG_CH1_SHIFT			7
+#define XDPDMA_GBL_RTRG_CH1_WIDTH			1
+#define XDPDMA_GBL_RTRG_CH1_MASK			0X80
+
+#define XDPDMA_GBL_RTRG_CH0_SHIFT			6
+#define XDPDMA_GBL_RTRG_CH0_WIDTH			1
+#define XDPDMA_GBL_RTRG_CH0_MASK			0X40
+
+#define XDPDMA_GBL_TRG_CH5_SHIFT			5
+#define XDPDMA_GBL_TRG_CH5_WIDTH			1
+#define XDPDMA_GBL_TRG_CH5_MASK				0X20
+
+#define XDPDMA_GBL_TRG_CH4_SHIFT			4
+#define XDPDMA_GBL_TRG_CH4_WIDTH			1
+#define XDPDMA_GBL_TRG_CH4_MASK				0X10
+
+#define XDPDMA_GBL_TRG_CH3_SHIFT			3
+#define XDPDMA_GBL_TRG_CH3_WIDTH			1
+#define XDPDMA_GBL_TRG_CH3_MASK				0X8
+
+#define XDPDMA_GBL_TRG_CH2_SHIFT			2
+#define XDPDMA_GBL_TRG_CH2_WIDTH			1
+#define XDPDMA_GBL_TRG_CH2_MASK				0X4
+
+#define XDPDMA_GBL_TRG_CH1_SHIFT			1
+#define XDPDMA_GBL_TRG_CH1_WIDTH			1
+#define XDPDMA_GBL_TRG_CH1_MASK				0X2
+
+#define XDPDMA_GBL_TRG_CH0_SHIFT			0
+#define XDPDMA_GBL_TRG_CH0_WIDTH			1
+#define XDPDMA_GBL_TRG_CH0_MASK				0X1
+
+/**
+ * Register: XDPDMA_CH0_DSCR_STRT_ADDRE
+ */
+#define XDPDMA_CH0_DSCR_STRT_ADDRE			0X0200
+
+/**
+ * Register: XDPDMA_CH0_DSCR_STRT_ADDR
+ */
+#define XDPDMA_CH0_DSCR_STRT_ADDR			0X0204
+
+/**
+ * Register: XDPDMA_CH0_DSCR_NEXT_ADDRE
+ */
+#define XDPDMA_CH0_DSCR_NEXT_ADDRE			0X0208
+
+/**
+ * Register: XDPDMA_CH0_DSCR_NEXT_ADDR
+ */
+#define XDPDMA_CH0_DSCR_NEXT_ADDR			0X020C
+
+/**
+ * Register: XDPDMA_CH0_PYLD_CUR_ADDRE
+ */
+#define XDPDMA_CH0_PYLD_CUR_ADDRE			0X0210
+
+/**
+ * Register: XDPDMA_CH0_PYLD_CUR_ADDR
+ */
+#define XDPDMA_CH0_PYLD_CUR_ADDR			0X0214
+
+/**
+ * Register: XDPDMA_CH0_CNTL
+ */
+#define XDPDMA_CH0_CNTL					0X0218
+
+#define XDPDMA_CNTL_QOS_VIDEO				0x11
+
+/**
+ * Register: XDPDMA_CH0_STATUS
+ */
+#define XDPDMA_CH0_STATUS				0X021C
+
+/**
+ * Register: XDPDMA_CH0_VDO
+ */
+#define XDPDMA_CH0_VDO					0X0220
+
+/**
+ * Register: XDPDMA_CH0_PYLD_SZ
+ */
+#define XDPDMA_CH0_PYLD_SZ				0X0224
+
+/**
+ * Register: XDPDMA_CH0_DSCR_ID
+ */
+#define XDPDMA_CH0_DSCR_ID				0X0228
+
+/**
+ * Register: XDPDMA_CH1_DSCR_STRT_ADDRE
+ */
+#define XDPDMA_CH1_DSCR_STRT_ADDRE			0X0300
+
+/**
+ * Register: XDPDMA_CH1_DSCR_STRT_ADDR
+ */
+#define XDPDMA_CH1_DSCR_STRT_ADDR			0X0304
+
+/**
+ * Register: XDPDMA_CH1_DSCR_NEXT_ADDRE
+ */
+#define XDPDMA_CH1_DSCR_NEXT_ADDRE			0X0308
+
+/**
+ * Register: XDPDMA_CH1_DSCR_NEXT_ADDR
+ */
+#define XDPDMA_CH1_DSCR_NEXT_ADDR			0X030C
+
+/**
+ * Register: XDPDMA_CH1_PYLD_CUR_ADDRE
+ */
+#define XDPDMA_CH1_PYLD_CUR_ADDRE			0X0310
+
+/**
+ * Register: XDPDMA_CH1_PYLD_CUR_ADDR
+ */
+#define XDPDMA_CH1_PYLD_CUR_ADDR			0X0314
+
+/**
+ * Register: XDPDMA_CH1_CNTL
+ */
+#define XDPDMA_CH1_CNTL					0X0318
+/**
+ * Register: XDPDMA_CH1_STATUS
+ */
+#define XDPDMA_CH1_STATUS				0X031C
+
+/**
+ * Register: XDPDMA_CH1_VDO
+ */
+#define XDPDMA_CH1_VDO					0X0320
+
+/**
+ * Register: XDPDMA_CH1_PYLD_SZ
+ */
+#define XDPDMA_CH1_PYLD_SZ				0X0324
+
+/**
+ * Register: XDPDMA_CH1_DSCR_ID
+ */
+#define XDPDMA_CH1_DSCR_ID				0X0328
+
+/**
+ * Register: XDPDMA_CH2_DSCR_STRT_ADDRE
+ */
+#define XDPDMA_CH2_DSCR_STRT_ADDRE			0X0400
+
+/**
+ * Register: XDPDMA_CH2_DSCR_STRT_ADDR
+ */
+#define XDPDMA_CH2_DSCR_STRT_ADDR			0X0404
+
+/**
+ * Register: XDPDMA_CH2_DSCR_NEXT_ADDRE
+ */
+#define XDPDMA_CH2_DSCR_NEXT_ADDRE			0X0408
+
+/**
+ * Register: XDPDMA_CH2_DSCR_NEXT_ADDR
+ */
+#define XDPDMA_CH2_DSCR_NEXT_ADDR			0X040C
+
+/**
+ * Register: XDPDMA_CH2_PYLD_CUR_ADDRE
+ */
+#define XDPDMA_CH2_PYLD_CUR_ADDRE			0X0410
+
+/**
+ * Register: XDPDMA_CH2_PYLD_CUR_ADDR
+ */
+#define XDPDMA_CH2_PYLD_CUR_ADDR			0X0414
+
+/**
+ * Register: XDPDMA_CH2_CNTL
+ */
+#define XDPDMA_CH2_CNTL					0X0418
+
+/**
+ * Register: XDPDMA_CH2_STATUS
+ */
+#define XDPDMA_CH2_STATUS				0X041C
+
+/**
+ * Register: XDPDMA_CH2_VDO
+ */
+#define XDPDMA_CH2_VDO					0X0420
+
+/**
+ * Register: XDPDMA_CH2_PYLD_SZ
+ */
+#define XDPDMA_CH2_PYLD_SZ				0X0424
+
+/**
+ * Register: XDPDMA_CH2_DSCR_ID
+ */
+#define XDPDMA_CH2_DSCR_ID				0X0428
+
+/**
+ * Register: XDPDMA_CH3_DSCR_STRT_ADDRE
+ */
+#define XDPDMA_CH3_DSCR_STRT_ADDRE			0X0500
+
+/**
+ * Register: XDPDMA_CH3_DSCR_STRT_ADDR
+ */
+#define XDPDMA_CH3_DSCR_STRT_ADDR			0X0504
+
+/**
+ * Register: XDPDMA_CH3_DSCR_NEXT_ADDRE
+ */
+#define XDPDMA_CH3_DSCR_NEXT_ADDRE			0X0508
+
+/**
+ * Register: XDPDMA_CH3_DSCR_NEXT_ADDR
+ */
+#define XDPDMA_CH3_DSCR_NEXT_ADDR			0X050C
+
+/**
+ * Register: XDPDMA_CH3_PYLD_CUR_ADDRE
+ */
+#define XDPDMA_CH3_PYLD_CUR_ADDRE			0X0510
+
+/**
+ * Register: XDPDMA_CH3_PYLD_CUR_ADDR
+ */
+#define XDPDMA_CH3_PYLD_CUR_ADDR			0X0514
+
+/**
+ * Register: XDPDMA_CH3_CNTL
+ */
+#define XDPDMA_CH3_CNTL					0X0518
+/**
+ * Register: XDPDMA_CH3_STATUS
+ */
+#define XDPDMA_CH3_STATUS				0X051C
+
+/**
+ * Register: XDPDMA_CH3_VDO
+ */
+#define XDPDMA_CH3_VDO					0X0520
+
+/**
+ * Register: XDPDMA_CH3_PYLD_SZ
+ */
+#define XDPDMA_CH3_PYLD_SZ				0X0524
+
+/**
+ * Register: XDPDMA_CH3_DSCR_ID
+ */
+#define XDPDMA_CH3_DSCR_ID				0X0528
+
+/**
+ * Register: XDPDMA_CH4_DSCR_STRT_ADDRE
+ */
+#define XDPDMA_CH4_DSCR_STRT_ADDRE			0X0600
+
+/**
+ * Register: XDPDMA_CH4_DSCR_STRT_ADDR
+ */
+#define XDPDMA_CH4_DSCR_STRT_ADDR			0X0604
+/**
+ * Register: XDPDMA_CH4_DSCR_NEXT_ADDRE
+ */
+#define XDPDMA_CH4_DSCR_NEXT_ADDRE			0X0608
+
+/**
+ * Register: XDPDMA_CH4_DSCR_NEXT_ADDR
+ */
+#define XDPDMA_CH4_DSCR_NEXT_ADDR			0X060C
+
+/**
+ * Register: XDPDMA_CH4_PYLD_CUR_ADDRE
+ */
+#define XDPDMA_CH4_PYLD_CUR_ADDRE			0X0610
+
+/**
+ * Register: XDPDMA_CH4_PYLD_CUR_ADDR
+ */
+#define XDPDMA_CH4_PYLD_CUR_ADDR			0X0614
+
+/**
+ * Register: XDPDMA_CH4_CNTL
+ */
+#define XDPDMA_CH4_CNTL					0X0618
+
+/**
+ * Register: XDPDMA_CH4_STATUS
+ */
+#define XDPDMA_CH4_STATUS				0X061C
+
+/**
+ * Register: XDPDMA_CH4_VDO
+ */
+#define XDPDMA_CH4_VDO					0X0620
+
+/**
+ * Register: XDPDMA_CH4_PYLD_SZ
+ */
+#define XDPDMA_CH4_PYLD_SZ				0X0624
+
+/**
+ * Register: XDPDMA_CH4_DSCR_ID
+ */
+#define XDPDMA_CH4_DSCR_ID				0X0628
+
+/**
+ * Register: XDPDMA_CH5_DSCR_STRT_ADDRE
+ */
+#define XDPDMA_CH5_DSCR_STRT_ADDRE			0X0700
+
+/**
+ * Register: XDPDMA_CH5_DSCR_STRT_ADDR
+ */
+#define XDPDMA_CH5_DSCR_STRT_ADDR			0X0704
+
+/**
+ * Register: XDPDMA_CH5_DSCR_NEXT_ADDRE
+ */
+#define XDPDMA_CH5_DSCR_NEXT_ADDRE			0X0708
+
+/**
+ * Register: XDPDMA_CH5_DSCR_NEXT_ADDR
+ */
+#define XDPDMA_CH5_DSCR_NEXT_ADDR			0X070C
+
+/**
+ * Register: XDPDMA_CH5_PYLD_CUR_ADDRE
+ */
+#define XDPDMA_CH5_PYLD_CUR_ADDRE			0X0710
+
+/**
+ * Register: XDPDMA_CH5_PYLD_CUR_ADDR
+ */
+#define XDPDMA_CH5_PYLD_CUR_ADDR			0X0714
+
+/**
+ * Register: XDPDMA_CH5_CNTL
+ */
+#define XDPDMA_CH5_CNTL					0X0718
+
+/**
+ * Register: XDPDMA_CH5_STATUS
+ */
+#define XDPDMA_CH5_STATUS				0X071C
+
+/**
+ * Register: XDPDMA_CH5_VDO
+ */
+#define XDPDMA_CH5_VDO					0X0720
+
+/**
+ * Register: XDPDMA_CH5_PYLD_SZ
+ */
+#define XDPDMA_CH5_PYLD_SZ				0X0724
+
+/**
+ * Register: XDPDMA_CH5_DSCR_ID
+ */
+#define XDPDMA_CH5_DSCR_ID				0X0728
+
+
+#define XDPDMA_CH_DSCR_STRT_ADDRE_MSB_SHIFT		0
+#define XDPDMA_CH_DSCR_STRT_ADDRE_MSB_WIDTH		16
+#define XDPDMA_CH_DSCR_STRT_ADDRE_MSB_MASK		0XFFFF
+
+
+#define XDPDMA_CH_DSCR_STRT_ADDR_LSB_SHIFT		0
+#define XDPDMA_CH_DSCR_STRT_ADDR_LSB_WIDTH		32
+#define XDPDMA_CH_DSCR_STRT_ADDR_LSB_MASK		0XFFFFFFFF
+
+
+#define XDPDMA_CH_DSCR_NEXT_ADDRE_MSB_SHIFT		0
+#define XDPDMA_CH_DSCR_NEXT_ADDRE_MSB_WIDTH		16
+#define XDPDMA_CH_DSCR_NEXT_ADDRE_MSB_MASK		0XFFFF
+
+
+#define XDPDMA_CH_DSCR_NEXT_ADDR_LSB_SHIFT		0
+#define XDPDMA_CH_DSCR_NEXT_ADDR_LSB_WIDTH		32
+#define XDPDMA_CH_DSCR_NEXT_ADDR_LSB_MASK		0XFFFFFFFF
+
+
+#define XDPDMA_CH_PYLD_CUR_ADDRE_MSB_SHIFT		0
+#define XDPDMA_CH_PYLD_CUR_ADDRE_MSB_WIDTH		16
+#define XDPDMA_CH_PYLD_CUR_ADDRE_MSB_MASK		0XFFFF
+
+#define XDPDMA_CH_PYLD_CUR_ADDR_LSB_SHIFT		0
+#define XDPDMA_CH_PYLD_CUR_ADDR_LSB_WIDTH		32
+#define XDPDMA_CH_PYLD_CUR_ADDR_LSB_MASK		0XFFFFFFFF
+
+#define XDPDMA_CH_CNTL_DSCR_AXCACHE_SHIFT		16
+#define XDPDMA_CH_CNTL_DSCR_AXCACHE_WIDTH		4
+#define XDPDMA_CH_CNTL_DSCR_AXCACHE_MASK		0XF0000
+
+#define XDPDMA_CH_CNTL_DSCR_AXPROT_SHIFT		14
+#define XDPDMA_CH_CNTL_DSCR_AXPROT_WIDTH		2
+#define XDPDMA_CH_CNTL_DSCR_AXPROT_MASK			0XC000
+
+#define XDPDMA_CH_CNTL_QOS_DATA_RD_SHIFT		10
+#define XDPDMA_CH_CNTL_QOS_DATA_RD_WIDTH		4
+#define XDPDMA_CH_CNTL_QOS_DATA_RD_MASK			0X3C00
+
+#define XDPDMA_CH_CNTL_QOS_DSCR_RD_SHIFT		6
+#define XDPDMA_CH_CNTL_QOS_DSCR_RD_WIDTH		4
+#define XDPDMA_CH_CNTL_QOS_DSCR_RD_MASK			0X03C0
+
+#define XDPDMA_CH_CNTL_QOS_DSCR_WR_SHIFT		2
+#define XDPDMA_CH_CNTL_QOS_DSCR_WR_WIDTH		4
+#define XDPDMA_CH_CNTL_QOS_DSCR_WR_MASK			0X3C
+
+#define XDPDMA_CH_CNTL_PAUSE_SHIFT			1
+#define XDPDMA_CH_CNTL_PAUSE_WIDTH			1
+#define XDPDMA_CH_CNTL_PAUSE_MASK			0X2
+
+#define XDPDMA_CH_CNTL_EN_SHIFT				0
+#define XDPDMA_CH_CNTL_EN_WIDTH				1
+#define XDPDMA_CH_CNTL_EN_MASK				0X1
+
+
+#define XDPDMA_CH_STATUS_OTRAN_CNT_SHIFT		21
+#define XDPDMA_CH_STATUS_OTRAN_CNT_WIDTH		4
+#define XDPDMA_CH_STATUS_OTRAN_CNT_MASK			0X01E00000
+
+#define XDPDMA_CH_STATUS_PREAMBLE_SHIFT			13
+#define XDPDMA_CH_STATUS_PREAMBLE_WIDTH			8
+#define XDPDMA_CH_STATUS_PREAMBLE_MASK			0X1FE000
+
+#define XDPDMA_CH_STATUS_EN_DSCR_INTR_SHIFT		12
+#define XDPDMA_CH_STATUS_EN_DSCR_INTR_WIDTH		1
+#define XDPDMA_CH_STATUS_EN_DSCR_INTR_MASK		0X1000
+
+#define XDPDMA_CH_STATUS_EN_DSCR_UP_SHIFT		11
+#define XDPDMA_CH_STATUS_EN_DSCR_UP_WIDTH		1
+#define XDPDMA_CH_STATUS_EN_DSCR_UP_MASK		0X0800
+
+#define XDPDMA_CH_STATUS_DSCR_DONE_SHIFT		10
+#define XDPDMA_CH_STATUS_DSCR_DONE_WIDTH		1
+#define XDPDMA_CH_STATUS_DSCR_DONE_MASK			0X0400
+
+#define XDPDMA_CH_STATUS_IGNR_DONE_SHIFT		9
+#define XDPDMA_CH_STATUS_IGNR_DONE_WIDTH		1
+#define XDPDMA_CH_STATUS_IGNR_DONE_MASK			0X0200
+
+#define XDPDMA_CH_STATUS_LDSCR_FRAME_SHIFT		8
+#define XDPDMA_CH_STATUS_LDSCR_FRAME_WIDTH		1
+#define XDPDMA_CH_STATUS_LDSCR_FRAME_MASK		0X0100
+
+#define XDPDMA_CH_STATUS_LAST_DSCR_SHIFT		7
+#define XDPDMA_CH_STATUS_LAST_DSCR_WIDTH		1
+#define XDPDMA_CH_STATUS_LAST_DSCR_MASK			0X80
+
+#define XDPDMA_CH_STATUS_EN_CRC_SHIFT			6
+#define XDPDMA_CH_STATUS_EN_CRC_WIDTH			1
+#define XDPDMA_CH_STATUS_EN_CRC_MASK			0X40
+
+#define XDPDMA_CH_STATUS_MODE_SHIFT			5
+#define XDPDMA_CH_STATUS_MODE_WIDTH			1
+#define XDPDMA_CH_STATUS_MODE_MASK			0X20
+
+#define XDPDMA_CH_STATUS_BURST_TYPE_SHIFT		4
+#define XDPDMA_CH_STATUS_BURST_TYPE_WIDTH		1
+#define XDPDMA_CH_STATUS_BURST_TYPE_MASK		0X10
+
+#define XDPDMA_CH_STATUS_BURST_LEN_SHIFT		0
+#define XDPDMA_CH_STATUS_BURST_LEN_WIDTH		4
+#define XDPDMA_CH_STATUS_BURST_LEN_MASK			0XF
+
+
+#define XDPDMA_CH_VDO_LINE_LENGTH_SHIFT			14
+#define XDPDMA_CH_VDO_LINE_LENGTH_WIDTH			18
+#define XDPDMA_CH_VDO_LINE_LENGTH_MASK			0XFFFFC000
+
+#define XDPDMA_CH_VDO_STRIDE_SHIFT			0
+#define XDPDMA_CH_VDO_STRIDE_WIDTH			14
+#define XDPDMA_CH_VDO_STRIDE_MASK			0X3FFF
+
+#define XDPDMA_CH_PYLD_SZ_BYTE_SHIFT			0
+#define XDPDMA_CH_PYLD_SZ_BYTE_WIDTH			32
+#define XDPDMA_CH_PYLD_SZ_BYTE_MASK			0XFFFFFFFF
+
+#define XDPDMA_CH_DSCR_ID_VAL_SHIFT			0
+#define XDPDMA_CH_DSCR_ID_VAL_WIDTH			16
+#define XDPDMA_CH_DSCR_ID_VAL_MASK			0XFFFF
+
+/**
+ * Register: XDPDMA_ECO
+ */
+#define XDPDMA_ECO					0X0FFC
+
+#define XDPDMA_ECO_VAL_SHIFT				0
+#define XDPDMA_ECO_VAL_WIDTH				32
+#define XDPDMA_ECO_VAL_MASK				0XFFFFFFFF
+
+/**
+ * DPDMA descriptor
+ */
+
+#define XDPDMA_DESCRIPTOR_CONTROL_PREAMBLE_SHIFT		0
+#define XDPDMA_DESCRIPTOR_CONTROL_PREAMBLE_WIDTH		8
+#define XDPDMA_DESCRIPTOR_CONTROL_PREAMBLE_MASK			0XFF
+
+#define XDPDMA_DESCRIPTOR_CONTROL_EN_COMP_INTR_SHIFT		8
+#define XDPDMA_DESCRIPTOR_CONTROL_EN_COMP_INTR_WIDTH		1
+#define XDPDMA_DESCRIPTOR_CONTROL_EN_COMP_INTR_MASK		0X0100
+
+#define XDPDMA_DESCRIPTOR_CONTROL_EN_DESC_UPDATE_SHIFT		9
+#define XDPDMA_DESCRIPTOR_CONTROL_EN_DESC_UPDATE_WIDTH		1
+#define XDPDMA_DESCRIPTOR_CONTROL_EN_DESC_UPDATE_MASK		0X0200
+
+#define XDPDMA_DESCRIPTOR_CONTROL_IGNORE_DONE_SHIFT		10
+#define XDPDMA_DESCRIPTOR_CONTROL_IGNORE_DONE_WIDTH		1
+#define XDPDMA_DESCRIPTOR_CONTROL_IGNORE_DONE_MASK		0X0400
+
+#define XDPDMA_DESCRIPTOR_CONTROL_AXI_BURST_TYPE_SHIFT		11
+#define XDPDMA_DESCRIPTOR_CONTROL_AXI_BURST_TYPE_WIDTH		1
+#define XDPDMA_DESCRIPTOR_CONTROL_AXI_BURST_TYPE_MASK		0X0800
+
+#define XDPDMA_DESCRIPTOR_CONTROL_AXACACHE_SHIFT		12
+#define XDPDMA_DESCRIPTOR_CONTROL_AXACACHE_WIDTH		4
+#define XDPDMA_DESCRIPTOR_CONTROL_AXACACHE_MASK			0XF000
+
+#define XDPDMA_DESCRIPTOR_CONTROL_AXPROT_SHIFT			16
+#define XDPDMA_DESCRIPTOR_CONTROL_AXPROT_WIDTH			2
+#define XDPDMA_DESCRIPTOR_CONTROL_AXPROT_MASK			0X30000
+
+#define XDPDMA_DESCRIPTOR_CONTROL_MODE_SHIFT			18
+#define XDPDMA_DESCRIPTOR_CONTROL_MODE_WIDTH			1
+#define XDPDMA_DESCRIPTOR_CONTROL_MODE_MASK			0X40000
+
+#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_SHIFT		19
+#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_WIDTH		1
+#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_MASK		0X80000
+
+#define XDPDMA_DESCRIPTOR_CONTROL_ENABLE_CRC_SHIFT		20
+#define XDPDMA_DESCRIPTOR_CONTROL_ENABLE_CRC_WIDTH		1
+#define XDPDMA_DESCRIPTOR_CONTROL_ENABLE_CRC_MASK		0x00100000
+
+#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_FRAME_SHIFT		21
+#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_FRAME_WIDTH		1
+#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_FRAME_MASK		0X200000
+
+#define XDPDMA_DESCRIPTOR_DSCR_ID_SHIFT				0
+#define XDPDMA_DESCRIPTOR_DSCR_ID_WIDTH				16
+#define XDPDMA_DESCRIPTOR_DSCR_ID_MASK				0XFFFF
+
+#define XDPDMA_DESCRIPTOR_XFER_SIZE_SHIFT			0
+#define XDPDMA_DESCRIPTOR_XFER_SIZE_WIDTH			32
+#define XDPDMA_DESCRIPTOR_XFER_SIZE_MASK			0x0000FFFF
+
+#define XDPDMA_DESCRIPTOR_LINE_SIZE_HZ_RES_SHIFT		0
+#define XDPDMA_DESCRIPTOR_LINE_SIZE_HZ_RES_WIDTH		18
+#define XDPDMA_DESCRIPTOR_LINE_SIZE_HZ_RES_MASK			0X3FFFF
+
+#define XDPDMA_DESCRIPTOR_LINE_SIZE_STRIDE_SHIFT		18
+#define XDPDMA_DESCRIPTOR_LINE_SIZE_STRIDE_WIDTH		14
+#define XDPDMA_DESCRIPTOR_LINE_SIZE_STRIDE_MASK			0XFFFC0000
+
+#define XDPDMA_DESCRIPTOR_TS_LSB_SHIFT				0
+#define XDPDMA_DESCRIPTOR_TS_LSB_WIDTH				32
+#define XDPDMA_DESCRIPTOR_TS_LSB_MASK				0XFFFFFFFF
+
+#define XDPDMA_DESCRIPTOR_TS_MSB_SHIFT				0
+#define XDPDMA_DESCRIPTOR_TS_MSB_WIDTH				32
+#define XDPDMA_DESCRIPTOR_TS_MSB_MASK				0XFFFFFFFF
+
+#define XDPDMA_DESCRIPTOR_TS_MSB_TS_SHIFT			0
+#define XDPDMA_DESCRIPTOR_TS_MSB_TS_WIDTH			9
+#define XDPDMA_DESCRIPTOR_TS_MSB_TS_MASK			0X01FF
+
+#define XDPDMA_DESCRIPTOR_TS_MSB_STATUS_SHIFT			31
+#define XDPDMA_DESCRIPTOR_TS_MSB_STATUS_WIDTH			1
+#define XDPDMA_DESCRIPTOR_TS_MSB_STATUS_MASK			0X80000000
+
+#define XDPDMA_DESCRIPTOR_ADDR_EXT_DSC_NXT_SHIFT		0
+#define XDPDMA_DESCRIPTOR_ADDR_EXT_DSC_NXT_WIDTH		16
+#define XDPDMA_DESCRIPTOR_ADDR_EXT_DSC_NXT_MASK			0XFFFF
+
+#define XDPDMA_DESCRIPTOR_ADDR_EXT_SRC_ADDR_EXT_SHIFT		16
+#define XDPDMA_DESCRIPTOR_ADDR_EXT_SRC_ADDR_EXT_WIDTH		16
+#define XDPDMA_DESCRIPTOR_ADDR_EXT_SRC_ADDR_EXT_MASK		0XFFFF0000
+
+#define XDPDMA_DESCRIPTOR_ADDR_EXT23_2_SHIFT			0
+#define XDPDMA_DESCRIPTOR_ADDR_EXT23_2_WIDTH			16
+#define XDPDMA_DESCRIPTOR_ADDR_EXT23_2_MASK			0XFFFF
+
+#define XDPDMA_DESCRIPTOR_ADDR_EXT23_3_SHIFT			16
+#define XDPDMA_DESCRIPTOR_ADDR_EXT23_3_WIDTH			16
+#define XDPDMA_DESCRIPTOR_ADDR_EXT23_3_MASK			0xFFFF0000
+
+#define XDPDMA_DESCRIPTOR_ADDR_EXT45_4_SHIFT			0
+#define XDPDMA_DESCRIPTOR_ADDR_EXT45_4_WIDTH			16
+#define XDPDMA_DESCRIPTOR_ADDR_EXT45_4_MASK			0XFFFF
+
+#define XDPDMA_DESCRIPTOR_ADDR_EXT45_5_SHIFT			16
+#define XDPDMA_DESCRIPTOR_ADDR_EXT45_5_WIDTH			16
+#define XDPDMA_DESCRIPTOR_ADDR_EXT45_5_MASK			0XFFFF0000
+
+#define XDPDMA_DESCRIPTOR_NEXT_DESR_SHIFT			0
+#define XDPDMA_DESCRIPTOR_NEXT_DESR_WIDTH			32
+#define XDPDMA_DESCRIPTOR_NEXT_DESR_MASK			0XFFFFFFFF
+
+#define XDPDMA_DESCRIPTOR_SRC_ADDR_SHIFT			0
+#define XDPDMA_DESCRIPTOR_SRC_ADDR_WIDTH			32
+#define XDPDMA_DESCRIPTOR_SRC_ADDR_MASK				0XFFFFFFFF
+
+#define XDPDMA_DESCRIPTOR_SRC_ADDR2_SHIFT			0
+#define XDPDMA_DESCRIPTOR_SRC_ADDR2_WIDTH			32
+#define XDPDMA_DESCRIPTOR_SRC_ADDR2_MASK			0XFFFFFFFF
+
+#define XDPDMA_DESCRIPTOR_SRC_ADDR3_SHIFT			0
+#define XDPDMA_DESCRIPTOR_SRC_ADDR3_WIDTH			32
+#define XDPDMA_DESCRIPTOR_SRC_ADDR3_MASK			0XFFFFFFFF
+
+#define XDPDMA_DESCRIPTOR_SRC_ADDR4_SHIFT			0
+#define XDPDMA_DESCRIPTOR_SRC_ADDR4_WIDTH			32
+#define XDPDMA_DESCRIPTOR_SRC_ADDR4_MASK			0XFFFFFFFF
+
+#define XDPDMA_DESCRIPTOR_SRC_ADDR5_SHIFT			0
+#define XDPDMA_DESCRIPTOR_SRC_ADDR5_WIDTH			32
+#define XDPDMA_DESCRIPTOR_SRC_ADDR5_MASK			0XFFFFFFFF
+
+#define XDPDMA_TRIGGER_EN					1
+#define XDPDMA_RETRIGGER_EN					2
+#define XDPDMA_TRIGGER_DONE					0
+#define XDPDMA_RETRIGGER_DONE					0
+/* @} */
+
+/******************* Macros (Inline Functions Definitions ********************/
+
+/** @name Register access macro definitions.
+  * @{
+  */
+#define XDpDma_In32 Xil_In32
+#define XDpDma_Out32 Xil_Out32
+/* @} */
+
+/******************************************************************************/
+/**
+ * This is a low-level function that reads from the specified register.
+ *
+ * @param	BaseAddress is the base address of the device.
+ * @param	RegOffset is the register offset to be read from.
+ *
+ * @return	The 32-bit value of the specified register.
+ *
+ * @note	C-style signature:
+ *		u32 XDpDma_ReadReg(u32 BaseAddress, u32 RegOffset
+ *
+*******************************************************************************/
+#define XDpDma_ReadReg(BaseAddress, RegOffset) \
+					XDpDma_In32((BaseAddress) + (RegOffset))
+
+/******************************************************************************/
+/**
+ * This is a low-level function that writes to the specified register.
+ *
+ * @param	BaseAddress is the base address of the device.
+ * @param	RegOffset is the register offset to write to.
+ * @param	Data is the 32-bit data to write to the specified register.
+ *
+ * @return	None.
+ *
+ * @note	C-style signature:
+ *		void XDpDma_WriteReg(u32 BaseAddress, u32 RegOffset, u32 Data)
+ *
+*******************************************************************************/
+#define XDpDma_WriteReg(BaseAddress, RegOffset, Data) \
+				XDpDma_Out32((BaseAddress) + (RegOffset), (Data))
+
+
+/******************************************************************************/
+/**
+ * This is a low-level function that writes to the specified register.
+ *
+ * @param	BaseAddress is the base address of the device.
+ * @param	RegOffset is the register offset to write to.
+ * @param	Data is the 32-bit data to write to the specified register.
+ * @param	Mask is the 32-bit field to which data is to be written
+ *
+ * @return	None.
+ *
+ * @note	C-style signature:
+ *		void XDpDma_ReadModifyWrite(u32 BaseAddress,
+ *							u32 RegOffset, u32 Data)
+ *
+*******************************************************************************/
+#define XDpDma_ReadModifyWrite(BaseAddress, RegOffset, Data, Mask) \
+				XDpDma_WriteReg((BaseAddress), (RegOffset), \
+				((XDpDma_ReadReg(BaseAddress, RegOffset) &  \
+				 ~(Mask)) | Data))
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _XDPDMAHW_H_ */
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_intr.c
new file mode 100644
index 000000000..80b175db6
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_intr.c
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ *
+ * Copyright (C) 2017 Xilinx, Inc.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * Use of the Software is limited solely to applications:
+ * (a) running on a Xilinx device, or
+ * (b) that interact with a Xilinx device through a bus or interconnect.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Except as contained in this notice, the name of the Xilinx shall not be used
+ * in advertising or otherwise to promote the sale, use or other dealings in
+ * this Software without prior written authorization from Xilinx.
+ *
+*******************************************************************************/
+/******************************************************************************/
+/**
+ *
+ * @file xdppsu_intr.c
+ *
+ * This file contains functions related to XDpPsu interrupt handling.
+ *
+ * @note	None.
+ *
+ * 
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   aad  01/17/17 Initial release.
+ * 
+ * +*******************************************************************************/ + +/******************************* Include Files ********************************/ +#include "xdpdma.h" + + +/*************************************************************************/ +/** + * + * This function enables the interrupts that are required. + * + * @param InstancePtr is pointer to the instance of DPDMA + * + * @return None. + * + * @note None. + * + * **************************************************************************/ +void XDpDma_InterruptEnable(XDpDma *InstancePtr, u32 Mask) +{ + XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_IEN, Mask); +} + +/*************************************************************************/ +/** + * + * This function handles the interrupts generated by DPDMA + * + * @param InstancePtr is pointer to the instance of the DPDMA + * + * @return None. + * + * @note None. + * + * **************************************************************************/ +void XDpDma_InterruptHandler(XDpDma *InstancePtr) +{ + u32 RegVal; + RegVal = XDpDma_ReadReg(InstancePtr->Config.BaseAddr, + XDPDMA_ISR); + if(RegVal & XDPDMA_ISR_VSYNC_INT_MASK) { + XDpDma_VSyncHandler(InstancePtr); + } + + if(RegVal & XDPDMA_ISR_DSCR_DONE4_MASK) { + XDpDma_SetChannelState(InstancePtr, AudioChan0, XDPDMA_DISABLE); + InstancePtr->Audio[0].Current = NULL; + XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_ISR, + XDPDMA_ISR_DSCR_DONE4_MASK); + } + + if(RegVal & XDPDMA_ISR_DSCR_DONE5_MASK) { + XDpDma_SetChannelState(InstancePtr, AudioChan1, XDPDMA_DISABLE); + InstancePtr->Audio[1].Current = NULL; + XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_ISR, + XDPDMA_ISR_DSCR_DONE5_MASK); + } +} + +/*************************************************************************/ +/** + * + * This function handles frame new frames on VSync + * + * @param InstancePtr is pointer to the instance of the driver. + * + * @return None. + * + * @note None. + * + * **************************************************************************/ +void XDpDma_VSyncHandler(XDpDma *InstancePtr) +{ + Xil_AssertVoid(InstancePtr != NULL); + + /* Video Channel Trigger/Retrigger Handler */ + if(InstancePtr->Video.TriggerStatus == XDPDMA_TRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, VideoChan); + XDpDma_SetChannelState(InstancePtr, VideoChan, + XDPDMA_ENABLE); + XDpDma_Trigger(InstancePtr, VideoChan); + } + else if(InstancePtr->Video.TriggerStatus == XDPDMA_RETRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, VideoChan); + XDpDma_ReTrigger(InstancePtr, VideoChan); + } + + /* Graphics Channel Trigger/Retrigger Handler */ + if(InstancePtr->Gfx.TriggerStatus == XDPDMA_TRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, GraphicsChan); + XDpDma_SetChannelState(InstancePtr, GraphicsChan, + XDPDMA_ENABLE); + XDpDma_Trigger(InstancePtr, GraphicsChan); + } + else if(InstancePtr->Gfx.TriggerStatus == XDPDMA_RETRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, GraphicsChan); + XDpDma_ReTrigger(InstancePtr, GraphicsChan); + } + + /* Audio Channel 0 Trigger Handler */ + if(InstancePtr->Audio[0].TriggerStatus == XDPDMA_TRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, AudioChan0); + XDpDma_SetChannelState(InstancePtr, AudioChan0, + XDPDMA_ENABLE); + XDpDma_Trigger(InstancePtr, AudioChan0); + } + + /* Audio Channel 1 Trigger Handler */ + if(InstancePtr->Audio[1].TriggerStatus == XDPDMA_TRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, AudioChan1); + XDpDma_SetChannelState(InstancePtr, AudioChan1, + XDPDMA_ENABLE); + XDpDma_Trigger(InstancePtr, AudioChan1); + } + /* Clear VSync Interrupt */ + XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_ISR, + XDPDMA_ISR_VSYNC_INT_MASK); +} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_sinit.c new file mode 100644 index 000000000..8f062681b --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/dpdma_v1_0/src/xdpdma_sinit.c @@ -0,0 +1,96 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xdpdma_sinit.c + * @addtogroup dpdma_v1_0 + * @{ + * + * This file contains static initialization methods for the XDpDma driver. + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   aad  01/20/15 Initial release.
+ * 
+ * +*******************************************************************************/ + +/******************************* Include Files ********************************/ + +#include "xdpdma.h" +#include "xparameters.h" + +/*************************** Variable Declarations ****************************/ + +/** + * A table of configuration structures containing the configuration information + * for each DisplayPort TX core in the system. + */ +extern XDpDma_Config XDpDma_ConfigTable[XPAR_XDPDMA_NUM_INSTANCES]; + +/**************************** Function Definitions ****************************/ + +/******************************************************************************/ +/** + * This function looks for the device configuration based on the unique device + * ID. The table XDpDma_ConfigTable[] contains the configuration information for + * each device in the system. + * + * @param DeviceId is the unique device ID of the device being looked up. + * + * @return A pointer to the configuration table entry corresponding to the + * given device ID, or NULL if no match is found. + * + * @note None. + * +*******************************************************************************/ +XDpDma_Config *XDpDma_LookupConfig(u16 DeviceId) +{ + XDpDma_Config *CfgPtr; + u32 Index; + + for (Index = 0; Index < XPAR_XDPDMA_NUM_INSTANCES; Index++) { + if (XDpDma_ConfigTable[Index].DeviceId == DeviceId) { + CfgPtr = &XDpDma_ConfigTable[Index]; + break; + } + } + + return CfgPtr; +} +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps.c index 26df03c3d..c013c4946 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps.c @@ -33,7 +33,7 @@ /** * * @file xemacps.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * The XEmacPs driver. Functions in this file are the minimum required functions @@ -52,6 +52,8 @@ * Disable extended mode. Perform all 64 bit changes under * check for arch64. * 3.1 hk 08/10/15 Update upper 32 bit tx and rx queue ptr registers +* 3.5 hk 08/14/17 Update cache coherency information of the interface in +* its config structure. * *
******************************************************************************/ @@ -107,6 +109,7 @@ LONG XEmacPs_CfgInitialize(XEmacPs *InstancePtr, XEmacPs_Config * CfgPtr, /* Set device base address and ID */ InstancePtr->Config.DeviceId = CfgPtr->DeviceId; InstancePtr->Config.BaseAddress = EffectiveAddress; + InstancePtr->Config.IsCacheCoherent = CfgPtr->IsCacheCoherent; /* Set callbacks to an initial stub routine */ InstancePtr->SendHandler = ((XEmacPs_Handler)((void*)XEmacPs_StubHandler)); diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps.h similarity index 97% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps.h index f12092bec..6d4b15b24 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps.h @@ -33,7 +33,7 @@ /** * * @file xemacps.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * @details * @@ -316,6 +316,21 @@ * there is no error. CR# 869403 * 08/10/15 Update upper 32 bit tx and rx queue ptr registers. * 3.2 hk 02/22/16 Added SGMII support for Zynq Ultrascale+ MPSoC. + * 3.4 ms 01/23/17 Modified xil_printf statement in main function for all + * examples to ensure that "Successfully ran" and "Failed" + * strings are available in all examples. This is a fix + * for CR-965028. + * ms 03/17/17 Modified text file in examples folder for doxygen + * generation. + * ms 04/05/17 Added tabspace for return statements in functions of + * xemacps_ieee1588_example.c for proper documentation + * while generating doxygen. + * 3.5 hk 08/14/17 Update cache coherency information of the interface in + * its config structure. + * 3.6 rb 09/08/17 HwCnt variable (in XEmacPs_BdRing structure) is + * changed to volatile. + * Add API XEmacPs_BdRingPtrReset() to reset pointers + * *
* ****************************************************************************/ @@ -513,6 +528,8 @@ typedef void (*XEmacPs_ErrHandler) (void *CallBackRef, u8 Direction, typedef struct { u16 DeviceId; /**< Unique ID of device */ UINTPTR BaseAddress;/**< Physical base address of IPIF registers */ + u8 IsCacheCoherent; /**< Applicable only to A53 in EL1 mode; + * describes whether Cache Coherent or not */ } XEmacPs_Config; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_bd.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_bd.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_bd.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_bd.h index 52c5f7e7e..83f9a87fc 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_bd.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_bd.h @@ -33,7 +33,7 @@ /** * * @file xemacps_bd.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This header provides operations to manage buffer descriptors in support diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_bdring.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_bdring.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_bdring.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_bdring.c index d837e1df1..3536873dc 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_bdring.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_bdring.c @@ -33,7 +33,7 @@ /** * * @file xemacps_bdring.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This file implements buffer descriptor ring related functions. @@ -57,6 +57,8 @@ * from uncached area. Fix for CR #663885. * 2.1 srt 07/15/14 Add support for Zynq Ultrascale Mp architecture. * 3.0 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. +* 3.6 rb 09/08/17 Add XEmacPs_BdRingPtrReset() API to reset BD ring +* pointers * *
******************************************************************************/ @@ -505,7 +507,7 @@ LONG XEmacPs_BdRingUnAlloc(XEmacPs_BdRing * RingPtr, u32 NumBd, XEmacPs_Bd * BdSetPtr) { LONG Status; - (void *)BdSetPtr; + (void) BdSetPtr; Xil_AssertNonvoid(RingPtr != NULL); Xil_AssertNonvoid(BdSetPtr != NULL); @@ -1072,4 +1074,29 @@ static void XEmacPs_BdSetTxWrap(UINTPTR BdPtr) *TempPtr = DataValueTx; } } + +/*****************************************************************************/ +/** + * Reset BD ring head and tail pointers. + * + * @param RingPtr is the instance to be worked on. + * @param VirtAddr is the virtual base address of the user memory region. + * + * @note + * Should be called after XEmacPs_Stop() + * + * @note + * C-style signature: + * void XEmacPs_BdRingPtrReset(XEmacPs_BdRing * RingPtr, void *virtaddrloc) + * + *****************************************************************************/ +void XEmacPs_BdRingPtrReset(XEmacPs_BdRing * RingPtr, void *virtaddrloc) +{ + RingPtr->FreeHead = virtaddrloc; + RingPtr->PreHead = virtaddrloc; + RingPtr->HwHead = virtaddrloc; + RingPtr->HwTail = virtaddrloc; + RingPtr->PostHead = virtaddrloc; +} + /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_bdring.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_bdring.h similarity index 97% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_bdring.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_bdring.h index de78cf28f..b89e89885 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_bdring.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_bdring.h @@ -33,7 +33,7 @@ /** * * @file xemacps_bdring.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * The Xiline EmacPs Buffer Descriptor ring driver. This is part of EmacPs @@ -47,6 +47,8 @@ * 1.00a wsy 01/10/10 First release * 2.1 srt 07/15/14 Add support for Zynq Ultrascale Mp architecture. * 3.0 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. +* 3.6 rb 09/08/17 HwCnt variable (in XEmacPs_BdRing structure) is +* changed to volatile. * * * @@ -81,7 +83,7 @@ typedef struct { XEmacPs_Bd *BdaRestart; /**< BDA to load when channel is started */ - u32 HwCnt; /**< Number of BDs in work group */ + volatile u32 HwCnt; /**< Number of BDs in work group */ u32 PreCnt; /**< Number of BDs in pre-work group */ u32 FreeCnt; /**< Number of allocatable BDs in the free group */ u32 PostCnt; /**< Number of BDs in post-work group */ @@ -228,6 +230,7 @@ u32 XEmacPs_BdRingFromHwRx(XEmacPs_BdRing * RingPtr, u32 BdLimit, XEmacPs_Bd ** BdSetPtr); LONG XEmacPs_BdRingCheck(XEmacPs_BdRing * RingPtr, u8 Direction); +void XEmacPs_BdRingPtrReset(XEmacPs_BdRing * RingPtr, void *virtaddrloc); #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_control.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_control.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_control.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_control.c index f52451a8c..8217a4521 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_control.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_control.c @@ -33,7 +33,7 @@ /** * * @file xemacps_control.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * Functions in this file implement general purpose command and control related diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_g.c similarity index 87% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_g.c index db734b924..e58610f57 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,11 +44,12 @@ * The configuration table for devices */ -XEmacPs_Config XEmacPs_ConfigTable[] = +XEmacPs_Config XEmacPs_ConfigTable[XPAR_XEMACPS_NUM_INSTANCES] = { { XPAR_PSU_ETHERNET_3_DEVICE_ID, - XPAR_PSU_ETHERNET_3_BASEADDR + XPAR_PSU_ETHERNET_3_BASEADDR, + XPAR_PSU_ETHERNET_3_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_hw.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_hw.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_hw.c index daba38397..00e79a58d 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_hw.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_hw.c @@ -33,7 +33,7 @@ /** * * @file xemacps_hw.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This file contains the implementation of the ethernet interface reset sequence diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_hw.h index 953cc6265..e535470c2 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_hw.h @@ -33,7 +33,7 @@ /** * * @file xemacps_hw.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This header file contains identifiers and low-level driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_intr.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_intr.c index 59636c4ef..9c355a163 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_intr.c @@ -33,7 +33,7 @@ /** * * @file xemacps_intr.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * Functions in this file implement general purpose interrupt processing related diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_sinit.c index 1bc5b3b19..e2d2078af 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_7/src/xemacps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xemacps_sinit.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This file contains lookup method by device ID when success, it returns diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops.c index 90eedb87d..7b6fe2e46 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops.c @@ -33,7 +33,7 @@ /** * * @file xgpiops.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * The XGpioPs driver. Functions in this file are the minimum required functions diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops.h similarity index 94% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops.h index 102615572..fda562d91 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops.h @@ -1,3 +1,4 @@ + /****************************************************************************** * * Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. @@ -33,7 +34,7 @@ /** * * @file xgpiops.h -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * @details * @@ -97,7 +98,15 @@ * passed to APIs. CR# 822636 * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. * 3.1 kvn 04/13/15 Add support for Zynq Ultrascale+ MP. CR# 856980. -* +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Added tabspace for return statements in functions of +* gpiops examples for proper documentation while +* generating doxygen. +* 3.3 ms 04/17/17 Added notes about gpio input and output pin description +* for zcu102 and zc702 boards in polled and interrupt +* example, configured Interrupt pin to input pin for +* proper functioning of interrupt example. * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_g.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_g.c index 38a5b9355..a518a700e 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XGpioPs_Config XGpioPs_ConfigTable[] = +XGpioPs_Config XGpioPs_ConfigTable[XPAR_XGPIOPS_NUM_INSTANCES] = { { XPAR_PSU_GPIO_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_hw.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_hw.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_hw.c index d7a5e00f0..8961c4287 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_hw.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_hw.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_hw.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains low level GPIO functions. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_hw.h index 81e8d6a9f..ff0190675 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_hw.h @@ -33,7 +33,7 @@ /** * * @file xgpiops_hw.h -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This header file contains the identifiers and basic driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_intr.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_intr.c index c07381be6..a8b0a5626 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_intr.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_intr.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains functions related to GPIO interrupt handling. @@ -722,7 +722,7 @@ void XGpioPs_IntrHandler(XGpioPs *InstancePtr) ******************************************************************************/ void StubHandler(void *CallBackRef, u32 Bank, u32 Status) { - (void*) CallBackRef; + (void) CallBackRef; (void) Bank; (void) Status; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_selftest.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_selftest.c index da1973a2d..378524c14 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_selftest.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_selftest.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains a diagnostic self-test function for the XGpioPs driver. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_sinit.c index 2ca008373..4cc0c390f 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_3/src/xgpiops_sinit.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_sinit.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains the implementation of the XGpioPs driver's static diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps.c index 1c6819152..4f2b592e7 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps.c @@ -33,7 +33,7 @@ /** * * @file xiicps.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains implementation of required functions for the XIicPs driver. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps.h index b26193486..cc837a14c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps.h @@ -33,7 +33,7 @@ /** * * @file xiicps.h -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * @details * @@ -184,6 +184,8 @@ * 02/18/15 Implemented larger data transfer using repeated start * in Zynq UltraScale MP. * 3.3 kvn 05/05/16 Modified latest code for MISRA-C:2012 Compliance. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * * diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_g.c similarity index 91% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_g.c index f449e0ed6..1a469d08c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XIicPs_Config XIicPs_ConfigTable[] = +XIicPs_Config XIicPs_ConfigTable[XPAR_XIICPS_NUM_INSTANCES] = { { XPAR_PSU_I2C_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_hw.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_hw.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_hw.c index a1dba8e62..2d85e1436 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_hw.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_hw.c @@ -33,7 +33,7 @@ /** * * @file xiicps_hw.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains implementation of required functions for providing the reset sequence diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_hw.h index 3b00cf8b1..d1eee82f2 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_hw.h @@ -33,7 +33,7 @@ /** * * @file xiicps_hw.h -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * This header file contains the hardware definition for an IIC device. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_intr.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_intr.c index 5231049c7..7f385918f 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_intr.c @@ -33,7 +33,7 @@ /** * * @file xiicps_intr.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains functions of the XIicPs driver for interrupt-driven transfers. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_master.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_master.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_master.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_master.c index 7824d86b6..faa852826 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_master.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_master.c @@ -33,7 +33,7 @@ /** * * @file xiicps_master.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Handles master mode transfers. @@ -63,7 +63,8 @@ * 02/18/15 Implemented larger data transfer using repeated start * in Zynq UltraScale MP. * 3.3 kvn 05/05/16 Modified latest code for MISRA-C:2012 Compliance. -* +* 3.6 ask 09/03/18 In XIicPs_MasterRecvPolled, set transfer size register +* before slave address. Fix for CR996440. * * ******************************************************************************/ @@ -424,7 +425,6 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, IntrStatusReg = XIicPs_ReadReg(BaseAddr, XIICPS_ISR_OFFSET); XIicPs_WriteReg(BaseAddr, XIICPS_ISR_OFFSET, IntrStatusReg); - XIicPs_WriteReg(BaseAddr, XIICPS_ADDR_OFFSET, SlaveAddr); /* * Set up the transfer size register so the slave knows how much @@ -440,6 +440,9 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, ByteCountVar); } + + XIicPs_WriteReg(BaseAddr, XIICPS_ADDR_OFFSET, SlaveAddr); + /* * Intrs keeps all the error-related interrupts. */ @@ -632,6 +635,11 @@ void XIicPs_DisableSlaveMonitor(XIicPs *InstancePtr) XIicPs_ReadReg(BaseAddr, XIICPS_CR_OFFSET) & (~XIICPS_CR_SLVMON_MASK)); + /* + * wait for slv monitor control bit to be clear + */ + while (XIicPs_ReadReg(BaseAddr, XIICPS_CR_OFFSET) + & XIICPS_CR_SLVMON_MASK); /* * Clear interrupt flag for slave monitor interrupt. */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_options.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_options.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_options.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_options.c index 1ebd78673..c9237dbb0 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_options.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_options.c @@ -33,7 +33,7 @@ /** * * @file xiicps_options.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains functions for the configuration of the XIccPs driver. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_selftest.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_selftest.c index dd57a1a51..31e02b56f 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xiicps_selftest.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * This component contains the implementation of selftest functions for the diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_sinit.c index 7d7dadaa8..d8fbc4cd5 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xiicps_sinit.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * The implementation of the XIicPs component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_slave.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_slave.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_slave.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_slave.c index fef640b77..adc40a435 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_slave.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_6/src/xiicps_slave.c @@ -32,7 +32,7 @@ /*****************************************************************************/ /** * @file xiicps_slave.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Handles slave transfers diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu.c similarity index 87% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu.c index 7c9d98ab0..06d9ced3c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu.c @@ -33,7 +33,7 @@ /** * * @file xipipsu.c -* @addtogroup ipipsu_v1_0 +* @addtogroup ipipsu_v2_3 * @{ * * This file contains the implementation of the interface functions for XIpiPsu @@ -48,6 +48,7 @@ * 2.0 mjr 01/22/16 Fixed response buffer address * calculation. CR# 932582. * 2.1 kvn 05/05/16 Modified code for MISRA-C:2012 Compliance +* 2.2 kvn 02/17/17 Add support for updating ConfigTable at run time * * *****************************************************************************/ @@ -56,6 +57,9 @@ #include "xipipsu.h" #include "xipipsu_hw.h" +/************************** Variable Definitions *****************************/ +extern XIpiPsu_Config XIpiPsu_ConfigTable[XPAR_XIPIPSU_NUM_INSTANCES]; + /****************************************************************************/ /** * Initialize the Instance pointer based on a given Config Pointer @@ -350,4 +354,39 @@ XStatus XIpiPsu_WriteMessage(XIpiPsu *InstancePtr, u32 DestCpuMask, u32 *MsgPtr, return Status; } + +/*****************************************************************************/ +/** +* +* Set up the device configuration based on the unique device ID. A table +* contains the configuration info for each device in the system. +* +* @param DeviceId contains the ID of the device to set up the +* configuration for. +* +* @return A pointer to the device configuration for the specified +* device ID. See xipipsu.h for the definition of +* XIpiPsu_Config. +* +* @note This is for safety use case where in this function has to +* be called before CfgInitialize. So that driver will be +* initialized with the provided configuration. For non-safe +* use cases, this is not needed. +* +******************************************************************************/ +void XIpiPsu_SetConfigTable(u32 DeviceId, XIpiPsu_Config *ConfigTblPtr) +{ + u32 Index; + + Xil_AssertVoid(ConfigTblPtr != NULL); + + for (Index = 0U; Index < XPAR_XIPIPSU_NUM_INSTANCES; Index++) { + if (XIpiPsu_ConfigTable[Index].DeviceId == DeviceId) { + XIpiPsu_ConfigTable[Index].BaseAddress = ConfigTblPtr->BaseAddress; + XIpiPsu_ConfigTable[Index].BitMask = ConfigTblPtr->BitMask; + XIpiPsu_ConfigTable[Index].BufferIndex = ConfigTblPtr->BufferIndex; + XIpiPsu_ConfigTable[Index].IntId = ConfigTblPtr->IntId; + } + } +} /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu.h similarity index 92% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu.h index 0253b9a68..83701f46e 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu.h @@ -32,7 +32,7 @@ /*****************************************************************************/ /** * @file xipipsu.h -* @addtogroup ipipsu_v1_0 +* @addtogroup ipipsu_v2_3 * @{ * @details * @@ -76,7 +76,23 @@ * @note XIpiPsu_Reset can be used at startup to clear the status and * disable all sources * - */ + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver  Who Date     Changes
+ * ---- --- -------- --------------------------------------------------
+ * 2.2  ms  01/23/17 Modified xil_printf statement in main function for all
+ *                    examples to ensure that "Successfully ran" and "Failed"
+ *                    strings are available in all examples. This is a fix
+ *                    for CR-965028.
+ *  	kvn 02/17/17  Add support for updating ConfigTable at run time
+ *      ms  03/17/17  Added readme.txt file in examples folder for doxygen
+ *                    generation.
+ * 2.3  ms  04/11/17  Modified tcl file to add suffix U for all macro
+ *                    definitions of ipipsu in xparameters.h
+ * 
+ * + *****************************************************************************/ /*****************************************************************************/ #ifndef XIPIPSU_H_ #define XIPIPSU_H_ @@ -276,6 +292,7 @@ XStatus XIpiPsu_ReadMessage(XIpiPsu *InstancePtr, u32 SrcCpuMask, u32 *MsgPtr, XStatus XIpiPsu_WriteMessage(XIpiPsu *InstancePtr, u32 DestCpuMask, u32 *MsgPtr, u32 MsgLength, u8 BufferType); +void XIpiPsu_SetConfigTable(u32 DeviceId, XIpiPsu_Config *ConfigTblPtr); #endif /* XIPIPSU_H_ */ /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu_g.c similarity index 83% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu_g.c index af7941c14..635069b52 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XIpiPsu_Config XIpiPsu_ConfigTable[] = +XIpiPsu_Config XIpiPsu_ConfigTable[XPAR_XIPIPSU_NUM_INSTANCES] = { { @@ -83,22 +83,6 @@ XIpiPsu_Config XIpiPsu_ConfigTable[] = { XPAR_PSU_IPI_6_BIT_MASK, XPAR_PSU_IPI_6_BUFFER_INDEX - }, - { - XPAR_PSU_IPI_7_BIT_MASK, - XPAR_PSU_IPI_7_BUFFER_INDEX - }, - { - XPAR_PSU_IPI_8_BIT_MASK, - XPAR_PSU_IPI_8_BUFFER_INDEX - }, - { - XPAR_PSU_IPI_9_BIT_MASK, - XPAR_PSU_IPI_9_BUFFER_INDEX - }, - { - XPAR_PSU_IPI_10_BIT_MASK, - XPAR_PSU_IPI_10_BUFFER_INDEX } } } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu_hw.h similarity index 95% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu_hw.h index b4c02b6e1..5a3202192 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu_hw.h @@ -32,7 +32,7 @@ /** * * @file xipipsu_hw.h -* @addtogroup ipipsu_v1_0 +* @addtogroup ipipsu_v2_3 * @{ * * This file contains macro definitions for low level HW related params @@ -62,8 +62,8 @@ #define XIPIPSU_BUFFER_OFFSET_TARGET (32U * 2U) #define XIPIPSU_BUFFER_OFFSET_RESPONSE (32U) -/* Max Number of IPI slots on the device */ -#define XIPIPSU_MAX_TARGETS 11 +/* Number of IPI slots enabled on the device */ +#define XIPIPSU_MAX_TARGETS XPAR_XIPIPSU_NUM_TARGETS /* Register Offsets for each member of IPI Register Set */ #define XIPIPSU_TRIG_OFFSET 0x00U diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu_sinit.c index ae0900498..6f52a63e0 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_3/src/xipipsu_sinit.c @@ -32,7 +32,7 @@ /** * * @file xipipsu_sinit.c -* @addtogroup ipipsu_v1_0 +* @addtogroup ipipsu_v2_3 * @{ * * The implementation of the XIpiPsu component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu.c similarity index 96% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu.c index 93fa53f75..60eee53ea 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu.c @@ -33,7 +33,7 @@ /** * * @file xqspipsu.c -* @addtogroup qspipsu_v1_0 +* @addtogroup qspipsu_v1_7 * @{ * * This file implements the functions required to use the QSPIPSU hardware to @@ -60,6 +60,10 @@ * 1.3 nsk 09/16/16 Update PollData and PollTimeout support for dual * parallel configurations, modified XQspiPsu_PollData() * and XQspiPsu_Create_PollConfigData() +* 1,5 nsk 08/14/17 Added CCI support +* 1.7 tjs 01/16/18 Removed the check for DMA MSB to be written. (CR#992560) +* 1.7 tjs 01/17/18 Added a support to toggle WP pin of the flash. +* 1.7 tjs 03/14/18 Added support in EL1 NS mode (CR#974882) * * * @@ -150,6 +154,7 @@ s32 XQspiPsu_CfgInitialize(XQspiPsu *InstancePtr, XQspiPsu_Config *ConfigPtr, InstancePtr->StatusHandler = StubStatusHandler; InstancePtr->Config.BusWidth = ConfigPtr->BusWidth; InstancePtr->Config.InputClockHz = ConfigPtr->InputClockHz; + InstancePtr->Config.IsCacheCoherent = ConfigPtr->IsCacheCoherent; /* Other instance variable initializations */ InstancePtr->SendBufferPtr = NULL; InstancePtr->RecvBufferPtr = NULL; @@ -928,7 +933,7 @@ void XQspiPsu_SetStatusHandler(XQspiPsu *InstancePtr, void *CallBackRef, static void StubStatusHandler(void *CallBackRef, u32 StatusEvent, u32 ByteCount) { - (void *) CallBackRef; + (void) CallBackRef; (void) StatusEvent; (void) ByteCount; @@ -1136,13 +1141,13 @@ static inline void XQspiPsu_SetupRxDma(XQspiPsu *InstancePtr, XQSPIPSU_QSPIDMA_DST_ADDR_OFFSET, (u32)AddrTemp); - AddrTemp = AddrTemp >> 32; - if ((AddrTemp & 0xFFFU) != FALSE) { - XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, - XQSPIPSU_QSPIDMA_DST_ADDR_MSB_OFFSET, - (u32)AddrTemp & - XQSPIPSU_QSPIDMA_DST_ADDR_MSB_MASK); - } +#ifdef __aarch64__ + AddrTemp = (u64)((INTPTR)(Msg->RxBfrPtr) >> 32); + XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, + XQSPIPSU_QSPIDMA_DST_ADDR_MSB_OFFSET, + (u32)AddrTemp & + XQSPIPSU_QSPIDMA_DST_ADDR_MSB_MASK); +#endif Remainder = InstancePtr->RxBytes % 4; DmaRxBytes = InstancePtr->RxBytes; @@ -1151,8 +1156,10 @@ static inline void XQspiPsu_SetupRxDma(XQspiPsu *InstancePtr, DmaRxBytes = InstancePtr->RxBytes - Remainder; Msg->ByteCount = (u32)DmaRxBytes; } - - Xil_DCacheInvalidateRange((INTPTR)InstancePtr->RecvBufferPtr, Msg->ByteCount); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)InstancePtr->RecvBufferPtr, + Msg->ByteCount); + } /* Write no. of words to DMA DST SIZE */ XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, @@ -1511,4 +1518,37 @@ static inline u32 XQspiPsu_Create_PollConfigData(XQspiPsu *QspiPsuPtr, & XQSPIPSU_POLL_CFG_DATA_VALUE_MASK); return ConfigData; } + +/*****************************************************************************/ +/** +* @brief +* This API enables/ disables Write Protect pin on the flash parts. +* +* @param QspiPtr is a pointer to the QSPIPSU driver component to use. +* +* @return None +* +* @note By default WP pin as per the QSPI controller is driven High +* which means no write protection. Calling this function once +* will enable the protection. +* +******************************************************************************/ +void XQspiPsu_WriteProtectToggle(XQspiPsu *QspiPsuPtr, u32 Toggle) +{ + /* For Single and Stacked flash configuration with x1 or x2 mode*/ + if (QspiPsuPtr->Config.ConnectionMode == XQSPIPSU_CONNECTION_MODE_SINGLE) { + /* Enable */ + XQspiPsu_Enable(QspiPsuPtr); + + /* Select slave */ + XQspiPsu_GenFifoEntryCSAssert(QspiPsuPtr); + + XQspiPsu_WriteReg(QspiPsuPtr->Config.BaseAddress, XQSPIPSU_GPIO_OFFSET, + Toggle); + + } else if (QspiPsuPtr->Config.ConnectionMode == XQSPIPSU_CONNECTION_MODE_PARALLEL || + QspiPsuPtr->Config.ConnectionMode == XQSPIPSU_CONNECTION_MODE_STACKED) { + xil_printf("Dual Parallel/Stacked configuration is not supported by this API\r\n"); + } +} /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu.h similarity index 85% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu.h index 94801949c..b73b72293 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 Xilinx, Inc. All rights reserved. +* Copyright (C) 2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xqspipsu.h -* @addtogroup qspipsu_v1_0 +* @addtogroup qspipsu_v1_7 * @{ * @details * @@ -112,7 +112,33 @@ * configuration. Updated XQspiPsu_PollData() and * XQspiPsu_Create_PollConfigData() functions in xqspipsu.c * and also modified the polldata example -* +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Modified Comment lines in functions of qspipsu +* examples to recognize it as documentation block +* and modified filename tag to include them in +* doxygen examples. +* 1.4 tjs 05/26/17 Added support for accessing upper DDR (0x800000000) +* while booting images from QSPI +* 1.5 tjs 08/08/17 Added index.html file for importing examples from system.mss +* 1.5 nsk 08/14/17 Added CCI support +* 1.5 tjs 09/14/17 Modified the checks for 4 byte addressing and commands. +* 1.6 tjs 10/16/17 Flow for accessing flash is made similar to u-boot and linux +* For CR-984966 +* 1.6 tjs 11/02/17 Resolved the compilation errors for ICCARM. CR-988625 +* 1.7 tjs 11/16/17 Removed the unsupported 4 Byte write and sector erase +* commands. +* 1.7 tjs 12/01/17 Added support for MT25QL02G Flash from Micron. CR-990642 +* 1.7 tjs 12/19/17 Added support for S25FL064L from Spansion. CR-990724 +* 1.7 tjs 01/11/18 Added support for MX66L1G45G flash from Macronix CR-992367 +* 1.7 tjs 01/16/18 Removed the check for DMA MSB to be written. (CR#992560) +* 1.7 tjs 01/17/18 Added support to toggle the WP pin of flash. (PR#2448) +* Added XQspiPsu_SetWP() in xqspipsu_options.c +* Added XQspiPsu_WriteProtectToggle() in xqspipsu.c and +* also added write protect example. +* 1.7 tjs 03/14/18 Added support in EL1 NS mode (CR#974882) +* 1.7 tjs 26/03/18 In dual parallel mode enable both CS when issuing Write +* enable command. CR-998478 * * ******************************************************************************/ @@ -175,6 +201,7 @@ typedef struct { u32 InputClockHz; /**< Input clock frequency */ u8 ConnectionMode; /**< Single, Stacked and Parallel mode */ u8 BusWidth; /**< Bus width available on board */ + u8 IsCacheCoherent; /**< Describes whether Cache Coherent or not */ } XQspiPsu_Config; /** @@ -259,6 +286,9 @@ typedef struct { #define XQSPIPSU_MSG_FLAG_TX 0x4U #define XQSPIPSU_MSG_FLAG_POLL 0x8U +/* GQSPI configuration to toggle WP of flash*/ +#define XQSPIPSU_SET_WP 1 + #define XQspiPsu_Select(InstancePtr, Mask) XQspiPsu_Out32(((InstancePtr)->Config.BaseAddress) + XQSPIPSU_SEL_OFFSET, Mask) #define XQspiPsu_Enable(InstancePtr) XQspiPsu_Out32(((InstancePtr)->Config.BaseAddress) + XQSPIPSU_EN_OFFSET, XQSPIPSU_EN_MASK) @@ -267,6 +297,7 @@ typedef struct { #define XQspiPsu_GetLqspiConfigReg(InstancePtr) XQspiPsu_In32((XQSPIPS_BASEADDR) + XQSPIPSU_LQSPI_CR_OFFSET) + /************************** Function Prototypes ******************************/ /* Initialization and reset */ @@ -292,6 +323,8 @@ s32 XQspiPsu_SetOptions(XQspiPsu *InstancePtr, u32 Options); s32 XQspiPsu_ClearOptions(XQspiPsu *InstancePtr, u32 Options); u32 XQspiPsu_GetOptions(XQspiPsu *InstancePtr); s32 XQspiPsu_SetReadMode(XQspiPsu *InstancePtr, u32 Mode); +void XQspiPsu_SetWP(XQspiPsu *InstancePtr, u8 Value); +void XQspiPsu_WriteProtectToggle(XQspiPsu *InstancePtr, u32 Toggle); #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_g.c similarity index 88% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_g.c index 969fa96b0..a6df4f5b8 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,14 +44,15 @@ * The configuration table for devices */ -XQspiPsu_Config XQspiPsu_ConfigTable[] = +XQspiPsu_Config XQspiPsu_ConfigTable[XPAR_XQSPIPSU_NUM_INSTANCES] = { { XPAR_PSU_QSPI_0_DEVICE_ID, XPAR_PSU_QSPI_0_BASEADDR, XPAR_PSU_QSPI_0_QSPI_CLK_FREQ_HZ, XPAR_PSU_QSPI_0_QSPI_MODE, - XPAR_PSU_QSPI_0_QSPI_BUS_WIDTH + XPAR_PSU_QSPI_0_QSPI_BUS_WIDTH, + XPAR_PSU_QSPI_0_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_hw.h index 40314d6e1..a7e856310 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_hw.h @@ -33,7 +33,7 @@ /** * * @file xqspipsu_hw.h -* @addtogroup qspipsu_v1_0 +* @addtogroup qspipsu_v1_7 * @{ * * This file contains low level access funcitons using the base address @@ -49,6 +49,7 @@ * sk 04/24/15 Modified the code according to MISRAC-2012. * 1.2 nsk 07/01/16 Added LQSPI supported Masks * rk 07/15/16 Added support for TapDelays at different frequencies. +* 1.7 tjs 03/14/18 Added support in EL1 NS mode. * * * @@ -147,6 +148,7 @@ extern "C" { or quad I/O */ #define XQSPIPS_LQSPI_CR_INST_MASK 0x000000FF /**< Read instr code */ #define XQSPIPS_LQSPI_CR_RST_STATE 0x80000003 /**< Default LQSPI CR value */ +#define XQSPIPS_LQSPI_CR_4_BYTE_STATE 0x88000013 /**< Default 4 Byte LQSPI CR value */ #define XQSPIPS_LQSPI_CFG_RST_STATE 0x800238C1 /**< Default LQSPI CFG value */ /** * Register: XQSPIPSU_ISR @@ -828,6 +830,7 @@ extern "C" { #define IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT 0X02 #define IOU_TAPDLY_BYPASS_LQSPI_RX_WIDTH 0X01 #define IOU_TAPDLY_BYPASS_LQSPI_RX_MASK 0x00000004 +#define IOU_TAPDLY_RESET_STATE 0x7 /***************** Macros (Inline Functions) Definitions *********************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_options.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_options.c similarity index 92% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_options.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_options.c index 2c77a0881..e943e52ae 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_options.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_options.c @@ -33,7 +33,7 @@ /** * * @file xqspipsu_options.c -* @addtogroup qspipsu_v1_0 +* @addtogroup qspipsu_v1_7 * @{ * * This file implements funcitons to configure the QSPIPSU component, @@ -51,6 +51,8 @@ * 1.2 nsk 07/01/16 Modified XQspiPsu_SetOptions() to support * LQSPI options and updated OptionsTable * rk 07/15/16 Added support for TapDelays at different frequencies. +* 1.7 tjs 01/17/18 Added support to toggle the WP pin of flash. (PR#2448) +* 1.7 tjs 03/14/18 Added support in EL1 NS mode. (CR#974882) * * * @@ -59,6 +61,9 @@ /***************************** Include Files *********************************/ #include "xqspipsu.h" +#if defined (__aarch64__) +#include "xil_smc.h" +#endif /************************** Constant Definitions *****************************/ @@ -179,7 +184,7 @@ s32 XQspiPsu_SetOptions(XQspiPsu *InstancePtr, u32 Options) ConfigReg = XQspiPsu_ReadReg(XQSPIPS_BASEADDR,XQSPIPSU_LQSPI_CR_OFFSET); if (QspiPsuOptions & XQSPIPSU_LQSPI_MODE_OPTION) { - XQspiPsu_WriteReg(XQSPIPS_BASEADDR,XQSPIPSU_LQSPI_CR_OFFSET,XQSPIPS_LQSPI_CR_RST_STATE); + XQspiPsu_WriteReg(XQSPIPS_BASEADDR,XQSPIPSU_LQSPI_CR_OFFSET,XQSPIPS_LQSPI_CR_4_BYTE_STATE); XQspiPsu_WriteReg(XQSPIPS_BASEADDR,XQSPIPSU_CFG_OFFSET,XQSPIPS_LQSPI_CFG_RST_STATE); /* Enable the QSPI controller */ XQspiPsu_WriteReg(XQSPIPS_BASEADDR,XQSPIPSU_EN_OFFSET,XQSPIPSU_EN_MASK); @@ -344,8 +349,15 @@ s32 XQspi_Set_TapDelay(XQspiPsu * InstancePtr,u32 TapdelayBypass, if (InstancePtr->IsBusy == TRUE) { Status = XST_DEVICE_BUSY; } else { +#if EL1_NONSECURE && defined (__aarch64__) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + IOU_TAPDLY_BYPASS_OFFSET) | + ((u64)(0x4) << 32), + (u64)TapdelayBypass, 0, 0, 0, 0, 0); +#else XQspiPsu_WriteReg(XPS_SYS_CTRL_BASEADDR,IOU_TAPDLY_BYPASS_OFFSET, TapdelayBypass); +#endif XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, XQSPIPSU_LPBK_DLY_ADJ_OFFSET,LPBKDelay); XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, @@ -380,8 +392,12 @@ static s32 XQspipsu_Calculate_Tapdelay(XQspiPsu *InstancePtr, u8 Prescaler) Divider = (1 << (Prescaler+1)); FreqDiv = (InstancePtr->Config.InputClockHz)/Divider; +#if EL1_NONSECURE && defined (__aarch64__) + Tapdelay = IOU_TAPDLY_RESET_STATE; +#else Tapdelay = XQspiPsu_ReadReg(XPS_SYS_CTRL_BASEADDR, - IOU_TAPDLY_BYPASS_OFFSET); + IOU_TAPDLY_BYPASS_OFFSET); +#endif Tapdelay = Tapdelay & (~IOU_TAPDLY_BYPASS_LQSPI_RX_MASK); @@ -618,4 +634,33 @@ s32 XQspiPsu_SetReadMode(XQspiPsu *InstancePtr, u32 Mode) #endif return Status; } + +/*****************************************************************************/ +/** +* +* This function sets the Write Protect and Hold options for the QSPIPSU device +* driver.The device must be idle rather than busy transferring data before +* setting Write Protect and Hold options. +* +* @param InstancePtr is a pointer to the XQspiPsu instance. +* @param Value of the WP_HOLD bit in configuration register +* +* @return None +* +* @note +* This function is not thread-safe. This function can only be used with single +* flash configuration and x1/x2 data mode. This function cannot be used with +* x4 data mode and dual parallel and stacked flash configuration. +* +******************************************************************************/ +void XQspiPsu_SetWP(XQspiPsu *InstancePtr, u8 Value) +{ + u32 ConfigReg; + + ConfigReg = XQspiPsu_ReadReg(InstancePtr->Config.BaseAddress, + XQSPIPSU_CFG_OFFSET); + ConfigReg |= Value << XQSPIPSU_CFG_WP_HOLD_SHIFT; + XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, XQSPIPSU_CFG_OFFSET, + ConfigReg); +} /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_sinit.c index 63aaed0bb..3869167d8 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_7/src/xqspipsu_sinit.c @@ -33,7 +33,7 @@ /** * * @file xqspipsu_sinit.c -* @addtogroup qspipsu_v1_0 +* @addtogroup qspipsu_v1_7 * @{ * * The implementation of the XQspiPsu component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/Makefile new file mode 100644 index 000000000..67ab3d8a9 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/Makefile @@ -0,0 +1,40 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +CC_FLAGS = $(COMPILER_FLAGS) +ECC_FLAGS = $(EXTRA_COMPILER_FLAGS) + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +OUTS = *.o + +LIBSOURCES:=*.c +INCLUDEFILES:=*.h + +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) + +libs: banner resetps_libs clean + +%.o: %.c + ${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) -o $@ $< + +banner: + echo "Compiling resetps" + +resetps_libs: ${OBJECTS} + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} + +.PHONY: include +include: resetps_includes + +resetps_includes: + ${CP} ${INCLUDEFILES} ${INCLUDEDIR} + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps.c new file mode 100644 index 000000000..626ec54d7 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps.c @@ -0,0 +1,1030 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file xresetps.c +* @addtogroup xresetps_v1_0 +* @{ +* +* Contains the implementation of interface functions of the XResetPs driver. +* See xresetps.h for a description of the driver. +* +*
+* MODIFICATION HISTORY:
+* Ver   Who    Date     Changes
+* ----- ------ -------- ---------------------------------------------
+* 1.00  cjp    09/05/17 First release
+* 
+* +******************************************************************************/ + +/***************************** Include Files *********************************/ +#include "xresetps.h" +#include "xresetps_hw.h" +#include "xil_types.h" + +/************************** Constant Definitions *****************************/ +#define XRESETPS_RSTID_BASE (1000) +#define XRESETPS_REGADDR_INVALID (0xFFFFFFFFU) +#define XRESETPS_BM_INVALID (0xFFFFFFFFU) + +/**************************** Type Definitions *******************************/ +typedef struct { + const u32 SlcrregAddr; + const u32 SlcrregBitmask; + const u32 PwrStateBitmask; + const XResetPs_PulseTypes PulseType; + const u8 SupportedActions; +} XResetPs_Lookup; + +/************************** Variable Definitions *****************************/ +#if !EL1_NONSECURE +const static XResetPs_Lookup ResetMap[] = { + /* + * {Control Register, Control Bitmask, + * Power State Bitask, Pulse Type, + * Supported Actions}, + */ + {XRESETPS_CRF_APB_RST_FPD_TOP, PCIE_CFG_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, PCIE_BRIDGE_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, PCIE_CTRL_RESET_MASK, + PCIE_CTRL_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, DP_RESET_MASK, + DP_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, SWDT_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM5_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM4_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM3_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, GDMA_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, GPU_PP1_RESET_MASK, + GPU_PP1_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, GPU_PP0_RESET_MASK, + GPU_PP0_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, GPU_RESET_MASK, + GPU_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, GT_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, SATA_RESET_MASK, + SATA_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU3_PWRON_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU2_PWRON_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU1_PWRON_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU0_PWRON_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, APU_L2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU3_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_DDR_SS, DDR_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_DDR_SS, DDR_APM_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RESET_CTRL, SOFT_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU0, GEM0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU0, GEM1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU0, GEM2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU0, GEM3_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, QSPI_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, UART0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, UART1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, SPI0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, SPI1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, SDIO0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, SDIO1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, CAN0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, CAN1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, I2C0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, I2C1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, TTC0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, TTC1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, TTC2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, TTC3_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, SWDT_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, NAND_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, ADMA_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, GPIO_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, IOU_CC_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, TIMESTAMP_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, RPU_R50_RESET_MASK, + R50_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, RPU_R51_RESET_MASK, + R51_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, RPU_AMBA_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, OCM_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, RPU_PGE_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB0_CORERESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB1_CORERESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB0_HIBERRESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB1_HIBERRESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB0_APB_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB1_APB_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, IPI_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, APM_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, RTC_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, SYSMON_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, AFI_FM6_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, LPD_SWDT_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, FPD_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_DBG, RPU_DBG1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_DBG, RPU_DBG0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_DBG, DBG_LPD_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_DBG, DBG_FPD_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_APLL_CTRL, APLL_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_DPLL_CTRL, DPLL_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_VPLL_CTRL, VPLL_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_IOPLL_CTRL, IOPLL_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RPLL_CTRL, RPLL_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL3_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL4_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL5_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL6_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL7_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL8_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL9_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL10_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL11_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL12_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL13_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL14_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL15_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL16_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL17_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL18_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL19_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL20_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL21_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL22_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL23_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL24_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL25_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL26_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL27_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL28_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL29_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL30_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL31_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_GLB_RST_CTRL, RPU_LS_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_GLB_RST_CTRL, PS_ONLY_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_NOSUP)}, + /* All fields invalidated for PL since not supported */ + {XRESETPS_REGADDR_INVALID, XRESETPS_BM_INVALID, + XRESETPS_BM_INVALID, XRESETPS_PT_INVALID, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, +}; +#endif + +/***************** Macros (Inline Functions) Definitions *********************/ + +/****************************************************************************/ +/** +* +* Initialize a specific reset controller instance/driver. This function +* must be called before other functions of the driver are called. +* +* @param InstancePtr is a pointer to the XResetPs instance. +* @param ConfigPtr is the config structure. +* @param EffectiveAddress is the base address for the device. It could be +* a virtual address if address translation is supported in the +* system, otherwise it is the physical address. +* +* @return +* - XST_SUCCESS if initialization was successful. +* +* @note None. +* +******************************************************************************/ +XStatus XResetPs_CfgInitialize(XResetPs *InstancePtr, + XResetPs_Config *ConfigPtr, u32 EffectiveAddress) +{ + /* Arguments validation */ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid(ConfigPtr != NULL); + + /* Copying instance */ + InstancePtr->Config.DeviceId = ConfigPtr->DeviceId; + InstancePtr->Config.BaseAddress = EffectiveAddress; + + return XST_SUCCESS; +} + +#if !EL1_NONSECURE +/****************************************************************************/ +/** +* +* Pulse Reset RPU. +* +* @param None. +* +* @return +* - XST_SUCCESS if successful else error code. +* +* @note The pulse reset sequence is referred from ug1085(v1.3) +* chapter-38. Few changes to the sequence are adpoted from PMUFW. +* +******************************************************************************/ +static XStatus XResetPs_PulseResetRpuLs(void) +{ + u32 TimeOut; + u32 RegValue; + + /* Block Cortex-R5 master interface */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~RPU_MASTER_ISO_MASK); + RegValue |= RPU_MASTER_ISO_MASK; + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + /* Wait for acknowledgment from AIB until timeout */ + TimeOut = XRESETPS_AIB_PSPL_DELAY; + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_ACK_CTRL); + while ((TimeOut > 0U) && + ((RegValue & RPU_MASTER_ISO_MASK) != RPU_MASTER_ISO_MASK)) { + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_ACK_CTRL); + TimeOut--; + } + + if (TimeOut == 0U) { + /* + * @NOTE: + * AIB ack Timed Out. + * As per ug1085(v1.3), nothing is to be done on timeout, hence + * continuing with reset sequence. + */ + } + + /* Block Cortex-R5 slave interface */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~RPU_SLAVE_ISO_MASK); + RegValue |= RPU_SLAVE_ISO_MASK; + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + /* Wait for acknowledgment from AIB until timeout */ + TimeOut = XRESETPS_AIB_PSPL_DELAY; + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_ACK_CTRL); + while ((TimeOut > 0U) && + ((RegValue & RPU_SLAVE_ISO_MASK) != RPU_SLAVE_ISO_MASK)) { + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_ACK_CTRL); + TimeOut--; + } + + if (TimeOut == 0U) { + /* + * @NOTE: + * AIB ack Timed Out. + * As per ug1085(v1.3), nothing is to be done on timeout, hence + * continuing with reset sequence. + */ + } + + /* Unblock Cortex-R5 master interface */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~RPU_MASTER_ISO_MASK); + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + /* Initiate Cortex-R5 LockStep reset */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_RST_CTRL); + RegValue |= RPU_LS_RESET_MASK; + XResetPs_WriteReg(XRESETPS_PMU_GLB_RST_CTRL, RegValue); + + /* Wait */ + TimeOut = XRESETPS_RST_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + + /* Release Cortex-R5 from Reset */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_RST_CTRL); + RegValue &= (~RPU_LS_RESET_MASK); + XResetPs_WriteReg(XRESETPS_PMU_GLB_RST_CTRL, RegValue); + + /* Wait */ + TimeOut = XRESETPS_RST_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + + /* Unblock Cortex-R5 slave interface */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~RPU_SLAVE_ISO_MASK); + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + return XST_SUCCESS; +} + +/****************************************************************************/ +/** +* +* Pulse Reset PS only. +* +* @param None. +* +* @return +* - XST_SUCCESS if successful else error code. +* +* @note The pulse reset sequence is referred from ug1085(v1.3) +* chapter-38. Few changes to the sequence are adpoted from PMUFW. +* +******************************************************************************/ +static XStatus XResetPs_PulseResetPsOnly(void) +{ + + u32 RegValue; + u32 TimeOut; + u8 ReconfirmAckCnt; + + /* TODO: Set PMU Error to indicate to PL */ + + /* Block FPD to PL and LPD to PL interfaces with AIB (in PS) */ + XResetPs_WriteReg(XRESETPS_PMU_GLB_AIB_CTRL, AIB_ISO_CTRL_MASK); + + /* + * @NOTE: Updated referring PMUFW + * There is a possibility of glitch in AIB ack signal to PMU, hence ack + * needs reconfirmation. + */ + /* Wait for AIB ack or Timeout */ + ReconfirmAckCnt = XRESETPS_AIB_PSPL_RECONFIRM_CNT; + do { + TimeOut = XRESETPS_AIB_PSPL_DELAY; + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_AIB_STATUS); + while ((TimeOut > 0U) && + ((RegValue & AIB_ISO_STATUS_MASK) != AIB_ISO_STATUS_MASK)) { + RegValue = + XResetPs_ReadReg(XRESETPS_PMU_GLB_AIB_STATUS); + TimeOut--; + } + + if (TimeOut == 0U) { + /* + * @NOTE: + * AIB ack Timed Out. + * As per ug1085(v1.3), nothing is to be done on + * timeout, hence continuing with reset sequence. + */ + ReconfirmAckCnt = 0U; + } else { + ReconfirmAckCnt--; + } + } + while (ReconfirmAckCnt > 0U); + + /* + * @NOTE: Updated referring PMUFW. + * Check if we are running Silicon version 1.0. If so, + * bypass the RPLL before initiating the reset. This is + * due to a bug in 1.0 Silicon wherein the PS hangs on a + * reset if the RPLL is in use. + */ + RegValue = XResetPs_ReadReg(XRESETPS_CSU_VERSION_REG); + if (XRESETPS_PLATFORM_PS_VER1 == (RegValue & PS_VERSION_MASK)) { + RegValue = XResetPs_ReadReg(XRESETPS_CRL_APB_RPLL_CTRL); + RegValue |= RPLL_BYPASS_MASK; + XResetPs_WriteReg(XRESETPS_CRL_APB_RPLL_CTRL, RegValue); + } + + /* Block the propagation of the PROG signal to the PL */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_PS_CTRL); + RegValue &= (~PROG_ENABLE_MASK); + XResetPs_WriteReg(XRESETPS_PMU_GLB_PS_CTRL, RegValue); + + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_PS_CTRL); + RegValue |= PROG_GATE_MASK; + XResetPs_WriteReg(XRESETPS_PMU_GLB_PS_CTRL, RegValue); + + /* Initiate PS-only reset */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_RST_CTRL); + RegValue |= PS_ONLY_RESET_MASK; + XResetPs_WriteReg(XRESETPS_PMU_GLB_RST_CTRL, RegValue); + + return XST_SUCCESS; +} + +/****************************************************************************/ +/** +* +* Pulse Reset FPD. +* +* @param None. +* +* @return +* - XST_SUCCESS if successful else error code. +* +* @note The pulse reset sequence is referred from ug1085(v1.3) +* chapter-38. Few changes to the sequence are adpoted from PMUFW. +* +******************************************************************************/ +static XStatus XResetPs_PulseResetFpd(void) +{ + u32 TimeOut; + u32 RegValue; + + /* Enable FPD to LPD isolations */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~FPD_TO_LPD_ISO_MASK); + RegValue |= FPD_TO_LPD_ISO_MASK; + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SLCR_APBISO_REQ_CTRL); + RegValue |= GPU_ISO_MASK; + XResetPs_WriteReg(XRESETPS_LPD_SLCR_APBISO_REQ_CTRL, RegValue); + + /* Enable LPD to FPD isolations */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~LPD_TO_FPD_ISO_MASK); + RegValue |= LPD_TO_FPD_ISO_MASK; + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + /* + * Here we need to check for AIB ack, since nothing is done incase + * ack is not received, we are just waiting for specified timeout + * and continuing + */ + TimeOut = XRESETPS_AIB_ISO_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + + /* Initiate FPD reset */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_RST_CTRL); + RegValue |= FPD_APU_RESET_MASK; + XResetPs_WriteReg(XRESETPS_PMU_GLB_RST_CTRL, RegValue); + + /* Wait till reset propagates */ + TimeOut = XRESETPS_RST_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + + /* Disable FPD to LPD isolations */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~FPD_TO_LPD_ISO_MASK); + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SLCR_APBISO_REQ_CTRL); + RegValue &= (~GPU_ISO_MASK); + XResetPs_WriteReg(XRESETPS_LPD_SLCR_APBISO_REQ_CTRL, RegValue); + + /* Release from Reset and wait till it propagates */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_RST_CTRL); + RegValue &= (~FPD_APU_RESET_MASK); + XResetPs_WriteReg(XRESETPS_PMU_GLB_RST_CTRL, RegValue); + + /* Wait till reset propagates */ + TimeOut = XRESETPS_RST_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + + /* Disable LPD to FPD isolations */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~LPD_TO_FPD_ISO_MASK); + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + return XST_SUCCESS; +} +#endif + +/****************************************************************************/ +/** +* +* Assert reset for specific peripheral based on reset ID. +* +* @param InstancePtr is a pointer to the XResetPs instance. +* @param ResetID is the ID of the peripheral. +* +* @return +* - XST_SUCCESS if reset assertion was successful. +* - Error Code otherwise. +* +* @note None. +* +******************************************************************************/ +XStatus XResetPs_ResetAssert(XResetPs *InstancePtr, + const XResetPs_RstId ResetID) +{ + /* Arguments validation */ + Xil_AssertNonvoid(InstancePtr != NULL); + if ((ResetID > XRESETPS_RSTID_END) || + (ResetID < XRESETPS_RSTID_START)) { + return XST_INVALID_PARAM; + } + +#if EL1_NONSECURE + /* Assert reset via PMUFW */ + u64 SmcArgs; + XSmc_OutVar out; + + SmcArgs = (u64)XRESETPS_RSTACT_ASSERT << 32; + SmcArgs |= ((u64)(ResetID + XRESETPS_RSTID_BASE)); + + out = Xil_Smc(PM_ASSERT_SMC_FID, SmcArgs, 0, 0, 0, 0, 0, 0); + + return ((u32)out.Arg0); +#else + u32 RegAddr; + u32 RegBitmask; + u32 RegValue; + + /* Ignoring Nodes that doesnot support assert */ + if (!XRESETPS_CHK_ASSERT_SUPPORT(ResetMap[ResetID].SupportedActions)) { + return XST_NO_FEATURE; + } + + RegAddr = ResetMap[ResetID].SlcrregAddr; + RegBitmask = ResetMap[ResetID].SlcrregBitmask; + + /* Enable bit to assert reset */ + RegValue = XResetPs_ReadReg(RegAddr); + RegValue |= RegBitmask; + XResetPs_WriteReg(RegAddr, RegValue); + + return XST_SUCCESS; +#endif +} + +/****************************************************************************/ +/** +* +* Deassert reset for specific peripheral based on reset ID. +* +* @param InstancePtr is a pointer to the XResetPs instance. +* @param ResetID is the ID of the peripheral. +* +* @return +* - XST_SUCCESS if reset deassertion was successful. +* - Error Code otherwise. +* +* @note None. +* +******************************************************************************/ +XStatus XResetPs_ResetDeassert(XResetPs *InstancePtr, + const XResetPs_RstId ResetID) +{ + /* Arguments validation */ + Xil_AssertNonvoid(InstancePtr != NULL); + if ((ResetID > XRESETPS_RSTID_END) || + (ResetID < XRESETPS_RSTID_START)) { + return XST_INVALID_PARAM; + } + +#if EL1_NONSECURE + /* Deassert reset via PMUFW */ + u64 SmcArgs; + XSmc_OutVar out; + + SmcArgs = (u64)XRESETPS_RSTACT_RELEASE << 32; + SmcArgs |= ((u64)(ResetID + XRESETPS_RSTID_BASE)); + + out = Xil_Smc(PM_ASSERT_SMC_FID, SmcArgs, 0, 0, 0, 0, 0, 0); + + return ((u32)out.Arg0); +#else + u32 RegAddr; + u32 RegBitmask; + u32 RegValue; + + /* Ignoring Nodes that does not support deassert */ + if (!XRESETPS_CHK_ASSERT_SUPPORT(ResetMap[ResetID].SupportedActions)) { + return XST_NO_FEATURE; + } + + RegAddr = ResetMap[ResetID].SlcrregAddr; + RegBitmask = ResetMap[ResetID].SlcrregBitmask; + + /* Disable bit to deassert reset */ + RegValue = XResetPs_ReadReg(RegAddr); + RegValue &= (~RegBitmask); + XResetPs_WriteReg(RegAddr, RegValue); + + return XST_SUCCESS; +#endif +} + +/****************************************************************************/ +/** +* +* Pulse reset for specific peripheral based on reset ID. +* +* @param InstancePtr is a pointer to the XResetPs instance. +* @param ResetID is the ID of the peripheral. +* +* @return +* - XST_SUCCESS if pulse reset was successful. +* - Error Code otherwise. +* +* @note None. +* +******************************************************************************/ +XStatus XResetPs_ResetPulse(XResetPs *InstancePtr, const XResetPs_RstId ResetID) +{ + /* Arguments validation */ + Xil_AssertNonvoid(InstancePtr != NULL); + if ((ResetID > XRESETPS_RSTID_END) || + (ResetID < XRESETPS_RSTID_START)) { + return XST_INVALID_PARAM; + } + +#if EL1_NONSECURE + /* Pulse reset via PMUFW */ + u64 SmcArgs; + XSmc_OutVar out; + + SmcArgs = (u64)XRESETPS_RSTACT_PULSE << 32; + SmcArgs |= ((u64)(ResetID + XRESETPS_RSTID_BASE)); + + out = Xil_Smc(PM_ASSERT_SMC_FID, SmcArgs, 0, 0, 0, 0, 0, 0); + + return ((u32)out.Arg0); +#else + u32 RegAddr; + u32 RegBitmask; + u32 RegValue; + u32 TimeOut; + + /* Ignoring Nodes that donot support pulse reset */ + if (!XRESETPS_CHK_PULSE_SUPPORT(ResetMap[ResetID].SupportedActions)) { + return XST_NO_FEATURE; + } + + /* Handling specific pulse resets */ + switch (ResetID) { + case XRESETPS_RSTID_FPD: + return XResetPs_PulseResetFpd(); + case XRESETPS_RSTID_RPU_LS: + return XResetPs_PulseResetRpuLs(); + case XRESETPS_RSTID_PS_ONLY: + return XResetPs_PulseResetPsOnly(); + default: + break; + } + + RegAddr = ResetMap[ResetID].SlcrregAddr; + RegBitmask = ResetMap[ResetID].SlcrregBitmask; + + /* Power state mask validation */ + if ((ResetMap[ResetID].PulseType == XRESETPS_PT_DLY_PSCHK) && + (ResetMap[ResetID].PwrStateBitmask != XRESETPS_BM_INVALID)) { + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_PWR_STATUS); + if (ResetMap[ResetID].PwrStateBitmask != + (RegValue && ResetMap[ResetID].PwrStateBitmask )) { + return XST_REGISTER_ERROR; + } + } + + /* Enable bit to assert reset */ + RegValue = XResetPs_ReadReg(RegAddr); + RegValue |= RegBitmask; + XResetPs_WriteReg(RegAddr, RegValue); + + /* Wait for assert propogation */ + if (ResetMap[ResetID].PulseType != XRESETPS_PT_NO_DLY_NO_PSCHK) { + TimeOut = XRESETPS_PULSE_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + } + + /* Disable bit to deassert reset */ + RegValue = XResetPs_ReadReg(RegAddr); + RegValue &= (~RegBitmask); + XResetPs_WriteReg(RegAddr, RegValue); + + /* Wait for release propogation */ + if (ResetMap[ResetID].PulseType != XRESETPS_PT_NO_DLY_NO_PSCHK) { + TimeOut = XRESETPS_PULSE_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + } + + return XST_SUCCESS; +#endif +} + +/****************************************************************************/ +/** +* +* Get reset status for specific peripheral based on reset ID. +* +* @param InstancePtr is a pointer to the XResetPs instance. +* @param ResetID is the ID of the peripheral. +* @param Status is the status of reset for ResetID. +* 1 if asserted and 0 if released +* +* @return +* - XST_SUCCESS if status fetched successful. +* - Error Code otherwise. +* +* @note None. +* +******************************************************************************/ +XStatus XResetPs_ResetStatus(XResetPs *InstancePtr, + const XResetPs_RstId ResetID, XResetPs_RstStatus *Status) +{ + /* Arguments validation */ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid(Status != NULL); + if ((ResetID > XRESETPS_RSTID_END) || + (ResetID < XRESETPS_RSTID_START)) { + return XST_INVALID_PARAM; + } + +#if EL1_NONSECURE + /* Get reset status via PMUFW */ + XSmc_OutVar out; + + out = Xil_Smc(PM_GETSTATUS_SMC_FID, + ((u64)(ResetID + XRESETPS_RSTID_BASE)), 0, 0, 0, 0, 0, 0); + *Status = ((u32)(out.Arg0 >> 32)); + + return ((u32)out.Arg0); +#else + u32 RegAddr; + u32 RegBitmask; + u32 RegValue; + + /* Ignoring Nodes that donot support reset status */ + if (!XRESETPS_CHK_STATUS_SUPPORT(ResetMap[ResetID].SupportedActions)) { + return XST_NO_FEATURE; + } + + /* + * @NOTE: + * This will always move to else part as GPO3 are ignored because + * XRESETPS_PMU_LCL_READ_CTRL is not accessible. + */ + /* GPO3PL have status address different from control address */ + if ((ResetID >= XRESETPS_RSTID_GPO3PL0) && + (ResetID <= XRESETPS_RSTID_GPO3PL31)) { + RegAddr = XRESETPS_PMU_LCL_READ_CTRL; + } else { + RegAddr = ResetMap[ResetID].SlcrregAddr; + } + + RegBitmask = ResetMap[ResetID].SlcrregBitmask; + + RegValue = XResetPs_ReadReg(RegAddr); + if ((RegValue & RegBitmask) == RegBitmask) { + *Status = XRESETPS_RESETASSERTED; + } else { + *Status = XRESETPS_RESETRELEASED; + } + + return XST_SUCCESS; +#endif +} + +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps.h new file mode 100644 index 000000000..f6a632b4e --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps.h @@ -0,0 +1,382 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file xresetps.h +* @addtogroup xresetps_v1_0 +* @{ +* @details +* +* The Xilinx Reset Controller driver supports the following features: +* - Assert reset for specific peripheral. +* - Deassert reset for specific peripheral. +* - Pulse reset for specific peripheral. +* - Get reset status for specific peripheral. +* +* This driver is intended to be RTOS and processor independent. It works with +* physical addresses only. Any needs for dynamic memory management, threads +* or thread mutual exclusion, virtual memory, or cache control must be +* satisfied by the layer above this driver. +* +*
+* MODIFICATION HISTORY:
+* Ver   Who    Date     Changes
+* ----- ------ -------- -----------------------------------------------
+* 1.00  cjp    09/05/17 First release
+* 
+* +******************************************************************************/ +#ifndef XRESETPS_H /* prevent circular inclusions */ +#define XRESETPS_H /* by using protection macros */ + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************** Include Files *********************************/ +#include "xil_types.h" +#include "xil_assert.h" +#include "xstatus.h" +#include "xresetps_hw.h" + +#if defined (__aarch64__) +#include "xil_smc.h" +#endif + +/************************** Constant Definitions *****************************/ +/* + * Constants for supported/Not supported reset actions + */ +#define XRESETPS_SUP 1 +#define XRESETPS_NOSUP 0 + +/**************************** Type Definitions *******************************/ +/** + * This typedef contains configuration information for the device. + */ +typedef struct { + u16 DeviceId; /**< Unique ID of device */ + u32 BaseAddress; /**< Base address of the device */ +} XResetPs_Config; + +/** + * The XResetPs driver instance data. The user is required to allocate a + * variable of this type for every reset controller device in the system. + * A pointer to a variable of this type is then passed to the driver API + * functions. + */ +typedef struct { + XResetPs_Config Config; /**< Hardware Configuration */ +} XResetPs; + +/** + * This typedef defines type of pulse reset to be executed for peripherals. + * 3 type of pulse reset are possible: + * 1. Pulse with no delay and no power state validation + * 2. Pulse with delay but no power state validation + * 3. Pulse with delay and power state validation + */ +typedef enum { + XRESETPS_PT_NO_DLY_NO_PSCHK, /**< No delay, no power state check */ + XRESETPS_PT_DLY_NO_PSCHK, /**< Delay, no power state check */ + XRESETPS_PT_DLY_PSCHK, /**< Delay, power state check */ + XRESETPS_PT_INVALID, /**< Invalid pulse type */ +} XResetPs_PulseTypes; + +/** + * This typedef defines reset actions on the peripherals. + */ +typedef enum { + XRESETPS_RSTACT_RELEASE, + XRESETPS_RSTACT_ASSERT, + XRESETPS_RSTACT_PULSE, +} XresetPs_ResetAction; + +/** + * This typedef defines resetIDs of peripherals maps to PMUFW resetIDs. This + * resetIDs are not offseted by 1000 and are relative. + */ +typedef enum { + XRESETPS_RSTID_START, + XRESETPS_RSTID_PCIE_CFG = XRESETPS_RSTID_START, + XRESETPS_RSTID_PCIE_BRIDGE, + XRESETPS_RSTID_PCIE_CTRL, + XRESETPS_RSTID_DP, + XRESETPS_RSTID_SWDT_CRF, + XRESETPS_RSTID_AFI_FM5, + XRESETPS_RSTID_AFI_FM4, + XRESETPS_RSTID_AFI_FM3, + XRESETPS_RSTID_AFI_FM2, + XRESETPS_RSTID_AFI_FM1, + XRESETPS_RSTID_AFI_FM0, + XRESETPS_RSTID_GDMA, + XRESETPS_RSTID_GPU_PP1, + XRESETPS_RSTID_GPU_PP0, + XRESETPS_RSTID_GPU, + XRESETPS_RSTID_GT, + XRESETPS_RSTID_SATA, + XRESETPS_RSTID_ACPU3_PWRON, + XRESETPS_RSTID_ACPU2_PWRON, + XRESETPS_RSTID_ACPU1_PWRON, + XRESETPS_RSTID_ACPU0_PWRON, + XRESETPS_RSTID_APU_L2, + XRESETPS_RSTID_ACPU3, + XRESETPS_RSTID_ACPU2, + XRESETPS_RSTID_ACPU1, + XRESETPS_RSTID_ACPU0, + XRESETPS_RSTID_DDR, + XRESETPS_RSTID_APM_FPD, + XRESETPS_RSTID_SOFT, + XRESETPS_RSTID_GEM0, + XRESETPS_RSTID_GEM1, + XRESETPS_RSTID_GEM2, + XRESETPS_RSTID_GEM3, + XRESETPS_RSTID_QSPI, + XRESETPS_RSTID_UART0, + XRESETPS_RSTID_UART1, + XRESETPS_RSTID_SPI0, + XRESETPS_RSTID_SPI1, + XRESETPS_RSTID_SDIO0, + XRESETPS_RSTID_SDIO1, + XRESETPS_RSTID_CAN0, + XRESETPS_RSTID_CAN1, + XRESETPS_RSTID_I2C0, + XRESETPS_RSTID_I2C1, + XRESETPS_RSTID_TTC0, + XRESETPS_RSTID_TTC1, + XRESETPS_RSTID_TTC2, + XRESETPS_RSTID_TTC3, + XRESETPS_RSTID_SWDT_CRL, + XRESETPS_RSTID_NAND, + XRESETPS_RSTID_ADMA, + XRESETPS_RSTID_GPIO, + XRESETPS_RSTID_IOU_CC, + XRESETPS_RSTID_TIMESTAMP, + XRESETPS_RSTID_RPU_R50, + XRESETPS_RSTID_RPU_R51, + XRESETPS_RSTID_RPU_AMBA, + XRESETPS_RSTID_OCM, + XRESETPS_RSTID_RPU_PGE, + XRESETPS_RSTID_USB0_CORERESET, + XRESETPS_RSTID_USB1_CORERESET, + XRESETPS_RSTID_USB0_HIBERRESET, + XRESETPS_RSTID_USB1_HIBERRESET, + XRESETPS_RSTID_USB0_APB, + XRESETPS_RSTID_USB1_APB, + XRESETPS_RSTID_IPI, + XRESETPS_RSTID_APM_LPD, + XRESETPS_RSTID_RTC, + XRESETPS_RSTID_SYSMON, + XRESETPS_RSTID_AFI_FM6, + XRESETPS_RSTID_LPD_SWDT, + XRESETPS_RSTID_FPD, + XRESETPS_RSTID_RPU_DBG1, + XRESETPS_RSTID_RPU_DBG0, + XRESETPS_RSTID_DBG_LPD, + XRESETPS_RSTID_DBG_FPD, + XRESETPS_RSTID_APLL, + XRESETPS_RSTID_DPLL, + XRESETPS_RSTID_VPLL, + XRESETPS_RSTID_IOPLL, + XRESETPS_RSTID_RPLL, + XRESETPS_RSTID_GPO3PL0, + XRESETPS_RSTID_GPO3PL1, + XRESETPS_RSTID_GPO3PL2, + XRESETPS_RSTID_GPO3PL3, + XRESETPS_RSTID_GPO3PL4, + XRESETPS_RSTID_GPO3PL5, + XRESETPS_RSTID_GPO3PL6, + XRESETPS_RSTID_GPO3PL7, + XRESETPS_RSTID_GPO3PL8, + XRESETPS_RSTID_GPO3PL9, + XRESETPS_RSTID_GPO3PL10, + XRESETPS_RSTID_GPO3PL11, + XRESETPS_RSTID_GPO3PL12, + XRESETPS_RSTID_GPO3PL13, + XRESETPS_RSTID_GPO3PL14, + XRESETPS_RSTID_GPO3PL15, + XRESETPS_RSTID_GPO3PL16, + XRESETPS_RSTID_GPO3PL17, + XRESETPS_RSTID_GPO3PL18, + XRESETPS_RSTID_GPO3PL19, + XRESETPS_RSTID_GPO3PL20, + XRESETPS_RSTID_GPO3PL21, + XRESETPS_RSTID_GPO3PL22, + XRESETPS_RSTID_GPO3PL23, + XRESETPS_RSTID_GPO3PL24, + XRESETPS_RSTID_GPO3PL25, + XRESETPS_RSTID_GPO3PL26, + XRESETPS_RSTID_GPO3PL27, + XRESETPS_RSTID_GPO3PL28, + XRESETPS_RSTID_GPO3PL29, + XRESETPS_RSTID_GPO3PL30, + XRESETPS_RSTID_GPO3PL31, + XRESETPS_RSTID_RPU_LS, + XRESETPS_RSTID_PS_ONLY, + XRESETPS_RSTID_PL, + XRESETPS_RSTID_END = XRESETPS_RSTID_PL, +} XResetPs_RstId; + +/** + * This typedef defines possible values for reset status of peripherals. + */ +typedef enum { + XRESETPS_RESETRELEASED, + XRESETPS_RESETASSERTED +} XResetPs_RstStatus; + +/***************** Macros (Inline Functions) Definitions *********************/ +/****************************************************************************/ +/** +* +* Set supported reset action. +* +* @param StatusSupport indicates if reset status check is supported +* @param PulseSupport indicates if pulse reset action is supported +* @param AssertSupport indicates if reset assert/deassert is supported +* +* @return Supported reset actions +* +* @note Here bit fields are used decide supported actions as defined +* below: +* BIT 1 - Assert/Deassert +* BIT 2 - Pulse +* BIT 3 - Reset status +* Bit set indicates corresponding action is supported and +* vice versa. +******************************************************************************/ +#define XRESETPS_SUPPORTED_ACT(ResetSupport, PulseSupport, AssertSupport) \ + ((ResetSupport << 2) | (PulseSupport << 1) | AssertSupport) + +/****************************************************************************/ +/** +* +* Check if assert/dessert reset is supported. +* +* @param Actions is supported reset actions +* +* @return 1 - Supported +* 0 - Not Supported +* +* @note None. +* +******************************************************************************/ +#define XRESETPS_CHK_ASSERT_SUPPORT(Actions) ((Actions & 0x1)) + +/****************************************************************************/ +/** +* +* Check if pulse reset is supported. +* +* @param Actions is supported reset actions +* +* @return 1 - Supported +* 0 - Not Supported +* +* @note None. +* +******************************************************************************/ +#define XRESETPS_CHK_PULSE_SUPPORT(Actions) ((Actions & 0x2) >> 1) + +/****************************************************************************/ +/** +* +* Check if Status check is supported. +* +* @param Actions is supported reset actions +* +* @return 1 - Supported +* 0 - Not Supported +* +* @note None. +* +******************************************************************************/ +#define XRESETPS_CHK_STATUS_SUPPORT(Actions) ((Actions & 0x4) >> 2) + +/****************************************************************************/ +/** +* +* Read the given register. +* +* @param RegAddress is the address of the register to read +* +* @return The 32-bit value of the register +* +* @note None. +* +******************************************************************************/ +#define XResetPs_ReadReg(RegAddress) \ + Xil_In32((u32)RegAddress) + +/****************************************************************************/ +/** +* +* Write the given register. +* +* @param RegAddress is the address of the register to write +* @param Data is the 32-bit value to write to the register +* +* @return None. +* +* @note None. +* +******************************************************************************/ +#define XResetPs_WriteReg(RegAddress, Data) \ + Xil_Out32((u32)RegAddress, (u32)Data) + +/************************** Function Prototypes ******************************/ + +/* + * Lookup configuration in xresetps_sinit.c. + */ +XResetPs_Config *XResetPs_LookupConfig(u16 DeviceId); + +/* + * Interface functions in xresetps.c + */ +XStatus XResetPs_CfgInitialize(XResetPs *InstancePtr, + XResetPs_Config *ConfigPtr, u32 EffectiveAddress); +XStatus XResetPs_ResetAssert(XResetPs *InstancePtr, + const XResetPs_RstId ResetID); +XStatus XResetPs_ResetDeassert(XResetPs *InstancePtr, + const XResetPs_RstId ResetID); +XStatus XResetPs_ResetPulse(XResetPs *InstancePtr, + const XResetPs_RstId ResetID); +XStatus XResetPs_ResetStatus(XResetPs *InstancePtr, + const XResetPs_RstId ResetID, XResetPs_RstStatus *Status); + +#ifdef __cplusplus +} +#endif +#endif /* end of protection macro */ +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_g.c new file mode 100644 index 000000000..529215d65 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_g.c @@ -0,0 +1,53 @@ + +/******************************************************************* +* +* CAUTION: This file is automatically generated by HSI. +* Version: +* DO NOT EDIT. +* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* +*Permission is hereby granted, free of charge, to any person obtaining a copy +*of this software and associated documentation files (the Software), to deal +*in the Software without restriction, including without limitation the rights +*to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +*copies of the Software, and to permit persons to whom the Software is +*furnished to do so, subject to the following conditions: +* +*The above copyright notice and this permission notice shall be included in +*all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +*(a) running on a Xilinx device, or +*(b) that interact with a Xilinx device through a bus or interconnect. +* +*THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +*IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +*FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +*XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +*WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT +*OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* +*Except as contained in this notice, the name of the Xilinx shall not be used +*in advertising or otherwise to promote the sale, use or other dealings in +*this Software without prior written authorization from Xilinx. +* + +* +* Description: Driver configuration +* +*******************************************************************/ + +#include "xparameters.h" +#include "xresetps.h" + +/* +* The configuration table for devices +*/ + +XResetPs_Config XResetPs_ConfigTable[XPAR_XRESETPS_NUM_INSTANCES] = +{ + { + XPAR_XRESETPS_DEVICE_ID, + XPAR_XRESETPS_BASEADDR, + } +}; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_hw.h new file mode 100644 index 000000000..a97162d75 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_hw.h @@ -0,0 +1,327 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file xresetps_hw.h +* @addtogroup xresetps_v1_0 +* @{ +* +* This file contains the hardware interface to the System Reset controller. +* +*
+* MODIFICATION HISTORY:
+* Ver   Who    Date     Changes
+* ----- ------ -------- ---------------------------------------------
+* 1.00  cjp    09/05/17 First release
+* 
+* +******************************************************************************/ +#ifndef XRESETPS_HW_H /* prevent circular inclusions */ +#define XRESETPS_HW_H /* by using protection macros */ + +/***************************** Include Files *********************************/ +#include "xil_types.h" +#include "xil_assert.h" +#include "xil_io.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************** Constant Definitions *****************************/ +/* Register address defines */ +/* CRF_APB defines */ +#define XRESETPS_CRF_APB_BASE (0XFD1A0000U) +/* RST_FPD_TOP Address and mask definations */ +#define XRESETPS_CRF_APB_RST_FPD_TOP \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X00000100U)) +#define PCIE_CFG_RESET_MASK ((u32)0X00080000U) +#define PCIE_BRIDGE_RESET_MASK ((u32)0X00040000U) +#define PCIE_CTRL_RESET_MASK ((u32)0X00020000U) +#define DP_RESET_MASK ((u32)0X00010000U) +#define SWDT_RESET_MASK ((u32)0X00008000U) +#define AFI_FM5_RESET_MASK ((u32)0X00001000U) +#define AFI_FM4_RESET_MASK ((u32)0X00000800U) +#define AFI_FM3_RESET_MASK ((u32)0X00000400U) +#define AFI_FM2_RESET_MASK ((u32)0X00000200U) +#define AFI_FM1_RESET_MASK ((u32)0X00000100U) +#define AFI_FM0_RESET_MASK ((u32)0X00000080U) +#define GDMA_RESET_MASK ((u32)0X00000040U) +#define GPU_PP1_RESET_MASK ((u32)0X00000020U) +#define GPU_PP0_RESET_MASK ((u32)0X00000010U) +#define GPU_RESET_MASK ((u32)0X00000008U) +#define GT_RESET_MASK ((u32)0X00000004U) +#define SATA_RESET_MASK ((u32)0X00000002U) +/* RST_FPD_APU Address and mask definations */ +#define XRESETPS_CRF_APB_RST_FPD_APU \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X00000104U)) +#define ACPU3_PWRON_RESET_MASK ((u32)0X00002000U) +#define ACPU2_PWRON_RESET_MASK ((u32)0X00001000U) +#define ACPU1_PWRON_RESET_MASK ((u32)0X00000800U) +#define ACPU0_PWRON_RESET_MASK ((u32)0X00000400U) +#define APU_L2_RESET_MASK ((u32)0X00000100U) +#define ACPU3_RESET_MASK ((u32)0X00000008U) +#define ACPU2_RESET_MASK ((u32)0X00000004U) +#define ACPU1_RESET_MASK ((u32)0X00000002U) +#define ACPU0_RESET_MASK ((u32)0X00000001U) +/* RST_DDR_SS Address and mask definations */ +#define XRESETPS_CRF_APB_RST_DDR_SS \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X00000108U)) +#define DDR_RESET_MASK ((u32)0X00000008U) +#define DDR_APM_RESET_MASK ((u32)0X00000004U) +/* APLL_CTRL Address and mask definations */ +#define XRESETPS_CRF_APB_APLL_CTRL \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X00000020U)) +#define APLL_RESET_MASK ((u32)0X00000001U) +/* DPLL_CTRL Address and mask definations */ +#define XRESETPS_CRF_APB_DPLL_CTRL \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X0000002CU)) +#define DPLL_RESET_MASK ((u32)0X00000001U) +/* VPLL_CTRL Address and mask definations */ +#define XRESETPS_CRF_APB_VPLL_CTRL \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X00000038U)) +#define VPLL_RESET_MASK ((u32)0X00000001U) + +/* CRL_APB defines */ +#define XRESETPS_CRL_APB_BASE (0XFF5E0000U) +/* RESET_CTRL Address and mask definations */ +#define XRESETPS_CRL_APB_RESET_CTRL \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000218U)) +#define SOFT_RESET_MASK ((u32)0X00000010U) +/* RST_LPD_IOU0 Address and mask definations */ +#define XRESETPS_CRL_APB_RST_LPD_IOU0 \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000230U)) +#define GEM0_RESET_MASK ((u32)0X00000001U) +#define GEM1_RESET_MASK ((u32)0X00000002U) +#define GEM2_RESET_MASK ((u32)0X00000004U) +#define GEM3_RESET_MASK ((u32)0X00000008U) +/* RST_LPD_IOU2 Address and mask definations */ +#define XRESETPS_CRL_APB_RST_LPD_IOU2 \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000238U)) +#define QSPI_RESET_MASK ((u32)0X00000001U) +#define UART0_RESET_MASK ((u32)0X00000002U) +#define UART1_RESET_MASK ((u32)0X00000004U) +#define SPI0_RESET_MASK ((u32)0X00000008U) +#define SPI1_RESET_MASK ((u32)0X00000010U) +#define SDIO0_RESET_MASK ((u32)0X00000020U) +#define SDIO1_RESET_MASK ((u32)0X00000040U) +#define CAN0_RESET_MASK ((u32)0X00000080U) +#define CAN1_RESET_MASK ((u32)0X00000100U) +#define I2C0_RESET_MASK ((u32)0X00000200U) +#define I2C1_RESET_MASK ((u32)0X00000400U) +#define TTC0_RESET_MASK ((u32)0X00000800U) +#define TTC1_RESET_MASK ((u32)0X00001000U) +#define TTC2_RESET_MASK ((u32)0X00002000U) +#define TTC3_RESET_MASK ((u32)0X00004000U) +#define SWDT_RESET_MASK ((u32)0X00008000U) +#define NAND_RESET_MASK ((u32)0X00010000U) +#define ADMA_RESET_MASK ((u32)0X00020000U) +#define GPIO_RESET_MASK ((u32)0X00040000U) +#define IOU_CC_RESET_MASK ((u32)0X00080000U) +#define TIMESTAMP_RESET_MASK ((u32)0X00100000U) +/* RST_LPD_TOP Address and mask definations */ +#define XRESETPS_CRL_APB_RST_LPD_TOP \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X0000023CU)) +#define RPU_R50_RESET_MASK ((u32)0X00000001U) +#define RPU_R51_RESET_MASK ((u32)0X00000002U) +#define RPU_AMBA_RESET_MASK ((u32)0X00000004U) +#define OCM_RESET_MASK ((u32)0X00000008U) +#define RPU_PGE_RESET_MASK ((u32)0X00000010U) +#define USB0_CORERESET_MASK ((u32)0X00000040U) +#define USB1_CORERESET_MASK ((u32)0X00000080U) +#define USB0_HIBERRESET_MASK ((u32)0X00000100U) +#define USB1_HIBERRESET_MASK ((u32)0X00000200U) +#define USB0_APB_RESET_MASK ((u32)0X00000400U) +#define USB1_APB_RESET_MASK ((u32)0X00000800U) +#define IPI_RESET_MASK ((u32)0X00004000U) +#define APM_RESET_MASK ((u32)0X00008000U) +#define RTC_RESET_MASK ((u32)0X00010000U) +#define SYSMON_RESET_MASK ((u32)0X00020000U) +#define AFI_FM6_RESET_MASK ((u32)0X00080000U) +#define LPD_SWDT_RESET_MASK ((u32)0X00100000U) +#define FPD_RESET_MASK ((u32)0X00800000U) +/* RST_LPD_DBG Address and mask definations */ +#define XRESETPS_CRL_APB_RST_LPD_DBG \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000240U)) +#define RPU_DBG1_RESET_MASK ((u32)0X00000020U) +#define RPU_DBG0_RESET_MASK ((u32)0X00000010U) +#define DBG_LPD_RESET_MASK ((u32)0X00000002U) +#define DBG_FPD_RESET_MASK ((u32)0X00000001U) +/* IOPLL_CTRL Address and mask definations */ +#define XRESETPS_CRL_APB_IOPLL_CTRL \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000020U)) +#define IOPLL_RESET_MASK ((u32)0X00000001U) +/* RPLL_CTRL Address and mask definations */ +#define XRESETPS_CRL_APB_RPLL_CTRL \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000030U)) +#define RPLL_RESET_MASK ((u32)0X00000001U) +#define RPLL_BYPASS_MASK ((u32)0X00000008U) + +/* PMU_IOM defines */ +#define XRESETPS_PMU_IOM_BASE (0XFFD40000U) +/* PMU_IOM_GPO3 Address and mask definations */ +#define XRESETPS_PMU_IOM_GPO3_CTRL \ + ((XRESETPS_PMU_IOM_BASE) + ((u32)0X0000001CU)) +#define GPO3_PL0_RESET_MASK ((u32)0X00000001U) +#define GPO3_PL1_RESET_MASK ((u32)0X00000002U) +#define GPO3_PL2_RESET_MASK ((u32)0X00000004U) +#define GPO3_PL3_RESET_MASK ((u32)0X00000008U) +#define GPO3_PL4_RESET_MASK ((u32)0X00000010U) +#define GPO3_PL5_RESET_MASK ((u32)0X00000020U) +#define GPO3_PL6_RESET_MASK ((u32)0X00000040U) +#define GPO3_PL7_RESET_MASK ((u32)0X00000080U) +#define GPO3_PL8_RESET_MASK ((u32)0X00000100U) +#define GPO3_PL9_RESET_MASK ((u32)0X00000200U) +#define GPO3_PL10_RESET_MASK ((u32)0X00000400U) +#define GPO3_PL11_RESET_MASK ((u32)0X00000800U) +#define GPO3_PL12_RESET_MASK ((u32)0X00001000U) +#define GPO3_PL13_RESET_MASK ((u32)0X00002000U) +#define GPO3_PL14_RESET_MASK ((u32)0X00004000U) +#define GPO3_PL15_RESET_MASK ((u32)0X00008000U) +#define GPO3_PL16_RESET_MASK ((u32)0X00010000U) +#define GPO3_PL17_RESET_MASK ((u32)0X00020000U) +#define GPO3_PL18_RESET_MASK ((u32)0X00040000U) +#define GPO3_PL19_RESET_MASK ((u32)0X00080000U) +#define GPO3_PL20_RESET_MASK ((u32)0X00100000U) +#define GPO3_PL21_RESET_MASK ((u32)0X00200000U) +#define GPO3_PL22_RESET_MASK ((u32)0X00400000U) +#define GPO3_PL23_RESET_MASK ((u32)0X00800000U) +#define GPO3_PL24_RESET_MASK ((u32)0X01000000U) +#define GPO3_PL25_RESET_MASK ((u32)0X02000000U) +#define GPO3_PL26_RESET_MASK ((u32)0X04000000U) +#define GPO3_PL27_RESET_MASK ((u32)0X08000000U) +#define GPO3_PL28_RESET_MASK ((u32)0X10000000U) +#define GPO3_PL29_RESET_MASK ((u32)0X20000000U) +#define GPO3_PL30_RESET_MASK ((u32)0X40000000U) +#define GPO3_PL31_RESET_MASK ((u32)0X80000000U) + +/* PMU_LCL defines */ +#define XRESETPS_PMU_LCL_BASE (0XFFD60000U) +/* GPO Read control address */ +#define XRESETPS_PMU_LCL_READ_CTRL \ + ((XRESETPS_PMU_LCL_BASE) + ((u32)0X0000021CU)) + +/* PMU_GLB defines */ +#define XRESETPS_PMU_GLB_BASE (0XFFD80000U) +/* PMU_GLB_RST Address and mask definations */ +#define XRESETPS_PMU_GLB_RST_CTRL ((XRESETPS_PMU_GLB_BASE) + ((u32)0X00000608U)) +#define RPU_LS_RESET_MASK ((u32)0X00000100U) +#define FPD_APU_RESET_MASK ((u32)0X00000200U) +#define PS_ONLY_RESET_MASK ((u32)0X00000400U) +/* PMU_GLB_PS Address and mask definations */ +#define XRESETPS_PMU_GLB_PS_CTRL ((XRESETPS_PMU_GLB_BASE) + ((u32)0X00000004U)) +#define PROG_ENABLE_MASK ((u32)0X00000002U) +#define PROG_GATE_MASK ((u32)0X00000001U) +/* PMU_GLB_AIB Address and mask definations */ +#define XRESETPS_PMU_GLB_AIB_CTRL ((XRESETPS_PMU_GLB_BASE) + ((u32)0X00000600U)) +#define LPD_AFI_FM_ISO_MASK ((u32)0X00000001U) +#define LPD_AFI_FS_ISO_MASK ((u32)0X00000002U) +#define FPD_AFI_FM_ISO_MASK ((u32)0X00000004U) +#define FPD_AFI_FS_ISO_MASK ((u32)0X00000008U) +#define AIB_ISO_CTRL_MASK (LPD_AFI_FM_ISO_MASK | LPD_AFI_FS_ISO_MASK | \ + FPD_AFI_FM_ISO_MASK | FPD_AFI_FS_ISO_MASK) +/* PMU_GLB_AIB status Address and mask definations */ +#define XRESETPS_PMU_GLB_AIB_STATUS \ + ((XRESETPS_PMU_GLB_BASE) + ((u32)0X00000604U)) +#define AIB_ISO_STATUS_MASK (AIB_ISO_CTRL_MASK) +/* PMU_GLB_PWR status Address and mask definations */ +#define XRESETPS_PMU_GLB_PWR_STATUS \ + ((XRESETPS_PMU_GLB_BASE) + ((u32)0X00000100U)) +#define FPD_PSCHK_MASK ((u32)0x00400000U) +#define PCIE_CTRL_PSCHK_MASK (FPD_PSCHK_MASK) +#define DP_PSCHK_MASK (FPD_PSCHK_MASK) +#define SATA_PSCHK_MASK (FPD_PSCHK_MASK) +#define R50_PSCHK_MASK ((u32)0x00000400U) +#define R51_PSCHK_MASK ((u32)0x00000800U) +#define GPU_PP0_PSCHK_MASK (((u32)0x00000010U) | (FPD_PSCHK_MASK)) +#define GPU_PP1_PSCHK_MASK (((u32)0x00000020U) | (FPD_PSCHK_MASK)) +#define GPU_PSCHK_MASK ((GPU_PP0_PSCHK_MASK) | \ + (GPU_PP1_PSCHK_MASK) | (FPD_PSCHK_MASK)) + +/* LPD_SLCR defines */ +#define XRESETPS_LPD_SCR_BASE (0XFF410000U) +/* LPD_SCR_AXIISO_REQ and LPD_SCR_AXIISO_ACK Address and mask definations */ +#define XRESETPS_LPD_SCR_AXIISO_REQ_CTRL \ + ((XRESETPS_LPD_SCR_BASE) + ((u32)0X00003030U)) +#define XRESETPS_LPD_SCR_AXIISO_ACK_CTRL \ + ((XRESETPS_LPD_SCR_BASE) + ((u32)0X00003040U)) +#define RPU0_MASTER_ISO_MASK ((u32)0X00010000U) +#define RPU1_MASTER_ISO_MASK ((u32)0X00020000U) +#define RPU_MASTER_ISO_MASK (RPU0_MASTER_ISO_MASK | RPU1_MASTER_ISO_MASK) +#define RPU0_SLAVE_ISO_MASK ((u32)0X00040000U) +#define RPU1_SLAVE_ISO_MASK ((u32)0X00080000U) +#define RPU_SLAVE_ISO_MASK (RPU0_SLAVE_ISO_MASK | RPU1_SLAVE_ISO_MASK) +#define FPD_OCM_ISO_MASK ((u32)0X00000008U) +#define FPD_LPDIBS_ISO_MASK ((u32)0X00000004U) +#define AFIFS1_ISO_MASK ((u32)0X00000002U) +#define AFIFS0_ISO_MASK ((u32)0X00000001U) +#define FPD_TO_LPD_ISO_MASK (FPD_LPDIBS_ISO_MASK | FPD_OCM_ISO_MASK | \ + AFIFS0_ISO_MASK | AFIFS1_ISO_MASK) +#define LPD_DDR_ISO_MASK ((u32)0X08000000U) +#define FPD_MAIN_ISO_MASK ((u32)0X01000000U) +#define LPD_TO_FPD_ISO_MASK (LPD_DDR_ISO_MASK | FPD_MAIN_ISO_MASK) +/* LPD_SLCR_APBISO_REQ Address and mask definations */ +#define XRESETPS_LPD_SLCR_APBISO_REQ_CTRL \ + ((XRESETPS_LPD_SCR_BASE) + ((u32)0X00003048U)) +#define GPU_ISO_MASK ((u32)0X00000001U) + +/* CSU defines */ +#define XRESETPS_CSU_BASE (0xFFCA0000U) +#define XRESETPS_CSU_VERSION_REG ((XRESETPS_CSU_BASE) + ((u32)0x00000044U)) +#define XRESETPS_PLATFORM_PS_VER1 ((u32)0x00000000U) +#define PS_VERSION_MASK ((u32)0x0000000FU) + +/* Timeout delay defines */ +#define XRESETPS_RST_PROP_DELAY (0xFU) +#define XRESETPS_AIB_ISO_DELAY (0xFU) +#define XRESETPS_AIB_PSPL_DELAY (0xFU) +#define XRESETPS_PULSE_PROP_DELAY (0xFU) + +/* AIB ack reconfirmation count */ +#define XRESETPS_AIB_PSPL_RECONFIRM_CNT \ + (0x2U) + +/**************************** Type Definitions *******************************/ + +/***************** Macros (Inline Functions) Definitions *********************/ + +/************************** Function Prototypes ******************************/ + + +/************************** Variable Definitions *****************************/ + +#ifdef __cplusplus +} +#endif +#endif /* end of protection macro */ +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_sinit.c new file mode 100644 index 000000000..eebdc9d1c --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/resetps_v1_0/src/xresetps_sinit.c @@ -0,0 +1,94 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xresetps_sinit.c +* @addtogroup xresetps_v1_0 +* @{ +* +* This file contains method for static initialization (compile-time) of the +* driver. +* +*
+* MODIFICATION HISTORY:
+* Ver   Who    Date     Changes
+* ----- ------ -------- ----------------------------------------------
+* 1.00  cjp    09/05/17 First release
+* 
+* +******************************************************************************/ + +/***************************** Include Files *********************************/ + +#include "xresetps.h" +#include "xparameters.h" + +/************************** Constant Definitions *****************************/ + +/**************************** Type Definitions *******************************/ + + +/***************** Macros (Inline Functions) Definitions *********************/ + +/*************************** Variable Definitions ****************************/ +extern XResetPs_Config XResetPs_ConfigTable[XPAR_XRESETPS_NUM_INSTANCES]; + +/************************** Function Prototypes ******************************/ + +/*****************************************************************************/ +/** +* Lookup the device configuration based on the unique device ID. The table +* contains the configuration info for each device in the system. +* +* @param DeviceId is the unique device ID of the device being looked up. +* +* @return A pointer to the configuration table entry corresponding to the +* given device ID, or NULL if no match is found. +* +* @note None. +* +******************************************************************************/ +XResetPs_Config *XResetPs_LookupConfig(u16 DeviceId) +{ + XResetPs_Config *CfgPtr = NULL; + u32 Index; + + for (Index = 0U; Index < (u32)XPAR_XRESETPS_NUM_INSTANCES; Index++) { + if (XResetPs_ConfigTable[Index].DeviceId == DeviceId) { + CfgPtr = &XResetPs_ConfigTable[Index]; + break; + } + } + return (XResetPs_Config *)CfgPtr; +} +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.c similarity index 96% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.c index c91f61279..c09d1e73c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2015 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -33,7 +33,7 @@ /** * * @file xrtcpsu.c -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * * Functions in this file are the minimum required functions for the XRtcPsu @@ -53,6 +53,8 @@ * 1.2 02/15/16 Corrected Calibration mask and Fractional * mask in CalculateCalibration API. * 1.3 vak 04/25/16 Corrected the RTC read and write time logic(cr#948833). +* 1.5 ms 08/27/17 Fixed compilation warnings. +* ms 08/29/17 Updated code as per source code style. * * ******************************************************************************/ @@ -166,7 +168,7 @@ s32 XRtcPsu_CfgInitialize(XRtcPsu *InstancePtr, XRtcPsu_Config *ConfigPtr, *****************************************************************************/ static void XRtcPsu_StubHandler(void *CallBackRef, u32 Event) { - (void *) CallBackRef; + (void) CallBackRef; (void) Event; /* Assert occurs always since this is a stub and should never be called */ Xil_AssertVoidAlways(); @@ -218,7 +220,9 @@ void XRtcPsu_SetTime(XRtcPsu *InstancePtr,u32 Time) *****************************************************************************/ u32 XRtcPsu_GetCurrentTime(XRtcPsu *InstancePtr) { - u32 Status, IntMask, CurrTime; + u32 Status; + u32 IntMask; + u32 CurrTime; IntMask = XRtcPsu_ReadReg(InstancePtr->RtcConfig.BaseAddr + XRTC_INT_MSK_OFFSET); @@ -294,9 +298,9 @@ void XRtcPsu_SetAlarm(XRtcPsu *InstancePtr, u32 Alarm, u32 Periodic) * format and saves it in the DT structure variable. It also reports the weekday. * * @param Seconds is the time value that has to be shown in DateTime -* format. +* format. * @param dt is the DateTime format variable that stores the translated -* time. +* time. * * @return None. * @@ -305,7 +309,10 @@ void XRtcPsu_SetAlarm(XRtcPsu *InstancePtr, u32 Alarm, u32 Periodic) *****************************************************************************/ void XRtcPsu_SecToDateTime(u32 Seconds, XRtcPsu_DT *dt) { - u32 CurrentTime, TempDays, Leap, DaysPerMonth; + u32 CurrentTime; + u32 TempDays; + u32 DaysPerMonth; + u32 Leap = 0U; CurrentTime = Seconds; dt->Sec = CurrentTime % 60U; @@ -364,7 +371,8 @@ void XRtcPsu_SecToDateTime(u32 Seconds, XRtcPsu_DT *dt) *****************************************************************************/ u32 XRtcPsu_DateTimeToSec(XRtcPsu_DT *dt) { - u32 i, Days; + u32 i; + u32 Days; u32 Seconds; Xil_AssertNonvoid(dt != NULL); @@ -414,8 +422,14 @@ u32 XRtcPsu_DateTimeToSec(XRtcPsu_DT *dt) void XRtcPsu_CalculateCalibration(XRtcPsu *InstancePtr,u32 TimeReal, u32 CrystalOscFreq) { - u32 ReadTime, SetTime; - u32 Cprev,Fprev,Cnew,Fnew,Xf,Calibration; + u32 ReadTime; + u32 SetTime; + u32 Cprev; + u32 Fprev; + u32 Cnew; + u32 Fnew; + u32 Calibration; + float Xf; Xil_AssertVoid(TimeReal != 0U); Xil_AssertVoid(CrystalOscFreq != 0U); diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.h similarity index 95% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.h index 164ddf64a..832047030 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2015 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -32,7 +32,7 @@ /*****************************************************************************/ /** * @file xrtcpsu.h -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * @details * @@ -101,6 +101,14 @@ * 1.1 kvn 09/25/15 Modify control register to enable battery * switching when vcc_psaux is not available. * 1.3 vak 04/25/16 Corrected the RTC read and write time logic(cr#948833). +* 1.4 MNK 01/27/17 Corrected calibration and frequency macros based on +* rtc input oscillator frequency ( 32.768Khz). +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/10/17 Modified filename tag in examples to include them in +* doxygen examples. +* 1.5 ms 08/27/17 Fixed compilation warnings in xrtcpsu.c file. +* ms 08/29/17 Updated the code as per source code style. * * ******************************************************************************/ @@ -203,8 +211,8 @@ typedef struct { /***************** Macros (Inline Functions) Definitions *********************/ -#define XRTC_CALIBRATION_VALUE 0x00198231U -#define XRTC_TYPICAL_OSC_FREQ 33330U +#define XRTC_CALIBRATION_VALUE 0x8000U +#define XRTC_TYPICAL_OSC_FREQ 32768U /****************************************************************************/ /** diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_g.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_g.c index 5913cd8d4..ef49025c7 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XRtcPsu_Config XRtcPsu_ConfigTable[] = +XRtcPsu_Config XRtcPsu_ConfigTable[XPAR_XRTCPSU_NUM_INSTANCES] = { { XPAR_PSU_RTC_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_hw.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_hw.h index 532ef7e3c..b535359eb 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_hw.h @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -33,7 +33,7 @@ /** * * @file xrtcpsu_hw.h -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * * This header file contains the identifiers and basic driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_intr.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_intr.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_intr.c index 89d3cd990..1f5f831f7 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_intr.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -33,7 +33,7 @@ /** * * @file xrtcpsu_intr.c -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * * This file contains functions related to RTC interrupt handling. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_selftest.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_selftest.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_selftest.c index 67c562c64..2678d8149 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_selftest.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -33,7 +33,7 @@ /** * * @file xrtcpsu_selftest.c -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * * This file contains the self-test functions for the XRtcPsu driver. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_sinit.c similarity index 96% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_sinit.c index d3a8b7dfc..32ea4e596 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_sinit.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -33,7 +33,7 @@ /** * * @file xrtcpsu_sinit.c -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * * This file contains the implementation of the XRtcPsu driver's static diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic.c similarity index 82% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic.c index bf7ac12e8..f6afc0e5a 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xscugic.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * Contains required functions for the XScuGic driver for the Interrupt @@ -107,7 +107,17 @@ * and properly mask interrupt target processor value to modify * interrupt target processor register for a given interrupt ID * and cpu ID -* +* 3.6 pkp 20/01/17 Added new API XScuGic_Stop to Disable distributor and +* interrupts in case they are being used only by current cpu. +* It also removes current cpu from interrupt target registers +* for all interrupts. +* kvn 02/17/17 Add support for changing GIC CPU master at run time. +* kvn 02/28/17 Make the CpuId as static variable and Added new +* XScugiC_GetCpuId to access CpuId. +* 3.9 mus 02/21/18 Added new API's XScuGic_UnmapAllInterruptsFromCpu and +* XScuGic_InterruptUnmapFromCpu, These API's can be used +* by applications to unmap specific/all interrupts from +* target CPU. It fixes CR#992490. * * * @@ -127,6 +137,7 @@ /***************** Macros (Inline Functions) Definitions *********************/ /************************** Variable Definitions *****************************/ +static u32 CpuId = XPAR_CPU_ID; /**< CPU Core identifier */ /************************** Function Prototypes ******************************/ @@ -254,7 +265,7 @@ static void DistributorInit(XScuGic *InstancePtr, u32 CpuID) #endif RegValue = XScuGic_DistReadReg(InstancePtr, XSCUGIC_DIST_EN_OFFSET); - if (!(RegValue & XSCUGIC_EN_INT_MASK)) { + if ((RegValue & XSCUGIC_EN_INT_MASK) == 0U) { Xil_AssertVoid(InstancePtr != NULL); DoDistributorInit(InstancePtr, CpuID); return; @@ -353,7 +364,7 @@ s32 XScuGic_CfgInitialize(XScuGic *InstancePtr, u32 EffectiveAddr) { u32 Int_Id; - u32 Cpu_Id = (u32)XPAR_CPU_ID + (u32)1; + u32 Cpu_Id = CpuId + (u32)1; (void) EffectiveAddr; Xil_AssertNonvoid(InstancePtr != NULL); @@ -392,7 +403,7 @@ s32 XScuGic_CfgInitialize(XScuGic *InstancePtr, InstancePtr->Config->HandlerTable[Int_Id].CallBackRef = InstancePtr; } - + XScuGic_Stop(InstancePtr); DistributorInit(InstancePtr, Cpu_Id); CPUInitialize(InstancePtr); @@ -827,4 +838,183 @@ void XScuGic_InterruptMaptoCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id) XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id), RegValue); } +/****************************************************************************/ +/** +* Unmaps specific SPI interrupt from the target CPU +* +* @param InstancePtr is a pointer to the instance to be worked on. +* @param Cpu_Id is a CPU number from which the interrupt has to be +* unmapped +* @param Int_Id is the IRQ source number to modify +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_InterruptUnmapFromCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id) +{ + u32 RegValue; + u8 BitPos; + + Xil_AssertVoid(InstancePtr != NULL); + + RegValue = XScuGic_DistReadReg(InstancePtr, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id)); + + /* + * Identify bit position corresponding to Int_Id and Cpu_Id, + * in interrupt target register and clear it + */ + BitPos = ((Int_Id % 4U) * 8U) + Cpu_Id; + RegValue &= (~ ( 1U << BitPos )); + XScuGic_DistWriteReg(InstancePtr, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id), + RegValue); +} +/****************************************************************************/ +/** +* Unmaps all SPI interrupts from the target CPU +* +* @param InstancePtr is a pointer to the instance to be worked on. +* @param Cpu_Id is a CPU number from which the interrupts has to be +* unmapped +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_UnmapAllInterruptsFromCpu(XScuGic *InstancePtr, u8 Cpu_Id) +{ + u32 Int_Id; + u32 Target_Cpu; + u32 LocalCpuID = (1U << Cpu_Id); + + Xil_AssertVoid(InstancePtr != NULL); + + LocalCpuID |= LocalCpuID << 8U; + LocalCpuID |= LocalCpuID << 16U; + + for (Int_Id = 32U; Int_Id * @@ -322,6 +344,11 @@ void XScuGic_GetPriorityTriggerType(XScuGic *InstancePtr, u32 Int_Id, void XScuGic_SetPriorityTriggerType(XScuGic *InstancePtr, u32 Int_Id, u8 Priority, u8 Trigger); void XScuGic_InterruptMaptoCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id); +void XScuGic_InterruptUnmapFromCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id); +void XScuGic_UnmapAllInterruptsFromCpu(XScuGic *InstancePtr, u8 Cpu_Id); +void XScuGic_Stop(XScuGic *InstancePtr); +void XScuGic_SetCpuID(u32 CpuCoreId); +u32 XScuGic_GetCpuID(void); /* * Initialization functions in xscugic_sinit.c */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_g.c similarity index 87% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_g.c index ff1955d3a..19959e4bf 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,12 +44,13 @@ * The configuration table for devices */ -XScuGic_Config XScuGic_ConfigTable[] = +XScuGic_Config XScuGic_ConfigTable[XPAR_XSCUGIC_NUM_INSTANCES] = { { XPAR_PSU_ACPU_GIC_DEVICE_ID, XPAR_PSU_ACPU_GIC_BASEADDR, - XPAR_PSU_ACPU_GIC_DIST_BASEADDR + XPAR_PSU_ACPU_GIC_DIST_BASEADDR, + {{0}} /**< Initialize the HandlerTable to 0 */ } }; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_hw.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_hw.c similarity index 88% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_hw.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_hw.c index 626779720..6604e3a55 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_hw.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_hw.c @@ -33,7 +33,7 @@ /** * * @file xscugic_hw.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * This file contains low-level driver functions that can be used to access the @@ -62,6 +62,13 @@ * XScuGic_SetPriTrigTypeByDistAddr and * XScuGic_GetPriTrigTypeByDistAddr here from xscugic.c * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. +* 3.6 kvn 02/17/17 Add support for changing GIC CPU master at run time. +* kvn 02/28/17 Make the CpuId as static variable and Added new +* XScugiC_GetCpuId to access CpuId. +* 3.9 mus 02/21/18 Added new API's XScuGic_InterruptUnmapFromCpuByDistAddr +* and XScuGic_UnmapAllInterruptsFromCpuByDistAddr, These +* API's can be used by applications to unmap specific/all +* interrupts from target CPU. It fixes CR#992490. * * * @@ -90,6 +97,7 @@ static XScuGic_Config *LookupConfigByBaseAddress(u32 CpuBaseAddress); /************************** Variable Definitions *****************************/ extern XScuGic_Config XScuGic_ConfigTable[XPAR_XSCUGIC_NUM_INSTANCES]; +extern u32 CpuId; /*****************************************************************************/ /** @@ -274,7 +282,7 @@ static void CPUInit(XScuGic_Config *Config) s32 XScuGic_DeviceInitialize(u32 DeviceId) { XScuGic_Config *Config; - u32 Cpu_Id = (u32)XPAR_CPU_ID + (u32)1; + u32 Cpu_Id = XScuGic_GetCpuID() + (u32)1; Config = &XScuGic_ConfigTable[(u32 )DeviceId]; @@ -567,4 +575,75 @@ void XScuGic_GetPriTrigTypeByDistAddr(u32 DistBaseAddress, u32 Int_Id, *Trigger = (u8)(RegValue & XSCUGIC_INT_CFG_MASK); } + +/****************************************************************************/ +/** +* Unmaps specific SPI interrupt from the target CPU +* +* @param DistBaseAddress is the device base address +* @param Cpu_Id is a CPU number from which the interrupt has to be +* unmapped +* @param Int_Id is the IRQ source number to modify +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_InterruptUnmapFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id, u32 Int_Id) +{ + u32 RegValue; + u8 BitPos; + + Xil_AssertVoid(Int_Id < XSCUGIC_MAX_NUM_INTR_INPUTS); + + RegValue = XScuGic_ReadReg(DistBaseAddress, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id)); + + /* + * Identify bit position corresponding to Int_Id and Cpu_Id, + * in interrupt target register and clear it + */ + BitPos = ((Int_Id % 4U) * 8U) + Cpu_Id; + RegValue &= (~ ( 1U << BitPos )); + XScuGic_WriteReg(DistBaseAddress, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id), RegValue); +} + +/****************************************************************************/ +/** +* Unmaps all SPI interrupts from the target CPU +* +* @param DistBaseAddress is the device base address +* @param Cpu_Id is a CPU number from which the interrupts has to be +* unmapped +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_UnmapAllInterruptsFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id) +{ + u32 Int_Id; + u32 Target_Cpu; + u32 LocalCpuID = (1U << Cpu_Id); + + LocalCpuID |= LocalCpuID << 8U; + LocalCpuID |= LocalCpuID << 16U; + + for (Int_Id = 32U; Int_Id * ******************************************************************************/ @@ -633,6 +637,10 @@ void XScuGic_SetPriTrigTypeByDistAddr(u32 DistBaseAddress, u32 Int_Id, u8 Priority, u8 Trigger); void XScuGic_GetPriTrigTypeByDistAddr(u32 DistBaseAddress, u32 Int_Id, u8 *Priority, u8 *Trigger); +void XScuGic_InterruptUnmapFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id, u32 Int_Id); +void XScuGic_UnmapAllInterruptsFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id); /************************** Variable Definitions *****************************/ #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_intr.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_intr.c index d05a51c5e..d82a60b9e 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_intr.c @@ -33,7 +33,7 @@ /** * * @file xscugic_intr.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * This file contains the interrupt processing for the driver for the Xilinx diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_selftest.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_selftest.c index 47620d644..7b1028f9f 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_selftest.c @@ -33,7 +33,7 @@ /** * * @file xscugic_selftest.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * Contains diagnostic self-test functions for the XScuGic driver. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_sinit.c index d30390ab8..842f31812 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_9/src/xscugic_sinit.c @@ -33,7 +33,7 @@ /** * * @file xscugic_sinit.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * Contains static init functions for the XScuGic driver for the Interrupt diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps.c similarity index 81% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps.c index ac3f9469e..65f1b2237 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps.c @@ -33,7 +33,7 @@ /** * * @file xsdps.c -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * Contains the interface functions of the XSdPs driver. @@ -74,6 +74,22 @@ * sk 10/13/16 Reduced the delay during power cycle to 1ms as per spec * sk 10/19/16 Used emmc_hwreset pin to reset eMMC. * sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. +* 3.2 sk 11/30/16 Modified the voltage switching sequence as per spec. +* sk 02/01/17 Added HSD and DDR mode support for eMMC. +* vns 02/09/17 Added ARMA53_32 support for ZynqMP CR#968397 +* sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 05/17/17 Add support for 64bit DMA addressing +* mn 07/17/17 Add support for running SD at 200MHz +* mn 07/26/17 Fixed compilation warnings +* mn 08/07/17 Modify driver to support 64-bit DMA in arm64 only +* mn 08/17/17 Added CCI support for A53 and disabled data cache +* operations when it is enabled. +* mn 08/22/17 Updated for Word Access System support +* mn 09/06/17 Resolved compilation errors with IAR toolchain +* mn 09/26/17 Added UHS_MODE_ENABLE macro to enable UHS mode +* 3.4 mn 10/17/17 Use different commands for single and multi block +* transfers +* mn 03/02/18 Move UHS macro check to SD card initialization routine * * ******************************************************************************/ @@ -90,21 +106,23 @@ #define XSDPS_CMD1_HIGH_VOL 0x00FF8000U #define XSDPS_CMD1_DUAL_VOL 0x00FF8010U #define HIGH_SPEED_SUPPORT 0x2U +#define UHS_SDR50_SUPPORT 0x4U #define WIDTH_4_BIT_SUPPORT 0x4U #define SD_CLK_25_MHZ 25000000U #define SD_CLK_19_MHZ 19000000U #define SD_CLK_26_MHZ 26000000U #define EXT_CSD_DEVICE_TYPE_BYTE 196U -#define EXT_CSD_SEC_COUNT 212U +#define EXT_CSD_SEC_COUNT_BYTE1 212U +#define EXT_CSD_SEC_COUNT_BYTE2 213U +#define EXT_CSD_SEC_COUNT_BYTE3 214U +#define EXT_CSD_SEC_COUNT_BYTE4 215U #define EXT_CSD_DEVICE_TYPE_HIGH_SPEED 0x2U #define EXT_CSD_DEVICE_TYPE_DDR_1V8_HIGH_SPEED 0x4U #define EXT_CSD_DEVICE_TYPE_DDR_1V2_HIGH_SPEED 0x8U #define EXT_CSD_DEVICE_TYPE_SDR_1V8_HS200 0x10U #define EXT_CSD_DEVICE_TYPE_SDR_1V2_HS200 0x20U #define CSD_SPEC_VER_3 0x3U - -/* Note: Remove this once fixed */ -#define UHS_BROKEN +#define SCR_SPEC_VER_3 0x80U /**************************** Type Definitions *******************************/ @@ -116,10 +134,9 @@ s32 XSdPs_CmdTransfer(XSdPs *InstancePtr, u32 Cmd, u32 Arg, u32 BlkCnt); void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff); extern s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode); static s32 XSdPs_IdentifyCard(XSdPs *InstancePtr); -#ifndef UHS_BROKEN static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr); -#endif +u16 TransferMode; /*****************************************************************************/ /** * @@ -172,6 +189,7 @@ s32 XSdPs_CfgInitialize(XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, InstancePtr->Config.BusWidth = ConfigPtr->BusWidth; InstancePtr->Config.BankNumber = ConfigPtr->BankNumber; InstancePtr->Config.HasEMIO = ConfigPtr->HasEMIO; + InstancePtr->Config.IsCacheCoherent = ConfigPtr->IsCacheCoherent; InstancePtr->SectorCount = 0; InstancePtr->Mode = XSDPS_DEFAULT_SPEED_MODE; InstancePtr->Config_TapDelay = NULL; @@ -250,10 +268,18 @@ s32 XSdPs_CfgInitialize(XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, XSDPS_POWER_CTRL_OFFSET, PowerLevel | XSDPS_PC_BUS_PWR_MASK); + +#ifdef __aarch64__ /* Enable ADMA2 in 64bit mode. */ + XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL1_OFFSET, + XSDPS_HC_DMA_ADMA2_64_MASK); +#else + /* Enable ADMA2 in 32bit mode. */ XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL1_OFFSET, XSDPS_HC_DMA_ADMA2_32_MASK); +#endif /* Enable all interrupt status except card interrupt initially */ XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, @@ -274,10 +300,8 @@ s32 XSdPs_CfgInitialize(XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, * Transfer mode register - default value * DMA enabled, block count enabled, data direction card to host(read) */ - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DMA_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | - XSDPS_TM_DAT_DIR_SEL_MASK); + TransferMode = XSDPS_TM_DMA_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | + XSDPS_TM_DAT_DIR_SEL_MASK; /* Set block size to 512 by default */ XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, @@ -328,6 +352,10 @@ s32 XSdPs_SdCardInitialize(XSdPs *InstancePtr) Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); +#ifndef UHS_MODE_ENABLE + InstancePtr->Config.BusWidth = XSDPS_WIDTH_4; +#endif + if ((InstancePtr->HC_Version != XSDPS_HC_SPEC_V3) || ((InstancePtr->Host_Caps & XSDPS_CAPS_SLOT_TYPE_MASK) != XSDPS_CAPS_EMB_SLOT)) { @@ -395,9 +423,17 @@ s32 XSdPs_SdCardInitialize(XSdPs *InstancePtr) goto RETURN_PATH; } - Arg = XSDPS_ACMD41_HCS | XSDPS_ACMD41_3V3 | (0x1FFU << 15U); - if (InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) { - Arg |= XSDPS_OCR_S18; + Arg = XSDPS_ACMD41_HCS | XSDPS_ACMD41_3V3 | (0x1FFU << 15U); + /* + * There is no support to switch to 1.8V and use UHS mode on + * 1.0 silicon + */ + if ((InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) && +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) + (XGetPSVersion_Info() > XPS_VERSION_1) && +#endif + (InstancePtr->Config.BusWidth == XSDPS_WIDTH_8)) { + Arg |= XSDPS_OCR_S18; } /* 0x40300000 - Host High Capacity support & 3.3V window */ @@ -419,18 +455,14 @@ s32 XSdPs_SdCardInitialize(XSdPs *InstancePtr) InstancePtr->HCS = 1U; } - /* There is no support to switch to 1.8V and use UHS mode on 1.0 silicon */ -#ifndef UHS_BROKEN - if ((RespOCR & XSDPS_OCR_S18) != 0U) { + if ((RespOCR & XSDPS_OCR_S18) != 0U) { InstancePtr->Switch1v8 = 1U; Status = XSdPs_Switch_Voltage(InstancePtr); if (Status != XST_SUCCESS) { Status = XST_FAILURE; goto RETURN_PATH; } - } -#endif /* CMD2 for Card ID */ Status = XSdPs_CmdTransfer(InstancePtr, CMD2, 0U, 0U); @@ -528,12 +560,13 @@ s32 XSdPs_CardInitialize(XSdPs *InstancePtr) { #ifdef __ICCARM__ #pragma data_alignment = 32 -static u8 ExtCsd[512]; + static u8 ExtCsd[512]; + u8 SCR[8] = { 0U }; #pragma data_alignment = 4 #else -static u8 ExtCsd[512] __attribute__ ((aligned(32))); + static u8 ExtCsd[512] __attribute__ ((aligned(32))); + u8 SCR[8] __attribute__ ((aligned(32))) = { 0U }; #endif - u8 SCR[8] = { 0U }; u8 ReadBuff[64] = { 0U }; s32 Status; u32 Arg; @@ -641,9 +674,68 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } -#if defined (ARMR5) || defined (__aarch64__) - if ((InstancePtr->Switch1v8 != 0U) && - (InstancePtr->BusWidth == XSDPS_4_BIT_WIDTH)) { + if (((SCR[2] & SCR_SPEC_VER_3) != 0U) && + (ReadBuff[13] >= UHS_SDR50_SUPPORT) && + (InstancePtr->Config.BusWidth == XSDPS_WIDTH_8) && +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) + (XGetPSVersion_Info() > XPS_VERSION_1) && +#endif + (InstancePtr->Switch1v8 == 0U)) { + u16 CtrlReg, ClockReg; + + /* Stop the clock */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + CtrlReg &= ~(XSDPS_CC_SD_CLK_EN_MASK | XSDPS_CC_INT_CLK_EN_MASK); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_CLK_CTRL_OFFSET, + CtrlReg); + + /* Enabling 1.8V in controller */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + CtrlReg |= XSDPS_HC2_1V8_EN_MASK; + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET, + CtrlReg); + + /* Wait minimum 5mSec */ + (void)usleep(5000U); + + /* Check for 1.8V signal enable bit is cleared by Host */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + if ((CtrlReg & XSDPS_HC2_1V8_EN_MASK) == 0U) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + + /* Wait for internal clock to stabilize */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_INT_CLK_EN_MASK); + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + while((ClockReg & XSDPS_CC_INT_CLK_STABLE_MASK) == 0U) { + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + } + + /* Enable SD clock */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_SD_CLK_EN_MASK); + + /* Wait for 1mSec */ + (void)usleep(1000U); + + InstancePtr->Switch1v8 = 1U; + } + +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + if (InstancePtr->Switch1v8 != 0U) { /* Identify the UHS mode supported by card */ XSdPs_Identify_UhsMode(InstancePtr, ReadBuff); @@ -663,9 +755,10 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); */ if (SCR[0] != 0U) { /* Check for high speed support */ - if ((ReadBuff[13] & HIGH_SPEED_SUPPORT) != 0U) { + if (((ReadBuff[13] & HIGH_SPEED_SUPPORT) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { InstancePtr->Mode = XSDPS_HIGH_SPEED_MODE; -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) InstancePtr->Config_TapDelay = XSdPs_hsd_sdr25_tapdelay; #endif Status = XSdPs_Change_BusSpeed(InstancePtr); @@ -675,7 +768,7 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); } } } -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) } #endif @@ -695,10 +788,14 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } - InstancePtr->SectorCount = *(u32 *)&ExtCsd[EXT_CSD_SEC_COUNT]; + InstancePtr->SectorCount = ((u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE4]) << 24; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE3] << 16; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE2] << 8; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE1]; - if ((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & - EXT_CSD_DEVICE_TYPE_HIGH_SPEED) != 0U) { + if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + EXT_CSD_DEVICE_TYPE_HIGH_SPEED) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { InstancePtr->Mode = XSDPS_HIGH_SPEED_MODE; Status = XSdPs_Change_BusSpeed(InstancePtr); if (Status != XST_SUCCESS) { @@ -732,15 +829,39 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } - InstancePtr->SectorCount = *(u32 *)&ExtCsd[EXT_CSD_SEC_COUNT]; + InstancePtr->SectorCount = ((u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE4]) << 24; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE3] << 16; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE2] << 8; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE1]; - if ((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + /* Check for card supported speed */ + if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & (EXT_CSD_DEVICE_TYPE_SDR_1V8_HS200 | - EXT_CSD_DEVICE_TYPE_SDR_1V2_HS200)) != 0U) { + EXT_CSD_DEVICE_TYPE_SDR_1V2_HS200)) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { InstancePtr->Mode = XSDPS_HS200_MODE; -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) InstancePtr->Config_TapDelay = XSdPs_sdr104_hs200_tapdelay; #endif + } else if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + (EXT_CSD_DEVICE_TYPE_DDR_1V8_HIGH_SPEED | + EXT_CSD_DEVICE_TYPE_DDR_1V2_HIGH_SPEED)) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { + InstancePtr->Mode = XSDPS_DDR52_MODE; +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + InstancePtr->Config_TapDelay = XSdPs_ddr50_tapdelay; +#endif + } else if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + EXT_CSD_DEVICE_TYPE_HIGH_SPEED) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { + InstancePtr->Mode = XSDPS_HIGH_SPEED_MODE; +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + InstancePtr->Config_TapDelay = XSdPs_hsd_sdr25_tapdelay; +#endif + } else + InstancePtr->Mode = XSDPS_DEFAULT_SPEED_MODE; + + if (InstancePtr->Mode != XSDPS_DEFAULT_SPEED_MODE) { Status = XSdPs_Change_BusSpeed(InstancePtr); if (Status != XST_SUCCESS) { Status = XST_FAILURE; @@ -753,9 +874,27 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } - if (ExtCsd[EXT_CSD_HS_TIMING_BYTE] != EXT_CSD_HS_TIMING_HS200) { - Status = XST_FAILURE; - goto RETURN_PATH; + if (InstancePtr->Mode == XSDPS_HS200_MODE) { + if (ExtCsd[EXT_CSD_HS_TIMING_BYTE] != EXT_CSD_HS_TIMING_HS200) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } + + if ((InstancePtr->Mode == XSDPS_HIGH_SPEED_MODE) || + InstancePtr->Mode == XSDPS_DDR52_MODE) { + if (ExtCsd[EXT_CSD_HS_TIMING_BYTE] != EXT_CSD_HS_TIMING_HIGH) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + + if (InstancePtr->Mode == XSDPS_DDR52_MODE) { + Status = XSdPs_Change_BusWidth(InstancePtr); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } } } @@ -769,11 +908,13 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); } } } - - Status = XSdPs_SetBlkSize(InstancePtr, XSDPS_BLK_SIZE_512_MASK); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + if ((InstancePtr->Mode != XSDPS_DDR52_MODE) || + (InstancePtr->CardType == XSDPS_CARD_SD)) { + Status = XSdPs_SetBlkSize(InstancePtr, XSDPS_BLK_SIZE_512_MASK); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } RETURN_PATH: @@ -839,7 +980,6 @@ RETURN_PATH: return Status; } -#ifndef UHS_BROKEN /*****************************************************************************/ /** * @@ -853,7 +993,7 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) { s32 Status; u16 CtrlReg; - u32 ReadReg; + u32 ReadReg, ClockReg; /* Send switch voltage command */ Status = XSdPs_CmdTransfer(InstancePtr, CMD11, 0U, 0U); @@ -877,9 +1017,6 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_CLK_CTRL_OFFSET, CtrlReg); - /* Wait minimum 5mSec */ - (void)usleep(5000U); - /* Enabling 1.8V in controller */ CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET); @@ -887,13 +1024,40 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET, CtrlReg); - /* Start clock */ - Status = XSdPs_Change_ClkFreq(InstancePtr, XSDPS_CLK_400_KHZ); - if (Status != XST_SUCCESS) { + /* Wait minimum 5mSec */ + (void)usleep(5000U); + + /* Check for 1.8V signal enable bit is cleared by Host */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + if ((CtrlReg & XSDPS_HC2_1V8_EN_MASK) == 0U) { Status = XST_FAILURE; goto RETURN_PATH; } + /* Wait for internal clock to stabilize */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_INT_CLK_EN_MASK); + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + while((ClockReg & XSDPS_CC_INT_CLK_STABLE_MASK) == 0U) { + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + } + + /* Enable SD clock */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_SD_CLK_EN_MASK); + + /* Wait for 1mSec */ + (void)usleep(1000U); + /* Wait for CMD and DATA line to go high */ ReadReg = XSdPs_ReadReg(InstancePtr->Config.BaseAddress, XSDPS_PRES_STATE_OFFSET); @@ -906,7 +1070,6 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) RETURN_PATH: return Status; } -#endif /*****************************************************************************/ /** @@ -986,8 +1149,8 @@ s32 XSdPs_CmdTransfer(XSdPs *InstancePtr, u32 Cmd, u32 Arg, u32 BlkCnt) } } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_CMD_OFFSET, - (u16)CommandReg); + XSdPs_WriteReg(InstancePtr->Config.BaseAddress, XSDPS_XFER_MODE_OFFSET, + (CommandReg << 16) | TransferMode); /* Polling for response for now */ do { @@ -1178,20 +1341,32 @@ s32 XSdPs_ReadPolled(XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, u8 *Buff) } XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, Buff); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)Buff, + BlkCnt * XSDPS_BLK_SIZE_512_MASK); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_AUTO_CMD12_EN_MASK | + if (BlkCnt == 1U) { + TransferMode = XSDPS_TM_BLK_CNT_EN_MASK | + XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; + + /* Send single block read command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD17, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } else { + TransferMode = XSDPS_TM_AUTO_CMD12_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | XSDPS_TM_DAT_DIR_SEL_MASK | - XSDPS_TM_DMA_EN_MASK | XSDPS_TM_MUL_SIN_BLK_SEL_MASK); + XSDPS_TM_DMA_EN_MASK | XSDPS_TM_MUL_SIN_BLK_SEL_MASK; - Xil_DCacheInvalidateRange((INTPTR)Buff, BlkCnt * XSDPS_BLK_SIZE_512_MASK); - - /* Send block read command */ - Status = XSdPs_CmdTransfer(InstancePtr, CMD18, Arg, BlkCnt); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + /* Send multiple blocks read command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD18, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } /* Check for transfer complete */ @@ -1269,19 +1444,31 @@ s32 XSdPs_WritePolled(XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, const u8 *Buff) } XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, Buff); - Xil_DCacheFlushRange((INTPTR)Buff, BlkCnt * XSDPS_BLK_SIZE_512_MASK); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)Buff, + BlkCnt * XSDPS_BLK_SIZE_512_MASK); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_AUTO_CMD12_EN_MASK | + if (BlkCnt == 1U) { + TransferMode = XSDPS_TM_BLK_CNT_EN_MASK | XSDPS_TM_DMA_EN_MASK; + + /* Send single block write command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD24, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } else { + TransferMode = XSDPS_TM_AUTO_CMD12_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | - XSDPS_TM_MUL_SIN_BLK_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + XSDPS_TM_MUL_SIN_BLK_SEL_MASK | XSDPS_TM_DMA_EN_MASK; - /* Send block write command */ - Status = XSdPs_CmdTransfer(InstancePtr, CMD25, Arg, BlkCnt); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + /* Send multiple blocks write command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD25, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } /* @@ -1383,8 +1570,13 @@ void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff) } for (DescNum = 0U; DescNum < (TotalDescLines-1); DescNum++) { +#ifdef __aarch64__ + InstancePtr->Adma2_DescrTbl[DescNum].Address = + (u64)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#else InstancePtr->Adma2_DescrTbl[DescNum].Address = (u32)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#endif InstancePtr->Adma2_DescrTbl[DescNum].Attribute = XSDPS_DESC_TRAN | XSDPS_DESC_VALID; /* This will write '0' to length field which indicates 65536 */ @@ -1392,8 +1584,13 @@ void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff) (u16)XSDPS_DESC_MAX_LENGTH; } +#ifdef __aarch64__ + InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Address = + (u64)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#else InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Address = (u32)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#endif InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Attribute = XSDPS_DESC_TRAN | XSDPS_DESC_END | XSDPS_DESC_VALID; @@ -1401,13 +1598,18 @@ void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff) InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Length = (u16)((BlkCnt*BlkSize) - (DescNum*XSDPS_DESC_MAX_LENGTH)); +#ifdef __aarch64__ + XSdPs_WriteReg(InstancePtr->Config.BaseAddress, XSDPS_ADMA_SAR_EXT_OFFSET, + (u32)(((u64)&(InstancePtr->Adma2_DescrTbl[0]))>>32)); +#endif XSdPs_WriteReg(InstancePtr->Config.BaseAddress, XSDPS_ADMA_SAR_OFFSET, (u32)(UINTPTR)&(InstancePtr->Adma2_DescrTbl[0])); - Xil_DCacheFlushRange((INTPTR)&(InstancePtr->Adma2_DescrTbl[0]), + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)&(InstancePtr->Adma2_DescrTbl[0]), sizeof(XSdPs_Adma2Descriptor) * 32U); - + } } /*****************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps.h similarity index 90% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps.h index 46fe545d9..3f9ffd202 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps.h @@ -33,7 +33,7 @@ /** * * @file xsdps.h -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * @details * @@ -139,6 +139,16 @@ * sk 10/19/16 Used emmc_hwreset pin to reset eMMC. * sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. * sk 11/16/16 Issue DLL reset at 31 iteration to load new zero value. +* 3.2 sk 11/30/16 Modified the voltage switching sequence as per spec. +* sk 02/01/17 Added HSD and DDR mode support for eMMC. +* sk 02/01/17 Consider bus width parameter from design for switching +* vns 02/09/17 Added ARMA53_32 support for ZynqMP CR#968397 +* sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 05/17/17 Add support for 64bit DMA addressing +* mn 08/07/17 Modify driver to support 64-bit DMA in arm64 only +* mn 08/17/17 Enabled CCI support for A53 by adding cache coherency +* information. +* mn 09/06/17 Resolved compilation errors with IAR toolchain * * * @@ -156,6 +166,7 @@ extern "C" { #include "xil_cache.h" #include "xstatus.h" #include "xsdps_hw.h" +#include "xplatform_info.h" #include /************************** Constant Definitions *****************************/ @@ -179,14 +190,25 @@ typedef struct { u32 BusWidth; /**< Bus Width */ u32 BankNumber; /**< MIO Bank selection for SD */ u32 HasEMIO; /**< If SD is connected to EMIO */ + u8 IsCacheCoherent; /**< If SD is Cache Coherent or not */ } XSdPs_Config; /* ADMA2 descriptor table */ typedef struct { u16 Attribute; /**< Attributes of descriptor */ u16 Length; /**< Length of current dma transfer */ +#ifdef __aarch64__ + u64 Address; /**< Address of current dma transfer */ +#else u32 Address; /**< Address of current dma transfer */ +#endif +#ifdef __ICCARM__ +#pragma data_alignment = 32 } XSdPs_Adma2Descriptor; +#pragma data_alignment = 4 +#else +} __attribute__((__packed__))XSdPs_Adma2Descriptor; +#endif /** * The XSdPs driver instance data. The user is required to allocate a @@ -243,8 +265,9 @@ s32 XSdPs_MmcCardInitialize(XSdPs *InstancePtr); s32 XSdPs_CardInitialize(XSdPs *InstancePtr); s32 XSdPs_Get_Mmc_ExtCsd(XSdPs *InstancePtr, u8 *ReadBuff); s32 XSdPs_Set_Mmc_ExtCsd(XSdPs *InstancePtr, u32 Arg); -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) void XSdPs_Identify_UhsMode(XSdPs *InstancePtr, u8 *ReadBuff); +void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); void XSdPs_hsd_sdr25_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); void XSdPs_sdr104_hs200_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); #endif diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_g.c similarity index 89% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_g.c index 72981b551..de9be71b8 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XSdPs_Config XSdPs_ConfigTable[] = +XSdPs_Config XSdPs_ConfigTable[XPAR_XSDPS_NUM_INSTANCES] = { { XPAR_PSU_SD_1_DEVICE_ID, @@ -54,7 +54,8 @@ XSdPs_Config XSdPs_ConfigTable[] = XPAR_PSU_SD_1_HAS_WP, XPAR_PSU_SD_1_BUS_WIDTH, XPAR_PSU_SD_1_MIO_BANK, - XPAR_PSU_SD_1_HAS_EMIO + XPAR_PSU_SD_1_HAS_EMIO, + XPAR_PSU_SD_1_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_hw.h similarity index 95% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_hw.h index 2c5d712d2..8d190efa0 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_hw.h @@ -33,7 +33,7 @@ /** * * @file xsdps_hw.h -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * This header file contains the identifiers and basic HW access driver @@ -56,6 +56,11 @@ * sk 07/16/16 Added Tap delays accordingly to different SD/eMMC * operating modes. * 3.1 sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. +* 3.2 sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 08/22/17 Updated for Word Access System support +* mn 09/06/17 Added support for ARMCC toolchain +* 3.4 mn 01/22/18 Separated out SDR104 and HS200 clock defines +* * * ******************************************************************************/ @@ -953,6 +958,7 @@ extern "C" { #define XSDPS_HIGH_SPEED_MODE 0x5U #define XSDPS_DEFAULT_SPEED_MODE 0x6U #define XSDPS_HS200_MODE 0x7U +#define XSDPS_DDR52_MODE 0x4U #define XSDPS_SWITCH_CMD_BLKCNT 1U #define XSDPS_SWITCH_CMD_BLKSIZE 64U #define XSDPS_SWITCH_CMD_HS_GET 0x00FFFFF0U @@ -993,7 +999,16 @@ extern "C" { #define XSDPS_SD_SDR50_MAX_CLK 100000000U #define XSDPS_SD_DDR50_MAX_CLK 50000000U #define XSDPS_SD_SDR104_MAX_CLK 208000000U +/* + * XSDPS_SD_INPUT_MAX_CLK is set to 175000000 in order to keep it smaller + * than the clock value coming from the core. This value is kept to safely + * switch to SDR104 mode if the SD card supports it. + */ +#define XSDPS_SD_INPUT_MAX_CLK 175000000U + #define XSDPS_MMC_HS200_MAX_CLK 200000000U +#define XSDPS_MMC_HSD_MAX_CLK 52000000U +#define XSDPS_MMC_DDR_MAX_CLK 52000000U #define XSDPS_CARD_STATE_IDLE 0U #define XSDPS_CARD_STATE_RDY 1U @@ -1010,7 +1025,15 @@ extern "C" { #define XSDPS_SLOT_REM 0U #define XSDPS_SLOT_EMB 1U -#if defined (ARMR5) || defined (__aarch64__) +#define XSDPS_WIDTH_8 8U +#define XSDPS_WIDTH_4 4U + + +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) +#define SD0_ITAPDLY_SEL_MASK 0x000000FFU +#define SD0_OTAPDLY_SEL_MASK 0x0000003FU +#define SD1_ITAPDLY_SEL_MASK 0x00FF0000U +#define SD1_OTAPDLY_SEL_MASK 0x003F0000U #define SD_DLL_CTRL 0x00000358U #define SD_ITAPDLY 0x00000314U #define SD_OTAPDLY 0x00000318U @@ -1151,8 +1174,18 @@ extern "C" { * u16 XSdPs_ReadReg(u32 BaseAddress. int RegOffset) * ******************************************************************************/ -#define XSdPs_ReadReg16(BaseAddress, RegOffset) \ - XSdPs_In16((BaseAddress) + (RegOffset)) +static INLINE u16 XSdPs_ReadReg16(u32 BaseAddress, u8 RegOffset) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg >>= ((RegOffset & 0x3)*8); + return (u16)Reg; +#else + return XSdPs_In16((BaseAddress) + (RegOffset)); +#endif +} /***************************************************************************/ /** @@ -1170,8 +1203,20 @@ extern "C" { * u16 RegisterValue) * ******************************************************************************/ -#define XSdPs_WriteReg16(BaseAddress, RegOffset, RegisterValue) \ - XSdPs_Out16((BaseAddress) + (RegOffset), (RegisterValue)) + +static INLINE void XSdPs_WriteReg16(u32 BaseAddress, u8 RegOffset, u16 RegisterValue) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg &= ~(0xFFFF<<((RegOffset & 0x3)*8)); + Reg |= RegisterValue <<((RegOffset & 0x3)*8); + XSdPs_Out32(BaseAddress, Reg); +#else + XSdPs_Out16((BaseAddress) + (RegOffset), (RegisterValue)); +#endif +} /****************************************************************************/ /** @@ -1187,9 +1232,18 @@ extern "C" { * u8 XSdPs_ReadReg(u32 BaseAddress. int RegOffset) * ******************************************************************************/ -#define XSdPs_ReadReg8(BaseAddress, RegOffset) \ - XSdPs_In8((BaseAddress) + (RegOffset)) - +static INLINE u8 XSdPs_ReadReg8(u32 BaseAddress, u8 RegOffset) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg >>= ((RegOffset & 0x3)*8); + return (u8)Reg; +#else + return XSdPs_In8((BaseAddress) + (RegOffset)); +#endif +} /***************************************************************************/ /** * Write to a register. @@ -1206,9 +1260,19 @@ extern "C" { * u8 RegisterValue) * ******************************************************************************/ -#define XSdPs_WriteReg8(BaseAddress, RegOffset, RegisterValue) \ - XSdPs_Out8((BaseAddress) + (RegOffset), (RegisterValue)) - +static INLINE void XSdPs_WriteReg8(u32 BaseAddress, u8 RegOffset, u8 RegisterValue) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg &= ~(0xFF<<((RegOffset & 0x3)*8)); + Reg |= RegisterValue <<((RegOffset & 0x3)*8); + XSdPs_Out32(BaseAddress, Reg); +#else + XSdPs_Out8((BaseAddress) + (RegOffset), (RegisterValue)); +#endif +} /***************************************************************************/ /** * Macro to get present status register diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_options.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_options.c similarity index 77% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_options.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_options.c index 7dbc772f3..bcd7c689b 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_options.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_options.c @@ -33,7 +33,7 @@ /** * * @file xsdps_options.c -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * Contains API's for changing the various options in host and card. @@ -63,6 +63,18 @@ * 3.1 mi 09/07/16 Removed compilation warnings with extra compiler flags. * sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. * sk 11/16/16 Issue DLL reset at 31 iteration to load new zero value. +* 3.2 sk 02/01/17 Added HSD and DDR mode support for eMMC. +* sk 02/01/17 Consider bus width parameter from design for switching +* vns 02/09/17 Added ARMA53_32 support for ZynqMP CR#968397 +* vns 03/13/17 Fixed MISRAC mandatory violation +* sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 07/25/17 Removed SD0_OTAPDLYENA and SD1_OTAPDLYENA bits +* mn 08/07/17 Properly set OTAPDLY value by clearing previous bit +* settings +* mn 08/17/17 Added CCI support for A53 and disabled data cache +* operations when it is enabled. +* mn 08/22/17 Updated for Word Access System support +* 3.4 mn 01/22/18 Separated out SDR104 and HS200 clock defines * * * @@ -71,7 +83,9 @@ /***************************** Include Files *********************************/ #include "xsdps.h" #include "sleep.h" - +#if defined (__aarch64__) +#include "xil_smc.h" +#endif /************************** Constant Definitions *****************************/ #define UHS_SDR12_SUPPORT 0x1U #define UHS_SDR25_SUPPORT 0x2U @@ -86,14 +100,14 @@ s32 XSdPs_CmdTransfer(XSdPs *InstancePtr, u32 Cmd, u32 Arg, u32 BlkCnt); void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff); static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr); -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode); static void XSdPs_sdr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); -static void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); void XSdPs_SetTapDelay(XSdPs *InstancePtr); static void XSdPs_DllReset(XSdPs *InstancePtr); #endif +extern u16 TransferMode; /*****************************************************************************/ /** * Update Block size for read/write operations. @@ -193,11 +207,11 @@ s32 XSdPs_Get_BusWidth(XSdPs *InstancePtr, u8 *SCR) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, SCR); - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; - Xil_DCacheInvalidateRange((INTPTR)SCR, 8); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)SCR, 8); + } Status = XSdPs_CmdTransfer(InstancePtr, ACMD51, 0U, BlkCnt); if (Status != XST_SUCCESS) { @@ -261,6 +275,16 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); + /* + * check for bus width for 3.0 controller and return if + * bus width is <4 + */ + if ((InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) && + (InstancePtr->Config.BusWidth < XSDPS_WIDTH_4)) { + Status = XST_SUCCESS; + goto RETURN_PATH; + } + if (InstancePtr->CardType == XSDPS_CARD_SD) { Status = XSdPs_CmdTransfer(InstancePtr, CMD55, InstancePtr->RelCardAddr, @@ -282,7 +306,8 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) } else { if ((InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) - && (InstancePtr->CardType == XSDPS_CHIP_EMMC)) { + && (InstancePtr->CardType == XSDPS_CHIP_EMMC) && + (InstancePtr->Config.BusWidth == XSDPS_WIDTH_8)) { /* in case of eMMC data width 8-bit */ InstancePtr->BusWidth = XSDPS_8_BIT_WIDTH; } else { @@ -290,9 +315,15 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) } if (InstancePtr->BusWidth == XSDPS_8_BIT_WIDTH) { - Arg = XSDPS_MMC_8_BIT_BUS_ARG; + if (InstancePtr->Mode == XSDPS_DDR52_MODE) + Arg = XSDPS_MMC_DDR_8_BIT_BUS_ARG; + else + Arg = XSDPS_MMC_8_BIT_BUS_ARG; } else { - Arg = XSDPS_MMC_4_BIT_BUS_ARG; + if (InstancePtr->Mode == XSDPS_DDR52_MODE) + Arg = XSDPS_MMC_DDR_4_BIT_BUS_ARG; + else + Arg = XSDPS_MMC_4_BIT_BUS_ARG; } Status = XSdPs_CmdTransfer(InstancePtr, CMD6, Arg, 0U); @@ -336,6 +367,15 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) XSDPS_HOST_CTRL1_OFFSET, (u8)StatusReg); + if (InstancePtr->Mode == XSDPS_DDR52_MODE) { + StatusReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + StatusReg &= (u16)(~XSDPS_HC2_UHS_MODE_MASK); + StatusReg |= InstancePtr->Mode; + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET, StatusReg); + } + Status = (s32)XSdPs_ReadReg(InstancePtr->Config.BaseAddress, XSDPS_RESP0_OFFSET); @@ -387,13 +427,13 @@ s32 XSdPs_Get_BusSpeed(XSdPs *InstancePtr, u8 *ReadBuff) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; Arg = XSDPS_SWITCH_CMD_HS_GET; - Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 64); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 64); + } Status = XSdPs_CmdTransfer(InstancePtr, CMD6, Arg, 1U); if (Status != XST_SUCCESS) { @@ -454,7 +494,7 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) u32 Arg; u16 BlkCnt; u16 BlkSize; - u8 ReadBuff[64]; + u8 ReadBuff[64] = {0U}; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); @@ -469,11 +509,11 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; Arg = XSDPS_SWITCH_CMD_HS_SET; @@ -553,7 +593,16 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) goto RETURN_PATH; } } else { - Arg = XSDPS_MMC_HS200_ARG; + if (InstancePtr->Mode == XSDPS_HS200_MODE) { + Arg = XSDPS_MMC_HS200_ARG; + InstancePtr->BusSpeed = XSDPS_MMC_HS200_MAX_CLK; + } else if (InstancePtr->Mode == XSDPS_DDR52_MODE) { + Arg = XSDPS_MMC_HIGH_SPEED_ARG; + InstancePtr->BusSpeed = XSDPS_MMC_DDR_MAX_CLK; + } else { + Arg = XSDPS_MMC_HIGH_SPEED_ARG; + InstancePtr->BusSpeed = XSDPS_MMC_HSD_MAX_CLK; + } Status = XSdPs_CmdTransfer(InstancePtr, CMD6, Arg, 0U); if (Status != XST_SUCCESS) { @@ -585,18 +634,18 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_NORM_INTR_STS_OFFSET, XSDPS_INTR_TC_MASK); - /* Change the clock frequency to 200 MHz */ - InstancePtr->BusSpeed = XSDPS_MMC_HS200_MAX_CLK; - Status = XSdPs_Change_ClkFreq(InstancePtr, InstancePtr->BusSpeed); if (Status != XST_SUCCESS) { Status = XST_FAILURE; goto RETURN_PATH; } - Status = XSdPs_Execute_Tuning(InstancePtr); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + + if (InstancePtr->Mode == XSDPS_HS200_MODE) { + Status = XSdPs_Execute_Tuning(InstancePtr); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } } @@ -654,7 +703,7 @@ s32 XSdPs_Change_ClkFreq(XSdPs *InstancePtr, u32 SelFreq) XSDPS_CLK_CTRL_OFFSET, ClockReg); if (InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) { -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) if ((InstancePtr->Mode != XSDPS_DEFAULT_SPEED_MODE) && (InstancePtr->Mode != XSDPS_UHS_SPEED_MODE_SDR12)) /* Program the Tap delays */ @@ -823,12 +872,11 @@ s32 XSdPs_Get_Mmc_ExtCsd(XSdPs *InstancePtr, u8 *ReadBuff) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 512U); - - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 512U); + } + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; /* Send SEND_EXT_CSD command */ Status = XSdPs_CmdTransfer(InstancePtr, CMD8, Arg, 1U); @@ -927,7 +975,7 @@ s32 XSdPs_Set_Mmc_ExtCsd(XSdPs *InstancePtr, u32 Arg) } -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) /*****************************************************************************/ /** * @@ -950,7 +998,7 @@ void XSdPs_Identify_UhsMode(XSdPs *InstancePtr, u8 *ReadBuff) Xil_AssertVoid(InstancePtr != NULL); if (((ReadBuff[13] & UHS_SDR104_SUPPORT) != 0U) && - (InstancePtr->Config.InputClockHz >= XSDPS_MMC_HS200_MAX_CLK)) { + (InstancePtr->Config.InputClockHz >= XSDPS_SD_INPUT_MAX_CLK)) { InstancePtr->Mode = XSDPS_UHS_SPEED_MODE_SDR104; InstancePtr->Config_TapDelay = XSdPs_sdr104_hs200_tapdelay; } @@ -997,7 +1045,7 @@ s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode) u32 Arg; u16 BlkCnt; u16 BlkSize; - u8 ReadBuff[64]; + u8 ReadBuff[64] = {0U}; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); @@ -1013,10 +1061,11 @@ s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; switch (Mode) { case 0U: @@ -1125,8 +1174,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_BLK_SIZE_OFFSET, BlkSize); - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK; CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET); @@ -1141,7 +1189,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) /* Wait for ~60 clock cycles to reset the tap values */ (void)usleep(1U); -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) /* Issue DLL Reset to load new SDHC tuned tap values */ XSdPs_DllReset(InstancePtr); #endif @@ -1165,7 +1213,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) } if (TuningCount == 31) { -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) /* Issue DLL Reset to load new SDHC tuned tap values */ XSdPs_DllReset(InstancePtr); #endif @@ -1181,7 +1229,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) /* Wait for ~12 clock cycles to synchronize the new tap values */ (void)usleep(1U); -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) /* Issue DLL Reset to load new SDHC tuned tap values */ XSdPs_DllReset(InstancePtr); #endif @@ -1192,7 +1240,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) } -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) /*****************************************************************************/ /** * @@ -1213,25 +1261,48 @@ void XSdPs_sdr104_hs200_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) #ifdef XPAR_PSU_SD_0_DEVICE_ID if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + if (Bank == 2) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_HS200_B2, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_HS200_B0, 0, 0, 0, 0, 0); +#else /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD0_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; if (Bank == 2) TapDelay |= SD0_OTAPDLYSEL_HS200_B2; else TapDelay |= SD0_OTAPDLYSEL_HS200_B0; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif } else { #endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + if (Bank == 2) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_HS200_B2, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_HS200_B0, 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD1_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; if (Bank == 2) TapDelay |= SD1_OTAPDLYSEL_HS200_B2; else TapDelay |= SD1_OTAPDLYSEL_HS200_B0; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif #ifdef XPAR_PSU_SD_0_DEVICE_ID } #endif @@ -1258,19 +1329,32 @@ void XSdPs_sdr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) #ifdef XPAR_PSU_SD_0_DEVICE_ID if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_OTAPDLY) | + ((u64)SD0_OTAPDLY_SEL_MASK << 32), (u64)SD0_OTAPDLYSEL_SD50, + 0, 0, 0, 0, 0); +#else /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD0_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; TapDelay |= SD0_OTAPDLYSEL_SD50; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif } else { #endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_OTAPDLY) | + ((u64)SD1_OTAPDLY_SEL_MASK << 32), (u64)SD1_OTAPDLYSEL_SD50, + 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD1_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; TapDelay |= SD1_OTAPDLYSEL_SD50; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif #ifdef XPAR_PSU_SD_0_DEVICE_ID } #endif @@ -1296,6 +1380,33 @@ void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) #ifdef XPAR_PSU_SD_0_DEVICE_ID if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)SD0_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPDLYENA << 32), (u64)SD0_ITAPDLYENA, + 0, 0, 0, 0, 0); + if (CardType== XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD0_ITAPDLY_SEL_MASK << 32), + (u64)SD0_ITAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD0_ITAPDLY_SEL_MASK << 32), + (u64)SD0_ITAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); TapDelay |= SD0_ITAPCHGWIN; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); @@ -1311,15 +1422,44 @@ void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD0_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; if (CardType == XSDPS_CARD_SD) TapDelay |= SD0_OTAPDLYSEL_SD_DDR50; else TapDelay |= SD0_OTAPDLYSEL_EMMC_DDR50; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif } else { #endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPCHGWIN << 32), (u64)SD1_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPDLYENA << 32), (u64)SD1_ITAPDLYENA, + 0, 0, 0, 0, 0); + if (CardType== XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD1_ITAPDLY_SEL_MASK << 32), + (u64)SD1_ITAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD1_ITAPDLY_SEL_MASK << 32), + (u64)SD1_ITAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD1_ITAPCHGWIN << 32), + (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID,(u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID,(u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); TapDelay |= SD1_ITAPCHGWIN; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); @@ -1335,13 +1475,13 @@ void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD1_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; if (CardType == XSDPS_CARD_SD) TapDelay |= SD1_OTAPDLYSEL_SD_DDR50; else TapDelay |= SD1_OTAPDLYSEL_EMMC_DDR50; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif #ifdef XPAR_PSU_SD_0_DEVICE_ID } #endif @@ -1367,6 +1507,28 @@ void XSdPs_hsd_sdr25_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) #ifdef XPAR_PSU_SD_0_DEVICE_ID if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)SD0_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPDLYENA << 32), (u64)SD0_ITAPDLYENA, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPDLY_SEL_MASK << 32), (u64)SD0_ITAPDLYSEL_HSD, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_SD_HSD, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_EMMC_HSD, 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); TapDelay |= SD0_ITAPCHGWIN; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); @@ -1379,15 +1541,38 @@ void XSdPs_hsd_sdr25_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD0_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; if (CardType == XSDPS_CARD_SD) TapDelay |= SD0_OTAPDLYSEL_SD_HSD; else TapDelay |= SD0_OTAPDLYSEL_EMMC_HSD; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif } else { #endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPCHGWIN << 32), (u64)SD1_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPDLYENA << 32), (u64)SD1_ITAPDLYENA, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPDLY_SEL_MASK << 32), (u64)SD1_ITAPDLYSEL_HSD, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPCHGWIN << 32), (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_SD_HSD, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_EMMC_HSD, 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); TapDelay |= SD1_ITAPCHGWIN; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); @@ -1400,13 +1585,13 @@ void XSdPs_hsd_sdr25_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD1_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; if (CardType == XSDPS_CARD_SD) TapDelay |= SD1_OTAPDLYSEL_SD_HSD; else TapDelay |= SD1_OTAPDLYSEL_EMMC_HSD; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif #ifdef XPAR_PSU_SD_0_DEVICE_ID } #endif @@ -1434,20 +1619,48 @@ void XSdPs_SetTapDelay(XSdPs *InstancePtr) CardType = InstancePtr->CardType ; #ifdef XPAR_PSU_SD_0_DEVICE_ID if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)SD0_DLL_RST, 0, 0, 0, 0, 0); +#else DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); DllCtrl |= SD0_DLL_RST; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif InstancePtr->Config_TapDelay(BankNum, DeviceId, CardType); +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else DllCtrl &= ~SD0_DLL_RST; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif } else { #endif +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)SD1_DLL_RST, 0, 0, 0, 0, 0); +#else DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); DllCtrl |= SD1_DLL_RST; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif InstancePtr->Config_TapDelay(BankNum, DeviceId, CardType); +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else DllCtrl &= ~SD1_DLL_RST; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif #ifdef XPAR_PSU_SD_0_DEVICE_ID } #endif @@ -1480,11 +1693,26 @@ static void XSdPs_DllReset(XSdPs *InstancePtr) /* Issue DLL Reset to load zero tap values */ DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); if (InstancePtr->Config.DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)SD0_DLL_RST, 0, 0, 0, 0, 0); +#else DllCtrl |= SD0_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif } else { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)SD1_DLL_RST, 0, 0, 0, 0, 0); +#else DllCtrl |= SD1_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif } - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); /* Wait for 2 micro seconds */ (void)usleep(2U); @@ -1492,11 +1720,26 @@ static void XSdPs_DllReset(XSdPs *InstancePtr) /* Release the DLL out of reset */ DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); if (InstancePtr->Config.DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else DllCtrl &= ~SD0_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif } else { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else DllCtrl &= ~SD1_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif } - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); /* Wait for internal clock to stabilize */ ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_sinit.c index e0936b308..b49a0064c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_4/src/xsdps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xsdps_sinit.c -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * The implementation of the XSdPs component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/asm_vectors.S b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/asm_vectors.S deleted file mode 100644 index a08867a16..000000000 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/asm_vectors.S +++ /dev/null @@ -1,208 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ -/*****************************************************************************/ -/** -* @file asm_vectors.s -* -* This file contains the initial vector table for the Cortex A53 processor -* Currently NEON registers are not saved on stack if interrupt is taken. -* It will be implemented. -* -*
-* MODIFICATION HISTORY:
-*
-* Ver   Who     Date     Changes
-* ----- ------- -------- ---------------------------------------------------
-* 5.00	pkp	5/21/14 Initial version
-* 
-* -* @note -* -* None. -* -******************************************************************************/ - - - -.org 0 -.text - -.globl _boot -.globl _vector_table - -.globl FIQInterrupt -.globl IRQInterrupt -.globl SErrorInterrupt -.globl SynchronousInterrupt - - -.org 0 - -.section .vectors, "a" - -_vector_table: - -.set VBAR, _vector_table -.org VBAR - b _boot -.org (VBAR + 0x200) - b SynchronousInterruptHandler - -.org (VBAR + 0x280) - b IRQInterruptHandler - -.org (VBAR + 0x300) - b FIQInterruptHandler - -.org (VBAR + 0x380) - b SErrorInterruptHandler - - -SynchronousInterruptHandler: - stp X0,X1, [sp,#-0x10]! - stp X2,X3, [sp,#-0x10]! - stp X4,X5, [sp,#-0x10]! - stp X6,X7, [sp,#-0x10]! - stp X8,X9, [sp,#-0x10]! - stp X10,X11, [sp,#-0x10]! - stp X12,X13, [sp,#-0x10]! - stp X14,X15, [sp,#-0x10]! - stp X16,X17, [sp,#-0x10]! - stp X18,X19, [sp,#-0x10]! - stp X29,X30, [sp,#-0x10]! - - bl SynchronousInterrupt - - ldp X29,X30, [sp], #0x10 - ldp X18,X19, [sp], #0x10 - ldp X16,X17, [sp], #0x10 - ldp X14,X15, [sp], #0x10 - ldp X12,X13, [sp], #0x10 - ldp X10,X11, [sp], #0x10 - ldp X8,X9, [sp], #0x10 - ldp X6,X7, [sp], #0x10 - ldp X4,X5, [sp], #0x10 - ldp X2,X3, [sp], #0x10 - ldp X0,X1, [sp], #0x10 - - eret - -IRQInterruptHandler: - stp X0,X1, [sp,#-0x10]! - stp X2,X3, [sp,#-0x10]! - stp X4,X5, [sp,#-0x10]! - stp X6,X7, [sp,#-0x10]! - stp X8,X9, [sp,#-0x10]! - stp X10,X11, [sp,#-0x10]! - stp X12,X13, [sp,#-0x10]! - stp X14,X15, [sp,#-0x10]! - stp X16,X17, [sp,#-0x10]! - stp X18,X19, [sp,#-0x10]! - stp X29,X30, [sp,#-0x10]! - - bl IRQInterrupt - - ldp X29,X30, [sp], #0x10 - ldp X18,X19, [sp], #0x10 - ldp X16,X17, [sp], #0x10 - ldp X14,X15, [sp], #0x10 - ldp X12,X13, [sp], #0x10 - ldp X10,X11, [sp], #0x10 - ldp X8,X9, [sp], #0x10 - ldp X6,X7, [sp], #0x10 - ldp X4,X5, [sp], #0x10 - ldp X2,X3, [sp], #0x10 - ldp X0,X1, [sp], #0x10 - - eret - -FIQInterruptHandler: - - stp X0,X1, [sp,#-0x10]! - stp X2,X3, [sp,#-0x10]! - stp X4,X5, [sp,#-0x10]! - stp X6,X7, [sp,#-0x10]! - stp X8,X9, [sp,#-0x10]! - stp X10,X11, [sp,#-0x10]! - stp X12,X13, [sp,#-0x10]! - stp X14,X15, [sp,#-0x10]! - stp X16,X17, [sp,#-0x10]! - stp X18,X19, [sp,#-0x10]! - stp X29,X30, [sp,#-0x10]! - - bl FIQInterrupt - - ldp X29,X30, [sp], #0x10 - ldp X18,X19, [sp], #0x10 - ldp X16,X17, [sp], #0x10 - ldp X14,X15, [sp], #0x10 - ldp X12,X13, [sp], #0x10 - ldp X10,X11, [sp], #0x10 - ldp X8,X9, [sp], #0x10 - ldp X6,X7, [sp], #0x10 - ldp X4,X5, [sp], #0x10 - ldp X2,X3, [sp], #0x10 - ldp X0,X1, [sp], #0x10 - - eret - -SErrorInterruptHandler: - - stp X0,X1, [sp,#-0x10]! - stp X2,X3, [sp,#-0x10]! - stp X4,X5, [sp,#-0x10]! - stp X6,X7, [sp,#-0x10]! - stp X8,X9, [sp,#-0x10]! - stp X10,X11, [sp,#-0x10]! - stp X12,X13, [sp,#-0x10]! - stp X14,X15, [sp,#-0x10]! - stp X16,X17, [sp,#-0x10]! - stp X18,X19, [sp,#-0x10]! - stp X29,X30, [sp,#-0x10]! - - bl SErrorInterrupt - - ldp X29,X30, [sp], #0x10 - ldp X18,X19, [sp], #0x10 - ldp X16,X17, [sp], #0x10 - ldp X14,X15, [sp], #0x10 - ldp X12,X13, [sp], #0x10 - ldp X10,X11, [sp], #0x10 - ldp X8,X9, [sp], #0x10 - ldp X6,X7, [sp], #0x10 - ldp X4,X5, [sp], #0x10 - ldp X2,X3, [sp], #0x10 - ldp X0,X1, [sp], #0x10 - - eret - -.end diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/sleep.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/sleep.h deleted file mode 100644 index 27add6605..000000000 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/sleep.h +++ /dev/null @@ -1,50 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ - -#ifndef SLEEP_H -#define SLEEP_H - -#include "xil_types.h" -#include "xil_io.h" - -#ifdef __cplusplus -extern "C" { -#endif - -int usleep(unsigned long useconds); -unsigned sleep(unsigned int seconds); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xstatus.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xstatus.h deleted file mode 100644 index 4873e85eb..000000000 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xstatus.h +++ /dev/null @@ -1,432 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2002 - 2015 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ -/*****************************************************************************/ -/** -* -* @file xstatus.h -* -* This file contains Xilinx software status codes. Status codes have their -* own data type called int. These codes are used throughout the Xilinx -* device drivers. -* -******************************************************************************/ - -#ifndef XSTATUS_H /* prevent circular inclusions */ -#define XSTATUS_H /* by using protection macros */ - -#ifdef __cplusplus -extern "C" { -#endif - -/***************************** Include Files *********************************/ - -#include "xil_types.h" -#include "xil_assert.h" - -/************************** Constant Definitions *****************************/ - -/*********************** Common statuses 0 - 500 *****************************/ - -#define XST_SUCCESS 0L -#define XST_FAILURE 1L -#define XST_DEVICE_NOT_FOUND 2L -#define XST_DEVICE_BLOCK_NOT_FOUND 3L -#define XST_INVALID_VERSION 4L -#define XST_DEVICE_IS_STARTED 5L -#define XST_DEVICE_IS_STOPPED 6L -#define XST_FIFO_ERROR 7L /* an error occurred during an - operation with a FIFO such as - an underrun or overrun, this - error requires the device to - be reset */ -#define XST_RESET_ERROR 8L /* an error occurred which requires - the device to be reset */ -#define XST_DMA_ERROR 9L /* a DMA error occurred, this error - typically requires the device - using the DMA to be reset */ -#define XST_NOT_POLLED 10L /* the device is not configured for - polled mode operation */ -#define XST_FIFO_NO_ROOM 11L /* a FIFO did not have room to put - the specified data into */ -#define XST_BUFFER_TOO_SMALL 12L /* the buffer is not large enough - to hold the expected data */ -#define XST_NO_DATA 13L /* there was no data available */ -#define XST_REGISTER_ERROR 14L /* a register did not contain the - expected value */ -#define XST_INVALID_PARAM 15L /* an invalid parameter was passed - into the function */ -#define XST_NOT_SGDMA 16L /* the device is not configured for - scatter-gather DMA operation */ -#define XST_LOOPBACK_ERROR 17L /* a loopback test failed */ -#define XST_NO_CALLBACK 18L /* a callback has not yet been - registered */ -#define XST_NO_FEATURE 19L /* device is not configured with - the requested feature */ -#define XST_NOT_INTERRUPT 20L /* device is not configured for - interrupt mode operation */ -#define XST_DEVICE_BUSY 21L /* device is busy */ -#define XST_ERROR_COUNT_MAX 22L /* the error counters of a device - have maxed out */ -#define XST_IS_STARTED 23L /* used when part of device is - already started i.e. - sub channel */ -#define XST_IS_STOPPED 24L /* used when part of device is - already stopped i.e. - sub channel */ -#define XST_DATA_LOST 26L /* driver defined error */ -#define XST_RECV_ERROR 27L /* generic receive error */ -#define XST_SEND_ERROR 28L /* generic transmit error */ -#define XST_NOT_ENABLED 29L /* a requested service is not - available because it has not - been enabled */ - -/***************** Utility Component statuses 401 - 500 *********************/ - -#define XST_MEMTEST_FAILED 401L /* memory test failed */ - - -/***************** Common Components statuses 501 - 1000 *********************/ - -/********************* Packet Fifo statuses 501 - 510 ************************/ - -#define XST_PFIFO_LACK_OF_DATA 501L /* not enough data in FIFO */ -#define XST_PFIFO_NO_ROOM 502L /* not enough room in FIFO */ -#define XST_PFIFO_BAD_REG_VALUE 503L /* self test, a register value - was invalid after reset */ -#define XST_PFIFO_ERROR 504L /* generic packet FIFO error */ -#define XST_PFIFO_DEADLOCK 505L /* packet FIFO is reporting - * empty and full simultaneously - */ - -/************************** DMA statuses 511 - 530 ***************************/ - -#define XST_DMA_TRANSFER_ERROR 511L /* self test, DMA transfer - failed */ -#define XST_DMA_RESET_REGISTER_ERROR 512L /* self test, a register value - was invalid after reset */ -#define XST_DMA_SG_LIST_EMPTY 513L /* scatter gather list contains - no buffer descriptors ready - to be processed */ -#define XST_DMA_SG_IS_STARTED 514L /* scatter gather not stopped */ -#define XST_DMA_SG_IS_STOPPED 515L /* scatter gather not running */ -#define XST_DMA_SG_LIST_FULL 517L /* all the buffer desciptors of - the scatter gather list are - being used */ -#define XST_DMA_SG_BD_LOCKED 518L /* the scatter gather buffer - descriptor which is to be - copied over in the scatter - list is locked */ -#define XST_DMA_SG_NOTHING_TO_COMMIT 519L /* no buffer descriptors have been - put into the scatter gather - list to be commited */ -#define XST_DMA_SG_COUNT_EXCEEDED 521L /* the packet count threshold - specified was larger than the - total # of buffer descriptors - in the scatter gather list */ -#define XST_DMA_SG_LIST_EXISTS 522L /* the scatter gather list has - already been created */ -#define XST_DMA_SG_NO_LIST 523L /* no scatter gather list has - been created */ -#define XST_DMA_SG_BD_NOT_COMMITTED 524L /* the buffer descriptor which was - being started was not committed - to the list */ -#define XST_DMA_SG_NO_DATA 525L /* the buffer descriptor to start - has already been used by the - hardware so it can't be reused - */ -#define XST_DMA_SG_LIST_ERROR 526L /* general purpose list access - error */ -#define XST_DMA_BD_ERROR 527L /* general buffer descriptor - error */ - -/************************** IPIF statuses 531 - 550 ***************************/ - -#define XST_IPIF_REG_WIDTH_ERROR 531L /* an invalid register width - was passed into the function */ -#define XST_IPIF_RESET_REGISTER_ERROR 532L /* the value of a register at - reset was not valid */ -#define XST_IPIF_DEVICE_STATUS_ERROR 533L /* a write to the device interrupt - status register did not read - back correctly */ -#define XST_IPIF_DEVICE_ACK_ERROR 534L /* the device interrupt status - register did not reset when - acked */ -#define XST_IPIF_DEVICE_ENABLE_ERROR 535L /* the device interrupt enable - register was not updated when - other registers changed */ -#define XST_IPIF_IP_STATUS_ERROR 536L /* a write to the IP interrupt - status register did not read - back correctly */ -#define XST_IPIF_IP_ACK_ERROR 537L /* the IP interrupt status register - did not reset when acked */ -#define XST_IPIF_IP_ENABLE_ERROR 538L /* IP interrupt enable register was - not updated correctly when other - registers changed */ -#define XST_IPIF_DEVICE_PENDING_ERROR 539L /* The device interrupt pending - register did not indicate the - expected value */ -#define XST_IPIF_DEVICE_ID_ERROR 540L /* The device interrupt ID register - did not indicate the expected - value */ -#define XST_IPIF_ERROR 541L /* generic ipif error */ - -/****************** Device specific statuses 1001 - 4095 *********************/ - -/********************* Ethernet statuses 1001 - 1050 *************************/ - -#define XST_EMAC_MEMORY_SIZE_ERROR 1001L /* Memory space is not big enough - * to hold the minimum number of - * buffers or descriptors */ -#define XST_EMAC_MEMORY_ALLOC_ERROR 1002L /* Memory allocation failed */ -#define XST_EMAC_MII_READ_ERROR 1003L /* MII read error */ -#define XST_EMAC_MII_BUSY 1004L /* An MII operation is in progress */ -#define XST_EMAC_OUT_OF_BUFFERS 1005L /* Driver is out of buffers */ -#define XST_EMAC_PARSE_ERROR 1006L /* Invalid driver init string */ -#define XST_EMAC_COLLISION_ERROR 1007L /* Excess deferral or late - * collision on polled send */ - -/*********************** UART statuses 1051 - 1075 ***************************/ -#define XST_UART - -#define XST_UART_INIT_ERROR 1051L -#define XST_UART_START_ERROR 1052L -#define XST_UART_CONFIG_ERROR 1053L -#define XST_UART_TEST_FAIL 1054L -#define XST_UART_BAUD_ERROR 1055L -#define XST_UART_BAUD_RANGE 1056L - - -/************************ IIC statuses 1076 - 1100 ***************************/ - -#define XST_IIC_SELFTEST_FAILED 1076 /* self test failed */ -#define XST_IIC_BUS_BUSY 1077 /* bus found busy */ -#define XST_IIC_GENERAL_CALL_ADDRESS 1078 /* mastersend attempted with */ - /* general call address */ -#define XST_IIC_STAND_REG_RESET_ERROR 1079 /* A non parameterizable reg */ - /* value after reset not valid */ -#define XST_IIC_TX_FIFO_REG_RESET_ERROR 1080 /* Tx fifo included in design */ - /* value after reset not valid */ -#define XST_IIC_RX_FIFO_REG_RESET_ERROR 1081 /* Rx fifo included in design */ - /* value after reset not valid */ -#define XST_IIC_TBA_REG_RESET_ERROR 1082 /* 10 bit addr incl in design */ - /* value after reset not valid */ -#define XST_IIC_CR_READBACK_ERROR 1083 /* Read of the control register */ - /* didn't return value written */ -#define XST_IIC_DTR_READBACK_ERROR 1084 /* Read of the data Tx reg */ - /* didn't return value written */ -#define XST_IIC_DRR_READBACK_ERROR 1085 /* Read of the data Receive reg */ - /* didn't return value written */ -#define XST_IIC_ADR_READBACK_ERROR 1086 /* Read of the data Tx reg */ - /* didn't return value written */ -#define XST_IIC_TBA_READBACK_ERROR 1087 /* Read of the 10 bit addr reg */ - /* didn't return written value */ -#define XST_IIC_NOT_SLAVE 1088 /* The device isn't a slave */ - -/*********************** ATMC statuses 1101 - 1125 ***************************/ - -#define XST_ATMC_ERROR_COUNT_MAX 1101L /* the error counters in the ATM - controller hit the max value - which requires the statistics - to be cleared */ - -/*********************** Flash statuses 1126 - 1150 **************************/ - -#define XST_FLASH_BUSY 1126L /* Flash is erasing or programming - */ -#define XST_FLASH_READY 1127L /* Flash is ready for commands */ -#define XST_FLASH_ERROR 1128L /* Flash had detected an internal - error. Use XFlash_DeviceControl - to retrieve device specific codes - */ -#define XST_FLASH_ERASE_SUSPENDED 1129L /* Flash is in suspended erase state - */ -#define XST_FLASH_WRITE_SUSPENDED 1130L /* Flash is in suspended write state - */ -#define XST_FLASH_PART_NOT_SUPPORTED 1131L /* Flash type not supported by - driver */ -#define XST_FLASH_NOT_SUPPORTED 1132L /* Operation not supported */ -#define XST_FLASH_TOO_MANY_REGIONS 1133L /* Too many erase regions */ -#define XST_FLASH_TIMEOUT_ERROR 1134L /* Programming or erase operation - aborted due to a timeout */ -#define XST_FLASH_ADDRESS_ERROR 1135L /* Accessed flash outside its - addressible range */ -#define XST_FLASH_ALIGNMENT_ERROR 1136L /* Write alignment error */ -#define XST_FLASH_BLOCKING_CALL_ERROR 1137L /* Couldn't return immediately from - write/erase function with - XFL_NON_BLOCKING_WRITE/ERASE - option cleared */ -#define XST_FLASH_CFI_QUERY_ERROR 1138L /* Failed to query the device */ - -/*********************** SPI statuses 1151 - 1175 ****************************/ - -#define XST_SPI_MODE_FAULT 1151 /* master was selected as slave */ -#define XST_SPI_TRANSFER_DONE 1152 /* data transfer is complete */ -#define XST_SPI_TRANSMIT_UNDERRUN 1153 /* slave underruns transmit register */ -#define XST_SPI_RECEIVE_OVERRUN 1154 /* device overruns receive register */ -#define XST_SPI_NO_SLAVE 1155 /* no slave has been selected yet */ -#define XST_SPI_TOO_MANY_SLAVES 1156 /* more than one slave is being - * selected */ -#define XST_SPI_NOT_MASTER 1157 /* operation is valid only as master */ -#define XST_SPI_SLAVE_ONLY 1158 /* device is configured as slave-only - */ -#define XST_SPI_SLAVE_MODE_FAULT 1159 /* slave was selected while disabled */ -#define XST_SPI_SLAVE_MODE 1160 /* device has been addressed as slave */ -#define XST_SPI_RECEIVE_NOT_EMPTY 1161 /* device received data in slave mode */ - -#define XST_SPI_COMMAND_ERROR 1162 /* unrecognised command - qspi only */ -#define XST_SPI_POLL_DONE 1163 /* controller completed polling the - device for status */ - -/********************** OPB Arbiter statuses 1176 - 1200 *********************/ - -#define XST_OPBARB_INVALID_PRIORITY 1176 /* the priority registers have either - * one master assigned to two or more - * priorities, or one master not - * assigned to any priority - */ -#define XST_OPBARB_NOT_SUSPENDED 1177 /* an attempt was made to modify the - * priority levels without first - * suspending the use of priority - * levels - */ -#define XST_OPBARB_PARK_NOT_ENABLED 1178 /* bus parking by id was enabled but - * bus parking was not enabled - */ -#define XST_OPBARB_NOT_FIXED_PRIORITY 1179 /* the arbiter must be in fixed - * priority mode to allow the - * priorities to be changed - */ - -/************************ Intc statuses 1201 - 1225 **************************/ - -#define XST_INTC_FAIL_SELFTEST 1201 /* self test failed */ -#define XST_INTC_CONNECT_ERROR 1202 /* interrupt already in use */ - -/********************** TmrCtr statuses 1226 - 1250 **************************/ - -#define XST_TMRCTR_TIMER_FAILED 1226 /* self test failed */ - -/********************** WdtTb statuses 1251 - 1275 ***************************/ - -#define XST_WDTTB_TIMER_FAILED 1251L - -/********************** PlbArb statuses 1276 - 1300 **************************/ - -#define XST_PLBARB_FAIL_SELFTEST 1276L - -/********************** Plb2Opb statuses 1301 - 1325 *************************/ - -#define XST_PLB2OPB_FAIL_SELFTEST 1301L - -/********************** Opb2Plb statuses 1326 - 1350 *************************/ - -#define XST_OPB2PLB_FAIL_SELFTEST 1326L - -/********************** SysAce statuses 1351 - 1360 **************************/ - -#define XST_SYSACE_NO_LOCK 1351L /* No MPU lock has been granted */ - -/********************** PCI Bridge statuses 1361 - 1375 **********************/ - -#define XST_PCI_INVALID_ADDRESS 1361L - -/********************** FlexRay constants 1400 - 1409 *************************/ - -#define XST_FR_TX_ERROR 1400 -#define XST_FR_TX_BUSY 1401 -#define XST_FR_BUF_LOCKED 1402 -#define XST_FR_NO_BUF 1403 - -/****************** USB constants 1410 - 1420 *******************************/ - -#define XST_USB_ALREADY_CONFIGURED 1410 -#define XST_USB_BUF_ALIGN_ERROR 1411 -#define XST_USB_NO_DESC_AVAILABLE 1412 -#define XST_USB_BUF_TOO_BIG 1413 -#define XST_USB_NO_BUF 1414 - -/****************** HWICAP constants 1421 - 1429 *****************************/ - -#define XST_HWICAP_WRITE_DONE 1421 - - -/****************** AXI VDMA constants 1430 - 1440 *****************************/ - -#define XST_VDMA_MISMATCH_ERROR 1430 - -/*********************** NAND Flash statuses 1441 - 1459 *********************/ - -#define XST_NAND_BUSY 1441L /* Flash is erasing or - * programming - */ -#define XST_NAND_READY 1442L /* Flash is ready for commands - */ -#define XST_NAND_ERROR 1443L /* Flash had detected an - * internal error. - */ -#define XST_NAND_PART_NOT_SUPPORTED 1444L /* Flash type not supported by - * driver - */ -#define XST_NAND_OPT_NOT_SUPPORTED 1445L /* Operation not supported - */ -#define XST_NAND_TIMEOUT_ERROR 1446L /* Programming or erase - * operation aborted due to a - * timeout - */ -#define XST_NAND_ADDRESS_ERROR 1447L /* Accessed flash outside its - * addressible range - */ -#define XST_NAND_ALIGNMENT_ERROR 1448L /* Write alignment error - */ -#define XST_NAND_PARAM_PAGE_ERROR 1449L /* Failed to read parameter - * page of the device - */ -#define XST_NAND_CACHE_ERROR 1450L /* Flash page buffer error - */ - -#define XST_NAND_WRITE_PROTECTED 1451L /* Flash is write protected - */ - -/**************************** Type Definitions *******************************/ - -typedef s32 XStatus; - -/***************** Macros (Inline Functions) Definitions *********************/ - - -/************************** Function Prototypes ******************************/ - -#ifdef __cplusplus -} -#endif - -#endif /* end of protection macro */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/Makefile similarity index 82% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/Makefile index 0425bf6c1..a97e121ed 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/Makefile +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/Makefile @@ -40,7 +40,10 @@ LIB=libxil.a CC_FLAGS = $(subst -pg, -DPROFILING, $(COMPILER_FLAGS)) ECC_FLAGS = $(subst -pg, -DPROFILING, $(EXTRA_COMPILER_FLAGS)) -ECC_FLAGS += -march=armv8-a +ECC_FLAGS += -nostartfiles\ + -march=armv8-a +ECC_FLAGS_NO_FLTO1 = $(subst -flto,,$(ECC_FLAGS)) +ECC_FLAGS_NO_FLTO = $(subst -ffat-lto-objects,,$(ECC_FLAGS_NO_FLTO1)) RELEASEDIR=../../../lib @@ -48,14 +51,16 @@ INCLUDEDIR=../../../include INCLUDES=-I./. -I${INCLUDEDIR} OUTS = *.o - +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) +ASSEMBLY_OBJECTS = $(addsuffix .o, $(basename $(wildcard *.S))) INCLUDEFILES=*.h INCLUDEFILES+=includes_ps/*.h libs: $(LIBS) standalone_libs: $(LIBSOURCES) echo "Compiling standalone A53" - $(CC) $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) $^ + $(CC) $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) $(filter-out _exit.c, $^) + $(CC) $(CC_FLAGS) $(ECC_FLAGS_NO_FLTO) $(INCLUDES) _exit.c $(AR) -r ${RELEASEDIR}/${LIB} ${OUTS} .PHONY: include @@ -65,5 +70,5 @@ standalone_includes: ${CP} ${INCLUDEFILES} ${INCLUDEDIR} clean: - rm -rf ${OUTS} - $(MAKE) -C COMPILER_FLAGS="$(COMPILER_FLAGS)" EXTRA_COMPILER_FLAGS="$(EXTRA_COMPILER_FLAGS)" COMPILER="$(CC)" ARCHIVER="$(AR)" clean + rm -rf ${OBJECTS} + rm -rf ${ASSEMBLY_OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/_exit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/_exit.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/_exit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/_exit.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/_open.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/_open.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/_open.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/_open.c index 9b5a23adf..a108b7716 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/_open.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/_open.c @@ -45,7 +45,7 @@ extern "C" { */ __attribute__((weak)) s32 _open(const char8 *buf, s32 flags, s32 mode) { - (void *)buf; + (void)buf; (void)flags; (void)mode; errno = EIO; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/_sbrk.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/_sbrk.c similarity index 95% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/_sbrk.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/_sbrk.c index 2a069ec06..967bdfc5b 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/_sbrk.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/_sbrk.c @@ -54,15 +54,10 @@ __attribute__((weak)) caddr_t _sbrk ( s32 incr ) } prev_heap = heap; + if (((heap + incr) <= HeapEndPtr) && (prev_heap != NULL)) { heap += incr; - - if (heap > HeapEndPtr){ - Status = (caddr_t) -1; - } - else if (prev_heap != NULL) { Status = (caddr_t) ((void *)prev_heap); - } - else { + } else { Status = (caddr_t) -1; } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/abort.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/abort.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/abort.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/abort.c diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/asm_vectors.S b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/asm_vectors.S new file mode 100644 index 000000000..56bb9aec2 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/asm_vectors.S @@ -0,0 +1,374 @@ +/****************************************************************************** +* +* Copyright (C) 2014 - 2018 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* @file asm_vectors.s +* +* This file contains the initial vector table for the Cortex A53 processor +* +*
+* MODIFICATION HISTORY:
+*
+* Ver   Who     Date     Changes
+* ----- ------- -------- ---------------------------------------------------
+* 5.00	pkp	05/21/14 Initial version
+* 6.02  pkp	12/21/16 Added support for floating point access
+* 6.02  pkp	01/22/17 Added support for EL1 non-secure and hypervisor
+*			 baremetal guest
+* 6.4   mus     06/14/17 Fixed bug in IRQInterruptHandler code snippet,
+*                        which checks for the FPEN bit of CPACR_EL1
+* 6.6   mus     01/19/18 Added isb after writing to the cpacr_el1/cptr_el3,
+*                        to ensure enabling/disabling of floating-point unit
+*                        is completed, before any subsequent instruction.
+*
+* 
+* +* @note +* +* None. +* +******************************************************************************/ + +#include "bspconfig.h" + +.org 0 +.text + +.globl _boot +.globl _vector_table + +.globl FIQInterrupt +.globl IRQInterrupt +.globl SErrorInterrupt +.globl SynchronousInterrupt +.globl FPUStatus + +/* + * FPUContextSize is the size of the array where floating point registers are + * stored when required. The default size corresponds to the case when there is no + * nested interrupt. If there are nested interrupts in application which are using + * floating point operation, the size of FPUContextSize need to be increased as per + * requirement + */ + +.set FPUContextSize, 528 + +.macro saveregister + stp X0,X1, [sp,#-0x10]! + stp X2,X3, [sp,#-0x10]! + stp X4,X5, [sp,#-0x10]! + stp X6,X7, [sp,#-0x10]! + stp X8,X9, [sp,#-0x10]! + stp X10,X11, [sp,#-0x10]! + stp X12,X13, [sp,#-0x10]! + stp X14,X15, [sp,#-0x10]! + stp X16,X17, [sp,#-0x10]! + stp X18,X19, [sp,#-0x10]! + stp X29,X30, [sp,#-0x10]! +.endm + +.macro restoreregister + ldp X29,X30, [sp], #0x10 + ldp X18,X19, [sp], #0x10 + ldp X16,X17, [sp], #0x10 + ldp X14,X15, [sp], #0x10 + ldp X12,X13, [sp], #0x10 + ldp X10,X11, [sp], #0x10 + ldp X8,X9, [sp], #0x10 + ldp X6,X7, [sp], #0x10 + ldp X4,X5, [sp], #0x10 + ldp X2,X3, [sp], #0x10 + ldp X0,X1, [sp], #0x10 +.endm + +.macro savefloatregister + +/* Load the floating point context array address from FPUContextBase */ + ldr x1,=FPUContextBase + ldr x0, [x1] + +/* Save all the floating point register to the array */ + stp q0,q1, [x0], #0x20 + stp q2,q3, [x0], #0x20 + stp q4,q5, [x0], #0x20 + stp q6,q7, [x0], #0x20 + stp q8,q9, [x0], #0x20 + stp q10,q11, [x0], #0x20 + stp q12,q13, [x0], #0x20 + stp q14,q15, [x0], #0x20 + stp q16,q17, [x0], #0x20 + stp q18,q19, [x0], #0x20 + stp q20,q21, [x0], #0x20 + stp q22,q23, [x0], #0x20 + stp q24,q25, [x0], #0x20 + stp q26,q27, [x0], #0x20 + stp q28,q29, [x0], #0x20 + stp q30,q31, [x0], #0x20 + mrs x2, FPCR + mrs x3, FPSR + stp x2, x3, [x0], #0x10 + +/* Save current address of floating point context array to FPUContextBase */ + str x0, [x1] +.endm + +.macro restorefloatregister + +/* Restore the address of floating point context array from FPUContextBase */ + ldr x1,=FPUContextBase + ldr x0, [x1] + +/* Restore all the floating point register from the array */ + ldp x2, x3, [x0,#-0x10]! + msr FPCR, x2 + msr FPSR, x3 + ldp q30,q31, [x0,#-0x20]! + ldp q28,q29, [x0,#-0x20]! + ldp q26,q27, [x0,#-0x20]! + ldp q24,q25, [x0,#-0x20]! + ldp q22,q23, [x0,#-0x20]! + ldp q20,q21, [x0,#-0x20]! + ldp q18,q19, [x0,#-0x20]! + ldp q16,q17, [x0,#-0x20]! + ldp q14,q15, [x0,#-0x20]! + ldp q12,q13, [x0,#-0x20]! + ldp q10,q11, [x0,#-0x20]! + ldp q8,q9, [x0,#-0x20]! + ldp q6,q7, [x0,#-0x20]! + ldp q4,q5, [x0,#-0x20]! + ldp q2,q3, [x0,#-0x20]! + ldp q0,q1, [x0,#-0x20]! + +/* Save current address of floating point context array to FPUContextBase */ + str x0, [x1] +.endm + + +.org 0 + +.section .vectors, "a" + +_vector_table: +.set VBAR, _vector_table +.org VBAR +/* + * if application is built for XEN GUEST as EL1 Non-secure following image + * header is required by XEN. + */ +.if (HYP_GUEST == 1) + + /* Valid Image header. */ + /* HW reset vector. */ + ldr x16, =_boot + br x16 + + /* text offset. */ + .dword 0 + /* image size. */ + .dword 0 + /* flags. */ + .dword 8 + /* RES0 */ + .dword 0 + .dword 0 + .dword 0 + + /* magic */ + .dword 0x644d5241 + /* RES0 */ + .dword 0 + /* End of Image header. */ +.endif + + b _boot +.org (VBAR + 0x200) + b SynchronousInterruptHandler + +.org (VBAR + 0x280) + b IRQInterruptHandler + +.org (VBAR + 0x300) + b FIQInterruptHandler + +.org (VBAR + 0x380) + b SErrorInterruptHandler + + +SynchronousInterruptHandler: + saveregister + +/* Check if the Synchronous abort is occured due to floating point access. */ +.if (EL3 == 1) + mrs x0, ESR_EL3 +.else + mrs x0, ESR_EL1 +.endif + and x0, x0, #(0x3F << 26) + mov x1, #(0x7 << 26) + cmp x0, x1 +/* If exception is not due to floating point access go to synchronous handler */ + bne synchronoushandler + +/* + * If excpetion occured due to floating point access, Enable the floating point + * access i.e. do not trap floating point instruction + */ + .if (EL3 == 1) + mrs x1,CPTR_EL3 + bic x1, x1, #(0x1<<10) + msr CPTR_EL3, x1 +.else + mrs x1,CPACR_EL1 + orr x1, x1, #(0x1<<20) + msr CPACR_EL1, x1 +.endif + isb + +/* If the floating point access was previously enabled, store FPU context + * registers(storefloat). + */ + ldr x0, =FPUStatus + ldrb w1,[x0] + cbnz w1, storefloat +/* + * If the floating point access was not enabled previously, save the status of + * floating point accessibility i.e. enabled and store floating point context + * array address(FPUContext) to FPUContextBase. + */ + mov w1, #0x1 + strb w1, [x0] + ldr x0, =FPUContext + ldr x1, =FPUContextBase + str x0,[x1] + b restorecontext +storefloat: + savefloatregister + b restorecontext +synchronoushandler: + bl SynchronousInterrupt +restorecontext: + restoreregister + eret + +IRQInterruptHandler: + + saveregister +/* Save the status of SPSR, ELR and CPTR to stack */ + .if (EL3 == 1) + mrs x0, CPTR_EL3 + mrs x1, ELR_EL3 + mrs x2, SPSR_EL3 +.else + mrs x0, CPACR_EL1 + mrs x1, ELR_EL1 + mrs x2, SPSR_EL1 +.endif + stp x0, x1, [sp,#-0x10]! + str x2, [sp,#-0x10]! + +/* Trap floating point access */ + .if (EL3 == 1) + mrs x1,CPTR_EL3 + orr x1, x1, #(0x1<<10) + msr CPTR_EL3, x1 +.else + mrs x1,CPACR_EL1 + bic x1, x1, #(0x1<<20) + msr CPACR_EL1, x1 +.endif + isb + + bl IRQInterrupt +/* + * If floating point access is enabled during interrupt handling, + * restore floating point registers. + */ + + .if (EL3 == 1) + mrs x0, CPTR_EL3 + ands x0, x0, #(0x1<<10) + bne RestorePrevState +.else + mrs x0,CPACR_EL1 + ands x0, x0, #(0x1<<20) + beq RestorePrevState +.endif + + restorefloatregister + +/* Restore the status of SPSR, ELR and CPTR from stack */ +RestorePrevState: + ldr x2,[sp],0x10 + ldp x0, x1, [sp],0x10 + .if (EL3 == 1) + msr CPTR_EL3, x0 + msr ELR_EL3, x1 + msr SPSR_EL3, x2 +.else + msr CPACR_EL1, x0 + msr ELR_EL1, x1 + msr SPSR_EL1, x2 +.endif + restoreregister + eret + +FIQInterruptHandler: + + saveregister + + bl FIQInterrupt + + restoreregister + + eret + +SErrorInterruptHandler: + + saveregister + + bl SErrorInterrupt + + restoreregister + + eret + + +.align 8 +/* Array to store floating point registers */ +FPUContext: .skip FPUContextSize + +/* Stores address for floating point context array */ +FPUContextBase: .skip 8 + +FPUStatus: .skip 1 + +.end diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/boot.S b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/boot.S similarity index 58% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/boot.S rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/boot.S index ed2d09843..760994948 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/boot.S +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/boot.S @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,14 +33,40 @@ /** * @file boot.S * -* This file contains the initial startup code for the Cortex A53 processor -* It checks the current exception level and if it matches with selected -* exception level, then only it initializes the required system registers and -* executes the code further, otherwise it will loop busy loop around error. -* If the selected exception level is EL3, execution of the processor has to -* be in EL3. If the selected exception level is EL1 non-secure, execution of -* the processor can be EL2 or EL1. +* @addtogroup a53_64_boot_code Cortex A53 64bit Processor Boot Code +* @{ +*

boot.S

* +* The boot code performs minimum configuration which is required for an +* application. Cortex-A53 starts by checking current exception level. If the +* current exception level is EL3 and BSP is built for EL3, it will do +* initialization required for application execution at EL3. Below is a +* sequence illustrating what all configuration is performed before control +* reaches to main function for EL3 execution. +* +* 1. Program vector table base for exception handling +* 2. Set reset vector table base address +* 3. Program stack pointer for EL3 +* 4. Routing of interrupts to EL3 +* 5. Enable ECC protection +* 6. Program generic counter frequency +* 7. Invalidate instruction cache, data cache and TLBs +* 8. Configure MMU registers and program base address of translation table +* 9. Transfer control to _start which clears BSS sections and runs global +* constructor before jumping to main application +* +* If the current exception level is EL1 and BSP is also built for EL1_NONSECURE +* it will perform initialization required for application execution at EL1 +* non-secure. For all other combination, the execution will go into infinite +* loop. Below is a sequence illustrating what all configuration is performed +* before control reaches to main function for EL1 execution. +* +* 1. Program vector table base for exception handling +* 2. Program stack pointer for EL1 +* 3. Invalidate instruction cache, data cache and TLBs +* 4. Configure MMU registers and program base address of translation table +* 5. Transfer control to _start which clears BSS sections and runs global +* constructor before jumping to main application * *
 * MODIFICATION HISTORY:
@@ -49,15 +75,25 @@
 * ----- ------- -------- ---------------------------------------------------
 * 5.00  pkp	05/21/14 Initial version
 * 6.00	pkp     07/25/16 Program the counter frequency
+* 6.02  pkp	01/22/17 Added support for EL1 non-secure
+* 6.02	pkp	01/24/17 Clearing status of FPUStatus variable to ensure it
+*			 holds correct value.
+* 6.3   mus 04/20/17 CPU Cache protection bit in the L2CTLR_EL1 will be in
+*                    set state on reset. So, setting that bit through boot
+*                    code is redundant, hence removed the code which sets
+*                    CPU cache protection bit.
+* 6.4   mus      08/11/17 Implemented ARM erratum 855873.It fixes
+*                         CR#982209.
+* 6.6   mus      01/19/18 Added isb after writing to the cpacr_el1/cptr_el3,
+*                         to ensure floating-point unit is disabled, before
+*                         any subsequent instruction.
 *
-* @note
-*
-* None.
 *
 ******************************************************************************/
 
 #include "xparameters.h"
 #include "bspconfig.h"
+#include "xil_errata.h"
 
 .globl MMUTableL0
 .globl MMUTableL1
@@ -139,6 +175,16 @@ EndlessLoop0:
 #endif
 OKToRun:
 
+	mrs	x0, currentEL
+	cmp	x0, #0xC
+	beq	InitEL3
+
+	cmp	x0, #0x4
+	beq	InitEL1
+
+	b 	error			// go to error if current exception level is neither EL3 nor EL1
+InitEL3:
+.if (EL3 == 1)
 	/*Set vector table base address*/
 	ldr	x1, =vector_base
 	msr	VBAR_EL3,x1
@@ -160,10 +206,24 @@ OKToRun:
 	ldr	 x2,=EL3_stack
 	mov	 sp,x2
 
-	/* Disable trapping of CPTR_EL3 accesses or use of Adv.SIMD/FPU*/
-	mov      x0, #0                 // Clear all trap bits
+	/* Enable Trapping of SIMD/FPU register for standalone BSP */
+	mov      x0, #0
+#ifndef FREERTOS_BSP
+	orr      x0, x0, #(0x1 << 10)
+#endif
 	msr      CPTR_EL3, x0
+	isb
 
+	/*
+	 * Clear FPUStatus variable to make sure that it contains current
+	 * status of FPU i.e. disabled. In case of a warm restart execution
+	 * when bss sections are not cleared, it may contain previously updated
+	 * value which does not hold true now.
+	 */
+#ifndef FREERTOS_BSP
+	 ldr x0,=FPUStatus
+	 str xzr, [x0]
+#endif
 	/* Configure SCR_EL3 */
 	mov      w1, #0              	//; Initial value of register is unknown
 	orr      w1, w1, #(1 << 11)  	//; Set ST bit (Secure EL1 can access CNTPS_TVAL_EL1, CNTPS_CTL_EL1 & CNTPS_CVAL_EL1)
@@ -173,12 +233,16 @@ OKToRun:
 	orr      w1, w1, #(1 << 1)   	//; Set IRQ bit (IRQs routed to EL3)
 	msr      SCR_EL3, x1
 
-	/*Enable ECC protection*/
-	mrs	x0, S3_1_C11_C0_2  	// register L2CTLR_EL1
-	orr	x0, x0, #(1<<22)
-	msr	S3_1_C11_C0_2, x0
 	/*configure cpu auxiliary control register EL1 */
 	ldr	x0,=0x80CA000 		// L1 Data prefetch control - 5, Enable device split throttle, 2 independent data prefetch streams
+#if CONFIG_ARM_ERRATA_855873
+        /*
+	 *  Set ENDCCASCI bit in CPUACTLR_EL1 register, to execute data
+	 *  cache clean operations as data cache clean and invalidate
+	 *
+	 */
+        orr     x0, x0, #(1 << 44)      //; Set ENDCCASCI bit
+#endif
 	msr	S3_1_C15_C2_0, x0 	//CPUACTLR_EL1
 
 	/* program the counter frequency */
@@ -238,8 +302,94 @@ OKToRun:
 	isb
 
 	b 	 _startup		//jump to start
+.else
+	b 	error			// present exception level and selected exception level mismatch
+.endif
+
+InitEL1:
+.if (EL1_NONSECURE == 1)
+	/*Set vector table base address*/
+	ldr	x1, =vector_base
+	msr	VBAR_EL1,x1
+
+	mrs	x0, CPACR_EL1
+	bic	x0, x0, #(0x3 << 0x20)
+	msr	CPACR_EL1, x0
+	isb
+
+	/*
+	 * Clear FPUStatus variable to make sure that it contains current
+	 * status of FPU i.e. disabled. In case of a warm restart execution
+	 * when bss sections are not cleared, it may contain previously updated
+	 * value which does not hold true now.
+	 */
+#ifndef FREERTOS_BSP
+	 ldr x0,=FPUStatus
+	 str xzr, [x0]
+#endif
+	/*Define stack pointer for current exception level*/
+	ldr	 x2,=EL1_stack
+	mov	 sp,x2
+
+	/* Disable MMU first */
+	mov	x1,#0x0
+	msr     SCTLR_EL1, x1
+	isb
+
+	TLBI    VMALLE1
+
+	ic      IALLU                  	//; Invalidate I cache to PoU
+	bl 	invalidate_dcaches
+	dsb	 sy
+	isb
+
+	ldr      x1, =L0Table 		//; Get address of level 0 for TTBR0_EL1
+	msr      TTBR0_EL1, x1		//; Set TTBR0_EL1
+
+	/**********************************************
+	* Set up memory attributes
+	* This equates to:
+	* 0 = b01000100 = Normal, Inner/Outer Non-Cacheable
+	* 1 = b11111111 = Normal, Inner/Outer WB/WA/RA
+	* 2 = b00000000 = Device-nGnRnE
+	* 3 = b00000100 = Device-nGnRE
+	* 4 = b10111011 = Normal, Inner/Outer WT/WA/RA
+	**********************************************/
+	ldr      x1, =0x000000BB0400FF44
+	msr      MAIR_EL1, x1
+
+        /**********************************************
+        * Set up TCR_EL1
+	* Physical Address Size PS =  010 -> 40bits 1TB
+	* Granual Size TG0 = 00 -> 4KB
+        * size offset of the memory region T0SZ = 24 -> (region size 2^(64-24) = 2^40)
+        ***************************************************/
+        ldr     x1,=0x285800518
+        msr     TCR_EL1, x1
+        isb
+	/* Enable SError Exception for asynchronous abort */
+	mrs 	x1,DAIF
+        bic	x1,x1,#(0x1<<8)
+        msr	DAIF,x1
+
+	//; Enable MMU
+	mov	x1,#0x0
+	orr     x1, x1, #(1 << 18)    // ; Set WFE non trapping
+	orr     x1, x1, #(1 << 17)    // ; Set WFI non trapping
+	orr     x1, x1, #(1 << 5)    // ; Set CP15 barrier enabled
+	orr     x1, x1, #(1 << 12)    // ; Set I bit
+	orr     x1, x1, #(1 << 2)    // ; Set C bit
+	orr     x1, x1, #(1 << 0)    // ; Set M bit
+	msr     SCTLR_EL1, x1
+	isb
+
+	bl 	 _startup		//jump to start
+.else
+	b 	error			// present exception level and selected exception level mismatch
+.endif
+
+error: 	b	error
 
-loop:	b	loop
 
 invalidate_dcaches:
 
@@ -290,4 +440,7 @@ invalidateCaches_next_level:
 invalidateCaches_end:
 	ret
 
-.end
\ No newline at end of file
+.end
+/**
+* @} End of "addtogroup a53_64_boot_code".
+*/
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/bspconfig.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/bspconfig.h
similarity index 84%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/bspconfig.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/bspconfig.h
index 8671e3fbe..aaf4af14c 100644
--- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/bspconfig.h
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/bspconfig.h
@@ -5,7 +5,7 @@
 * Version: 
 * DO NOT EDIT.
 *
-* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.*
+* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.*
 *Permission is hereby granted, free of charge, to any person obtaining a copy
 *of this software and associated documentation files (the Software), to deal
 *in the Software without restriction, including without limitation the rights
@@ -37,4 +37,12 @@
 *
 *******************************************************************/
 
+#ifndef BSPCONFIG_H /* prevent circular inclusions */
+#define BSPCONFIG_H /* by using protection macros */
+
 #define MICROBLAZE_PVR_NONE
+#define EL3 1
+#define EL1_NONSECURE 0
+#define HYP_GUEST 0
+
+#endif /*end of __BSPCONFIG_H_*/
diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/changelog.txt b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/changelog.txt
similarity index 71%
rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/changelog.txt
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/changelog.txt
index f663af134..64144403a 100644
--- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/changelog.txt
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/changelog.txt
@@ -399,4 +399,141 @@
  *                     ::hsi::utils::handle_stdin and ::hsi::utils::handle_stdout are taken as a base for
  *                     these APIs and modifications are done on top of it to handle stdout/stdin
  *                     parameters for design which doesnt have UART.It fixes CR#953681
+ * 6.1 nsk   11/07/16  Added two new files xil_mem.c and xil_mem.h for xil_memcpy
+ * 6.2 pkp   12/14/16  Updated cortexa53/64bit/translation_table.S for upper ps DDR. The 0x800000000 -
+ *		       0xFFFFFFFFF range is marked normal memory for the DDR size defined in hdf
+ *		       and rest of the memory in that 32GB region is marked as reserved to avoid
+ *		       any speculative access
+ * 6.2 pkp   12/23/16  Added support for floating point operation to Cortex-A53 64bit mode. It modified
+ *		       asm_vectors.S to implement lazy floating point context saving i.e. floating point
+ *		       access is enabled if there is any floating point operation, it is disabled by
+ *		       default. Also FPU is initally disabled for IRQ and none of the floating point
+ *		       registers are saved during normal context saving. If IRQ handler does not require
+ *		       floating point operation, the floating point registers are untouched and no need
+ *		       for saving/restoring. If IRQ handler uses any floating point operation, then floating
+ *		       point registers are saved and FPU is enabled for IRQ handler. Then floating point
+ *		       registers are restored back after servicing IRQ during normal context restoring.
+ * 6.2 mus   01/01/17  Updated makefiles of R5 and a53 64 bit/32 bit processors to fix error in clean
+ *                     target.It fixes the CR#966900
+ * 6.2 pkp   01/22/17  Added support for EL1 non-secure execution and Hypervisor Baremetal for Cortex-A53
+ *		       64bit Mode. If Hypervisor_guest is selected as true in BSP settings, BSP will be built
+ *		       for EL1 Non-secure, else BSP will be built for EL3. By default hypervisor_guest is
+ *		       as false i.e. default bsp is EL3.
+ * 6.2 pkp   01/24/17  Updated cortexa53/64bit/boot.S to clear FPUStatus variable to make sure that it
+ *		       contains initial status of FPU i.e. disabled. In case of a warm restart execution
+ *		       when bss sections are not cleared, it may contain previously updated value which
+ *		       does not hold true once processor resumes. This fixes CR#966826.
+ * 6.2 asa   01/31/17  The existing Xil_DCacheDisable API first flushes the
+ *		       D caches and then disables it. The problem with that is,
+ *		       potentially there will be a small window after the cache
+ *		       flush operation and before the we disable D caches where
+ *		       we might have valid data in cache lines. In such a
+ *		       scenario disabling the D cache can lead to unknown behavior.
+ *		       The ideal solution to this is to use assembly code for
+ *		       the complete API and avoid any memory accesses. But with
+ *		       that we will end up having a huge amount on assembly code
+ *		       which is not maintainable. Changes are done to use a mix
+ *		       of assembly and C code. All local variables are put in
+ *		       registers. Also function calls are avoided in the API to
+ *		       avoid using stack memory.
+ * 6.2 mus   02/13/17 A53 CPU cache system can pre-fetch catch lines.So there are
+ *                    scenarios when an invalidated cache line can get pre fetched to cache.
+ *                    If that happens, the coherency between cache and memory is lost
+ *                    resulting in lost data. To avoid this kind of issue either
+ *                    user has to use dsb() or disable pre-fetching for L1 cache
+ *                    or else reduce maximum number of outstanding data prefetches allowed.
+ *                    Using dsb() while comparing data costing more performance compared to
+ *                    disabling pre-fetching/reducing maximum number of outstanding data
+ *                    prefetches for L1 Cache.The new api Xil_ConfigureL1Prefetch is added
+ *                    to disable pre-fetching/configure maximum number of outstanding data
+ *                    prefetches allowed in L1 cache system.This fixes CR#967864.
+ * 6.2 pkp   02/16/17 Added xil_smc.c file to provide a C wrapper for smc calling which can be
+ *		      used by cortex-A53 64bit EL1 Non-secure application.
+ * 6.2 kvn   03/03/17 Added support thumb mode
+ * 6.2 mus   03/13/17 Fixed MISRA C mandatory standard violations in ARM cortexr5 and cortexa53 BSP.
+ *                    It fixes CR#970543
+ * 6.2 asa   03/16/17 Fix for CR#970859. For Mcroblaze BSP, when we enable intrusive
+ *                    profiling we see a crash. That is because the the tcl uses invalid
+ *                    HSI command. This change fixes it.
+ * 6.2 mus   03/22/17 Updated standalone tcl to generate xparameter XPAR_FPD_IS_CACHE_COHERENT, if
+ *                    any FPD peripheral is configured to use CCI.It fixes CR#972638
+ * 6.3 mus   03/20/17 Updated cortex-r5 BSP, to add hard floating point support.
+ * 6.3 mus   04/17/17 Updated Cortex-a53 32 bit BSP boot code to fix bug in
+ *                    the HW coherency enablement. It fixes the CR#973287
+ * 6.3 mus   04/20/17 Updated Cortex-A53 64 bit BSP boot code, to remove redundant write to the
+ *                    L2CTLR_EL1 register. It fixes the CR#974698
+ * 6.4 mus   06/08/17 Updated arm/common/xil_exception.c to fix warnings in C level exception handlers
+ *                    of ARM 32 bit processor's.
+ * 6.4 mus   06/14/17 Updated cortexa53/64bit/gcc/asm_vectors.S to fix bug in  IRQInterruptHandler code
+ *                    snippet, which checks for the FPEN bit of CPACR_EL1 register.
+ * 6.4 ms    05/23/17 Added PSU_PMU macro in xplatform_info.c, xparameters.h to support
+ *                    XGetPSVersion_Info function for PMUFW.
+ *     ms    06/13/17 Added PSU_PMU macro in xplatform_info.c to support XGetPlatform_Info
+ *                    function for PMUFW.
+ * 6.4 mus   07/05/17 Updated Xil_In32BE function in xil_io.h to fix bug.It fixes CR#979740.
+ * 6.4 mus   07/25/17 Updated a53 32 bit boot code and vectors to support hard floating point
+ *                    operations.Now,VFP is being enabled in FPEXC register, through boot code
+ *                    and FPU registers are being saved/restored when irq/fiq vector is invoked.
+ * 6.4 adk   08/01/17 Updated standalone tcl to generate xparameter XPAR_PL_IS_CACHE_COHERENT,
+ * 		      if h/w design configured with HPC port.
+ * 6.4 mus   08/10/17 Updated a53 64 bit translation table to mark  memory as a outer shareable for
+ *                    EL1 NS execution. This change has been done to support CCI enabled IP's.
+ * 6.4 mus   08/11/17 Updated a53 64 bit boot code to implement ARM erratum 855873.This fixes
+ *                    CR#982209.
+ * 6.4 asa   08/16/17 Made several changes in the R5 MPU handling logic. Added new APIs to
+ *                    make RPU MPU handling user-friendly. This also fixes the CR-981028.
+ * 6.4 mus   08/17/17 Updated XGet_Zynq_UltraMp_Platform_info and XGetPSVersion_Info APIs to read
+ *                    version register through SMC call, over EL1 NS mode. This change has been done to
+ *                    support these APIs over EL1 NS mode.
+ * 6.5 mus   10/20/17 Updated standalone.tcl to fix bug in mb_can_handle_exceptions_in_delay_slots proc,
+ *                    it fixes CR#987464.
+ * 6.6 mus   12/07/17 Updated cortexa9/xil_errata.h and cortexa9/xil_cache.c to remove Errata 753970.
+ *                    It fixes CR#989132.
+ *     srm   10/18/17 Updated all the sleep routines in a9,a53,R5,microblaze. Now the sleep routines
+ *		      will use the timer specified by the user to provide delay. A9 and A53 can use
+ *                    Global timer or TTC. R5 can use TTC or the machine cycles. Microblaze can use
+ *                    machine cycles or Axi timer. Updated standalone.tcl and standalone.mld files
+ *		      to support the sleep configuration Added new API's for the Axi timer in
+ *		      microblaze and TTC in ARM. Added two new files, xil_sleeptimer.c and
+ *		      xil_sleeptimer.h in ARM for the common sleep routines and 1 new file,
+ *		      xil_sleepcommon.c in Standalone-common for sleep/usleep API's.
+ * 6.6 hk    12/15/17 Export platform macros to bspconfig.h based on the processor.
+ * 6.6 asa   1/16/18  Ensure C stack information for A9 are flushed out from L1 D cache
+ *                    or L2 cache only when the respective caches are enabled. This fixes CR-922023.
+ * 6.6 mus   01/19/18 Updated asm_vectors.S and boot.S in Cortexa53 64 bit BSP, to add isb
+ *                    after writing to cpacr_el1/cptr_el3 registers. It would ensure
+ *                    disabling/enabling of floating-point unit, before any subsequent
+ *                    instruction.
+ * 6.6 mus   01/30/18 Updated hypervisor enabled Cortexa53 64 bit BSP, to add xen PV console
+ *                    support. Now, xil_printf would use PV console instead of UART in case of
+ *                    hypervisor enabled BSP.
+ * 6.6 mus   02/02/18 Updated get_connected_if proc in standalone tcl to detect the HPC port 
+ *                    configured with smart interconnect.It fixes CR#990318.
+ * 6.6 srm   02/10/18 Updated csu_wdt interrupt to the correct value. Fixes CR#992229
+ * 6.6 asa   02/12/18 Fix for heap handling for ARM platforms. CR#993932.
+ * 6.6 mus   02/19/18 Updated standalone.tcl to fix bug in handle_profile_opbtimer proc,
+ *                    CR#995014.
+ * 6.6 mus   02/23/18 Presently Cortex R5 BSP boot code is disabling the debug logic in
+*		      non-JTAG boot mode, when processor is in lockstep configuration.
+*		      This behavior is restricting application debugging in non-JTAG boot
+*		      mode.  To get rid of this restriction, added new mld parameter 
+*		      "lockstep_mode_debug", to enable/disable debug logic from BSP 
+*		      settings. Now, debug logic can be enabled through BSP settings, 
+*		      by modifying value of parameter "lockstep_mode_debug" as "true".
+*		      It fixes CR#993896.
+ * 6.6.mus   02/27/18  Updated Xil_DCacheInvalidateRange and
+*		       Xil_ICacheInvalidateRange APIs in Cortexa53 64 bit BSP, to fix  bug
+*		       in handling upper DDR addresses.It fixes CR#995581.
+* 6.6 mus    03/12/18  Updated makefile of Cortexa53 32bit BSP to add includes_ps directory
+*		       in the list of include paths. This change allows applications/BSP
+*		       files to include .h files in include_ps directory.
+* 6.6 mus    03/16/18  By default CPUACTLR_EL1 is accessible only from EL3, it
+*		       results into abort if accessed from EL1 non secure privilege
+*		       level. Updated Xil_ConfigureL1Prefetch function in Cortexa53 64 bit BSP
+*		       to avoid CPUACTLR_EL1 access from privile levels other than EL3.
+* 6.6 mus    03/16/18  Updated hypervisor enabled BSP to use PV console, based on the
+*		       XEN_USE_PV_CONSOLE flag. By deafault hypervisor enabled BSP would
+*		       use UART console, PV console can be enabled by appending
+		       "-DXEN_USE_PV_CONSOLE" to the BSP extra compiler flags.
+ *
  *****************************************************************************************/
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/close.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/close.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/close.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/close.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/config.make b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/config.make
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/config.make
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/config.make
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/errno.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/errno.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/errno.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/errno.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/fcntl.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/fcntl.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/fcntl.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/fcntl.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/fstat.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/fstat.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/fstat.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/fstat.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/getpid.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/getpid.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/getpid.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/getpid.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/inbyte.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/inbyte.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/inbyte.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/inbyte.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu0_cfg.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu0_cfg.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu0_cfg.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu0_cfg.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu1_cfg.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu1_cfg.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu1_cfg.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu1_cfg.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu2_cfg.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu2_cfg.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu2_cfg.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu2_cfg.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu3_cfg.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu3_cfg.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu3_cfg.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu3_cfg.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu4_cfg.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu4_cfg.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu4_cfg.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu4_cfg.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu5_cfg.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu5_cfg.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu5_cfg.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu5_cfg.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_slcr.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_slcr.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_slcr.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_slcr.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_slcr_secure.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_slcr_secure.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_slcr_secure.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_slcr_secure.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_xmpu_cfg.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_xmpu_cfg.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_xmpu_cfg.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_xmpu_cfg.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_xmpu_sink.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_xmpu_sink.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_xmpu_sink.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_xmpu_sink.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xiou_secure_slcr.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xiou_secure_slcr.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xiou_secure_slcr.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xiou_secure_slcr.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xiou_slcr.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xiou_slcr.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xiou_slcr.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xiou_slcr.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_slcr.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_slcr.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_slcr.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_slcr.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_slcr_secure.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_slcr_secure.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_slcr_secure.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_slcr_secure.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_xppu.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_xppu.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_xppu.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_xppu.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_xppu_sink.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_xppu_sink.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_xppu_sink.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_xppu_sink.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xocm_xmpu_cfg.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xocm_xmpu_cfg.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/includes_ps/xocm_xmpu_cfg.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/includes_ps/xocm_xmpu_cfg.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/initialise_monitor_handles.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/initialise_monitor_handles.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/initialise_monitor_handles.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/initialise_monitor_handles.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/isatty.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/isatty.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/isatty.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/isatty.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/kill.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/kill.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/kill.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/kill.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/lseek.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/lseek.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/lseek.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/lseek.c
diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/open.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/open.c
similarity index 99%
rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/open.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/open.c
index 4b51839fd..85e9ce402 100644
--- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/open.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/open.c
@@ -44,7 +44,7 @@ extern "C" {
  */
 __attribute__((weak)) s32 open(char8 *buf, s32 flags, s32 mode)
 {
-  (void *)buf;
+  (void)buf;
   (void)flags;
   (void)mode;
   errno = EIO;
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/outbyte.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/outbyte.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/outbyte.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/outbyte.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/print.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/print.c
similarity index 90%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/print.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/print.c
index 74d70ee4a..da7e768d0 100644
--- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/print.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/print.c
@@ -21,6 +21,9 @@
 
 void print(const char8 *ptr)
 {
+#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE
+	XPVXenConsole_Write(ptr);
+#else
 #ifdef STDOUT_BASEADDRESS
   while (*ptr != (char8)0) {
     outbyte (*ptr);
@@ -29,4 +32,5 @@ void print(const char8 *ptr)
 #else
 (void)ptr;
 #endif
+#endif
 }
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/putnum.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/putnum.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/putnum.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/putnum.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/read.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/read.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/read.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/read.c
diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/sbrk.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/sbrk.c
similarity index 94%
rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/sbrk.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/sbrk.c
index 64d5156af..87a753d49 100644
--- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/sbrk.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/sbrk.c
@@ -51,12 +51,8 @@ __attribute__((weak)) char8 *sbrk (s32 nbytes)
   static char8 *heap_ptr = HeapBase;
 
   base = heap_ptr;
-  if(heap_ptr != NULL) {
+	if((heap_ptr != NULL) && (heap_ptr + nbytes <= (char8 *)&HeapLimit + 1)) {
 	heap_ptr += nbytes;
-  }
-
-/*  if (heap_ptr <= ((char8 *)&_heap_end + 1)) */
-  if (heap_ptr <= ((char8 *)&HeapLimit + 1)) {
     return base;
   }	else {
     errno = ENOMEM;
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/sleep.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/sleep.c
similarity index 79%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/sleep.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/sleep.c
index c1df66bcf..c3c65dc43 100644
--- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/sleep.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/sleep.c
@@ -1,6 +1,6 @@
 /******************************************************************************
 *
-* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved.
+* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
@@ -50,6 +50,10 @@
 *						  read counter value directly from register instead
 *						  of calling XTime_GetTime for optimization
 * 6.0   asa      08/15/16 Updated the sleep/usleep signature. Fix for CR#956899.
+* 6.6	srm      10/18/17 Updated sleep routines to support user configurable
+*                         implementation. Now sleep routines will use Timer
+*                         specified by the user (i.e. Global timer/TTC timer)
+*       srm      01/11/18 Fixed the compilation warning.
 * 
* ******************************************************************************/ @@ -59,9 +63,20 @@ #include "xtime_l.h" #include "xparameters.h" +#if defined (SLEEP_TIMER_BASEADDR) +#include "xil_sleeptimer.h" +#endif +/**************************** Constant Definitions ************************/ + +#if defined (SLEEP_TIMER_BASEADDR) +#define COUNTS_PER_USECOND (COUNTS_PER_SECOND / 1000000 ) +#else /* Global Timer is always clocked at half of the CPU frequency */ #define COUNTS_PER_USECOND (COUNTS_PER_SECOND / 1000000 ) +#endif +/************************************************************************/ +#if !defined (SLEEP_TIMER_BASEADDR) static void sleep_common(u32 n, u32 count) { XTime tEnd, tCur; @@ -74,7 +89,7 @@ static void sleep_common(u32 n, u32 count) tCur = mfcp(CNTPCT_EL0); } while (tCur < tEnd); } - +#endif /*****************************************************************************/ /** * @@ -88,9 +103,13 @@ static void sleep_common(u32 n, u32 count) * @note None. * ****************************************************************************/ -int usleep(unsigned long useconds) +int usleep_A53(unsigned long useconds) { +#if defined (SLEEP_TIMER_BASEADDR) + Xil_SleepTTCCommon(useconds, COUNTS_PER_USECOND); +#else sleep_common((u32)useconds, COUNTS_PER_USECOND); +#endif return 0; } @@ -107,9 +126,13 @@ int usleep(unsigned long useconds) * @note None. * ****************************************************************************/ -unsigned sleep(unsigned int seconds) +unsigned sleep_A53(unsigned int seconds) { +#if defined (SLEEP_TIMER_BASEADDR) + Xil_SleepTTCCommon(seconds, COUNTS_PER_SECOND); +#else sleep_common(seconds, COUNTS_PER_SECOND); +#endif return 0; } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/sleep.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/sleep.h new file mode 100644 index 000000000..f53b2d8c8 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/sleep.h @@ -0,0 +1,119 @@ +/****************************************************************************** +* +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ + +/*****************************************************************************/ +/** +* @file sleep.h +* +* This header file contains ARM Cortex A53,A9,R5,Microblaze specific sleep +* related APIs. +* +*
+* MODIFICATION HISTORY :
+*
+* Ver   Who  Date	 Changes
+* ----- ---- -------- -------------------------------------------------------
+* 6.6   srm  11/02/17 Added processor specific sleep rountines
+*								 function prototypes.
+*
+* 
+* +******************************************************************************/ + +#ifndef SLEEP_H +#define SLEEP_H + +#include "xil_types.h" +#include "xil_io.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*****************************************************************************/ +/** +* +* This macro polls an address periodically until a condition is met or till the +* timeout occurs. +* The minimum timeout for calling this macro is 100us. If the timeout is less +* than 100us, it still waits for 100us. Also the unit for the timeout is 100us. +* If the timeout is not a multiple of 100us, it waits for a timeout of +* the next usec value which is a multiple of 100us. +* +* @param IO_func - accessor function to read the register contents. +* Depends on the register width. +* @param ADDR - Address to be polled +* @param VALUE - variable to read the value +* @param COND - Condition to checked (usually involves VALUE) +* @param TIMEOUT_US - timeout in micro seconds +* +* @return 0 - when the condition is met +* -1 - when the condition is not met till the timeout period +* +* @note none +* +*****************************************************************************/ +#define Xil_poll_timeout(IO_func, ADDR, VALUE, COND, TIMEOUT_US) \ + ( { \ + u64 timeout = TIMEOUT_US/100; \ + if(TIMEOUT_US%100!=0) \ + timeout++; \ + for(;;) { \ + VALUE = IO_func(ADDR); \ + if(COND) \ + break; \ + else { \ + usleep(100); \ + timeout--; \ + if(timeout==0) \ + break; \ + } \ + } \ + (timeout>0) ? 0 : -1; \ + } ) + +void usleep(unsigned long useconds); +void sleep(unsigned int seconds); +int usleep_R5(unsigned long useconds); +unsigned sleep_R5(unsigned int seconds); +int usleep_MB(unsigned long useconds); +unsigned sleep_MB(unsigned int seconds); +int usleep_A53(unsigned long useconds); +unsigned sleep_A53(unsigned int seconds); +int usleep_A9(unsigned long useconds); +unsigned sleep_A9(unsigned int seconds); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/translation_table.S b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/translation_table.S similarity index 54% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/translation_table.S rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/translation_table.S index 49b3dcf35..b72abe07c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/translation_table.S +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/translation_table.S @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,8 +33,43 @@ /** * @file translation_table.s * -* This file contains the initialization for the MMU table in RAM -* needed by the Cortex A53 processor +* @addtogroup a53_64_boot_code +* @{ +*

translation_table.S

+* translation_table.S contains a static page table required by MMU for +* cortex-A53. This translation table is flat mapped (input address = output +* address) with default memory attributes defined for zynq ultrascale+ +* architecture. It utilizes translation granual size of 4KB with 2MB section +* size for initial 4GB memory and 1GB section size for memory after 4GB. +* The overview of translation table memory attributes is described below. +* +*| | Memory Range | Definition in Translation Table | +*|-----------------------|-----------------------------|-----------------------------------| +*| DDR | 0x0000000000 - 0x007FFFFFFF | Normal write-back Cacheable | +*| PL | 0x0080000000 - 0x00BFFFFFFF | Strongly Ordered | +*| QSPI, lower PCIe | 0x00C0000000 - 0x00EFFFFFFF | Strongly Ordere | +*| Reserved | 0x00F0000000 - 0x00F7FFFFFF | Unassigned | +*| STM Coresight | 0x00F8000000 - 0x00F8FFFFFF | Strongly Ordered | +*| GIC | 0x00F9000000 - 0x00F91FFFFF | Strongly Ordered | +*| Reserved | 0x00F9200000 - 0x00FCFFFFFF | Unassigned | +*| FPS, LPS slaves | 0x00FD000000 - 0x00FFBFFFFF | Strongly Ordered | +*| CSU, PMU | 0x00FFC00000 - 0x00FFDFFFFF | Strongly Ordered | +*| TCM, OCM | 0x00FFE00000 - 0x00FFFFFFFF | Normal inner write-back cacheable | +*| Reserved | 0x0100000000 - 0x03FFFFFFFF | Unassigned | +*| PL, PCIe | 0x0400000000 - 0x07FFFFFFFF | Strongly Ordered | +*| DDR | 0x0800000000 - 0x0FFFFFFFFF | Normal inner write-back cacheable | +*| PL, PCIe | 0x1000000000 - 0xBFFFFFFFFF | Strongly Ordered | +*| Reserved | 0xC000000000 - 0xFFFFFFFFFF | Unassigned | +* +* @note +* +* For DDR region 0x0000000000 - 0x007FFFFFFF, a system where DDR is less than +* 2GB, region after DDR and before PL is marked as undefined/reserved in +* translation table. Region 0xF9100000 - 0xF91FFFFF is reserved memory in +* 0x00F9000000 - 0x00F91FFFFF range, but it is marked as strongly ordered +* because minimum section size in translation table section is 2MB. Region +* 0x00FFC00000 - 0x00FFDFFFFF contains CSU and PMU memory which are marked as +* Device since it is less than 1MB and falls in a region with device memory. * *
 * MODIFICATION HISTORY:
@@ -44,20 +79,27 @@
 * 5.00  pkp  05/21/14 Initial version
 * 5.04	pkp  12/18/15 Updated the address map according to proper address map
 * 6.0   mus  07/20/16 Added warning for ddrless HW design CR-954977
+* 6.2	pkp  12/14/16 DDR memory in 0x800000000 - 0xFFFFFFFFF range is marked
+*		      as normal writeback for the size defined in hdf and rest
+*		      of the memory in that 32GB range is marked as reserved.
+* 6.4   mus  08/10/17 Marked memory as a outer shareable for EL1 NS execution,
+*                     to support CCI enabled IP's.
 *
-* @note
-*
-* None.
 *
 ******************************************************************************/
 #include "xparameters.h"
+#include "bspconfig.h"
 
 	.globl  MMUTableL0
 	.globl  MMUTableL1
 	.globl  MMUTableL2
 
 	.set reserved,	0x0 					/* Fault*/
+	#if EL1_NONSECURE
+	.set Memory,	0x405 | (2 << 8) | (0x0)		/* normal writeback write allocate outer shared read write */
+	#else
 	.set Memory,	0x405 | (3 << 8) | (0x0)		/* normal writeback write allocate inner shared read write */
+	#endif
 	.set Device,	0x409 | (1 << 53)| (1 << 54) |(0x0)	/* strongly ordered read write non executable*/
 	.section .mmu_tbl0,"a"
 
@@ -91,9 +133,32 @@ MMUTableL1:
 .set SECT, SECT + 0x40000000
 .endr
 
-.rept	0x20			/* 0x0008_0000_0000 - 0x000F_FFFF_FFFF */
-.8byte	SECT + Memory		/* 32GB DDR */
-.set SECT, SECT + 0x40000000
+
+#ifdef XPAR_PSU_DDR_1_S_AXI_BASEADDR
+.set DDR_1_START, XPAR_PSU_DDR_1_S_AXI_BASEADDR
+.set DDR_1_END, XPAR_PSU_DDR_1_S_AXI_HIGHADDR
+.set DDR_1_SIZE, (DDR_1_END - DDR_1_START)+1
+.if DDR_1_SIZE > 0x800000000
+/* If DDR size is larger than 32GB, truncate to 32GB */
+.set DDR_1_REG, 0x20
+.else
+.set DDR_1_REG, DDR_1_SIZE/0x40000000
+.endif
+#else
+.set DDR_1_REG, 0
+#warning "There's no DDR_1 in the HW design. MMU translation table marks 32 GB DDR address space as undefined"
+#endif
+
+.set UNDEF_1_REG, 0x20 - DDR_1_REG
+
+.rept	DDR_1_REG			/* DDR based on size in hdf*/
+.8byte	SECT + Memory
+.set	SECT, SECT+0x40000000
+.endr
+
+.rept	UNDEF_1_REG		/* reserved for region where ddr is absent */
+.8byte	SECT + reserved
+.set	SECT, SECT+0x40000000
 .endr
 
 .rept	0x1C0			/* 0x0010_0000_0000 - 0x007F_FFFF_FFFF */
@@ -121,28 +186,28 @@ MMUTableL2:
 .set SECT, 0
 
 #ifdef XPAR_PSU_DDR_0_S_AXI_BASEADDR
-.set DDR_START, XPAR_PSU_DDR_0_S_AXI_BASEADDR
-.set DDR_END, XPAR_PSU_DDR_0_S_AXI_HIGHADDR
-.set DDR_SIZE, (DDR_END - DDR_START)+1
-.if DDR_SIZE > 0x80000000
+.set DDR_0_START, XPAR_PSU_DDR_0_S_AXI_BASEADDR
+.set DDR_0_END, XPAR_PSU_DDR_0_S_AXI_HIGHADDR
+.set DDR_0_SIZE, (DDR_0_END - DDR_0_START)+1
+.if DDR_0_SIZE > 0x80000000
 /* If DDR size is larger than 2GB, truncate to 2GB */
-.set DDR_REG, 0x400
+.set DDR_0_REG, 0x400
 .else
-.set DDR_REG, DDR_SIZE/0x200000
+.set DDR_0_REG, DDR_0_SIZE/0x200000
 .endif
 #else
-.set DDR_REG, 0
-#warning "There's no DDR in the HW design. MMU translation table marks 2 GB DDR address space as undefined"
+.set DDR_0_REG, 0
+#warning "There's no DDR_0 in the HW design. MMU translation table marks 2 GB DDR address space as undefined"
 #endif
 
-.set UNDEF_REG, 0x400 - DDR_REG
+.set UNDEF_0_REG, 0x400 - DDR_0_REG
 
-.rept	DDR_REG			/* DDR based on size in hdf*/
+.rept	DDR_0_REG			/* DDR based on size in hdf*/
 .8byte	SECT + Memory
 .set	SECT, SECT+0x200000
 .endr
 
-.rept	UNDEF_REG		/* reserved for region where ddr is absent */
+.rept	UNDEF_0_REG		/* reserved for region where ddr is absent */
 .8byte	SECT + reserved
 .set	SECT, SECT+0x200000
 .endr
@@ -203,3 +268,6 @@ MMUTableL2:
 .8byte  SECT + Memory		/*2MB OCM/TCM*/
 
 .end
+/**
+* @} End of "addtogroup a53_64_boot_code".
+*/
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/uart.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/uart.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/uart.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/uart.c
diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/unlink.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/unlink.c
similarity index 99%
rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/unlink.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/unlink.c
index 84e44a47c..d0cc6807b 100644
--- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/unlink.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/unlink.c
@@ -44,7 +44,7 @@ extern "C" {
  */
 __attribute__((weak)) sint32 unlink(char8 *path)
 {
-  (void *)path;
+  (void) path;
   errno = EIO;
   return (-1);
 }
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/vectors.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/vectors.c
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/vectors.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/vectors.c
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/vectors.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/vectors.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/vectors.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/vectors.h
diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/write.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/write.c
similarity index 93%
rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/write.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/write.c
index aaa879e73..9389f610a 100644
--- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/write.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/write.c
@@ -1,6 +1,6 @@
 /******************************************************************************
 *
-* Copyright (C) 2009 - 2015 Xilinx, Inc.  All rights reserved.
+* Copyright (C) 2009 - 2018 Xilinx, Inc.  All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
@@ -82,6 +82,14 @@ write (sint32 fd, char8* buf, sint32 nbytes)
 __attribute__((weak)) sint32
 _write (sint32 fd, char8* buf, sint32 nbytes)
 {
+#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE
+	sint32 length;
+
+	(void)fd;
+	(void)nbytes;
+	length = XPVXenConsole_Write(buf);
+	return length;
+#else
 #ifdef STDOUT_BASEADDRESS
   s32 i;
   char8* LocalBuf = buf;
@@ -108,5 +116,6 @@ _write (sint32 fd, char8* buf, sint32 nbytes)
   (void)nbytes;
   return 0;
 #endif
+#endif
 }
 #endif
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xbasic_types.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xbasic_types.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xbasic_types.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xbasic_types.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xdebug.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xdebug.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xdebug.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xdebug.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xenv.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xenv.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xenv.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xenv.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xenv_standalone.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xenv_standalone.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xenv_standalone.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xenv_standalone.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil-crt0.S b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil-crt0.S
similarity index 83%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil-crt0.S
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil-crt0.S
index 38ca6511c..7ac77b650 100644
--- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil-crt0.S
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil-crt0.S
@@ -1,6 +1,6 @@
 /******************************************************************************
 *
-* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
+* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
@@ -42,6 +42,12 @@
 * 5.04  pkp  12/18/15 Initialized global constructor for C++ applications
 * 5.04	pkp  01/05/16 Set the reset vector register RVBAR equivalent to
 *		      vector table base address
+* 6.02  pkp  01/22/17 Added support for EL1 non-secure
+* 6.6   srm  10/18/17 Added timer configuration using XTime_StartTTCTimer API.
+*		      Now the TTC instance as specified by the user will be
+*	              started.
+* 6.6   mus  01/29/18 Initialized the xen PV console for Cortexa53 64 bit
+*                     EL1 NS BSP.
 * 
* * @note @@ -49,7 +55,8 @@ * None. * ******************************************************************************/ - +#include "xparameters.h" +#include "bspconfig.h" .file "xil-crt0.S" .section ".got2","aw" .align 2 @@ -74,7 +81,7 @@ _startup: mov x0, #0 - +.if (EL3 == 1) /* Check whether the clearing of bss sections shall be skipped */ ldr x10, =APU_PWRCTL /* Load PWRCTRL address */ ldr w11, [x10] /* Read PWRCTRL register */ @@ -84,7 +91,7 @@ _startup: lsl w2, w1, w2 /* Shift CPU ID to get one-hot ID */ ands w11, w11, w2 /* Get PWRCTRL bit for this core */ bne .Lenclbss /* Skip BSS and SBSS clearing */ - +.endif /* clear sbss */ ldr x1,.Lsbss_start /* calculate beginning of the SBSS */ ldr x2,.Lsbss_end /* calculate end of the SBSS */ @@ -110,6 +117,15 @@ _startup: /* run global constructors */ bl __libc_init_array + /* Reset and start Triple Timer Counter */ + #if defined (SLEEP_TIMER_BASEADDR) + bl XTime_StartTTCTimer + #endif + + .if (EL1_NONSECURE == 1 && HYP_GUEST == 1 && \ + XEN_USE_PV_CONSOLE == 1) + bl XPVXenConsole_Init + .endif /* make sure argc and argv are valid */ mov x0, #0 mov x1, #0 @@ -125,4 +141,4 @@ _startup: b .Lexit .Lstart: - .size _startup,.Lstart-_startup \ No newline at end of file + .size _startup,.Lstart-_startup diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_assert.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_assert.c similarity index 83% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_assert.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_assert.c index 3087fe80f..59b3c1c98 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_assert.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_assert.c @@ -82,12 +82,13 @@ static Xil_AssertCallback Xil_AssertCallbackRoutine = NULL; /*****************************************************************************/ /** * -* Implement assert. Currently, it calls a user-defined callback function -* if one has been set. Then, it potentially enters an infinite loop depending -* on the value of the Xil_AssertWait variable. +* @brief Implement assert. Currently, it calls a user-defined callback +* function if one has been set. Then, it potentially enters an +* infinite loop depending on the value of the Xil_AssertWait +* variable. * -* @param file is the name of the filename of the source -* @param line is the linenumber within File +* @param file: filename of the source +* @param line: linenumber within File * * @return None. * @@ -111,10 +112,10 @@ void Xil_Assert(const char8 *File, s32 Line) /*****************************************************************************/ /** * -* Set up a callback function to be invoked when an assert occurs. If there -* was already a callback installed, then it is replaced. +* @brief Set up a callback function to be invoked when an assert occurs. +* If a callback is already installed, then it will be replaced. * -* @param routine is the callback to be invoked when an assert is taken +* @param routine: callback to be invoked when an assert is taken * * @return None. * @@ -129,11 +130,11 @@ void Xil_AssertSetCallback(Xil_AssertCallback Routine) /*****************************************************************************/ /** * -* Null handler function. This follows the XInterruptHandler signature for -* interrupt handlers. It can be used to assign a null handler (a stub) to an -* interrupt controller vector table. +* @brief Null handler function. This follows the XInterruptHandler +* signature for interrupt handlers. It can be used to assign a null +* handler (a stub) to an interrupt controller vector table. * -* @param NullParameter is an arbitrary void pointer and not used. +* @param NullParameter: arbitrary void pointer and not used. * * @return None. * @@ -142,5 +143,5 @@ void Xil_AssertSetCallback(Xil_AssertCallback Routine) ******************************************************************************/ void XNullHandler(void *NullParameter) { - (void *) NullParameter; + (void) NullParameter; } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_assert.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_assert.h similarity index 77% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_assert.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_assert.h index 1e3c17b50..add4124e2 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_assert.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_assert.h @@ -34,8 +34,15 @@ * * @file xil_assert.h * -* This file contains assert related functions. +* @addtogroup common_assert_apis Assert APIs and Macros * +* The xil_assert.h file contains assert related functions and macros. +* Assert APIs/Macros specifies that a application program satisfies certain +* conditions at particular points in its execution. These function can be +* used by application programs to ensure that, application code is satisfying +* certain conditions. +* +* @{ *
 * MODIFICATION HISTORY:
 *
@@ -83,18 +90,17 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line);
 
 /*****************************************************************************/
 /**
-* This assert macro is to be used for functions that do not return anything
-* (void). This in conjunction with the Xil_AssertWait boolean can be used to
-* accomodate tests so that asserts which fail allow execution to continue.
+* @brief    This assert macro is to be used for void functions. This in
+*           conjunction with the Xil_AssertWait boolean can be used to
+*           accomodate tests so that asserts which fail allow execution to
+*           continue.
 *
-* @param    Expression is the expression to evaluate. If it evaluates to
+* @param    Expression: expression to be evaluated. If it evaluates to
 *           false, the assert occurs.
 *
 * @return   Returns void unless the Xil_AssertWait variable is true, in which
 *           case no return is made and an infinite loop is entered.
 *
-* @note     None.
-*
 ******************************************************************************/
 #define Xil_AssertVoid(Expression)                \
 {                                                  \
@@ -109,17 +115,16 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line);
 
 /*****************************************************************************/
 /**
-* This assert macro is to be used for functions that do return a value. This in
-* conjunction with the Xil_AssertWait boolean can be used to accomodate tests
-* so that asserts which fail allow execution to continue.
+* @brief    This assert macro is to be used for functions that do return a
+*           value. This in conjunction with the Xil_AssertWait boolean can be
+*           used to accomodate tests so that asserts which fail allow execution
+*           to continue.
 *
-* @param    Expression is the expression to evaluate. If it evaluates to false,
+* @param    Expression: expression to be evaluated. If it evaluates to false,
 *           the assert occurs.
 *
 * @return   Returns 0 unless the Xil_AssertWait variable is true, in which
-* 	    case no return is made and an infinite loop is entered.
-*
-* @note     None.
+* 	        case no return is made and an infinite loop is entered.
 *
 ******************************************************************************/
 #define Xil_AssertNonvoid(Expression)             \
@@ -135,14 +140,11 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line);
 
 /*****************************************************************************/
 /**
-* Always assert. This assert macro is to be used for functions that do not
-* return anything (void). Use for instances where an assert should always
-* occur.
+* @brief     Always assert. This assert macro is to be used for void functions.
+*            Use for instances where an assert should always occur.
 *
-* @return Returns void unless the Xil_AssertWait variable is true, in which
-*	  case no return is made and an infinite loop is entered.
-*
-* @note   None.
+* @return    Returns void unless the Xil_AssertWait variable is true, in which
+*	         case no return is made and an infinite loop is entered.
 *
 ******************************************************************************/
 #define Xil_AssertVoidAlways()                   \
@@ -154,13 +156,12 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line);
 
 /*****************************************************************************/
 /**
-* Always assert. This assert macro is to be used for functions that do return
-* a value. Use for instances where an assert should always occur.
+* @brief   Always assert. This assert macro is to be used for functions that
+*          do return a value. Use for instances where an assert should always
+*          occur.
 *
 * @return Returns void unless the Xil_AssertWait variable is true, in which
-*	  case no return is made and an infinite loop is entered.
-*
-* @note   None.
+*	      case no return is made and an infinite loop is entered.
 *
 ******************************************************************************/
 #define Xil_AssertNonvoidAlways()                \
@@ -189,3 +190,6 @@ void Xil_AssertSetCallback(Xil_AssertCallback Routine);
 #endif
 
 #endif	/* end of protection macro */
+/**
+* @} End of "addtogroup common_assert_apis".
+*/
\ No newline at end of file
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_cache.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_cache.c
similarity index 61%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_cache.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_cache.c
index 8a1f82881..312b7b096 100644
--- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_cache.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_cache.c
@@ -1,6 +1,6 @@
 /******************************************************************************
 *
-* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved.
+* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
@@ -34,18 +34,44 @@
 *
 * @file xil_cache.c
 *
-* Contains required functions for the ARM cache functionality. Cache APIs are
-* yet to be implemented. They are left blank to avoid any compilation error
+* Contains required functions for the ARM cache functionality.
 *
 * 
 * MODIFICATION HISTORY:
 *
 * Ver    Who Date     Changes
 * ----- ---- -------- -----------------------------------------------
-* 5.00 	pkp  05/29/14 First release
-* 5.05	pkp	 04/15/16 Updated the Xil_DCacheInvalidate,
+* 5.0 	pkp  05/29/14 First release
+* 5.5	pkp	 04/15/16 Updated the Xil_DCacheInvalidate,
 *					  Xil_DCacheInvalidateLine and Xil_DCacheInvalidateRange
 *					  functions description for proper explaination
+* 6.2   pkp	 01/22/17 Added support for EL1 non-secure
+* 6.2   asa  01/31/17 The existing Xil_DCacheDisable API first flushes the
+*					  D caches and then disables it. The problem with that is,
+*					  potentially there will be a small window after the cache
+*					  flush operation and before the we disable D caches where
+*					  we might have valid data in cache lines. In such a
+*					  scenario disabling the D cache can lead to unknown behavior.
+*					  The ideal solution to this is to use assembly code for
+*					  the complete API and avoid any memory accesses. But with
+*					  that we will end up having a huge amount on assembly code
+*					  which is not maintainable. Changes are done to use a mix
+*					  of assembly and C code. All local variables are put in
+*					  registers. Also function calls are avoided in the API to
+*					  avoid using stack memory.
+*					  These changes fix CR#966220.
+* 6.2  mus  02/13/17  The new api Xil_ConfigureL1Prefetch is added to disable pre-fetching/configure
+*                     the maximum number of outstanding data prefetches allowed in
+*                     L1 cache system.It fixes CR#967864.
+* 6.6  mus  02/27/18  Updated Xil_DCacheInvalidateRange and 
+*					  Xil_ICacheInvalidateRange APIs to change the data type of 
+*					  "cacheline" variable as "INTPTR", This change has been done
+*					  to avoid the truncation of upper DDR addreses to 32 bit.It
+*					  fixes CR#995581.
+* 6.6  mus  03/15/18  By default CPUACTLR_EL1 is accessible only from EL3, it
+*					  results into abort if accessed from EL1 non secure privilege
+*					  level. Updated Xil_ConfigureL1Prefetch function to access
+*					  CPUACTLR_EL1 only for EL3.
 *
 * 
* @@ -66,9 +92,9 @@ /************************** Variable Definitions *****************************/ #define IRQ_FIQ_MASK 0xC0U /* Mask IRQ and FIQ interrupts in cpsr */ -/**************************************************************************** -* -* Enable the Data cache. +/****************************************************************************/ +/** +* @brief Enable the Data cache. * * @param None. * @@ -77,12 +103,15 @@ * @note None. * ****************************************************************************/ - void Xil_DCacheEnable(void) { u32 CtrlReg; - CtrlReg = mfcp(SCTLR_EL3); + if (EL3 == 1) { + CtrlReg = mfcp(SCTLR_EL3); + } else if (EL1_NONSECURE == 1) { + CtrlReg = mfcp(SCTLR_EL1); + } /* enable caches only if they are disabled */ if((CtrlReg & XREG_CONTROL_DCACHE_BIT) == 0X00000000U){ @@ -92,14 +121,19 @@ void Xil_DCacheEnable(void) CtrlReg |= XREG_CONTROL_DCACHE_BIT; - /* enable the Data cache for el3*/ - mtcp(SCTLR_EL3,CtrlReg); + if (EL3 == 1) { + /* enable the Data cache for el3*/ + mtcp(SCTLR_EL3,CtrlReg); + } else if (EL1_NONSECURE == 1) { + /* enable the Data cache for el1*/ + mtcp(SCTLR_EL1,CtrlReg); + } } } -/**************************************************************************** -* -* Disable the Data cache. +/****************************************************************************/ +/** +* @brief Disable the Data cache. * * @param None. * @@ -110,22 +144,122 @@ void Xil_DCacheEnable(void) ****************************************************************************/ void Xil_DCacheDisable(void) { - u32 CtrlReg; - /* clean and invalidate the Data cache */ - Xil_DCacheFlush(); + register u32 CsidReg; + register u32 C7Reg; + register u32 LineSize; + register u32 NumWays; + register u32 Way; + register u32 WayIndex; + register u32 WayAdjust; + register u32 Set; + register u32 SetIndex; + register u32 NumSet; + register u32 CacheLevel; - CtrlReg = mfcp(SCTLR_EL3); + dsb(); + asm( + "mov x0, #0\n\t" +#if EL3==1 + "mrs x0, sctlr_el3 \n\t" + "and w0, w0, #0xfffffffb\n\t" + "msr sctlr_el3, x0\n\t" +#elif EL1_NONSECURE==1 + "mrs x0, sctlr_el1 \n\t" + "and w0, w0, #0xfffffffb\n\t" + "msr sctlr_el1, x0\n\t" +#endif + "dsb sy\n\t" + ); - CtrlReg &= ~(XREG_CONTROL_DCACHE_BIT); + /* Number of level of cache*/ + CacheLevel = 0U; + /* Select cache level 0 and D cache in CSSR */ + mtcp(CSSELR_EL1,CacheLevel); + isb(); - /* disable the Data cache for el3*/ - mtcp(SCTLR_EL3,CtrlReg); + CsidReg = mfcp(CCSIDR_EL1); + + /* Get the cacheline size, way size, index size from csidr */ + LineSize = (CsidReg & 0x00000007U) + 0x00000004U; + + /* Number of Ways */ + NumWays = (CsidReg & 0x00001FFFU) >> 3U; + NumWays += 0x00000001U; + + /*Number of Set*/ + NumSet = (CsidReg >> 13U) & 0x00007FFFU; + NumSet += 0x00000001U; + + WayAdjust = clz(NumWays) - (u32)0x0000001FU; + + Way = 0U; + Set = 0U; + + /* Flush all the cachelines */ + for (WayIndex = 0U; WayIndex < NumWays; WayIndex++) { + for (SetIndex = 0U; SetIndex < NumSet; SetIndex++) { + C7Reg = Way | Set | CacheLevel; + mtcpdc(CISW,C7Reg); + Set += (0x00000001U << LineSize); + } + Set = 0U; + Way += (0x00000001U << WayAdjust); + } + + /* Wait for Flush to complete */ + dsb(); + + /* Select cache level 1 and D cache in CSSR */ + CacheLevel += (0x00000001U << 1U); + mtcp(CSSELR_EL1,CacheLevel); + isb(); + + CsidReg = mfcp(CCSIDR_EL1); + + /* Get the cacheline size, way size, index size from csidr */ + LineSize = (CsidReg & 0x00000007U) + 0x00000004U; + + /* Number of Ways */ + NumWays = (CsidReg & 0x00001FFFU) >> 3U; + NumWays += 0x00000001U; + + /* Number of Sets */ + NumSet = (CsidReg >> 13U) & 0x00007FFFU; + NumSet += 0x00000001U; + + WayAdjust=clz(NumWays) - (u32)0x0000001FU; + + Way = 0U; + Set = 0U; + + /* Flush all the cachelines */ + for (WayIndex =0U; WayIndex < NumWays; WayIndex++) { + for (SetIndex =0U; SetIndex < NumSet; SetIndex++) { + C7Reg = Way | Set | CacheLevel; + mtcpdc(CISW,C7Reg); + Set += (0x00000001U << LineSize); + } + Set=0U; + Way += (0x00000001U< * MODIFICATION HISTORY: @@ -54,6 +61,11 @@ extern "C" { #endif +/************************** Constant Definitions *****************************/ +#define L1_DATA_PREFETCH_CONTROL_MASK 0xE000 +#define L1_DATA_PREFETCH_CONTROL_SHIFT 13 + +/************************** Function Prototypes ******************************/ void Xil_DCacheEnable(void); void Xil_DCacheDisable(void); void Xil_DCacheInvalidate(void); @@ -68,8 +80,12 @@ void Xil_ICacheDisable(void); void Xil_ICacheInvalidate(void); void Xil_ICacheInvalidateRange(INTPTR adr, INTPTR len); void Xil_ICacheInvalidateLine(INTPTR adr); +void Xil_ConfigureL1Prefetch(u8 num); #ifdef __cplusplus } #endif #endif +/** +* @} End of "addtogroup a53_64_cache_apis". +*/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_cache_vxworks.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_cache_vxworks.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_cache_vxworks.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_cache_vxworks.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mpu.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_errata.h similarity index 64% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mpu.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_errata.h index a55be916e..bab74ba37 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mpu.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_errata.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -31,50 +31,55 @@ ******************************************************************************/ /*****************************************************************************/ /** -* @file xil_mmu.h * +* @file xil_errata.h * +* @addtogroup a53_errata Cortex A53 64 bit Processor Errata Support +* @{ +* Various ARM errata are handled in the standalone BSP. The implementation for +* errata handling follows ARM guidelines and is based on the open source Linux +* support for these errata. +* +* @note +* The errata handling is enabled by default. To disable handling of all the +* errata globally, un-define the macro ENABLE_ARM_ERRATA in xil_errata.h. To +* disable errata on a per-erratum basis, un-define relevant macros in +* xil_errata.h. * *
 * MODIFICATION HISTORY:
 *
 * Ver   Who  Date     Changes
-* ----- ---- -------- ---------------------------------------------------
-* 5.00  pkp  02/10/14 Initial version
+* ----- ---- -------- -----------------------------------------------
+* 6.4   mus  08/11/17 First release
 * 
* -* @note -* -* None. -* ******************************************************************************/ +#ifndef XIL_ERRATA_H +#define XIL_ERRATA_H -#ifndef XIL_MPU_H -#define XIL_MPU_H +/** + * @name errata_definitions + * + * The errata conditions handled in the standalone BSP are listed below + * @{ + */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ -#include "xil_types.h" -/***************************** Include Files *********************************/ +#define ENABLE_ARM_ERRATA 1 -/***************** Macros (Inline Functions) Definitions *********************/ +#ifdef ENABLE_ARM_ERRATA -/**************************** Type Definitions *******************************/ +/** + * Errata No: 855873 + * Description: An eviction might overtake a cache clean operation + */ +#define CONFIG_ARM_ERRATA_855873 1 -/************************** Constant Definitions *****************************/ -/************************** Variable Definitions *****************************/ +/*@}*/ +#endif /* ENABLE_ARM_ERRATA */ -/************************** Function Prototypes ******************************/ - -void Xil_SetTlbAttributes(INTPTR Addr, u32 attrib); -void Xil_EnableMPU(void); -void Xil_DisableMPU(void); -void Xil_SetMPURegion(INTPTR addr, u64 size, u32 attrib); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* XIL_MPU_H */ +#endif /* XIL_ERRATA_H */ +/** +* @} End of "addtogroup a53_errata". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_exception.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_exception.c similarity index 85% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_exception.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_exception.c index 66f722d92..4a2f2cfdf 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_exception.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_exception.c @@ -46,6 +46,8 @@ * 6.0 mus 27/07/16 Consolidated exceptions for a53,a9 and r5 * processors and added Xil_UndefinedExceptionHandler * for a53 32 bit and r5 as well. +* 6.4 mus 08/06/17 Updated debug prints to replace %x with the %lx, to +* fix the warnings. *
* *****************************************************************************/ @@ -122,19 +124,19 @@ u32 UndefinedExceptionAddr; /* Address of instruction causing Undefined *****************************************************************************/ static void Xil_ExceptionNullHandler(void *Data) { - (void *)Data; + (void) Data; DieLoop: goto DieLoop; } /****************************************************************************/ /** -* The function is a common API used to initialize exception handlers across all -* processors supported. For ARM CortexA53,R5,A9, the exception handlers are being -* initialized statically and hence this function does not do anything. -* However, it is still present to avoid any compilation issues in case an -* application uses this API and also to take care of backward compatibility -* issues (in earlier versions of BSPs, this API was being used to initialize -* exception handlers). +* @brief The function is a common API used to initialize exception handlers +* across all supported arm processors. For ARM Cortex-A53, Cortex-R5, +* and Cortex-A9, the exception handlers are being initialized +* statically and this function does not do anything. +* However, it is still present to take care of backward compatibility +* issues (in earlier versions of BSPs, this API was being used to +* initialize exception handlers). * * @param None. * @@ -150,18 +152,15 @@ void Xil_ExceptionInit(void) /*****************************************************************************/ /** -* -* Makes the connection between the Id of the exception source and the -* associated Handler that is to run when the exception is recognized. The -* argument provided in this call as the Data is used as the argument -* for the Handler when it is called. +* @brief Register a handler for a specific exception. This handler is being +* called when the processor encounters the specified exception. * * @param exception_id contains the ID of the exception source and should -* be in the range of 0 to XIL_EXCEPTION_ID_LAST. - See xil_exception_l.h for further information. +* be in the range of 0 to XIL_EXCEPTION_ID_LAST. +* See xil_exception.h for further information. * @param Handler to the Handler for that exception. * @param Data is a reference to Data that will be passed to the -* Handler when it gets called. +* Handler when it gets called. * * @return None. * @@ -179,13 +178,13 @@ void Xil_ExceptionRegisterHandler(u32 Exception_id, /*****************************************************************************/ /** * -* Removes the Handler for a specific exception Id. The stub Handler is then -* registered for this exception Id. +* @brief Removes the Handler for a specific exception Id. The stub Handler +* is then registered for this exception Id. * * @param exception_id contains the ID of the exception source and should -* be in the range of 0 to XIL_EXCEPTION_ID_LAST. -* See xil_exception_l.h for further information. - +* be in the range of 0 to XIL_EXCEPTION_ID_LAST. +* See xil_exception.h for further information. +* * @return None. * * @note None. @@ -214,6 +213,7 @@ void Xil_ExceptionRemoveHandler(u32 Exception_id) ****************************************************************************/ void Xil_SyncAbortHandler(void *CallBackRef){ + (void) CallBackRef; xdbg_printf(XDBG_DEBUG_ERROR, "Synchronous abort \n"); while(1) { ; @@ -234,6 +234,7 @@ void Xil_SyncAbortHandler(void *CallBackRef){ * ****************************************************************************/ void Xil_SErrorAbortHandler(void *CallBackRef){ + (void) CallBackRef; xdbg_printf(XDBG_DEBUG_ERROR, "Synchronous abort \n"); while(1) { ; @@ -241,7 +242,7 @@ void Xil_SErrorAbortHandler(void *CallBackRef){ } #else /*****************************************************************************/ -/** +/* * * Default Data abort handler which prints data fault status register through * which information about data fault can be acquired @@ -255,6 +256,7 @@ void Xil_SErrorAbortHandler(void *CallBackRef){ ****************************************************************************/ void Xil_DataAbortHandler(void *CallBackRef){ + (void) CallBackRef; #ifdef DEBUG u32 FaultStatus; @@ -267,8 +269,8 @@ void Xil_DataAbortHandler(void *CallBackRef){ { volatile register u32 Reg __asm(XREG_CP15_DATA_FAULT_STATUS); FaultStatus = Reg; } #endif - xdbg_printf(XDBG_DEBUG_GENERAL, "Data abort with Data Fault Status Register %x\n",FaultStatus); - xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instrcution causing Data abort %x\n",DataAbortAddr); + xdbg_printf(XDBG_DEBUG_GENERAL, "Data abort with Data Fault Status Register %lx\n",FaultStatus); + xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instruction causing Data abort %lx\n",DataAbortAddr); #endif while(1) { ; @@ -276,7 +278,7 @@ void Xil_DataAbortHandler(void *CallBackRef){ } /*****************************************************************************/ -/** +/* * * Default Prefetch abort handler which prints prefetch fault status register through * which information about instruction prefetch fault can be acquired @@ -289,6 +291,7 @@ void Xil_DataAbortHandler(void *CallBackRef){ * ****************************************************************************/ void Xil_PrefetchAbortHandler(void *CallBackRef){ + (void) CallBackRef; #ifdef DEBUG u32 FaultStatus; @@ -301,15 +304,15 @@ void Xil_PrefetchAbortHandler(void *CallBackRef){ { volatile register u32 Reg __asm(XREG_CP15_INST_FAULT_STATUS); FaultStatus = Reg; } #endif - xdbg_printf(XDBG_DEBUG_GENERAL, "Prefetch abort with Instruction Fault Status Register %x\n",FaultStatus); - xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instrcution causing Prefetch abort %x\n",PrefetchAbortAddr); + xdbg_printf(XDBG_DEBUG_GENERAL, "Prefetch abort with Instruction Fault Status Register %lx\n",FaultStatus); + xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instruction causing Prefetch abort %lx\n",PrefetchAbortAddr); #endif while(1) { ; } } /*****************************************************************************/ -/** +/* * * Default undefined exception handler which prints address of the undefined * instruction if debug prints are enabled @@ -322,8 +325,8 @@ void Xil_PrefetchAbortHandler(void *CallBackRef){ * ****************************************************************************/ void Xil_UndefinedExceptionHandler(void *CallBackRef){ - - xdbg_printf(XDBG_DEBUG_GENERAL, "Address of the undefined instruction %x\n",UndefinedExceptionAddr); + (void) CallBackRef; + xdbg_printf(XDBG_DEBUG_GENERAL, "Address of the undefined instruction %lx\n",UndefinedExceptionAddr); while(1) { ; } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_exception.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_exception.h similarity index 90% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_exception.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_exception.h index 434ef2a6a..ad4822205 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_exception.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_exception.h @@ -38,6 +38,12 @@ * For exception related functions that can be used across all Xilinx supported * processors, please use xil_exception.h. * +* @addtogroup arm_exception_apis ARM Processor Exception Handling +* @{ +* ARM processors specific exception related APIs for cortex A53,A9 and R5 can +* utilized for enabling/disabling IRQ, registering/removing handler for +* exceptions or initializing exception vector table with null handler. +* *
 * MODIFICATION HISTORY:
 *
@@ -102,14 +108,14 @@ typedef void (*Xil_InterruptHandler)(void *data);
 
 /****************************************************************************/
 /**
-* Enable Exceptions.
+* @brief	Enable Exceptions.
 *
-* @param	Mask for exceptions to be enabled.
+* @param	Mask: Value for enabling the exceptions.
 *
 * @return	None.
 *
 * @note		If bit is 0, exception is enabled.
-*		C-Style signature: void Xil_ExceptionEnableMask(Mask)
+*			C-Style signature: void Xil_ExceptionEnableMask(Mask)
 *
 ******************************************************************************/
 #if defined (__GNUC__) || defined (__ICCARM__)
@@ -124,7 +130,7 @@ typedef void (*Xil_InterruptHandler)(void *data);
 #endif
 /****************************************************************************/
 /**
-* Enable the IRQ exception.
+* @brief	Enable the IRQ exception.
 *
 * @return   None.
 *
@@ -136,14 +142,14 @@ typedef void (*Xil_InterruptHandler)(void *data);
 
 /****************************************************************************/
 /**
-* Disable Exceptions.
+* @brief	Disable Exceptions.
 *
-* @param	Mask for exceptions to be enabled.
+* @param	Mask: Value for disabling the exceptions.
 *
 * @return	None.
 *
 * @note		If bit is 1, exception is disabled.
-*		C-Style signature: Xil_ExceptionDisableMask(Mask)
+*			C-Style signature: Xil_ExceptionDisableMask(Mask)
 *
 ******************************************************************************/
 #if defined (__GNUC__) || defined (__ICCARM__)
@@ -171,7 +177,8 @@ typedef void (*Xil_InterruptHandler)(void *data);
 #if !defined (__aarch64__) && !defined (ARMA53_32)
 /****************************************************************************/
 /**
-* Enable nested interrupts by clearing the I and F bits it CPSR
+* @brief	Enable nested interrupts by clearing the I and F bits in CPSR. This
+* 			API is defined for cortex-a9 and cortex-r5.
 *
 * @return   None.
 *
@@ -197,7 +204,8 @@ typedef void (*Xil_InterruptHandler)(void *data);
 
 /****************************************************************************/
 /**
-* Disable the nested interrupts by setting the I and F bits.
+* @brief	Disable the nested interrupts by setting the I and F bits. This API
+*			is defined for cortex-a9 and cortex-r5.
 *
 * @return   None.
 *
@@ -243,3 +251,6 @@ extern void Xil_UndefinedExceptionHandler(void *CallBackRef);
 #endif /* __cplusplus */
 
 #endif /* XIL_EXCEPTION_H */
+/**
+* @} End of "addtogroup arm_exception_apis".
+*/
\ No newline at end of file
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_hal.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_hal.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_hal.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_hal.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_io.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_io.c
similarity index 90%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_io.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_io.c
index 31de05581..90bfc81dc 100644
--- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_io.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_io.c
@@ -35,8 +35,7 @@
 * @file xil_io.c
 *
 * Contains I/O functions for memory-mapped or non-memory-mapped I/O
-* architectures.  These functions encapsulate Cortex A53 architecture-specific
-* I/O requirements.
+* architectures.
 *
 * @note
 *
@@ -60,13 +59,11 @@
 /*****************************************************************************/
 /**
 *
-* Perform a 16-bit endian converion.
+* @brief    Perform a 16-bit endian converion.
 *
-* @param	Data contains the value to be converted.
+* @param	Data: 16 bit value to be converted
 *
-* @return	converted value.
-*
-* @note		None.
+* @return	16 bit Data with converted endianess
 *
 ******************************************************************************/
 u16 Xil_EndianSwap16(u16 Data)
@@ -77,13 +74,11 @@ u16 Xil_EndianSwap16(u16 Data)
 /*****************************************************************************/
 /**
 *
-* Perform a 32-bit endian converion.
+* @brief    Perform a 32-bit endian converion.
 *
-* @param	Data contains the value to be converted.
+* @param	Data: 32 bit value to be converted
 *
-* @return	converted value.
-*
-* @note		None.
+* @return	32 bit data with converted endianess
 *
 ******************************************************************************/
 u32 Xil_EndianSwap32(u32 Data)
diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_io.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_io.h
similarity index 74%
rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_io.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_io.h
index 06d89dcc3..9c5aa43c7 100644
--- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_io.h
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_io.h
@@ -34,11 +34,13 @@
 *
 * @file xil_io.h
 *
-* This file contains the interface for the general IO component, which
-* encapsulates the Input/Output functions for processors that do not
+* @addtogroup common_io_interfacing_apis Register IO interfacing APIs
+*
+* The xil_io.h file contains the interface for the general I/O component, which
+* encapsulates the Input/Output functions for the processors that do not
 * require any special I/O handling.
 *
-*
+* @{
 * 
 * MODIFICATION HISTORY:
 *
@@ -71,6 +73,9 @@ extern "C" {
 /************************** Function Prototypes ******************************/
 u16 Xil_EndianSwap16(u16 Data);
 u32 Xil_EndianSwap32(u32 Data);
+#ifdef ENABLE_SAFETY
+extern u32 XStl_RegUpdate(u32 RegAddr, u32 RegVal);
+#endif
 
 /***************** Macros (Inline Functions) Definitions *********************/
 #if defined __GNUC__
@@ -99,15 +104,14 @@ u32 Xil_EndianSwap32(u32 Data);
 /*****************************************************************************/
 /**
 *
-* Performs an input operation for an 8-bit memory location by reading from the
-* specified address and returning the Value read from that address.
+* @brief    Performs an input operation for a memory location by reading
+*           from the specified address and returning the 8 bit Value read from
+*            that address.
 *
-* @param	Addr contains the address to perform the input operation
-*		at.
+* @param	Addr: contains the address to perform the input operation
 *
-* @return	The Value read from the specified input address.
-*
-* @note		None.
+* @return	The 8 bit Value read from the specified input address.
+
 *
 ******************************************************************************/
 static INLINE u8 Xil_In8(UINTPTR Addr)
@@ -118,15 +122,13 @@ static INLINE u8 Xil_In8(UINTPTR Addr)
 /*****************************************************************************/
 /**
 *
-* Performs an input operation for a 16-bit memory location by reading from the
-* specified address and returning the Value read from that address.
+* @brief    Performs an input operation for a memory location by reading from
+*           the specified address and returning the 16 bit Value read from that
+*           address.
 *
-* @param	Addr contains the address to perform the input operation
-*		at.
+* @param	Addr: contains the address to perform the input operation
 *
-* @return	The Value read from the specified input address.
-*
-* @note		None.
+* @return	The 16 bit Value read from the specified input address.
 *
 ******************************************************************************/
 static INLINE u16 Xil_In16(UINTPTR Addr)
@@ -137,15 +139,13 @@ static INLINE u16 Xil_In16(UINTPTR Addr)
 /*****************************************************************************/
 /**
 *
-* Performs an input operation for a 32-bit memory location by reading from the
-* specified address and returning the Value read from that address.
+* @brief    Performs an input operation for a memory location by
+*           reading from the specified address and returning the 32 bit Value
+*           read  from that address.
 *
-* @param	Addr contains the address to perform the input operation
-*		at.
+* @param	Addr: contains the address to perform the input operation
 *
-* @return	The Value read from the specified input address.
-*
-* @note		None.
+* @return	The 32 bit Value read from the specified input address.
 *
 ******************************************************************************/
 static INLINE u32 Xil_In32(UINTPTR Addr)
@@ -156,16 +156,13 @@ static INLINE u32 Xil_In32(UINTPTR Addr)
 /*****************************************************************************/
 /**
 *
-* Performs an input operation for a 64-bit memory location by reading the
-* specified Value to the the specified address.
+* @brief     Performs an input operation for a memory location by reading the
+*            64 bit Value read  from that address.
 *
-* @param	OutAddress contains the address to perform the output operation
-*		at.
-* @param	Value contains the Value to be output at the specified address.
 *
-* @return	None.
+* @param	Addr: contains the address to perform the input operation
 *
-* @note		None.
+* @return	The 64 bit Value read from the specified input address.
 *
 ******************************************************************************/
 static INLINE u64 Xil_In64(UINTPTR Addr)
@@ -176,17 +173,15 @@ static INLINE u64 Xil_In64(UINTPTR Addr)
 /*****************************************************************************/
 /**
 *
-* Performs an output operation for an 8-bit memory location by writing the
-* specified Value to the the specified address.
+* @brief    Performs an output operation for an memory location by
+*           writing the 8 bit Value to the the specified address.
 *
-* @param	Addr contains the address to perform the output operation
-*		at.
-* @param	Value contains the Value to be output at the specified address.
+* @param	Addr: contains the address to perform the output operation
+* @param	Value: contains the 8 bit Value to be written at the specified
+*           address.
 *
 * @return	None.
 *
-* @note		None.
-*
 ******************************************************************************/
 static INLINE void Xil_Out8(UINTPTR Addr, u8 Value)
 {
@@ -197,17 +192,14 @@ static INLINE void Xil_Out8(UINTPTR Addr, u8 Value)
 /*****************************************************************************/
 /**
 *
-* Performs an output operation for a 16-bit memory location by writing the
-* specified Value to the the specified address.
+* @brief    Performs an output operation for a memory location by writing the
+*            16 bit Value to the the specified address.
 *
 * @param	Addr contains the address to perform the output operation
-*		at.
-* @param	Value contains the Value to be output at the specified address.
+* @param	Value contains the Value to be written at the specified address.
 *
 * @return	None.
 *
-* @note		None.
-*
 ******************************************************************************/
 static INLINE void Xil_Out16(UINTPTR Addr, u16 Value)
 {
@@ -218,38 +210,37 @@ static INLINE void Xil_Out16(UINTPTR Addr, u16 Value)
 /*****************************************************************************/
 /**
 *
-* Performs an output operation for a 32-bit memory location by writing the
-* specified Value to the the specified address.
+* @brief    Performs an output operation for a memory location by writing the
+*           32 bit Value to the the specified address.
 *
 * @param	Addr contains the address to perform the output operation
-*		at.
-* @param	Value contains the Value to be output at the specified address.
+* @param	Value contains the 32 bit Value to be written at the specified
+*           address.
 *
 * @return	None.
 *
-* @note		None.
-*
 ******************************************************************************/
 static INLINE void Xil_Out32(UINTPTR Addr, u32 Value)
 {
+#ifndef ENABLE_SAFETY
 	volatile u32 *LocalAddr = (volatile u32 *)Addr;
 	*LocalAddr = Value;
+#else
+	XStl_RegUpdate(Addr, Value);
+#endif
 }
 
 /*****************************************************************************/
 /**
 *
-* Performs an output operation for a 64-bit memory location by writing the
-* specified Value to the the specified address.
+* @brief    Performs an output operation for a memory location by writing the
+*           64 bit Value to the the specified address.
 *
 * @param	Addr contains the address to perform the output operation
-*		at.
-* @param	Value contains the Value to be output at the specified address.
+* @param	Value contains 64 bit Value to be written at the specified address.
 *
 * @return	None.
 *
-* @note		None.
-*
 ******************************************************************************/
 static INLINE void Xil_Out64(UINTPTR Addr, u64 Value)
 {
@@ -312,7 +303,7 @@ static INLINE u32 Xil_In32LE(UINTPTR Addr)
 static INLINE u32 Xil_In32BE(UINTPTR Addr)
 #endif
 {
-	u16 value = Xil_In32(Addr);
+	u32 value = Xil_In32(Addr);
 	return Xil_EndianSwap32(value);
 }
 
@@ -349,3 +340,6 @@ static INLINE void Xil_Out32BE(UINTPTR Addr, u32 Value)
 #endif
 
 #endif /* end of protection macro */
+/**
+* @} End of "addtogroup common_io_interfacing_apis".
+*/
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_macroback.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_macroback.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_macroback.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_macroback.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mem.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mem.c
new file mode 100644
index 000000000..0929a6878
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mem.c
@@ -0,0 +1,83 @@
+/******************************************************************************/
+/**
+* Copyright (C) 2015 - 2016 Xilinx, Inc.  All rights reserved.
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* Use of the Software is limited solely to applications:
+* (a) running on a Xilinx device, or
+* (b) that interact with a Xilinx device through a bus or interconnect.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+* XILINX  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+* SOFTWARE.
+*
+* Except as contained in this notice, the name of the Xilinx shall not be used
+* in advertising or otherwise to promote the sale, use or other dealings in
+* this Software without prior written authorization from Xilinx.
+*
+******************************************************************************/
+/****************************************************************************/
+/**
+* @file xil_mem.c
+*
+* This file contains xil mem copy function to use in case of word aligned
+* data copies.
+*
+* 
+* MODIFICATION HISTORY:
+*
+* Ver   Who      Date     Changes
+* ----- -------- -------- -----------------------------------------------
+* 6.1   nsk      11/07/16 First release.
+*
+* 
+* +*****************************************************************************/ + +/***************************** Include Files ********************************/ + +#include "xil_types.h" + +/***************** Inline Functions Definitions ********************/ +/*****************************************************************************/ +/** +* @brief This function copies memory from once location to other. +* +* @param dst: pointer pointing to destination memory +* +* @param src: pointer pointing to source memory +* +* @param cnt: 32 bit length of bytes to be copied +* +*****************************************************************************/ +void Xil_MemCpy(void* dst, const void* src, u32 cnt) +{ + char *d = (char*)(void *)dst; + const char *s = src; + + while (cnt >= sizeof (int)) { + *(int*)d = *(int*)s; + d += sizeof (int); + s += sizeof (int); + cnt -= sizeof (int); + } + while ((cnt) > 0U){ + *d = *s; + d += 1U; + s += 1U; + cnt -= 1U; + } +} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mem.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mem.h new file mode 100644 index 000000000..a2d5e6681 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mem.h @@ -0,0 +1,59 @@ +/******************************************************************************/ +/** +* Copyright (C) 2015 - 2016 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* @file xil_mem.h +* +* @addtogroup common_mem_operation_api Customized APIs for Memory Operations +* +* The xil_mem.h file contains prototype for functions related +* to memory operations. These APIs are applicable for all processors supported +* by Xilinx. +* +* @{ +*
+* MODIFICATION HISTORY:
+*
+* Ver   Who      Date     Changes
+* ----- -------- -------- -----------------------------------------------
+* 6.1   nsk      11/07/16 First release.
+*
+* 
+* +*****************************************************************************/ + +/************************** Function Prototypes *****************************/ + +void Xil_MemCpy(void* dst, const void* src, u32 cnt); +/** +* @} End of "addtogroup common_mem_operation_api". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_mmu.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mmu.c similarity index 82% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_mmu.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mmu.c index 1e28b699c..87b9886f4 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_mmu.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mmu.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -44,6 +44,7 @@ * Ver Who Date Changes * ----- ---- -------- --------------------------------------------------- * 5.00 pkp 05/29/14 First release +* 6.02 pkp 01/22/17 Added support for EL1 non-secure *
* * @note @@ -75,12 +76,18 @@ extern INTPTR MMUTableL1; extern INTPTR MMUTableL2; /************************** Function Prototypes ******************************/ -/***************************************************************************** +/*****************************************************************************/ +/** +* brief It sets the memory attributes for a section, in the translation +* table. If the address (defined by Addr) is less than 4GB, the +* memory attribute(attrib) is set for a section of 2MB memory. If the +* address (defined by Addr) is greater than 4GB, the memory attribute +* (attrib) is set for a section of 1GB memory. * -* Set the memory attributes for a section, in the translation table. -* -* @param addr is the address for which attributes are to be set. -* @param attrib specifies the attributes for that memory region. +* @param Addr: 64-bit address for which attributes are to be set. +* @param attrib: Attribute for the specified memory region. xil_mmu.h +* contains commonly used memory attributes definitions which can be +* utilized for this function. * * @return None. * @@ -88,8 +95,7 @@ extern INTPTR MMUTableL2; * translation table attribute. * ******************************************************************************/ - -void Xil_SetTlbAttributes(INTPTR Addr, u64 attrib) +void Xil_SetTlbAttributes(UINTPTR Addr, u64 attrib) { INTPTR *ptr; INTPTR section; @@ -112,7 +118,10 @@ void Xil_SetTlbAttributes(INTPTR Addr, u64 attrib) Xil_DCacheFlush(); - mtcptlbi(ALLE3); + if (EL3 == 1) + mtcptlbi(ALLE3); + else if (EL1_NONSECURE == 1) + mtcptlbi(VMALLE1); dsb(); /* ensure completion of the BP and TLB invalidation */ isb(); /* synchronize context on this processor */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_mmu.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mmu.h similarity index 92% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_mmu.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mmu.h index 8c3215fd7..0f2db84a8 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_mmu.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_mmu.h @@ -33,7 +33,12 @@ /** * @file xil_mmu.h * +* @addtogroup a53_64_mmu_apis Cortex A53 64bit Processor MMU Handling * +* MMU function equip users to modify default memory attributes of MMU table as +* per the need. +* +* @{ * *
 * MODIFICATION HISTORY:
@@ -96,10 +101,13 @@ extern "C" {
 
 /************************** Function Prototypes ******************************/
 
-void Xil_SetTlbAttributes(INTPTR Addr, u64 attrib);
+void Xil_SetTlbAttributes(UINTPTR Addr, u64 attrib);
 
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
 
 #endif /* XIL_MMU_H */
+/**
+* @} End of "addtogroup a53_64_mmu_apis".
+*/
\ No newline at end of file
diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_printf.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_printf.c
similarity index 98%
rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_printf.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_printf.c
index 9dffed148..dc0897f0d 100644
--- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_printf.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_printf.c
@@ -75,8 +75,8 @@ static void outs(const charptr lp, struct params_s *par)
 		(par->num2)--;
 #ifdef STDOUT_BASEADDRESS
         outbyte(*LocalPtr);
-		LocalPtr += 1;
 #endif
+		LocalPtr += 1;
 }
 
     /* Pad on right if needed                        */
@@ -135,8 +135,8 @@ static void outnum( const s32 n, const s32 base, struct params_s *par)
     while (&outbuf[i] >= outbuf) {
 #ifdef STDOUT_BASEADDRESS
 	outbyte( outbuf[i] );
-		i--;
 #endif
+		i--;
 }
     padding( par->left_flag, par);
 }
@@ -239,6 +239,11 @@ static s32 getnum( charptr* linep)
 
 /* void esp_printf( const func_ptr f_ptr,
    const charptr ctrl1, ...) */
+#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE
+void xil_printf( const char8 *ctrl1, ...){
+	XPVXenConsole_Printf(ctrl1);
+}
+#else
 void xil_printf( const char8 *ctrl1, ...)
 {
 	s32 Check;
@@ -262,8 +267,8 @@ void xil_printf( const char8 *ctrl1, ...)
         if (*ctrl != '%') {
 #ifdef STDOUT_BASEADDRESS
             outbyte(*ctrl);
-			ctrl += 1;
 #endif
+			ctrl += 1;
             continue;
         }
 
@@ -434,5 +439,5 @@ void xil_printf( const char8 *ctrl1, ...)
     }
     va_end( argp);
 }
-
+#endif
 /*---------------------------------------------------*/
diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_printf.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_printf.h
similarity index 91%
rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_printf.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_printf.h
index 2be5c5734..016ae3b2f 100644
--- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_printf.h
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_printf.h
@@ -10,6 +10,10 @@ extern "C" {
 #include 
 #include "xil_types.h"
 #include "xparameters.h"
+#include "bspconfig.h"
+#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE
+#include "xen_console.h"
+#endif
 
 /*----------------------------------------------------*/
 /* Use the following parameter passing structure to   */
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c
new file mode 100644
index 000000000..972a310a8
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c
@@ -0,0 +1,106 @@
+/******************************************************************************
+*
+* Copyright (C) 2017 Xilinx, Inc.  All rights reserved.
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* Use of the Software is limited solely to applications:
+* (a) running on a Xilinx device, or
+* (b) that interact with a Xilinx device through a bus or interconnect.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+* XILINX  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+* SOFTWARE.
+*
+* Except as contained in this notice, the name of the Xilinx shall not be used
+* in advertising or otherwise to promote the sale, use or other dealings in
+* this Software without prior written authorization from Xilinx.
+*
+******************************************************************************/
+/*****************************************************************************/
+/**
+*
+*@file xil_sleepcommon.c
+*
+* This file contains the sleep API's
+*
+* 
+* MODIFICATION HISTORY:
+*
+* Ver   Who      Date     Changes
+* ----- -------- -------- -----------------------------------------------
+* 6.6 	srm  	 11/02/17 First release
+* 
+******************************************************************************/ + + +/***************************** Include Files *********************************/ +#include "xil_io.h" +#include "sleep.h" + +/**************************** Constant Definitions *************************/ + + +/*****************************************************************************/ +/** +* +* This API gives delay in sec +* +* @param seconds - delay time in seconds +* +* @return none +* +* @note none +* +*****************************************************************************/ + void sleep(unsigned int seconds) + { +#if defined (ARMR5) + sleep_R5(seconds); +#elif defined (__aarch64__) || defined (ARMA53_32) + sleep_A53(seconds); +#elif defined (__MICROBLAZE__) + sleep_MB(seconds); +#else + sleep_A9(seconds); +#endif + + } + +/****************************************************************************/ +/** +* +* This API gives delay in usec +* +* @param useconds - delay time in useconds +* +* @return none +* +* @note none +* +*****************************************************************************/ + void usleep(unsigned long useconds) + { +#if defined (ARMR5) + usleep_R5(useconds); +#elif defined (__aarch64__) || defined (ARMA53_32) + usleep_A53(useconds); +#elif defined (__MICROBLAZE__) + usleep_MB(useconds); +#else + usleep_A9(useconds); +#endif + + } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c new file mode 100644 index 000000000..477260676 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ + +/*****************************************************************************/ +/** +* +* @file xil_sleeptimer.c +* +* This file provides the common helper routines for the sleep API's +* +*
+* MODIFICATION HISTORY :
+*
+* Ver   Who  Date	 Changes
+* ----- ---- -------- -------------------------------------------------------
+* 6.6	srm  10/18/17 First Release.
+*
+* 
+*****************************************************************************/ + +/**************************** Include Files ********************************/ + +#include "xil_io.h" +#include "xil_sleeptimer.h" +#include "xtime_l.h" + +/**************************** Constant Definitions *************************/ + + +/* Function definitions are applicable only when TTC3 is present*/ +#if defined (SLEEP_TIMER_BASEADDR) +/****************************************************************************/ +/** +* +* This is a helper function used by sleep/usleep APIs to +* have delay in sec/usec +* +* @param delay - delay time in seconds/micro seconds +* +* @param frequency - Number of counts per second/micro second +* +* @return none +* +* @note none +* +*****************************************************************************/ +void Xil_SleepTTCCommon(u32 delay, u64 frequency) +{ + INTPTR tEnd = 0U; + INTPTR tCur = 0U; + XCntrVal TimeHighVal = 0U; + XCntrVal TimeLowVal1 = 0U; + XCntrVal TimeLowVal2 = 0U; + + TimeLowVal1 = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_COUNT_VALUE_OFFSET); + tEnd = (INTPTR)TimeLowVal1 + ((INTPTR)(delay) * frequency); + do + { + TimeLowVal2 = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_COUNT_VALUE_OFFSET); + if (TimeLowVal2 < TimeLowVal1) { + TimeHighVal++; + } + TimeLowVal1 = TimeLowVal2; + tCur = (((INTPTR) TimeHighVal) << XSLEEP_TIMER_REG_SHIFT) | + (INTPTR)TimeLowVal2; + }while (tCur < tEnd); +} + + +/*****************************************************************************/ +/** +* +* This API starts the Triple Timer Counter +* +* @param none +* +* @return none +* +* @note none +* +*****************************************************************************/ +void XTime_StartTTCTimer() +{ + u32 TimerPrescalar; + u32 TimerCntrl; + +#if (defined (__aarch64__) && EL3==1) || defined (ARMR5) || defined (ARMA53_32) + u32 LpdRst; + + LpdRst = XSleep_ReadCounterVal(RST_LPD_IOU2); + + /* check if the timer is reset */ + if (((LpdRst & (RST_LPD_IOU2_TTC_BASE_RESET_MASK << + XSLEEP_TTC_INSTANCE)) != 0 )) { + LpdRst = LpdRst & (~(RST_LPD_IOU2_TTC_BASE_RESET_MASK << + XSLEEP_TTC_INSTANCE)); + Xil_Out32(RST_LPD_IOU2, LpdRst); + } else { +#endif + TimerCntrl = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET); + /* check if Timer is disabled */ + if ((TimerCntrl & XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK) == 0) { + TimerPrescalar = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET); + /* check if Timer is configured with proper functionalty for sleep */ + if ((TimerPrescalar & XSLEEP_TIMER_TTC_CLK_CNTRL_PS_EN_MASK) == 0) + return; + } +#if (defined (__aarch64__) && EL3==1) || defined (ARMR5) || defined (ARMA53_32) + } +#endif + /* Disable the timer to configure */ + TimerCntrl = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET); + TimerCntrl = TimerCntrl | XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK; + Xil_Out32(SLEEP_TIMER_BASEADDR + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET, + TimerCntrl); + /* Disable the prescalar */ + TimerPrescalar = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET); + TimerPrescalar = TimerPrescalar & (~XSLEEP_TIMER_TTC_CLK_CNTRL_PS_EN_MASK); + Xil_Out32(SLEEP_TIMER_BASEADDR + XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET, + TimerPrescalar); + /* Enable the Timer */ + TimerCntrl = TimerCntrl & (~XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK); + Xil_Out32(SLEEP_TIMER_BASEADDR + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET, + TimerCntrl); +} +#endif diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h new file mode 100644 index 000000000..4bfac0ac4 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h @@ -0,0 +1,116 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xil_sleeptimer.h +* +* This header file contains ARM Cortex A53,A9,R5 specific sleep related APIs. +* For sleep related functions that can be used across all Xilinx supported +* processors, please use xil_sleeptimer.h. +* +* +*
+* MODIFICATION HISTORY :
+*
+* Ver   Who  Date	 Changes
+* ----- ---- -------- -------------------------------------------------------
+* 6.6	srm  10/18/17 First Release.
+*
+* 
+*****************************************************************************/ + +#ifndef XIL_SLEEPTIMER_H /* prevent circular inclusions */ +#define XIL_SLEEPTIMER_H /* by using protection macros */ +/**************************** Include Files ********************************/ + +#include "xil_io.h" +#include "xparameters.h" +#include "bspconfig.h" + +/************************** Constant Definitions *****************************/ + +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#define XSLEEP_TIMER_REG_SHIFT 32U +#define XSleep_ReadCounterVal Xil_In32 +#define XCntrVal u32 +#else +#define XSLEEP_TIMER_REG_SHIFT 16U +#define XSleep_ReadCounterVal Xil_In16 +#define XCntrVal u16 +#endif + +#if defined(ARMR5) || (defined (__aarch64__) && EL3==1) || defined (ARMA53_32) +#define RST_LPD_IOU2 0xFF5E0238U +#define RST_LPD_IOU2_TTC_BASE_RESET_MASK 0x00000800U +#endif + +#if defined (SLEEP_TIMER_BASEADDR) +/** @name Register Map +* +* Register offsets from the base address of the TTC device +* +* @{ +*/ + #define XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET 0x00000000U + /**< Clock Control Register */ + #define XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET 0x0000000CU + /**< Counter Control Register*/ + #define XSLEEP_TIMER_TTC_COUNT_VALUE_OFFSET 0x00000018U + /**< Current Counter Value */ +/* @} */ +/** @name Clock Control Register +* Clock Control Register definitions of TTC +* @{ +*/ + #define XSLEEP_TIMER_TTC_CLK_CNTRL_PS_EN_MASK 0x00000001U + /**< Prescale enable */ +/* @} */ +/** @name Counter Control Register +* Counter Control Register definitions of TTC +* @{ +*/ +#define XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK 0x00000001U + /**< Disable the counter */ +#define XSLEEP_TIMER_TTC_CNT_CNTRL_RST_MASK 0x00000010U + /**< Reset counter */ +/* @} */ + +/**************************** Type Definitions *******************************/ + +/************************** Function Prototypes ******************************/ + +void Xil_SleepTTCCommon(u32 delay, u64 frequency); +void XTime_StartTTCTimer(); + +#endif +#endif /* XIL_SLEEPTIMER_H */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_smc.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_smc.c new file mode 100644 index 000000000..7d9ee9b9d --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_smc.c @@ -0,0 +1,110 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file xil_smc.c +* +* This file contains function for initiating SMC call +* +*
+* MODIFICATION HISTORY:
+*
+* Ver   Who      Date     Changes
+* ----- -------- -------- -----------------------------------------------
+* 6.2 	pkp  	 02/16/17 First release
+* 
+* +*****************************************************************************/ + +/***************************** Include Files ********************************/ +#include "xil_types.h" +#include "xil_smc.h" + +#if EL1_NONSECURE +/************************** Constant Definitions ****************************/ + +/**************************** Type Definitions ******************************/ + +/***************** Macros (Inline Functions) Definitions ********************/ + +/************************** Function Prototypes *****************************/ + +/************************** Variable Definitions *****************************/ +XSmc_OutVar SmcResult; + +/*****************************************************************************/ +/** +* @brief Initiate SMC call to EL3 secure monitor to request for secure +* service. This function is only applicable for EL1 Non-secure bsp. +* +* @param FunctionID is the SMC identifier for a particular secure service +* request +* @param Arg1 to Arg6 is the arguements passed to EL3 secure monitor +* @param Arg7 is Hypervisor Client ID register +* +* @return Result from secure payload service +* @note FunctionID and Arg1-Arg7 should be as per SMC calling convention +* +******************************************************************************/ +XSmc_OutVar Xil_Smc(u64 FunctionID, u64 Arg1, u64 Arg2, u64 Arg3, u64 Arg4, + u64 Arg5, u64 Arg6, u64 Arg7){ + + /* + * Since registers x8 to x17 are not saved by secure monitor during SMC + * it must be preserved. + */ + XSave_X8toX17(); + + /* Moving to EL3 secure monitor with smc call. */ + + __asm__ __volatile__ ("smc #0x0"); + + /* + * The result of the secure services are stored in x0 - x3. They are + * moved to SmcResult to return the result. + */ + __asm__ __volatile__("mov x8, x0"); + __asm__ __volatile__("mov x9, x1"); + __asm__ __volatile__("mov x10, x2"); + __asm__ __volatile__("mov x11, x3"); + + __asm__ __volatile__("mov %0, x8" : "=r" (SmcResult.Arg0)); + __asm__ __volatile__("mov %0, x9" : "=r" (SmcResult.Arg1)); + __asm__ __volatile__("mov %0, x10" : "=r" (SmcResult.Arg2)); + __asm__ __volatile__("mov %0, x11" : "=r" (SmcResult.Arg3)); + + XRestore_X8toX17(); + + return SmcResult; +} +#endif \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_smc.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_smc.h new file mode 100644 index 000000000..4f0738c1e --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_smc.h @@ -0,0 +1,118 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xil_smc.h +* +* @addtogroup a53_64_smc_api Cortex A53 64bit EL1 Non-secure SMC Call +* +* Cortex A53 64bit EL1 Non-secure SMC Call provides a C wrapper for calling +* SMC from EL1 Non-secure application to request Secure monitor for secure +* services. SMC calling conventions should be followed. +* +*
+* MODIFICATION HISTORY:
+*
+* Ver   Who      Date     Changes
+* ----- -------- -------- -----------------------------------------------
+* 6.2 	pkp  	 02/16/17 First release
+* 6.4   mus      08/17/17 Added constant define for SMC ID , which is
+*                         intended to read the version/idcode of the
+*                         platform
+*
+*
+* 
+* +******************************************************************************/ + +#ifndef XIL_SMC_H /* prevent circular inclusions */ +#define XIL_SMC_H /* by using protection macros */ + +/***************************** Include Files ********************************/ + +#include "xil_types.h" +#include "bspconfig.h" + +#ifdef __cplusplus +extern "C" { +#endif +#if EL1_NONSECURE +/************************** Constant Definitions ****************************/ +#define SMC_FID_START 0xF2000000 +#define SMC_FID_END 0xFF00FFFF + +#define XILSP_INIT_DONE 0xF2000000 +#define ARITH_SMC_FID 0xF2000001 + +#define PM_ASSERT_SMC_FID 0xC2000011 +#define PM_GETSTATUS_SMC_FID 0xC2000012 +#define MMIO_WRITE_SMC_FID 0xC2000013 +#define MMIO_READ_SMC_FID 0xC2000014 +#define GET_CHIPID_SMC_FID 0xC2000018 +/**************************** Type Definitions ******************************/ +typedef struct { + u64 Arg0; + u64 Arg1; + u64 Arg2; + u64 Arg3; +} XSmc_OutVar; +/***************** Macros (Inline Functions) Definitions ********************/ + +#define XSave_X8toX17() \ + __asm__ __volatile__ ("stp X8, X9, [sp,#-0x10]!");\ + __asm__ __volatile__ ("stp X10, X11, [sp,#-0x10]!");\ + __asm__ __volatile__ ("stp X12, X13, [sp,#-0x10]!");\ + __asm__ __volatile__ ("stp X14, X15, [sp,#-0x10]!");\ + __asm__ __volatile__ ("stp X16, X17, [sp,#-0x10]!"); + +#define XRestore_X8toX17() \ + __asm__ __volatile__ ("ldp X16, X17, [sp], #0x10");\ + __asm__ __volatile__ ("ldp X14, X15, [sp], #0x10");\ + __asm__ __volatile__ ("ldp X12, X13, [sp], #0x10");\ + __asm__ __volatile__ ("ldp X10, X11, [sp], #0x10");\ + __asm__ __volatile__ ("ldp X8, X9, [sp], #0x10"); + +/************************** Variable Definitions ****************************/ + +/************************** Function Prototypes *****************************/ +XSmc_OutVar Xil_Smc(u64 FunctionID, u64 Arg1, u64 Arg2, u64 Arg3, u64 Arg4, + u64 Arg5, u64 Arg6, u64 Arg7); +#endif +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* XIL_SMC_H */ +/** +* @} End of "addtogroup a53_64_smc_api". +*/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testcache.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testcache.c similarity index 83% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testcache.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testcache.c index a2c4b0bbf..157ad0836 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testcache.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testcache.c @@ -47,7 +47,6 @@ *
* * @note -* * This file contain functions that all operate on HAL. * ******************************************************************************/ @@ -74,17 +73,21 @@ static INTPTR Data[DATA_LENGTH] __attribute__ ((aligned(64))); static INTPTR Data[DATA_LENGTH] __attribute__ ((aligned(32))); #endif + +/*****************************************************************************/ /** -* Perform DCache range related API test such as Xil_DCacheFlushRange and -* Xil_DCacheInvalidateRange. This test function writes a constant value -* to the Data array, flushes the range, writes a new value, then invalidates -* the corresponding range. +* +* @brief Perform DCache range related API test such as Xil_DCacheFlushRange +* and Xil_DCacheInvalidateRange. This test function writes a constant +* value to the Data array, flushes the range, writes a new value, then +* invalidates the corresponding range. +* @param None * * @return +* - -1 is returned for a failure +* - 0 is returned for a pass * -* - 0 is returned for a pass -* - -1 is returned for a failure -*/ +*****************************************************************************/ s32 Xil_TestDCacheRange(void) { s32 Index; @@ -204,16 +207,17 @@ s32 Xil_TestDCacheRange(void) } +/*****************************************************************************/ /** -* Perform DCache all related API test such as Xil_DCacheFlush and -* Xil_DCacheInvalidate. This test function writes a constant value -* to the Data array, flushes the DCache, writes a new value, then invalidates -* the DCache. +* @brief Perform DCache all related API test such as Xil_DCacheFlush and +* Xil_DCacheInvalidate. This test function writes a constant value +* to the Data array, flushes the DCache, writes a new value, +* then invalidates the DCache. * * @return -* - 0 is returned for a pass -* - -1 is returned for a failure -*/ +* - 0 is returned for a pass +* - -1 is returned for a failure +*****************************************************************************/ s32 Xil_TestDCacheAll(void) { s32 Index; @@ -328,15 +332,15 @@ s32 Xil_TestDCacheAll(void) return Status; } - +/*****************************************************************************/ /** -* Perform Xil_ICacheInvalidateRange() on a few function pointers. +* @brief Perform Xil_ICacheInvalidateRange() on a few function pointers. * * @return -* * - 0 is returned for a pass +* @note * The function will hang if it fails. -*/ +*****************************************************************************/ s32 Xil_TestICacheRange(void) { @@ -349,14 +353,15 @@ s32 Xil_TestICacheRange(void) return 0; } +/*****************************************************************************/ /** -* Perform Xil_ICacheInvalidate(). +* @brief Perform Xil_ICacheInvalidate() on a few function pointers. * * @return -* -* - 0 is returned for a pass -* The function will hang if it fails. -*/ +* - 0 is returned for a pass +* @note +* The function will hang if it fails. +*****************************************************************************/ s32 Xil_TestICacheAll(void) { Xil_ICacheInvalidate(); diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testcache.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testcache.h similarity index 92% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testcache.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testcache.h index b3c416cd0..c35e9a463 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testcache.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testcache.h @@ -34,11 +34,16 @@ * * @file xil_testcache.h * -* This file contains utility functions to test cache. +* @addtogroup common_test_utils +*

Cache test

+* The xil_testcache.h file contains utility functions to test cache. * +* @{ +*
 * Ver    Who    Date    Changes
 * ----- ---- -------- -----------------------------------------------
 * 1.00a hbm  07/29/09 First release
+* 
* ******************************************************************************/ @@ -61,3 +66,6 @@ extern s32 Xil_TestICacheAll(void); #endif #endif /* end of protection macro */ +/** +* @} End of "addtogroup common_test_utils". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testio.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testio.c similarity index 70% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testio.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testio.c index a68d7652f..e6a36807b 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testio.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testio.c @@ -32,7 +32,7 @@ /*****************************************************************************/ /** * -* @file xil_testmemend.c +* @file xil_testio.c * * Contains the memory test utility functions. * @@ -95,18 +95,17 @@ static u32 Swap32(u32 Data) /*****************************************************************************/ /** * -* Perform a destructive 8-bit wide register IO test where the register is -* accessed using Xil_Out8 and Xil_In8, and comparing the reading and writing -* values. +* @brief Perform a destructive 8-bit wide register IO test where the +* register is accessed using Xil_Out8 and Xil_In8, and comparing +* the written values by reading them back. * -* @param Addr is a pointer to the region of memory to be tested. -* @param Length is the Length of the block. -* @param Value is the constant used for writting the memory. +* @param Addr: a pointer to the region of memory to be tested. +* @param Length: Length of the block. +* @param Value: constant used for writting the memory. * * @return -* -* - -1 is returned for a failure -* - 0 is returned for a pass +* - -1 is returned for a failure +* - 0 is returned for a pass * *****************************************************************************/ @@ -133,24 +132,24 @@ s32 Xil_TestIO8(u8 *Addr, s32 Length, u8 Value) /*****************************************************************************/ /** * -* Perform a destructive 16-bit wide register IO test. Each location is tested -* by sequentially writing a 16-bit wide register, reading the register, and -* comparing value. This function tests three kinds of register IO functions, -* normal register IO, little-endian register IO, and big-endian register IO. -* When testing little/big-endian IO, the function performs the following -* sequence, Xil_Out16LE/Xil_Out16BE, Xil_In16, Compare In-Out values, -* Xil_Out16, Xil_In16LE/Xil_In16BE, Compare In-Out values. Whether to swap the -* read-in value before comparing is controlled by the 5th argument. +* @brief Perform a destructive 16-bit wide register IO test. Each location +* is tested by sequentially writing a 16-bit wide register, reading +* the register, and comparing value. This function tests three kinds +* of register IO functions, normal register IO, little-endian register +* IO, and big-endian register IO. When testing little/big-endian IO, +* the function performs the following sequence, Xil_Out16LE/Xil_Out16BE, +* Xil_In16, Compare In-Out values, Xil_Out16, Xil_In16LE/Xil_In16BE, +* Compare In-Out values. Whether to swap the read-in value before +* comparing is controlled by the 5th argument. * -* @param Addr is a pointer to the region of memory to be tested. -* @param Length is the Length of the block. -* @param Value is the constant used for writting the memory. -* @param Kind is the test kind. Acceptable values are: -* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. -* @param Swap indicates whether to byte swap the read-in value. +* @param Addr: a pointer to the region of memory to be tested. +* @param Length: Length of the block. +* @param Value: constant used for writting the memory. +* @param Kind: Type of test. Acceptable values are: +* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. +* @param Swap: indicates whether to byte swap the read-in value. * * @return -* * - -1 is returned for a failure * - 0 is returned for a pass * @@ -219,26 +218,25 @@ s32 Xil_TestIO16(u16 *Addr, s32 Length, u16 Value, s32 Kind, s32 Swap) /*****************************************************************************/ /** * -* Perform a destructive 32-bit wide register IO test. Each location is tested -* by sequentially writing a 32-bit wide regsiter, reading the register, and -* comparing value. This function tests three kinds of register IO functions, -* normal register IO, little-endian register IO, and big-endian register IO. -* When testing little/big-endian IO, the function perform the following -* sequence, Xil_Out32LE/Xil_Out32BE, Xil_In32, Compare, -* Xil_Out32, Xil_In32LE/Xil_In32BE, Compare. Whether to swap the read-in value -* before comparing is controlled by the 5th argument. -* -* @param Addr is a pointer to the region of memory to be tested. -* @param Length is the Length of the block. -* @param Value is the constant used for writting the memory. -* @param Kind is the test kind. Acceptable values are: -* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. -* @param Swap indicates whether to byte swap the read-in value. +* @brief Perform a destructive 32-bit wide register IO test. Each location +* is tested by sequentially writing a 32-bit wide regsiter, reading +* the register, and comparing value. This function tests three kinds +* of register IO functions, normal register IO, little-endian register IO, +* and big-endian register IO. When testing little/big-endian IO, +* the function perform the following sequence, Xil_Out32LE/ +* Xil_Out32BE, Xil_In32, Compare, Xil_Out32, Xil_In32LE/Xil_In32BE, Compare. +* Whether to swap the read-in value *before comparing is controlled +* by the 5th argument. +* @param Addr: a pointer to the region of memory to be tested. +* @param Length: Length of the block. +* @param Value: constant used for writting the memory. +* @param Kind: type of test. Acceptable values are: +* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. +* @param Swap: indicates whether to byte swap the read-in value. * * @return -* -* - -1 is returned for a failure -* - 0 is returned for a pass +* - -1 is returned for a failure +* - 0 is returned for a pass * *****************************************************************************/ s32 Xil_TestIO32(u32 *Addr, s32 Length, u32 Value, s32 Kind, s32 Swap) diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testio.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testio.h similarity index 93% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testio.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testio.h index fba0c1060..ad68ead64 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testio.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testio.h @@ -32,19 +32,19 @@ /*****************************************************************************/ /** * -* @file xil_testmemend.h +* @file xil_testio.h * -* This file contains utility functions to teach endian related memory +* @addtogroup common_test_utils Test Utilities +*

I/O test

+* The xil_testio.h file contains utility functions to test endian related memory * IO functions. * -* Memory test description -* * A subset of the memory tests can be selected or all of the tests can be run * in order. If there is an error detected by a subtest, the test stops and the * failure code is returned. Further tests are not run even if all of the tests * are selected. * -* +* @{ *
 * MODIFICATION HISTORY:
 *
@@ -89,3 +89,6 @@ extern s32 Xil_TestIO32(u32 *Addr, s32 Length, u32 Value, s32 Kind, s32 Swap);
 #endif
 
 #endif /* end of protection macro */
+/**
+* @} End of "addtogroup common_test_utils".
+*/
diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testmem.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testmem.c
similarity index 92%
rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testmem.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testmem.c
index 19a3b6608..87426d17a 100644
--- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testmem.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testmem.c
@@ -66,22 +66,20 @@ static u32 RotateRight(u32 Input, u8 Width);
 /*****************************************************************************/
 /**
 *
-* Perform a destructive 32-bit wide memory test.
+* @brief    Perform a destructive 32-bit wide memory test.
 *
-* @param    Addr is a pointer to the region of memory to be tested.
-* @param    Words is the length of the block.
-* @param    Pattern is the constant used for the constant pattern test, if 0,
+* @param    Addr: pointer to the region of memory to be tested.
+* @param    Words: length of the block.
+* @param    Pattern: constant used for the constant pattern test, if 0,
 *           0xDEADBEEF is used.
-* @param    Subtest is the test selected. See xil_testmem.h for possible
-*	    values.
+* @param    Subtest: test type selected. See xil_testmem.h for possible
+*	        values.
 *
 * @return
-*
-* - 0 is returned for a pass
-* - -1 is returned for a failure
+*           - 0 is returned for a pass
+*           - 1 is returned for a failure
 *
 * @note
-*
 * Used for spaces where the address range of the region is smaller than
 * the data width. If the memory range is greater than 2 ** Width,
 * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will
@@ -315,22 +313,21 @@ End_Label:
 /*****************************************************************************/
 /**
 *
-* Perform a destructive 16-bit wide memory test.
+* @brief    Perform a destructive 16-bit wide memory test.
 *
-* @param    Addr is a pointer to the region of memory to be tested.
-* @param    Words is the length of the block.
-* @param    Pattern is the constant used for the constant Pattern test, if 0,
+* @param    Addr: pointer to the region of memory to be tested.
+* @param    Words: length of the block.
+* @param    Pattern: constant used for the constant Pattern test, if 0,
 *           0xDEADBEEF is used.
-* @param    Subtest is the test selected. See xil_testmem.h for possible
-*	    values.
+* @param    Subtest: type of test selected. See xil_testmem.h for possible
+*	        values.
 *
 * @return
 *
-* - -1 is returned for a failure
-* - 0 is returned for a pass
+*           - -1 is returned for a failure
+*           - 0 is returned for a pass
 *
 * @note
-*
 * Used for spaces where the address range of the region is smaller than
 * the data width. If the memory range is greater than 2 ** Width,
 * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will
@@ -549,22 +546,20 @@ End_Label:
 /*****************************************************************************/
 /**
 *
-* Perform a destructive 8-bit wide memory test.
+* @brief    Perform a destructive 8-bit wide memory test.
 *
-* @param    Addr is a pointer to the region of memory to be tested.
-* @param    Words is the length of the block.
-* @param    Pattern is the constant used for the constant pattern test, if 0,
+* @param    Addr: pointer to the region of memory to be tested.
+* @param    Words: length of the block.
+* @param    Pattern: constant used for the constant pattern test, if 0,
 *           0xDEADBEEF is used.
-* @param    Subtest is the test selected. See xil_testmem.h for possible
-*	    values.
+* @param    Subtest: type of test selected. See xil_testmem.h for possible
+*	        values.
 *
 * @return
-*
-* - -1 is returned for a failure
-* - 0 is returned for a pass
+*           - -1 is returned for a failure
+*           - 0 is returned for a pass
 *
 * @note
-*
 * Used for spaces where the address range of the region is smaller than
 * the data width. If the memory range is greater than 2 ** Width,
 * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will
@@ -777,18 +772,14 @@ End_Label:
 /*****************************************************************************/
 /**
 *
-* Rotates the provided value to the left one bit position
+* @brief   Rotates the provided value to the left one bit position
 *
 * @param    Input is value to be rotated to the left
 * @param    Width is the number of bits in the input data
 *
 * @return
+*           The resulting unsigned long value of the rotate left
 *
-* The resulting unsigned long value of the rotate left
-*
-* @note
-*
-* None.
 *
 *****************************************************************************/
 static u32 RotateLeft(u32 Input, u8 Width)
@@ -831,18 +822,13 @@ static u32 RotateLeft(u32 Input, u8 Width)
 /*****************************************************************************/
 /**
 *
-* Rotates the provided value to the right one bit position
+* @brief    Rotates the provided value to the right one bit position
 *
-* @param    Input is value to be rotated to the right
-* @param    Width is the number of bits in the input data
+* @param    Input: value to be rotated to the right
+* @param    Width: number of bits in the input data
 *
 * @return
-*
-* The resulting u32 value of the rotate right
-*
-* @note
-*
-* None.
+*           The resulting u32 value of the rotate right
 *
 *****************************************************************************/
 static u32 RotateRight(u32 Input, u8 Width)
diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testmem.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testmem.h
similarity index 79%
rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testmem.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testmem.h
index 4cbfd878b..c20472822 100644
--- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testmem.h
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_testmem.h
@@ -33,64 +33,57 @@
 /**
 *
 * @file xil_testmem.h
+* @addtogroup common_test_utils
 *
-* This file contains utility functions to test memory.
-*
-* Memory test description
+* 

Memory test

* +* The xil_testmem.h file contains utility functions to test memory. * A subset of the memory tests can be selected or all of the tests can be run * in order. If there is an error detected by a subtest, the test stops and the * failure code is returned. Further tests are not run even if all of the tests * are selected. +* Following list describes the supported memory tests: * -* Subtest descriptions: -*
-* XIL_TESTMEM_ALLMEMTESTS:
-*       Runs all of the following tests
+*  - XIL_TESTMEM_ALLMEMTESTS: This test runs all of the subtests.
 *
-* XIL_TESTMEM_INCREMENT:
-*       Incrementing Value Test.
-*       This test starts at 'XIL_TESTMEM_INIT_VALUE' and uses the
-*	incrementing value as the test value for memory.
+*  - XIL_TESTMEM_INCREMENT: This test
+* starts at 'XIL_TESTMEM_INIT_VALUE' and uses the incrementing value as the
+* test value for memory.
 *
-* XIL_TESTMEM_WALKONES:
-*       Walking Ones Test.
-*       This test uses a walking '1' as the test value for memory.
-*       location 1 = 0x00000001
-*       location 2 = 0x00000002
-*       ...
+*  - XIL_TESTMEM_WALKONES: Also known as the Walking ones test. This test
+* uses a walking '1' as the test value for memory.
+* @code
+*          location 1 = 0x00000001
+*          location 2 = 0x00000002
+*          ...
+* @endcode
 *
-* XIL_TESTMEM_WALKZEROS:
-*       Walking Zero's Test.
-*       This test uses the inverse value of the walking ones test
-*       as the test value for memory.
+*  - XIL_TESTMEM_WALKZEROS: Also known as the Walking zero's test.
+* This test uses the inverse value of the walking ones test
+* as the test value for memory.
+* @code
 *       location 1 = 0xFFFFFFFE
 *       location 2 = 0xFFFFFFFD
 *       ...
+*@endcode
 *
-* XIL_TESTMEM_INVERSEADDR:
-*       Inverse Address Test.
-*       This test uses the inverse of the address of the location under test
-*       as the test value for memory.
+*  - XIL_TESTMEM_INVERSEADDR: Also known as the inverse address test.
+* This test uses the inverse of the address of the location under test
+* as the test value for memory.
 *
-* XIL_TESTMEM_FIXEDPATTERN:
-*       Fixed Pattern Test.
-*       This test uses the provided patters as the test value for memory.
-*       If zero is provided as the pattern the test uses '0xDEADBEEF".
-* 
-* -* WARNING +* - XIL_TESTMEM_FIXEDPATTERN: Also known as the fixed pattern test. +* This test uses the provided patters as the test value for memory. +* If zero is provided as the pattern the test uses '0xDEADBEEF". * +* @warning * The tests are DESTRUCTIVE. Run before any initialized memory spaces * have been set up. -* * The address provided to the memory tests is not checked for * validity except for the NULL case. It is possible to provide a code-space * pointer for this test to start with and ultimately destroy executable code * causing random failures. * * @note -* * Used for spaces where the address range of the region is smaller than * the data width. If the memory range is greater than 2 ** width, * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will @@ -160,3 +153,6 @@ extern s32 Xil_TestMem8(u8 *Addr, u32 Words, u8 Pattern, u8 Subtest); #endif #endif /* end of protection macro */ +/** +* @} End of "addtogroup common_test_utils". +*/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_types.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_types.h similarity index 76% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_types.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_types.h index e8b78b7c6..8143aff1e 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_types.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xil_types.h @@ -34,9 +34,11 @@ * * @file xil_types.h * -* This file contains basic types for Xilinx software IP. - +* @addtogroup common_types Basic Data types for Xilinx® Software IP * +* The xil_types.h file contains basic types for Xilinx software IP. These data types +* are applicable for all processors supported by Xilinx. +* @{ *
 * MODIFICATION HISTORY:
 *
@@ -71,22 +73,28 @@
 #define NULL		0U
 #endif
 
-#define XIL_COMPONENT_IS_READY     0x11111111U  /**< component has been initialized */
-#define XIL_COMPONENT_IS_STARTED   0x22222222U  /**< component has been started */
+#define XIL_COMPONENT_IS_READY     0x11111111U  /**< In device drivers, This macro will be
+                                                 assigend to "IsReady" member of driver
+												 instance to indicate that driver
+												 instance is initialized and ready to use. */
+#define XIL_COMPONENT_IS_STARTED   0x22222222U  /**< In device drivers, This macro will be assigend to
+                                                 "IsStarted" member of driver instance
+												 to indicate that driver instance is
+												 started and it can be enabled. */
 
-/** @name New types
+/* @name New types
  * New simple types.
  * @{
  */
 #ifndef __KERNEL__
 #ifndef XBASIC_TYPES_H
-/**
+/*
  * guarded against xbasic_types.h.
  */
 typedef uint8_t u8;
 typedef uint16_t u16;
 typedef uint32_t u32;
-
+/** @}*/
 #define __XUINT64__
 typedef struct
 {
@@ -97,36 +105,32 @@ typedef struct
 
 /*****************************************************************************/
 /**
-* Return the most significant half of the 64 bit data type.
+* @brief    Return the most significant half of the 64 bit data type.
 *
 * @param    x is the 64 bit word.
 *
 * @return   The upper 32 bits of the 64 bit word.
 *
-* @note     None.
-*
 ******************************************************************************/
 #define XUINT64_MSW(x) ((x).Upper)
 
 /*****************************************************************************/
 /**
-* Return the least significant half of the 64 bit data type.
+* @brief    Return the least significant half of the 64 bit data type.
 *
 * @param    x is the 64 bit word.
 *
 * @return   The lower 32 bits of the 64 bit word.
 *
-* @note     None.
-*
 ******************************************************************************/
 #define XUINT64_LSW(x) ((x).Lower)
 
 #endif /* XBASIC_TYPES_H */
 
-/**
+/*
  * xbasic_types.h does not typedef s* or u64
  */
-
+/** @{ */
 typedef char char8;
 typedef int8_t s8;
 typedef int16_t s16;
@@ -138,7 +142,7 @@ typedef int sint32;
 typedef intptr_t INTPTR;
 typedef uintptr_t UINTPTR;
 typedef ptrdiff_t PTRDIFF;
-
+/** @}*/
 #if !defined(LONG) || !defined(ULONG)
 typedef long LONG;
 typedef unsigned long ULONG;
@@ -151,7 +155,7 @@ typedef unsigned long ULONG;
 #include 
 #endif
 
-
+/** @{ */
 /**
  * This data type defines an interrupt handler for a device.
  * The argument points to the instance of the component
@@ -165,22 +169,24 @@ typedef void (*XInterruptHandler) (void *InstancePtr);
 typedef void (*XExceptionHandler) (void *InstancePtr);
 
 /**
- * UPPER_32_BITS - return bits 32-63 of a number
- * @n: the number we're accessing
+ * @brief  Returns 32-63 bits of a number.
+ * @param  n : Number being accessed.
+ * @return Bits 32-63 of number.
  *
- * A basic shift-right of a 64- or 32-bit quantity.  Use this to suppress
- * the "right shift count >= width of type" warning when that quantity is
- * 32-bits.
+ * @note    A basic shift-right of a 64- or 32-bit quantity.
+ *          Use this to suppress the "right shift count >= width of type"
+ *          warning when that quantity is 32-bits.
  */
 #define UPPER_32_BITS(n) ((u32)(((n) >> 16) >> 16))
 
 /**
- * LOWER_32_BITS - return bits 0-31 of a number
- * @n: the number we're accessing
+ * @brief  Returns 0-31 bits of a number
+ * @param  n : Number being accessed.
+ * @return Bits 0-31 of number
  */
 #define LOWER_32_BITS(n) ((u32)(n))
 
-/*@}*/
+
 
 
 /************************** Constant Definitions *****************************/
@@ -198,3 +204,6 @@ typedef void (*XExceptionHandler) (void *InstancePtr);
 #endif
 
 #endif	/* end of protection macro */
+/**
+* @} End of "addtogroup common_types".
+*/
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xparameters_ps.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xparameters_ps.h
similarity index 91%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xparameters_ps.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xparameters_ps.h
index 708160962..a19e172e5 100644
--- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xparameters_ps.h
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xparameters_ps.h
@@ -1,6 +1,6 @@
 /******************************************************************************
 *
-* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
+* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
@@ -57,6 +57,9 @@
 extern "C" {
 #endif
 
+/***************************** Include Files *********************************/
+
+
 /************************** Constant Definitions *****************************/
 
 /*
@@ -114,6 +117,15 @@ extern "C" {
 #define XPAR_XADMAPS_6_INTR 		XPS_ADMA_CH6_INT_ID
 #define XPAR_XADMAPS_7_INTR 		XPS_ADMA_CH7_INT_ID
 #define XPAR_XCSUDMA_INTR 		XPS_CSU_DMA_INT_ID
+#define XPAR_PSU_ADMA_0_INTR 		XPS_ADMA_CH0_INT_ID
+#define XPAR_PSU_ADMA_1_INTR 		XPS_ADMA_CH1_INT_ID
+#define XPAR_PSU_ADMA_2_INTR		XPS_ADMA_CH2_INT_ID
+#define XPAR_PSU_ADMA_3_INTR 		XPS_ADMA_CH3_INT_ID
+#define XPAR_PSU_ADMA_4_INTR		XPS_ADMA_CH4_INT_ID
+#define XPAR_PSU_ADMA_5_INTR 		XPS_ADMA_CH5_INT_ID
+#define XPAR_PSU_ADMA_6_INTR 		XPS_ADMA_CH6_INT_ID
+#define XPAR_PSU_ADMA_7_INTR 		XPS_ADMA_CH7_INT_ID
+#define XPAR_PSU_CSUDMA_INTR 		XPS_CSU_DMA_INT_ID
 #define XPAR_XMPU_LPD_INTR 		XPS_XMPU_LPD_INT_ID
 #define XPAR_XZDMAPS_0_INTR		XPS_ZDMA_CH0_INT_ID
 #define XPAR_XZDMAPS_1_INTR		XPS_ZDMA_CH1_INT_ID
@@ -123,11 +135,21 @@ extern "C" {
 #define XPAR_XZDMAPS_5_INTR 		XPS_ZDMA_CH5_INT_ID
 #define XPAR_XZDMAPS_6_INTR 		XPS_ZDMA_CH6_INT_ID
 #define XPAR_XZDMAPS_7_INTR 		XPS_ZDMA_CH7_INT_ID
+#define XPAR_PSU_GDMA_0_INTR		XPS_ZDMA_CH0_INT_ID
+#define XPAR_PSU_GDMA_1_INTR		XPS_ZDMA_CH1_INT_ID
+#define XPAR_PSU_GDMA_2_INTR 		XPS_ZDMA_CH2_INT_ID
+#define XPAR_PSU_GDMA_3_INTR 		XPS_ZDMA_CH3_INT_ID
+#define XPAR_PSU_GDMA_4_INTR		XPS_ZDMA_CH4_INT_ID
+#define XPAR_PSU_GDMA_5_INTR 		XPS_ZDMA_CH5_INT_ID
+#define XPAR_PSU_GDMA_6_INTR 		XPS_ZDMA_CH6_INT_ID
+#define XPAR_PSU_GDMA_7_INTR 		XPS_ZDMA_CH7_INT_ID
 #define XPAR_XMPU_FPD_INTR 		XPS_XMPU_FPD_INT_ID
 #define XPAR_XCCI_FPD_INTR 		XPS_FPD_CCI_INT_ID
 #define XPAR_XSMMU_FPD_INTR 		XPS_FPD_SMMU_INT_ID
 #define XPAR_XUSBPS_0_INTR		XPS_USB3_0_ENDPT_INT_ID
 #define XPAR_XUSBPS_1_INTR		XPS_USB3_1_ENDPT_INT_ID
+#define XPAR_XUSBPS_0_WAKE_INTR		XPS_USB3_0_WAKE_INT_ID
+#define XPAR_XUSBPS_1_WAKE_INTR		XPS_USB3_1_WAKE_INT_ID
 #define	XPAR_XRTCPSU_ALARM_INTR 	XPS_RTC_ALARM_INT_ID
 #define	XPAR_XRTCPSU_SECONDS_INTR	XPS_RTC_SEC_INT_ID
 #define XPAR_XAPMPS_0_INTR		XPS_APM0_INT_ID
@@ -217,6 +239,8 @@ extern "C" {
 #define XPS_GEM3_WAKE_INT_ID		(64U + 32U)
 #define XPS_USB3_0_ENDPT_INT_ID		(65U + 32U)
 #define XPS_USB3_1_ENDPT_INT_ID		(70U + 32U)
+#define XPS_USB3_0_WAKE_INT_ID		(75U + 32U)
+#define XPS_USB3_1_WAKE_INT_ID		(76U + 32U)
 #define XPS_ADMA_CH0_INT_ID		(77U + 32U)
 #define XPS_ADMA_CH1_INT_ID		(78U + 32U)
 #define XPS_ADMA_CH2_INT_ID		(79U + 32U)
@@ -279,6 +303,7 @@ extern "C" {
 #define XPAR_PSU_TTC_9_INTR			XPS_TTC3_0_INT_ID
 #define XPAR_PSU_TTC_10_INTR		XPS_TTC3_1_INT_ID
 #define XPAR_PSU_TTC_11_INTR		XPS_TTC3_2_INT_ID
+#define XPAR_PSU_AMS_INTR			XPS_AMS_INT_ID
 
 #define XPAR_XADCPS_NUM_INSTANCES 1U
 #define XPAR_XADCPS_0_DEVICE_ID   0U
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xplatform_info.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xplatform_info.c
similarity index 73%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xplatform_info.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xplatform_info.c
index 9d4560a98..2c08e5f2e 100644
--- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xplatform_info.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xplatform_info.c
@@ -45,6 +45,13 @@
 * 5.04  pkp  01/12/16 Added platform information support for Cortex-A53 32bit
 *					  mode
 * 6.00  mus  17/08/16 Removed unused variable from XGetPlatform_Info
+* 6.4   ms   05/23/17 Added PSU_PMU macro to support XGetPSVersion_Info
+*                     function for PMUFW.
+*       ms   06/13/17 Added PSU_PMU macro to provide support of
+*                     XGetPlatform_Info function for PMUFW.
+*       mus  08/17/17 Add EL1 NS mode support for
+*                     XGet_Zynq_UltraMp_Platform_info and XGetPSVersion_Info
+*                     APIs.
 * 
* ******************************************************************************/ @@ -54,7 +61,10 @@ #include "xil_types.h" #include "xil_io.h" #include "xplatform_info.h" - +#if defined (__aarch64__) +#include "bspconfig.h" +#include "xil_smc.h" +#endif /************************** Constant Definitions *****************************/ /**************************** Type Definitions *******************************/ @@ -69,19 +79,17 @@ /*****************************************************************************/ /** * -* This API is used to provide information about platform +* @brief This API is used to provide information about platform * * @param None. * * @return The information about platform defined in xplatform_info.h * -* @note None. -* ******************************************************************************/ u32 XGetPlatform_Info() { -#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) return XPLAT_ZYNQ_ULTRA_MP; #elif (__microblaze__) return XPLAT_MICROBLAZE; @@ -93,43 +101,61 @@ u32 XGetPlatform_Info() /*****************************************************************************/ /** * -* This API is used to provide information about zynq ultrascale MP platform +* @brief This API is used to provide information about zynq ultrascale MP platform * * @param None. * * @return The information about zynq ultrascale MP platform defined in * xplatform_info.h * -* @note None. -* ******************************************************************************/ #if defined (ARMR5) || (__aarch64__) || (ARMA53_32) u32 XGet_Zynq_UltraMp_Platform_info() { +#if EL1_NONSECURE + XSmc_OutVar reg; + /* + * This SMC call will return, + * idcode - upper 32 bits of reg.Arg0 + * version - lower 32 bits of reg.Arg1 + */ + reg = Xil_Smc(GET_CHIPID_SMC_FID,0,0, 0, 0, 0, 0, 0); + return (u32)((reg.Arg1 >> XPLAT_INFO_SHIFT) & XPLAT_INFO_MASK); +#else u32 reg; reg = ((Xil_In32(XPAR_CSU_BASEADDR + XPAR_CSU_VER_OFFSET) >> 12U )& XPLAT_INFO_MASK); return reg; +#endif } #endif /*****************************************************************************/ /** * -* This API is used to provide information about PS Silicon version +* @brief This API is used to provide information about PS Silicon version * * @param None. * * @return The information about PS Silicon version. * -* @note None. -* ******************************************************************************/ -#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) u32 XGetPSVersion_Info() { +#if EL1_NONSECURE + /* + * This SMC call will return, + * idcode - upper 32 bits of reg.Arg0 + * version - lower 32 bits of reg.Arg1 + */ + XSmc_OutVar reg; + reg = Xil_Smc(GET_CHIPID_SMC_FID,0,0, 0, 0, 0, 0, 0); + return (u32)(reg.Arg1 & XPS_VERSION_INFO_MASK); +#else u32 reg; reg = (Xil_In32(XPAR_CSU_BASEADDR + XPAR_CSU_VER_OFFSET) & XPS_VERSION_INFO_MASK); return reg; +#endif } #endif diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xplatform_info.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xplatform_info.h similarity index 80% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xplatform_info.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xplatform_info.h index 7028a83af..0582222bc 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xplatform_info.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xplatform_info.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,7 +34,21 @@ * * @file xplatform_info.h * -* This file contains definitions for various platforms available +* @addtogroup common_platform_info APIs to Get Platform Information +* +* The xplatform_info.h file contains definitions for various available Xilinx® +* platforms. Also, it contains prototype of APIs, which can be used to get the +* platform information. +* +* @{ +*
+* MODIFICATION HISTORY:
+*
+* Ver   Who    Date    Changes
+* ----- ---- --------- -------------------------------------------------------
+* 6.4    ms   05/23/17 Added PSU_PMU macro to support XGetPSVersion_Info
+*                      function for PMUFW.
+* 
* ******************************************************************************/ @@ -65,6 +79,7 @@ extern "C" { #define XPS_VERSION_2 0x1 #define XPLAT_INFO_MASK (0xF) +#define XPLAT_INFO_SHIFT (0xC) #define XPS_VERSION_INFO_MASK (0xF) /**************************** Type Definitions *******************************/ @@ -74,7 +89,7 @@ extern "C" { u32 XGetPlatform_Info(); -#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) u32 XGetPSVersion_Info(); #endif @@ -89,3 +104,6 @@ u32 XGet_Zynq_UltraMp_Platform_info(); #endif #endif /* end of protection macro */ +/** +* @} End of "addtogroup common_platform_info". +*/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xpseudo_asm.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xpseudo_asm.h similarity index 74% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xpseudo_asm.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xpseudo_asm.h index 29862f251..48e180ef9 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xpseudo_asm.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xpseudo_asm.h @@ -34,7 +34,20 @@ * * @file xpseudo_asm.h * -* This header file contains macros for using inline assembler code. +* @addtogroup a53_64_specific Cortex A53 64bit Processor Specific Include Files +* +* The xpseudo_asm.h includes xreg_cortexa53.h and xpseudo_asm_gcc.h. +* The xreg_cortexa53.h file contains definitions for inline assembler code. +* It provides inline definitions for Cortex A53 GPRs, SPRs and floating point +* registers. +* +* The xpseudo_asm_gcc.h contains the definitions for the most often used inline +* assembler instructions, available as macros. These can be very useful for +* tasks such as setting or getting special purpose registers, synchronization, +* or cache manipulation etc. These inline assembler instructions can be used +* from drivers and user applications written in C. +* +* @{ * *
 * MODIFICATION HISTORY:
@@ -51,3 +64,6 @@
 #include "xpseudo_asm_gcc.h"
 
 #endif /* XPSEUDO_ASM_H */
+/**
+* @} End of "addtogroup a53_64_specific".
+*/
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xpseudo_asm_gcc.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xpseudo_asm_gcc.h
similarity index 97%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xpseudo_asm_gcc.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xpseudo_asm_gcc.h
index b475c90e7..1b6726394 100644
--- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xpseudo_asm_gcc.h
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xpseudo_asm_gcc.h
@@ -71,7 +71,7 @@ extern "C" {
 
 #if defined (__aarch64__)
 /* pseudo assembler instructions */
-#define mfcpsr()	({u32 rval; \
+#define mfcpsr()	({u32 rval = 0U; \
 			   asm volatile("mrs %0,  DAIF" : "=r" (rval));\
 			  rval;\
 			 })
@@ -123,7 +123,7 @@ extern "C" {
 #else
 
 /* pseudo assembler instructions */
-#define mfcpsr()	({u32 rval; \
+#define mfcpsr()	({u32 rval = 0U; \
 			  __asm__ __volatile__(\
 			    "mrs	%0, cpsr\n"\
 			    : "=r" (rval)\
@@ -215,7 +215,7 @@ extern "C" {
 #define mtcptlbi(reg)	__asm__ __volatile__("tlbi " #reg)
 #define mtcpat(reg,val)	__asm__ __volatile__("at " #reg ",%0"  : : "r" (val))
 /* CP15 operations */
-#define mfcp(reg)	({u64 rval;\
+#define mfcp(reg)	({u64 rval = 0U;\
 			__asm__ __volatile__("mrs	%0, " #reg : "=r" (rval));\
 			rval;\
 			})
@@ -229,7 +229,7 @@ extern "C" {
 			 : : "r" (v)\
 			);
 
-#define mfcp(rn)	({u32 rval; \
+#define mfcp(rn)	({u32 rval = 0U; \
 			 __asm__ __volatile__(\
 			   "mrc " rn "\n"\
 			   : "=r" (rval)\
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xreg_cortexa53.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xreg_cortexa53.h
similarity index 100%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xreg_cortexa53.h
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xreg_cortexa53.h
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xstatus.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xstatus.h
new file mode 100644
index 000000000..993747588
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xstatus.h
@@ -0,0 +1,535 @@
+/******************************************************************************
+*
+* Copyright (C) 2002 - 2015 Xilinx, Inc. All rights reserved.
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* Use of the Software is limited solely to applications:
+* (a) running on a Xilinx device, or
+* (b) that interact with a Xilinx device through a bus or interconnect.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+* XILINX  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+* SOFTWARE.
+*
+* Except as contained in this notice, the name of the Xilinx shall not be used
+* in advertising or otherwise to promote the sale, use or other dealings in
+* this Software without prior written authorization from Xilinx.
+*
+******************************************************************************/
+/*****************************************************************************/
+/**
+*
+* @file xstatus.h
+*
+* @addtogroup common_status_codes Xilinx® software status codes
+*
+* The xstatus.h file contains the Xilinx® software status codes.These codes are
+* used throughout the Xilinx device drivers.
+*
+* @{
+******************************************************************************/
+
+#ifndef XSTATUS_H		/* prevent circular inclusions */
+#define XSTATUS_H		/* by using protection macros */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************** Include Files *********************************/
+
+#include "xil_types.h"
+#include "xil_assert.h"
+
+/************************** Constant Definitions *****************************/
+
+/*********************** Common statuses 0 - 500 *****************************/
+/**
+@name Common Status Codes for All Device Drivers
+@{
+*/
+#define XST_SUCCESS                     0L
+#define XST_FAILURE                     1L
+#define XST_DEVICE_NOT_FOUND            2L
+#define XST_DEVICE_BLOCK_NOT_FOUND      3L
+#define XST_INVALID_VERSION             4L
+#define XST_DEVICE_IS_STARTED           5L
+#define XST_DEVICE_IS_STOPPED           6L
+#define XST_FIFO_ERROR                  7L	/*!< An error occurred during an
+						   operation with a FIFO such as
+						   an underrun or overrun, this
+						   error requires the device to
+						   be reset */
+#define XST_RESET_ERROR                 8L	/*!< An error occurred which requires
+						   the device to be reset */
+#define XST_DMA_ERROR                   9L	/*!< A DMA error occurred, this error
+						   typically requires the device
+						   using the DMA to be reset */
+#define XST_NOT_POLLED                  10L	/*!< The device is not configured for
+						   polled mode operation */
+#define XST_FIFO_NO_ROOM                11L	/*!< A FIFO did not have room to put
+						   the specified data into */
+#define XST_BUFFER_TOO_SMALL            12L	/*!< The buffer is not large enough
+						   to hold the expected data */
+#define XST_NO_DATA                     13L	/*!< There was no data available */
+#define XST_REGISTER_ERROR              14L	/*!< A register did not contain the
+						   expected value */
+#define XST_INVALID_PARAM               15L	/*!< An invalid parameter was passed
+						   into the function */
+#define XST_NOT_SGDMA                   16L	/*!< The device is not configured for
+						   scatter-gather DMA operation */
+#define XST_LOOPBACK_ERROR              17L	/*!< A loopback test failed */
+#define XST_NO_CALLBACK                 18L	/*!< A callback has not yet been
+						   registered */
+#define XST_NO_FEATURE                  19L	/*!< Device is not configured with
+						   the requested feature */
+#define XST_NOT_INTERRUPT               20L	/*!< Device is not configured for
+						   interrupt mode operation */
+#define XST_DEVICE_BUSY                 21L	/*!< Device is busy */
+#define XST_ERROR_COUNT_MAX             22L	/*!< The error counters of a device
+						   have maxed out */
+#define XST_IS_STARTED                  23L	/*!< Used when part of device is
+						   already started i.e.
+						   sub channel */
+#define XST_IS_STOPPED                  24L	/*!< Used when part of device is
+						   already stopped i.e.
+						   sub channel */
+#define XST_DATA_LOST                   26L	/*!< Driver defined error */
+#define XST_RECV_ERROR                  27L	/*!< Generic receive error */
+#define XST_SEND_ERROR                  28L	/*!< Generic transmit error */
+#define XST_NOT_ENABLED                 29L	/*!< A requested service is not
+						   available because it has not
+						   been enabled */
+/** @} */
+/***************** Utility Component statuses 401 - 500  *********************/
+/**
+@name Utility Component Status Codes 401 - 500
+@{
+*/
+#define XST_MEMTEST_FAILED              401L	/*!< Memory test failed */
+
+/** @} */
+/***************** Common Components statuses 501 - 1000 *********************/
+/**
+@name Packet Fifo Status Codes 501 - 510
+@{
+*/
+/********************* Packet Fifo statuses 501 - 510 ************************/
+
+#define XST_PFIFO_LACK_OF_DATA          501L	/*!< Not enough data in FIFO   */
+#define XST_PFIFO_NO_ROOM               502L	/*!< Not enough room in FIFO   */
+#define XST_PFIFO_BAD_REG_VALUE         503L	/*!< Self test, a register value
+						   was invalid after reset */
+#define XST_PFIFO_ERROR                 504L	/*!< Generic packet FIFO error */
+#define XST_PFIFO_DEADLOCK              505L	/*!< Packet FIFO is reporting
+						 * empty and full simultaneously
+						 */
+/** @} */
+/**
+@name DMA Status Codes 511 - 530
+@{
+*/
+/************************** DMA statuses 511 - 530 ***************************/
+
+#define XST_DMA_TRANSFER_ERROR          511L	/*!< Self test, DMA transfer
+						   failed */
+#define XST_DMA_RESET_REGISTER_ERROR    512L	/*!< Self test, a register value
+						   was invalid after reset */
+#define XST_DMA_SG_LIST_EMPTY           513L	/*!< Scatter gather list contains
+						   no buffer descriptors ready
+						   to be processed */
+#define XST_DMA_SG_IS_STARTED           514L	/*!< Scatter gather not stopped */
+#define XST_DMA_SG_IS_STOPPED           515L	/*!< Scatter gather not running */
+#define XST_DMA_SG_LIST_FULL            517L	/*!< All the buffer desciptors of
+						   the scatter gather list are
+						   being used */
+#define XST_DMA_SG_BD_LOCKED            518L	/*!< The scatter gather buffer
+						   descriptor which is to be
+						   copied over in the scatter
+						   list is locked */
+#define XST_DMA_SG_NOTHING_TO_COMMIT    519L	/*!< No buffer descriptors have been
+						   put into the scatter gather
+						   list to be commited */
+#define XST_DMA_SG_COUNT_EXCEEDED       521L	/*!< The packet count threshold
+						   specified was larger than the
+						   total # of buffer descriptors
+						   in the scatter gather list */
+#define XST_DMA_SG_LIST_EXISTS          522L	/*!< The scatter gather list has
+						   already been created */
+#define XST_DMA_SG_NO_LIST              523L	/*!< No scatter gather list has
+						   been created */
+#define XST_DMA_SG_BD_NOT_COMMITTED     524L	/*!< The buffer descriptor which was
+						   being started was not committed
+						   to the list */
+#define XST_DMA_SG_NO_DATA              525L	/*!< The buffer descriptor to start
+						   has already been used by the
+						   hardware so it can't be reused
+						 */
+#define XST_DMA_SG_LIST_ERROR           526L	/*!< General purpose list access
+						   error */
+#define XST_DMA_BD_ERROR                527L	/*!< General buffer descriptor
+						   error */
+/** @} */
+/**
+@name IPIF Status Codes Codes 531 - 550
+@{
+*/
+/************************** IPIF statuses 531 - 550 ***************************/
+
+#define XST_IPIF_REG_WIDTH_ERROR        531L	/*!< An invalid register width
+						   was passed into the function */
+#define XST_IPIF_RESET_REGISTER_ERROR   532L	/*!< The value of a register at
+						   reset was not valid */
+#define XST_IPIF_DEVICE_STATUS_ERROR    533L	/*!< A write to the device interrupt
+						   status register did not read
+						   back correctly */
+#define XST_IPIF_DEVICE_ACK_ERROR       534L	/*!< The device interrupt status
+						   register did not reset when
+						   acked */
+#define XST_IPIF_DEVICE_ENABLE_ERROR    535L	/*!< The device interrupt enable
+						   register was not updated when
+						   other registers changed */
+#define XST_IPIF_IP_STATUS_ERROR        536L	/*!< A write to the IP interrupt
+						   status register did not read
+						   back correctly */
+#define XST_IPIF_IP_ACK_ERROR           537L	/*!< The IP interrupt status register
+						   did not reset when acked */
+#define XST_IPIF_IP_ENABLE_ERROR        538L	/*!< IP interrupt enable register was
+						   not updated correctly when other
+						   registers changed */
+#define XST_IPIF_DEVICE_PENDING_ERROR   539L	/*!< The device interrupt pending
+						   register did not indicate the
+						   expected value */
+#define XST_IPIF_DEVICE_ID_ERROR        540L	/*!< The device interrupt ID register
+						   did not indicate the expected
+						   value */
+#define XST_IPIF_ERROR                  541L	/*!< Generic ipif error */
+/** @} */
+
+/****************** Device specific statuses 1001 - 4095 *********************/
+/**
+@name Ethernet Status Codes 1001 - 1050
+@{
+*/
+/********************* Ethernet statuses 1001 - 1050 *************************/
+
+#define XST_EMAC_MEMORY_SIZE_ERROR  1001L	/*!< Memory space is not big enough
+						 * to hold the minimum number of
+						 * buffers or descriptors */
+#define XST_EMAC_MEMORY_ALLOC_ERROR 1002L	/*!< Memory allocation failed */
+#define XST_EMAC_MII_READ_ERROR     1003L	/*!< MII read error */
+#define XST_EMAC_MII_BUSY           1004L	/*!< An MII operation is in progress */
+#define XST_EMAC_OUT_OF_BUFFERS     1005L	/*!< Driver is out of buffers */
+#define XST_EMAC_PARSE_ERROR        1006L	/*!< Invalid driver init string */
+#define XST_EMAC_COLLISION_ERROR    1007L	/*!< Excess deferral or late
+						 * collision on polled send */
+/** @} */
+/**
+@name UART Status Codes 1051 - 1075
+@{
+*/
+/*********************** UART statuses 1051 - 1075 ***************************/
+#define XST_UART
+
+#define XST_UART_INIT_ERROR         1051L
+#define XST_UART_START_ERROR        1052L
+#define XST_UART_CONFIG_ERROR       1053L
+#define XST_UART_TEST_FAIL          1054L
+#define XST_UART_BAUD_ERROR         1055L
+#define XST_UART_BAUD_RANGE         1056L
+
+/** @} */
+/**
+@name IIC Status Codes 1076 - 1100
+@{
+*/
+/************************ IIC statuses 1076 - 1100 ***************************/
+
+#define XST_IIC_SELFTEST_FAILED         1076	/*!< self test failed            */
+#define XST_IIC_BUS_BUSY                1077	/*!< bus found busy              */
+#define XST_IIC_GENERAL_CALL_ADDRESS    1078	/*!< mastersend attempted with   */
+					     /* general call address        */
+#define XST_IIC_STAND_REG_RESET_ERROR   1079	/*!< A non parameterizable reg   */
+					     /* value after reset not valid */
+#define XST_IIC_TX_FIFO_REG_RESET_ERROR 1080	/*!< Tx fifo included in design  */
+					     /* value after reset not valid */
+#define XST_IIC_RX_FIFO_REG_RESET_ERROR 1081	/*!< Rx fifo included in design  */
+					     /* value after reset not valid */
+#define XST_IIC_TBA_REG_RESET_ERROR     1082	/*!< 10 bit addr incl in design  */
+					     /* value after reset not valid */
+#define XST_IIC_CR_READBACK_ERROR       1083	/*!< Read of the control register */
+					     /* didn't return value written */
+#define XST_IIC_DTR_READBACK_ERROR      1084	/*!< Read of the data Tx reg     */
+					     /* didn't return value written */
+#define XST_IIC_DRR_READBACK_ERROR      1085	/*!< Read of the data Receive reg */
+					     /* didn't return value written */
+#define XST_IIC_ADR_READBACK_ERROR      1086	/*!< Read of the data Tx reg     */
+					     /* didn't return value written */
+#define XST_IIC_TBA_READBACK_ERROR      1087	/*!< Read of the 10 bit addr reg */
+					     /* didn't return written value */
+#define XST_IIC_NOT_SLAVE               1088	/*!< The device isn't a slave    */
+/** @} */
+/**
+@name ATMC Status Codes 1101 - 1125
+@{
+*/
+/*********************** ATMC statuses 1101 - 1125 ***************************/
+
+#define XST_ATMC_ERROR_COUNT_MAX    1101L	/*!< the error counters in the ATM
+						   controller hit the max value
+						   which requires the statistics
+						   to be cleared */
+/** @} */
+/**
+@name Flash Status Codes 1126 - 1150
+@{
+*/
+/*********************** Flash statuses 1126 - 1150 **************************/
+
+#define XST_FLASH_BUSY                1126L	/*!< Flash is erasing or programming
+						 */
+#define XST_FLASH_READY               1127L	/*!< Flash is ready for commands */
+#define XST_FLASH_ERROR               1128L	/*!< Flash had detected an internal
+						   error. Use XFlash_DeviceControl
+						   to retrieve device specific codes
+						 */
+#define XST_FLASH_ERASE_SUSPENDED     1129L	/*!< Flash is in suspended erase state
+						 */
+#define XST_FLASH_WRITE_SUSPENDED     1130L	/*!< Flash is in suspended write state
+						 */
+#define XST_FLASH_PART_NOT_SUPPORTED  1131L	/*!< Flash type not supported by
+						   driver */
+#define XST_FLASH_NOT_SUPPORTED       1132L	/*!< Operation not supported */
+#define XST_FLASH_TOO_MANY_REGIONS    1133L	/*!< Too many erase regions */
+#define XST_FLASH_TIMEOUT_ERROR       1134L	/*!< Programming or erase operation
+						   aborted due to a timeout */
+#define XST_FLASH_ADDRESS_ERROR       1135L	/*!< Accessed flash outside its
+						   addressible range */
+#define XST_FLASH_ALIGNMENT_ERROR     1136L	/*!< Write alignment error */
+#define XST_FLASH_BLOCKING_CALL_ERROR 1137L	/*!< Couldn't return immediately from
+						   write/erase function with
+						   XFL_NON_BLOCKING_WRITE/ERASE
+						   option cleared */
+#define XST_FLASH_CFI_QUERY_ERROR     1138L	/*!< Failed to query the device */
+/** @} */
+/**
+@name SPI Status Codes 1151 - 1175
+@{
+*/
+/*********************** SPI statuses 1151 - 1175 ****************************/
+
+#define XST_SPI_MODE_FAULT          1151	/*!< master was selected as slave */
+#define XST_SPI_TRANSFER_DONE       1152	/*!< data transfer is complete */
+#define XST_SPI_TRANSMIT_UNDERRUN   1153	/*!< slave underruns transmit register */
+#define XST_SPI_RECEIVE_OVERRUN     1154	/*!< device overruns receive register */
+#define XST_SPI_NO_SLAVE            1155	/*!< no slave has been selected yet */
+#define XST_SPI_TOO_MANY_SLAVES     1156	/*!< more than one slave is being
+						 * selected */
+#define XST_SPI_NOT_MASTER          1157	/*!< operation is valid only as master */
+#define XST_SPI_SLAVE_ONLY          1158	/*!< device is configured as slave-only
+						 */
+#define XST_SPI_SLAVE_MODE_FAULT    1159	/*!< slave was selected while disabled */
+#define XST_SPI_SLAVE_MODE          1160	/*!< device has been addressed as slave */
+#define XST_SPI_RECEIVE_NOT_EMPTY   1161	/*!< device received data in slave mode */
+
+#define XST_SPI_COMMAND_ERROR       1162	/*!< unrecognised command - qspi only */
+#define XST_SPI_POLL_DONE           1163        /*!< controller completed polling the
+						   device for status */
+/** @} */
+/**
+@name OPB Arbiter Status Codes 1176 - 1200
+@{
+*/
+/********************** OPB Arbiter statuses 1176 - 1200 *********************/
+
+#define XST_OPBARB_INVALID_PRIORITY  1176	/*!< the priority registers have either
+						 * one master assigned to two or more
+						 * priorities, or one master not
+						 * assigned to any priority
+						 */
+#define XST_OPBARB_NOT_SUSPENDED     1177	/*!< an attempt was made to modify the
+						 * priority levels without first
+						 * suspending the use of priority
+						 * levels
+						 */
+#define XST_OPBARB_PARK_NOT_ENABLED  1178	/*!< bus parking by id was enabled but
+						 * bus parking was not enabled
+						 */
+#define XST_OPBARB_NOT_FIXED_PRIORITY 1179	/*!< the arbiter must be in fixed
+						 * priority mode to allow the
+						 * priorities to be changed
+						 */
+/** @} */
+/**
+@name INTC Status Codes 1201 - 1225
+@{
+*/
+/************************ Intc statuses 1201 - 1225 **************************/
+
+#define XST_INTC_FAIL_SELFTEST      1201	/*!< self test failed */
+#define XST_INTC_CONNECT_ERROR      1202	/*!< interrupt already in use */
+/** @} */
+/**
+@name TmrCtr Status Codes 1226 - 1250
+@{
+*/
+/********************** TmrCtr statuses 1226 - 1250 **************************/
+
+#define XST_TMRCTR_TIMER_FAILED     1226	/*!< self test failed */
+/** @} */
+/**
+@name WdtTb Status Codes 1251 - 1275
+@{
+*/
+/********************** WdtTb statuses 1251 - 1275 ***************************/
+
+#define XST_WDTTB_TIMER_FAILED      1251L
+/** @} */
+/**
+@name PlbArb status Codes 1276 - 1300
+@{
+*/
+/********************** PlbArb statuses 1276 - 1300 **************************/
+
+#define XST_PLBARB_FAIL_SELFTEST    1276L
+/** @} */
+/**
+@name Plb2Opb Status Codes 1301 - 1325
+@{
+*/
+/********************** Plb2Opb statuses 1301 - 1325 *************************/
+
+#define XST_PLB2OPB_FAIL_SELFTEST   1301L
+/** @} */
+/**
+@name Opb2Plb Status 1326 - 1350
+@{
+*/
+/********************** Opb2Plb statuses 1326 - 1350 *************************/
+
+#define XST_OPB2PLB_FAIL_SELFTEST   1326L
+/** @} */
+/**
+@name SysAce Status Codes 1351 - 1360
+@{
+*/
+/********************** SysAce statuses 1351 - 1360 **************************/
+
+#define XST_SYSACE_NO_LOCK          1351L	/*!< No MPU lock has been granted */
+/** @} */
+/**
+@name PCI Bridge Status Codes 1361 - 1375
+@{
+*/
+/********************** PCI Bridge statuses 1361 - 1375 **********************/
+
+#define XST_PCI_INVALID_ADDRESS     1361L
+/** @} */
+/**
+@name FlexRay Constants 1400 - 1409
+@{
+*/
+/********************** FlexRay constants 1400 - 1409 *************************/
+
+#define XST_FR_TX_ERROR			1400
+#define XST_FR_TX_BUSY			1401
+#define XST_FR_BUF_LOCKED		1402
+#define XST_FR_NO_BUF			1403
+/** @} */
+/**
+@name USB constants 1410 - 1420
+@{
+*/
+/****************** USB constants 1410 - 1420  *******************************/
+
+#define XST_USB_ALREADY_CONFIGURED	1410
+#define XST_USB_BUF_ALIGN_ERROR		1411
+#define XST_USB_NO_DESC_AVAILABLE	1412
+#define XST_USB_BUF_TOO_BIG		1413
+#define XST_USB_NO_BUF			1414
+/** @} */
+/**
+@name HWICAP constants 1421 - 1429
+@{
+*/
+/****************** HWICAP constants 1421 - 1429  *****************************/
+
+#define XST_HWICAP_WRITE_DONE		1421
+
+/** @} */
+/**
+@name AXI VDMA constants 1430 - 1440
+@{
+*/
+/****************** AXI VDMA constants 1430 - 1440  *****************************/
+
+#define XST_VDMA_MISMATCH_ERROR		1430
+/** @} */
+/**
+@name NAND Flash Status Codes 1441 - 1459
+@{
+*/
+/*********************** NAND Flash statuses 1441 - 1459  *********************/
+
+#define XST_NAND_BUSY			1441L	/*!< Flash is erasing or
+						 * programming
+						 */
+#define XST_NAND_READY			1442L	/*!< Flash is ready for commands
+						 */
+#define XST_NAND_ERROR			1443L	/*!< Flash had detected an
+						 * internal error.
+						 */
+#define XST_NAND_PART_NOT_SUPPORTED	1444L	/*!< Flash type not supported by
+						 * driver
+						 */
+#define XST_NAND_OPT_NOT_SUPPORTED	1445L	/*!< Operation not supported
+						 */
+#define XST_NAND_TIMEOUT_ERROR		1446L	/*!< Programming or erase
+						 * operation aborted due to a
+						 * timeout
+						 */
+#define XST_NAND_ADDRESS_ERROR		1447L	/*!< Accessed flash outside its
+						 * addressible range
+						 */
+#define XST_NAND_ALIGNMENT_ERROR	1448L	/*!< Write alignment error
+						 */
+#define XST_NAND_PARAM_PAGE_ERROR	1449L	/*!< Failed to read parameter
+						 * page of the device
+						 */
+#define XST_NAND_CACHE_ERROR		1450L	/*!< Flash page buffer error
+						 */
+
+#define XST_NAND_WRITE_PROTECTED	1451L	/*!< Flash is write protected
+						 */
+/** @} */
+
+/**************************** Type Definitions *******************************/
+
+typedef s32 XStatus;
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+
+/************************** Function Prototypes ******************************/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* end of protection macro */
+/**
+* @} End of "addtogroup common_status_codes".
+*/
diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xtime_l.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xtime_l.c
similarity index 70%
rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xtime_l.c
rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xtime_l.c
index e9998969c..b04adefd0 100644
--- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xtime_l.c
+++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xtime_l.c
@@ -1,6 +1,6 @@
 /******************************************************************************
 *
-* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved.
+* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
@@ -45,6 +45,7 @@
 * 5.05	pkp	   04/13/16 Added XTime_StartTimer API to start the global timer
 *						counter if it is disabled. Also XTime_GetTime calls
 *						this API to ensure the global timer counter is enabled
+* 6.02  pkp	   01/22/17 Added support for EL1 non-secure
 * 
* * @note None. @@ -69,54 +70,64 @@ /************************** Function Prototypes ******************************/ -/**************************************************************************** -* -* Start the Global Timer Counter. +/****************************************************************************/ +/** +* @brief Start the 64-bit physical timer counter. * * @param None. * * @return None. * +* @note The timer is initialized only if it is disabled. If the timer is +* already running this function does not perform any operation. This +* API is effective only if BSP is built for EL3. For EL1 Non-secure, +* it simply exits. +* +****************************************************************************/ +void XTime_StartTimer(void) +{ + if (EL3 == 1){ + /* Enable the global timer counter only if it is disabled */ + if(((Xil_In32(XIOU_SCNTRS_BASEADDR + XIOU_SCNTRS_CNT_CNTRL_REG_OFFSET)) + & XIOU_SCNTRS_CNT_CNTRL_REG_EN_MASK) != + XIOU_SCNTRS_CNT_CNTRL_REG_EN){ + /*write frequency to System Time Stamp Generator Register*/ + Xil_Out32((XIOU_SCNTRS_BASEADDR + XIOU_SCNTRS_FREQ_REG_OFFSET), + XIOU_SCNTRS_FREQ); + /*Enable the timer/counter*/ + Xil_Out32((XIOU_SCNTRS_BASEADDR + XIOU_SCNTRS_CNT_CNTRL_REG_OFFSET) + ,XIOU_SCNTRS_CNT_CNTRL_REG_EN); + } + } +} +/****************************************************************************/ +/** +* @brief Timer of A53 runs continuously and the time can not be set as +* desired. This API doesn't contain anything. It is defined to have +* uniformity across platforms. +* +* @param Xtime_Global: 64bit value to be written to the physical timer +* counter register. Since API does not do anything, the value is +* not utilized. +* +* @return None. +* * @note None. * ****************************************************************************/ -void XTime_StartTimer(void) -{ - /* Enable the global timer counter only if it is disabled */ - if(((Xil_In32(XIOU_SCNTRS_BASEADDR + XIOU_SCNTRS_CNT_CNTRL_REG_OFFSET)) - & XIOU_SCNTRS_CNT_CNTRL_REG_EN_MASK) != - XIOU_SCNTRS_CNT_CNTRL_REG_EN){ - /*write frequency to System Time Stamp Generator Register*/ - Xil_Out32((XIOU_SCNTRS_BASEADDR + XIOU_SCNTRS_FREQ_REG_OFFSET), - XIOU_SCNTRS_FREQ); - /*Enable the timer/counter*/ - Xil_Out32((XIOU_SCNTRS_BASEADDR + XIOU_SCNTRS_CNT_CNTRL_REG_OFFSET), - XIOU_SCNTRS_CNT_CNTRL_REG_EN); - } -} -/**************************************************************************** -* -* Set the time in the Global Timer Counter Register. -* -* @param Value to be written to the Global Timer Counter Register. -* -* @return None. -* -* @note In multiprocessor environment reference time will reset/lost for -* all processors, when this function called by any one processor. -* -****************************************************************************/ void XTime_SetTime(XTime Xtime_Global) { + (void) Xtime_Global; /*As the generic timer of A53 runs constantly time can not be set as desired so the API is left unimplemented*/ } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Get the time from the physical timer counter register. * -* Get the time from the Global Timer Counter Register. -* -* @param Pointer to the location to be updated with the time. +* @param Xtime_Global: Pointer to the 64-bit location to be updated with the +* current value of physical timer counter register. * * @return None. * @@ -125,8 +136,9 @@ so the API is left unimplemented*/ ****************************************************************************/ void XTime_GetTime(XTime *Xtime_Global) { + if (EL3 == 1) /* Start global timer counter, it will only be enabled if it is disabled */ - XTime_StartTimer(); + XTime_StartTimer(); *Xtime_Global = mfcp(CNTPCT_EL0); } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xtime_l.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xtime_l.h similarity index 76% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xtime_l.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xtime_l.h index 489be3559..a36d7fabc 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xtime_l.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_6/src/xtime_l.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,15 +33,21 @@ /** * @file xtime_l.h * +* @addtogroup a53_64_time_apis Cortex A53 64bit Mode Time Functions +* xtime_l.h provides access to the 64-bit physical timer counter. +* +* @{ +* *
 * MODIFICATION HISTORY:
 *
 * Ver   Who    Date     Changes
 * ----- ------ -------- ---------------------------------------------------
 * 5.00 	pkp	   05/29/14 First release
+* 6.6   srm    10/23/17 Updated the macros to support user configurable sleep
+*		        implementation
 * 
* -* @note None. * ******************************************************************************/ @@ -65,12 +71,21 @@ typedef u64 XTime; /************************** Constant Definitions *****************************/ -#define COUNTS_PER_SECOND XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ -#define XIOU_SCNTRS_BASEADDR 0xFF260000U +#if defined (SLEEP_TIMER_BASEADDR) +#define COUNTS_PER_SECOND SLEEP_TIMER_FREQUENCY +#else +#define COUNTS_PER_SECOND XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ +#endif + +#if defined (XSLEEP_TIMER_IS_DEFAULT_TIMER) +#pragma message ("For the sleep routines, Global timer is being used") +#endif + +#define XIOU_SCNTRS_BASEADDR 0xFF260000U #define XIOU_SCNTRS_CNT_CNTRL_REG_OFFSET 0x00000000U -#define XIOU_SCNTRS_FREQ_REG_OFFSET 0x00000020U -#define XIOU_SCNTRS_FREQ XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ -#define XIOU_SCNTRS_CNT_CNTRL_REG_EN 0x00000001U +#define XIOU_SCNTRS_FREQ_REG_OFFSET 0x00000020U +#define XIOU_SCNTRS_FREQ XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ +#define XIOU_SCNTRS_CNT_CNTRL_REG_EN 0x00000001U #define XIOU_SCNTRS_CNT_CNTRL_REG_EN_MASK 0x00000001U /************************** Variable Definitions *****************************/ @@ -85,3 +100,6 @@ void XTime_GetTime(XTime *Xtime_Global); #endif /* __cplusplus */ #endif /* XTIME_H */ +/** +* @} End of "addtogroup a53_64_time_apis". +*/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.c similarity index 96% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.c index b047a4599..4c2545c9e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -61,6 +61,9 @@ * XSysMonPsu_SetSeqAcqTime * and XSysMonPsu_GetSeqAcqTime to provide support for * set/get 64 bit value. +* 2.1 sk 03/03/16 Check for PL reset before doing PL Sysmon reset. +* 2.3 mn 12/13/17 Correct the AMS block channel numbers +* mn 03/08/18 Update Clock Divisor to the proper value * *
* @@ -109,6 +112,7 @@ s32 XSysMonPsu_CfgInitialize(XSysMonPsu *InstancePtr, XSysMonPsu_Config *ConfigP { u32 PsSysmonControlStatus; u32 PlSysmonControlStatus; + u32 IntrStatus; /* Assert the input arguments. */ Xil_AssertNonvoid(InstancePtr != NULL); @@ -117,11 +121,14 @@ s32 XSysMonPsu_CfgInitialize(XSysMonPsu *InstancePtr, XSysMonPsu_Config *ConfigP /* Set the values read from the device config and the base address. */ InstancePtr->Config.DeviceId = ConfigPtr->DeviceId; InstancePtr->Config.BaseAddress = EffectiveAddr; - + InstancePtr->Config.InputClockMHz = ConfigPtr->InputClockMHz; /* Set all handlers to stub values, let user configure this data later. */ InstancePtr->Handler = XSysMonPsu_StubHandler; + XSysMonPsu_UpdateAdcClkDivisor(InstancePtr, XSYSMON_PS); + XSysMonPsu_UpdateAdcClkDivisor(InstancePtr, XSYSMON_PL); + /* Reset the device such that it is in a known state. */ XSysMonPsu_Reset(InstancePtr); @@ -147,6 +154,10 @@ s32 XSysMonPsu_CfgInitialize(XSysMonPsu *InstancePtr, XSysMonPsu_Config *ConfigP /* Indicate the instance is now ready to use, initialized without error */ InstancePtr->IsReady = XIL_COMPONENT_IS_READY; + /* Clear any bits set in the Interrupt Status Register. */ + IntrStatus = XSysMonPsu_IntrGetStatus(InstancePtr); + XSysMonPsu_IntrClear(InstancePtr, IntrStatus); + return XST_SUCCESS; } @@ -166,7 +177,7 @@ s32 XSysMonPsu_CfgInitialize(XSysMonPsu *InstancePtr, XSysMonPsu_Config *ConfigP *****************************************************************************/ static void XSysMonPsu_StubHandler(void *CallBackRef) { - (void *) CallBackRef; + (void) CallBackRef; /* Assert occurs always since this is a stub and should never be called */ Xil_AssertVoidAlways(); @@ -189,6 +200,7 @@ static void XSysMonPsu_StubHandler(void *CallBackRef) ******************************************************************************/ void XSysMonPsu_Reset(XSysMonPsu *InstancePtr) { + u8 IsPlReset; /* Assert the arguments. */ Xil_AssertVoid(InstancePtr != NULL); @@ -196,9 +208,14 @@ void XSysMonPsu_Reset(XSysMonPsu *InstancePtr) XSysmonPsu_WriteReg(InstancePtr->Config.BaseAddress + XPS_BA_OFFSET + XSYSMONPSU_VP_VN_OFFSET, XSYSMONPSU_VP_VN_MASK); - /* RESET the PL SYSMON */ - XSysmonPsu_WriteReg(InstancePtr->Config.BaseAddress + XPL_BA_OFFSET + - XSYSMONPSU_VP_VN_OFFSET, XSYSMONPSU_VP_VN_MASK); + /* Check for PL is under reset or not */ + IsPlReset = (XSysmonPsu_ReadReg(CSU_BASEADDR + PCAP_STATUS_OFFSET) & + PL_CFG_RESET_MASK) >> PL_CFG_RESET_SHIFT; + if (IsPlReset != 0U) { + /* RESET the PL SYSMON */ + XSysmonPsu_WriteReg(InstancePtr->Config.BaseAddress + XPL_BA_OFFSET + + XSYSMONPSU_VP_VN_OFFSET, XSYSMONPSU_VP_VN_MASK); + } } @@ -576,7 +593,9 @@ s32 XSysMonPsu_SetSingleChParams(XSysMonPsu *InstancePtr, u8 Channel, ((Channel >= XSM_CH_SUPPLY_CALIB) && (Channel <= XSM_CH_GAINERR_CALIB)) || ((Channel >= XSM_CH_SUPPLY4) && - (Channel <= XSM_CH_TEMP_REMTE))); + (Channel <= XSM_CH_TEMP_REMTE)) || + ((Channel >= XSM_CH_VCC_PSLL0) && + (Channel <= XSM_CH_RESERVE1))); Xil_AssertNonvoid((IncreaseAcqCycles == TRUE) || (IncreaseAcqCycles == FALSE)); Xil_AssertNonvoid((IsEventMode == TRUE) || (IsEventMode == FALSE)); @@ -1163,6 +1182,60 @@ u8 XSysMonPsu_GetAdcClkDivisor(XSysMonPsu *InstancePtr, u32 SysmonBlk) return (u8) (Divisor >> XSYSMONPSU_CFG_REG2_CLK_DVDR_SHIFT); } +u8 XSysMonPsu_UpdateAdcClkDivisor(XSysMonPsu *InstancePtr, u32 SysmonBlk) +{ + u16 Divisor; + u32 EffectiveBaseAddress; + u32 RegValue; + u32 InputFreq = InstancePtr->Config.InputClockMHz; + + /* Assert the arguments. */ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((SysmonBlk == XSYSMON_PS)||(SysmonBlk == XSYSMON_PL)); + + /* Calculate the effective baseaddress based on the Sysmon instance. */ + EffectiveBaseAddress = + XSysMonPsu_GetEffBaseAddress(InstancePtr->Config.BaseAddress, + SysmonBlk); + + /* Read the divisor value from the Configuration Register 2. */ + Divisor = (u16) XSysmonPsu_ReadReg(EffectiveBaseAddress + + XSYSMONPSU_CFG_REG2_OFFSET); + Divisor = Divisor >> XSYSMONPSU_CFG_REG2_CLK_DVDR_SHIFT; + + while (1) { + if (!Divisor) { + if ((SysmonBlk == XSYSMON_PS) && + (InputFreq/8 >= 1) && (InputFreq/8 <= 26)) { + break; + } else if ((SysmonBlk == XSYSMON_PL) && + (InputFreq/2 >= 1) && (InputFreq/2 <= 26)) { + break; + } + } else if ((InputFreq/Divisor >= 1) && + (InputFreq/Divisor <= 26)) { + break; + } else { + Divisor += 1; + } + } + + /* + * Read the Configuration Register 2 and the clear the clock divisor + * bits. + */ + RegValue = XSysmonPsu_ReadReg(EffectiveBaseAddress + + XSYSMONPSU_CFG_REG2_OFFSET); + RegValue &= ~(XSYSMONPSU_CFG_REG2_CLK_DVDR_MASK); + + /* Write the divisor value into the Configuration Register 2. */ + RegValue |= ((u32)Divisor << XSYSMONPSU_CFG_REG2_CLK_DVDR_SHIFT) & + XSYSMONPSU_CFG_REG2_CLK_DVDR_MASK; + XSysmonPsu_WriteReg(EffectiveBaseAddress + XSYSMONPSU_CFG_REG2_OFFSET, + RegValue); + + return (u8)Divisor; +} /****************************************************************************/ /** * diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.h similarity index 86% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.h index ba090c5aa..8fcaa19fe 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2016 Xilinx, Inc. All rights reserved. +* Copyright (C) 2016-2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -163,6 +163,21 @@ * set/get 64 bit value. * Added constants XSM_CFR_ALM_SUPPLY*(8-31)_MASKs to * provide support for enabling extra PS alarams. +* 2.1 sk 03/03/16 Check for PL reset before doing PL Sysmon reset. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Modified Comment lines in functions of sysmonpsu +* examples to recognize it as documentation block +* for doxygen generation. +* 2.2 sk 04/14/17 Corrected temperature conversion formulas. +* 2.3 mn 12/11/17 Added missing closing bracket error when C++ is used +* mn 12/12/17 Added Conversion Support for voltages having Range of +* 1 Volt +* mn 12/13/17 Correct the AMS block channel numbers +* ms 12/15/17 Added peripheral test support. +* ms 01/04/18 Provided conditional checks for interrupt example +* in sysmonpsu_header.h +* mn 03/08/18 Update Clock Divisor to the proper value * *
* @@ -211,22 +226,14 @@ extern "C" { #define XSM_CH_SUPPLY10 35U /**< SUPPLY10 PS_MGTRAVTT */ #define XSM_CH_VCCAMS 36U /**< VCCAMS */ #define XSM_CH_TEMP_REMTE 37U /**< Temperature Remote */ -#define XSM_CH_VCC_PSLL0 38U /**< VCC_PSLL0 */ -#define XSM_CH_VCC_PSLL1 39U /**< VCC_PSLL1 */ -#define XSM_CH_VCC_PSLL2 40U /**< VCC_PSLL2 */ -#define XSM_CH_VCC_PSLL3 41U /**< VCC_PSLL3 */ -#define XSM_CH_VCC_PSLL4 42U /**< VCC_PSLL4 */ -#define XSM_CH_VCC_PSBATT 43U /**< VCC_PSBATT */ -#define XSM_CH_VCCINT 44U /**< VCCINT */ -#define XSM_CH_VCCBRAM 45U /**< VCCBRAM */ -#define XSM_CH_VCCAUX 46U /**< VCCAUX */ -#define XSM_CH_VCC_PSDDRPLL 47U /**< VCC_PSDDRPLL */ -#define XSM_CH_DDRPHY_VREF 48U /**< DDRPHY_VREF */ -#define XSM_CH_DDRPHY_AT0 49U /**< DDRPHY_AT0 */ -#define XSM_CH_PSGT_AT0 50U /**< PSGT_AT0 */ -#define XSM_CH_PSGT_AT1 51U /**< PSGT_AT0 */ -#define XSM_CH_RESERVE0 52U /**< PSGT_AT0 */ -#define XSM_CH_RESERVE1 53U /**< PSGT_AT0 */ +#define XSM_CH_VCC_PSLL0 48U /**< VCC_PSLL0 */ +#define XSM_CH_VCC_PSLL3 51U /**< VCC_PSLL3 */ +#define XSM_CH_VCCINT 54U /**< VCCINT */ +#define XSM_CH_VCCBRAM 55U /**< VCCBRAM */ +#define XSM_CH_VCCAUX 56U /**< VCCAUX */ +#define XSM_CH_VCC_PSDDRPLL 57U /**< VCC_PSDDRPLL */ +#define XSM_CH_DDRPHY_VREF 58U /**< DDRPHY_VREF */ +#define XSM_CH_RESERVE1 63U /**< PSGT_AT0 */ /*@}*/ @@ -381,7 +388,8 @@ typedef void (*XSysMonPsu_Handler) (void *CallBackRef); */ typedef struct { u16 DeviceId; /**< Unique ID of device */ - u32 BaseAddress; /**< Register base address */ + u32 BaseAddress; /**< Register base address */ + u16 InputClockMHz; /**< Input clock frequency */ } XSysMonPsu_Config; /** @@ -425,7 +433,7 @@ typedef struct { * *****************************************************************************/ #define XSysMonPsu_RawToTemperature_OnChip(AdcData) \ - ((((float)(AdcData)/65536.0f)/0.00199451786f ) - 273.6777f) + ((((float)(AdcData)/65536.0f)/0.00196342531f ) - 280.2309f) /****************************************************************************/ /** @@ -442,12 +450,30 @@ typedef struct { * *****************************************************************************/ #define XSysMonPsu_RawToTemperature_ExternalRef(AdcData) \ - ((((float)(AdcData)/65536.0f)/0.00198842814f ) - 273.8195f) + ((((float)(AdcData)/65536.0f)/0.00197008621f ) - 279.4266f) /****************************************************************************/ /** * -* This macro converts System Monitor Raw Data to Voltage(volts). +* This macro converts System Monitor Raw Data to Voltage(volts) for VpVn +* supply. +* +* @param AdcData is the System Monitor ADC Raw Data. +* +* @return The Voltage in volts. +* +* @note C-Style signature: +* float XSysMon_VpVnRawToVoltage(u32 AdcData) +* +*****************************************************************************/ +#define XSysMonPsu_VpVnRawToVoltage(AdcData) \ + ((((float)(AdcData))* (1.0f))/65536.0f) + +/****************************************************************************/ +/** +* +* This macro converts System Monitor Raw Data to Voltage(volts) other than +* VCCO_PSIO supply. * * @param AdcData is the System Monitor ADC Raw Data. * @@ -460,6 +486,23 @@ typedef struct { #define XSysMonPsu_RawToVoltage(AdcData) \ ((((float)(AdcData))* (3.0f))/65536.0f) +/****************************************************************************/ +/** +* +* This macro converts System Monitor Raw Data to Voltage(volts) for +* VCCO_PSIO supply. +* +* @param AdcData is the System Monitor ADC Raw Data. +* +* @return The Voltage in volts. +* +* @note C-Style signature: +* float XSysMon_RawToVoltage(u32 AdcData) +* +*****************************************************************************/ +#define XSysMonPsu_VccopsioRawToVoltage(AdcData) \ + ((((float)(AdcData))* (6.0f))/65536.0f) + /****************************************************************************/ /** * @@ -476,7 +519,7 @@ typedef struct { * *****************************************************************************/ #define XSysMonPsu_TemperatureToRaw_OnChip(Temperature) \ - ((s32)(((Temperature) + 273.6777f)*65536.0f*0.00199451786f)) + ((s32)(((Temperature) + 280.2309f)*65536.0f*0.00196342531f)) /****************************************************************************/ /** @@ -494,12 +537,13 @@ typedef struct { * *****************************************************************************/ #define XSysMonPsu_TemperatureToRaw_ExternalRef(Temperature) \ - ((s32)(((Temperature) + 273.8195f)*65536.0f*0.00198842814f)) + ((s32)(((Temperature) + 279.4266f)*65536.0f*0.00197008621f)) /****************************************************************************/ /** * -* This macro converts Voltage in Volts to System Monitor Raw Data. +* This macro converts Voltage in Volts to System Monitor Raw Data other than +* VCCO_PSIO supply * * @param Voltage is the Voltage in volts to be converted to * System Monitor/ADC Raw Data. @@ -513,6 +557,24 @@ typedef struct { #define XSysMonPsu_VoltageToRaw(Voltage) \ ((s32)((Voltage)*65536.0f/3.0f)) +/****************************************************************************/ +/** +* +* This macro converts Voltage in Volts to System Monitor Raw Data for +* VCCO_PSIO supply +* +* @param Voltage is the Voltage in volts to be converted to +* System Monitor/ADC Raw Data. +* +* @return The System Monitor ADC Raw Data. +* +* @note C-Style signature: +* int XSysMon_VoltageToRaw(float Voltage) +* +*****************************************************************************/ +#define XSysMonPsu_VccopsioVoltageToRaw(Voltage) \ + ((s32)((Voltage)*65536.0f/6.0f)) + /****************************************************************************/ /** * @@ -574,6 +636,7 @@ void XSysMonPsu_SetExtenalMux(XSysMonPsu *InstancePtr, u8 Channel, u32 SysmonBlk u32 XSysMonPsu_GetExtenalMux(XSysMonPsu *InstancePtr, u32 SysmonBlk); void XSysMonPsu_SetAdcClkDivisor(XSysMonPsu *InstancePtr, u8 Divisor, u32 SysmonBlk); u8 XSysMonPsu_GetAdcClkDivisor(XSysMonPsu *InstancePtr, u32 SysmonBlk); +u8 XSysMonPsu_UpdateAdcClkDivisor(XSysMonPsu *InstancePtr, u32 SysmonBlk); s32 XSysMonPsu_SetSeqChEnables(XSysMonPsu *InstancePtr, u64 ChEnableMask, u32 SysmonBlk); u64 XSysMonPsu_GetSeqAvgEnables(XSysMonPsu *InstancePtr, u32 SysmonBlk); @@ -607,4 +670,8 @@ s32 XSysMonPsu_SelfTest(XSysMonPsu *InstancePtr); XSysMonPsu_Config *XSysMonPsu_LookupConfig(u16 DeviceId); +#ifdef __cplusplus +} +#endif + #endif /* XSYSMONPSU_H_ */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_g.c similarity index 88% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_g.c index b692531ad..34bd80b34 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,11 +44,12 @@ * The configuration table for devices */ -XSysMonPsu_Config XSysMonPsu_ConfigTable[] = +XSysMonPsu_Config XSysMonPsu_ConfigTable[XPAR_XSYSMONPSU_NUM_INSTANCES] = { { XPAR_PSU_AMS_DEVICE_ID, - XPAR_PSU_AMS_BASEADDR + XPAR_PSU_AMS_BASEADDR, + XPAR_PSU_AMS_REF_FREQMHZ } }; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_hw.h index 80266ebf9..20082773c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_hw.h @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -46,6 +46,7 @@ * 1.0 kvn 12/15/15 First release * 2.0 vns 08/14/16 Added CFG_REG3, SEQ_INPUT_MODE2, SEQ_ACQ2, * SEQ_CH2 and SEQ_AVG2 offsets and bit masks +* 2.1 sk 03/03/16 Check for PL reset before doing PL Sysmon reset. * * * @@ -2281,6 +2282,11 @@ extern "C" { #define XSYSMONPSU_MIN_TEMP_REMTE_WIDTH 16U #define XSYSMONPSU_MIN_TEMP_REMTE_MASK 0x0000ffffU +#define CSU_BASEADDR 0xFFCA0000U +#define PCAP_STATUS_OFFSET 0x00003010U +#define PL_CFG_RESET_MASK 0x00000040U +#define PL_CFG_RESET_SHIFT 6U + /***************** Macros (Inline Functions) Definitions *********************/ /****************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_intr.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_intr.c index b178c2e11..12d921913 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_intr.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_selftest.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_selftest.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_selftest.c index 5b709be14..9b68b887e 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_selftest.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_sinit.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_sinit.c index 34249a209..32e17ab59 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_sinit.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps.c similarity index 95% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps.c index 394262868..b2382f1b2 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xttcps.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file contains the implementation of the XTtcPs driver. This driver @@ -52,7 +52,10 @@ * to stop the timer before configuring * 3.2 mus 10/28/16 Modified XTtcPs_CalcIntervalFromFreq to calculate * 32 bit interval count for zynq ultrascale+mpsoc -* +* 3.5 srm 10/06/17 Updated XTtcPs_GetMatchValue and XTtcPs_SetMatchValue +* APIs to use correct match register width for zynq +* (i.e. 16 bit) and zynq ultrascale+mpsoc (i.e. 32 bit). +* It fixes CR# 986617 * * ******************************************************************************/ @@ -196,7 +199,7 @@ s32 XTtcPs_CfgInitialize(XTtcPs *InstancePtr, XTtcPs_Config *ConfigPtr, * @note None * ****************************************************************************/ -void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, u16 Value) +void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, XMatchRegValue Value) { /* * Assert to validate input arguments. @@ -222,12 +225,12 @@ void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, u16 Value) * @param MatchIndex is the index to the match register to be set. * Valid values are 0, 1, or 2. * -* @return None +* @return The match register value * * @note None * ****************************************************************************/ -u16 XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex) +XMatchRegValue XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex) { u32 MatchReg; @@ -241,7 +244,7 @@ u16 XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex) MatchReg = XTtcPs_ReadReg(InstancePtr->Config.BaseAddress, XTtcPs_Match_N_Offset(MatchIndex)); - return (u16) MatchReg; + return (XMatchRegValue) MatchReg; } /*****************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps.h similarity index 93% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps.h index be266d9b3..b7b4e1950 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xttcps.h -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * @details * @@ -93,6 +93,16 @@ * modified for MISRA-C:2012 compliance. * 3.2 mus 10/28/16 Modified XTtcPs_GetCounterValue and XTtcPs_SetInterval * macros to return 32 bit values for zynq ultrascale+mpsoc +* ms 01/23/17 Modified xil_printf statement in main function for all +* examples to ensure that "Successfully ran" and "Failed" +* strings are available in all examples. This is a fix +* for CR-965028. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* 3.4 ms 04/18/17 Modified tcl file to add suffix U for all macros +* definitions of ttcps in xparameters.h +* 3.5 srm 10/06/17 Added new typedef XMatchRegValue for match register width +* * * ******************************************************************************/ @@ -110,12 +120,7 @@ extern "C" { #include "xstatus.h" /************************** Constant Definitions *****************************/ -/* - * Flag for a9 processor - */ - #if !defined (ARMR5) && !defined (__aarch64__) && !defined (ARMA53_32) - #define ARMA9 - #endif + /* * Maximum Value for interval counter @@ -165,12 +170,14 @@ typedef struct { } XTtcPs; /** - * This typedef contains interval count + * This typedef contains interval count and Match register value */ #if defined(ARMA9) typedef u16 XInterval; +typedef u16 XMatchRegValue; #else typedef u32 XInterval; +typedef u32 XMatchRegValue; #endif /***************** Macros (Inline Functions) Definitions *********************/ @@ -279,7 +286,7 @@ typedef u32 XInterval; * @return None * * @note C-style signature: -* void XTtcPs_SetInterval(XTtcPs *InstancePtr, u16 Value) +* void XTtcPs_SetInterval(XTtcPs *InstancePtr, XInterval Value) * ****************************************************************************/ #define XTtcPs_SetInterval(InstancePtr, Value) \ @@ -432,8 +439,8 @@ XTtcPs_Config *XTtcPs_LookupConfig(u16 DeviceId); s32 XTtcPs_CfgInitialize(XTtcPs *InstancePtr, XTtcPs_Config * ConfigPtr, u32 EffectiveAddr); -void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, u16 Value); -u16 XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex); +void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, XMatchRegValue Value); +XMatchRegValue XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex); void XTtcPs_SetPrescaler(XTtcPs *InstancePtr, u8 PrescalerValue); u8 XTtcPs_GetPrescaler(XTtcPs *InstancePtr); diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_g.c similarity index 94% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_g.c index 28d356092..571cb366a 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_hw.h similarity index 90% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_hw.h index af78bcd67..b1fa545bd 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_hw.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xttcps_hw.h -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file defines the hardware interface to one of the three timer counters @@ -47,7 +47,10 @@ * ----- ------ -------- ------------------------------------------------- * 1.00a drg/jz 01/21/10 First release * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. -* +* 3.5 srm 10/06/17 Updated XTTCPS_COUNT_VALUE_MASK, +* XTTCPS_INTERVAL_VAL_MASK, XTTCPS_MATCH_MASK macros to +* mask 16 bit values for zynq and 32 bit values for +* zynq ultrascale+mpsoc " * * ******************************************************************************/ @@ -66,6 +69,12 @@ extern "C" { #include "xil_io.h" /************************** Constant Definitions *****************************/ +/* + * Flag for a9 processor + */ + #if !defined (ARMR5) && !defined (__aarch64__) && !defined (ARMA53_32) + #define ARMA9 + #endif /** @name Register Map * @@ -114,7 +123,11 @@ extern "C" { * Current Counter Value Register definitions * @{ */ +#if defined(ARMA9) #define XTTCPS_COUNT_VALUE_MASK 0x0000FFFFU /**< 16-bit counter value */ +#else +#define XTTCPS_COUNT_VALUE_MASK 0xFFFFFFFFU /**< 32-bit counter value */ +#endif /* @} */ /** @name Interval Value Register @@ -122,7 +135,11 @@ extern "C" { * down to. * @{ */ +#if defined(ARMA9) #define XTTCPS_INTERVAL_VAL_MASK 0x0000FFFFU /**< 16-bit Interval value*/ +#else +#define XTTCPS_INTERVAL_VAL_MASK 0xFFFFFFFFU /**< 32-bit Interval value*/ +#endif /* @} */ /** @name Match Registers @@ -130,7 +147,11 @@ extern "C" { * registers. * @{ */ +#if defined(ARMA9) #define XTTCPS_MATCH_MASK 0x0000FFFFU /**< 16-bit Match value */ +#else +#define XTTCPS_MATCH_MASK 0xFFFFFFFFU /**< 32-bit Match value */ +#endif #define XTTCPS_NUM_MATCH_REG 3U /**< Num of Match reg */ /* @} */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_options.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_options.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_options.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_options.c index 532b235c5..01dd9efb3 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_options.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_options.c @@ -33,7 +33,7 @@ /** * * @file xttcps_options.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file contains functions to get or set option features for the device. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_selftest.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_selftest.c index 4923df667..b1dd7d0a2 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xttcps_selftest.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file contains the implementation of self test function for the diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_sinit.c index ef3c6ea6b..4684c8a9c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_5/src/xttcps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xttcps_sinit.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * The implementation of the XTtcPs driver's static initialization functionality. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps.c index a338d1f09..c33ec5481 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps.c @@ -33,7 +33,7 @@ /** * * @file xuartps.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This file contains the implementation of the interface functions for XUartPs @@ -49,6 +49,7 @@ * baud rate. CR# 804281. * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. * 3.1 kvn 04/10/15 Modified code for latest RTL changes. +* 3.5 NK 09/26/17 Fix the RX Buffer Overflow issue. * * *****************************************************************************/ @@ -463,7 +464,7 @@ u32 XUartPs_ReceiveBuffer(XUartPs *InstancePtr) * Loop until there is no more data in RX FIFO or the specified * number of bytes has been received */ - while((ReceivedCount <= InstancePtr->ReceiveBuffer.RemainingBytes)&& + while((ReceivedCount < InstancePtr->ReceiveBuffer.RemainingBytes)&& (((CsrRegister & XUARTPS_SR_RXEMPTY) == (u32)0))){ if (InstancePtr->is_rxbs_error) { @@ -635,7 +636,7 @@ s32 XUartPs_SetBaudRate(XUartPs *InstancePtr, u32 BaudRate) static void XUartPs_StubHandler(void *CallBackRef, u32 Event, u32 ByteCount) { - (void *) CallBackRef; + (void) CallBackRef; (void) Event; (void) ByteCount; /* Assert occurs always since this is a stub and should never be called */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps.h similarity index 96% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps.h index d915917bb..33758c23b 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xuartps.h -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * @details * @@ -162,6 +162,14 @@ * 3.1 adk 14/03/16 Include interrupt examples in the peripheral test when * uart is connected to a valid interrupt controller CR#946803. * 3.2 rk 07/20/16 Modified the logic for transmission break bit set +* 3.4 ms 01/23/17 Added xil_printf statement in main function for all +* examples to ensure that "Successfully ran" and "Failed" +* strings are available in all examples. This is a fix +* for CR-965028. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* 3.6 ms 02/16/18 Updates the flow control mode offset value in modem +* control register. * * * diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_g.c similarity index 91% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_g.c index d4a8e5ab9..6abb20e4d 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XUartPs_Config XUartPs_ConfigTable[] = +XUartPs_Config XUartPs_ConfigTable[XPAR_XUARTPS_NUM_INSTANCES] = { { XPAR_PSU_UART_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_hw.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_hw.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_hw.c index 299dd35ae..724c3cb40 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_hw.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_hw.c @@ -33,7 +33,7 @@ /** * * @file xuartps_hw.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_hw.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_hw.h index 9f5f0b700..9a2bc4305 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_hw.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xuartps_hw.h -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This header file contains the hardware interface of an XUartPs device. @@ -55,6 +55,8 @@ * constant definitions. * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. * 3.1 kvn 04/10/15 Modified code for latest RTL changes. +* 3.6 ms 02/16/18 Updates flow control mode offset value in +* modem control register. * * * @@ -256,7 +258,7 @@ extern "C" { * * @{ */ -#define XUARTPS_MODEMCR_FCM 0x00000010U /**< Flow control mode */ +#define XUARTPS_MODEMCR_FCM 0x00000020U /**< Flow control mode */ #define XUARTPS_MODEMCR_RTS 0x00000002U /**< Request to send */ #define XUARTPS_MODEMCR_DTR 0x00000001U /**< Data terminal ready */ /* @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_intr.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_intr.c index 3068ee795..dff02fd63 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_intr.c @@ -33,7 +33,7 @@ /** * * @file xuartps_intr.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This file contains the functions for interrupt handling diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_options.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_options.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_options.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_options.c index 9a699afa1..5d8d3017c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_options.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_options.c @@ -33,7 +33,7 @@ /** * * @file xuartps_options.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * The implementation of the options functions for the XUartPs driver. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_selftest.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_selftest.c index a1a7dd366..de58201a1 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xuartps_selftest.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This file contains the self-test functions for the XUartPs driver. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_sinit.c index 8dc87dae3..22e2f7a83 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_6/src/xuartps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xuartps_sinit.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * The implementation of the XUartPs driver's static initialzation diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.c new file mode 100644 index 000000000..57f859d81 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.c @@ -0,0 +1,329 @@ +/****************************************************************************** + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * + ******************************************************************************/ +/*****************************************************************************/ +/** + * + * @file xusb_wrapper.c + * + * This file contains implementation of USBPSU Driver wrappers. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  	Date     Changes
+ * ----- ---- 	-------- -------------------------------------------------------
+ * 1.0   BK 	12/01/18 First release
+ *	 MYK	12/01/18 Added hibernation support for device mode
+ *	 vak	13/03/18 Moved the setup interrupt system calls from driver to
+ *			 example.
+ *
+ * 
+ * + *****************************************************************************/ + +/***************************** Include Files *********************************/ +#include "xusb_wrapper.h" + +/************************** Variable Definitions *****************************/ + +/************************** Function Prototypes ******************************/ +Usb_Config* LookupConfig(u16 DeviceId) +{ + return XUsbPsu_LookupConfig(DeviceId); +} + +void CacheInit(void) +{ + +} + +s32 CfgInitialize(struct Usb_DevData *InstancePtr, + Usb_Config *ConfigPtr, u32 BaseAddress) +{ + PrivateData.AppData = InstancePtr; + InstancePtr->PrivateData = (void *)&PrivateData; + + return XUsbPsu_CfgInitialize((struct XUsbPsu *)InstancePtr->PrivateData, + ConfigPtr, BaseAddress); +} + +void Set_Ch9Handler( + void *InstancePtr, + void (*func)(struct Usb_DevData *, SetupPacket *)) +{ + XUsbPsu_set_ch9handler((struct XUsbPsu *)InstancePtr, func); +} + +void Set_RstHandler(void *InstancePtr, void (*func)(struct Usb_DevData *)) +{ + XUsbPsu_set_rsthandler((struct XUsbPsu *)InstancePtr, func); +} + +void Set_Disconnect(void *InstancePtr, void (*func)(struct Usb_DevData *)) +{ + XUsbPsu_set_disconnect((struct XUsbPsu *)InstancePtr, func); +} + +void EpConfigure(void *UsbInstance, u8 EndpointNo, u8 dir, u32 Type) +{ + (void)UsbInstance; + (void)EndpointNo; + (void)dir; + (void)Type; +} + +s32 ConfigureDevice(void *UsbInstance, u8 *MemPtr, u32 memSize) +{ + (void)UsbInstance; + (void)MemPtr; + (void)memSize; + return XST_SUCCESS; +} + +void SetEpHandler(void *InstancePtr, u8 Epnum, + u8 Dir, void (*Handler)(void *, u32, u32)) +{ + XUsbPsu_SetEpHandler((struct XUsbPsu *)InstancePtr, Epnum, Dir, Handler); +} + +s32 Usb_Start(void *InstancePtr) +{ + return XUsbPsu_Start((struct XUsbPsu *)InstancePtr); +} + +void *Get_DrvData(void *InstancePtr) +{ + return XUsbPsu_get_drvdata((struct XUsbPsu *)InstancePtr); +} + +void Set_DrvData(void *InstancePtr, void *data) +{ + XUsbPsu_set_drvdata((struct XUsbPsu *)InstancePtr, data); +} + +s32 IsEpStalled(void *InstancePtr, u8 Epnum, u8 Dir) +{ + return XUsbPsu_IsEpStalled((struct XUsbPsu *)InstancePtr, Epnum, Dir); +} + +void EpClearStall(void *InstancePtr, u8 Epnum, u8 Dir) +{ + XUsbPsu_EpClearStall((struct XUsbPsu *)InstancePtr, Epnum, Dir); +} + +s32 EpBufferSend(void *InstancePtr, u8 UsbEp, + u8 *BufferPtr, u32 BufferLen) +{ + if (UsbEp == 0 && BufferLen == 0) + return XST_SUCCESS; + else + return XUsbPsu_EpBufferSend((struct XUsbPsu *)InstancePtr, + UsbEp, BufferPtr, BufferLen); + +} + +s32 EpBufferRecv(void *InstancePtr, u8 UsbEp, + u8 *BufferPtr, u32 Length) +{ + return XUsbPsu_EpBufferRecv((struct XUsbPsu *)InstancePtr, UsbEp, + BufferPtr, Length); +} + +void EpSetStall(void *InstancePtr, u8 Epnum, u8 Dir) +{ + XUsbPsu_EpSetStall((struct XUsbPsu *)InstancePtr, Epnum, Dir); +} + +void SetBits(void *InstancePtr, u32 TestSel) +{ + (void)InstancePtr; + (void)TestSel; +} + +s32 SetDeviceAddress(void *InstancePtr, u16 Addr) +{ + return XUsbPsu_SetDeviceAddress((struct XUsbPsu *)InstancePtr, Addr); +} + +s32 SetU1SleepTimeout(void *InstancePtr, u8 Sleep) +{ + return XUsbPsu_SetU1SleepTimeout((struct XUsbPsu *)InstancePtr, Sleep); +} + +s32 SetU2SleepTimeout(void *InstancePtr, u8 Sleep) +{ + return XUsbPsu_SetU2SleepTimeout((struct XUsbPsu *)InstancePtr, Sleep); +} + +s32 AcceptU1U2Sleep(void *InstancePtr) +{ + return XUsbPsu_AcceptU1U2Sleep((struct XUsbPsu *)InstancePtr); + +} + +s32 U1SleepEnable(void *InstancePtr) +{ + return XUsbPsu_U1SleepEnable((struct XUsbPsu *)InstancePtr); +} + +s32 U2SleepEnable(void *InstancePtr) +{ + return XUsbPsu_U2SleepEnable((struct XUsbPsu *)InstancePtr); +} + +s32 U1SleepDisable(void *InstancePtr) +{ + return XUsbPsu_U1SleepDisable((struct XUsbPsu *)InstancePtr); +} + +s32 U2SleepDisable(void *InstancePtr) +{ + return XUsbPsu_U2SleepDisable((struct XUsbPsu *)InstancePtr); +} + +s32 EpEnable(void *InstancePtr, u8 UsbEpNum, u8 Dir, u16 Maxsize, u8 Type) +{ + return XUsbPsu_EpEnable((struct XUsbPsu *)InstancePtr, UsbEpNum, Dir, + Maxsize, Type, FALSE); +} + +s32 EpDisable(void *InstancePtr, u8 UsbEpNum, u8 Dir) +{ + return XUsbPsu_EpDisable((struct XUsbPsu *)InstancePtr, UsbEpNum, Dir); +} + +void Usb_SetSpeed(void *InstancePtr, u32 Speed) +{ + XUsbPsu_SetSpeed((struct XUsbPsu *)InstancePtr, Speed); +} + +/****************************************************************************/ +/** +* Sets speed of the Core for connecting to Host +* +* @param InstancePtr is a pointer to the Usb_DevData instance. +* +* @return XST_SUCCESS else XST_FAILURE +* +* @note None. +* +*****************************************************************************/ +s32 IsSuperSpeed(struct Usb_DevData *InstancePtr) +{ + if (InstancePtr->Speed != XUSBPSU_SPEED_SUPER) { + return XST_FAILURE; + } + + return XST_SUCCESS; +} + +/****************************************************************************/ +/** +* Set the Config state +* +* @param InstancePtr is a private member of Usb_DevData instance. +* @param Flag is the config value. +* +* @return None. +* +* @note None. +* +*****************************************************************************/ +void SetConfigDone(void *InstancePtr, u8 Flag) +{ + ((struct XUsbPsu *)InstancePtr)->IsConfigDone = Flag; +} + +/****************************************************************************/ +/** +* Get the Config state +* +* @param InstancePtr is a private member of Usb_DevData instance. +* +* @return Current configuration value +* +* @note None. +* +*****************************************************************************/ +u8 GetConfigDone(void *InstancePtr) +{ + return (((struct XUsbPsu *)InstancePtr)->IsConfigDone); +} + +void Ep0StallRestart(void *InstancePtr) +{ + XUsbPsu_Ep0StallRestart((struct XUsbPsu *)InstancePtr); +} + +/******************************************************************************/ +/** + * This function sets Endpoint Interval. + * + * @param InstancePtr is a private member of Usb_DevData instance. + * @param UsbEpnum is Endpoint Number. + * @param Dir is Endpoint Direction(In/Out). + * @param Interval is the data transfer service interval + * + * @return None. + * + * @note None. + * + ******************************************************************************/ +void SetEpInterval(void *InstancePtr, u8 UsbEpNum, u8 Dir, u32 Interval) +{ + u32 PhyEpNum; + struct XUsbPsu_Ep *Ept; + + PhyEpNum = PhysicalEp(UsbEpNum, Dir); + Ept = &((struct XUsbPsu *)InstancePtr)->eps[PhyEpNum]; + Ept->Interval = Interval; +} + +void StopTransfer(void *InstancePtr, u8 EpNum, u8 Dir) +{ + XUsbPsu_StopTransfer((struct XUsbPsu *)InstancePtr, EpNum, Dir, TRUE); +} + +s32 StreamOn(void *InstancePtr, u8 EpNum, u8 Dir, u8 *BufferPtr) +{ + (void)InstancePtr; + (void)EpNum; + (void)Dir; + (void)BufferPtr; + /* Streaming will start on TxferNotReady Event */ + return XST_SUCCESS; +} + +void StreamOff(void *InstancePtr, u8 EpNum, u8 Dir) +{ + StopTransfer((struct XUsbPsu *)InstancePtr, EpNum, Dir); +} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.h new file mode 100644 index 000000000..d21072bcd --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.h @@ -0,0 +1,190 @@ +/****************************************************************************** + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * + ******************************************************************************/ +/*****************************************************************************/ +/** + * + * @file xusb_wrapper.h + * + * This file contains declarations for USBPSU Driver wrappers. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  	Date     Changes
+ * ----- ---- 	-------- -------------------------------------------------------
+ *  1.0  BK	12/01/18 First release
+ *	 MYK	12/01/18 Added hibernation support for device mode
+ *	 vak	22/01/18 Added Microblaze support for usbpsu driver
+ *	 vak	13/03/18 Moved the setup interrupt system calls from driver to
+ *			 example.
+ *
+ * 
+ * + *****************************************************************************/ + +#ifndef XUSB_WRAPPER_H /* Prevent circular inclusions */ +#define XUSB_WRAPPER_H /* by using protection macros */ + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************** Include Files ********************************/ +#include "xusbpsu.h" + +/************************** Constant Definitions ****************************/ +#define USB_DEVICE_ID XPAR_XUSBPSU_0_DEVICE_ID + +#define USB_EP_DIR_IN XUSBPSU_EP_DIR_IN +#define USB_EP_DIR_OUT XUSBPSU_EP_DIR_OUT + +#define USB_DIR_OUT 0U /* to device */ +#define USB_DIR_IN 0x80U /* to host */ + +/** + * @name Endpoint Address + * @{ + */ +#define USB_EP1_IN 0x81 +#define USB_EP1_OUT 0x01 +#define USB_EP2_IN 0x82 +#define USB_EP2_OUT 0x02 +/* @} */ + +/** + * @name Endpoint Type + * @{ + */ +#define USB_EP_TYPE_CONTROL XUSBPSU_ENDPOINT_XFER_CONTROL +#define USB_EP_TYPE_ISOCHRONOUS XUSBPSU_ENDPOINT_XFER_ISOC +#define USB_EP_TYPE_BULK XUSBPSU_ENDPOINT_XFER_BULK +#define USB_EP_TYPE_INTERRUPT XUSBPSU_ENDPOINT_XFER_INT +/* @} */ + +#define USB_ENDPOINT_NUMBER_MASK 0x0f /* in bEndpointAddress */ +#define USB_ENDPOINT_DIR_MASK 0x80 + +/* + * Device States + */ +#define USB_STATE_ATTACHED XUSBPSU_STATE_ATTACHED +#define USB_STATE_POWERED XUSBPSU_STATE_POWERED +#define USB_STATE_DEFAULT XUSBPSU_STATE_DEFAULT +#define USB_STATE_ADDRESS XUSBPSU_STATE_ADDRESS +#define USB_STATE_CONFIGURED XUSBPSU_STATE_CONFIGURED +#define USB_STATE_SUSPENDED XUSBPSU_STATE_SUSPENDED + +#define XUSBPSU_REQ_REPLY_LEN 1024 /**< Max size of reply buffer. */ +#define USB_REQ_REPLY_LEN XUSBPSU_REQ_REPLY_LEN + +/* + * Device Speeds + */ +#define USB_SPEED_UNKNOWN XUSBPSU_SPEED_UNKNOWN +#define USB_SPEED_LOW XUSBPSU_SPEED_LOW +#define USB_SPEED_FULL XUSBPSU_SPEED_FULL +#define USB_SPEED_HIGH XUSBPSU_SPEED_HIGH +#define USB_SPEED_SUPER XUSBPSU_SPEED_SUPER + +/* Device Configuration Speed */ +#define USB_DCFG_SPEED_MASK XUSBPSU_DCFG_SPEED_MASK +#define USB_DCFG_SUPERSPEED XUSBPSU_DCFG_SUPERSPEED +#define USB_DCFG_HIGHSPEED XUSBPSU_DCFG_HIGHSPEED +#define USB_DCFG_FULLSPEED2 XUSBPSU_DCFG_FULLSPEED2 +#define USB_DCFG_LOWSPEED XUSBPSU_DCFG_LOWSPEED +#define USB_DCFG_FULLSPEED1 XUSBPSU_DCFG_FULLSPEED1 + +#define USB_TEST_J XUSBPSU_TEST_J +#define USB_TEST_K XUSBPSU_TEST_K +#define USB_TEST_SE0_NAK XUSBPSU_TEST_SE0_NAK +#define USB_TEST_PACKET XUSBPSU_TEST_PACKET +#define USB_TEST_FORCE_ENABLE XUSBPSU_TEST_FORCE_ENABLE + +/* TODO: If we enable this macro, reconnection is failed with 2017.3 */ +#define USB_LPM_MODE XUSBPSU_LPM_MODE + +/* + * return Physical EP number as dwc3 mapping + */ +#define PhysicalEp(epnum, direction) (((epnum) << 1 ) | (direction)) + +/**************************** Type Definitions ******************************/ + +/************************** Variable Definitions *****************************/ +struct XUsbPsu PrivateData; + +/***************** Macros (Inline Functions) Definitions *********************/ +Usb_Config* LookupConfig(u16 DeviceId); +void CacheInit(void); +s32 CfgInitialize(struct Usb_DevData *InstancePtr, + Usb_Config *ConfigPtr, u32 BaseAddress); +void Set_Ch9Handler(void *InstancePtr, + void (*func)(struct Usb_DevData *, SetupPacket *)); +void Set_RstHandler(void *InstancePtr, void (*func)(struct Usb_DevData *)); +void Set_Disconnect(void *InstancePtr, void (*func)(struct Usb_DevData *)); +void EpConfigure(void *UsbInstance, u8 EndpointNo, u8 dir, u32 Type); +s32 ConfigureDevice(void *UsbInstance, u8 *MemPtr, u32 memSize); +void SetEpHandler(void *InstancePtr, u8 Epnum, + u8 Dir, void (*Handler)(void *, u32, u32)); +s32 Usb_Start(void *InstancePtr); +void *Get_DrvData(void *InstancePtr); +void Set_DrvData(void *InstancePtr, void *data); +s32 IsEpStalled(void *InstancePtr, u8 Epnum, u8 Dir); +void EpClearStall(void *InstancePtr, u8 Epnum, u8 Dir); +s32 EpBufferSend(void *InstancePtr, u8 UsbEp, + u8 *BufferPtr, u32 BufferLen); +s32 EpBufferRecv(void *InstancePtr, u8 UsbEp, + u8 *BufferPtr, u32 Length); +void EpSetStall(void *InstancePtr, u8 Epnum, u8 Dir); +void SetBits(void *InstancePtr, u32 TestSel); +s32 SetDeviceAddress(void *InstancePtr, u16 Addr); +s32 SetU1SleepTimeout(void *InstancePtr, u8 Sleep); +s32 SetU2SleepTimeout(void *InstancePtr, u8 Sleep); +s32 AcceptU1U2Sleep(void *InstancePtr); +s32 U1SleepEnable(void *InstancePtr); +s32 U2SleepEnable(void *InstancePtr); +s32 U1SleepDisable(void *InstancePtr); +s32 U2SleepDisable(void *InstancePtr); +s32 EpEnable(void *InstancePtr, u8 UsbEpNum, u8 Dir, u16 Maxsize, u8 Type); +s32 EpDisable(void *InstancePtr, u8 UsbEpNum, u8 Dir); +void Usb_SetSpeed(void *InstancePtr, u32 Speed); +s32 IsSuperSpeed(struct Usb_DevData *InstancePtr); +void SetConfigDone(void *InstancePtr, u8 Flag); +u8 GetConfigDone(void *InstancePtr); +void Ep0StallRestart(void *InstancePtr); +void SetEpInterval(void *InstancePtr, u8 UsbEpNum, u8 Dir, u32 Interval); +void StopTransfer(void *InstancePtr, u8 EpNum, u8 Dir); +s32 StreamOn(void *InstancePtr, u8 EpNum, u8 Dir, u8 *BufferPtr); +void StreamOff(void *InstancePtr, u8 EpNum, u8 Dir); + +#endif /* End of protection macro. */ +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu.c similarity index 95% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu.c index c39d11a2f..245fba272 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu.c @@ -33,7 +33,7 @@ /** * * @file xusbpsu.c -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * *
@@ -44,14 +44,16 @@
 * ----- -----  -------- -----------------------------------------------------
 * 1.0   sg    06/16/16 First release
 * 1.1   sg    10/24/16 Added new function XUsbPsu_IsSuperSpeed
-*
+* 1.4	bk    12/01/18 Modify USBPSU driver code to fit USB common example code
+*		       for all USB IPs.
+*	myk   12/01/18 Added hibernation support for device mode
 * 
* *****************************************************************************/ /***************************** Include Files ********************************/ -#include "xusbpsu.h" +#include "xusb_wrapper.h" /************************** Constant Definitions *****************************/ @@ -226,19 +228,20 @@ void XUsbPsu_PhyReset(struct XUsbPsu *InstancePtr) ******************************************************************************/ void XUsbPsu_EventBuffersSetup(struct XUsbPsu *InstancePtr) { - struct XUsbPsu_EvtBuffer *Evt; + struct XUsbPsu_EvtBuffer *Evt; Xil_AssertVoid(InstancePtr != NULL); Evt = &InstancePtr->Evt; Evt->BuffAddr = (void *)InstancePtr->EventBuffer; + Evt->Offset = 0; XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTADRLO(0), - (UINTPTR)InstancePtr->EventBuffer); + (UINTPTR)InstancePtr->EventBuffer); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTADRHI(0), - ((UINTPTR)(InstancePtr->EventBuffer) >> 16U) >> 16U); + ((UINTPTR)(InstancePtr->EventBuffer) >> 16U) >> 16U); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTSIZ(0), - XUSBPSU_GEVNTSIZ_SIZE(sizeof(InstancePtr->EventBuffer))); + XUSBPSU_GEVNTSIZ_SIZE(sizeof(InstancePtr->EventBuffer))); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTCOUNT(0), 0); } @@ -321,9 +324,9 @@ s32 XUsbPsu_CoreInit(struct XUsbPsu *InstancePtr) XUsbPsu_PhyReset(InstancePtr); RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GCTL); - RegVal &= ~XUSBPSU_GCTL_SCALEDOWN_MASK; - RegVal &= ~XUSBPSU_GCTL_DISSCRAMBLE; - RegVal |= XUSBPSU_GCTL_U2EXIT_LFPS; + RegVal &= ~XUSBPSU_GCTL_SCALEDOWN_MASK; + RegVal &= ~XUSBPSU_GCTL_DISSCRAMBLE; + RegVal |= XUSBPSU_GCTL_U2EXIT_LFPS; Hwparams1 = XUsbPsu_ReadHwParams(InstancePtr, 1U); @@ -333,7 +336,11 @@ s32 XUsbPsu_CoreInit(struct XUsbPsu *InstancePtr) break; case XUSBPSU_GHWPARAMS1_EN_PWROPT_HIB: - /* enable hibernation here */ + /* enable hibernation here */ +#ifdef XUSBPSU_HIBERNATION_ENABLE + RegVal |= XUSBPSU_GCTL_GBLHIBERNATIONEN; + InstancePtr->HasHibernation = 1; +#endif break; default: @@ -343,6 +350,11 @@ s32 XUsbPsu_CoreInit(struct XUsbPsu *InstancePtr) XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GCTL, RegVal); +#ifdef XUSBPSU_HIBERNATION_ENABLE + if (InstancePtr->HasHibernation) + XUsbPsu_InitHibernation(InstancePtr); +#endif + return XST_SUCCESS; } @@ -441,7 +453,7 @@ void XUsbPsu_DisableIntr(struct XUsbPsu *InstancePtr, u32 Mask) s32 XUsbPsu_CfgInitialize(struct XUsbPsu *InstancePtr, XUsbPsu_Config *ConfigPtr, u32 BaseAddress) { - int Status; + s32 Status; u32 RegVal; @@ -471,10 +483,10 @@ s32 XUsbPsu_CfgInitialize(struct XUsbPsu *InstancePtr, XUsbPsu_SetMode(InstancePtr, XUSBPSU_GCTL_PRTCAP_DEVICE); - /* - * Setting to max speed to support SS and HS - */ - XUsbPsu_SetSpeed(InstancePtr, XUSBPSU_DCFG_SUPERSPEED); + /* + * Setting to max speed to support SS and HS + */ + XUsbPsu_SetSpeed(InstancePtr, XUSBPSU_DCFG_SUPERSPEED); (void)XUsbPsu_SetDeviceAddress(InstancePtr, 0U); @@ -694,7 +706,7 @@ s32 XUsbPsu_SetDeviceAddress(struct XUsbPsu *InstancePtr, u16 Addr) Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(Addr <= 127U); - if (InstancePtr->State == XUSBPSU_STATE_CONFIGURED) { + if (InstancePtr->AppData->State == XUSBPSU_STATE_CONFIGURED) { return XST_FAILURE; } @@ -704,30 +716,10 @@ s32 XUsbPsu_SetDeviceAddress(struct XUsbPsu *InstancePtr, u16 Addr) XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCFG, RegVal); if (Addr) { - InstancePtr->State = XUSBPSU_STATE_ADDRESS; + InstancePtr->AppData->State = XUSBPSU_STATE_ADDRESS; } else { - InstancePtr->State = XUSBPSU_STATE_DEFAULT; - } - - return XST_SUCCESS; -} - -/****************************************************************************/ -/** -* Sets speed of the Core for connecting to Host -* -* @param InstancePtr is a pointer to the XUsbPsu instance. -* -* @return XST_SUCCESS else XST_FAILURE -* -* @note None. -* -*****************************************************************************/ -s32 XUsbPsu_IsSuperSpeed(struct XUsbPsu *InstancePtr) -{ - if (InstancePtr->Speed != XUSBPSU_SPEED_SUPER) { - return XST_FAILURE; + InstancePtr->AppData->State = XUSBPSU_STATE_DEFAULT; } return XST_SUCCESS; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu.h similarity index 78% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu.h index a1366487b..2d1498ac1 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu.h @@ -33,7 +33,7 @@ /** * * @file xusbpsu.h -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * @details * @@ -46,6 +46,22 @@ * 1.0 sg 06/06/16 First release * 1.1 sg 10/24/16 Update for backward compatability * Added XUsbPsu_IsSuperSpeed function in xusbpsu.c +* 1.2 mn 01/20/17 removed unnecessary declaration of +* XUsbPsu_SetConfiguration in xusbpsu.h +* 1.2 mn 01/30/17 Corrected InstancePtr->UnalignedTx with +* Ept->UnalignedTx in xusbpsu_controltransfers.c +* 1.2 mus 02/10/17 Updated data structures to fix compilation errors for IAR +* compiler +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/10/17 Modified filename tag to include the file in doxygen +* examples. +* 1.4 bk 12/01/18 Modify USBPSU driver code to fit USB common example code +* for all USB IPs. +* myk 12/01/18 Added hibernation support for device mode +* vak 22/01/18 Added changes for supporting microblaze platform +* vak 13/03/18 Moved the setup interrupt system calls from driver to +* example. * * * @@ -58,17 +74,22 @@ extern "C" { #endif /***************************** Include Files ********************************/ + +/* Enable XUSBPSU_HIBERNATION_ENABLE to enable hibernation */ +//#define XUSBPSU_HIBERNATION_ENABLE 1 + #include "xparameters.h" #include "xil_types.h" #include "xil_assert.h" #include "xstatus.h" #include "xusbpsu_hw.h" #include "xil_io.h" + /* * The header sleep.h and API usleep() can only be used with an arm design. * MB_Sleep() is used for microblaze design. */ -#if defined (__arm__) || defined (__aarch64__) +#if defined (__arm__) || defined (__aarch64__) || (__ICCARM__) #include "sleep.h" #endif @@ -79,16 +100,19 @@ extern "C" { /************************** Constant Definitions ****************************/ +#define NO_OF_TRB_PER_EP 2 + +#ifdef PLATFORM_ZYNQMP #define ALIGNMENT_CACHELINE __attribute__ ((aligned(64))) +#else +#define ALIGNMENT_CACHELINE __attribute__ ((aligned(32))) +#endif #define XUSBPSU_PHY_TIMEOUT 5000U /* in micro seconds */ #define XUSBPSU_EP_DIR_IN 1U #define XUSBPSU_EP_DIR_OUT 0U -#define XUSBPSU_ENDPOINT_NUMBER_MASK 0x0f /* in bEndpointAddress */ -#define XUSBPSU_ENDPOINT_DIR_MASK 0x80 - #define XUSBPSU_ENDPOINT_XFERTYPE_MASK 0x03 /* in bmAttributes */ #define XUSBPSU_ENDPOINT_XFER_CONTROL 0U #define XUSBPSU_ENDPOINT_XFER_ISOC 1U @@ -253,15 +277,6 @@ typedef enum { /**************************** Type Definitions ******************************/ -/** - * This typedef contains configuration information for the XUSBPSU - * device. - */ -typedef struct { - u16 DeviceId; /**< Unique ID of controller */ - u32 BaseAddress; /**< Core register base address */ -} XUsbPsu_Config; - /** * Software Event buffer representation */ @@ -275,13 +290,20 @@ struct XUsbPsu_EvtBuffer { /** * Transfer Request Block - Hardware format */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif struct XUsbPsu_Trb { u32 BufferPtrLow; u32 BufferPtrHigh; u32 Size; u32 Ctrl; +#if defined (__ICCARM__) +}; +#pragma pack(pop) +#else } __attribute__((packed)); - +#endif /* * Endpoint Parameters @@ -295,13 +317,21 @@ struct XUsbPsu_EpParams { /** * USB Standard Control Request */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif typedef struct { u8 bRequestType; u8 bRequest; u16 wValue; u16 wIndex; u16 wLength; +#if defined (__ICCARM__) +}SetupPacket; +#pragma pack(pop) +#else } __attribute__ ((packed)) SetupPacket; +#endif /** * Endpoint representation @@ -312,11 +342,22 @@ struct XUsbPsu_Ep { * when data is sent for IN Ep * and received for OUT Ep */ - struct XUsbPsu_Trb EpTrb ALIGNMENT_CACHELINE;/**< TRB used by endpoint */ +#if defined (__ICCARM__) + #pragma data_alignment = 64 + struct XUsbPsu_Trb EpTrb[NO_OF_TRB_PER_EP + 1]; /**< One extra Trb is for Link Trb */ + #pragma data_alignment = 4 +#else + struct XUsbPsu_Trb EpTrb[NO_OF_TRB_PER_EP + 1] ALIGNMENT_CACHELINE;/**< TRB used by endpoint */ +#endif u32 EpStatus; /**< Flags to represent Endpoint status */ + u32 EpSavedState; /**< Endpoint status saved at the time of hibernation */ u32 RequestedBytes; /**< RequestedBytes for transfer */ u32 BytesTxed; /**< Actual Bytes transferred */ + u32 Interval; /**< Data transfer service interval */ + u32 TrbEnqueue; + u32 TrbDequeue; u16 MaxSize; /**< Size of endpoint */ + u16 CurUf; /**< current microframe */ u8 *BufferPtr; /**< Buffer location */ u8 ResourceIndex; /**< Resource Index assigned to * Endpoint by core @@ -330,13 +371,39 @@ struct XUsbPsu_Ep { u8 UnalignedTx; }; +/** + * This typedef contains configuration information for the USB + * device. + */ +typedef struct { + u16 DeviceId; /**< Unique ID of controller */ + u32 BaseAddress; /**< Core register base address */ + u8 IsCacheCoherent; /**< Describes whether Cache Coherent or not */ +} XUsbPsu_Config; + +typedef XUsbPsu_Config Usb_Config; + +struct Usb_DevData { + u8 Speed; + u8 State; + + void *PrivateData; +}; + /** * USB Device Controller representation */ struct XUsbPsu { +#if defined (__ICCARM__) + #pragma data_alignment = 64 + SetupPacket SetupData; + struct XUsbPsu_Trb Ep0_Trb; + #pragma data_alignment = 4 +#else SetupPacket SetupData ALIGNMENT_CACHELINE; /**< Setup Packet buffer */ struct XUsbPsu_Trb Ep0_Trb ALIGNMENT_CACHELINE; +#endif /**< TRB for control transfers */ XUsbPsu_Config *ConfigPtr; /**< Configuration info pointer */ struct XUsbPsu_Ep eps[XUSBPSU_ENDPOINTS_NUM]; /**< Endpoints */ @@ -345,32 +412,48 @@ struct XUsbPsu { u32 BaseAddress; /**< Core register base address */ u32 DevDescSize; u32 ConfigDescSize; - void (*Chapter9)(struct XUsbPsu *, SetupPacket *); - void (*ClassHandler)(struct XUsbPsu *, SetupPacket *); + struct Usb_DevData *AppData; + void (*Chapter9)(struct Usb_DevData *, SetupPacket *); + void (*ResetIntrHandler)(struct Usb_DevData *); + void (*DisconnectIntrHandler)(struct Usb_DevData *); void *DevDesc; void *ConfigDesc; +#if defined(__ICCARM__) + #pragma data_alignment = XUSBPSU_EVENT_BUFFERS_SIZE + u8 EventBuffer[XUSBPSU_EVENT_BUFFERS_SIZE]; + #pragma data_alignment = 4 +#else u8 EventBuffer[XUSBPSU_EVENT_BUFFERS_SIZE] __attribute__((aligned(XUSBPSU_EVENT_BUFFERS_SIZE))); +#endif u8 NumOutEps; u8 NumInEps; u8 ControlDir; u8 IsInTestMode; u8 TestMode; - u8 Speed; - u8 State; u8 Ep0State; u8 LinkState; u8 UnalignedTx; u8 IsConfigDone; u8 IsThreeStage; + u8 IsHibernated; /**< Hibernated state */ + u8 HasHibernation; /**< Has hibernation support */ + void *data_ptr; /* pointer for storing applications data */ }; +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif struct XUsbPsu_Event_Type { u32 Is_DevEvt:1; u32 Type:7; u32 Reserved8_31:24; +#if defined (__ICCARM__) +}; +#pragma pack(pop) +#else } __attribute__((packed)); - +#endif /** * struct XUsbPsu_event_depvt - Device Endpoint Events * @Is_EpEvt: indicates this is an endpoint event @@ -390,6 +473,9 @@ struct XUsbPsu_Event_Type { * @Parameters: Parameters of the current event. Refer to databook for * more information. */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif struct XUsbPsu_Event_Epevt { u32 Is_EpEvt:1; u32 Epnumber:5; @@ -397,8 +483,12 @@ struct XUsbPsu_Event_Epevt { u32 Reserved11_10:2; u32 Status:4; u32 Parameters:16; +#if defined (__ICCARM__) +}; +#pragma pack(pop) +#else } __attribute__((packed)); - +#endif /** * struct XUsbPsu_event_devt - Device Events * @Is_DevEvt: indicates this is a non-endpoint event @@ -421,6 +511,9 @@ struct XUsbPsu_Event_Epevt { * @Event_Info: Information about this event * @Reserved31_25: Reserved, not used */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif struct XUsbPsu_Event_Devt { u32 Is_DevEvt:1; u32 Device_Event:7; @@ -428,8 +521,12 @@ struct XUsbPsu_Event_Devt { u32 Reserved15_12:4; u32 Event_Info:9; u32 Reserved31_25:7; +#if defined (__ICCARM__) +}; +#pragma pack(pop) +#else } __attribute__((packed)); - +#endif /** * struct XUsbPsu_event_gevt - Other Core Events * @one_bit: indicates this is a non-endpoint event (not used) @@ -437,13 +534,20 @@ struct XUsbPsu_Event_Devt { * @phy_port_number: self-explanatory * @reserved31_12: Reserved, not used. */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif struct XUsbPsu_Event_Gevt { u32 Is_GlobalEvt:1; u32 Device_Event:7; u32 Phy_Port_Number:4; u32 Reserved31_12:20; +#if defined (__ICCARM__) +}; +#pragma pack(pop) +#else } __attribute__((packed)); - +#endif /** * union XUsbPsu_event - representation of Event Buffer contents * @raw: raw 32-bit event @@ -461,16 +565,22 @@ union XUsbPsu_Event { }; /***************** Macros (Inline Functions) Definitions *********************/ - +#if defined (__ICCARM__) +#define IS_ALIGNED(x, a) (((x) & ((u32)(a) - 1)) == 0U) +#else #define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0U) +#endif +#if defined (__ICCARM__) +#define roundup(x, y) (((((x) + (u32)(y - 1)) / (u32)y) * (u32)y)) + +#else #define roundup(x, y) ( \ -{ \ - const typeof(y) y__ = (y); \ - (((x) + (u32)(y__ - 1)) / (u32)y__) * (u32)y__; \ -} \ + (((x) + (u32)((const typeof(y))y - 1)) / \ + (u32)((const typeof(y))y)) * \ + (u32)((const typeof(y))y) \ ) - +#endif #define DECLARE_DEV_DESC(Instance, desc) \ (Instance).DevDesc = &(desc); \ (Instance).DevDescSize = sizeof((desc)) @@ -479,6 +589,32 @@ union XUsbPsu_Event { (Instance).ConfigDesc = &(desc); \ (Instance).ConfigDescSize = sizeof((desc)) +static inline void *XUsbPsu_get_drvdata(struct XUsbPsu *InstancePtr) { + return InstancePtr->data_ptr; +} + +static inline void XUsbPsu_set_drvdata(struct XUsbPsu *InstancePtr, void *data) { + InstancePtr->data_ptr = data; +} + +static inline void XUsbPsu_set_ch9handler( + struct XUsbPsu *InstancePtr, + void (*func)(struct Usb_DevData *, SetupPacket *)) { + InstancePtr->Chapter9 = func; +} + +static inline void XUsbPsu_set_rsthandler( + struct XUsbPsu *InstancePtr, + void (*func)(struct Usb_DevData *)) { + InstancePtr->ResetIntrHandler = func; +} + +static inline void XUsbPsu_set_disconnect( + struct XUsbPsu *InstancePtr, + void (*func)(struct Usb_DevData *)) { + InstancePtr->DisconnectIntrHandler = func; +} + /************************** Function Prototypes ******************************/ /* @@ -510,7 +646,6 @@ s32 XUsbPsu_SendGenericCmd(struct XUsbPsu *InstancePtr, s32 Cmd, u32 Param); void XUsbPsu_SetSpeed(struct XUsbPsu *InstancePtr, u32 Speed); s32 XUsbPsu_SetDeviceAddress(struct XUsbPsu *InstancePtr, u16 Addr); -s32 XUsbPsu_IsSuperSpeed(struct XUsbPsu *InstancePtr); s32 XUsbPsu_SetU1SleepTimeout(struct XUsbPsu *InstancePtr, u8 Sleep); s32 XUsbPsu_SetU2SleepTimeout(struct XUsbPsu *InstancePtr, u8 Sleep); s32 XUsbPsu_AcceptU1U2Sleep(struct XUsbPsu *InstancePtr); @@ -525,23 +660,25 @@ s32 XUsbPsu_U2SleepDisable(struct XUsbPsu *InstancePtr); struct XUsbPsu_EpParams *XUsbPsu_GetEpParams(struct XUsbPsu *InstancePtr); u32 XUsbPsu_EpGetTransferIndex(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir); -const char *XUsbPsu_EpCmdString(u8 Cmd); s32 XUsbPsu_SendEpCmd(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, u32 Cmd, struct XUsbPsu_EpParams *Params); s32 XUsbPsu_StartEpConfig(struct XUsbPsu *InstancePtr, u32 UsbEpNum, u8 Dir); s32 XUsbPsu_SetEpConfig(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, - u16 Size, u8 Type); + u16 Size, u8 Type, u8 Restore); s32 XUsbPsu_SetXferResource(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir); s32 XUsbPsu_EpEnable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, - u16 Maxsize, u8 Type); + u16 Maxsize, u8 Type, u8 Restore); s32 XUsbPsu_EpDisable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir); s32 XUsbPsu_EnableControlEp(struct XUsbPsu *InstancePtr, u16 Size); void XUsbPsu_InitializeEps(struct XUsbPsu *InstancePtr); -void XUsbPsu_StopTransfer(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir); +void XUsbPsu_StopTransfer(struct XUsbPsu *InstancePtr, u8 UsbEpNum, + u8 Dir, u8 Force); +void XUsbPsu_SaveEndpointState(struct XUsbPsu *InstancePtr, + struct XUsbPsu_Ep *Ept); void XUsbPsu_ClearStalls(struct XUsbPsu *InstancePtr); s32 XUsbPsu_EpBufferSend(struct XUsbPsu *InstancePtr, u8 UsbEp, - u8 *BufferPtr, u32 BufferLen); + u8 *BufferPtr, u32 BufferLen); s32 XUsbPsu_EpBufferRecv(struct XUsbPsu *InstancePtr, u8 UsbEp, u8 *BufferPtr, u32 Length); void XUsbPsu_EpSetStall(struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir); @@ -551,14 +688,14 @@ void XUsbPsu_SetEpHandler(struct XUsbPsu *InstancePtr, u8 Epnum, s32 XUsbPsu_IsEpStalled(struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir); void XUsbPsu_EpXferComplete(struct XUsbPsu *InstancePtr, const struct XUsbPsu_Event_Epevt *Event); +void XUsbPsu_EpXferNotReady(struct XUsbPsu *InstancePtr, + const struct XUsbPsu_Event_Epevt *Event); /* * Functions in xusbpsu_controltransfers.c */ s32 XUsbPsu_RecvSetup(struct XUsbPsu *InstancePtr); void XUsbPsu_Ep0StallRestart(struct XUsbPsu *InstancePtr); -s32 XUsbPsu_SetConfiguration(struct XUsbPsu *InstancePtr, - SetupPacket *Ctrl); void XUsbPsu_Ep0DataDone(struct XUsbPsu *InstancePtr, const struct XUsbPsu_Event_Epevt *Event); void XUsbPsu_Ep0StatusDone(struct XUsbPsu *InstancePtr, @@ -595,6 +732,14 @@ void XUsbPsu_EventHandler(struct XUsbPsu *InstancePtr, void XUsbPsu_EventBufferHandler(struct XUsbPsu *InstancePtr); void XUsbPsu_IntrHandler(void *XUsbPsuInstancePtr); +#ifdef XUSBPSU_HIBERNATION_ENABLE +void XUsbPsu_InitHibernation(struct XUsbPsu *InstancePtr); +void Xusbpsu_HibernationIntr(struct XUsbPsu *InstancePtr); +void XUsbPsu_WakeUpIntrHandler(void *XUsbPsuInstancePtr); +void XUsbPsu_WakeupIntr(struct XUsbPsu *InstancePtr); +s32 XUsbPsu_SetupScratchpad(struct XUsbPsu *InstancePtr); +#endif + /* * Functions in xusbpsu_sinit.c */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_controltransfers.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_controltransfers.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_controltransfers.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_controltransfers.c index b3a93dc63..19be417fb 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_controltransfers.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_controltransfers.c @@ -42,19 +42,20 @@ * Ver Who Date Changes * ----- ---- -------- ------------------------------------------------------- * 1.0 sg 06/06/16 First release +* 1.3 vak 04/03/17 Added CCI support for USB +* 1.4 bk 12/01/18 Modify USBPSU driver code to fit USB common example code +* for all USB IPs. * * * *****************************************************************************/ /***************************** Include Files *********************************/ - -#include "xusbpsu.h" #include "xusbpsu_endpoint.h" -/************************** Constant Definitions *****************************/ +#include "sleep.h" +#include "xusb_wrapper.h" -#define USB_DIR_OUT 0U /* to device */ -#define USB_DIR_IN 0x80U /* to host */ +/************************** Constant Definitions *****************************/ /**************************** Type Definitions *******************************/ @@ -62,10 +63,8 @@ /************************** Function Prototypes ******************************/ - /************************** Variable Definitions *****************************/ - /****************************************************************************/ /** * Initiates DMA on Control Endpoint 0 to receive Setup packet. @@ -92,7 +91,7 @@ s32 XUsbPsu_RecvSetup(struct XUsbPsu *InstancePtr) /* Setup packet always on EP0 */ Ept = &InstancePtr->eps[0]; if ((Ept->EpStatus & XUSBPSU_EP_BUSY) != 0U) { - return XST_FAILURE; + return (s32)XST_FAILURE; } TrbPtr = &InstancePtr->Ep0_Trb; @@ -107,7 +106,10 @@ s32 XUsbPsu_RecvSetup(struct XUsbPsu *InstancePtr) | XUSBPSU_TRB_CTRL_IOC | XUSBPSU_TRB_CTRL_ISP_IMI); - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheFlushRange((UINTPTR)&InstancePtr->SetupData, sizeof(SetupPacket)); + } Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; @@ -117,7 +119,7 @@ s32 XUsbPsu_RecvSetup(struct XUsbPsu *InstancePtr) Ret = XUsbPsu_SendEpCmd(InstancePtr, 0U, XUSBPSU_EP_DIR_OUT, XUSBPSU_DEPCMD_STARTTRANSFER, Params); if (Ret != XST_SUCCESS) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->EpStatus |= XUSBPSU_EP_BUSY; @@ -187,7 +189,8 @@ void XUsbPsu_Ep0DataDone(struct XUsbPsu *InstancePtr, Ept = &InstancePtr->eps[Epnum]; TrbPtr = &InstancePtr->Ep0_Trb; - Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); Status = XUSBPSU_TRB_SIZE_TRBSTS(TrbPtr->Size); if (Status == XUSBPSU_TRBSTS_SETUP_PENDING) { @@ -201,21 +204,22 @@ void XUsbPsu_Ep0DataDone(struct XUsbPsu *InstancePtr, } else { if (Dir == XUSBPSU_EP_DIR_IN) { Ept->BytesTxed = Ept->RequestedBytes - Length; - } else if (Dir == XUSBPSU_EP_DIR_OUT) { - if (Ept->UnalignedTx == 1U) { - Ept->BytesTxed = Ept->RequestedBytes; - Ept->UnalignedTx = 0U; + } else { + if ((Dir == XUSBPSU_EP_DIR_OUT) && (Ept->UnalignedTx == 1U)) { + Ept->BytesTxed = Ept->RequestedBytes; + Ept->UnalignedTx = 0U; } } } if (Dir == XUSBPSU_EP_DIR_OUT) { /* Invalidate Cache */ - Xil_DCacheInvalidateRange((INTPTR)Ept->BufferPtr, Ept->BytesTxed); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheInvalidateRange((INTPTR)Ept->BufferPtr, Ept->BytesTxed); } if (Ept->Handler != NULL) { - Ept->Handler(InstancePtr, Ept->RequestedBytes, Ept->BytesTxed); + Ept->Handler(InstancePtr->AppData, Ept->RequestedBytes, Ept->BytesTxed); } } @@ -251,7 +255,8 @@ void XUsbPsu_Ep0StatusDone(struct XUsbPsu *InstancePtr, return; } } - Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); (void)XUsbPsu_RecvSetup(InstancePtr); } @@ -286,8 +291,10 @@ void XUsbPsu_Ep0XferComplete(struct XUsbPsu *InstancePtr, switch (InstancePtr->Ep0State) { case XUSBPSU_EP0_SETUP_PHASE: - Xil_DCacheInvalidateRange((INTPTR)&InstancePtr->SetupData, + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)&InstancePtr->SetupData, sizeof(InstancePtr->SetupData)); + } Length = Ctrl->wLength; if (Length == 0U) { InstancePtr->IsThreeStage = 0U; @@ -300,7 +307,7 @@ void XUsbPsu_Ep0XferComplete(struct XUsbPsu *InstancePtr, Xil_AssertVoid(InstancePtr->Chapter9 != NULL); - InstancePtr->Chapter9(InstancePtr, + InstancePtr->Chapter9(InstancePtr->AppData, &InstancePtr->SetupData); break; @@ -347,7 +354,7 @@ s32 XUsbPsu_Ep0StartStatus(struct XUsbPsu *InstancePtr, Params = XUsbPsu_GetEpParams(InstancePtr); Xil_AssertNonvoid(Params != NULL); if ((Ept->EpStatus & XUSBPSU_EP_BUSY) != 0U) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Type = (InstancePtr->IsThreeStage != 0U) ? XUSBPSU_TRBCTL_CONTROL_STATUS3 @@ -364,7 +371,9 @@ s32 XUsbPsu_Ep0StartStatus(struct XUsbPsu *InstancePtr, | XUSBPSU_TRB_CTRL_IOC | XUSBPSU_TRB_CTRL_ISP_IMI); - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + } Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; @@ -380,7 +389,7 @@ s32 XUsbPsu_Ep0StartStatus(struct XUsbPsu *InstancePtr, Ret = XUsbPsu_SendEpCmd(InstancePtr, 0U, Dir, XUSBPSU_DEPCMD_STARTTRANSFER, Params); if (Ret != XST_SUCCESS) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->EpStatus |= XUSBPSU_EP_BUSY; @@ -543,7 +552,7 @@ s32 XUsbPsu_Ep0Send(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 BufferLen) Xil_AssertNonvoid(Params != NULL); if ((Ept->EpStatus & XUSBPSU_EP_BUSY) != 0U) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->RequestedBytes = BufferLen; @@ -565,15 +574,17 @@ s32 XUsbPsu_Ep0Send(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 BufferLen) Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); - Xil_DCacheFlushRange((INTPTR)BufferPtr, BufferLen); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheFlushRange((INTPTR)BufferPtr, BufferLen); + } InstancePtr->Ep0State = XUSBPSU_EP0_DATA_PHASE; Ret = XUsbPsu_SendEpCmd(InstancePtr, 0U, XUSBPSU_EP_DIR_IN, XUSBPSU_DEPCMD_STARTTRANSFER, Params); if (Ret != XST_SUCCESS) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->EpStatus |= XUSBPSU_EP_BUSY; @@ -612,7 +623,7 @@ s32 XUsbPsu_Ep0Recv(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 Length) Xil_AssertNonvoid(Params != NULL); if ((Ept->EpStatus & XUSBPSU_EP_BUSY) != 0U) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->RequestedBytes = Length; @@ -627,7 +638,7 @@ s32 XUsbPsu_Ep0Recv(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 Length) */ if (!IS_ALIGNED(Length, Ept->MaxSize)) { Size = (u32)roundup(Length, Ept->MaxSize); - InstancePtr->UnalignedTx = 1U; + Ept->UnalignedTx = 1U; } TrbPtr = &InstancePtr->Ep0_Trb; @@ -642,8 +653,10 @@ s32 XUsbPsu_Ep0Recv(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 Length) | XUSBPSU_TRB_CTRL_IOC | XUSBPSU_TRB_CTRL_ISP_IMI); - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); - Xil_DCacheInvalidateRange((INTPTR)BufferPtr, Length); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheInvalidateRange((INTPTR)BufferPtr, Length); + } Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; @@ -653,7 +666,7 @@ s32 XUsbPsu_Ep0Recv(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 Length) Ret = XUsbPsu_SendEpCmd(InstancePtr, 0U, XUSBPSU_EP_DIR_OUT, XUSBPSU_DEPCMD_STARTTRANSFER, Params); if (Ret != XST_SUCCESS) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->EpStatus |= XUSBPSU_EP_BUSY; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.c similarity index 72% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.c index 41368e526..42e4108c6 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.c @@ -33,7 +33,7 @@ /** * * @file xusbpsu_endpoint.c -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * * @@ -43,32 +43,27 @@ * Ver Who Date Changes * ----- ---- -------- ------------------------------------------------------- * 1.0 sg 06/06/16 First release -* +* 1.3 vak 04/03/17 Added CCI support for USB +* 1.4 bk 12/01/18 Modify USBPSU driver code to fit USB common example code +* for all USB IPs +* myk 12/01/18 Added hibernation support for device mode * * *****************************************************************************/ /***************************** Include Files *********************************/ - -#include "xusbpsu.h" #include "xusbpsu_endpoint.h" -/************************** Constant Definitions *****************************/ +/************************** Constant Definitions *****************************/ /**************************** Type Definitions *******************************/ -/* return Physical EP number as dwc3 mapping */ -#define PhysicalEp(epnum, direction) (((epnum) << 1 ) | (direction)) - /***************** Macros (Inline Functions) Definitions *********************/ - /************************** Function Prototypes ******************************/ - /************************** Variable Definitions *****************************/ - /****************************************************************************/ /** * Returns zeroed parameters to be used by Endpoint commands @@ -233,6 +228,8 @@ s32 XUsbPsu_StartEpConfig(struct XUsbPsu *InstancePtr, u32 UsbEpNum, u8 Dir) * @param Dir is direction of endpoint - XUSBPSU_EP_DIR_IN/XUSBPSU_EP_DIR_OUT. * @param Size is size of Endpoint size. * @param Type is Endpoint type Control/Bulk/Interrupt/Isoc. +* @param Restore should be true if saved state should be restored; +* typically this would be false * * @return XST_SUCCESS else XST_FAILURE. * @@ -240,8 +237,9 @@ s32 XUsbPsu_StartEpConfig(struct XUsbPsu *InstancePtr, u32 UsbEpNum, u8 Dir) * *****************************************************************************/ s32 XUsbPsu_SetEpConfig(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, - u16 Size, u8 Type) + u16 Size, u8 Type, u8 Restore) { + struct XUsbPsu_Ep *Ept; struct XUsbPsu_EpParams *Params; u8 PhyEpNum; @@ -255,6 +253,7 @@ s32 XUsbPsu_SetEpConfig(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, Xil_AssertNonvoid(Params != NULL); PhyEpNum = PhysicalEp(UsbEpNum , Dir); + Ept = &InstancePtr->eps[PhyEpNum]; Params->Param0 = XUSBPSU_DEPCFG_EP_TYPE(Type) | XUSBPSU_DEPCFG_MAX_PACKET_SIZE(Size); @@ -262,11 +261,18 @@ s32 XUsbPsu_SetEpConfig(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, /* * Set burst size to 1 as recommended */ - Params->Param0 |= XUSBPSU_DEPCFG_BURST_SIZE(1); + if (InstancePtr->AppData->Speed == XUSBPSU_SPEED_SUPER) { + Params->Param0 |= XUSBPSU_DEPCFG_BURST_SIZE(1); + } Params->Param1 = XUSBPSU_DEPCFG_XFER_COMPLETE_EN | XUSBPSU_DEPCFG_XFER_NOT_READY_EN; + if (Restore) { + Params->Param0 |= XUSBPSU_DEPCFG_ACTION_RESTORE; + Params->Param2 = Ept->EpSavedState; + } + /* * We are doing 1:1 mapping for endpoints, meaning * Physical Endpoints 2 maps to Logical Endpoint 2 and @@ -279,6 +285,11 @@ s32 XUsbPsu_SetEpConfig(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, Params->Param0 |= XUSBPSU_DEPCFG_FIFO_NUMBER((u32)PhyEpNum >> 1); } + if (Ept->Type == XUSBPSU_ENDPOINT_XFER_ISOC) { + Params->Param1 |= XUSBPSU_DEPCFG_BINTERVAL_M1(Ept->Interval - 1); + Params->Param1 |= XUSBPSU_DEPCFG_XFER_IN_PROGRESS_EN; + } + return XUsbPsu_SendEpCmd(InstancePtr, UsbEpNum, Dir, XUSBPSU_DEPCMD_SETEPCONFIG, Params); } @@ -325,6 +336,8 @@ s32 XUsbPsu_SetXferResource(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) * @param Dir is direction of endpoint - XUSBPSU_EP_DIR_IN/XUSBPSU_EP_DIR_OUT. * @param Maxsize is size of Endpoint size. * @param Type is Endpoint type Control/Bulk/Interrupt/Isoc. +* @param Restore should be true if saved state should be restored; +* typically this would be false * * @return XST_SUCCESS else XST_FAILURE. * @@ -332,9 +345,10 @@ s32 XUsbPsu_SetXferResource(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) * ****************************************************************************/ s32 XUsbPsu_EpEnable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, - u16 Maxsize, u8 Type) + u16 Maxsize, u8 Type, u8 Restore) { struct XUsbPsu_Ep *Ept; + struct XUsbPsu_Trb *TrbStHw, *TrbLink; u32 RegVal; s32 Ret = (s32)XST_FAILURE; u32 PhyEpNum; @@ -353,20 +367,28 @@ s32 XUsbPsu_EpEnable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, Ept->Type = Type; Ept->MaxSize = Maxsize; Ept->PhyEpNum = (u8)PhyEpNum; + Ept->CurUf = 0; + if (!InstancePtr->IsHibernated) { + Ept->TrbEnqueue = 0; + Ept->TrbDequeue = 0; + } - if ((Ept->EpStatus & XUSBPSU_EP_ENABLED) == 0U) { + if (((Ept->EpStatus & XUSBPSU_EP_ENABLED) == 0U) + || (InstancePtr->IsHibernated)) { Ret = XUsbPsu_StartEpConfig(InstancePtr, UsbEpNum, Dir); if (Ret != 0) { return Ret; } } - Ret = XUsbPsu_SetEpConfig(InstancePtr, UsbEpNum, Dir, Maxsize, Type); + Ret = XUsbPsu_SetEpConfig(InstancePtr, UsbEpNum, Dir, Maxsize, + Type, Restore); if (Ret != 0) { return Ret; } - if ((Ept->EpStatus & XUSBPSU_EP_ENABLED) == 0U) { + if (((Ept->EpStatus & XUSBPSU_EP_ENABLED) == 0U) + || (InstancePtr->IsHibernated)) { Ret = XUsbPsu_SetXferResource(InstancePtr, UsbEpNum, Dir); if (Ret != 0) { return Ret; @@ -377,6 +399,18 @@ s32 XUsbPsu_EpEnable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DALEPENA); RegVal |= XUSBPSU_DALEPENA_EP(Ept->PhyEpNum); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DALEPENA, RegVal); + + /* Following code is only applicable for ISO XFER */ + TrbStHw = &Ept->EpTrb[0]; + + /* Link TRB. The HWO bit is never reset */ + TrbLink = &Ept->EpTrb[NO_OF_TRB_PER_EP]; + memset(TrbLink, 0x00, sizeof(struct XUsbPsu_Trb)); + + TrbLink->BufferPtrLow = (UINTPTR)TrbStHw; + TrbLink->BufferPtrHigh = ((UINTPTR)TrbStHw >> 16) >> 16; + TrbLink->Ctrl |= XUSBPSU_TRBCTL_LINK_TRB; + TrbLink->Ctrl |= XUSBPSU_TRB_CTRL_HWO; } return XST_SUCCESS; @@ -410,6 +444,10 @@ s32 XUsbPsu_EpDisable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) PhyEpNum = PhysicalEp(UsbEpNum , Dir); Ept = &InstancePtr->eps[PhyEpNum]; + /* make sure HW endpoint isn't stalled */ + if (Ept->EpStatus & XUSBPSU_EP_STALL) + XUsbPsu_EpClearStall(InstancePtr, Ept->UsbEpNum, Ept->Direction); + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DALEPENA); RegVal &= ~XUSBPSU_DALEPENA_EP(PhyEpNum); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DALEPENA, RegVal); @@ -417,6 +455,8 @@ s32 XUsbPsu_EpDisable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) Ept->Type = 0U; Ept->EpStatus = 0U; Ept->MaxSize = 0U; + Ept->TrbEnqueue = 0U; + Ept->TrbDequeue = 0U; return XST_SUCCESS; } @@ -441,13 +481,13 @@ s32 XUsbPsu_EnableControlEp(struct XUsbPsu *InstancePtr, u16 Size) Xil_AssertNonvoid((Size >= 64U) && (Size <= 512U)); RetVal = XUsbPsu_EpEnable(InstancePtr, 0U, XUSBPSU_EP_DIR_OUT, Size, - XUSBPSU_ENDPOINT_XFER_CONTROL); + XUSBPSU_ENDPOINT_XFER_CONTROL, FALSE); if (RetVal != 0) { return XST_FAILURE; } RetVal = XUsbPsu_EpEnable(InstancePtr, 0U, XUSBPSU_EP_DIR_IN, Size, - XUSBPSU_ENDPOINT_XFER_CONTROL); + XUSBPSU_ENDPOINT_XFER_CONTROL, FALSE); if (RetVal != 0) { return XST_FAILURE; } @@ -479,11 +519,13 @@ void XUsbPsu_InitializeEps(struct XUsbPsu *InstancePtr) Epnum = (i << 1U) | XUSBPSU_EP_DIR_OUT; InstancePtr->eps[Epnum].PhyEpNum = Epnum; InstancePtr->eps[Epnum].Direction = XUSBPSU_EP_DIR_OUT; + InstancePtr->eps[Epnum].ResourceIndex = 0; } for (i = 0U; i < InstancePtr->NumInEps; i++) { Epnum = (i << 1U) | XUSBPSU_EP_DIR_IN; InstancePtr->eps[Epnum].PhyEpNum = Epnum; InstancePtr->eps[Epnum].Direction = XUSBPSU_EP_DIR_IN; + InstancePtr->eps[Epnum].ResourceIndex = 0; } } @@ -494,13 +536,15 @@ void XUsbPsu_InitializeEps(struct XUsbPsu *InstancePtr) * @param InstancePtr is a pointer to the XUsbPsu instance. * @param UsbEpNum is USB endpoint number. * @param Dir is direction of endpoint - XUSBPSU_EP_DIR_IN/XUSBPSU_EP_DIR_OUT. +* @Force Force flag to stop/pause transfer. * * @return None. * * @note None. * ****************************************************************************/ -void XUsbPsu_StopTransfer(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) +void XUsbPsu_StopTransfer(struct XUsbPsu *InstancePtr, u8 UsbEpNum, + u8 Dir, u8 Force) { struct XUsbPsu_Ep *Ept; struct XUsbPsu_EpParams *Params; @@ -526,15 +570,37 @@ void XUsbPsu_StopTransfer(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) * - Wait 100us */ Cmd = XUSBPSU_DEPCMD_ENDTRANSFER; + Cmd |= Force ? XUSBPSU_DEPCMD_HIPRI_FORCERM : 0; Cmd |= XUSBPSU_DEPCMD_CMDIOC; Cmd |= XUSBPSU_DEPCMD_PARAM(Ept->ResourceIndex); - (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->PhyEpNum, Ept->Direction, + (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, Cmd, Params); - Ept->ResourceIndex = 0U; + if (Force) + Ept->ResourceIndex = 0U; Ept->EpStatus &= ~XUSBPSU_EP_BUSY; XUsbSleep(100U); } +/****************************************************************************/ +/** +* Query endpoint state and save it in EpSavedState +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* @param Ept is a pointer to the XUsbPsu pointer structure. +* +* @return None. +* +* @note None. +* +****************************************************************************/ +void XUsbPsu_SaveEndpointState(struct XUsbPsu *InstancePtr, struct XUsbPsu_Ep *Ept) +{ + struct XUsbPsu_EpParams *Params = XUsbPsu_GetEpParams(InstancePtr); + XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, + XUSBPSU_DEPCMD_GETEPSTATE, Params); + Ept->EpSavedState = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DEPCMDPAR2(Ept->PhyEpNum)); +} + /****************************************************************************/ /** * Clears Stall on all endpoints. @@ -570,7 +636,7 @@ void XUsbPsu_ClearStalls(struct XUsbPsu *InstancePtr) Ept->EpStatus &= ~XUSBPSU_EP_STALL; - (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->PhyEpNum, + (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, XUSBPSU_DEPCMD_CLEARSTALL, Params); } @@ -594,6 +660,7 @@ s32 XUsbPsu_EpBufferSend(struct XUsbPsu *InstancePtr, u8 UsbEp, u8 *BufferPtr, u32 BufferLen) { u8 PhyEpNum; + u32 cmd; s32 RetVal; struct XUsbPsu_Trb *TrbPtr; struct XUsbPsu_Ep *Ept; @@ -619,35 +686,98 @@ s32 XUsbPsu_EpBufferSend(struct XUsbPsu *InstancePtr, u8 UsbEp, Ept->BytesTxed = 0U; Ept->BufferPtr = BufferPtr; - TrbPtr = &Ept->EpTrb; + TrbPtr = &Ept->EpTrb[Ept->TrbEnqueue]; Xil_AssertNonvoid(TrbPtr != NULL); + Ept->TrbEnqueue++; + if (Ept->TrbEnqueue == NO_OF_TRB_PER_EP) + Ept->TrbEnqueue = 0; TrbPtr->BufferPtrLow = (UINTPTR)BufferPtr; TrbPtr->BufferPtrHigh = ((UINTPTR)BufferPtr >> 16) >> 16; TrbPtr->Size = BufferLen & XUSBPSU_TRB_SIZE_MASK; - TrbPtr->Ctrl = XUSBPSU_TRBCTL_NORMAL; + + switch (Ept->Type) { + case XUSBPSU_ENDPOINT_XFER_ISOC: + /* + * According to DWC3 datasheet, XUSBPSU_TRBCTL_ISOCHRONOUS and + * XUSBPSU_TRBCTL_CHN fields are only set when request has + * scattered list so these fields are not set over here. + */ + TrbPtr->Ctrl = (XUSBPSU_TRBCTL_ISOCHRONOUS_FIRST + | XUSBPSU_TRB_CTRL_CSP); + + break; + case XUSBPSU_ENDPOINT_XFER_INT: + case XUSBPSU_ENDPOINT_XFER_BULK: + TrbPtr->Ctrl = (XUSBPSU_TRBCTL_NORMAL + | XUSBPSU_TRB_CTRL_LST); + + break; + } TrbPtr->Ctrl |= (XUSBPSU_TRB_CTRL_HWO - | XUSBPSU_TRB_CTRL_LST - | XUSBPSU_TRB_CTRL_IOC - | XUSBPSU_TRB_CTRL_ISP_IMI); + | XUSBPSU_TRB_CTRL_IOC + | XUSBPSU_TRB_CTRL_ISP_IMI); - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); - Xil_DCacheFlushRange((INTPTR)BufferPtr, BufferLen); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheFlushRange((INTPTR)BufferPtr, BufferLen); + } Params = XUsbPsu_GetEpParams(InstancePtr); Xil_AssertNonvoid(Params != NULL); Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; + if (Ept->EpStatus & XUSBPSU_EP_BUSY) { + cmd = XUSBPSU_DEPCMD_UPDATETRANSFER; + cmd |= XUSBPSU_DEPCMD_PARAM(Ept->ResourceIndex); + } else { + if (Ept->Type == XUSBPSU_ENDPOINT_XFER_ISOC) { + BufferPtr += BufferLen; + struct XUsbPsu_Trb *TrbTempNext; + TrbTempNext = &Ept->EpTrb[Ept->TrbEnqueue]; + Xil_AssertNonvoid(TrbTempNext != NULL); + + Ept->TrbEnqueue++; + if (Ept->TrbEnqueue == NO_OF_TRB_PER_EP) + Ept->TrbEnqueue = 0; + TrbTempNext->BufferPtrLow = (UINTPTR)BufferPtr; + TrbTempNext->BufferPtrHigh = ((UINTPTR)BufferPtr >> 16) >> 16; + TrbTempNext->Size = BufferLen & XUSBPSU_TRB_SIZE_MASK; + + TrbTempNext->Ctrl = (XUSBPSU_TRBCTL_ISOCHRONOUS_FIRST + | XUSBPSU_TRB_CTRL_CSP + | XUSBPSU_TRB_CTRL_HWO + | XUSBPSU_TRB_CTRL_IOC + | XUSBPSU_TRB_CTRL_ISP_IMI); + + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbTempNext, + sizeof(struct XUsbPsu_Trb)); + Xil_DCacheFlushRange((INTPTR)BufferPtr, BufferLen); + } + + } + + cmd = XUSBPSU_DEPCMD_STARTTRANSFER; + cmd |= XUSBPSU_DEPCMD_PARAM(Ept->CurUf); + } + RetVal = XUsbPsu_SendEpCmd(InstancePtr, UsbEp, Ept->Direction, - XUSBPSU_DEPCMD_STARTTRANSFER, Params); + cmd, Params); if (RetVal != XST_SUCCESS) { return XST_FAILURE; } - Ept->ResourceIndex = (u8)XUsbPsu_EpGetTransferIndex(InstancePtr, - Ept->UsbEpNum, - Ept->Direction); + + if (!(Ept->EpStatus & XUSBPSU_EP_BUSY)) { + Ept->ResourceIndex = (u8)XUsbPsu_EpGetTransferIndex(InstancePtr, + Ept->UsbEpNum, + Ept->Direction); + + Ept->EpStatus |= XUSBPSU_EP_BUSY; + } + return XST_SUCCESS; } @@ -656,7 +786,7 @@ s32 XUsbPsu_EpBufferSend(struct XUsbPsu *InstancePtr, u8 UsbEp, * Initiates DMA to receive data on Endpoint from Host. * * @param InstancePtr is a pointer to the XUsbPsu instance. -* @param EpNum is USB endpoint number. +* @param UsbEp is USB endpoint number. * @param BufferPtr is pointer to data. * @param Length is length of data to be received. * @@ -669,7 +799,8 @@ s32 XUsbPsu_EpBufferRecv(struct XUsbPsu *InstancePtr, u8 UsbEp, u8 *BufferPtr, u32 Length) { u8 PhyEpNum; - u32 Size; + u32 cmd; + u32 Size; s32 RetVal; struct XUsbPsu_Trb *TrbPtr; struct XUsbPsu_Ep *Ept; @@ -706,36 +837,100 @@ s32 XUsbPsu_EpBufferRecv(struct XUsbPsu *InstancePtr, u8 UsbEp, Ept->UnalignedTx = 1U; } - TrbPtr = &Ept->EpTrb; + TrbPtr = &Ept->EpTrb[Ept->TrbEnqueue]; Xil_AssertNonvoid(TrbPtr != NULL); + Ept->TrbEnqueue++; + if (Ept->TrbEnqueue == NO_OF_TRB_PER_EP) + Ept->TrbEnqueue = 0; + TrbPtr->BufferPtrLow = (UINTPTR)BufferPtr; TrbPtr->BufferPtrHigh = ((UINTPTR)BufferPtr >> 16) >> 16; TrbPtr->Size = Size; - TrbPtr->Ctrl = XUSBPSU_TRBCTL_NORMAL; + + switch (Ept->Type) { + case XUSBPSU_ENDPOINT_XFER_ISOC: + /* + * According to Linux driver, XUSBPSU_TRBCTL_ISOCHRONOUS and + * XUSBPSU_TRBCTL_CHN fields are only set when request has + * scattered list so these fields are not set over here. + */ + TrbPtr->Ctrl = (XUSBPSU_TRBCTL_ISOCHRONOUS_FIRST + | XUSBPSU_TRB_CTRL_CSP); + + break; + case XUSBPSU_ENDPOINT_XFER_INT: + case XUSBPSU_ENDPOINT_XFER_BULK: + TrbPtr->Ctrl = (XUSBPSU_TRBCTL_NORMAL + | XUSBPSU_TRB_CTRL_LST); + + break; + } TrbPtr->Ctrl |= (XUSBPSU_TRB_CTRL_HWO - | XUSBPSU_TRB_CTRL_LST - | XUSBPSU_TRB_CTRL_IOC - | XUSBPSU_TRB_CTRL_ISP_IMI); + | XUSBPSU_TRB_CTRL_IOC + | XUSBPSU_TRB_CTRL_ISP_IMI); - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); - Xil_DCacheInvalidateRange((INTPTR)BufferPtr, Length); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheInvalidateRange((INTPTR)BufferPtr, Length); + } Params = XUsbPsu_GetEpParams(InstancePtr); Xil_AssertNonvoid(Params != NULL); Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; + if (Ept->EpStatus & XUSBPSU_EP_BUSY) { + cmd = XUSBPSU_DEPCMD_UPDATETRANSFER; + cmd |= XUSBPSU_DEPCMD_PARAM(Ept->ResourceIndex); + } else { + if (Ept->Type == XUSBPSU_ENDPOINT_XFER_ISOC) { + BufferPtr += Length; + struct XUsbPsu_Trb *TrbTempNext; + TrbTempNext = &Ept->EpTrb[Ept->TrbEnqueue]; + Xil_AssertNonvoid(TrbTempNext != NULL); + + Ept->TrbEnqueue++; + if (Ept->TrbEnqueue == NO_OF_TRB_PER_EP) + Ept->TrbEnqueue = 0; + TrbTempNext->BufferPtrLow = (UINTPTR)BufferPtr; + TrbTempNext->BufferPtrHigh = ((UINTPTR)BufferPtr >> 16) >> 16; + TrbTempNext->Size = Length & XUSBPSU_TRB_SIZE_MASK; + + TrbTempNext->Ctrl = (XUSBPSU_TRBCTL_ISOCHRONOUS_FIRST + | XUSBPSU_TRB_CTRL_CSP + | XUSBPSU_TRB_CTRL_HWO + | XUSBPSU_TRB_CTRL_IOC + | XUSBPSU_TRB_CTRL_ISP_IMI); + + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbTempNext, + sizeof(struct XUsbPsu_Trb)); + Xil_DCacheFlushRange((INTPTR)BufferPtr, Length); + } + + } + + cmd = XUSBPSU_DEPCMD_STARTTRANSFER; + cmd |= XUSBPSU_DEPCMD_PARAM(Ept->CurUf); + } + RetVal = XUsbPsu_SendEpCmd(InstancePtr, UsbEp, Ept->Direction, - XUSBPSU_DEPCMD_STARTTRANSFER, Params); + cmd, Params); if (RetVal != XST_SUCCESS) { return XST_FAILURE; } - Ept->ResourceIndex = (u8)XUsbPsu_EpGetTransferIndex(InstancePtr, - Ept->UsbEpNum, - Ept->Direction); + + if (!(Ept->EpStatus & XUSBPSU_EP_BUSY)) { + Ept->ResourceIndex = (u8)XUsbPsu_EpGetTransferIndex(InstancePtr, + Ept->UsbEpNum, + Ept->Direction); + + Ept->EpStatus |= XUSBPSU_EP_BUSY; + } + return XST_SUCCESS; } @@ -744,7 +939,7 @@ s32 XUsbPsu_EpBufferRecv(struct XUsbPsu *InstancePtr, u8 UsbEp, * Stalls an Endpoint. * * @param InstancePtr is a pointer to the XUsbPsu instance. -* @param EpNum is USB endpoint number. +* @param Epnum is USB endpoint number. * @param Dir is direction. * * @return None. @@ -768,7 +963,7 @@ void XUsbPsu_EpSetStall(struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir) Params = XUsbPsu_GetEpParams(InstancePtr); Xil_AssertVoid(Params != NULL); - (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->PhyEpNum, Ept->Direction, + (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, XUSBPSU_DEPCMD_SETSTALL, Params); Ept->EpStatus |= XUSBPSU_EP_STALL; @@ -803,7 +998,7 @@ void XUsbPsu_EpClearStall(struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir) Params = XUsbPsu_GetEpParams(InstancePtr); Xil_AssertVoid(Params != NULL); - (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->PhyEpNum, Ept->Direction, + (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, XUSBPSU_DEPCMD_CLEARSTALL, Params); Ept->EpStatus &= ~XUSBPSU_EP_STALL; @@ -895,10 +1090,20 @@ void XUsbPsu_EpXferComplete(struct XUsbPsu *InstancePtr, Epnum = Event->Epnumber; Ept = &InstancePtr->eps[Epnum]; Dir = Ept->Direction; - TrbPtr = &Ept->EpTrb; + TrbPtr = &Ept->EpTrb[Ept->TrbDequeue]; Xil_AssertVoid(TrbPtr != NULL); - Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Ept->TrbDequeue++; + if (Ept->TrbDequeue == NO_OF_TRB_PER_EP) + Ept->TrbDequeue = 0; + + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + + if (Event->Endpoint_Event == XUSBPSU_DEPEVT_XFERCOMPLETE) { + Ept->EpStatus &= ~(XUSBPSU_EP_BUSY); + Ept->ResourceIndex = 0; + } Length = TrbPtr->Size & XUSBPSU_TRB_SIZE_MASK; @@ -909,19 +1114,64 @@ void XUsbPsu_EpXferComplete(struct XUsbPsu *InstancePtr, Ept->BytesTxed = Ept->RequestedBytes - Length; } else if (Dir == XUSBPSU_EP_DIR_OUT) { if (Ept->UnalignedTx == 1U) { - Ept->BytesTxed = Ept->RequestedBytes; + Ept->BytesTxed = (u32)roundup(Ept->RequestedBytes, + Ept->MaxSize); + Ept->BytesTxed -= Length; Ept->UnalignedTx = 0U; + } else { + /* + * Get the actual number of bytes transmitted + * by host + */ + Ept->BytesTxed = Ept->RequestedBytes - Length; } } } if (Dir == XUSBPSU_EP_DIR_OUT) { /* Invalidate Cache */ - Xil_DCacheInvalidateRange((INTPTR)Ept->BufferPtr, Ept->BytesTxed); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheInvalidateRange((INTPTR)Ept->BufferPtr, Ept->BytesTxed); } if (Ept->Handler != NULL) { - Ept->Handler(InstancePtr, Ept->RequestedBytes, Ept->BytesTxed); + Ept->Handler(InstancePtr->AppData, Ept->RequestedBytes, Ept->BytesTxed); + } +} + +/****************************************************************************/ +/** +* For Isochronous transfer, get the microframe time and calls respective Endpoint +* handler. +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* @param Event is a pointer to the Endpoint event occurred in core. +* +* @return None. +* +* @note None. +* +*****************************************************************************/ +void XUsbPsu_EpXferNotReady(struct XUsbPsu *InstancePtr, + const struct XUsbPsu_Event_Epevt *Event) +{ + struct XUsbPsu_Ep *Ept; + u32 Epnum; + u32 CurUf, Mask; + + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid(Event != NULL); + + Epnum = Event->Epnumber; + Ept = &InstancePtr->eps[Epnum]; + + if (Ept->Type == XUSBPSU_ENDPOINT_XFER_ISOC) { + Mask = ~(1 << (Ept->Interval - 1)); + CurUf = Event->Parameters & Mask; + Ept->CurUf = CurUf + (Ept->Interval * 4); + if (Ept->Handler != NULL) { + Ept->Handler(InstancePtr->AppData, 0, 0); + } } } /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.h index 299837862..b80da4832 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.h @@ -33,7 +33,7 @@ /** * * @file xusbps_endpoint.h -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * * This is an internal file containing the definitions for endpoints. It is @@ -46,6 +46,9 @@ * Ver Who Date Changes * ----- ---- -------- -------------------------------------------------------- * 1.0 sg 06/06/16 First release + * 1.4 bk 12/01/18 Modify USBPSU driver code to fit USB common example code + * for all USB IPs. + * * * ******************************************************************************/ @@ -59,7 +62,7 @@ extern "C" { /***************************** Include Files *********************************/ #include "xil_cache.h" -#include "xusbpsu.h" +#include "xusb_wrapper.h" #include "xil_types.h" /**************************** Type Definitions *******************************/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_g.c similarity index 86% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_g.c index 41a9b8c7a..4019d76df 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,11 +44,12 @@ * The configuration table for devices */ -XUsbPsu_Config XUsbPsu_ConfigTable[] = +XUsbPsu_Config XUsbPsu_ConfigTable[XPAR_XUSBPSU_NUM_INSTANCES] = { { - XPAR_PSU_USB_0_DEVICE_ID, - XPAR_PSU_USB_0_BASEADDR + XPAR_PSU_USB_XHCI_0_DEVICE_ID, + XPAR_PSU_USB_XHCI_0_BASEADDR, + XPAR_PSU_USB_XHCI_0_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_hibernation.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_hibernation.c new file mode 100644 index 000000000..20f53c974 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_hibernation.c @@ -0,0 +1,688 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file xusbpsu_hibernation.c +* +* This patch adds hibernation support to usbpsu driver when dwc3 is operating +* as a gadget +* +*
+*
+* MODIFICATION HISTORY:
+*
+* Ver    Who    Date     Changes
+* ----- -----  -------- -----------------------------------------------------
+* 1.0   Mayank 12/01/18 First release
+*
+* 
+* +*****************************************************************************/ + +/***************************** Include Files ********************************/ + +#include "xusbpsu.h" +#include "xusbpsu_hw.h" +#include "xusbpsu_endpoint.h" + +/************************** Constant Definitions *****************************/ + +#define NUM_OF_NONSTICKY_REGS 27 + +#define XUSBPSU_HIBER_SCRATCHBUF_SIZE 4096U + +#define XUSBPSU_NON_STICKY_SAVE_RETRIES 500U +#define XUSBPSU_PWR_STATE_RETRIES 1500U +#define XUSBPSU_CTRL_RDY_RETRIES 5000U +#define XUSBPSU_TIMEOUT 1000U + +/**************************** Type Definitions *******************************/ + + +/***************** Macros (Inline Functions) Definitions *********************/ + + +/************************** Function Prototypes ******************************/ + + +/************************** Variable Definitions *****************************/ + +static u8 ScratchBuf[XUSBPSU_HIBER_SCRATCHBUF_SIZE]; + +/* Registers saved during hibernation and restored at wakeup */ +static u32 save_reg_addr[] = { + XUSBPSU_DCTL, + XUSBPSU_DCFG, + XUSBPSU_DEVTEN, + XUSBPSU_GSBUSCFG0, + XUSBPSU_GSBUSCFG1, + XUSBPSU_GCTL, + XUSBPSU_GTXTHRCFG, + XUSBPSU_GRXTHRCFG, + XUSBPSU_GTXFIFOSIZ(0), + XUSBPSU_GTXFIFOSIZ(1), + XUSBPSU_GTXFIFOSIZ(2), + XUSBPSU_GTXFIFOSIZ(3), + XUSBPSU_GTXFIFOSIZ(4), + XUSBPSU_GTXFIFOSIZ(5), + XUSBPSU_GTXFIFOSIZ(6), + XUSBPSU_GTXFIFOSIZ(7), + XUSBPSU_GTXFIFOSIZ(8), + XUSBPSU_GTXFIFOSIZ(9), + XUSBPSU_GTXFIFOSIZ(10), + XUSBPSU_GTXFIFOSIZ(11), + XUSBPSU_GTXFIFOSIZ(12), + XUSBPSU_GTXFIFOSIZ(13), + XUSBPSU_GTXFIFOSIZ(14), + XUSBPSU_GTXFIFOSIZ(15), + XUSBPSU_GRXFIFOSIZ(0), + XUSBPSU_GUSB3PIPECTL(0), + XUSBPSU_GUSB2PHYCFG(0), +}; +static u32 saved_regs[NUM_OF_NONSTICKY_REGS]; + +/*****************************************************************************/ +/** +* Save non sticky registers +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return None. +* +* @note None. +* +******************************************************************************/ +static void save_regs(struct XUsbPsu *InstancePtr) +{ + u32 i; + + for (i = 0; i < NUM_OF_NONSTICKY_REGS; i++) + saved_regs[i] = XUsbPsu_ReadReg(InstancePtr, save_reg_addr[i]); +} + +/*****************************************************************************/ +/** +* Restore non sticky registers +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return None. +* +* @note None. +* +******************************************************************************/ +static void restore_regs(struct XUsbPsu *InstancePtr) +{ + u32 i; + + for (i = 0; i < NUM_OF_NONSTICKY_REGS; i++) + XUsbPsu_WriteReg(InstancePtr, save_reg_addr[i], saved_regs[i]); +} + +/*****************************************************************************/ +/** +* Send generic command for gadget +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* @param cmd is command to be sent +* @param param is parameter for the command, to be written in DGCMDPAR +* register +* +* @return +* - XST_SUCCESS on success +* - XST_FAILURE on timeout +* - XST_REGISTER_ERROR on status error +* +* @note None. +* +******************************************************************************/ +s32 XUsbPsu_SendGadgetGenericCmd(struct XUsbPsu *InstancePtr, u32 cmd, + u32 param) +{ + u32 RegVal, retry = 500; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DGCMDPAR, param); + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DGCMD, cmd | XUSBPSU_DGCMD_CMDACT); + + do { + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DGCMD); + if (!(RegVal & XUSBPSU_DGCMD_CMDACT)) { + if (XUSBPSU_DGCMD_STATUS(RegVal)) + return XST_REGISTER_ERROR; + return 0; + } + } while (--retry); + + return XST_FAILURE; +} + +/*****************************************************************************/ +/** +* Sets scratchpad buffers +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return XST_SUCCESS on success or else error code +* +* @note None. +* +******************************************************************************/ +s32 XUsbPsu_SetupScratchpad(struct XUsbPsu *InstancePtr) +{ + s32 Ret; + Ret = XUsbPsu_SendGadgetGenericCmd(InstancePtr, + XUSBPSU_DGCMD_SET_SCRATCHPAD_ADDR_LO, (UINTPTR)ScratchBuf & 0xffffffff); + if (Ret) { + xil_printf("Failed to set scratchpad low addr: %d\n", Ret); + return Ret; + } + + Ret = XUsbPsu_SendGadgetGenericCmd(InstancePtr, + XUSBPSU_DGCMD_SET_SCRATCHPAD_ADDR_HI, ((UINTPTR)ScratchBuf >> 16) >> 16); + if (Ret) { + xil_printf("Failed to set scratchpad high addr: %d\n", Ret); + return Ret; + } + + return XST_SUCCESS; +} + +/*****************************************************************************/ +/** +* Initialize to handle hibernation event when it comes +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return none +* +* @note None. +* +******************************************************************************/ +void XUsbPsu_InitHibernation(struct XUsbPsu *InstancePtr) +{ + u32 RegVal; + + InstancePtr->IsHibernated = 0; + + memset(ScratchBuf, 0, sizeof(ScratchBuf)); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheFlushRange((INTPTR)ScratchBuf, XUSBPSU_HIBER_SCRATCHBUF_SIZE); + + XUsbPsu_SetupScratchpad(InstancePtr); + + /* enable PHY suspend */ + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GUSB2PHYCFG(0)); + RegVal |= XUSBPSU_GUSB2PHYCFG_SUSPHY; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GUSB2PHYCFG(0), RegVal); + + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GUSB3PIPECTL(0)); + RegVal |= XUSBPSU_GUSB3PIPECTL_SUSPHY; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GUSB3PIPECTL(0), RegVal); +} + +/*****************************************************************************/ +/** +* Handle hibernation event +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return none +* +* @note None. +* +******************************************************************************/ +void Xusbpsu_HibernationIntr(struct XUsbPsu *InstancePtr) +{ + u8 EpNum; + u32 RegVal; + s32 retries; + XusbPsuLinkState LinkState; + + /* sanity check */ + switch(XUsbPsu_GetLinkState(InstancePtr)) { + case XUSBPSU_LINK_STATE_SS_DIS: + case XUSBPSU_LINK_STATE_U3: + break; + default: + /* fake hiber interrupt */ + xil_printf("got fake interrupt\r\n"); + return; + }; + + if (InstancePtr->Ep0State == XUSBPSU_EP0_SETUP_PHASE) { + XUsbPsu_StopTransfer(InstancePtr, 0, XUSBPSU_EP_DIR_OUT, TRUE); + XUsbPsu_RecvSetup(InstancePtr); + } + + /* stop active transfers for all endpoints including control + * endpoints force rm bit should be 0 when we do this */ + for (EpNum = 0; EpNum < XUSBPSU_ENDPOINTS_NUM; EpNum++) { + struct XUsbPsu_Ep *Ept; + + Ept = &InstancePtr->eps[EpNum]; + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + /* save srsource index for later use */ + XUsbPsu_StopTransfer(InstancePtr, Ept->UsbEpNum, + Ept->Direction, FALSE); + + XUsbPsu_SaveEndpointState(InstancePtr, Ept); + } + + /* + * ack events, don't process them; h/w decrements the count by the value + * written + */ + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GEVNTCOUNT(0)); + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTCOUNT(0), RegVal); + InstancePtr->Evt.Count = 0; + InstancePtr->Evt.Flags &= ~XUSBPSU_EVENT_PENDING; + + if (XUsbPsu_Stop(InstancePtr)) { + xil_printf("Failed to stop USB core\r\n"); + return; + } + + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + + /* Check the link state and if it is disconnected, set + * KEEP_CONNECT to 0 + */ + LinkState = XUsbPsu_GetLinkState(InstancePtr); + if (LinkState == XUSBPSU_LINK_STATE_SS_DIS) { + RegVal &= ~XUSBPSU_DCTL_KEEP_CONNECT; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + + /* update LinkState to be used while wakeup */ + InstancePtr->LinkState = XUSBPSU_LINK_STATE_SS_DIS; + } + + save_regs(InstancePtr); + + /* ask core to save state */ + RegVal |= XUSBPSU_DCTL_CSS; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + + /* wait till core saves */ + if (XUsbPsu_Wait_Clear_Timeout(InstancePtr, XUSBPSU_DSTS, + XUSBPSU_DSTS_SSS, XUSBPSU_NON_STICKY_SAVE_RETRIES) == XST_FAILURE) { + xil_printf("Failed to save core state\r\n"); + return; + } + + /* Enable PME to wakeup from hibernation */ + XUsbPsu_WriteVendorReg(XIL_PME_ENABLE, XIL_PME_ENABLE_SIG_GEN); + + /* change power state to D3 */ + XUsbPsu_WriteVendorReg(XIL_REQ_PWR_STATE, XIL_REQ_PWR_STATE_D3); + + /* wait till current state is changed to D3 */ + retries = XUSBPSU_PWR_STATE_RETRIES; + do { + RegVal = XUsbPsu_ReadVendorReg(XIL_CUR_PWR_STATE); + if ((RegVal & XIL_CUR_PWR_STATE_BITMASK) == XIL_CUR_PWR_STATE_D3) + break; + + XUsbSleep(XUSBPSU_TIMEOUT); + } while (--retries); + + if (retries < 0) { + xil_printf("Failed to change power state to D3\r\n"); + return; + } + XUsbSleep(XUSBPSU_TIMEOUT); + + RegVal = XUsbPsu_ReadLpdReg(RST_LPD_TOP); + if (InstancePtr->ConfigPtr->DeviceId == XPAR_XUSBPSU_0_DEVICE_ID) + XUsbPsu_WriteLpdReg(RST_LPD_TOP, RegVal | USB0_CORE_RST); + + InstancePtr->IsHibernated = 1; + xil_printf("Hibernated!\r\n"); +} + +/*****************************************************************************/ +/** +* Restarts transfer for active endpoint +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* @param EpNum is an endpoint number. +* +* @return XST_SUCCESS on success or else XST_FAILURE. +* +* @note None. +* +******************************************************************************/ +static s32 XUsbPsu_RestartEp(struct XUsbPsu *InstancePtr, u8 EpNum) +{ + struct XUsbPsu_EpParams *Params; + struct XUsbPsu_Trb *TrbPtr; + struct XUsbPsu_Ep *Ept; + u32 Cmd; + s32 Ret; + + Xil_AssertNonvoid(InstancePtr != NULL); + + Params = XUsbPsu_GetEpParams(InstancePtr); + Xil_AssertNonvoid(Params != NULL); + + Ept = &InstancePtr->eps[EpNum]; + + /* check if we need to restart transfer */ + if (!Ept->ResourceIndex && Ept->PhyEpNum) + return XST_SUCCESS; + + if (Ept->UsbEpNum) { + TrbPtr = &Ept->EpTrb[Ept->TrbDequeue]; + } else { + TrbPtr = &InstancePtr->Ep0_Trb; + } + + Xil_AssertNonvoid(TrbPtr != NULL); + + TrbPtr->Ctrl |= XUSBPSU_TRB_CTRL_HWO; + + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheInvalidateRange((INTPTR)Ept->BufferPtr, Ept->RequestedBytes); + } + + Params->Param0 = 0U; + Params->Param1 = (UINTPTR)TrbPtr; + + Cmd = XUSBPSU_DEPCMD_STARTTRANSFER; + + Ret = XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, + Cmd, Params); + if (Ret) + return XST_FAILURE; + + Ept->EpStatus |= XUSBPSU_EP_BUSY; + Ept->ResourceIndex = (u8)XUsbPsu_EpGetTransferIndex(InstancePtr, + Ept->UsbEpNum, Ept->Direction); + + return XST_SUCCESS; +} + +/*****************************************************************************/ +/** +* Restarts EP0 endpoint +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return XST_SUCCESS on success or else XST_FAILURE. +* +* @note None. +* +******************************************************************************/ +static s32 XUsbPsu_RestoreEp0(struct XUsbPsu *InstancePtr) +{ + struct XUsbPsu_Ep *Ept; + s32 Ret; + u8 EpNum; + + for (EpNum = 0; EpNum < 2; EpNum++) { + Ept = &InstancePtr->eps[EpNum]; + + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + Ret = XUsbPsu_EpEnable(InstancePtr, Ept->UsbEpNum, + Ept->Direction, Ept->MaxSize, Ept->Type, TRUE); + if (Ret) { + xil_printf("Failed to enable EP %d on wakeup: %d\r\n", + EpNum, Ret); + return XST_FAILURE; + } + + if (Ept->EpStatus & XUSBPSU_EP_STALL) { + XUsbPsu_Ep0StallRestart(InstancePtr); + } else { + Ret = XUsbPsu_RestartEp(InstancePtr, Ept->PhyEpNum); + if (Ret) { + xil_printf("Failed to restart EP %d on wakeup: %d\r\n", + EpNum, Ret); + return XST_FAILURE; + } + } + } + + return XST_SUCCESS; +} + +/*****************************************************************************/ +/** +* Restarts non EP0 endpoints +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return XST_SUCCESS on success or else XST_FAILURE. +* +* @note None. +* +******************************************************************************/ +static s32 XUsbPsu_RestoreEps(struct XUsbPsu *InstancePtr) +{ + struct XUsbPsu_Ep *Ept; + s32 Ret; + u8 EpNum; + + for (EpNum = 2; EpNum < XUSBPSU_ENDPOINTS_NUM; EpNum++) { + Ept = &InstancePtr->eps[EpNum]; + + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + Ret = XUsbPsu_EpEnable(InstancePtr, Ept->UsbEpNum, + Ept->Direction, Ept->MaxSize, Ept->Type, TRUE); + if (Ret) { + xil_printf("Failed to enable EP %d on wakeup: %d\r\n", + EpNum, Ret); + return XST_FAILURE; + } + } + + for (EpNum = 2; EpNum < XUSBPSU_ENDPOINTS_NUM; EpNum++) { + Ept = &InstancePtr->eps[EpNum]; + + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + if (Ept->EpStatus & XUSBPSU_EP_STALL) { + XUsbPsu_EpSetStall(InstancePtr, Ept->UsbEpNum, Ept->Direction); + } else { + Ret = XUsbPsu_RestartEp(InstancePtr, Ept->PhyEpNum); + if (Ret) { + xil_printf("Failed to restart EP %d on wakeup: %d\r\n", + EpNum, Ret); + return XST_FAILURE; + } + } + } + + return XST_SUCCESS; +} + +/*****************************************************************************/ +/** +* Handle wakeup event +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return none +* +* @note None. +* +******************************************************************************/ +void XUsbPsu_WakeupIntr(struct XUsbPsu *InstancePtr) +{ + u32 RegVal, link_state; + s32 retries; + char enter_hiber; + + RegVal = XUsbPsu_ReadLpdReg(RST_LPD_TOP); + if (InstancePtr->ConfigPtr->DeviceId == XPAR_XUSBPSU_0_DEVICE_ID) + XUsbPsu_WriteLpdReg(RST_LPD_TOP, RegVal & ~USB0_CORE_RST); + + /* change power state to D0 */ + XUsbPsu_WriteVendorReg(XIL_REQ_PWR_STATE, XIL_REQ_PWR_STATE_D0); + + /* wait till current state is changed to D0 */ + retries = XUSBPSU_PWR_STATE_RETRIES; + do { + RegVal = XUsbPsu_ReadVendorReg(XIL_CUR_PWR_STATE); + if ((RegVal & XIL_CUR_PWR_STATE_BITMASK) == XIL_CUR_PWR_STATE_D0) + break; + + XUsbSleep(XUSBPSU_TIMEOUT); + } while (--retries); + + if (retries < 0) { + xil_printf("Failed to change power state to D0\r\n"); + return; + } + + /* ask core to restore non-sticky registers */ + XUsbPsu_SetupScratchpad(InstancePtr); + + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + RegVal |= XUSBPSU_DCTL_CRS; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + + /* wait till non-sticky registers are restored */ + if (XUsbPsu_Wait_Clear_Timeout(InstancePtr, XUSBPSU_DSTS, + XUSBPSU_DSTS_RSS, XUSBPSU_NON_STICKY_SAVE_RETRIES) == XST_FAILURE) { + xil_printf("Failed to restore USB core\r\n"); + return; + } + + restore_regs(InstancePtr); + + /* setup event buffers */ + XUsbPsu_EventBuffersSetup(InstancePtr); + + /* nothing to do when in OTG host mode */ + if (XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GSTS) & XUSBPSU_GSTS_CUR_MODE) + return; + + if (XUsbPsu_RestoreEp0(InstancePtr)) { + xil_printf("Failed to restore EP0\r\n"); + return; + } + + /* start controller */ + if (XUsbPsu_Start(InstancePtr)) { + xil_printf("Failed to start core on wakeup\r\n"); + return; + } + + /* Wait until device controller is ready */ + if (XUsbPsu_Wait_Clear_Timeout(InstancePtr, XUSBPSU_DSTS, + XUSBPSU_DSTS_DCNRD, XUSBPSU_CTRL_RDY_RETRIES) == XST_FAILURE) { + xil_printf("Failed to ready device controller\r\n"); + return; + } + + /* + * there can be suprious wakeup events , so wait for some time and check + * the link state + */ + XUsbSleep(XUSBPSU_TIMEOUT * 10); + + link_state = XUsbPsu_GetLinkState(InstancePtr); + + switch(link_state) { + case XUSBPSU_LINK_STATE_RESET: + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DSTS); + RegVal &= ~XUSBPSU_DCFG_DEVADDR_MASK; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DSTS, RegVal); + + if (XUsbPsu_SetLinkState(InstancePtr, XUSBPSU_LINK_STATE_RECOV)) { + xil_printf("Failed to put link in Recovery\r\n"); + return; + } + break; + case XUSBPSU_LINK_STATE_SS_DIS: + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + RegVal &= ~XUSBPSU_DCTL_KEEP_CONNECT; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + + /* fall Through */ + case XUSBPSU_LINK_STATE_U3: + /* enter hibernation again */ + enter_hiber = 1; + break; + default: + if (XUsbPsu_SetLinkState(InstancePtr, XUSBPSU_LINK_STATE_RECOV)) { + xil_printf("Failed to put link in Recovery\r\n"); + return; + } + break; + }; + + if (XUsbPsu_RestoreEps(InstancePtr)) { + xil_printf("Failed to restore EPs\r\n"); + return; + } + + InstancePtr->IsHibernated = 0; + + if (enter_hiber) { + Xusbpsu_HibernationIntr(InstancePtr); + return; + } + + xil_printf("We are back from hibernation!\r\n"); +} +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_hw.h similarity index 83% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_hw.h index db612b00f..344f919f3 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_hw.h @@ -33,7 +33,7 @@ /** * * @file xusbpsu_hw.h -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * *
@@ -43,6 +43,7 @@
 * Ver   Who    Date     Changes
 * ----- -----  -------- -----------------------------------------------------
 * 1.0   sg    06/06/16 First release
+* 1.4   myk   12/01/18 Added support of hibernation
 *
 * 
* @@ -174,6 +175,7 @@ extern "C" { /* Global Status Register Device Interrupt Mask */ #define XUSBPSU_GSTS_DEVICE_IP_MASK 0x00000040 +#define XUSBPSU_GSTS_CUR_MODE (0x00000001U << 0) /* Global USB2 PHY Configuration Register */ #define XUSBPSU_GUSB2PHYCFG_PHYSOFTRST (0x00000001U << 31) @@ -308,8 +310,28 @@ extern "C" { #define XUSBPSU_PORTMSC_30_U1_TIMEOUT_MASK (0xffU << 0) #define XUSBPSU_PORTMSC_30_U1_TIMEOUT_SHIFT (0U) +/* Register for LPD block */ +#define RST_LPD_TOP 0x23C +#define USB0_CORE_RST (1 << 6) +#define USB1_CORE_RST (1 << 7) -/*@}*/ +/* Vendor registers for Xilinx */ +#define XIL_CUR_PWR_STATE 0x00 +#define XIL_PME_ENABLE 0x34 +#define XIL_REQ_PWR_STATE 0x3c +#define XIL_PWR_CONFIG_USB3 0x48 + +#define XIL_REQ_PWR_STATE_D0 0 +#define XIL_REQ_PWR_STATE_D3 3 +#define XIL_PME_ENABLE_SIG_GEN 1 +#define XIL_CUR_PWR_STATE_D0 0 +#define XIL_CUR_PWR_STATE_D3 3 +#define XIL_CUR_PWR_STATE_BITMASK 0x03 + +#define VENDOR_BASE_ADDRESS 0xFF9D0000 +#define LPD_BASE_ADDRESS 0xFF5E0000 + + /*@}*/ /**************************** Type Definitions *******************************/ @@ -353,6 +375,76 @@ extern "C" { #define XUsbPsu_WriteReg(InstancePtr, Offset, Data) \ Xil_Out32((InstancePtr)->ConfigPtr->BaseAddress + (u32)(Offset), (u32)(Data)) +/*****************************************************************************/ +/** +* +* Read a vendor register of the USBPS8 device. +* +* @param Offset is the offset of the register to read. +* +* @return The contents of the register. +* +* @note C-style Signature: +* u32 XUsbPsu_ReadVendorReg(struct XUsbPsu *InstancePtr, u32 Offset); +* +******************************************************************************/ +#define XUsbPsu_ReadVendorReg(Offset) \ + Xil_In32(VENDOR_BASE_ADDRESS + (u32)(Offset)) + +/*****************************************************************************/ +/** +* +* Write a Vendor register of the USBPS8 device. +* +* @param RegOffset is the offset of the register to write. +* @param Data is the value to write to the register. +* +* @return None. +* +* @note C-style Signature: +* void XUsbPsu_WriteVendorReg(struct XUsbPsu *InstancePtr, +* u32 Offset,u32 Data) +* +******************************************************************************/ +#define XUsbPsu_WriteVendorReg(Offset, Data) \ + Xil_Out32(VENDOR_BASE_ADDRESS + (u32)(Offset), (u32)(Data)) + +/*****************************************************************************/ +/** +* +* Read a LPD register of the USBPS8 device. +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* @param Offset is the offset of the register to read. +* +* @return The contents of the register. +* +* @note C-style Signature: +* u32 XUsbPsu_ReadLpdReg(struct XUsbPsu *InstancePtr, u32 Offset); +* +******************************************************************************/ +#define XUsbPsu_ReadLpdReg(Offset) \ + Xil_In32(LPD_BASE_ADDRESS + (u32)(Offset)) + +/*****************************************************************************/ +/** +* +* Write a LPD register of the USBPS8 device. +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* @param RegOffset is the offset of the register to write. +* @param Data is the value to write to the register. +* +* @return None. +* +* @note C-style Signature: +* void XUsbPsu_WriteLpdReg(struct XUsbPsu *InstancePtr, +* u32 Offset,u32 Data) +* +******************************************************************************/ +#define XUsbPsu_WriteLpdReg(Offset, Data) \ + Xil_Out32(LPD_BASE_ADDRESS + (u32)(Offset), (u32)(Data)) + /************************** Function Prototypes ******************************/ #ifdef __cplusplus diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_intr.c similarity index 70% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_intr.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_intr.c index 85baab0f8..6124783fc 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_intr.c @@ -33,7 +33,7 @@ /** * * @file xusbpsu_intr.c -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * * @@ -43,6 +43,13 @@ * Ver Who Date Changes * ----- ---- -------- ------------------------------------------------------- * 1.0 sg 06/06/16 First release +* 1.3 vak 04/03/17 Added CCI support for USB +* 1.4 bk 12/01/18 Modify USBPSU driver code to fit USB common example code +* for all USB IPs +* myk 12/01/18 Added hibernation support +* vak 22/01/18 Added changes for supporting microblaze platform +* vak 13/03/18 Moved the setup interrupt system calls from driver to +* example. * * * @@ -50,7 +57,7 @@ /***************************** Include Files ********************************/ -#include "xusbpsu.h" +#include "xusb_wrapper.h" /************************** Constant Definitions *****************************/ @@ -95,10 +102,12 @@ void XUsbPsu_EpInterrupt(struct XUsbPsu *InstancePtr, /* Handle other end point events */ switch (Event->Endpoint_Event) { case XUSBPSU_DEPEVT_XFERCOMPLETE: + case XUSBPSU_DEPEVT_XFERINPROGRESS: XUsbPsu_EpXferComplete(InstancePtr, Event); break; case XUSBPSU_DEPEVT_XFERNOTREADY: + XUsbPsu_EpXferNotReady(InstancePtr, Event); break; default: @@ -130,7 +139,87 @@ void XUsbPsu_DisconnectIntr(struct XUsbPsu *InstancePtr) XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); InstancePtr->IsConfigDone = 0U; - InstancePtr->Speed = XUSBPSU_SPEED_UNKNOWN; + InstancePtr->AppData->Speed = XUSBPSU_SPEED_UNKNOWN; + +#ifdef XUSBPSU_HIBERNATION_ENABLE + /* In USB 2.0, to avoid hibernation interrupt at the time of connection + * clear KEEP_CONNECT bit. + */ + if (InstancePtr->HasHibernation) { + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + if (RegVal & XUSBPSU_DCTL_KEEP_CONNECT) { + RegVal &= ~XUSBPSU_DCTL_KEEP_CONNECT; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + } + } +#endif + + /* Call the handler if necessary */ + if (InstancePtr->DisconnectIntrHandler != NULL) { + InstancePtr->DisconnectIntrHandler(InstancePtr->AppData); + } +} + +/****************************************************************************/ +/** +* Stops any active transfer. +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* +* @return None. +* +* @note None. +* +*****************************************************************************/ +static void XUsbPsu_stop_active_transfers(struct XUsbPsu *InstancePtr) +{ + u32 Epnum; + + for (Epnum = 2; Epnum < XUSBPSU_ENDPOINTS_NUM; Epnum++) { + struct XUsbPsu_Ep *Ept; + + Ept = &InstancePtr->eps[Epnum]; + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + XUsbPsu_StopTransfer(InstancePtr, Ept->UsbEpNum, + Ept->Direction, TRUE); + } +} + +/****************************************************************************/ +/** +* Clears stall on all stalled Eps. +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* +* @return None. +* +* @note None. +* +*****************************************************************************/ +static void XUsbPsu_clear_stall_all_ep(struct XUsbPsu *InstancePtr) +{ + u32 Epnum; + + for (Epnum = 1; Epnum < XUSBPSU_ENDPOINTS_NUM; Epnum++) { + struct XUsbPsu_Ep *Ept; + + Ept = &InstancePtr->eps[Epnum]; + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_STALL)) + continue; + + XUsbPsu_EpClearStall(InstancePtr, Ept->UsbEpNum, Ept->Direction); + } } /****************************************************************************/ @@ -149,13 +238,16 @@ void XUsbPsu_ResetIntr(struct XUsbPsu *InstancePtr) u32 RegVal; u32 Index; - InstancePtr->State = XUSBPSU_STATE_DEFAULT; + InstancePtr->AppData->State = XUSBPSU_STATE_DEFAULT; RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); RegVal &= ~XUSBPSU_DCTL_TSTCTRL_MASK; XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); InstancePtr->TestMode = 0U; + XUsbPsu_stop_active_transfers(InstancePtr); + XUsbPsu_clear_stall_all_ep(InstancePtr); + for (Index = 0U; Index < (InstancePtr->NumInEps + InstancePtr->NumOutEps); Index++) { @@ -168,6 +260,11 @@ void XUsbPsu_ResetIntr(struct XUsbPsu *InstancePtr) RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCFG); RegVal &= ~(XUSBPSU_DCFG_DEVADDR_MASK); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCFG, RegVal); + + /* Call the handler if necessary */ + if (InstancePtr->ResetIntrHandler != NULL) { + InstancePtr->ResetIntrHandler(InstancePtr->AppData); + } } /****************************************************************************/ @@ -189,7 +286,7 @@ void XUsbPsu_ConnDoneIntr(struct XUsbPsu *InstancePtr) RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DSTS); Speed = (u8)(RegVal & XUSBPSU_DSTS_CONNECTSPD); - InstancePtr->Speed = Speed; + InstancePtr->AppData->Speed = Speed; switch (Speed) { case XUSBPSU_DCFG_SUPERSPEED: @@ -197,7 +294,7 @@ void XUsbPsu_ConnDoneIntr(struct XUsbPsu *InstancePtr) xil_printf("Super Speed\r\n"); #endif Size = 512U; - InstancePtr->Speed = XUSBPSU_SPEED_SUPER; + InstancePtr->AppData->Speed = XUSBPSU_SPEED_SUPER; break; case XUSBPSU_DCFG_HIGHSPEED: @@ -205,7 +302,7 @@ void XUsbPsu_ConnDoneIntr(struct XUsbPsu *InstancePtr) xil_printf("High Speed\r\n"); #endif Size = 64U; - InstancePtr->Speed = XUSBPSU_SPEED_HIGH; + InstancePtr->AppData->Speed = XUSBPSU_SPEED_HIGH; break; case XUSBPSU_DCFG_FULLSPEED2: @@ -214,7 +311,7 @@ void XUsbPsu_ConnDoneIntr(struct XUsbPsu *InstancePtr) xil_printf("Full Speed\r\n"); #endif Size = 64U; - InstancePtr->Speed = XUSBPSU_SPEED_FULL; + InstancePtr->AppData->Speed = XUSBPSU_SPEED_FULL; break; case XUSBPSU_DCFG_LOWSPEED: @@ -222,15 +319,34 @@ void XUsbPsu_ConnDoneIntr(struct XUsbPsu *InstancePtr) xil_printf("Low Speed\r\n"); #endif Size = 64U; - InstancePtr->Speed = XUSBPSU_SPEED_LOW; + InstancePtr->AppData->Speed = XUSBPSU_SPEED_LOW; break; default : Size = 64U; break; } + if (InstancePtr->AppData->Speed == XUSBPSU_SPEED_SUPER) { + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + RegVal &= ~XUSBPSU_DCTL_HIRD_THRES_MASK; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + } + (void)XUsbPsu_EnableControlEp(InstancePtr, Size); (void)XUsbPsu_RecvSetup(InstancePtr); + +#ifdef XUSBPSU_HIBERNATION_ENABLE + /* In USB 2.0, to avoid hibernation interrupt at the time of connection + * clear KEEP_CONNECT bit. + */ + if (InstancePtr->HasHibernation) { + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + if (!(RegVal & XUSBPSU_DCTL_KEEP_CONNECT)) { + RegVal |= XUSBPSU_DCTL_KEEP_CONNECT; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + } + } +#endif } /****************************************************************************/ @@ -284,6 +400,10 @@ void XUsbPsu_DevInterrupt(struct XUsbPsu *InstancePtr, break; case XUSBPSU_DEVICE_EVENT_HIBER_REQ: +#ifdef XUSBPSU_HIBERNATION_ENABLE + if (InstancePtr->HasHibernation) + Xusbpsu_HibernationIntr(InstancePtr); +#endif break; case XUSBPSU_DEVICE_EVENT_LINK_STATUS_CHANGE: @@ -362,26 +482,39 @@ void XUsbPsu_EventBufferHandler(struct XUsbPsu *InstancePtr) { struct XUsbPsu_EvtBuffer *Evt; union XUsbPsu_Event Event = {0}; + u32 RegVal; Evt = &InstancePtr->Evt; - Xil_DCacheInvalidateRange((INTPTR)Evt->BuffAddr, + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)Evt->BuffAddr, (u32)XUSBPSU_EVENT_BUFFERS_SIZE); + } while (Evt->Count > 0) { - Event.Raw = *(UINTPTR *)(Evt->BuffAddr + Evt->Offset); + Event.Raw = *(UINTPTR *)((UINTPTR)Evt->BuffAddr + Evt->Offset); /* - * Process the event received - */ - XUsbPsu_EventHandler(InstancePtr, &Event); + * Process the event received + */ + XUsbPsu_EventHandler(InstancePtr, &Event); + + /* don't process anymore events if core is hibernated */ + if (InstancePtr->IsHibernated) + return; Evt->Offset = (Evt->Offset + 4U) % XUSBPSU_EVENT_BUFFERS_SIZE; Evt->Count -= 4; XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTCOUNT(0), 4U); } + Evt->Count = 0; Evt->Flags &= ~XUSBPSU_EVENT_PENDING; + + /* Unmask event interrupt */ + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GEVNTSIZ(0)); + RegVal &= ~XUSBPSU_GEVNTSIZ_INTMASK; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTSIZ(0), RegVal); } /****************************************************************************/ @@ -424,11 +557,24 @@ void XUsbPsu_IntrHandler(void *XUsbPsuInstancePtr) /* Processes events in an Event Buffer */ XUsbPsu_EventBufferHandler(InstancePtr); - - /* Unmask event interrupt */ - RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GEVNTSIZ(0)); - RegVal &= ~XUSBPSU_GEVNTSIZ_INTMASK; - XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTSIZ(0), RegVal); } +#ifdef XUSBPSU_HIBERNATION_ENABLE +/****************************************************************************/ +/** +* Wakeup Interrupt Handler. +* +* @return None. +* +* @note None. +* +*****************************************************************************/ +void XUsbPsu_WakeUpIntrHandler(void *XUsbPsuInstancePtr) +{ + struct XUsbPsu *InstancePtr = (struct XUsbPsu *)XUsbPsuInstancePtr; + + XUsbPsu_WakeupIntr(InstancePtr); +} +#endif + /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_sinit.c index c172c5d69..bee46bc4c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_4/src/xusbpsu_sinit.c @@ -33,7 +33,7 @@ /** * * @file xusbpsu_sinit.h -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * * diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/Makefile new file mode 100644 index 000000000..9cb03a481 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/Makefile @@ -0,0 +1,40 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS=-ffunction-sections -fdata-sections +EXTRA_COMPILER_FLAGS=-Wall -Wextra +LIB=libxil.a + +CC_FLAGS = $(COMPILER_FLAGS) +ECC_FLAGS = $(EXTRA_COMPILER_FLAGS) + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +OUTS = *.o + +LIBSOURCES:=*.c +INCLUDEFILES:=*.h + +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) + +libs: banner video_common_libs clean + +%.o: %.c + ${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) -o $@ $< + +banner: + echo "Compiling video_common" + +video_common_libs: ${OBJECTS} + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} + +.PHONY: include +include: video_common_includes + +video_common_includes: + ${CP} ${INCLUDEFILES} ${INCLUDEDIR} + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc.c new file mode 100644 index 000000000..ba4f789b0 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc.c @@ -0,0 +1,1204 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xvidc.c + * @addtogroup video_common_v4_3 + * @{ + * + * Contains common utility functions that are typically used by video-related + * drivers and applications. + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   rc,  01/10/15 Initial release.
+ *       als
+ * 2.2   als  02/01/16 Functions with pointer arguments that don't modify
+ *                     contents now const.
+ *                     Added ability to insert a custom video timing table.
+ *       yh            Added 3D support.
+ * 3.0   aad  05/13/16 Added API to search for RB video modes.
+ * 3.1   rco  07/26/16 Added extern definition for timing table array
+ *                     Added video-in-memory color formats
+ *                     Updated XVidC_RegisterCustomTimingModes API signature
+ * 4.1   rco  11/23/16 Added new memory formats
+ *                     Added new API to get video mode id that matches exactly
+ *                     with provided timing information
+ *                     Fix c++ warnings
+ * 4.2	 jsr  07/22/17 Added new framerates and color formats to support SDI
+ *                     Reordered YCBCR422 colorforamt and removed other formats
+ *                     that are not needed for SDI which were added earlier.
+ *       vyc  10/04/17 Added new streaming alpha formats and new memory formats
+ * 4.3   eb   26/01/18 Added API XVidC_GetVideoModeIdExtensive
+ *       jsr  02/22/18 Added XVIDC_CSF_YCBCR_420 color space format
+ *       vyc  04/04/18 Added BGR8 memory format
+ * 
+ * +*******************************************************************************/ + +/******************************* Include Files ********************************/ + +#include "xil_assert.h" +#include "xstatus.h" +#include "xvidc.h" + +/*************************** Variable Declarations ****************************/ +extern const XVidC_VideoTimingMode XVidC_VideoTimingModes[XVIDC_VM_NUM_SUPPORTED]; + +const XVidC_VideoTimingMode *XVidC_CustomTimingModes = NULL; +int XVidC_NumCustomModes = 0; + +/**************************** Function Prototypes *****************************/ + +static const XVidC_VideoTimingMode *XVidC_GetCustomVideoModeData( + XVidC_VideoMode VmId); +static u8 XVidC_IsVtmRb(const char *VideoModeStr, u8 RbN); + +/*************************** Function Definitions *****************************/ + +/******************************************************************************/ +/** + * This function registers a user-defined custom video mode timing table with + * video_common. Functions which search the available video modes, or take VmId + * as an input, will operate on or check the custom video mode timing table in + * addition to the pre-defined video mode timing table (XVidC_VideoTimingModes). + * + * @param CustomTable is a pointer to the user-defined custom vide mode + * timing table to register. + * @param NumElems is the number of video modes supported by CustomTable. + * + * @return + * - XST_SUCCESS if the custom table was successfully registered. + * - XST_FAILURE if an existing custom table is already present. + * + * @note IDs in the custom table may not conflict with IDs reserved by + * the XVidC_VideoMode enum. + * +*******************************************************************************/ +u32 XVidC_RegisterCustomTimingModes(const XVidC_VideoTimingMode *CustomTable, + u16 NumElems) +{ + u16 Index; + + /* Verify arguments. */ + Xil_AssertNonvoid(CustomTable != NULL); + for (Index = 0; Index < NumElems; Index++) { + Xil_AssertNonvoid((CustomTable[Index].VmId > XVIDC_VM_CUSTOM)); + /* The IDs of each video mode in the custom table must not + * conflict with IDs reserved by video_common. */ + } + + /* Fail if a custom table is currently already registered. */ + if (XVidC_CustomTimingModes) { + return XST_FAILURE; + } + + XVidC_CustomTimingModes = CustomTable; + XVidC_NumCustomModes = NumElems; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function unregisters the user-defined custom video mode timing table + * previously registered by XVidC_RegisterCustomTimingModes(). + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XVidC_UnregisterCustomTimingModes(void) +{ + XVidC_CustomTimingModes = NULL; + XVidC_NumCustomModes = 0; +} + +/******************************************************************************/ +/** + * This function calculates pixel clock based on the inputs. + * + * @param HTotal specifies horizontal total. + * @param VTotal specifies vertical total. + * @param FrameRate specifies rate at which frames are generated. + * + * @return Pixel clock in Hz. + * + * @note None. + * +*******************************************************************************/ +u32 XVidC_GetPixelClockHzByHVFr(u32 HTotal, u32 VTotal, u8 FrameRate) +{ + return (HTotal * VTotal * FrameRate); +} + +/******************************************************************************/ +/** + * This function calculates pixel clock from video mode. + * + * @param VmId specifies the resolution id. + * + * @return Pixel clock in Hz. + * + * @note None. + * +*******************************************************************************/ +u32 XVidC_GetPixelClockHzByVmId(XVidC_VideoMode VmId) +{ + u32 ClkHz; + const XVidC_VideoTimingMode *VmPtr; + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return 0; + } + + if (XVidC_IsInterlaced(VmId)) { + /* For interlaced mode, use both frame 0 and frame 1 vertical + * totals. */ + ClkHz = VmPtr->Timing.F0PVTotal + VmPtr->Timing.F1VTotal; + + /* Multiply the number of pixels by the frame rate of each + * individual frame (half of the total frame rate). */ + ClkHz *= VmPtr->FrameRate / 2; + } + else { + /* For progressive mode, use only frame 0 vertical total. */ + ClkHz = VmPtr->Timing.F0PVTotal; + + /* Multiply the number of pixels by the frame rate. */ + ClkHz *= VmPtr->FrameRate; + } + + /* Multiply the vertical total by the horizontal total for number of + * pixels. */ + ClkHz *= VmPtr->Timing.HTotal; + + return ClkHz; +} + +/******************************************************************************/ +/** + * This function checks if the input video mode is interlaced/progressive based + * on its ID from the video timings table. + * + * @param VmId specifies the resolution ID from the video timings table. + * + * @return Video format. + * - XVIDC_VF_PROGRESSIVE + * - XVIDC_VF_INTERLACED + * + * @note None. + * +*******************************************************************************/ +XVidC_VideoFormat XVidC_GetVideoFormat(XVidC_VideoMode VmId) +{ + const XVidC_VideoTimingMode *VmPtr; + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return XVIDC_VF_UNKNOWN; + } + + if (VmPtr->Timing.F1VTotal == 0) { + return (XVIDC_VF_PROGRESSIVE); + } + + return (XVIDC_VF_INTERLACED); +} + +/******************************************************************************/ +/** + * This function checks if the input video mode is interlaced based on its ID + * from the video timings table. + * + * @param VmId specifies the resolution ID from the video timings table. + * + * @return + * - 1 if the video timing with the supplied table ID is + * interlaced. + * - 0 if the video timing is progressive. + * + * @note None. + * +*******************************************************************************/ +u8 XVidC_IsInterlaced(XVidC_VideoMode VmId) +{ + if (XVidC_GetVideoFormat(VmId) == XVIDC_VF_INTERLACED) { + return 1; + } + + return 0; +} + +/******************************************************************************/ +/** + * This function returns the Video Mode ID that matches the detected input + * timing, frame rate and I/P flag + * + * @param Timing is the pointer to timing parameters to match + * @param FrameRate specifies refresh rate in HZ + * @param IsInterlaced is flag. + * - 0 = Progressive + * - 1 = Interlaced. + * + * @return Id of a supported video mode. + * + * @note This is an extension of XVidC_GetVideoModeId API to include + * blanking information in match process. No attempt is made to + * search for reduced blanking entries, if any. + * +*******************************************************************************/ +XVidC_VideoMode XVidC_GetVideoModeIdWBlanking(const XVidC_VideoTiming *Timing, + u32 FrameRate, u8 IsInterlaced) +{ + XVidC_VideoMode VmId; + XVidC_VideoTiming const *StdTiming = NULL; + + /* First search for ID with matching Width & Height */ + VmId = XVidC_GetVideoModeId(Timing->HActive, Timing->VActive, FrameRate, + IsInterlaced); + + if(VmId == XVIDC_VM_NOT_SUPPORTED) { + return(VmId); + } else { + + /* Get standard timing info from default timing table */ + StdTiming = XVidC_GetTimingInfo(VmId); + + /* Match against detected timing parameters */ + if((Timing->HActive == StdTiming->HActive) && + (Timing->VActive == StdTiming->VActive) && + (Timing->HTotal == StdTiming->HTotal) && + (Timing->F0PVTotal == StdTiming->F0PVTotal) && + (Timing->HFrontPorch == StdTiming->HFrontPorch) && + (Timing->HSyncWidth == StdTiming->HSyncWidth) && + (Timing->HBackPorch == StdTiming->HBackPorch) && + (Timing->F0PVFrontPorch == StdTiming->F0PVFrontPorch) && + (Timing->F0PVSyncWidth == StdTiming->F0PVSyncWidth) && + (Timing->F0PVBackPorch == StdTiming->F0PVBackPorch)) { + return(VmId); + } else { + return(XVIDC_VM_NOT_SUPPORTED); + } + } +} + +/******************************************************************************/ +/** + * This function returns the Video Mode ID that matches the detected input + * width, height, frame rate and I/P flag + * + * @param Width specifies the number pixels per scanline. + * @param Height specifies the number of scanline's. + * @param FrameRate specifies refresh rate in HZ + * @param IsInterlaced is flag. + * - 0 = Progressive + * - 1 = Interlaced. + * + * @return Id of a supported video mode. + * + * @note None. + * +*******************************************************************************/ +XVidC_VideoMode XVidC_GetVideoModeId(u32 Width, u32 Height, u32 FrameRate, + u8 IsInterlaced) +{ + u32 Low; + u32 High; + u32 Mid; + u32 HActive; + u32 VActive; + u32 Rate; + u32 ResFound = (FALSE); + XVidC_VideoMode Mode; + u16 Index; + + /* First, attempt a linear search on the custom video timing table. */ + if(XVidC_CustomTimingModes) { + for (Index = 0; Index < XVidC_NumCustomModes; Index++) { + HActive = XVidC_CustomTimingModes[Index].Timing.HActive; + VActive = XVidC_CustomTimingModes[Index].Timing.VActive; + Rate = XVidC_CustomTimingModes[Index].FrameRate; + if ((Width == HActive) && + (Height == VActive) && + (FrameRate == Rate)) { + return XVidC_CustomTimingModes[Index].VmId; + } + } + } + + if (IsInterlaced) { + Low = (XVIDC_VM_INTL_START); + High = (XVIDC_VM_INTL_END); + } + else { + Low = (XVIDC_VM_PROG_START); + High = (XVIDC_VM_PROG_END); + } + + HActive = VActive = Rate = 0; + + /* Binary search finds item in sorted array. + * And returns index (zero based) of item + * If item is not found returns flag remains + * FALSE. Search key is "width or HActive" + */ + while (Low <= High) { + Mid = (Low + High) / 2; + HActive = XVidC_VideoTimingModes[Mid].Timing.HActive; + if (Width == HActive) { + ResFound = (TRUE); + break; + } + else if (Width < HActive) { + if (Mid == 0) { + break; + } + else { + High = Mid - 1; + } + } + else { + Low = Mid + 1; + } + } + + /* HActive matched at middle */ + if (ResFound) { + /* Rewind to start index of mode with matching width */ + while ((Mid > 0) && + (XVidC_VideoTimingModes[Mid - 1].Timing.HActive == + Width)) { + --Mid; + } + + ResFound = (FALSE); + VActive = XVidC_VideoTimingModes[Mid].Timing.VActive; + Rate = XVidC_VideoTimingModes[Mid].FrameRate; + + /* Now do a linear search for matching VActive and Frame + * Rate + */ + while (HActive == Width) { + /* check current entry */ + if ((VActive == Height) && (Rate == FrameRate)) { + ResFound = (TRUE); + break; + } + /* Check next entry */ + else { + Mid = Mid + 1; + HActive = + XVidC_VideoTimingModes[Mid].Timing.HActive; + VActive = + XVidC_VideoTimingModes[Mid].Timing.VActive; + Rate = XVidC_VideoTimingModes[Mid].FrameRate; + } + } + Mode = + (ResFound) ? (XVidC_VideoMode)Mid : (XVIDC_VM_NOT_SUPPORTED); + } + else { + Mode = (XVIDC_VM_NOT_SUPPORTED); + } + + return (Mode); +} + +/******************************************************************************/ +/** + * This function returns the Video Mode ID that matches the detected input + * timing, frame rate and I/P flag + * + * @param Timing is the pointer to timing parameters to match + * @param FrameRate specifies refresh rate in HZ + * @param IsInterlaced is flag. + * - 0 = Progressive + * - 1 = Interlaced. + * @param IsExtensive is flag. + * - 0 = Basic matching of timing parameters + * - 1 = Extensive matching of timing parameters + * + * @return Id of a supported video mode. + * + * @note This function attempts to search for reduced blanking entries, if + * any. + * +*******************************************************************************/ +XVidC_VideoMode XVidC_GetVideoModeIdExtensive(XVidC_VideoTiming *Timing, + u32 FrameRate, + u8 IsInterlaced, + u8 IsExtensive) +{ + u32 Low; + u32 High; + u32 Mid; + u32 HActive; + u32 VActive; + u32 Rate; + u32 ResFound = (FALSE); + XVidC_VideoMode Mode; + u16 Index; + + /* First, attempt a linear search on the custom video timing table. */ + if(XVidC_CustomTimingModes) { + for (Index = 0; Index < XVidC_NumCustomModes; Index++) { + HActive = XVidC_CustomTimingModes[Index].Timing.HActive; + VActive = XVidC_CustomTimingModes[Index].Timing.VActive; + Rate = XVidC_CustomTimingModes[Index].FrameRate; + if ((HActive == Timing->HActive) && (VActive == Timing->VActive) && + (Rate == FrameRate) && (IsExtensive == 0 || ( + XVidC_CustomTimingModes[Index].Timing.HTotal == Timing->HTotal && + XVidC_CustomTimingModes[Index].Timing.F0PVTotal == + Timing->F0PVTotal && + XVidC_CustomTimingModes[Index].Timing.HFrontPorch == + Timing->HFrontPorch && + XVidC_CustomTimingModes[Index].Timing.F0PVFrontPorch == + Timing->F0PVFrontPorch && + XVidC_CustomTimingModes[Index].Timing.HSyncWidth == + Timing->HSyncWidth && + XVidC_CustomTimingModes[Index].Timing.F0PVSyncWidth == + Timing->F0PVSyncWidth && + XVidC_CustomTimingModes[Index].Timing.VSyncPolarity == + Timing->VSyncPolarity))) { + if (!IsInterlaced || IsExtensive == 0 || ( + XVidC_CustomTimingModes[Index].Timing.F1VTotal == + Timing->F1VTotal && + XVidC_CustomTimingModes[Index].Timing.F1VFrontPorch == + Timing->F1VFrontPorch && + XVidC_CustomTimingModes[Index].Timing.F1VSyncWidth == + Timing->F1VSyncWidth)) { + return XVidC_CustomTimingModes[Index].VmId; + } + } + } + } + + if (IsInterlaced) { + Low = (XVIDC_VM_INTL_START); + High = (XVIDC_VM_INTL_END); + } + else { + Low = (XVIDC_VM_PROG_START); + High = (XVIDC_VM_PROG_END); + } + + HActive = VActive = Rate = 0; + + /* Binary search finds item in sorted array. + * And returns index (zero based) of item + * If item is not found returns flag remains + * FALSE. Search key is "Timing->HActive or HActive" + */ + while (Low <= High) { + Mid = (Low + High) / 2; + HActive = XVidC_VideoTimingModes[Mid].Timing.HActive; + if (Timing->HActive == HActive) { + ResFound = (TRUE); + break; + } + else if (Timing->HActive < HActive) { + if (Mid == 0) { + break; + } + else { + High = Mid - 1; + } + } + else { + Low = Mid + 1; + } + } + + /* HActive matched at middle */ + if (ResFound) { + /* Rewind to start index of mode with matching Timing->HActive */ + while ((Mid > 0) && + (XVidC_VideoTimingModes[Mid - 1].Timing.HActive == + Timing->HActive)) { + --Mid; + } + + ResFound = (FALSE); + VActive = XVidC_VideoTimingModes[Mid].Timing.VActive; + Rate = XVidC_VideoTimingModes[Mid].FrameRate; + + /* Now do a linear search for matching VActive and Frame + * Rate + */ + while (HActive == Timing->HActive) { + /* check current entry */ + if ((VActive == Timing->VActive) && (Rate == FrameRate) && + (IsExtensive == 0 || + (XVidC_VideoTimingModes[Mid].Timing.HTotal == + Timing->HTotal && + XVidC_VideoTimingModes[Mid].Timing.F0PVTotal == + Timing->F0PVTotal && + XVidC_VideoTimingModes[Mid].Timing.HFrontPorch == + Timing->HFrontPorch && + XVidC_VideoTimingModes[Mid].Timing.F0PVFrontPorch == + Timing->F0PVFrontPorch && + XVidC_VideoTimingModes[Mid].Timing.HSyncWidth == + Timing->HSyncWidth && + XVidC_VideoTimingModes[Mid].Timing.F0PVSyncWidth == + Timing->F0PVSyncWidth && + XVidC_VideoTimingModes[Mid].Timing.VSyncPolarity == + Timing->VSyncPolarity))) { + if (!IsInterlaced || IsExtensive == 0 || ( + XVidC_VideoTimingModes[Mid].Timing.F1VTotal == + Timing->F1VTotal && + XVidC_VideoTimingModes[Mid].Timing.F1VFrontPorch == + Timing->F1VFrontPorch && + XVidC_VideoTimingModes[Mid].Timing.F1VSyncWidth == + Timing->F1VSyncWidth)) { + ResFound = (TRUE); + break; + } + } + /* Check next entry */ + else { + Mid = Mid + 1; + HActive = + XVidC_VideoTimingModes[Mid].Timing.HActive; + VActive = + XVidC_VideoTimingModes[Mid].Timing.VActive; + Rate = XVidC_VideoTimingModes[Mid].FrameRate; + } + } + Mode = + (ResFound) ? (XVidC_VideoMode)Mid : (XVIDC_VM_NOT_SUPPORTED); + } + else { + Mode = (XVIDC_VM_NOT_SUPPORTED); + } + + return (Mode); +} + +/******************************************************************************/ +/** + * This function returns the video mode ID that matches the detected input + * width, height, frame rate, interlaced or progressive, and reduced blanking. + * + * @param Width specifies the number pixels per scanline. + * @param Height specifies the number of scanline's. + * @param FrameRate specifies refresh rate in HZ + * @param IsInterlaced specifies interlaced or progressive mode: + * - 0 = Progressive + * - 1 = Interlaced. + * @param RbN specifies the type of reduced blanking: + * - 0 = No reduced blanking + * - 1 = RB + * - 2 = RB2 + * + * @return ID of a supported video mode. + * + * @note None. + * +*******************************************************************************/ +XVidC_VideoMode XVidC_GetVideoModeIdRb(u32 Width, u32 Height, + u32 FrameRate, u8 IsInterlaced, u8 RbN) +{ + XVidC_VideoMode VmId; + const XVidC_VideoTimingMode *VtmPtr; + u8 Found = 0; + + VmId = XVidC_GetVideoModeId(Width, Height, FrameRate, + IsInterlaced); + + VtmPtr = XVidC_GetVideoModeData(VmId); + if (!VtmPtr) { + return XVIDC_VM_NOT_SUPPORTED; + } + + while (!Found) { + VtmPtr = XVidC_GetVideoModeData(VmId); + if ((Height != VtmPtr->Timing.VActive) || + (Width != VtmPtr->Timing.HActive) || + (FrameRate != VtmPtr->FrameRate) || + (IsInterlaced && !XVidC_IsInterlaced(VmId))) { + VmId = XVIDC_VM_NOT_SUPPORTED; + break; + } + Found = XVidC_IsVtmRb(XVidC_GetVideoModeStr(VmId), RbN); + if (Found) { + break; + } + VmId = (XVidC_VideoMode)((int)VmId + 1); + } + + return VmId; +} + +/******************************************************************************/ +/** + * This function returns the pointer to video mode data at index provided. + * + * @param VmId specifies the resolution id. + * + * @return Pointer to XVidC_VideoTimingMode structure based on the given + * video mode. + * + * @note None. + * +*******************************************************************************/ +const XVidC_VideoTimingMode *XVidC_GetVideoModeData(XVidC_VideoMode VmId) +{ + if (VmId < XVIDC_VM_NUM_SUPPORTED) { + return &XVidC_VideoTimingModes[VmId]; + } + + return XVidC_GetCustomVideoModeData(VmId); +} + +/******************************************************************************/ +/** + * + * This function returns the resolution name for index specified. + * + * @param VmId specifies the resolution id. + * + * @return Pointer to a resolution name string. + * + * @note None. + * +*******************************************************************************/ +const char *XVidC_GetVideoModeStr(XVidC_VideoMode VmId) +{ + const XVidC_VideoTimingMode *VmPtr; + + if (VmId == XVIDC_VM_CUSTOM) { + return ("Custom video mode"); + } + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return ("Video mode not supported"); + } + + return VmPtr->Name; +} + +/******************************************************************************/ +/** + * This function returns the frame rate name for index specified. + * + * @param VmId specifies the resolution id. + * + * @return Pointer to a frame rate name string. + * + * @note None. + * +*******************************************************************************/ +const char *XVidC_GetFrameRateStr(XVidC_VideoMode VmId) +{ + const XVidC_VideoTimingMode *VmPtr; + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return ("Video mode not supported"); + } + + switch (VmPtr->FrameRate) { + case (XVIDC_FR_24HZ): return ("24Hz"); + case (XVIDC_FR_25HZ): return ("25Hz"); + case (XVIDC_FR_30HZ): return ("30Hz"); + case (XVIDC_FR_48HZ): return ("48Hz"); + case (XVIDC_FR_50HZ): return ("50Hz"); + case (XVIDC_FR_56HZ): return ("56Hz"); + case (XVIDC_FR_60HZ): return ("60Hz"); + case (XVIDC_FR_65HZ): return ("65Hz"); + case (XVIDC_FR_67HZ): return ("67Hz"); + case (XVIDC_FR_70HZ): return ("70Hz"); + case (XVIDC_FR_72HZ): return ("72Hz"); + case (XVIDC_FR_75HZ): return ("75Hz"); + case (XVIDC_FR_85HZ): return ("85Hz"); + case (XVIDC_FR_87HZ): return ("87Hz"); + case (XVIDC_FR_88HZ): return ("88Hz"); + case (XVIDC_FR_96HZ): return ("96Hz"); + case (XVIDC_FR_100HZ): return ("100Hz"); + case (XVIDC_FR_120HZ): return ("120Hz"); + + default: + return ("Frame rate not supported"); + } +} + +/******************************************************************************/ +/** + * This function returns a string representation of the enumerated type, + * XVidC_3DFormat. + * + * @param Format specifies the value to convert. + * + * @return Pointer to the converted string. + * + * @note None. + * +*******************************************************************************/ +const char *XVidC_Get3DFormatStr(XVidC_3DFormat Format) +{ + switch (Format) { + case XVIDC_3D_FRAME_PACKING: + return ("Frame Packing"); + + case XVIDC_3D_FIELD_ALTERNATIVE: + return ("Field Alternative"); + + case XVIDC_3D_LINE_ALTERNATIVE: + return ("Line Alternative"); + + case XVIDC_3D_SIDE_BY_SIDE_FULL: + return ("Side-by-Side(full)"); + + case XVIDC_3D_TOP_AND_BOTTOM_HALF: + return ("Top-and-Bottom(half)"); + + case XVIDC_3D_SIDE_BY_SIDE_HALF: + return ("Side-by-Side(half)"); + + default: + return ("Unknown"); + } +} + +/******************************************************************************/ +/** + * This function returns the color format name for index specified. + * + * @param ColorFormatId specifies the index of color format space. + * + * @return Pointer to a color space name string. + * + * @note None. + * +*******************************************************************************/ +const char *XVidC_GetColorFormatStr(XVidC_ColorFormat ColorFormatId) +{ + switch (ColorFormatId) { + case XVIDC_CSF_RGB: return ("RGB"); + case XVIDC_CSF_YCRCB_444: return ("YUV_444"); + case XVIDC_CSF_YCRCB_422: return ("YUV_422"); + case XVIDC_CSF_YCRCB_420: return ("YUV_420"); + case XVIDC_CSF_YONLY: return ("Y_ONLY"); + case XVIDC_CSF_RGBA: return ("RGBA"); + case XVIDC_CSF_YCRCBA_444: return ("YUVA_444"); + case XVIDC_CSF_MEM_RGBX8: return ("RGBX8"); + case XVIDC_CSF_MEM_YUVX8: return ("YUVX8"); + case XVIDC_CSF_MEM_YUYV8: return ("YUYV8"); + case XVIDC_CSF_MEM_RGBA8: return ("RGBA8"); + case XVIDC_CSF_MEM_YUVA8: return ("YUVA8"); + case XVIDC_CSF_MEM_RGBX10: return ("RGBX10"); + case XVIDC_CSF_MEM_YUVX10: return ("YUVX10"); + case XVIDC_CSF_MEM_RGB565: return ("RGB565"); + case XVIDC_CSF_MEM_Y_UV8: return ("Y_UV8"); + case XVIDC_CSF_MEM_Y_UV8_420: return ("Y_UV8_420"); + case XVIDC_CSF_MEM_RGB8: return ("RGB8"); + case XVIDC_CSF_MEM_YUV8: return ("YUV8"); + case XVIDC_CSF_MEM_Y_UV10: return ("Y_UV10"); + case XVIDC_CSF_MEM_Y_UV10_420: return ("Y_UV10_420"); + case XVIDC_CSF_MEM_Y8: return ("Y8"); + case XVIDC_CSF_MEM_Y10: return ("Y10"); + case XVIDC_CSF_MEM_BGRA8: return ("BGRA8"); + case XVIDC_CSF_MEM_BGRX8: return ("BGRX8"); + case XVIDC_CSF_MEM_UYVY8: return ("UYVY8"); + case XVIDC_CSF_MEM_BGR8: return ("BGR8"); + case XVIDC_CSF_YCBCR_422: return ("YCBCR_422"); + case XVIDC_CSF_YCBCR_420: return ("YCBCR_420"); + default: + return ("Color space format not supported"); + } +} + +/******************************************************************************/ +/** + * This function returns the frame rate for index specified. + * + * @param VmId specifies the resolution id. + * + * @return Frame rate in Hz. + * + * @note None. + * +*******************************************************************************/ +XVidC_FrameRate XVidC_GetFrameRate(XVidC_VideoMode VmId) +{ + const XVidC_VideoTimingMode *VmPtr; + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return XVIDC_FR_NUM_SUPPORTED; + } + + return VmPtr->FrameRate; +} + +/******************************************************************************/ +/** + * This function returns the timing parameters for specified resolution. + * + * @param VmId specifies the resolution id. + * + * @return Pointer to a XVidC_VideoTiming structure. + * + * @note None. + * +*******************************************************************************/ +const XVidC_VideoTiming *XVidC_GetTimingInfo(XVidC_VideoMode VmId) +{ + const XVidC_VideoTimingMode *VmPtr; + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return NULL; + } + + return &VmPtr->Timing; +} + +/******************************************************************************/ +/** + * This function sets the VideoStream structure for the specified video format. + * + * @param VidStrmPtr is a pointer to the XVidC_VideoStream structure to be + * set. + * @param VmId specifies the resolution ID. + * @param ColorFormat specifies the color format type. + * @param Bpc specifies the color depth/bits per color component. + * @param Ppc specifies the pixels per clock. + * + * @return + * - XST_SUCCESS if the timing for the supplied ID was found. + * - XST_FAILURE, otherwise. + * + * @note None. + * +*******************************************************************************/ +u32 XVidC_SetVideoStream(XVidC_VideoStream *VidStrmPtr, XVidC_VideoMode VmId, + XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, + XVidC_PixelsPerClock Ppc) +{ + const XVidC_VideoTiming *TimingPtr; + + /* Verify arguments. */ + Xil_AssertNonvoid(VidStrmPtr != NULL); + Xil_AssertNonvoid(ColorFormat < XVIDC_CSF_NUM_SUPPORTED); + Xil_AssertNonvoid((Bpc == XVIDC_BPC_6) || + (Bpc == XVIDC_BPC_8) || + (Bpc == XVIDC_BPC_10) || + (Bpc == XVIDC_BPC_12) || + (Bpc == XVIDC_BPC_14) || + (Bpc == XVIDC_BPC_16) || + (Bpc == XVIDC_BPC_UNKNOWN)); + Xil_AssertNonvoid((Ppc == XVIDC_PPC_1) || + (Ppc == XVIDC_PPC_2) || + (Ppc == XVIDC_PPC_4)); + + /* Get the timing from the video timing table. */ + TimingPtr = XVidC_GetTimingInfo(VmId); + if (!TimingPtr) { + return XST_FAILURE; + } + VidStrmPtr->VmId = VmId; + VidStrmPtr->Timing = *TimingPtr; + VidStrmPtr->FrameRate = XVidC_GetFrameRate(VmId); + VidStrmPtr->IsInterlaced = XVidC_IsInterlaced(VmId); + VidStrmPtr->ColorFormatId = ColorFormat; + VidStrmPtr->ColorDepth = Bpc; + VidStrmPtr->PixPerClk = Ppc; + + /* Set stream to 2D. */ + VidStrmPtr->Is3D = FALSE; + VidStrmPtr->Info_3D.Format = XVIDC_3D_UNKNOWN; + VidStrmPtr->Info_3D.Sampling.Method = XVIDC_3D_SAMPLING_UNKNOWN; + VidStrmPtr->Info_3D.Sampling.Position = XVIDC_3D_SAMPPOS_UNKNOWN; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the VideoStream structure for the specified 3D video + * format. + * + * @param VidStrmPtr is a pointer to the XVidC_VideoStream structure to be + * set. + * @param VmId specifies the resolution ID. + * @param ColorFormat specifies the color format type. + * @param Bpc specifies the color depth/bits per color component. + * @param Ppc specifies the pixels per clock. + * @param Info3DPtr is a pointer to a XVidC_3DInfo structure. + * + * @return + * - XST_SUCCESS if the timing for the supplied ID was found. + * - XST_FAILURE, otherwise. + * + * @return + * - XST_SUCCESS + * - XST_FAILURE + * + * @note None. + * +*******************************************************************************/ +u32 XVidC_Set3DVideoStream(XVidC_VideoStream *VidStrmPtr, XVidC_VideoMode VmId, + XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, + XVidC_PixelsPerClock Ppc, XVidC_3DInfo *Info3DPtr) +{ + u32 Status; + u16 Vblank0; + u16 Vblank1; + + /* Verify arguments */ + Xil_AssertNonvoid(Info3DPtr != NULL); + + /* Initialize with info for 2D frame. */ + Status = XVidC_SetVideoStream(VidStrmPtr, VmId, ColorFormat, Bpc, Ppc); + if (Status != XST_SUCCESS) { + return XST_FAILURE; + } + + /* Set stream to 3D. */ + VidStrmPtr->Is3D = TRUE; + VidStrmPtr->Info_3D = *Info3DPtr; + + /* Only 3D format supported is frame packing. */ + if (Info3DPtr->Format != XVIDC_3D_FRAME_PACKING) { + return XST_FAILURE; + } + + /* Update the timing based on the 3D format. */ + + /* An interlaced format is converted to a progressive frame: */ + /* 3D VActive = (2D VActive * 4) + (2D VBlank field0) + + (2D Vblank field1 * 2) */ + if (VidStrmPtr->IsInterlaced) { + Vblank0 = VidStrmPtr->Timing.F0PVTotal - + VidStrmPtr->Timing.VActive; + Vblank1 = VidStrmPtr->Timing.F1VTotal - + VidStrmPtr->Timing.VActive; + VidStrmPtr->Timing.VActive = (VidStrmPtr->Timing.VActive * 4) + + Vblank0 + (Vblank1 * 2); + + /* Set VTotal */ + VidStrmPtr->Timing.F0PVTotal *= 2; + VidStrmPtr->Timing.F0PVTotal += VidStrmPtr->Timing.F1VTotal * 2; + + /* Clear field 1 values. */ + VidStrmPtr->Timing.F1VFrontPorch = 0; + VidStrmPtr->Timing.F1VSyncWidth = 0; + VidStrmPtr->Timing.F1VBackPorch = 0; + VidStrmPtr->Timing.F1VTotal = 0; + + /* Set format to progressive */ + VidStrmPtr->IsInterlaced = FALSE; + } + /* Progressive */ + else { + /* 3D Vactive = (2D VActive * 2) + (2D VBlank) */ + Vblank0 = VidStrmPtr->Timing.F0PVTotal - + VidStrmPtr->Timing.VActive; + VidStrmPtr->Timing.VActive = (VidStrmPtr->Timing.VActive * 2) + + Vblank0; + + /* Set VTotal. */ + VidStrmPtr->Timing.F0PVTotal = VidStrmPtr->Timing.F0PVTotal * 2; + } + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function prints the stream information on STDIO/UART console. + * + * @param Stream is a pointer to video stream. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XVidC_ReportStreamInfo(const XVidC_VideoStream *Stream) +{ + if (!XVidC_GetVideoModeData(Stream->VmId) && + (Stream->VmId != XVIDC_VM_CUSTOM)) { + xil_printf("\tThe stream ID (%d) is not supported.\r\n", + Stream->VmId); + return; + } + + xil_printf("\tColor Format: %s\r\n", + XVidC_GetColorFormatStr(Stream->ColorFormatId)); + xil_printf("\tColor Depth: %d\r\n", Stream->ColorDepth); + xil_printf("\tPixels Per Clock: %d\r\n", Stream->PixPerClk); + xil_printf("\tMode: %s\r\n", + Stream->IsInterlaced ? "Interlaced" : "Progressive"); + + if (Stream->Is3D) { + xil_printf("\t3D Format: %s\r\n", + XVidC_Get3DFormatStr(Stream->Info_3D.Format)); + } + + if (Stream->VmId == XVIDC_VM_CUSTOM) { + xil_printf("\tFrame Rate: %dHz\r\n", + Stream->FrameRate); + xil_printf("\tResolution: %dx%d [Custom Mode]\r\n", + Stream->Timing.HActive, Stream->Timing.VActive); + xil_printf("\tPixel Clock: %d\r\n", + XVidC_GetPixelClockHzByHVFr( + Stream->Timing.HTotal, + Stream->Timing.F0PVTotal, + Stream->FrameRate)); + } + else { + xil_printf("\tFrame Rate: %s\r\n", + XVidC_GetFrameRateStr(Stream->VmId)); + xil_printf("\tResolution: %s\r\n", + XVidC_GetVideoModeStr(Stream->VmId)); + xil_printf("\tPixel Clock: %d\r\n", + XVidC_GetPixelClockHzByVmId(Stream->VmId)); + } +} + +/******************************************************************************/ +/** + * This function prints timing information on STDIO/Uart console. + * + * @param Timing is a pointer to Video Timing structure of the stream. + * @param IsInterlaced is a TRUE/FALSE flag that denotes the timing + * parameter is for interlaced/progressive stream. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XVidC_ReportTiming(const XVidC_VideoTiming *Timing, u8 IsInterlaced) +{ + xil_printf("\r\n\tHSYNC Timing: hav=%04d, hfp=%02d, hsw=%02d(hsp=%d), " + "hbp=%03d, htot=%04d \n\r", Timing->HActive, + Timing->HFrontPorch, Timing->HSyncWidth, + Timing->HSyncPolarity, + Timing->HBackPorch, Timing->HTotal); + + /* Interlaced */ + if (IsInterlaced) { + xil_printf("\tVSYNC Timing (Field 0): vav=%04d, vfp=%02d, " + "vsw=%02d(vsp=%d), vbp=%03d, vtot=%04d\n\r", + Timing->VActive, Timing->F0PVFrontPorch, + Timing->F0PVSyncWidth, Timing->VSyncPolarity, + Timing->F0PVBackPorch, Timing->F0PVTotal); + xil_printf("\tVSYNC Timing (Field 1): vav=%04d, vfp=%02d, " + "vsw=%02d(vsp=%d), vbp=%03d, vtot=%04d\n\r", + Timing->VActive, Timing->F1VFrontPorch, + Timing->F1VSyncWidth, Timing->VSyncPolarity, + Timing->F1VBackPorch, Timing->F1VTotal); + } + /* Progressive */ + else { + xil_printf("\tVSYNC Timing: vav=%04d, vfp=%02d, " + "vsw=%02d(vsp=%d), vbp=%03d, vtot=%04d\n\r", + Timing->VActive, Timing->F0PVFrontPorch, + Timing->F0PVSyncWidth, Timing->VSyncPolarity, + Timing->F0PVBackPorch, Timing->F0PVTotal); + } +} + +/******************************************************************************/ +/** + * This function returns the pointer to video mode data at the provided index + * of the custom video mode table. + * + * @param VmId specifies the resolution ID. + * + * @return Pointer to XVidC_VideoTimingMode structure based on the given + * video mode. + * + * @note None. + * +*******************************************************************************/ +static const XVidC_VideoTimingMode *XVidC_GetCustomVideoModeData( + XVidC_VideoMode VmId) +{ + u16 Index; + + for (Index = 0; Index < XVidC_NumCustomModes; Index++) { + if (VmId == (XVidC_CustomTimingModes[Index].VmId)) { + return &(XVidC_CustomTimingModes[Index]); + } + } + + /* ID not found within the custom video mode table. */ + return NULL; +} + +/******************************************************************************/ +/** + * This function returns whether or not the video timing mode is a reduced + * blanking mode or not. + * + * @param VideoModeStr specifies the resolution name string. + * @param RbN specifies the type of reduced blanking: + * - 0 = No Reduced Blanking + * - 1 = RB + * - 2 = RB2 + * + * @return If the reduced blanking type is compatible with the video mode: + * - 0 = Not supported + * - 1 = Video mode supports the RB type + * + * @note None. + * +*******************************************************************************/ +static u8 XVidC_IsVtmRb(const char *VideoModeStr, u8 RbN) +{ + while ((*VideoModeStr !='\0') && (*VideoModeStr != 'R')) { + VideoModeStr++; + } + + if (*(VideoModeStr + 2) == ')') { + return RbN == 1; + } + if (*(VideoModeStr + 2) == '2') { + return RbN == 2; + } + return 0; +} +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc.h new file mode 100644 index 000000000..bcd3d0b7a --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc.h @@ -0,0 +1,621 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xvidc.h + * @addtogroup video_common_v4_3 + * @{ + * @details + * + * Contains common structures, definitions, macros, and utility functions that + * are typically used by video-related drivers and applications. + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   rc,  01/10/15 Initial release.
+ *       als
+ * 2.0   als  08/14/15 Added new video timings.
+ * 2.2   als  02/01/16 Functions with pointer arguments that don't modify
+ *                     contents now const.
+ *                     Added ability to insert a custom video timing table:
+ *                         XVidC_RegisterCustomTimingModes
+ *                         XVidC_UnregisterCustomTimingMode
+ *       yh            Added 3D support.
+ * 3.0   aad  05/13/16 Added API to search for RB video modes.
+ *       als  05/16/16 Added Y-only to color format enum.
+ * 3.1   rco  07/26/17 Moved timing table extern definition to xvidc.c
+ *                     Added video-in-memory color formats
+ *                     Updated XVidC_RegisterCustomTimingModes API signature
+ * 4.1   rco  11/23/17 Added new memory formats
+ *                     Added xil_printf include statement
+ *                     Added new API XVidC_GetVideoModeIdWBlanking
+ *                     Fix C++ warnings
+ * 4.2   jsr  07/22/17 Added new video modes, framerates, color formats for SDI
+ *                     New member AspectRatio is added to video stream structure
+ *                     Reordered XVidC_VideoMode enum variables and corrected the
+ *                     memory format enums
+ *       aad  07/10/17 Add XVIDC_VM_3840x2160_60_P_RB video format
+ *       vyc  10/04/17 Added new streaming alpha formats and new memory formats
+ *       aad  09/05/17 Add XVIDC_VM_1366x768_60_P_RB resolution
+ * 4.3   eb   26/01/18 Added API XVidC_GetVideoModeIdExtensive
+ *       jsr  02/22/18 Added XVIDC_CSF_YCBCR_420 color space format
+ *       vyc  04/04/18 Added BGR8 memory format
+ * 
+ * +*******************************************************************************/ + +#ifndef XVIDC_H_ /* Prevent circular inclusions by using protection macros. */ +#define XVIDC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************* Include Files ********************************/ + +#include "xil_types.h" +#include "xil_printf.h" + +/************************** Constant Definitions ******************************/ + +/** + * This typedef enumerates the list of available standard display monitor + * timings as specified in the xvidc_timings_table.c file. The naming format is: + * + * XVIDC_VM___(_RB) + * + * Where RB stands for reduced blanking. + */ +typedef enum { + /* Interlaced modes. */ + XVIDC_VM_720x480_60_I = 0, + XVIDC_VM_720x576_50_I, + XVIDC_VM_1440x480_60_I, + XVIDC_VM_1440x576_50_I, + XVIDC_VM_1920x1080_48_I, + XVIDC_VM_1920x1080_50_I, + XVIDC_VM_1920x1080_60_I, + XVIDC_VM_1920x1080_96_I, + XVIDC_VM_1920x1080_100_I, + XVIDC_VM_1920x1080_120_I, + XVIDC_VM_2048x1080_48_I, + XVIDC_VM_2048x1080_50_I, + XVIDC_VM_2048x1080_60_I, + XVIDC_VM_2048x1080_96_I, + XVIDC_VM_2048x1080_100_I, + XVIDC_VM_2048x1080_120_I, + + + /* Progressive modes. */ + XVIDC_VM_640x350_85_P, + XVIDC_VM_640x480_60_P, + XVIDC_VM_640x480_72_P, + XVIDC_VM_640x480_75_P, + XVIDC_VM_640x480_85_P, + XVIDC_VM_720x400_85_P, + XVIDC_VM_720x480_60_P, + XVIDC_VM_720x576_50_P, + XVIDC_VM_800x600_56_P, + XVIDC_VM_800x600_60_P, + XVIDC_VM_800x600_72_P, + XVIDC_VM_800x600_75_P, + XVIDC_VM_800x600_85_P, + XVIDC_VM_800x600_120_P_RB, + XVIDC_VM_848x480_60_P, + XVIDC_VM_1024x768_60_P, + XVIDC_VM_1024x768_70_P, + XVIDC_VM_1024x768_75_P, + XVIDC_VM_1024x768_85_P, + XVIDC_VM_1024x768_120_P_RB, + XVIDC_VM_1152x864_75_P, + XVIDC_VM_1280x720_24_P, + XVIDC_VM_1280x720_25_P, + XVIDC_VM_1280x720_30_P, + XVIDC_VM_1280x720_50_P, + XVIDC_VM_1280x720_60_P, + XVIDC_VM_1280x768_60_P, + XVIDC_VM_1280x768_60_P_RB, + XVIDC_VM_1280x768_75_P, + XVIDC_VM_1280x768_85_P, + XVIDC_VM_1280x768_120_P_RB, + XVIDC_VM_1280x800_60_P, + XVIDC_VM_1280x800_60_P_RB, + XVIDC_VM_1280x800_75_P, + XVIDC_VM_1280x800_85_P, + XVIDC_VM_1280x800_120_P_RB, + XVIDC_VM_1280x960_60_P, + XVIDC_VM_1280x960_85_P, + XVIDC_VM_1280x960_120_P_RB, + XVIDC_VM_1280x1024_60_P, + XVIDC_VM_1280x1024_75_P, + XVIDC_VM_1280x1024_85_P, + XVIDC_VM_1280x1024_120_P_RB, + XVIDC_VM_1360x768_60_P, + XVIDC_VM_1360x768_120_P_RB, + XVIDC_VM_1366x768_60_P, + XVIDC_VM_1366x768_60_P_RB, + XVIDC_VM_1400x1050_60_P, + XVIDC_VM_1400x1050_60_P_RB, + XVIDC_VM_1400x1050_75_P, + XVIDC_VM_1400x1050_85_P, + XVIDC_VM_1400x1050_120_P_RB, + XVIDC_VM_1440x240_60_P, + XVIDC_VM_1440x900_60_P, + XVIDC_VM_1440x900_60_P_RB, + XVIDC_VM_1440x900_75_P, + XVIDC_VM_1440x900_85_P, + XVIDC_VM_1440x900_120_P_RB, + XVIDC_VM_1600x1200_60_P, + XVIDC_VM_1600x1200_65_P, + XVIDC_VM_1600x1200_70_P, + XVIDC_VM_1600x1200_75_P, + XVIDC_VM_1600x1200_85_P, + XVIDC_VM_1600x1200_120_P_RB, + XVIDC_VM_1680x720_50_P, + XVIDC_VM_1680x720_60_P, + XVIDC_VM_1680x720_100_P, + XVIDC_VM_1680x720_120_P, + XVIDC_VM_1680x1050_50_P, + XVIDC_VM_1680x1050_60_P, + XVIDC_VM_1680x1050_60_P_RB, + XVIDC_VM_1680x1050_75_P, + XVIDC_VM_1680x1050_85_P, + XVIDC_VM_1680x1050_120_P_RB, + XVIDC_VM_1792x1344_60_P, + XVIDC_VM_1792x1344_75_P, + XVIDC_VM_1792x1344_120_P_RB, + XVIDC_VM_1856x1392_60_P, + XVIDC_VM_1856x1392_75_P, + XVIDC_VM_1856x1392_120_P_RB, + XVIDC_VM_1920x1080_24_P, + XVIDC_VM_1920x1080_25_P, + XVIDC_VM_1920x1080_30_P, + XVIDC_VM_1920x1080_48_P, + XVIDC_VM_1920x1080_50_P, + XVIDC_VM_1920x1080_60_P, + XVIDC_VM_1920x1080_100_P, + XVIDC_VM_1920x1080_120_P, + XVIDC_VM_1920x1200_60_P, + XVIDC_VM_1920x1200_60_P_RB, + XVIDC_VM_1920x1200_75_P, + XVIDC_VM_1920x1200_85_P, + XVIDC_VM_1920x1200_120_P_RB, + XVIDC_VM_1920x1440_60_P, + XVIDC_VM_1920x1440_75_P, + XVIDC_VM_1920x1440_120_P_RB, + XVIDC_VM_1920x2160_60_P, + XVIDC_VM_2048x1080_24_P, + XVIDC_VM_2048x1080_25_P, + XVIDC_VM_2048x1080_30_P, + XVIDC_VM_2048x1080_48_P, + XVIDC_VM_2048x1080_50_P, + XVIDC_VM_2048x1080_60_P, + XVIDC_VM_2048x1080_100_P, + XVIDC_VM_2048x1080_120_P, + XVIDC_VM_2560x1080_50_P, + XVIDC_VM_2560x1080_60_P, + XVIDC_VM_2560x1080_100_P, + XVIDC_VM_2560x1080_120_P, + XVIDC_VM_2560x1600_60_P, + XVIDC_VM_2560x1600_60_P_RB, + XVIDC_VM_2560x1600_75_P, + XVIDC_VM_2560x1600_85_P, + XVIDC_VM_2560x1600_120_P_RB, + XVIDC_VM_3840x2160_24_P, + XVIDC_VM_3840x2160_25_P, + XVIDC_VM_3840x2160_30_P, + XVIDC_VM_3840x2160_48_P, + XVIDC_VM_3840x2160_50_P, + XVIDC_VM_3840x2160_60_P, + XVIDC_VM_3840x2160_60_P_RB, + XVIDC_VM_4096x2160_24_P, + XVIDC_VM_4096x2160_25_P, + XVIDC_VM_4096x2160_30_P, + XVIDC_VM_4096x2160_48_P, + XVIDC_VM_4096x2160_50_P, + XVIDC_VM_4096x2160_60_P, + XVIDC_VM_4096x2160_60_P_RB, + + XVIDC_VM_NUM_SUPPORTED, + XVIDC_VM_USE_EDID_PREFERRED, + XVIDC_VM_NO_INPUT, + XVIDC_VM_NOT_SUPPORTED, + XVIDC_VM_CUSTOM, + + /* Marks beginning/end of interlaced/progressive modes in the table. */ + XVIDC_VM_INTL_START = XVIDC_VM_720x480_60_I, + XVIDC_VM_PROG_START = XVIDC_VM_640x350_85_P, + XVIDC_VM_INTL_END = (XVIDC_VM_PROG_START - 1), + XVIDC_VM_PROG_END = (XVIDC_VM_NUM_SUPPORTED - 1), + + /* Common naming. */ + XVIDC_VM_480_60_I = XVIDC_VM_720x480_60_I, + XVIDC_VM_576_50_I = XVIDC_VM_720x576_50_I, + XVIDC_VM_1080_50_I = XVIDC_VM_1920x1080_50_I, + XVIDC_VM_1080_60_I = XVIDC_VM_1920x1080_60_I, + XVIDC_VM_VGA_60_P = XVIDC_VM_640x480_60_P, + XVIDC_VM_480_60_P = XVIDC_VM_720x480_60_P, + XVIDC_VM_SVGA_60_P = XVIDC_VM_800x600_60_P, + XVIDC_VM_XGA_60_P = XVIDC_VM_1024x768_60_P, + XVIDC_VM_720_50_P = XVIDC_VM_1280x720_50_P, + XVIDC_VM_720_60_P = XVIDC_VM_1280x720_60_P, + XVIDC_VM_WXGA_60_P = XVIDC_VM_1366x768_60_P, + XVIDC_VM_UXGA_60_P = XVIDC_VM_1600x1200_60_P, + XVIDC_VM_WSXGA_60_P = XVIDC_VM_1680x1050_60_P, + XVIDC_VM_1080_24_P = XVIDC_VM_1920x1080_24_P, + XVIDC_VM_1080_25_P = XVIDC_VM_1920x1080_25_P, + XVIDC_VM_1080_30_P = XVIDC_VM_1920x1080_30_P, + XVIDC_VM_1080_50_P = XVIDC_VM_1920x1080_50_P, + XVIDC_VM_1080_60_P = XVIDC_VM_1920x1080_60_P, + XVIDC_VM_WUXGA_60_P = XVIDC_VM_1920x1200_60_P, + XVIDC_VM_UHD2_60_P = XVIDC_VM_1920x2160_60_P, + XVIDC_VM_UHD_24_P = XVIDC_VM_3840x2160_24_P, + XVIDC_VM_UHD_25_P = XVIDC_VM_3840x2160_25_P, + XVIDC_VM_UHD_30_P = XVIDC_VM_3840x2160_30_P, + XVIDC_VM_UHD_60_P = XVIDC_VM_3840x2160_60_P, + XVIDC_VM_4K2K_60_P = XVIDC_VM_4096x2160_60_P, + XVIDC_VM_4K2K_60_P_RB = XVIDC_VM_4096x2160_60_P_RB, +} XVidC_VideoMode; + +/** + * Progressive/interlaced video format. + */ +typedef enum { + XVIDC_VF_PROGRESSIVE = 0, + XVIDC_VF_INTERLACED, + XVIDC_VF_UNKNOWN +} XVidC_VideoFormat; + +/** + * Frame rate. + */ +typedef enum { + XVIDC_FR_24HZ = 24, + XVIDC_FR_25HZ = 25, + XVIDC_FR_30HZ = 30, + XVIDC_FR_48HZ = 48, + XVIDC_FR_50HZ = 50, + XVIDC_FR_56HZ = 56, + XVIDC_FR_60HZ = 60, + XVIDC_FR_65HZ = 65, + XVIDC_FR_67HZ = 67, + XVIDC_FR_70HZ = 70, + XVIDC_FR_72HZ = 72, + XVIDC_FR_75HZ = 75, + XVIDC_FR_85HZ = 85, + XVIDC_FR_87HZ = 87, + XVIDC_FR_88HZ = 88, + XVIDC_FR_96HZ = 96, + XVIDC_FR_100HZ = 100, + XVIDC_FR_120HZ = 120, + XVIDC_FR_NUM_SUPPORTED = 18, + XVIDC_FR_UNKNOWN +} XVidC_FrameRate; + +/** + * Color depth - bits per color component. + */ +typedef enum { + XVIDC_BPC_6 = 6, + XVIDC_BPC_8 = 8, + XVIDC_BPC_10 = 10, + XVIDC_BPC_12 = 12, + XVIDC_BPC_14 = 14, + XVIDC_BPC_16 = 16, + XVIDC_BPC_NUM_SUPPORTED = 6, + XVIDC_BPC_UNKNOWN +} XVidC_ColorDepth; + +/** + * Pixels per clock. + */ +typedef enum { + XVIDC_PPC_1 = 1, + XVIDC_PPC_2 = 2, + XVIDC_PPC_4 = 4, + XVIDC_PPC_8 = 8, + XVIDC_PPC_NUM_SUPPORTED = 4, +} XVidC_PixelsPerClock; + +/** + * Color space format. + */ +typedef enum { + /* Streaming video formats */ + XVIDC_CSF_RGB = 0, + XVIDC_CSF_YCRCB_444, + XVIDC_CSF_YCRCB_422, + XVIDC_CSF_YCRCB_420, + XVIDC_CSF_YONLY, + XVIDC_CSF_RGBA, + XVIDC_CSF_YCRCBA_444, + + /* 6 empty slots reserved for video formats for future + * extension + */ + + /* Video in memory formats */ + XVIDC_CSF_MEM_RGBX8 = 10, // [31:0] x:B:G:R 8:8:8:8 + XVIDC_CSF_MEM_YUVX8, // [31:0] x:V:U:Y 8:8:8:8 + XVIDC_CSF_MEM_YUYV8, // [31:0] V:Y:U:Y 8:8:8:8 + XVIDC_CSF_MEM_RGBA8, // [31:0] A:B:G:R 8:8:8:8 + XVIDC_CSF_MEM_YUVA8, // [31:0] A:V:U:Y 8:8:8:8 + XVIDC_CSF_MEM_RGBX10, // [31:0] x:B:G:R 2:10:10:10 + XVIDC_CSF_MEM_YUVX10, // [31:0] x:V:U:Y 2:10:10:10 + XVIDC_CSF_MEM_RGB565, // [15:0] B:G:R 5:6:5 + XVIDC_CSF_MEM_Y_UV8, // [15:0] Y:Y 8:8, [15:0] V:U 8:8 + XVIDC_CSF_MEM_Y_UV8_420, // [15:0] Y:Y 8:8, [15:0] V:U 8:8 + XVIDC_CSF_MEM_RGB8, // [23:0] B:G:R 8:8:8 + XVIDC_CSF_MEM_YUV8, // [24:0] V:U:Y 8:8:8 + XVIDC_CSF_MEM_Y_UV10, // [31:0] x:Y:Y:Y 2:10:10:10 [31:0] x:U:V:U 2:10:10:10 + XVIDC_CSF_MEM_Y_UV10_420, // [31:0] x:Y:Y:Y 2:10:10:10 [31:0] x:U:V:U 2:10:10:10 + XVIDC_CSF_MEM_Y8, // [31:0] Y:Y:Y:Y 8:8:8:8 + XVIDC_CSF_MEM_Y10, // [31:0] x:Y:Y:Y 2:10:10:10 + XVIDC_CSF_MEM_BGRA8, // [31:0] A:R:G:B 8:8:8:8 + XVIDC_CSF_MEM_BGRX8, // [31:0] X:R:G:B 8:8:8:8 + XVIDC_CSF_MEM_UYVY8, // [31:0] Y:V:Y:U 8:8:8:8 + XVIDC_CSF_MEM_BGR8, // [23:0] R:G:B 8:8:8 + XVIDC_CSF_MEM_END, // End of memory formats + + /* Streaming formats with components re-ordered */ + XVIDC_CSF_YCBCR_422 = 64, + XVIDC_CSF_YCBCR_420, + + + XVIDC_CSF_NUM_SUPPORTED, // includes the reserved slots + XVIDC_CSF_UNKNOWN, + XVIDC_CSF_STRM_START = XVIDC_CSF_RGB, + XVIDC_CSF_STRM_END = XVIDC_CSF_YONLY, + XVIDC_CSF_MEM_START = XVIDC_CSF_MEM_RGBX8, + XVIDC_CSF_NUM_STRM = (XVIDC_CSF_STRM_END - XVIDC_CSF_STRM_START + 1), + XVIDC_CSF_NUM_MEM = (XVIDC_CSF_MEM_END - XVIDC_CSF_MEM_START) +} XVidC_ColorFormat; + + +/** + * Image Aspect Ratio. + */ +typedef enum { + XVIDC_AR_4_3 = 0, + XVIDC_AR_16_9 = 1 +} XVidC_AspectRatio; + +/** + * Color space conversion standard. + */ +typedef enum { + XVIDC_BT_2020 = 0, + XVIDC_BT_709, + XVIDC_BT_601, + XVIDC_BT_NUM_SUPPORTED, + XVIDC_BT_UNKNOWN +} XVidC_ColorStd; + +/** + * Color conversion output range. + */ +typedef enum { + XVIDC_CR_16_235 = 0, + XVIDC_CR_16_240, + XVIDC_CR_0_255, + XVIDC_CR_NUM_SUPPORTED, + XVIDC_CR_UNKNOWN_RANGE +} XVidC_ColorRange; + +/** + * 3D formats. + */ +typedef enum { + XVIDC_3D_FRAME_PACKING = 0, /**< Frame packing. */ + XVIDC_3D_FIELD_ALTERNATIVE, /**< Field alternative. */ + XVIDC_3D_LINE_ALTERNATIVE, /**< Line alternative. */ + XVIDC_3D_SIDE_BY_SIDE_FULL, /**< Side-by-side (full). */ + XVIDC_3D_TOP_AND_BOTTOM_HALF, /**< Top-and-bottom (half). */ + XVIDC_3D_SIDE_BY_SIDE_HALF, /**< Side-by-side (half). */ + XVIDC_3D_UNKNOWN +} XVidC_3DFormat; + +/** + * 3D Sub-sampling methods. + */ +typedef enum { + XVIDC_3D_SAMPLING_HORIZONTAL = 0, /**< Horizontal sub-sampling. */ + XVIDC_3D_SAMPLING_QUINCUNX, /**< Quincunx matrix. */ + XVIDC_3D_SAMPLING_UNKNOWN +} XVidC_3DSamplingMethod; + +/** + * 3D Sub-sampling positions. + */ +typedef enum { + XVIDC_3D_SAMPPOS_OLOR = 0, /**< Odd/Left, Odd/Right. */ + XVIDC_3D_SAMPPOS_OLER, /**< Odd/Left, Even/Right. */ + XVIDC_3D_SAMPPOS_ELOR, /**< Even/Left, Odd/Right. */ + XVIDC_3D_SAMPPOS_ELER, /**< Even/Left, Even/Right. */ + XVIDC_3D_SAMPPOS_UNKNOWN +} XVidC_3DSamplingPosition; + +/****************************** Type Definitions ******************************/ + +/** + * Video timing structure. + */ +typedef struct { + u16 HActive; + u16 HFrontPorch; + u16 HSyncWidth; + u16 HBackPorch; + u16 HTotal; + u8 HSyncPolarity; + u16 VActive; + u16 F0PVFrontPorch; + u16 F0PVSyncWidth; + u16 F0PVBackPorch; + u16 F0PVTotal; + u16 F1VFrontPorch; + u16 F1VSyncWidth; + u16 F1VBackPorch; + u16 F1VTotal; + u8 VSyncPolarity; +} XVidC_VideoTiming; + +/** + * 3D Sampling info structure. + */ +typedef struct { + XVidC_3DSamplingMethod Method; + XVidC_3DSamplingPosition Position; +} XVidC_3DSamplingInfo; + +/** + * 3D info structure. + */ +typedef struct { + XVidC_3DFormat Format; + XVidC_3DSamplingInfo Sampling; +} XVidC_3DInfo; + +/** + * Video stream structure. + */ +typedef struct { + XVidC_ColorFormat ColorFormatId; + XVidC_ColorDepth ColorDepth; + XVidC_PixelsPerClock PixPerClk; + XVidC_FrameRate FrameRate; + XVidC_AspectRatio AspectRatio; + u8 IsInterlaced; + u8 Is3D; + XVidC_3DInfo Info_3D; + XVidC_VideoMode VmId; + XVidC_VideoTiming Timing; +} XVidC_VideoStream; + +/** + * Video window structure. + */ +typedef struct { + u32 StartX; + u32 StartY; + u32 Width; + u32 Height; +} XVidC_VideoWindow; + +/** + * Video timing mode from the video timing table. + */ +typedef struct { + XVidC_VideoMode VmId; + const char Name[21]; + XVidC_FrameRate FrameRate; + XVidC_VideoTiming Timing; +} XVidC_VideoTimingMode; + +/** + * Callback type which represents a custom timer wait handler. This is only + * used for Microblaze since it doesn't have a native sleep function. To avoid + * dependency on a hardware timer, the default wait functionality is implemented + * using loop iterations; this isn't too accurate. Therefore a custom timer + * handler is used, the user may implement their own wait implementation. + * + * @param TimerPtr is a pointer to the timer instance. + * @param Delay is the duration (msec/usec) to be passed to the timer + * function. + * +*******************************************************************************/ +typedef void (*XVidC_DelayHandler)(void *TimerPtr, u32 Delay); + +/**************************** Function Prototypes *****************************/ + +u32 XVidC_RegisterCustomTimingModes(const XVidC_VideoTimingMode *CustomTable, + u16 NumElems); +void XVidC_UnregisterCustomTimingModes(void); +u32 XVidC_GetPixelClockHzByHVFr(u32 HTotal, u32 VTotal, u8 FrameRate); +u32 XVidC_GetPixelClockHzByVmId(XVidC_VideoMode VmId); +XVidC_VideoFormat XVidC_GetVideoFormat(XVidC_VideoMode VmId); +u8 XVidC_IsInterlaced(XVidC_VideoMode VmId); +const XVidC_VideoTimingMode* XVidC_GetVideoModeData(XVidC_VideoMode VmId); +const char *XVidC_GetVideoModeStr(XVidC_VideoMode VmId); +const char *XVidC_GetFrameRateStr(XVidC_VideoMode VmId); +const char *XVidC_GetColorFormatStr(XVidC_ColorFormat ColorFormatId); +XVidC_FrameRate XVidC_GetFrameRate(XVidC_VideoMode VmId); +const XVidC_VideoTiming* XVidC_GetTimingInfo(XVidC_VideoMode VmId); +void XVidC_ReportStreamInfo(const XVidC_VideoStream *Stream); +void XVidC_ReportTiming(const XVidC_VideoTiming *Timing, u8 IsInterlaced); +const char *XVidC_Get3DFormatStr(XVidC_3DFormat Format); +u32 XVidC_SetVideoStream(XVidC_VideoStream *VidStrmPtr, XVidC_VideoMode VmId, + XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, + XVidC_PixelsPerClock Ppc); +u32 XVidC_Set3DVideoStream(XVidC_VideoStream *VidStrmPtr, XVidC_VideoMode VmId, + XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, + XVidC_PixelsPerClock Ppc, XVidC_3DInfo *Info3DPtr); +XVidC_VideoMode XVidC_GetVideoModeId(u32 Width, u32 Height, u32 FrameRate, + u8 IsInterlaced); +XVidC_VideoMode XVidC_GetVideoModeIdExtensive(XVidC_VideoTiming *Timing, + u32 FrameRate, + u8 IsInterlaced, + u8 IsExtensive); +XVidC_VideoMode XVidC_GetVideoModeIdRb(u32 Width, u32 Height, u32 FrameRate, + u8 IsInterlaced, u8 RbN); +XVidC_VideoMode XVidC_GetVideoModeIdWBlanking(const XVidC_VideoTiming *Timing, + u32 FrameRate, u8 IsInterlaced); + +/******************* Macros (Inline Functions) Definitions ********************/ + +/*****************************************************************************/ +/** + * This macro check if video stream is 3D or 2D. + * + * @param VidStreamPtr is a pointer to the XVidC_VideoStream structure. + * + * @return 3D(1)/2D(0) + * + * @note C-style signature: + * u8 XDp_IsStream3D(XVidC_VideoStream *VidStreamPtr) + * + *****************************************************************************/ +#define XVidC_IsStream3D(VidStreamPtr) ((VidStreamPtr)->Is3D) + +/*************************** Variable Declarations ****************************/ + +#ifdef __cplusplus +} +#endif + +#endif /* XVIDC_H_ */ +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_cea861.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_cea861.h new file mode 100644 index 000000000..9e50b9d4b --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_cea861.h @@ -0,0 +1,399 @@ +/* vim: set et fde fdm=syntax ft=c.doxygen ts=4 sts=4 sw=4 : */ +/* + * Copyright © 2010-2011 Saleem Abdulrasool . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef xvidc_cea861_h +#define xvidc_cea861_h + +#define XVIDC_EDID_VERBOSITY 0 + +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) + +#define XVIDC_CEA861_NO_DTDS_PRESENT (0x04) + +#define HDMI_VSDB_EXTENSION_FLAGS_OFFSET (0x06) +#define HDMI_VSDB_MAX_TMDS_OFFSET (0x07) +#define HDMI_VSDB_LATENCY_FIELDS_OFFSET (0x08) + +static const u8 HDMI_OUI[] = { 0x00, 0x0C, 0x03 }; +static const u8 HDMI_OUI_HF[] = { 0xC4, 0x5D, 0xD8 }; + +enum xvidc_cea861_data_block_type { + XVIDC_CEA861_DATA_BLOCK_TYPE_RESERVED0, + XVIDC_CEA861_DATA_BLOCK_TYPE_AUDIO, + XVIDC_CEA861_DATA_BLOCK_TYPE_VIDEO, + XVIDC_CEA861_DATA_BLOCK_TYPE_VENDOR_SPECIFIC, + XVIDC_CEA861_DATA_BLOCK_TYPE_SPEAKER_ALLOCATION, + XVIDC_CEA861_DATA_BLOCK_TYPE_VESA_DTC, + XVIDC_CEA861_DATA_BLOCK_TYPE_RESERVED6, + XVIDC_CEA861_DATA_BLOCK_TYPE_EXTENDED, +}; + +enum xvidc_cea861_extended_tag_type_data_block { + XVIDC_CEA861_EXT_TAG_TYPE_VIDEO_CAPABILITY, + XVIDC_CEA861_EXT_TAG_TYPE_VENDOR_SPECIFIC, + XVIDC_CEA861_EXT_TAG_TYPE_VESA_DISPLAY_DEVICE, + XVIDC_CEA861_EXT_TAG_TYPE_VESA_VIDEO_TIMING_BLOCK_EXT, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED_FOR_HDMI_VIDEO_DATA_BLOCK, + XVIDC_CEA861_EXT_TAG_TYPE_COLORIMETRY, + XVIDC_CEA861_EXT_TAG_TYPE_HDR_STATIC_METADATA, + XVIDC_CEA861_EXT_TAG_TYPE_HDR_DYNAMIC_METADATA, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED2, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED3, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED4, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED5, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED6, + XVIDC_CEA861_EXT_TAG_TYPE_VIDEO_FRMT_PREFERENCE, + XVIDC_CEA861_EXT_TAG_TYPE_YCBCR420_VIDEO, + XVIDC_CEA861_EXT_TAG_TYPE_YCBCR420_CAPABILITY_MAP, + XVIDC_CEA861_EXT_TAG_TYPE_CEA_MISC_AUDIO_FIELDS, + XVIDC_CEA861_EXT_TAG_TYPE_VENDOR_SPECIFC_AUDIO, + XVIDC_CEA861_EXT_TAG_TYPE_HDMI_AUDIO, + XVIDC_CEA861_EXT_TAG_TYPE_ROOM_CONFIGURATION, + XVIDC_CEA861_EXT_TAG_TYPE_SPEAKER_LOCATION, + XVIDC_CEA861_EXT_TAG_TYPE_INFOFRAME = 32, +/* Can be extend to 255, refer table 46 cea data block tag codes cea-861-f */ +}; + +enum xvidc_cea861_audio_format { + XVIDC_CEA861_AUDIO_FORMAT_RESERVED, + XVIDC_CEA861_AUDIO_FORMAT_LPCM, + XVIDC_CEA861_AUDIO_FORMAT_AC_3, + XVIDC_CEA861_AUDIO_FORMAT_MPEG_1, + XVIDC_CEA861_AUDIO_FORMAT_MP3, + XVIDC_CEA861_AUDIO_FORMAT_MPEG2, + XVIDC_CEA861_AUDIO_FORMAT_AAC_LC, + XVIDC_CEA861_AUDIO_FORMAT_DTS, + XVIDC_CEA861_AUDIO_FORMAT_ATRAC, + XVIDC_CEA861_AUDIO_FORMAT_DSD, + XVIDC_CEA861_AUDIO_FORMAT_E_AC_3, + XVIDC_CEA861_AUDIO_FORMAT_DTS_HD, + XVIDC_CEA861_AUDIO_FORMAT_MLP, + XVIDC_CEA861_AUDIO_FORMAT_DST, + XVIDC_CEA861_AUDIO_FORMAT_WMA_PRO, + XVIDC_CEA861_AUDIO_FORMAT_EXTENDED, +}; + +struct __attribute__ (( packed )) xvidc_cea861_timing_block { + /* CEA Extension Header */ + u8 tag; + u8 revision; + u8 dtd_offset; + + /* Global Declarations */ + unsigned native_dtds : 4; + unsigned yuv_422_supported : 1; + unsigned yuv_444_supported : 1; + unsigned basic_audio_supported : 1; + unsigned underscan_supported : 1; + + u8 data[123]; + + u8 checksum; +}; + +struct __attribute__ (( packed )) xvidc_cea861_data_block_header { + unsigned length : 5; + unsigned tag : 3; +}; + +struct __attribute__ (( packed )) xvidc_cea861_short_video_descriptor { + unsigned video_identification_code : 7; + unsigned native : 1; +}; +#if XVIDC_EDID_VERBOSITY > 1 +struct __attribute__ (( packed )) xvidc_cea861_video_data_block { + struct xvidc_cea861_data_block_header header; + struct xvidc_cea861_short_video_descriptor svd[]; +}; +#endif +struct __attribute__ (( packed )) xvidc_cea861_short_audio_descriptor { + unsigned channels : 3; /* = value + 1 */ + unsigned audio_format : 4; + unsigned : 1; + + unsigned sample_rate_32_kHz : 1; + unsigned sample_rate_44_1_kHz : 1; + unsigned sample_rate_48_kHz : 1; + unsigned sample_rate_88_2_kHz : 1; + unsigned sample_rate_96_kHz : 1; + unsigned sample_rate_176_4_kHz : 1; + unsigned sample_rate_192_kHz : 1; + unsigned : 1; + + union { + struct __attribute__ (( packed )) { + unsigned bitrate_16_bit : 1; + unsigned bitrate_20_bit : 1; + unsigned bitrate_24_bit : 1; + unsigned : 5; + } lpcm; + + u8 maximum_bit_rate; /* formats 2-8; = value * 8 kHz */ + + u8 format_dependent; /* formats 9-13; */ + + struct __attribute__ (( packed )) { + unsigned profile : 3; + unsigned : 5; + } wma_pro; + + struct __attribute__ (( packed )) { + unsigned : 3; + unsigned code : 5; + } extension; + } flags; +}; +#if XVIDC_EDID_VERBOSITY > 1 +struct __attribute__ (( packed )) xvidc_cea861_audio_data_block { + struct xvidc_cea861_data_block_header header; + struct xvidc_cea861_short_audio_descriptor sad[]; +}; +#endif +#if XVIDC_EDID_VERBOSITY > 1 +struct __attribute__ (( packed )) xvidc_cea861_speaker_allocation { + unsigned front_left_right : 1; + unsigned front_lfe : 1; /* low frequency effects */ + unsigned front_center : 1; + unsigned rear_left_right : 1; + unsigned rear_center : 1; + unsigned front_left_right_center : 1; + unsigned rear_left_right_center : 1; + unsigned front_left_right_wide : 1; + + unsigned front_left_right_high : 1; + unsigned top_center : 1; + unsigned front_center_high : 1; + unsigned : 5; + + unsigned : 8; +}; +#endif +#if XVIDC_EDID_VERBOSITY > 1 +struct __attribute__ (( packed )) xvidc_cea861_speaker_allocation_data_block { + struct xvidc_cea861_data_block_header header; + struct xvidc_cea861_speaker_allocation payload; +}; +#endif +struct __attribute__ (( packed )) xvidc_cea861_vendor_specific_data_block { + struct xvidc_cea861_data_block_header header; + u8 ieee_registration[3]; + u8 data[30]; +}; + +struct __attribute__ (( packed )) xvidc_cea861_extended_data_block { + struct xvidc_cea861_data_block_header header; + u8 xvidc_cea861_extended_tag_codes; + u8 data[30]; +}; + +#if XVIDC_EDID_VERBOSITY > 1 +static const struct xvidc_cea861_timing { + const u16 hactive; + const u16 vactive; + const enum { + INTERLACED, + PROGRESSIVE, + } mode; + const u16 htotal; + const u16 hblank; + const u16 vtotal; + const double vblank; + const double hfreq; + const double vfreq; + const double pixclk; +} xvidc_cea861_timings[] = { + [ 1] = { 640, 480, PROGRESSIVE, 800, 160, 525, 45.0, 31.469, 59.940, 25.175 }, + [ 2] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 31.469, 59.940, 27.000 }, + [ 3] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 31.469, 59.940, 27.000 }, + [ 4] = { 1280, 720, PROGRESSIVE, 1650, 370, 750, 30.0, 45.000, 60.000, 74.250 }, + [ 5] = { 1920,1080, INTERLACED, 2200, 280, 1125, 22.5, 33.750, 60.000, 72.250 }, + [ 6] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 15.734, 59.940, 27.000 }, + [ 7] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 15.734, 59.940, 27.000 }, + [ 8] = { 1440, 240, PROGRESSIVE, 1716, 276, 262, 22.0, 15.734, 60.054, 27.000 }, + [ 9] = { 1440, 240, PROGRESSIVE, 1716, 276, 262, 22.0, 15.734, 59.826, 27.000 }, + [ 10] = { 2880, 480, INTERLACED, 3432, 552, 525, 22.5, 15.734, 59.940, 54.000 }, + [ 11] = { 2880, 480, INTERLACED, 3432, 552, 525, 22.5, 15.734, 59.940, 54.000 }, + [ 12] = { 2880, 240, PROGRESSIVE, 3432, 552, 262, 22.0, 15.734, 60.054, 54.000 }, + [ 13] = { 2880, 240, PROGRESSIVE, 3432, 552, 262, 22.0, 15.734, 59.826, 54.000 }, + [ 14] = { 1440, 480, PROGRESSIVE, 1716, 276, 525, 45.0, 31.469, 59.940, 54.000 }, + [ 15] = { 1440, 480, PROGRESSIVE, 1716, 276, 525, 45.0, 31.469, 59.940, 54.000 }, + [ 16] = { 1920, 1080, PROGRESSIVE, 2200, 280, 1125, 45.0, 67.500, 60.000, 148.500 }, + [ 17] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 31.250, 50.000, 27.000 }, + [ 18] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 31.250, 50.000, 27.000 }, + [ 19] = { 1280, 720, PROGRESSIVE, 1980, 700, 750, 30.0, 37.500, 50.000, 74.250 }, + [ 20] = { 1920, 1080, INTERLACED, 2640, 720, 1125, 22.5, 28.125, 50.000, 74.250 }, + [ 21] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 15.625, 50.000, 27.000 }, + [ 22] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 15.625, 50.000, 27.000 }, + [ 23] = { 1440, 288, PROGRESSIVE, 1728, 288, 312, 24.0, 15.625, 50.080, 27.000 }, + [ 24] = { 1440, 288, PROGRESSIVE, 1728, 288, 313, 25.0, 15.625, 49.920, 27.000 }, + [ 25] = { 2880, 576, INTERLACED, 3456, 576, 625, 24.5, 15.625, 50.000, 54.000 }, + [ 26] = { 2880, 576, INTERLACED, 3456, 576, 625, 24.5, 15.625, 50.000, 54.000 }, + [ 27] = { 2880, 288, PROGRESSIVE, 3456, 576, 312, 24.0, 15.625, 50.080, 54.000 }, + [ 28] = { 2880, 288, PROGRESSIVE, 3456, 576, 313, 25.0, 15.625, 49.920, 54.000 }, + [ 29] = { 1440, 576, PROGRESSIVE, 1728, 288, 625, 49.0, 31.250, 50.000, 54.000 }, + [ 30] = { 1440, 576, PROGRESSIVE, 1728, 288, 625, 49.0, 31.250, 50.000, 54.000 }, + [ 31] = { 1920, 1080, PROGRESSIVE, 2640, 720, 1125, 45.0, 56.250, 50.000, 148.500 }, + [ 32] = { 1920, 1080, PROGRESSIVE, 2750, 830, 1125, 45.0, 27.000, 24.000, 74.250 }, + [ 33] = { 1920, 1080, PROGRESSIVE, 2640, 720, 1125, 45.0, 28.125, 25.000, 74.250 }, + [ 34] = { 1920, 1080, PROGRESSIVE, 2200, 280, 1125, 45.0, 33.750, 30.000, 74.250 }, + [ 35] = { 2880, 480, PROGRESSIVE, 3432, 552, 525, 45.0, 31.469, 59.940, 108.500 }, + [ 36] = { 2880, 480, PROGRESSIVE, 3432, 552, 525, 45.0, 31.469, 59.940, 108.500 }, + [ 37] = { 2880, 576, PROGRESSIVE, 3456, 576, 625, 49.0, 31.250, 50.000, 108.000 }, + [ 38] = { 2880, 576, PROGRESSIVE, 3456, 576, 625, 49.0, 31.250, 50.000, 108.000 }, + [ 39] = { 1920, 1080, INTERLACED, 2304, 384, 1250, 85.0, 31.250, 50.000, 72.000 }, + [ 40] = { 1920, 1080, INTERLACED, 2640, 720, 1125, 22.5, 56.250, 100.000, 148.500 }, + [ 41] = { 1280, 720, PROGRESSIVE, 1980, 700, 750, 30.0, 75.000, 100.000, 148.500 }, + [ 42] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 62.500, 100.000, 54.000 }, + [ 43] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 62.500, 100.000, 54.000 }, + [ 44] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 31.250, 100.000, 54.000 }, + [ 45] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 31.250, 100.000, 54.000 }, + [ 46] = { 1920, 1080, INTERLACED, 2200, 280, 1125, 22.5, 67.500, 120.000, 148.500 }, + [ 47] = { 1280, 720, PROGRESSIVE, 1650, 370, 750, 30.0, 90.000, 120.000, 148.500 }, + [ 48] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 62.937, 119.880, 54.000 }, + [ 49] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 62.937, 119.880, 54.000 }, + [ 50] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 31.469, 119.880, 54.000 }, + [ 51] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 31.469, 119.880, 54.000 }, + [ 52] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 125.000, 200.000, 108.000 }, + [ 53] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 125.000, 200.000, 108.000 }, + [ 54] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 62.500, 200.000, 108.000 }, + [ 55] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 62.500, 200.000, 108.000 }, + [ 56] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 125.874, 239.760, 108.000 }, + [ 57] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 125.874, 239.760, 108.000 }, + [ 58] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 62.937, 239.760, 108.000 }, + [ 59] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 62.937, 239.760, 108.000 }, + [60 ] = {1280, 720 , PROGRESSIVE, 3300, 2020, 750 , 30 , 18 , 24.0003, 59.4 }, + [61 ] = {1280, 720 , PROGRESSIVE, 3960, 2680, 750 , 30 , 18.75 , 25 , 74.25 }, + [62 ] = {1280, 720 , PROGRESSIVE, 3300, 2020, 750 , 30 , 22.5 , 30.0003, 74.25 }, + [63 ] = {1920, 1080, PROGRESSIVE, 2200, 280 , 1125, 45 , 135 , 120.003, 297 }, + [64 ] = {1920, 1080, PROGRESSIVE, 2640, 720 , 1125, 45 , 112.5 , 100 , 297 }, + [65 ] = {1280, 720 , PROGRESSIVE, 3300, 2020, 750 , 30 , 18 , 24.0003, 59.4 }, + [66 ] = {1280, 720 , PROGRESSIVE, 3960, 2680, 750 , 30 , 18.75 , 25 , 74.25 }, + [67 ] = {1280, 720 , PROGRESSIVE, 3300, 2020, 750 , 30 , 22.5 , 30.0003, 74.25 }, + [68 ] = {1280, 720 , PROGRESSIVE, 1980, 700 , 750 , 30 , 37.5 , 50 , 74.25 }, + [69 ] = {1280, 720 , PROGRESSIVE, 1650, 370 , 750 , 30 , 45 , 60.0003, 74.25 }, + [70 ] = {1280, 720 , PROGRESSIVE, 1980, 700 , 750 , 30 , 75 , 100 , 148.5 }, + [71 ] = {1280, 720 , PROGRESSIVE, 1650, 370 , 750 , 30 , 90 , 120.003, 148.5 }, + [72 ] = {1920, 1080, PROGRESSIVE, 2750, 830 , 1125, 45 , 27 , 24.0003, 74.25 }, + [73 ] = {1920, 1080, PROGRESSIVE, 2640, 720 , 1125, 45 , 28.125 , 25 , 74.25 }, + [74 ] = {1920, 1080, PROGRESSIVE, 2200, 280 , 1125, 45 , 33.75 , 30.0003, 74.25 }, + [75 ] = {1920, 1080, PROGRESSIVE, 2640, 720 , 1125, 45 , 56.25 , 50 , 148.5 }, + [76 ] = {1920, 1080, PROGRESSIVE, 2200, 280 , 1125, 45 , 67.5 , 60.0003, 148.5 }, + [77 ] = {1920, 1080, PROGRESSIVE, 2640, 720 , 1125, 45 , 112.5 , 100 , 297 }, + [78 ] = {1920, 1080, PROGRESSIVE, 2200, 280 , 1125, 45 , 135 , 120.003, 297 }, + [79 ] = {1680, 720 , PROGRESSIVE, 3300, 1620, 750 , 30 , 18 , 24.0003, 59.4 }, + [80 ] = {1680, 720 , PROGRESSIVE, 3168, 1488, 750 , 30 , 18.75 , 25 , 59.4 }, + [81 ] = {1680, 720 , PROGRESSIVE, 2640, 960 , 750 , 30 , 22.5 , 30.0003, 59.4 }, + [82 ] = {1680, 720 , PROGRESSIVE, 2200, 520 , 750 , 30 , 37.5 , 50 , 82.5 }, + [83 ] = {1680, 720 , PROGRESSIVE, 2200, 520 , 750 , 30 , 45 , 60.0003, 99 }, + [84 ] = {1680, 720 , PROGRESSIVE, 2000, 320 , 825 , 105 , 82.5 , 100 , 165 }, + [85 ] = {1680, 720 , PROGRESSIVE, 2000, 320 , 825 , 105 , 99 , 120.003, 198 }, + [86 ] = {2560, 1080, PROGRESSIVE, 3750, 1190, 1100, 20 , 26.4 , 24.0003, 99 }, + [87 ] = {2560, 1080, PROGRESSIVE, 3200, 640 , 1125, 45 , 28.125 , 25 , 90 }, + [88 ] = {2560, 1080, PROGRESSIVE, 3520, 960 , 1125, 45 , 33.75 , 30.0003, 118.8 }, + [89 ] = {2560, 1080, PROGRESSIVE, 3300, 740 , 1125, 45 , 56.25 , 50 , 185.625 }, + [90 ] = {2560, 1080, PROGRESSIVE, 3000, 440 , 1100, 20 , 66 , 60.0003, 198 }, + [91 ] = {2560, 1080, PROGRESSIVE, 2970, 410 , 1250, 170 , 125 , 100 , 371.25 }, + [92 ] = {2560, 1080, PROGRESSIVE, 3300, 740 , 1250, 170 , 150 , 120.003, 495 }, + [93 ] = {3840, 2160, PROGRESSIVE, 5500, 1660, 2250, 90 , 54 , 24.0003, 297 }, + [94 ] = {3840, 2160, PROGRESSIVE, 5280, 1440, 2250, 90 , 56.25 , 25 , 297 }, + [95 ] = {3840, 2160, PROGRESSIVE, 4400, 560 , 2250, 90 , 67.5 , 30.0003, 297 }, + [96 ] = {3840, 2160, PROGRESSIVE, 5280, 1440, 2250, 90 , 112.5 , 50 , 594 }, + [97 ] = {3840, 2160, PROGRESSIVE, 4400, 560 , 2250, 90 , 135 , 60.0003, 594 }, + [98 ] = {4096, 2160, PROGRESSIVE, 5500, 1404, 2250, 90 , 54 , 24.0003, 297 }, + [99 ] = {4096, 2160, PROGRESSIVE, 5280, 1184, 2250, 90 , 56.25 , 25 , 297 }, + [100] = {4096, 2160, PROGRESSIVE, 4400, 304 , 2250, 90 , 67.5 , 30.0003, 297 }, + [101] = {4096, 2160, PROGRESSIVE, 5280, 1184, 2250, 90 , 112.5 , 50 , 594 }, + [102] = {4096, 2160, PROGRESSIVE, 4400, 304 , 2250, 90 , 135 , 60.0003, 594 }, + [103] = {3840, 2160, PROGRESSIVE, 5500, 1660, 2250, 90 , 54 , 24.0003, 297 }, + [104] = {3840, 2160, PROGRESSIVE, 5280, 1440, 2250, 90 , 56.25 , 25 , 297 }, + [105] = {3840, 2160, PROGRESSIVE, 4400, 560 , 2250, 90 , 67.5 , 30.0003, 297 }, + [106] = {3840, 2160, PROGRESSIVE, 5280, 1440, 2250, 90 , 112.5 , 50 , 594 }, + [107] = {3840, 2160, PROGRESSIVE, 4400, 560 , 2250, 90 , 135 , 60.0003, 594 }, +}; +#endif + +struct __attribute__ (( packed )) xvidc_cea861_hdmi_vendor_specific_data_block { + struct xvidc_cea861_data_block_header header; + + u8 ieee_registration_id[3]; /* LSB */ + + unsigned port_configuration_b : 4; + unsigned port_configuration_a : 4; + unsigned port_configuration_d : 4; + unsigned port_configuration_c : 4; + + /* extension fields */ + unsigned dvi_dual_link : 1; + unsigned : 2; + unsigned yuv_444_supported : 1; + unsigned colour_depth_30_bit : 1; + unsigned colour_depth_36_bit : 1; + unsigned colour_depth_48_bit : 1; + unsigned audio_info_frame : 1; + + u8 max_tmds_clock; /* = value * 5 */ + + unsigned : 6; + unsigned interlaced_latency_fields : 1; + unsigned latency_fields : 1; + + u8 video_latency; /* = (value - 1) * 2 */ + u8 audio_latency; /* = (value - 1) * 2 */ + u8 interlaced_video_latency; + u8 interlaced_audio_latency; + + u8 reserved[]; +}; + +struct __attribute__ (( packed )) xvidc_cea861_hdmi_hf_vendor_specific_data_block { + struct xvidc_cea861_data_block_header header; + + u8 ieee_registration_id[3]; /* LSB */ + + u8 version; + u8 max_tmds_char_rate; + + unsigned osd_disparity_3d : 1; + unsigned dual_view_3d : 1; + unsigned independent_view_3d : 1; + unsigned lte_340mcsc_scramble : 1; + + unsigned : 2; + + unsigned rr_capable : 1; + unsigned scdc_present : 1; + unsigned dc_30bit_yuv420 : 1; + unsigned dc_36bit_yuv420 : 1; + unsigned dc_48bit_yuv420 : 1; + + u8 reserved[]; +}; + +#endif diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid.c new file mode 100644 index 000000000..585f7b8a3 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid.c @@ -0,0 +1,707 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xvidc_edid.c + * @addtogroup video_common_v4_2 + * @{ + * + * Contains function definitions related to the Extended Display Identification + * Data (EDID) structure which is present in all monitors. All content in this + * file is agnostic of communication interface protocol. + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   als  11/09/14 Initial release.
+ * 2.2   als  02/01/16 Functions with pointer arguments that don't modify
+ *                     contents now const.
+ * 4.0   aad  10/26/16 Added API for colormetry which returns fixed point
+ *		       in Q0.10 format instead of float.
+ * 
+ * +*******************************************************************************/ + +/******************************* Include Files ********************************/ + +#include "xvidc_edid.h" + +/**************************** Function Prototypes *****************************/ + +static u32 XVidC_EdidIsVideoTimingSupportedPreferredTiming(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode); +static u32 XVidC_EdidIsVideoTimingSupportedEstablishedTimings(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode); +static u32 XVidC_EdidIsVideoTimingSupportedStandardTimings(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode); +static int XVidC_CalculatePower(u8 Base, u8 Power); +static int XVidC_CalculateBinaryFraction_QFormat(u16 Val, u8 DecPtIndex); + +/**************************** Function Definitions ****************************/ + +/******************************************************************************/ +/** + * Get the manufacturer name as specified in the vendor and product ID field of + * the supplied base Extended Display Identification Data (EDID). + * + * @param EdidRaw is the supplied base EDID to retrieve the manufacturer + * name from. + * @param ManName is the string that will be modified to hold the + * retrieved manufacturer name. + * + * @return None. + * + * @note The ManName argument is modified with the manufacturer name. + * +*******************************************************************************/ +void XVidC_EdidGetManName(const u8 *EdidRaw, char ManName[4]) +{ + ManName[0] = 0x40 + ((EdidRaw[XVIDC_EDID_VPI_ID_MAN_NAME0] & + XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR0_MASK) >> + XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR0_SHIFT); + ManName[1] = 0x40 + (((EdidRaw[XVIDC_EDID_VPI_ID_MAN_NAME0] & + XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR1_MASK) << + XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR1_POS) | + (EdidRaw[XVIDC_EDID_VPI_ID_MAN_NAME1] >> + XVIDC_EDID_VPI_ID_MAN_NAME1_CHAR1_SHIFT)); + ManName[2] = 0x40 + (EdidRaw[XVIDC_EDID_VPI_ID_MAN_NAME1] & + XVIDC_EDID_VPI_ID_MAN_NAME1_CHAR2_MASK); + ManName[3] = '\0'; +} + +/******************************************************************************/ +/** + * Get the color bit depth (bits per primary color) as specified in the basic + * display parameters and features, video input definition field of the supplied + * base Extended Display Identification Data (EDID). + * + * @param EdidRaw is the supplied base EDID to retrieve color depth + * information from. + * + * @return The number of bits per primary color as specified by the + * supplied base EDID. + * + * @note None. + * +*******************************************************************************/ +XVidC_ColorDepth XVidC_EdidGetColorDepth(const u8 *EdidRaw) +{ + XVidC_ColorDepth Bpc; + + switch (((EdidRaw[XVIDC_EDID_BDISP_VID] & + XVIDC_EDID_BDISP_VID_DIG_BPC_MASK) >> + XVIDC_EDID_BDISP_VID_DIG_BPC_SHIFT)) { + case XVIDC_EDID_BDISP_VID_DIG_BPC_6: + Bpc = XVIDC_BPC_6; + break; + + case XVIDC_EDID_BDISP_VID_DIG_BPC_8: + Bpc = XVIDC_BPC_8; + break; + + case XVIDC_EDID_BDISP_VID_DIG_BPC_10: + Bpc = XVIDC_BPC_10; + break; + + case XVIDC_EDID_BDISP_VID_DIG_BPC_12: + Bpc = XVIDC_BPC_12; + break; + + case XVIDC_EDID_BDISP_VID_DIG_BPC_14: + Bpc = XVIDC_BPC_14; + break; + + case XVIDC_EDID_BDISP_VID_DIG_BPC_16: + Bpc = XVIDC_BPC_16; + break; + + default: + Bpc = XVIDC_BPC_UNKNOWN; + break; + } + + return Bpc; +} + +/******************************************************************************/ +/** + * Calculates the x chromaticity coordinate for red by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The x chromatacity coordinate for red. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcRedX(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_REDX_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | (EdidRaw[XVIDC_EDID_CC_RG_LOW] >> + XVIDC_EDID_CC_RBX_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the y chromaticity coordinate for red by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The y chromatacity coordinate for red. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcRedY(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_REDY_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | ((EdidRaw[XVIDC_EDID_CC_RG_LOW] & + XVIDC_EDID_CC_RBY_LOW_MASK) >> + XVIDC_EDID_CC_RBY_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the x chromaticity coordinate for green by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The x chromatacity coordinate for green. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcGreenX(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_GREENX_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | ((EdidRaw[XVIDC_EDID_CC_RG_LOW] & + XVIDC_EDID_CC_GWX_LOW_MASK) >> + XVIDC_EDID_CC_GWX_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the y chromaticity coordinate for green by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The y chromatacity coordinate for green. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcGreenY(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_GREENY_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | (EdidRaw[XVIDC_EDID_CC_RG_LOW] & + XVIDC_EDID_CC_GWY_LOW_MASK), 10); +} + +/******************************************************************************/ +/** + * Calculates the x chromaticity coordinate for blue by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The x chromatacity coordinate for blue. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcBlueX(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_BLUEX_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | (EdidRaw[XVIDC_EDID_CC_BW_LOW] >> + XVIDC_EDID_CC_RBX_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the y chromaticity coordinate for blue by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The y chromatacity coordinate for blue. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcBlueY(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_BLUEY_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | ((EdidRaw[XVIDC_EDID_CC_BW_LOW] & + XVIDC_EDID_CC_RBY_LOW_MASK) >> + XVIDC_EDID_CC_RBY_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the x chromaticity coordinate for white by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The x chromatacity coordinate for white. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcWhiteX(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_WHITEX_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | ((EdidRaw[XVIDC_EDID_CC_BW_LOW] & + XVIDC_EDID_CC_GWX_LOW_MASK) >> XVIDC_EDID_CC_GWX_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the y chromaticity coordinate for white by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to an integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The y chromatacity coordinate for white. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcWhiteY(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_WHITEY_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | (EdidRaw[XVIDC_EDID_CC_BW_LOW] & + XVIDC_EDID_CC_GWY_LOW_MASK), 10); +} + +/******************************************************************************/ +/** + * Retrieves the active vertical resolution from the standard timings field of + * the supplied base Extended Display Identification Data (EDID). + * + * @param EdidRaw is the supplied base EDID to check the timing against. + * @param StdTimingsNum specifies which one of the standard timings to + * retrieve from the standard timings field. + * + * @return The vertical active resolution of the specified standard timing + * from the supplied base EDID. + * + * @note StdTimingsNum is an index 1-8. + * +*******************************************************************************/ +u16 XVidC_EdidGetStdTimingsV(const u8 *EdidRaw, u8 StdTimingsNum) +{ + u16 V; + + switch (XVidC_EdidGetStdTimingsAr(EdidRaw, StdTimingsNum)) { + case XVIDC_EDID_STD_TIMINGS_AR_16_10: + V = (10 * XVidC_EdidGetStdTimingsH(EdidRaw, + StdTimingsNum)) / 16; + break; + + case XVIDC_EDID_STD_TIMINGS_AR_4_3: + V = (3 * XVidC_EdidGetStdTimingsH(EdidRaw, + StdTimingsNum)) / 4; + break; + + case XVIDC_EDID_STD_TIMINGS_AR_5_4: + V = (4 * XVidC_EdidGetStdTimingsH(EdidRaw, + StdTimingsNum)) / 5; + break; + + case XVIDC_EDID_STD_TIMINGS_AR_16_9: + V = (9 * XVidC_EdidGetStdTimingsH(EdidRaw, + StdTimingsNum)) / 16; + break; + default: + V = 0; + break; + } + + return V; +} + +/******************************************************************************/ +/** + * Checks whether or not a specified video timing mode is supported as specified + * in the supplied base Extended Display Identification Data (EDID). The + * preferred timing, established timings (I, II, II), and the standard timings + * fields are checked for support. + * + * @param EdidRaw is the supplied base EDID to check the timing against. + * @param VtMode is the video timing mode to check for support. + * + * @return + * - XST_SUCCESS if the video timing mode is supported as specified + * in the supplied base EDID. + * - XST_FAILURE otherwise. + * + * @note None. + * +*******************************************************************************/ +u32 XVidC_EdidIsVideoTimingSupported(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode) +{ + u32 Status; + + /* Check if the video mode is the preferred timing. */ + Status = XVidC_EdidIsVideoTimingSupportedPreferredTiming(EdidRaw, + VtMode); + if (Status == XST_SUCCESS) { + return Status; + } + + /* Check established timings I, II, and III. */ + Status = XVidC_EdidIsVideoTimingSupportedEstablishedTimings(EdidRaw, + VtMode); + if (Status == XST_SUCCESS) { + return Status; + } + + /* Check in standard timings support. */ + Status = XVidC_EdidIsVideoTimingSupportedStandardTimings(EdidRaw, + VtMode); + + return Status; +} + +/******************************************************************************/ +/** + * Checks whether or not a specified video timing mode is the preferred timing + * of the supplied base Extended Display Identification Data (EDID). + * + * @param EdidRaw is the supplied base EDID to check the timing against. + * @param VtMode is the video timing mode to check for support. + * + * @return + * - XST_SUCCESS if the video timing mode is the preferred timing + * as specified in the base EDID. + * - XST_FAILURE otherwise. + * + * @note None. + * +*******************************************************************************/ +static u32 XVidC_EdidIsVideoTimingSupportedPreferredTiming(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode) +{ + const u8 *Ptm; + + Ptm = &EdidRaw[XVIDC_EDID_PTM]; + + u32 HActive = (((Ptm[XVIDC_EDID_DTD_PTM_HRES_HBLANK_U4] & + XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_MASK) >> + XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_SHIFT) << 8) | + Ptm[XVIDC_EDID_DTD_PTM_HRES_LSB]; + + u32 VActive = (((Ptm[XVIDC_EDID_DTD_PTM_VRES_VBLANK_U4] & + XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_MASK) >> + XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_SHIFT) << 8) | + Ptm[XVIDC_EDID_DTD_PTM_VRES_LSB]; + + if (VtMode->Timing.F1VTotal != XVidC_EdidIsDtdPtmInterlaced(EdidRaw)) { + return (XST_FAILURE); + } + else if ((VtMode->Timing.HActive == HActive) && + (VtMode->Timing.VActive == VActive)) { + return (XST_SUCCESS); + } + + return XST_FAILURE; +} + +/******************************************************************************/ +/** + * Checks whether or not a specified video timing mode is supported in the + * established timings field of the supplied base Extended Display + * Identification Data (EDID). + * + * @param EdidRaw is the supplied base EDID to check the timing against. + * @param VtMode is the video timing mode to check for support. + * + * @return + * - XST_SUCCESS if the video timing mode is supported in the + * base EDID's established timings field. + * - XST_FAILURE otherwise. + * + * @note None. + * +*******************************************************************************/ +static u32 XVidC_EdidIsVideoTimingSupportedEstablishedTimings(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode) +{ + u32 Status = XST_FAILURE; + + /* Check established timings I, II, and III. */ + if ((VtMode->Timing.HActive == 800) && + (VtMode->Timing.VActive == 640) && + (VtMode->FrameRate == XVIDC_FR_56HZ) && + XVidC_EdidSuppEstTimings800x600_56(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 640) && + (VtMode->Timing.VActive == 480) && + (VtMode->FrameRate == XVIDC_FR_60HZ) && + XVidC_EdidSuppEstTimings640x480_60(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 800) && + (VtMode->Timing.VActive == 600) && + (VtMode->FrameRate == XVIDC_FR_60HZ) && + XVidC_EdidSuppEstTimings800x600_60(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1024) && + (VtMode->Timing.VActive == 768) && + (VtMode->FrameRate == XVIDC_FR_60HZ) && + XVidC_EdidSuppEstTimings1024x768_60(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 640) && + (VtMode->Timing.VActive == 480) && + (VtMode->FrameRate == XVIDC_FR_67HZ) && + XVidC_EdidSuppEstTimings640x480_67(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 720) && + (VtMode->Timing.VActive == 400) && + (VtMode->FrameRate == XVIDC_FR_70HZ) && + XVidC_EdidSuppEstTimings720x400_70(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1024) && + (VtMode->Timing.VActive == 768) && + (VtMode->FrameRate == XVIDC_FR_70HZ) && + XVidC_EdidSuppEstTimings1024x768_70(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 640) && + (VtMode->Timing.VActive == 480) && + (VtMode->FrameRate == XVIDC_FR_72HZ) && + XVidC_EdidSuppEstTimings640x480_72(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 800) && + (VtMode->Timing.VActive == 600) && + (VtMode->FrameRate == XVIDC_FR_72HZ) && + XVidC_EdidSuppEstTimings800x600_72(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 640) && + (VtMode->Timing.VActive == 480) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings640x480_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 800) && + (VtMode->Timing.VActive == 600) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings800x600_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 832) && + (VtMode->Timing.VActive == 624) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings832x624_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1024) && + (VtMode->Timing.VActive == 768) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings1024x768_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1152) && + (VtMode->Timing.VActive == 870) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings1152x870_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1280) && + (VtMode->Timing.VActive == 1024) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings1280x1024_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1024) && + (VtMode->Timing.VActive == 768) && + (VtMode->FrameRate == XVIDC_FR_87HZ) && + XVidC_EdidSuppEstTimings1024x768_87(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 720) && + (VtMode->Timing.VActive == 400) && + (VtMode->FrameRate == XVIDC_FR_88HZ) && + XVidC_EdidSuppEstTimings720x400_88(EdidRaw)) { + Status = XST_SUCCESS; + } + + return Status; +} + +/******************************************************************************/ +/** + * Checks whether or not a specified video timing mode is supported in the + * standard timings field of the supplied base Extended Display Identification + * Data (EDID). + * + * @param EdidRaw is the supplied base EDID to check the timing against. + * @param VtMode is the video timing mode to check for support. + * + * @return + * - XST_SUCCESS if the video timing mode is supported in the + * base EDID's standard timings fields. + * - XST_FAILURE otherwise. + * + * @note None. + * +*******************************************************************************/ +static u32 XVidC_EdidIsVideoTimingSupportedStandardTimings(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode) +{ + u8 Index; + + for (Index = 0; Index < 8; Index++) { + if ((VtMode->Timing.HActive == + XVidC_EdidGetStdTimingsH(EdidRaw, Index + 1)) && + (VtMode->Timing.VActive == + XVidC_EdidGetStdTimingsV(EdidRaw, Index + 1)) && + (VtMode->FrameRate == (u8)XVidC_EdidGetStdTimingsFrr( + EdidRaw, Index + 1))) { + return XST_SUCCESS; + } + } + + return XST_FAILURE; +} + +/******************************************************************************/ +/** + * Perform a power operation. + * + * @param Base is b in the power operation, b^n. + * @param Power is n in the power operation, b^n. + * + * @return Base^Power (Base to the power of Power). + * + * @note None. + * +*******************************************************************************/ +static int XVidC_CalculatePower(u8 Base, u8 Power) +{ + u8 Index; + u32 Res = 1; + + for (Index = 0; Index < Power; Index++) { + Res *= Base; + } + + return Res; +} + + +/******************************************************************************/ +/** + * Convert a fractional binary number into a fixed point Q0.DecPtIndex number + * Binary digits to the right of the decimal point represent 2^-1 to + * 2^-(DecPtIndex+1). Binary digits to the left of the decimal point represent + * 2^0, 2^1, etc. For a given Q format, using an unsigned integer container with + * n fractional bits: + * its range is [0, 2^-n] + * its resolution is 2^n + * + * @param Val is the binary representation of the fraction. + * @param DecPtIndex is the index of the decimal point in the binary + * number. The decimal point is between the binary digits at Val's + * indices (DecPtIndex -1) and (DecPtIndex). DecPtIndex will + * determine the Q format resolution. + * + * @return Fixed point representation of the fractional part of the binary + * number in Q format. + * + * @note None. + * +*******************************************************************************/ +static int XVidC_CalculateBinaryFraction_QFormat(u16 Val, u8 DecPtIndex) +{ + int Index; + u32 Res; + + for (Index = DecPtIndex - 1, Res = 0; Index >= 0; Index--) { + if (((Val >> Index) & 0x1) == 1) { + Res += XVidC_CalculatePower(2 , Index); + } + } + + return Res; +} +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid.h new file mode 100644 index 000000000..347b4f362 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid.h @@ -0,0 +1,484 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xvidc_edid.h + * @addtogroup video_common_v4_2 + * @{ + * + * Contains macros, definitions, and function declarations related to the + * Extended Display Identification Data (EDID) structure which is present in all + * monitors. All content in this file is agnostic of communication interface + * protocol. + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   als  11/09/14 Initial release.
+ * 2.2   als  02/01/16 Functions with pointer arguments that don't modify
+ *                     contents now const.
+ * 4.0   aad  10/26/16 Functions which return fixed point values instead of
+ *		       float
+ * 
+ * +*******************************************************************************/ + +#ifndef XVIDC_EDID_H_ +/* Prevent circular inclusions by using protection macros. */ +#define XVIDC_EDID_H_ + +#ifdef __cplusplus +extern "C" { +#endif +/******************************* Include Files ********************************/ + +#include "xstatus.h" +#include "xvidc.h" + +/************************** Constant Definitions ******************************/ + +/** @name Address mapping for the base EDID block. + * @{ + */ +#define XVIDC_EDID_HEADER 0x00 +/* Vendor and product identification. */ +#define XVIDC_EDID_VPI_ID_MAN_NAME0 0x08 +#define XVIDC_EDID_VPI_ID_MAN_NAME1 0x09 +#define XVIDC_EDID_VPI_ID_PROD_CODE_LSB 0x0A +#define XVIDC_EDID_VPI_ID_PROD_CODE_MSB 0x0B +#define XVIDC_EDID_VPI_ID_SN0 0x0C +#define XVIDC_EDID_VPI_ID_SN1 0x0D +#define XVIDC_EDID_VPI_ID_SN2 0x0E +#define XVIDC_EDID_VPI_ID_SN3 0x0F +#define XVIDC_EDID_VPI_WEEK_MAN 0x10 +#define XVIDC_EDID_VPI_YEAR 0x11 +/* EDID structure version and revision. */ +#define XVIDC_EDID_STRUCT_VER 0x12 +#define XVIDC_EDID_STRUCT_REV 0x13 +/* Basic display parameters and features. */ +#define XVIDC_EDID_BDISP_VID 0x14 +#define XVIDC_EDID_BDISP_H_SSAR 0x15 +#define XVIDC_EDID_BDISP_V_SSAR 0x16 +#define XVIDC_EDID_BDISP_GAMMA 0x17 +#define XVIDC_EDID_BDISP_FEATURE 0x18 +/* Color characteristics (display x,y chromaticity coordinates). */ +#define XVIDC_EDID_CC_RG_LOW 0x19 +#define XVIDC_EDID_CC_BW_LOW 0x1A +#define XVIDC_EDID_CC_REDX_HIGH 0x1B +#define XVIDC_EDID_CC_REDY_HIGH 0x1C +#define XVIDC_EDID_CC_GREENX_HIGH 0x1D +#define XVIDC_EDID_CC_GREENY_HIGH 0x1E +#define XVIDC_EDID_CC_BLUEX_HIGH 0x1F +#define XVIDC_EDID_CC_BLUEY_HIGH 0x20 +#define XVIDC_EDID_CC_WHITEX_HIGH 0x21 +#define XVIDC_EDID_CC_WHITEY_HIGH 0x22 +/* Established timings. */ +#define XVIDC_EDID_EST_TIMINGS_I 0x23 +#define XVIDC_EDID_EST_TIMINGS_II 0x24 +#define XVIDC_EDID_EST_TIMINGS_MAN 0x25 +/* Standard timings. */ +#define XVIDC_EDID_STD_TIMINGS_H(N) (0x26 + 2 * (N - 1)) +#define XVIDC_EDID_STD_TIMINGS_AR_FRR(N) (0x27 + 2 * (N - 1)) +/* 18 byte descriptors. */ +#define XVIDC_EDID_18BYTE_DESCRIPTOR(N) (0x36 + 18 * (N - 1)) +#define XVIDC_EDID_PTM (XVIDC_EDID_18BYTE_DESCRIPTOR(1)) +/* - Detailed timing descriptor (DTD) / Preferred timing mode (PTM). */ +#define XVIDC_EDID_DTD_PTM_PIXEL_CLK_KHZ_LSB 0x00 +#define XVIDC_EDID_DTD_PTM_PIXEL_CLK_KHZ_MSB 0x01 +#define XVIDC_EDID_DTD_PTM_HRES_LSB 0x02 +#define XVIDC_EDID_DTD_PTM_HBLANK_LSB 0x03 +#define XVIDC_EDID_DTD_PTM_HRES_HBLANK_U4 0x04 +#define XVIDC_EDID_DTD_PTM_VRES_LSB 0x05 +#define XVIDC_EDID_DTD_PTM_VBLANK_LSB 0x06 +#define XVIDC_EDID_DTD_PTM_VRES_VBLANK_U4 0x07 +#define XVIDC_EDID_DTD_PTM_HFPORCH_LSB 0x08 +#define XVIDC_EDID_DTD_PTM_HSPW_LSB 0x09 +#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4 0x0A +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2 0x0B +#define XVIDC_EDID_DTD_PTM_HIMGSIZE_MM_LSB 0x0C +#define XVIDC_EDID_DTD_PTM_VIMGSIZE_MM_LSB 0x0D +#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4 0x0E +#define XVIDC_EDID_DTD_PTM_HBORDER 0x0F +#define XVIDC_EDID_DTD_PTM_VBORDER 0x10 +#define XVIDC_EDID_DTD_PTM_SIGNAL 0x11 + +/* Extension block count. */ +#define XVIDC_EDID_EXT_BLK_COUNT 0x7E +/* Checksum. */ +#define XVIDC_EDID_CHECKSUM 0x7F +/* @} */ + +/******************************************************************************/ + +/** @name Extended Display Identification Data: Masks, shifts, and values. + * @{ + */ +#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR0_SHIFT 2 +#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR0_MASK (0x1F << 2) +#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR1_MASK 0x03 +#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR1_POS 3 +#define XVIDC_EDID_VPI_ID_MAN_NAME1_CHAR1_SHIFT 5 +#define XVIDC_EDID_VPI_ID_MAN_NAME1_CHAR2_MASK 0x1F + +/* Basic display parameters and features: Video input definition. */ +#define XVIDC_EDID_BDISP_VID_VSI_SHIFT 7 +#define XVIDC_EDID_BDISP_VID_VSI_MASK (0x01 << 7) +#define XVIDC_EDID_BDISP_VID_ANA_SLS_SHIFT 5 +#define XVIDC_EDID_BDISP_VID_ANA_SLS_MASK (0x03 << 5) +#define XVIDC_EDID_BDISP_VID_ANA_SLS_0700_0300_1000 0x0 +#define XVIDC_EDID_BDISP_VID_ANA_SLS_0714_0286_1000 0x1 +#define XVIDC_EDID_BDISP_VID_ANA_SLS_1000_0400_1400 0x2 +#define XVIDC_EDID_BDISP_VID_ANA_SLS_0700_0000_0700 0x3 +#define XVIDC_EDID_BDISP_VID_ANA_VID_SETUP_MASK (0x01 << 4) +#define XVIDC_EDID_BDISP_VID_ANA_SEP_SYNC_HV_MASK (0x01 << 3) +#define XVIDC_EDID_BDISP_VID_ANA_COMP_SYNC_H_MASK (0x01 << 2) +#define XVIDC_EDID_BDISP_VID_ANA_COMP_SYNC_G_MASK (0x01 << 1) +#define XVIDC_EDID_BDISP_VID_ANA_SERR_V_SYNC_MASK (0x01) +#define XVIDC_EDID_BDISP_VID_DIG_BPC_SHIFT 4 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_MASK (0x7 << 4) +#define XVIDC_EDID_BDISP_VID_DIG_BPC_UNDEF 0x0 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_6 0x1 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_8 0x2 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_10 0x3 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_12 0x4 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_14 0x5 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_16 0x6 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_MASK 0xF +#define XVIDC_EDID_BDISP_VID_DIG_VIS_UNDEF 0x0 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_DVI 0x1 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_HDMIA 0x2 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_HDMIB 0x3 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_MDDI 0x4 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_DP 0x5 + +/* Basic display parameters and features: Feature support. */ +#define XVIDC_EDID_BDISP_FEATURE_PM_STANDBY_MASK (0x1 << 7) +#define XVIDC_EDID_BDISP_FEATURE_PM_SUSPEND_MASK (0x1 << 6) +#define XVIDC_EDID_BDISP_FEATURE_PM_OFF_VLP_MASK (0x1 << 5) +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_SHIFT 3 +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_MASK (0x3 << 3) +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_MCG 0x0 +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_RGB 0x1 +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_NRGB 0x2 +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_UNDEF 0x3 +#define XVIDC_EDID_BDISP_FEATURE_DIG_COLORENC_YCRCB444_MASK (0x1 << 3) +#define XVIDC_EDID_BDISP_FEATURE_DIG_COLORENC_YCRCB422_MASK (0x1 << 4) +#define XVIDC_EDID_BDISP_FEATURE_SRGB_DEF_MASK (0x1 << 2) +#define XVIDC_EDID_BDISP_FEATURE_PTM_INC_MASK (0x1 << 1) +#define XVIDC_EDID_BDISP_FEATURE_CONTFREQ_MASK (0x1) + +/* Color characteristics (display x,y chromaticity coordinates). */ +#define XVIDC_EDID_CC_HIGH_SHIFT 2 +#define XVIDC_EDID_CC_RBX_LOW_SHIFT 6 +#define XVIDC_EDID_CC_RBY_LOW_SHIFT 4 +#define XVIDC_EDID_CC_RBY_LOW_MASK (0x3 << 4) +#define XVIDC_EDID_CC_GWX_LOW_SHIFT 2 +#define XVIDC_EDID_CC_GWX_LOW_MASK (0x3 << 2) +#define XVIDC_EDID_CC_GWY_LOW_MASK (0x3) +#define XVIDC_EDID_CC_GREENY_HIGH 0x1E +#define XVIDC_EDID_CC_BLUEX_HIGH 0x1F +#define XVIDC_EDID_CC_BLUEY_HIGH 0x20 +#define XVIDC_EDID_CC_WHITEX_HIGH 0x21 +#define XVIDC_EDID_CC_WHITEY_HIGH 0x22 + +/* Established timings. */ +#define XVIDC_EDID_EST_TIMINGS_I_720x400_70_MASK (0x1 << 7) +#define XVIDC_EDID_EST_TIMINGS_I_720x400_88_MASK (0x1 << 6) +#define XVIDC_EDID_EST_TIMINGS_I_640x480_60_MASK (0x1 << 5) +#define XVIDC_EDID_EST_TIMINGS_I_640x480_67_MASK (0x1 << 4) +#define XVIDC_EDID_EST_TIMINGS_I_640x480_72_MASK (0x1 << 3) +#define XVIDC_EDID_EST_TIMINGS_I_640x480_75_MASK (0x1 << 2) +#define XVIDC_EDID_EST_TIMINGS_I_800x600_56_MASK (0x1 << 1) +#define XVIDC_EDID_EST_TIMINGS_I_800x600_60_MASK (0x1) +#define XVIDC_EDID_EST_TIMINGS_II_800x600_72_MASK (0x1 << 7) +#define XVIDC_EDID_EST_TIMINGS_II_800x600_75_MASK (0x1 << 6) +#define XVIDC_EDID_EST_TIMINGS_II_832x624_75_MASK (0x1 << 5) +#define XVIDC_EDID_EST_TIMINGS_II_1024x768_87_MASK (0x1 << 4) +#define XVIDC_EDID_EST_TIMINGS_II_1024x768_60_MASK (0x1 << 3) +#define XVIDC_EDID_EST_TIMINGS_II_1024x768_70_MASK (0x1 << 2) +#define XVIDC_EDID_EST_TIMINGS_II_1024x768_75_MASK (0x1 << 1) +#define XVIDC_EDID_EST_TIMINGS_II_1280x1024_75_MASK (0x1) +#define XVIDC_EDID_EST_TIMINGS_MAN_1152x870_75_MASK (0x1 << 7) +#define XVIDC_EDID_EST_TIMINGS_MAN_MASK (0x7F) + +/* Standard timings. */ +#define XVIDC_EDID_STD_TIMINGS_AR_SHIFT 6 +#define XVIDC_EDID_STD_TIMINGS_AR_16_10 0x0 +#define XVIDC_EDID_STD_TIMINGS_AR_4_3 0x1 +#define XVIDC_EDID_STD_TIMINGS_AR_5_4 0x2 +#define XVIDC_EDID_STD_TIMINGS_AR_16_9 0x3 +#define XVIDC_EDID_STD_TIMINGS_FRR_MASK (0x3F) + +/* Detailed timing descriptor (DTD) / Preferred timing mode (PTM). */ +#define XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XBLANK_MASK 0x0F +#define XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_MASK 0xF0 +#define XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_SHIFT 4 +#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4_VSPW_MASK 0x0F +#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4_VFPORCH_MASK 0xF0 +#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4_VFPORCH_SHIFT 4 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HFPORCH_MASK 0xC0 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HSPW_MASK 0x30 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_VFPORCH_MASK 0x0C +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_VSPW_MASK 0x03 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HFPORCH_SHIFT 6 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HSPW_SHIFT 4 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_VFPORCH_SHIFT 2 +#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4_VIMGSIZE_MM_MASK 0x0F +#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4_HIMGSIZE_MM_MASK 0xF0 +#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4_HIMGSIZE_MM_SHIFT 4 +#define XVIDC_EDID_DTD_PTM_SIGNAL_INTERLACED_MASK 0x80 +#define XVIDC_EDID_DTD_PTM_SIGNAL_INTERLACED_SHIFT 7 +#define XVIDC_EDID_DTD_PTM_SIGNAL_HPOLARITY_MASK 0x02 +#define XVIDC_EDID_DTD_PTM_SIGNAL_VPOLARITY_MASK 0x04 +#define XVIDC_EDID_DTD_PTM_SIGNAL_HPOLARITY_SHIFT 1 +#define XVIDC_EDID_DTD_PTM_SIGNAL_VPOLARITY_SHIFT 2 +/* @} */ + +/******************* Macros (Inline Functions) Definitions ********************/ + +#define XVidC_EdidIsHeaderValid(E) \ + !memcmp(E, "\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00", 8) + +/* Vendor and product identification: ID manufacturer name. */ +/* void XVidC_EdidGetManName(const u8 *EdidRaw, char ManName[4]); */ + +/* Vendor and product identification: ID product code. */ +#define XVidC_EdidGetIdProdCode(E) \ + ((u16)((E[XVIDC_EDID_VPI_ID_PROD_CODE_MSB] << 8) | \ + E[XVIDC_EDID_VPI_ID_PROD_CODE_LSB])) + +/* Vendor and product identification: ID serial number. */ +#define XVidC_EdidGetIdSn(E) \ + ((u32)((E[XVIDC_EDID_VPI_ID_SN3] << 24) | \ + (E[XVIDC_EDID_VPI_ID_SN2] << 16) | (E[XVIDC_EDID_VPI_ID_SN1] << 8) | \ + E[XVIDC_EDID_VPI_ID_SN0])) + +/* Vendor and product identification: Week and year of manufacture or model + * year. */ +#define XVidC_EdidGetManWeek(E) (E[XVIDC_EDID_VPI_WEEK_MAN]) +#define XVidC_EdidGetModManYear(E) (E[XVIDC_EDID_VPI_YEAR] + 1990) +#define XVidC_EdidIsYearModel(E) (XVidC_EdidGetManWeek(E) == 0xFF) +#define XVidC_EdidIsYearMan(E) (XVidC_EdidGetManWeek(E) != 0xFF) + +/* EDID structure version and revision. */ +#define XVidC_EdidGetStructVer(E) (E[XVIDC_EDID_STRUCT_VER]) +#define XVidC_EdidGetStructRev(E) (E[XVIDC_EDID_STRUCT_REV]) + +/* Basic display parameters and features: Video input definition. */ +#define XVidC_EdidIsDigitalSig(E) \ + ((E[XVIDC_EDID_BDISP_VID] & XVIDC_EDID_BDISP_VID_VSI_MASK) != 0) +#define XVidC_EdidIsAnalogSig(E) \ + ((E[XVIDC_EDID_BDISP_VID] & XVIDC_EDID_BDISP_VID_VSI_MASK) == 0) +#define XVidC_EdidGetAnalogSigLvlStd(E) \ + ((E[XVIDC_EDID_BDISP_VID] & XVIDC_EDID_BDISP_VID_ANA_SLS_MASK) >> \ + XVIDC_EDID_BDISP_VID_ANA_SLS_SHIFT) +#define XVidC_EdidGetAnalogSigVidSetup(E) \ + ((E[XVIDC_EDID_BDISP_VID] & \ + XVIDC_EDID_BDISP_VID_ANA_VID_SETUP_MASK) != 0) +#define XVidC_EdidSuppAnalogSigSepSyncHv(E) \ + ((E[XVIDC_EDID_BDISP_VID] & \ + XVIDC_EDID_BDISP_VID_ANA_SEP_SYNC_HV_MASK) != 0) +#define XVidC_EdidSuppAnalogSigCompSyncH(E) \ + ((E[XVIDC_EDID_BDISP_VID] & \ + XVIDC_EDID_BDISP_VID_ANA_COMP_SYNC_H_MASK) != 0) +#define XVidC_EdidSuppAnalogSigCompSyncG(E) \ + ((E[XVIDC_EDID_BDISP_VID] & \ + XVIDC_EDID_BDISP_VID_ANA_COMP_SYNC_G_MASK) != 0) +#define XVidC_EdidSuppAnalogSigSerrVsync(E) \ + ((E[XVIDC_EDID_BDISP_VID] & \ + XVIDC_EDID_BDISP_VID_ANA_SERR_V_SYNC_MASK) != 0) +/* XVidC_ColorDepth XVidC_EdidGetColorDepth(const u8 *EdidRaw); */ +#define XVidC_EdidGetDigitalSigIfaceStd(E) \ + (E[XVIDC_EDID_BDISP_VID] & XVIDC_EDID_BDISP_VID_DIG_VIS_MASK) + +/* Basic display parameters and features: Horizontal and vertical screen size or + * aspect ratio. */ +#define XVidC_EdidIsSsArDefined(E) \ + ((E[XVIDC_EDID_BDISP_H_SSAR] | E[XVIDC_EDID_BDISP_V_SSAR]) != 0) +#define XVidC_EdidGetSsArH(E) E[XVIDC_EDID_BDISP_H_SSAR] +#define XVidC_EdidGetSsArV(E) E[XVIDC_EDID_BDISP_V_SSAR] +#define XVidC_EdidIsSsArSs(E) \ + ((XVidC_EdidGetSsArH(E) != 0) && (XVidC_EdidGetSsArV(E) != 0)) +#define XVidC_EdidIsSsArArL(E) \ + ((XVidC_EdidGetSsArH(E) != 0) && (XVidC_EdidGetSsArV(E) == 0)) +#define XVidC_EdidIsSsArArP(E) \ + ((XVidC_EdidGetSsArH(E) == 0) && (XVidC_EdidGetSsArV(E) != 0)) +#define XVidC_EdidGetSsArArL(E) \ + ((float)((XVidC_EdidGetSsArH(E) + 99.0) / 100.0)) +#define XVidC_EdidGetSsArArP(E) \ + ((float)(100.0 / (XVidC_EdidGetSsArV(E) + 99.0))) + +/* Basic display parameters and features: Gamma. */ +#define XVidC_EdidIsGammaInExt(E) (E[XVIDC_EDID_BDISP_GAMMA] == 0xFF) +#define XVidC_EdidGetGamma(E) \ + ((float)((E[XVIDC_EDID_BDISP_GAMMA] + 100.0) / 100.0)) + +/* Basic display parameters and features: Feature support. */ +#define XVidC_EdidSuppFeaturePmStandby(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_PM_STANDBY_MASK) != 0) +#define XVidC_EdidSuppFeaturePmSuspend(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_PM_SUSPEND_MASK) != 0) +#define XVidC_EdidSuppFeaturePmOffVlp(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_PM_OFF_VLP_MASK) != 0) +#define XVidC_EdidGetFeatureAnaColorType(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_MASK) >> \ + XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_SHIFT) +#define XVidC_EdidSuppFeatureDigColorEncYCrCb444(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_DIG_COLORENC_YCRCB444_MASK) != 0) +#define XVidC_EdidSuppFeatureDigColorEncYCrCb422(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_DIG_COLORENC_YCRCB422_MASK) != 0) +#define XVidC_EdidIsFeatureSrgbDef(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_SRGB_DEF_MASK) != 0) +#define XVidC_EdidIsFeaturePtmInc(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_PTM_INC_MASK) != 0) +#define XVidC_EdidIsFeatureContFreq(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_CONTFREQ_MASK) != 0) + +/* Established timings. */ +#define XVidC_EdidSuppEstTimings720x400_70(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_720x400_70_MASK) != 0) +#define XVidC_EdidSuppEstTimings720x400_88(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_720x400_88_MASK) != 0) +#define XVidC_EdidSuppEstTimings640x480_60(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_640x480_60_MASK) != 0) +#define XVidC_EdidSuppEstTimings640x480_67(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_640x480_67_MASK) != 0) +#define XVidC_EdidSuppEstTimings640x480_72(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_640x480_72_MASK) != 0) +#define XVidC_EdidSuppEstTimings640x480_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_640x480_75_MASK) != 0) +#define XVidC_EdidSuppEstTimings800x600_56(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_800x600_56_MASK) != 0) +#define XVidC_EdidSuppEstTimings800x600_60(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_800x600_60_MASK) != 0) +#define XVidC_EdidSuppEstTimings800x600_72(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_800x600_72_MASK) != 0) +#define XVidC_EdidSuppEstTimings800x600_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_800x600_75_MASK) != 0) +#define XVidC_EdidSuppEstTimings832x624_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_832x624_75_MASK) != 0) +#define XVidC_EdidSuppEstTimings1024x768_87(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_1024x768_87_MASK) != 0) +#define XVidC_EdidSuppEstTimings1024x768_60(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_1024x768_60_MASK) != 0) +#define XVidC_EdidSuppEstTimings1024x768_70(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_1024x768_70_MASK) != 0) +#define XVidC_EdidSuppEstTimings1024x768_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_1024x768_75_MASK) != 0) +#define XVidC_EdidSuppEstTimings1280x1024_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_1280x1024_75_MASK) != 0) +#define XVidC_EdidSuppEstTimings1152x870_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_MAN] & \ + XVIDC_EDID_EST_TIMINGS_MAN_1152x870_75_MASK) != 0) +#define XVidC_EdidGetTimingsMan(E) \ + (E[XVIDC_EDID_EST_TIMINGS_MAN] & XVIDC_EDID_EST_TIMINGS_MAN_MASK) + +/* Standard timings. */ +#define XVidC_EdidGetStdTimingsH(E, N) \ + ((E[XVIDC_EDID_STD_TIMINGS_H(N)] + 31) * 8) +#define XVidC_EdidGetStdTimingsAr(E, N) \ + (E[XVIDC_EDID_STD_TIMINGS_AR_FRR(N)] >> XVIDC_EDID_STD_TIMINGS_AR_SHIFT) +#define XVidC_EdidGetStdTimingsFrr(E, N) \ + ((E[XVIDC_EDID_STD_TIMINGS_AR_FRR(N)] & \ + XVIDC_EDID_STD_TIMINGS_FRR_MASK) + 60) +/* u16 XVidC_EdidGetStdTimingsV(const u8 *EdidRaw, u8 StdTimingsNum); */ +#define XVidC_EdidIsDtdPtmInterlaced(E) \ + ((E[XVIDC_EDID_PTM + XVIDC_EDID_DTD_PTM_SIGNAL] & \ + XVIDC_EDID_DTD_PTM_SIGNAL_INTERLACED_MASK) >> \ + XVIDC_EDID_DTD_PTM_SIGNAL_INTERLACED_SHIFT) + +/* Extension block count. */ +#define XVidC_EdidGetExtBlkCount(E) (E[XVIDC_EDID_EXT_BLK_COUNT]) + +/* Checksum. */ +#define XVidC_EdidGetChecksum(E) (E[XVIDC_EDID_CHECKSUM]) + +/**************************** Function Prototypes *****************************/ + +/* Vendor and product identification: ID manufacturer name. */ +void XVidC_EdidGetManName(const u8 *EdidRaw, char ManName[4]); + +/* Basic display parameters and features: Video input definition. */ +XVidC_ColorDepth XVidC_EdidGetColorDepth(const u8 *EdidRaw); + +/* Color characteristics (display x,y chromaticity coordinates). */ +int XVidC_EdidGetCcRedX(const u8 *EdidRaw); +int XVidC_EdidGetCcRedY(const u8 *EdidRaw); +int XVidC_EdidGetCcGreenX(const u8 *EdidRaw); +int XVidC_EdidGetCcGreenY(const u8 *EdidRaw); +int XVidC_EdidGetCcBlueX(const u8 *EdidRaw); +int XVidC_EdidGetCcBlueY(const u8 *EdidRaw); +int XVidC_EdidGetCcWhiteX(const u8 *EdidRaw); +int XVidC_EdidGetCcWhiteY(const u8 *EdidRaw); + +/* Standard timings. */ +u16 XVidC_EdidGetStdTimingsV(const u8 *EdidRaw, u8 StdTimingsNum); + +/* Utility functions. */ +u32 XVidC_EdidIsVideoTimingSupported(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode); + +#ifdef __cplusplus +} +#endif +#endif /* XVIDC_EDID_H_ */ +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.c new file mode 100644 index 000000000..c8ce9f125 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.c @@ -0,0 +1,174 @@ +/****************************************************************************** +* +* Copyright (C) 2017 - 2018 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xhdmi_edid.h +* +* Software Initalization & Configuration +* +* Interrupts +* +* Virtual Memory +* +* This driver supports Virtual Memory. The RTOS is responsible for calculating +* the correct device base address in Virtual Memory space. +* +* Threads +* +* This driver is not thread safe. Any needs for threads or thread mutual +* exclusion must be satisfied by the layer above this driver. +* +* Asserts +* +* Asserts are used within all Xilinx drivers to enforce constraints on argument +* values. Asserts can be turned off on a system-wide basis by defining at +* compile time, the NDEBUG identifier. By default, asserts are turned on and it +* is recommended that users leave asserts on during development. +* +* Building the driver +* +*
+* MODIFICATION HISTORY:
+*
+* Ver   Who  Date       Changes
+* ----- ---- ---------- --------------------------------------------------
+* 1.0   mmo  24-01-2017 EDID Parser capability
+* 
+* +******************************************************************************/ +#include "stdio.h" +#include "string.h" +#include "stdlib.h" +#include "stdbool.h" +#include "xil_types.h" +#include "xstatus.h" +#include "xil_exception.h" +#include "xvidc_edid_ext.h" + +static XV_VidC_PicAspectRatio xv_vidc_getPicAspectRatio(u16 hres, u16 vres); + +static XV_VidC_PicAspectRatio xv_vidc_getPicAspectRatio(u16 hres, u16 vres) { + XV_VidC_PicAspectRatio ar; +#define HAS_RATIO_OF(x, y) (hres == (vres*(x)/(y))&&!((vres*(x))%(y))) + if (HAS_RATIO_OF(16, 10)) { + ar.width = 16; + ar.height = 10; + return ar; + } + if (HAS_RATIO_OF(4, 3)) { + ar.width = 4; + ar.height = 3; + return ar; + } + if (HAS_RATIO_OF(5, 4)) { + ar.width = 5; + ar.height = 4; + return ar; + } + if (HAS_RATIO_OF(16, 9)) { + ar.width = 16; + ar.height = 9; + return ar; +#undef HAS_RATIO + } else { + ar.width = 0; + ar.height = 0; + return ar; + } +} + + +void XV_VidC_EdidCtrlParamInit (XV_VidC_EdidCntrlParam *EdidCtrlParam) { + + /* Verify arguments. */ + Xil_AssertVoid(EdidCtrlParam != NULL); + + (void)memset((void *)EdidCtrlParam, 0, + sizeof(XV_VidC_EdidCntrlParam)); + + EdidCtrlParam->IsHdmi = XVIDC_ISDVI; + EdidCtrlParam->IsYCbCr444Supp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr420Supp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr422Supp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr444DeepColSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->Is30bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->Is36bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->Is48bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr420dc30bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr420dc36bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr420dc48bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsSCDCReadRequestReady= XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsSCDCPresent = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->MaxFrameRateSupp = 0; + EdidCtrlParam->MaxTmdsMhz = 0; +} + +XV_VidC_TimingParam +XV_VidC_timing + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + XV_VidC_TimingParam timing; + + timing.hres = xvidc_edid_detailed_timing_horizontal_active(dtb); + timing.vres = xvidc_edid_detailed_timing_vertical_active(dtb); + timing.htotal = timing.hres + + xvidc_edid_detailed_timing_horizontal_blanking(dtb); + timing.vtotal = timing.vres + + xvidc_edid_detailed_timing_vertical_blanking(dtb); + timing.hfp = xvidc_edid_detailed_timing_horizontal_sync_offset(dtb); + timing.vfp = xvidc_edid_detailed_timing_vertical_sync_offset(dtb); + timing.hsync_width = + xvidc_edid_detailed_timing_horizontal_sync_pulse_width(dtb); + timing.vsync_width = + xvidc_edid_detailed_timing_vertical_sync_pulse_width(dtb); + timing.pixclk = xvidc_edid_detailed_timing_pixel_clock(dtb); + timing.vfreq = (timing.pixclk / (timing.vtotal * timing.htotal)); + timing.vidfrmt = (XVidC_VideoFormat) dtb->interlaced; + timing.aspect_ratio = + xv_vidc_getPicAspectRatio (timing.hres, timing.vres); + timing.hsync_polarity = dtb->signal_pulse_polarity; + timing.vsync_polarity = dtb->signal_serration_polarity; + + return timing; +} + +#if XVIDC_EDID_VERBOSITY > 1 +XV_VidC_DoubleRep Double2Int (double in_val) { + XV_VidC_DoubleRep DR; + + DR.Integer = in_val; + DR.Decimal = (in_val - DR.Integer) * 10000; + + return (DR); +} +#endif diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.h new file mode 100644 index 000000000..d685723f5 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.h @@ -0,0 +1,626 @@ +/* vim: set et fde fdm=syntax ft=c.doxygen ts=4 sts=4 sw=4 : */ +/* + * Copyright © 2010-2011 Saleem Abdulrasool . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef xvidc_edid_h +#define xvidc_edid_h + +#include "stdbool.h" +#include "xvidc.h" +#include "xil_assert.h" +#include "xvidc_cea861.h" + +#define XVIDC_EDID_BLOCK_SIZE (0x80) +#define XVIDC_EDID_MAX_EXTENSIONS (0xFE) + + +static const u8 XVIDC_EDID_EXT_HEADER[] = + { 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 }; +static const u8 XVIDC_EDID_STANDARD_TIMING_DESCRIPTOR_INVALID[] = + { 0x01, 0x01 }; + +enum xvidc_edid_extension_type { + XVIDC_EDID_EXTENSION_TIMING = 0x01, /* Timing Extension */ + XVIDC_EDID_EXTENSION_CEA = 0x02, /* Additional Timing Block + Data (CEA EDID Timing Extension)*/ + XVIDC_EDID_EXTENSION_VTB = 0x10, /* Video Timing Block + Extension (VTB-EXT)*/ + XVIDC_EDID_EXTENSION_XVIDC_EDID_2_0= 0x20, /* EDID 2.0 Extension */ + XVIDC_EDID_EXTENSION_DI = 0x40, /* Display Information + Extension (DI-EXT) */ + XVIDC_EDID_EXTENSION_LS = 0x50, /* Localised String + Extension (LS-EXT) */ + XVIDC_EDID_EXTENSION_MI = 0x60, /* Microdisplay Interface + Extension (MI-EXT) */ + XVIDC_EDID_EXTENSION_DTCDB_1 = 0xA7, /* Display Transfer + Characteristics Data Block (DTCDB) */ + XVIDC_EDID_EXTENSION_DTCDB_2 = 0xAF, + XVIDC_EDID_EXTENSION_DTCDB_3 = 0xBF, + XVIDC_EDID_EXTENSION_BLOCK_MAP = 0xF0, /* Block Map*/ + XVIDC_EDID_EXTENSION_DDDB = 0xFF, /* Display Device Data + Block (DDDB)*/ +}; + +enum xvidc_edid_display_type { + XVIDC_EDID_DISPLAY_TYPE_MONOCHROME, + XVIDC_EDID_DISPLAY_TYPE_RGB, + XVIDC_EDID_DISPLAY_TYPE_NON_RGB, + XVIDC_EDID_DISPLAY_TYPE_UNDEFINED, +}; + +enum xvidc_edid_aspect_ratio { + XVIDC_EDID_ASPECT_RATIO_16_10, + XVIDC_EDID_ASPECT_RATIO_4_3, + XVIDC_EDID_ASPECT_RATIO_5_4, + XVIDC_EDID_ASPECT_RATIO_16_9, +}; + +enum xvidc_edid_signal_sync { + XVIDC_EDID_SIGNAL_SYNC_ANALOG_COMPOSITE, + XVIDC_EDID_SIGNAL_SYNC_BIPOLAR_ANALOG_COMPOSITE, + XVIDC_EDID_SIGNAL_SYNC_DIGITAL_COMPOSITE, + XVIDC_EDID_SIGNAL_SYNC_DIGITAL_SEPARATE, +}; + +enum xvidc_edid_stereo_mode { + XVIDC_EDID_STEREO_MODE_NONE, + XVIDC_EDID_STEREO_MODE_RESERVED, + XVIDC_EDID_STEREO_MODE_FIELD_SEQUENTIAL_RIGHT, + XVIDC_EDID_STEREO_MODE_2_WAY_INTERLEAVED_RIGHT, + XVIDC_EDID_STEREO_MODE_FIELD_SEQUENTIAL_LEFT, + XVIDC_EDID_STEREO_MODE_2_WAY_INTERLEAVED_LEFT, + XVIDC_EDID_STEREO_MODE_4_WAY_INTERLEAVED, + XVIDC_EDID_STEREO_MODE_SIDE_BY_SIDE_INTERLEAVED, +}; + +enum xvidc_edid_monitor_descriptor_type { + XVIDC_EDID_MONTIOR_DESCRIPTOR_MANUFACTURER_DEFINED = 0x0F, + XVIDC_EDID_MONITOR_DESCRIPTOR_STANDARD_TIMING_IDENTIFIERS = 0xFA, + XVIDC_EDID_MONITOR_DESCRIPTOR_COLOR_POINT = 0xFB, + XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_NAME = 0xFC, + XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_RANGE_LIMITS = 0xFD, + XVIDC_EDID_MONITOR_DESCRIPTOR_ASCII_STRING = 0xFE, + XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_SERIAL_NUMBER = 0xFF, +}; + +enum xvidc_edid_secondary_timing_support { + XVIDC_EDID_SECONDARY_TIMING_NOT_SUPPORTED, + XVIDC_EDID_SECONDARY_TIMING_GFT = 0x02, +}; + + +struct __attribute__ (( packed )) xvidc_edid_detailed_timing_descriptor { + u16 pixel_clock; /* = value * 10000 */ + + u8 horizontal_active_lo; + u8 horizontal_blanking_lo; + + unsigned horizontal_blanking_hi : 4; + unsigned horizontal_active_hi : 4; + + u8 vertical_active_lo; + u8 vertical_blanking_lo; + + unsigned vertical_blanking_hi : 4; + unsigned vertical_active_hi : 4; + + u8 horizontal_sync_offset_lo; + u8 horizontal_sync_pulse_width_lo; + + unsigned vertical_sync_pulse_width_lo : 4; + unsigned vertical_sync_offset_lo : 4; + + unsigned vertical_sync_pulse_width_hi : 2; + unsigned vertical_sync_offset_hi : 2; + unsigned horizontal_sync_pulse_width_hi : 2; + unsigned horizontal_sync_offset_hi : 2; + + u8 horizontal_image_size_lo; + u8 vertical_image_size_lo; + + unsigned vertical_image_size_hi : 4; + unsigned horizontal_image_size_hi : 4; + + u8 horizontal_border; + u8 vertical_border; + + unsigned stereo_mode_lo : 1; + unsigned signal_pulse_polarity : 1; /* pulse on sync, + composite/horizontal polarity */ + unsigned signal_serration_polarity : 1; /* serrate on sync, vertical + polarity */ + unsigned signal_sync : 2; + unsigned stereo_mode_hi : 2; + unsigned interlaced : 1; +}; + +static inline u32 +xvidc_edid_detailed_timing_pixel_clock + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return dtb->pixel_clock * 10000; +} + +static inline u16 +xvidc_edid_detailed_timing_horizontal_blanking + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->horizontal_blanking_hi << 8) | dtb->horizontal_blanking_lo; +} + +static inline u16 +xvidc_edid_detailed_timing_horizontal_active + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->horizontal_active_hi << 8) | dtb->horizontal_active_lo; +} + +static inline u16 +xvidc_edid_detailed_timing_vertical_blanking + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->vertical_blanking_hi << 8) | dtb->vertical_blanking_lo; +} + +static inline u16 +xvidc_edid_detailed_timing_vertical_active + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->vertical_active_hi << 8) | dtb->vertical_active_lo; +} + +static inline u8 +xvidc_edid_detailed_timing_vertical_sync_offset + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->vertical_sync_offset_hi << 4) | dtb->vertical_sync_offset_lo; +} + +static inline u8 +xvidc_edid_detailed_timing_vertical_sync_pulse_width + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->vertical_sync_pulse_width_hi << 4) | + dtb->vertical_sync_pulse_width_lo; +} + +static inline u8 +xvidc_edid_detailed_timing_horizontal_sync_offset + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->horizontal_sync_offset_hi << 4) | + dtb->horizontal_sync_offset_lo; +} + +static inline u8 +xvidc_edid_detailed_timing_horizontal_sync_pulse_width + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->horizontal_sync_pulse_width_hi << 4) | + dtb->horizontal_sync_pulse_width_lo; +} + +static inline u16 +xvidc_edid_detailed_timing_horizontal_image_size + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return + (dtb->horizontal_image_size_hi << 8) | dtb->horizontal_image_size_lo; +} + +static inline u16 +xvidc_edid_detailed_timing_vertical_image_size + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->vertical_image_size_hi << 8) | dtb->vertical_image_size_lo; +} + +static inline u8 +xvidc_edid_detailed_timing_stereo_mode + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->stereo_mode_hi << 2 | dtb->stereo_mode_lo); +} + + +struct __attribute__ (( packed )) xvidc_edid_monitor_descriptor { + u16 flag0; + u8 flag1; + u8 tag; + u8 flag2; + u8 data[13]; +}; + +typedef char xvidc_edid_monitor_descriptor_string + [sizeof(((struct xvidc_edid_monitor_descriptor *)0)->data) + 1]; + + +struct __attribute__ (( packed )) xvidc_edid_monitor_range_limits { + u8 minimum_vertical_rate; /* Hz */ + u8 maximum_vertical_rate; /* Hz */ + u8 minimum_horizontal_rate; /* kHz */ + u8 maximum_horizontal_rate; /* kHz */ + u8 maximum_supported_pixel_clock; /* = (value * 10) Mhz + (round to 10 MHz) */ + + /* secondary timing formula */ + u8 secondary_timing_support; + u8 reserved; + u8 secondary_curve_start_frequency; /* horizontal frequency / 2 kHz */ + u8 c; /* = (value >> 1) */ + u16 m; + u8 k; + u8 j; /* = (value >> 1) */ +}; + + +struct __attribute__ (( packed )) xvidc_edid_standard_timing_descriptor { + u8 horizontal_active_pixels; /* = (value + 31) * 8 */ + + unsigned refresh_rate : 6; /* = value + 60 */ + unsigned image_aspect_ratio : 2; +}; + +inline u32 +xvidc_edid_standard_timing_horizontal_active +(const struct xvidc_edid_standard_timing_descriptor * const desc) { + return ((desc->horizontal_active_pixels + 31) << 3); +} + +inline u32 +xvidc_edid_standard_timing_vertical_active +(const struct xvidc_edid_standard_timing_descriptor * const desc) { + const u32 hres = xvidc_edid_standard_timing_horizontal_active(desc); + + switch (desc->image_aspect_ratio) { + case XVIDC_EDID_ASPECT_RATIO_16_10: + return ((hres * 10) >> 4); + case XVIDC_EDID_ASPECT_RATIO_4_3: + return ((hres * 3) >> 2); + case XVIDC_EDID_ASPECT_RATIO_5_4: + return ((hres << 2) / 5); + case XVIDC_EDID_ASPECT_RATIO_16_9: + return ((hres * 9) >> 4); + } + + return hres; +} + +inline u32 +xvidc_edid_standard_timing_refresh_rate +(const struct xvidc_edid_standard_timing_descriptor * const desc) { + return (desc->refresh_rate + 60); +} + + +struct __attribute__ (( packed )) edid { + /* header information */ + u8 header[8]; + + /* vendor/product identification */ + u16 manufacturer; + union { + u16 product_u16; + u8 product[2]; + }; + union { + u32 serial_number_u32; + u8 serial_number[4]; + }; + u8 manufacture_week; + u8 manufacture_year; /* = value + 1990 */ + + /* EDID version */ + u8 version; + u8 revision; + + /* basic display parameters and features */ + union { + struct __attribute__ (( packed )) { + unsigned dfp_1x : 1; /* VESA DFP 1.x */ + unsigned : 6; + unsigned digital : 1; + } digital; + struct __attribute__ (( packed )) { + unsigned vsync_serration : 1; + unsigned green_video_sync : 1; + unsigned composite_sync : 1; + unsigned separate_sync : 1; + unsigned blank_to_black_setup : 1; + unsigned signal_level_standard : 2; + unsigned digital : 1; + } analog; + } video_input_definition; + + u8 maximum_horizontal_image_size; /* cm */ + u8 maximum_vertical_image_size; /* cm */ + + u8 display_transfer_characteristics; /* gamma = (value + 100) / 100 */ + + struct __attribute__ (( packed )) { + unsigned default_gtf : 1; /* generalised timing + formula */ + unsigned preferred_timing_mode : 1; + unsigned standard_default_color_space : 1; + unsigned display_type : 2; + unsigned active_off : 1; + unsigned suspend : 1; + unsigned standby : 1; + } feature_support; + + /* color characteristics block */ + unsigned green_y_low : 2; + unsigned green_x_low : 2; + unsigned red_y_low : 2; + unsigned red_x_low : 2; + + unsigned white_y_low : 2; + unsigned white_x_low : 2; + unsigned blue_y_low : 2; + unsigned blue_x_low : 2; + + u8 red_x; + u8 red_y; + u8 green_x; + u8 green_y; + u8 blue_x; + u8 blue_y; + u8 white_x; + u8 white_y; + + /* established timings */ + struct __attribute__ (( packed )) { + unsigned timing_800x600_60 : 1; + unsigned timing_800x600_56 : 1; + unsigned timing_640x480_75 : 1; + unsigned timing_640x480_72 : 1; + unsigned timing_640x480_67 : 1; + unsigned timing_640x480_60 : 1; + unsigned timing_720x400_88 : 1; + unsigned timing_720x400_70 : 1; + + unsigned timing_1280x1024_75 : 1; + unsigned timing_1024x768_75 : 1; + unsigned timing_1024x768_70 : 1; + unsigned timing_1024x768_60 : 1; + unsigned timing_1024x768_87 : 1; + unsigned timing_832x624_75 : 1; + unsigned timing_800x600_75 : 1; + unsigned timing_800x600_72 : 1; + } established_timings; + + struct __attribute__ (( packed )) { + unsigned reserved : 7; + unsigned timing_1152x870_75 : 1; + } manufacturer_timings; + + /* standard timing id */ + struct xvidc_edid_standard_timing_descriptor standard_timing_id[8]; + + /* detailed timing */ + union { + struct xvidc_edid_monitor_descriptor monitor; + struct xvidc_edid_detailed_timing_descriptor timing; + } detailed_timings[4]; + + u8 extensions; + u8 checksum; +}; + +static inline void +xvidc_edid_manufacturer(const struct edid * const edid, char manufacturer[4]) +{ + manufacturer[0] = '@' + ((edid->manufacturer & 0x007c) >> 2); + manufacturer[1] = '@' + ((((edid->manufacturer & 0x0003) >> 00) << 3) | (((edid->manufacturer & 0xe000) >> 13) << 0)); + manufacturer[2] = '@' + ((edid->manufacturer & 0x1f00) >> 8); + manufacturer[3] = '\0'; +} + +static inline double +xvidc_edid_gamma(const struct edid * const edid) +{ + return (edid->display_transfer_characteristics + 100) / 100.0; +} + +static inline bool +xvidc_edid_detailed_timing_is_monitor_descriptor(const struct edid * const edid, + const u8 timing) +{ + const struct xvidc_edid_monitor_descriptor * const mon = + &edid->detailed_timings[timing].monitor; + + Xil_AssertNonvoid(timing < ARRAY_SIZE(edid->detailed_timings)); + + return mon->flag0 == 0x0000 && mon->flag1 == 0x00 && mon->flag2 == 0x00; +} + + +struct __attribute__ (( packed )) xvidc_edid_color_characteristics_data { + struct { + u16 x; + u16 y; + } red, green, blue, white; +}; + +static inline struct xvidc_edid_color_characteristics_data +xvidc_edid_color_characteristics(const struct edid * const edid) +{ + const struct xvidc_edid_color_characteristics_data characteristics = { + .red = { + .x = (edid->red_x << 2) | edid->red_x_low, + .y = (edid->red_y << 2) | edid->red_y_low, + }, + .green = { + .x = (edid->green_x << 2) | edid->green_x_low, + .y = (edid->green_y << 2) | edid->green_y_low, + }, + .blue = { + .x = (edid->blue_x << 2) | edid->blue_x_low, + .y = (edid->blue_y << 2) | edid->blue_y_low, + }, + .white = { + .x = (edid->white_x << 2) | edid->white_x_low, + .y = (edid->white_y << 2) | edid->white_y_low, + }, + }; + + return characteristics; +} + + +struct __attribute__ (( packed )) xvidc_edid_block_map { + u8 tag; + u8 extension_tag[126]; + u8 checksum; +}; + + +struct __attribute__ (( packed )) xvidc_edid_extension { + u8 tag; + u8 revision; + u8 extension_data[125]; + u8 checksum; +}; + + +static inline bool +xvidc_edid_verify_checksum(const u8 * const block) +{ + u8 checksum = 0; + int i; + + for (i = 0; i < XVIDC_EDID_BLOCK_SIZE; i++) + checksum += block[i]; + + return (checksum == 0); +} + +static inline double +xvidc_edid_decode_fixed_point(u16 value) +{ + double result = 0.0; + + Xil_AssertNonvoid((~value & 0xfc00) == 0xfc00); + /* edid fraction is 10 bits */ + + for (u8 i = 0; value && (i < 10); i++, value >>= 1) + result = result + ((value & 0x1) * (1.0 / (1 << (10 - i)))); + + return result; +} + +typedef enum { + XVIDC_VERBOSE_DISABLE, + XVIDC_VERBOSE_ENABLE +} XV_VidC_Verbose; + +typedef enum { + XVIDC_ISDVI, + XVIDC_ISHDMI +} XV_VidC_IsHdmi; + +typedef enum { + XVIDC_NOT_SUPPORTED, + XVIDC_SUPPORTED +} XV_VidC_Supp; +#if XVIDC_EDID_VERBOSITY > 1 +typedef struct { + u32 Integer; + u32 Decimal; +} XV_VidC_DoubleRep; +#endif + +typedef struct { + u8 width; + u8 height; +} XV_VidC_PicAspectRatio; + +typedef struct { + u16 hres; + u16 vres; + u16 htotal; + u16 vtotal; + XVidC_VideoFormat vidfrmt; + u32 pixclk; + u16 hsync_width; + u16 vsync_width; + u16 hfp; + u16 vfp; + u8 vfreq; + XV_VidC_PicAspectRatio aspect_ratio; + unsigned hsync_polarity : 1; + unsigned vsync_polarity : 1; +} XV_VidC_TimingParam; + +typedef struct { + /*Checks whether Sink able to support HDMI*/ + XV_VidC_IsHdmi IsHdmi; + /*Color Space Support*/ + XV_VidC_Supp IsYCbCr444Supp; + XV_VidC_Supp IsYCbCr420Supp; + XV_VidC_Supp IsYCbCr422Supp; + /*YCbCr444/YCbCr422/RGB444 Deep Color Support*/ + XV_VidC_Supp IsYCbCr444DeepColSupp; + XV_VidC_Supp Is30bppSupp; + XV_VidC_Supp Is36bppSupp; + XV_VidC_Supp Is48bppSupp; + /*YCbCr420 Deep Color Support*/ + XV_VidC_Supp IsYCbCr420dc30bppSupp; + XV_VidC_Supp IsYCbCr420dc36bppSupp; + XV_VidC_Supp IsYCbCr420dc48bppSupp; + /*SCDC and SCDC ReadRequest Support*/ + XV_VidC_Supp IsSCDCReadRequestReady; + XV_VidC_Supp IsSCDCPresent; + /*Sink Capability Support*/ + u8 MaxFrameRateSupp; + u16 MaxTmdsMhz; + /*CEA 861 Supported VIC Support*/ + u8 SuppCeaVIC[32]; + /*VESA Sink Preffered Timing Support*/ + XV_VidC_TimingParam PreferedTiming[4]; +} XV_VidC_EdidCntrlParam; + + +XV_VidC_TimingParam +XV_VidC_timing + (const struct xvidc_edid_detailed_timing_descriptor * const dtb); +#if XVIDC_EDID_VERBOSITY > 1 +XV_VidC_DoubleRep Double2Int (double in_val); +#endif +void XV_VidC_EdidCtrlParamInit (XV_VidC_EdidCntrlParam *EdidCtrlParam); + +void +XV_VidC_parse_edid(const u8 * const data, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_parse_edid.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_parse_edid.c new file mode 100644 index 000000000..6b0edb61c --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_parse_edid.c @@ -0,0 +1,1332 @@ +/* vim: set et fde fdm=syntax ft=c.doxygen ts=4 sts=4 sw=4 : */ +/* + * Copyright © 2011 Saleem Abdulrasool . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "string.h" +#include "stdlib.h" +#include "stddef.h" + +#include "xil_types.h" +#include "xstatus.h" +#include "xil_exception.h" + +#include "xvidc_edid_ext.h" + +#if XVIDC_EDID_VERBOSITY > 1 +#include "math.h" + +#define CM_2_MM(cm) ((cm) * 10) +#define CM_2_IN(cm) ((cm) * 0.3937) +#endif +#if XVIDC_EDID_VERBOSITY > 0 +#define HZ_2_MHZ(hz) ((hz) / 1000000) +#endif +#if XVIDC_EDID_VERBOSITY > 1 +static void +xvidc_disp_cea861_audio_data( + const struct xvidc_cea861_audio_data_block * const adb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +static void +xvidc_disp_cea861_speaker_allocation_data( + const struct xvidc_cea861_speaker_allocation_data_block * const sadb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +static void +xvidc_disp_cea861_video_data( + const struct xvidc_cea861_video_data_block * const vdb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); +#endif + +static void +xvidc_disp_cea861_extended_data( + const struct xvidc_cea861_extended_data_block * const edb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +static void +xvidc_disp_cea861_vendor_data( + const struct xvidc_cea861_vendor_specific_data_block * vsdb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +static void +xvidc_disp_cea861(const struct xvidc_edid_extension * const ext, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +static void +xvidc_disp_edid1(const struct edid * const edid, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +/*****************************************************************************/ +/** +* +* This function parse EDID on General Data & VESA Data +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note API Define below here are CEA861 routines +* +******************************************************************************/ +static void +xvidc_disp_edid1(const struct edid * const edid, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) +{ + const struct xvidc_edid_monitor_range_limits *monitor_range_limits = NULL; + xvidc_edid_monitor_descriptor_string monitor_serial_number = {0}; + xvidc_edid_monitor_descriptor_string monitor_model_name = {0}; + bool has_ascii_string = false; + char manufacturer[4] = {0}; +#if XVIDC_EDID_VERBOSITY > 1 + XV_VidC_DoubleRep min_doubleval; + XV_VidC_DoubleRep max_doubleval; +#endif + + u8 i; +#if XVIDC_EDID_VERBOSITY > 0 + //add by mmo + XV_VidC_TimingParam timing_params; +#endif + +#if XVIDC_EDID_VERBOSITY > 1 + struct xvidc_edid_color_characteristics_data characteristics; + const u8 vlen = edid->maximum_vertical_image_size; + const u8 hlen = edid->maximum_horizontal_image_size; + + + static const char * const display_type[] = { + [XVIDC_EDID_DISPLAY_TYPE_MONOCHROME] = "Monochrome or greyscale", + [XVIDC_EDID_DISPLAY_TYPE_RGB] = "sRGB colour", + [XVIDC_EDID_DISPLAY_TYPE_NON_RGB] = "Non-sRGB colour", + [XVIDC_EDID_DISPLAY_TYPE_UNDEFINED] = "Undefined", + }; +#endif + xvidc_edid_manufacturer(edid, manufacturer); + + for (i = 0; i < ARRAY_SIZE(edid->detailed_timings); i++) { + const struct xvidc_edid_monitor_descriptor * const mon = + &edid->detailed_timings[i].monitor; + + if (!xvidc_edid_detailed_timing_is_monitor_descriptor(edid, i)) + continue; + + switch (mon->tag) { + case XVIDC_EDID_MONTIOR_DESCRIPTOR_MANUFACTURER_DEFINED: + /* This is arbitrary data, just silently ignore it. */ + break; + case XVIDC_EDID_MONITOR_DESCRIPTOR_ASCII_STRING: + has_ascii_string = true; + break; + case XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_NAME: + strncpy(monitor_model_name, (char *) mon->data, + sizeof(monitor_model_name) - 1); + break; + case XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_RANGE_LIMITS: + monitor_range_limits = + (struct xvidc_edid_monitor_range_limits *) &mon->data; + break; + case XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_SERIAL_NUMBER: + strncpy(monitor_serial_number, (char *) mon->data, + sizeof(monitor_serial_number) - 1); + break; + default: + if (VerboseEn) { + xil_printf("unknown monitor descriptor type 0x%02x\n", + mon->tag); + } + break; + } + } + +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("Sink Information\r\n"); + + xil_printf(" Model name............... %s\r\n", + *monitor_model_name ? monitor_model_name : "n/a"); +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Manufacturer............. %s\r\n", + manufacturer); + + xil_printf(" Product code............. %u\r\n", + (u16) edid->product_u16); + + if (*(u32 *) edid->serial_number_u32) + xil_printf(" Module serial number..... %u\r\n", + (u32) edid->serial_number_u32); +#endif +#if defined(DISPLAY_UNKNOWN) + xil_printf(" Plug and Play ID......... %s\r\n", NULL); +#endif +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Serial number............ %s\r\n", + *monitor_serial_number ? monitor_serial_number : "n/a"); + + xil_printf(" Manufacture date......... %u", + edid->manufacture_year + 1990); + if (edid->manufacture_week <= 52) + xil_printf(", ISO week %u", edid->manufacture_week); + xil_printf("\r\n"); +#endif + xil_printf(" EDID revision............ %u.%u\r\n", + edid->version, edid->revision); +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Input signal type........ %s\r\n", + edid->video_input_definition.digital.digital ? "Digital" : "Analog"); + + if (edid->video_input_definition.digital.digital) { + xil_printf(" VESA DFP 1.x supported... %s\r\n", + edid->video_input_definition.digital.dfp_1x ? "Yes" : "No"); + } else { + /* Missing Piece: To print analog flags */ + } +#endif +#if defined(DISPLAY_UNKNOWN) + xil_printf(" Color bit depth.......... %s\r\n", NULL); +#endif +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Display type............. %s\r\n", + display_type[edid->feature_support.display_type]); + + xil_printf(" Screen size.............. %u mm x %u mm (%.1f in)\r\n", + CM_2_MM(hlen), CM_2_MM(vlen), + CM_2_IN(sqrt(hlen * hlen + vlen * vlen))); + + xil_printf(" Power management......... %s%s%s%s\r\n", + edid->feature_support.active_off ? "Active off, " : "", + edid->feature_support.suspend ? "Suspend, " : "", + edid->feature_support.standby ? "Standby, " : "", + + (edid->feature_support.active_off || + edid->feature_support.suspend || + edid->feature_support.standby) ? "\b\b " : "n/a"); +#endif + xil_printf(" Extension blocks......... %u\r\n", + edid->extensions); + +#if defined(DISPLAY_UNKNOWN) + xil_printf(" DDC/CI................... %s\r\n", NULL); +#endif + + xil_printf("\r\n"); + } +#endif + if (has_ascii_string) { + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf("General purpose ASCII string\r\n"); +#endif + } + + for (i = 0; i < ARRAY_SIZE(edid->detailed_timings); i++) { + if (!xvidc_edid_detailed_timing_is_monitor_descriptor(edid, i)) + continue; + } + + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf("\r\n"); +#endif + } + } +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("Color characteristics\r\n"); + + xil_printf(" Default color space...... %ssRGB\r\n", + edid->feature_support.standard_default_color_space ? "":"Non-"); +#if XVIDC_EDID_VERBOSITY > 1 + min_doubleval = + Double2Int(xvidc_edid_gamma(edid)); + xil_printf(" Display gamma............ %d.%03d\r\n", + min_doubleval.Integer, min_doubleval.Decimal); + + characteristics = xvidc_edid_color_characteristics(edid); + + min_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.red.x)); + max_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.red.y)); + + xil_printf(" Red chromaticity......... Rx %d.%03d - Ry %d.%03d\r\n", + min_doubleval.Integer, min_doubleval.Decimal, + max_doubleval.Integer, max_doubleval.Decimal); + + min_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.green.x)); + max_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.green.y)); + + xil_printf(" Green chromaticity....... Gx %d.%03d - Gy %d.%03d\r\n", + min_doubleval.Integer, min_doubleval.Decimal, + max_doubleval.Integer, max_doubleval.Decimal); + + min_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.blue.x)); + max_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.blue.y)); + + xil_printf(" Blue chromaticity........ Bx %d.%03d - By %d.%03d\r\n", + min_doubleval.Integer, min_doubleval.Decimal, + max_doubleval.Integer, max_doubleval.Decimal); + + min_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.white.x)); + max_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.white.y)); + + xil_printf(" White point (default).... Wx %d.%03d - Wy %d.%03d\r\n", + min_doubleval.Integer, min_doubleval.Decimal, + max_doubleval.Integer, max_doubleval.Decimal); +#endif +#if defined(DISPLAY_UNKNOWN) + xil_printf(" Additional descriptors... %s\r\n", NULL); +#endif + xil_printf("\r\n"); + + xil_printf("VESA Timing characteristics\r\n"); + } +#endif + if (monitor_range_limits) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Horizontal scan range.... %u - %u kHz\r\n", + monitor_range_limits->minimum_horizontal_rate, + monitor_range_limits->maximum_horizontal_rate); + + xil_printf(" Vertical scan range...... %u - %u Hz\r\n", + monitor_range_limits->minimum_vertical_rate, + monitor_range_limits->maximum_vertical_rate); + + xil_printf(" Video bandwidth.......... %u MHz\r\n", + monitor_range_limits->maximum_supported_pixel_clock * 10); + } +#endif + EdidCtrlParam->MaxFrameRateSupp = + monitor_range_limits->maximum_vertical_rate; + EdidCtrlParam->MaxTmdsMhz = + (monitor_range_limits->maximum_supported_pixel_clock * 10); + } + +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { +#if defined(DISPLAY_UNKNOWN) + xil_printf(" CVT standard............. %s\r\n", NULL); +#endif +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" GTF standard............. %sSupported\r\n", + edid->feature_support.default_gtf ? "" : "Not "); +#endif +#if defined(DISPLAY_UNKNOWN) + xil_printf(" Additional descriptors... %s\r\n", NULL); +#endif +#if XVIDC_EDID_VERBOSITY > 0 + xil_printf(" Preferred timing......... %s\r\n", + edid->feature_support.preferred_timing_mode ? "Yes" : "No"); +#endif + for (i = 0; i < ARRAY_SIZE(edid->detailed_timings); i++) { + if (xvidc_edid_detailed_timing_is_monitor_descriptor(edid, i)) + continue; + + timing_params = XV_VidC_timing(&edid->detailed_timings[i].timing); + EdidCtrlParam->PreferedTiming[i] = + XV_VidC_timing(&edid->detailed_timings[i].timing); +#if XVIDC_EDID_VERBOSITY > 0 + if (edid->feature_support.preferred_timing_mode) { + xil_printf(" Native/preferred timing.. %ux%u%c at %uHz" + " (%u:%u)\r\n", + timing_params.hres, + timing_params.vres, + timing_params.vidfrmt ? 'i' : 'p', + timing_params.vfreq, + timing_params.aspect_ratio.width, + timing_params.aspect_ratio.height); + xil_printf(" Modeline............... \"%ux%u\" %u %u %u %u" + " %u %u %u %u %u %chsync %cvsync\r\n", + timing_params.hres, + timing_params.vres, + HZ_2_MHZ (timing_params.pixclk), + (timing_params.hres), + (timing_params.hres + timing_params.hfp), + (timing_params.hres + timing_params.hfp + + timing_params.hsync_width), + (timing_params.htotal), + (timing_params.vres), + (timing_params.vres + timing_params.vfp), + (timing_params.vres + timing_params.vfp + + timing_params.vsync_width), + (timing_params.vtotal), + timing_params.hsync_polarity ? '+' : '-', + timing_params.vsync_polarity ? '+' : '-'); + } else { + xil_printf(" Native/preferred timing.. n/a\r\n"); + } +#endif + } +#if XVIDC_EDID_VERBOSITY > 0 + xil_printf("\r\n"); +#endif +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf("Established Timings supported\r\n"); + if (edid->established_timings.timing_720x400_70) + xil_printf(" 720 x 400p @ 70Hz - IBM VGA\r\n"); + if (edid->established_timings.timing_720x400_88) + xil_printf(" 720 x 400p @ 88Hz - IBM XGA2\r\n"); + if (edid->established_timings.timing_640x480_60) + xil_printf(" 640 x 480p @ 60Hz - IBM VGA\r\n"); + if (edid->established_timings.timing_640x480_67) + xil_printf(" 640 x 480p @ 67Hz - Apple Mac II\r\n"); + if (edid->established_timings.timing_640x480_72) + xil_printf(" 640 x 480p @ 72Hz - VESA\r\n"); + if (edid->established_timings.timing_640x480_75) + xil_printf(" 640 x 480p @ 75Hz - VESA\r\n"); + if (edid->established_timings.timing_800x600_56) + xil_printf(" 800 x 600p @ 56Hz - VESA\r\n"); + if (edid->established_timings.timing_800x600_60) + xil_printf(" 800 x 600p @ 60Hz - VESA\r\n"); + + if (edid->established_timings.timing_800x600_72) + xil_printf(" 800 x 600p @ 72Hz - VESA\r\n"); + if (edid->established_timings.timing_800x600_75) + xil_printf(" 800 x 600p @ 75Hz - VESA\r\n"); + if (edid->established_timings.timing_832x624_75) + xil_printf(" 832 x 624p @ 75Hz - Apple Mac II\r\n"); + if (edid->established_timings.timing_1024x768_87) + xil_printf(" 1024 x 768i @ 87Hz - VESA\r\n"); + if (edid->established_timings.timing_1024x768_60) + xil_printf(" 1024 x 768p @ 60Hz - VESA\r\n"); + if (edid->established_timings.timing_1024x768_70) + xil_printf(" 1024 x 768p @ 70Hz - VESA\r\n"); + if (edid->established_timings.timing_1024x768_75) + xil_printf(" 1024 x 768p @ 75Hz - VESA\r\n"); + if (edid->established_timings.timing_1280x1024_75) + xil_printf(" 1280 x 1024p @ 75Hz - VESA\r\n"); +#endif + } +#endif + +#if XVIDC_EDID_VERBOSITY > 1 + if (VerboseEn) { + xil_printf("Standard Timings supported\r\n"); + for (i = 0; i < ARRAY_SIZE(edid->standard_timing_id); i++) { + const struct xvidc_edid_standard_timing_descriptor * const desc = + &edid->standard_timing_id[i]; + + if (!memcmp(desc, XVIDC_EDID_STANDARD_TIMING_DESCRIPTOR_INVALID, + sizeof(*desc))) + { + continue; + } else { + if (((desc->horizontal_active_pixels + 31)* 8) >= 1000) { + xil_printf(" %u x",(desc->horizontal_active_pixels + 31)* 8); + } else { + xil_printf(" %u x",(desc->horizontal_active_pixels + 31)* 8); + } + switch (desc->image_aspect_ratio) { + case 0: //Aspect Ratio = 16:10 + xil_printf(" %up ", + (((desc->horizontal_active_pixels + 31)* 8) * 10) / 16); + break; + case 1: //Aspect Ratio = 4:3 + xil_printf(" %up ", + (((desc->horizontal_active_pixels + 31)* 8) * 3) / 4); + break; + case 2: //Aspect Ratio = 5:4 + xil_printf(" %up ", + (((desc->horizontal_active_pixels + 31)* 8) * 4) / 5); + break; + case 3: //Aspect Ratio = 16:9 + xil_printf(" %up ", + (((desc->horizontal_active_pixels + 31)* 8) * 9) / 16); + break; + default: //Aspect Ratio = 16:10 + xil_printf(" %up ", + (((desc->horizontal_active_pixels + 31)* 8) * 10) / 16); + break; + } + xil_printf("@ %uHz\r\n",(desc->refresh_rate + 60)); + } + } + } +#endif +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif +} + + + +/*****************************************************************************/ +/** +* +* This function parse EDID on CEA 861 Audio Data +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note API Define below here are CEA861 routines +* +******************************************************************************/ +#if XVIDC_EDID_VERBOSITY > 1 +static void +xvidc_disp_cea861_audio_data( + const struct xvidc_cea861_audio_data_block * const adb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + /* For Future Usage */ + EdidCtrlParam = EdidCtrlParam; + + const u8 descriptors = adb->header.length / sizeof(*adb->sad); +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("CE audio data (formats supported)\r\n"); + } +#endif + for (u8 i = 0; i < descriptors; i++) { + const struct xvidc_cea861_short_audio_descriptor * const sad = + (struct xvidc_cea861_short_audio_descriptor *) &adb->sad[i]; + + switch (sad->audio_format) { + case XVIDC_CEA861_AUDIO_FORMAT_LPCM: +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" LPCM %u-channel, %s%s%s\b%s", + sad->channels + 1, + sad->flags.lpcm.bitrate_16_bit ? "16/" : "", + sad->flags.lpcm.bitrate_20_bit ? "20/" : "", + sad->flags.lpcm.bitrate_24_bit ? "24/" : "", + + ((sad->flags.lpcm.bitrate_16_bit + + sad->flags.lpcm.bitrate_20_bit + + sad->flags.lpcm.bitrate_24_bit) > 1) ? + " bit depths" : "-bit"); + } +#endif + break; + case XVIDC_CEA861_AUDIO_FORMAT_AC_3: +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" AC-3 %u-channel, %4uk max. bit rate", + sad->channels + 1, + (sad->flags.maximum_bit_rate << 3)); + } +#endif + break; + default: +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("Unknown audio format 0x%02x\r\n", + sad->audio_format); + } +#endif + continue; + } +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" at %s%s%s%s%s%s%s\b kHz\r\n", + sad->sample_rate_32_kHz ? "32/" : "", + sad->sample_rate_44_1_kHz ? "44.1/" : "", + sad->sample_rate_48_kHz ? "48/" : "", + sad->sample_rate_88_2_kHz ? "88.2/" : "", + sad->sample_rate_96_kHz ? "96/" : "", + sad->sample_rate_176_4_kHz ? "176.4/" : "", + sad->sample_rate_192_kHz ? "192/" : ""); + } +#endif + } +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif +} +#endif + +/*****************************************************************************/ +/** +* +* This function parse EDID on CEA 861 Extended Data +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +static void +xvidc_disp_cea861_extended_data( + const struct xvidc_cea861_extended_data_block * const edb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + + /* During Verbosity 0, VerboseEn won't be used */ + /* To avoid compilation warnings */ + VerboseEn = VerboseEn; + +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("CEA Extended Tags\r\n"); + } +#endif + switch(edb->xvidc_cea861_extended_tag_codes) { +#if XVIDC_EDID_VERBOSITY > 1 + case XVIDC_CEA861_EXT_TAG_TYPE_VIDEO_CAPABILITY: + if (VerboseEn) { + xil_printf(" Video capability data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_VENDOR_SPECIFIC: + if (VerboseEn) { + xil_printf(" Vendor-specific video data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_VESA_DISPLAY_DEVICE: + if (VerboseEn) { + xil_printf(" VESA video display device data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_VESA_VIDEO_TIMING_BLOCK_EXT: + if (VerboseEn) { + xil_printf("VESA video timing block extension\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_RESERVED_FOR_HDMI_VIDEO_DATA_BLOCK: + if (VerboseEn) { + xil_printf("Reserved for HDMI video data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_COLORIMETRY: + if (VerboseEn) { + xil_printf(" Colorimetry data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_HDR_STATIC_METADATA: + if (VerboseEn) { + xil_printf("HDR static metadata data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_HDR_DYNAMIC_METADATA: + if (VerboseEn) { + xil_printf(" HDR dynamic metadata data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_VIDEO_FRMT_PREFERENCE: + if (VerboseEn) { + xil_printf(" Video format preference data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_CEA_MISC_AUDIO_FIELDS: + if (VerboseEn) { + xil_printf("Reserved for CEA miscellaneous audio fields\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_VENDOR_SPECIFC_AUDIO: + if (VerboseEn) { + xil_printf(" Vendor-specific audio data block\r\n\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_HDMI_AUDIO: + if (VerboseEn) { + xil_printf(" HDMI audio data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_ROOM_CONFIGURATION: + if (VerboseEn) { + xil_printf(" Room configuration data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_SPEAKER_LOCATION: + if (VerboseEn) { + xil_printf(" Speaker location data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_INFOFRAME: + if (VerboseEn) { + xil_printf(" Video capability data block\r\n"); + } + break; +#endif + case XVIDC_CEA861_EXT_TAG_TYPE_YCBCR420_VIDEO: +#if XVIDC_EDID_VERBOSITY > 1 + if (VerboseEn) { + xil_printf(" YCbCr 4:2:0 video data block\r\n"); + xil_printf(" YCbCr 4:2:0.............. Supported\r\n"); + } +#endif + EdidCtrlParam->IsYCbCr420Supp = XVIDC_SUPPORTED; + +#if XVIDC_EDID_VERBOSITY > 1 + if (VerboseEn) { + xil_printf(" CE video identifiers (VICs) - " + " timing/formats supported\r\n"); + } + for (u8 i = 0; i < edb->header.length - 1; i++) { + u8 vic; + u8 native=0; + if ((edb->data[i] & 0x7F) == 0) { + continue; + } else if (((edb->data[i]) >= 1) && ((edb->data[i]) <= 64)){ + vic = (edb->data[i]) & 0x7F; + } else if (((edb->data[i]) >= 65) && ((edb->data[i]) <= 127)){ + vic = (edb->data[i]); + } else if (((edb->data[i]) >= 129) && ((edb->data[i]) <= 192)){ + vic = (edb->data[i]) & 0x7F; + native = 1; + } else if (((edb->data[i]) >= 193) && ((edb->data[i]) <= 253)){ + vic = (edb->data[i]); + } else { + continue; + } + + const struct xvidc_cea861_timing * const timing = + &xvidc_cea861_timings[vic]; + + if (VerboseEn) { + xil_printf(" %s CEA Mode %02u: %4u x %4u%c @ %dHz\r\n", + native ? "*" : " ", + vic, + timing->hactive, timing->vactive, + (timing->mode == INTERLACED) ? 'i' : 'p', + (u32)(timing->vfreq)); + } + } + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_YCBCR420_CAPABILITY_MAP: +#if XVIDC_EDID_VERBOSITY > 1 + if (VerboseEn) { + xil_printf(" YCbCr 4:2:0 capability map data block\r\n"); + xil_printf(" YCbCr 4:2:0.............. Supported\r\n"); + } +#endif + EdidCtrlParam->IsYCbCr420Supp = XVIDC_SUPPORTED; +#if XVIDC_EDID_VERBOSITY > 1 + for (u8 i = 0; i < edb->header.length - 1; i++) { + u8 v = edb->data[i]; + + for (u8 j = 0; j < 8; j++) { + if (v & (1 << j)) { + if (VerboseEn) { + const struct xvidc_cea861_timing * const timing = + &xvidc_cea861_timings[EdidCtrlParam->SuppCeaVIC[(i * 8) + j]]; + xil_printf(" CEA Mode %02u: %4u x %4u%c" + "@ %dHz\r\n", + EdidCtrlParam->SuppCeaVIC[(i * 8) + j], + timing->hactive, timing->vactive, + (timing->mode == INTERLACED) ? 'i' : 'p', + (u32)(timing->vfreq)); + } + } + } + } +#endif +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif + break; + + default : +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Not Supported: Ext Tag: %03x\r\n", + edb->xvidc_cea861_extended_tag_codes); +#endif + xil_printf("\r\n"); + } +#endif + break; + } +} +#if XVIDC_EDID_VERBOSITY > 1 +static void +xvidc_disp_cea861_video_data( + const struct xvidc_cea861_video_data_block * const vdb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + /* For Future Usage */ + EdidCtrlParam = EdidCtrlParam; + + if (VerboseEn) { + xil_printf("CE video identifiers (VICs) - timing/formats" + " supported\r\n"); + } + + for (u8 i = 0; i < vdb->header.length; i++) { + + const struct xvidc_cea861_timing * const timing = + &xvidc_cea861_timings[vdb->svd[i].video_identification_code]; + + EdidCtrlParam->SuppCeaVIC[i] = vdb->svd[i].video_identification_code; + if (VerboseEn) { + xil_printf(" %s CEA Mode %02u: %4u x %4u%c @ %dHz\r\n", + vdb->svd[i].native ? "*" : " ", + vdb->svd[i].video_identification_code, + timing->hactive, timing->vactive, + (timing->mode == INTERLACED) ? 'i' : 'p', + (u32)(timing->vfreq)); + } + } + if (VerboseEn) { + xil_printf("\r\n"); + } +} +#endif + +/*****************************************************************************/ +/** +* +* This function parse EDID on CEA 861 Vendor Specific Data +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +static void +xvidc_disp_cea861_vendor_data( + const struct xvidc_cea861_vendor_specific_data_block * vsdb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + + /* During Verbosity 0, VerboseEn won't be used */ + /* To avoid compilation warnings */ + VerboseEn = VerboseEn; + + const u8 oui[] = { vsdb->ieee_registration[2], + vsdb->ieee_registration[1], + vsdb->ieee_registration[0] }; +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("CEA vendor specific data (VSDB)\r\n"); + xil_printf(" IEEE registration number. 0x"); + for (u8 i = 0; i < ARRAY_SIZE(oui); i++) + xil_printf("%02X", oui[i]); + xil_printf("\r\n"); + } +#endif + if (!memcmp(oui, HDMI_OUI, sizeof(oui))) { + const struct xvidc_cea861_hdmi_vendor_specific_data_block * const hdmi = + (struct xvidc_cea861_hdmi_vendor_specific_data_block *) vsdb; +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" CEC physical address..... %u.%u.%u.%u\r\n", + hdmi->port_configuration_a, + hdmi->port_configuration_b, + hdmi->port_configuration_c, + hdmi->port_configuration_d); + } +#endif + + if (hdmi->header.length >= HDMI_VSDB_EXTENSION_FLAGS_OFFSET) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Supports AI (ACP, ISRC).. %s\r\n", + hdmi->audio_info_frame ? "Yes" : "No"); +#endif + xil_printf(" Supports 48bpp........... %s\r\n", + hdmi->colour_depth_48_bit ? "Yes" : "No"); + xil_printf(" Supports 36bpp........... %s\r\n", + hdmi->colour_depth_36_bit ? "Yes" : "No"); + xil_printf(" Supports 30bpp........... %s\r\n", + hdmi->colour_depth_30_bit ? "Yes" : "No"); + xil_printf(" Supp. YUV444 Deep Color.. %s\r\n", + hdmi->yuv_444_supported ? "Yes" : "No"); +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Supports dual-link DVI... %s\r\n", + hdmi->dvi_dual_link ? "Yes" : "No"); +#endif + } +#endif + EdidCtrlParam->Is30bppSupp = hdmi->colour_depth_30_bit; + EdidCtrlParam->Is36bppSupp = hdmi->colour_depth_36_bit; + EdidCtrlParam->Is48bppSupp = hdmi->colour_depth_48_bit; + EdidCtrlParam->IsYCbCr444DeepColSupp = hdmi->yuv_444_supported; + } + + if (hdmi->header.length >= HDMI_VSDB_MAX_TMDS_OFFSET) { + if (hdmi->max_tmds_clock) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Maximum TMDS clock....... %uMHz\r\n", + hdmi->max_tmds_clock * 5); + } +#endif + EdidCtrlParam->MaxTmdsMhz = (hdmi->max_tmds_clock * 5); + } else { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Maximum TMDS clock....... n/a\r\n"); + } +#endif + } + } + + if (hdmi->header.length >= HDMI_VSDB_LATENCY_FIELDS_OFFSET) { + if (hdmi->latency_fields) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Video latency %s........ %ums\r\n", + hdmi->interlaced_latency_fields ? "(p)" : "...", + (hdmi->video_latency - 1) << 1); + xil_printf(" Audio latency %s........ %ums\r\n", + hdmi->interlaced_latency_fields ? "(p)" : "...", + (hdmi->audio_latency - 1) << 1); + } +#endif + } + + if (hdmi->interlaced_latency_fields) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Video latency (i)........ %ums\r\n", + hdmi->interlaced_video_latency); + xil_printf(" Audio latency (i)........ %ums\r\n", + hdmi->interlaced_audio_latency); + } +#endif + } + } + } else if (!memcmp(oui, HDMI_OUI_HF, sizeof(oui))) { + const struct xvidc_cea861_hdmi_hf_vendor_specific_data_block * const hdmi = + (struct xvidc_cea861_hdmi_hf_vendor_specific_data_block *) vsdb; + +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Version.................. %d\r\n",hdmi->version); + } +#endif + + if (hdmi->max_tmds_char_rate) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Maximum TMDS clock....... %uMHz\r\n", + hdmi->max_tmds_char_rate * 5); + } +#endif + EdidCtrlParam->MaxTmdsMhz = (hdmi->max_tmds_char_rate * 5); + } else { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Max. Supp. TMDS clock (<=340MHz)\r\n"); + } +#endif + } + + if (hdmi->header.length >= HDMI_VSDB_EXTENSION_FLAGS_OFFSET) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" RRC Capable Support...... %s\r\n", + hdmi->rr_capable ? "Yes" : "No"); + xil_printf(" SCDC Present............. %s\r\n", + hdmi->scdc_present ? "Yes" : "No"); + xil_printf(" HDMI1.4 Scramble Support. %s\r\n", + hdmi->lte_340mcsc_scramble ? "Yes" : "No"); +#endif + xil_printf(" YUV 420 Deep.C. Support..\r\n"); + xil_printf(" Supports 48bpp......... %s\r\n", + hdmi->dc_48bit_yuv420 ? "Yes" : "No"); + xil_printf(" Supports 36bpp......... %s\r\n", + hdmi->dc_36bit_yuv420 ? "Yes" : "No"); + xil_printf(" Supports 30bpp......... %s\r\n", + hdmi->dc_30bit_yuv420 ? "Yes" : "No"); + } +#endif + EdidCtrlParam->IsYCbCr420dc30bppSupp = hdmi->dc_30bit_yuv420; + EdidCtrlParam->IsYCbCr420dc36bppSupp = hdmi->dc_36bit_yuv420; + EdidCtrlParam->IsYCbCr420dc48bppSupp = hdmi->dc_48bit_yuv420; + EdidCtrlParam->IsSCDCReadRequestReady = hdmi->rr_capable; + EdidCtrlParam->IsSCDCPresent = hdmi->scdc_present; + } + } +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif +} + +#if XVIDC_EDID_VERBOSITY > 1 +/*****************************************************************************/ +/** +* +* This function parse EDID on CEA 861 Speaker Allocation +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +static void +xvidc_disp_cea861_speaker_allocation_data( + const struct xvidc_cea861_speaker_allocation_data_block * const sadb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + /* For Future Usage */ + EdidCtrlParam = EdidCtrlParam; + + const struct xvidc_cea861_speaker_allocation * const sa = &sadb->payload; + const u8 * const channel_configuration = (u8 *) sa; + + if (VerboseEn) { + xil_printf("CEA speaker allocation data\r\n"); + xil_printf(" Channel configuration.... %u.%u\r\n", + (__builtin_popcountll(channel_configuration[0] & 0xe9) << 1) + + (__builtin_popcountll(channel_configuration[0] & 0x14) << 0) + + (__builtin_popcountll(channel_configuration[1] & 0x01) << 1) + + (__builtin_popcountll(channel_configuration[1] & 0x06) << 0), + (channel_configuration[0] & 0x02)); + xil_printf(" Front left/right......... %s\r\n", + sa->front_left_right ? "Yes" : "No"); + xil_printf(" Front LFE................ %s\r\n", + sa->front_lfe ? "Yes" : "No"); + xil_printf(" Front center............. %s\r\n", + sa->front_center ? "Yes" : "No"); + xil_printf(" Rear left/right.......... %s\r\n", + sa->rear_left_right ? "Yes" : "No"); + xil_printf(" Rear center.............. %s\r\n", + sa->rear_center ? "Yes" : "No"); + xil_printf(" Front left/right center.. %s\r\n", + sa->front_left_right_center ? "Yes" : "No"); + xil_printf(" Rear left/right center... %s\r\n", + sa->rear_left_right_center ? "Yes" : "No"); + xil_printf(" Front left/right wide.... %s\r\n", + sa->front_left_right_wide ? "Yes" : "No"); + xil_printf(" Front left/right high.... %s\r\n", + sa->front_left_right_high ? "Yes" : "No"); + xil_printf(" Top center............... %s\r\n", + sa->top_center ? "Yes" : "No"); + xil_printf(" Front center high........ %s\r\n", + sa->front_center_high ? "Yes" : "No"); + + xil_printf("\r\n"); + } + +} +#endif + +/*****************************************************************************/ +/** +* +* This function Parse and Display the CEA-861 +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +static void +xvidc_disp_cea861(const struct xvidc_edid_extension * const ext, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + + const struct xvidc_cea861_timing_block * const ctb = + (struct xvidc_cea861_timing_block *) ext; + const u8 offset = offsetof(struct xvidc_cea861_timing_block, data); + u8 index = 0; + +#if XVIDC_EDID_VERBOSITY > 1 + const struct xvidc_edid_detailed_timing_descriptor *dtd = NULL; + u8 i; + + XV_VidC_TimingParam timing_params; +#endif + +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + + xil_printf("CEA-861 Information\r\n"); + xil_printf(" Revision number.......... %u\r\n", + ctb->revision); + } +#endif + + if (ctb->revision >= 2) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" IT underscan............. %supported\r\n", + ctb->underscan_supported ? "S" : "Not s"); +#endif + xil_printf(" Basic audio.............. %supported\r\n", + ctb->basic_audio_supported ? "S" : "Not s"); + xil_printf(" YCbCr 4:4:4.............. %supported\r\n", + ctb->yuv_444_supported ? "S" : "Not s"); + xil_printf(" YCbCr 4:2:2.............. %supported\r\n", + ctb->yuv_422_supported ? "S" : "Not s"); +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Native formats........... %u\r\n", + ctb->native_dtds); +#endif + } +#endif + EdidCtrlParam->IsYCbCr444Supp = ctb->yuv_444_supported; + EdidCtrlParam->IsYCbCr422Supp = ctb->yuv_422_supported; + } + +#if XVIDC_EDID_VERBOSITY > 1 + dtd = (struct xvidc_edid_detailed_timing_descriptor *) + ((u8 *) ctb + ctb->dtd_offset); + for (i = 0; dtd->pixel_clock; i++, dtd++) { + + timing_params = XV_VidC_timing(dtd); + if (VerboseEn) { + xil_printf(" Detailed timing #%u....... %ux%u%c at %uHz " + "(%u:%u)\r\n", + i + 1, + timing_params.hres, + timing_params.vres, + timing_params.vidfrmt ? 'i' : 'p', + timing_params.vfreq, + timing_params.aspect_ratio.width, + timing_params.aspect_ratio.height); + + xil_printf( + " Modeline............... \"%ux%u\" %u %u %u %u %u %u %u %u %u" + " %chsync %cvsync\r\n", + timing_params.hres, + timing_params.vres, + HZ_2_MHZ (timing_params.pixclk), + (timing_params.hres), + (timing_params.hres + timing_params.hfp), + (timing_params.hres + timing_params.hfp + + timing_params.hsync_width), + (timing_params.htotal), + (timing_params.vres), + (timing_params.vres + timing_params.vfp), + (timing_params.vres + timing_params.vfp + + timing_params.vsync_width), + (timing_params.vtotal), + timing_params.hsync_polarity ? '+' : '-', + timing_params.vsync_polarity ? '+' : '-'); + } + } +#endif +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif + + if (ctb->revision >= 3) { + do { + const struct xvidc_cea861_data_block_header * const header = + (struct xvidc_cea861_data_block_header *) &ctb->data[index]; + + switch (header->tag) { + + case XVIDC_CEA861_DATA_BLOCK_TYPE_AUDIO: + { +#if XVIDC_EDID_VERBOSITY > 1 + const struct xvidc_cea861_audio_data_block * const db = + (struct xvidc_cea861_audio_data_block *) header; + + xvidc_disp_cea861_audio_data(db,EdidCtrlParam,VerboseEn); +#endif + } + break; + + case XVIDC_CEA861_DATA_BLOCK_TYPE_VIDEO: + { +#if XVIDC_EDID_VERBOSITY > 1 + const struct xvidc_cea861_video_data_block * const db = + (struct xvidc_cea861_video_data_block *) header; + + xvidc_disp_cea861_video_data(db,EdidCtrlParam,VerboseEn); +#endif + } + break; + + case XVIDC_CEA861_DATA_BLOCK_TYPE_VENDOR_SPECIFIC: + { + const struct + xvidc_cea861_vendor_specific_data_block * const db = + (struct xvidc_cea861_vendor_specific_data_block *) header; + + xvidc_disp_cea861_vendor_data(db,EdidCtrlParam,VerboseEn); + } + break; + + case XVIDC_CEA861_DATA_BLOCK_TYPE_SPEAKER_ALLOCATION: + { +#if XVIDC_EDID_VERBOSITY > 1 + const struct + xvidc_cea861_speaker_allocation_data_block * const db = + (struct xvidc_cea861_speaker_allocation_data_block *) header; + + xvidc_disp_cea861_speaker_allocation_data(db, + EdidCtrlParam,VerboseEn); +#endif + } + break; + + case XVIDC_CEA861_DATA_BLOCK_TYPE_EXTENDED: + { + const struct xvidc_cea861_extended_data_block * const db = + (struct xvidc_cea861_extended_data_block *) header; + + xvidc_disp_cea861_extended_data(db,EdidCtrlParam,VerboseEn); + } + break; + + default: +#if XVIDC_EDID_VERBOSITY > 1 + if (VerboseEn) { + xil_printf("Unknown CEA-861 data block type 0x%02x\r\n", + header->tag); + } +#endif + break; + } + + index = index + header->length + sizeof(*header); + } while (index < ctb->dtd_offset - offset); + } +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif +} + + +/*****************************************************************************/ +/** +* +* This structure parse parse EDID routines +* +* +* @note None. +* +******************************************************************************/ +static const struct xvidc_edid_extension_handler { + void (* const inf_disp)(const struct xvidc_edid_extension * const, + XV_VidC_EdidCntrlParam *EdidCtrlParam, XV_VidC_Verbose VerboseEn); +} xvidc_edid_extension_handlers[] = { + [XVIDC_EDID_EXTENSION_CEA] = { xvidc_disp_cea861 }, +}; + + +/*****************************************************************************/ +/** +* +* This function parse and print the EDID of the Sink +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +void +XV_VidC_parse_edid(const u8 * const data, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + const struct edid * const edid = (struct edid *) data; + const struct xvidc_edid_extension * const extensions = + (struct xvidc_edid_extension *) (data + sizeof(*edid)); + + XV_VidC_EdidCtrlParamInit(EdidCtrlParam); + + xvidc_disp_edid1(edid,EdidCtrlParam,VerboseEn); + + for (u8 i = 0; i < edid->extensions; i++) { + const struct xvidc_edid_extension * const extension = &extensions[i]; + const struct xvidc_edid_extension_handler * const handler = + &xvidc_edid_extension_handlers[extension->tag]; + + if (!handler) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("WARNING: block %u contains unknown extension " + " (%#04x)\r\n", i, extensions[i].tag); + } +#endif + continue; + } + + if (handler->inf_disp) { + (*handler->inf_disp)(extension,EdidCtrlParam,VerboseEn); + } + } +} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_timings_table.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_timings_table.c new file mode 100644 index 000000000..ee1cb4f28 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/video_common_v4_3/src/xvidc_timings_table.c @@ -0,0 +1,534 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xvidc_timings_table.c + * @addtogroup video_common_v4_2 + * @{ + * + * Contains video timings for various standard resolutions. + * + * @note None. + * + *
+ * MODIFICATION HISTORY:
+ *
+ * Ver   Who  Date     Changes
+ * ----- ---- -------- -----------------------------------------------
+ * 1.0   als, 01/10/15 Initial release.
+ *       rc
+ * 2.0   als  08/14/15 Added new video timings.
+ * 2.1   als  11/04/15 Fixed video timings for some resolutions.
+ *       rco  02/09/17 Fix c++ compilation warnings
+ * 4.2   jsr  07/08/17 Added new video timings for SDI supported resolutions
+ *       aad  07/10/17 Add XVIDC_VM_3840x2160_60_P_RB video format
+ *       aad  09/05/17 Fixed timings for 1366x768_60_P
+ *       aad  09/05/17 Added 1366x768_60_P_RB
+ * 
+ * +*******************************************************************************/ + +/******************************* Include Files ********************************/ + +#include "xvidc.h" + +/**************************** Variable Definitions ****************************/ + +/** + * This table contains the main stream attributes for various standard + * resolutions. Each entry is of the format: + * 1) ID: XVIDC_VM_x__(_RB = Reduced Blanking) + * 2) Resolution naming: "x@" + * 3) Frame rate: XVIDC_FR_ + * 4) Video timing structure: + * 1) Horizontal active resolution (pixels) + * 2) Horizontal front porch (pixels) + * 3) Horizontal sync width (pixels) + * 4) Horizontal back porch (pixels) + * 5) Horizontal total (pixels) + * 6) Horizontal sync polarity (0=negative|1=positive) + * 7) Vertical active resolution (lines) + * 8) Frame 0: Vertical front porch (lines) + * 9) Frame 0: Vertical sync width (lines) + * 10) Frame 0: Vertical back porch (lines) + * 11) Frame 0: Vertical total (lines) + * 12) Frame 1: Vertical front porch (lines) + * 13) Frame 1: Vertical sync width (lines) + * 14) Frame 1: Vertical back porch (lines) + * 15) Frame 1: Vertical total (lines) + * 16) Vertical sync polarity (0=negative|1=positive) + */ +#ifdef __cplusplus +extern "C" +#endif +const XVidC_VideoTimingMode XVidC_VideoTimingModes[XVIDC_VM_NUM_SUPPORTED] = +{ + /* Interlaced modes. */ + { XVIDC_VM_720x480_60_I, "720x480@60Hz (I)", XVIDC_FR_60HZ, + {720, 19, 62, 57, 858, 0, + 240, 4, 3, 15, 262, 5, 3, 15, 263, 0} }, + { XVIDC_VM_720x576_50_I, "720x576@50Hz (I)", XVIDC_FR_50HZ, + {720, 12, 63, 69, 864, 0, + 288, 2, 3, 19, 312, 3, 3, 19, 313, 0} }, + { XVIDC_VM_1440x480_60_I, "1440x480@60Hz (I)", XVIDC_FR_60HZ, + {1440, 38, 124, 114, 1716, 0, + 240, 4, 3, 15, 262, 5, 3, 15, 263, 0} }, + { XVIDC_VM_1440x576_50_I, "1440x576@50Hz (I)", XVIDC_FR_50HZ, + {1440, 24, 126, 138, 1728, 0, + 288, 2, 3, 19, 312, 3, 3, 19, 313, 0} }, + { XVIDC_VM_1920x1080_48_I, "1920x1080@48Hz (I)", XVIDC_FR_48HZ, + {1920, 371, 88, 371, 2750, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_1920x1080_50_I, "1920x1080@50Hz (I)", XVIDC_FR_50HZ, + {1920, 528, 44, 148, 2640, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_1920x1080_60_I, "1920x1080@60Hz (I)", XVIDC_FR_60HZ, + {1920, 88, 44, 148, 2200, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_1920x1080_96_I, "1920x1080@96Hz (I)", XVIDC_FR_96HZ, + {1920, 371, 88, 371, 2750, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + { XVIDC_VM_1920x1080_100_I, "1920x1080@100Hz (I)", XVIDC_FR_100HZ, + {1920, 528, 44, 148, 2640, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + { XVIDC_VM_1920x1080_120_I, "1920x1080@120Hz (I)", XVIDC_FR_120HZ, + {1920, 88, 44, 148, 2200, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + { XVIDC_VM_2048x1080_48_I, "2048x1080@48Hz (I)", XVIDC_FR_48HZ, + {2048, 329, 44, 329, 2750, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_2048x1080_50_I, "2048x1080@50Hz (I)", XVIDC_FR_50HZ, + {2048, 274, 44, 274, 2640, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_2048x1080_60_I, "2048x1080@60Hz (I)", XVIDC_FR_60HZ, + {2048, 66, 20, 66, 2200, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_2048x1080_96_I, "2048x1080@96Hz (I)", XVIDC_FR_96HZ, + {2048, 329, 44, 329, 2750, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + { XVIDC_VM_2048x1080_100_I, "2048x1080@100Hz (I)", XVIDC_FR_100HZ, + {2048, 274, 44, 274, 2640, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + { XVIDC_VM_2048x1080_120_I, "2048x1080@120Hz (I)", XVIDC_FR_120HZ, + {2048, 66, 20, 66, 2200, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + + + /* Progressive modes. */ + { XVIDC_VM_640x350_85_P, "640x350@85Hz", XVIDC_FR_85HZ, + {640, 32, 64, 96, 832, 1, + 350, 32, 3, 60, 445, 0, 0, 0, 0, 0} }, + { XVIDC_VM_640x480_60_P, "640x480@60Hz", XVIDC_FR_60HZ, + {640, 8+8, 96, 40+8, 800, 0, + 480, 2+8, 2, 25+8, 525, 0, 0, 0, 0, 0} }, + { XVIDC_VM_640x480_72_P, "640x480@72Hz", XVIDC_FR_72HZ, + {640, 8+16, 40, 120+8, 832, 0, + 480, 8+1, 3, 20+8, 520, 0, 0, 0, 0, 0} }, + { XVIDC_VM_640x480_75_P, "640x480@75Hz", XVIDC_FR_75HZ, + {640, 16, 64, 120, 840, 0, + 480, 1, 3, 16, 500, 0, 0, 0, 0, 0} }, + { XVIDC_VM_640x480_85_P, "640x480@85Hz", XVIDC_FR_85HZ, + {640, 56, 56, 80, 832, 0, + 480, 1, 3, 25, 509, 0, 0, 0, 0, 0} }, + { XVIDC_VM_720x400_85_P, "720x400@85Hz", XVIDC_FR_85HZ, + {720, 36, 72, 108, 936, 0, + 400, 1, 3, 42, 446, 0, 0, 0, 0, 1} }, + { XVIDC_VM_720x480_60_P, "720x480@60Hz", XVIDC_FR_60HZ, + {720, 16, 62, 60, 858, 0, + 480, 9, 6, 30, 525, 0, 0, 0, 0, 0} }, + { XVIDC_VM_720x576_50_P, "720x576@50Hz", XVIDC_FR_50HZ, + {720, 12, 64, 68, 864, 0, + 576, 5, 5, 39, 625, 0, 0, 0, 0, 0} }, + { XVIDC_VM_800x600_56_P, "800x600@56Hz", XVIDC_FR_56HZ, + {800, 24, 72, 128, 1024, 1, + 600, 1, 2, 22, 625, 0, 0, 0, 0, 1} }, + { XVIDC_VM_800x600_60_P, "800x600@60Hz", XVIDC_FR_60HZ, + {800, 40, 128, 88, 1056, 1, + 600, 1, 4, 23, 628, 0, 0, 0, 0, 1} }, + { XVIDC_VM_800x600_72_P, "800x600@72Hz", XVIDC_FR_72HZ, + {800, 56, 120, 64, 1040, 1, + 600, 37, 6, 23, 666, 0, 0, 0, 0, 1} }, + { XVIDC_VM_800x600_75_P, "800x600@75Hz", XVIDC_FR_75HZ, + {800, 16, 80, 160, 1056, 1, + 600, 1, 3, 21, 625, 0, 0, 0, 0, 1} }, + { XVIDC_VM_800x600_85_P, "800x600@85Hz", XVIDC_FR_85HZ, + {800, 32, 64, 152, 1048, 1, + 600, 1, 3, 27, 631, 0, 0, 0, 0, 1} }, + { XVIDC_VM_800x600_120_P_RB, "800x600@120Hz (RB)", XVIDC_FR_120HZ, + {800, 48, 32, 80, 960, 1, + 600, 3, 4, 29, 636, 0, 0, 0, 0, 0} }, + { XVIDC_VM_848x480_60_P, "848x480@60Hz", XVIDC_FR_60HZ, + {848, 16, 112, 112, 1088, 1, + 480, 6, 8, 23, 517, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1024x768_60_P, "1024x768@60Hz", XVIDC_FR_60HZ, + {1024, 24, 136, 160, 1344, 0, + 768, 3, 6, 29, 806, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1024x768_70_P, "1024x768@70Hz", XVIDC_FR_70HZ, + {1024, 24, 136, 144, 1328, 0, + 768, 3, 6, 29, 806, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1024x768_75_P, "1024x768@75Hz", XVIDC_FR_75HZ, + {1024, 16, 96, 176, 1312, 1, + 768, 1, 3, 28, 800, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1024x768_85_P, "1024x768@85Hz", XVIDC_FR_85HZ, + {1024, 48, 96, 208, 1376, 1, + 768, 1, 3, 36, 808, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1024x768_120_P_RB, "1024x768@120Hz (RB)", XVIDC_FR_120HZ, + {1024, 48, 32, 80, 1184, 1, + 768, 3, 4, 38, 813, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1152x864_75_P, "1152x864@75Hz", XVIDC_FR_75HZ, + {1152, 64, 128, 256, 1600, 1, + 864, 1, 3, 32, 900, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x720_24_P, "1280x720@24Hz", XVIDC_FR_24HZ, + {1280, 970, 905, 970, 4125, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x720_25_P, "1280x720@25Hz", XVIDC_FR_25HZ, + {1280, 970, 740, 970, 3960, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x720_30_P, "1280x720@30Hz", XVIDC_FR_30HZ, + {1280, 970, 80, 970, 3300, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x720_50_P, "1280x720@50Hz", XVIDC_FR_50HZ, + {1280, 440, 40, 220, 1980, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x720_60_P, "1280x720@60Hz", XVIDC_FR_60HZ, + {1280, 110, 40, 220, 1650, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x768_60_P, "1280x768@60Hz", XVIDC_FR_60HZ, + {1280, 64, 128, 192, 1664, 0, + 768, 3, 7, 20, 798, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x768_60_P_RB, "1280x768@60Hz (RB)", XVIDC_FR_60HZ, + {1280, 48, 32, 80, 1440, 1, + 768, 3, 7, 12, 790, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1280x768_75_P, "1280x768@75Hz", XVIDC_FR_75HZ, + {1280, 80, 128, 208, 1696, 0, + 768, 3, 7, 27, 805, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x768_85_P, "1280x768@85Hz", XVIDC_FR_85HZ, + {1280, 80, 136, 216, 1712, 0, + 768, 3, 7, 31, 809, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x768_120_P_RB, "1280x768@120Hz (RB)", XVIDC_FR_120HZ, + {1280, 48, 32, 80, 1440, 1, + 768, 3, 7, 35, 813, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1280x800_60_P, "1280x800@60Hz", XVIDC_FR_60HZ, + {1280, 72, 128, 200, 1680, 0, + 800, 3, 6, 22, 831, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x800_60_P_RB, "1280x800@60Hz (RB)", XVIDC_FR_60HZ, + {1280, 48, 32, 80, 1440, 1, + 800, 3, 6, 14, 823, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1280x800_75_P, "1280x800@75Hz", XVIDC_FR_75HZ, + {1280, 80, 128, 208, 1696, 0, + 800, 3, 6, 29, 838, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x800_85_P, "1280x800@85Hz", XVIDC_FR_85HZ, + {1280, 80, 136, 216, 1712, 0, + 800, 3, 6, 34, 843, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x800_120_P_RB, "1280x800@120Hz (RB)", XVIDC_FR_120HZ, + {1280, 48, 32, 80, 1440, 1, + 800, 3, 6, 38, 847, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1280x960_60_P, "1280x960@60Hz", XVIDC_FR_60HZ, + {1280, 96, 112, 312, 1800, 1, + 960, 1, 3, 36, 1000, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x960_85_P, "1280x960@85Hz", XVIDC_FR_85HZ, + {1280, 64, 160, 224, 1728, 1, + 960, 1, 3, 47, 1011, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x960_120_P_RB, "1280x960@120Hz (RB)", XVIDC_FR_120HZ, + {1280, 48, 32, 80, 1440, 1, + 960, 3, 4, 50, 1017, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1280x1024_60_P, "1280x1024@60Hz", XVIDC_FR_60HZ, + {1280, 48, 112, 248, 1688, 1, + 1024, 1, 3, 38, 1066, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x1024_75_P, "1280x1024@75Hz", XVIDC_FR_75HZ, + {1280, 16, 144, 248, 1688, 1, + 1024, 1, 3, 38, 1066, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x1024_85_P, "1280x1024@85Hz", XVIDC_FR_85HZ, + {1280, 64, 160, 224, 1728, 1, + 1024, 1, 3, 44, 1072, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x1024_120_P_RB, "1280x1024@120Hz (RB)", XVIDC_FR_120HZ, + {1280, 48, 32, 80, 1440, 1, + 1024, 3, 7, 50, 1084, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1360x768_60_P, "1360x768@60Hz", XVIDC_FR_60HZ, + {1360, 64, 112, 256, 1792, 1, + 768, 3, 6, 18, 795, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1360x768_120_P_RB, "1360x768@120Hz (RB)", XVIDC_FR_120HZ, + {1360, 48, 32, 80, 1520, 1, + 768, 3, 5, 37, 813, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1366x768_60_P, "1366x768@60Hz", XVIDC_FR_60HZ, + {1366, 70, 143, 213, 1792, 1, + 768, 3, 3, 24, 798, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1366x768_60_P_RB, "1366x768@60Hz (RB)", XVIDC_FR_60HZ, + {1366, 14, 56, 64, 1500, 1, + 768, 1, 3, 28, 800, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1400x1050_60_P, "1400x1050@60Hz", XVIDC_FR_60HZ, + {1400, 88, 144, 232, 1864, 0, + 1050, 3, 4, 32, 1089, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1400x1050_60_P_RB, "1400x1050@60Hz (RB)", XVIDC_FR_60HZ, + {1400, 48, 32, 80, 1560, 1, + 1050, 3, 4, 23, 1080, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1400x1050_75_P, "1400x1050@75Hz", XVIDC_FR_75HZ, + {1400, 104, 144, 248, 1896, 0, + 1050, 3, 4, 42, 1099, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1400x1050_85_P, "1400x1050@85Hz", XVIDC_FR_85HZ, + {1400, 104, 152, 256, 1912, 0, + 1050, 3, 4, 48, 1105, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1400x1050_120_P_RB, "1400x1050@120Hz (RB)", XVIDC_FR_120HZ, + {1400, 48, 32, 80, 1560, 1, + 1050, 3, 4, 55, 1112, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1440x240_60_P, "1440x240@60Hz", XVIDC_FR_60HZ, + {1440, 38, 124, 114, 1716, 0, + 240, 14, 3, 4, 262, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1440x900_60_P, "1440x900@60Hz", XVIDC_FR_60HZ, + {1440, 80, 152, 232, 1904, 0, + 900, 3, 6, 25, 934, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1440x900_60_P_RB, "1440x900@60Hz (RB)", XVIDC_FR_60HZ, + {1440, 48, 32, 80, 1600, 1, + 900, 3, 6, 17, 926, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1440x900_75_P, "1440x900@75Hz", XVIDC_FR_75HZ, + {1440, 96, 152, 248, 1936, 0, + 900, 3, 6, 33, 942, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1440x900_85_P, "1440x900@85Hz", XVIDC_FR_85HZ, + {1440, 104, 152, 256, 1952, 0, + 900, 3, 6, 39, 948, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1440x900_120_P_RB, "1440x900@120Hz (RB)", XVIDC_FR_120HZ, + {1440, 48, 32, 80, 1600, 1, + 900, 3, 6, 44, 953, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1600x1200_60_P, "1600x1200@60Hz", XVIDC_FR_60HZ, + {1600, 64, 192, 304, 2160, 1, + 1200, 1, 3, 46, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1600x1200_65_P, "1600x1200@65Hz", XVIDC_FR_65HZ, + {1600, 64, 192, 304, 2160, 1, + 1200, 1, 3, 46, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1600x1200_70_P, "1600x1200@70Hz", XVIDC_FR_70HZ, + {1600, 64, 192, 304, 2160, 1, + 1200, 1, 3, 46, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1600x1200_75_P, "1600x1200@75Hz", XVIDC_FR_75HZ, + {1600, 64, 192, 304, 2160, 1, + 1200, 1, 3, 46, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1600x1200_85_P, "1600x1200@85Hz", XVIDC_FR_85HZ, + {1600, 64, 192, 304, 2160, 1, + 1200, 1, 3, 46, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1600x1200_120_P_RB, "1600x1200@120Hz (RB)", XVIDC_FR_120HZ, + {1600, 48, 32, 80, 1760, 1, + 1200, 3, 4, 64, 1271, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1680x720_50_P, "1680x720@50Hz", XVIDC_FR_50HZ, + {1680, 260, 40, 220, 2200, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x720_60_P, "1680x720@60Hz", XVIDC_FR_60HZ, + {1680, 260, 40, 220, 2200, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x720_100_P, "1680x720@100Hz", XVIDC_FR_100HZ, + {1680, 60, 40, 220, 2000, 1, + 720, 5, 5, 95, 825, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x720_120_P, "1680x720@120Hz", XVIDC_FR_120HZ, + {1680, 60, 40, 220, 2000, 1, + 720, 5, 5, 95, 825, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x1050_50_P, "1680x1050@50Hz", XVIDC_FR_50HZ, + {1680, 88, 176, 264, 2208, 0, + 1050, 3, 6, 24, 1083, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x1050_60_P, "1680x1050@60Hz", XVIDC_FR_60HZ, + {1680, 104, 176, 280, 2240, 0, + 1050, 3, 6, 30, 1089, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x1050_60_P_RB, "1680x1050@60Hz (RB)", XVIDC_FR_60HZ, + {1680, 48, 32, 80, 1840, 1, + 1050, 3, 6, 21, 1080, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1680x1050_75_P, "1680x1050@75Hz", XVIDC_FR_75HZ, + {1680, 120, 176, 296, 2272, 0, + 1050, 3, 6, 40, 1099, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x1050_85_P, "1680x1050@85Hz", XVIDC_FR_85HZ, + {1680, 128, 176, 304, 2288, 0, + 1050, 3, 6, 46, 1105, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x1050_120_P_RB, "1680x1050@120Hz (RB)", XVIDC_FR_120HZ, + {1680, 48, 32, 80, 1840, 1, + 1050, 3, 6, 53, 1112, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1792x1344_60_P, "1792x1344@60Hz", XVIDC_FR_60HZ, + {1792, 128, 200, 328, 2448, 0, + 1344, 1, 3, 46, 1394, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1792x1344_75_P, "1792x1344@75Hz", XVIDC_FR_75HZ, + {1792, 96, 216, 352, 2456, 0, + 1344, 1, 3, 69, 1417, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1792x1344_120_P_RB, "1792x1344@120Hz (RB)", XVIDC_FR_120HZ, + {1792, 48, 32, 80, 1952, 1, + 1344, 3, 4, 72, 1423, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1856x1392_60_P, "1856x1392@60Hz", XVIDC_FR_60HZ, + {1856, 96, 224, 352, 2528, 0, + 1392, 1, 3, 43, 1439, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1856x1392_75_P, "1856x1392@75Hz", XVIDC_FR_75HZ, + {1856, 128, 224, 352, 2560, 0, + 1392, 1, 3, 104, 1500, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1856x1392_120_P_RB, "1856x1392@120Hz (RB)", XVIDC_FR_120HZ, + {1856, 48, 32, 80, 2016, 1, + 1392, 3, 4, 75, 1474, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1920x1080_24_P, "1920x1080@24Hz", XVIDC_FR_24HZ, + {1920, 638, 44, 148, 2750, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_25_P, "1920x1080@25Hz", XVIDC_FR_25HZ, + {1920, 528, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_30_P, "1920x1080@30Hz", XVIDC_FR_30HZ, + {1920, 88, 44, 148, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_48_P, "1920x1080@48Hz", XVIDC_FR_48HZ, + {1920, 638, 44, 148, 2750, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_50_P, "1920x1080@50Hz", XVIDC_FR_50HZ, + {1920, 528, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_60_P, "1920x1080@60Hz", XVIDC_FR_60HZ, + {1920, 88, 44, 148, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_100_P, "1920x1080@100Hz", XVIDC_FR_100HZ, + {1920, 528, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_120_P, "1920x1080@120Hz", XVIDC_FR_120HZ, + {1920, 88, 44, 148, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1200_60_P, "1920x1200@60Hz", XVIDC_FR_60HZ, + {1920, 136, 200, 336, 2592, 0, + 1200, 3, 6, 36, 1245, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1200_60_P_RB, "1920x1200@60Hz (RB)", XVIDC_FR_60HZ, + {1920, 48, 32, 80, 2080, 1, + 1200, 3, 6, 26, 1235, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1920x1200_75_P, "1920x1200@75Hz", XVIDC_FR_75HZ, + {1920, 136, 208, 344, 2608, 0, + 1200, 3, 6, 46, 1255, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1200_85_P, "1920x1200@85Hz", XVIDC_FR_85HZ, + {1920, 144, 208, 352, 2624, 0, + 1200, 3, 6, 53, 1262, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1200_120_P_RB, "1920x1200@120Hz (RB)", XVIDC_FR_120HZ, + {1920, 48, 32, 80, 2080, 1, + 1200, 3, 6, 62, 1271, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1920x1440_60_P, "1920x1440@60Hz", XVIDC_FR_60HZ, + {1920, 128, 208, 344, 2600, 0, + 1440, 1, 3, 56, 1500, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1440_75_P, "1920x1440@75Hz", XVIDC_FR_75HZ, + {1920, 144, 224, 352, 2640, 0, + 1440, 1, 3, 56, 1500, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1440_120_P_RB, "1920x1440@120Hz (RB)", XVIDC_FR_120HZ, + {1920, 48, 32, 80, 2080, 1, + 1440, 3, 4, 78, 1525, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1920x2160_60_P, "1920x2160@60Hz", XVIDC_FR_60HZ, + {1920, 88, 44, 148, 2200, 1, + 2160, 20, 10, 60, 2250, 0, 0, 0, 0, 0} }, + { XVIDC_VM_2048x1080_24_P, "2048x1080@24Hz", XVIDC_FR_24HZ, + {2048, 510, 44, 148, 2750, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_25_P, "2048x1080@25Hz", XVIDC_FR_25HZ, + {2048, 400, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_30_P, "2048x1080@30Hz", XVIDC_FR_30HZ, + {2048, 66, 20, 66, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_48_P, "2048x1080@48Hz", XVIDC_FR_48HZ, + {2048, 510, 44, 148, 2750, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_50_P, "2048x1080@50Hz", XVIDC_FR_50HZ, + {2048, 400, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_60_P, "2048x1080@60Hz", XVIDC_FR_60HZ, + {2048, 88, 44, 20, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_100_P, "2048x1080@100Hz", XVIDC_FR_100HZ, + {2048, 528, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_120_P, "2048x1080@120Hz", XVIDC_FR_120HZ, + {2048, 88, 44, 148, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1080_50_P, "2560x1080@50Hz", XVIDC_FR_50HZ, + {2560, 548, 44, 148, 3300, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1080_60_P, "2560x1080@60Hz", XVIDC_FR_60HZ, + {2560, 248, 44, 148, 3000, 1, + 1080, 4, 5, 11, 1100, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1080_100_P, "2560x1080@100Hz", XVIDC_FR_100HZ, + {2560, 218, 44, 148, 2970, 1, + 1080, 4, 5, 161, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1080_120_P, "2560x1080@120Hz", XVIDC_FR_120HZ, + {2560, 548, 44, 148, 3300, 1, + 1080, 4, 5, 161, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1600_60_P, "2560x1600@60Hz", XVIDC_FR_60HZ, + {2560, 192, 280, 472, 3504, 0, + 1600, 3, 6, 49, 1658, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1600_60_P_RB, "2560x1600@60Hz (RB)", XVIDC_FR_60HZ, + {2560, 48, 32, 80, 2720, 1, + 1600, 3, 6, 37, 1646, 0, 0, 0, 0, 0} }, + { XVIDC_VM_2560x1600_75_P, "2560x1600@75Hz", XVIDC_FR_75HZ, + {2560, 208, 280, 488, 3536, 0, + 1600, 3, 6, 63, 1672, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1600_85_P, "2560x1600@85Hz", XVIDC_FR_85HZ, + {2560, 208, 280, 488, 3536, 0, + 1600, 3, 6, 73, 1682, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1600_120_P_RB, "2560x1600@120Hz (RB)", XVIDC_FR_120HZ, + {2560, 48, 32, 80, 2720, 1, + 1600, 3, 6, 85, 1694, 0, 0, 0, 0, 0} }, + { XVIDC_VM_3840x2160_24_P, "3840x2160@24Hz", XVIDC_FR_24HZ, + {3840, 1276, 88, 296, 5500, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_25_P, "3840x2160@25Hz", XVIDC_FR_25HZ, + {3840, 1056, 88, 296, 5280, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_30_P, "3840x2160@30Hz", XVIDC_FR_30HZ, + {3840, 176, 88, 296, 4400, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_48_P, "3840x2160@48Hz", XVIDC_FR_48HZ, + {3840, 1276, 88, 296, 5500, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_50_P, "3840x2160@50Hz", XVIDC_FR_50HZ, + {3840, 1056, 88, 296, 5280, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_60_P, "3840x2160@60Hz", XVIDC_FR_60HZ, + {3840, 176, 88, 296, 4400, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_60_P_RB, "3840x2160@60Hz (RB)", XVIDC_FR_60HZ, + {3840, 48, 32, 80, 4000, 1, + 2160, 3, 5, 54, 2222, 0, 0, 0, 0, 0} }, + { XVIDC_VM_4096x2160_24_P, "4096x2160@24Hz", XVIDC_FR_24HZ, + {4096, 1020, 88, 296, 5500, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_25_P, "4096x2160@25Hz", XVIDC_FR_25HZ, + {4096, 968, 88, 128, 5280, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_30_P, "4096x2160@30Hz", XVIDC_FR_30HZ, + {4096, 88, 88, 128, 4400, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_48_P, "4096x2160@48Hz", XVIDC_FR_48HZ, + {4096, 1020, 88, 296, 5500, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_50_P, "4096x2160@50Hz", XVIDC_FR_50HZ, + {4096, 968, 88, 128, 5280, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_60_P, "4096x2160@60Hz", XVIDC_FR_60HZ, + {4096, 88, 88, 128, 4400, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_60_P_RB, "4096x2160@60Hz (RB)", XVIDC_FR_60HZ, + {4096, 8, 32, 40, 4176, 1, + 2160, 48, 8, 6, 2222, 0, 0, 0, 0, 0} }, +}; + +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/wdtps_v3_0/src/xwdtps.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/wdtps_v3_0/src/xwdtps.h index 893d516e7..58e559635 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/wdtps_v3_0/src/xwdtps.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/wdtps_v3_0/src/xwdtps.h @@ -88,6 +88,8 @@ * for CR 658287 * 3.0 pkp 12/09/14 Added support for Zynq Ultrascale Mp.Also * modified code for MISRA-C:2012 compliance. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/wdtps_v3_0/src/xwdtps_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/wdtps_v3_0/src/xwdtps_g.c index 6ea6b192b..2ad200861 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/wdtps_v3_0/src/xwdtps_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/wdtps_v3_0/src/xwdtps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XWdtPs_Config XWdtPs_ConfigTable[] = +XWdtPs_Config XWdtPs_ConfigTable[XPAR_XWDTPS_NUM_INSTANCES] = { { XPAR_PSU_WDT_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma.c index c203f585d..8cad941f8 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma.c @@ -33,7 +33,7 @@ /** * * @file xzdma.c -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * * This file contains the implementation of the interface functions for ZDMA @@ -52,6 +52,7 @@ * scatter gather mode data transfer and corrected * XZDma_SetChDataConfig API to set over fetch and * src issue parameters correctly. +* 1.3 mus 08/14/17 Add CCI support for A53 in EL1 NS * * ******************************************************************************/ @@ -117,6 +118,7 @@ s32 XZDma_CfgInitialize(XZDma *InstancePtr, XZDma_Config *CfgPtr, InstancePtr->Config.BaseAddress = CfgPtr->BaseAddress; InstancePtr->Config.DeviceId = CfgPtr->DeviceId; InstancePtr->Config.DmaType = CfgPtr->DmaType; + InstancePtr->Config.IsCacheCoherent = CfgPtr->IsCacheCoherent; InstancePtr->Config.BaseAddress = EffectiveAddr; @@ -279,8 +281,9 @@ u32 XZDma_CreateBDList(XZDma *InstancePtr, XZDma_DscrType TypeOfDscr, (NoOfBytes >> 1) / Size; InstancePtr->Descriptor.SrcDscrPtr = (void *)Dscr_MemPtr; InstancePtr->Descriptor.DstDscrPtr = - (void *)Dscr_MemPtr + (Size * InstancePtr->Descriptor.DscrCount); + (void *)(Dscr_MemPtr + (Size * InstancePtr->Descriptor.DscrCount)); + if (!InstancePtr->Config.IsCacheCoherent) Xil_DCacheInvalidateRange((INTPTR)Dscr_MemPtr, NoOfBytes); return (InstancePtr->Descriptor.DscrCount); @@ -701,6 +704,17 @@ void XZDma_Reset(XZDma *InstancePtr) (void)XZDma_GetSrcIntrCnt(InstancePtr); (void)XZDma_GetDstIntrCnt(InstancePtr); + if (InstancePtr->Config.IsCacheCoherent) { + XZDma_WriteReg((InstancePtr->Config.BaseAddress), + XZDMA_CH_DSCR_ATTR_OFFSET, + InstancePtr->Config.IsCacheCoherent << XZDMA_DSCR_ATTR_AXCOHRNT_SHIFT); + XZDma_WriteReg((InstancePtr->Config.BaseAddress), + XZDMA_CH_SRC_DSCR_WORD3_OFFSET, + InstancePtr->Config.IsCacheCoherent & XZDMA_WORD3_COHRNT_MASK); + XZDma_WriteReg((InstancePtr->Config.BaseAddress), + XZDMA_CH_DST_DSCR_WORD3_OFFSET, + InstancePtr->Config.IsCacheCoherent & XZDMA_WORD3_COHRNT_MASK); + } InstancePtr->ChannelState = XZDMA_IDLE; } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma.h similarity index 93% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma.h index 1f268d43c..9ff690795 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014-2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,12 +33,12 @@ /** * * @file xzdma.h -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * @details * * ZDMA is a general purpose DMA designed to support memory to memory and memory -* to IO buffer transfers. ALTO has two instance of general purpose ZDMA. +* to IO buffer transfers. ZynqMP has two instance of general purpose ZDMA. * One is located in FPD (full power domain) which is GDMA and other is located * in LPD (low power domain) which is ADMA. * @@ -115,7 +115,20 @@ * scatter gather mode data transfer and corrected * XZDma_SetChDataConfig API to set over fetch and * src issue parameters correctly. - +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Modified comment lines notation in functions of zdma +* examples to avoid unnecessary description to get +* displayed while generating doxygen and also changed +* filename tag to include the readonly mode example file +* in doxygen. +* 1.3 mus 08/14/17 Update cache coherency information of the interface in +* its config structure. +* 1.4 adk 11/02/17 Updated examples to fix compilation errors for IAR +* compiler. +* 1.5 adk 11/22/17 Added peripheral test app support for ZDMA driver. +* 12/11/17 Fixed peripheral test app generation issues when dma +* buffers are configured on OCM memory(CR#990806). * * ******************************************************************************/ @@ -132,6 +145,7 @@ extern "C" { #include "xil_assert.h" #include "xstatus.h" #include "xil_cache.h" +#include "bspconfig.h" /************************** Constant Definitions *****************************/ @@ -202,24 +216,38 @@ typedef struct { /** * This typedef contains scatter gather descriptor fields for ZDMA core. */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif typedef struct { u64 Address; /**< Address */ u32 Size; /**< Word2, Size of data */ u32 Cntl; /**< Word3 Control data */ u64 NextDscr; /**< Address of next descriptor */ u64 Reserved; /**< Reserved address */ +#if defined (__ICCARM__) +} XZDma_LlDscr ; +#pragma pack(pop) +#else } __attribute__ ((packed)) XZDma_LlDscr; - +#endif /******************************************************************************/ /** * This typedef contains Linear descriptor fields for ZDMA core. */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif typedef struct { u64 Address; /**< Address */ u32 Size; /**< Word3, Size of data */ u32 Cntl; /**< Word4, control data */ +#if defined (__ICCARM__) +}XZDma_LiDscr; +#pragma pack(pop) +#else } __attribute__ ((packed)) XZDma_LiDscr; - +#endif /******************************************************************************/ /** * @@ -282,6 +310,8 @@ typedef struct { u16 DeviceId; /**< Device Id of ZDMA */ u32 BaseAddress; /**< BaseAddress of ZDMA */ u8 DmaType; /**< Type of DMA */ + u8 IsCacheCoherent; /**< Describes whether Cache Coherent or not; + * Applicable only to A53 in EL1 NS mode */ } XZDma_Config; /******************************************************************************/ @@ -300,6 +330,8 @@ typedef struct { XZDma_Mode Mode; /**< Mode of ZDMA core to be operated */ u8 IsSgDma; /**< Is ZDMA core is in scatter gather or * not will be specified */ + u32 Slcr_adma; /**< Used to hold SLCR ADMA register + * contents */ XZDma_Descriptor Descriptor; /**< It contains information about * descriptors */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_g.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_g.c similarity index 68% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_g.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_g.c index 194aac12e..984bf9cbb 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_g.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,87 +44,103 @@ * The configuration table for devices */ -XZDma_Config XZDma_ConfigTable[] = +XZDma_Config XZDma_ConfigTable[XPAR_XZDMA_NUM_INSTANCES] = { { XPAR_PSU_ADMA_0_DEVICE_ID, XPAR_PSU_ADMA_0_BASEADDR, - XPAR_PSU_ADMA_0_DMA_MODE + XPAR_PSU_ADMA_0_DMA_MODE, + XPAR_PSU_ADMA_0_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_1_DEVICE_ID, XPAR_PSU_ADMA_1_BASEADDR, - XPAR_PSU_ADMA_1_DMA_MODE + XPAR_PSU_ADMA_1_DMA_MODE, + XPAR_PSU_ADMA_1_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_2_DEVICE_ID, XPAR_PSU_ADMA_2_BASEADDR, - XPAR_PSU_ADMA_2_DMA_MODE + XPAR_PSU_ADMA_2_DMA_MODE, + XPAR_PSU_ADMA_2_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_3_DEVICE_ID, XPAR_PSU_ADMA_3_BASEADDR, - XPAR_PSU_ADMA_3_DMA_MODE + XPAR_PSU_ADMA_3_DMA_MODE, + XPAR_PSU_ADMA_3_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_4_DEVICE_ID, XPAR_PSU_ADMA_4_BASEADDR, - XPAR_PSU_ADMA_4_DMA_MODE + XPAR_PSU_ADMA_4_DMA_MODE, + XPAR_PSU_ADMA_4_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_5_DEVICE_ID, XPAR_PSU_ADMA_5_BASEADDR, - XPAR_PSU_ADMA_5_DMA_MODE + XPAR_PSU_ADMA_5_DMA_MODE, + XPAR_PSU_ADMA_5_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_6_DEVICE_ID, XPAR_PSU_ADMA_6_BASEADDR, - XPAR_PSU_ADMA_6_DMA_MODE + XPAR_PSU_ADMA_6_DMA_MODE, + XPAR_PSU_ADMA_6_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_7_DEVICE_ID, XPAR_PSU_ADMA_7_BASEADDR, - XPAR_PSU_ADMA_7_DMA_MODE + XPAR_PSU_ADMA_7_DMA_MODE, + XPAR_PSU_ADMA_7_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_0_DEVICE_ID, XPAR_PSU_GDMA_0_BASEADDR, - XPAR_PSU_GDMA_0_DMA_MODE + XPAR_PSU_GDMA_0_DMA_MODE, + XPAR_PSU_GDMA_0_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_1_DEVICE_ID, XPAR_PSU_GDMA_1_BASEADDR, - XPAR_PSU_GDMA_1_DMA_MODE + XPAR_PSU_GDMA_1_DMA_MODE, + XPAR_PSU_GDMA_1_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_2_DEVICE_ID, XPAR_PSU_GDMA_2_BASEADDR, - XPAR_PSU_GDMA_2_DMA_MODE + XPAR_PSU_GDMA_2_DMA_MODE, + XPAR_PSU_GDMA_2_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_3_DEVICE_ID, XPAR_PSU_GDMA_3_BASEADDR, - XPAR_PSU_GDMA_3_DMA_MODE + XPAR_PSU_GDMA_3_DMA_MODE, + XPAR_PSU_GDMA_3_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_4_DEVICE_ID, XPAR_PSU_GDMA_4_BASEADDR, - XPAR_PSU_GDMA_4_DMA_MODE + XPAR_PSU_GDMA_4_DMA_MODE, + XPAR_PSU_GDMA_4_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_5_DEVICE_ID, XPAR_PSU_GDMA_5_BASEADDR, - XPAR_PSU_GDMA_5_DMA_MODE + XPAR_PSU_GDMA_5_DMA_MODE, + XPAR_PSU_GDMA_5_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_6_DEVICE_ID, XPAR_PSU_GDMA_6_BASEADDR, - XPAR_PSU_GDMA_6_DMA_MODE + XPAR_PSU_GDMA_6_DMA_MODE, + XPAR_PSU_GDMA_6_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_7_DEVICE_ID, XPAR_PSU_GDMA_7_BASEADDR, - XPAR_PSU_GDMA_7_DMA_MODE + XPAR_PSU_GDMA_7_DMA_MODE, + XPAR_PSU_GDMA_7_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_hw.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_hw.h rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_hw.h index 85f630228..046921cf5 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_hw.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_hw.h @@ -33,7 +33,7 @@ /** * * @file xzdma_hw.h -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * * This header file contains identifiers and register-level driver functions (or @@ -107,6 +107,7 @@ extern "C" { #define XZDMA_CH_CTRL2_OFFSET (0x200U) /*@}*/ +#define XZDMA_SLCR_SECURE_OFFSET (0xff4b0024) /** @name Interrupt Enable/Disable/Mask/Status registers bit masks and shifts * @{ */ @@ -240,7 +241,7 @@ extern "C" { * mask */ #define XZDMA_DSCR_ATTR_AXCOHRNT_SHIFT (8U) /**< Descriptor coherent shift */ -#define XZDMA_DSCR_ATTR_AXCACHE_SHIFT (7U) /**< Descriptor cache shift */ +#define XZDMA_DSCR_ATTR_AXCACHE_SHIFT (4U) /**< Descriptor cache shift */ #define XZDMA_DSCR_ATTR_RESET_VALUE (0x00000000U) /**< Dscr Attributes * reset value */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_intr.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_intr.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_intr.c index e828d16a4..0e6af86e0 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_intr.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_intr.c @@ -33,7 +33,7 @@ /** * * @file xzdma_intr.c -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * * This file contains interrupt related functions of Xilinx ZDMA core. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_selftest.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_selftest.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_selftest.c index 893a5402f..9e8b9dcad 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_selftest.c @@ -33,7 +33,7 @@ /** * * @file xzdma_selftest.c -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * * This file contains the self-test function for the ZDMA core. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_sinit.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_sinit.c rename to FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_sinit.c index ae2c44d1c..b033d46b5 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_5/src/xzdma_sinit.c @@ -33,7 +33,7 @@ /** * * @file xzdma_sinit.c -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * * This file contains static initialization methods for Xilinx ZDMA core. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/system.mss b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/system.mss index 664a10efe..7b11cbdd3 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/system.mss +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/system.mss @@ -4,7 +4,7 @@ BEGIN OS PARAMETER OS_NAME = standalone - PARAMETER OS_VER = 6.1 + PARAMETER OS_VER = 6.6 PARAMETER PROC_INSTANCE = psu_cortexa53_0 PARAMETER stdin = psu_uart_0 PARAMETER stdout = psu_uart_0 @@ -13,62 +13,62 @@ END BEGIN PROCESSOR PARAMETER DRIVER_NAME = cpu_cortexa53 - PARAMETER DRIVER_VER = 1.2 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_cortexa53_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = scugic - PARAMETER DRIVER_VER = 3.5 + PARAMETER DRIVER_VER = 3.9 PARAMETER HW_INSTANCE = psu_acpu_gic END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_1 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_2 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_3 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_4 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_5 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_6 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_7 END @@ -116,31 +116,31 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = sysmonpsu - PARAMETER DRIVER_VER = 2.0 + PARAMETER DRIVER_VER = 2.3 PARAMETER HW_INSTANCE = psu_ams END BEGIN DRIVER PARAMETER DRIVER_NAME = axipmon - PARAMETER DRIVER_VER = 6.5 + PARAMETER DRIVER_VER = 6.6 PARAMETER HW_INSTANCE = psu_apm_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = axipmon - PARAMETER DRIVER_VER = 6.5 + PARAMETER DRIVER_VER = 6.6 PARAMETER HW_INSTANCE = psu_apm_1 END BEGIN DRIVER PARAMETER DRIVER_NAME = axipmon - PARAMETER DRIVER_VER = 6.5 + PARAMETER DRIVER_VER = 6.6 PARAMETER HW_INSTANCE = psu_apm_2 END BEGIN DRIVER PARAMETER DRIVER_NAME = axipmon - PARAMETER DRIVER_VER = 6.5 + PARAMETER DRIVER_VER = 6.6 PARAMETER HW_INSTANCE = psu_apm_5 END @@ -170,13 +170,13 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = coresightps_dcc - PARAMETER DRIVER_VER = 1.3 + PARAMETER DRIVER_VER = 1.4 PARAMETER HW_INSTANCE = psu_coresight_0 END BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 2.0 + PARAMETER DRIVER_NAME = resetps + PARAMETER DRIVER_VER = 1.0 PARAMETER HW_INSTANCE = psu_crf_apb END @@ -188,10 +188,16 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = csudma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.2 PARAMETER HW_INSTANCE = psu_csudma END +BEGIN DRIVER + PARAMETER DRIVER_NAME = generic + PARAMETER DRIVER_VER = 2.0 + PARAMETER HW_INSTANCE = psu_ctrl_ipi +END + BEGIN DRIVER PARAMETER DRIVER_NAME = generic PARAMETER DRIVER_VER = 2.0 @@ -259,14 +265,14 @@ BEGIN DRIVER END BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 2.0 + PARAMETER DRIVER_NAME = avbuf + PARAMETER DRIVER_VER = 2.1 PARAMETER HW_INSTANCE = psu_dp END BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 2.0 + PARAMETER DRIVER_NAME = dpdma + PARAMETER DRIVER_VER = 1.0 PARAMETER HW_INSTANCE = psu_dpdma END @@ -278,7 +284,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = emacps - PARAMETER DRIVER_VER = 3.3 + PARAMETER DRIVER_VER = 3.7 PARAMETER HW_INSTANCE = psu_ethernet_3 END @@ -314,55 +320,55 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_1 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_2 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_3 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_4 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_5 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_6 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_7 END BEGIN DRIVER PARAMETER DRIVER_NAME = gpiops - PARAMETER DRIVER_VER = 3.1 + PARAMETER DRIVER_VER = 3.3 PARAMETER HW_INSTANCE = psu_gpio_0 END @@ -374,13 +380,13 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = iicps - PARAMETER DRIVER_VER = 3.4 + PARAMETER DRIVER_VER = 3.6 PARAMETER HW_INSTANCE = psu_i2c_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = iicps - PARAMETER DRIVER_VER = 3.4 + PARAMETER DRIVER_VER = 3.6 PARAMETER HW_INSTANCE = psu_i2c_1 END @@ -410,7 +416,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = ipipsu - PARAMETER DRIVER_VER = 2.1 + PARAMETER DRIVER_VER = 2.3 PARAMETER HW_INSTANCE = psu_ipi_0 END @@ -444,6 +450,12 @@ BEGIN DRIVER PARAMETER HW_INSTANCE = psu_mbistjtag END +BEGIN DRIVER + PARAMETER DRIVER_NAME = generic + PARAMETER DRIVER_VER = 2.0 + PARAMETER HW_INSTANCE = psu_message_buffers +END + BEGIN DRIVER PARAMETER DRIVER_NAME = generic PARAMETER DRIVER_VER = 2.0 @@ -483,7 +495,13 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = generic PARAMETER DRIVER_VER = 2.0 - PARAMETER HW_INSTANCE = psu_pcie_high + PARAMETER HW_INSTANCE = psu_pcie_high1 +END + +BEGIN DRIVER + PARAMETER DRIVER_NAME = generic + PARAMETER DRIVER_VER = 2.0 + PARAMETER HW_INSTANCE = psu_pcie_high2 END BEGIN DRIVER @@ -498,15 +516,9 @@ BEGIN DRIVER PARAMETER HW_INSTANCE = psu_pmu_global_0 END -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 2.0 - PARAMETER HW_INSTANCE = psu_pmu_iomodule -END - BEGIN DRIVER PARAMETER DRIVER_NAME = qspipsu - PARAMETER DRIVER_VER = 1.3 + PARAMETER DRIVER_VER = 1.7 PARAMETER HW_INSTANCE = psu_qspi_0 END @@ -548,7 +560,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = scugic - PARAMETER DRIVER_VER = 3.5 + PARAMETER DRIVER_VER = 3.9 PARAMETER HW_INSTANCE = psu_rcpu_gic END @@ -566,7 +578,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = rtcpsu - PARAMETER DRIVER_VER = 1.3 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_rtc END @@ -578,7 +590,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = sdps - PARAMETER DRIVER_VER = 3.1 + PARAMETER DRIVER_VER = 3.4 PARAMETER HW_INSTANCE = psu_sd_1 END @@ -608,46 +620,52 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = ttcps - PARAMETER DRIVER_VER = 3.2 + PARAMETER DRIVER_VER = 3.5 PARAMETER HW_INSTANCE = psu_ttc_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = ttcps - PARAMETER DRIVER_VER = 3.2 + PARAMETER DRIVER_VER = 3.5 PARAMETER HW_INSTANCE = psu_ttc_1 END BEGIN DRIVER PARAMETER DRIVER_NAME = ttcps - PARAMETER DRIVER_VER = 3.2 + PARAMETER DRIVER_VER = 3.5 PARAMETER HW_INSTANCE = psu_ttc_2 END BEGIN DRIVER PARAMETER DRIVER_NAME = ttcps - PARAMETER DRIVER_VER = 3.2 + PARAMETER DRIVER_VER = 3.5 PARAMETER HW_INSTANCE = psu_ttc_3 END BEGIN DRIVER PARAMETER DRIVER_NAME = uartps - PARAMETER DRIVER_VER = 3.3 + PARAMETER DRIVER_VER = 3.6 PARAMETER HW_INSTANCE = psu_uart_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = uartps - PARAMETER DRIVER_VER = 3.3 + PARAMETER DRIVER_VER = 3.6 PARAMETER HW_INSTANCE = psu_uart_1 END BEGIN DRIVER - PARAMETER DRIVER_NAME = usbpsu - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_NAME = generic + PARAMETER DRIVER_VER = 2.0 PARAMETER HW_INSTANCE = psu_usb_0 END +BEGIN DRIVER + PARAMETER DRIVER_NAME = usbpsu + PARAMETER DRIVER_VER = 1.4 + PARAMETER HW_INSTANCE = psu_usb_xhci_0 +END + BEGIN DRIVER PARAMETER DRIVER_NAME = wdtps PARAMETER DRIVER_VER = 3.0 diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.c index f206bc7bf..5331ca872 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.c @@ -34,21100 +34,21787 @@ * * @file psu_init.c * -* This file is automatically generated +* This file is automatically generated * *****************************************************************************/ #include #include #include "psu_init.h" +#define DPLL_CFG_LOCK_DLY 63 +#define DPLL_CFG_LOCK_CNT 625 +#define DPLL_CFG_LFHF 3 +#define DPLL_CFG_CP 3 +#define DPLL_CFG_RES 2 -int mask_pollOnValue(u32 add , u32 mask, u32 value ); +static int mask_pollOnValue(u32 add, u32 mask, u32 value); -int mask_poll(u32 add , u32 mask ); +static int mask_poll(u32 add, u32 mask); -void mask_delay(u32 delay); +static void mask_delay(u32 delay); -u32 mask_read(u32 add , u32 mask ); +static u32 mask_read(u32 add, u32 mask); -static void PSU_Mask_Write (unsigned long offset, unsigned long mask, unsigned long val) +static void dpll_prog(int ddr_pll_fbdiv, int d_lock_dly, + int d_lock_cnt, int d_lfhf, int d_cp, int d_res); + +static +void PSU_Mask_Write(unsigned long offset, unsigned long mask, + unsigned long val) { unsigned long RegVal = 0x0; - RegVal = Xil_In32 (offset); + + RegVal = Xil_In32(offset); RegVal &= ~(mask); RegVal |= (val & mask); - Xil_Out32 (offset, RegVal); + Xil_Out32(offset, RegVal); } - void prog_reg (unsigned long addr, unsigned long mask, unsigned long shift, unsigned long value) { - int rdata =0; + void prog_reg(unsigned long addr, unsigned long mask, + unsigned long shift, unsigned long value) { + int rdata = 0; + rdata = Xil_In32(addr); rdata = rdata & (~mask); rdata = rdata | (value << shift); - Xil_Out32(addr,rdata); - } - -unsigned long psu_pll_init_data() { - // : RPLL INIT - /*Register : RPLL_CFG @ 0XFF5E0034

- - PLL loop filter resistor control - PSU_CRL_APB_RPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRL_APB_RPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRL_APB_RPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRL_APB_RPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRL_APB_RPLL_CFG_RES_MASK | CRL_APB_RPLL_CFG_CP_MASK | CRL_APB_RPLL_CFG_LFHF_MASK | CRL_APB_RPLL_CFG_LOCK_CNT_MASK | CRL_APB_RPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRL_APB_RPLL_CFG_RES_SHIFT - | 0x00000003U << CRL_APB_RPLL_CFG_CP_SHIFT - | 0x00000003U << CRL_APB_RPLL_CFG_LFHF_SHIFT - | 0x00000258U << CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : RPLL_CTRL @ 0XFF5E0030

- - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRL_APB_RPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRL_APB_RPLL_CTRL_FBDIV 0x48 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRL_APB_RPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00014800U) - RegMask = (CRL_APB_RPLL_CTRL_PRE_SRC_MASK | CRL_APB_RPLL_CTRL_FBDIV_MASK | CRL_APB_RPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT - | 0x00000048U << CRL_APB_RPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRL_APB_RPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00717F00U ,0x00014800U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : RPLL_CTRL @ 0XFF5E0030

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_RPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_RPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_RPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : RPLL_CTRL @ 0XFF5E0030

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_RPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000001U) - RegMask = (CRL_APB_RPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_RPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : RPLL_CTRL @ 0XFF5E0030

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_RPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_RPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFF5E0040

- - RPLL is locked - PSU_CRL_APB_PLL_STATUS_RPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000002U ,0x00000002U) */ - mask_poll(CRL_APB_PLL_STATUS_OFFSET,0x00000002U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : RPLL_CTRL @ 0XFF5E0030

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_RPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : RPLL_TO_FPD_CTRL @ 0XFF5E0048

- - Divisor value for this clock. - PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000300U) - RegMask = (CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_TO_FPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : RPLL FRAC CFG - /*Register : RPLL_FRAC_CFG @ 0XFF5E0038

- - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRL_APB_RPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRL_APB_RPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFF5E0038, 0x8000FFFFU ,0x00000000U) - RegMask = (CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK | CRL_APB_RPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : IOPLL INIT - /*Register : IOPLL_CFG @ 0XFF5E0024

- - PLL loop filter resistor control - PSU_CRL_APB_IOPLL_CFG_RES 0xc - - PLL charge pump control - PSU_CRL_APB_IOPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRL_APB_IOPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x339 - - Lock circuit configuration settings for lock windowsize - PSU_CRL_APB_IOPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E672C6CU) - RegMask = (CRL_APB_IOPLL_CFG_RES_MASK | CRL_APB_IOPLL_CFG_CP_MASK | CRL_APB_IOPLL_CFG_LFHF_MASK | CRL_APB_IOPLL_CFG_LOCK_CNT_MASK | CRL_APB_IOPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x0000000CU << CRL_APB_IOPLL_CFG_RES_SHIFT - | 0x00000003U << CRL_APB_IOPLL_CFG_CP_SHIFT - | 0x00000003U << CRL_APB_IOPLL_CFG_LFHF_SHIFT - | 0x00000339U << CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E672C6CU); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : IOPLL_CTRL @ 0XFF5E0020

- - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRL_APB_IOPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x2d - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRL_APB_IOPLL_CTRL_DIV2 0x0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00002D00U) - RegMask = (CRL_APB_IOPLL_CTRL_PRE_SRC_MASK | CRL_APB_IOPLL_CTRL_FBDIV_MASK | CRL_APB_IOPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT - | 0x0000002DU << CRL_APB_IOPLL_CTRL_FBDIV_SHIFT - | 0x00000000U << CRL_APB_IOPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00717F00U ,0x00002D00U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : IOPLL_CTRL @ 0XFF5E0020

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_IOPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : IOPLL_CTRL @ 0XFF5E0020

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_IOPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000001U) - RegMask = (CRL_APB_IOPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : IOPLL_CTRL @ 0XFF5E0020

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_IOPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_IOPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFF5E0040

- - IOPLL is locked - PSU_CRL_APB_PLL_STATUS_IOPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000001U ,0x00000001U) */ - mask_poll(CRL_APB_PLL_STATUS_OFFSET,0x00000001U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : IOPLL_CTRL @ 0XFF5E0020

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_IOPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : IOPLL_TO_FPD_CTRL @ 0XFF5E0044

- - Divisor value for this clock. - PSU_CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFF5E0044, 0x00003F00U ,0x00000300U) - RegMask = (CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : IOPLL FRAC CFG - /*Register : IOPLL_FRAC_CFG @ 0XFF5E0028

- - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRL_APB_IOPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRL_APB_IOPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFF5E0028, 0x8000FFFFU ,0x00000000U) - RegMask = (CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK | CRL_APB_IOPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : APU_PLL INIT - /*Register : APLL_CFG @ 0XFD1A0024

- - PLL loop filter resistor control - PSU_CRF_APB_APLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_APLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_APLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_APLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_APLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A0024, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRF_APB_APLL_CFG_RES_MASK | CRF_APB_APLL_CFG_CP_MASK | CRF_APB_APLL_CFG_LFHF_MASK | CRF_APB_APLL_CFG_LOCK_CNT_MASK | CRF_APB_APLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_APLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_APLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_APLL_CFG_LFHF_SHIFT - | 0x00000258U << CRF_APB_APLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_APLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : APLL_CTRL @ 0XFD1A0020

- - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_APLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_APLL_CTRL_FBDIV 0x42 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_APLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014200U) - RegMask = (CRF_APB_APLL_CTRL_PRE_SRC_MASK | CRF_APB_APLL_CTRL_FBDIV_MASK | CRF_APB_APLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_PRE_SRC_SHIFT - | 0x00000042U << CRF_APB_APLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_APLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00717F00U ,0x00014200U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : APLL_CTRL @ 0XFD1A0020

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_APLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_APLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_APLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : APLL_CTRL @ 0XFD1A0020

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_APLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_APLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_APLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : APLL_CTRL @ 0XFD1A0020

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_APLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_APLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

- - APLL is locked - PSU_CRF_APB_PLL_STATUS_APLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000001U ,0x00000001U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000001U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : APLL_CTRL @ 0XFD1A0020

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_APLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_APLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : APLL_TO_LPD_CTRL @ 0XFD1A0048

- - Divisor value for this clock. - PSU_CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A0048, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : APLL FRAC CFG - /*Register : APLL_FRAC_CFG @ 0XFD1A0028

- - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_APLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRF_APB_APLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0028, 0x8000FFFFU ,0x00000000U) - RegMask = (CRF_APB_APLL_FRAC_CFG_ENABLED_MASK | CRF_APB_APLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRF_APB_APLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : DDR_PLL INIT - /*Register : DPLL_CFG @ 0XFD1A0030

- - PLL loop filter resistor control - PSU_CRF_APB_DPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_DPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_DPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_DPLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_DPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A0030, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRF_APB_DPLL_CFG_RES_MASK | CRF_APB_DPLL_CFG_CP_MASK | CRF_APB_DPLL_CFG_LFHF_MASK | CRF_APB_DPLL_CFG_LOCK_CNT_MASK | CRF_APB_DPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DPLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_DPLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_DPLL_CFG_LFHF_SHIFT - | 0x00000258U << CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : DPLL_CTRL @ 0XFD1A002C

- - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_DPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_DPLL_CTRL_FBDIV 0x40 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_DPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00717F00U ,0x00014000U) - RegMask = (CRF_APB_DPLL_CTRL_PRE_SRC_MASK | CRF_APB_DPLL_CTRL_FBDIV_MASK | CRF_APB_DPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT - | 0x00000040U << CRF_APB_DPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_DPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00717F00U ,0x00014000U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : DPLL_CTRL @ 0XFD1A002C

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_DPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : DPLL_CTRL @ 0XFD1A002C

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_DPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_DPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : DPLL_CTRL @ 0XFD1A002C

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_DPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_DPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

- - DPLL is locked - PSU_CRF_APB_PLL_STATUS_DPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000002U ,0x00000002U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000002U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : DPLL_CTRL @ 0XFD1A002C

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_DPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DPLL_TO_LPD_CTRL @ 0XFD1A004C

- - Divisor value for this clock. - PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : DPLL FRAC CFG - /*Register : DPLL_FRAC_CFG @ 0XFD1A0034

- - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_DPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRF_APB_DPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0034, 0x8000FFFFU ,0x00000000U) - RegMask = (CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK | CRF_APB_DPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : VIDEO_PLL INIT - /*Register : VPLL_CFG @ 0XFD1A003C

- - PLL loop filter resistor control - PSU_CRF_APB_VPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_VPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_VPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x28a - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_VPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E514C62U) - RegMask = (CRF_APB_VPLL_CFG_RES_MASK | CRF_APB_VPLL_CFG_CP_MASK | CRF_APB_VPLL_CFG_LFHF_MASK | CRF_APB_VPLL_CFG_LOCK_CNT_MASK | CRF_APB_VPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_VPLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_VPLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_VPLL_CFG_LFHF_SHIFT - | 0x0000028AU << CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E514C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : VPLL_CTRL @ 0XFD1A0038

- - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_VPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_VPLL_CTRL_FBDIV 0x39 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_VPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00013900U) - RegMask = (CRF_APB_VPLL_CTRL_PRE_SRC_MASK | CRF_APB_VPLL_CTRL_FBDIV_MASK | CRF_APB_VPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT - | 0x00000039U << CRF_APB_VPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_VPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00717F00U ,0x00013900U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : VPLL_CTRL @ 0XFD1A0038

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_VPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_VPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : VPLL_CTRL @ 0XFD1A0038

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_VPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_VPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : VPLL_CTRL @ 0XFD1A0038

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_VPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_VPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

- - VPLL is locked - PSU_CRF_APB_PLL_STATUS_VPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000004U ,0x00000004U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000004U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : VPLL_CTRL @ 0XFD1A0038

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_VPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_VPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : VPLL_TO_LPD_CTRL @ 0XFD1A0050

- - Divisor value for this clock. - PSU_CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A0050, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : VIDEO FRAC CFG - /*Register : VPLL_FRAC_CFG @ 0XFD1A0040

- - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_VPLL_FRAC_CFG_ENABLED 0x1 - - Fractional value for the Feedback value. - PSU_CRF_APB_VPLL_FRAC_CFG_DATA 0x820c - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0040, 0x8000FFFFU ,0x8000820CU) - RegMask = (CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK | CRF_APB_VPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT - | 0x0000820CU << CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x8000820CU); - /*############################################################################################################################ */ - - - return 1; + Xil_Out32(addr, rdata); + } + +unsigned long psu_pll_init_data(void) +{ + /* + * RPLL INIT + */ + /* + * Register : RPLL_CFG @ 0XFF5E0034 + + * PLL loop filter resistor control + * PSU_CRL_APB_RPLL_CFG_RES 0xc + + * PLL charge pump control + * PSU_CRL_APB_RPLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRL_APB_RPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x339 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRL_APB_RPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E672C6CU) + */ + PSU_Mask_Write(CRL_APB_RPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E672C6CU); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRL_APB_RPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRL_APB_RPLL_CTRL_FBDIV 0x2d + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRL_APB_RPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00012D00U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00717F00U, 0x00012D00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_RPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_RPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_RPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFF5E0040 + + * RPLL is locked + * PSU_CRL_APB_PLL_STATUS_RPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000002U ,0x00000002U) + */ + mask_poll(CRL_APB_PLL_STATUS_OFFSET, 0x00000002U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_RPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RPLL_TO_FPD_CTRL @ 0XFF5E0048 + + * Divisor value for this clock. + * PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x2 + + * Control for a clock that will be generated in the LPD, but used in the F + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000200U) + */ + PSU_Mask_Write(CRL_APB_RPLL_TO_FPD_CTRL_OFFSET, + 0x00003F00U, 0x00000200U); +/*##################################################################### */ + + /* + * RPLL FRAC CFG + */ + /* + * IOPLL INIT + */ + /* + * Register : IOPLL_CFG @ 0XFF5E0024 + + * PLL loop filter resistor control + * PSU_CRL_APB_IOPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRL_APB_IOPLL_CFG_CP 0x4 + + * PLL loop filter high frequency capacitor control + * PSU_CRL_APB_IOPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRL_APB_IOPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E4B0C82U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C82U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRL_APB_IOPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x5a + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRL_APB_IOPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00015A00U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00717F00U, 0x00015A00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_IOPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_IOPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_IOPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFF5E0040 + + * IOPLL is locked + * PSU_CRL_APB_PLL_STATUS_IOPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000001U ,0x00000001U) + */ + mask_poll(CRL_APB_PLL_STATUS_OFFSET, 0x00000001U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_IOPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : IOPLL_TO_FPD_CTRL @ 0XFF5E0044 + + * Divisor value for this clock. + * PSU_CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the LPD, but used in the F + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFF5E0044, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * IOPLL FRAC CFG + */ + /* + * APU_PLL INIT + */ + /* + * Register : APLL_CFG @ 0XFD1A0024 + + * PLL loop filter resistor control + * PSU_CRF_APB_APLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_APLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_APLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_APLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_APLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A0024, 0xFE7FEDEFU ,0x7E4B0C62U) + */ + PSU_Mask_Write(CRF_APB_APLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C62U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_APLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_APLL_CTRL_FBDIV 0x48 + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_APLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014800U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00717F00U, 0x00014800U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_APLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_APLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_APLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * APLL is locked + * PSU_CRF_APB_PLL_STATUS_APLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000001U ,0x00000001U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000001U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_APLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : APLL_TO_LPD_CTRL @ 0XFD1A0048 + + * Divisor value for this clock. + * PSU_CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A0048, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRF_APB_APLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * APLL FRAC CFG + */ + /* + * DDR_PLL INIT + */ + /* + * Register : DPLL_CFG @ 0XFD1A0030 + + * PLL loop filter resistor control + * PSU_CRF_APB_DPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_DPLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_DPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_DPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_DPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A0030, 0xFE7FEDEFU ,0x7E4B0C62U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C62U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_DPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_DPLL_CTRL_FBDIV 0x40 + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_DPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00717F00U ,0x00014000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00717F00U, 0x00014000U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_DPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_DPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_DPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * DPLL is locked + * PSU_CRF_APB_PLL_STATUS_DPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000002U ,0x00000002U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000002U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_DPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DPLL_TO_LPD_CTRL @ 0XFD1A004C + + * Divisor value for this clock. + * PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x2 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DPLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000200U); +/*##################################################################### */ + + /* + * DPLL FRAC CFG + */ + /* + * VIDEO_PLL INIT + */ + /* + * Register : VPLL_CFG @ 0XFD1A003C + + * PLL loop filter resistor control + * PSU_CRF_APB_VPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_VPLL_CFG_CP 0x4 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_VPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_VPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E4B0C82U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C82U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_VPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_VPLL_CTRL_FBDIV 0x5a + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_VPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00015A00U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00717F00U, 0x00015A00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_VPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_VPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_VPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * VPLL is locked + * PSU_CRF_APB_PLL_STATUS_VPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000004U ,0x00000004U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000004U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_VPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : VPLL_TO_LPD_CTRL @ 0XFD1A0050 + + * Divisor value for this clock. + * PSU_CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A0050, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRF_APB_VPLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * VIDEO FRAC CFG + */ + + return 1; } -unsigned long psu_clock_init_data() { - // : CLOCK CONTROL SLCR REGISTER - /*Register : GEM3_REF_CTRL @ 0XFF5E005C

+unsigned long psu_clock_init_data(void) +{ + /* + * CLOCK CONTROL SLCR REGISTER + */ + /* + * Register : GEM3_REF_CTRL @ 0XFF5E005C + + * Clock active for the RX channel + * PSU_CRL_APB_GEM3_REF_CTRL_RX_CLKACT 0x1 - Clock active for the RX channel - PSU_CRL_APB_GEM3_REF_CTRL_RX_CLKACT 0x1 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_GEM3_REF_CTRL_CLKACT 0x1 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_GEM3_REF_CTRL_CLKACT 0x1 + * 6 bit divider + * PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR1 0x1 - 6 bit divider - PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR1 0x1 + * 6 bit divider + * PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR0 0xc + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_GEM3_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E005C, 0x063F3F07U ,0x06010C00U) + */ + PSU_Mask_Write(CRL_APB_GEM3_REF_CTRL_OFFSET, + 0x063F3F07U, 0x06010C00U); +/*##################################################################### */ + + /* + * Register : GEM_TSU_REF_CTRL @ 0XFF5E0100 - 6 bit divider - PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR0 0xc + * 6 bit divider + * PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0 0x6 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_GEM3_REF_CTRL_SRCSEL 0x0 + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_GEM_TSU_REF_CTRL_SRCSEL 0x0 - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E005C, 0x063F3F07U ,0x06010C00U) - RegMask = (CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK | CRL_APB_GEM3_REF_CTRL_CLKACT_MASK | CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK | CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK | CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK | 0 ); + * 6 bit divider + * PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1 0x1 - RegVal = ((0x00000001U << CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT - | 0x00000001U << CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000CU << CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_GEM3_REF_CTRL_OFFSET ,0x063F3F07U ,0x06010C00U); - /*############################################################################################################################ */ + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_GEM_TSU_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0100, 0x013F3F07U ,0x01010600U) + */ + PSU_Mask_Write(CRL_APB_GEM_TSU_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010600U); +/*##################################################################### */ + + /* + * Register : USB0_BUS_REF_CTRL @ 0XFF5E0060 - /*Register : USB0_BUS_REF_CTRL @ 0XFF5E0060

+ * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_USB0_BUS_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0 0x6 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_USB0_BUS_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0060, 0x023F3F07U ,0x02010600U) + */ + PSU_Mask_Write(CRL_APB_USB0_BUS_REF_CTRL_OFFSET, + 0x023F3F07U, 0x02010600U); +/*##################################################################### */ + + /* + * Register : USB3_DUAL_REF_CTRL @ 0XFF5E004C - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_USB0_BUS_REF_CTRL_CLKACT 0x1 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0x3 + + * 6 bit divider + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x19 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x02031900U) + */ + PSU_Mask_Write(CRL_APB_USB3_DUAL_REF_CTRL_OFFSET, + 0x023F3F07U, 0x02031900U); +/*##################################################################### */ - 6 bit divider - PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1 0x1 + /* + * Register : QSPI_REF_CTRL @ 0XFF5E0068 - 6 bit divider - PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0 0x6 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_QSPI_REF_CTRL_CLKACT 0x1 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_USB0_BUS_REF_CTRL_SRCSEL 0x0 + * 6 bit divider + * PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR0 0xc + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_QSPI_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0068, 0x013F3F07U ,0x01010C00U) + */ + PSU_Mask_Write(CRL_APB_QSPI_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010C00U); +/*##################################################################### */ - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0060, 0x023F3F07U ,0x02010600U) - RegMask = (CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK | CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK | CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK | CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK | 0 ); + /* + * Register : SDIO1_REF_CTRL @ 0XFF5E0070 - RegVal = ((0x00000001U << CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT - | 0x00000006U << CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_USB0_BUS_REF_CTRL_OFFSET ,0x023F3F07U ,0x02010600U); - /*############################################################################################################################ */ + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_SDIO1_REF_CTRL_CLKACT 0x1 - /*Register : USB3_DUAL_REF_CTRL @ 0XFF5E004C

+ * 6 bit divider + * PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x8 + + * 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x0 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_USB3_DUAL_REF_CTRL_CLKACT 0x1 + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010800U) + */ + PSU_Mask_Write(CRL_APB_SDIO1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010800U); +/*##################################################################### */ - 6 bit divider - PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0xf + /* + * Register : SDIO_CLK_CTRL @ 0XFF18030C - 6 bit divider - PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x5 + * MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO + * [51] 1: MIO [76] + * PSU_IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL 0 - 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL 0x0 + * SoC Debug Clock Control + * (OFFSET, MASK, VALUE) (0XFF18030C, 0x00020000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_SDIO_CLK_CTRL_OFFSET, + 0x00020000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : UART0_REF_CTRL @ 0XFF5E0074 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_UART0_REF_CTRL_CLKACT 0x1 - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x020F0500U) - RegMask = (CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK | CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK | CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK | CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK | 0 ); + * 6 bit divider + * PSU_CRL_APB_UART0_REF_CTRL_DIVISOR1 0x1 - RegVal = ((0x00000001U << CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT - | 0x0000000FU << CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT - | 0x00000005U << CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_USB3_DUAL_REF_CTRL_OFFSET ,0x023F3F07U ,0x020F0500U); - /*############################################################################################################################ */ + * 6 bit divider + * PSU_CRL_APB_UART0_REF_CTRL_DIVISOR0 0xf - /*Register : QSPI_REF_CTRL @ 0XFF5E0068

+ * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_UART0_REF_CTRL_SRCSEL 0x0 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_QSPI_REF_CTRL_CLKACT 0x1 + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0074, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_UART0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : UART1_REF_CTRL @ 0XFF5E0078 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_UART1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_UART1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_UART1_REF_CTRL_DIVISOR0 0xf - 6 bit divider - PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR1 0x1 + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_UART1_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0078, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_UART1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : I2C0_REF_CTRL @ 0XFF5E0120 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_I2C0_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_I2C0_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0120, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_I2C0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : I2C1_REF_CTRL @ 0XFF5E0124 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_I2C1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_I2C1_REF_CTRL_SRCSEL 0x0 - 6 bit divider - PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR0 0xc + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0124, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_I2C1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : CAN1_REF_CTRL @ 0XFF5E0088 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_QSPI_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0068, 0x013F3F07U ,0x01010C00U) - RegMask = (CRL_APB_QSPI_REF_CTRL_CLKACT_MASK | CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK | CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK | CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000CU << CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_QSPI_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010C00U); - /*############################################################################################################################ */ - - /*Register : SDIO1_REF_CTRL @ 0XFF5E0070

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_SDIO1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x6 - - 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010602U) - RegMask = (CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK | CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK | CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK | CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT - | 0x00000006U << CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_SDIO1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010602U); - /*############################################################################################################################ */ - - /*Register : SDIO_CLK_CTRL @ 0XFF18030C

- - MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO [51] 1: MIO [76] - PSU_IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL 0 - - SoC Debug Clock Control - (OFFSET, MASK, VALUE) (0XFF18030C, 0x00020000U ,0x00000000U) - RegMask = (IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SDIO_CLK_CTRL_OFFSET ,0x00020000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : UART0_REF_CTRL @ 0XFF5E0074

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_UART0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_UART0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_UART0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_UART0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0074, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_UART0_REF_CTRL_CLKACT_MASK | CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK | CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK | CRL_APB_UART0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_UART0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : UART1_REF_CTRL @ 0XFF5E0078

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_UART1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_UART1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_UART1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_UART1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0078, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_UART1_REF_CTRL_CLKACT_MASK | CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK | CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK | CRL_APB_UART1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_UART1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : I2C0_REF_CTRL @ 0XFF5E0120

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_I2C0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_I2C0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0120, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_I2C0_REF_CTRL_CLKACT_MASK | CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK | CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK | CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_I2C0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : I2C1_REF_CTRL @ 0XFF5E0124

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_I2C1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_I2C1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0124, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_I2C1_REF_CTRL_CLKACT_MASK | CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK | CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK | CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_I2C1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : CAN1_REF_CTRL @ 0XFF5E0088

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_CAN1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_CAN1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0088, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_CAN1_REF_CTRL_CLKACT_MASK | CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK | CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK | CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_CAN1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : CPU_R5_CTRL @ 0XFF5E0090

- - Turing this off will shut down the OCM, some parts of the APM, and prevent transactions going from the FPD to the LPD and cou - d lead to system hang - PSU_CRL_APB_CPU_R5_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_CPU_R5_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_CPU_R5_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0090, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_CPU_R5_CTRL_CLKACT_MASK | CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK | CRL_APB_CPU_R5_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_CPU_R5_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : IOU_SWITCH_CTRL @ 0XFF5E009C

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_IOU_SWITCH_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_IOU_SWITCH_CTRL_DIVISOR0 0x6 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOU_SWITCH_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E009C, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK | CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK | CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOU_SWITCH_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : PCAP_CTRL @ 0XFF5E00A4

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PCAP_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x6 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_PCAP_CTRL_CLKACT_MASK | CRL_APB_PCAP_CTRL_DIVISOR0_MASK | CRL_APB_PCAP_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PCAP_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PCAP_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PCAP_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : LPD_SWITCH_CTRL @ 0XFF5E00A8

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_LPD_SWITCH_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_LPD_SWITCH_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_LPD_SWITCH_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00A8, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK | CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK | CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_LPD_SWITCH_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : LPD_LSBUS_CTRL @ 0XFF5E00AC

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_LPD_LSBUS_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_LPD_LSBUS_CTRL_DIVISOR0 0xf - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_LPD_LSBUS_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00AC, 0x01003F07U ,0x01000F02U) - RegMask = (CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK | CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK | CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT - | 0x0000000FU << CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_LPD_LSBUS_CTRL_OFFSET ,0x01003F07U ,0x01000F02U); - /*############################################################################################################################ */ - - /*Register : DBG_LPD_CTRL @ 0XFF5E00B0

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_DBG_LPD_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_DBG_LPD_CTRL_DIVISOR0 0x6 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_DBG_LPD_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00B0, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_DBG_LPD_CTRL_CLKACT_MASK | CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK | CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_DBG_LPD_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : ADMA_REF_CTRL @ 0XFF5E00B8

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_ADMA_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_ADMA_REF_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_ADMA_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00B8, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_ADMA_REF_CTRL_CLKACT_MASK | CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK | CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_ADMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : PL0_REF_CTRL @ 0XFF5E00C0

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C0, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_PL0_REF_CTRL_CLKACT_MASK | CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : PL1_REF_CTRL @ 0XFF5E00C4

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL1_REF_CTRL_DIVISOR1 0x4 - - 6 bit divider - PSU_CRL_APB_PL1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C4, 0x013F3F07U ,0x01040F00U) - RegMask = (CRL_APB_PL1_REF_CTRL_CLKACT_MASK | CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT - | 0x00000004U << CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01040F00U); - /*############################################################################################################################ */ - - /*Register : PL2_REF_CTRL @ 0XFF5E00C8

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL2_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL2_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL2_REF_CTRL_DIVISOR0 0x4 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL2_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C8, 0x013F3F07U ,0x01010402U) - RegMask = (CRL_APB_PL2_REF_CTRL_CLKACT_MASK | CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL2_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT - | 0x00000004U << CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL2_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010402U); - /*############################################################################################################################ */ - - /*Register : PL3_REF_CTRL @ 0XFF5E00CC

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL3_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL3_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL3_REF_CTRL_DIVISOR0 0x3 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL3_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00CC, 0x013F3F07U ,0x01010302U) - RegMask = (CRL_APB_PL3_REF_CTRL_CLKACT_MASK | CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL3_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT - | 0x00000003U << CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL3_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010302U); - /*############################################################################################################################ */ - - /*Register : AMS_REF_CTRL @ 0XFF5E0108

- - 6 bit divider - PSU_CRL_APB_AMS_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1d - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_AMS_REF_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_AMS_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011D02U) - RegMask = (CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK | CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK | CRL_APB_AMS_REF_CTRL_SRCSEL_MASK | CRL_APB_AMS_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT - | 0x0000001DU << CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_AMS_REF_CTRL_OFFSET ,0x013F3F07U ,0x01011D02U); - /*############################################################################################################################ */ - - /*Register : DLL_REF_CTRL @ 0XFF5E0104

- - 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - is not usually an issue, but designers must be aware.) - PSU_CRL_APB_DLL_REF_CTRL_SRCSEL 0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0104, 0x00000007U ,0x00000000U) - RegMask = (CRL_APB_DLL_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_DLL_REF_CTRL_OFFSET ,0x00000007U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : TIMESTAMP_REF_CTRL @ 0XFF5E0128

- - 6 bit divider - PSU_CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0 0xf - - 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and - cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0128, 0x01003F07U ,0x01000F00U) - RegMask = (CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK | CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK | CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x0000000FU << CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_TIMESTAMP_REF_CTRL_OFFSET ,0x01003F07U ,0x01000F00U); - /*############################################################################################################################ */ - - /*Register : SATA_REF_CTRL @ 0XFD1A00A0

- - 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_SATA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_SATA_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRF_APB_SATA_REF_CTRL_DIVISOR0 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00A0, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_SATA_REF_CTRL_SRCSEL_MASK | CRF_APB_SATA_REF_CTRL_CLKACT_MASK | CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT - | 0x00000002U << CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_SATA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : PCIE_REF_CTRL @ 0XFD1A00B4

- - 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cyc - es of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_PCIE_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_PCIE_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRF_APB_PCIE_REF_CTRL_DIVISOR0 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00B4, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK | CRF_APB_PCIE_REF_CTRL_CLKACT_MASK | CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT - | 0x00000002U << CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_PCIE_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DP_VIDEO_REF_CTRL @ 0XFD1A0070

- - 6 bit divider - PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x3 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x3 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_VIDEO_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010303U) - RegMask = (CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT - | 0x00000003U << CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT - | 0x00000003U << CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_VIDEO_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010303U); - /*############################################################################################################################ */ - - /*Register : DP_AUDIO_REF_CTRL @ 0XFD1A0074

- - 6 bit divider - PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0x27 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_AUDIO_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01012700U) - RegMask = (CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT - | 0x00000027U << CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_AUDIO_REF_CTRL_OFFSET ,0x013F3F07U ,0x01012700U); - /*############################################################################################################################ */ - - /*Register : DP_STC_REF_CTRL @ 0XFD1A007C

- - 6 bit divider - PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0x11 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of t - e new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_STC_REF_CTRL_SRCSEL 0x3 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_STC_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01011103U) - RegMask = (CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT - | 0x00000011U << CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT - | 0x00000003U << CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_STC_REF_CTRL_OFFSET ,0x013F3F07U ,0x01011103U); - /*############################################################################################################################ */ - - /*Register : ACPU_CTRL @ 0XFD1A0060

- - 6 bit divider - PSU_CRF_APB_ACPU_CTRL_DIVISOR0 0x1 - - 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_ACPU_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock. For the half speed APU Clock - PSU_CRF_APB_ACPU_CTRL_CLKACT_HALF 0x1 - - Clock active signal. Switch to 0 to disable the clock. For the full speed ACPUX Clock. This will shut off the high speed cloc - to the entire APU - PSU_CRF_APB_ACPU_CTRL_CLKACT_FULL 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0060, 0x03003F07U ,0x03000100U) - RegMask = (CRF_APB_ACPU_CTRL_DIVISOR0_MASK | CRF_APB_ACPU_CTRL_SRCSEL_MASK | CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK | CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_ACPU_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT - | 0x00000001U << CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_ACPU_CTRL_OFFSET ,0x03003F07U ,0x03000100U); - /*############################################################################################################################ */ - - /*Register : DBG_TRACE_CTRL @ 0XFD1A0064

- - 6 bit divider - PSU_CRF_APB_DBG_TRACE_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_TRACE_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DBG_TRACE_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0064, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK | CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK | CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_TRACE_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DBG_FPD_CTRL @ 0XFD1A0068

- - 6 bit divider - PSU_CRF_APB_DBG_FPD_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_FPD_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DBG_FPD_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0068, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK | CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK | CRF_APB_DBG_FPD_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_FPD_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DDR_CTRL @ 0XFD1A0080

- - 6 bit divider - PSU_CRF_APB_DDR_CTRL_DIVISOR0 0x2 - - 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - s not usually an issue, but designers must be aware.) - PSU_CRF_APB_DDR_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0080, 0x00003F07U ,0x00000200U) - RegMask = (CRF_APB_DDR_CTRL_DIVISOR0_MASK | CRF_APB_DDR_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DDR_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DDR_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DDR_CTRL_OFFSET ,0x00003F07U ,0x00000200U); - /*############################################################################################################################ */ - - /*Register : GPU_REF_CTRL @ 0XFD1A0084

- - 6 bit divider - PSU_CRF_APB_GPU_REF_CTRL_DIVISOR0 0x1 - - 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_GPU_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock, which will stop clock for GPU (and both Pixel Processors). - PSU_CRF_APB_GPU_REF_CTRL_CLKACT 0x1 - - Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor - PSU_CRF_APB_GPU_REF_CTRL_PP0_CLKACT 0x1 - - Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor - PSU_CRF_APB_GPU_REF_CTRL_PP1_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0084, 0x07003F07U ,0x07000100U) - RegMask = (CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK | CRF_APB_GPU_REF_CTRL_SRCSEL_MASK | CRF_APB_GPU_REF_CTRL_CLKACT_MASK | CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK | CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_GPU_REF_CTRL_OFFSET ,0x07003F07U ,0x07000100U); - /*############################################################################################################################ */ - - /*Register : GDMA_REF_CTRL @ 0XFD1A00B8

- - 6 bit divider - PSU_CRF_APB_GDMA_REF_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_GDMA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_GDMA_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00B8, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK | CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK | CRF_APB_GDMA_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_GDMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DPDMA_REF_CTRL @ 0XFD1A00BC

- - 6 bit divider - PSU_CRF_APB_DPDMA_REF_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPDMA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DPDMA_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00BC, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK | CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK | CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPDMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : TOPSW_MAIN_CTRL @ 0XFD1A00C0

- - 6 bit divider - PSU_CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_TOPSW_MAIN_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000202U) - RegMask = (CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK | CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK | CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_TOPSW_MAIN_CTRL_OFFSET ,0x01003F07U ,0x01000202U); - /*############################################################################################################################ */ - - /*Register : TOPSW_LSBUS_CTRL @ 0XFD1A00C4

- - 6 bit divider - PSU_CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0 0x5 - - 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_TOPSW_LSBUS_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00C4, 0x01003F07U ,0x01000502U) - RegMask = (CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK | CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK | CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000005U << CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_TOPSW_LSBUS_CTRL_OFFSET ,0x01003F07U ,0x01000502U); - /*############################################################################################################################ */ - - /*Register : DBG_TSTMP_CTRL @ 0XFD1A00F8

- - 6 bit divider - PSU_CRF_APB_DBG_TSTMP_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_TSTMP_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00F8, 0x00003F07U ,0x00000200U) - RegMask = (CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK | CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_TSTMP_CTRL_OFFSET ,0x00003F07U ,0x00000200U); - /*############################################################################################################################ */ - - /*Register : IOU_TTC_APB_CLK @ 0XFF180380

- - 00" = Select the APB switch clock for the APB interface of TTC0'01" = Select the PLL ref clock for the APB interface of TTC0' - 0" = Select the R5 clock for the APB interface of TTC0 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC1'01" = Select the PLL ref clock for the APB interface of TTC1' - 0" = Select the R5 clock for the APB interface of TTC1 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC2'01" = Select the PLL ref clock for the APB interface of TTC2' - 0" = Select the R5 clock for the APB interface of TTC2 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC3'01" = Select the PLL ref clock for the APB interface of TTC3' - 0" = Select the R5 clock for the APB interface of TTC3 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL 0 - - TTC APB clock select - (OFFSET, MASK, VALUE) (0XFF180380, 0x000000FFU ,0x00000000U) - RegMask = (IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_IOU_TTC_APB_CLK_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : WDT_CLK_SEL @ 0XFD610100

- - System watchdog timer clock source selection: 0: Internal APB clock 1: External (PL clock via EMIO or Pinout clock via MIO) - PSU_FPD_SLCR_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFD610100, 0x00000001U ,0x00000000U) - RegMask = (FPD_SLCR_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (FPD_SLCR_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : WDT_CLK_SEL @ 0XFF180300

- - System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock from PL via EMIO, or from pinout - ia MIO - PSU_IOU_SLCR_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFF180300, 0x00000001U ,0x00000000U) - RegMask = (IOU_SLCR_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CSUPMU_WDT_CLK_SEL @ 0XFF410050

- - System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock pss_ref_clk - PSU_LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFF410050, 0x00000001U ,0x00000000U) - RegMask = (LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - - return 1; + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_CAN1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_CAN1_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0088, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_CAN1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : CPU_R5_CTRL @ 0XFF5E0090 + + * Turing this off will shut down the OCM, some parts of the APM, and preve + * nt transactions going from the FPD to the LPD and could lead to system h + * ang + * PSU_CRL_APB_CPU_R5_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_CPU_R5_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_CPU_R5_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0090, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_CPU_R5_CTRL_OFFSET, 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : IOU_SWITCH_CTRL @ 0XFF5E009C + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_IOU_SWITCH_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_IOU_SWITCH_CTRL_DIVISOR0 0x6 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_IOU_SWITCH_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E009C, 0x01003F07U ,0x01000602U) + */ + PSU_Mask_Write(CRL_APB_IOU_SWITCH_CTRL_OFFSET, + 0x01003F07U, 0x01000602U); +/*##################################################################### */ + + /* + * Register : PCAP_CTRL @ 0XFF5E00A4 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_PCAP_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x8 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000800U) + */ + PSU_Mask_Write(CRL_APB_PCAP_CTRL_OFFSET, 0x01003F07U, 0x01000800U); +/*##################################################################### */ + + /* + * Register : LPD_SWITCH_CTRL @ 0XFF5E00A8 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_LPD_SWITCH_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_LPD_SWITCH_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_LPD_SWITCH_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00A8, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_LPD_SWITCH_CTRL_OFFSET, + 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : LPD_LSBUS_CTRL @ 0XFF5E00AC + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_LPD_LSBUS_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_LPD_LSBUS_CTRL_DIVISOR0 0xf + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_LPD_LSBUS_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00AC, 0x01003F07U ,0x01000F02U) + */ + PSU_Mask_Write(CRL_APB_LPD_LSBUS_CTRL_OFFSET, + 0x01003F07U, 0x01000F02U); +/*##################################################################### */ + + /* + * Register : DBG_LPD_CTRL @ 0XFF5E00B0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_DBG_LPD_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_DBG_LPD_CTRL_DIVISOR0 0x6 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_DBG_LPD_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00B0, 0x01003F07U ,0x01000602U) + */ + PSU_Mask_Write(CRL_APB_DBG_LPD_CTRL_OFFSET, + 0x01003F07U, 0x01000602U); +/*##################################################################### */ + + /* + * Register : ADMA_REF_CTRL @ 0XFF5E00B8 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_ADMA_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_ADMA_REF_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_ADMA_REF_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00B8, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_ADMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : PL0_REF_CTRL @ 0XFF5E00C0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_PL0_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_PL0_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_PL0_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_PL0_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00C0, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_PL0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : AMS_REF_CTRL @ 0XFF5E0108 + + * 6 bit divider + * PSU_CRL_APB_AMS_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1e + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_AMS_REF_CTRL_SRCSEL 0x2 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_AMS_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011E02U) + */ + PSU_Mask_Write(CRL_APB_AMS_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01011E02U); +/*##################################################################### */ + + /* + * Register : DLL_REF_CTRL @ 0XFF5E0104 + + * 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an + * issue, but designers must be aware.) + * PSU_CRL_APB_DLL_REF_CTRL_SRCSEL 0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0104, 0x00000007U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_DLL_REF_CTRL_OFFSET, + 0x00000007U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : TIMESTAMP_REF_CTRL @ 0XFF5E0128 + + * 6 bit divider + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0 0xf + + * 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may + * only be toggled after 4 cycles of the old clock and 4 cycles of the new + * clock. This is not usually an issue, but designers must be aware.) + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0128, 0x01003F07U ,0x01000F00U) + */ + PSU_Mask_Write(CRL_APB_TIMESTAMP_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000F00U); +/*##################################################################### */ + + /* + * Register : SATA_REF_CTRL @ 0XFD1A00A0 + + * 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_SATA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_SATA_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRF_APB_SATA_REF_CTRL_DIVISOR0 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00A0, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_SATA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : PCIE_REF_CTRL @ 0XFD1A00B4 + + * 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only + * be toggled after 4 cycles of the old clock and 4 cycles of the new cloc + * k. This is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_PCIE_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_PCIE_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRF_APB_PCIE_REF_CTRL_DIVISOR0 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00B4, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_PCIE_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DP_VIDEO_REF_CTRL @ 0XFD1A0070 + + * 6 bit divider + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x5 + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010500U) + */ + PSU_Mask_Write(CRF_APB_DP_VIDEO_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010500U); +/*##################################################################### */ + + /* + * Register : DP_AUDIO_REF_CTRL @ 0XFD1A0074 + + * 6 bit divider + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0xf + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01010F03U) + */ + PSU_Mask_Write(CRF_APB_DP_AUDIO_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F03U); +/*##################################################################### */ + + /* + * Register : DP_STC_REF_CTRL @ 0XFD1A007C + + * 6 bit divider + * PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0xe + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be togg + * led after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DP_STC_REF_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_STC_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01010E03U) + */ + PSU_Mask_Write(CRF_APB_DP_STC_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010E03U); +/*##################################################################### */ + + /* + * Register : ACPU_CTRL @ 0XFD1A0060 + + * 6 bit divider + * PSU_CRF_APB_ACPU_CTRL_DIVISOR0 0x1 + + * 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_ACPU_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock. For the half spee + * d APU Clock + * PSU_CRF_APB_ACPU_CTRL_CLKACT_HALF 0x1 + + * Clock active signal. Switch to 0 to disable the clock. For the full spee + * d ACPUX Clock. This will shut off the high speed clock to the entire APU + * PSU_CRF_APB_ACPU_CTRL_CLKACT_FULL 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0060, 0x03003F07U ,0x03000100U) + */ + PSU_Mask_Write(CRF_APB_ACPU_CTRL_OFFSET, 0x03003F07U, 0x03000100U); +/*##################################################################### */ + + /* + * Register : DBG_FPD_CTRL @ 0XFD1A0068 + + * 6 bit divider + * PSU_CRF_APB_DBG_FPD_CTRL_DIVISOR0 0x2 + + * 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DBG_FPD_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DBG_FPD_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0068, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_DBG_FPD_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DDR_CTRL @ 0XFD1A0080 + + * 6 bit divider + * PSU_CRF_APB_DDR_CTRL_DIVISOR0 0x2 + + * 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an i + * ssue, but designers must be aware.) + * PSU_CRF_APB_DDR_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0080, 0x00003F07U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DDR_CTRL_OFFSET, 0x00003F07U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : GPU_REF_CTRL @ 0XFD1A0084 + + * 6 bit divider + * PSU_CRF_APB_GPU_REF_CTRL_DIVISOR0 0x1 + + * 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_GPU_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock, which will stop c + * lock for GPU (and both Pixel Processors). + * PSU_CRF_APB_GPU_REF_CTRL_CLKACT 0x1 + + * Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor + * PSU_CRF_APB_GPU_REF_CTRL_PP0_CLKACT 0x1 + + * Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor + * PSU_CRF_APB_GPU_REF_CTRL_PP1_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0084, 0x07003F07U ,0x07000100U) + */ + PSU_Mask_Write(CRF_APB_GPU_REF_CTRL_OFFSET, + 0x07003F07U, 0x07000100U); +/*##################################################################### */ + + /* + * Register : GDMA_REF_CTRL @ 0XFD1A00B8 + + * 6 bit divider + * PSU_CRF_APB_GDMA_REF_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_GDMA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_GDMA_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00B8, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_GDMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DPDMA_REF_CTRL @ 0XFD1A00BC + + * 6 bit divider + * PSU_CRF_APB_DPDMA_REF_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_DPDMA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DPDMA_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00BC, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_DPDMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : TOPSW_MAIN_CTRL @ 0XFD1A00C0 + + * 6 bit divider + * PSU_CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_TOPSW_MAIN_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000203U) + */ + PSU_Mask_Write(CRF_APB_TOPSW_MAIN_CTRL_OFFSET, + 0x01003F07U, 0x01000203U); +/*##################################################################### */ + + /* + * Register : TOPSW_LSBUS_CTRL @ 0XFD1A00C4 + + * 6 bit divider + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0 0x5 + + * 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL 0x2 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00C4, 0x01003F07U ,0x01000502U) + */ + PSU_Mask_Write(CRF_APB_TOPSW_LSBUS_CTRL_OFFSET, + 0x01003F07U, 0x01000502U); +/*##################################################################### */ + + /* + * Register : DBG_TSTMP_CTRL @ 0XFD1A00F8 + + * 6 bit divider + * PSU_CRF_APB_DBG_TSTMP_CTRL_DIVISOR0 0x2 + + * 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DBG_TSTMP_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00F8, 0x00003F07U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DBG_TSTMP_CTRL_OFFSET, + 0x00003F07U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : IOU_TTC_APB_CLK @ 0XFF180380 + + * 00" = Select the APB switch clock for the APB interface of TTC0'01" = Se + * lect the PLL ref clock for the APB interface of TTC0'10" = Select the R5 + * clock for the APB interface of TTC0 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC1'01" = Se + * lect the PLL ref clock for the APB interface of TTC1'10" = Select the R5 + * clock for the APB interface of TTC1 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC2'01" = Se + * lect the PLL ref clock for the APB interface of TTC2'10" = Select the R5 + * clock for the APB interface of TTC2 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC3'01" = Se + * lect the PLL ref clock for the APB interface of TTC3'10" = Select the R5 + * clock for the APB interface of TTC3 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL 0 + + * TTC APB clock select + * (OFFSET, MASK, VALUE) (0XFF180380, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_IOU_TTC_APB_CLK_OFFSET, + 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : WDT_CLK_SEL @ 0XFD610100 + + * System watchdog timer clock source selection: 0: Internal APB clock 1: E + * xternal (PL clock via EMIO or Pinout clock via MIO) + * PSU_FPD_SLCR_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFD610100, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(FPD_SLCR_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : WDT_CLK_SEL @ 0XFF180300 + + * System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock from PL via EMIO, or from pinout via MIO + * PSU_IOU_SLCR_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFF180300, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CSUPMU_WDT_CLK_SEL @ 0XFF410050 + + * System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock pss_ref_clk + * PSU_LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFF410050, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_ddr_init_data() { - // : DDR INITIALIZATION - // : DDR CONTROLLER RESET - /*Register : RST_DDR_SS @ 0XFD1A0108

- - DDR block level reset inside of the DDR Sub System - PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X1 - - DDR sub system block level reset - (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_RST_DDR_SS_DDR_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_DDR_SS_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MSTR @ 0XFD070000

- - Indicates the configuration of the device used in the system. - 00 - x4 device - 01 - x8 device - 10 - x16 device - 11 - x32 - evice - PSU_DDRC_MSTR_DEVICE_CONFIG 0x1 - - Choose which registers are used. - 0 - Original registers - 1 - Shadow registers - PSU_DDRC_MSTR_FREQUENCY_MODE 0x0 - - Only present for multi-rank configurations. Each bit represents one rank. For two-rank configurations, only bits[25:24] are p - esent. - 1 - populated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks following combinations are legal: - 01 - - ne rank - 11 - Two ranks - Others - Reserved. For 4 ranks following combinations are legal: - 0001 - One rank - 0011 - Two ra - ks - 1111 - Four ranks - PSU_DDRC_MSTR_ACTIVE_RANKS 0x1 - - SDRAM burst length used: - 0001 - Burst length of 2 (only supported for mDDR) - 0010 - Burst length of 4 - 0100 - Burst lengt - of 8 - 1000 - Burst length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other values are reserved. This controls - he burst size used to access the SDRAM. This must match the burst length mode register setting in the SDRAM. (For BC4/8 on-th - -fly mode of DDR3 and DDR4, set this field to 0x0100) Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGT - is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 - PSU_DDRC_MSTR_BURST_RDWR 0x4 - - Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low frequency operation. Set to 0 to put uMCTL2 and DRAM - n DLL-on mode for normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d - l_off_mode is not supported, and this bit must be set to '0'. - PSU_DDRC_MSTR_DLL_OFF_MODE 0x0 - - Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full DQ bus width to SDRAM - 01 - Half DQ bus width to SD - AM - 10 - Quarter DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is only supported when the SDRAM bus w - dth is a multiple of 16, and quarter bus width mode is only supported when the SDRAM bus width is a multiple of 32 and the co - figuration parameter MEMC_QBUS_SUPPORT is set. Bus width refers to DQ bus width (excluding any ECC width). - PSU_DDRC_MSTR_DATA_BUS_WIDTH 0x0 - - 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the DRAM in normal mode (1N). This register can be changed - only when the Controller is in self-refresh mode. This signal must be set the same value as MR3 bit A3. Note: Geardown mode - s not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set - PSU_DDRC_MSTR_GEARDOWN_MODE 0x0 - - If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timing, all command signals (except chip select) are held - or 2 clocks on the SDRAM bus. Chip select is asserted on the second cycle of the command Note: 2T timing is not supported in - PDDR2/LPDDR3/LPDDR4 mode Note: 2T timing is not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set Note: 2T ti - ing is not supported in DDR4 geardown mode. - PSU_DDRC_MSTR_EN_2T_TIMING_MODE 0x0 - - When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exercised only in HIF configurations (UMCTL2_INCL_ARB not s - t) and if in full bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exercised only if Partial Writes enable - (UMCTL2_PARTIAL_WR=1) and if CRC is disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabled (CRCPARCTL1.cr - _parity_retry_enable = 1), burst chop is not supported, and this bit must be set to '0' - PSU_DDRC_MSTR_BURSTCHOP 0x0 - - Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 device in use Present only in designs configured to su - port LPDDR4. - PSU_DDRC_MSTR_LPDDR4 0x0 - - Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device in use Present only in designs configured to support - DR4. - PSU_DDRC_MSTR_DDR4 0x1 - - Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 device in use Present only in designs configured to su - port LPDDR3. - PSU_DDRC_MSTR_LPDDR3 0x0 - - Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 device in use Present only in designs configured to su - port LPDDR2. - PSU_DDRC_MSTR_LPDDR2 0x0 - - Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM device in use Only present in designs that support DDR3 - - PSU_DDRC_MSTR_DDR3 0x0 - - Master Register - (OFFSET, MASK, VALUE) (0XFD070000, 0xE30FBE3DU ,0x41040010U) - RegMask = (DDRC_MSTR_DEVICE_CONFIG_MASK | DDRC_MSTR_FREQUENCY_MODE_MASK | DDRC_MSTR_ACTIVE_RANKS_MASK | DDRC_MSTR_BURST_RDWR_MASK | DDRC_MSTR_DLL_OFF_MODE_MASK | DDRC_MSTR_DATA_BUS_WIDTH_MASK | DDRC_MSTR_GEARDOWN_MODE_MASK | DDRC_MSTR_EN_2T_TIMING_MODE_MASK | DDRC_MSTR_BURSTCHOP_MASK | DDRC_MSTR_LPDDR4_MASK | DDRC_MSTR_DDR4_MASK | DDRC_MSTR_LPDDR3_MASK | DDRC_MSTR_LPDDR2_MASK | DDRC_MSTR_DDR3_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_MSTR_DEVICE_CONFIG_SHIFT - | 0x00000000U << DDRC_MSTR_FREQUENCY_MODE_SHIFT - | 0x00000001U << DDRC_MSTR_ACTIVE_RANKS_SHIFT - | 0x00000004U << DDRC_MSTR_BURST_RDWR_SHIFT - | 0x00000000U << DDRC_MSTR_DLL_OFF_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_DATA_BUS_WIDTH_SHIFT - | 0x00000000U << DDRC_MSTR_GEARDOWN_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_BURSTCHOP_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR4_SHIFT - | 0x00000001U << DDRC_MSTR_DDR4_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR3_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR2_SHIFT - | 0x00000000U << DDRC_MSTR_DDR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_MSTR_OFFSET ,0xE30FBE3DU ,0x41040010U); - /*############################################################################################################################ */ - - /*Register : MRCTRL0 @ 0XFD070010

- - Setting this register bit to 1 triggers a mode register read or write operation. When the MR operation is complete, the uMCTL - automatically clears this bit. The other register fields of this register must be written in a separate APB transaction, bef - re setting this mr_wr bit. It is recommended NOT to set this signal if in Init, Deep power-down or MPSM operating modes. - PSU_DDRC_MRCTRL0_MR_WR 0x0 - - Address of the mode register that is to be written to. - 0000 - MR0 - 0001 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 010 - - MR5 - 0110 - MR6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data for mode register addressing in LPD - R2/LPDDR3/LPDDR4) This signal is also used for writing to control words of RDIMMs. In that case, it corresponds to the bank a - dress bits sent to the RDIMM In case of DDR4, the bit[3:2] corresponds to the bank group bits. Therefore, the bit[3] as well - s the bit[2:0] must be set to an appropriate value which is considered both the Address Mirroring of UDIMMs/RDIMMs and the Ou - put Inversion of RDIMMs. - PSU_DDRC_MRCTRL0_MR_ADDR 0x0 - - Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desired to access all ranks, so all bits should be set to 1 - However, for multi-rank UDIMMs/RDIMMs which implement address mirroring, it may be necessary to access ranks individually. E - amples (assume uMCTL2 is configured for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x5 - select ranks - and 2 - 0xA - select ranks 1 and 3 - 0xF - select ranks 0, 1, 2 and 3 - PSU_DDRC_MRCTRL0_MR_RANK 0x3 - - Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 before automatic SDRAM initialization routine or not. - or DDR4, this bit can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM initialization. For LPDDR4, this bit ca - be used to program additional mode registers before automatic SDRAM initialization if necessary. Note: This must be cleared - o 0 after completing Software operation. Otherwise, SDRAM initialization routine will not re-start. - 0 - Software interventi - n is not allowed - 1 - Software intervention is allowed - PSU_DDRC_MRCTRL0_SW_INIT_INT 0x0 - - Indicates whether the mode register operation is MRS in PDA mode or not - 0 - MRS - 1 - MRS in Per DRAM Addressability mode - PSU_DDRC_MRCTRL0_PDA_EN 0x0 - - Indicates whether the mode register operation is MRS or WR/RD for MPR (only supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR - PSU_DDRC_MRCTRL0_MPR_EN 0x0 - - Indicates whether the mode register operation is read or write. Only used for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Re - d - PSU_DDRC_MRCTRL0_MR_TYPE 0x0 - - Mode Register Read/Write Control Register 0. Note: Do not enable more than one of the following fields simultaneously: - sw_i - it_int - pda_en - mpr_en - (OFFSET, MASK, VALUE) (0XFD070010, 0x8000F03FU ,0x00000030U) - RegMask = (DDRC_MRCTRL0_MR_WR_MASK | DDRC_MRCTRL0_MR_ADDR_MASK | DDRC_MRCTRL0_MR_RANK_MASK | DDRC_MRCTRL0_SW_INIT_INT_MASK | DDRC_MRCTRL0_PDA_EN_MASK | DDRC_MRCTRL0_MPR_EN_MASK | DDRC_MRCTRL0_MR_TYPE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_MRCTRL0_MR_WR_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MR_ADDR_SHIFT - | 0x00000003U << DDRC_MRCTRL0_MR_RANK_SHIFT - | 0x00000000U << DDRC_MRCTRL0_SW_INIT_INT_SHIFT - | 0x00000000U << DDRC_MRCTRL0_PDA_EN_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MPR_EN_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MR_TYPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_MRCTRL0_OFFSET ,0x8000F03FU ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : DERATEEN @ 0XFD070020

- - Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating uses +2. - 2 - Derating uses +3. - 3 - Derating uses +4 - Present only in designs configured to support LPDDR4. The required number of cycles for derating can be determined by dividi - g 3.75ns by the core_ddrc_core_clk period, and rounding up the next integer. - PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x3 - - Derate byte Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 Indicates which byte of the MRR data is used f - r derating. The maximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. - PSU_DDRC_DERATEEN_DERATE_BYTE 0x0 - - Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present only in designs configured to support LPDDR2/LPDDR3/LPDD - 4 Set to 0 for all LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ddrc_core_clk period. Can be 0 or 1 - for LPDDR3/LPDDR4, depending if +1.875 ns is less than a core_ddrc_core_clk period or not. - PSU_DDRC_DERATEEN_DERATE_VALUE 0x0 - - Enables derating - 0 - Timing parameter derating is disabled - 1 - Timing parameter derating is enabled using MR4 read value. - Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set to '0' for non-LPDDR2/LPDDR3/LPDDR4 - mode. - PSU_DDRC_DERATEEN_DERATE_ENABLE 0x0 - - Temperature Derate Enable Register - (OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000300U) - RegMask = (DDRC_DERATEEN_RC_DERATE_VALUE_MASK | DDRC_DERATEEN_DERATE_BYTE_MASK | DDRC_DERATEEN_DERATE_VALUE_MASK | DDRC_DERATEEN_DERATE_ENABLE_MASK | 0 ); - - RegVal = ((0x00000003U << DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_BYTE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_VALUE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DERATEEN_OFFSET ,0x000003F3U ,0x00000300U); - /*############################################################################################################################ */ - - /*Register : DERATEINT @ 0XFD070024

- - Interval between two MR4 reads, used to derate the timing parameters. Present only in designs configured to support LPDDR2/LP - DR3/LPDDR4. This register must not be set to zero - PSU_DDRC_DERATEINT_MR4_READ_INTERVAL 0x800000 - - Temperature Derate Interval Register - (OFFSET, MASK, VALUE) (0XFD070024, 0xFFFFFFFFU ,0x00800000U) - RegMask = (DDRC_DERATEINT_MR4_READ_INTERVAL_MASK | 0 ); - - RegVal = ((0x00800000U << DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DERATEINT_OFFSET ,0xFFFFFFFFU ,0x00800000U); - /*############################################################################################################################ */ - - /*Register : PWRCTL @ 0XFD070030

- - Self refresh state is an intermediate state to enter to Self refresh power down state or exit Self refresh power down state f - r LPDDR4. This register controls transition from the Self refresh state. - 1 - Prohibit transition from Self refresh state - - - Allow transition from Self refresh state - PSU_DDRC_PWRCTL_STAY_IN_SELFREF 0x0 - - A value of 1 to this register causes system to move to Self Refresh state immediately, as long as it is not in INIT or DPD/MP - M operating_mode. This is referred to as Software Entry/Exit to Self Refresh. - 1 - Software Entry to Self Refresh - 0 - Soft - are Exit from Self Refresh - PSU_DDRC_PWRCTL_SELFREF_SW 0x0 - - When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode when the transaction store is empty. This register m - st be reset to '0' to bring uMCTL2 out of maximum power saving mode. Present only in designs configured to support DDR4. For - on-DDR4, this register should not be set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if the PHY parameter - DWC_AC_CS_USE is disabled, as the MPSM exit sequence requires the chip-select signal to toggle. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRCTL_MPSM_EN 0x0 - - Enable the assertion of dfi_dram_clk_disable whenever a clock is not required by the SDRAM. If set to 0, dfi_dram_clk_disable - is never asserted. Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only be asserted in Self Refresh. In DD - 4, can be asserted in following: - in Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, can be asserted in - ollowing: - in Self Refresh - in Power Down - in Deep Power Down - during Normal operation (Clock Stop) In LPDDR4, can be ass - rted in following: - in Self Refresh Power Down - in Power Down - during Normal operation (Clock Stop) - PSU_DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE 0x0 - - When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the transaction store is empty. This register must be re - et to '0' to bring uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM initialization on deep power-down - xit. Present only in designs configured to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPDDR3, this registe - should not be set to 1. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRCTL_DEEPPOWERDOWN_EN 0x0 - - If true then the uMCTL2 goes into power-down after a programmable number of cycles 'maximum idle clocks before power down' (P - RTMG.powerdown_to_x32). This register bit may be re-programmed during the course of normal operation. - PSU_DDRC_PWRCTL_POWERDOWN_EN 0x0 - - If true then the uMCTL2 puts the SDRAM into Self Refresh after a programmable number of cycles 'maximum idle clocks before Se - f Refresh (PWRTMG.selfref_to_x32)'. This register bit may be re-programmed during the course of normal operation. - PSU_DDRC_PWRCTL_SELFREF_EN 0x0 - - Low Power Control Register - (OFFSET, MASK, VALUE) (0XFD070030, 0x0000007FU ,0x00000000U) - RegMask = (DDRC_PWRCTL_STAY_IN_SELFREF_MASK | DDRC_PWRCTL_SELFREF_SW_MASK | DDRC_PWRCTL_MPSM_EN_MASK | DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK | DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK | DDRC_PWRCTL_POWERDOWN_EN_MASK | DDRC_PWRCTL_SELFREF_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT - | 0x00000000U << DDRC_PWRCTL_SELFREF_SW_SHIFT - | 0x00000000U << DDRC_PWRCTL_MPSM_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT - | 0x00000000U << DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_POWERDOWN_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_SELFREF_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PWRCTL_OFFSET ,0x0000007FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PWRTMG @ 0XFD070034

- - After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into Self Refresh. This must be enabled in - he PWRCTL.selfref_en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_SELFREF_TO_X32 0x40 - - Minimum deep power-down time. For mDDR, value from the JEDEC specification is 0 as mDDR exits from deep power-down mode immed - ately after PWRCTL.deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDEC specification is 500us. Unit: Mul - iples of 4096 clocks. Present only in designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_T_DPD_X4096 0x84 - - After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into power-down. This must be enabled in th - PWRCTL.powerdown_en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_POWERDOWN_TO_X32 0x10 - - Low Power Timing Register - (OFFSET, MASK, VALUE) (0XFD070034, 0x00FFFF1FU ,0x00408410U) - RegMask = (DDRC_PWRTMG_SELFREF_TO_X32_MASK | DDRC_PWRTMG_T_DPD_X4096_MASK | DDRC_PWRTMG_POWERDOWN_TO_X32_MASK | 0 ); - - RegVal = ((0x00000040U << DDRC_PWRTMG_SELFREF_TO_X32_SHIFT - | 0x00000084U << DDRC_PWRTMG_T_DPD_X4096_SHIFT - | 0x00000010U << DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PWRTMG_OFFSET ,0x00FFFF1FU ,0x00408410U); - /*############################################################################################################################ */ - - /*Register : RFSHCTL0 @ 0XFD070050

- - Threshold value in number of clock cycles before the critical refresh or page timer expires. A critical refresh is to be issu - d before this threshold is reached. It is recommended that this not be changed from the default value, currently shown as 0x2 - It must always be less than internally used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally used t_rfc_nom_x32 - may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating is enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_ - om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clocks. - PSU_DDRC_RFSHCTL0_REFRESH_MARGIN 0x2 - - If the refresh timer (tRFCnom, also known as tREFI) has expired at least once, but it has not expired (RFSHCTL0.refresh_burst - 1) times yet, then a speculative refresh may be performed. A speculative refresh is a refresh performed at a time when refres - would be useful, but before it is absolutely required. When the SDRAM bus is idle for a period of time determined by this RF - HCTL0.refresh_to_x32 and the refresh timer has expired at least once since the last refresh, then a speculative refresh is pe - formed. Speculative refreshes continues successively until there are no refreshes pending or until new reads or writes are is - ued to the uMCTL2. FOR PERFORMANCE ONLY. - PSU_DDRC_RFSHCTL0_REFRESH_TO_X32 0x10 - - The programmed value + 1 is the number of refresh timeouts that is allowed to accumulate before traffic is blocked and the re - reshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of re - reshes. Therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for - RFSHCTL.refresh_burst slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshe - . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh For information on burst refresh feature refer to se - tion 3.9 of DDR2 JEDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always per-rank and not per-bank. The rank r - fresh can be accumulated over 8*tREFI cycles using the burst refresh feature. In DDR4 mode, according to Fine Granularity fea - ure, 8 refreshes can be postponed in 1X mode, 16 refreshes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upd - tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ensure that tRFCmax is not violated due to a PHY-initiat - d update occurring shortly before a refresh burst was due. In this situation, the refresh burst will be delayed until the PHY - initiated update is complete. - PSU_DDRC_RFSHCTL0_REFRESH_BURST 0x0 - - - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows traffic to flow to other banks. Per bank refresh is n - t supported by all LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Present only in designs configured to - support LPDDR2/LPDDR3/LPDDR4 - PSU_DDRC_RFSHCTL0_PER_BANK_REFRESH 0x0 - - Refresh Control Register 0 - (OFFSET, MASK, VALUE) (0XFD070050, 0x00F1F1F4U ,0x00210000U) - RegMask = (DDRC_RFSHCTL0_REFRESH_MARGIN_MASK | DDRC_RFSHCTL0_REFRESH_TO_X32_MASK | DDRC_RFSHCTL0_REFRESH_BURST_MASK | DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT - | 0x00000010U << DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT - | 0x00000000U << DDRC_RFSHCTL0_REFRESH_BURST_SHIFT - | 0x00000000U << DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHCTL0_OFFSET ,0x00F1F1F4U ,0x00210000U); - /*############################################################################################################################ */ - - /*Register : RFSHCTL3 @ 0XFD070060

- - Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fixed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x ( - ot supported) - 110 - Enable on the fly 4x (not supported) - Everything else - reserved Note: The on-the-fly modes is not sup - orted in this version of the uMCTL2. Note: This must be set up while the Controller is in reset or while the Controller is in - self-refresh mode. Changing this during normal operation is not allowed. Making this a dynamic register will be supported in - uture version of the uMCTL2. - PSU_DDRC_RFSHCTL3_REFRESH_MODE 0x0 - - Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that the refresh register(s) have been updated. The value - s automatically updated when exiting reset, so it does not need to be toggled initially. - PSU_DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL 0x0 - - When '1', disable auto-refresh generated by the uMCTL2. When auto-refresh is disabled, the SoC core must generate refreshes u - ing the registers reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh and reg_ddrc_rank3_refresh. When dis - auto_refresh transitions from 0 to 1, any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 CRC/parity retry - is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), disable auto-refresh is not supported, and this bit must be set to '0'. - his register field is changeable on the fly. - PSU_DDRC_RFSHCTL3_DIS_AUTO_REFRESH 0x1 - - Refresh Control Register 3 - (OFFSET, MASK, VALUE) (0XFD070060, 0x00000073U ,0x00000001U) - RegMask = (DDRC_RFSHCTL3_REFRESH_MODE_MASK | DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK | DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_RFSHCTL3_REFRESH_MODE_SHIFT - | 0x00000000U << DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT - | 0x00000001U << DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHCTL3_OFFSET ,0x00000073U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : RFSHTMG @ 0XFD070064

- - tREFI: Average time interval between refreshes per rank (Specification: 7.8us for DDR2, DDR3 and DDR4. See JEDEC specificatio - for mDDR, LPDDR2, LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refreshes (RFSHCTL0.per_bank_refresh = 0 - , this register should be set to tREFIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this register should - e set to tREFIpb For configurations with MEMC_FREQ_RATIO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI va - ue is different depending on the refresh mode. The user should program the appropriate value from the spec based on the value - programmed in the refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be greater than RFSHTMG.t_rfc_min, and RFS - TMG.t_rfc_nom_x32 must be greater than 0x1. Unit: Multiples of 32 clocks. - PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x82 - - Used only when LPDDR3 memory type is connected. Should only be changed when uMCTL2 is in reset. Specifies whether to use the - REFBW parameter (required by some LPDDR3 devices which comply with earlier versions of the LPDDR3 JEDEC specification) or not - - 0 - tREFBW parameter not used - 1 - tREFBW parameter used - PSU_DDRC_RFSHTMG_LPDDR3_TREFBW_EN 0x1 - - tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_FREQ_RATIO=1 configurations, t_rfc_min should be set t - RoundUp(tRFCmin/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to RoundUp(RoundUp(tRFCmin/tCK)/2). In L - DDR2/LPDDR3/LPDDR4 mode: - if using all-bank refreshes, the tRFCmin value in the above equations is equal to tRFCab - if usin - per-bank refreshes, the tRFCmin value in the above equations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above - equations is different depending on the refresh mode (fixed 1X,2X,4X) and the device density. The user should program the app - opriate value from the spec based on the 'refresh_mode' and the device density that is used. Unit: Clocks. - PSU_DDRC_RFSHTMG_T_RFC_MIN 0x8b - - Refresh Timing Register - (OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0082808BU) - RegMask = (DDRC_RFSHTMG_T_RFC_NOM_X32_MASK | DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK | DDRC_RFSHTMG_T_RFC_MIN_MASK | 0 ); - - RegVal = ((0x00000082U << DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT - | 0x00000001U << DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT - | 0x0000008BU << DDRC_RFSHTMG_T_RFC_MIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHTMG_OFFSET ,0x0FFF83FFU ,0x0082808BU); - /*############################################################################################################################ */ - - /*Register : ECCCFG0 @ 0XFD070070

- - Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_USE_RMW is defined - PSU_DDRC_ECCCFG0_DIS_SCRUB 0x1 - - ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED over 1 beat - all other settings are reserved for futur - use - PSU_DDRC_ECCCFG0_ECC_MODE 0x0 - - ECC Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070070, 0x00000017U ,0x00000010U) - RegMask = (DDRC_ECCCFG0_DIS_SCRUB_MASK | DDRC_ECCCFG0_ECC_MODE_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_ECCCFG0_DIS_SCRUB_SHIFT - | 0x00000000U << DDRC_ECCCFG0_ECC_MODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ECCCFG0_OFFSET ,0x00000017U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : ECCCFG1 @ 0XFD070074

- - Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) data poisoning, if 1 -> 1-bit (correctable) data poison - ng, if ECCCFG1.data_poison_en=1 - PSU_DDRC_ECCCFG1_DATA_POISON_BIT 0x0 - - Enable ECC data poisoning - introduces ECC errors on writes to address specified by the ECCPOISONADDR0/1 registers - PSU_DDRC_ECCCFG1_DATA_POISON_EN 0x0 - - ECC Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070074, 0x00000003U ,0x00000000U) - RegMask = (DDRC_ECCCFG1_DATA_POISON_BIT_MASK | DDRC_ECCCFG1_DATA_POISON_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT - | 0x00000000U << DDRC_ECCCFG1_DATA_POISON_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ECCCFG1_OFFSET ,0x00000003U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CRCPARCTL1 @ 0XFD0700C4

- - The maximum number of DFI PHY clock cycles allowed from the assertion of the dfi_rddata_en signal to the assertion of each of - the corresponding bits of the dfi_rddata_valid signal. This corresponds to the DFI timing parameter tphy_rdlat. Refer to PHY - pecification for correct value. This value it only used for detecting read data timeout when DDR4 retry is enabled by CRCPARC - L1.crc_parity_retry_enable=1. Maximum supported value: - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ - dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mo - e ANDAND DFITMG0.dfi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_rdlat < 'd114 Unit: DFI Clocks - PSU_DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT 0x10 - - After a Parity or CRC error is flagged on dfi_alert_n signal, the software has an option to read the mode registers in the DR - M before the hardware begins the retry process - 1: Wait for software to read/write the mode registers before hardware begins - the retry. After software is done with its operations, it will clear the alert interrupt register bit - 0: Hardware can begin - the retry right away after the dfi_alert_n pulse goes away. The value on this register is valid only when retry is enabled (P - RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if the software doesn't clear the interrupt register afte - handling the parity/CRC error, then the hardware will not begin the retry process and the system will hang. In the case of P - rity/CRC error, there are two possibilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persistent parity' mode re - ister bit is NOT set: the commands sent during retry and normal operation are executed without parity checking. The value in - he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent parity' mode register bit is SET: Parity checking is - one for commands sent during retry and normal operation. If multiple errors occur before MR5[4] is cleared, the error log in - PR Page 1 should be treated as 'Don't care'. - PSU_DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW 0x1 - - - 1: Enable command retry mechanism in case of C/A Parity or CRC error - 0: Disable command retry mechanism when C/A Parity o - CRC features are enabled. Note that retry functionality is not supported if burst chop is enabled (MSTR.burstchop = 1) and/o - disable auto-refresh is enabled (RFSHCTL3.dis_auto_refresh = 1) - PSU_DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE 0x0 - - CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC not includes DM signal Present only in designs configur - d to support DDR4. - PSU_DDRC_CRCPARCTL1_CRC_INC_DM 0x0 - - CRC enable Register - 1: Enable generation of CRC - 0: Disable generation of CRC The setting of this register should match th - CRC mode register setting in the DRAM. - PSU_DDRC_CRCPARCTL1_CRC_ENABLE 0x0 - - C/A Parity enable register - 1: Enable generation of C/A parity and detection of C/A parity error - 0: Disable generation of - /A parity and disable detection of C/A parity error If RCD's parity error detection or SDRAM's parity detection is enabled, t - is register should be 1. - PSU_DDRC_CRCPARCTL1_PARITY_ENABLE 0x0 - - CRC Parity Control Register1 - (OFFSET, MASK, VALUE) (0XFD0700C4, 0x3F000391U ,0x10000200U) - RegMask = (DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK | DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK | DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK | DDRC_CRCPARCTL1_CRC_INC_DM_MASK | DDRC_CRCPARCTL1_CRC_ENABLE_MASK | DDRC_CRCPARCTL1_PARITY_ENABLE_MASK | 0 ); - - RegVal = ((0x00000010U << DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT - | 0x00000001U << DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_CRCPARCTL1_OFFSET ,0x3F000391U ,0x10000200U); - /*############################################################################################################################ */ - - /*Register : CRCPARCTL2 @ 0XFD0700C8

- - Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a parity error occurs. Recommended values - - tPAR_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT_PW.MAX/2 and round up to next inte - er value. Values of 0, 1 and 2 are illegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. - PSU_DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX 0x40 - - Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a CRC error occurs. Recommended values: - - tCRC_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW.MAX/2 and round up to next integer - value. Values of 0, 1 and 2 are illegal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. - PSU_DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX 0x5 - - Indicates the maximum duration in number of DRAM clock cycles for which a command should be held in the Command Retry FIFO be - ore it is popped out. Every location in the Command Retry FIFO has an associated down counting timer that will use this regis - er as the start value. The down counting starts when a command is loaded into the FIFO. The timer counts down every 4 DRAM cy - les. When the counter reaches zero, the entry is popped from the FIFO. All the counters are frozen, if a C/A Parity or CRC er - or occurs before the counter reaches zero. The counter is reset to 0, after all the commands in the FIFO are retried. Recomme - ded(minimum) values: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + tPAR_ALERT_ON - max + tPAR_UNKNOWN + PHY Alert Latency(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enabled/ Only CRC is en - bled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) - + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be in terms of DRAM Clock and round up Note 2: Board de - ay(Command/Alert_n) should be considered. Note 3: Use the worst case(longer) value for PHY Latencies/Board delay Note 4: The - ecommended values are minimum value to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max value can be set - to this register is defined below: - MEMC_BURST_LENGTH == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH- - Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_D - PTH-4 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CM - _FIFO_DEPTH-8 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 Full bus Mode (C - C=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mo - e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarte - bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEP - H-6 Values of 0, 1 and 2 are illegal. - PSU_DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4 0x1f - - CRC Parity Control Register2 - (OFFSET, MASK, VALUE) (0XFD0700C8, 0x01FF1F3FU ,0x0040051FU) - RegMask = (DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK | DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK | DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK | 0 ); - - RegVal = ((0x00000040U << DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT - | 0x00000005U << DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT - | 0x0000001FU << DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_CRCPARCTL2_OFFSET ,0x01FF1F3FU ,0x0040051FU); - /*############################################################################################################################ */ - - /*Register : INIT0 @ 0XFD0700D0

- - If lower bit is enabled the SDRAM initialization routine is skipped. The upper bit decides what state the controller starts u - in when reset is removed - 00 - SDRAM Intialization routine is run after power-up - 01 - SDRAM Intialization routine is skip - ed after power-up. Controller starts up in Normal Mode - 11 - SDRAM Intialization routine is skipped after power-up. Controll - r starts up in Self-refresh Mode - 10 - SDRAM Intialization routine is run after power-up. Note: The only 2'b00 is supported - or LPDDR4 in this version of the uMCTL2. - PSU_DDRC_INIT0_SKIP_DRAM_INIT 0x0 - - Cycles to wait after driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clocks. DDR2 typically requires - 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDDR3 typically requires this to be pr - grammed for a delay of 200 us. LPDDR4 typically requires this to be programmed for a delay of 2 us. For configurations with M - MC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it up to next integer value. - PSU_DDRC_INIT0_POST_CKE_X1024 0x2 - - Cycles to wait after reset before driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clock cycles. DDR2 - pecifications typically require this to be programmed for a delay of >= 200 us. LPDDR2/LPDDR3: tINIT1 of 100 ns (min) LPDDR4: - tINIT3 of 2 ms (min) For configurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it u - to next integer value. - PSU_DDRC_INIT0_PRE_CKE_X1024 0x106 - - SDRAM Initialization Register 0 - (OFFSET, MASK, VALUE) (0XFD0700D0, 0xC3FF0FFFU ,0x00020106U) - RegMask = (DDRC_INIT0_SKIP_DRAM_INIT_MASK | DDRC_INIT0_POST_CKE_X1024_MASK | DDRC_INIT0_PRE_CKE_X1024_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_INIT0_SKIP_DRAM_INIT_SHIFT - | 0x00000002U << DDRC_INIT0_POST_CKE_X1024_SHIFT - | 0x00000106U << DDRC_INIT0_PRE_CKE_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT0_OFFSET ,0xC3FF0FFFU ,0x00020106U); - /*############################################################################################################################ */ - - /*Register : INIT1 @ 0XFD0700D4

- - Number of cycles to assert SDRAM reset signal during init sequence. This is only present for designs supporting DDR3, DDR4 or - LPDDR4 devices. For use with a DDR PHY, this should be set to a minimum of 1 - PSU_DDRC_INIT1_DRAM_RSTN_X1024 0x2 - - Cycles to wait after completing the SDRAM initialization sequence before starting the dynamic scheduler. Unit: Counts of a gl - bal timer that pulses every 32 clock cycles. There is no known specific requirement for this; it may be set to zero. - PSU_DDRC_INIT1_FINAL_WAIT_X32 0x0 - - Wait period before driving the OCD complete command to SDRAM. Unit: Counts of a global timer that pulses every 32 clock cycle - . There is no known specific requirement for this; it may be set to zero. - PSU_DDRC_INIT1_PRE_OCD_X32 0x0 - - SDRAM Initialization Register 1 - (OFFSET, MASK, VALUE) (0XFD0700D4, 0x01FF7F0FU ,0x00020000U) - RegMask = (DDRC_INIT1_DRAM_RSTN_X1024_MASK | DDRC_INIT1_FINAL_WAIT_X32_MASK | DDRC_INIT1_PRE_OCD_X32_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_INIT1_DRAM_RSTN_X1024_SHIFT - | 0x00000000U << DDRC_INIT1_FINAL_WAIT_X32_SHIFT - | 0x00000000U << DDRC_INIT1_PRE_OCD_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT1_OFFSET ,0x01FF7F0FU ,0x00020000U); - /*############################################################################################################################ */ - - /*Register : INIT2 @ 0XFD0700D8

- - Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Unit: 32 clock cycles. - PSU_DDRC_INIT2_IDLE_AFTER_RESET_X32 0x23 - - Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2/LPDDR3. Unit: 1 clock cyc - e. LPDDR2/LPDDR3 typically requires 5 x tCK delay. - PSU_DDRC_INIT2_MIN_STABLE_CLOCK_X1 0x5 - - SDRAM Initialization Register 2 - (OFFSET, MASK, VALUE) (0XFD0700D8, 0x0000FF0FU ,0x00002305U) - RegMask = (DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK | DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK | 0 ); - - RegVal = ((0x00000023U << DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT - | 0x00000005U << DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT2_OFFSET ,0x0000FF0FU ,0x00002305U); - /*############################################################################################################################ */ - - /*Register : INIT3 @ 0XFD0700DC

- - DDR2: Value to write to MR register. Bit 8 is for DLL and the setting here is ignored. The uMCTL2 sets this bit appropriately - DDR3/DDR4: Value loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LPDDR3/LPDDR4 - Value to write to MR1 - register - PSU_DDRC_INIT3_MR 0x930 - - DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setting in this register is ignored. The uMCTL2 sets those - bits appropriately. DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evaluation mode training is enabled, thi - bit is set appropriately by the uMCTL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/LPDDR3/LPDDR4 - V - lue to write to MR2 register - PSU_DDRC_INIT3_EMR 0x301 - - SDRAM Initialization Register 3 - (OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x09300301U) - RegMask = (DDRC_INIT3_MR_MASK | DDRC_INIT3_EMR_MASK | 0 ); - - RegVal = ((0x00000930U << DDRC_INIT3_MR_SHIFT - | 0x00000301U << DDRC_INIT3_EMR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT3_OFFSET ,0xFFFFFFFFU ,0x09300301U); - /*############################################################################################################################ */ - - /*Register : INIT4 @ 0XFD0700E0

- - DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 - egister mDDR: Unused - PSU_DDRC_INIT4_EMR2 0x20 - - DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to - rite to MR13 register - PSU_DDRC_INIT4_EMR3 0x200 - - SDRAM Initialization Register 4 - (OFFSET, MASK, VALUE) (0XFD0700E0, 0xFFFFFFFFU ,0x00200200U) - RegMask = (DDRC_INIT4_EMR2_MASK | DDRC_INIT4_EMR3_MASK | 0 ); - - RegVal = ((0x00000020U << DDRC_INIT4_EMR2_SHIFT - | 0x00000200U << DDRC_INIT4_EMR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT4_OFFSET ,0xFFFFFFFFU ,0x00200200U); - /*############################################################################################################################ */ - - /*Register : INIT5 @ 0XFD0700E4

- - ZQ initial calibration, tZQINIT. Present only in designs configured to support DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock - ycles. DDR3 typically requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requires 1 us. - PSU_DDRC_INIT5_DEV_ZQINIT_X32 0x21 - - Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2/LPDDR3. LPDDR2/LPDD - 3 typically requires 10 us. - PSU_DDRC_INIT5_MAX_AUTO_INIT_X1024 0x4 - - SDRAM Initialization Register 5 - (OFFSET, MASK, VALUE) (0XFD0700E4, 0x00FF03FFU ,0x00210004U) - RegMask = (DDRC_INIT5_DEV_ZQINIT_X32_MASK | DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK | 0 ); - - RegVal = ((0x00000021U << DDRC_INIT5_DEV_ZQINIT_X32_SHIFT - | 0x00000004U << DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT5_OFFSET ,0x00FF03FFU ,0x00210004U); - /*############################################################################################################################ */ - - /*Register : INIT6 @ 0XFD0700E8

- - DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs only. - PSU_DDRC_INIT6_MR4 0x0 - - DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs only. - PSU_DDRC_INIT6_MR5 0x6c0 - - SDRAM Initialization Register 6 - (OFFSET, MASK, VALUE) (0XFD0700E8, 0xFFFFFFFFU ,0x000006C0U) - RegMask = (DDRC_INIT6_MR4_MASK | DDRC_INIT6_MR5_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_INIT6_MR4_SHIFT - | 0x000006C0U << DDRC_INIT6_MR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT6_OFFSET ,0xFFFFFFFFU ,0x000006C0U); - /*############################################################################################################################ */ - - /*Register : INIT7 @ 0XFD0700EC

- - DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs only. - PSU_DDRC_INIT7_MR6 0x819 - - SDRAM Initialization Register 7 - (OFFSET, MASK, VALUE) (0XFD0700EC, 0xFFFF0000U ,0x08190000U) - RegMask = (DDRC_INIT7_MR6_MASK | 0 ); - - RegVal = ((0x00000819U << DDRC_INIT7_MR6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT7_OFFSET ,0xFFFF0000U ,0x08190000U); - /*############################################################################################################################ */ - - /*Register : DIMMCTL @ 0XFD0700F0

- - Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enab - ed. This will be required for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapped. - 0 - BG0 and BG1 are swapped i - address mirroring is enabled. - PSU_DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING 0x0 - - Enable for BG1 bit of MRS command. BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output - nversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit. Note: This has no - effect on the address of any other memory accesses, or of software-driven mode register accesses. If address mirroring is ena - led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - Enabled - 0 - Disabled - PSU_DDRC_DIMMCTL_MRS_BG1_EN 0x1 - - Enable for A17 bit of MRS command. A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, - his must be set to 0, so that the calculation of CA parity will not include A17 bit. Note: This has no effect on the address - f any other memory accesses, or of software-driven mode register accesses. - 1 - Enabled - 0 - Disabled - PSU_DDRC_DIMMCTL_MRS_A17_EN 0x0 - - Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIMM implements the Output Inversion feature by default, - which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, - A0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the uMCTL2 during the automatic initi - lization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. - or B-side mode register accesses, these bits are inverted within the uMCTL2 to compensate for this RDIMM inversion. Note: Thi - has no effect on the address of any other memory accesses, or of software-driven mode register accesses. - 1 - Implement out - ut inversion for B-side DRAMs. - 0 - Do not implement output inversion for B-side DRAMs. - PSU_DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN 0x0 - - Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations). Some UDIMMs and DD - 4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits - re swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures t - at, for mode register accesses during the automatic initialization routine, these bits are swapped within the uMCTL2 to compe - sate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they ar - swapped during the automatic MRS access to enable/disable of a particular DDR4 feature. Note: This has no effect on the addr - ss of any other memory accesses, or of software-driven mode register accesses. This is not supported for mDDR, LPDDR2, LPDDR3 - or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, - hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ranks, implement address mirroring for MRS commands to d - ring initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring) - 0 - Do - not implement address mirroring - PSU_DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN 0x0 - - Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only). This is not supported for mD - R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of software driven MR commands (via M - CTRL0/MRCTRL1), where software is responsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Send MRS commands t - each ranks seperately - 1 - (non-DDR4) Send all commands to even and odd ranks seperately - 0 - Do not stagger accesses - PSU_DDRC_DIMMCTL_DIMM_STAGGER_CS_EN 0x0 - - DIMM Control Register - (OFFSET, MASK, VALUE) (0XFD0700F0, 0x0000003FU ,0x00000010U) - RegMask = (DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK | DDRC_DIMMCTL_MRS_BG1_EN_MASK | DDRC_DIMMCTL_MRS_A17_EN_MASK | DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK | DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK | DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT - | 0x00000001U << DDRC_DIMMCTL_MRS_BG1_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_MRS_A17_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DIMMCTL_OFFSET ,0x0000003FU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : RANKCTL @ 0XFD0700F4

- - Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e writes to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should c - nsider both PHY requirement and ODT requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for value of tphy_wrcs - ap) If CRC feature is enabled, should be increased by 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increa - ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be increased by 1. - ODT requirement: The value programmed - n this register takes care of the ODT switch off timing requirement when switching ranks during writes. For LPDDR4, the requi - ement is ODTLoff - ODTLon - BL/2 + 1 For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY requirement - or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and round it u - to the next integer. - PSU_DDRC_RANKCTL_DIFF_RANK_WR_GAP 0x6 - - Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e reads to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should co - sider both PHY requirement and ODT requirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for value of tphy_rdcsg - p) If read preamble is set to 2tCK(DDR4/LPDDR4 only), should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 onl - ), should be increased by 1. - ODT requirement: The value programmed in this register takes care of the ODT switch off timing - requirement when switching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY r - quirement or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and - ound it up to the next integer. - PSU_DDRC_RANKCTL_DIFF_RANK_RD_GAP 0x6 - - Only present for multi-rank configurations. Background: Reads to the same rank can be performed back-to-back. Reads to differ - nt ranks require additional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is to avoid possible data bus content - on as well as to give PHY enough time to switch the delay when changing ranks. The uMCTL2 arbitrates for bus access on a cycl - -by-cycle basis; therefore after a read is scheduled, there are few clock cycles (determined by the value on RANKCTL.diff_ran - _rd_gap register) in which only reads from the same rank are eligible to be scheduled. This prevents reads from other ranks f - om having fair access to the data bus. This parameter represents the maximum number of reads that can be scheduled consecutiv - ly to the same rank. After this number is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by the scheduler to - llow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fair - ess. This feature can be DISABLED by setting this register to 0. When set to 0, the Controller will stay on the same rank as - ong as commands are available for it. Minimum programmable value is 0 (feature disabled) and maximum programmable value is 0x - . FOR PERFORMANCE ONLY. - PSU_DDRC_RANKCTL_MAX_RANK_RD 0xf - - Rank Control Register - (OFFSET, MASK, VALUE) (0XFD0700F4, 0x00000FFFU ,0x0000066FU) - RegMask = (DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK | DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK | DDRC_RANKCTL_MAX_RANK_RD_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT - | 0x00000006U << DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT - | 0x0000000FU << DDRC_RANKCTL_MAX_RANK_RD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RANKCTL_OFFSET ,0x00000FFFU ,0x0000066FU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG0 @ 0XFD070100

- - Minimum time between write and precharge to same bank. Unit: Clocks Specifications: WL + BL/2 + tWR = approximately 8 cycles - 15 ns = 14 clocks @400MHz and less for lower frequencies where: - WL = write latency - BL = burst length. This must match th - value programmed in the BL bit of the mode register to the SDRAM. BST (burst terminate) is not supported at present. - tWR = - Write recovery time. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this - arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For configurations - with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer value. - PSU_DDRC_DRAMTMG0_WR2PRE 0x11 - - tFAW Valid only when 8 or more banks(or banks x bank groups) are present. In 8-bank design, at most 4 banks must be activated - in a rolling window of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program this to (tFAW/2) and round up to next - nteger value. In a 4-bank design, set this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. Unit: Clocks - PSU_DDRC_DRAMTMG0_T_FAW 0xc - - tRAS(max): Maximum time between activate and precharge to same bank. This is the maximum time that a page can be kept open Mi - imum value of this register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO=2, program this to (tRAS(max)-1)/2 - No rounding up. Unit: Multiples of 1024 clocks. - PSU_DDRC_DRAMTMG0_T_RAS_MAX 0x24 - - tRAS(min): Minimum time between activate and precharge to the same bank. For configurations with MEMC_FREQ_RATIO=2, 1T mode, - rogram this to tRAS(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, program this t - (tRAS(min)/2) and round it up to the next integer value. Unit: Clocks - PSU_DDRC_DRAMTMG0_T_RAS_MIN 0x12 - - SDRAM Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x110C2412U) - RegMask = (DDRC_DRAMTMG0_WR2PRE_MASK | DDRC_DRAMTMG0_T_FAW_MASK | DDRC_DRAMTMG0_T_RAS_MAX_MASK | DDRC_DRAMTMG0_T_RAS_MIN_MASK | 0 ); - - RegVal = ((0x00000011U << DDRC_DRAMTMG0_WR2PRE_SHIFT - | 0x0000000CU << DDRC_DRAMTMG0_T_FAW_SHIFT - | 0x00000024U << DDRC_DRAMTMG0_T_RAS_MAX_SHIFT - | 0x00000012U << DDRC_DRAMTMG0_T_RAS_MIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG0_OFFSET ,0x7F3F7F3FU ,0x110C2412U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG1 @ 0XFD070104

- - tXP: Minimum time after power-down exit to any operation. For DDR3, this should be programmed to tXPDLL if slow powerdown exi - is selected in MR0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For configurations with MEMC_FREQ_RATIO=2, - rogram this to (tXP/2) and round it up to the next integer value. Units: Clocks - PSU_DDRC_DRAMTMG1_T_XP 0x4 - - tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL/2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - D - R4: Max of following two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 - LPDDR2: Depends on if it's LPDDR2 - S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + tRTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) - 4 - LPDDR4: BL - 2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For conf - gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer val - e. Unit: Clocks. - PSU_DDRC_DRAMTMG1_RD2PRE 0x4 - - tRC: Minimum time between activates to same bank. For configurations with MEMC_FREQ_RATIO=2, program this to (tRC/2) and roun - up to next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG1_T_RC 0x19 - - SDRAM Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x00040419U) - RegMask = (DDRC_DRAMTMG1_T_XP_MASK | DDRC_DRAMTMG1_RD2PRE_MASK | DDRC_DRAMTMG1_T_RC_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DRAMTMG1_T_XP_SHIFT - | 0x00000004U << DDRC_DRAMTMG1_RD2PRE_SHIFT - | 0x00000019U << DDRC_DRAMTMG1_T_RC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG1_OFFSET ,0x001F1F7FU ,0x00040419U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG2 @ 0XFD070108

- - Set to WL Time from write command to write data on SDRAM interface. This must be set to WL. For mDDR, it should normally be s - t to 1. Note that, depending on the PHY, if using RDIMM, it may be necessary to use a value of WL + 1 to compensate for the e - tra cycle of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above - equation by 2, and round it up to next integer. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAININ - is set), as the DFI read and write latencies defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks - PSU_DDRC_DRAMTMG2_WRITE_LATENCY 0x7 - - Set to RL Time from read command to read data on SDRAM interface. This must be set to RL. Note that, depending on the PHY, if - using RDIMM, it mat be necessary to use a value of RL + 1 to compensate for the extra cycle of latency through the RDIMM For - onfigurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next inte - er. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAINING is set), as the DFI read and write latenci - s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks - PSU_DDRC_DRAMTMG2_READ_LATENCY 0x8 - - DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL LPDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL - PDDR4(DQ ODT is Disabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL LPDDR4(DQ ODT is Enabled) : RL + B - /2 + RU(tDQSCKmax/tCK) + RD_POSTAMBLE - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write command. Include - time for bus turnaround and all per-bank, per-rank, and global constraints. Unit: Clocks. Where: - WL = write latency - BL = - urst length. This must match the value programmed in the BL bit of the mode register to the SDRAM - RL = read latency = CAS l - tency - WR_PREAMBLE = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = read postamble. This is unique to L - DDR4. For LPDDR2/LPDDR3/LPDDR4, if derating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should be used. For conf - gurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG2_RD2WR 0x6 - - DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimum time from write command to read command for same ba - k group. In others, minimum time from write command to read command. Includes time for bus turnaround, recovery times, and al - per-bank, per-rank, and global constraints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burs - length. This must match the value programmed in the BL bit of the mode register to the SDRAM - tWTR_L = internal write to re - d command delay for same bank group. This comes directly from the SDRAM specification. - tWTR = internal write to read comman - delay. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 operation. For configu - ations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG2_WR2RD 0xe - - SDRAM Timing Register 2 - (OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060EU) - RegMask = (DDRC_DRAMTMG2_WRITE_LATENCY_MASK | DDRC_DRAMTMG2_READ_LATENCY_MASK | DDRC_DRAMTMG2_RD2WR_MASK | DDRC_DRAMTMG2_WR2RD_MASK | 0 ); - - RegVal = ((0x00000007U << DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT - | 0x00000008U << DDRC_DRAMTMG2_READ_LATENCY_SHIFT - | 0x00000006U << DDRC_DRAMTMG2_RD2WR_SHIFT - | 0x0000000EU << DDRC_DRAMTMG2_WR2RD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG2_OFFSET ,0x3F3F3F3FU ,0x0708060EU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG3 @ 0XFD07010C

- - Time to wait after a mode register write or read (MRW or MRR). Present only in designs configured to support LPDDR2, LPDDR3 o - LPDDR4. LPDDR2 typically requires value of 5. LPDDR3 typically requires value of 10. LPDDR4: Set this to the larger of tMRW - nd tMRWCKEL. For LPDDR2, this register is used for the time from a MRW/MRR to all other commands. For LDPDR3, this register i - used for the time from a MRW/MRR to a MRW/MRR. - PSU_DDRC_DRAMTMG3_T_MRW 0x5 - - tMRD: Cycles to wait after a mode register write or read. Depending on the connected SDRAM, tMRD represents: DDR2/mDDR: Time - rom MRS to any command DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Time from MRS to non-MRS command For c - nfigurations with MEMC_FREQ_RATIO=2, program this to (tMRD/2) and round it up to the next integer value. If C/A parity for DD - 4 is used, set to tMRD_PAR(tMOD+PL) instead. - PSU_DDRC_DRAMTMG3_T_MRD 0x4 - - tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode command and following non-load mode command. If C/A pari - y for DDR4 is used, set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or tMOD/2 (rounded up to next integer - if MEMC_FREQ_RATIO=2. Note that if using RDIMM, depending on the PHY, it may be necessary to use a value of tMOD + 1 or (tMO - + 1)/2 to compensate for the extra cycle of latency applied to mode register writes by the RDIMM chip. - PSU_DDRC_DRAMTMG3_T_MOD 0xc - - SDRAM Timing Register 3 - (OFFSET, MASK, VALUE) (0XFD07010C, 0x3FF3F3FFU ,0x0050400CU) - RegMask = (DDRC_DRAMTMG3_T_MRW_MASK | DDRC_DRAMTMG3_T_MRD_MASK | DDRC_DRAMTMG3_T_MOD_MASK | 0 ); - - RegVal = ((0x00000005U << DDRC_DRAMTMG3_T_MRW_SHIFT - | 0x00000004U << DDRC_DRAMTMG3_T_MRD_SHIFT - | 0x0000000CU << DDRC_DRAMTMG3_T_MOD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG3_OFFSET ,0x3FF3F3FFU ,0x0050400CU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG4 @ 0XFD070110

- - tRCD - tAL: Minimum time from activate to read or write command to same bank. For configurations with MEMC_FREQ_RATIO=2, prog - am this to ((tRCD - tAL)/2) and round it up to the next integer value. Minimum value allowed for this register is 1, which im - lies minimum (tRCD - tAL) value to be 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RCD 0x8 - - DDR4: tCCD_L: This is the minimum time between two reads or two writes for same bank group. Others: tCCD: This is the minimum - time between two reads or two writes. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_L/2 or tCCD/2) and rou - d it up to the next integer value. Unit: clocks. - PSU_DDRC_DRAMTMG4_T_CCD 0x3 - - DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' for same bank group. Others: tRRD: Minimum time betwee - activates from bank 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program this to (tRRD_L/2 or tRRD/2) and round - it up to the next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RRD 0x3 - - tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ_RATIO=1 configurations, t_rp should be set to RoundU - (tRP/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(tRP/tCK)/2) + 1. For MEMC_FREQ_RATIO - 2 configurations in LPDDR4, t_rp should be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RP 0x9 - - SDRAM Timing Register 4 - (OFFSET, MASK, VALUE) (0XFD070110, 0x1F0F0F1FU ,0x08030309U) - RegMask = (DDRC_DRAMTMG4_T_RCD_MASK | DDRC_DRAMTMG4_T_CCD_MASK | DDRC_DRAMTMG4_T_RRD_MASK | DDRC_DRAMTMG4_T_RP_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_DRAMTMG4_T_RCD_SHIFT - | 0x00000003U << DDRC_DRAMTMG4_T_CCD_SHIFT - | 0x00000003U << DDRC_DRAMTMG4_T_RRD_SHIFT - | 0x00000009U << DDRC_DRAMTMG4_T_RP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG4_OFFSET ,0x1F0F0F1FU ,0x08030309U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG5 @ 0XFD070114

- - This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stab - e time before SRX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEH - DDR2: 1 - DDR3: tCKSRX - DDR4: - tCKSRX For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next in - eger. - PSU_DDRC_DRAMTMG5_T_CKSRX 0x6 - - This is the time after Self Refresh Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay afte - SRE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 - DDR3: max (10 ns, 5 tCK) - DDR4: - ax (10 ns, 5 tCK) For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up - to next integer. - PSU_DDRC_DRAMTMG5_T_CKSRE 0x6 - - Minimum CKE low width for Self refresh or Self refresh power down entry to exit timing in memory clock cycles. Recommended se - tings: - mDDR: tRFC - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: tCKE - DDR3: tCKE + 1 - DDR4: tCKE - 1 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next intege - . - PSU_DDRC_DRAMTMG5_T_CKESR 0x4 - - Minimum number of cycles of CKE HIGH/LOW during power-down and self refresh. - LPDDR2/LPDDR3 mode: Set this to the larger of - CKE or tCKESR - LPDDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/non-LPDDR3/non-LPDDR4 designs: Set - his to tCKE value. For configurations with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and round it up to th - next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG5_T_CKE 0x3 - - SDRAM Timing Register 5 - (OFFSET, MASK, VALUE) (0XFD070114, 0x0F0F3F1FU ,0x06060403U) - RegMask = (DDRC_DRAMTMG5_T_CKSRX_MASK | DDRC_DRAMTMG5_T_CKSRE_MASK | DDRC_DRAMTMG5_T_CKESR_MASK | DDRC_DRAMTMG5_T_CKE_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_DRAMTMG5_T_CKSRX_SHIFT - | 0x00000006U << DDRC_DRAMTMG5_T_CKSRE_SHIFT - | 0x00000004U << DDRC_DRAMTMG5_T_CKESR_SHIFT - | 0x00000003U << DDRC_DRAMTMG5_T_CKE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG5_OFFSET ,0x0F0F3F1FU ,0x06060403U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG6 @ 0XFD070118

- - This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after - PDE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, program this to recom - ended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3 - devices. - PSU_DDRC_DRAMTMG6_T_CKDPDE 0x1 - - This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock - table time before DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, pr - gram this to recommended value divided by two and round it up to next integer. This is only present for designs supporting mD - R or LPDDR2 devices. - PSU_DDRC_DRAMTMG6_T_CKDPDX 0x1 - - This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing Clock Stop Exit. Specifies the - lock stable time before next command after Clock Stop Exit. Recommended settings: - mDDR: 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + - 2 - LPDDR4: tXP + 2 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it - p to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG6_T_CKCSX 0x4 - - SDRAM Timing Register 6 - (OFFSET, MASK, VALUE) (0XFD070118, 0x0F0F000FU ,0x01010004U) - RegMask = (DDRC_DRAMTMG6_T_CKDPDE_MASK | DDRC_DRAMTMG6_T_CKDPDX_MASK | DDRC_DRAMTMG6_T_CKCSX_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_DRAMTMG6_T_CKDPDE_SHIFT - | 0x00000001U << DDRC_DRAMTMG6_T_CKDPDX_SHIFT - | 0x00000004U << DDRC_DRAMTMG6_T_CKCSX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG6_OFFSET ,0x0F0F000FU ,0x01010004U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG7 @ 0XFD07011C

- - This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. - ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configurations with MEMC_FREQ_RATIO=2, program t - is to recommended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or L - DDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG7_T_CKPDE 0x6 - - This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable - time before PDX. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For configurations with MEMC_FREQ_RATIO= - , program this to recommended value divided by two and round it up to next integer. This is only present for designs supporti - g mDDR or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG7_T_CKPDX 0x6 - - SDRAM Timing Register 7 - (OFFSET, MASK, VALUE) (0XFD07011C, 0x00000F0FU ,0x00000606U) - RegMask = (DDRC_DRAMTMG7_T_CKPDE_MASK | DDRC_DRAMTMG7_T_CKPDX_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_DRAMTMG7_T_CKPDE_SHIFT - | 0x00000006U << DDRC_DRAMTMG7_T_CKPDX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG7_OFFSET ,0x00000F0FU ,0x00000606U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG8 @ 0XFD070120

- - tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and Geardown mode). For configurations with MEMC_FREQ_RAT - O=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Thi - is applicable to only ZQCL/ZQCS commands. Note: Ensure this is less than or equal to t_xs_x32. - PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x4 - - tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in Self Refresh Abort. For configurations with MEMC_FREQ_ - ATIO=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: - nsure this is less than or equal to t_xs_x32. - PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x4 - - tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - bove value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DR4 SDRAMs. - PSU_DDRC_DRAMTMG8_T_XS_DLL_X32 0xd - - tXS: Exit Self Refresh to commands not requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DDR4 SDRAMs. - PSU_DDRC_DRAMTMG8_T_XS_X32 0x6 - - SDRAM Timing Register 8 - (OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x04040D06U) - RegMask = (DDRC_DRAMTMG8_T_XS_FAST_X32_MASK | DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK | DDRC_DRAMTMG8_T_XS_DLL_X32_MASK | DDRC_DRAMTMG8_T_XS_X32_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT - | 0x00000004U << DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT - | 0x0000000DU << DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT - | 0x00000006U << DDRC_DRAMTMG8_T_XS_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG8_OFFSET ,0x7F7F7F7FU ,0x04040D06U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG9 @ 0XFD070124

- - DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present only with MEMC_FREQ_RATIO=2 - PSU_DDRC_DRAMTMG9_DDR4_WR_PREAMBLE 0x0 - - tCCD_S: This is the minimum time between two reads or two writes for different bank group. For bank switching (from bank 'a' - o bank 'b'), the minimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_S/2) and ro - nd it up to the next integer value. Present only in designs configured to support DDR4. Unit: clocks. - PSU_DDRC_DRAMTMG9_T_CCD_S 0x2 - - tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for different bank group. For configurations with MEMC_FREQ_ - ATIO=2, program this to (tRRD_S/2) and round it up to the next integer value. Present only in designs configured to support D - R4. Unit: Clocks. - PSU_DDRC_DRAMTMG9_T_RRD_S 0x2 - - CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command for different bank group. Includes time for bus turn - round, recovery times, and all per-bank, per-rank, and global constraints. Present only in designs configured to support DDR4 - Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burst length. This must match the value programm - d in the BL bit of the mode register to the SDRAM - tWTR_S = internal write to read command delay for different bank group. T - is comes directly from the SDRAM specification. For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using - he above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG9_WR2RD_S 0xb - - SDRAM Timing Register 9 - (OFFSET, MASK, VALUE) (0XFD070124, 0x40070F3FU ,0x0002020BU) - RegMask = (DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK | DDRC_DRAMTMG9_T_CCD_S_MASK | DDRC_DRAMTMG9_T_RRD_S_MASK | DDRC_DRAMTMG9_WR2RD_S_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT - | 0x00000002U << DDRC_DRAMTMG9_T_CCD_S_SHIFT - | 0x00000002U << DDRC_DRAMTMG9_T_RRD_S_SHIFT - | 0x0000000BU << DDRC_DRAMTMG9_WR2RD_S_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG9_OFFSET ,0x40070F3FU ,0x0002020BU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG11 @ 0XFD07012C

- - tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program - this to (tXMPDLL/2) and round it up to the next integer value. Present only in designs configured to support DDR4. Unit: Mult - ples of 32 clocks. - PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x6f - - tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For configurations with MEMC_FREQ_RATIO=2, program this t - RoundUp(tMPX_LH/2)+1. Present only in designs configured to support DDR4. Unit: clocks. - PSU_DDRC_DRAMTMG11_T_MPX_LH 0x7 - - tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_FREQ_RATIO=2, program this to (tMPX_S/2) and round it - up to the next integer value. Present only in designs configured to support DDR4. Unit: Clocks. - PSU_DDRC_DRAMTMG11_T_MPX_S 0x1 - - tCKMPE: Minimum valid clock requirement after MPSM entry. Present only in designs configured to support DDR4. Unit: Clocks. F - r configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next i - teger. - PSU_DDRC_DRAMTMG11_T_CKMPE 0xe - - SDRAM Timing Register 11 - (OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x6F07010EU) - RegMask = (DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK | DDRC_DRAMTMG11_T_MPX_LH_MASK | DDRC_DRAMTMG11_T_MPX_S_MASK | DDRC_DRAMTMG11_T_CKMPE_MASK | 0 ); - - RegVal = ((0x0000006FU << DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT - | 0x00000007U << DDRC_DRAMTMG11_T_MPX_LH_SHIFT - | 0x00000001U << DDRC_DRAMTMG11_T_MPX_S_SHIFT - | 0x0000000EU << DDRC_DRAMTMG11_T_CKMPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG11_OFFSET ,0x7F1F031FU ,0x6F07010EU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG12 @ 0XFD070130

- - tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larger of tESCKE or tCMDCKE For configurations with MEMC_ - REQ_RATIO=2, program this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_CMDCKE 0x2 - - tCKEHCMD: Valid command requirement after CKE input HIGH. For configurations with MEMC_FREQ_RATIO=2, program this to (tCKEHCM - /2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_CKEHCMD 0x6 - - tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. For configurations with MEMC_FREQ_RATIO=2, program th - s to (tMRD_PDA/2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_MRD_PDA 0x8 - - SDRAM Timing Register 12 - (OFFSET, MASK, VALUE) (0XFD070130, 0x00030F1FU ,0x00020608U) - RegMask = (DDRC_DRAMTMG12_T_CMDCKE_MASK | DDRC_DRAMTMG12_T_CKEHCMD_MASK | DDRC_DRAMTMG12_T_MRD_PDA_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_DRAMTMG12_T_CMDCKE_SHIFT - | 0x00000006U << DDRC_DRAMTMG12_T_CKEHCMD_SHIFT - | 0x00000008U << DDRC_DRAMTMG12_T_MRD_PDA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG12_OFFSET ,0x00030F1FU ,0x00020608U); - /*############################################################################################################################ */ - - /*Register : ZQCTL0 @ 0XFD070180

- - - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Register DBGCMD.zq_calib_short can be used instead to is - ue ZQ calibration request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibration) commands based on ZQCTL1.t_zq_s - ort_interval_x1024. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_DIS_AUTO_ZQ 0x1 - - - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Powerdown exit. Only applicable when run in DDR3 - or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Power - own exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present for designs suppo - ting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_DIS_SRX_ZQCL 0x0 - - - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQCL/ZQCS/MPC(ZQ calibration) commands are sent to one r - nk at a time with tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that commands to different ranks do not ov - rlap. - 0 - ZQ resistor is not shared. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_ZQ_RESISTOR_SHARED 0x0 - - - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. - 0 - Enable - ssuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. This is only present for des - gns supporting DDR4 devices. - PSU_DDRC_ZQCTL0_DIS_MPSMX_ZQCL 0x0 - - tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Number of cycles of NOP required after a ZQCL (ZQ calibrat - on long)/MPC(ZQ Start) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2: DDR3/DDR4: program this to tZQo - er/2 and round it up to the next integer value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to the next integer va - ue. LPDDR4: program this to tZQCAL/2 and round it up to the next integer value. Unit: Clock cycles. This is only present for - esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_T_ZQ_LONG_NOP 0x100 - - tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of NOP required after a ZQCS (ZQ calibration short)/MPC - ZQ Latch) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program this to tZQCS/2 and round it up to t - e next integer value. Unit: Clock cycles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devic - s. - PSU_DDRC_ZQCTL0_T_ZQ_SHORT_NOP 0x40 - - ZQ Control Register 0 - (OFFSET, MASK, VALUE) (0XFD070180, 0xF7FF03FFU ,0x81000040U) - RegMask = (DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK | DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK | DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK | DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK | DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK | DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT - | 0x00000000U << DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT - | 0x00000000U << DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT - | 0x00000000U << DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT - | 0x00000100U << DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT - | 0x00000040U << DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ZQCTL0_OFFSET ,0xF7FF03FFU ,0x81000040U); - /*############################################################################################################################ */ - - /*Register : ZQCTL1 @ 0XFD070184

- - tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibration Reset) command is issued to SDRAM. For configurati - ns with MEMC_FREQ_RATIO=2, program this to tZQReset/2 and round it up to the next integer value. Unit: Clock cycles. This is - nly present for designs supporting LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL1_T_ZQ_RESET_NOP 0x20 - - Average interval to wait between automatically issuing ZQCS (ZQ calibration short)/MPC(ZQ calibration) commands to DDR3/DDR4/ - PDDR2/LPDDR3/LPDDR4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles. This is only present for designs - upporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x19707 - - ZQ Control Register 1 - (OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x02019707U) - RegMask = (DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK | DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK | 0 ); - - RegVal = ((0x00000020U << DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT - | 0x00019707U << DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ZQCTL1_OFFSET ,0x3FFFFFFFU ,0x02019707U); - /*############################################################################################################################ */ - - /*Register : DFITMG0 @ 0XFD070190

- - Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock. - PSU_DDRC_DFITMG0_DFI_T_CTRL_DELAY 0x4 - - Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value. - PSU_DDRC_DFITMG0_DFI_RDDATA_USE_SDR 0x1 - - Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks - PSU_DDRC_DFITMG0_DFI_T_RDDATA_EN 0xb - - Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e. - PSU_DDRC_DFITMG0_DFI_WRDATA_USE_SDR 0x1 - - Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks - PSU_DDRC_DFITMG0_DFI_TPHY_WRDATA 0x2 - - Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM. - PSU_DDRC_DFITMG0_DFI_TPHY_WRLAT 0xb - - DFI Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD070190, 0x1FBFBF3FU ,0x048B820BU) - RegMask = (DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK | DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK | DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK | DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK | DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK | DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT - | 0x00000001U << DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT - | 0x0000000BU << DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT - | 0x00000001U << DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT - | 0x00000002U << DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT - | 0x0000000BU << DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG0_OFFSET ,0x1FBFBF3FU ,0x048B820BU); - /*############################################################################################################################ */ - - /*Register : DFITMG1 @ 0XFD070194

- - Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated command is driven. - his field is used for CAL mode, should be set to '0' or the value which matches the CAL mode register setting in the DRAM. If - the PHY can add the latency for CAL mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 - PSU_DDRC_DFITMG1_DFI_T_CMD_LAT 0x0 - - Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated dfi_parity_in signa - is driven. - PSU_DDRC_DFITMG1_DFI_T_PARIN_LAT 0x0 - - Specifies the number of DFI clocks between when the dfi_wrdata_en signal is asserted and when the corresponding write data tr - nsfer is completed on the DRAM bus. This corresponds to the DFI timing parameter twrdata_delay. Refer to PHY specification fo - correct value. For DFI 3.0 PHY, set to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI 2.1 PHY, set to - phy_wrdata + (delay of DFI write data to the DRAM). Value to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ - RATIO=2, divide PHY's value by 2 and round up to next integer. If using DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Uni - : Clocks - PSU_DDRC_DFITMG1_DFI_T_WRDATA_DELAY 0x3 - - Specifies the number of DFI clock cycles from the assertion of the dfi_dram_clk_disable signal on the DFI until the clock to - he DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase - ligned, this timing parameter should be rounded up to the next integer value. - PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE 0x3 - - Specifies the number of DFI clock cycles from the de-assertion of the dfi_dram_clk_disable signal on the DFI until the first - alid rising edge of the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the DFI clock and the memory clock are - not phase aligned, this timing parameter should be rounded up to the next integer value. - PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE 0x4 - - DFI Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD070194, 0xF31F0F0FU ,0x00030304U) - RegMask = (DDRC_DFITMG1_DFI_T_CMD_LAT_MASK | DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK | DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK | DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK | DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT - | 0x00000000U << DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT - | 0x00000003U << DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT - | 0x00000003U << DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT - | 0x00000004U << DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG1_OFFSET ,0xF31F0F0FU ,0x00030304U); - /*############################################################################################################################ */ - - /*Register : DFILPCFG0 @ 0XFD070198

- - Setting for DFI's tlp_resp time. Same value is used for both Power Down, Self Refresh, Deep Power Down and Maximum Power Savi - g modes. DFI 2.1 specification onwards, recommends using a fixed value of 7 always. - PSU_DDRC_DFILPCFG0_DFI_TLP_RESP 0x7 - - Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 - cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - - 31072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting mDDR or LPDDR2/LPDDR3 device - . - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD 0x0 - - Enables DFI Low Power interface handshaking during Deep Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled This is only pres - nt for designs supporting mDDR or LPDDR2/LPDDR3 devices. - PSU_DDRC_DFILPCFG0_DFI_LP_EN_DPD 0x0 - - Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cy - les - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 131 - 72 cycles - 0xE - 262144 cycles - 0xF - Unlimited - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR 0x0 - - Enables DFI Low Power interface handshaking during Self Refresh Entry/Exit. - 0 - Disabled - 1 - Enabled - PSU_DDRC_DFILPCFG0_DFI_LP_EN_SR 0x1 - - Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycl - s - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 20 - 8 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 13107 - cycles - 0xE - 262144 cycles - 0xF - Unlimited - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD 0x0 - - Enables DFI Low Power interface handshaking during Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled - PSU_DDRC_DFILPCFG0_DFI_LP_EN_PD 0x1 - - DFI Low Power Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070198, 0x0FF1F1F1U ,0x07000101U) - RegMask = (DDRC_DFILPCFG0_DFI_TLP_RESP_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK | DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK | DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK | DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK | 0 ); - - RegVal = ((0x00000007U << DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT - | 0x00000001U << DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT - | 0x00000001U << DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFILPCFG0_OFFSET ,0x0FF1F1F1U ,0x07000101U); - /*############################################################################################################################ */ - - /*Register : DFILPCFG1 @ 0XFD07019C

- - Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - - 16 cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0 - D - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting DDR4 devices. - PSU_DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM 0x2 - - Enables DFI Low Power interface handshaking during Maximum Power Saving Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is - only present for designs supporting DDR4 devices. - PSU_DDRC_DFILPCFG1_DFI_LP_EN_MPSM 0x1 - - DFI Low Power Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD07019C, 0x000000F1U ,0x00000021U) - RegMask = (DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK | DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT - | 0x00000001U << DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFILPCFG1_OFFSET ,0x000000F1U ,0x00000021U); - /*############################################################################################################################ */ - - /*Register : DFIUPD1 @ 0XFD0701A4

- - This is the minimum amount of time between uMCTL2 initiated DFI update requests (which is executed whenever the uMCTL2 is idl - ). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the fir - t read request when the uMCTL2 is idle. Unit: 1024 clocks - PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024 0x41 - - This is the maximum amount of time between uMCTL2 initiated DFI update requests. This timer resets with each update request; - hen the timer expires dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd_ackx is received. PHY can use this - idle time to recalibrate the delay lines to the DLLs. The DFI controller update is also used to reset PHY FIFO pointers in ca - e of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. - Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x - 024. Unit: 1024 clocks - PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe2 - - DFI Update Register 1 - (OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E2U) - RegMask = (DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK | DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK | 0 ); - - RegVal = ((0x00000041U << DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT - | 0x000000E2U << DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFIUPD1_OFFSET ,0x00FF00FFU ,0x004100E2U); - /*############################################################################################################################ */ - - /*Register : DFIMISC @ 0XFD0701B0

- - Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signals are active low - 1: Signals are active high - PSU_DDRC_DFIMISC_DFI_DATA_CS_POLARITY 0x0 - - DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. - 1 - PHY implements DBI functionality. Present only - in designs configured to support DDR4 and LPDDR4. - PSU_DDRC_DFIMISC_PHY_DBI_MODE 0x0 - - PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialisa - ion - PSU_DDRC_DFIMISC_DFI_INIT_COMPLETE_EN 0x0 - - DFI Miscellaneous Control Register - (OFFSET, MASK, VALUE) (0XFD0701B0, 0x00000007U ,0x00000000U) - RegMask = (DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK | DDRC_DFIMISC_PHY_DBI_MODE_MASK | DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT - | 0x00000000U << DDRC_DFIMISC_PHY_DBI_MODE_SHIFT - | 0x00000000U << DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFIMISC_OFFSET ,0x00000007U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DFITMG2 @ 0XFD0701B4

- - >Number of clocks between when a read command is sent on the DFI control interface and when the associated dfi_rddata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY specification for correct value. - PSU_DDRC_DFITMG2_DFI_TPHY_RDCSLAT 0x9 - - Number of clocks between when a write command is sent on the DFI control interface and when the associated dfi_wrdata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY specification for correct value. - PSU_DDRC_DFITMG2_DFI_TPHY_WRCSLAT 0x6 - - DFI Timing Register 2 - (OFFSET, MASK, VALUE) (0XFD0701B4, 0x00003F3FU ,0x00000906U) - RegMask = (DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK | DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK | 0 ); - - RegVal = ((0x00000009U << DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT - | 0x00000006U << DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG2_OFFSET ,0x00003F3FU ,0x00000906U); - /*############################################################################################################################ */ - - /*Register : DBICTL @ 0XFD0701C0

- - Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read DBI is enabled. This signal must be set the same value - as DRAM's mode register. - DDR4: MR5 bit A12. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[6] - PSU_DDRC_DBICTL_RD_DBI_EN 0x0 - - Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Write DBI is enabled. This signal must be set the same va - ue as DRAM's mode register. - DDR4: MR5 bit A11. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[7] - PSU_DDRC_DBICTL_WR_DBI_EN 0x0 - - DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. This signal must be set the same logical value as DRAM's - mode register. - DDR4: Set this to same value as MR5 bit A10. When x4 devices are used, this signal must be set to 0. - LPDDR - : Set this to inverted value of MR13[5] which is opposite polarity from this signal - PSU_DDRC_DBICTL_DM_EN 0x1 - - DM/DBI Control Register - (OFFSET, MASK, VALUE) (0XFD0701C0, 0x00000007U ,0x00000001U) - RegMask = (DDRC_DBICTL_RD_DBI_EN_MASK | DDRC_DBICTL_WR_DBI_EN_MASK | DDRC_DBICTL_DM_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBICTL_RD_DBI_EN_SHIFT - | 0x00000000U << DDRC_DBICTL_WR_DBI_EN_SHIFT - | 0x00000001U << DDRC_DBICTL_DM_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBICTL_OFFSET ,0x00000007U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP0 @ 0XFD070200

- - Selects the HIF address bit used as rank address bit 0. Valid Range: 0 to 27, and 31 Internal Base: 6 The selected HIF addres - bit is determined by adding the internal base to the value of this field. If set to 31, rank address bit 0 is set to 0. - PSU_DDRC_ADDRMAP0_ADDRMAP_CS_BIT0 0x1f - - Address Map Register 0 - (OFFSET, MASK, VALUE) (0XFD070200, 0x0000001FU ,0x0000001FU) - RegMask = (DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK | 0 ); - - RegVal = ((0x0000001FU << DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP0_OFFSET ,0x0000001FU ,0x0000001FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP1 @ 0XFD070204

- - Selects the HIF address bit used as bank address bit 2. Valid Range: 0 to 29 and 31 Internal Base: 4 The selected HIF address - bit is determined by adding the internal base to the value of this field. If set to 31, bank address bit 2 is set to 0. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B2 0x1f - - Selects the HIF address bits used as bank address bit 1. Valid Range: 0 to 30 Internal Base: 3 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B1 0xa - - Selects the HIF address bits used as bank address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B0 0xa - - Address Map Register 1 - (OFFSET, MASK, VALUE) (0XFD070204, 0x001F1F1FU ,0x001F0A0AU) - RegMask = (DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK | DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK | DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK | 0 ); - - RegVal = ((0x0000001FU << DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT - | 0x0000000AU << DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT - | 0x0000000AU << DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP1_OFFSET ,0x001F1F1FU ,0x001F0A0AU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP2 @ 0XFD070208

- - - Full bus width mode: Selects the HIF address bit used as column address bit 5. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 6. - Quarter bus width mode: Selects the HIF address bit used as column address bit 7 . Vali - Range: 0 to 7, and 15 Internal Base: 5 The selected HIF address bit is determined by adding the internal base to the value o - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B5 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 4. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 5. - Quarter bus width mode: Selects the HIF address bit used as column address bit 6. Valid - Range: 0 to 7, and 15 Internal Base: 4 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B4 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 3. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 4. - Quarter bus width mode: Selects the HIF address bit used as column address bit 5. Valid - Range: 0 to 7 Internal Base: 3 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=16, it is required to program this to 0, hence register does not exist i - this case. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B3 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 2. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 3. - Quarter bus width mode: Selects the HIF address bit used as column address bit 4. Valid - Range: 0 to 7 Internal Base: 2 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 or 16, it is required to program this to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B2 0x0 - - Address Map Register 2 - (OFFSET, MASK, VALUE) (0XFD070208, 0x0F0F0F0FU ,0x00000000U) - RegMask = (DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP2_OFFSET ,0x0F0F0F0FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP3 @ 0XFD07020C

- - - Full bus width mode: Selects the HIF address bit used as column address bit 9. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: Selects the HIF address bit used as - column address bit 13 (11 in LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected HIF address bit i - determined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: - er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source addr - ss bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus an - hence column bit 10 is used. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B9 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 8. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 9. - Quarter bus width mode: Selects the HIF address bit used as column address bit 11 (10 i - LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 8 The selected HIF address bit is determined by adding the i - ternal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specif - cation, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to col - mn address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is use - . - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B8 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 7. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 8. - Quarter bus width mode: Selects the HIF address bit used as column address bit 9. Valid - Range: 0 to 7, and 15 Internal Base: 7 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B7 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 6. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 7. - Quarter bus width mode: Selects the HIF address bit used as column address bit 8. Valid - Range: 0 to 7, and 15 Internal Base: 6 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B6 0x0 - - Address Map Register 3 - (OFFSET, MASK, VALUE) (0XFD07020C, 0x0F0F0F0FU ,0x00000000U) - RegMask = (DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP3_OFFSET ,0x0F0F0F0FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP4 @ 0XFD070210

- - - Full bus width mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Unused. To make it unused, this should be tied to 4'hF. - Quarter bus width mode: Unused. To make it unused, this must - e tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 11 The selected HIF address bit is determined by adding the intern - l base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificati - n, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column a - dress bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is used. - PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B11 0xf - - - Full bus width mode: Selects the HIF address bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: UNUSED. - To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF address bit is d - termined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per - JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source address - bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and h - nce column bit 10 is used. - PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B10 0xf - - Address Map Register 4 - (OFFSET, MASK, VALUE) (0XFD070210, 0x00000F0FU ,0x00000F0FU) - RegMask = (DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK | DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK | 0 ); - - RegVal = ((0x0000000FU << DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT - | 0x0000000FU << DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP4_OFFSET ,0x00000F0FU ,0x00000F0FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP5 @ 0XFD070214

- - Selects the HIF address bit used as row address bit 11. Valid Range: 0 to 11, and 15 Internal Base: 17 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 11 is set to 0. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B11 0x8 - - Selects the HIF address bits used as row address bits 2 to 10. Valid Range: 0 to 11, and 15 Internal Base: 8 (for row address - bit 2), 9 (for row address bit 3), 10 (for row address bit 4) etc increasing to 16 (for row address bit 10) The selected HIF - ddress bit for each of the row address bits is determined by adding the internal base to the value of this field. When value - 5 is used the values of row address bits 2 to 10 are defined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10 0xf - - Selects the HIF address bits used as row address bit 1. Valid Range: 0 to 11 Internal Base: 7 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B1 0x8 - - Selects the HIF address bits used as row address bit 0. Valid Range: 0 to 11 Internal Base: 6 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B0 0x8 - - Address Map Register 5 - (OFFSET, MASK, VALUE) (0XFD070214, 0x0F0F0F0FU ,0x080F0808U) - RegMask = (DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT - | 0x0000000FU << DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT - | 0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT - | 0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP5_OFFSET ,0x0F0F0F0FU ,0x080F0808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP6 @ 0XFD070218

- - Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address - having row[14:13]==2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. All addresses are valid Present on - y in designs configured to support LPDDR3. - PSU_DDRC_ADDRMAP6_LPDDR3_6GB_12GB 0x0 - - Selects the HIF address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 15 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B15 0xf - - Selects the HIF address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 20 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 14 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B14 0x8 - - Selects the HIF address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 19 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 13 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B13 0x8 - - Selects the HIF address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 18 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 12 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B12 0x8 - - Address Map Register 6 - (OFFSET, MASK, VALUE) (0XFD070218, 0x8F0F0F0FU ,0x0F080808U) - RegMask = (DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT - | 0x0000000FU << DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP6_OFFSET ,0x8F0F0F0FU ,0x0F080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP7 @ 0XFD07021C

- - Selects the HIF address bit used as row address bit 17. Valid Range: 0 to 10, and 15 Internal Base: 23 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 17 is set to 0. - PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B17 0xf - - Selects the HIF address bit used as row address bit 16. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 16 is set to 0. - PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B16 0xf - - Address Map Register 7 - (OFFSET, MASK, VALUE) (0XFD07021C, 0x00000F0FU ,0x00000F0FU) - RegMask = (DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK | DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK | 0 ); - - RegVal = ((0x0000000FU << DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT - | 0x0000000FU << DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP7_OFFSET ,0x00000F0FU ,0x00000F0FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP8 @ 0XFD070220

- - Selects the HIF address bits used as bank group address bit 1. Valid Range: 0 to 30, and 31 Internal Base: 3 The selected HIF - address bit for each of the bank group address bits is determined by adding the internal base to the value of this field. If - et to 31, bank group address bit 1 is set to 0. - PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B1 0x8 - - Selects the HIF address bits used as bank group address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address - bit for each of the bank group address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B0 0x8 - - Address Map Register 8 - (OFFSET, MASK, VALUE) (0XFD070220, 0x00001F1FU ,0x00000808U) - RegMask = (DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK | DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT - | 0x00000008U << DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP8_OFFSET ,0x00001F1FU ,0x00000808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP9 @ 0XFD070224

- - Selects the HIF address bits used as row address bit 5. Valid Range: 0 to 11 Internal Base: 11 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B5 0x8 - - Selects the HIF address bits used as row address bit 4. Valid Range: 0 to 11 Internal Base: 10 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B4 0x8 - - Selects the HIF address bits used as row address bit 3. Valid Range: 0 to 11 Internal Base: 9 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B3 0x8 - - Selects the HIF address bits used as row address bit 2. Valid Range: 0 to 11 Internal Base: 8 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B2 0x8 - - Address Map Register 9 - (OFFSET, MASK, VALUE) (0XFD070224, 0x0F0F0F0FU ,0x08080808U) - RegMask = (DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP9_OFFSET ,0x0F0F0F0FU ,0x08080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP10 @ 0XFD070228

- - Selects the HIF address bits used as row address bit 9. Valid Range: 0 to 11 Internal Base: 15 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B9 0x8 - - Selects the HIF address bits used as row address bit 8. Valid Range: 0 to 11 Internal Base: 14 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B8 0x8 - - Selects the HIF address bits used as row address bit 7. Valid Range: 0 to 11 Internal Base: 13 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B7 0x8 - - Selects the HIF address bits used as row address bit 6. Valid Range: 0 to 11 Internal Base: 12 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B6 0x8 - - Address Map Register 10 - (OFFSET, MASK, VALUE) (0XFD070228, 0x0F0F0F0FU ,0x08080808U) - RegMask = (DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP10_OFFSET ,0x0F0F0F0FU ,0x08080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP11 @ 0XFD07022C

- - Selects the HIF address bits used as row address bit 10. Valid Range: 0 to 11 Internal Base: 16 The selected HIF address bit - or each of the row address bits is determined by adding the internal base to the value of this field. This register field is - sed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP11_ADDRMAP_ROW_B10 0x8 - - Address Map Register 11 - (OFFSET, MASK, VALUE) (0XFD07022C, 0x0000000FU ,0x00000008U) - RegMask = (DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP11_OFFSET ,0x0000000FU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : ODTCFG @ 0XFD070240

- - Cycles to hold ODT for a write command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/ - 67), 0x6 (DDR2-800), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (DDR2-1066) DDR3: - BL8: 0x6 DDR4: - - L8: 5 + WR_PREAMBLE + CRC_MODE WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 (not CRC mode), 1 - CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) - PSU_DDRC_ODTCFG_WR_ODT_HOLD 0x6 - - The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting must - remain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CWL + AL - 3 (DDR2-400/533/ - 67), CWL + AL - 4 (DDR2-800), CWL + AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT for write operation - DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) - PSU_DDRC_ODTCFG_WR_ODT_DELAY 0x0 - - Cycles to hold ODT for a read command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066) - 0x7 (DDR2-1066) - BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8: 5 + RD_PREAMBLE RD_PREAMBLE = 1 ( - tCK write preamble), 2 (2tCK write preamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + RU(tODTon(max)/tC - ) - PSU_DDRC_ODTCFG_RD_ODT_HOLD 0x6 - - The delay, in clock cycles, from issuing a read command to setting ODT values associated with that command. ODT setting must - emain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CL + AL - 4 (not DDR2-1066), - CL + AL - 5 (DDR2-1066) If (CL + AL - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - CWL DDR4: - CL - C - L - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK - write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, - uMCTL2 does not support ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - RU(tODTon(max)/tCK) - PSU_DDRC_ODTCFG_RD_ODT_DELAY 0x0 - - ODT Configuration Register - (OFFSET, MASK, VALUE) (0XFD070240, 0x0F1F0F7CU ,0x06000600U) - RegMask = (DDRC_ODTCFG_WR_ODT_HOLD_MASK | DDRC_ODTCFG_WR_ODT_DELAY_MASK | DDRC_ODTCFG_RD_ODT_HOLD_MASK | DDRC_ODTCFG_RD_ODT_DELAY_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_ODTCFG_WR_ODT_HOLD_SHIFT - | 0x00000000U << DDRC_ODTCFG_WR_ODT_DELAY_SHIFT - | 0x00000006U << DDRC_ODTCFG_RD_ODT_HOLD_SHIFT - | 0x00000000U << DDRC_ODTCFG_RD_ODT_DELAY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ODTCFG_OFFSET ,0x0F1F0F7CU ,0x06000600U); - /*############################################################################################################################ */ - - /*Register : ODTMAP @ 0XFD070244

- - Indicates which remote ODTs must be turned on during a read from rank 1. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks - PSU_DDRC_ODTMAP_RANK1_RD_ODT 0x0 - - Indicates which remote ODTs must be turned on during a write to rank 1. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks - PSU_DDRC_ODTMAP_RANK1_WR_ODT 0x0 - - Indicates which remote ODTs must be turned on during a read from rank 0. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. - PSU_DDRC_ODTMAP_RANK0_RD_ODT 0x0 - - Indicates which remote ODTs must be turned on during a write to rank 0. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. - PSU_DDRC_ODTMAP_RANK0_WR_ODT 0x1 - - ODT/Rank Map Register - (OFFSET, MASK, VALUE) (0XFD070244, 0x00003333U ,0x00000001U) - RegMask = (DDRC_ODTMAP_RANK1_RD_ODT_MASK | DDRC_ODTMAP_RANK1_WR_ODT_MASK | DDRC_ODTMAP_RANK0_RD_ODT_MASK | DDRC_ODTMAP_RANK0_WR_ODT_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ODTMAP_RANK1_RD_ODT_SHIFT - | 0x00000000U << DDRC_ODTMAP_RANK1_WR_ODT_SHIFT - | 0x00000000U << DDRC_ODTMAP_RANK0_RD_ODT_SHIFT - | 0x00000001U << DDRC_ODTMAP_RANK0_WR_ODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ODTMAP_OFFSET ,0x00003333U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : SCHED @ 0XFD070250

- - When the preferred transaction store is empty for these many clock cycles, switch to the alternate transaction store if it is - non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write t - ansaction store is the alternative store. When prefer write over read is set this is reversed. 0x0 is a legal value for this - egister. When set to 0x0, the transaction store switching will happen immediately when the switching conditions become true. - OR PERFORMANCE ONLY - PSU_DDRC_SCHED_RDWR_IDLE_GAP 0x1 - - UNUSED - PSU_DDRC_SCHED_GO2CRITICAL_HYSTERESIS 0x0 - - Number of entries in the low priority transaction store is this value + 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) i - the number of entries available for the high priority transaction store. Setting this to maximum value allocates all entries - to low priority transaction store. Setting this to 0 allocates 1 entry to low priority transaction store and the rest to high - priority transaction store. Note: In ECC configurations, the numbers of write and low priority read credits issued is one les - than in the non-ECC case. One entry each is reserved in the write and low-priority read CAMs for storing the RMW requests ar - sing out of single bit error correction RMW operation. - PSU_DDRC_SCHED_LPR_NUM_ENTRIES 0x20 - - If true, bank is kept open only while there are page hit transactions available in the CAM to that bank. The last read or wri - e command in the CAM with a bank and page hit will be executed with auto-precharge if SCHED1.pageclose_timer=0. Even if this - egister set to 1 and SCHED1.pageclose_timer is set to 0, explicit precharge (and not auto-precharge) may be issued in some ca - es where there is a mode switch between Write and Read or between LPR and HPR. The Read and Write commands that are executed - s part of the ECC scrub requests are also executed without auto-precharge. If false, the bank remains open until there is a n - ed to close it (to open a different page, or for page timeout or refresh timeout) - also known as open page policy. The open - age policy can be overridden by setting the per-command-autopre bit on the HIF interface (hif_cmd_autopre). The pageclose fea - ure provids a midway between Open and Close page policies. FOR PERFORMANCE ONLY. - PSU_DDRC_SCHED_PAGECLOSE 0x0 - - If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. - PSU_DDRC_SCHED_PREFER_WRITE 0x0 - - Active low signal. When asserted ('0'), all incoming transactions are forced to low priority. This implies that all High Prio - ity Read (HPR) and Variable Priority Read commands (VPR) will be treated as Low Priority Read (LPR) commands. On the write si - e, all Variable Priority Write (VPW) commands will be treated as Normal Priority Write (NPW) commands. Forcing the incoming t - ansactions to low priority implicitly turns off Bypass path for read commands. FOR PERFORMANCE ONLY. - PSU_DDRC_SCHED_FORCE_LOW_PRI_N 0x1 - - Scheduler Control Register - (OFFSET, MASK, VALUE) (0XFD070250, 0x7FFF3F07U ,0x01002001U) - RegMask = (DDRC_SCHED_RDWR_IDLE_GAP_MASK | DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK | DDRC_SCHED_LPR_NUM_ENTRIES_MASK | DDRC_SCHED_PAGECLOSE_MASK | DDRC_SCHED_PREFER_WRITE_MASK | DDRC_SCHED_FORCE_LOW_PRI_N_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_SCHED_RDWR_IDLE_GAP_SHIFT - | 0x00000000U << DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT - | 0x00000020U << DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT - | 0x00000000U << DDRC_SCHED_PAGECLOSE_SHIFT - | 0x00000000U << DDRC_SCHED_PREFER_WRITE_SHIFT - | 0x00000001U << DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SCHED_OFFSET ,0x7FFF3F07U ,0x01002001U); - /*############################################################################################################################ */ - - /*Register : PERFLPR1 @ 0XFD070264

- - Number of transactions that are serviced once the LPR queue goes critical is the smaller of: - (a) This number - (b) Number o - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH 0x8 - - Number of clocks that the LPR queue can be starved before it goes critical. The minimum valid functional value for this regis - er is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - be disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFLPR1_LPR_MAX_STARVE 0x40 - - Low Priority Read CAM Register 1 - (OFFSET, MASK, VALUE) (0XFD070264, 0xFF00FFFFU ,0x08000040U) - RegMask = (DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK | DDRC_PERFLPR1_LPR_MAX_STARVE_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT - | 0x00000040U << DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PERFLPR1_OFFSET ,0xFF00FFFFU ,0x08000040U); - /*############################################################################################################################ */ - - /*Register : PERFWR1 @ 0XFD07026C

- - Number of transactions that are serviced once the WR queue goes critical is the smaller of: - (a) This number - (b) Number of - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFWR1_W_XACT_RUN_LENGTH 0x8 - - Number of clocks that the WR queue can be starved before it goes critical. The minimum valid functional value for this regist - r is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - e disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFWR1_W_MAX_STARVE 0x40 - - Write CAM Register 1 - (OFFSET, MASK, VALUE) (0XFD07026C, 0xFF00FFFFU ,0x08000040U) - RegMask = (DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK | DDRC_PERFWR1_W_MAX_STARVE_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT - | 0x00000040U << DDRC_PERFWR1_W_MAX_STARVE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PERFWR1_OFFSET ,0xFF00FFFFU ,0x08000040U); - /*############################################################################################################################ */ - - /*Register : DQMAP5 @ 0XFD070294

- - All even ranks have the same DQ mapping controled by DQMAP0-4 register as rank 0. This register provides DQ swap function for - all odd ranks to support CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap bit 2 with 3, swap bit 4 with 5 and - wap bit 6 with 7. 1: Disable rank based DQ swapping 0: Enable rank based DQ swapping Present only in designs configured to su - port DDR4. - PSU_DDRC_DQMAP5_DIS_DQ_RANK_SWAP 0x1 - - DQ Map Register 5 - (OFFSET, MASK, VALUE) (0XFD070294, 0x00000001U ,0x00000001U) - RegMask = (DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DQMAP5_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : DBG0 @ 0XFD070300

- - When this is set to '0', auto-precharge is disabled for the flushed command in a collision case. Collision cases are write fo - lowed by read to same address, read followed by write to same address, or write followed by write to same address with DBG0.d - s_wc bit = 1 (where same address comparisons exclude the two address bits representing critical word). FOR DEBUG ONLY. - PSU_DDRC_DBG0_DIS_COLLISION_PAGE_OPT 0x0 - - When 1, disable write combine. FOR DEBUG ONLY - PSU_DDRC_DBG0_DIS_WC 0x0 - - Debug Register 0 - (OFFSET, MASK, VALUE) (0XFD070300, 0x00000011U ,0x00000000U) - RegMask = (DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK | DDRC_DBG0_DIS_WC_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT - | 0x00000000U << DDRC_DBG0_DIS_WC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBG0_OFFSET ,0x00000011U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DBGCMD @ 0XFD07030C

- - Setting this register bit to 1 allows refresh and ZQCS commands to be triggered from hardware via the IOs ext_*. If set to 1, - the fields DBGCMD.zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignored by the uMCTL2 logic. Setting this - register bit to 0 allows refresh and ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_short and DBGCMD.rank - _refresh. If set to 0, the hardware pins ext_* have no function, and are ignored by the uMCTL2 logic. This register is static - and may only be changed when the DDRC reset signal, core_ddrc_rstn, is asserted (0). - PSU_DDRC_DBGCMD_HW_REF_ZQ_EN 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ctrlupd_req to the PHY. When this request is stored in - he uMCTL2, the bit is automatically cleared. This operation must only be performed when DFIUPD0.dis_auto_ctrlupd=1. - PSU_DDRC_DBGCMD_CTRLUPD 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS (ZQ calibration short)/MPC(ZQ calibration) command to - he SDRAM. When this request is stored in the uMCTL2, the bit is automatically cleared. This operation can be performed only w - en ZQCTL0.dis_auto_zq=1. It is recommended NOT to set this register bit if in Init operating mode. This register bit is ignor - d when in Self-Refresh(except LPDDR4) and SR-Powerdown(LPDDR4) and Deep power-down operating modes and Maximum Power Saving M - de. - PSU_DDRC_DBGCMD_ZQ_CALIB_SHORT 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 1. Writing to this bit causes DBGSTAT.rank1 - refresh_busy to be set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode. - PSU_DDRC_DBGCMD_RANK1_REFRESH 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 0. Writing to this bit causes DBGSTAT.rank0 - refresh_busy to be set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode. - PSU_DDRC_DBGCMD_RANK0_REFRESH 0x0 - - Command Debug Register - (OFFSET, MASK, VALUE) (0XFD07030C, 0x80000033U ,0x00000000U) - RegMask = (DDRC_DBGCMD_HW_REF_ZQ_EN_MASK | DDRC_DBGCMD_CTRLUPD_MASK | DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK | DDRC_DBGCMD_RANK1_REFRESH_MASK | DDRC_DBGCMD_RANK0_REFRESH_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT - | 0x00000000U << DDRC_DBGCMD_CTRLUPD_SHIFT - | 0x00000000U << DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT - | 0x00000000U << DDRC_DBGCMD_RANK1_REFRESH_SHIFT - | 0x00000000U << DDRC_DBGCMD_RANK0_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBGCMD_OFFSET ,0x80000033U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SWCTL @ 0XFD070320

- - Enable quasi-dynamic register programming outside reset. Program register to 0 to enable quasi-dynamic programming. Set back - egister to 1 once programming is done. - PSU_DDRC_SWCTL_SW_DONE 0x0 - - Software register programming control enable - (OFFSET, MASK, VALUE) (0XFD070320, 0x00000001U ,0x00000000U) - RegMask = (DDRC_SWCTL_SW_DONE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SWCTL_SW_DONE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SWCTL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCCFG @ 0XFD070400

- - Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expands every AXI burst into multiple HIF commands, using t - e memory burst length as a unit. If set to 1, then XPI will use half of the memory burst length as a unit. This applies to bo - h reads and writes. When MSTR.data_bus_width==00, setting bl_exp_mode to 1 has no effect. This can be used in cases where Par - ial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.dis_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_cc - _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionality is not supported in the following cases: - UMCTL2_ - ARTIAL_WR=0 - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 and MSTR.reg_ddrc_burst_rdwr=1000 (LP - DR4 only) - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burst_rdwr=0100 (DDR4 - only), with either MSTR.reg_ddrc_burstchop=0 or CRCPARCTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Share - -AC is enabled - PSU_DDRC_PCCFG_BL_EXP_MODE 0x0 - - Page match four limit. If set to 1, limits the number of consecutive same page DDRC transactions that can be granted by the P - rt Arbiter to four when Page Match feature is enabled. If set to 0, there is no limit imposed on number of consecutive same p - ge DDRC transactions. - PSU_DDRC_PCCFG_PAGEMATCH_LIMIT 0x0 - - If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals going to DDRC based - n urgent input (awurgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_go2critical_wr and co_gs_go2critica - _lpr/co_gs_go2critical_hpr signals at DDRC are driven to 1b'0. - PSU_DDRC_PCCFG_GO2CRITICAL_EN 0x1 - - Port Common Configuration Register - (OFFSET, MASK, VALUE) (0XFD070400, 0x00000111U ,0x00000001U) - RegMask = (DDRC_PCCFG_BL_EXP_MODE_MASK | DDRC_PCCFG_PAGEMATCH_LIMIT_MASK | DDRC_PCCFG_GO2CRITICAL_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCCFG_BL_EXP_MODE_SHIFT - | 0x00000000U << DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT - | 0x00000001U << DDRC_PCCFG_GO2CRITICAL_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCCFG_OFFSET ,0x00000111U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGR_0 @ 0XFD070404

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_0_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_0_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_0_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070404, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_0_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_0 @ 0XFD070408

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_0_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_0_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_0_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_0_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_0 @ 0XFD070490

- - Enables port n. - PSU_DDRC_PCTRL_0_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070490, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_0_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_0_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_0_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_0 @ 0XFD070494

- - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION1 0x2 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1 0xb - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070494, 0x0033000FU ,0x0020000BU) - RegMask = (DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_0_OFFSET ,0x0033000FU ,0x0020000BU); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_0 @ 0XFD070498

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070498, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_0_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_1 @ 0XFD0704B4

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_1_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_1_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_1_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD0704B4, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_1_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_1 @ 0XFD0704B8

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_1_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_1_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_1_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_1_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_1 @ 0XFD070540

- - Enables port n. - PSU_DDRC_PCTRL_1_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070540, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_1_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_1_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_1_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_1 @ 0XFD070544

- - This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION2 0x2 - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION1 0x0 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION0 0x0 - - Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2 0xb - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070544, 0x03330F0FU ,0x02000B03U) - RegMask = (DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_1_OFFSET ,0x03330F0FU ,0x02000B03U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_1 @ 0XFD070548

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070548, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_1_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_2 @ 0XFD070564

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_2_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_2_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_2_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070564, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_2_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_2 @ 0XFD070568

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_2_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_2_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_2_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_2_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_2 @ 0XFD0705F0

- - Enables port n. - PSU_DDRC_PCTRL_2_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD0705F0, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_2_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_2_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_2_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_2 @ 0XFD0705F4

- - This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION2 0x2 - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION1 0x0 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION0 0x0 - - Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2 0xb - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0705F4, 0x03330F0FU ,0x02000B03U) - RegMask = (DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_2_OFFSET ,0x03330F0FU ,0x02000B03U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_2 @ 0XFD0705F8

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0705F8, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_2_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_3 @ 0XFD070614

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_3_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_3_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_3_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070614, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_3_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_3 @ 0XFD070618

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_3_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_3_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_3_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_3_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_3 @ 0XFD0706A0

- - Enables port n. - PSU_DDRC_PCTRL_3_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD0706A0, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_3_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_3_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_3_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_3 @ 0XFD0706A4

- - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0706A4, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_3_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_3 @ 0XFD0706A8

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0706A8, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_3_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_3 @ 0XFD0706AC

- - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0706AC, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_3_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_3 @ 0XFD0706B0

- - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0706B0, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_3_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGR_4 @ 0XFD0706C4

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_4_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_4_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_4_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_4_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_4 @ 0XFD0706C8

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_4_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_4_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_4_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_4_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_4 @ 0XFD070750

- - Enables port n. - PSU_DDRC_PCTRL_4_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070750, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_4_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_4_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_4_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_4 @ 0XFD070754

- - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070754, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_4_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_4 @ 0XFD070758

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070758, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_4_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_4 @ 0XFD07075C

- - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD07075C, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_4_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_4 @ 0XFD070760

- - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070760, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_4_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGR_5 @ 0XFD070774

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_5_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_5_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_5_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070774, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_5_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_5 @ 0XFD070778

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_5_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_5_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_5_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_5_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_5 @ 0XFD070800

- - Enables port n. - PSU_DDRC_PCTRL_5_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070800, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_5_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_5_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_5_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_5 @ 0XFD070804

- - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070804, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_5_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_5 @ 0XFD070808

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070808, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_5_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_5 @ 0XFD07080C

- - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD07080C, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_5_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_5 @ 0XFD070810

- - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070810, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_5_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : SARBASE0 @ 0XFD070F04

- - Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). - PSU_DDRC_SARBASE0_BASE_ADDR 0x0 - - SAR Base Address Register n - (OFFSET, MASK, VALUE) (0XFD070F04, 0x000001FFU ,0x00000000U) - RegMask = (DDRC_SARBASE0_BASE_ADDR_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SARBASE0_BASE_ADDR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARBASE0_OFFSET ,0x000001FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SARSIZE0 @ 0XFD070F08

- - Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block. - PSU_DDRC_SARSIZE0_NBLOCKS 0x0 - - SAR Size Register n - (OFFSET, MASK, VALUE) (0XFD070F08, 0x000000FFU ,0x00000000U) - RegMask = (DDRC_SARSIZE0_NBLOCKS_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SARSIZE0_NBLOCKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARSIZE0_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SARBASE1 @ 0XFD070F0C

- - Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). - PSU_DDRC_SARBASE1_BASE_ADDR 0x10 - - SAR Base Address Register n - (OFFSET, MASK, VALUE) (0XFD070F0C, 0x000001FFU ,0x00000010U) - RegMask = (DDRC_SARBASE1_BASE_ADDR_MASK | 0 ); - - RegVal = ((0x00000010U << DDRC_SARBASE1_BASE_ADDR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARBASE1_OFFSET ,0x000001FFU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : SARSIZE1 @ 0XFD070F10

- - Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block. - PSU_DDRC_SARSIZE1_NBLOCKS 0xf - - SAR Size Register n - (OFFSET, MASK, VALUE) (0XFD070F10, 0x000000FFU ,0x0000000FU) - RegMask = (DDRC_SARSIZE1_NBLOCKS_MASK | 0 ); +unsigned long psu_ddr_init_data(void) +{ + /* + * DDR INITIALIZATION + */ + /* + * DDR CONTROLLER RESET + */ + /* + * Register : RST_DDR_SS @ 0XFD1A0108 + + * DDR block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X1 + + * DDR sub system block level reset + * (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_RST_DDR_SS_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MSTR @ 0XFD070000 + + * Indicates the configuration of the device used in the system. - 00 - x4 + * device - 01 - x8 device - 10 - x16 device - 11 - x32 device + * PSU_DDRC_MSTR_DEVICE_CONFIG 0x1 + + * Choose which registers are used. - 0 - Original registers - 1 - Shadow r + * egisters + * PSU_DDRC_MSTR_FREQUENCY_MODE 0x0 + + * Only present for multi-rank configurations. Each bit represents one rank + * . For two-rank configurations, only bits[25:24] are present. - 1 - popul + * ated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks follow + * ing combinations are legal: - 01 - One rank - 11 - Two ranks - Others - + * Reserved. For 4 ranks following combinations are legal: - 0001 - One ran + * k - 0011 - Two ranks - 1111 - Four ranks + * PSU_DDRC_MSTR_ACTIVE_RANKS 0x1 + + * SDRAM burst length used: - 0001 - Burst length of 2 (only supported for + * mDDR) - 0010 - Burst length of 4 - 0100 - Burst length of 8 - 1000 - Bur + * st length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other + * values are reserved. This controls the burst size used to access the SDR + * AM. This must match the burst length mode register setting in the SDRAM. + * (For BC4/8 on-the-fly mode of DDR3 and DDR4, set this field to 0x0100) + * Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGTH + * is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 + * PSU_DDRC_MSTR_BURST_RDWR 0x4 + + * Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low + * frequency operation. Set to 0 to put uMCTL2 and DRAM in DLL-on mode for + * normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARC + * TL1.crc_parity_retry_enable = 1), dll_off_mode is not supported, and thi + * s bit must be set to '0'. + * PSU_DDRC_MSTR_DLL_OFF_MODE 0x0 + + * Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full + * DQ bus width to SDRAM - 01 - Half DQ bus width to SDRAM - 10 - Quarter + * DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is + * only supported when the SDRAM bus width is a multiple of 16, and quarter + * bus width mode is only supported when the SDRAM bus width is a multiple + * of 32 and the configuration parameter MEMC_QBUS_SUPPORT is set. Bus wid + * th refers to DQ bus width (excluding any ECC width). + * PSU_DDRC_MSTR_DATA_BUS_WIDTH 0x0 + + * 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the D + * RAM in normal mode (1N). This register can be changed, only when the Con + * troller is in self-refresh mode. This signal must be set the same value + * as MR3 bit A3. Note: Geardown mode is not supported if the configuration + * parameter MEMC_CMD_RTN2IDLE is set + * PSU_DDRC_MSTR_GEARDOWN_MODE 0x0 + + * If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timin + * g, all command signals (except chip select) are held for 2 clocks on the + * SDRAM bus. Chip select is asserted on the second cycle of the command N + * ote: 2T timing is not supported in LPDDR2/LPDDR3/LPDDR4 mode Note: 2T ti + * ming is not supported if the configuration parameter MEMC_CMD_RTN2IDLE i + * s set Note: 2T timing is not supported in DDR4 geardown mode. + * PSU_DDRC_MSTR_EN_2T_TIMING_MODE 0x0 + + * When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exerci + * sed only in HIF configurations (UMCTL2_INCL_ARB not set) and if in full + * bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exer + * cised only if Partial Writes enabled (UMCTL2_PARTIAL_WR=1) and if CRC is + * disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabl + * ed (CRCPARCTL1.crc_parity_retry_enable = 1), burst chop is not supported + * , and this bit must be set to '0' + * PSU_DDRC_MSTR_BURSTCHOP 0x0 + + * Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 d + * evice in use Present only in designs configured to support LPDDR4. + * PSU_DDRC_MSTR_LPDDR4 0x0 + + * Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device + * in use Present only in designs configured to support DDR4. + * PSU_DDRC_MSTR_DDR4 0x1 + + * Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 d + * evice in use Present only in designs configured to support LPDDR3. + * PSU_DDRC_MSTR_LPDDR3 0x0 + + * Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 d + * evice in use Present only in designs configured to support LPDDR2. + * PSU_DDRC_MSTR_LPDDR2 0x0 + + * Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM de + * vice in use Only present in designs that support DDR3. + * PSU_DDRC_MSTR_DDR3 0x0 + + * Master Register + * (OFFSET, MASK, VALUE) (0XFD070000, 0xE30FBE3DU ,0x41040010U) + */ + PSU_Mask_Write(DDRC_MSTR_OFFSET, 0xE30FBE3DU, 0x41040010U); +/*##################################################################### */ + + /* + * Register : MRCTRL0 @ 0XFD070010 + + * Setting this register bit to 1 triggers a mode register read or write op + * eration. When the MR operation is complete, the uMCTL2 automatically cle + * ars this bit. The other register fields of this register must be written + * in a separate APB transaction, before setting this mr_wr bit. It is rec + * ommended NOT to set this signal if in Init, Deep power-down or MPSM oper + * ating modes. + * PSU_DDRC_MRCTRL0_MR_WR 0x0 + + * Address of the mode register that is to be written to. - 0000 - MR0 - 00 + * 01 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 0101 - MR5 - 0110 - MR + * 6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data + * for mode register addressing in LPDDR2/LPDDR3/LPDDR4) This signal is als + * o used for writing to control words of RDIMMs. In that case, it correspo + * nds to the bank address bits sent to the RDIMM In case of DDR4, the bit[ + * 3:2] corresponds to the bank group bits. Therefore, the bit[3] as well a + * s the bit[2:0] must be set to an appropriate value which is considered b + * oth the Address Mirroring of UDIMMs/RDIMMs and the Output Inversion of R + * DIMMs. + * PSU_DDRC_MRCTRL0_MR_ADDR 0x0 + + * Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desire + * d to access all ranks, so all bits should be set to 1. However, for mult + * i-rank UDIMMs/RDIMMs which implement address mirroring, it may be necess + * ary to access ranks individually. Examples (assume uMCTL2 is configured + * for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x + * 5 - select ranks 0 and 2 - 0xA - select ranks 1 and 3 - 0xF - select ran + * ks 0, 1, 2 and 3 + * PSU_DDRC_MRCTRL0_MR_RANK 0x3 + + * Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 b + * efore automatic SDRAM initialization routine or not. For DDR4, this bit + * can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM init + * ialization. For LPDDR4, this bit can be used to program additional mode + * registers before automatic SDRAM initialization if necessary. Note: This + * must be cleared to 0 after completing Software operation. Otherwise, SD + * RAM initialization routine will not re-start. - 0 - Software interventio + * n is not allowed - 1 - Software intervention is allowed + * PSU_DDRC_MRCTRL0_SW_INIT_INT 0x0 + + * Indicates whether the mode register operation is MRS in PDA mode or not + * - 0 - MRS - 1 - MRS in Per DRAM Addressability mode + * PSU_DDRC_MRCTRL0_PDA_EN 0x0 + + * Indicates whether the mode register operation is MRS or WR/RD for MPR (o + * nly supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR + * PSU_DDRC_MRCTRL0_MPR_EN 0x0 + + * Indicates whether the mode register operation is read or write. Only use + * d for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Read + * PSU_DDRC_MRCTRL0_MR_TYPE 0x0 + + * Mode Register Read/Write Control Register 0. Note: Do not enable more th + * an one of the following fields simultaneously: - sw_init_int - pda_en - + * mpr_en + * (OFFSET, MASK, VALUE) (0XFD070010, 0x8000F03FU ,0x00000030U) + */ + PSU_Mask_Write(DDRC_MRCTRL0_OFFSET, 0x8000F03FU, 0x00000030U); +/*##################################################################### */ + + /* + * Register : DERATEEN @ 0XFD070020 + + * Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating us + * es +2. - 2 - Derating uses +3. - 3 - Derating uses +4. Present only in d + * esigns configured to support LPDDR4. The required number of cycles for d + * erating can be determined by dividing 3.75ns by the core_ddrc_core_clk p + * eriod, and rounding up the next integer. + * PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x2 + + * Derate byte Present only in designs configured to support LPDDR2/LPDDR3/ + * LPDDR4 Indicates which byte of the MRR data is used for derating. The ma + * ximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. + * PSU_DDRC_DERATEEN_DERATE_BYTE 0x0 + + * Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present onl + * y in designs configured to support LPDDR2/LPDDR3/LPDDR4 Set to 0 for all + * LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ + * ddrc_core_clk period. Can be 0 or 1 for LPDDR3/LPDDR4, depending if +1.8 + * 75 ns is less than a core_ddrc_core_clk period or not. + * PSU_DDRC_DERATEEN_DERATE_VALUE 0x0 + + * Enables derating - 0 - Timing parameter derating is disabled - 1 - Timin + * g parameter derating is enabled using MR4 read value. Present only in de + * signs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set + * to '0' for non-LPDDR2/LPDDR3/LPDDR4 mode. + * PSU_DDRC_DERATEEN_DERATE_ENABLE 0x0 + + * Temperature Derate Enable Register + * (OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000200U) + */ + PSU_Mask_Write(DDRC_DERATEEN_OFFSET, 0x000003F3U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : DERATEINT @ 0XFD070024 + + * Interval between two MR4 reads, used to derate the timing parameters. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4. This r + * egister must not be set to zero + * PSU_DDRC_DERATEINT_MR4_READ_INTERVAL 0x800000 + + * Temperature Derate Interval Register + * (OFFSET, MASK, VALUE) (0XFD070024, 0xFFFFFFFFU ,0x00800000U) + */ + PSU_Mask_Write(DDRC_DERATEINT_OFFSET, 0xFFFFFFFFU, 0x00800000U); +/*##################################################################### */ + + /* + * Register : PWRCTL @ 0XFD070030 + + * Self refresh state is an intermediate state to enter to Self refresh pow + * er down state or exit Self refresh power down state for LPDDR4. This reg + * ister controls transition from the Self refresh state. - 1 - Prohibit tr + * ansition from Self refresh state - 0 - Allow transition from Self refres + * h state + * PSU_DDRC_PWRCTL_STAY_IN_SELFREF 0x0 + + * A value of 1 to this register causes system to move to Self Refresh stat + * e immediately, as long as it is not in INIT or DPD/MPSM operating_mode. + * This is referred to as Software Entry/Exit to Self Refresh. - 1 - Softwa + * re Entry to Self Refresh - 0 - Software Exit from Self Refresh + * PSU_DDRC_PWRCTL_SELFREF_SW 0x0 + + * When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode + * when the transaction store is empty. This register must be reset to '0' + * to bring uMCTL2 out of maximum power saving mode. Present only in desig + * ns configured to support DDR4. For non-DDR4, this register should not be + * set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if + * the PHY parameter DWC_AC_CS_USE is disabled, as the MPSM exit sequence r + * equires the chip-select signal to toggle. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRCTL_MPSM_EN 0x0 + + * Enable the assertion of dfi_dram_clk_disable whenever a clock is not req + * uired by the SDRAM. If set to 0, dfi_dram_clk_disable is never asserted. + * Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only + * be asserted in Self Refresh. In DDR4, can be asserted in following: - i + * n Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, ca + * n be asserted in following: - in Self Refresh - in Power Down - in Deep + * Power Down - during Normal operation (Clock Stop) In LPDDR4, can be asse + * rted in following: - in Self Refresh Power Down - in Power Down - during + * Normal operation (Clock Stop) + * PSU_DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE 0x0 + + * When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the + * transaction store is empty. This register must be reset to '0' to bring + * uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM + * initialization on deep power-down exit. Present only in designs configu + * red to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPD + * DR3, this register should not be set to 1. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRCTL_DEEPPOWERDOWN_EN 0x0 + + * If true then the uMCTL2 goes into power-down after a programmable number + * of cycles 'maximum idle clocks before power down' (PWRTMG.powerdown_to_ + * x32). This register bit may be re-programmed during the course of normal + * operation. + * PSU_DDRC_PWRCTL_POWERDOWN_EN 0x0 + + * If true then the uMCTL2 puts the SDRAM into Self Refresh after a program + * mable number of cycles 'maximum idle clocks before Self Refresh (PWRTMG. + * selfref_to_x32)'. This register bit may be re-programmed during the cour + * se of normal operation. + * PSU_DDRC_PWRCTL_SELFREF_EN 0x0 + + * Low Power Control Register + * (OFFSET, MASK, VALUE) (0XFD070030, 0x0000007FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PWRCTL_OFFSET, 0x0000007FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PWRTMG @ 0XFD070034 + + * After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into Self Refresh. This must be enabled in the PWRCTL.selfref_ + * en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRTMG_SELFREF_TO_X32 0x40 + + * Minimum deep power-down time. For mDDR, value from the JEDEC specificati + * on is 0 as mDDR exits from deep power-down mode immediately after PWRCTL + * .deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDE + * C specification is 500us. Unit: Multiples of 4096 clocks. Present only i + * n designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE + * ONLY. + * PSU_DDRC_PWRTMG_T_DPD_X4096 0x84 + + * After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into power-down. This must be enabled in the PWRCTL.powerdown_ + * en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRTMG_POWERDOWN_TO_X32 0x10 + + * Low Power Timing Register + * (OFFSET, MASK, VALUE) (0XFD070034, 0x00FFFF1FU ,0x00408410U) + */ + PSU_Mask_Write(DDRC_PWRTMG_OFFSET, 0x00FFFF1FU, 0x00408410U); +/*##################################################################### */ + + /* + * Register : RFSHCTL0 @ 0XFD070050 + + * Threshold value in number of clock cycles before the critical refresh or + * page timer expires. A critical refresh is to be issued before this thre + * shold is reached. It is recommended that this not be changed from the de + * fault value, currently shown as 0x2. It must always be less than interna + * lly used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally u + * sed t_rfc_nom_x32 may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating i + * s enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_n + * om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clo + * cks. + * PSU_DDRC_RFSHCTL0_REFRESH_MARGIN 0x2 + + * If the refresh timer (tRFCnom, also known as tREFI) has expired at least + * once, but it has not expired (RFSHCTL0.refresh_burst+1) times yet, then + * a speculative refresh may be performed. A speculative refresh is a refr + * esh performed at a time when refresh would be useful, but before it is a + * bsolutely required. When the SDRAM bus is idle for a period of time dete + * rmined by this RFSHCTL0.refresh_to_x32 and the refresh timer has expired + * at least once since the last refresh, then a speculative refresh is per + * formed. Speculative refreshes continues successively until there are no + * refreshes pending or until new reads or writes are issued to the uMCTL2. + * FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL0_REFRESH_TO_X32 0x10 + + * The programmed value + 1 is the number of refresh timeouts that is allow + * ed to accumulate before traffic is blocked and the refreshes are forced + * to execute. Closing pages to perform a refresh is a one-time penalty tha + * t must be paid for each group of refreshes. Therefore, performing refres + * hes in a burst reduces the per-refresh penalty of these page closings. H + * igher numbers for RFSHCTL.refresh_burst slightly increases utilization; + * lower numbers decreases the worst-case latency associated with refreshes + * . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh + * For information on burst refresh feature refer to section 3.9 of DDR2 J + * EDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always pe + * r-rank and not per-bank. The rank refresh can be accumulated over 8*tREF + * I cycles using the burst refresh feature. In DDR4 mode, according to Fin + * e Granularity feature, 8 refreshes can be postponed in 1X mode, 16 refre + * shes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upda + * tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ens + * ure that tRFCmax is not violated due to a PHY-initiated update occurring + * shortly before a refresh burst was due. In this situation, the refresh + * burst will be delayed until the PHY-initiated update is complete. + * PSU_DDRC_RFSHCTL0_REFRESH_BURST 0x0 + + * - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows + * traffic to flow to other banks. Per bank refresh is not supported by all + * LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4 + * PSU_DDRC_RFSHCTL0_PER_BANK_REFRESH 0x0 + + * Refresh Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD070050, 0x00F1F1F4U ,0x00210000U) + */ + PSU_Mask_Write(DDRC_RFSHCTL0_OFFSET, 0x00F1F1F4U, 0x00210000U); +/*##################################################################### */ + + /* + * Register : RFSHCTL1 @ 0XFD070054 + + * Refresh timer start for rank 1 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32 0x0 + + * Refresh timer start for rank 0 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32 0x0 + + * Refresh Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD070054, 0x0FFF0FFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_RFSHCTL1_OFFSET, 0x0FFF0FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RFSHCTL3 @ 0XFD070060 + + * Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fix + * ed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x (not supported) - 11 + * 0 - Enable on the fly 4x (not supported) - Everything else - reserved No + * te: The on-the-fly modes is not supported in this version of the uMCTL2. + * Note: This must be set up while the Controller is in reset or while the + * Controller is in self-refresh mode. Changing this during normal operati + * on is not allowed. Making this a dynamic register will be supported in f + * uture version of the uMCTL2. + * PSU_DDRC_RFSHCTL3_REFRESH_MODE 0x0 + + * Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that + * the refresh register(s) have been updated. The value is automatically up + * dated when exiting reset, so it does not need to be toggled initially. + * PSU_DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL 0x0 + + * When '1', disable auto-refresh generated by the uMCTL2. When auto-refres + * h is disabled, the SoC core must generate refreshes using the registers + * reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh a + * nd reg_ddrc_rank3_refresh. When dis_auto_refresh transitions from 0 to 1 + * , any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 + * CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d + * isable auto-refresh is not supported, and this bit must be set to '0'. T + * his register field is changeable on the fly. + * PSU_DDRC_RFSHCTL3_DIS_AUTO_REFRESH 0x1 + + * Refresh Control Register 3 + * (OFFSET, MASK, VALUE) (0XFD070060, 0x00000073U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_RFSHCTL3_OFFSET, 0x00000073U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : RFSHTMG @ 0XFD070064 + + * tREFI: Average time interval between refreshes per rank (Specification: + * 7.8us for DDR2, DDR3 and DDR4. See JEDEC specification for mDDR, LPDDR2, + * LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refre + * shes (RFSHCTL0.per_bank_refresh = 0), this register should be set to tRE + * FIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this + * register should be set to tREFIpb For configurations with MEMC_FREQ_RAT + * IO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI val + * ue is different depending on the refresh mode. The user should program t + * he appropriate value from the spec based on the value programmed in the + * refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be grea + * ter than RFSHTMG.t_rfc_min, and RFSHTMG.t_rfc_nom_x32 must be greater th + * an 0x1. Unit: Multiples of 32 clocks. + * PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x81 + + * Used only when LPDDR3 memory type is connected. Should only be changed w + * hen uMCTL2 is in reset. Specifies whether to use the tREFBW parameter (r + * equired by some LPDDR3 devices which comply with earlier versions of the + * LPDDR3 JEDEC specification) or not: - 0 - tREFBW parameter not used - 1 + * - tREFBW parameter used + * PSU_DDRC_RFSHTMG_LPDDR3_TREFBW_EN 0x1 + + * tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_F + * REQ_RATIO=1 configurations, t_rfc_min should be set to RoundUp(tRFCmin/t + * CK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to Ro + * undUp(RoundUp(tRFCmin/tCK)/2). In LPDDR2/LPDDR3/LPDDR4 mode: - if using + * all-bank refreshes, the tRFCmin value in the above equations is equal to + * tRFCab - if using per-bank refreshes, the tRFCmin value in the above eq + * uations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above + * equations is different depending on the refresh mode (fixed 1X,2X,4X) an + * d the device density. The user should program the appropriate value from + * the spec based on the 'refresh_mode' and the device density that is use + * d. Unit: Clocks. + * PSU_DDRC_RFSHTMG_T_RFC_MIN 0x8b + + * Refresh Timing Register + * (OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0081808BU) + */ + PSU_Mask_Write(DDRC_RFSHTMG_OFFSET, 0x0FFF83FFU, 0x0081808BU); +/*##################################################################### */ + + /* + * Register : ECCCFG0 @ 0XFD070070 + + * Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_U + * SE_RMW is defined + * PSU_DDRC_ECCCFG0_DIS_SCRUB 0x1 + + * ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED ov + * er 1 beat - all other settings are reserved for future use + * PSU_DDRC_ECCCFG0_ECC_MODE 0x0 + + * ECC Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070070, 0x00000017U ,0x00000010U) + */ + PSU_Mask_Write(DDRC_ECCCFG0_OFFSET, 0x00000017U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : ECCCFG1 @ 0XFD070074 + + * Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) da + * ta poisoning, if 1 -> 1-bit (correctable) data poisoning, if ECCCFG1.dat + * a_poison_en=1 + * PSU_DDRC_ECCCFG1_DATA_POISON_BIT 0x0 + + * Enable ECC data poisoning - introduces ECC errors on writes to address s + * pecified by the ECCPOISONADDR0/1 registers + * PSU_DDRC_ECCCFG1_DATA_POISON_EN 0x0 + + * ECC Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070074, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ECCCFG1_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CRCPARCTL1 @ 0XFD0700C4 + + * The maximum number of DFI PHY clock cycles allowed from the assertion of + * the dfi_rddata_en signal to the assertion of each of the corresponding + * bits of the dfi_rddata_valid signal. This corresponds to the DFI timing + * parameter tphy_rdlat. Refer to PHY specification for correct value. This + * value it only used for detecting read data timeout when DDR4 retry is e + * nabled by CRCPARCTL1.crc_parity_retry_enable=1. Maximum supported value: + * - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_r + * dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 + * : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mode ANDAND DFITMG0.d + * fi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ + * rdlat < 'd114 Unit: DFI Clocks + * PSU_DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT 0x10 + + * After a Parity or CRC error is flagged on dfi_alert_n signal, the softwa + * re has an option to read the mode registers in the DRAM before the hardw + * are begins the retry process - 1: Wait for software to read/write the mo + * de registers before hardware begins the retry. After software is done wi + * th its operations, it will clear the alert interrupt register bit - 0: H + * ardware can begin the retry right away after the dfi_alert_n pulse goes + * away. The value on this register is valid only when retry is enabled (PA + * RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if t + * he software doesn't clear the interrupt register after handling the pari + * ty/CRC error, then the hardware will not begin the retry process and the + * system will hang. In the case of Parity/CRC error, there are two possib + * ilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persisten + * t parity' mode register bit is NOT set: the commands sent during retry a + * nd normal operation are executed without parity checking. The value in t + * he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent + * parity' mode register bit is SET: Parity checking is done for commands s + * ent during retry and normal operation. If multiple errors occur before M + * R5[4] is cleared, the error log in MPR Page 1 should be treated as 'Don' + * t care'. + * PSU_DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW 0x1 + + * - 1: Enable command retry mechanism in case of C/A Parity or CRC error - + * 0: Disable command retry mechanism when C/A Parity or CRC features are + * enabled. Note that retry functionality is not supported if burst chop is + * enabled (MSTR.burstchop = 1) and/or disable auto-refresh is enabled (RF + * SHCTL3.dis_auto_refresh = 1) + * PSU_DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE 0x0 + + * CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC no + * t includes DM signal Present only in designs configured to support DDR4. + * PSU_DDRC_CRCPARCTL1_CRC_INC_DM 0x0 + + * CRC enable Register - 1: Enable generation of CRC - 0: Disable generatio + * n of CRC The setting of this register should match the CRC mode register + * setting in the DRAM. + * PSU_DDRC_CRCPARCTL1_CRC_ENABLE 0x0 + + * C/A Parity enable register - 1: Enable generation of C/A parity and dete + * ction of C/A parity error - 0: Disable generation of C/A parity and disa + * ble detection of C/A parity error If RCD's parity error detection or SDR + * AM's parity detection is enabled, this register should be 1. + * PSU_DDRC_CRCPARCTL1_PARITY_ENABLE 0x0 + + * CRC Parity Control Register1 + * (OFFSET, MASK, VALUE) (0XFD0700C4, 0x3F000391U ,0x10000200U) + */ + PSU_Mask_Write(DDRC_CRCPARCTL1_OFFSET, 0x3F000391U, 0x10000200U); +/*##################################################################### */ + + /* + * Register : CRCPARCTL2 @ 0XFD0700C8 + + * Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a parity error occurs. Recommended values: - tPAR_ALERT_PW.M + * AX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT + * _PW.MAX/2 and round up to next integer value. Values of 0, 1 and 2 are i + * llegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. + * PSU_DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX 0x40 + + * Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a CRC error occurs. Recommended values: - tCRC_ALERT_PW.MAX + * For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW + * .MAX/2 and round up to next integer value. Values of 0, 1 and 2 are ille + * gal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. + * PSU_DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX 0x5 + + * Indicates the maximum duration in number of DRAM clock cycles for which + * a command should be held in the Command Retry FIFO before it is popped o + * ut. Every location in the Command Retry FIFO has an associated down coun + * ting timer that will use this register as the start value. The down coun + * ting starts when a command is loaded into the FIFO. The timer counts dow + * n every 4 DRAM cycles. When the counter reaches zero, the entry is poppe + * d from the FIFO. All the counters are frozen, if a C/A Parity or CRC err + * or occurs before the counter reaches zero. The counter is reset to 0, af + * ter all the commands in the FIFO are retried. Recommended(minimum) value + * s: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + * + CAL + RDIMM delay + tPAR_ALERT_ON.max + tPAR_UNKNOWN + PHY Alert Laten + * cy(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enable + * d/ Only CRC is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + R + * DIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) + * + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be + * in terms of DRAM Clock and round up Note 2: Board delay(Command/Alert_n + * ) should be considered. Note 3: Use the worst case(longer) value for PHY + * Latencies/Board delay Note 4: The Recommended values are minimum value + * to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max + * value can be set to this register is defined below: - MEMC_BURST_LENGTH + * == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 + * Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half b + * us Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Half bus Mod + * e (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (C + * RC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-8 Quarter bus Mode (CRC= + * ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 + * Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full + * bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mod + * e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC + * =ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarter bus Mode (CRC=OFF + * ) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Ma + * x value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Values of 0, 1 and 2 are illegal + * . + * PSU_DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4 0x1f + + * CRC Parity Control Register2 + * (OFFSET, MASK, VALUE) (0XFD0700C8, 0x01FF1F3FU ,0x0040051FU) + */ + PSU_Mask_Write(DDRC_CRCPARCTL2_OFFSET, 0x01FF1F3FU, 0x0040051FU); +/*##################################################################### */ + + /* + * Register : INIT0 @ 0XFD0700D0 + + * If lower bit is enabled the SDRAM initialization routine is skipped. The + * upper bit decides what state the controller starts up in when reset is + * removed - 00 - SDRAM Intialization routine is run after power-up - 01 - + * SDRAM Intialization routine is skipped after power-up. Controller starts + * up in Normal Mode - 11 - SDRAM Intialization routine is skipped after p + * ower-up. Controller starts up in Self-refresh Mode - 10 - SDRAM Intializ + * ation routine is run after power-up. Note: The only 2'b00 is supported f + * or LPDDR4 in this version of the uMCTL2. + * PSU_DDRC_INIT0_SKIP_DRAM_INIT 0x0 + + * Cycles to wait after driving CKE high to start the SDRAM initialization + * sequence. Unit: 1024 clocks. DDR2 typically requires a 400 ns delay, req + * uiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDD + * R3 typically requires this to be programmed for a delay of 200 us. LPDDR + * 4 typically requires this to be programmed for a delay of 2 us. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divi + * ded by 2, and round it up to next integer value. + * PSU_DDRC_INIT0_POST_CKE_X1024 0x2 + + * Cycles to wait after reset before driving CKE high to start the SDRAM in + * itialization sequence. Unit: 1024 clock cycles. DDR2 specifications typi + * cally require this to be programmed for a delay of >= 200 us. LPDDR2/LPD + * DR3: tINIT1 of 100 ns (min) LPDDR4: tINIT3 of 2 ms (min) For configurati + * ons with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by + * 2, and round it up to next integer value. + * PSU_DDRC_INIT0_PRE_CKE_X1024 0x106 + + * SDRAM Initialization Register 0 + * (OFFSET, MASK, VALUE) (0XFD0700D0, 0xC3FF0FFFU ,0x00020106U) + */ + PSU_Mask_Write(DDRC_INIT0_OFFSET, 0xC3FF0FFFU, 0x00020106U); +/*##################################################################### */ + + /* + * Register : INIT1 @ 0XFD0700D4 + + * Number of cycles to assert SDRAM reset signal during init sequence. This + * is only present for designs supporting DDR3, DDR4 or LPDDR4 devices. Fo + * r use with a DDR PHY, this should be set to a minimum of 1 + * PSU_DDRC_INIT1_DRAM_RSTN_X1024 0x2 + + * Cycles to wait after completing the SDRAM initialization sequence before + * starting the dynamic scheduler. Unit: Counts of a global timer that pul + * ses every 32 clock cycles. There is no known specific requirement for th + * is; it may be set to zero. + * PSU_DDRC_INIT1_FINAL_WAIT_X32 0x0 + + * Wait period before driving the OCD complete command to SDRAM. Unit: Coun + * ts of a global timer that pulses every 32 clock cycles. There is no know + * n specific requirement for this; it may be set to zero. + * PSU_DDRC_INIT1_PRE_OCD_X32 0x0 + + * SDRAM Initialization Register 1 + * (OFFSET, MASK, VALUE) (0XFD0700D4, 0x01FF7F0FU ,0x00020000U) + */ + PSU_Mask_Write(DDRC_INIT1_OFFSET, 0x01FF7F0FU, 0x00020000U); +/*##################################################################### */ + + /* + * Register : INIT2 @ 0XFD0700D8 + + * Idle time after the reset command, tINIT4. Present only in designs confi + * gured to support LPDDR2. Unit: 32 clock cycles. + * PSU_DDRC_INIT2_IDLE_AFTER_RESET_X32 0x23 + + * Time to wait after the first CKE high, tINIT2. Present only in designs c + * onfigured to support LPDDR2/LPDDR3. Unit: 1 clock cycle. LPDDR2/LPDDR3 t + * ypically requires 5 x tCK delay. + * PSU_DDRC_INIT2_MIN_STABLE_CLOCK_X1 0x5 + + * SDRAM Initialization Register 2 + * (OFFSET, MASK, VALUE) (0XFD0700D8, 0x0000FF0FU ,0x00002305U) + */ + PSU_Mask_Write(DDRC_INIT2_OFFSET, 0x0000FF0FU, 0x00002305U); +/*##################################################################### */ + + /* + * Register : INIT3 @ 0XFD0700DC + + * DDR2: Value to write to MR register. Bit 8 is for DLL and the setting he + * re is ignored. The uMCTL2 sets this bit appropriately. DDR3/DDR4: Value + * loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LP + * DDR3/LPDDR4 - Value to write to MR1 register + * PSU_DDRC_INIT3_MR 0x730 + + * DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setti + * ng in this register is ignored. The uMCTL2 sets those bits appropriately + * . DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evalu + * ation mode training is enabled, this bit is set appropriately by the uMC + * TL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/ + * LPDDR3/LPDDR4 - Value to write to MR2 register + * PSU_DDRC_INIT3_EMR 0x301 + + * SDRAM Initialization Register 3 + * (OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x07300301U) + */ + PSU_Mask_Write(DDRC_INIT3_OFFSET, 0xFFFFFFFFU, 0x07300301U); +/*##################################################################### */ + + /* + * Register : INIT4 @ 0XFD0700E0 + + * DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 + * register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 register mDDR: Unus + * ed + * PSU_DDRC_INIT4_EMR2 0x20 + + * DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 + * register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to write to MR13 regis + * ter + * PSU_DDRC_INIT4_EMR3 0x200 + + * SDRAM Initialization Register 4 + * (OFFSET, MASK, VALUE) (0XFD0700E0, 0xFFFFFFFFU ,0x00200200U) + */ + PSU_Mask_Write(DDRC_INIT4_OFFSET, 0xFFFFFFFFU, 0x00200200U); +/*##################################################################### */ + + /* + * Register : INIT5 @ 0XFD0700E4 + + * ZQ initial calibration, tZQINIT. Present only in designs configured to s + * upport DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock cycles. DDR3 typica + * lly requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requir + * es 1 us. + * PSU_DDRC_INIT5_DEV_ZQINIT_X32 0x21 + + * Maximum duration of the auto initialization, tINIT5. Present only in des + * igns configured to support LPDDR2/LPDDR3. LPDDR2/LPDDR3 typically requir + * es 10 us. + * PSU_DDRC_INIT5_MAX_AUTO_INIT_X1024 0x4 + + * SDRAM Initialization Register 5 + * (OFFSET, MASK, VALUE) (0XFD0700E4, 0x00FF03FFU ,0x00210004U) + */ + PSU_Mask_Write(DDRC_INIT5_OFFSET, 0x00FF03FFU, 0x00210004U); +/*##################################################################### */ + + /* + * Register : INIT6 @ 0XFD0700E8 + + * DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT6_MR4 0x0 + + * DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT6_MR5 0x6c0 + + * SDRAM Initialization Register 6 + * (OFFSET, MASK, VALUE) (0XFD0700E8, 0xFFFFFFFFU ,0x000006C0U) + */ + PSU_Mask_Write(DDRC_INIT6_OFFSET, 0xFFFFFFFFU, 0x000006C0U); +/*##################################################################### */ + + /* + * Register : INIT7 @ 0XFD0700EC + + * DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT7_MR6 0x819 + + * SDRAM Initialization Register 7 + * (OFFSET, MASK, VALUE) (0XFD0700EC, 0xFFFF0000U ,0x08190000U) + */ + PSU_Mask_Write(DDRC_INIT7_OFFSET, 0xFFFF0000U, 0x08190000U); +/*##################################################################### */ + + /* + * Register : DIMMCTL @ 0XFD0700F0 + + * Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and + * BG1 are NOT swapped even if Address Mirroring is enabled. This will be r + * equired for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapp + * ed. - 0 - BG0 and BG1 are swapped if address mirroring is enabled. + * PSU_DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING 0x0 + + * Enable for BG1 bit of MRS command. BG1 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have BG1 are attached and + * both the CA parity and the Output Inversion are enabled, this must be s + * et to 0, so that the calculation of CA parity will not include BG1 bit. + * Note: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. If address mirroring is enab + * led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - En + * abled - 0 - Disabled + * PSU_DDRC_DIMMCTL_MRS_BG1_EN 0x1 + + * Enable for A17 bit of MRS command. A17 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have A17 are attached and + * the Output Inversion are enabled, this must be set to 0, so that the ca + * lculation of CA parity will not include A17 bit. Note: This has no effec + * t on the address of any other memory accesses, or of software-driven mod + * e register accesses. - 1 - Enabled - 0 - Disabled + * PSU_DDRC_DIMMCTL_MRS_A17_EN 0x0 + + * Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIM + * M implements the Output Inversion feature by default, which means that t + * he following address, bank address and bank group bits of B-side DRAMs a + * re inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit en + * sures that, for mode register accesses generated by the uMCTL2 during th + * e automatic initialization routine and enabling of a particular DDR4 fea + * ture, separate A-side and B-side mode register accesses are generated. F + * or B-side mode register accesses, these bits are inverted within the uMC + * TL2 to compensate for this RDIMM inversion. Note: This has no effect on + * the address of any other memory accesses, or of software-driven mode reg + * ister accesses. - 1 - Implement output inversion for B-side DRAMs. - 0 - + * Do not implement output inversion for B-side DRAMs. + * PSU_DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN 0x0 + + * Address Mirroring Enable (for multi-rank UDIMM implementations and multi + * -rank DDR4 RDIMM implementations). Some UDIMMs and DDR4 RDIMMs implement + * address mirroring for odd ranks, which means that the following address + * , bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, + * A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting t + * his bit ensures that, for mode register accesses during the automatic in + * itialization routine, these bits are swapped within the uMCTL2 to compen + * sate for this UDIMM/RDIMM swapping. In addition to the automatic initial + * ization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during th + * e automatic MRS access to enable/disable of a particular DDR4 feature. N + * ote: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. This is not supported for mDD + * R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 + * output of MRS for the odd ranks is same as BG0 because BG1 is invalid, + * hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ran + * ks, implement address mirroring for MRS commands to during initializatio + * n and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM imp + * lements address mirroring) - 0 - Do not implement address mirroring + * PSU_DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN 0x0 + + * Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIM + * M implementations only). This is not supported for mDDR, LPDDR2, LPDDR3 + * or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of + * software driven MR commands (via MRCTRL0/MRCTRL1), where software is re + * sponsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Se + * nd MRS commands to each ranks seperately - 1 - (non-DDR4) Send all comma + * nds to even and odd ranks seperately - 0 - Do not stagger accesses + * PSU_DDRC_DIMMCTL_DIMM_STAGGER_CS_EN 0x0 + + * DIMM Control Register + * (OFFSET, MASK, VALUE) (0XFD0700F0, 0x0000003FU ,0x00000010U) + */ + PSU_Mask_Write(DDRC_DIMMCTL_OFFSET, 0x0000003FU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : RANKCTL @ 0XFD0700F4 + + * Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive writes to differ + * ent ranks. This is used to switch the delays in the PHY to match the ran + * k requirements. This value should consider both PHY requirement and ODT + * requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for v + * alue of tphy_wrcsgap) If CRC feature is enabled, should be increased by + * 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increas + * ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be inc + * reased by 1. - ODT requirement: The value programmed in this register ta + * kes care of the ODT switch off timing requirement when switching ranks d + * uring writes. For LPDDR4, the requirement is ODTLoff - ODTLon - BL/2 + 1 + * For configurations with MEMC_FREQ_RATIO=1, program this to the larger o + * f PHY requirement or ODT requirement. For configurations with MEMC_FREQ_ + * RATIO=2, program this to the larger value divided by two and round it up + * to the next integer. + * PSU_DDRC_RANKCTL_DIFF_RANK_WR_GAP 0x6 + + * Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive reads to differe + * nt ranks. This is used to switch the delays in the PHY to match the rank + * requirements. This value should consider both PHY requirement and ODT r + * equirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for va + * lue of tphy_rdcsgap) If read preamble is set to 2tCK(DDR4/LPDDR4 only), + * should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 only + * ), should be increased by 1. - ODT requirement: The value programmed in + * this register takes care of the ODT switch off timing requirement when s + * witching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, + * program this to the larger of PHY requirement or ODT requirement. For co + * nfigurations with MEMC_FREQ_RATIO=2, program this to the larger value di + * vided by two and round it up to the next integer. + * PSU_DDRC_RANKCTL_DIFF_RANK_RD_GAP 0x6 + + * Only present for multi-rank configurations. Background: Reads to the sam + * e rank can be performed back-to-back. Reads to different ranks require a + * dditional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is + * to avoid possible data bus contention as well as to give PHY enough tim + * e to switch the delay when changing ranks. The uMCTL2 arbitrates for bus + * access on a cycle-by-cycle basis; therefore after a read is scheduled, + * there are few clock cycles (determined by the value on RANKCTL.diff_rank + * _rd_gap register) in which only reads from the same rank are eligible to + * be scheduled. This prevents reads from other ranks from having fair acc + * ess to the data bus. This parameter represents the maximum number of rea + * ds that can be scheduled consecutively to the same rank. After this numb + * er is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by + * the scheduler to allow all ranks a fair opportunity to be scheduled. Hig + * her numbers increase bandwidth utilization, lower numbers increase fairn + * ess. This feature can be DISABLED by setting this register to 0. When se + * t to 0, the Controller will stay on the same rank as long as commands ar + * e available for it. Minimum programmable value is 0 (feature disabled) a + * nd maximum programmable value is 0xF. FOR PERFORMANCE ONLY. + * PSU_DDRC_RANKCTL_MAX_RANK_RD 0xf + + * Rank Control Register + * (OFFSET, MASK, VALUE) (0XFD0700F4, 0x00000FFFU ,0x0000066FU) + */ + PSU_Mask_Write(DDRC_RANKCTL_OFFSET, 0x00000FFFU, 0x0000066FU); +/*##################################################################### */ + + /* + * Register : DRAMTMG0 @ 0XFD070100 + + * Minimum time between write and precharge to same bank. Unit: Clocks Spec + * ifications: WL + BL/2 + tWR = approximately 8 cycles + 15 ns = 14 clocks + * @400MHz and less for lower frequencies where: - WL = write latency - BL + * = burst length. This must match the value programmed in the BL bit of t + * he mode register to the SDRAM. BST (burst terminate) is not supported at + * present. - tWR = Write recovery time. This comes directly from the SDRA + * M specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this p + * arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the + * above value by 2. No rounding up. For configurations with MEMC_FREQ_RAT + * IO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it u + * p to the next integer value. + * PSU_DDRC_DRAMTMG0_WR2PRE 0x11 + + * tFAW Valid only when 8 or more banks(or banks x bank groups) are present + * . In 8-bank design, at most 4 banks must be activated in a rolling windo + * w of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tFAW/2) and round up to next integer value. In a 4-bank design, se + * t this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. + * Unit: Clocks + * PSU_DDRC_DRAMTMG0_T_FAW 0x10 + + * tRAS(max): Maximum time between activate and precharge to same bank. Thi + * s is the maximum time that a page can be kept open Minimum value of this + * register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO + * =2, program this to (tRAS(max)-1)/2. No rounding up. Unit: Multiples of + * 1024 clocks. + * PSU_DDRC_DRAMTMG0_T_RAS_MAX 0x24 + + * tRAS(min): Minimum time between activate and precharge to the same bank. + * For configurations with MEMC_FREQ_RATIO=2, 1T mode, program this to tRA + * S(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T + * mode or LPDDR4 mode, program this to (tRAS(min)/2) and round it up to th + * e next integer value. Unit: Clocks + * PSU_DDRC_DRAMTMG0_T_RAS_MIN 0x12 + + * SDRAM Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x11102412U) + */ + PSU_Mask_Write(DDRC_DRAMTMG0_OFFSET, 0x7F3F7F3FU, 0x11102412U); +/*##################################################################### */ + + /* + * Register : DRAMTMG1 @ 0XFD070104 + + * tXP: Minimum time after power-down exit to any operation. For DDR3, this + * should be programmed to tXPDLL if slow powerdown exit is selected in MR + * 0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to (tXP/2) and round it + * up to the next integer value. Units: Clocks + * PSU_DDRC_DRAMTMG1_T_XP 0x4 + + * tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL + * /2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - DDR4: Max of followi + * ng two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 + * - LPDDR2: Depends on if it's LPDDR2-S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + t + * RTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) + * - 4 - LPDDR4: BL/2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_ + * RATIO=2, 1T mode, divide the above value by 2. No rounding up. For confi + * gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the abo + * ve value by 2 and round it up to the next integer value. Unit: Clocks. + * PSU_DDRC_DRAMTMG1_RD2PRE 0x4 + + * tRC: Minimum time between activates to same bank. For configurations wit + * h MEMC_FREQ_RATIO=2, program this to (tRC/2) and round up to next intege + * r value. Unit: Clocks. + * PSU_DDRC_DRAMTMG1_T_RC 0x1a + + * SDRAM Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x0004041AU) + */ + PSU_Mask_Write(DDRC_DRAMTMG1_OFFSET, 0x001F1F7FU, 0x0004041AU); +/*##################################################################### */ + + /* + * Register : DRAMTMG2 @ 0XFD070108 + + * Set to WL Time from write command to write data on SDRAM interface. This + * must be set to WL. For mDDR, it should normally be set to 1. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use a valu + * e of WL + 1 to compensate for the extra cycle of latency through the RDI + * MM For configurations with MEMC_FREQ_RATIO=2, divide the value calculate + * d using the above equation by 2, and round it up to next integer. This r + * egister field is not required for DDR2 and DDR3 (except if MEMC_TRAINING + * is set), as the DFI read and write latencies defined in DFITMG0 and DFI + * TMG1 are sufficient for those protocols Unit: clocks + * PSU_DDRC_DRAMTMG2_WRITE_LATENCY 0x7 + + * Set to RL Time from read command to read data on SDRAM interface. This m + * ust be set to RL. Note that, depending on the PHY, if using RDIMM, it ma + * t be necessary to use a value of RL + 1 to compensate for the extra cycl + * e of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2 + * , divide the value calculated using the above equation by 2, and round i + * t up to next integer. This register field is not required for DDR2 and D + * DR3 (except if MEMC_TRAINING is set), as the DFI read and write latencie + * s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit + * : clocks + * PSU_DDRC_DRAMTMG2_READ_LATENCY 0x8 + + * DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL L + * PDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL LPDDR4(DQ ODT is Di + * sabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL + * LPDDR4(DQ ODT is Enabled) : RL + BL/2 + RU(tDQSCKmax/tCK) + RD_POSTAMBL + * E - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write + * command. Include time for bus turnaround and all per-bank, per-rank, an + * d global constraints. Unit: Clocks. Where: - WL = write latency - BL = b + * urst length. This must match the value programmed in the BL bit of the m + * ode register to the SDRAM - RL = read latency = CAS latency - WR_PREAMBL + * E = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = + * read postamble. This is unique to LPDDR4. For LPDDR2/LPDDR3/LPDDR4, if d + * erating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should + * be used. For configurations with MEMC_FREQ_RATIO=2, divide the value cal + * culated using the above equation by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG2_RD2WR 0x6 + + * DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimu + * m time from write command to read command for same bank group. In others + * , minimum time from write command to read command. Includes time for bus + * turnaround, recovery times, and all per-bank, per-rank, and global cons + * traints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity la + * tency - BL = burst length. This must match the value programmed in the B + * L bit of the mode register to the SDRAM - tWTR_L = internal write to rea + * d command delay for same bank group. This comes directly from the SDRAM + * specification. - tWTR = internal write to read command delay. This comes + * directly from the SDRAM specification. Add one extra cycle for LPDDR2/L + * PDDR3/LPDDR4 operation. For configurations with MEMC_FREQ_RATIO=2, divid + * e the value calculated using the above equation by 2, and round it up to + * next integer. + * PSU_DDRC_DRAMTMG2_WR2RD 0xd + + * SDRAM Timing Register 2 + * (OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060DU) + */ + PSU_Mask_Write(DDRC_DRAMTMG2_OFFSET, 0x3F3F3F3FU, 0x0708060DU); +/*##################################################################### */ + + /* + * Register : DRAMTMG3 @ 0XFD07010C + + * Time to wait after a mode register write or read (MRW or MRR). Present o + * nly in designs configured to support LPDDR2, LPDDR3 or LPDDR4. LPDDR2 ty + * pically requires value of 5. LPDDR3 typically requires value of 10. LPDD + * R4: Set this to the larger of tMRW and tMRWCKEL. For LPDDR2, this regist + * er is used for the time from a MRW/MRR to all other commands. For LDPDR3 + * , this register is used for the time from a MRW/MRR to a MRW/MRR. + * PSU_DDRC_DRAMTMG3_T_MRW 0x5 + + * tMRD: Cycles to wait after a mode register write or read. Depending on t + * he connected SDRAM, tMRD represents: DDR2/mDDR: Time from MRS to any com + * mand DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Tim + * e from MRS to non-MRS command For configurations with MEMC_FREQ_RATIO=2, + * program this to (tMRD/2) and round it up to the next integer value. If + * C/A parity for DDR4 is used, set to tMRD_PAR(tMOD+PL) instead. + * PSU_DDRC_DRAMTMG3_T_MRD 0x4 + + * tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode com + * mand and following non-load mode command. If C/A parity for DDR4 is used + * , set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or + * tMOD/2 (rounded up to next integer) if MEMC_FREQ_RATIO=2. Note that if + * using RDIMM, depending on the PHY, it may be necessary to use a value of + * tMOD + 1 or (tMOD + 1)/2 to compensate for the extra cycle of latency a + * pplied to mode register writes by the RDIMM chip. + * PSU_DDRC_DRAMTMG3_T_MOD 0xc + + * SDRAM Timing Register 3 + * (OFFSET, MASK, VALUE) (0XFD07010C, 0x3FF3F3FFU ,0x0050400CU) + */ + PSU_Mask_Write(DDRC_DRAMTMG3_OFFSET, 0x3FF3F3FFU, 0x0050400CU); +/*##################################################################### */ + + /* + * Register : DRAMTMG4 @ 0XFD070110 + + * tRCD - tAL: Minimum time from activate to read or write command to same + * bank. For configurations with MEMC_FREQ_RATIO=2, program this to ((tRCD + * - tAL)/2) and round it up to the next integer value. Minimum value allow + * ed for this register is 1, which implies minimum (tRCD - tAL) value to b + * e 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. + * PSU_DDRC_DRAMTMG4_T_RCD 0x8 + + * DDR4: tCCD_L: This is the minimum time between two reads or two writes f + * or same bank group. Others: tCCD: This is the minimum time between two r + * eads or two writes. For configurations with MEMC_FREQ_RATIO=2, program t + * his to (tCCD_L/2 or tCCD/2) and round it up to the next integer value. U + * nit: clocks. + * PSU_DDRC_DRAMTMG4_T_CCD 0x3 + + * DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' f + * or same bank group. Others: tRRD: Minimum time between activates from ba + * nk 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tRRD_L/2 or tRRD/2) and round it up to the next integer value. Uni + * t: Clocks. + * PSU_DDRC_DRAMTMG4_T_RRD 0x3 + + * tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ + * _RATIO=1 configurations, t_rp should be set to RoundUp(tRP/tCK). For MEM + * C_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(t + * RP/tCK)/2) + 1. For MEMC_FREQ_RATIO=2 configurations in LPDDR4, t_rp sho + * uld be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. + * PSU_DDRC_DRAMTMG4_T_RP 0x9 + + * SDRAM Timing Register 4 + * (OFFSET, MASK, VALUE) (0XFD070110, 0x1F0F0F1FU ,0x08030309U) + */ + PSU_Mask_Write(DDRC_DRAMTMG4_OFFSET, 0x1F0F0F1FU, 0x08030309U); +/*##################################################################### */ + + /* + * Register : DRAMTMG5 @ 0XFD070114 + + * This is the time before Self Refresh Exit that CK is maintained as a val + * id clock before issuing SRX. Specifies the clock stable time before SRX. + * Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCK + * EH - DDR2: 1 - DDR3: tCKSRX - DDR4: tCKSRX For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKSRX 0x6 + + * This is the time after Self Refresh Down Entry that CK is maintained as + * a valid clock. Specifies the clock disable delay after SRE. Recommended + * settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 + * - DDR3: max (10 ns, 5 tCK) - DDR4: max (10 ns, 5 tCK) For configurations + * with MEMC_FREQ_RATIO=2, program this to recommended value divided by tw + * o and round it up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKSRE 0x6 + + * Minimum CKE low width for Self refresh or Self refresh power down entry + * to exit timing in memory clock cycles. Recommended settings: - mDDR: tRF + * C - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: + * tCKE - DDR3: tCKE + 1 - DDR4: tCKE + 1 For configurations with MEMC_FREQ + * _RATIO=2, program this to recommended value divided by two and round it + * up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKESR 0x4 + + * Minimum number of cycles of CKE HIGH/LOW during power-down and self refr + * esh. - LPDDR2/LPDDR3 mode: Set this to the larger of tCKE or tCKESR - LP + * DDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/ + * non-LPDDR3/non-LPDDR4 designs: Set this to tCKE value. For configuration + * s with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and + * round it up to the next integer value. Unit: Clocks. + * PSU_DDRC_DRAMTMG5_T_CKE 0x3 + + * SDRAM Timing Register 5 + * (OFFSET, MASK, VALUE) (0XFD070114, 0x0F0F3F1FU ,0x06060403U) + */ + PSU_Mask_Write(DDRC_DRAMTMG5_OFFSET, 0x0F0F3F1FU, 0x06060403U); +/*##################################################################### */ + + /* + * Register : DRAMTMG6 @ 0XFD070118 + + * This is the time after Deep Power Down Entry that CK is maintained as a + * valid clock. Specifies the clock disable delay after DPDE. Recommended s + * ettings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. This is only present for designs supporting mDDR + * or LPDDR2/LPDDR3 devices. + * PSU_DDRC_DRAMTMG6_T_CKDPDE 0x1 + + * This is the time before Deep Power Down Exit that CK is maintained as a + * valid clock before issuing DPDX. Specifies the clock stable time before + * DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For config + * urations with MEMC_FREQ_RATIO=2, program this to recommended value divid + * ed by two and round it up to next integer. This is only present for desi + * gns supporting mDDR or LPDDR2 devices. + * PSU_DDRC_DRAMTMG6_T_CKDPDX 0x1 + + * This is the time before Clock Stop Exit that CK is maintained as a valid + * clock before issuing Clock Stop Exit. Specifies the clock stable time b + * efore next command after Clock Stop Exit. Recommended settings: - mDDR: + * 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + 2 - LPDDR4: tXP + 2 For configuratio + * ns with MEMC_FREQ_RATIO=2, program this to recommended value divided by + * two and round it up to next integer. This is only present for designs su + * pporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG6_T_CKCSX 0x4 + + * SDRAM Timing Register 6 + * (OFFSET, MASK, VALUE) (0XFD070118, 0x0F0F000FU ,0x01010004U) + */ + PSU_Mask_Write(DDRC_DRAMTMG6_OFFSET, 0x0F0F000FU, 0x01010004U); +/*##################################################################### */ + + /* + * Register : DRAMTMG7 @ 0XFD07011C + + * This is the time after Power Down Entry that CK is maintained as a valid + * clock. Specifies the clock disable delay after PDE. Recommended setting + * s: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configuration + * s with MEMC_FREQ_RATIO=2, program this to recommended value divided by t + * wo and round it up to next integer. This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG7_T_CKPDE 0x6 + + * This is the time before Power Down Exit that CK is maintained as a valid + * clock before issuing PDX. Specifies the clock stable time before PDX. R + * ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For c + * onfigurations with MEMC_FREQ_RATIO=2, program this to recommended value + * divided by two and round it up to next integer. This is only present for + * designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG7_T_CKPDX 0x6 + + * SDRAM Timing Register 7 + * (OFFSET, MASK, VALUE) (0XFD07011C, 0x00000F0FU ,0x00000606U) + */ + PSU_Mask_Write(DDRC_DRAMTMG7_OFFSET, 0x00000F0FU, 0x00000606U); +/*##################################################################### */ + + /* + * Register : DRAMTMG8 @ 0XFD070120 + + * tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and + * Geardown mode). For configurations with MEMC_FREQ_RATIO=2, program this + * to the above value divided by 2 and round up to next integer value. Unit + * : Multiples of 32 clocks. Note: This is applicable to only ZQCL/ZQCS com + * mands. Note: Ensure this is less than or equal to t_xs_x32. + * PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x3 + + * tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in S + * elf Refresh Abort. For configurations with MEMC_FREQ_RATIO=2, program th + * is to the above value divided by 2 and round up to next integer value. U + * nit: Multiples of 32 clocks. Note: Ensure this is less than or equal to + * t_xs_x32. + * PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x3 + + * tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For config + * urations with MEMC_FREQ_RATIO=2, program this to the above value divided + * by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. + * PSU_DDRC_DRAMTMG8_T_XS_DLL_X32 0xd + + * tXS: Exit Self Refresh to commands not requiring a locked DLL. For confi + * gurations with MEMC_FREQ_RATIO=2, program this to the above value divide + * d by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. + * PSU_DDRC_DRAMTMG8_T_XS_X32 0x6 + + * SDRAM Timing Register 8 + * (OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x03030D06U) + */ + PSU_Mask_Write(DDRC_DRAMTMG8_OFFSET, 0x7F7F7F7FU, 0x03030D06U); +/*##################################################################### */ + + /* + * Register : DRAMTMG9 @ 0XFD070124 + + * DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present o + * nly with MEMC_FREQ_RATIO=2 + * PSU_DDRC_DRAMTMG9_DDR4_WR_PREAMBLE 0x0 + + * tCCD_S: This is the minimum time between two reads or two writes for dif + * ferent bank group. For bank switching (from bank 'a' to bank 'b'), the m + * inimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2 + * , program this to (tCCD_S/2) and round it up to the next integer value. + * Present only in designs configured to support DDR4. Unit: clocks. + * PSU_DDRC_DRAMTMG9_T_CCD_S 0x2 + + * tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for dif + * ferent bank group. For configurations with MEMC_FREQ_RATIO=2, program th + * is to (tRRD_S/2) and round it up to the next integer value. Present only + * in designs configured to support DDR4. Unit: Clocks. + * PSU_DDRC_DRAMTMG9_T_RRD_S 0x2 + + * CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command + * for different bank group. Includes time for bus turnaround, recovery ti + * mes, and all per-bank, per-rank, and global constraints. Present only in + * designs configured to support DDR4. Unit: Clocks. Where: - CWL = CAS wr + * ite latency - PL = Parity latency - BL = burst length. This must match t + * he value programmed in the BL bit of the mode register to the SDRAM - tW + * TR_S = internal write to read command delay for different bank group. Th + * is comes directly from the SDRAM specification. For configurations with + * MEMC_FREQ_RATIO=2, divide the value calculated using the above equation + * by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG9_WR2RD_S 0xb + + * SDRAM Timing Register 9 + * (OFFSET, MASK, VALUE) (0XFD070124, 0x40070F3FU ,0x0002020BU) + */ + PSU_Mask_Write(DDRC_DRAMTMG9_OFFSET, 0x40070F3FU, 0x0002020BU); +/*##################################################################### */ + + /* + * Register : DRAMTMG11 @ 0XFD07012C + + * tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DL + * L. For configurations with MEMC_FREQ_RATIO=2, program this to (tXMPDLL/2 + * ) and round it up to the next integer value. Present only in designs con + * figured to support DDR4. Unit: Multiples of 32 clocks. + * PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x70 + + * tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For + * configurations with MEMC_FREQ_RATIO=2, program this to RoundUp(tMPX_LH/2 + * )+1. Present only in designs configured to support DDR4. Unit: clocks. + * PSU_DDRC_DRAMTMG11_T_MPX_LH 0x7 + + * tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_ + * FREQ_RATIO=2, program this to (tMPX_S/2) and round it up to the next int + * eger value. Present only in designs configured to support DDR4. Unit: Cl + * ocks. + * PSU_DDRC_DRAMTMG11_T_MPX_S 0x1 + + * tCKMPE: Minimum valid clock requirement after MPSM entry. Present only i + * n designs configured to support DDR4. Unit: Clocks. For configurations w + * ith MEMC_FREQ_RATIO=2, divide the value calculated using the above equat + * ion by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG11_T_CKMPE 0xe + + * SDRAM Timing Register 11 + * (OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x7007010EU) + */ + PSU_Mask_Write(DDRC_DRAMTMG11_OFFSET, 0x7F1F031FU, 0x7007010EU); +/*##################################################################### */ + + /* + * Register : DRAMTMG12 @ 0XFD070130 + + * tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larg + * er of tESCKE or tCMDCKE For configurations with MEMC_FREQ_RATIO=2, progr + * am this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer valu + * e. + * PSU_DDRC_DRAMTMG12_T_CMDCKE 0x2 + + * tCKEHCMD: Valid command requirement after CKE input HIGH. For configurat + * ions with MEMC_FREQ_RATIO=2, program this to (tCKEHCMD/2) and round it u + * p to next integer value. + * PSU_DDRC_DRAMTMG12_T_CKEHCMD 0x6 + + * tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. + * For configurations with MEMC_FREQ_RATIO=2, program this to (tMRD_PDA/2) + * and round it up to next integer value. + * PSU_DDRC_DRAMTMG12_T_MRD_PDA 0x8 + + * SDRAM Timing Register 12 + * (OFFSET, MASK, VALUE) (0XFD070130, 0x00030F1FU ,0x00020608U) + */ + PSU_Mask_Write(DDRC_DRAMTMG12_OFFSET, 0x00030F1FU, 0x00020608U); +/*##################################################################### */ + + /* + * Register : ZQCTL0 @ 0XFD070180 + + * - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Reg + * ister DBGCMD.zq_calib_short can be used instead to issue ZQ calibration + * request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibrati + * on) commands based on ZQCTL1.t_zq_short_interval_x1024. This is only pre + * sent for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_AUTO_ZQ 0x1 + + * - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refres + * h/SR-Powerdown exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 + * or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibratio + * n) command at Self-Refresh/SR-Powerdown exit. Only applicable when run i + * n DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present + * for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_SRX_ZQCL 0x0 + + * - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQC + * L/ZQCS/MPC(ZQ calibration) commands are sent to one rank at a time with + * tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that co + * mmands to different ranks do not overlap. - 0 - ZQ resistor is not share + * d. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR + * 3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_ZQ_RESISTOR_SHARED 0x0 + + * - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. + * Only applicable when run in DDR4 mode. - 0 - Enable issuing of ZQCL com + * mand at Maximum Power Saving Mode exit. Only applicable when run in DDR4 + * mode. This is only present for designs supporting DDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_MPSMX_ZQCL 0x0 + + * tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Numbe + * r of cycles of NOP required after a ZQCL (ZQ calibration long)/MPC(ZQ St + * art) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO + * =2: DDR3/DDR4: program this to tZQoper/2 and round it up to the next int + * eger value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to th + * e next integer value. LPDDR4: program this to tZQCAL/2 and round it up t + * o the next integer value. Unit: Clock cycles. This is only present for d + * esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_T_ZQ_LONG_NOP 0x100 + + * tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of + * NOP required after a ZQCS (ZQ calibration short)/MPC(ZQ Latch) command + * is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program t + * his to tZQCS/2 and round it up to the next integer value. Unit: Clock cy + * cles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LP + * DDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_T_ZQ_SHORT_NOP 0x40 + + * ZQ Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD070180, 0xF7FF03FFU ,0x81000040U) + */ + PSU_Mask_Write(DDRC_ZQCTL0_OFFSET, 0xF7FF03FFU, 0x81000040U); +/*##################################################################### */ + + /* + * Register : ZQCTL1 @ 0XFD070184 + + * tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibrati + * on Reset) command is issued to SDRAM. For configurations with MEMC_FREQ_ + * RATIO=2, program this to tZQReset/2 and round it up to the next integer + * value. Unit: Clock cycles. This is only present for designs supporting L + * PDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL1_T_ZQ_RESET_NOP 0x20 + + * Average interval to wait between automatically issuing ZQCS (ZQ calibrat + * ion short)/MPC(ZQ calibration) commands to DDR3/DDR4/LPDDR2/LPDDR3/LPDDR + * 4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles + * . This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3 + * /LPDDR4 devices. + * PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x196dc + + * ZQ Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x020196DCU) + */ + PSU_Mask_Write(DDRC_ZQCTL1_OFFSET, 0x3FFFFFFFU, 0x020196DCU); +/*##################################################################### */ + + /* + * Register : DFITMG0 @ 0XFD070190 + + * Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. + * PSU_DDRC_DFITMG0_DFI_T_CTRL_DELAY 0x4 + + * Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. + * PSU_DDRC_DFITMG0_DFI_RDDATA_USE_SDR 0x1 + + * Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks + * PSU_DDRC_DFITMG0_DFI_T_RDDATA_EN 0xb + + * Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. + * PSU_DDRC_DFITMG0_DFI_WRDATA_USE_SDR 0x1 + + * Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks + * PSU_DDRC_DFITMG0_DFI_TPHY_WRDATA 0x2 + + * Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. + * PSU_DDRC_DFITMG0_DFI_TPHY_WRLAT 0xb + + * DFI Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD070190, 0x1FBFBF3FU ,0x048B820BU) + */ + PSU_Mask_Write(DDRC_DFITMG0_OFFSET, 0x1FBFBF3FU, 0x048B820BU); +/*##################################################################### */ + + /* + * Register : DFITMG1 @ 0XFD070194 + + * Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated command is driven. This field is used + * for CAL mode, should be set to '0' or the value which matches the CAL mo + * de register setting in the DRAM. If the PHY can add the latency for CAL + * mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 + * PSU_DDRC_DFITMG1_DFI_T_CMD_LAT 0x0 + + * Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated dfi_parity_in signal is driven. + * PSU_DDRC_DFITMG1_DFI_T_PARIN_LAT 0x0 + + * Specifies the number of DFI clocks between when the dfi_wrdata_en signal + * is asserted and when the corresponding write data transfer is completed + * on the DRAM bus. This corresponds to the DFI timing parameter twrdata_d + * elay. Refer to PHY specification for correct value. For DFI 3.0 PHY, set + * to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI + * 2.1 PHY, set to tphy_wrdata + (delay of DFI write data to the DRAM). Va + * lue to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ_ + * RATIO=2, divide PHY's value by 2 and round up to next integer. If using + * DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Unit: Clocks + * PSU_DDRC_DFITMG1_DFI_T_WRDATA_DELAY 0x3 + + * Specifies the number of DFI clock cycles from the assertion of the dfi_d + * ram_clk_disable signal on the DFI until the clock to the DRAM memory dev + * ices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock + * and the memory clock are not phase aligned, this timing parameter should + * be rounded up to the next integer value. + * PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE 0x3 + + * Specifies the number of DFI clock cycles from the de-assertion of the df + * i_dram_clk_disable signal on the DFI until the first valid rising edge o + * f the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the + * DFI clock and the memory clock are not phase aligned, this timing param + * eter should be rounded up to the next integer value. + * PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE 0x4 + + * DFI Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD070194, 0xF31F0F0FU ,0x00030304U) + */ + PSU_Mask_Write(DDRC_DFITMG1_OFFSET, 0xF31F0F0FU, 0x00030304U); +/*##################################################################### */ + + /* + * Register : DFILPCFG0 @ 0XFD070198 + + * Setting for DFI's tlp_resp time. Same value is used for both Power Down, + * Self Refresh, Deep Power Down and Maximum Power Saving modes. DFI 2.1 s + * pecification onwards, recommends using a fixed value of 7 always. + * PSU_DDRC_DFILPCFG0_DFI_TLP_RESP 0x7 + + * Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is ente + * red. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 + * cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 5 + * 12 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - + * 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 6553 + * 6 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited T + * his is only present for designs supporting mDDR or LPDDR2/LPDDR3 devices + * . + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD 0x0 + + * Enables DFI Low Power interface handshaking during Deep Power Down Entry + * /Exit. - 0 - Disabled - 1 - Enabled This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3 devices. + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_DPD 0x0 + + * Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered + * . Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cyc + * les - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 + * cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 + * - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 c + * ycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR 0x0 + + * Enables DFI Low Power interface handshaking during Self Refresh Entry/Ex + * it. - 0 - Disabled - 1 - Enabled + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_SR 0x1 + + * Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. + * Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cycle + * s - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cy + * cles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - + * 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cyc + * les - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD 0x0 + + * Enables DFI Low Power interface handshaking during Power Down Entry/Exit + * . - 0 - Disabled - 1 - Enabled + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_PD 0x1 + + * DFI Low Power Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070198, 0x0FF1F1F1U ,0x07000101U) + */ + PSU_Mask_Write(DDRC_DFILPCFG0_OFFSET, 0x0FF1F1F1U, 0x07000101U); +/*##################################################################### */ + + /* + * Register : DFILPCFG1 @ 0XFD07019C + + * Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is + * entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 + * - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x + * 5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycl + * es - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - + * 65536 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimi + * ted This is only present for designs supporting DDR4 devices. + * PSU_DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM 0x2 + + * Enables DFI Low Power interface handshaking during Maximum Power Saving + * Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is only present for d + * esigns supporting DDR4 devices. + * PSU_DDRC_DFILPCFG1_DFI_LP_EN_MPSM 0x1 + + * DFI Low Power Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD07019C, 0x000000F1U ,0x00000021U) + */ + PSU_Mask_Write(DDRC_DFILPCFG1_OFFSET, 0x000000F1U, 0x00000021U); +/*##################################################################### */ + + /* + * Register : DFIUPD0 @ 0XFD0701A0 + + * When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * . The core must issue the dfi_ctrlupd_req signal using register reg_ddrc + * _ctrlupd. When '0', uMCTL2 issues dfi_ctrlupd_req periodically. + * PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD 0x0 + + * When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * following a self-refresh exit. The core must issue the dfi_ctrlupd_req + * signal using register reg_ddrc_ctrlupd. When '0', uMCTL2 issues a dfi_ct + * rlupd_req after exiting self-refresh. + * PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX 0x0 + + * Specifies the maximum number of clock cycles that the dfi_ctrlupd_req si + * gnal can assert. Lowest value to assign to this variable is 0x40. Unit: + * Clocks + * PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MAX 0x40 + + * Specifies the minimum number of clock cycles that the dfi_ctrlupd_req si + * gnal must be asserted. The uMCTL2 expects the PHY to respond within this + * time. If the PHY does not respond, the uMCTL2 will de-assert dfi_ctrlup + * d_req after dfi_t_ctrlup_min + 2 cycles. Lowest value to assign to this + * variable is 0x3. Unit: Clocks + * PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MIN 0x3 + + * DFI Update Register 0 + * (OFFSET, MASK, VALUE) (0XFD0701A0, 0xC3FF03FFU ,0x00400003U) + */ + PSU_Mask_Write(DDRC_DFIUPD0_OFFSET, 0xC3FF03FFU, 0x00400003U); +/*##################################################################### */ + + /* + * Register : DFIUPD1 @ 0XFD0701A4 + + * This is the minimum amount of time between uMCTL2 initiated DFI update r + * equests (which is executed whenever the uMCTL2 is idle). Set this number + * higher to reduce the frequency of update requests, which can have a sma + * ll impact on the latency of the first read request when the uMCTL2 is id + * le. Unit: 1024 clocks + * PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024 0x41 + + * This is the maximum amount of time between uMCTL2 initiated DFI update r + * equests. This timer resets with each update request; when the timer expi + * res dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd + * _ackx is received. PHY can use this idle time to recalibrate the delay l + * ines to the DLLs. The DFI controller update is also used to reset PHY FI + * FO pointers in case of data capture errors. Updates are required to main + * tain calibration over PVT, but frequent updates may impact performance. + * Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must + * be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x1024. Unit: 1024 cl + * ocks + * PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe1 + + * DFI Update Register 1 + * (OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E1U) + */ + PSU_Mask_Write(DDRC_DFIUPD1_OFFSET, 0x00FF00FFU, 0x004100E1U); +/*##################################################################### */ + + /* + * Register : DFIMISC @ 0XFD0701B0 + + * Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signal + * s are active low - 1: Signals are active high + * PSU_DDRC_DFIMISC_DFI_DATA_CS_POLARITY 0x0 + + * DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. + * - 1 - PHY implements DBI functionality. Present only in designs configu + * red to support DDR4 and LPDDR4. + * PSU_DDRC_DFIMISC_PHY_DBI_MODE 0x0 + + * PHY initialization complete enable signal. When asserted the dfi_init_co + * mplete signal can be used to trigger SDRAM initialisation + * PSU_DDRC_DFIMISC_DFI_INIT_COMPLETE_EN 0x0 + + * DFI Miscellaneous Control Register + * (OFFSET, MASK, VALUE) (0XFD0701B0, 0x00000007U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DFIMISC_OFFSET, 0x00000007U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DFITMG2 @ 0XFD0701B4 + + * >Number of clocks between when a read command is sent on the DFI control + * interface and when the associated dfi_rddata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY spe + * cification for correct value. + * PSU_DDRC_DFITMG2_DFI_TPHY_RDCSLAT 0x9 + + * Number of clocks between when a write command is sent on the DFI control + * interface and when the associated dfi_wrdata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY spe + * cification for correct value. + * PSU_DDRC_DFITMG2_DFI_TPHY_WRCSLAT 0x6 + + * DFI Timing Register 2 + * (OFFSET, MASK, VALUE) (0XFD0701B4, 0x00003F3FU ,0x00000906U) + */ + PSU_Mask_Write(DDRC_DFITMG2_OFFSET, 0x00003F3FU, 0x00000906U); +/*##################################################################### */ + + /* + * Register : DBICTL @ 0XFD0701C0 + + * Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read D + * BI is enabled. This signal must be set the same value as DRAM's mode reg + * ister. - DDR4: MR5 bit A12. When x4 devices are used, this signal must b + * e set to 0. - LPDDR4: MR3[6] + * PSU_DDRC_DBICTL_RD_DBI_EN 0x0 + + * Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Writ + * e DBI is enabled. This signal must be set the same value as DRAM's mode + * register. - DDR4: MR5 bit A11. When x4 devices are used, this signal mus + * t be set to 0. - LPDDR4: MR3[7] + * PSU_DDRC_DBICTL_WR_DBI_EN 0x0 + + * DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. Thi + * s signal must be set the same logical value as DRAM's mode register. - D + * DR4: Set this to same value as MR5 bit A10. When x4 devices are used, th + * is signal must be set to 0. - LPDDR4: Set this to inverted value of MR13 + * [5] which is opposite polarity from this signal + * PSU_DDRC_DBICTL_DM_EN 0x1 + + * DM/DBI Control Register + * (OFFSET, MASK, VALUE) (0XFD0701C0, 0x00000007U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_DBICTL_OFFSET, 0x00000007U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : ADDRMAP0 @ 0XFD070200 + + * Selects the HIF address bit used as rank address bit 0. Valid Range: 0 t + * o 27, and 31 Internal Base: 6 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, r + * ank address bit 0 is set to 0. + * PSU_DDRC_ADDRMAP0_ADDRMAP_CS_BIT0 0x1f + + * Address Map Register 0 + * (OFFSET, MASK, VALUE) (0XFD070200, 0x0000001FU ,0x0000001FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP0_OFFSET, 0x0000001FU, 0x0000001FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP1 @ 0XFD070204 + + * Selects the HIF address bit used as bank address bit 2. Valid Range: 0 t + * o 29 and 31 Internal Base: 4 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, ba + * nk address bit 2 is set to 0. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B2 0x1f + + * Selects the HIF address bits used as bank address bit 1. Valid Range: 0 + * to 30 Internal Base: 3 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B1 0xa + + * Selects the HIF address bits used as bank address bit 0. Valid Range: 0 + * to 30 Internal Base: 2 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B0 0xa + + * Address Map Register 1 + * (OFFSET, MASK, VALUE) (0XFD070204, 0x001F1F1FU ,0x001F0A0AU) + */ + PSU_Mask_Write(DDRC_ADDRMAP1_OFFSET, 0x001F1F1FU, 0x001F0A0AU); +/*##################################################################### */ + + /* + * Register : ADDRMAP2 @ 0XFD070208 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 5. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 6. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 7 . Valid Range: 0 to 7, and 15 Internal Base + * : 5 The selected HIF address bit is determined by adding the internal ba + * se to the value of this field. If set to 15, this column address bit is + * set to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B5 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 4. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 5. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 6. Valid Range: 0 to 7, and 15 Internal Base: + * 4 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B4 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 3. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 4. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 5. Valid Range: 0 to 7 Internal Base: 3 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=1 + * 6, it is required to program this to 0, hence register does not exist in + * this case. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B3 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 2. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 3. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 4. Valid Range: 0 to 7 Internal Base: 2 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 + * or 16, it is required to program this to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B2 0x0 + + * Address Map Register 2 + * (OFFSET, MASK, VALUE) (0XFD070208, 0x0F0F0F0FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ADDRMAP2_OFFSET, 0x0F0F0F0FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ADDRMAP3 @ 0XFD07020C + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 9. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: + * Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/ + * LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected + * HIF address bit is determined by adding the internal base to the value o + * f this field. If set to 15, this column address bit is set to 0. Note: P + * er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved fo + * r indicating auto-precharge, and hence no source address bit can be mapp + * ed to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit + * for auto-precharge in the CA bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B9 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 8. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 9. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). Valid Range: 0 + * to 7, and 15 Internal Base: 8 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specifi + * cation, column address bit 10 is reserved for indicating auto-precharge, + * and hence no source address bit can be mapped to column address bit 10. + * In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA + * bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B8 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 7. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 8. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 9. Valid Range: 0 to 7, and 15 Internal Base: + * 7 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B7 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 6. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 7. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 8. Valid Range: 0 to 7, and 15 Internal Base: + * 6 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B6 0x0 + + * Address Map Register 3 + * (OFFSET, MASK, VALUE) (0XFD07020C, 0x0F0F0F0FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ADDRMAP3_OFFSET, 0x0F0F0F0FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ADDRMAP4 @ 0XFD070210 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width mode: Unused. To m + * ake it unused, this should be tied to 4'hF. - Quarter bus width mode: Un + * used. To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, + * and 15 Internal Base: 11 The selected HIF address bit is determined by + * adding the internal base to the value of this field. If set to 15, this + * column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificatio + * n, column address bit 10 is reserved for indicating auto-precharge, and + * hence no source address bit can be mapped to column address bit 10. In L + * PDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus + * and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B11 0xf + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width mode: Selects the + * HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode) + * . - Quarter bus width mode: UNUSED. To make it unused, this must be tied + * to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF + * address bit is determined by adding the internal base to the value of t + * his field. If set to 15, this column address bit is set to 0. Note: Per + * JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for i + * ndicating auto-precharge, and hence no source address bit can be mapped + * to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for + * auto-precharge in the CA bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B10 0xf + + * Address Map Register 4 + * (OFFSET, MASK, VALUE) (0XFD070210, 0x00000F0FU ,0x00000F0FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP4_OFFSET, 0x00000F0FU, 0x00000F0FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP5 @ 0XFD070214 + + * Selects the HIF address bit used as row address bit 11. Valid Range: 0 t + * o 11, and 15 Internal Base: 17 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 11 is set to 0. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B11 0x8 + + * Selects the HIF address bits used as row address bits 2 to 10. Valid Ran + * ge: 0 to 11, and 15 Internal Base: 8 (for row address bit 2), 9 (for row + * address bit 3), 10 (for row address bit 4) etc increasing to 16 (for ro + * w address bit 10) The selected HIF address bit for each of the row addre + * ss bits is determined by adding the internal base to the value of this f + * ield. When value 15 is used the values of row address bits 2 to 10 are d + * efined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10 0xf + + * Selects the HIF address bits used as row address bit 1. Valid Range: 0 t + * o 11 Internal Base: 7 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B1 0x8 + + * Selects the HIF address bits used as row address bit 0. Valid Range: 0 t + * o 11 Internal Base: 6 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B0 0x8 + + * Address Map Register 5 + * (OFFSET, MASK, VALUE) (0XFD070214, 0x0F0F0F0FU ,0x080F0808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP5_OFFSET, 0x0F0F0F0FU, 0x080F0808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP6 @ 0XFD070218 + + * Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 + * - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address having row[14:13]= + * =2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. + * All addresses are valid Present only in designs configured to support L + * PDDR3. + * PSU_DDRC_ADDRMAP6_LPDDR3_6GB_12GB 0x0 + + * Selects the HIF address bit used as row address bit 15. Valid Range: 0 t + * o 11, and 15 Internal Base: 21 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 15 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B15 0xf + + * Selects the HIF address bit used as row address bit 14. Valid Range: 0 t + * o 11, and 15 Internal Base: 20 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 14 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B14 0x8 + + * Selects the HIF address bit used as row address bit 13. Valid Range: 0 t + * o 11, and 15 Internal Base: 19 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 13 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B13 0x8 + + * Selects the HIF address bit used as row address bit 12. Valid Range: 0 t + * o 11, and 15 Internal Base: 18 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 12 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B12 0x8 + + * Address Map Register 6 + * (OFFSET, MASK, VALUE) (0XFD070218, 0x8F0F0F0FU ,0x0F080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP6_OFFSET, 0x8F0F0F0FU, 0x0F080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP7 @ 0XFD07021C + + * Selects the HIF address bit used as row address bit 17. Valid Range: 0 t + * o 10, and 15 Internal Base: 23 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 17 is set to 0. + * PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B17 0xf + + * Selects the HIF address bit used as row address bit 16. Valid Range: 0 t + * o 11, and 15 Internal Base: 22 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 16 is set to 0. + * PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B16 0xf + + * Address Map Register 7 + * (OFFSET, MASK, VALUE) (0XFD07021C, 0x00000F0FU ,0x00000F0FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP7_OFFSET, 0x00000F0FU, 0x00000F0FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP8 @ 0XFD070220 + + * Selects the HIF address bits used as bank group address bit 1. Valid Ran + * ge: 0 to 30, and 31 Internal Base: 3 The selected HIF address bit for ea + * ch of the bank group address bits is determined by adding the internal b + * ase to the value of this field. If set to 31, bank group address bit 1 i + * s set to 0. + * PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B1 0x8 + + * Selects the HIF address bits used as bank group address bit 0. Valid Ran + * ge: 0 to 30 Internal Base: 2 The selected HIF address bit for each of th + * e bank group address bits is determined by adding the internal base to t + * he value of this field. + * PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B0 0x8 + + * Address Map Register 8 + * (OFFSET, MASK, VALUE) (0XFD070220, 0x00001F1FU ,0x00000808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP8_OFFSET, 0x00001F1FU, 0x00000808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP9 @ 0XFD070224 + + * Selects the HIF address bits used as row address bit 5. Valid Range: 0 t + * o 11 Internal Base: 11 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B5 0x8 + + * Selects the HIF address bits used as row address bit 4. Valid Range: 0 t + * o 11 Internal Base: 10 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B4 0x8 + + * Selects the HIF address bits used as row address bit 3. Valid Range: 0 t + * o 11 Internal Base: 9 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B3 0x8 + + * Selects the HIF address bits used as row address bit 2. Valid Range: 0 t + * o 11 Internal Base: 8 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B2 0x8 + + * Address Map Register 9 + * (OFFSET, MASK, VALUE) (0XFD070224, 0x0F0F0F0FU ,0x08080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP9_OFFSET, 0x0F0F0F0FU, 0x08080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP10 @ 0XFD070228 + + * Selects the HIF address bits used as row address bit 9. Valid Range: 0 t + * o 11 Internal Base: 15 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B9 0x8 + + * Selects the HIF address bits used as row address bit 8. Valid Range: 0 t + * o 11 Internal Base: 14 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B8 0x8 + + * Selects the HIF address bits used as row address bit 7. Valid Range: 0 t + * o 11 Internal Base: 13 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B7 0x8 + + * Selects the HIF address bits used as row address bit 6. Valid Range: 0 t + * o 11 Internal Base: 12 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B6 0x8 + + * Address Map Register 10 + * (OFFSET, MASK, VALUE) (0XFD070228, 0x0F0F0F0FU ,0x08080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP10_OFFSET, 0x0F0F0F0FU, 0x08080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP11 @ 0XFD07022C + + * Selects the HIF address bits used as row address bit 10. Valid Range: 0 + * to 11 Internal Base: 16 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of + * this field. This register field is used only when ADDRMAP5.addrmap_row_b + * 2_10 is set to value 15. + * PSU_DDRC_ADDRMAP11_ADDRMAP_ROW_B10 0x8 + + * Address Map Register 11 + * (OFFSET, MASK, VALUE) (0XFD07022C, 0x0000000FU ,0x00000008U) + */ + PSU_Mask_Write(DDRC_ADDRMAP11_OFFSET, 0x0000000FU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : ODTCFG @ 0XFD070240 + + * Cycles to hold ODT for a write command. The minimum supported value is 2 + * . Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/667), 0x6 (DDR2-800 + * ), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (D + * DR2-1066) DDR3: - BL8: 0x6 DDR4: - BL8: 5 + WR_PREAMBLE + CRC_MODE WR_PR + * EAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 ( + * not CRC mode), 1 (CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_WR_ODT_HOLD 0x6 + + * The delay, in clock cycles, from issuing a write command to setting ODT + * values associated with that command. ODT setting must remain constant fo + * r the entire time that DQS is driven by the uMCTL2. Recommended values: + * DDR2: - CWL + AL - 3 (DDR2-400/533/667), CWL + AL - 4 (DDR2-800), CWL + + * AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT fo + * r write operation. DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust + * for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) + * PSU_DDRC_ODTCFG_WR_ODT_DELAY 0x0 + + * Cycles to hold ODT for a read command. The minimum supported value is 2. + * Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066), 0x7 (DDR2-1066) - + * BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8 + * : 5 + RD_PREAMBLE RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write p + * reamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + + * RU(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_RD_ODT_HOLD 0x6 + + * The delay, in clock cycles, from issuing a read command to setting ODT v + * alues associated with that command. ODT setting must remain constant for + * the entire time that DQS is driven by the uMCTL2. Recommended values: D + * DR2: - CL + AL - 4 (not DDR2-1066), CL + AL - 5 (DDR2-1066) If (CL + AL + * - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - C + * WL DDR4: - CL - CWL - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat + * (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK + * write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write pre + * amble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, uMCTL2 does not su + * pport ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - R + * U(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_RD_ODT_DELAY 0x0 + + * ODT Configuration Register + * (OFFSET, MASK, VALUE) (0XFD070240, 0x0F1F0F7CU ,0x06000600U) + */ + PSU_Mask_Write(DDRC_ODTCFG_OFFSET, 0x0F1F0F7CU, 0x06000600U); +/*##################################################################### */ + + /* + * Register : ODTMAP @ 0XFD070244 + + * Indicates which remote ODTs must be turned on during a read from rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. Present only in configurations that have 2 or more + * ranks + * PSU_DDRC_ODTMAP_RANK1_RD_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a write to rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. Present only in configurations that have 2 or more r + * anks + * PSU_DDRC_ODTMAP_RANK1_WR_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a read from rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. + * PSU_DDRC_ODTMAP_RANK0_RD_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a write to rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. + * PSU_DDRC_ODTMAP_RANK0_WR_ODT 0x1 + + * ODT/Rank Map Register + * (OFFSET, MASK, VALUE) (0XFD070244, 0x00003333U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_ODTMAP_OFFSET, 0x00003333U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : SCHED @ 0XFD070250 + + * When the preferred transaction store is empty for these many clock cycle + * s, switch to the alternate transaction store if it is non-empty. The rea + * d transaction store (both high and low priority) is the default preferre + * d transaction store and the write transaction store is the alternative s + * tore. When prefer write over read is set this is reversed. 0x0 is a lega + * l value for this register. When set to 0x0, the transaction store switch + * ing will happen immediately when the switching conditions become true. F + * OR PERFORMANCE ONLY + * PSU_DDRC_SCHED_RDWR_IDLE_GAP 0x1 + + * UNUSED + * PSU_DDRC_SCHED_GO2CRITICAL_HYSTERESIS 0x0 + + * Number of entries in the low priority transaction store is this value + + * 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) is the number of ent + * ries available for the high priority transaction store. Setting this to + * maximum value allocates all entries to low priority transaction store. S + * etting this to 0 allocates 1 entry to low priority transaction store and + * the rest to high priority transaction store. Note: In ECC configuration + * s, the numbers of write and low priority read credits issued is one less + * than in the non-ECC case. One entry each is reserved in the write and l + * ow-priority read CAMs for storing the RMW requests arising out of single + * bit error correction RMW operation. + * PSU_DDRC_SCHED_LPR_NUM_ENTRIES 0x20 + + * If true, bank is kept open only while there are page hit transactions av + * ailable in the CAM to that bank. The last read or write command in the C + * AM with a bank and page hit will be executed with auto-precharge if SCHE + * D1.pageclose_timer=0. Even if this register set to 1 and SCHED1.pageclos + * e_timer is set to 0, explicit precharge (and not auto-precharge) may be + * issued in some cases where there is a mode switch between Write and Read + * or between LPR and HPR. The Read and Write commands that are executed a + * s part of the ECC scrub requests are also executed without auto-precharg + * e. If false, the bank remains open until there is a need to close it (to + * open a different page, or for page timeout or refresh timeout) - also k + * nown as open page policy. The open page policy can be overridden by sett + * ing the per-command-autopre bit on the HIF interface (hif_cmd_autopre). + * The pageclose feature provids a midway between Open and Close page polic + * ies. FOR PERFORMANCE ONLY. + * PSU_DDRC_SCHED_PAGECLOSE 0x0 + + * If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. + * PSU_DDRC_SCHED_PREFER_WRITE 0x0 + + * Active low signal. When asserted ('0'), all incoming transactions are fo + * rced to low priority. This implies that all High Priority Read (HPR) and + * Variable Priority Read commands (VPR) will be treated as Low Priority R + * ead (LPR) commands. On the write side, all Variable Priority Write (VPW) + * commands will be treated as Normal Priority Write (NPW) commands. Forci + * ng the incoming transactions to low priority implicitly turns off Bypass + * path for read commands. FOR PERFORMANCE ONLY. + * PSU_DDRC_SCHED_FORCE_LOW_PRI_N 0x1 + + * Scheduler Control Register + * (OFFSET, MASK, VALUE) (0XFD070250, 0x7FFF3F07U ,0x01002001U) + */ + PSU_Mask_Write(DDRC_SCHED_OFFSET, 0x7FFF3F07U, 0x01002001U); +/*##################################################################### */ + + /* + * Register : PERFLPR1 @ 0XFD070264 + + * Number of transactions that are serviced once the LPR queue goes critica + * l is the smaller of: - (a) This number - (b) Number of transactions avai + * lable. Unit: Transaction. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH 0x8 + + * Number of clocks that the LPR queue can be starved before it goes critic + * al. The minimum valid functional value for this register is 0x1. Program + * ming it to 0x0 will disable the starvation functionality; during normal + * operation, this function should not be disabled as it will cause excessi + * ve latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFLPR1_LPR_MAX_STARVE 0x40 + + * Low Priority Read CAM Register 1 + * (OFFSET, MASK, VALUE) (0XFD070264, 0xFF00FFFFU ,0x08000040U) + */ + PSU_Mask_Write(DDRC_PERFLPR1_OFFSET, 0xFF00FFFFU, 0x08000040U); +/*##################################################################### */ + + /* + * Register : PERFWR1 @ 0XFD07026C + + * Number of transactions that are serviced once the WR queue goes critical + * is the smaller of: - (a) This number - (b) Number of transactions avail + * able. Unit: Transaction. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFWR1_W_XACT_RUN_LENGTH 0x8 + + * Number of clocks that the WR queue can be starved before it goes critica + * l. The minimum valid functional value for this register is 0x1. Programm + * ing it to 0x0 will disable the starvation functionality; during normal o + * peration, this function should not be disabled as it will cause excessiv + * e latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFWR1_W_MAX_STARVE 0x40 + + * Write CAM Register 1 + * (OFFSET, MASK, VALUE) (0XFD07026C, 0xFF00FFFFU ,0x08000040U) + */ + PSU_Mask_Write(DDRC_PERFWR1_OFFSET, 0xFF00FFFFU, 0x08000040U); +/*##################################################################### */ + + /* + * Register : DQMAP0 @ 0XFD070280 + + * DQ nibble map for DQ bits [12-15] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15 0x0 + + * DQ nibble map for DQ bits [8-11] Present only in designs configured to s + * upport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11 0x0 + + * DQ nibble map for DQ bits [4-7] Present only in designs configured to su + * pport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7 0x0 + + * DQ nibble map for DQ bits [0-3] Present only in designs configured to su + * pport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3 0x0 + + * DQ Map Register 0 + * (OFFSET, MASK, VALUE) (0XFD070280, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP0_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP1 @ 0XFD070284 + + * DQ nibble map for DQ bits [28-31] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31 0x0 + + * DQ nibble map for DQ bits [24-27] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27 0x0 + + * DQ nibble map for DQ bits [20-23] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23 0x0 + + * DQ nibble map for DQ bits [16-19] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19 0x0 + + * DQ Map Register 1 + * (OFFSET, MASK, VALUE) (0XFD070284, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP1_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP2 @ 0XFD070288 + + * DQ nibble map for DQ bits [44-47] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47 0x0 + + * DQ nibble map for DQ bits [40-43] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43 0x0 + + * DQ nibble map for DQ bits [36-39] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39 0x0 + + * DQ nibble map for DQ bits [32-35] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35 0x0 + + * DQ Map Register 2 + * (OFFSET, MASK, VALUE) (0XFD070288, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP2_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP3 @ 0XFD07028C + + * DQ nibble map for DQ bits [60-63] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63 0x0 + + * DQ nibble map for DQ bits [56-59] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59 0x0 + + * DQ nibble map for DQ bits [52-55] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55 0x0 + + * DQ nibble map for DQ bits [48-51] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51 0x0 + + * DQ Map Register 3 + * (OFFSET, MASK, VALUE) (0XFD07028C, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP3_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP4 @ 0XFD070290 + + * DQ nibble map for DIMM ECC check bits [4-7] Present only in designs conf + * igured to support DDR4. + * PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7 0x0 + + * DQ nibble map for DIMM ECC check bits [0-3] Present only in designs conf + * igured to support DDR4. + * PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3 0x0 + + * DQ Map Register 4 + * (OFFSET, MASK, VALUE) (0XFD070290, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP4_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP5 @ 0XFD070294 + + * All even ranks have the same DQ mapping controled by DQMAP0-4 register a + * s rank 0. This register provides DQ swap function for all odd ranks to s + * upport CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap b + * it 2 with 3, swap bit 4 with 5 and swap bit 6 with 7. 1: Disable rank ba + * sed DQ swapping 0: Enable rank based DQ swapping Present only in designs + * configured to support DDR4. + * PSU_DDRC_DQMAP5_DIS_DQ_RANK_SWAP 0x1 + + * DQ Map Register 5 + * (OFFSET, MASK, VALUE) (0XFD070294, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_DQMAP5_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : DBG0 @ 0XFD070300 + + * When this is set to '0', auto-precharge is disabled for the flushed comm + * and in a collision case. Collision cases are write followed by read to s + * ame address, read followed by write to same address, or write followed b + * y write to same address with DBG0.dis_wc bit = 1 (where same address com + * parisons exclude the two address bits representing critical word). FOR D + * EBUG ONLY. + * PSU_DDRC_DBG0_DIS_COLLISION_PAGE_OPT 0x0 + + * When 1, disable write combine. FOR DEBUG ONLY + * PSU_DDRC_DBG0_DIS_WC 0x0 + + * Debug Register 0 + * (OFFSET, MASK, VALUE) (0XFD070300, 0x00000011U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DBG0_OFFSET, 0x00000011U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DBGCMD @ 0XFD07030C + + * Setting this register bit to 1 allows refresh and ZQCS commands to be tr + * iggered from hardware via the IOs ext_*. If set to 1, the fields DBGCMD. + * zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignore + * d by the uMCTL2 logic. Setting this register bit to 0 allows refresh and + * ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_shor + * t and DBGCMD.rank*_refresh. If set to 0, the hardware pins ext_* have no + * function, and are ignored by the uMCTL2 logic. This register is static, + * and may only be changed when the DDRC reset signal, core_ddrc_rstn, is + * asserted (0). + * PSU_DDRC_DBGCMD_HW_REF_ZQ_EN 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ct + * rlupd_req to the PHY. When this request is stored in the uMCTL2, the bit + * is automatically cleared. This operation must only be performed when DF + * IUPD0.dis_auto_ctrlupd=1. + * PSU_DDRC_DBGCMD_CTRLUPD 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS ( + * ZQ calibration short)/MPC(ZQ calibration) command to the SDRAM. When thi + * s request is stored in the uMCTL2, the bit is automatically cleared. Thi + * s operation can be performed only when ZQCTL0.dis_auto_zq=1. It is recom + * mended NOT to set this register bit if in Init operating mode. This regi + * ster bit is ignored when in Self-Refresh(except LPDDR4) and SR-Powerdown + * (LPDDR4) and Deep power-down operating modes and Maximum Power Saving Mo + * de. + * PSU_DDRC_DBGCMD_ZQ_CALIB_SHORT 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 1. Writing to this bit causes DBGSTAT.rank1_refresh_busy to be + * set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. + * PSU_DDRC_DBGCMD_RANK1_REFRESH 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 0. Writing to this bit causes DBGSTAT.rank0_refresh_busy to be + * set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. + * PSU_DDRC_DBGCMD_RANK0_REFRESH 0x0 + + * Command Debug Register + * (OFFSET, MASK, VALUE) (0XFD07030C, 0x80000033U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DBGCMD_OFFSET, 0x80000033U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SWCTL @ 0XFD070320 + + * Enable quasi-dynamic register programming outside reset. Program registe + * r to 0 to enable quasi-dynamic programming. Set back register to 1 once + * programming is done. + * PSU_DDRC_SWCTL_SW_DONE 0x0 + + * Software register programming control enable + * (OFFSET, MASK, VALUE) (0XFD070320, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SWCTL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCCFG @ 0XFD070400 + + * Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expand + * s every AXI burst into multiple HIF commands, using the memory burst len + * gth as a unit. If set to 1, then XPI will use half of the memory burst l + * ength as a unit. This applies to both reads and writes. When MSTR.data_b + * us_width==00, setting bl_exp_mode to 1 has no effect. This can be used i + * n cases where Partial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.d + * is_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_ccd + * _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionali + * ty is not supported in the following cases: - UMCTL2_PARTIAL_WR=0 - UMCT + * L2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 an + * d MSTR.reg_ddrc_burst_rdwr=1000 (LPDDR4 only) - UMCTL2_PARTIAL_WR=1, MST + * R.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burs + * t_rdwr=0100 (DDR4 only), with either MSTR.reg_ddrc_burstchop=0 or CRCPAR + * CTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Shared + * -AC is enabled + * PSU_DDRC_PCCFG_BL_EXP_MODE 0x0 + + * Page match four limit. If set to 1, limits the number of consecutive sam + * e page DDRC transactions that can be granted by the Port Arbiter to four + * when Page Match feature is enabled. If set to 0, there is no limit impo + * sed on number of consecutive same page DDRC transactions. + * PSU_DDRC_PCCFG_PAGEMATCH_LIMIT 0x0 + + * If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_l + * pr/co_gs_go2critical_hpr signals going to DDRC based on urgent input (aw + * urgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_ + * go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals a + * t DDRC are driven to 1b'0. + * PSU_DDRC_PCCFG_GO2CRITICAL_EN 0x1 + + * Port Common Configuration Register + * (OFFSET, MASK, VALUE) (0XFD070400, 0x00000111U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCCFG_OFFSET, 0x00000111U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGR_0 @ 0XFD070404 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_0_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_0_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_0_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070404, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_0_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_0 @ 0XFD070408 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_0_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_0_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_0_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_0_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_0 @ 0XFD070490 + + * Enables port n. + * PSU_DDRC_PCTRL_0_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070490, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_0_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_0 @ 0XFD070494 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION1 0x2 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1 0xb + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070494, 0x0033000FU ,0x0020000BU) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_0_OFFSET, 0x0033000FU, 0x0020000BU); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_0 @ 0XFD070498 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070498, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_0_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_1 @ 0XFD0704B4 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_1_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_1_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_1_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD0704B4, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_1_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_1 @ 0XFD0704B8 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_1_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_1_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_1_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_1_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_1 @ 0XFD070540 + + * Enables port n. + * PSU_DDRC_PCTRL_1_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070540, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_1_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_1 @ 0XFD070544 + + * This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION2 0x2 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION1 0x0 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION0 0x0 + + * Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2 0xb + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070544, 0x03330F0FU ,0x02000B03U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_1_OFFSET, 0x03330F0FU, 0x02000B03U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_1 @ 0XFD070548 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070548, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_1_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_2 @ 0XFD070564 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_2_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_2_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_2_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070564, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_2_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_2 @ 0XFD070568 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_2_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_2_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_2_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_2_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_2 @ 0XFD0705F0 + + * Enables port n. + * PSU_DDRC_PCTRL_2_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD0705F0, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_2_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_2 @ 0XFD0705F4 + + * This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION2 0x2 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION1 0x0 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION0 0x0 + + * Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2 0xb + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0705F4, 0x03330F0FU ,0x02000B03U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_2_OFFSET, 0x03330F0FU, 0x02000B03U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_2 @ 0XFD0705F8 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0705F8, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_2_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_3 @ 0XFD070614 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_3_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_3_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_3_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070614, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_3_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_3 @ 0XFD070618 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_3_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_3_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_3_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_3_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_3 @ 0XFD0706A0 + + * Enables port n. + * PSU_DDRC_PCTRL_3_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD0706A0, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_3_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_3 @ 0XFD0706A4 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0706A4, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_3_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_3 @ 0XFD0706A8 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0706A8, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_3_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_3 @ 0XFD0706AC + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0706AC, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_3_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_3 @ 0XFD0706B0 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0706B0, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_3_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGR_4 @ 0XFD0706C4 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_4_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_4_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_4_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_4_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_4 @ 0XFD0706C8 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_4_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_4_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_4_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_4_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_4 @ 0XFD070750 + + * Enables port n. + * PSU_DDRC_PCTRL_4_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070750, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_4_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_4 @ 0XFD070754 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070754, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_4_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_4 @ 0XFD070758 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070758, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_4_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_4 @ 0XFD07075C + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD07075C, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_4_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_4 @ 0XFD070760 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070760, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_4_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGR_5 @ 0XFD070774 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_5_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_5_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_5_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070774, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_5_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_5 @ 0XFD070778 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_5_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_5_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_5_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_5_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_5 @ 0XFD070800 + + * Enables port n. + * PSU_DDRC_PCTRL_5_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070800, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_5_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_5 @ 0XFD070804 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070804, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_5_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_5 @ 0XFD070808 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070808, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_5_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_5 @ 0XFD07080C + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD07080C, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_5_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_5 @ 0XFD070810 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070810, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_5_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : SARBASE0 @ 0XFD070F04 + + * Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + * PSU_DDRC_SARBASE0_BASE_ADDR 0x0 + + * SAR Base Address Register n + * (OFFSET, MASK, VALUE) (0XFD070F04, 0x000001FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SARBASE0_OFFSET, 0x000001FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SARSIZE0 @ 0XFD070F08 + + * Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. + * PSU_DDRC_SARSIZE0_NBLOCKS 0x0 + + * SAR Size Register n + * (OFFSET, MASK, VALUE) (0XFD070F08, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SARSIZE0_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SARBASE1 @ 0XFD070F0C + + * Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + * PSU_DDRC_SARBASE1_BASE_ADDR 0x10 + + * SAR Base Address Register n + * (OFFSET, MASK, VALUE) (0XFD070F0C, 0x000001FFU ,0x00000010U) + */ + PSU_Mask_Write(DDRC_SARBASE1_OFFSET, 0x000001FFU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : SARSIZE1 @ 0XFD070F10 + + * Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. + * PSU_DDRC_SARSIZE1_NBLOCKS 0xf + + * SAR Size Register n + * (OFFSET, MASK, VALUE) (0XFD070F10, 0x000000FFU ,0x0000000FU) + */ + PSU_Mask_Write(DDRC_SARSIZE1_OFFSET, 0x000000FFU, 0x0000000FU); +/*##################################################################### */ + + /* + * Register : DFITMG0_SHADOW @ 0XFD072190 + + * Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. + * PSU_DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY 0x7 + + * Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. + * PSU_DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR 0x1 + + * Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks + * PSU_DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN 0x2 + + * Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. + * PSU_DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR 0x1 + + * Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks + * PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA 0x0 + + * Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. + * PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT 0x2 + + * DFI Timing Shadow Register 0 + * (OFFSET, MASK, VALUE) (0XFD072190, 0x1FBFBF3FU ,0x07828002U) + */ + PSU_Mask_Write(DDRC_DFITMG0_SHADOW_OFFSET, 0x1FBFBF3FU, 0x07828002U); +/*##################################################################### */ + + /* + * DDR CONTROLLER RESET + */ + /* + * Register : RST_DDR_SS @ 0XFD1A0108 + + * DDR block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X0 + + * APM block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_APM_RESET 0X0 + + * DDR sub system block level reset + * (OFFSET, MASK, VALUE) (0XFD1A0108, 0x0000000CU ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_DDR_SS_OFFSET, 0x0000000CU, 0x00000000U); +/*##################################################################### */ + + /* + * DDR PHY + */ + /* + * Register : PGCR0 @ 0XFD080010 + + * Address Copy + * PSU_DDR_PHY_PGCR0_ADCP 0x0 + + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_30_27 0x0 + + * PHY FIFO Reset + * PSU_DDR_PHY_PGCR0_PHYFRST 0x1 + + * Oscillator Mode Address/Command Delay Line Select + * PSU_DDR_PHY_PGCR0_OSCACDL 0x3 + + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_23_19 0x0 + + * Digital Test Output Select + * PSU_DDR_PHY_PGCR0_DTOSEL 0x0 - RegVal = ((0x0000000FU << DDRC_SARSIZE1_NBLOCKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARSIZE1_OFFSET ,0x000000FFU ,0x0000000FU); - /*############################################################################################################################ */ + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_13 0x0 - /*Register : DFITMG0_SHADOW @ 0XFD072190

+ * Oscillator Mode Division + * PSU_DDR_PHY_PGCR0_OSCDIV 0xf - Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock. - PSU_DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY 0x7 - - Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value. - PSU_DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR 0x1 - - Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks - PSU_DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN 0x2 - - Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e. - PSU_DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR 0x1 - - Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks - PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA 0x0 - - Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM. - PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT 0x2 + * Oscillator Enable + * PSU_DDR_PHY_PGCR0_OSCEN 0x0 - DFI Timing Shadow Register 0 - (OFFSET, MASK, VALUE) (0XFD072190, 0x1FBFBF3FU ,0x07828002U) - RegMask = (DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK | DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK | DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK | DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK | DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK | DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK | 0 ); + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_7_0 0x0 - RegVal = ((0x00000007U << DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT - | 0x00000001U << DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT - | 0x00000002U << DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT - | 0x00000001U << DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT - | 0x00000000U << DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT - | 0x00000002U << DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG0_SHADOW_OFFSET ,0x1FBFBF3FU ,0x07828002U); - /*############################################################################################################################ */ - - // : DDR CONTROLLER RESET - /*Register : RST_DDR_SS @ 0XFD1A0108

- - DDR block level reset inside of the DDR Sub System - PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X0 - - DDR sub system block level reset - (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_RST_DDR_SS_DDR_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_DDR_SS_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - // : DDR PHY - /*Register : PGCR0 @ 0XFD080010

- - Address Copy - PSU_DDR_PHY_PGCR0_ADCP 0x0 - - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_30_27 0x0 - - PHY FIFO Reset - PSU_DDR_PHY_PGCR0_PHYFRST 0x1 - - Oscillator Mode Address/Command Delay Line Select - PSU_DDR_PHY_PGCR0_OSCACDL 0x3 - - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_23_19 0x0 + * PHY General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080010, 0xFFFFFFFFU ,0x07001E00U) + */ + PSU_Mask_Write(DDR_PHY_PGCR0_OFFSET, 0xFFFFFFFFU, 0x07001E00U); +/*##################################################################### */ - Digital Test Output Select - PSU_DDR_PHY_PGCR0_DTOSEL 0x0 + /* + * Register : PGCR2 @ 0XFD080018 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_13 0x0 + * Clear Training Status Registers + * PSU_DDR_PHY_PGCR2_CLRTSTAT 0x0 - Oscillator Mode Division - PSU_DDR_PHY_PGCR0_OSCDIV 0xf + * Clear Impedance Calibration + * PSU_DDR_PHY_PGCR2_CLRZCAL 0x0 - Oscillator Enable - PSU_DDR_PHY_PGCR0_OSCEN 0x0 + * Clear Parity Error + * PSU_DDR_PHY_PGCR2_CLRPERR 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_7_0 0x0 + * Initialization Complete Pin Configuration + * PSU_DDR_PHY_PGCR2_ICPC 0x0 - PHY General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080010, 0xFFFFFFFFU ,0x07001E00U) - RegMask = (DDR_PHY_PGCR0_ADCP_MASK | DDR_PHY_PGCR0_RESERVED_30_27_MASK | DDR_PHY_PGCR0_PHYFRST_MASK | DDR_PHY_PGCR0_OSCACDL_MASK | DDR_PHY_PGCR0_RESERVED_23_19_MASK | DDR_PHY_PGCR0_DTOSEL_MASK | DDR_PHY_PGCR0_RESERVED_13_MASK | DDR_PHY_PGCR0_OSCDIV_MASK | DDR_PHY_PGCR0_OSCEN_MASK | DDR_PHY_PGCR0_RESERVED_7_0_MASK | 0 ); + * Data Training PUB Mode Exit Timer + * PSU_DDR_PHY_PGCR2_DTPMXTMR 0xf - RegVal = ((0x00000000U << DDR_PHY_PGCR0_ADCP_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_30_27_SHIFT - | 0x00000001U << DDR_PHY_PGCR0_PHYFRST_SHIFT - | 0x00000003U << DDR_PHY_PGCR0_OSCACDL_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_23_19_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_DTOSEL_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_13_SHIFT - | 0x0000000FU << DDR_PHY_PGCR0_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_OSCEN_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR0_OFFSET ,0xFFFFFFFFU ,0x07001E00U); - /*############################################################################################################################ */ - - /*Register : PGCR2 @ 0XFD080018

+ * Initialization Bypass + * PSU_DDR_PHY_PGCR2_INITFSMBYP 0x0 - Clear Training Status Registers - PSU_DDR_PHY_PGCR2_CLRTSTAT 0x0 + * PLL FSM Bypass + * PSU_DDR_PHY_PGCR2_PLLFSMBYP 0x0 - Clear Impedance Calibration - PSU_DDR_PHY_PGCR2_CLRZCAL 0x0 + * Refresh Period + * PSU_DDR_PHY_PGCR2_TREFPRD 0x10010 - Clear Parity Error - PSU_DDR_PHY_PGCR2_CLRPERR 0x0 + * PHY General Configuration Register 2 + * (OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10010U) + */ + PSU_Mask_Write(DDR_PHY_PGCR2_OFFSET, 0xFFFFFFFFU, 0x00F10010U); +/*##################################################################### */ - Initialization Complete Pin Configuration - PSU_DDR_PHY_PGCR2_ICPC 0x0 + /* + * Register : PGCR3 @ 0XFD08001C - Data Training PUB Mode Exit Timer - PSU_DDR_PHY_PGCR2_DTPMXTMR 0xf + * CKN Enable + * PSU_DDR_PHY_PGCR3_CKNEN 0x55 - Initialization Bypass - PSU_DDR_PHY_PGCR2_INITFSMBYP 0x0 + * CK Enable + * PSU_DDR_PHY_PGCR3_CKEN 0xaa - PLL FSM Bypass - PSU_DDR_PHY_PGCR2_PLLFSMBYP 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR3_RESERVED_15 0x0 - Refresh Period - PSU_DDR_PHY_PGCR2_TREFPRD 0x10028 + * Enable Clock Gating for AC [0] ctl_rd_clk + * PSU_DDR_PHY_PGCR3_GATEACRDCLK 0x2 - PHY General Configuration Register 2 - (OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10028U) - RegMask = (DDR_PHY_PGCR2_CLRTSTAT_MASK | DDR_PHY_PGCR2_CLRZCAL_MASK | DDR_PHY_PGCR2_CLRPERR_MASK | DDR_PHY_PGCR2_ICPC_MASK | DDR_PHY_PGCR2_DTPMXTMR_MASK | DDR_PHY_PGCR2_INITFSMBYP_MASK | DDR_PHY_PGCR2_PLLFSMBYP_MASK | DDR_PHY_PGCR2_TREFPRD_MASK | 0 ); + * Enable Clock Gating for AC [0] ddr_clk + * PSU_DDR_PHY_PGCR3_GATEACDDRCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_PGCR2_CLRTSTAT_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_CLRZCAL_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_CLRPERR_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_ICPC_SHIFT - | 0x0000000FU << DDR_PHY_PGCR2_DTPMXTMR_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_INITFSMBYP_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_PLLFSMBYP_SHIFT - | 0x00010028U << DDR_PHY_PGCR2_TREFPRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR2_OFFSET ,0xFFFFFFFFU ,0x00F10028U); - /*############################################################################################################################ */ + * Enable Clock Gating for AC [0] ctl_clk + * PSU_DDR_PHY_PGCR3_GATEACCTLCLK 0x2 - /*Register : PGCR3 @ 0XFD08001C

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR3_RESERVED_8 0x0 - CKN Enable - PSU_DDR_PHY_PGCR3_CKNEN 0x55 + * Controls DDL Bypass Modes + * PSU_DDR_PHY_PGCR3_DDLBYPMODE 0x2 - CK Enable - PSU_DDR_PHY_PGCR3_CKEN 0xaa + * IO Loop-Back Select + * PSU_DDR_PHY_PGCR3_IOLB 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR3_RESERVED_15 0x0 + * AC Receive FIFO Read Mode + * PSU_DDR_PHY_PGCR3_RDMODE 0x0 - Enable Clock Gating for AC [0] ctl_rd_clk - PSU_DDR_PHY_PGCR3_GATEACRDCLK 0x2 + * Read FIFO Reset Disable + * PSU_DDR_PHY_PGCR3_DISRST 0x0 - Enable Clock Gating for AC [0] ddr_clk - PSU_DDR_PHY_PGCR3_GATEACDDRCLK 0x2 + * Clock Level when Clock Gating + * PSU_DDR_PHY_PGCR3_CLKLEVEL 0x0 - Enable Clock Gating for AC [0] ctl_clk - PSU_DDR_PHY_PGCR3_GATEACCTLCLK 0x2 + * PHY General Configuration Register 3 + * (OFFSET, MASK, VALUE) (0XFD08001C, 0xFFFFFFFFU ,0x55AA5480U) + */ + PSU_Mask_Write(DDR_PHY_PGCR3_OFFSET, 0xFFFFFFFFU, 0x55AA5480U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR3_RESERVED_8 0x0 + /* + * Register : PGCR5 @ 0XFD080024 - Controls DDL Bypass Modes - PSU_DDR_PHY_PGCR3_DDLBYPMODE 0x2 + * Frequency B Ratio Term + * PSU_DDR_PHY_PGCR5_FRQBT 0x1 - IO Loop-Back Select - PSU_DDR_PHY_PGCR3_IOLB 0x0 + * Frequency A Ratio Term + * PSU_DDR_PHY_PGCR5_FRQAT 0x1 - AC Receive FIFO Read Mode - PSU_DDR_PHY_PGCR3_RDMODE 0x0 + * DFI Disconnect Time Period + * PSU_DDR_PHY_PGCR5_DISCNPERIOD 0x0 - Read FIFO Reset Disable - PSU_DDR_PHY_PGCR3_DISRST 0x0 + * Receiver bias core side control + * PSU_DDR_PHY_PGCR5_VREF_RBCTRL 0xf - Clock Level when Clock Gating - PSU_DDR_PHY_PGCR3_CLKLEVEL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR5_RESERVED_3 0x0 - PHY General Configuration Register 3 - (OFFSET, MASK, VALUE) (0XFD08001C, 0xFFFFFFFFU ,0x55AA5480U) - RegMask = (DDR_PHY_PGCR3_CKNEN_MASK | DDR_PHY_PGCR3_CKEN_MASK | DDR_PHY_PGCR3_RESERVED_15_MASK | DDR_PHY_PGCR3_GATEACRDCLK_MASK | DDR_PHY_PGCR3_GATEACDDRCLK_MASK | DDR_PHY_PGCR3_GATEACCTLCLK_MASK | DDR_PHY_PGCR3_RESERVED_8_MASK | DDR_PHY_PGCR3_DDLBYPMODE_MASK | DDR_PHY_PGCR3_IOLB_MASK | DDR_PHY_PGCR3_RDMODE_MASK | DDR_PHY_PGCR3_DISRST_MASK | DDR_PHY_PGCR3_CLKLEVEL_MASK | 0 ); + * Internal VREF generator REFSEL ragne select + * PSU_DDR_PHY_PGCR5_DXREFISELRANGE 0x1 - RegVal = ((0x00000055U << DDR_PHY_PGCR3_CKNEN_SHIFT - | 0x000000AAU << DDR_PHY_PGCR3_CKEN_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RESERVED_15_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACRDCLK_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RESERVED_8_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_DDLBYPMODE_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_IOLB_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_DISRST_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_CLKLEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR3_OFFSET ,0xFFFFFFFFU ,0x55AA5480U); - /*############################################################################################################################ */ + * DDL Page Read Write select + * PSU_DDR_PHY_PGCR5_DDLPGACT 0x0 - /*Register : PGCR5 @ 0XFD080024

+ * DDL Page Read Write select + * PSU_DDR_PHY_PGCR5_DDLPGRW 0x0 - Frequency B Ratio Term - PSU_DDR_PHY_PGCR5_FRQBT 0x1 + * PHY General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080024, 0xFFFFFFFFU ,0x010100F4U) + */ + PSU_Mask_Write(DDR_PHY_PGCR5_OFFSET, 0xFFFFFFFFU, 0x010100F4U); +/*##################################################################### */ - Frequency A Ratio Term - PSU_DDR_PHY_PGCR5_FRQAT 0x1 + /* + * Register : PTR0 @ 0XFD080040 - DFI Disconnect Time Period - PSU_DDR_PHY_PGCR5_DISCNPERIOD 0x0 + * PLL Power-Down Time + * PSU_DDR_PHY_PTR0_TPLLPD 0x56 - Receiver bias core side control - PSU_DDR_PHY_PGCR5_VREF_RBCTRL 0xf + * PLL Gear Shift Time + * PSU_DDR_PHY_PTR0_TPLLGS 0x2155 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR5_RESERVED_3 0x0 + * PHY Reset Time + * PSU_DDR_PHY_PTR0_TPHYRST 0x10 - Internal VREF generator REFSEL ragne select - PSU_DDR_PHY_PGCR5_DXREFISELRANGE 0x1 + * PHY Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x0AC85550U) + */ + PSU_Mask_Write(DDR_PHY_PTR0_OFFSET, 0xFFFFFFFFU, 0x0AC85550U); +/*##################################################################### */ - DDL Page Read Write select - PSU_DDR_PHY_PGCR5_DDLPGACT 0x0 + /* + * Register : PTR1 @ 0XFD080044 - DDL Page Read Write select - PSU_DDR_PHY_PGCR5_DDLPGRW 0x0 + * PLL Lock Time + * PSU_DDR_PHY_PTR1_TPLLLOCK 0x4141 - PHY General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080024, 0xFFFFFFFFU ,0x010100F4U) - RegMask = (DDR_PHY_PGCR5_FRQBT_MASK | DDR_PHY_PGCR5_FRQAT_MASK | DDR_PHY_PGCR5_DISCNPERIOD_MASK | DDR_PHY_PGCR5_VREF_RBCTRL_MASK | DDR_PHY_PGCR5_RESERVED_3_MASK | DDR_PHY_PGCR5_DXREFISELRANGE_MASK | DDR_PHY_PGCR5_DDLPGACT_MASK | DDR_PHY_PGCR5_DDLPGRW_MASK | 0 ); + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PTR1_RESERVED_15_13 0x0 - RegVal = ((0x00000001U << DDR_PHY_PGCR5_FRQBT_SHIFT - | 0x00000001U << DDR_PHY_PGCR5_FRQAT_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DISCNPERIOD_SHIFT - | 0x0000000FU << DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_RESERVED_3_SHIFT - | 0x00000001U << DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DDLPGACT_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DDLPGRW_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR5_OFFSET ,0xFFFFFFFFU ,0x010100F4U); - /*############################################################################################################################ */ + * PLL Reset Time + * PSU_DDR_PHY_PTR1_TPLLRST 0xaff - /*Register : PTR0 @ 0XFD080040

+ * PHY Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x41410AFFU) + */ + PSU_Mask_Write(DDR_PHY_PTR1_OFFSET, 0xFFFFFFFFU, 0x41410AFFU); +/*##################################################################### */ - PLL Power-Down Time - PSU_DDR_PHY_PTR0_TPLLPD 0x2f0 + /* + * Register : PLLCR0 @ 0XFD080068 - PLL Gear Shift Time - PSU_DDR_PHY_PTR0_TPLLGS 0x60 + * PLL Bypass + * PSU_DDR_PHY_PLLCR0_PLLBYP 0x0 - PHY Reset Time - PSU_DDR_PHY_PTR0_TPHYRST 0x10 + * PLL Reset + * PSU_DDR_PHY_PLLCR0_PLLRST 0x0 - PHY Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x5E001810U) - RegMask = (DDR_PHY_PTR0_TPLLPD_MASK | DDR_PHY_PTR0_TPLLGS_MASK | DDR_PHY_PTR0_TPHYRST_MASK | 0 ); + * PLL Power Down + * PSU_DDR_PHY_PLLCR0_PLLPD 0x0 - RegVal = ((0x000002F0U << DDR_PHY_PTR0_TPLLPD_SHIFT - | 0x00000060U << DDR_PHY_PTR0_TPLLGS_SHIFT - | 0x00000010U << DDR_PHY_PTR0_TPHYRST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PTR0_OFFSET ,0xFFFFFFFFU ,0x5E001810U); - /*############################################################################################################################ */ + * Reference Stop Mode + * PSU_DDR_PHY_PLLCR0_RSTOPM 0x0 - /*Register : PTR1 @ 0XFD080044

+ * PLL Frequency Select + * PSU_DDR_PHY_PLLCR0_FRQSEL 0x1 - PLL Lock Time - PSU_DDR_PHY_PTR1_TPLLLOCK 0x80 + * Relock Mode + * PSU_DDR_PHY_PLLCR0_RLOCKM 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PTR1_RESERVED_15_13 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_PLLCR0_CPPC 0x8 - PLL Reset Time - PSU_DDR_PHY_PTR1_TPLLRST 0x5f0 - - PHY Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x008005F0U) - RegMask = (DDR_PHY_PTR1_TPLLLOCK_MASK | DDR_PHY_PTR1_RESERVED_15_13_MASK | DDR_PHY_PTR1_TPLLRST_MASK | 0 ); + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_PLLCR0_CPIC 0x0 - RegVal = ((0x00000080U << DDR_PHY_PTR1_TPLLLOCK_SHIFT - | 0x00000000U << DDR_PHY_PTR1_RESERVED_15_13_SHIFT - | 0x000005F0U << DDR_PHY_PTR1_TPLLRST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PTR1_OFFSET ,0xFFFFFFFFU ,0x008005F0U); - /*############################################################################################################################ */ + * Gear Shift + * PSU_DDR_PHY_PLLCR0_GSHIFT 0x0 - /*Register : DSGCR @ 0XFD080090

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PLLCR0_RESERVED_11_9 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_31_28 0x0 + * Analog Test Enable + * PSU_DDR_PHY_PLLCR0_ATOEN 0x0 - When RDBI enabled, this bit is used to select RDBI CL calculation, if it is 1b1, calculation will use RDBICL, otherwise use d - fault calculation. - PSU_DDR_PHY_DSGCR_RDBICLSEL 0x0 + * Analog Test Control + * PSU_DDR_PHY_PLLCR0_ATC 0x0 - When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this value. - PSU_DDR_PHY_DSGCR_RDBICL 0x2 + * Digital Test Control + * PSU_DDR_PHY_PLLCR0_DTC 0x0 - PHY Impedance Update Enable - PSU_DDR_PHY_DSGCR_PHYZUEN 0x1 + * PLL Control Register 0 (Type B PLL Only) + * (OFFSET, MASK, VALUE) (0XFD080068, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_PLLCR0_OFFSET, 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_22 0x0 + /* + * Register : DSGCR @ 0XFD080090 - SDRAM Reset Output Enable - PSU_DDR_PHY_DSGCR_RSTOE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_31_28 0x0 - Single Data Rate Mode - PSU_DDR_PHY_DSGCR_SDRMODE 0x0 + * When RDBI enabled, this bit is used to select RDBI CL calculation, if it + * is 1b1, calculation will use RDBICL, otherwise use default calculation. + * PSU_DDR_PHY_DSGCR_RDBICLSEL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_18 0x0 + * When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this v + * alue. + * PSU_DDR_PHY_DSGCR_RDBICL 0x2 - ATO Analog Test Enable - PSU_DDR_PHY_DSGCR_ATOAE 0x0 + * PHY Impedance Update Enable + * PSU_DDR_PHY_DSGCR_PHYZUEN 0x1 - DTO Output Enable - PSU_DDR_PHY_DSGCR_DTOOE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_22 0x0 - DTO I/O Mode - PSU_DDR_PHY_DSGCR_DTOIOM 0x0 + * SDRAM Reset Output Enable + * PSU_DDR_PHY_DSGCR_RSTOE 0x1 - DTO Power Down Receiver - PSU_DDR_PHY_DSGCR_DTOPDR 0x1 + * Single Data Rate Mode + * PSU_DDR_PHY_DSGCR_SDRMODE 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_13 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_18 0x0 - DTO On-Die Termination - PSU_DDR_PHY_DSGCR_DTOODT 0x0 + * ATO Analog Test Enable + * PSU_DDR_PHY_DSGCR_ATOAE 0x0 - PHY Update Acknowledge Delay - PSU_DDR_PHY_DSGCR_PUAD 0x4 + * DTO Output Enable + * PSU_DDR_PHY_DSGCR_DTOOE 0x0 - Controller Update Acknowledge Enable - PSU_DDR_PHY_DSGCR_CUAEN 0x1 + * DTO I/O Mode + * PSU_DDR_PHY_DSGCR_DTOIOM 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_4_3 0x0 + * DTO Power Down Receiver + * PSU_DDR_PHY_DSGCR_DTOPDR 0x1 - Controller Impedance Update Enable - PSU_DDR_PHY_DSGCR_CTLZUEN 0x0 + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_13 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_1 0x0 + * DTO On-Die Termination + * PSU_DDR_PHY_DSGCR_DTOODT 0x0 - PHY Update Request Enable - PSU_DDR_PHY_DSGCR_PUREN 0x1 + * PHY Update Acknowledge Delay + * PSU_DDR_PHY_DSGCR_PUAD 0x5 - DDR System General Configuration Register - (OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04121U) - RegMask = (DDR_PHY_DSGCR_RESERVED_31_28_MASK | DDR_PHY_DSGCR_RDBICLSEL_MASK | DDR_PHY_DSGCR_RDBICL_MASK | DDR_PHY_DSGCR_PHYZUEN_MASK | DDR_PHY_DSGCR_RESERVED_22_MASK | DDR_PHY_DSGCR_RSTOE_MASK | DDR_PHY_DSGCR_SDRMODE_MASK | DDR_PHY_DSGCR_RESERVED_18_MASK | DDR_PHY_DSGCR_ATOAE_MASK | DDR_PHY_DSGCR_DTOOE_MASK | DDR_PHY_DSGCR_DTOIOM_MASK | DDR_PHY_DSGCR_DTOPDR_MASK | DDR_PHY_DSGCR_RESERVED_13_MASK | DDR_PHY_DSGCR_DTOODT_MASK | DDR_PHY_DSGCR_PUAD_MASK | DDR_PHY_DSGCR_CUAEN_MASK | DDR_PHY_DSGCR_RESERVED_4_3_MASK | DDR_PHY_DSGCR_CTLZUEN_MASK | DDR_PHY_DSGCR_RESERVED_1_MASK | DDR_PHY_DSGCR_PUREN_MASK | 0 ); + * Controller Update Acknowledge Enable + * PSU_DDR_PHY_DSGCR_CUAEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DSGCR_RESERVED_31_28_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RDBICLSEL_SHIFT - | 0x00000002U << DDR_PHY_DSGCR_RDBICL_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_PHYZUEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_22_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_RSTOE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_SDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_18_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_ATOAE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOOE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOIOM_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_DTOPDR_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_13_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOODT_SHIFT - | 0x00000004U << DDR_PHY_DSGCR_PUAD_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_CUAEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_4_3_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_CTLZUEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_1_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_PUREN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DSGCR_OFFSET ,0xFFFFFFFFU ,0x02A04121U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_4_3 0x0 - /*Register : DCR @ 0XFD080100

+ * Controller Impedance Update Enable + * PSU_DDR_PHY_DSGCR_CTLZUEN 0x0 - DDR4 Gear Down Timing. - PSU_DDR_PHY_DCR_GEARDN 0x0 + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_1 0x0 - Un-used Bank Group - PSU_DDR_PHY_DCR_UBG 0x0 + * PHY Update Request Enable + * PSU_DDR_PHY_DSGCR_PUREN 0x1 - Un-buffered DIMM Address Mirroring - PSU_DDR_PHY_DCR_UDIMM 0x0 + * DDR System General Configuration Register + * (OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04161U) + */ + PSU_Mask_Write(DDR_PHY_DSGCR_OFFSET, 0xFFFFFFFFU, 0x02A04161U); +/*##################################################################### */ - DDR 2T Timing - PSU_DDR_PHY_DCR_DDR2T 0x0 + /* + * Register : GPR0 @ 0XFD0800C0 - No Simultaneous Rank Access - PSU_DDR_PHY_DCR_NOSRA 0x1 + * General Purpose Register 0 + * PSU_DDR_PHY_GPR0_GPR0 0xd3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DCR_RESERVED_26_18 0x0 + * General Purpose Register 0 + * (OFFSET, MASK, VALUE) (0XFD0800C0, 0xFFFFFFFFU ,0x000000D3U) + */ + PSU_Mask_Write(DDR_PHY_GPR0_OFFSET, 0xFFFFFFFFU, 0x000000D3U); +/*##################################################################### */ - Byte Mask - PSU_DDR_PHY_DCR_BYTEMASK 0x1 + /* + * Register : DCR @ 0XFD080100 - DDR Type - PSU_DDR_PHY_DCR_DDRTYPE 0x0 + * DDR4 Gear Down Timing. + * PSU_DDR_PHY_DCR_GEARDN 0x0 - Multi-Purpose Register (MPR) DQ (DDR3 Only) - PSU_DDR_PHY_DCR_MPRDQ 0x0 + * Un-used Bank Group + * PSU_DDR_PHY_DCR_UBG 0x0 - Primary DQ (DDR3 Only) - PSU_DDR_PHY_DCR_PDQ 0x0 + * Un-buffered DIMM Address Mirroring + * PSU_DDR_PHY_DCR_UDIMM 0x0 - DDR 8-Bank - PSU_DDR_PHY_DCR_DDR8BNK 0x1 + * DDR 2T Timing + * PSU_DDR_PHY_DCR_DDR2T 0x0 - DDR Mode - PSU_DDR_PHY_DCR_DDRMD 0x4 + * No Simultaneous Rank Access + * PSU_DDR_PHY_DCR_NOSRA 0x1 - DRAM Configuration Register - (OFFSET, MASK, VALUE) (0XFD080100, 0xFFFFFFFFU ,0x0800040CU) - RegMask = (DDR_PHY_DCR_GEARDN_MASK | DDR_PHY_DCR_UBG_MASK | DDR_PHY_DCR_UDIMM_MASK | DDR_PHY_DCR_DDR2T_MASK | DDR_PHY_DCR_NOSRA_MASK | DDR_PHY_DCR_RESERVED_26_18_MASK | DDR_PHY_DCR_BYTEMASK_MASK | DDR_PHY_DCR_DDRTYPE_MASK | DDR_PHY_DCR_MPRDQ_MASK | DDR_PHY_DCR_PDQ_MASK | DDR_PHY_DCR_DDR8BNK_MASK | DDR_PHY_DCR_DDRMD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DCR_RESERVED_26_18 0x0 - RegVal = ((0x00000000U << DDR_PHY_DCR_GEARDN_SHIFT - | 0x00000000U << DDR_PHY_DCR_UBG_SHIFT - | 0x00000000U << DDR_PHY_DCR_UDIMM_SHIFT - | 0x00000000U << DDR_PHY_DCR_DDR2T_SHIFT - | 0x00000001U << DDR_PHY_DCR_NOSRA_SHIFT - | 0x00000000U << DDR_PHY_DCR_RESERVED_26_18_SHIFT - | 0x00000001U << DDR_PHY_DCR_BYTEMASK_SHIFT - | 0x00000000U << DDR_PHY_DCR_DDRTYPE_SHIFT - | 0x00000000U << DDR_PHY_DCR_MPRDQ_SHIFT - | 0x00000000U << DDR_PHY_DCR_PDQ_SHIFT - | 0x00000001U << DDR_PHY_DCR_DDR8BNK_SHIFT - | 0x00000004U << DDR_PHY_DCR_DDRMD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DCR_OFFSET ,0xFFFFFFFFU ,0x0800040CU); - /*############################################################################################################################ */ - - /*Register : DTPR0 @ 0XFD080110

+ * Byte Mask + * PSU_DDR_PHY_DCR_BYTEMASK 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_31_29 0x0 + * DDR Type + * PSU_DDR_PHY_DCR_DDRTYPE 0x0 - Activate to activate command delay (different banks) - PSU_DDR_PHY_DTPR0_TRRD 0x6 + * Multi-Purpose Register (MPR) DQ (DDR3 Only) + * PSU_DDR_PHY_DCR_MPRDQ 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_23 0x0 + * Primary DQ (DDR3 Only) + * PSU_DDR_PHY_DCR_PDQ 0x0 - Activate to precharge command delay - PSU_DDR_PHY_DTPR0_TRAS 0x24 + * DDR 8-Bank + * PSU_DDR_PHY_DCR_DDR8BNK 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_15 0x0 - - Precharge command period - PSU_DDR_PHY_DTPR0_TRP 0xf - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_7_5 0x0 - - Internal read to precharge command delay - PSU_DDR_PHY_DTPR0_TRTP 0x9 - - DRAM Timing Parameters Register 0 - (OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F09U) - RegMask = (DDR_PHY_DTPR0_RESERVED_31_29_MASK | DDR_PHY_DTPR0_TRRD_MASK | DDR_PHY_DTPR0_RESERVED_23_MASK | DDR_PHY_DTPR0_TRAS_MASK | DDR_PHY_DTPR0_RESERVED_15_MASK | DDR_PHY_DTPR0_TRP_MASK | DDR_PHY_DTPR0_RESERVED_7_5_MASK | DDR_PHY_DTPR0_TRTP_MASK | 0 ); + * DDR Mode + * PSU_DDR_PHY_DCR_DDRMD 0x4 - RegVal = ((0x00000000U << DDR_PHY_DTPR0_RESERVED_31_29_SHIFT - | 0x00000006U << DDR_PHY_DTPR0_TRRD_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_23_SHIFT - | 0x00000024U << DDR_PHY_DTPR0_TRAS_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_15_SHIFT - | 0x0000000FU << DDR_PHY_DTPR0_TRP_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_7_5_SHIFT - | 0x00000009U << DDR_PHY_DTPR0_TRTP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR0_OFFSET ,0xFFFFFFFFU ,0x06240F09U); - /*############################################################################################################################ */ + * DRAM Configuration Register + * (OFFSET, MASK, VALUE) (0XFD080100, 0xFFFFFFFFU ,0x0800040CU) + */ + PSU_Mask_Write(DDR_PHY_DCR_OFFSET, 0xFFFFFFFFU, 0x0800040CU); +/*##################################################################### */ - /*Register : DTPR1 @ 0XFD080114

+ /* + * Register : DTPR0 @ 0XFD080110 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_31 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_31_29 0x0 - Minimum delay from when write leveling mode is programmed to the first DQS/DQS# rising edge. - PSU_DDR_PHY_DTPR1_TWLMRD 0x28 + * Activate to activate command delay (different banks) + * PSU_DDR_PHY_DTPR0_TRRD 0x6 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_23 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_23 0x0 - 4-bank activate period - PSU_DDR_PHY_DTPR1_TFAW 0x18 + * Activate to precharge command delay + * PSU_DDR_PHY_DTPR0_TRAS 0x24 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_15_11 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_15 0x0 - Load mode update delay (DDR4 and DDR3 only) - PSU_DDR_PHY_DTPR1_TMOD 0x7 + * Precharge command period + * PSU_DDR_PHY_DTPR0_TRP 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_7_5 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_7_5 0x0 - Load mode cycle time - PSU_DDR_PHY_DTPR1_TMRD 0x8 + * Internal read to precharge command delay + * PSU_DDR_PHY_DTPR0_TRTP 0x8 - DRAM Timing Parameters Register 1 - (OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28180708U) - RegMask = (DDR_PHY_DTPR1_RESERVED_31_MASK | DDR_PHY_DTPR1_TWLMRD_MASK | DDR_PHY_DTPR1_RESERVED_23_MASK | DDR_PHY_DTPR1_TFAW_MASK | DDR_PHY_DTPR1_RESERVED_15_11_MASK | DDR_PHY_DTPR1_TMOD_MASK | DDR_PHY_DTPR1_RESERVED_7_5_MASK | DDR_PHY_DTPR1_TMRD_MASK | 0 ); + * DRAM Timing Parameters Register 0 + * (OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F08U) + */ + PSU_Mask_Write(DDR_PHY_DTPR0_OFFSET, 0xFFFFFFFFU, 0x06240F08U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DTPR1_RESERVED_31_SHIFT - | 0x00000028U << DDR_PHY_DTPR1_TWLMRD_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_23_SHIFT - | 0x00000018U << DDR_PHY_DTPR1_TFAW_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_15_11_SHIFT - | 0x00000007U << DDR_PHY_DTPR1_TMOD_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_7_5_SHIFT - | 0x00000008U << DDR_PHY_DTPR1_TMRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR1_OFFSET ,0xFFFFFFFFU ,0x28180708U); - /*############################################################################################################################ */ + /* + * Register : DTPR1 @ 0XFD080114 - /*Register : DTPR2 @ 0XFD080118

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_31 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_31_29 0x0 + * Minimum delay from when write leveling mode is programmed to the first D + * QS/DQS# rising edge. + * PSU_DDR_PHY_DTPR1_TWLMRD 0x28 - Read to Write command delay. Valid values are - PSU_DDR_PHY_DTPR2_TRTW 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_23 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_27_25 0x0 + * 4-bank activate period + * PSU_DDR_PHY_DTPR1_TFAW 0x20 - Read to ODT delay (DDR3 only) - PSU_DDR_PHY_DTPR2_TRTODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_15_11 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_23_20 0x0 + * Load mode update delay (DDR4 and DDR3 only) + * PSU_DDR_PHY_DTPR1_TMOD 0x0 - CKE minimum pulse width - PSU_DDR_PHY_DTPR2_TCKE 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_7_5 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_15_10 0x0 + * Load mode cycle time + * PSU_DDR_PHY_DTPR1_TMRD 0x8 - Self refresh exit delay - PSU_DDR_PHY_DTPR2_TXS 0x200 + * DRAM Timing Parameters Register 1 + * (OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28200008U) + */ + PSU_Mask_Write(DDR_PHY_DTPR1_OFFSET, 0xFFFFFFFFU, 0x28200008U); +/*##################################################################### */ - DRAM Timing Parameters Register 2 - (OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00080200U) - RegMask = (DDR_PHY_DTPR2_RESERVED_31_29_MASK | DDR_PHY_DTPR2_TRTW_MASK | DDR_PHY_DTPR2_RESERVED_27_25_MASK | DDR_PHY_DTPR2_TRTODT_MASK | DDR_PHY_DTPR2_RESERVED_23_20_MASK | DDR_PHY_DTPR2_TCKE_MASK | DDR_PHY_DTPR2_RESERVED_15_10_MASK | DDR_PHY_DTPR2_TXS_MASK | 0 ); + /* + * Register : DTPR2 @ 0XFD080118 - RegVal = ((0x00000000U << DDR_PHY_DTPR2_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_TRTW_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_27_25_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_TRTODT_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_23_20_SHIFT - | 0x00000008U << DDR_PHY_DTPR2_TCKE_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_15_10_SHIFT - | 0x00000200U << DDR_PHY_DTPR2_TXS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR2_OFFSET ,0xFFFFFFFFU ,0x00080200U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_31_29 0x0 - /*Register : DTPR3 @ 0XFD08011C

+ * Read to Write command delay. Valid values are + * PSU_DDR_PHY_DTPR2_TRTW 0x0 - ODT turn-off delay extension - PSU_DDR_PHY_DTPR3_TOFDX 0x4 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_27_25 0x0 - Read to read and write to write command delay - PSU_DDR_PHY_DTPR3_TCCD 0x0 + * Read to ODT delay (DDR3 only) + * PSU_DDR_PHY_DTPR2_TRTODT 0x0 - DLL locking time - PSU_DDR_PHY_DTPR3_TDLLK 0x300 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_23_20 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR3_RESERVED_15_12 0x0 + * CKE minimum pulse width + * PSU_DDR_PHY_DTPR2_TCKE 0x7 - Maximum DQS output access time from CK/CK# (LPDDR2/3 only) - PSU_DDR_PHY_DTPR3_TDQSCKMAX 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_15_10 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR3_RESERVED_7_3 0x0 + * Self refresh exit delay + * PSU_DDR_PHY_DTPR2_TXS 0x300 - DQS output access time from CK/CK# (LPDDR2/3 only) - PSU_DDR_PHY_DTPR3_TDQSCK 0x0 + * DRAM Timing Parameters Register 2 + * (OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00070300U) + */ + PSU_Mask_Write(DDR_PHY_DTPR2_OFFSET, 0xFFFFFFFFU, 0x00070300U); +/*##################################################################### */ - DRAM Timing Parameters Register 3 - (OFFSET, MASK, VALUE) (0XFD08011C, 0xFFFFFFFFU ,0x83000800U) - RegMask = (DDR_PHY_DTPR3_TOFDX_MASK | DDR_PHY_DTPR3_TCCD_MASK | DDR_PHY_DTPR3_TDLLK_MASK | DDR_PHY_DTPR3_RESERVED_15_12_MASK | DDR_PHY_DTPR3_TDQSCKMAX_MASK | DDR_PHY_DTPR3_RESERVED_7_3_MASK | DDR_PHY_DTPR3_TDQSCK_MASK | 0 ); + /* + * Register : DTPR3 @ 0XFD08011C - RegVal = ((0x00000004U << DDR_PHY_DTPR3_TOFDX_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_TCCD_SHIFT - | 0x00000300U << DDR_PHY_DTPR3_TDLLK_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_RESERVED_15_12_SHIFT - | 0x00000008U << DDR_PHY_DTPR3_TDQSCKMAX_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_RESERVED_7_3_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_TDQSCK_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR3_OFFSET ,0xFFFFFFFFU ,0x83000800U); - /*############################################################################################################################ */ + * ODT turn-off delay extension + * PSU_DDR_PHY_DTPR3_TOFDX 0x4 - /*Register : DTPR4 @ 0XFD080120

+ * Read to read and write to write command delay + * PSU_DDR_PHY_DTPR3_TCCD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_31_30 0x0 + * DLL locking time + * PSU_DDR_PHY_DTPR3_TDLLK 0x300 - ODT turn-on/turn-off delays (DDR2 only) - PSU_DDR_PHY_DTPR4_TAOND_TAOFD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR3_RESERVED_15_12 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_27_26 0x0 + * Maximum DQS output access time from CK/CK# (LPDDR2/3 only) + * PSU_DDR_PHY_DTPR3_TDQSCKMAX 0x8 - Refresh-to-Refresh - PSU_DDR_PHY_DTPR4_TRFC 0x116 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR3_RESERVED_7_3 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_15_14 0x0 + * DQS output access time from CK/CK# (LPDDR2/3 only) + * PSU_DDR_PHY_DTPR3_TDQSCK 0x0 - Write leveling output delay - PSU_DDR_PHY_DTPR4_TWLO 0x2b + * DRAM Timing Parameters Register 3 + * (OFFSET, MASK, VALUE) (0XFD08011C, 0xFFFFFFFFU ,0x83000800U) + */ + PSU_Mask_Write(DDR_PHY_DTPR3_OFFSET, 0xFFFFFFFFU, 0x83000800U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_7_5 0x0 + /* + * Register : DTPR4 @ 0XFD080120 - Power down exit delay - PSU_DDR_PHY_DTPR4_TXP 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_31_30 0x0 - DRAM Timing Parameters Register 4 - (OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B08U) - RegMask = (DDR_PHY_DTPR4_RESERVED_31_30_MASK | DDR_PHY_DTPR4_TAOND_TAOFD_MASK | DDR_PHY_DTPR4_RESERVED_27_26_MASK | DDR_PHY_DTPR4_TRFC_MASK | DDR_PHY_DTPR4_RESERVED_15_14_MASK | DDR_PHY_DTPR4_TWLO_MASK | DDR_PHY_DTPR4_RESERVED_7_5_MASK | DDR_PHY_DTPR4_TXP_MASK | 0 ); + * ODT turn-on/turn-off delays (DDR2 only) + * PSU_DDR_PHY_DTPR4_TAOND_TAOFD 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR4_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_27_26_SHIFT - | 0x00000116U << DDR_PHY_DTPR4_TRFC_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DTPR4_TWLO_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_7_5_SHIFT - | 0x00000008U << DDR_PHY_DTPR4_TXP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR4_OFFSET ,0xFFFFFFFFU ,0x01162B08U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_27_26 0x0 - /*Register : DTPR5 @ 0XFD080124

+ * Refresh-to-Refresh + * PSU_DDR_PHY_DTPR4_TRFC 0x116 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_31_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_15_14 0x0 - Activate to activate command delay (same bank) - PSU_DDR_PHY_DTPR5_TRC 0x32 + * Write leveling output delay + * PSU_DDR_PHY_DTPR4_TWLO 0x2b - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_15 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_7_5 0x0 - Activate to read or write delay - PSU_DDR_PHY_DTPR5_TRCD 0xf + * Power down exit delay + * PSU_DDR_PHY_DTPR4_TXP 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_7_5 0x0 + * DRAM Timing Parameters Register 4 + * (OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B07U) + */ + PSU_Mask_Write(DDR_PHY_DTPR4_OFFSET, 0xFFFFFFFFU, 0x01162B07U); +/*##################################################################### */ - Internal write to read command delay - PSU_DDR_PHY_DTPR5_TWTR 0x9 + /* + * Register : DTPR5 @ 0XFD080124 - DRAM Timing Parameters Register 5 - (OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00320F09U) - RegMask = (DDR_PHY_DTPR5_RESERVED_31_24_MASK | DDR_PHY_DTPR5_TRC_MASK | DDR_PHY_DTPR5_RESERVED_15_MASK | DDR_PHY_DTPR5_TRCD_MASK | DDR_PHY_DTPR5_RESERVED_7_5_MASK | DDR_PHY_DTPR5_TWTR_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_31_24 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR5_RESERVED_31_24_SHIFT - | 0x00000032U << DDR_PHY_DTPR5_TRC_SHIFT - | 0x00000000U << DDR_PHY_DTPR5_RESERVED_15_SHIFT - | 0x0000000FU << DDR_PHY_DTPR5_TRCD_SHIFT - | 0x00000000U << DDR_PHY_DTPR5_RESERVED_7_5_SHIFT - | 0x00000009U << DDR_PHY_DTPR5_TWTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR5_OFFSET ,0xFFFFFFFFU ,0x00320F09U); - /*############################################################################################################################ */ + * Activate to activate command delay (same bank) + * PSU_DDR_PHY_DTPR5_TRC 0x33 - /*Register : DTPR6 @ 0XFD080128

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_15 0x0 - PUB Write Latency Enable - PSU_DDR_PHY_DTPR6_PUBWLEN 0x0 + * Activate to read or write delay + * PSU_DDR_PHY_DTPR5_TRCD 0xf - PUB Read Latency Enable - PSU_DDR_PHY_DTPR6_PUBRLEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_7_5 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR6_RESERVED_29_14 0x0 + * Internal write to read command delay + * PSU_DDR_PHY_DTPR5_TWTR 0x8 - Write Latency - PSU_DDR_PHY_DTPR6_PUBWL 0xe + * DRAM Timing Parameters Register 5 + * (OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00330F08U) + */ + PSU_Mask_Write(DDR_PHY_DTPR5_OFFSET, 0xFFFFFFFFU, 0x00330F08U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR6_RESERVED_7_6 0x0 + /* + * Register : DTPR6 @ 0XFD080128 - Read Latency - PSU_DDR_PHY_DTPR6_PUBRL 0xf + * PUB Write Latency Enable + * PSU_DDR_PHY_DTPR6_PUBWLEN 0x0 - DRAM Timing Parameters Register 6 - (OFFSET, MASK, VALUE) (0XFD080128, 0xFFFFFFFFU ,0x00000E0FU) - RegMask = (DDR_PHY_DTPR6_PUBWLEN_MASK | DDR_PHY_DTPR6_PUBRLEN_MASK | DDR_PHY_DTPR6_RESERVED_29_14_MASK | DDR_PHY_DTPR6_PUBWL_MASK | DDR_PHY_DTPR6_RESERVED_7_6_MASK | DDR_PHY_DTPR6_PUBRL_MASK | 0 ); + * PUB Read Latency Enable + * PSU_DDR_PHY_DTPR6_PUBRLEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR6_PUBWLEN_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_PUBRLEN_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_RESERVED_29_14_SHIFT - | 0x0000000EU << DDR_PHY_DTPR6_PUBWL_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DTPR6_PUBRL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR6_OFFSET ,0xFFFFFFFFU ,0x00000E0FU); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR6_RESERVED_29_14 0x0 - /*Register : RDIMMGCR0 @ 0XFD080140

+ * Write Latency + * PSU_DDR_PHY_DTPR6_PUBWL 0xe - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_31 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR6_RESERVED_7_6 0x0 - RDMIMM Quad CS Enable - PSU_DDR_PHY_RDIMMGCR0_QCSEN 0x0 + * Read Latency + * PSU_DDR_PHY_DTPR6_PUBRL 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_29_28 0x0 + * DRAM Timing Parameters Register 6 + * (OFFSET, MASK, VALUE) (0XFD080128, 0xFFFFFFFFU ,0x00000E0FU) + */ + PSU_Mask_Write(DDR_PHY_DTPR6_OFFSET, 0xFFFFFFFFU, 0x00000E0FU); +/*##################################################################### */ - RDIMM Outputs I/O Mode - PSU_DDR_PHY_RDIMMGCR0_RDIMMIOM 0x1 + /* + * Register : RDIMMGCR0 @ 0XFD080140 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_26_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_31 0x0 - ERROUT# Output Enable - PSU_DDR_PHY_RDIMMGCR0_ERROUTOE 0x0 + * RDMIMM Quad CS Enable + * PSU_DDR_PHY_RDIMMGCR0_QCSEN 0x0 - ERROUT# I/O Mode - PSU_DDR_PHY_RDIMMGCR0_ERROUTIOM 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_29_28 0x0 - ERROUT# Power Down Receiver - PSU_DDR_PHY_RDIMMGCR0_ERROUTPDR 0x0 + * RDIMM Outputs I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_RDIMMIOM 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_20 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_26_24 0x0 - ERROUT# On-Die Termination - PSU_DDR_PHY_RDIMMGCR0_ERROUTODT 0x0 + * ERROUT# Output Enable + * PSU_DDR_PHY_RDIMMGCR0_ERROUTOE 0x0 - Load Reduced DIMM - PSU_DDR_PHY_RDIMMGCR0_LRDIMM 0x0 + * ERROUT# I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_ERROUTIOM 0x1 - PAR_IN I/O Mode - PSU_DDR_PHY_RDIMMGCR0_PARINIOM 0x0 + * ERROUT# Power Down Receiver + * PSU_DDR_PHY_RDIMMGCR0_ERROUTPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_16_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_20 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD 0x0 + * ERROUT# On-Die Termination + * PSU_DDR_PHY_RDIMMGCR0_ERROUTODT 0x0 - Rank Mirror Enable. - PSU_DDR_PHY_RDIMMGCR0_RNKMRREN 0x2 + * Load Reduced DIMM + * PSU_DDR_PHY_RDIMMGCR0_LRDIMM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_3 0x0 + * PAR_IN I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_PARINIOM 0x0 - Stop on Parity Error - PSU_DDR_PHY_RDIMMGCR0_SOPERR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_16_8 0x0 - Parity Error No Registering - PSU_DDR_PHY_RDIMMGCR0_ERRNOREG 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD 0x0 - Registered DIMM - PSU_DDR_PHY_RDIMMGCR0_RDIMM 0x0 + * Rank Mirror Enable. + * PSU_DDR_PHY_RDIMMGCR0_RNKMRREN 0x2 - RDIMM General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080140, 0xFFFFFFFFU ,0x08400020U) - RegMask = (DDR_PHY_RDIMMGCR0_RESERVED_31_MASK | DDR_PHY_RDIMMGCR0_QCSEN_MASK | DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK | DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK | DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK | DDR_PHY_RDIMMGCR0_ERROUTOE_MASK | DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK | DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK | DDR_PHY_RDIMMGCR0_RESERVED_20_MASK | DDR_PHY_RDIMMGCR0_ERROUTODT_MASK | DDR_PHY_RDIMMGCR0_LRDIMM_MASK | DDR_PHY_RDIMMGCR0_PARINIOM_MASK | DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK | DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK | DDR_PHY_RDIMMGCR0_RNKMRREN_MASK | DDR_PHY_RDIMMGCR0_RESERVED_3_MASK | DDR_PHY_RDIMMGCR0_SOPERR_MASK | DDR_PHY_RDIMMGCR0_ERRNOREG_MASK | DDR_PHY_RDIMMGCR0_RDIMM_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_3 0x0 - RegVal = ((0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_QCSEN_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT - | 0x00000001U << DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT - | 0x00000001U << DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT - | 0x00000002U << DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_SOPERR_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RDIMM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMGCR0_OFFSET ,0xFFFFFFFFU ,0x08400020U); - /*############################################################################################################################ */ + * Stop on Parity Error + * PSU_DDR_PHY_RDIMMGCR0_SOPERR 0x0 - /*Register : RDIMMGCR1 @ 0XFD080144

+ * Parity Error No Registering + * PSU_DDR_PHY_RDIMMGCR0_ERRNOREG 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_31_29 0x0 + * Registered DIMM + * PSU_DDR_PHY_RDIMMGCR0_RDIMM 0x0 - Address [17] B-side Inversion Disable - PSU_DDR_PHY_RDIMMGCR1_A17BID 0x0 + * RDIMM General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080140, 0xFFFFFFFFU ,0x08400020U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMGCR0_OFFSET, 0xFFFFFFFFU, 0x08400020U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_27 0x0 + /* + * Register : RDIMMGCR1 @ 0XFD080144 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L2 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_31_29 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_23 0x0 + * Address [17] B-side Inversion Disable + * PSU_DDR_PHY_RDIMMGCR1_A17BID 0x0 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_27 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_19 0x0 + * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L2 0x0 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_23 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_15_14 0x0 + * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L 0x0 - Stabilization time - PSU_DDR_PHY_RDIMMGCR1_TBCSTAB 0xc80 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_19 0x0 - RDIMM General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080144, 0xFFFFFFFFU ,0x00000C80U) - RegMask = (DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK | DDR_PHY_RDIMMGCR1_A17BID_MASK | DDR_PHY_RDIMMGCR1_RESERVED_27_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK | DDR_PHY_RDIMMGCR1_RESERVED_23_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK | DDR_PHY_RDIMMGCR1_RESERVED_19_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_MASK | DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK | DDR_PHY_RDIMMGCR1_TBCSTAB_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_A17BID_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT - | 0x00000C80U << DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMGCR1_OFFSET ,0xFFFFFFFFU ,0x00000C80U); - /*############################################################################################################################ */ - - /*Register : RDIMMCR0 @ 0XFD080150

+ * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD 0x0 - DDR4/DDR3 Control Word 7 - PSU_DDR_PHY_RDIMMCR0_RC7 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_15_14 0x0 - DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR0_RC6 0x0 - - DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC5 0x0 - - DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control Word) / DDR3 Control Word 4 (Control Signals Driver C - aracteristics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC4 0x0 - - DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Word) / DDR3 Control Word 3 (Command/Address Signals Dr - ver Characteristrics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC3 0x0 - - DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 (Timing Control Word) - PSU_DDR_PHY_RDIMMCR0_RC2 0x0 - - DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) - PSU_DDR_PHY_RDIMMCR0_RC1 0x0 - - DDR4/DDR3 Control Word 0 (Global Features Control Word) - PSU_DDR_PHY_RDIMMCR0_RC0 0x0 - - RDIMM Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080150, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_RDIMMCR0_RC7_MASK | DDR_PHY_RDIMMCR0_RC6_MASK | DDR_PHY_RDIMMCR0_RC5_MASK | DDR_PHY_RDIMMCR0_RC4_MASK | DDR_PHY_RDIMMCR0_RC3_MASK | DDR_PHY_RDIMMCR0_RC2_MASK | DDR_PHY_RDIMMCR0_RC1_MASK | DDR_PHY_RDIMMCR0_RC0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_RDIMMCR0_RC7_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC6_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC5_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC4_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC3_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC2_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC1_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMCR0_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Stabilization time + * PSU_DDR_PHY_RDIMMGCR1_TBCSTAB 0xc80 - /*Register : RDIMMCR1 @ 0XFD080154

+ * RDIMM General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080144, 0xFFFFFFFFU ,0x00000C80U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMGCR1_OFFSET, 0xFFFFFFFFU, 0x00000C80U); +/*##################################################################### */ - Control Word 15 - PSU_DDR_PHY_RDIMMCR1_RC15 0x0 + /* + * Register : RDIMMCR0 @ 0XFD080150 - DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC14 0x0 + * DDR4/DDR3 Control Word 7 + * PSU_DDR_PHY_RDIMMCR0_RC7 0x0 - DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC13 0x0 + * DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR0_RC6 0x0 - DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC12 0x0 + * DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC5 0x0 - DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Word) / DDR3 Control Word 11 (Operation Voltage VDD Con - rol Word) - PSU_DDR_PHY_RDIMMCR1_RC11 0x0 + * DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control + * Word) / DDR3 Control Word 4 (Control Signals Driver Characteristics Cont + * rol Word) + * PSU_DDR_PHY_RDIMMCR0_RC4 0x0 - DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) - PSU_DDR_PHY_RDIMMCR1_RC10 0x2 + * DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Wo + * rd) / DDR3 Control Word 3 (Command/Address Signals Driver Characteristri + * cs Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC3 0x0 - DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) - PSU_DDR_PHY_RDIMMCR1_RC9 0x0 + * DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 + * (Timing Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC2 0x0 - DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Control Word 8 (Additional Input Bus Termination Setting - Control Word) - PSU_DDR_PHY_RDIMMCR1_RC8 0x0 + * DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC1 0x0 - RDIMM Control Register 1 - (OFFSET, MASK, VALUE) (0XFD080154, 0xFFFFFFFFU ,0x00000200U) - RegMask = (DDR_PHY_RDIMMCR1_RC15_MASK | DDR_PHY_RDIMMCR1_RC14_MASK | DDR_PHY_RDIMMCR1_RC13_MASK | DDR_PHY_RDIMMCR1_RC12_MASK | DDR_PHY_RDIMMCR1_RC11_MASK | DDR_PHY_RDIMMCR1_RC10_MASK | DDR_PHY_RDIMMCR1_RC9_MASK | DDR_PHY_RDIMMCR1_RC8_MASK | 0 ); + * DDR4/DDR3 Control Word 0 (Global Features Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC0 0x0 - RegVal = ((0x00000000U << DDR_PHY_RDIMMCR1_RC15_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC14_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC13_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC12_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC11_SHIFT - | 0x00000002U << DDR_PHY_RDIMMCR1_RC10_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC9_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC8_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMCR1_OFFSET ,0xFFFFFFFFU ,0x00000200U); - /*############################################################################################################################ */ + * RDIMM Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080150, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMCR0_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - /*Register : MR0 @ 0XFD080180

+ /* + * Register : RDIMMCR1 @ 0XFD080154 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR0_RESERVED_31_8 0x8 + * Control Word 15 + * PSU_DDR_PHY_RDIMMCR1_RC15 0x0 - CA Terminating Rank - PSU_DDR_PHY_MR0_CATR 0x0 + * DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC14 0x0 - Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR0_RSVD_6_5 0x1 + * DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC13 0x0 - Built-in Self-Test for RZQ - PSU_DDR_PHY_MR0_RZQI 0x2 + * DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC12 0x0 - Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR0_RSVD_2_0 0x0 + * DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Wo + * rd) / DDR3 Control Word 11 (Operation Voltage VDD Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC11 0x0 - LPDDR4 Mode Register 0 - (OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000830U) - RegMask = (DDR_PHY_MR0_RESERVED_31_8_MASK | DDR_PHY_MR0_CATR_MASK | DDR_PHY_MR0_RSVD_6_5_MASK | DDR_PHY_MR0_RZQI_MASK | DDR_PHY_MR0_RSVD_2_0_MASK | 0 ); + * DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC10 0x2 - RegVal = ((0x00000008U << DDR_PHY_MR0_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR0_CATR_SHIFT - | 0x00000001U << DDR_PHY_MR0_RSVD_6_5_SHIFT - | 0x00000002U << DDR_PHY_MR0_RZQI_SHIFT - | 0x00000000U << DDR_PHY_MR0_RSVD_2_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR0_OFFSET ,0xFFFFFFFFU ,0x00000830U); - /*############################################################################################################################ */ + * DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC9 0x0 - /*Register : MR1 @ 0XFD080184

+ * DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Con + * trol Word 8 (Additional Input Bus Termination Setting Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC8 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR1_RESERVED_31_8 0x3 + * RDIMM Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD080154, 0xFFFFFFFFU ,0x00000200U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMCR1_OFFSET, 0xFFFFFFFFU, 0x00000200U); +/*##################################################################### */ - Read Postamble Length - PSU_DDR_PHY_MR1_RDPST 0x0 + /* + * Register : MR0 @ 0XFD080180 - Write-recovery for auto-precharge command - PSU_DDR_PHY_MR1_NWR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR0_RESERVED_31_8 0x6 - Read Preamble Length - PSU_DDR_PHY_MR1_RDPRE 0x0 + * CA Terminating Rank + * PSU_DDR_PHY_MR0_CATR 0x0 - Write Preamble Length - PSU_DDR_PHY_MR1_WRPRE 0x0 + * Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. + * PSU_DDR_PHY_MR0_RSVD_6_5 0x1 - Burst Length - PSU_DDR_PHY_MR1_BL 0x1 + * Built-in Self-Test for RZQ + * PSU_DDR_PHY_MR0_RZQI 0x2 - LPDDR4 Mode Register 1 - (OFFSET, MASK, VALUE) (0XFD080184, 0xFFFFFFFFU ,0x00000301U) - RegMask = (DDR_PHY_MR1_RESERVED_31_8_MASK | DDR_PHY_MR1_RDPST_MASK | DDR_PHY_MR1_NWR_MASK | DDR_PHY_MR1_RDPRE_MASK | DDR_PHY_MR1_WRPRE_MASK | DDR_PHY_MR1_BL_MASK | 0 ); + * Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. + * PSU_DDR_PHY_MR0_RSVD_2_0 0x0 - RegVal = ((0x00000003U << DDR_PHY_MR1_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR1_RDPST_SHIFT - | 0x00000000U << DDR_PHY_MR1_NWR_SHIFT - | 0x00000000U << DDR_PHY_MR1_RDPRE_SHIFT - | 0x00000000U << DDR_PHY_MR1_WRPRE_SHIFT - | 0x00000001U << DDR_PHY_MR1_BL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR1_OFFSET ,0xFFFFFFFFU ,0x00000301U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 0 + * (OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000630U) + */ + PSU_Mask_Write(DDR_PHY_MR0_OFFSET, 0xFFFFFFFFU, 0x00000630U); +/*##################################################################### */ - /*Register : MR2 @ 0XFD080188

+ /* + * Register : MR1 @ 0XFD080184 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR2_RESERVED_31_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR1_RESERVED_31_8 0x3 - Write Leveling - PSU_DDR_PHY_MR2_WRL 0x0 + * Read Postamble Length + * PSU_DDR_PHY_MR1_RDPST 0x0 - Write Latency Set - PSU_DDR_PHY_MR2_WLS 0x0 + * Write-recovery for auto-precharge command + * PSU_DDR_PHY_MR1_NWR 0x0 - Write Latency - PSU_DDR_PHY_MR2_WL 0x4 + * Read Preamble Length + * PSU_DDR_PHY_MR1_RDPRE 0x0 - Read Latency - PSU_DDR_PHY_MR2_RL 0x0 + * Write Preamble Length + * PSU_DDR_PHY_MR1_WRPRE 0x0 - LPDDR4 Mode Register 2 - (OFFSET, MASK, VALUE) (0XFD080188, 0xFFFFFFFFU ,0x00000020U) - RegMask = (DDR_PHY_MR2_RESERVED_31_8_MASK | DDR_PHY_MR2_WRL_MASK | DDR_PHY_MR2_WLS_MASK | DDR_PHY_MR2_WL_MASK | DDR_PHY_MR2_RL_MASK | 0 ); + * Burst Length + * PSU_DDR_PHY_MR1_BL 0x1 - RegVal = ((0x00000000U << DDR_PHY_MR2_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR2_WRL_SHIFT - | 0x00000000U << DDR_PHY_MR2_WLS_SHIFT - | 0x00000004U << DDR_PHY_MR2_WL_SHIFT - | 0x00000000U << DDR_PHY_MR2_RL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR2_OFFSET ,0xFFFFFFFFU ,0x00000020U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 1 + * (OFFSET, MASK, VALUE) (0XFD080184, 0xFFFFFFFFU ,0x00000301U) + */ + PSU_Mask_Write(DDR_PHY_MR1_OFFSET, 0xFFFFFFFFU, 0x00000301U); +/*##################################################################### */ - /*Register : MR3 @ 0XFD08018C

+ /* + * Register : MR2 @ 0XFD080188 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR3_RESERVED_31_8 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR2_RESERVED_31_8 0x0 - DBI-Write Enable - PSU_DDR_PHY_MR3_DBIWR 0x0 + * Write Leveling + * PSU_DDR_PHY_MR2_WRL 0x0 - DBI-Read Enable - PSU_DDR_PHY_MR3_DBIRD 0x0 + * Write Latency Set + * PSU_DDR_PHY_MR2_WLS 0x0 - Pull-down Drive Strength - PSU_DDR_PHY_MR3_PDDS 0x0 + * Write Latency + * PSU_DDR_PHY_MR2_WL 0x4 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR3_RSVD 0x0 + * Read Latency + * PSU_DDR_PHY_MR2_RL 0x0 - Write Postamble Length - PSU_DDR_PHY_MR3_WRPST 0x0 + * LPDDR4 Mode Register 2 + * (OFFSET, MASK, VALUE) (0XFD080188, 0xFFFFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(DDR_PHY_MR2_OFFSET, 0xFFFFFFFFU, 0x00000020U); +/*##################################################################### */ - Pull-up Calibration Point - PSU_DDR_PHY_MR3_PUCAL 0x0 + /* + * Register : MR3 @ 0XFD08018C - LPDDR4 Mode Register 3 - (OFFSET, MASK, VALUE) (0XFD08018C, 0xFFFFFFFFU ,0x00000200U) - RegMask = (DDR_PHY_MR3_RESERVED_31_8_MASK | DDR_PHY_MR3_DBIWR_MASK | DDR_PHY_MR3_DBIRD_MASK | DDR_PHY_MR3_PDDS_MASK | DDR_PHY_MR3_RSVD_MASK | DDR_PHY_MR3_WRPST_MASK | DDR_PHY_MR3_PUCAL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR3_RESERVED_31_8 0x2 - RegVal = ((0x00000002U << DDR_PHY_MR3_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR3_DBIWR_SHIFT - | 0x00000000U << DDR_PHY_MR3_DBIRD_SHIFT - | 0x00000000U << DDR_PHY_MR3_PDDS_SHIFT - | 0x00000000U << DDR_PHY_MR3_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR3_WRPST_SHIFT - | 0x00000000U << DDR_PHY_MR3_PUCAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR3_OFFSET ,0xFFFFFFFFU ,0x00000200U); - /*############################################################################################################################ */ + * DBI-Write Enable + * PSU_DDR_PHY_MR3_DBIWR 0x0 - /*Register : MR4 @ 0XFD080190

+ * DBI-Read Enable + * PSU_DDR_PHY_MR3_DBIRD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR4_RESERVED_31_16 0x0 + * Pull-down Drive Strength + * PSU_DDR_PHY_MR3_PDDS 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD_15_13 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR3_RSVD 0x0 - Write Preamble - PSU_DDR_PHY_MR4_WRP 0x0 + * Write Postamble Length + * PSU_DDR_PHY_MR3_WRPST 0x0 - Read Preamble - PSU_DDR_PHY_MR4_RDP 0x0 + * Pull-up Calibration Point + * PSU_DDR_PHY_MR3_PUCAL 0x0 - Read Preamble Training Mode - PSU_DDR_PHY_MR4_RPTM 0x0 + * LPDDR4 Mode Register 3 + * (OFFSET, MASK, VALUE) (0XFD08018C, 0xFFFFFFFFU ,0x00000200U) + */ + PSU_Mask_Write(DDR_PHY_MR3_OFFSET, 0xFFFFFFFFU, 0x00000200U); +/*##################################################################### */ - Self Refresh Abort - PSU_DDR_PHY_MR4_SRA 0x0 + /* + * Register : MR4 @ 0XFD080190 - CS to Command Latency Mode - PSU_DDR_PHY_MR4_CS2CMDL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR4_RESERVED_31_16 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD1 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR4_RSVD_15_13 0x0 - Internal VREF Monitor - PSU_DDR_PHY_MR4_IVM 0x0 + * Write Preamble + * PSU_DDR_PHY_MR4_WRP 0x0 - Temperature Controlled Refresh Mode - PSU_DDR_PHY_MR4_TCRM 0x0 + * Read Preamble + * PSU_DDR_PHY_MR4_RDP 0x0 - Temperature Controlled Refresh Range - PSU_DDR_PHY_MR4_TCRR 0x0 + * Read Preamble Training Mode + * PSU_DDR_PHY_MR4_RPTM 0x0 - Maximum Power Down Mode - PSU_DDR_PHY_MR4_MPDM 0x0 + * Self Refresh Abort + * PSU_DDR_PHY_MR4_SRA 0x0 - This is a JEDEC reserved bit and is recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD_0 0x0 + * CS to Command Latency Mode + * PSU_DDR_PHY_MR4_CS2CMDL 0x0 - DDR4 Mode Register 4 - (OFFSET, MASK, VALUE) (0XFD080190, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR4_RESERVED_31_16_MASK | DDR_PHY_MR4_RSVD_15_13_MASK | DDR_PHY_MR4_WRP_MASK | DDR_PHY_MR4_RDP_MASK | DDR_PHY_MR4_RPTM_MASK | DDR_PHY_MR4_SRA_MASK | DDR_PHY_MR4_CS2CMDL_MASK | DDR_PHY_MR4_RSVD1_MASK | DDR_PHY_MR4_IVM_MASK | DDR_PHY_MR4_TCRM_MASK | DDR_PHY_MR4_TCRR_MASK | DDR_PHY_MR4_MPDM_MASK | DDR_PHY_MR4_RSVD_0_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR4_RSVD1 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR4_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD_15_13_SHIFT - | 0x00000000U << DDR_PHY_MR4_WRP_SHIFT - | 0x00000000U << DDR_PHY_MR4_RDP_SHIFT - | 0x00000000U << DDR_PHY_MR4_RPTM_SHIFT - | 0x00000000U << DDR_PHY_MR4_SRA_SHIFT - | 0x00000000U << DDR_PHY_MR4_CS2CMDL_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD1_SHIFT - | 0x00000000U << DDR_PHY_MR4_IVM_SHIFT - | 0x00000000U << DDR_PHY_MR4_TCRM_SHIFT - | 0x00000000U << DDR_PHY_MR4_TCRR_SHIFT - | 0x00000000U << DDR_PHY_MR4_MPDM_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR4_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Internal VREF Monitor + * PSU_DDR_PHY_MR4_IVM 0x0 - /*Register : MR5 @ 0XFD080194

+ * Temperature Controlled Refresh Mode + * PSU_DDR_PHY_MR4_TCRM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR5_RESERVED_31_16 0x0 + * Temperature Controlled Refresh Range + * PSU_DDR_PHY_MR4_TCRR 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR5_RSVD 0x0 + * Maximum Power Down Mode + * PSU_DDR_PHY_MR4_MPDM 0x0 - Read DBI - PSU_DDR_PHY_MR5_RDBI 0x0 + * This is a JEDEC reserved bit and is recommended by JEDEC to be programme + * d to 0x0. + * PSU_DDR_PHY_MR4_RSVD_0 0x0 - Write DBI - PSU_DDR_PHY_MR5_WDBI 0x0 + * DDR4 Mode Register 4 + * (OFFSET, MASK, VALUE) (0XFD080190, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR4_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Data Mask - PSU_DDR_PHY_MR5_DM 0x1 + /* + * Register : MR5 @ 0XFD080194 - CA Parity Persistent Error - PSU_DDR_PHY_MR5_CAPPE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR5_RESERVED_31_16 0x0 - RTT_PARK - PSU_DDR_PHY_MR5_RTTPARK 0x3 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR5_RSVD 0x0 - ODT Input Buffer during Power Down mode - PSU_DDR_PHY_MR5_ODTIBPD 0x0 + * Read DBI + * PSU_DDR_PHY_MR5_RDBI 0x0 - C/A Parity Error Status - PSU_DDR_PHY_MR5_CAPES 0x0 + * Write DBI + * PSU_DDR_PHY_MR5_WDBI 0x0 - CRC Error Clear - PSU_DDR_PHY_MR5_CRCEC 0x0 + * Data Mask + * PSU_DDR_PHY_MR5_DM 0x1 - C/A Parity Latency Mode - PSU_DDR_PHY_MR5_CAPM 0x0 + * CA Parity Persistent Error + * PSU_DDR_PHY_MR5_CAPPE 0x1 - DDR4 Mode Register 5 - (OFFSET, MASK, VALUE) (0XFD080194, 0xFFFFFFFFU ,0x000006C0U) - RegMask = (DDR_PHY_MR5_RESERVED_31_16_MASK | DDR_PHY_MR5_RSVD_MASK | DDR_PHY_MR5_RDBI_MASK | DDR_PHY_MR5_WDBI_MASK | DDR_PHY_MR5_DM_MASK | DDR_PHY_MR5_CAPPE_MASK | DDR_PHY_MR5_RTTPARK_MASK | DDR_PHY_MR5_ODTIBPD_MASK | DDR_PHY_MR5_CAPES_MASK | DDR_PHY_MR5_CRCEC_MASK | DDR_PHY_MR5_CAPM_MASK | 0 ); + * RTT_PARK + * PSU_DDR_PHY_MR5_RTTPARK 0x3 - RegVal = ((0x00000000U << DDR_PHY_MR5_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR5_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR5_RDBI_SHIFT - | 0x00000000U << DDR_PHY_MR5_WDBI_SHIFT - | 0x00000001U << DDR_PHY_MR5_DM_SHIFT - | 0x00000001U << DDR_PHY_MR5_CAPPE_SHIFT - | 0x00000003U << DDR_PHY_MR5_RTTPARK_SHIFT - | 0x00000000U << DDR_PHY_MR5_ODTIBPD_SHIFT - | 0x00000000U << DDR_PHY_MR5_CAPES_SHIFT - | 0x00000000U << DDR_PHY_MR5_CRCEC_SHIFT - | 0x00000000U << DDR_PHY_MR5_CAPM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR5_OFFSET ,0xFFFFFFFFU ,0x000006C0U); - /*############################################################################################################################ */ + * ODT Input Buffer during Power Down mode + * PSU_DDR_PHY_MR5_ODTIBPD 0x0 - /*Register : MR6 @ 0XFD080198

+ * C/A Parity Error Status + * PSU_DDR_PHY_MR5_CAPES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR6_RESERVED_31_16 0x0 + * CRC Error Clear + * PSU_DDR_PHY_MR5_CRCEC 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR6_RSVD_15_13 0x0 + * C/A Parity Latency Mode + * PSU_DDR_PHY_MR5_CAPM 0x0 - CAS_n to CAS_n command delay for same bank group (tCCD_L) - PSU_DDR_PHY_MR6_TCCDL 0x2 + * DDR4 Mode Register 5 + * (OFFSET, MASK, VALUE) (0XFD080194, 0xFFFFFFFFU ,0x000006C0U) + */ + PSU_Mask_Write(DDR_PHY_MR5_OFFSET, 0xFFFFFFFFU, 0x000006C0U); +/*##################################################################### */ - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR6_RSVD_9_8 0x0 + /* + * Register : MR6 @ 0XFD080198 - VrefDQ Training Enable - PSU_DDR_PHY_MR6_VDDQTEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR6_RESERVED_31_16 0x0 - VrefDQ Training Range - PSU_DDR_PHY_MR6_VDQTRG 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR6_RSVD_15_13 0x0 - VrefDQ Training Values - PSU_DDR_PHY_MR6_VDQTVAL 0x19 + * CAS_n to CAS_n command delay for same bank group (tCCD_L) + * PSU_DDR_PHY_MR6_TCCDL 0x2 - DDR4 Mode Register 6 - (OFFSET, MASK, VALUE) (0XFD080198, 0xFFFFFFFFU ,0x00000819U) - RegMask = (DDR_PHY_MR6_RESERVED_31_16_MASK | DDR_PHY_MR6_RSVD_15_13_MASK | DDR_PHY_MR6_TCCDL_MASK | DDR_PHY_MR6_RSVD_9_8_MASK | DDR_PHY_MR6_VDDQTEN_MASK | DDR_PHY_MR6_VDQTRG_MASK | DDR_PHY_MR6_VDQTVAL_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR6_RSVD_9_8 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR6_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR6_RSVD_15_13_SHIFT - | 0x00000002U << DDR_PHY_MR6_TCCDL_SHIFT - | 0x00000000U << DDR_PHY_MR6_RSVD_9_8_SHIFT - | 0x00000000U << DDR_PHY_MR6_VDDQTEN_SHIFT - | 0x00000000U << DDR_PHY_MR6_VDQTRG_SHIFT - | 0x00000019U << DDR_PHY_MR6_VDQTVAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR6_OFFSET ,0xFFFFFFFFU ,0x00000819U); - /*############################################################################################################################ */ + * VrefDQ Training Enable + * PSU_DDR_PHY_MR6_VDDQTEN 0x0 - /*Register : MR11 @ 0XFD0801AC

+ * VrefDQ Training Range + * PSU_DDR_PHY_MR6_VDQTRG 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR11_RESERVED_31_8 0x0 + * VrefDQ Training Values + * PSU_DDR_PHY_MR6_VDQTVAL 0x19 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR11_RSVD 0x0 + * DDR4 Mode Register 6 + * (OFFSET, MASK, VALUE) (0XFD080198, 0xFFFFFFFFU ,0x00000819U) + */ + PSU_Mask_Write(DDR_PHY_MR6_OFFSET, 0xFFFFFFFFU, 0x00000819U); +/*##################################################################### */ - Power Down Control - PSU_DDR_PHY_MR11_PDCTL 0x0 + /* + * Register : MR11 @ 0XFD0801AC - DQ Bus Receiver On-Die-Termination - PSU_DDR_PHY_MR11_DQODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR11_RESERVED_31_8 0x0 - LPDDR4 Mode Register 11 - (OFFSET, MASK, VALUE) (0XFD0801AC, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR11_RESERVED_31_8_MASK | DDR_PHY_MR11_RSVD_MASK | DDR_PHY_MR11_PDCTL_MASK | DDR_PHY_MR11_DQODT_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR11_RSVD 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR11_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR11_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR11_PDCTL_SHIFT - | 0x00000000U << DDR_PHY_MR11_DQODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR11_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Power Down Control + * PSU_DDR_PHY_MR11_PDCTL 0x0 - /*Register : MR12 @ 0XFD0801B0

+ * DQ Bus Receiver On-Die-Termination + * PSU_DDR_PHY_MR11_DQODT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR12_RESERVED_31_8 0x0 + * LPDDR4 Mode Register 11 + * (OFFSET, MASK, VALUE) (0XFD0801AC, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR11_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR12_RSVD 0x0 + /* + * Register : MR12 @ 0XFD0801B0 - VREF_CA Range Select. - PSU_DDR_PHY_MR12_VR_CA 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR12_RESERVED_31_8 0x0 - Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. - PSU_DDR_PHY_MR12_VREF_CA 0xd + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR12_RSVD 0x0 - LPDDR4 Mode Register 12 - (OFFSET, MASK, VALUE) (0XFD0801B0, 0xFFFFFFFFU ,0x0000004DU) - RegMask = (DDR_PHY_MR12_RESERVED_31_8_MASK | DDR_PHY_MR12_RSVD_MASK | DDR_PHY_MR12_VR_CA_MASK | DDR_PHY_MR12_VREF_CA_MASK | 0 ); + * VREF_CA Range Select. + * PSU_DDR_PHY_MR12_VR_CA 0x1 - RegVal = ((0x00000000U << DDR_PHY_MR12_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR12_RSVD_SHIFT - | 0x00000001U << DDR_PHY_MR12_VR_CA_SHIFT - | 0x0000000DU << DDR_PHY_MR12_VREF_CA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR12_OFFSET ,0xFFFFFFFFU ,0x0000004DU); - /*############################################################################################################################ */ + * Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. + * PSU_DDR_PHY_MR12_VREF_CA 0xd - /*Register : MR13 @ 0XFD0801B4

+ * LPDDR4 Mode Register 12 + * (OFFSET, MASK, VALUE) (0XFD0801B0, 0xFFFFFFFFU ,0x0000004DU) + */ + PSU_Mask_Write(DDR_PHY_MR12_OFFSET, 0xFFFFFFFFU, 0x0000004DU); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR13_RESERVED_31_8 0x0 + /* + * Register : MR13 @ 0XFD0801B4 - Frequency Set Point Operation Mode - PSU_DDR_PHY_MR13_FSPOP 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR13_RESERVED_31_8 0x0 - Frequency Set Point Write Enable - PSU_DDR_PHY_MR13_FSPWR 0x0 + * Frequency Set Point Operation Mode + * PSU_DDR_PHY_MR13_FSPOP 0x0 - Data Mask Enable - PSU_DDR_PHY_MR13_DMD 0x0 + * Frequency Set Point Write Enable + * PSU_DDR_PHY_MR13_FSPWR 0x0 - Refresh Rate Option - PSU_DDR_PHY_MR13_RRO 0x0 + * Data Mask Enable + * PSU_DDR_PHY_MR13_DMD 0x0 - VREF Current Generator - PSU_DDR_PHY_MR13_VRCG 0x1 + * Refresh Rate Option + * PSU_DDR_PHY_MR13_RRO 0x0 - VREF Output - PSU_DDR_PHY_MR13_VRO 0x0 + * VREF Current Generator + * PSU_DDR_PHY_MR13_VRCG 0x1 - Read Preamble Training Mode - PSU_DDR_PHY_MR13_RPT 0x0 + * VREF Output + * PSU_DDR_PHY_MR13_VRO 0x0 - Command Bus Training - PSU_DDR_PHY_MR13_CBT 0x0 + * Read Preamble Training Mode + * PSU_DDR_PHY_MR13_RPT 0x0 - LPDDR4 Mode Register 13 - (OFFSET, MASK, VALUE) (0XFD0801B4, 0xFFFFFFFFU ,0x00000008U) - RegMask = (DDR_PHY_MR13_RESERVED_31_8_MASK | DDR_PHY_MR13_FSPOP_MASK | DDR_PHY_MR13_FSPWR_MASK | DDR_PHY_MR13_DMD_MASK | DDR_PHY_MR13_RRO_MASK | DDR_PHY_MR13_VRCG_MASK | DDR_PHY_MR13_VRO_MASK | DDR_PHY_MR13_RPT_MASK | DDR_PHY_MR13_CBT_MASK | 0 ); + * Command Bus Training + * PSU_DDR_PHY_MR13_CBT 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR13_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR13_FSPOP_SHIFT - | 0x00000000U << DDR_PHY_MR13_FSPWR_SHIFT - | 0x00000000U << DDR_PHY_MR13_DMD_SHIFT - | 0x00000000U << DDR_PHY_MR13_RRO_SHIFT - | 0x00000001U << DDR_PHY_MR13_VRCG_SHIFT - | 0x00000000U << DDR_PHY_MR13_VRO_SHIFT - | 0x00000000U << DDR_PHY_MR13_RPT_SHIFT - | 0x00000000U << DDR_PHY_MR13_CBT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR13_OFFSET ,0xFFFFFFFFU ,0x00000008U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 13 + * (OFFSET, MASK, VALUE) (0XFD0801B4, 0xFFFFFFFFU ,0x00000008U) + */ + PSU_Mask_Write(DDR_PHY_MR13_OFFSET, 0xFFFFFFFFU, 0x00000008U); +/*##################################################################### */ - /*Register : MR14 @ 0XFD0801B8

+ /* + * Register : MR14 @ 0XFD0801B8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR14_RESERVED_31_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR14_RESERVED_31_8 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR14_RSVD 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR14_RSVD 0x0 - VREFDQ Range Selects. - PSU_DDR_PHY_MR14_VR_DQ 0x1 + * VREFDQ Range Selects. + * PSU_DDR_PHY_MR14_VR_DQ 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR14_VREF_DQ 0xd + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR14_VREF_DQ 0xd - LPDDR4 Mode Register 14 - (OFFSET, MASK, VALUE) (0XFD0801B8, 0xFFFFFFFFU ,0x0000004DU) - RegMask = (DDR_PHY_MR14_RESERVED_31_8_MASK | DDR_PHY_MR14_RSVD_MASK | DDR_PHY_MR14_VR_DQ_MASK | DDR_PHY_MR14_VREF_DQ_MASK | 0 ); + * LPDDR4 Mode Register 14 + * (OFFSET, MASK, VALUE) (0XFD0801B8, 0xFFFFFFFFU ,0x0000004DU) + */ + PSU_Mask_Write(DDR_PHY_MR14_OFFSET, 0xFFFFFFFFU, 0x0000004DU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_MR14_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR14_RSVD_SHIFT - | 0x00000001U << DDR_PHY_MR14_VR_DQ_SHIFT - | 0x0000000DU << DDR_PHY_MR14_VREF_DQ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR14_OFFSET ,0xFFFFFFFFU ,0x0000004DU); - /*############################################################################################################################ */ + /* + * Register : MR22 @ 0XFD0801D8 - /*Register : MR22 @ 0XFD0801D8

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR22_RESERVED_31_8 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR22_RESERVED_31_8 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR22_RSVD 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR22_RSVD 0x0 + * CA ODT termination disable. + * PSU_DDR_PHY_MR22_ODTD_CA 0x0 - CA ODT termination disable. - PSU_DDR_PHY_MR22_ODTD_CA 0x0 + * ODT CS override. + * PSU_DDR_PHY_MR22_ODTE_CS 0x0 - ODT CS override. - PSU_DDR_PHY_MR22_ODTE_CS 0x0 + * ODT CK override. + * PSU_DDR_PHY_MR22_ODTE_CK 0x0 - ODT CK override. - PSU_DDR_PHY_MR22_ODTE_CK 0x0 + * Controller ODT value for VOH calibration. + * PSU_DDR_PHY_MR22_CODT 0x0 - Controller ODT value for VOH calibration. - PSU_DDR_PHY_MR22_CODT 0x0 + * LPDDR4 Mode Register 22 + * (OFFSET, MASK, VALUE) (0XFD0801D8, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR22_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - LPDDR4 Mode Register 22 - (OFFSET, MASK, VALUE) (0XFD0801D8, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR22_RESERVED_31_8_MASK | DDR_PHY_MR22_RSVD_MASK | DDR_PHY_MR22_ODTD_CA_MASK | DDR_PHY_MR22_ODTE_CS_MASK | DDR_PHY_MR22_ODTE_CK_MASK | DDR_PHY_MR22_CODT_MASK | 0 ); + /* + * Register : DTCR0 @ 0XFD080200 - RegVal = ((0x00000000U << DDR_PHY_MR22_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR22_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTD_CA_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTE_CS_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTE_CK_SHIFT - | 0x00000000U << DDR_PHY_MR22_CODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR22_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Refresh During Training + * PSU_DDR_PHY_DTCR0_RFSHDT 0x8 - /*Register : DTCR0 @ 0XFD080200

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_27_26 0x0 - Refresh During Training - PSU_DDR_PHY_DTCR0_RFSHDT 0x8 + * Data Training Debug Rank Select + * PSU_DDR_PHY_DTCR0_DTDRS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_27_26 0x0 + * Data Training with Early/Extended Gate + * PSU_DDR_PHY_DTCR0_DTEXG 0x0 - Data Training Debug Rank Select - PSU_DDR_PHY_DTCR0_DTDRS 0x0 + * Data Training Extended Write DQS + * PSU_DDR_PHY_DTCR0_DTEXD 0x0 - Data Training with Early/Extended Gate - PSU_DDR_PHY_DTCR0_DTEXG 0x0 + * Data Training Debug Step + * PSU_DDR_PHY_DTCR0_DTDSTP 0x0 - Data Training Extended Write DQS - PSU_DDR_PHY_DTCR0_DTEXD 0x0 + * Data Training Debug Enable + * PSU_DDR_PHY_DTCR0_DTDEN 0x0 - Data Training Debug Step - PSU_DDR_PHY_DTCR0_DTDSTP 0x0 + * Data Training Debug Byte Select + * PSU_DDR_PHY_DTCR0_DTDBS 0x0 - Data Training Debug Enable - PSU_DDR_PHY_DTCR0_DTDEN 0x0 + * Data Training read DBI deskewing configuration + * PSU_DDR_PHY_DTCR0_DTRDBITR 0x2 - Data Training Debug Byte Select - PSU_DDR_PHY_DTCR0_DTDBS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_13 0x0 - Data Training read DBI deskewing configuration - PSU_DDR_PHY_DTCR0_DTRDBITR 0x2 + * Data Training Write Bit Deskew Data Mask + * PSU_DDR_PHY_DTCR0_DTWBDDM 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_13 0x0 + * Refreshes Issued During Entry to Training + * PSU_DDR_PHY_DTCR0_RFSHEN 0x1 - Data Training Write Bit Deskew Data Mask - PSU_DDR_PHY_DTCR0_DTWBDDM 0x1 + * Data Training Compare Data + * PSU_DDR_PHY_DTCR0_DTCMPD 0x1 - Refreshes Issued During Entry to Training - PSU_DDR_PHY_DTCR0_RFSHEN 0x1 + * Data Training Using MPR + * PSU_DDR_PHY_DTCR0_DTMPR 0x1 - Data Training Compare Data - PSU_DDR_PHY_DTCR0_DTCMPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_5_4 0x0 - Data Training Using MPR - PSU_DDR_PHY_DTCR0_DTMPR 0x1 + * Data Training Repeat Number + * PSU_DDR_PHY_DTCR0_DTRPTN 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_5_4 0x0 + * Data Training Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080200, 0xFFFFFFFFU ,0x800091C7U) + */ + PSU_Mask_Write(DDR_PHY_DTCR0_OFFSET, 0xFFFFFFFFU, 0x800091C7U); +/*##################################################################### */ - Data Training Repeat Number - PSU_DDR_PHY_DTCR0_DTRPTN 0x7 + /* + * Register : DTCR1 @ 0XFD080204 - Data Training Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080200, 0xFFFFFFFFU ,0x800091C7U) - RegMask = (DDR_PHY_DTCR0_RFSHDT_MASK | DDR_PHY_DTCR0_RESERVED_27_26_MASK | DDR_PHY_DTCR0_DTDRS_MASK | DDR_PHY_DTCR0_DTEXG_MASK | DDR_PHY_DTCR0_DTEXD_MASK | DDR_PHY_DTCR0_DTDSTP_MASK | DDR_PHY_DTCR0_DTDEN_MASK | DDR_PHY_DTCR0_DTDBS_MASK | DDR_PHY_DTCR0_DTRDBITR_MASK | DDR_PHY_DTCR0_RESERVED_13_MASK | DDR_PHY_DTCR0_DTWBDDM_MASK | DDR_PHY_DTCR0_RFSHEN_MASK | DDR_PHY_DTCR0_DTCMPD_MASK | DDR_PHY_DTCR0_DTMPR_MASK | DDR_PHY_DTCR0_RESERVED_5_4_MASK | DDR_PHY_DTCR0_DTRPTN_MASK | 0 ); + * Rank Enable. + * PSU_DDR_PHY_DTCR1_RANKEN_RSVD 0x0 - RegVal = ((0x00000008U << DDR_PHY_DTCR0_RFSHDT_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_27_26_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDRS_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTEXG_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTEXD_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDSTP_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDBS_SHIFT - | 0x00000002U << DDR_PHY_DTCR0_DTRDBITR_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_13_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTWBDDM_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_RFSHEN_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTCMPD_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTMPR_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_5_4_SHIFT - | 0x00000007U << DDR_PHY_DTCR0_DTRPTN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTCR0_OFFSET ,0xFFFFFFFFU ,0x800091C7U); - /*############################################################################################################################ */ + * Rank Enable. + * PSU_DDR_PHY_DTCR1_RANKEN 0x1 - /*Register : DTCR1 @ 0XFD080204

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_15_14 0x0 - Rank Enable. - PSU_DDR_PHY_DTCR1_RANKEN_RSVD 0x0 + * Data Training Rank + * PSU_DDR_PHY_DTCR1_DTRANK 0x0 - Rank Enable. - PSU_DDR_PHY_DTCR1_RANKEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_11 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_15_14 0x0 + * Read Leveling Gate Sampling Difference + * PSU_DDR_PHY_DTCR1_RDLVLGDIFF 0x2 - Data Training Rank - PSU_DDR_PHY_DTCR1_DTRANK 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_7 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_11 0x0 + * Read Leveling Gate Shift + * PSU_DDR_PHY_DTCR1_RDLVLGS 0x3 - Read Leveling Gate Sampling Difference - PSU_DDR_PHY_DTCR1_RDLVLGDIFF 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_3 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_7 0x0 + * Read Preamble Training enable + * PSU_DDR_PHY_DTCR1_RDPRMVL_TRN 0x1 - Read Leveling Gate Shift - PSU_DDR_PHY_DTCR1_RDLVLGS 0x3 + * Read Leveling Enable + * PSU_DDR_PHY_DTCR1_RDLVLEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_3 0x0 + * Basic Gate Training Enable + * PSU_DDR_PHY_DTCR1_BSTEN 0x0 - Read Preamble Training enable - PSU_DDR_PHY_DTCR1_RDPRMVL_TRN 0x1 + * Data Training Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080204, 0xFFFFFFFFU ,0x00010236U) + */ + PSU_Mask_Write(DDR_PHY_DTCR1_OFFSET, 0xFFFFFFFFU, 0x00010236U); +/*##################################################################### */ - Read Leveling Enable - PSU_DDR_PHY_DTCR1_RDLVLEN 0x1 + /* + * Register : CATR0 @ 0XFD080240 - Basic Gate Training Enable - PSU_DDR_PHY_DTCR1_BSTEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_CATR0_RESERVED_31_21 0x0 - Data Training Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080204, 0xFFFFFFFFU ,0x00010236U) - RegMask = (DDR_PHY_DTCR1_RANKEN_RSVD_MASK | DDR_PHY_DTCR1_RANKEN_MASK | DDR_PHY_DTCR1_RESERVED_15_14_MASK | DDR_PHY_DTCR1_DTRANK_MASK | DDR_PHY_DTCR1_RESERVED_11_MASK | DDR_PHY_DTCR1_RDLVLGDIFF_MASK | DDR_PHY_DTCR1_RESERVED_7_MASK | DDR_PHY_DTCR1_RDLVLGS_MASK | DDR_PHY_DTCR1_RESERVED_3_MASK | DDR_PHY_DTCR1_RDPRMVL_TRN_MASK | DDR_PHY_DTCR1_RDLVLEN_MASK | DDR_PHY_DTCR1_BSTEN_MASK | 0 ); + * Minimum time (in terms of number of dram clocks) between two consectuve + * CA calibration command + * PSU_DDR_PHY_CATR0_CACD 0x14 - RegVal = ((0x00000000U << DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RANKEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_DTRANK_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_11_SHIFT - | 0x00000002U << DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_7_SHIFT - | 0x00000003U << DDR_PHY_DTCR1_RDLVLGS_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_3_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RDLVLEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_BSTEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTCR1_OFFSET ,0xFFFFFFFFU ,0x00010236U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_CATR0_RESERVED_15_13 0x0 - /*Register : CATR0 @ 0XFD080240

+ * Minimum time (in terms of number of dram clocks) PUB should wait before + * sampling the CA response after Calibration command has been sent to the + * memory + * PSU_DDR_PHY_CATR0_CAADR 0x10 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_CATR0_RESERVED_31_21 0x0 + * CA_1 Response Byte Lane 1 + * PSU_DDR_PHY_CATR0_CA1BYTE1 0x5 - Minimum time (in terms of number of dram clocks) between two consectuve CA calibration command - PSU_DDR_PHY_CATR0_CACD 0x14 + * CA_1 Response Byte Lane 0 + * PSU_DDR_PHY_CATR0_CA1BYTE0 0x4 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_CATR0_RESERVED_15_13 0x0 + * CA Training Register 0 + * (OFFSET, MASK, VALUE) (0XFD080240, 0xFFFFFFFFU ,0x00141054U) + */ + PSU_Mask_Write(DDR_PHY_CATR0_OFFSET, 0xFFFFFFFFU, 0x00141054U); +/*##################################################################### */ - Minimum time (in terms of number of dram clocks) PUB should wait before sampling the CA response after Calibration command ha - been sent to the memory - PSU_DDR_PHY_CATR0_CAADR 0x10 + /* + * Register : DQSDR0 @ 0XFD080250 - CA_1 Response Byte Lane 1 - PSU_DDR_PHY_CATR0_CA1BYTE1 0x5 + * Number of delay taps by which the DQS gate LCDL will be updated when DQS + * drift is detected + * PSU_DDR_PHY_DQSDR0_DFTDLY 0x0 - CA_1 Response Byte Lane 0 - PSU_DDR_PHY_CATR0_CA1BYTE0 0x4 - - CA Training Register 0 - (OFFSET, MASK, VALUE) (0XFD080240, 0xFFFFFFFFU ,0x00141054U) - RegMask = (DDR_PHY_CATR0_RESERVED_31_21_MASK | DDR_PHY_CATR0_CACD_MASK | DDR_PHY_CATR0_RESERVED_15_13_MASK | DDR_PHY_CATR0_CAADR_MASK | DDR_PHY_CATR0_CA1BYTE1_MASK | DDR_PHY_CATR0_CA1BYTE0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_CATR0_RESERVED_31_21_SHIFT - | 0x00000014U << DDR_PHY_CATR0_CACD_SHIFT - | 0x00000000U << DDR_PHY_CATR0_RESERVED_15_13_SHIFT - | 0x00000010U << DDR_PHY_CATR0_CAADR_SHIFT - | 0x00000005U << DDR_PHY_CATR0_CA1BYTE1_SHIFT - | 0x00000004U << DDR_PHY_CATR0_CA1BYTE0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_CATR0_OFFSET ,0xFFFFFFFFU ,0x00141054U); - /*############################################################################################################################ */ + * Drift Impedance Update + * PSU_DDR_PHY_DQSDR0_DFTZQUP 0x0 - /*Register : BISTLSR @ 0XFD080414

+ * Drift DDL Update + * PSU_DDR_PHY_DQSDR0_DFTDDLUP 0x0 - LFSR seed for pseudo-random BIST patterns - PSU_DDR_PHY_BISTLSR_SEED 0x12341000 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DQSDR0_RESERVED_25_22 0x0 - BIST LFSR Seed Register - (OFFSET, MASK, VALUE) (0XFD080414, 0xFFFFFFFFU ,0x12341000U) - RegMask = (DDR_PHY_BISTLSR_SEED_MASK | 0 ); + * Drift Read Spacing + * PSU_DDR_PHY_DQSDR0_DFTRDSPC 0x0 - RegVal = ((0x12341000U << DDR_PHY_BISTLSR_SEED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_BISTLSR_OFFSET ,0xFFFFFFFFU ,0x12341000U); - /*############################################################################################################################ */ + * Drift Back-to-Back Reads + * PSU_DDR_PHY_DQSDR0_DFTB2BRD 0x8 - /*Register : RIOCR5 @ 0XFD0804F4

+ * Drift Idle Reads + * PSU_DDR_PHY_DQSDR0_DFTIDLRD 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RIOCR5_RESERVED_31_16 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DQSDR0_RESERVED_11_8 0x0 - Reserved. Return zeros on reads. - PSU_DDR_PHY_RIOCR5_ODTOEMODE_RSVD 0x0 + * Gate Pulse Enable + * PSU_DDR_PHY_DQSDR0_DFTGPULSE 0x0 - SDRAM On-die Termination Output Enable (OE) Mode Selection. - PSU_DDR_PHY_RIOCR5_ODTOEMODE 0x5 + * DQS Drift Update Mode + * PSU_DDR_PHY_DQSDR0_DFTUPMODE 0x0 - Rank I/O Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD0804F4, 0xFFFFFFFFU ,0x00000005U) - RegMask = (DDR_PHY_RIOCR5_RESERVED_31_16_MASK | DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK | DDR_PHY_RIOCR5_ODTOEMODE_MASK | 0 ); + * DQS Drift Detection Mode + * PSU_DDR_PHY_DQSDR0_DFTDTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT - | 0x00000005U << DDR_PHY_RIOCR5_ODTOEMODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RIOCR5_OFFSET ,0xFFFFFFFFU ,0x00000005U); - /*############################################################################################################################ */ + * DQS Drift Detection Enable + * PSU_DDR_PHY_DQSDR0_DFTDTEN 0x0 - /*Register : ACIOCR0 @ 0XFD080500

+ * DQS Drift Register 0 + * (OFFSET, MASK, VALUE) (0XFD080250, 0xFFFFFFFFU ,0x00088000U) + */ + PSU_Mask_Write(DDR_PHY_DQSDR0_OFFSET, 0xFFFFFFFFU, 0x00088000U); +/*##################################################################### */ - Address/Command Slew Rate (D3F I/O Only) - PSU_DDR_PHY_ACIOCR0_ACSR 0x0 + /* + * Register : BISTLSR @ 0XFD080414 - SDRAM Reset I/O Mode - PSU_DDR_PHY_ACIOCR0_RSTIOM 0x1 + * LFSR seed for pseudo-random BIST patterns + * PSU_DDR_PHY_BISTLSR_SEED 0x12341000 - SDRAM Reset Power Down Receiver - PSU_DDR_PHY_ACIOCR0_RSTPDR 0x1 + * BIST LFSR Seed Register + * (OFFSET, MASK, VALUE) (0XFD080414, 0xFFFFFFFFU ,0x12341000U) + */ + PSU_Mask_Write(DDR_PHY_BISTLSR_OFFSET, 0xFFFFFFFFU, 0x12341000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_27 0x0 + /* + * Register : RIOCR5 @ 0XFD0804F4 - SDRAM Reset On-Die Termination - PSU_DDR_PHY_ACIOCR0_RSTODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RIOCR5_RESERVED_31_16 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_25_10 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_RIOCR5_ODTOEMODE_RSVD 0x0 - CK Duty Cycle Correction - PSU_DDR_PHY_ACIOCR0_CKDCC 0x0 + * SDRAM On-die Termination Output Enable (OE) Mode Selection. + * PSU_DDR_PHY_RIOCR5_ODTOEMODE 0x5 - AC Power Down Receiver Mode - PSU_DDR_PHY_ACIOCR0_ACPDRMODE 0x2 + * Rank I/O Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD0804F4, 0xFFFFFFFFU ,0x00000005U) + */ + PSU_Mask_Write(DDR_PHY_RIOCR5_OFFSET, 0xFFFFFFFFU, 0x00000005U); +/*##################################################################### */ - AC On-die Termination Mode - PSU_DDR_PHY_ACIOCR0_ACODTMODE 0x2 + /* + * Register : ACIOCR0 @ 0XFD080500 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_1 0x0 + * Address/Command Slew Rate (D3F I/O Only) + * PSU_DDR_PHY_ACIOCR0_ACSR 0x0 - Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. - PSU_DDR_PHY_ACIOCR0_ACRANKCLKSEL 0x0 + * SDRAM Reset I/O Mode + * PSU_DDR_PHY_ACIOCR0_RSTIOM 0x1 - AC I/O Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080500, 0xFFFFFFFFU ,0x30000028U) - RegMask = (DDR_PHY_ACIOCR0_ACSR_MASK | DDR_PHY_ACIOCR0_RSTIOM_MASK | DDR_PHY_ACIOCR0_RSTPDR_MASK | DDR_PHY_ACIOCR0_RESERVED_27_MASK | DDR_PHY_ACIOCR0_RSTODT_MASK | DDR_PHY_ACIOCR0_RESERVED_25_10_MASK | DDR_PHY_ACIOCR0_CKDCC_MASK | DDR_PHY_ACIOCR0_ACPDRMODE_MASK | DDR_PHY_ACIOCR0_ACODTMODE_MASK | DDR_PHY_ACIOCR0_RESERVED_1_MASK | DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK | 0 ); + * SDRAM Reset Power Down Receiver + * PSU_DDR_PHY_ACIOCR0_RSTPDR 0x1 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR0_ACSR_SHIFT - | 0x00000001U << DDR_PHY_ACIOCR0_RSTIOM_SHIFT - | 0x00000001U << DDR_PHY_ACIOCR0_RSTPDR_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_27_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RSTODT_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_CKDCC_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR0_ACODTMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR0_OFFSET ,0xFFFFFFFFU ,0x30000028U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_27 0x0 - /*Register : ACIOCR2 @ 0XFD080508

+ * SDRAM Reset On-Die Termination + * PSU_DDR_PHY_ACIOCR0_RSTODT 0x0 - Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL slice - PSU_DDR_PHY_ACIOCR2_CLKGENCLKGATE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_25_10 0x0 - Clock gating for Output Enable D slices [0] - PSU_DDR_PHY_ACIOCR2_ACOECLKGATE0 0x0 + * CK Duty Cycle Correction + * PSU_DDR_PHY_ACIOCR0_CKDCC 0x0 - Clock gating for Power Down Receiver D slices [0] - PSU_DDR_PHY_ACIOCR2_ACPDRCLKGATE0 0x0 + * AC Power Down Receiver Mode + * PSU_DDR_PHY_ACIOCR0_ACPDRMODE 0x2 - Clock gating for Termination Enable D slices [0] - PSU_DDR_PHY_ACIOCR2_ACTECLKGATE0 0x0 + * AC On-die Termination Mode + * PSU_DDR_PHY_ACIOCR0_ACODTMODE 0x2 - Clock gating for CK# D slices [1:0] - PSU_DDR_PHY_ACIOCR2_CKNCLKGATE0 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_1 0x0 - Clock gating for CK D slices [1:0] - PSU_DDR_PHY_ACIOCR2_CKCLKGATE0 0x2 + * Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. + * PSU_DDR_PHY_ACIOCR0_ACRANKCLKSEL 0x0 - Clock gating for AC D slices [23:0] - PSU_DDR_PHY_ACIOCR2_ACCLKGATE0 0x0 + * AC I/O Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080500, 0xFFFFFFFFU ,0x30000028U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR0_OFFSET, 0xFFFFFFFFU, 0x30000028U); +/*##################################################################### */ - AC I/O Configuration Register 2 - (OFFSET, MASK, VALUE) (0XFD080508, 0xFFFFFFFFU ,0x0A000000U) - RegMask = (DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK | DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK | DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK | DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK | DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK | DDR_PHY_ACIOCR2_CKCLKGATE0_MASK | DDR_PHY_ACIOCR2_ACCLKGATE0_MASK | 0 ); + /* + * Register : ACIOCR2 @ 0XFD080508 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR2_OFFSET ,0xFFFFFFFFU ,0x0A000000U); - /*############################################################################################################################ */ + * Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL + * slice + * PSU_DDR_PHY_ACIOCR2_CLKGENCLKGATE 0x0 - /*Register : ACIOCR3 @ 0XFD08050C

+ * Clock gating for Output Enable D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACOECLKGATE0 0x0 - SDRAM Parity Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_PAROEMODE 0x0 + * Clock gating for Power Down Receiver D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACPDRCLKGATE0 0x0 - SDRAM Bank Group Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_BGOEMODE 0x0 + * Clock gating for Termination Enable D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACTECLKGATE0 0x0 - SDRAM Bank Address Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_BAOEMODE 0x0 + * Clock gating for CK# D slices [1:0] + * PSU_DDR_PHY_ACIOCR2_CKNCLKGATE0 0x2 - SDRAM A[17] Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_A17OEMODE 0x0 + * Clock gating for CK D slices [1:0] + * PSU_DDR_PHY_ACIOCR2_CKCLKGATE0 0x2 - SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_A16OEMODE 0x0 + * Clock gating for AC D slices [23:0] + * PSU_DDR_PHY_ACIOCR2_ACCLKGATE0 0x0 - SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) - PSU_DDR_PHY_ACIOCR3_ACTOEMODE 0x0 + * AC I/O Configuration Register 2 + * (OFFSET, MASK, VALUE) (0XFD080508, 0xFFFFFFFFU ,0x0A000000U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR2_OFFSET, 0xFFFFFFFFU, 0x0A000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR3_RESERVED_15_8 0x0 + /* + * Register : ACIOCR3 @ 0XFD08050C - Reserved. Return zeros on reads. - PSU_DDR_PHY_ACIOCR3_CKOEMODE_RSVD 0x0 + * SDRAM Parity Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_PAROEMODE 0x0 - SDRAM CK Output Enable (OE) Mode Selection. - PSU_DDR_PHY_ACIOCR3_CKOEMODE 0x9 + * SDRAM Bank Group Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_BGOEMODE 0x0 - AC I/O Configuration Register 3 - (OFFSET, MASK, VALUE) (0XFD08050C, 0xFFFFFFFFU ,0x00000009U) - RegMask = (DDR_PHY_ACIOCR3_PAROEMODE_MASK | DDR_PHY_ACIOCR3_BGOEMODE_MASK | DDR_PHY_ACIOCR3_BAOEMODE_MASK | DDR_PHY_ACIOCR3_A17OEMODE_MASK | DDR_PHY_ACIOCR3_A16OEMODE_MASK | DDR_PHY_ACIOCR3_ACTOEMODE_MASK | DDR_PHY_ACIOCR3_RESERVED_15_8_MASK | DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK | DDR_PHY_ACIOCR3_CKOEMODE_MASK | 0 ); + * SDRAM Bank Address Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_BAOEMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR3_PAROEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_BGOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_BAOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_A17OEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_A16OEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT - | 0x00000009U << DDR_PHY_ACIOCR3_CKOEMODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR3_OFFSET ,0xFFFFFFFFU ,0x00000009U); - /*############################################################################################################################ */ + * SDRAM A[17] Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_A17OEMODE 0x0 - /*Register : ACIOCR4 @ 0XFD080510

+ * SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_A16OEMODE 0x0 - Clock gating for AC LB slices and loopback read valid slices - PSU_DDR_PHY_ACIOCR4_LBCLKGATE 0x0 + * SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) + * PSU_DDR_PHY_ACIOCR3_ACTOEMODE 0x0 - Clock gating for Output Enable D slices [1] - PSU_DDR_PHY_ACIOCR4_ACOECLKGATE1 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR3_RESERVED_15_8 0x0 - Clock gating for Power Down Receiver D slices [1] - PSU_DDR_PHY_ACIOCR4_ACPDRCLKGATE1 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ACIOCR3_CKOEMODE_RSVD 0x0 - Clock gating for Termination Enable D slices [1] - PSU_DDR_PHY_ACIOCR4_ACTECLKGATE1 0x0 + * SDRAM CK Output Enable (OE) Mode Selection. + * PSU_DDR_PHY_ACIOCR3_CKOEMODE 0x9 - Clock gating for CK# D slices [3:2] - PSU_DDR_PHY_ACIOCR4_CKNCLKGATE1 0x2 + * AC I/O Configuration Register 3 + * (OFFSET, MASK, VALUE) (0XFD08050C, 0xFFFFFFFFU ,0x00000009U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR3_OFFSET, 0xFFFFFFFFU, 0x00000009U); +/*##################################################################### */ - Clock gating for CK D slices [3:2] - PSU_DDR_PHY_ACIOCR4_CKCLKGATE1 0x2 + /* + * Register : ACIOCR4 @ 0XFD080510 - Clock gating for AC D slices [47:24] - PSU_DDR_PHY_ACIOCR4_ACCLKGATE1 0x0 + * Clock gating for AC LB slices and loopback read valid slices + * PSU_DDR_PHY_ACIOCR4_LBCLKGATE 0x0 - AC I/O Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080510, 0xFFFFFFFFU ,0x0A000000U) - RegMask = (DDR_PHY_ACIOCR4_LBCLKGATE_MASK | DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK | DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK | DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK | DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK | DDR_PHY_ACIOCR4_CKCLKGATE1_MASK | DDR_PHY_ACIOCR4_ACCLKGATE1_MASK | 0 ); + * Clock gating for Output Enable D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACOECLKGATE1 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR4_OFFSET ,0xFFFFFFFFU ,0x0A000000U); - /*############################################################################################################################ */ + * Clock gating for Power Down Receiver D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACPDRCLKGATE1 0x0 - /*Register : IOVCR0 @ 0XFD080520

+ * Clock gating for Termination Enable D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACTECLKGATE1 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_IOVCR0_RESERVED_31_29 0x0 + * Clock gating for CK# D slices [3:2] + * PSU_DDR_PHY_ACIOCR4_CKNCLKGATE1 0x2 - Address/command lane VREF Pad Enable - PSU_DDR_PHY_IOVCR0_ACREFPEN 0x0 + * Clock gating for CK D slices [3:2] + * PSU_DDR_PHY_ACIOCR4_CKCLKGATE1 0x2 - Address/command lane Internal VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFEEN 0x0 + * Clock gating for AC D slices [47:24] + * PSU_DDR_PHY_ACIOCR4_ACCLKGATE1 0x0 - Address/command lane Single-End VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFSEN 0x1 + * AC I/O Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080510, 0xFFFFFFFFU ,0x0A000000U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR4_OFFSET, 0xFFFFFFFFU, 0x0A000000U); +/*##################################################################### */ - Address/command lane Internal VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFIEN 0x1 + /* + * Register : IOVCR0 @ 0XFD080520 - External VREF generato REFSEL range select - PSU_DDR_PHY_IOVCR0_ACREFESELRANGE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_IOVCR0_RESERVED_31_29 0x0 - Address/command lane External VREF Select - PSU_DDR_PHY_IOVCR0_ACREFESEL 0x0 + * Address/command lane VREF Pad Enable + * PSU_DDR_PHY_IOVCR0_ACREFPEN 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_IOVCR0_ACREFSSELRANGE 0x1 + * Address/command lane Internal VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFEEN 0x0 - Address/command lane Single-End VREF Select - PSU_DDR_PHY_IOVCR0_ACREFSSEL 0x30 + * Address/command lane Single-End VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFSEN 0x1 - Internal VREF generator REFSEL ragne select - PSU_DDR_PHY_IOVCR0_ACVREFISELRANGE 0x1 + * Address/command lane Internal VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFIEN 0x1 - REFSEL Control for internal AC IOs - PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x30 + * External VREF generato REFSEL range select + * PSU_DDR_PHY_IOVCR0_ACREFESELRANGE 0x0 - IO VREF Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0B0U) - RegMask = (DDR_PHY_IOVCR0_RESERVED_31_29_MASK | DDR_PHY_IOVCR0_ACREFPEN_MASK | DDR_PHY_IOVCR0_ACREFEEN_MASK | DDR_PHY_IOVCR0_ACREFSEN_MASK | DDR_PHY_IOVCR0_ACREFIEN_MASK | DDR_PHY_IOVCR0_ACREFESELRANGE_MASK | DDR_PHY_IOVCR0_ACREFESEL_MASK | DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK | DDR_PHY_IOVCR0_ACREFSSEL_MASK | DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK | DDR_PHY_IOVCR0_ACVREFISEL_MASK | 0 ); + * Address/command lane External VREF Select + * PSU_DDR_PHY_IOVCR0_ACREFESEL 0x0 - RegVal = ((0x00000000U << DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFPEN_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFEEN_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFSEN_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFIEN_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFESEL_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_IOVCR0_ACREFSSEL_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT - | 0x00000030U << DDR_PHY_IOVCR0_ACVREFISEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_IOVCR0_OFFSET ,0xFFFFFFFFU ,0x0300B0B0U); - /*############################################################################################################################ */ + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_IOVCR0_ACREFSSELRANGE 0x1 - /*Register : VTCR0 @ 0XFD080528

+ * Address/command lane Single-End VREF Select + * PSU_DDR_PHY_IOVCR0_ACREFSSEL 0x30 - Number of ctl_clk required to meet (> 150ns) timing requirements during DRAM DQ VREF training - PSU_DDR_PHY_VTCR0_TVREF 0x7 + * Internal VREF generator REFSEL ragne select + * PSU_DDR_PHY_IOVCR0_ACVREFISELRANGE 0x1 - DRM DQ VREF training Enable - PSU_DDR_PHY_VTCR0_DVEN 0x1 + * REFSEL Control for internal AC IOs + * PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x4e - Per Device Addressability Enable - PSU_DDR_PHY_VTCR0_PDAEN 0x1 + * IO VREF Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0CEU) + */ + PSU_Mask_Write(DDR_PHY_IOVCR0_OFFSET, 0xFFFFFFFFU, 0x0300B0CEU); +/*##################################################################### */ - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR0_RESERVED_26 0x0 + /* + * Register : VTCR0 @ 0XFD080528 - VREF Word Count - PSU_DDR_PHY_VTCR0_VWCR 0x4 + * Number of ctl_clk required to meet (> 150ns) timing requirements during + * DRAM DQ VREF training + * PSU_DDR_PHY_VTCR0_TVREF 0x7 - DRAM DQ VREF step size used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVSS 0x0 + * DRM DQ VREF training Enable + * PSU_DDR_PHY_VTCR0_DVEN 0x1 - Maximum VREF limit value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVMAX 0x32 + * Per Device Addressability Enable + * PSU_DDR_PHY_VTCR0_PDAEN 0x1 - Minimum VREF limit value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVMIN 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR0_RESERVED_26 0x0 - Initial DRAM DQ VREF value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVINIT 0x19 + * VREF Word Count + * PSU_DDR_PHY_VTCR0_VWCR 0x4 - VREF Training Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080528, 0xFFFFFFFFU ,0xF9032019U) - RegMask = (DDR_PHY_VTCR0_TVREF_MASK | DDR_PHY_VTCR0_DVEN_MASK | DDR_PHY_VTCR0_PDAEN_MASK | DDR_PHY_VTCR0_RESERVED_26_MASK | DDR_PHY_VTCR0_VWCR_MASK | DDR_PHY_VTCR0_DVSS_MASK | DDR_PHY_VTCR0_DVMAX_MASK | DDR_PHY_VTCR0_DVMIN_MASK | DDR_PHY_VTCR0_DVINIT_MASK | 0 ); + * DRAM DQ VREF step size used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVSS 0x0 - RegVal = ((0x00000007U << DDR_PHY_VTCR0_TVREF_SHIFT - | 0x00000001U << DDR_PHY_VTCR0_DVEN_SHIFT - | 0x00000001U << DDR_PHY_VTCR0_PDAEN_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_RESERVED_26_SHIFT - | 0x00000004U << DDR_PHY_VTCR0_VWCR_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_DVSS_SHIFT - | 0x00000032U << DDR_PHY_VTCR0_DVMAX_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_DVMIN_SHIFT - | 0x00000019U << DDR_PHY_VTCR0_DVINIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_VTCR0_OFFSET ,0xFFFFFFFFU ,0xF9032019U); - /*############################################################################################################################ */ + * Maximum VREF limit value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVMAX 0x32 - /*Register : VTCR1 @ 0XFD08052C

+ * Minimum VREF limit value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVMIN 0x0 - Host VREF step size used during VREF training. The register value of N indicates step size of (N+1) - PSU_DDR_PHY_VTCR1_HVSS 0x0 + * Initial DRAM DQ VREF value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVINIT 0x19 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_27 0x0 + * VREF Training Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080528, 0xFFFFFFFFU ,0xF9032019U) + */ + PSU_Mask_Write(DDR_PHY_VTCR0_OFFSET, 0xFFFFFFFFU, 0xF9032019U); +/*##################################################################### */ - Maximum VREF limit value used during DRAM VREF training. - PSU_DDR_PHY_VTCR1_HVMAX 0x7f + /* + * Register : VTCR1 @ 0XFD08052C - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_19 0x0 + * Host VREF step size used during VREF training. The register value of N i + * ndicates step size of (N+1) + * PSU_DDR_PHY_VTCR1_HVSS 0x0 - Minimum VREF limit value used during DRAM VREF training. - PSU_DDR_PHY_VTCR1_HVMIN 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_27 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_11 0x0 + * Maximum VREF limit value used during DRAM VREF training. + * PSU_DDR_PHY_VTCR1_HVMAX 0x7f - Static Host Vref Rank Value - PSU_DDR_PHY_VTCR1_SHRNK 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_19 0x0 - Static Host Vref Rank Enable - PSU_DDR_PHY_VTCR1_SHREN 0x1 + * Minimum VREF limit value used during DRAM VREF training. + * PSU_DDR_PHY_VTCR1_HVMIN 0x0 - Number of ctl_clk required to meet (> 200ns) VREF Settling timing requirements during Host IO VREF training - PSU_DDR_PHY_VTCR1_TVREFIO 0x7 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_11 0x0 - Eye LCDL Offset value for VREF training - PSU_DDR_PHY_VTCR1_EOFF 0x0 + * Static Host Vref Rank Value + * PSU_DDR_PHY_VTCR1_SHRNK 0x0 - Number of LCDL Eye points for which VREF training is repeated - PSU_DDR_PHY_VTCR1_ENUM 0x0 + * Static Host Vref Rank Enable + * PSU_DDR_PHY_VTCR1_SHREN 0x1 - HOST (IO) internal VREF training Enable - PSU_DDR_PHY_VTCR1_HVEN 0x1 + * Number of ctl_clk required to meet (> 200ns) VREF Settling timing requir + * ements during Host IO VREF training + * PSU_DDR_PHY_VTCR1_TVREFIO 0x7 - Host IO Type Control - PSU_DDR_PHY_VTCR1_HVIO 0x1 + * Eye LCDL Offset value for VREF training + * PSU_DDR_PHY_VTCR1_EOFF 0x0 - VREF Training Control Register 1 - (OFFSET, MASK, VALUE) (0XFD08052C, 0xFFFFFFFFU ,0x07F001E3U) - RegMask = (DDR_PHY_VTCR1_HVSS_MASK | DDR_PHY_VTCR1_RESERVED_27_MASK | DDR_PHY_VTCR1_HVMAX_MASK | DDR_PHY_VTCR1_RESERVED_19_MASK | DDR_PHY_VTCR1_HVMIN_MASK | DDR_PHY_VTCR1_RESERVED_11_MASK | DDR_PHY_VTCR1_SHRNK_MASK | DDR_PHY_VTCR1_SHREN_MASK | DDR_PHY_VTCR1_TVREFIO_MASK | DDR_PHY_VTCR1_EOFF_MASK | DDR_PHY_VTCR1_ENUM_MASK | DDR_PHY_VTCR1_HVEN_MASK | DDR_PHY_VTCR1_HVIO_MASK | 0 ); + * Number of LCDL Eye points for which VREF training is repeated + * PSU_DDR_PHY_VTCR1_ENUM 0x0 - RegVal = ((0x00000000U << DDR_PHY_VTCR1_HVSS_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_27_SHIFT - | 0x0000007FU << DDR_PHY_VTCR1_HVMAX_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_19_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_HVMIN_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_11_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_SHRNK_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_SHREN_SHIFT - | 0x00000007U << DDR_PHY_VTCR1_TVREFIO_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_EOFF_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_ENUM_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_HVEN_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_HVIO_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_VTCR1_OFFSET ,0xFFFFFFFFU ,0x07F001E3U); - /*############################################################################################################################ */ + * HOST (IO) internal VREF training Enable + * PSU_DDR_PHY_VTCR1_HVEN 0x1 - /*Register : ACBDLR1 @ 0XFD080544

+ * Host IO Type Control + * PSU_DDR_PHY_VTCR1_HVIO 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_31_30 0x0 + * VREF Training Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD08052C, 0xFFFFFFFFU ,0x07F001E3U) + */ + PSU_Mask_Write(DDR_PHY_VTCR1_OFFSET, 0xFFFFFFFFU, 0x07F001E3U); +/*##################################################################### */ - Delay select for the BDL on Parity. - PSU_DDR_PHY_ACBDLR1_PARBD 0x0 + /* + * Register : ACBDLR1 @ 0XFD080544 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_31_30 0x0 - Delay select for the BDL on Address A[16]. In DDR3 mode this pin is connected to WE. - PSU_DDR_PHY_ACBDLR1_A16BD 0x0 + * Delay select for the BDL on Parity. + * PSU_DDR_PHY_ACBDLR1_PARBD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[17]. When not in DDR4 modemode this pin is connected to CAS. - PSU_DDR_PHY_ACBDLR1_A17BD 0x0 + * Delay select for the BDL on Address A[16]. In DDR3 mode this pin is conn + * ected to WE. + * PSU_DDR_PHY_ACBDLR1_A16BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_15_14 0x0 - Delay select for the BDL on ACTN. - PSU_DDR_PHY_ACBDLR1_ACTBD 0x0 + * Delay select for the BDL on Address A[17]. When not in DDR4 modemode thi + * s pin is connected to CAS. + * PSU_DDR_PHY_ACBDLR1_A17BD 0x0 - AC Bit Delay Line Register 1 - (OFFSET, MASK, VALUE) (0XFD080544, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR1_RESERVED_31_30_MASK | DDR_PHY_ACBDLR1_PARBD_MASK | DDR_PHY_ACBDLR1_RESERVED_23_22_MASK | DDR_PHY_ACBDLR1_A16BD_MASK | DDR_PHY_ACBDLR1_RESERVED_15_14_MASK | DDR_PHY_ACBDLR1_A17BD_MASK | DDR_PHY_ACBDLR1_RESERVED_7_6_MASK | DDR_PHY_ACBDLR1_ACTBD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_7_6 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_PARBD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_A16BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_A17BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_ACTBD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR1_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Delay select for the BDL on ACTN. + * PSU_DDR_PHY_ACBDLR1_ACTBD 0x0 - /*Register : ACBDLR2 @ 0XFD080548

+ * AC Bit Delay Line Register 1 + * (OFFSET, MASK, VALUE) (0XFD080544, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR1_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_31_30 0x0 + /* + * Register : ACBDLR2 @ 0XFD080548 - Delay select for the BDL on BG[1]. - PSU_DDR_PHY_ACBDLR2_BG1BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_23_22 0x0 + * Delay select for the BDL on BG[1]. + * PSU_DDR_PHY_ACBDLR2_BG1BD 0x0 - Delay select for the BDL on BG[0]. - PSU_DDR_PHY_ACBDLR2_BG0BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_23_22 0x0 - Reser.ved Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_15_14 0x0 + * Delay select for the BDL on BG[0]. + * PSU_DDR_PHY_ACBDLR2_BG0BD 0x0 - Delay select for the BDL on BA[1]. - PSU_DDR_PHY_ACBDLR2_BA1BD 0x0 + * Reser.ved Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_7_6 0x0 + * Delay select for the BDL on BA[1]. + * PSU_DDR_PHY_ACBDLR2_BA1BD 0x0 - Delay select for the BDL on BA[0]. - PSU_DDR_PHY_ACBDLR2_BA0BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_7_6 0x0 - AC Bit Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080548, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR2_RESERVED_31_30_MASK | DDR_PHY_ACBDLR2_BG1BD_MASK | DDR_PHY_ACBDLR2_RESERVED_23_22_MASK | DDR_PHY_ACBDLR2_BG0BD_MASK | DDR_PHY_ACBDLR2_RESERVED_15_14_MASK | DDR_PHY_ACBDLR2_BA1BD_MASK | DDR_PHY_ACBDLR2_RESERVED_7_6_MASK | DDR_PHY_ACBDLR2_BA0BD_MASK | 0 ); + * Delay select for the BDL on BA[0]. + * PSU_DDR_PHY_ACBDLR2_BA0BD 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BG1BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BG0BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BA1BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BA0BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * AC Bit Delay Line Register 2 + * (OFFSET, MASK, VALUE) (0XFD080548, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR2_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - /*Register : ACBDLR6 @ 0XFD080558

+ /* + * Register : ACBDLR6 @ 0XFD080558 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_31_30 0x0 - Delay select for the BDL on Address A[3]. - PSU_DDR_PHY_ACBDLR6_A03BD 0x0 + * Delay select for the BDL on Address A[3]. + * PSU_DDR_PHY_ACBDLR6_A03BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[2]. - PSU_DDR_PHY_ACBDLR6_A02BD 0x0 + * Delay select for the BDL on Address A[2]. + * PSU_DDR_PHY_ACBDLR6_A02BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_15_14 0x0 - Delay select for the BDL on Address A[1]. - PSU_DDR_PHY_ACBDLR6_A01BD 0x0 + * Delay select for the BDL on Address A[1]. + * PSU_DDR_PHY_ACBDLR6_A01BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_7_6 0x0 - Delay select for the BDL on Address A[0]. - PSU_DDR_PHY_ACBDLR6_A00BD 0x0 + * Delay select for the BDL on Address A[0]. + * PSU_DDR_PHY_ACBDLR6_A00BD 0x0 - AC Bit Delay Line Register 6 - (OFFSET, MASK, VALUE) (0XFD080558, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR6_RESERVED_31_30_MASK | DDR_PHY_ACBDLR6_A03BD_MASK | DDR_PHY_ACBDLR6_RESERVED_23_22_MASK | DDR_PHY_ACBDLR6_A02BD_MASK | DDR_PHY_ACBDLR6_RESERVED_15_14_MASK | DDR_PHY_ACBDLR6_A01BD_MASK | DDR_PHY_ACBDLR6_RESERVED_7_6_MASK | DDR_PHY_ACBDLR6_A00BD_MASK | 0 ); + * AC Bit Delay Line Register 6 + * (OFFSET, MASK, VALUE) (0XFD080558, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR6_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A03BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A02BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A01BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A00BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR6_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : ACBDLR7 @ 0XFD08055C - /*Register : ACBDLR7 @ 0XFD08055C

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_31_30 0x0 + * Delay select for the BDL on Address A[7]. + * PSU_DDR_PHY_ACBDLR7_A07BD 0x0 - Delay select for the BDL on Address A[7]. - PSU_DDR_PHY_ACBDLR7_A07BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_23_22 0x0 + * Delay select for the BDL on Address A[6]. + * PSU_DDR_PHY_ACBDLR7_A06BD 0x0 - Delay select for the BDL on Address A[6]. - PSU_DDR_PHY_ACBDLR7_A06BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_15_14 0x0 + * Delay select for the BDL on Address A[5]. + * PSU_DDR_PHY_ACBDLR7_A05BD 0x0 - Delay select for the BDL on Address A[5]. - PSU_DDR_PHY_ACBDLR7_A05BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_7_6 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_7_6 0x0 + * Delay select for the BDL on Address A[4]. + * PSU_DDR_PHY_ACBDLR7_A04BD 0x0 - Delay select for the BDL on Address A[4]. - PSU_DDR_PHY_ACBDLR7_A04BD 0x0 + * AC Bit Delay Line Register 7 + * (OFFSET, MASK, VALUE) (0XFD08055C, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR7_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - AC Bit Delay Line Register 7 - (OFFSET, MASK, VALUE) (0XFD08055C, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR7_RESERVED_31_30_MASK | DDR_PHY_ACBDLR7_A07BD_MASK | DDR_PHY_ACBDLR7_RESERVED_23_22_MASK | DDR_PHY_ACBDLR7_A06BD_MASK | DDR_PHY_ACBDLR7_RESERVED_15_14_MASK | DDR_PHY_ACBDLR7_A05BD_MASK | DDR_PHY_ACBDLR7_RESERVED_7_6_MASK | DDR_PHY_ACBDLR7_A04BD_MASK | 0 ); + /* + * Register : ACBDLR8 @ 0XFD080560 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A07BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A06BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A05BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A04BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR7_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_31_30 0x0 - /*Register : ACBDLR8 @ 0XFD080560

+ * Delay select for the BDL on Address A[11]. + * PSU_DDR_PHY_ACBDLR8_A11BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[11]. - PSU_DDR_PHY_ACBDLR8_A11BD 0x0 + * Delay select for the BDL on Address A[10]. + * PSU_DDR_PHY_ACBDLR8_A10BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_15_14 0x0 - Delay select for the BDL on Address A[10]. - PSU_DDR_PHY_ACBDLR8_A10BD 0x0 + * Delay select for the BDL on Address A[9]. + * PSU_DDR_PHY_ACBDLR8_A09BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_7_6 0x0 - Delay select for the BDL on Address A[9]. - PSU_DDR_PHY_ACBDLR8_A09BD 0x0 + * Delay select for the BDL on Address A[8]. + * PSU_DDR_PHY_ACBDLR8_A08BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_7_6 0x0 + * AC Bit Delay Line Register 8 + * (OFFSET, MASK, VALUE) (0XFD080560, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR8_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Delay select for the BDL on Address A[8]. - PSU_DDR_PHY_ACBDLR8_A08BD 0x0 + /* + * Register : ACBDLR9 @ 0XFD080564 - AC Bit Delay Line Register 8 - (OFFSET, MASK, VALUE) (0XFD080560, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR8_RESERVED_31_30_MASK | DDR_PHY_ACBDLR8_A11BD_MASK | DDR_PHY_ACBDLR8_RESERVED_23_22_MASK | DDR_PHY_ACBDLR8_A10BD_MASK | DDR_PHY_ACBDLR8_RESERVED_15_14_MASK | DDR_PHY_ACBDLR8_A09BD_MASK | DDR_PHY_ACBDLR8_RESERVED_7_6_MASK | DDR_PHY_ACBDLR8_A08BD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A11BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A10BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A09BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A08BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR8_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Delay select for the BDL on Address A[15]. + * PSU_DDR_PHY_ACBDLR9_A15BD 0x0 - /*Register : ACBDLR9 @ 0XFD080564

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_31_30 0x0 + * Delay select for the BDL on Address A[14]. + * PSU_DDR_PHY_ACBDLR9_A14BD 0x0 - Delay select for the BDL on Address A[15]. - PSU_DDR_PHY_ACBDLR9_A15BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_23_22 0x0 + * Delay select for the BDL on Address A[13]. + * PSU_DDR_PHY_ACBDLR9_A13BD 0x0 - Delay select for the BDL on Address A[14]. - PSU_DDR_PHY_ACBDLR9_A14BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_7_6 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_15_14 0x0 + * Delay select for the BDL on Address A[12]. + * PSU_DDR_PHY_ACBDLR9_A12BD 0x0 - Delay select for the BDL on Address A[13]. - PSU_DDR_PHY_ACBDLR9_A13BD 0x0 + * AC Bit Delay Line Register 9 + * (OFFSET, MASK, VALUE) (0XFD080564, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR9_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_7_6 0x0 + /* + * Register : ZQCR @ 0XFD080680 - Delay select for the BDL on Address A[12]. - PSU_DDR_PHY_ACBDLR9_A12BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ZQCR_RESERVED_31_26 0x0 - AC Bit Delay Line Register 9 - (OFFSET, MASK, VALUE) (0XFD080564, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR9_RESERVED_31_30_MASK | DDR_PHY_ACBDLR9_A15BD_MASK | DDR_PHY_ACBDLR9_RESERVED_23_22_MASK | DDR_PHY_ACBDLR9_A14BD_MASK | DDR_PHY_ACBDLR9_RESERVED_15_14_MASK | DDR_PHY_ACBDLR9_A13BD_MASK | DDR_PHY_ACBDLR9_RESERVED_7_6_MASK | DDR_PHY_ACBDLR9_A12BD_MASK | 0 ); + * ZQ VREF Range + * PSU_DDR_PHY_ZQCR_ZQREFISELRANGE 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A15BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A14BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A13BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A12BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR9_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Programmable Wait for Frequency B + * PSU_DDR_PHY_ZQCR_PGWAIT_FRQB 0x11 - /*Register : ZQCR @ 0XFD080680

+ * Programmable Wait for Frequency A + * PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x15 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ZQCR_RESERVED_31_26 0x0 + * ZQ VREF Pad Enable + * PSU_DDR_PHY_ZQCR_ZQREFPEN 0x0 - ZQ VREF Range - PSU_DDR_PHY_ZQCR_ZQREFISELRANGE 0x0 + * ZQ Internal VREF Enable + * PSU_DDR_PHY_ZQCR_ZQREFIEN 0x1 - Programmable Wait for Frequency B - PSU_DDR_PHY_ZQCR_PGWAIT_FRQB 0x11 + * Choice of termination mode + * PSU_DDR_PHY_ZQCR_ODT_MODE 0x1 - Programmable Wait for Frequency A - PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x11 + * Force ZCAL VT update + * PSU_DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE 0x0 - ZQ VREF Pad Enable - PSU_DDR_PHY_ZQCR_ZQREFPEN 0x0 + * IO VT Drift Limit + * PSU_DDR_PHY_ZQCR_IODLMT 0x2 - ZQ Internal VREF Enable - PSU_DDR_PHY_ZQCR_ZQREFIEN 0x1 + * Averaging algorithm enable, if set, enables averaging algorithm + * PSU_DDR_PHY_ZQCR_AVGEN 0x1 - Choice of termination mode - PSU_DDR_PHY_ZQCR_ODT_MODE 0x1 + * Maximum number of averaging rounds to be used by averaging algorithm + * PSU_DDR_PHY_ZQCR_AVGMAX 0x2 - Force ZCAL VT update - PSU_DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE 0x0 + * ZQ Calibration Type + * PSU_DDR_PHY_ZQCR_ZCALT 0x0 - IO VT Drift Limit - PSU_DDR_PHY_ZQCR_IODLMT 0x2 + * ZQ Power Down + * PSU_DDR_PHY_ZQCR_ZQPD 0x0 - Averaging algorithm enable, if set, enables averaging algorithm - PSU_DDR_PHY_ZQCR_AVGEN 0x1 + * ZQ Impedance Control Register + * (OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008AAA58U) + */ + PSU_Mask_Write(DDR_PHY_ZQCR_OFFSET, 0xFFFFFFFFU, 0x008AAA58U); +/*##################################################################### */ - Maximum number of averaging rounds to be used by averaging algorithm - PSU_DDR_PHY_ZQCR_AVGMAX 0x2 + /* + * Register : ZQ0PR0 @ 0XFD080684 - ZQ Calibration Type - PSU_DDR_PHY_ZQCR_ZCALT 0x0 + * Pull-down drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PD_DRV_ZDEN 0x0 - ZQ Power Down - PSU_DDR_PHY_ZQCR_ZQPD 0x0 + * Pull-up drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PU_DRV_ZDEN 0x0 - ZQ Impedance Control Register - (OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008A2A58U) - RegMask = (DDR_PHY_ZQCR_RESERVED_31_26_MASK | DDR_PHY_ZQCR_ZQREFISELRANGE_MASK | DDR_PHY_ZQCR_PGWAIT_FRQB_MASK | DDR_PHY_ZQCR_PGWAIT_FRQA_MASK | DDR_PHY_ZQCR_ZQREFPEN_MASK | DDR_PHY_ZQCR_ZQREFIEN_MASK | DDR_PHY_ZQCR_ODT_MODE_MASK | DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK | DDR_PHY_ZQCR_IODLMT_MASK | DDR_PHY_ZQCR_AVGEN_MASK | DDR_PHY_ZQCR_AVGMAX_MASK | DDR_PHY_ZQCR_ZCALT_MASK | DDR_PHY_ZQCR_ZQPD_MASK | 0 ); + * Pull-down termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PD_ODT_ZDEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQCR_RESERVED_31_26_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT - | 0x00000011U << DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT - | 0x00000011U << DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQREFPEN_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_ZQREFIEN_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_ODT_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT - | 0x00000002U << DDR_PHY_ZQCR_IODLMT_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_AVGEN_SHIFT - | 0x00000002U << DDR_PHY_ZQCR_AVGMAX_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZCALT_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQPD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQCR_OFFSET ,0xFFFFFFFFU ,0x008A2A58U); - /*############################################################################################################################ */ + * Pull-up termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PU_ODT_ZDEN 0x0 - /*Register : ZQ0PR0 @ 0XFD080684

+ * Calibration segment bypass + * PSU_DDR_PHY_ZQ0PR0_ZSEGBYP 0x0 - Pull-down drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PD_DRV_ZDEN 0x0 + * VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB + * PSU_DDR_PHY_ZQ0PR0_ZLE_MODE 0x0 - Pull-up drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PU_DRV_ZDEN 0x0 + * Termination adjustment + * PSU_DDR_PHY_ZQ0PR0_ODT_ADJUST 0x0 - Pull-down termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PD_ODT_ZDEN 0x0 + * Pulldown drive strength adjustment + * PSU_DDR_PHY_ZQ0PR0_PD_DRV_ADJUST 0x0 - Pull-up termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PU_ODT_ZDEN 0x0 + * Pullup drive strength adjustment + * PSU_DDR_PHY_ZQ0PR0_PU_DRV_ADJUST 0x0 - Calibration segment bypass - PSU_DDR_PHY_ZQ0PR0_ZSEGBYP 0x0 + * DRAM Impedance Divide Ratio + * PSU_DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT 0x7 - VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB - PSU_DDR_PHY_ZQ0PR0_ZLE_MODE 0x0 + * HOST Impedance Divide Ratio + * PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x9 - Termination adjustment - PSU_DDR_PHY_ZQ0PR0_ODT_ADJUST 0x0 + * Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) + * PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD 0xd - Pulldown drive strength adjustment - PSU_DDR_PHY_ZQ0PR0_PD_DRV_ADJUST 0x0 + * Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) + * PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU 0xd - Pullup drive strength adjustment - PSU_DDR_PHY_ZQ0PR0_PU_DRV_ADJUST 0x0 + * ZQ n Impedance Control Program Register 0 + * (OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000079DDU) + */ + PSU_Mask_Write(DDR_PHY_ZQ0PR0_OFFSET, 0xFFFFFFFFU, 0x000079DDU); +/*##################################################################### */ - DRAM Impedance Divide Ratio - PSU_DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT 0x7 + /* + * Register : ZQ0OR0 @ 0XFD080694 - HOST Impedance Divide Ratio - PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x7 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR0_RESERVED_31_26 0x0 - Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD 0xd + * Override value for the pull-up output impedance + * PSU_DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD 0x1e1 - Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU 0xd + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR0_RESERVED_15_10 0x0 - ZQ n Impedance Control Program Register 0 - (OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000077DDU) - RegMask = (DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK | DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK | DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK | DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK | DDR_PHY_ZQ0PR0_ZSEGBYP_MASK | DDR_PHY_ZQ0PR0_ZLE_MODE_MASK | DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK | DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK | DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK | DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK | DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK | DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK | DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK | 0 ); + * Override value for the pull-down output impedance + * PSU_DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD 0x210 - RegVal = ((0x00000000U << DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT - | 0x00000007U << DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT - | 0x00000007U << DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT - | 0x0000000DU << DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT - | 0x0000000DU << DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0PR0_OFFSET ,0xFFFFFFFFU ,0x000077DDU); - /*############################################################################################################################ */ + * ZQ n Impedance Control Override Data Register 0 + * (OFFSET, MASK, VALUE) (0XFD080694, 0xFFFFFFFFU ,0x01E10210U) + */ + PSU_Mask_Write(DDR_PHY_ZQ0OR0_OFFSET, 0xFFFFFFFFU, 0x01E10210U); +/*##################################################################### */ - /*Register : ZQ0OR0 @ 0XFD080694

+ /* + * Register : ZQ0OR1 @ 0XFD080698 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR0_RESERVED_31_26 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR1_RESERVED_31_26 0x0 - Override value for the pull-up output impedance - PSU_DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD 0x1e1 + * Override value for the pull-up termination + * PSU_DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD 0x1e1 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR0_RESERVED_15_10 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR1_RESERVED_15_10 0x0 - Override value for the pull-down output impedance - PSU_DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD 0x210 + * Override value for the pull-down termination + * PSU_DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD 0x0 - ZQ n Impedance Control Override Data Register 0 - (OFFSET, MASK, VALUE) (0XFD080694, 0xFFFFFFFFU ,0x01E10210U) - RegMask = (DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK | DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK | DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK | DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT - | 0x000001E1U << DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT - | 0x00000210U << DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0OR0_OFFSET ,0xFFFFFFFFU ,0x01E10210U); - /*############################################################################################################################ */ + * ZQ n Impedance Control Override Data Register 1 + * (OFFSET, MASK, VALUE) (0XFD080698, 0xFFFFFFFFU ,0x01E10000U) + */ + PSU_Mask_Write(DDR_PHY_ZQ0OR1_OFFSET, 0xFFFFFFFFU, 0x01E10000U); +/*##################################################################### */ - /*Register : ZQ0OR1 @ 0XFD080698

+ /* + * Register : ZQ1PR0 @ 0XFD0806A4 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR1_RESERVED_31_26 0x0 + * Pull-down drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PD_DRV_ZDEN 0x0 - Override value for the pull-up termination - PSU_DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD 0x1e1 + * Pull-up drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PU_DRV_ZDEN 0x0 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR1_RESERVED_15_10 0x0 + * Pull-down termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PD_ODT_ZDEN 0x0 - Override value for the pull-down termination - PSU_DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD 0x0 + * Pull-up termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PU_ODT_ZDEN 0x0 - ZQ n Impedance Control Override Data Register 1 - (OFFSET, MASK, VALUE) (0XFD080698, 0xFFFFFFFFU ,0x01E10000U) - RegMask = (DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK | DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK | DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK | DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK | 0 ); + * Calibration segment bypass + * PSU_DDR_PHY_ZQ1PR0_ZSEGBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT - | 0x000001E1U << DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0OR1_OFFSET ,0xFFFFFFFFU ,0x01E10000U); - /*############################################################################################################################ */ + * VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB + * PSU_DDR_PHY_ZQ1PR0_ZLE_MODE 0x0 - /*Register : ZQ1PR0 @ 0XFD0806A4

+ * Termination adjustment + * PSU_DDR_PHY_ZQ1PR0_ODT_ADJUST 0x0 - Pull-down drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PD_DRV_ZDEN 0x0 + * Pulldown drive strength adjustment + * PSU_DDR_PHY_ZQ1PR0_PD_DRV_ADJUST 0x1 - Pull-up drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PU_DRV_ZDEN 0x0 + * Pullup drive strength adjustment + * PSU_DDR_PHY_ZQ1PR0_PU_DRV_ADJUST 0x0 - Pull-down termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PD_ODT_ZDEN 0x0 + * DRAM Impedance Divide Ratio + * PSU_DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT 0x7 - Pull-up termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PU_ODT_ZDEN 0x0 + * HOST Impedance Divide Ratio + * PSU_DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT 0xb - Calibration segment bypass - PSU_DDR_PHY_ZQ1PR0_ZSEGBYP 0x0 + * Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) + * PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD 0xd - VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB - PSU_DDR_PHY_ZQ1PR0_ZLE_MODE 0x0 + * Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) + * PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU 0xb - Termination adjustment - PSU_DDR_PHY_ZQ1PR0_ODT_ADJUST 0x0 + * ZQ n Impedance Control Program Register 0 + * (OFFSET, MASK, VALUE) (0XFD0806A4, 0xFFFFFFFFU ,0x00087BDBU) + */ + PSU_Mask_Write(DDR_PHY_ZQ1PR0_OFFSET, 0xFFFFFFFFU, 0x00087BDBU); +/*##################################################################### */ - Pulldown drive strength adjustment - PSU_DDR_PHY_ZQ1PR0_PD_DRV_ADJUST 0x1 + /* + * Register : DX0GCR0 @ 0XFD080700 - Pullup drive strength adjustment - PSU_DDR_PHY_ZQ1PR0_PU_DRV_ADJUST 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX0GCR0_CALBYP 0x0 - DRAM Impedance Divide Ratio - PSU_DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT 0x7 + * Master Delay Line Enable + * PSU_DDR_PHY_DX0GCR0_MDLEN 0x1 - HOST Impedance Divide Ratio - PSU_DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT 0xb + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX0GCR0_CODTSHFT 0x0 - Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD 0xd + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX0GCR0_DQSDCC 0x0 - Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU 0xb + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX0GCR0_RDDLY 0x8 - ZQ n Impedance Control Program Register 0 - (OFFSET, MASK, VALUE) (0XFD0806A4, 0xFFFFFFFFU ,0x00087BDBU) - RegMask = (DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK | DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK | DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK | DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK | DDR_PHY_ZQ1PR0_ZSEGBYP_MASK | DDR_PHY_ZQ1PR0_ZLE_MODE_MASK | DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK | DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK | DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK | DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK | DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK | DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK | DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_19_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT - | 0x00000001U << DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT - | 0x00000007U << DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT - | 0x0000000BU << DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT - | 0x0000000DU << DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT - | 0x0000000BU << DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ1PR0_OFFSET ,0xFFFFFFFFU ,0x00087BDBU); - /*############################################################################################################################ */ + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSNSEPDR 0x0 - /*Register : DX0GCR0 @ 0XFD080700

+ * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSSEPDR 0x0 - Calibration Bypass - PSU_DDR_PHY_DX0GCR0_CALBYP 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX0GCR0_RTTOAL 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX0GCR0_MDLEN 0x1 + * RTT Output Hold + * PSU_DDR_PHY_DX0GCR0_RTTOH 0x3 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX0GCR0_CODTSHFT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX0GCR0_CPDRSHFT 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX0GCR0_DQSDCC 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX0GCR0_DQSRPD 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX0GCR0_RDDLY 0x8 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSGPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_4 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSNSEPDR 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX0GCR0_DQSGODT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSSEPDR 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX0GCR0_DQSGOE 0x1 - RTT On Additive Latency - PSU_DDR_PHY_DX0GCR0_RTTOAL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_1_0 0x0 - RTT Output Hold - PSU_DDR_PHY_DX0GCR0_RTTOH 0x3 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080700, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Configurable PDR Phase Shift - PSU_DDR_PHY_DX0GCR0_CPDRSHFT 0x0 + /* + * Register : DX0GCR4 @ 0XFD080710 - DQSR Power Down - PSU_DDR_PHY_DX0GCR0_DQSRPD 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX0GCR4_RESERVED_31_29 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSGPDR 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX0GCR4_DXREFPEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_4 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX0GCR4_DXREFEEN 0x3 - DQSG On-Die Termination - PSU_DDR_PHY_DX0GCR0_DQSGODT 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX0GCR4_DXREFSEN 0x1 - DQSG Output Enable - PSU_DDR_PHY_DX0GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR4_RESERVED_24 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_1_0 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX0GCR4_DXREFESELRANGE 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080700, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX0GCR0_CALBYP_MASK | DDR_PHY_DX0GCR0_MDLEN_MASK | DDR_PHY_DX0GCR0_CODTSHFT_MASK | DDR_PHY_DX0GCR0_DQSDCC_MASK | DDR_PHY_DX0GCR0_RDDLY_MASK | DDR_PHY_DX0GCR0_RESERVED_19_14_MASK | DDR_PHY_DX0GCR0_DQSNSEPDR_MASK | DDR_PHY_DX0GCR0_DQSSEPDR_MASK | DDR_PHY_DX0GCR0_RTTOAL_MASK | DDR_PHY_DX0GCR0_RTTOH_MASK | DDR_PHY_DX0GCR0_CPDRSHFT_MASK | DDR_PHY_DX0GCR0_DQSRPD_MASK | DDR_PHY_DX0GCR0_DQSGPDR_MASK | DDR_PHY_DX0GCR0_RESERVED_4_MASK | DDR_PHY_DX0GCR0_DQSGODT_MASK | DDR_PHY_DX0GCR0_DQSGOE_MASK | DDR_PHY_DX0GCR0_RESERVED_1_0_MASK | 0 ); + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX0GCR4_DXREFESEL 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX0GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX0GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ - - /*Register : DX0GCR4 @ 0XFD080710

- - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX0GCR4_RESERVED_31_29 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX0GCR4_DXREFSSELRANGE 0x1 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX0GCR4_DXREFPEN 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX0GCR4_DXREFSSEL 0x30 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX0GCR4_DXREFEEN 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR4_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX0GCR4_DXREFSEN 0x1 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX0GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR4_RESERVED_24 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX0GCR4_DXREFIMON 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX0GCR4_DXREFESELRANGE 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080710, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Byte Lane External VREF Select - PSU_DDR_PHY_DX0GCR4_DXREFESEL 0x0 + /* + * Register : DX0GCR5 @ 0XFD080714 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX0GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_31 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX0GCR4_DXREFSSEL 0x30 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR3 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR4_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_23 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX0GCR4_DXREFIEN 0xf + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR2 0x9 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX0GCR4_DXREFIMON 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_15 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080710, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX0GCR4_RESERVED_31_29_MASK | DDR_PHY_DX0GCR4_DXREFPEN_MASK | DDR_PHY_DX0GCR4_DXREFEEN_MASK | DDR_PHY_DX0GCR4_DXREFSEN_MASK | DDR_PHY_DX0GCR4_RESERVED_24_MASK | DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX0GCR4_DXREFESEL_MASK | DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX0GCR4_DXREFSSEL_MASK | DDR_PHY_DX0GCR4_RESERVED_7_6_MASK | DDR_PHY_DX0GCR4_DXREFIEN_MASK | DDR_PHY_DX0GCR4_DXREFIMON_MASK | 0 ); + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x55 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX0GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX0GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_7 0x0 - /*Register : DX0GCR5 @ 0XFD080714

+ * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x55 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_31 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX0GCR5_DXREFISELR3 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_23 0x0 - - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX0GCR5_DXREFISELR2 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_15 0x0 - - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x4f - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_7 0x0 - - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x4f + /* + * Register : DX0GCR6 @ 0XFD080718 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX0GCR5_RESERVED_31_MASK | DDR_PHY_DX0GCR5_DXREFISELR3_MASK | DDR_PHY_DX0GCR5_RESERVED_23_MASK | DDR_PHY_DX0GCR5_DXREFISELR2_MASK | DDR_PHY_DX0GCR5_RESERVED_15_MASK | DDR_PHY_DX0GCR5_DXREFISELR1_MASK | DDR_PHY_DX0GCR5_RESERVED_7_MASK | DDR_PHY_DX0GCR5_DXREFISELR0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR3 0x9 - /*Register : DX0GCR6 @ 0XFD080718

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_23_22 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_31_30 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR2 0x9 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_15_14 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_23_22 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR1 0x2b - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_7_6 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_15_14 0x0 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR0 0x2b - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR1 0x2b + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080718, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_7_6 0x0 + /* + * Register : DX1GCR0 @ 0XFD080800 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR0 0x2b + * Calibration Bypass + * PSU_DDR_PHY_DX1GCR0_CALBYP 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080718, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX0GCR6_RESERVED_31_30_MASK | DDR_PHY_DX0GCR6_DXDQVREFR3_MASK | DDR_PHY_DX0GCR6_RESERVED_23_22_MASK | DDR_PHY_DX0GCR6_DXDQVREFR2_MASK | DDR_PHY_DX0GCR6_RESERVED_15_14_MASK | DDR_PHY_DX0GCR6_DXDQVREFR1_MASK | DDR_PHY_DX0GCR6_RESERVED_7_6_MASK | DDR_PHY_DX0GCR6_DXDQVREFR0_MASK | 0 ); + * Master Delay Line Enable + * PSU_DDR_PHY_DX1GCR0_MDLEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX1GCR0_CODTSHFT 0x0 - /*Register : DX0LCDLR2 @ 0XFD080788

+ * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX1GCR0_DQSDCC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_31_25 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX1GCR0_RDDLY 0x8 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_24_16 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_19_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_15_9 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSNSEPDR 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX0LCDLR2_DQSGD 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSSEPDR 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080788, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX0LCDLR2_DQSGD_MASK | 0 ); + * RTT On Additive Latency + * PSU_DDR_PHY_DX1GCR0_RTTOAL 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * RTT Output Hold + * PSU_DDR_PHY_DX1GCR0_RTTOH 0x3 - /*Register : DX0GTR0 @ 0XFD0807C0

+ * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX1GCR0_CPDRSHFT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_31_24 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX1GCR0_DQSRPD 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX0GTR0_WDQSL 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSGPDR 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0GTR0_RESERVED_23_20 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_4 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX0GTR0_WLSL 0x2 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX1GCR0_DQSGODT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_15_13 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX1GCR0_DQSGOE 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0GTR0_RESERVED_12_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_1_0 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_7_5 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080800, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DQS Gating System Latency - PSU_DDR_PHY_DX0GTR0_DGSL 0x0 + /* + * Register : DX1GCR4 @ 0XFD080810 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0807C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX0GTR0_RESERVED_31_24_MASK | DDR_PHY_DX0GTR0_WDQSL_MASK | DDR_PHY_DX0GTR0_RESERVED_23_20_MASK | DDR_PHY_DX0GTR0_WLSL_MASK | DDR_PHY_DX0GTR0_RESERVED_15_13_MASK | DDR_PHY_DX0GTR0_RESERVED_12_8_MASK | DDR_PHY_DX0GTR0_RESERVED_7_5_MASK | DDR_PHY_DX0GTR0_DGSL_MASK | 0 ); + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX1GCR4_RESERVED_31_29 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX0GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX1GCR4_DXREFPEN 0x0 - /*Register : DX1GCR0 @ 0XFD080800

+ * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX1GCR4_DXREFEEN 0x3 - Calibration Bypass - PSU_DDR_PHY_DX1GCR0_CALBYP 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX1GCR4_DXREFSEN 0x1 - Master Delay Line Enable - PSU_DDR_PHY_DX1GCR0_MDLEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR4_RESERVED_24 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX1GCR0_CODTSHFT 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX1GCR4_DXREFESELRANGE 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX1GCR0_DQSDCC 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX1GCR4_DXREFESEL 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX1GCR0_RDDLY 0x8 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX1GCR4_DXREFSSELRANGE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_19_14 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX1GCR4_DXREFSSEL 0x30 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSNSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR4_RESERVED_7_6 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSSEPDR 0x0 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX1GCR4_DXREFIEN 0xf - RTT On Additive Latency - PSU_DDR_PHY_DX1GCR0_RTTOAL 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX1GCR4_DXREFIMON 0x0 - RTT Output Hold - PSU_DDR_PHY_DX1GCR0_RTTOH 0x3 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080810, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Configurable PDR Phase Shift - PSU_DDR_PHY_DX1GCR0_CPDRSHFT 0x0 + /* + * Register : DX1GCR5 @ 0XFD080814 - DQSR Power Down - PSU_DDR_PHY_DX1GCR0_DQSRPD 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_31 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSGPDR 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_23 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX1GCR0_DQSGODT 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR2 0x9 - DQSG Output Enable - PSU_DDR_PHY_DX1GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_15 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_1_0 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x55 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080800, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX1GCR0_CALBYP_MASK | DDR_PHY_DX1GCR0_MDLEN_MASK | DDR_PHY_DX1GCR0_CODTSHFT_MASK | DDR_PHY_DX1GCR0_DQSDCC_MASK | DDR_PHY_DX1GCR0_RDDLY_MASK | DDR_PHY_DX1GCR0_RESERVED_19_14_MASK | DDR_PHY_DX1GCR0_DQSNSEPDR_MASK | DDR_PHY_DX1GCR0_DQSSEPDR_MASK | DDR_PHY_DX1GCR0_RTTOAL_MASK | DDR_PHY_DX1GCR0_RTTOH_MASK | DDR_PHY_DX1GCR0_CPDRSHFT_MASK | DDR_PHY_DX1GCR0_DQSRPD_MASK | DDR_PHY_DX1GCR0_DQSGPDR_MASK | DDR_PHY_DX1GCR0_RESERVED_4_MASK | DDR_PHY_DX1GCR0_DQSGODT_MASK | DDR_PHY_DX1GCR0_DQSGOE_MASK | DDR_PHY_DX1GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_7 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX1GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX1GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x55 - /*Register : DX1GCR4 @ 0XFD080810

+ * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX1GCR4_RESERVED_31_29 0x0 + /* + * Register : DX1GCR6 @ 0XFD080818 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX1GCR4_DXREFPEN 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_31_30 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX1GCR4_DXREFEEN 0x3 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR3 0x9 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX1GCR4_DXREFSEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_23_22 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR4_RESERVED_24 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR2 0x9 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX1GCR4_DXREFESELRANGE 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_15_14 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX1GCR4_DXREFESEL 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR1 0x2b - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX1GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX1GCR4_DXREFSSEL 0x30 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR4_RESERVED_7_6 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080818, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX1GCR4_DXREFIEN 0xf + /* + * Register : DX2GCR0 @ 0XFD080900 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX1GCR4_DXREFIMON 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX2GCR0_CALBYP 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080810, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX1GCR4_RESERVED_31_29_MASK | DDR_PHY_DX1GCR4_DXREFPEN_MASK | DDR_PHY_DX1GCR4_DXREFEEN_MASK | DDR_PHY_DX1GCR4_DXREFSEN_MASK | DDR_PHY_DX1GCR4_RESERVED_24_MASK | DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX1GCR4_DXREFESEL_MASK | DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX1GCR4_DXREFSSEL_MASK | DDR_PHY_DX1GCR4_RESERVED_7_6_MASK | DDR_PHY_DX1GCR4_DXREFIEN_MASK | DDR_PHY_DX1GCR4_DXREFIMON_MASK | 0 ); + * Master Delay Line Enable + * PSU_DDR_PHY_DX2GCR0_MDLEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX1GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX1GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX2GCR0_CODTSHFT 0x0 - /*Register : DX1GCR5 @ 0XFD080814

+ * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX2GCR0_DQSDCC 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_31 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX2GCR0_RDDLY 0x8 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX1GCR5_DXREFISELR3 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_23 0x0 - - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX1GCR5_DXREFISELR2 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_15 0x0 - - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x4f - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_7 0x0 - - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x4f + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_19_14 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX1GCR5_RESERVED_31_MASK | DDR_PHY_DX1GCR5_DXREFISELR3_MASK | DDR_PHY_DX1GCR5_RESERVED_23_MASK | DDR_PHY_DX1GCR5_DXREFISELR2_MASK | DDR_PHY_DX1GCR5_RESERVED_15_MASK | DDR_PHY_DX1GCR5_DXREFISELR1_MASK | DDR_PHY_DX1GCR5_RESERVED_7_MASK | DDR_PHY_DX1GCR5_DXREFISELR0_MASK | 0 ); + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSNSEPDR 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSSEPDR 0x0 - /*Register : DX1GCR6 @ 0XFD080818

+ * RTT On Additive Latency + * PSU_DDR_PHY_DX2GCR0_RTTOAL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_31_30 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX2GCR0_RTTOH 0x3 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR3 0x9 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX2GCR0_CPDRSHFT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_23_22 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX2GCR0_DQSRPD 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR2 0x9 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSGPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_4 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR1 0x2b + * DQSG On-Die Termination + * PSU_DDR_PHY_DX2GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_7_6 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX2GCR0_DQSGOE 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR0 0x2b + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_1_0 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080818, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX1GCR6_RESERVED_31_30_MASK | DDR_PHY_DX1GCR6_DXDQVREFR3_MASK | DDR_PHY_DX1GCR6_RESERVED_23_22_MASK | DDR_PHY_DX1GCR6_DXDQVREFR2_MASK | DDR_PHY_DX1GCR6_RESERVED_15_14_MASK | DDR_PHY_DX1GCR6_DXDQVREFR1_MASK | DDR_PHY_DX1GCR6_RESERVED_7_6_MASK | DDR_PHY_DX1GCR6_DXDQVREFR0_MASK | 0 ); + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080900, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + /* + * Register : DX2GCR1 @ 0XFD080904 - /*Register : DX1LCDLR2 @ 0XFD080888

+ * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX2GCR1_DXPDRMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_31_25 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX2GCR1_RESERVED_15 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_24_16 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX2GCR1_QSNSEL 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_15_9 0x0 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX2GCR1_QSSEL 0x1 - Read DQS Gating Delay - PSU_DDR_PHY_DX1LCDLR2_DQSGD 0x0 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX2GCR1_OEEN 0x1 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080888, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX1LCDLR2_DQSGD_MASK | 0 ); + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX2GCR1_PDREN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX2GCR1_TEEN 0x1 - /*Register : DX1GTR0 @ 0XFD0808C0

+ * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX2GCR1_DSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_31_24 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX2GCR1_DMEN 0x1 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX1GTR0_WDQSL 0x0 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX2GCR1_DQEN 0xff - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1GTR0_RESERVED_23_20 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080904, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Write Leveling System Latency - PSU_DDR_PHY_DX1GTR0_WLSL 0x2 + /* + * Register : DX2GCR4 @ 0XFD080910 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_15_13 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX2GCR4_RESERVED_31_29 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1GTR0_RESERVED_12_8 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX2GCR4_DXREFPEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_7_5 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX2GCR4_DXREFEEN 0x3 - DQS Gating System Latency - PSU_DDR_PHY_DX1GTR0_DGSL 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX2GCR4_DXREFSEN 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0808C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX1GTR0_RESERVED_31_24_MASK | DDR_PHY_DX1GTR0_WDQSL_MASK | DDR_PHY_DX1GTR0_RESERVED_23_20_MASK | DDR_PHY_DX1GTR0_WLSL_MASK | DDR_PHY_DX1GTR0_RESERVED_15_13_MASK | DDR_PHY_DX1GTR0_RESERVED_12_8_MASK | DDR_PHY_DX1GTR0_RESERVED_7_5_MASK | DDR_PHY_DX1GTR0_DGSL_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR4_RESERVED_24 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX1GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX2GCR4_DXREFESELRANGE 0x0 - /*Register : DX2GCR0 @ 0XFD080900

+ * Byte Lane External VREF Select + * PSU_DDR_PHY_DX2GCR4_DXREFESEL 0x0 - Calibration Bypass - PSU_DDR_PHY_DX2GCR0_CALBYP 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX2GCR4_DXREFSSELRANGE 0x1 - Master Delay Line Enable - PSU_DDR_PHY_DX2GCR0_MDLEN 0x1 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX2GCR4_DXREFSSEL 0x30 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX2GCR0_CODTSHFT 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR4_RESERVED_7_6 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX2GCR0_DQSDCC 0x0 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX2GCR4_DXREFIEN 0xf - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX2GCR0_RDDLY 0x8 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX2GCR4_DXREFIMON 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_19_14 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080910, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSNSEPDR 0x0 + /* + * Register : DX2GCR5 @ 0XFD080914 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_31 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX2GCR0_RTTOAL 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR3 0x9 - RTT Output Hold - PSU_DDR_PHY_DX2GCR0_RTTOH 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_23 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX2GCR0_CPDRSHFT 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR2 0x9 - DQSR Power Down - PSU_DDR_PHY_DX2GCR0_DQSRPD 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_15 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSGPDR 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x55 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_7 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX2GCR0_DQSGODT 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x55 - DQSG Output Enable - PSU_DDR_PHY_DX2GCR0_DQSGOE 0x1 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_1_0 0x0 + /* + * Register : DX2GCR6 @ 0XFD080918 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080900, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX2GCR0_CALBYP_MASK | DDR_PHY_DX2GCR0_MDLEN_MASK | DDR_PHY_DX2GCR0_CODTSHFT_MASK | DDR_PHY_DX2GCR0_DQSDCC_MASK | DDR_PHY_DX2GCR0_RDDLY_MASK | DDR_PHY_DX2GCR0_RESERVED_19_14_MASK | DDR_PHY_DX2GCR0_DQSNSEPDR_MASK | DDR_PHY_DX2GCR0_DQSSEPDR_MASK | DDR_PHY_DX2GCR0_RTTOAL_MASK | DDR_PHY_DX2GCR0_RTTOH_MASK | DDR_PHY_DX2GCR0_CPDRSHFT_MASK | DDR_PHY_DX2GCR0_DQSRPD_MASK | DDR_PHY_DX2GCR0_DQSGPDR_MASK | DDR_PHY_DX2GCR0_RESERVED_4_MASK | DDR_PHY_DX2GCR0_DQSGODT_MASK | DDR_PHY_DX2GCR0_DQSGOE_MASK | DDR_PHY_DX2GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX2GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX2GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR3 0x9 - /*Register : DX2GCR1 @ 0XFD080904

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_23_22 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX2GCR1_DXPDRMODE 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX2GCR1_RESERVED_15 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_15_14 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX2GCR1_QSNSEL 0x1 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR1 0x2b - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX2GCR1_QSSEL 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_7_6 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX2GCR1_OEEN 0x1 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR0 0x2b - Enables PDR in a byte lane - PSU_DDR_PHY_DX2GCR1_PDREN 0x1 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080918, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX2GCR1_TEEN 0x1 + /* + * Register : DX3GCR0 @ 0XFD080A00 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX2GCR1_DSEN 0x1 + * Calibration Bypass + * PSU_DDR_PHY_DX3GCR0_CALBYP 0x0 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX2GCR1_DMEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX3GCR0_MDLEN 0x1 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX2GCR1_DQEN 0xff + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX3GCR0_CODTSHFT 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080904, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX2GCR1_DXPDRMODE_MASK | DDR_PHY_DX2GCR1_RESERVED_15_MASK | DDR_PHY_DX2GCR1_QSNSEL_MASK | DDR_PHY_DX2GCR1_QSSEL_MASK | DDR_PHY_DX2GCR1_OEEN_MASK | DDR_PHY_DX2GCR1_PDREN_MASK | DDR_PHY_DX2GCR1_TEEN_MASK | DDR_PHY_DX2GCR1_DSEN_MASK | DDR_PHY_DX2GCR1_DMEN_MASK | DDR_PHY_DX2GCR1_DQEN_MASK | 0 ); + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX3GCR0_DQSDCC 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX2GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX3GCR0_RDDLY 0x8 - /*Register : DX2GCR4 @ 0XFD080910

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_19_14 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX2GCR4_RESERVED_31_29 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSNSEPDR 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX2GCR4_DXREFPEN 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSSEPDR 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX2GCR4_DXREFEEN 0x3 + * RTT On Additive Latency + * PSU_DDR_PHY_DX3GCR0_RTTOAL 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX2GCR4_DXREFSEN 0x1 + * RTT Output Hold + * PSU_DDR_PHY_DX3GCR0_RTTOH 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR4_RESERVED_24 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX3GCR0_CPDRSHFT 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX2GCR4_DXREFESELRANGE 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX3GCR0_DQSRPD 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX2GCR4_DXREFESEL 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSGPDR 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX2GCR4_DXREFSSELRANGE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_4 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX2GCR4_DXREFSSEL 0x30 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX3GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR4_RESERVED_7_6 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX3GCR0_DQSGOE 0x1 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX2GCR4_DXREFIEN 0xf + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_1_0 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX2GCR4_DXREFIMON 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080A00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080910, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX2GCR4_RESERVED_31_29_MASK | DDR_PHY_DX2GCR4_DXREFPEN_MASK | DDR_PHY_DX2GCR4_DXREFEEN_MASK | DDR_PHY_DX2GCR4_DXREFSEN_MASK | DDR_PHY_DX2GCR4_RESERVED_24_MASK | DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX2GCR4_DXREFESEL_MASK | DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX2GCR4_DXREFSSEL_MASK | DDR_PHY_DX2GCR4_RESERVED_7_6_MASK | DDR_PHY_DX2GCR4_DXREFIEN_MASK | DDR_PHY_DX2GCR4_DXREFIMON_MASK | 0 ); + /* + * Register : DX3GCR1 @ 0XFD080A04 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX2GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX2GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX3GCR1_DXPDRMODE 0x0 - /*Register : DX2GCR5 @ 0XFD080914

+ * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX3GCR1_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_31 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX3GCR1_QSNSEL 0x1 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX2GCR5_DXREFISELR3 0x9 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX3GCR1_QSSEL 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_23 0x0 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX3GCR1_OEEN 0x1 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX2GCR5_DXREFISELR2 0x9 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX3GCR1_PDREN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_15 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX3GCR1_TEEN 0x1 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x4f + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX3GCR1_DSEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_7 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX3GCR1_DMEN 0x1 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x4f + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX3GCR1_DQEN 0xff - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX2GCR5_RESERVED_31_MASK | DDR_PHY_DX2GCR5_DXREFISELR3_MASK | DDR_PHY_DX2GCR5_RESERVED_23_MASK | DDR_PHY_DX2GCR5_DXREFISELR2_MASK | DDR_PHY_DX2GCR5_RESERVED_15_MASK | DDR_PHY_DX2GCR5_DXREFISELR1_MASK | DDR_PHY_DX2GCR5_RESERVED_7_MASK | DDR_PHY_DX2GCR5_DXREFISELR0_MASK | 0 ); + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080A04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX2GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + /* + * Register : DX3GCR4 @ 0XFD080A10 - /*Register : DX2GCR6 @ 0XFD080918

+ * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX3GCR4_RESERVED_31_29 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_31_30 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX3GCR4_DXREFPEN 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR3 0x9 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX3GCR4_DXREFEEN 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_23_22 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX3GCR4_DXREFSEN 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR4_RESERVED_24 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_15_14 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX3GCR4_DXREFESELRANGE 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR1 0x2b + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX3GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_7_6 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX3GCR4_DXREFSSELRANGE 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR0 0x2b + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX3GCR4_DXREFSSEL 0x30 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080918, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX2GCR6_RESERVED_31_30_MASK | DDR_PHY_DX2GCR6_DXDQVREFR3_MASK | DDR_PHY_DX2GCR6_RESERVED_23_22_MASK | DDR_PHY_DX2GCR6_DXDQVREFR2_MASK | DDR_PHY_DX2GCR6_RESERVED_15_14_MASK | DDR_PHY_DX2GCR6_DXDQVREFR1_MASK | DDR_PHY_DX2GCR6_RESERVED_7_6_MASK | DDR_PHY_DX2GCR6_DXDQVREFR0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR4_RESERVED_7_6 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX3GCR4_DXREFIEN 0xf - /*Register : DX2LCDLR2 @ 0XFD080988

+ * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX3GCR4_DXREFIMON 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_31_25 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080A10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_24_16 0x0 + /* + * Register : DX3GCR5 @ 0XFD080A14 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_15_9 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_31 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX2LCDLR2_DQSGD 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR3 0x9 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080988, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX2LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_23 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR2 0x9 - /*Register : DX2GTR0 @ 0XFD0809C0

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_15 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_31_24 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x55 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX2GTR0_WDQSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_7 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2GTR0_RESERVED_23_20 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x55 - Write Leveling System Latency - PSU_DDR_PHY_DX2GTR0_WLSL 0x2 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_15_13 0x0 + /* + * Register : DX3GCR6 @ 0XFD080A18 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2GTR0_RESERVED_12_8 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_7_5 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR3 0x9 - DQS Gating System Latency - PSU_DDR_PHY_DX2GTR0_DGSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_23_22 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0809C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX2GTR0_RESERVED_31_24_MASK | DDR_PHY_DX2GTR0_WDQSL_MASK | DDR_PHY_DX2GTR0_RESERVED_23_20_MASK | DDR_PHY_DX2GTR0_WLSL_MASK | DDR_PHY_DX2GTR0_RESERVED_15_13_MASK | DDR_PHY_DX2GTR0_RESERVED_12_8_MASK | DDR_PHY_DX2GTR0_RESERVED_7_5_MASK | DDR_PHY_DX2GTR0_DGSL_MASK | 0 ); + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR2 0x9 - RegVal = ((0x00000000U << DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX2GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_15_14 0x0 - /*Register : DX3GCR0 @ 0XFD080A00

+ * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR1 0x2b - Calibration Bypass - PSU_DDR_PHY_DX3GCR0_CALBYP 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_7_6 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX3GCR0_MDLEN 0x1 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR0 0x2b - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX3GCR0_CODTSHFT 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080A18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DQS Duty Cycle Correction - PSU_DDR_PHY_DX3GCR0_DQSDCC 0x0 + /* + * Register : DX4GCR0 @ 0XFD080B00 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX3GCR0_RDDLY 0x8 + * Calibration Bypass + * PSU_DDR_PHY_DX4GCR0_CALBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_19_14 0x0 + * Master Delay Line Enable + * PSU_DDR_PHY_DX4GCR0_MDLEN 0x1 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSNSEPDR 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX4GCR0_CODTSHFT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSSEPDR 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX4GCR0_DQSDCC 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX3GCR0_RTTOAL 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX4GCR0_RDDLY 0x8 - RTT Output Hold - PSU_DDR_PHY_DX3GCR0_RTTOH 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_19_14 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX3GCR0_CPDRSHFT 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSNSEPDR 0x0 - DQSR Power Down - PSU_DDR_PHY_DX3GCR0_DQSRPD 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSSEPDR 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSGPDR 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX4GCR0_RTTOAL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_4 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX4GCR0_RTTOH 0x3 - DQSG On-Die Termination - PSU_DDR_PHY_DX3GCR0_DQSGODT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX4GCR0_CPDRSHFT 0x0 - DQSG Output Enable - PSU_DDR_PHY_DX3GCR0_DQSGOE 0x1 + * DQSR Power Down + * PSU_DDR_PHY_DX4GCR0_DQSRPD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_1_0 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSGPDR 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080A00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX3GCR0_CALBYP_MASK | DDR_PHY_DX3GCR0_MDLEN_MASK | DDR_PHY_DX3GCR0_CODTSHFT_MASK | DDR_PHY_DX3GCR0_DQSDCC_MASK | DDR_PHY_DX3GCR0_RDDLY_MASK | DDR_PHY_DX3GCR0_RESERVED_19_14_MASK | DDR_PHY_DX3GCR0_DQSNSEPDR_MASK | DDR_PHY_DX3GCR0_DQSSEPDR_MASK | DDR_PHY_DX3GCR0_RTTOAL_MASK | DDR_PHY_DX3GCR0_RTTOH_MASK | DDR_PHY_DX3GCR0_CPDRSHFT_MASK | DDR_PHY_DX3GCR0_DQSRPD_MASK | DDR_PHY_DX3GCR0_DQSGPDR_MASK | DDR_PHY_DX3GCR0_RESERVED_4_MASK | DDR_PHY_DX3GCR0_DQSGODT_MASK | DDR_PHY_DX3GCR0_DQSGOE_MASK | DDR_PHY_DX3GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_4 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX3GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX3GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DQSG On-Die Termination + * PSU_DDR_PHY_DX4GCR0_DQSGODT 0x0 - /*Register : DX3GCR1 @ 0XFD080A04

+ * DQSG Output Enable + * PSU_DDR_PHY_DX4GCR0_DQSGOE 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX3GCR1_DXPDRMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_1_0 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX3GCR1_RESERVED_15 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080B00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX3GCR1_QSNSEL 0x1 + /* + * Register : DX4GCR1 @ 0XFD080B04 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX3GCR1_QSSEL 0x1 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX4GCR1_DXPDRMODE 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX3GCR1_OEEN 0x1 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX4GCR1_RESERVED_15 0x0 - Enables PDR in a byte lane - PSU_DDR_PHY_DX3GCR1_PDREN 0x1 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX4GCR1_QSNSEL 0x1 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX3GCR1_TEEN 0x1 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX4GCR1_QSSEL 0x1 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX3GCR1_DSEN 0x1 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX4GCR1_OEEN 0x1 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX3GCR1_DMEN 0x1 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX4GCR1_PDREN 0x1 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX3GCR1_DQEN 0xff + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX4GCR1_TEEN 0x1 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080A04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX3GCR1_DXPDRMODE_MASK | DDR_PHY_DX3GCR1_RESERVED_15_MASK | DDR_PHY_DX3GCR1_QSNSEL_MASK | DDR_PHY_DX3GCR1_QSSEL_MASK | DDR_PHY_DX3GCR1_OEEN_MASK | DDR_PHY_DX3GCR1_PDREN_MASK | DDR_PHY_DX3GCR1_TEEN_MASK | DDR_PHY_DX3GCR1_DSEN_MASK | DDR_PHY_DX3GCR1_DMEN_MASK | DDR_PHY_DX3GCR1_DQEN_MASK | 0 ); + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX4GCR1_DSEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX3GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX4GCR1_DMEN 0x1 - /*Register : DX3GCR4 @ 0XFD080A10

+ * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX4GCR1_DQEN 0xff - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX3GCR4_RESERVED_31_29 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080B04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX3GCR4_DXREFPEN 0x0 + /* + * Register : DX4GCR4 @ 0XFD080B10 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX3GCR4_DXREFEEN 0x3 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX4GCR4_RESERVED_31_29 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX3GCR4_DXREFSEN 0x1 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX4GCR4_DXREFPEN 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR4_RESERVED_24 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX4GCR4_DXREFEEN 0x3 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX3GCR4_DXREFESELRANGE 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX4GCR4_DXREFSEN 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX3GCR4_DXREFESEL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR4_RESERVED_24 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX3GCR4_DXREFSSELRANGE 0x1 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX4GCR4_DXREFESELRANGE 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX3GCR4_DXREFSSEL 0x30 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX4GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR4_RESERVED_7_6 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX4GCR4_DXREFSSELRANGE 0x1 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX3GCR4_DXREFIEN 0xf + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX4GCR4_DXREFSSEL 0x30 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX3GCR4_DXREFIMON 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR4_RESERVED_7_6 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080A10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX3GCR4_RESERVED_31_29_MASK | DDR_PHY_DX3GCR4_DXREFPEN_MASK | DDR_PHY_DX3GCR4_DXREFEEN_MASK | DDR_PHY_DX3GCR4_DXREFSEN_MASK | DDR_PHY_DX3GCR4_RESERVED_24_MASK | DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX3GCR4_DXREFESEL_MASK | DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX3GCR4_DXREFSSEL_MASK | DDR_PHY_DX3GCR4_RESERVED_7_6_MASK | DDR_PHY_DX3GCR4_DXREFIEN_MASK | DDR_PHY_DX3GCR4_DXREFIMON_MASK | 0 ); + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX4GCR4_DXREFIEN 0xf - RegVal = ((0x00000000U << DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX3GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX3GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX4GCR4_DXREFIMON 0x0 - /*Register : DX3GCR5 @ 0XFD080A14

+ * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080B10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_31 0x0 + /* + * Register : DX4GCR5 @ 0XFD080B14 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX3GCR5_DXREFISELR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_31 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_23 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR3 0x9 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX3GCR5_DXREFISELR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_23 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_15 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR2 0x9 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_7 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x55 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_7 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX3GCR5_RESERVED_31_MASK | DDR_PHY_DX3GCR5_DXREFISELR3_MASK | DDR_PHY_DX3GCR5_RESERVED_23_MASK | DDR_PHY_DX3GCR5_DXREFISELR2_MASK | DDR_PHY_DX3GCR5_RESERVED_15_MASK | DDR_PHY_DX3GCR5_DXREFISELR1_MASK | DDR_PHY_DX3GCR5_RESERVED_7_MASK | DDR_PHY_DX3GCR5_DXREFISELR0_MASK | 0 ); + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x55 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - /*Register : DX3GCR6 @ 0XFD080A18

+ /* + * Register : DX4GCR6 @ 0XFD080B18 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_31_30 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_31_30 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR3 0x9 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR3 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_23_22 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_23_22 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR2 0x9 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_15_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_15_14 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR1 0x2b + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR0 0x2b + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR0 0x2b - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080A18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX3GCR6_RESERVED_31_30_MASK | DDR_PHY_DX3GCR6_DXDQVREFR3_MASK | DDR_PHY_DX3GCR6_RESERVED_23_22_MASK | DDR_PHY_DX3GCR6_DXDQVREFR2_MASK | DDR_PHY_DX3GCR6_RESERVED_15_14_MASK | DDR_PHY_DX3GCR6_DXDQVREFR1_MASK | DDR_PHY_DX3GCR6_RESERVED_7_6_MASK | DDR_PHY_DX3GCR6_DXDQVREFR0_MASK | 0 ); + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080B18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + /* + * Register : DX5GCR0 @ 0XFD080C00 - /*Register : DX3LCDLR2 @ 0XFD080A88

+ * Calibration Bypass + * PSU_DDR_PHY_DX5GCR0_CALBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_31_25 0x0 + * Master Delay Line Enable + * PSU_DDR_PHY_DX5GCR0_MDLEN 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_24_16 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX5GCR0_CODTSHFT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_15_9 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX5GCR0_DQSDCC 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX3LCDLR2_DQSGD 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX5GCR0_RDDLY 0x8 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080A88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX3LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_19_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSNSEPDR 0x0 - /*Register : DX3GTR0 @ 0XFD080AC0

+ * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSSEPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_31_24 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX5GCR0_RTTOAL 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX3GTR0_WDQSL 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX5GCR0_RTTOH 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3GTR0_RESERVED_23_20 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX5GCR0_CPDRSHFT 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX3GTR0_WLSL 0x2 + * DQSR Power Down + * PSU_DDR_PHY_DX5GCR0_DQSRPD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_15_13 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSGPDR 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3GTR0_RESERVED_12_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_4 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_7_5 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX5GCR0_DQSGODT 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX3GTR0_DGSL 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX5GCR0_DQSGOE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080AC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX3GTR0_RESERVED_31_24_MASK | DDR_PHY_DX3GTR0_WDQSL_MASK | DDR_PHY_DX3GTR0_RESERVED_23_20_MASK | DDR_PHY_DX3GTR0_WLSL_MASK | DDR_PHY_DX3GTR0_RESERVED_15_13_MASK | DDR_PHY_DX3GTR0_RESERVED_12_8_MASK | DDR_PHY_DX3GTR0_RESERVED_7_5_MASK | DDR_PHY_DX3GTR0_DGSL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_1_0 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX3GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080C00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - /*Register : DX4GCR0 @ 0XFD080B00

+ /* + * Register : DX5GCR1 @ 0XFD080C04 - Calibration Bypass - PSU_DDR_PHY_DX4GCR0_CALBYP 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX5GCR1_DXPDRMODE 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX4GCR0_MDLEN 0x1 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX5GCR1_RESERVED_15 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX4GCR0_CODTSHFT 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX5GCR1_QSNSEL 0x1 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX4GCR0_DQSDCC 0x0 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX5GCR1_QSSEL 0x1 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX4GCR0_RDDLY 0x8 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX5GCR1_OEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_19_14 0x0 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX5GCR1_PDREN 0x1 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSNSEPDR 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX5GCR1_TEEN 0x1 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSSEPDR 0x0 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX5GCR1_DSEN 0x1 - RTT On Additive Latency - PSU_DDR_PHY_DX4GCR0_RTTOAL 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX5GCR1_DMEN 0x1 - RTT Output Hold - PSU_DDR_PHY_DX4GCR0_RTTOH 0x3 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX5GCR1_DQEN 0xff - Configurable PDR Phase Shift - PSU_DDR_PHY_DX4GCR0_CPDRSHFT 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080C04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - DQSR Power Down - PSU_DDR_PHY_DX4GCR0_DQSRPD 0x0 + /* + * Register : DX5GCR4 @ 0XFD080C10 - DQSG Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSGPDR 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX5GCR4_RESERVED_31_29 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_4 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX5GCR4_DXREFPEN 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX4GCR0_DQSGODT 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX5GCR4_DXREFEEN 0x3 - DQSG Output Enable - PSU_DDR_PHY_DX4GCR0_DQSGOE 0x1 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX5GCR4_DXREFSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_1_0 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR4_RESERVED_24 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080B00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX4GCR0_CALBYP_MASK | DDR_PHY_DX4GCR0_MDLEN_MASK | DDR_PHY_DX4GCR0_CODTSHFT_MASK | DDR_PHY_DX4GCR0_DQSDCC_MASK | DDR_PHY_DX4GCR0_RDDLY_MASK | DDR_PHY_DX4GCR0_RESERVED_19_14_MASK | DDR_PHY_DX4GCR0_DQSNSEPDR_MASK | DDR_PHY_DX4GCR0_DQSSEPDR_MASK | DDR_PHY_DX4GCR0_RTTOAL_MASK | DDR_PHY_DX4GCR0_RTTOH_MASK | DDR_PHY_DX4GCR0_CPDRSHFT_MASK | DDR_PHY_DX4GCR0_DQSRPD_MASK | DDR_PHY_DX4GCR0_DQSGPDR_MASK | DDR_PHY_DX4GCR0_RESERVED_4_MASK | DDR_PHY_DX4GCR0_DQSGODT_MASK | DDR_PHY_DX4GCR0_DQSGOE_MASK | DDR_PHY_DX4GCR0_RESERVED_1_0_MASK | 0 ); + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX5GCR4_DXREFESELRANGE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX4GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX4GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX5GCR4_DXREFESEL 0x0 - /*Register : DX4GCR1 @ 0XFD080B04

+ * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX5GCR4_DXREFSSELRANGE 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX4GCR1_DXPDRMODE 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX5GCR4_DXREFSSEL 0x30 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX4GCR1_RESERVED_15 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR4_RESERVED_7_6 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX4GCR1_QSNSEL 0x1 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX5GCR4_DXREFIEN 0xf - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX4GCR1_QSSEL 0x1 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX5GCR4_DXREFIMON 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX4GCR1_OEEN 0x1 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080C10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Enables PDR in a byte lane - PSU_DDR_PHY_DX4GCR1_PDREN 0x1 + /* + * Register : DX5GCR5 @ 0XFD080C14 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX4GCR1_TEEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_31 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX4GCR1_DSEN 0x1 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR3 0x9 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX4GCR1_DMEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_23 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX4GCR1_DQEN 0xff + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR2 0x9 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080B04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX4GCR1_DXPDRMODE_MASK | DDR_PHY_DX4GCR1_RESERVED_15_MASK | DDR_PHY_DX4GCR1_QSNSEL_MASK | DDR_PHY_DX4GCR1_QSSEL_MASK | DDR_PHY_DX4GCR1_OEEN_MASK | DDR_PHY_DX4GCR1_PDREN_MASK | DDR_PHY_DX4GCR1_TEEN_MASK | DDR_PHY_DX4GCR1_DSEN_MASK | DDR_PHY_DX4GCR1_DMEN_MASK | DDR_PHY_DX4GCR1_DQEN_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_15 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX4GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x55 - /*Register : DX4GCR4 @ 0XFD080B10

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_7 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX4GCR4_RESERVED_31_29 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x55 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX4GCR4_DXREFPEN 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX4GCR4_DXREFEEN 0x3 + /* + * Register : DX5GCR6 @ 0XFD080C18 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX4GCR4_DXREFSEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_31_30 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR4_RESERVED_24 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR3 0x9 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX4GCR4_DXREFESELRANGE 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_23_22 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX4GCR4_DXREFESEL 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR2 0x9 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX4GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_15_14 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX4GCR4_DXREFSSEL 0x30 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR4_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_7_6 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX4GCR4_DXREFIEN 0xf + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR0 0x2b - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX4GCR4_DXREFIMON 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080C18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080B10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX4GCR4_RESERVED_31_29_MASK | DDR_PHY_DX4GCR4_DXREFPEN_MASK | DDR_PHY_DX4GCR4_DXREFEEN_MASK | DDR_PHY_DX4GCR4_DXREFSEN_MASK | DDR_PHY_DX4GCR4_RESERVED_24_MASK | DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX4GCR4_DXREFESEL_MASK | DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX4GCR4_DXREFSSEL_MASK | DDR_PHY_DX4GCR4_RESERVED_7_6_MASK | DDR_PHY_DX4GCR4_DXREFIEN_MASK | DDR_PHY_DX4GCR4_DXREFIMON_MASK | 0 ); + /* + * Register : DX6GCR0 @ 0XFD080D00 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX4GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX4GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Calibration Bypass + * PSU_DDR_PHY_DX6GCR0_CALBYP 0x0 - /*Register : DX4GCR5 @ 0XFD080B14

+ * Master Delay Line Enable + * PSU_DDR_PHY_DX6GCR0_MDLEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_31 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX6GCR0_CODTSHFT 0x0 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX4GCR5_DXREFISELR3 0x9 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX6GCR0_DQSDCC 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_23 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX6GCR0_RDDLY 0x8 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX4GCR5_DXREFISELR2 0x9 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_19_14 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_15 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSNSEPDR 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x4f + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSSEPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_7 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX6GCR0_RTTOAL 0x0 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x4f + * RTT Output Hold + * PSU_DDR_PHY_DX6GCR0_RTTOH 0x3 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX4GCR5_RESERVED_31_MASK | DDR_PHY_DX4GCR5_DXREFISELR3_MASK | DDR_PHY_DX4GCR5_RESERVED_23_MASK | DDR_PHY_DX4GCR5_DXREFISELR2_MASK | DDR_PHY_DX4GCR5_RESERVED_15_MASK | DDR_PHY_DX4GCR5_DXREFISELR1_MASK | DDR_PHY_DX4GCR5_RESERVED_7_MASK | DDR_PHY_DX4GCR5_DXREFISELR0_MASK | 0 ); + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX6GCR0_CPDRSHFT 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DQSR Power Down + * PSU_DDR_PHY_DX6GCR0_DQSRPD 0x0 - /*Register : DX4GCR6 @ 0XFD080B18

+ * DQSG Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSGPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_4 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR3 0x9 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX6GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_23_22 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX6GCR0_DQSGOE 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR2 0x9 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_1_0 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_15_14 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080D00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR1 0x2b + /* + * Register : DX6GCR1 @ 0XFD080D04 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_7_6 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX6GCR1_DXPDRMODE 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR0 0x2b + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX6GCR1_RESERVED_15 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080B18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX4GCR6_RESERVED_31_30_MASK | DDR_PHY_DX4GCR6_DXDQVREFR3_MASK | DDR_PHY_DX4GCR6_RESERVED_23_22_MASK | DDR_PHY_DX4GCR6_DXDQVREFR2_MASK | DDR_PHY_DX4GCR6_RESERVED_15_14_MASK | DDR_PHY_DX4GCR6_DXDQVREFR1_MASK | DDR_PHY_DX4GCR6_RESERVED_7_6_MASK | DDR_PHY_DX4GCR6_DXDQVREFR0_MASK | 0 ); + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX6GCR1_QSNSEL 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX6GCR1_QSSEL 0x1 - /*Register : DX4LCDLR2 @ 0XFD080B88

+ * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX6GCR1_OEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_31_25 0x0 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX6GCR1_PDREN 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_24_16 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX6GCR1_TEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_15_9 0x0 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX6GCR1_DSEN 0x1 - Read DQS Gating Delay - PSU_DDR_PHY_DX4LCDLR2_DQSGD 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX6GCR1_DMEN 0x1 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080B88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX4LCDLR2_DQSGD_MASK | 0 ); + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX6GCR1_DQEN 0xff - RegVal = ((0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080D04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - /*Register : DX4GTR0 @ 0XFD080BC0

+ /* + * Register : DX6GCR4 @ 0XFD080D10 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_31_24 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX6GCR4_RESERVED_31_29 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX4GTR0_WDQSL 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX6GCR4_DXREFPEN 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4GTR0_RESERVED_23_20 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX6GCR4_DXREFEEN 0x3 - Write Leveling System Latency - PSU_DDR_PHY_DX4GTR0_WLSL 0x2 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX6GCR4_DXREFSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_15_13 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR4_RESERVED_24 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4GTR0_RESERVED_12_8 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX6GCR4_DXREFESELRANGE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_7_5 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX6GCR4_DXREFESEL 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX4GTR0_DGSL 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX6GCR4_DXREFSSELRANGE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080BC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX4GTR0_RESERVED_31_24_MASK | DDR_PHY_DX4GTR0_WDQSL_MASK | DDR_PHY_DX4GTR0_RESERVED_23_20_MASK | DDR_PHY_DX4GTR0_WLSL_MASK | DDR_PHY_DX4GTR0_RESERVED_15_13_MASK | DDR_PHY_DX4GTR0_RESERVED_12_8_MASK | DDR_PHY_DX4GTR0_RESERVED_7_5_MASK | DDR_PHY_DX4GTR0_DGSL_MASK | 0 ); + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX6GCR4_DXREFSSEL 0x30 - RegVal = ((0x00000000U << DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX4GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR4_RESERVED_7_6 0x0 - /*Register : DX5GCR0 @ 0XFD080C00

+ * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX6GCR4_DXREFIEN 0xf - Calibration Bypass - PSU_DDR_PHY_DX5GCR0_CALBYP 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX6GCR4_DXREFIMON 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX5GCR0_MDLEN 0x1 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080D10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX5GCR0_CODTSHFT 0x0 + /* + * Register : DX6GCR5 @ 0XFD080D14 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX5GCR0_DQSDCC 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_31 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX5GCR0_RDDLY 0x8 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_19_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_23 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSNSEPDR 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR2 0x9 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_15 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX5GCR0_RTTOAL 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x55 - RTT Output Hold - PSU_DDR_PHY_DX5GCR0_RTTOH 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_7 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX5GCR0_CPDRSHFT 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x55 - DQSR Power Down - PSU_DDR_PHY_DX5GCR0_DQSRPD 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - DQSG Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSGPDR 0x0 + /* + * Register : DX6GCR6 @ 0XFD080D18 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_31_30 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX5GCR0_DQSGODT 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR3 0x9 - DQSG Output Enable - PSU_DDR_PHY_DX5GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_1_0 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR2 0x9 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080C00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX5GCR0_CALBYP_MASK | DDR_PHY_DX5GCR0_MDLEN_MASK | DDR_PHY_DX5GCR0_CODTSHFT_MASK | DDR_PHY_DX5GCR0_DQSDCC_MASK | DDR_PHY_DX5GCR0_RDDLY_MASK | DDR_PHY_DX5GCR0_RESERVED_19_14_MASK | DDR_PHY_DX5GCR0_DQSNSEPDR_MASK | DDR_PHY_DX5GCR0_DQSSEPDR_MASK | DDR_PHY_DX5GCR0_RTTOAL_MASK | DDR_PHY_DX5GCR0_RTTOH_MASK | DDR_PHY_DX5GCR0_CPDRSHFT_MASK | DDR_PHY_DX5GCR0_DQSRPD_MASK | DDR_PHY_DX5GCR0_DQSGPDR_MASK | DDR_PHY_DX5GCR0_RESERVED_4_MASK | DDR_PHY_DX5GCR0_DQSGODT_MASK | DDR_PHY_DX5GCR0_DQSGOE_MASK | DDR_PHY_DX5GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_15_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX5GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX5GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR1 0x2b - /*Register : DX5GCR1 @ 0XFD080C04

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_7_6 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX5GCR1_DXPDRMODE 0x0 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX5GCR1_RESERVED_15 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080D18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX5GCR1_QSNSEL 0x1 + /* + * Register : DX7GCR0 @ 0XFD080E00 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX5GCR1_QSSEL 0x1 + * Calibration Bypass + * PSU_DDR_PHY_DX7GCR0_CALBYP 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX5GCR1_OEEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX7GCR0_MDLEN 0x1 - Enables PDR in a byte lane - PSU_DDR_PHY_DX5GCR1_PDREN 0x1 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX7GCR0_CODTSHFT 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX5GCR1_TEEN 0x1 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX7GCR0_DQSDCC 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX5GCR1_DSEN 0x1 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX7GCR0_RDDLY 0x8 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX5GCR1_DMEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_19_14 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX5GCR1_DQEN 0xff + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSNSEPDR 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080C04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX5GCR1_DXPDRMODE_MASK | DDR_PHY_DX5GCR1_RESERVED_15_MASK | DDR_PHY_DX5GCR1_QSNSEL_MASK | DDR_PHY_DX5GCR1_QSSEL_MASK | DDR_PHY_DX5GCR1_OEEN_MASK | DDR_PHY_DX5GCR1_PDREN_MASK | DDR_PHY_DX5GCR1_TEEN_MASK | DDR_PHY_DX5GCR1_DSEN_MASK | DDR_PHY_DX5GCR1_DMEN_MASK | DDR_PHY_DX5GCR1_DQEN_MASK | 0 ); + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSSEPDR 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX5GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * RTT On Additive Latency + * PSU_DDR_PHY_DX7GCR0_RTTOAL 0x0 - /*Register : DX5GCR4 @ 0XFD080C10

+ * RTT Output Hold + * PSU_DDR_PHY_DX7GCR0_RTTOH 0x3 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX5GCR4_RESERVED_31_29 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX7GCR0_CPDRSHFT 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX5GCR4_DXREFPEN 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX7GCR0_DQSRPD 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX5GCR4_DXREFEEN 0x3 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSGPDR 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX5GCR4_DXREFSEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_4 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR4_RESERVED_24 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX7GCR0_DQSGODT 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX5GCR4_DXREFESELRANGE 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX7GCR0_DQSGOE 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX5GCR4_DXREFESEL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_1_0 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX5GCR4_DXREFSSELRANGE 0x1 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080E00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX5GCR4_DXREFSSEL 0x30 + /* + * Register : DX7GCR1 @ 0XFD080E04 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR4_RESERVED_7_6 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX7GCR1_DXPDRMODE 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX5GCR4_DXREFIEN 0xf + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX7GCR1_RESERVED_15 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX5GCR4_DXREFIMON 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX7GCR1_QSNSEL 0x1 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080C10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX5GCR4_RESERVED_31_29_MASK | DDR_PHY_DX5GCR4_DXREFPEN_MASK | DDR_PHY_DX5GCR4_DXREFEEN_MASK | DDR_PHY_DX5GCR4_DXREFSEN_MASK | DDR_PHY_DX5GCR4_RESERVED_24_MASK | DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX5GCR4_DXREFESEL_MASK | DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX5GCR4_DXREFSSEL_MASK | DDR_PHY_DX5GCR4_RESERVED_7_6_MASK | DDR_PHY_DX5GCR4_DXREFIEN_MASK | DDR_PHY_DX5GCR4_DXREFIMON_MASK | 0 ); + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX7GCR1_QSSEL 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX5GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX5GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX7GCR1_OEEN 0x1 - /*Register : DX5GCR5 @ 0XFD080C14

+ * Enables PDR in a byte lane + * PSU_DDR_PHY_DX7GCR1_PDREN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_31 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX7GCR1_TEEN 0x1 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX5GCR5_DXREFISELR3 0x9 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX7GCR1_DSEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_23 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX7GCR1_DMEN 0x1 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX5GCR5_DXREFISELR2 0x9 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX7GCR1_DQEN 0xff - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_15 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080E04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x4f + /* + * Register : DX7GCR4 @ 0XFD080E10 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_7 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX7GCR4_RESERVED_31_29 0x0 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x4f + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX7GCR4_DXREFPEN 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX5GCR5_RESERVED_31_MASK | DDR_PHY_DX5GCR5_DXREFISELR3_MASK | DDR_PHY_DX5GCR5_RESERVED_23_MASK | DDR_PHY_DX5GCR5_DXREFISELR2_MASK | DDR_PHY_DX5GCR5_RESERVED_15_MASK | DDR_PHY_DX5GCR5_DXREFISELR1_MASK | DDR_PHY_DX5GCR5_RESERVED_7_MASK | DDR_PHY_DX5GCR5_DXREFISELR0_MASK | 0 ); + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX7GCR4_DXREFEEN 0x3 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX7GCR4_DXREFSEN 0x1 - /*Register : DX5GCR6 @ 0XFD080C18

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR4_RESERVED_24 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_31_30 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX7GCR4_DXREFESELRANGE 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR3 0x9 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX7GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_23_22 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX7GCR4_DXREFSSELRANGE 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR2 0x9 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX7GCR4_DXREFSSEL 0x30 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_15_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR4_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR1 0x2b + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX7GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_7_6 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX7GCR4_DXREFIMON 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR0 0x2b + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080E10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080C18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX5GCR6_RESERVED_31_30_MASK | DDR_PHY_DX5GCR6_DXDQVREFR3_MASK | DDR_PHY_DX5GCR6_RESERVED_23_22_MASK | DDR_PHY_DX5GCR6_DXDQVREFR2_MASK | DDR_PHY_DX5GCR6_RESERVED_15_14_MASK | DDR_PHY_DX5GCR6_DXDQVREFR1_MASK | DDR_PHY_DX5GCR6_RESERVED_7_6_MASK | DDR_PHY_DX5GCR6_DXDQVREFR0_MASK | 0 ); + /* + * Register : DX7GCR5 @ 0XFD080E14 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_31 0x0 - /*Register : DX5LCDLR2 @ 0XFD080C88

+ * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_31_25 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_23 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_24_16 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR2 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_15_9 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_15 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX5LCDLR2_DQSGD 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x55 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080C88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX5LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_7 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x55 - /*Register : DX5GTR0 @ 0XFD080CC0

+ * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_31_24 0x0 + /* + * Register : DX7GCR6 @ 0XFD080E18 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX5GTR0_WDQSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_31_30 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5GTR0_RESERVED_23_20 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR3 0x9 - Write Leveling System Latency - PSU_DDR_PHY_DX5GTR0_WLSL 0x2 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_15_13 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR2 0x9 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5GTR0_RESERVED_12_8 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_7_5 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR1 0x2b - DQS Gating System Latency - PSU_DDR_PHY_DX5GTR0_DGSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_7_6 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080CC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX5GTR0_RESERVED_31_24_MASK | DDR_PHY_DX5GTR0_WDQSL_MASK | DDR_PHY_DX5GTR0_RESERVED_23_20_MASK | DDR_PHY_DX5GTR0_WLSL_MASK | DDR_PHY_DX5GTR0_RESERVED_15_13_MASK | DDR_PHY_DX5GTR0_RESERVED_12_8_MASK | DDR_PHY_DX5GTR0_RESERVED_7_5_MASK | DDR_PHY_DX5GTR0_DGSL_MASK | 0 ); + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR0 0x2b - RegVal = ((0x00000000U << DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX5GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080E18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - /*Register : DX6GCR0 @ 0XFD080D00

+ /* + * Register : DX8GCR0 @ 0XFD080F00 - Calibration Bypass - PSU_DDR_PHY_DX6GCR0_CALBYP 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX8GCR0_CALBYP 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX6GCR0_MDLEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX8GCR0_MDLEN 0x1 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX6GCR0_CODTSHFT 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX8GCR0_CODTSHFT 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX6GCR0_DQSDCC 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX8GCR0_DQSDCC 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX6GCR0_RDDLY 0x8 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX8GCR0_RDDLY 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_19_14 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSNSEPDR 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSNSEPDR 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSSEPDR 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSSEPDR 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX6GCR0_RTTOAL 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX8GCR0_RTTOAL 0x0 - RTT Output Hold - PSU_DDR_PHY_DX6GCR0_RTTOH 0x3 + * RTT Output Hold + * PSU_DDR_PHY_DX8GCR0_RTTOH 0x3 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX6GCR0_CPDRSHFT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX8GCR0_CPDRSHFT 0x0 - DQSR Power Down - PSU_DDR_PHY_DX6GCR0_DQSRPD 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX8GCR0_DQSRPD 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSGPDR 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSGPDR 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_4 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX6GCR0_DQSGODT 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX8GCR0_DQSGODT 0x0 - DQSG Output Enable - PSU_DDR_PHY_DX6GCR0_DQSGOE 0x1 + * DQSG Output Enable + * PSU_DDR_PHY_DX8GCR0_DQSGOE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_1_0 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_1_0 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080D00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX6GCR0_CALBYP_MASK | DDR_PHY_DX6GCR0_MDLEN_MASK | DDR_PHY_DX6GCR0_CODTSHFT_MASK | DDR_PHY_DX6GCR0_DQSDCC_MASK | DDR_PHY_DX6GCR0_RDDLY_MASK | DDR_PHY_DX6GCR0_RESERVED_19_14_MASK | DDR_PHY_DX6GCR0_DQSNSEPDR_MASK | DDR_PHY_DX6GCR0_DQSSEPDR_MASK | DDR_PHY_DX6GCR0_RTTOAL_MASK | DDR_PHY_DX6GCR0_RTTOH_MASK | DDR_PHY_DX6GCR0_CPDRSHFT_MASK | DDR_PHY_DX6GCR0_DQSRPD_MASK | DDR_PHY_DX6GCR0_DQSGPDR_MASK | DDR_PHY_DX6GCR0_RESERVED_4_MASK | DDR_PHY_DX6GCR0_DQSGODT_MASK | DDR_PHY_DX6GCR0_DQSGOE_MASK | DDR_PHY_DX6GCR0_RESERVED_1_0_MASK | 0 ); + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080F00, 0xFFFFFFFFU ,0x40800624U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR0_OFFSET, 0xFFFFFFFFU, 0x40800624U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX6GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX6GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX6GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + /* + * Register : DX8GCR1 @ 0XFD080F04 - /*Register : DX6GCR1 @ 0XFD080D04

+ * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX8GCR1_DXPDRMODE 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX6GCR1_DXPDRMODE 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX8GCR1_RESERVED_15 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX6GCR1_RESERVED_15 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX8GCR1_QSNSEL 0x1 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX6GCR1_QSNSEL 0x1 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX8GCR1_QSSEL 0x1 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX6GCR1_QSSEL 0x1 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX8GCR1_OEEN 0x1 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX6GCR1_OEEN 0x1 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX8GCR1_PDREN 0x1 - Enables PDR in a byte lane - PSU_DDR_PHY_DX6GCR1_PDREN 0x1 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX8GCR1_TEEN 0x1 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX6GCR1_TEEN 0x1 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX8GCR1_DSEN 0x1 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX6GCR1_DSEN 0x1 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX8GCR1_DMEN 0x1 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX6GCR1_DMEN 0x1 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX8GCR1_DQEN 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX6GCR1_DQEN 0xff + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080F04, 0xFFFFFFFFU ,0x00007F00U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR1_OFFSET, 0xFFFFFFFFU, 0x00007F00U); +/*##################################################################### */ - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080D04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX6GCR1_DXPDRMODE_MASK | DDR_PHY_DX6GCR1_RESERVED_15_MASK | DDR_PHY_DX6GCR1_QSNSEL_MASK | DDR_PHY_DX6GCR1_QSSEL_MASK | DDR_PHY_DX6GCR1_OEEN_MASK | DDR_PHY_DX6GCR1_PDREN_MASK | DDR_PHY_DX6GCR1_TEEN_MASK | DDR_PHY_DX6GCR1_DSEN_MASK | DDR_PHY_DX6GCR1_DMEN_MASK | DDR_PHY_DX6GCR1_DQEN_MASK | 0 ); + /* + * Register : DX8GCR4 @ 0XFD080F10 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX6GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX8GCR4_RESERVED_31_29 0x0 - /*Register : DX6GCR4 @ 0XFD080D10

+ * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX8GCR4_DXREFPEN 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX6GCR4_RESERVED_31_29 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX8GCR4_DXREFEEN 0x3 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX6GCR4_DXREFPEN 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX8GCR4_DXREFSEN 0x1 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX6GCR4_DXREFEEN 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR4_RESERVED_24 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX6GCR4_DXREFSEN 0x1 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX8GCR4_DXREFESELRANGE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR4_RESERVED_24 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX8GCR4_DXREFESEL 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX6GCR4_DXREFESELRANGE 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX8GCR4_DXREFSSELRANGE 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX6GCR4_DXREFESEL 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX8GCR4_DXREFSSEL 0x30 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX6GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR4_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX6GCR4_DXREFSSEL 0x30 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX8GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR4_RESERVED_7_6 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX8GCR4_DXREFIMON 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX6GCR4_DXREFIEN 0xf + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080F10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX6GCR4_DXREFIMON 0x0 + /* + * Register : DX8GCR5 @ 0XFD080F14 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080D10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX6GCR4_RESERVED_31_29_MASK | DDR_PHY_DX6GCR4_DXREFPEN_MASK | DDR_PHY_DX6GCR4_DXREFEEN_MASK | DDR_PHY_DX6GCR4_DXREFSEN_MASK | DDR_PHY_DX6GCR4_RESERVED_24_MASK | DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX6GCR4_DXREFESEL_MASK | DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX6GCR4_DXREFSSEL_MASK | DDR_PHY_DX6GCR4_RESERVED_7_6_MASK | DDR_PHY_DX6GCR4_DXREFIEN_MASK | DDR_PHY_DX6GCR4_DXREFIMON_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_31 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX6GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX6GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR3 0x9 - /*Register : DX6GCR5 @ 0XFD080D14

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_23 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_31 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR2 0x9 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX6GCR5_DXREFISELR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_23 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x55 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX6GCR5_DXREFISELR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_7 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_15 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x55 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x4f + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_7 0x0 + /* + * Register : DX8GCR6 @ 0XFD080F18 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_31_30 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX6GCR5_RESERVED_31_MASK | DDR_PHY_DX6GCR5_DXREFISELR3_MASK | DDR_PHY_DX6GCR5_RESERVED_23_MASK | DDR_PHY_DX6GCR5_DXREFISELR2_MASK | DDR_PHY_DX6GCR5_RESERVED_15_MASK | DDR_PHY_DX6GCR5_DXREFISELR1_MASK | DDR_PHY_DX6GCR5_RESERVED_7_MASK | DDR_PHY_DX6GCR5_DXREFISELR0_MASK | 0 ); + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR3 0x9 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_23_22 0x0 - /*Register : DX6GCR6 @ 0XFD080D18

+ * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_31_30 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_15_14 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR3 0x9 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_23_22 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR2 0x9 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_15_14 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080F18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR1 0x2b + /* + * Register : DX8SL0OSC @ 0XFD081400 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_31_30 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR0 0x2b + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXRDCLK 0x2 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080D18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX6GCR6_RESERVED_31_30_MASK | DDR_PHY_DX6GCR6_DXDQVREFR3_MASK | DDR_PHY_DX6GCR6_RESERVED_23_22_MASK | DDR_PHY_DX6GCR6_DXDQVREFR2_MASK | DDR_PHY_DX6GCR6_RESERVED_15_14_MASK | DDR_PHY_DX6GCR6_DXDQVREFR1_MASK | DDR_PHY_DX6GCR6_RESERVED_7_6_MASK | DDR_PHY_DX6GCR6_DXDQVREFR0_MASK | 0 ); + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXDDRCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXCTLCLK 0x2 - /*Register : DX6LCDLR2 @ 0XFD080D88

+ * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL0OSC_CLKLEVEL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_31_25 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL0OSC_LBMODE 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_24_16 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL0OSC_LBGSDQS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_15_9 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL0OSC_LBGDQS 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX6LCDLR2_DQSGD 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL0OSC_LBDQSS 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080D88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX6LCDLR2_DQSGD_MASK | 0 ); + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL0OSC_PHYHRST 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL0OSC_PHYFRST 0x1 - /*Register : DX6GTR0 @ 0XFD080DC0

+ * Delay Line Test Start + * PSU_DDR_PHY_DX8SL0OSC_DLTST 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_31_24 0x0 + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL0OSC_DLTMODE 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX6GTR0_WDQSL 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_12_11 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6GTR0_RESERVED_23_20 0x0 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL0OSC_OSCWDDL 0x3 - Write Leveling System Latency - PSU_DDR_PHY_DX6GTR0_WLSL 0x2 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_8_7 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_15_13 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL0OSC_OSCWDL 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6GTR0_RESERVED_12_8 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL0OSC_OSCDIV 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_7_5 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL0OSC_OSCEN 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX6GTR0_DGSL 0x0 + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081400, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080DC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX6GTR0_RESERVED_31_24_MASK | DDR_PHY_DX6GTR0_WDQSL_MASK | DDR_PHY_DX6GTR0_RESERVED_23_20_MASK | DDR_PHY_DX6GTR0_WLSL_MASK | DDR_PHY_DX6GTR0_RESERVED_15_13_MASK | DDR_PHY_DX6GTR0_RESERVED_12_8_MASK | DDR_PHY_DX6GTR0_RESERVED_7_5_MASK | DDR_PHY_DX6GTR0_DGSL_MASK | 0 ); + /* + * Register : DX8SL0PLLCR0 @ 0XFD081404 - RegVal = ((0x00000000U << DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX6GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * PLL Bypass + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLBYP 0x0 - /*Register : DX7GCR0 @ 0XFD080E00

+ * PLL Reset + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLRST 0x0 - Calibration Bypass - PSU_DDR_PHY_DX7GCR0_CALBYP 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLPD 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX7GCR0_MDLEN 0x1 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL0PLLCR0_RSTOPM 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX7GCR0_CODTSHFT 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL0PLLCR0_FRQSEL 0x1 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX7GCR0_DQSDCC 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL0PLLCR0_RLOCKM 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX7GCR0_RDDLY 0x8 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL0PLLCR0_CPPC 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_19_14 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL0PLLCR0_CPIC 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSNSEPDR 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL0PLLCR0_GSHIFT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSSEPDR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX7GCR0_RTTOAL 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL0PLLCR0_ATOEN 0x0 - RTT Output Hold - PSU_DDR_PHY_DX7GCR0_RTTOH 0x3 + * Analog Test Control + * PSU_DDR_PHY_DX8SL0PLLCR0_ATC 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX7GCR0_CPDRSHFT 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL0PLLCR0_DTC 0x0 - DQSR Power Down - PSU_DDR_PHY_DX7GCR0_DQSRPD 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081404, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - DQSG Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSGPDR 0x0 + /* + * Register : DX8SL0DQSCTL @ 0XFD08141C - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX7GCR0_DQSGODT 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_RRRMODE 0x1 - DQSG Output Enable - PSU_DDR_PHY_DX7GCR0_DQSGOE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_1_0 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_WRRMODE 0x1 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080E00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX7GCR0_CALBYP_MASK | DDR_PHY_DX7GCR0_MDLEN_MASK | DDR_PHY_DX7GCR0_CODTSHFT_MASK | DDR_PHY_DX7GCR0_DQSDCC_MASK | DDR_PHY_DX7GCR0_RDDLY_MASK | DDR_PHY_DX7GCR0_RESERVED_19_14_MASK | DDR_PHY_DX7GCR0_DQSNSEPDR_MASK | DDR_PHY_DX7GCR0_DQSSEPDR_MASK | DDR_PHY_DX7GCR0_RTTOAL_MASK | DDR_PHY_DX7GCR0_RTTOH_MASK | DDR_PHY_DX7GCR0_CPDRSHFT_MASK | DDR_PHY_DX7GCR0_DQSRPD_MASK | DDR_PHY_DX7GCR0_DQSGPDR_MASK | DDR_PHY_DX7GCR0_RESERVED_4_MASK | DDR_PHY_DX7GCR0_DQSGODT_MASK | DDR_PHY_DX7GCR0_DQSGOE_MASK | DDR_PHY_DX7GCR0_RESERVED_1_0_MASK | 0 ); + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSGX 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX7GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX7GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL0DQSCTL_LPPLLPD 0x1 - /*Register : DX7GCR1 @ 0XFD080E04

+ * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL0DQSCTL_LPIOPD 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX7GCR1_DXPDRMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX7GCR1_RESERVED_15 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL0DQSCTL_QSCNTEN 0x1 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX7GCR1_QSNSEL 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_UDQIOM 0x0 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX7GCR1_QSSEL 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX7GCR1_OEEN 0x1 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL0DQSCTL_DXSR 0x3 - Enables PDR in a byte lane - PSU_DDR_PHY_DX7GCR1_PDREN 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSNRES 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX7GCR1_TEEN 0x1 + * DQS Resistor + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSRES 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX7GCR1_DSEN 0x1 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08141C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Enables DM pin in a byte lane - PSU_DDR_PHY_DX7GCR1_DMEN 0x1 + /* + * Register : DX8SL0DXCTL2 @ 0XFD08142C - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX7GCR1_DQEN 0xff + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080E04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX7GCR1_DXPDRMODE_MASK | DDR_PHY_DX7GCR1_RESERVED_15_MASK | DDR_PHY_DX7GCR1_QSNSEL_MASK | DDR_PHY_DX7GCR1_QSSEL_MASK | DDR_PHY_DX7GCR1_OEEN_MASK | DDR_PHY_DX7GCR1_PDREN_MASK | DDR_PHY_DX7GCR1_TEEN_MASK | DDR_PHY_DX7GCR1_DSEN_MASK | DDR_PHY_DX7GCR1_DMEN_MASK | DDR_PHY_DX7GCR1_DQEN_MASK | 0 ); + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_CRDEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX7GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL0DXCTL2_POSOEX 0x0 - /*Register : DX7GCR4 @ 0XFD080E10

+ * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL0DXCTL2_PREOEX 0x1 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX7GCR4_RESERVED_31_29 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_17 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX7GCR4_DXREFPEN 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL0DXCTL2_IOAG 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX7GCR4_DXREFEEN 0x3 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL0DXCTL2_IOLB 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX7GCR4_DXREFSEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR4_RESERVED_24 0x0 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH 0xc - External VREF generator REFSEL range select - PSU_DDR_PHY_DX7GCR4_DXREFESELRANGE 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_RDBI 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX7GCR4_DXREFESEL 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_WDBI 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX7GCR4_DXREFSSELRANGE 0x1 + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL0DXCTL2_PRFBYP 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX7GCR4_DXREFSSEL 0x30 + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL0DXCTL2_RDMODE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR4_RESERVED_7_6 0x0 + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL0DXCTL2_DISRST 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX7GCR4_DXREFIEN 0xf + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL0DXCTL2_DQSGLB 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX7GCR4_DXREFIMON 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_0 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080E10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX7GCR4_RESERVED_31_29_MASK | DDR_PHY_DX7GCR4_DXREFPEN_MASK | DDR_PHY_DX7GCR4_DXREFEEN_MASK | DDR_PHY_DX7GCR4_DXREFSEN_MASK | DDR_PHY_DX7GCR4_RESERVED_24_MASK | DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX7GCR4_DXREFESEL_MASK | DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX7GCR4_DXREFSSEL_MASK | DDR_PHY_DX7GCR4_RESERVED_7_6_MASK | DDR_PHY_DX7GCR4_DXREFIEN_MASK | DDR_PHY_DX7GCR4_DXREFIMON_MASK | 0 ); + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08142C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX7GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX7GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + /* + * Register : DX8SL0IOCR @ 0XFD081430 - /*Register : DX7GCR5 @ 0XFD080E14

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0IOCR_RESERVED_31 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_31 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL0IOCR_DXDACRANGE 0x7 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX7GCR5_DXREFISELR3 0x9 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL0IOCR_DXVREFIOM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_23 0x0 + * DX IO Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXIOM 0x2 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX7GCR5_DXREFISELR2 0x9 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXTXM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_15 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXRXM 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x4f + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081430, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_7 0x0 + /* + * Register : DX8SL1OSC @ 0XFD081440 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x4f + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_31_30 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX7GCR5_RESERVED_31_MASK | DDR_PHY_DX7GCR5_DXREFISELR3_MASK | DDR_PHY_DX7GCR5_RESERVED_23_MASK | DDR_PHY_DX7GCR5_DXREFISELR2_MASK | DDR_PHY_DX7GCR5_RESERVED_15_MASK | DDR_PHY_DX7GCR5_DXREFISELR1_MASK | DDR_PHY_DX7GCR5_RESERVED_7_MASK | DDR_PHY_DX7GCR5_DXREFISELR0_MASK | 0 ); + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXRDCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXDDRCLK 0x2 - /*Register : DX7GCR6 @ 0XFD080E18

+ * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXCTLCLK 0x2 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_31_30 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL1OSC_CLKLEVEL 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR3 0x9 + * Loopback Mode + * PSU_DDR_PHY_DX8SL1OSC_LBMODE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_23_22 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL1OSC_LBGSDQS 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR2 0x9 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL1OSC_LBGDQS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_15_14 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL1OSC_LBDQSS 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR1 0x2b + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL1OSC_PHYHRST 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_7_6 0x0 + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL1OSC_PHYFRST 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR0 0x2b + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL1OSC_DLTST 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080E18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX7GCR6_RESERVED_31_30_MASK | DDR_PHY_DX7GCR6_DXDQVREFR3_MASK | DDR_PHY_DX7GCR6_RESERVED_23_22_MASK | DDR_PHY_DX7GCR6_DXDQVREFR2_MASK | DDR_PHY_DX7GCR6_RESERVED_15_14_MASK | DDR_PHY_DX7GCR6_DXDQVREFR1_MASK | DDR_PHY_DX7GCR6_RESERVED_7_6_MASK | DDR_PHY_DX7GCR6_DXDQVREFR0_MASK | 0 ); + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL1OSC_DLTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_12_11 0x3 - /*Register : DX7LCDLR2 @ 0XFD080E88

+ * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL1OSC_OSCWDDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_31_25 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_8_7 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_24_16 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL1OSC_OSCWDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_15_9 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL1OSC_OSCDIV 0xf - Read DQS Gating Delay - PSU_DDR_PHY_DX7LCDLR2_DQSGD 0xa + * Oscillator Enable + * PSU_DDR_PHY_DX8SL1OSC_OSCEN 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080E88, 0xFFFFFFFFU ,0x0000000AU) - RegMask = (DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX7LCDLR2_DQSGD_MASK | 0 ); + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081440, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT - | 0x0000000AU << DDR_PHY_DX7LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7LCDLR2_OFFSET ,0xFFFFFFFFU ,0x0000000AU); - /*############################################################################################################################ */ + /* + * Register : DX8SL1PLLCR0 @ 0XFD081444 - /*Register : DX7GTR0 @ 0XFD080EC0

+ * PLL Bypass + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_31_24 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLRST 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX7GTR0_WDQSL 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLPD 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7GTR0_RESERVED_23_20 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL1PLLCR0_RSTOPM 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX7GTR0_WLSL 0x2 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL1PLLCR0_FRQSEL 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_15_13 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL1PLLCR0_RLOCKM 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7GTR0_RESERVED_12_8 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL1PLLCR0_CPPC 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_7_5 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL1PLLCR0_CPIC 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX7GTR0_DGSL 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL1PLLCR0_GSHIFT 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080EC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX7GTR0_RESERVED_31_24_MASK | DDR_PHY_DX7GTR0_WDQSL_MASK | DDR_PHY_DX7GTR0_RESERVED_23_20_MASK | DDR_PHY_DX7GTR0_WLSL_MASK | DDR_PHY_DX7GTR0_RESERVED_15_13_MASK | DDR_PHY_DX7GTR0_RESERVED_12_8_MASK | DDR_PHY_DX7GTR0_RESERVED_7_5_MASK | DDR_PHY_DX7GTR0_DGSL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX7GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL1PLLCR0_ATOEN 0x0 - /*Register : DX8GCR0 @ 0XFD080F00

+ * Analog Test Control + * PSU_DDR_PHY_DX8SL1PLLCR0_ATC 0x0 - Calibration Bypass - PSU_DDR_PHY_DX8GCR0_CALBYP 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL1PLLCR0_DTC 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX8GCR0_MDLEN 0x1 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081444, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX8GCR0_CODTSHFT 0x0 + /* + * Register : DX8SL1DQSCTL @ 0XFD08145C - DQS Duty Cycle Correction - PSU_DDR_PHY_DX8GCR0_DQSDCC 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX8GCR0_RDDLY 0x8 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_RRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSNSEPDR 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_WRRMODE 0x1 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSSEPDR 0x0 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSGX 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX8GCR0_RTTOAL 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL1DQSCTL_LPPLLPD 0x1 - RTT Output Hold - PSU_DDR_PHY_DX8GCR0_RTTOH 0x3 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL1DQSCTL_LPIOPD 0x1 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX8GCR0_CPDRSHFT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15 0x0 - DQSR Power Down - PSU_DDR_PHY_DX8GCR0_DQSRPD 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL1DQSCTL_QSCNTEN 0x1 - DQSG Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSGPDR 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_UDQIOM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX8GCR0_DQSGODT 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL1DQSCTL_DXSR 0x3 - DQSG Output Enable - PSU_DDR_PHY_DX8GCR0_DQSGOE 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSNRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_1_0 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSRES 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080F00, 0xFFFFFFFFU ,0x40800624U) - RegMask = (DDR_PHY_DX8GCR0_CALBYP_MASK | DDR_PHY_DX8GCR0_MDLEN_MASK | DDR_PHY_DX8GCR0_CODTSHFT_MASK | DDR_PHY_DX8GCR0_DQSDCC_MASK | DDR_PHY_DX8GCR0_RDDLY_MASK | DDR_PHY_DX8GCR0_RESERVED_19_14_MASK | DDR_PHY_DX8GCR0_DQSNSEPDR_MASK | DDR_PHY_DX8GCR0_DQSSEPDR_MASK | DDR_PHY_DX8GCR0_RTTOAL_MASK | DDR_PHY_DX8GCR0_RTTOH_MASK | DDR_PHY_DX8GCR0_CPDRSHFT_MASK | DDR_PHY_DX8GCR0_DQSRPD_MASK | DDR_PHY_DX8GCR0_DQSGPDR_MASK | DDR_PHY_DX8GCR0_RESERVED_4_MASK | DDR_PHY_DX8GCR0_DQSGODT_MASK | DDR_PHY_DX8GCR0_DQSGOE_MASK | DDR_PHY_DX8GCR0_RESERVED_1_0_MASK | 0 ); + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08145C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX8GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX8GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSRPD_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR0_OFFSET ,0xFFFFFFFFU ,0x40800624U); - /*############################################################################################################################ */ + /* + * Register : DX8SL1DXCTL2 @ 0XFD08146C - /*Register : DX8GCR1 @ 0XFD080F04

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX8GCR1_DXPDRMODE 0x0 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_CRDEN 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX8GCR1_RESERVED_15 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL1DXCTL2_POSOEX 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX8GCR1_QSNSEL 0x1 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL1DXCTL2_PREOEX 0x1 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX8GCR1_QSSEL 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_17 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX8GCR1_OEEN 0x1 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL1DXCTL2_IOAG 0x0 - Enables PDR in a byte lane - PSU_DDR_PHY_DX8GCR1_PDREN 0x1 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL1DXCTL2_IOLB 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX8GCR1_TEEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX8GCR1_DSEN 0x1 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH 0xc - Enables DM pin in a byte lane - PSU_DDR_PHY_DX8GCR1_DMEN 0x1 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_RDBI 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX8GCR1_DQEN 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_WDBI 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080F04, 0xFFFFFFFFU ,0x00007F00U) - RegMask = (DDR_PHY_DX8GCR1_DXPDRMODE_MASK | DDR_PHY_DX8GCR1_RESERVED_15_MASK | DDR_PHY_DX8GCR1_QSNSEL_MASK | DDR_PHY_DX8GCR1_QSSEL_MASK | DDR_PHY_DX8GCR1_OEEN_MASK | DDR_PHY_DX8GCR1_PDREN_MASK | DDR_PHY_DX8GCR1_TEEN_MASK | DDR_PHY_DX8GCR1_DSEN_MASK | DDR_PHY_DX8GCR1_DMEN_MASK | DDR_PHY_DX8GCR1_DQEN_MASK | 0 ); + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL1DXCTL2_PRFBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_DMEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR1_OFFSET ,0xFFFFFFFFU ,0x00007F00U); - /*############################################################################################################################ */ + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL1DXCTL2_RDMODE 0x0 - /*Register : DX8GCR4 @ 0XFD080F10

+ * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL1DXCTL2_DISRST 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX8GCR4_RESERVED_31_29 0x0 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL1DXCTL2_DQSGLB 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX8GCR4_DXREFPEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_0 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX8GCR4_DXREFEEN 0x3 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08146C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX8GCR4_DXREFSEN 0x1 + /* + * Register : DX8SL1IOCR @ 0XFD081470 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR4_RESERVED_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1IOCR_RESERVED_31 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX8GCR4_DXREFESELRANGE 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL1IOCR_DXDACRANGE 0x7 - Byte Lane External VREF Select - PSU_DDR_PHY_DX8GCR4_DXREFESEL 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL1IOCR_DXVREFIOM 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX8GCR4_DXREFSSELRANGE 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXIOM 0x2 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX8GCR4_DXREFSSEL 0x30 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXTXM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR4_RESERVED_7_6 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXRXM 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX8GCR4_DXREFIEN 0xf + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081470, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX8GCR4_DXREFIMON 0x0 + /* + * Register : DX8SL2OSC @ 0XFD081480 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080F10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX8GCR4_RESERVED_31_29_MASK | DDR_PHY_DX8GCR4_DXREFPEN_MASK | DDR_PHY_DX8GCR4_DXREFEEN_MASK | DDR_PHY_DX8GCR4_DXREFSEN_MASK | DDR_PHY_DX8GCR4_RESERVED_24_MASK | DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX8GCR4_DXREFESEL_MASK | DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX8GCR4_DXREFSSEL_MASK | DDR_PHY_DX8GCR4_RESERVED_7_6_MASK | DDR_PHY_DX8GCR4_DXREFIEN_MASK | DDR_PHY_DX8GCR4_DXREFIMON_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX8GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX8GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXRDCLK 0x2 - /*Register : DX8GCR5 @ 0XFD080F14

+ * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXDDRCLK 0x2 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_31 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXCTLCLK 0x2 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX8GCR5_DXREFISELR3 0x9 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL2OSC_CLKLEVEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_23 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL2OSC_LBMODE 0x0 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX8GCR5_DXREFISELR2 0x9 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL2OSC_LBGSDQS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_15 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL2OSC_LBGDQS 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x4f + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL2OSC_LBDQSS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_7 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL2OSC_PHYHRST 0x1 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x4f + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL2OSC_PHYFRST 0x1 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX8GCR5_RESERVED_31_MASK | DDR_PHY_DX8GCR5_DXREFISELR3_MASK | DDR_PHY_DX8GCR5_RESERVED_23_MASK | DDR_PHY_DX8GCR5_DXREFISELR2_MASK | DDR_PHY_DX8GCR5_RESERVED_15_MASK | DDR_PHY_DX8GCR5_DXREFISELR1_MASK | DDR_PHY_DX8GCR5_RESERVED_7_MASK | DDR_PHY_DX8GCR5_DXREFISELR0_MASK | 0 ); + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL2OSC_DLTST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL2OSC_DLTMODE 0x0 - /*Register : DX8GCR6 @ 0XFD080F18

+ * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_12_11 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_31_30 0x0 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL2OSC_OSCWDDL 0x3 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR3 0x9 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_8_7 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_23_22 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL2OSC_OSCWDL 0x3 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR2 0x9 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL2OSC_OSCDIV 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_15_14 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL2OSC_OSCEN 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR1 0x2b + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081480, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_7_6 0x0 + /* + * Register : DX8SL2PLLCR0 @ 0XFD081484 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR0 0x2b + * PLL Bypass + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLBYP 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080F18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX8GCR6_RESERVED_31_30_MASK | DDR_PHY_DX8GCR6_DXDQVREFR3_MASK | DDR_PHY_DX8GCR6_RESERVED_23_22_MASK | DDR_PHY_DX8GCR6_DXDQVREFR2_MASK | DDR_PHY_DX8GCR6_RESERVED_15_14_MASK | DDR_PHY_DX8GCR6_DXDQVREFR1_MASK | DDR_PHY_DX8GCR6_RESERVED_7_6_MASK | DDR_PHY_DX8GCR6_DXDQVREFR0_MASK | 0 ); + * PLL Reset + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * PLL Power Down + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLPD 0x0 - /*Register : DX8LCDLR2 @ 0XFD080F88

+ * Reference Stop Mode + * PSU_DDR_PHY_DX8SL2PLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_31_25 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL2PLLCR0_FRQSEL 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_24_16 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL2PLLCR0_RLOCKM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_15_9 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL2PLLCR0_CPPC 0x8 - Read DQS Gating Delay - PSU_DDR_PHY_DX8LCDLR2_DQSGD 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL2PLLCR0_CPIC 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080F88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX8LCDLR2_DQSGD_MASK | 0 ); + * Gear Shift + * PSU_DDR_PHY_DX8SL2PLLCR0_GSHIFT 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9 0x0 - /*Register : DX8GTR0 @ 0XFD080FC0

+ * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL2PLLCR0_ATOEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_31_24 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SL2PLLCR0_ATC 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX8GTR0_WDQSL 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL2PLLCR0_DTC 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8GTR0_RESERVED_23_20 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081484, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Write Leveling System Latency - PSU_DDR_PHY_DX8GTR0_WLSL 0x2 + /* + * Register : DX8SL2DQSCTL @ 0XFD08149C - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_15_13 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8GTR0_RESERVED_12_8 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_RRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_7_5 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX8GTR0_DGSL 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_WRRMODE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080FC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX8GTR0_RESERVED_31_24_MASK | DDR_PHY_DX8GTR0_WDQSL_MASK | DDR_PHY_DX8GTR0_RESERVED_23_20_MASK | DDR_PHY_DX8GTR0_WLSL_MASK | DDR_PHY_DX8GTR0_RESERVED_15_13_MASK | DDR_PHY_DX8GTR0_RESERVED_12_8_MASK | DDR_PHY_DX8GTR0_RESERVED_7_5_MASK | DDR_PHY_DX8GTR0_DGSL_MASK | 0 ); + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSGX 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX8GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL2DQSCTL_LPPLLPD 0x1 - /*Register : DX8SL0OSC @ 0XFD081400

+ * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL2DQSCTL_LPIOPD 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXRDCLK 0x2 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL2DQSCTL_QSCNTEN 0x1 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXDDRCLK 0x2 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_UDQIOM 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXCTLCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL0OSC_CLKLEVEL 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL2DQSCTL_DXSR 0x3 - Loopback Mode - PSU_DDR_PHY_DX8SL0OSC_LBMODE 0x0 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSNRES 0x0 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL0OSC_LBGSDQS 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSRES 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL0OSC_LBGDQS 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08149C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Loopback DQS Shift - PSU_DDR_PHY_DX8SL0OSC_LBDQSS 0x0 + /* + * Register : DX8SL2DXCTL2 @ 0XFD0814AC - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL0OSC_PHYHRST 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL0OSC_PHYFRST 0x1 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_CRDEN 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL0OSC_DLTST 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL2DXCTL2_POSOEX 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL0OSC_DLTMODE 0x0 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL2DXCTL2_PREOEX 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_12_11 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_17 0x0 - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL0OSC_OSCWDDL 0x3 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL2DXCTL2_IOAG 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_8_7 0x3 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL2DXCTL2_IOLB 0x0 - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL0OSC_OSCWDL 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13 0x0 - Oscillator Mode Division - PSU_DDR_PHY_DX8SL0OSC_OSCDIV 0xf + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH 0xc - Oscillator Enable - PSU_DDR_PHY_DX8SL0OSC_OSCEN 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_RDBI 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081400, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL0OSC_LBMODE_MASK | DDR_PHY_DX8SL0OSC_LBGSDQS_MASK | DDR_PHY_DX8SL0OSC_LBGDQS_MASK | DDR_PHY_DX8SL0OSC_LBDQSS_MASK | DDR_PHY_DX8SL0OSC_PHYHRST_MASK | DDR_PHY_DX8SL0OSC_PHYFRST_MASK | DDR_PHY_DX8SL0OSC_DLTST_MASK | DDR_PHY_DX8SL0OSC_DLTMODE_MASK | DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL0OSC_OSCWDDL_MASK | DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL0OSC_OSCWDL_MASK | DDR_PHY_DX8SL0OSC_OSCDIV_MASK | DDR_PHY_DX8SL0OSC_OSCEN_MASK | 0 ); + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_WDBI 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL2DXCTL2_PRFBYP 0x0 - /*Register : DX8SL0DQSCTL @ 0XFD08141C

+ * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL2DXCTL2_RDMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25 0x0 + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL2DXCTL2_DISRST 0x0 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL0DQSCTL_RRRMODE 0x1 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL2DXCTL2_DQSGLB 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_0 0x0 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL0DQSCTL_WRRMODE 0x1 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD0814AC, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - DQS Gate Extension - PSU_DDR_PHY_DX8SL0DQSCTL_DQSGX 0x0 + /* + * Register : DX8SL2IOCR @ 0XFD0814B0 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL0DQSCTL_LPPLLPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2IOCR_RESERVED_31 0x0 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL0DQSCTL_LPIOPD 0x1 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL2IOCR_DXDACRANGE 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL2IOCR_DXVREFIOM 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL0DQSCTL_QSCNTEN 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXIOM 0x2 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL0DQSCTL_UDQIOM 0x0 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXRXM 0x0 - Data Slew Rate - PSU_DDR_PHY_DX8SL0DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL0DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL0DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08141C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL0DQSCTL_DXSR_MASK | DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK | 0 ); + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD0814B0, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL0DXCTL2 @ 0XFD08142C

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL0DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL0DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL0DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL0DXCTL2_IOAG 0x0 + /* + * Register : DX8SL3OSC @ 0XFD0814C0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL0DXCTL2_IOLB 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13 0x0 + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXRDCLK 0x2 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH 0xc + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXDDRCLK 0x2 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL0DXCTL2_RDBI 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXCTLCLK 0x2 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL0DXCTL2_WDBI 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL3OSC_CLKLEVEL 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL0DXCTL2_PRFBYP 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL3OSC_LBMODE 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL0DXCTL2_RDMODE 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL3OSC_LBGSDQS 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL0DXCTL2_DISRST 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL3OSC_LBGDQS 0x0 - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL0DXCTL2_DQSGLB 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL3OSC_LBDQSS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_0 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL3OSC_PHYHRST 0x1 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08142C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL0DXCTL2_IOAG_MASK | DDR_PHY_DX8SL0DXCTL2_IOLB_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL0DXCTL2_RDBI_MASK | DDR_PHY_DX8SL0DXCTL2_WDBI_MASK | DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL0DXCTL2_DISRST_MASK | DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK | 0 ); + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL3OSC_PHYFRST 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL3OSC_DLTST 0x0 - /*Register : DX8SL0IOCR @ 0XFD081430

+ * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL3OSC_DLTMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0IOCR_RESERVED_31 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_12_11 0x3 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL0IOCR_DXDACRANGE 0x7 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL3OSC_OSCWDDL 0x3 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL0IOCR_DXVREFIOM 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_8_7 0x3 - DX IO Mode - PSU_DDR_PHY_DX8SL0IOCR_DXIOM 0x2 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL3OSC_OSCWDL 0x3 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL0IOCR_DXTXM 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL3OSC_OSCDIV 0xf - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL0IOCR_DXRXM 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL3OSC_OSCEN 0x0 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081430, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL0IOCR_DXIOM_MASK | DDR_PHY_DX8SL0IOCR_DXTXM_MASK | DDR_PHY_DX8SL0IOCR_DXRXM_MASK | 0 ); + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD0814C0, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + /* + * Register : DX8SL3PLLCR0 @ 0XFD0814C4 - /*Register : DX8SL1OSC @ 0XFD081440

+ * PLL Bypass + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_31_30 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLRST 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXRDCLK 0x2 + * PLL Power Down + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLPD 0x0 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXDDRCLK 0x2 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL3PLLCR0_RSTOPM 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXCTLCLK 0x2 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL3PLLCR0_FRQSEL 0x1 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL1OSC_CLKLEVEL 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL3PLLCR0_RLOCKM 0x0 - Loopback Mode - PSU_DDR_PHY_DX8SL1OSC_LBMODE 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL3PLLCR0_CPPC 0x8 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL1OSC_LBGSDQS 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL3PLLCR0_CPIC 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL1OSC_LBGDQS 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL3PLLCR0_GSHIFT 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL1OSC_LBDQSS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL1OSC_PHYHRST 0x1 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL3PLLCR0_ATOEN 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL1OSC_PHYFRST 0x1 + * Analog Test Control + * PSU_DDR_PHY_DX8SL3PLLCR0_ATC 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL1OSC_DLTST 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL3PLLCR0_DTC 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL1OSC_DLTMODE 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD0814C4, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL1OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL1OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL1OSC_OSCDIV 0xf + /* + * Register : DX8SL3DQSCTL @ 0XFD0814DC - Oscillator Enable - PSU_DDR_PHY_DX8SL1OSC_OSCEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081440, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL1OSC_LBMODE_MASK | DDR_PHY_DX8SL1OSC_LBGSDQS_MASK | DDR_PHY_DX8SL1OSC_LBGDQS_MASK | DDR_PHY_DX8SL1OSC_LBDQSS_MASK | DDR_PHY_DX8SL1OSC_PHYHRST_MASK | DDR_PHY_DX8SL1OSC_PHYFRST_MASK | DDR_PHY_DX8SL1OSC_DLTST_MASK | DDR_PHY_DX8SL1OSC_DLTMODE_MASK | DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL1OSC_OSCWDDL_MASK | DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL1OSC_OSCWDL_MASK | DDR_PHY_DX8SL1OSC_OSCDIV_MASK | DDR_PHY_DX8SL1OSC_OSCEN_MASK | 0 ); + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_RRRMODE 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22 0x0 - /*Register : DX8SL1DQSCTL @ 0XFD08145C

+ * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_WRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25 0x0 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSGX 0x0 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL1DQSCTL_RRRMODE 0x1 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL3DQSCTL_LPPLLPD 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22 0x0 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL3DQSCTL_LPIOPD 0x1 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL1DQSCTL_WRRMODE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15 0x0 - DQS Gate Extension - PSU_DDR_PHY_DX8SL1DQSCTL_DQSGX 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL3DQSCTL_QSCNTEN 0x1 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL1DQSCTL_LPPLLPD 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_UDQIOM 0x0 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL1DQSCTL_LPIOPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL3DQSCTL_DXSR 0x3 - QS Counter Enable - PSU_DDR_PHY_DX8SL1DQSCTL_QSCNTEN 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSNRES 0x0 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL1DQSCTL_UDQIOM 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD0814DC, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Data Slew Rate - PSU_DDR_PHY_DX8SL1DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL1DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL1DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08145C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL1DQSCTL_DXSR_MASK | DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK | 0 ); + /* + * Register : DX8SL3DXCTL2 @ 0XFD0814EC - RegVal = ((0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL1DXCTL2 @ 0XFD08146C

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL1DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL1DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL1DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL1DXCTL2_IOAG 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24 0x0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL1DXCTL2_IOLB 0x0 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_CRDEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL3DXCTL2_POSOEX 0x0 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH 0xc + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL3DXCTL2_PREOEX 0x1 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL1DXCTL2_RDBI 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_17 0x0 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL1DXCTL2_WDBI 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL3DXCTL2_IOAG 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL1DXCTL2_PRFBYP 0x0 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL3DXCTL2_IOLB 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL1DXCTL2_RDMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL1DXCTL2_DISRST 0x0 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH 0xc - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL1DXCTL2_DQSGLB 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_RDBI 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_0 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_WDBI 0x0 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08146C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL1DXCTL2_IOAG_MASK | DDR_PHY_DX8SL1DXCTL2_IOLB_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL1DXCTL2_RDBI_MASK | DDR_PHY_DX8SL1DXCTL2_WDBI_MASK | DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL1DXCTL2_DISRST_MASK | DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK | 0 ); + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL3DXCTL2_PRFBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL3DXCTL2_RDMODE 0x0 - /*Register : DX8SL1IOCR @ 0XFD081470

+ * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL3DXCTL2_DISRST 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1IOCR_RESERVED_31 0x0 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL3DXCTL2_DQSGLB 0x0 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL1IOCR_DXDACRANGE 0x7 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_0 0x0 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL1IOCR_DXVREFIOM 0x0 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD0814EC, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - DX IO Mode - PSU_DDR_PHY_DX8SL1IOCR_DXIOM 0x2 + /* + * Register : DX8SL3IOCR @ 0XFD0814F0 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL1IOCR_DXTXM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3IOCR_RESERVED_31 0x0 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL1IOCR_DXRXM 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL3IOCR_DXDACRANGE 0x7 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081470, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL1IOCR_DXIOM_MASK | DDR_PHY_DX8SL1IOCR_DXTXM_MASK | DDR_PHY_DX8SL1IOCR_DXRXM_MASK | 0 ); + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL3IOCR_DXVREFIOM 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * DX IO Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXIOM 0x2 - /*Register : DX8SL2OSC @ 0XFD081480

+ * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_31_30 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXRXM 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXRDCLK 0x2 + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD0814F0, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXDDRCLK 0x2 + /* + * Register : DX8SL4OSC @ 0XFD081500 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXCTLCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_31_30 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL2OSC_CLKLEVEL 0x0 + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXRDCLK 0x2 - Loopback Mode - PSU_DDR_PHY_DX8SL2OSC_LBMODE 0x0 + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXDDRCLK 0x2 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL2OSC_LBGSDQS 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXCTLCLK 0x2 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL2OSC_LBGDQS 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL4OSC_CLKLEVEL 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL2OSC_LBDQSS 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL4OSC_LBMODE 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL2OSC_PHYHRST 0x1 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL4OSC_LBGSDQS 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL2OSC_PHYFRST 0x1 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL4OSC_LBGDQS 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL2OSC_DLTST 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL4OSC_LBDQSS 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL2OSC_DLTMODE 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL4OSC_PHYHRST 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL2OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL2OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL2OSC_OSCDIV 0xf + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL4OSC_PHYFRST 0x1 - Oscillator Enable - PSU_DDR_PHY_DX8SL2OSC_OSCEN 0x0 + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL4OSC_DLTST 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081480, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL2OSC_LBMODE_MASK | DDR_PHY_DX8SL2OSC_LBGSDQS_MASK | DDR_PHY_DX8SL2OSC_LBGDQS_MASK | DDR_PHY_DX8SL2OSC_LBDQSS_MASK | DDR_PHY_DX8SL2OSC_PHYHRST_MASK | DDR_PHY_DX8SL2OSC_PHYFRST_MASK | DDR_PHY_DX8SL2OSC_DLTST_MASK | DDR_PHY_DX8SL2OSC_DLTMODE_MASK | DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL2OSC_OSCWDDL_MASK | DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL2OSC_OSCWDL_MASK | DDR_PHY_DX8SL2OSC_OSCDIV_MASK | DDR_PHY_DX8SL2OSC_OSCEN_MASK | 0 ); + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL4OSC_DLTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_12_11 0x3 - /*Register : DX8SL2DQSCTL @ 0XFD08149C

+ * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL4OSC_OSCWDDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_8_7 0x3 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL2DQSCTL_RRRMODE 0x1 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL4OSC_OSCWDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL4OSC_OSCDIV 0xf - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL2DQSCTL_WRRMODE 0x1 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL4OSC_OSCEN 0x0 - DQS Gate Extension - PSU_DDR_PHY_DX8SL2DQSCTL_DQSGX 0x0 + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081500, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL2DQSCTL_LPPLLPD 0x1 + /* + * Register : DX8SL4PLLCR0 @ 0XFD081504 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL2DQSCTL_LPIOPD 0x1 + * PLL Bypass + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLRST 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL2DQSCTL_QSCNTEN 0x1 + * PLL Power Down + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLPD 0x0 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL2DQSCTL_UDQIOM 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL4PLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL4PLLCR0_FRQSEL 0x1 - Data Slew Rate - PSU_DDR_PHY_DX8SL2DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL2DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL2DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08149C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL2DQSCTL_DXSR_MASK | DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK | 0 ); + * Relock Mode + * PSU_DDR_PHY_DX8SL4PLLCR0_RLOCKM 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL2DXCTL2 @ 0XFD0814AC

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL2DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL2DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL2DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL2DXCTL2_IOAG 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL4PLLCR0_CPPC 0x8 - I/O Loopback Select - PSU_DDR_PHY_DX8SL2DXCTL2_IOLB 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL4PLLCR0_CPIC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL4PLLCR0_GSHIFT 0x0 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH 0xc + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9 0x0 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL2DXCTL2_RDBI 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL4PLLCR0_ATOEN 0x0 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL2DXCTL2_WDBI 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SL4PLLCR0_ATC 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL2DXCTL2_PRFBYP 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL4PLLCR0_DTC 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL2DXCTL2_RDMODE 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081504, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL2DXCTL2_DISRST 0x0 + /* + * Register : DX8SL4DQSCTL @ 0XFD08151C - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL2DXCTL2_DQSGLB 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_0 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_RRRMODE 0x1 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD0814AC, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL2DXCTL2_IOAG_MASK | DDR_PHY_DX8SL2DXCTL2_IOLB_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL2DXCTL2_RDBI_MASK | DDR_PHY_DX8SL2DXCTL2_WDBI_MASK | DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL2DXCTL2_DISRST_MASK | DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_WRRMODE 0x1 - /*Register : DX8SL2IOCR @ 0XFD0814B0

+ * DQS Gate Extension + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSGX 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2IOCR_RESERVED_31 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL4DQSCTL_LPPLLPD 0x1 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL2IOCR_DXDACRANGE 0x7 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL4DQSCTL_LPIOPD 0x1 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL2IOCR_DXVREFIOM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15 0x0 - DX IO Mode - PSU_DDR_PHY_DX8SL2IOCR_DXIOM 0x2 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL4DQSCTL_QSCNTEN 0x1 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL2IOCR_DXTXM 0x0 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_UDQIOM 0x0 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL2IOCR_DXRXM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10 0x0 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD0814B0, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL2IOCR_DXIOM_MASK | DDR_PHY_DX8SL2IOCR_DXTXM_MASK | DDR_PHY_DX8SL2IOCR_DXRXM_MASK | 0 ); + * Data Slew Rate + * PSU_DDR_PHY_DX8SL4DQSCTL_DXSR 0x3 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSNRES 0x0 - /*Register : DX8SL3OSC @ 0XFD0814C0

+ * DQS Resistor + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_31_30 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08151C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXRDCLK 0x2 + /* + * Register : DX8SL4DXCTL2 @ 0XFD08152C - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXDDRCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXCTLCLK 0x2 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_CRDEN 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL3OSC_CLKLEVEL 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL4DXCTL2_POSOEX 0x0 - Loopback Mode - PSU_DDR_PHY_DX8SL3OSC_LBMODE 0x0 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL4DXCTL2_PREOEX 0x1 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL3OSC_LBGSDQS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_17 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL3OSC_LBGDQS 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL4DXCTL2_IOAG 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL3OSC_LBDQSS 0x0 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL4DXCTL2_IOLB 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL3OSC_PHYHRST 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL3OSC_PHYFRST 0x1 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH 0xc - Delay Line Test Start - PSU_DDR_PHY_DX8SL3OSC_DLTST 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_RDBI 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL3OSC_DLTMODE 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_WDBI 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL3OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL3OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL3OSC_OSCDIV 0xf + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL4DXCTL2_PRFBYP 0x0 - Oscillator Enable - PSU_DDR_PHY_DX8SL3OSC_OSCEN 0x0 + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL4DXCTL2_RDMODE 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD0814C0, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL3OSC_LBMODE_MASK | DDR_PHY_DX8SL3OSC_LBGSDQS_MASK | DDR_PHY_DX8SL3OSC_LBGDQS_MASK | DDR_PHY_DX8SL3OSC_LBDQSS_MASK | DDR_PHY_DX8SL3OSC_PHYHRST_MASK | DDR_PHY_DX8SL3OSC_PHYFRST_MASK | DDR_PHY_DX8SL3OSC_DLTST_MASK | DDR_PHY_DX8SL3OSC_DLTMODE_MASK | DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL3OSC_OSCWDDL_MASK | DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL3OSC_OSCWDL_MASK | DDR_PHY_DX8SL3OSC_OSCDIV_MASK | DDR_PHY_DX8SL3OSC_OSCEN_MASK | 0 ); + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL4DXCTL2_DISRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL4DXCTL2_DQSGLB 0x0 - /*Register : DX8SL3DQSCTL @ 0XFD0814DC

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_0 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25 0x0 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08152C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL3DQSCTL_RRRMODE 0x1 + /* + * Register : DX8SL4IOCR @ 0XFD081530 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4IOCR_RESERVED_31 0x0 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL3DQSCTL_WRRMODE 0x1 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL4IOCR_DXDACRANGE 0x7 - DQS Gate Extension - PSU_DDR_PHY_DX8SL3DQSCTL_DQSGX 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL4IOCR_DXVREFIOM 0x0 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL3DQSCTL_LPPLLPD 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXIOM 0x2 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL3DQSCTL_LPIOPD 0x1 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXRXM 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL3DQSCTL_QSCNTEN 0x1 + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081530, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL3DQSCTL_UDQIOM 0x0 + /* + * Register : DX8SLbPLLCR0 @ 0XFD0817C4 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10 0x0 + * PLL Bypass + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLBYP 0x0 - Data Slew Rate - PSU_DDR_PHY_DX8SL3DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL3DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL3DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD0814DC, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL3DQSCTL_DXSR_MASK | DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK | 0 ); + * PLL Reset + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL3DXCTL2 @ 0XFD0814EC

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL3DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL3DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL3DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL3DXCTL2_IOAG 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLPD 0x0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL3DXCTL2_IOLB 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SLBPLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SLBPLLCR0_FRQSEL 0x1 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH 0xc + * Relock Mode + * PSU_DDR_PHY_DX8SLBPLLCR0_RLOCKM 0x0 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL3DXCTL2_RDBI 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SLBPLLCR0_CPPC 0x8 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL3DXCTL2_WDBI 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SLBPLLCR0_CPIC 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL3DXCTL2_PRFBYP 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SLBPLLCR0_GSHIFT 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL3DXCTL2_RDMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL3DXCTL2_DISRST 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SLBPLLCR0_ATOEN 0x0 - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL3DXCTL2_DQSGLB 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SLBPLLCR0_ATC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_0 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SLBPLLCR0_DTC 0x0 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD0814EC, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL3DXCTL2_IOAG_MASK | DDR_PHY_DX8SL3DXCTL2_IOLB_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL3DXCTL2_RDBI_MASK | DDR_PHY_DX8SL3DXCTL2_WDBI_MASK | DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL3DXCTL2_DISRST_MASK | DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK | 0 ); + * DAXT8 0-8 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD0817C4, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SLBPLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + /* + * Register : DX8SLbDQSCTL @ 0XFD0817DC - /*Register : DX8SL3IOCR @ 0XFD0814F0

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3IOCR_RESERVED_31 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_RRRMODE 0x1 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL3IOCR_DXDACRANGE 0x7 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22 0x0 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL3IOCR_DXVREFIOM 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_WRRMODE 0x1 - DX IO Mode - PSU_DDR_PHY_DX8SL3IOCR_DXIOM 0x2 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSGX 0x0 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL3IOCR_DXTXM 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SLBDQSCTL_LPPLLPD 0x1 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL3IOCR_DXRXM 0x0 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SLBDQSCTL_LPIOPD 0x1 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD0814F0, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL3IOCR_DXIOM_MASK | DDR_PHY_DX8SL3IOCR_DXTXM_MASK | DDR_PHY_DX8SL3IOCR_DXRXM_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * QS Counter Enable + * PSU_DDR_PHY_DX8SLBDQSCTL_QSCNTEN 0x1 - /*Register : DX8SL4OSC @ 0XFD081500

+ * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_UDQIOM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXRDCLK 0x2 + * Data Slew Rate + * PSU_DDR_PHY_DX8SLBDQSCTL_DXSR 0x3 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXDDRCLK 0x2 + * DQS# Resistor + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSNRES 0xc - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXCTLCLK 0x2 + * DQS Resistor + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSRES 0x4 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL4OSC_CLKLEVEL 0x0 + * DATX8 0-8 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD0817DC, 0xFFFFFFFFU ,0x012643C4U) + */ + PSU_Mask_Write(DDR_PHY_DX8SLBDQSCTL_OFFSET, + 0xFFFFFFFFU, 0x012643C4U); +/*##################################################################### */ - Loopback Mode - PSU_DDR_PHY_DX8SL4OSC_LBMODE 0x0 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL4OSC_LBGSDQS 0x0 - - Loopback DQS Gating - PSU_DDR_PHY_DX8SL4OSC_LBGDQS 0x0 - - Loopback DQS Shift - PSU_DDR_PHY_DX8SL4OSC_LBDQSS 0x0 - - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL4OSC_PHYHRST 0x1 - - PHY FIFO Reset - PSU_DDR_PHY_DX8SL4OSC_PHYFRST 0x1 - - Delay Line Test Start - PSU_DDR_PHY_DX8SL4OSC_DLTST 0x0 - - Delay Line Test Mode - PSU_DDR_PHY_DX8SL4OSC_DLTMODE 0x0 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL4OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL4OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL4OSC_OSCDIV 0xf - - Oscillator Enable - PSU_DDR_PHY_DX8SL4OSC_OSCEN 0x0 - - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081500, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL4OSC_LBMODE_MASK | DDR_PHY_DX8SL4OSC_LBGSDQS_MASK | DDR_PHY_DX8SL4OSC_LBGDQS_MASK | DDR_PHY_DX8SL4OSC_LBDQSS_MASK | DDR_PHY_DX8SL4OSC_PHYHRST_MASK | DDR_PHY_DX8SL4OSC_PHYFRST_MASK | DDR_PHY_DX8SL4OSC_DLTST_MASK | DDR_PHY_DX8SL4OSC_DLTMODE_MASK | DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL4OSC_OSCWDDL_MASK | DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL4OSC_OSCWDL_MASK | DDR_PHY_DX8SL4OSC_OSCDIV_MASK | DDR_PHY_DX8SL4OSC_OSCEN_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ - - /*Register : DX8SL4DQSCTL @ 0XFD08151C

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25 0x0 - - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL4DQSCTL_RRRMODE 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22 0x0 - - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL4DQSCTL_WRRMODE 0x1 - - DQS Gate Extension - PSU_DDR_PHY_DX8SL4DQSCTL_DQSGX 0x0 - - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL4DQSCTL_LPPLLPD 0x1 - - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL4DQSCTL_LPIOPD 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15 0x0 - - QS Counter Enable - PSU_DDR_PHY_DX8SL4DQSCTL_QSCNTEN 0x1 - - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL4DQSCTL_UDQIOM 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10 0x0 - - Data Slew Rate - PSU_DDR_PHY_DX8SL4DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL4DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL4DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08151C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL4DQSCTL_DXSR_MASK | DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL4DXCTL2 @ 0XFD08152C

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL4DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL4DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL4DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL4DXCTL2_IOAG 0x0 - - I/O Loopback Select - PSU_DDR_PHY_DX8SL4DXCTL2_IOLB 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13 0x0 - - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH 0xc - - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL4DXCTL2_RDBI 0x0 - - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL4DXCTL2_WDBI 0x0 - - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL4DXCTL2_PRFBYP 0x0 - - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL4DXCTL2_RDMODE 0x0 - - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL4DXCTL2_DISRST 0x0 - - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL4DXCTL2_DQSGLB 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_0 0x0 - - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08152C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL4DXCTL2_IOAG_MASK | DDR_PHY_DX8SL4DXCTL2_IOLB_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL4DXCTL2_RDBI_MASK | DDR_PHY_DX8SL4DXCTL2_WDBI_MASK | DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL4DXCTL2_DISRST_MASK | DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ - - /*Register : DX8SL4IOCR @ 0XFD081530

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4IOCR_RESERVED_31 0x0 - - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL4IOCR_DXDACRANGE 0x7 - - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL4IOCR_DXVREFIOM 0x0 - - DX IO Mode - PSU_DDR_PHY_DX8SL4IOCR_DXIOM 0x2 - - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL4IOCR_DXTXM 0x0 - - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL4IOCR_DXRXM 0x0 - - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081530, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL4IOCR_DXIOM_MASK | DDR_PHY_DX8SL4IOCR_DXTXM_MASK | DDR_PHY_DX8SL4IOCR_DXRXM_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ - - /*Register : DX8SLbDQSCTL @ 0XFD0817DC

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25 0x0 - - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SLBDQSCTL_RRRMODE 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22 0x0 - - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SLBDQSCTL_WRRMODE 0x1 - - DQS Gate Extension - PSU_DDR_PHY_DX8SLBDQSCTL_DQSGX 0x0 - - Low Power PLL Power Down - PSU_DDR_PHY_DX8SLBDQSCTL_LPPLLPD 0x1 - - Low Power I/O Power Down - PSU_DDR_PHY_DX8SLBDQSCTL_LPIOPD 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15 0x0 - - QS Counter Enable - PSU_DDR_PHY_DX8SLBDQSCTL_QSCNTEN 0x1 - - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SLBDQSCTL_UDQIOM 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10 0x0 - - Data Slew Rate - PSU_DDR_PHY_DX8SLBDQSCTL_DXSR 0x3 - - DQS# Resistor - PSU_DDR_PHY_DX8SLBDQSCTL_DQSNRES 0xc - - DQS Resistor - PSU_DDR_PHY_DX8SLBDQSCTL_DQSRES 0x4 - - DATX8 0-8 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD0817DC, 0xFFFFFFFFU ,0x012643C4U) - RegMask = (DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK | DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK | DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SLBDQSCTL_DXSR_MASK | DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK | DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT - | 0x0000000CU << DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT - | 0x00000004U << DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SLBDQSCTL_OFFSET ,0xFFFFFFFFU ,0x012643C4U); - /*############################################################################################################################ */ - - /*Register : PIR @ 0XFD080004

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_31 0x0 - - Impedance Calibration Bypass - PSU_DDR_PHY_PIR_ZCALBYP 0x0 - - Digital Delay Line (DDL) Calibration Pause - PSU_DDR_PHY_PIR_DCALPSE 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_28_21 0x0 - - Write DQS2DQ Training - PSU_DDR_PHY_PIR_DQS2DQ 0x0 - - RDIMM Initialization - PSU_DDR_PHY_PIR_RDIMMINIT 0x0 - - Controller DRAM Initialization - PSU_DDR_PHY_PIR_CTLDINIT 0x1 - - VREF Training - PSU_DDR_PHY_PIR_VREF 0x0 - - Static Read Training - PSU_DDR_PHY_PIR_SRD 0x0 - - Write Data Eye Training - PSU_DDR_PHY_PIR_WREYE 0x0 - - Read Data Eye Training - PSU_DDR_PHY_PIR_RDEYE 0x0 - - Write Data Bit Deskew - PSU_DDR_PHY_PIR_WRDSKW 0x0 - - Read Data Bit Deskew - PSU_DDR_PHY_PIR_RDDSKW 0x0 - - Write Leveling Adjust - PSU_DDR_PHY_PIR_WLADJ 0x0 - - Read DQS Gate Training - PSU_DDR_PHY_PIR_QSGATE 0x0 - - Write Leveling - PSU_DDR_PHY_PIR_WL 0x0 - - DRAM Initialization - PSU_DDR_PHY_PIR_DRAMINIT 0x0 - - DRAM Reset (DDR3/DDR4/LPDDR4 Only) - PSU_DDR_PHY_PIR_DRAMRST 0x0 - - PHY Reset - PSU_DDR_PHY_PIR_PHYRST 0x1 - - Digital Delay Line (DDL) Calibration - PSU_DDR_PHY_PIR_DCAL 0x1 - - PLL Initialiazation - PSU_DDR_PHY_PIR_PLLINIT 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_3 0x0 - - CA Training - PSU_DDR_PHY_PIR_CA 0x0 - - Impedance Calibration - PSU_DDR_PHY_PIR_ZCAL 0x1 - - Initialization Trigger - PSU_DDR_PHY_PIR_INIT 0x1 - - PHY Initialization Register - (OFFSET, MASK, VALUE) (0XFD080004, 0xFFFFFFFFU ,0x00040073U) - RegMask = (DDR_PHY_PIR_RESERVED_31_MASK | DDR_PHY_PIR_ZCALBYP_MASK | DDR_PHY_PIR_DCALPSE_MASK | DDR_PHY_PIR_RESERVED_28_21_MASK | DDR_PHY_PIR_DQS2DQ_MASK | DDR_PHY_PIR_RDIMMINIT_MASK | DDR_PHY_PIR_CTLDINIT_MASK | DDR_PHY_PIR_VREF_MASK | DDR_PHY_PIR_SRD_MASK | DDR_PHY_PIR_WREYE_MASK | DDR_PHY_PIR_RDEYE_MASK | DDR_PHY_PIR_WRDSKW_MASK | DDR_PHY_PIR_RDDSKW_MASK | DDR_PHY_PIR_WLADJ_MASK | DDR_PHY_PIR_QSGATE_MASK | DDR_PHY_PIR_WL_MASK | DDR_PHY_PIR_DRAMINIT_MASK | DDR_PHY_PIR_DRAMRST_MASK | DDR_PHY_PIR_PHYRST_MASK | DDR_PHY_PIR_DCAL_MASK | DDR_PHY_PIR_PLLINIT_MASK | DDR_PHY_PIR_RESERVED_3_MASK | DDR_PHY_PIR_CA_MASK | DDR_PHY_PIR_ZCAL_MASK | DDR_PHY_PIR_INIT_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_PIR_RESERVED_31_SHIFT - | 0x00000000U << DDR_PHY_PIR_ZCALBYP_SHIFT - | 0x00000000U << DDR_PHY_PIR_DCALPSE_SHIFT - | 0x00000000U << DDR_PHY_PIR_RESERVED_28_21_SHIFT - | 0x00000000U << DDR_PHY_PIR_DQS2DQ_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDIMMINIT_SHIFT - | 0x00000001U << DDR_PHY_PIR_CTLDINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_VREF_SHIFT - | 0x00000000U << DDR_PHY_PIR_SRD_SHIFT - | 0x00000000U << DDR_PHY_PIR_WREYE_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDEYE_SHIFT - | 0x00000000U << DDR_PHY_PIR_WRDSKW_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDDSKW_SHIFT - | 0x00000000U << DDR_PHY_PIR_WLADJ_SHIFT - | 0x00000000U << DDR_PHY_PIR_QSGATE_SHIFT - | 0x00000000U << DDR_PHY_PIR_WL_SHIFT - | 0x00000000U << DDR_PHY_PIR_DRAMINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_DRAMRST_SHIFT - | 0x00000001U << DDR_PHY_PIR_PHYRST_SHIFT - | 0x00000001U << DDR_PHY_PIR_DCAL_SHIFT - | 0x00000001U << DDR_PHY_PIR_PLLINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_RESERVED_3_SHIFT - | 0x00000000U << DDR_PHY_PIR_CA_SHIFT - | 0x00000001U << DDR_PHY_PIR_ZCAL_SHIFT - | 0x00000001U << DDR_PHY_PIR_INIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PIR_OFFSET ,0xFFFFFFFFU ,0x00040073U); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_mio_init_data() { - // : MIO PROGRAMMING - /*Register : MIO_PIN_0 @ 0XFF180000

+unsigned long psu_ddr_qos_init_data(void) +{ - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) - PSU_IOU_SLCR_MIO_PIN_0_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_0_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[0]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[0]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_0_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_0_L3_SEL 0 - - Configures MIO Pin 0 peripheral interface mapping. S - (OFFSET, MASK, VALUE) (0XFF180000, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_0_L0_SEL_MASK | IOU_SLCR_MIO_PIN_0_L1_SEL_MASK | IOU_SLCR_MIO_PIN_0_L2_SEL_MASK | IOU_SLCR_MIO_PIN_0_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_0_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_1 @ 0XFF180004

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Data - us) - PSU_IOU_SLCR_MIO_PIN_1_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_1_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[1]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[1]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_1_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal) - PSU_IOU_SLCR_MIO_PIN_1_L3_SEL 0 - - Configures MIO Pin 1 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180004, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_1_L0_SEL_MASK | IOU_SLCR_MIO_PIN_1_L1_SEL_MASK | IOU_SLCR_MIO_PIN_1_L2_SEL_MASK | IOU_SLCR_MIO_PIN_1_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_1_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_2 @ 0XFF180008

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) - PSU_IOU_SLCR_MIO_PIN_2_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_2_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[2]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[2]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_2_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, Input, ttc2_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_2_L3_SEL 0 - - Configures MIO Pin 2 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180008, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_2_L0_SEL_MASK | IOU_SLCR_MIO_PIN_2_L1_SEL_MASK | IOU_SLCR_MIO_PIN_2_L2_SEL_MASK | IOU_SLCR_MIO_PIN_2_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_2_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_3 @ 0XFF18000C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) - PSU_IOU_SLCR_MIO_PIN_3_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_3_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[3]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[3]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_3_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_3_L3_SEL 0 - - Configures MIO Pin 3 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18000C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_3_L0_SEL_MASK | IOU_SLCR_MIO_PIN_3_L1_SEL_MASK | IOU_SLCR_MIO_PIN_3_L2_SEL_MASK | IOU_SLCR_MIO_PIN_3_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_3_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_4 @ 0XFF180010

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Data - us) - PSU_IOU_SLCR_MIO_PIN_4_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_4_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[4]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[4]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_4_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_4_L3_SEL 0 - - Configures MIO Pin 4 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180010, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_4_L0_SEL_MASK | IOU_SLCR_MIO_PIN_4_L1_SEL_MASK | IOU_SLCR_MIO_PIN_4_L2_SEL_MASK | IOU_SLCR_MIO_PIN_4_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_4_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_5 @ 0XFF180014

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- (QSPI Slave Select) - PSU_IOU_SLCR_MIO_PIN_5_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_5_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[5]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[5]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_5_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_5_L3_SEL 0 - - Configures MIO Pin 5 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180014, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_5_L0_SEL_MASK | IOU_SLCR_MIO_PIN_5_L1_SEL_MASK | IOU_SLCR_MIO_PIN_5_L2_SEL_MASK | IOU_SLCR_MIO_PIN_5_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_5_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_6 @ 0XFF180018

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) - PSU_IOU_SLCR_MIO_PIN_6_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_6_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[6]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[6]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_6_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1 - sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, - Output, tracedq[4]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_6_L3_SEL 0 - - Configures MIO Pin 6 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180018, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_6_L0_SEL_MASK | IOU_SLCR_MIO_PIN_6_L1_SEL_MASK | IOU_SLCR_MIO_PIN_6_L2_SEL_MASK | IOU_SLCR_MIO_PIN_6_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_6_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_7 @ 0XFF18001C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_upper- (QSPI Slave Select upper) - PSU_IOU_SLCR_MIO_PIN_7_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_7_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[7]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[7]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_7_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - tc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, - racedq[5]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_7_L3_SEL 0 - - Configures MIO Pin 7 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18001C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_7_L0_SEL_MASK | IOU_SLCR_MIO_PIN_7_L1_SEL_MASK | IOU_SLCR_MIO_PIN_7_L2_SEL_MASK | IOU_SLCR_MIO_PIN_7_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_7_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_8 @ 0XFF180020

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [0]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_8_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_8_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[8]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[8]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_8_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc - , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tr - ce Port Databus) - PSU_IOU_SLCR_MIO_PIN_8_L3_SEL 0 - - Configures MIO Pin 8 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180020, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_8_L0_SEL_MASK | IOU_SLCR_MIO_PIN_8_L1_SEL_MASK | IOU_SLCR_MIO_PIN_8_L2_SEL_MASK | IOU_SLCR_MIO_PIN_8_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_8_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_9 @ 0XFF180024

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [1]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_9_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_9_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[9]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[9]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_9_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - utput, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (U - RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_9_L3_SEL 0 - - Configures MIO Pin 9 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180024, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_9_L0_SEL_MASK | IOU_SLCR_MIO_PIN_9_L1_SEL_MASK | IOU_SLCR_MIO_PIN_9_L2_SEL_MASK | IOU_SLCR_MIO_PIN_9_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_9_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_10 @ 0XFF180028

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [2]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_10_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_10_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[10]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[10]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_10_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_10_L3_SEL 0 - - Configures MIO Pin 10 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180028, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_10_L0_SEL_MASK | IOU_SLCR_MIO_PIN_10_L1_SEL_MASK | IOU_SLCR_MIO_PIN_10_L2_SEL_MASK | IOU_SLCR_MIO_PIN_10_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_10_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_11 @ 0XFF18002C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [3]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_11_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_11_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[11]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[11]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_11_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_11_L3_SEL 0 - - Configures MIO Pin 11 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18002C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_11_L0_SEL_MASK | IOU_SLCR_MIO_PIN_11_L1_SEL_MASK | IOU_SLCR_MIO_PIN_11_L2_SEL_MASK | IOU_SLCR_MIO_PIN_11_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_11_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_12 @ 0XFF180030

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock) - PSU_IOU_SLCR_MIO_PIN_12_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - - PSU_IOU_SLCR_MIO_PIN_12_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[12]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[12]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_12_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cl - ck) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trac - dq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_12_L3_SEL 0 - - Configures MIO Pin 12 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180030, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_12_L0_SEL_MASK | IOU_SLCR_MIO_PIN_12_L1_SEL_MASK | IOU_SLCR_MIO_PIN_12_L2_SEL_MASK | IOU_SLCR_MIO_PIN_12_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_12_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_13 @ 0XFF180034

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_13_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_13_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, test_scan_out[13]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_13_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave - out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Dat - bus) - PSU_IOU_SLCR_MIO_PIN_13_L3_SEL 0 - - Configures MIO Pin 13 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180034, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_13_L0_SEL_MASK | IOU_SLCR_MIO_PIN_13_L1_SEL_MASK | IOU_SLCR_MIO_PIN_13_L2_SEL_MASK | IOU_SLCR_MIO_PIN_13_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_13_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_14 @ 0XFF180038

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_14_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND Command Latch Enable) - PSU_IOU_SLCR_MIO_PIN_14_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, test_scan_out[14]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_14_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_ - n- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_14_L3_SEL 2 - - Configures MIO Pin 14 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180038, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_14_L0_SEL_MASK | IOU_SLCR_MIO_PIN_14_L1_SEL_MASK | IOU_SLCR_MIO_PIN_14_L2_SEL_MASK | IOU_SLCR_MIO_PIN_14_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_14_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_15 @ 0XFF18003C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_15_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND Address Latch Enable) - PSU_IOU_SLCR_MIO_PIN_15_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, test_scan_out[15]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_15_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out - 0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seri - l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_15_L3_SEL 2 - - Configures MIO Pin 15 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18003C, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_15_L0_SEL_MASK | IOU_SLCR_MIO_PIN_15_L1_SEL_MASK | IOU_SLCR_MIO_PIN_15_L2_SEL_MASK | IOU_SLCR_MIO_PIN_15_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_15_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_16 @ 0XFF180040

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_16_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_16_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, test_scan_out[16]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_16_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_16_L3_SEL 2 - - Configures MIO Pin 16 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180040, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_16_L0_SEL_MASK | IOU_SLCR_MIO_PIN_16_L1_SEL_MASK | IOU_SLCR_MIO_PIN_16_L2_SEL_MASK | IOU_SLCR_MIO_PIN_16_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_16_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_17 @ 0XFF180044

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_17_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_17_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, test_scan_out[17]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_17_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_17_L3_SEL 2 - - Configures MIO Pin 17 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180044, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_17_L0_SEL_MASK | IOU_SLCR_MIO_PIN_17_L1_SEL_MASK | IOU_SLCR_MIO_PIN_17_L2_SEL_MASK | IOU_SLCR_MIO_PIN_17_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_17_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_18 @ 0XFF180048

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_18_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_18_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, test_scan_out[18]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_18_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_18_L3_SEL 6 - - Configures MIO Pin 18 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180048, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_18_L0_SEL_MASK | IOU_SLCR_MIO_PIN_18_L1_SEL_MASK | IOU_SLCR_MIO_PIN_18_L2_SEL_MASK | IOU_SLCR_MIO_PIN_18_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_18_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_19 @ 0XFF18004C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_19_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_19_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, test_scan_out[19]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_19_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_19_L3_SEL 6 - - Configures MIO Pin 19 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18004C, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_19_L0_SEL_MASK | IOU_SLCR_MIO_PIN_19_L1_SEL_MASK | IOU_SLCR_MIO_PIN_19_L2_SEL_MASK | IOU_SLCR_MIO_PIN_19_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_19_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_20 @ 0XFF180050

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_20_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_20_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, test_scan_out[20]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_20_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= t - c1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_20_L3_SEL 6 - - Configures MIO Pin 20 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180050, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_20_L0_SEL_MASK | IOU_SLCR_MIO_PIN_20_L1_SEL_MASK | IOU_SLCR_MIO_PIN_20_L2_SEL_MASK | IOU_SLCR_MIO_PIN_20_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_20_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_21 @ 0XFF180054

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_21_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_21_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= test_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, test_scan_out[21]- (Test Scan Port) - = csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_21_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- - UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_21_L3_SEL 6 - - Configures MIO Pin 21 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180054, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_21_L0_SEL_MASK | IOU_SLCR_MIO_PIN_21_L1_SEL_MASK | IOU_SLCR_MIO_PIN_21_L2_SEL_MASK | IOU_SLCR_MIO_PIN_21_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_21_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_22 @ 0XFF180058

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_22_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAND Write Enable) - PSU_IOU_SLCR_MIO_PIN_22_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- - (Test Scan Port) = test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_22_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed - PSU_IOU_SLCR_MIO_PIN_22_L3_SEL 0 - - Configures MIO Pin 22 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180058, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_22_L0_SEL_MASK | IOU_SLCR_MIO_PIN_22_L1_SEL_MASK | IOU_SLCR_MIO_PIN_22_L2_SEL_MASK | IOU_SLCR_MIO_PIN_22_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_22_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_23 @ 0XFF18005C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_23_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_23_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= test_scan, Input, test_scan_in - 23]- (Test Scan Port) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper - - PSU_IOU_SLCR_MIO_PIN_23_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_23_L3_SEL 0 - - Configures MIO Pin 23 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18005C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_23_L0_SEL_MASK | IOU_SLCR_MIO_PIN_23_L1_SEL_MASK | IOU_SLCR_MIO_PIN_23_L2_SEL_MASK | IOU_SLCR_MIO_PIN_23_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_23_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_24 @ 0XFF180060

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_24_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_24_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= test_scan, Input, test - scan_in[24]- (Test Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ex - Tamper) - PSU_IOU_SLCR_MIO_PIN_24_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, - Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_24_L3_SEL 1 - - Configures MIO Pin 24 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180060, 0x000000FEU ,0x00000020U) - RegMask = (IOU_SLCR_MIO_PIN_24_L0_SEL_MASK | IOU_SLCR_MIO_PIN_24_L1_SEL_MASK | IOU_SLCR_MIO_PIN_24_L2_SEL_MASK | IOU_SLCR_MIO_PIN_24_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_24_OFFSET ,0x000000FEU ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_25 @ 0XFF180064

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_25_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAND Read Enable) - PSU_IOU_SLCR_MIO_PIN_25_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= test_scan, Input, - test_scan_in[25]- (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (C - U Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_25_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_out- (TTC Waveform - lock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_25_L3_SEL 1 - - Configures MIO Pin 25 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180064, 0x000000FEU ,0x00000020U) - RegMask = (IOU_SLCR_MIO_PIN_25_L0_SEL_MASK | IOU_SLCR_MIO_PIN_25_L1_SEL_MASK | IOU_SLCR_MIO_PIN_25_L2_SEL_MASK | IOU_SLCR_MIO_PIN_25_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_25_OFFSET ,0x000000FEU ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_26 @ 0XFF180068

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_26_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_26_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[26]- (Test Sc - n Port) = test_scan, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_26_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_26_L3_SEL 0 - - Configures MIO Pin 26 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180068, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_26_L0_SEL_MASK | IOU_SLCR_MIO_PIN_26_L1_SEL_MASK | IOU_SLCR_MIO_PIN_26_L2_SEL_MASK | IOU_SLCR_MIO_PIN_26_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_26_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_27 @ 0XFF18006C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_27_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_27_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[27]- (Test Sc - n Port) = test_scan, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_27_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus) - PSU_IOU_SLCR_MIO_PIN_27_L3_SEL 0 - - Configures MIO Pin 27 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18006C, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_27_L0_SEL_MASK | IOU_SLCR_MIO_PIN_27_L1_SEL_MASK | IOU_SLCR_MIO_PIN_27_L2_SEL_MASK | IOU_SLCR_MIO_PIN_27_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_27_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_28 @ 0XFF180070

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_28_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_28_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[28]- (Test Sc - n Port) = test_scan, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_28_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_28_L3_SEL 0 - - Configures MIO Pin 28 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180070, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_28_L0_SEL_MASK | IOU_SLCR_MIO_PIN_28_L1_SEL_MASK | IOU_SLCR_MIO_PIN_28_L2_SEL_MASK | IOU_SLCR_MIO_PIN_28_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_28_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_29 @ 0XFF180074

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_29_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_29_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[29]- (Test Sc - n Port) = test_scan, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_29_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_29_L3_SEL 0 - - Configures MIO Pin 29 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180074, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_29_L0_SEL_MASK | IOU_SLCR_MIO_PIN_29_L1_SEL_MASK | IOU_SLCR_MIO_PIN_29_L2_SEL_MASK | IOU_SLCR_MIO_PIN_29_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_29_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_30 @ 0XFF180078

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_30_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_30_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[30]- (Test Sc - n Port) = test_scan, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_30_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_so - (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output - tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_30_L3_SEL 0 - - Configures MIO Pin 30 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180078, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_30_L0_SEL_MASK | IOU_SLCR_MIO_PIN_30_L1_SEL_MASK | IOU_SLCR_MIO_PIN_30_L2_SEL_MASK | IOU_SLCR_MIO_PIN_30_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_30_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_31 @ 0XFF18007C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_31_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_31_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[31]- (Test Sc - n Port) = test_scan, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_31_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi - _si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial out - ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_31_L3_SEL 0 - - Configures MIO Pin 31 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18007C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_31_L0_SEL_MASK | IOU_SLCR_MIO_PIN_31_L1_SEL_MASK | IOU_SLCR_MIO_PIN_31_L2_SEL_MASK | IOU_SLCR_MIO_PIN_31_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_31_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_32 @ 0XFF180080

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_32_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - - PSU_IOU_SLCR_MIO_PIN_32_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[32]- (Test S - an Port) = test_scan, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_32_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi - _sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= - race, Output, tracedq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_32_L3_SEL 0 - - Configures MIO Pin 32 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180080, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_32_L0_SEL_MASK | IOU_SLCR_MIO_PIN_32_L1_SEL_MASK | IOU_SLCR_MIO_PIN_32_L2_SEL_MASK | IOU_SLCR_MIO_PIN_32_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_32_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_33 @ 0XFF180084

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_33_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_33_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[33]- (Test S - an Port) = test_scan, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_33_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= t - c3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, traced - [11]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_33_L3_SEL 0 - - Configures MIO Pin 33 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180084, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_33_L0_SEL_MASK | IOU_SLCR_MIO_PIN_33_L1_SEL_MASK | IOU_SLCR_MIO_PIN_33_L2_SEL_MASK | IOU_SLCR_MIO_PIN_33_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_33_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_34 @ 0XFF180088

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_34_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_34_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[34]- (Test S - an Port) = test_scan, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_34_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc2 - Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace P - rt Databus) - PSU_IOU_SLCR_MIO_PIN_34_L3_SEL 0 - - Configures MIO Pin 34 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180088, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_34_L0_SEL_MASK | IOU_SLCR_MIO_PIN_34_L1_SEL_MASK | IOU_SLCR_MIO_PIN_34_L2_SEL_MASK | IOU_SLCR_MIO_PIN_34_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_34_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_35 @ 0XFF18008C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_35_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_35_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[35]- (Test S - an Port) = test_scan, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_35_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- - UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_35_L3_SEL 0 - - Configures MIO Pin 35 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18008C, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_35_L0_SEL_MASK | IOU_SLCR_MIO_PIN_35_L1_SEL_MASK | IOU_SLCR_MIO_PIN_35_L2_SEL_MASK | IOU_SLCR_MIO_PIN_35_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_35_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_36 @ 0XFF180090

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_36_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_36_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[36]- (Test S - an Port) = test_scan, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_36_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_36_L3_SEL 0 - - Configures MIO Pin 36 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180090, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_36_L0_SEL_MASK | IOU_SLCR_MIO_PIN_36_L1_SEL_MASK | IOU_SLCR_MIO_PIN_36_L2_SEL_MASK | IOU_SLCR_MIO_PIN_36_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_36_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_37 @ 0XFF180094

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_37_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_37_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[37]- (Test S - an Port) = test_scan, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_37_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_37_L3_SEL 0 - - Configures MIO Pin 37 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180094, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_37_L0_SEL_MASK | IOU_SLCR_MIO_PIN_37_L1_SEL_MASK | IOU_SLCR_MIO_PIN_37_L2_SEL_MASK | IOU_SLCR_MIO_PIN_37_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_37_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_38 @ 0XFF180098

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_38_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_38_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_38_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clo - k) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- - (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_38_L3_SEL 0 - - Configures MIO Pin 38 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180098, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_38_L0_SEL_MASK | IOU_SLCR_MIO_PIN_38_L1_SEL_MASK | IOU_SLCR_MIO_PIN_38_L2_SEL_MASK | IOU_SLCR_MIO_PIN_38_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_38_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_39 @ 0XFF18009C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_39_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_39_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= sd1, Input, sd1_data_i - [4]- (8-bit Data bus) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, Output, ttc0_wav - _out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port - Control Signal) - PSU_IOU_SLCR_MIO_PIN_39_L3_SEL 0 - - Configures MIO Pin 39 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_39_L0_SEL_MASK | IOU_SLCR_MIO_PIN_39_L1_SEL_MASK | IOU_SLCR_MIO_PIN_39_L2_SEL_MASK | IOU_SLCR_MIO_PIN_39_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_39_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_40 @ 0XFF1800A0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_40_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_40_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= sd1, Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[5]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3, Input, ttc3_clk - in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_40_L3_SEL 0 - - Configures MIO Pin 40 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_40_L0_SEL_MASK | IOU_SLCR_MIO_PIN_40_L1_SEL_MASK | IOU_SLCR_MIO_PIN_40_L2_SEL_MASK | IOU_SLCR_MIO_PIN_40_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_40_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_41 @ 0XFF1800A4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_41_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_41_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_out[6]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[ - ]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in - ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_41_L3_SEL 0 - - Configures MIO Pin 41 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_41_L0_SEL_MASK | IOU_SLCR_MIO_PIN_41_L1_SEL_MASK | IOU_SLCR_MIO_PIN_41_L2_SEL_MASK | IOU_SLCR_MIO_PIN_41_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_41_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_42 @ 0XFF1800A8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_42_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_42_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_out[7]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_42_L3_SEL 0 - - Configures MIO Pin 42 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_42_L0_SEL_MASK | IOU_SLCR_MIO_PIN_42_L1_SEL_MASK | IOU_SLCR_MIO_PIN_42_L2_SEL_MASK | IOU_SLCR_MIO_PIN_42_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_42_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_43 @ 0XFF1800AC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_43_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_43_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, s - i0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_43_L3_SEL 0 - - Configures MIO Pin 43 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_43_L0_SEL_MASK | IOU_SLCR_MIO_PIN_43_L1_SEL_MASK | IOU_SLCR_MIO_PIN_43_L2_SEL_MASK | IOU_SLCR_MIO_PIN_43_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_43_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_44 @ 0XFF1800B0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_44_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_44_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_44_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, s - i1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - Not Used - PSU_IOU_SLCR_MIO_PIN_44_L3_SEL 0 - - Configures MIO Pin 44 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B0, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_44_L0_SEL_MASK | IOU_SLCR_MIO_PIN_44_L1_SEL_MASK | IOU_SLCR_MIO_PIN_44_L2_SEL_MASK | IOU_SLCR_MIO_PIN_44_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_44_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_45 @ 0XFF1800B4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_45_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L3_SEL 0 - - Configures MIO Pin 45 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B4, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_45_L0_SEL_MASK | IOU_SLCR_MIO_PIN_45_L1_SEL_MASK | IOU_SLCR_MIO_PIN_45_L2_SEL_MASK | IOU_SLCR_MIO_PIN_45_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_45_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_46 @ 0XFF1800B8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_46_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= tt - 0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L3_SEL 0 - - Configures MIO Pin 46 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B8, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_46_L0_SEL_MASK | IOU_SLCR_MIO_PIN_46_L1_SEL_MASK | IOU_SLCR_MIO_PIN_46_L2_SEL_MASK | IOU_SLCR_MIO_PIN_46_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_46_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_47 @ 0XFF1800BC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_47_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L3_SEL 0 - - Configures MIO Pin 47 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800BC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_47_L0_SEL_MASK | IOU_SLCR_MIO_PIN_47_L1_SEL_MASK | IOU_SLCR_MIO_PIN_47_L2_SEL_MASK | IOU_SLCR_MIO_PIN_47_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_47_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_48 @ 0XFF1800C0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_48_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_48_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_48_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not U - ed - PSU_IOU_SLCR_MIO_PIN_48_L3_SEL 0 - - Configures MIO Pin 48 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C0, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_48_L0_SEL_MASK | IOU_SLCR_MIO_PIN_48_L1_SEL_MASK | IOU_SLCR_MIO_PIN_48_L2_SEL_MASK | IOU_SLCR_MIO_PIN_48_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_48_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_49 @ 0XFF1800C4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_49_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8 - bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L3_SEL 0 - - Configures MIO Pin 49 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C4, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_49_L0_SEL_MASK | IOU_SLCR_MIO_PIN_49_L1_SEL_MASK | IOU_SLCR_MIO_PIN_49_L2_SEL_MASK | IOU_SLCR_MIO_PIN_49_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_49_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_50 @ 0XFF1800C8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) - PSU_IOU_SLCR_MIO_PIN_50_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Input, sd1_c - d_in- (Command Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= ttc2, Input, ttc2 - clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L3_SEL 0 - - Configures MIO Pin 50 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C8, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_50_L0_SEL_MASK | IOU_SLCR_MIO_PIN_50_L1_SEL_MASK | IOU_SLCR_MIO_PIN_50_L2_SEL_MASK | IOU_SLCR_MIO_PIN_50_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_50_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_51 @ 0XFF1800CC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) - PSU_IOU_SLCR_MIO_PIN_51_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdio1_clk_out- (SDSDIO clock) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Data) 4= mdio1, Outp - t, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter - serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L3_SEL 0 - - Configures MIO Pin 51 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800CC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_51_L0_SEL_MASK | IOU_SLCR_MIO_PIN_51_L1_SEL_MASK | IOU_SLCR_MIO_PIN_51_L2_SEL_MASK | IOU_SLCR_MIO_PIN_51_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_51_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_52 @ 0XFF1800D0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_52_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_in- (ULPI Clock) - PSU_IOU_SLCR_MIO_PIN_52_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_52_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_52_L3_SEL 0 - - Configures MIO Pin 52 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_52_L0_SEL_MASK | IOU_SLCR_MIO_PIN_52_L1_SEL_MASK | IOU_SLCR_MIO_PIN_52_L2_SEL_MASK | IOU_SLCR_MIO_PIN_52_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_52_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_53 @ 0XFF1800D4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_53_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control) - PSU_IOU_SLCR_MIO_PIN_53_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_53_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal) - PSU_IOU_SLCR_MIO_PIN_53_L3_SEL 0 - - Configures MIO Pin 53 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_53_L0_SEL_MASK | IOU_SLCR_MIO_PIN_53_L1_SEL_MASK | IOU_SLCR_MIO_PIN_53_L2_SEL_MASK | IOU_SLCR_MIO_PIN_53_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_53_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_54 @ 0XFF1800D8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_54_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[2]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_54_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_54_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_54_L3_SEL 0 - - Configures MIO Pin 54 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_54_L0_SEL_MASK | IOU_SLCR_MIO_PIN_54_L1_SEL_MASK | IOU_SLCR_MIO_PIN_54_L2_SEL_MASK | IOU_SLCR_MIO_PIN_54_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_54_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_55 @ 0XFF1800DC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_55_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY) - PSU_IOU_SLCR_MIO_PIN_55_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_55_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_55_L3_SEL 0 - - Configures MIO Pin 55 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800DC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_55_L0_SEL_MASK | IOU_SLCR_MIO_PIN_55_L1_SEL_MASK | IOU_SLCR_MIO_PIN_55_L2_SEL_MASK | IOU_SLCR_MIO_PIN_55_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_55_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_56 @ 0XFF1800E0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_56_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[0]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_56_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_56_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_56_L3_SEL 0 - - Configures MIO Pin 56 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_56_L0_SEL_MASK | IOU_SLCR_MIO_PIN_56_L1_SEL_MASK | IOU_SLCR_MIO_PIN_56_L2_SEL_MASK | IOU_SLCR_MIO_PIN_56_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_56_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_57 @ 0XFF1800E4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_57_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[1]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_57_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_57_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_57_L3_SEL 0 - - Configures MIO Pin 57 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_57_L0_SEL_MASK | IOU_SLCR_MIO_PIN_57_L1_SEL_MASK | IOU_SLCR_MIO_PIN_57_L2_SEL_MASK | IOU_SLCR_MIO_PIN_57_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_57_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_58 @ 0XFF1800E8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_58_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers) - PSU_IOU_SLCR_MIO_PIN_58_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_58_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_58_L3_SEL 0 - - Configures MIO Pin 58 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_58_L0_SEL_MASK | IOU_SLCR_MIO_PIN_58_L1_SEL_MASK | IOU_SLCR_MIO_PIN_58_L2_SEL_MASK | IOU_SLCR_MIO_PIN_58_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_58_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_59 @ 0XFF1800EC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_59_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[3]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_59_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_59_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus) - PSU_IOU_SLCR_MIO_PIN_59_L3_SEL 0 - - Configures MIO Pin 59 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800EC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_59_L0_SEL_MASK | IOU_SLCR_MIO_PIN_59_L1_SEL_MASK | IOU_SLCR_MIO_PIN_59_L2_SEL_MASK | IOU_SLCR_MIO_PIN_59_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_59_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_60 @ 0XFF1800F0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_60_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[4]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_60_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_60_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_60_L3_SEL 0 - - Configures MIO Pin 60 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_60_L0_SEL_MASK | IOU_SLCR_MIO_PIN_60_L1_SEL_MASK | IOU_SLCR_MIO_PIN_60_L2_SEL_MASK | IOU_SLCR_MIO_PIN_60_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_60_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_61 @ 0XFF1800F4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_61_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[5]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_61_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_61_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, spi1_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_61_L3_SEL 0 - - Configures MIO Pin 61 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_61_L0_SEL_MASK | IOU_SLCR_MIO_PIN_61_L1_SEL_MASK | IOU_SLCR_MIO_PIN_61_L2_SEL_MASK | IOU_SLCR_MIO_PIN_61_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_61_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_62 @ 0XFF1800F8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_62_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[6]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_62_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_62_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_62_L3_SEL 0 - - Configures MIO Pin 62 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_62_L0_SEL_MASK | IOU_SLCR_MIO_PIN_62_L1_SEL_MASK | IOU_SLCR_MIO_PIN_62_L2_SEL_MASK | IOU_SLCR_MIO_PIN_62_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_62_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_63 @ 0XFF1800FC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_63_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[7]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_63_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_63_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_63_L3_SEL 0 - - Configures MIO Pin 63 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800FC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_63_L0_SEL_MASK | IOU_SLCR_MIO_PIN_63_L1_SEL_MASK | IOU_SLCR_MIO_PIN_63_L2_SEL_MASK | IOU_SLCR_MIO_PIN_63_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_63_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_64 @ 0XFF180100

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_64_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_in- (ULPI Clock) - PSU_IOU_SLCR_MIO_PIN_64_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_64_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, s - i0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - trace, Output, tracedq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_64_L3_SEL 0 - - Configures MIO Pin 64 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180100, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_64_L0_SEL_MASK | IOU_SLCR_MIO_PIN_64_L1_SEL_MASK | IOU_SLCR_MIO_PIN_64_L2_SEL_MASK | IOU_SLCR_MIO_PIN_64_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_64_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_65 @ 0XFF180104

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_65_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) - PSU_IOU_SLCR_MIO_PIN_65_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_65_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= - ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trac - dq[11]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_65_L3_SEL 0 - - Configures MIO Pin 65 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180104, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_65_L0_SEL_MASK | IOU_SLCR_MIO_PIN_65_L1_SEL_MASK | IOU_SLCR_MIO_PIN_65_L2_SEL_MASK | IOU_SLCR_MIO_PIN_65_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_65_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_66 @ 0XFF180108

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_66_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[2]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_66_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_66_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= tt - 2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace - Port Databus) - PSU_IOU_SLCR_MIO_PIN_66_L3_SEL 0 - - Configures MIO Pin 66 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180108, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_66_L0_SEL_MASK | IOU_SLCR_MIO_PIN_66_L1_SEL_MASK | IOU_SLCR_MIO_PIN_66_L2_SEL_MASK | IOU_SLCR_MIO_PIN_66_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_66_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_67 @ 0XFF18010C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_67_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) - PSU_IOU_SLCR_MIO_PIN_67_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_67_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_67_L3_SEL 0 - - Configures MIO Pin 67 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18010C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_67_L0_SEL_MASK | IOU_SLCR_MIO_PIN_67_L1_SEL_MASK | IOU_SLCR_MIO_PIN_67_L2_SEL_MASK | IOU_SLCR_MIO_PIN_67_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_67_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_68 @ 0XFF180110

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_68_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[0]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_68_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_68_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_68_L3_SEL 0 - - Configures MIO Pin 68 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180110, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_68_L0_SEL_MASK | IOU_SLCR_MIO_PIN_68_L1_SEL_MASK | IOU_SLCR_MIO_PIN_68_L2_SEL_MASK | IOU_SLCR_MIO_PIN_68_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_68_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_69 @ 0XFF180114

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_69_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[1]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_69_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_69_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_69_L3_SEL 0 - - Configures MIO Pin 69 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180114, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_69_L0_SEL_MASK | IOU_SLCR_MIO_PIN_69_L1_SEL_MASK | IOU_SLCR_MIO_PIN_69_L2_SEL_MASK | IOU_SLCR_MIO_PIN_69_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_69_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_70 @ 0XFF180118

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_70_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) - PSU_IOU_SLCR_MIO_PIN_70_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_70_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed - PSU_IOU_SLCR_MIO_PIN_70_L3_SEL 0 - - Configures MIO Pin 70 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180118, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_70_L0_SEL_MASK | IOU_SLCR_MIO_PIN_70_L1_SEL_MASK | IOU_SLCR_MIO_PIN_70_L2_SEL_MASK | IOU_SLCR_MIO_PIN_70_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_70_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_71 @ 0XFF18011C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_71_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[3]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_71_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_71_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_71_L3_SEL 0 - - Configures MIO Pin 71 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18011C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_71_L0_SEL_MASK | IOU_SLCR_MIO_PIN_71_L1_SEL_MASK | IOU_SLCR_MIO_PIN_71_L2_SEL_MASK | IOU_SLCR_MIO_PIN_71_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_71_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_72 @ 0XFF180120

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_72_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[4]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_72_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_72_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= N - t Used 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_72_L3_SEL 0 - - Configures MIO Pin 72 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180120, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_72_L0_SEL_MASK | IOU_SLCR_MIO_PIN_72_L1_SEL_MASK | IOU_SLCR_MIO_PIN_72_L2_SEL_MASK | IOU_SLCR_MIO_PIN_72_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_72_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_73 @ 0XFF180124

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_73_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[5]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_73_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_73_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_73_L3_SEL 0 - - Configures MIO Pin 73 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180124, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_73_L0_SEL_MASK | IOU_SLCR_MIO_PIN_73_L1_SEL_MASK | IOU_SLCR_MIO_PIN_73_L2_SEL_MASK | IOU_SLCR_MIO_PIN_73_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_73_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_74 @ 0XFF180128

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_74_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[6]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_74_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_74_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_74_L3_SEL 0 - - Configures MIO Pin 74 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180128, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_74_L0_SEL_MASK | IOU_SLCR_MIO_PIN_74_L1_SEL_MASK | IOU_SLCR_MIO_PIN_74_L2_SEL_MASK | IOU_SLCR_MIO_PIN_74_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_74_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_75 @ 0XFF18012C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_75_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[7]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_75_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Comma - d Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_75_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_75_L3_SEL 0 - - Configures MIO Pin 75 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18012C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_75_L0_SEL_MASK | IOU_SLCR_MIO_PIN_75_L1_SEL_MASK | IOU_SLCR_MIO_PIN_75_L2_SEL_MASK | IOU_SLCR_MIO_PIN_75_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_75_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_76 @ 0XFF180130

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Output, sdio - _clk_out- (SDSDIO clock) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= mdio0, Output, gem0_mdc- (MDIO Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2_mdc- (MDIO Clock - 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L3_SEL 6 - - Configures MIO Pin 76 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180130, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_76_L0_SEL_MASK | IOU_SLCR_MIO_PIN_76_L1_SEL_MASK | IOU_SLCR_MIO_PIN_76_L2_SEL_MASK | IOU_SLCR_MIO_PIN_76_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_76_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_77 @ 0XFF180134

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= mdio0, Input, gem0_mdio_in- (MDIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, gem1_mdio_in- (MD - O Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_o - t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Output, gem3_mdio_out- (MDIO Data) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L3_SEL 6 - - Configures MIO Pin 77 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180134, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_77_L0_SEL_MASK | IOU_SLCR_MIO_PIN_77_L1_SEL_MASK | IOU_SLCR_MIO_PIN_77_L2_SEL_MASK | IOU_SLCR_MIO_PIN_77_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_77_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI0 @ 0XFF180204

- - Master Tri-state Enable for pin 0, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI 0 - - Master Tri-state Enable for pin 1, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI 0 - - Master Tri-state Enable for pin 2, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI 0 - - Master Tri-state Enable for pin 3, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI 0 - - Master Tri-state Enable for pin 4, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI 0 - - Master Tri-state Enable for pin 5, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI 0 - - Master Tri-state Enable for pin 6, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI 0 - - Master Tri-state Enable for pin 7, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI 0 - - Master Tri-state Enable for pin 8, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI 0 - - Master Tri-state Enable for pin 9, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI 0 - - Master Tri-state Enable for pin 10, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI 0 - - Master Tri-state Enable for pin 11, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI 0 - - Master Tri-state Enable for pin 12, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI 0 - - Master Tri-state Enable for pin 13, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI 0 - - Master Tri-state Enable for pin 14, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI 0 - - Master Tri-state Enable for pin 15, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI 0 - - Master Tri-state Enable for pin 16, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI 0 - - Master Tri-state Enable for pin 17, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI 0 - - Master Tri-state Enable for pin 18, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI 1 - - Master Tri-state Enable for pin 19, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI 0 - - Master Tri-state Enable for pin 20, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI 0 - - Master Tri-state Enable for pin 21, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI 1 - - Master Tri-state Enable for pin 22, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI 0 - - Master Tri-state Enable for pin 23, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI 0 - - Master Tri-state Enable for pin 24, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI 0 - - Master Tri-state Enable for pin 25, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI 1 - - Master Tri-state Enable for pin 26, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI 0 - - Master Tri-state Enable for pin 27, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI 0 - - Master Tri-state Enable for pin 28, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI 1 - - Master Tri-state Enable for pin 29, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI 0 - - Master Tri-state Enable for pin 30, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI 1 - - Master Tri-state Enable for pin 31, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI 0 - - MIO pin Tri-state Enables, 31:0 - (OFFSET, MASK, VALUE) (0XFF180204, 0xFFFFFFFFU ,0x52240000U) - RegMask = (IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI0_OFFSET ,0xFFFFFFFFU ,0x52240000U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI1 @ 0XFF180208

- - Master Tri-state Enable for pin 32, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI 0 - - Master Tri-state Enable for pin 33, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI 0 - - Master Tri-state Enable for pin 34, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI 0 - - Master Tri-state Enable for pin 35, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI 0 - - Master Tri-state Enable for pin 36, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI 0 - - Master Tri-state Enable for pin 37, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI 0 - - Master Tri-state Enable for pin 38, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI 0 - - Master Tri-state Enable for pin 39, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI 0 - - Master Tri-state Enable for pin 40, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI 0 - - Master Tri-state Enable for pin 41, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI 0 - - Master Tri-state Enable for pin 42, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI 0 - - Master Tri-state Enable for pin 43, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI 0 - - Master Tri-state Enable for pin 44, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI 1 - - Master Tri-state Enable for pin 45, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI 1 - - Master Tri-state Enable for pin 46, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI 0 - - Master Tri-state Enable for pin 47, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI 0 - - Master Tri-state Enable for pin 48, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI 0 - - Master Tri-state Enable for pin 49, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI 0 - - Master Tri-state Enable for pin 50, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI 0 - - Master Tri-state Enable for pin 51, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI 0 - - Master Tri-state Enable for pin 52, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI 1 - - Master Tri-state Enable for pin 53, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI 1 - - Master Tri-state Enable for pin 54, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI 0 - - Master Tri-state Enable for pin 55, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI 1 - - Master Tri-state Enable for pin 56, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI 0 - - Master Tri-state Enable for pin 57, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI 0 - - Master Tri-state Enable for pin 58, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI 0 - - Master Tri-state Enable for pin 59, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI 0 - - Master Tri-state Enable for pin 60, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI 0 - - Master Tri-state Enable for pin 61, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI 0 - - Master Tri-state Enable for pin 62, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI 0 - - Master Tri-state Enable for pin 63, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI 0 - - MIO pin Tri-state Enables, 63:32 - (OFFSET, MASK, VALUE) (0XFF180208, 0xFFFFFFFFU ,0x00B03000U) - RegMask = (IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI1_OFFSET ,0xFFFFFFFFU ,0x00B03000U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI2 @ 0XFF18020C

- - Master Tri-state Enable for pin 64, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI 0 - - Master Tri-state Enable for pin 65, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI 0 - - Master Tri-state Enable for pin 66, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI 0 - - Master Tri-state Enable for pin 67, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI 0 - - Master Tri-state Enable for pin 68, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI 0 - - Master Tri-state Enable for pin 69, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI 0 - - Master Tri-state Enable for pin 70, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI 1 - - Master Tri-state Enable for pin 71, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI 1 - - Master Tri-state Enable for pin 72, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI 1 - - Master Tri-state Enable for pin 73, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI 1 - - Master Tri-state Enable for pin 74, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI 1 - - Master Tri-state Enable for pin 75, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI 1 - - Master Tri-state Enable for pin 76, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI 0 - - Master Tri-state Enable for pin 77, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI 0 - - MIO pin Tri-state Enables, 77:64 - (OFFSET, MASK, VALUE) (0XFF18020C, 0x00003FFFU ,0x00000FC0U) - RegMask = (IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI2_OFFSET ,0x00003FFFU ,0x00000FC0U); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl0 @ 0XFF180138

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180138, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl1 @ 0XFF18013C

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF18013C, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl3 @ 0XFF180140

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180140, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl4 @ 0XFF180144

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank0_pull_enable is set, this selects pull up or pull down for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180144, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl5 @ 0XFF180148

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank0_pullupdown to selects pull up or pull down for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180148, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl6 @ 0XFF18014C

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF18014C, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl0 @ 0XFF180154

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180154, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl1 @ 0XFF180158

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180158, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl3 @ 0XFF18015C

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF18015C, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl4 @ 0XFF180160

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank1_pull_enable is set, this selects pull up or pull down for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180160, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl5 @ 0XFF180164

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank1_pullupdown to selects pull up or pull down for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180164, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl6 @ 0XFF180168

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180168, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl0 @ 0XFF180170

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180170, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl1 @ 0XFF180174

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180174, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl3 @ 0XFF180178

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180178, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl4 @ 0XFF18017C

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank2_pull_enable is set, this selects pull up or pull down for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF18017C, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl5 @ 0XFF180180

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank2_pullupdown to selects pull up or pull down for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180180, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl6 @ 0XFF180184

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180184, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : LOOPBACK - /*Register : MIO_LOOPBACK @ 0XFF180200

- - I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outp - ts to I2C 0 inputs. - PSU_IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1 0 - - CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 R - . - PSU_IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1 0 - - UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 - outputs to UART 0 inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD and RI not used. - PSU_IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1 0 - - SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outp - ts to SPI 0 inputs. The other SPI core will appear on the LS Slave Select. - PSU_IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1 0 - - Loopback function within MIO - (OFFSET, MASK, VALUE) (0XFF180200, 0x0000000FU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK | IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK | IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK | IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_LOOPBACK_OFFSET ,0x0000000FU ,0x00000000U); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_peripherals_init_data() { - // : RESET BLOCKS - // : TIMESTAMP - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+unsigned long psu_mio_init_data(void) +{ + /* + * MIO PROGRAMMING + */ + /* + * Register : MIO_PIN_0 @ 0XFF180000 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- + * (QSPI Clock) + * PSU_IOU_SLCR_MIO_PIN_0_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_0_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[0]- (Test Scan Port) = test_scan, Output, test_scan_out[0 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_0_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_0_L3_SEL 0 + + * Configures MIO Pin 0 peripheral interface mapping. S + * (OFFSET, MASK, VALUE) (0XFF180000, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_0_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_1 @ 0XFF180004 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (Q + * SPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_1_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_1_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[1]- (Test Scan Port) = test_scan, Output, test_scan_out[1 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_1_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Ou + * tput, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) + * PSU_IOU_SLCR_MIO_PIN_1_L3_SEL 0 + + * Configures MIO Pin 1 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180004, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_1_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_2 @ 0XFF180008 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI + * Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_2_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_2_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[2]- (Test Scan Port) = test_scan, Output, test_scan_out[2 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_2_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, I + * nput, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_2_L3_SEL 0 + + * Configures MIO Pin 2 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180008, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_2_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_3 @ 0XFF18000C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI + * Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_3_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_3_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[3]- (Test Scan Port) = test_scan, Output, test_scan_out[3 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_3_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_3_L3_SEL 0 + + * Configures MIO Pin 3 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18000C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_3_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_4 @ 0XFF180010 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- ( + * QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_4_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_4_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[4]- (Test Scan Port) = test_scan, Output, test_scan_out[4 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_4_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_4_L3_SEL 0 + + * Configures MIO Pin 4 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180010, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_4_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_5 @ 0XFF180014 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- + * (QSPI Slave Select) + * PSU_IOU_SLCR_MIO_PIN_5_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_5_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[5]- (Test Scan Port) = test_scan, Output, test_scan_out[5 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_5_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_5_L3_SEL 0 + + * Configures MIO Pin 5 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180014, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_5_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_6 @ 0XFF180018 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_l + * pbk- (QSPI Clock to be fed-back) + * PSU_IOU_SLCR_MIO_PIN_6_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_6_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[6]- (Test Scan Port) = test_scan, Output, test_scan_out[6 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_6_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= s + * pi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TT + * C Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, + * Output, tracedq[4]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_6_L3_SEL 0 + + * Configures MIO Pin 6 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180018, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_6_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_7 @ 0XFF18001C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_ + * upper- (QSPI Slave Select upper) + * PSU_IOU_SLCR_MIO_PIN_7_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_7_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[7]- (Test Scan Port) = test_scan, Output, test_scan_out[7 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_7_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Ma + * ster Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua + * 0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, t + * racedq[5]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_7_L3_SEL 0 + + * Configures MIO Pin 7 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18001C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_7_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_8 @ 0XFF180020 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_8_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_8_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[8]- (Test Scan Port) = test_scan, Output, test_scan_out[8 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_8_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Maste + * r Selects) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_ + * txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tra + * ce Port Databus) + * PSU_IOU_SLCR_MIO_PIN_8_L3_SEL 0 + + * Configures MIO Pin 8 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180020, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_8_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_9 @ 0XFF180024 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_9_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_9_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[9]- (Test Scan Port) = test_scan, Output, test_scan_out[9 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_9_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master S + * elects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, + * Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UA + * RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Data + * bus) + * PSU_IOU_SLCR_MIO_PIN_9_L3_SEL 0 + + * Configures MIO Pin 9 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180024, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_9_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_10 @ 0XFF180028 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_10_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_10_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[10]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 10]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_10_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_10_L3_SEL 0 + + * Configures MIO Pin 10 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180028, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_10_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_11 @ 0XFF18002C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_11_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_11_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[11]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 11]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_11_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_11_L3_SEL 0 + + * Configures MIO Pin 11 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18002C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_11_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_12 @ 0XFF180030 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_ + * upper- (QSPI Upper Clock) + * PSU_IOU_SLCR_MIO_PIN_12_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) + * PSU_IOU_SLCR_MIO_PIN_12_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[12]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 12]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_12_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJT + * AG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_ + * sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, O + * utput, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace + * dq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_12_L3_SEL 0 + + * Configures MIO Pin 12 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180030, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_12_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_13 @ 0XFF180034 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_13_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_13_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, + * test_scan_out[13]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_13_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTA + * G TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, + * Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UAR + * T receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Data + * bus) + * PSU_IOU_SLCR_MIO_PIN_13_L3_SEL 0 + + * Configures MIO Pin 13 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180034, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_13_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_14 @ 0XFF180038 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_14_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND + * Command Latch Enable) + * PSU_IOU_SLCR_MIO_PIN_14_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, + * test_scan_out[14]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_14_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJT + * AG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, + * Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver + * serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_14_L3_SEL 2 + + * Configures MIO Pin 14 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180038, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_14_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_15 @ 0XFF18003C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_15_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND + * Address Latch Enable) + * PSU_IOU_SLCR_MIO_PIN_15_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, + * test_scan_out[15]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_15_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJT + * AG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outp + * ut, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_ou + * t- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seria + * l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_15_L3_SEL 2 + + * Configures MIO Pin 15 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18003C, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_15_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_16 @ 0XFF180040 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_16_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_16_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, + * test_scan_out[16]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_16_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_16_L3_SEL 2 + + * Configures MIO Pin 16 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180040, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_16_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_17 @ 0XFF180044 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_17_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_17_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, + * test_scan_out[17]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_17_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_17_L3_SEL 2 + + * Configures MIO Pin 17 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180044, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_17_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_18 @ 0XFF180048 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_18_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_18_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, + * test_scan_out[18]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_18_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_18_L3_SEL 6 + + * Configures MIO Pin 18 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180048, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_18_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_19 @ 0XFF18004C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_19_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_19_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, + * test_scan_out[19]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_19_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_19_L3_SEL 6 + + * Configures MIO Pin 19 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18004C, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_19_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_20 @ 0XFF180050 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_20_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_20_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, + * test_scan_out[20]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_20_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua + * 1_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_20_L3_SEL 6 + + * Configures MIO Pin 20 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180050, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_20_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_21 @ 0XFF180054 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_21_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_21_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= tes + * t_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, t + * est_scan_out[21]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU E + * xt Tamper) + * PSU_IOU_SLCR_MIO_PIN_21_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc + * 1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- ( + * UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_21_L3_SEL 6 + + * Configures MIO Pin 21 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180054, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_21_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_22 @ 0XFF180058 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_22_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAN + * D Write Enable) + * PSU_IOU_SLCR_MIO_PIN_22_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- (Test Scan Port) = + * test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, c + * su_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_22_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed + * PSU_IOU_SLCR_MIO_PIN_22_L3_SEL 0 + + * Configures MIO Pin 22 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180058, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_22_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_23 @ 0XFF18005C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_23_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_23_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= test_scan, Input, test_scan_in[23]- (Test Scan Po + * rt) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Inp + * ut, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_23_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_23_L3_SEL 0 + + * Configures MIO Pin 23 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18005C, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_23_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_24 @ 0XFF180060 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_24_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_24_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= test_scan, Input, test_scan_in[24]- (Test + * Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= + * csu, Input, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_24_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= N + * ot Used + * PSU_IOU_SLCR_MIO_PIN_24_L3_SEL 1 + + * Configures MIO Pin 24 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180060, 0x000000FEU ,0x00000020U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_24_OFFSET, 0x000000FEU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_25 @ 0XFF180064 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_25_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAN + * D Read Enable) + * PSU_IOU_SLCR_MIO_PIN_25_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= test_scan, Input, test_scan_in[25]- + * (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port + * ) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_25_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_ou + * t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in + * put) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_25_L3_SEL 1 + + * Configures MIO Pin 25 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180064, 0x000000FEU ,0x00000020U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_25_OFFSET, 0x000000FEU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_26 @ 0XFF180068 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_26_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_26_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[26]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_26_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_26_L3_SEL 0 + + * Configures MIO Pin 26 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180068, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_26_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_27 @ 0XFF18006C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_27_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_27_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[27]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_27_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_27_L3_SEL 0 + + * Configures MIO Pin 27 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18006C, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_27_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_28 @ 0XFF180070 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_28_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_28_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[28]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_28_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_28_L3_SEL 0 + + * Configures MIO Pin 28 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180070, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_28_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_29 @ 0XFF180074 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_29_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_29_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[29]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_29_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, + * spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_29_L3_SEL 0 + + * Configures MIO Pin 29 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180074, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_29_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_30 @ 0XFF180078 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_30_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_30_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[30]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_30_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0 + * , Output, spi0_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock + * ) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, + * tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_30_L3_SEL 0 + + * Configures MIO Pin 30 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180078, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_30_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_31 @ 0XFF18007C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_31_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_31_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[31]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_31_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TT + * C Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial outp + * ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_31_L3_SEL 0 + + * Configures MIO Pin 31 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18007C, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_31_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_32 @ 0XFF180080 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_32_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) + * PSU_IOU_SLCR_MIO_PIN_32_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[32]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_32_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= t + * race, Output, tracedq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_32_L3_SEL 0 + + * Configures MIO Pin 32 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180080, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_32_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_33 @ 0XFF180084 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_33_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_33_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[33]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_33_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Mas + * ter Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1 + * , Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq + * [11]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_33_L3_SEL 0 + + * Configures MIO Pin 33 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180084, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_33_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_34 @ 0XFF180088 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_34_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_34_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[34]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_34_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master + * Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rx + * d- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Po + * rt Databus) + * PSU_IOU_SLCR_MIO_PIN_34_L3_SEL 0 + + * Configures MIO Pin 34 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180088, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_34_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_35 @ 0XFF18008C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_35_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_35_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[35]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_35_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2 + * , Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- ( + * UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Po + * rt Databus) + * PSU_IOU_SLCR_MIO_PIN_35_L3_SEL 0 + + * Configures MIO Pin 35 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18008C, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_35_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_36 @ 0XFF180090 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_36_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_36_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[36]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_36_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_36_L3_SEL 0 + + * Configures MIO Pin 36 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180090, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_36_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_37 @ 0XFF180094 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_37_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_37_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[37]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_37_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_37_L3_SEL 0 + + * Configures MIO Pin 37 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180094, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_37_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_38 @ 0XFF180098 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_38_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_38_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_38_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTA + * G TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_s + * clk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, In + * put, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- + * (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_38_L3_SEL 0 + + * Configures MIO Pin 38 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180098, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_38_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_39 @ 0XFF18009C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_39_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_39_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= sd1, Input, sd1_data_in[4]- (8-bit Data b + * us) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJT + * AG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, + * Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (U + * ART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port + * Control Signal) + * PSU_IOU_SLCR_MIO_PIN_39_L3_SEL 0 + + * Configures MIO Pin 39 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_39_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_40 @ 0XFF1800A0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_40_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_40_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= sd1 + * , Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[ + * 5]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJ + * TAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3 + * , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmi + * tter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_40_L3_SEL 0 + + * Configures MIO Pin 40 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_40_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_41 @ 0XFF1800A4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_41_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_41_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[6]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTA + * G TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outpu + * t, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out + * - (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inp + * ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_41_L3_SEL 0 + + * Configures MIO Pin 41 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_41_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_42 @ 0XFF1800A8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_42_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_42_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[7]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= sp + * i0, Output, spi0_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_42_L3_SEL 0 + + * Configures MIO Pin 42 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_42_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_43 @ 0XFF1800AC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_43_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_43_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) + * 4= spi0, Input, spi0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_43_L3_SEL 0 + + * Configures MIO Pin 43 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_43_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_44 @ 0XFF1800B0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_44_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4 + * = spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L3_SEL 0 + + * Configures MIO Pin 44 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_44_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_45 @ 0XFF1800B4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_45_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L3_SEL 0 + + * Configures MIO Pin 45 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_45_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_46 @ 0XFF1800B8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_46_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L3_SEL 0 + + * Configures MIO Pin 46 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_46_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_47 @ 0XFF1800BC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_47_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Maste + * r Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= tt + * c0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L3_SEL 0 + + * Configures MIO Pin 47 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800BC, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_47_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_48 @ 0XFF1800C0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_48_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_48_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_48_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Us + * ed + * PSU_IOU_SLCR_MIO_PIN_48_L3_SEL 0 + + * Configures MIO Pin 48 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_48_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_49 @ 0XFF1800C4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_49_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd + * 1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L3_SEL 0 + + * Configures MIO Pin 49 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_49_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_50 @ 0XFF1800C8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) + * PSU_IOU_SLCR_MIO_PIN_50_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Input, sd1_cmd_in- (Command Ind + * icator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= + * ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART rece + * iver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L3_SEL 0 + + * Configures MIO Pin 50 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_50_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_51 @ 0XFF1800CC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) + * PSU_IOU_SLCR_MIO_PIN_51_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdi + * o1_clk_out- (SDSDIO clock) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Dat + * a) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wa + * ve_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter + * serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L3_SEL 0 + + * Configures MIO Pin 51 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800CC, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_51_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_52 @ 0XFF1800D0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_52_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_i + * n- (ULPI Clock) + * PSU_IOU_SLCR_MIO_PIN_52_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_52_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_52_L3_SEL 0 + + * Configures MIO Pin 52 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_52_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_53 @ 0XFF1800D4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_53_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- + * (Data bus direction control) + * PSU_IOU_SLCR_MIO_PIN_53_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_53_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Ou + * tput, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) + * PSU_IOU_SLCR_MIO_PIN_53_L3_SEL 0 + + * Configures MIO Pin 53 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_53_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_54 @ 0XFF1800D8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_54_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_54_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_54_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, I + * nput, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_54_L3_SEL 0 + + * Configures MIO Pin 54 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_54_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_55 @ 0XFF1800DC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_55_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- + * (Data flow control signal from the PHY) + * PSU_IOU_SLCR_MIO_PIN_55_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_55_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_55_L3_SEL 0 + + * Configures MIO Pin 55 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800DC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_55_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_56 @ 0XFF1800E0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_56_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_56_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_56_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_56_L3_SEL 0 + + * Configures MIO Pin 56 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_56_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_57 @ 0XFF1800E4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_57_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_57_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_57_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_57_L3_SEL 0 + + * Configures MIO Pin 57 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_57_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_58 @ 0XFF1800E8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_58_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- + * (Asserted to end or interrupt transfers) + * PSU_IOU_SLCR_MIO_PIN_58_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_58_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_58_L3_SEL 0 + + * Configures MIO Pin 58 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_58_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_59 @ 0XFF1800EC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_59_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_59_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_59_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_59_L3_SEL 0 + + * Configures MIO Pin 59 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800EC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_59_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_60 @ 0XFF1800F0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_60_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_60_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_60_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_60_L3_SEL 0 + + * Configures MIO Pin 60 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_60_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_61 @ 0XFF1800F4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_61_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_61_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_61_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, + * spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_61_L3_SEL 0 + + * Configures MIO Pin 61 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_61_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_62 @ 0XFF1800F8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_62_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_62_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_62_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_62_L3_SEL 0 + + * Configures MIO Pin 62 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_62_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_63 @ 0XFF1800FC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_63_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_63_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_63_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_63_L3_SEL 0 + + * Configures MIO Pin 63 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800FC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_63_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_64 @ 0XFF180100 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_64_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_i + * n- (ULPI Clock) + * PSU_IOU_SLCR_MIO_PIN_64_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_64_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4 + * = spi0, Output, spi0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * trace, Output, tracedq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_64_L3_SEL 0 + + * Configures MIO Pin 64 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180100, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_64_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_65 @ 0XFF180104 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_65_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- + * (Data bus direction control) + * PSU_IOU_SLCR_MIO_PIN_65_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_65_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace + * dq[11]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_65_L3_SEL 0 + + * Configures MIO Pin 65 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180104, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_65_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_66 @ 0XFF180108 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_66_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_66_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= Not + * Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_66_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace + * Port Databus) + * PSU_IOU_SLCR_MIO_PIN_66_L3_SEL 0 + + * Configures MIO Pin 66 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180108, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_66_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_67 @ 0XFF18010C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_67_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- + * (Data flow control signal from the PHY) + * PSU_IOU_SLCR_MIO_PIN_67_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= N + * ot Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_67_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Maste + * r Selects) 4= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= tt + * c2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace + * Port Databus) + * PSU_IOU_SLCR_MIO_PIN_67_L3_SEL 0 + + * Configures MIO Pin 67 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18010C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_67_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_68 @ 0XFF180110 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_68_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_68_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= N + * ot Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_68_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_68_L3_SEL 0 + + * Configures MIO Pin 68 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180110, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_68_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_69 @ 0XFF180114 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_69_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_69_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_69_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_69_L3_SEL 0 + + * Configures MIO Pin 69 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180114, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_69_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_70 @ 0XFF180118 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_70_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- + * (Asserted to end or interrupt transfers) + * PSU_IOU_SLCR_MIO_PIN_70_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_70_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed + * PSU_IOU_SLCR_MIO_PIN_70_L3_SEL 0 + + * Configures MIO Pin 70 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180118, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_70_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_71 @ 0XFF18011C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_71_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_71_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_71_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_71_L3_SEL 0 + + * Configures MIO Pin 71 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18011C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_71_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_72 @ 0XFF180120 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_72_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_72_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_72_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= Not Used 6= ua1, Output, ua1_txd- (UART transmitter seri + * al output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_72_L3_SEL 0 + + * Configures MIO Pin 72 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180120, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_72_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_73 @ 0XFF180124 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_73_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_73_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_73_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not + * Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_73_L3_SEL 0 + + * Configures MIO Pin 73 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180124, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_73_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_74 @ 0XFF180128 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_74_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_74_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[3]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_74_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- ( + * UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_74_L3_SEL 0 + + * Configures MIO Pin 74 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180128, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_74_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_75 @ 0XFF18012C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_75_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_75_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Command Indicator) = sd1 + * , Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_75_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_t + * xd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_75_L3_SEL 0 + + * Configures MIO Pin 75 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18012C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_75_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_76 @ 0XFF180130 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Output, sdio1_clk_out- (SDSDIO + * clock) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= mdio0, Output, gem0_mdc- (MDI + * O Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2 + * _mdc- (MDIO Clock) 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L3_SEL 6 + + * Configures MIO Pin 76 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180130, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_76_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_77 @ 0XFF180134 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L0_SEL 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L1_SEL 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00100000U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK | 0 ); + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio + * 1_cd_n- (SD card detect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L2_SEL 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00100000U ,0x00000000U); - /*############################################################################################################################ */ + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= mdio0, Input, gem0_mdio_in- (M + * DIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, + * gem1_mdio_in- (MDIO Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5 + * = mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_ou + * t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Outp + * ut, gem3_mdio_out- (MDIO Data) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L3_SEL 6 - // : ENET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

+ * Configures MIO Pin 77 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180134, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_77_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 + /* + * Register : MIO_MST_TRI0 @ 0XFF180204 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 0, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 1, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI 0 - // : QSPI - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 2, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 + * Master Tri-state Enable for pin 3, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 4, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 5, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI 0 - // : QSPI TAP DELAY - /*Register : IOU_TAPDLY_BYPASS @ 0XFF180390

+ * Master Tri-state Enable for pin 6, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI 0 - 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypass the Tap delay on the Rx clock signal of LQSPI - PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 + * Master Tri-state Enable for pin 7, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI 0 - IOU tap delay bypass for the LQSPI and NAND controllers - (OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) - RegMask = (IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK | 0 ); + * Master Tri-state Enable for pin 8, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI 0 - RegVal = ((0x00000001U << IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET ,0x00000004U ,0x00000004U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 9, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI 0 - // : NAND - // : USB - /*Register : RST_LPD_TOP @ 0XFF5E023C

+ * Master Tri-state Enable for pin 10, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI 0 - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 + * Master Tri-state Enable for pin 11, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI 0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 + * Master Tri-state Enable for pin 12, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI 0 - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 + * Master Tri-state Enable for pin 13, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI 0 - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * Master Tri-state Enable for pin 14, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000540U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 15, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI 0 - // : FPD RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

+ * Master Tri-state Enable for pin 16, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI 0 - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0 + * Master Tri-state Enable for pin 17, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI 0 - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0 + * Master Tri-state Enable for pin 18, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI 1 - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0 + * Master Tri-state Enable for pin 19, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI 0 - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0 + * Master Tri-state Enable for pin 20, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI 0 - FPD WDT reset - PSU_CRF_APB_RST_FPD_TOP_SWDT_RESET 0 + * Master Tri-state Enable for pin 21, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI 1 - GDMA block level reset - PSU_CRF_APB_RST_FPD_TOP_GDMA_RESET 0 + * Master Tri-state Enable for pin 22, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI 0 - Pixel Processor (submodule of GPU) block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_PP0_RESET 0 + * Master Tri-state Enable for pin 23, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI 0 - Pixel Processor (submodule of GPU) block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_PP1_RESET 0 + * Master Tri-state Enable for pin 24, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI 0 - GPU block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_RESET 0 + * Master Tri-state Enable for pin 25, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI 1 - GT block level reset - PSU_CRF_APB_RST_FPD_TOP_GT_RESET 0 + * Master Tri-state Enable for pin 26, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI 0 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0 + * Master Tri-state Enable for pin 27, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI 0 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000F807EU ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | CRF_APB_RST_FPD_TOP_DP_RESET_MASK | CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK | CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_RESET_MASK | CRF_APB_RST_FPD_TOP_GT_RESET_MASK | CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 28, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI 1 - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000F807EU ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 29, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI 0 - // : SD - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 30, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI 1 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_SDIO1_RESET 0 + * Master Tri-state Enable for pin 31, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000040U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK | 0 ); + * MIO pin Tri-state Enables, 31:0 + * (OFFSET, MASK, VALUE) (0XFF180204, 0xFFFFFFFFU ,0x52240000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI0_OFFSET, + 0xFFFFFFFFU, 0x52240000U); +/*##################################################################### */ - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000040U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : MIO_MST_TRI1 @ 0XFF180208 - /*Register : CTRL_REG_SD @ 0XFF180310

+ * Master Tri-state Enable for pin 32, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI 0 - SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled - PSU_IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL 0 + * Master Tri-state Enable for pin 33, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI 0 - SD eMMC selection - (OFFSET, MASK, VALUE) (0XFF180310, 0x00008000U ,0x00000000U) - RegMask = (IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK | 0 ); + * Master Tri-state Enable for pin 34, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI 0 - RegVal = ((0x00000000U << IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_CTRL_REG_SD_OFFSET ,0x00008000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 35, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI 0 - /*Register : SD_CONFIG_REG2 @ 0XFF180320

+ * Master Tri-state Enable for pin 36, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI 0 - Should be set based on the final product usage 00 - Removable SCard Slot 01 - Embedded Slot for One Device 10 - Shared Bus Sl - t 11 - Reserved - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE 0 + * Master Tri-state Enable for pin 37, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI 0 - 1.8V Support 1: 1.8V supported 0: 1.8V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 0 + * Master Tri-state Enable for pin 38, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI 0 - 3.0V Support 1: 3.0V supported 0: 3.0V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V 0 + * Master Tri-state Enable for pin 39, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI 0 - 3.3V Support 1: 3.3V supported 0: 3.3V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V 1 + * Master Tri-state Enable for pin 40, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI 0 - SD Config Register 2 - (OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x00800000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK | 0 ); + * Master Tri-state Enable for pin 41, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI 0 - RegVal = ((0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT - | 0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT - | 0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT - | 0x00000001U << IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG2_OFFSET ,0x33800000U ,0x00800000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 42, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI 0 - // : SD1 BASE CLOCK - /*Register : SD_CONFIG_REG1 @ 0XFF18031C

+ * Master Tri-state Enable for pin 43, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI 0 - Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. - PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc7 + * Master Tri-state Enable for pin 44, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI 1 - SD Config Register 1 - (OFFSET, MASK, VALUE) (0XFF18031C, 0x7F800000U ,0x63800000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK | 0 ); + * Master Tri-state Enable for pin 45, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI 1 - RegVal = ((0x000000C7U << IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG1_OFFSET ,0x7F800000U ,0x63800000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 46, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI 0 - // : SD1 RETUNER - /*Register : SD_CONFIG_REG3 @ 0XFF180324

+ * Master Tri-state Enable for pin 47, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI 0 - This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. Setting to 4'b0 disables Re-Tuning Timer. 0h - Get inf - rmation via other source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n = 2(n-1) seconds -- Bh = 1024 secon - s Fh - Ch = Reserved - PSU_IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR 0X0 + * Master Tri-state Enable for pin 48, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI 0 - SD Config Register 3 - (OFFSET, MASK, VALUE) (0XFF180324, 0x03C00000U ,0x00000000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG3_OFFSET ,0x03C00000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 49, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI 0 - // : CAN - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 50, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_CAN1_RESET 0 + * Master Tri-state Enable for pin 51, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000100U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 52, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI 1 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000100U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 53, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI 1 - // : I2C - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 54, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_I2C0_RESET 0 + * Master Tri-state Enable for pin 55, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI 1 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_I2C1_RESET 0 + * Master Tri-state Enable for pin 56, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000600U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK | CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 57, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000600U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 58, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI 0 - // : SWDT - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 59, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_SWDT_RESET 0 + * Master Tri-state Enable for pin 60, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00008000U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 61, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00008000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 62, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI 0 - // : SPI - // : TTC - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 63, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC0_RESET 0 + * MIO pin Tri-state Enables, 63:32 + * (OFFSET, MASK, VALUE) (0XFF180208, 0xFFFFFFFFU ,0x00B03000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI1_OFFSET, + 0xFFFFFFFFU, 0x00B03000U); +/*##################################################################### */ - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC1_RESET 0 + /* + * Register : MIO_MST_TRI2 @ 0XFF18020C - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC2_RESET 0 + * Master Tri-state Enable for pin 64, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC3_RESET 0 + * Master Tri-state Enable for pin 65, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00007800U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 66, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00007800U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 67, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI 0 - // : UART - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 68, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_UART0_RESET 0 + * Master Tri-state Enable for pin 69, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_UART1_RESET 0 + * Master Tri-state Enable for pin 70, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI 1 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000006U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK | CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 71, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI 1 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000006U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 72, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI 1 - // : UART BAUD RATE - /*Register : Baud_rate_divider_reg0 @ 0XFF000034

+ * Master Tri-state Enable for pin 73, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI 1 - Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate - PSU_UART0_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + * Master Tri-state Enable for pin 74, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI 1 - Baud Rate Divider Register - (OFFSET, MASK, VALUE) (0XFF000034, 0x000000FFU ,0x00000005U) - RegMask = (UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK | 0 ); + * Master Tri-state Enable for pin 75, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI 1 - RegVal = ((0x00000005U << UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_BAUD_RATE_DIVIDER_REG0_OFFSET ,0x000000FFU ,0x00000005U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 76, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI 0 - /*Register : Baud_rate_gen_reg0 @ 0XFF000018

+ * Master Tri-state Enable for pin 77, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI 0 - Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample - PSU_UART0_BAUD_RATE_GEN_REG0_CD 0x8f + * MIO pin Tri-state Enables, 77:64 + * (OFFSET, MASK, VALUE) (0XFF18020C, 0x00003FFFU ,0x00000FC0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI2_OFFSET, + 0x00003FFFU, 0x00000FC0U); +/*##################################################################### */ - Baud Rate Generator Register. - (OFFSET, MASK, VALUE) (0XFF000018, 0x0000FFFFU ,0x0000008FU) - RegMask = (UART0_BAUD_RATE_GEN_REG0_CD_MASK | 0 ); + /* + * Register : bank0_ctrl0 @ 0XFF180138 - RegVal = ((0x0000008FU << UART0_BAUD_RATE_GEN_REG0_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_BAUD_RATE_GEN_REG0_OFFSET ,0x0000FFFFU ,0x0000008FU); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0 1 - /*Register : Control_reg0 @ 0XFF000000

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1 1 - Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK. - PSU_UART0_CONTROL_REG0_STPBRK 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2 1 - Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. - PSU_UART0_CONTROL_REG0_STTBRK 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3 1 - Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted. - PSU_UART0_CONTROL_REG0_RSTTO 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4 1 - Transmit disable: 0: enable transmitter 1: disable transmitter - PSU_UART0_CONTROL_REG0_TXDIS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5 1 - Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. - PSU_UART0_CONTROL_REG0_TXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6 1 - Receive disable: 0: enable 1: disable, regardless of the value of RXEN - PSU_UART0_CONTROL_REG0_RXDIS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7 1 - Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. - PSU_UART0_CONTROL_REG0_RXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8 1 - Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed. - PSU_UART0_CONTROL_REG0_TXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9 1 - Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed. - PSU_UART0_CONTROL_REG0_RXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10 1 - UART Control Register - (OFFSET, MASK, VALUE) (0XFF000000, 0x000001FFU ,0x00000017U) - RegMask = (UART0_CONTROL_REG0_STPBRK_MASK | UART0_CONTROL_REG0_STTBRK_MASK | UART0_CONTROL_REG0_RSTTO_MASK | UART0_CONTROL_REG0_TXDIS_MASK | UART0_CONTROL_REG0_TXEN_MASK | UART0_CONTROL_REG0_RXDIS_MASK | UART0_CONTROL_REG0_RXEN_MASK | UART0_CONTROL_REG0_TXRES_MASK | UART0_CONTROL_REG0_RXRES_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11 1 - RegVal = ((0x00000000U << UART0_CONTROL_REG0_STPBRK_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_STTBRK_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_RSTTO_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_TXDIS_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_TXEN_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_RXDIS_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_RXEN_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_TXRES_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_RXRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_CONTROL_REG0_OFFSET ,0x000001FFU ,0x00000017U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12 1 - /*Register : mode_reg0 @ 0XFF000004

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13 1 - Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback - PSU_UART0_MODE_REG0_CHMODE 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14 1 - Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved - PSU_UART0_MODE_REG0_NBSTOP 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15 1 - Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity - PSU_UART0_MODE_REG0_PAR 0x4 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16 1 - Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits - PSU_UART0_MODE_REG0_CHRL 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17 1 - Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8 - PSU_UART0_MODE_REG0_CLKS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18 1 - UART Mode Register - (OFFSET, MASK, VALUE) (0XFF000004, 0x000003FFU ,0x00000020U) - RegMask = (UART0_MODE_REG0_CHMODE_MASK | UART0_MODE_REG0_NBSTOP_MASK | UART0_MODE_REG0_PAR_MASK | UART0_MODE_REG0_CHRL_MASK | UART0_MODE_REG0_CLKS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19 1 - RegVal = ((0x00000000U << UART0_MODE_REG0_CHMODE_SHIFT - | 0x00000000U << UART0_MODE_REG0_NBSTOP_SHIFT - | 0x00000004U << UART0_MODE_REG0_PAR_SHIFT - | 0x00000000U << UART0_MODE_REG0_CHRL_SHIFT - | 0x00000000U << UART0_MODE_REG0_CLKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_MODE_REG0_OFFSET ,0x000003FFU ,0x00000020U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20 1 - /*Register : Baud_rate_divider_reg0 @ 0XFF010034

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21 1 - Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate - PSU_UART1_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22 1 - Baud Rate Divider Register - (OFFSET, MASK, VALUE) (0XFF010034, 0x000000FFU ,0x00000005U) - RegMask = (UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK | 0 ); - - RegVal = ((0x00000005U << UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_BAUD_RATE_DIVIDER_REG0_OFFSET ,0x000000FFU ,0x00000005U); - /*############################################################################################################################ */ - - /*Register : Baud_rate_gen_reg0 @ 0XFF010018

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23 1 - Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample - PSU_UART1_BAUD_RATE_GEN_REG0_CD 0x8f - - Baud Rate Generator Register. - (OFFSET, MASK, VALUE) (0XFF010018, 0x0000FFFFU ,0x0000008FU) - RegMask = (UART1_BAUD_RATE_GEN_REG0_CD_MASK | 0 ); - - RegVal = ((0x0000008FU << UART1_BAUD_RATE_GEN_REG0_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_BAUD_RATE_GEN_REG0_OFFSET ,0x0000FFFFU ,0x0000008FU); - /*############################################################################################################################ */ - - /*Register : Control_reg0 @ 0XFF010000

- - Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK. - PSU_UART1_CONTROL_REG0_STPBRK 0x0 - - Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. - PSU_UART1_CONTROL_REG0_STTBRK 0x0 - - Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted. - PSU_UART1_CONTROL_REG0_RSTTO 0x0 - - Transmit disable: 0: enable transmitter 1: disable transmitter - PSU_UART1_CONTROL_REG0_TXDIS 0x0 - - Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. - PSU_UART1_CONTROL_REG0_TXEN 0x1 - - Receive disable: 0: enable 1: disable, regardless of the value of RXEN - PSU_UART1_CONTROL_REG0_RXDIS 0x0 - - Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. - PSU_UART1_CONTROL_REG0_RXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24 1 - Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed. - PSU_UART1_CONTROL_REG0_TXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25 1 - Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed. - PSU_UART1_CONTROL_REG0_RXRES 0x1 + * Drive0 control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180138, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ - UART Control Register - (OFFSET, MASK, VALUE) (0XFF010000, 0x000001FFU ,0x00000017U) - RegMask = (UART1_CONTROL_REG0_STPBRK_MASK | UART1_CONTROL_REG0_STTBRK_MASK | UART1_CONTROL_REG0_RSTTO_MASK | UART1_CONTROL_REG0_TXDIS_MASK | UART1_CONTROL_REG0_TXEN_MASK | UART1_CONTROL_REG0_RXDIS_MASK | UART1_CONTROL_REG0_RXEN_MASK | UART1_CONTROL_REG0_TXRES_MASK | UART1_CONTROL_REG0_RXRES_MASK | 0 ); + /* + * Register : bank0_ctrl1 @ 0XFF18013C - RegVal = ((0x00000000U << UART1_CONTROL_REG0_STPBRK_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_STTBRK_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_RSTTO_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_TXDIS_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_TXEN_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_RXDIS_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_RXEN_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_TXRES_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_RXRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_CONTROL_REG0_OFFSET ,0x000001FFU ,0x00000017U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0 1 - /*Register : mode_reg0 @ 0XFF010004

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1 1 - Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback - PSU_UART1_MODE_REG0_CHMODE 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2 1 - Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved - PSU_UART1_MODE_REG0_NBSTOP 0x0 - - Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity - PSU_UART1_MODE_REG0_PAR 0x4 - - Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits - PSU_UART1_MODE_REG0_CHRL 0x0 - - Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8 - PSU_UART1_MODE_REG0_CLKS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3 1 - UART Mode Register - (OFFSET, MASK, VALUE) (0XFF010004, 0x000003FFU ,0x00000020U) - RegMask = (UART1_MODE_REG0_CHMODE_MASK | UART1_MODE_REG0_NBSTOP_MASK | UART1_MODE_REG0_PAR_MASK | UART1_MODE_REG0_CHRL_MASK | UART1_MODE_REG0_CLKS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4 1 - RegVal = ((0x00000000U << UART1_MODE_REG0_CHMODE_SHIFT - | 0x00000000U << UART1_MODE_REG0_NBSTOP_SHIFT - | 0x00000004U << UART1_MODE_REG0_PAR_SHIFT - | 0x00000000U << UART1_MODE_REG0_CHRL_SHIFT - | 0x00000000U << UART1_MODE_REG0_CLKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_MODE_REG0_OFFSET ,0x000003FFU ,0x00000020U); - /*############################################################################################################################ */ - - // : GPIO - // : ADMA TZ - /*Register : slcr_adma @ 0XFF4B0024

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5 1 - TrustZone Classification for ADMA - PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0XFF - - RPU TrustZone settings - (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) - RegMask = (LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK | 0 ); - - RegVal = ((0x000000FFU << LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_SLCR_SECURE_SLCR_ADMA_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - // : CSU TAMPERING - // : CSU TAMPER STATUS - /*Register : tamper_status @ 0XFFCA5000

- - CSU regsiter - PSU_CSU_TAMPER_STATUS_TAMPER_0 0 - - External MIO - PSU_CSU_TAMPER_STATUS_TAMPER_1 0 - - JTAG toggle detect - PSU_CSU_TAMPER_STATUS_TAMPER_2 0 - - PL SEU error - PSU_CSU_TAMPER_STATUS_TAMPER_3 0 - - AMS over temperature alarm for LPD - PSU_CSU_TAMPER_STATUS_TAMPER_4 0 - - AMS over temperature alarm for APU - PSU_CSU_TAMPER_STATUS_TAMPER_5 0 - - AMS voltage alarm for VCCPINT_FPD - PSU_CSU_TAMPER_STATUS_TAMPER_6 0 - - AMS voltage alarm for VCCPINT_LPD - PSU_CSU_TAMPER_STATUS_TAMPER_7 0 - - AMS voltage alarm for VCCPAUX - PSU_CSU_TAMPER_STATUS_TAMPER_8 0 - - AMS voltage alarm for DDRPHY - PSU_CSU_TAMPER_STATUS_TAMPER_9 0 - - AMS voltage alarm for PSIO bank 0/1/2 - PSU_CSU_TAMPER_STATUS_TAMPER_10 0 - - AMS voltage alarm for PSIO bank 3 (dedicated pins) - PSU_CSU_TAMPER_STATUS_TAMPER_11 0 - - AMS voltaage alarm for GT - PSU_CSU_TAMPER_STATUS_TAMPER_12 0 - - Tamper Response Status - (OFFSET, MASK, VALUE) (0XFFCA5000, 0x00001FFFU ,0x00000000U) - RegMask = (CSU_TAMPER_STATUS_TAMPER_0_MASK | CSU_TAMPER_STATUS_TAMPER_1_MASK | CSU_TAMPER_STATUS_TAMPER_2_MASK | CSU_TAMPER_STATUS_TAMPER_3_MASK | CSU_TAMPER_STATUS_TAMPER_4_MASK | CSU_TAMPER_STATUS_TAMPER_5_MASK | CSU_TAMPER_STATUS_TAMPER_6_MASK | CSU_TAMPER_STATUS_TAMPER_7_MASK | CSU_TAMPER_STATUS_TAMPER_8_MASK | CSU_TAMPER_STATUS_TAMPER_9_MASK | CSU_TAMPER_STATUS_TAMPER_10_MASK | CSU_TAMPER_STATUS_TAMPER_11_MASK | CSU_TAMPER_STATUS_TAMPER_12_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6 1 - RegVal = ((0x00000000U << CSU_TAMPER_STATUS_TAMPER_0_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_1_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_2_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_3_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_4_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_5_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_6_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_7_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_8_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_9_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_10_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_11_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_12_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CSU_TAMPER_STATUS_OFFSET ,0x00001FFFU ,0x00000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7 1 - // : CSU TAMPER RESPONSE - // : AFIFM INTERFACE WIDTH - // : CPU QOS DEFAULT - /*Register : ACE_CTRL @ 0XFD5C0060

- - Set ACE outgoing AWQOS value - PSU_APU_ACE_CTRL_AWQOS 0X0 - - Set ACE outgoing ARQOS value - PSU_APU_ACE_CTRL_ARQOS 0X0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8 1 - ACE Control Register - (OFFSET, MASK, VALUE) (0XFD5C0060, 0x000F000FU ,0x00000000U) - RegMask = (APU_ACE_CTRL_AWQOS_MASK | APU_ACE_CTRL_ARQOS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9 1 - RegVal = ((0x00000000U << APU_ACE_CTRL_AWQOS_SHIFT - | 0x00000000U << APU_ACE_CTRL_ARQOS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (APU_ACE_CTRL_OFFSET ,0x000F000FU ,0x00000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10 1 - // : ENABLES RTC SWITCH TO BATTERY WHEN VCC_PSAUX IS NOT AVAILABLE - /*Register : CONTROL @ 0XFFA60040

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11 1 - Enables the RTC. By writing a 0 to this bit, RTC will be powered off and the only module that potentially draws current from - he battery will be BBRAM. The value read through this bit does not necessarily reflect whether RTC is enabled or not. It is e - pected that RTC is enabled every time it is being configured. If RTC is not used in the design, FSBL will disable it by writi - g a 0 to this bit. - PSU_RTC_CONTROL_BATTERY_DISABLE 0X1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12 1 - This register controls various functionalities within the RTC - (OFFSET, MASK, VALUE) (0XFFA60040, 0x80000000U ,0x80000000U) - RegMask = (RTC_CONTROL_BATTERY_DISABLE_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13 1 - RegVal = ((0x00000001U << RTC_CONTROL_BATTERY_DISABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (RTC_CONTROL_OFFSET ,0x80000000U ,0x80000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14 1 - // : TIMESTAMP COUNTER - /*Register : base_frequency_ID_register @ 0XFF260020

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15 1 - Frequency in number of ticks per second. Valid range from 10 MHz to 100 MHz. - PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5e100 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16 1 - Program this register to match the clock frequency of the timestamp generator, in ticks per second. For example, for a 50 MHz - clock, program 0x02FAF080. This register is not accessible to the read-only programming interface. - (OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5E100U) - RegMask = (IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17 1 - RegVal = ((0x05F5E100U << IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET ,0xFFFFFFFFU ,0x05F5E100U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18 1 - /*Register : counter_control_register @ 0XFF260000

- - Enable 0: The counter is disabled and not incrementing. 1: The counter is enabled and is incrementing. - PSU_IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN 0x1 - - Controls the counter increments. This register is not accessible to the read-only programming interface. - (OFFSET, MASK, VALUE) (0XFF260000, 0x00000001U ,0x00000001U) - RegMask = (IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : TTC SRC SELECT - - return 1; + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF18013C, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl3 @ 0XFF180140 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180140, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank0_ctrl4 @ 0XFF180144 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank0_pull_enable is set, this selects pull up or pull down for + * MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180144, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl5 @ 0XFF180148 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank0_pullupdown to selects pull up or pull d + * own for MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180148, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl6 @ 0XFF18014C + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF18014C, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank1_ctrl0 @ 0XFF180154 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25 1 + + * Drive0 control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180154, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl1 @ 0XFF180158 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180158, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl3 @ 0XFF18015C + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF18015C, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank1_ctrl4 @ 0XFF180160 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank1_pull_enable is set, this selects pull up or pull down for + * MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180160, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl5 @ 0XFF180164 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank1_pullupdown to selects pull up or pull d + * own for MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180164, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl6 @ 0XFF180168 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180168, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank2_ctrl0 @ 0XFF180170 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25 1 + + * Drive0 control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180170, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl1 @ 0XFF180174 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180174, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl3 @ 0XFF180178 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180178, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank2_ctrl4 @ 0XFF18017C + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank2_pull_enable is set, this selects pull up or pull down for + * MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF18017C, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl5 @ 0XFF180180 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank2_pullupdown to selects pull up or pull d + * own for MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180180, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl6 @ 0XFF180184 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180184, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * LOOPBACK + */ + /* + * Register : MIO_LOOPBACK @ 0XFF180200 + + * I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 + * = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outputs to I2C 0 inputs + * . + * PSU_IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1 0 + + * CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 + * = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 Rx. + * PSU_IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1 0 + + * UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. + * 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 outputs to UART 0 + * inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD + * and RI not used. + * PSU_IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1 0 + + * SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 + * = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outputs to SPI 0 inputs + * . The other SPI core will appear on the LS Slave Select. + * PSU_IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1 0 + + * Loopback function within MIO + * (OFFSET, MASK, VALUE) (0XFF180200, 0x0000000FU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_LOOPBACK_OFFSET, + 0x0000000FU, 0x00000000U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_post_config_data() { - // : POST_CONFIG +unsigned long psu_peripherals_init_data(void) +{ + /* + * COHERENCY + */ + /* + * FPD RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - return 1; + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0 + + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0 + + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0 + + * FPD WDT reset + * PSU_CRF_APB_RST_FPD_TOP_SWDT_RESET 0 + + * GDMA block level reset + * PSU_CRF_APB_RST_FPD_TOP_GDMA_RESET 0 + + * Pixel Processor (submodule of GPU) block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_PP0_RESET 0 + + * Pixel Processor (submodule of GPU) block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_PP1_RESET 0 + + * GPU block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_RESET 0 + + * GT block level reset + * PSU_CRF_APB_RST_FPD_TOP_GT_RESET 0 + + * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000F807EU ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000F807EU, 0x00000000U); +/*##################################################################### */ + + /* + * RESET BLOCKS + */ + /* + * TIMESTAMP + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_IOU_CC_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_ADMA_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x001A0000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x001A0000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * Reset entire full power domain. + * PSU_CRL_APB_RST_LPD_TOP_FPD_RESET 0 + + * LPD SWDT + * PSU_CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET 0 + + * Sysmonitor reset + * PSU_CRL_APB_RST_LPD_TOP_SYSMON_RESET 0 + + * Real Time Clock reset + * PSU_CRL_APB_RST_LPD_TOP_RTC_RESET 0 + + * APM reset + * PSU_CRL_APB_RST_LPD_TOP_APM_RESET 0 + + * IPI reset + * PSU_CRL_APB_RST_LPD_TOP_IPI_RESET 0 + + * reset entire RPU power island + * PSU_CRL_APB_RST_LPD_TOP_RPU_PGE_RESET 0 + + * reset ocm + * PSU_CRL_APB_RST_LPD_TOP_OCM_RESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x0093C018U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x0093C018U, 0x00000000U); +/*##################################################################### */ + + /* + * ENET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 + + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 + + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * QSPI + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * QSPI TAP DELAY + */ + /* + * Register : IOU_TAPDLY_BYPASS @ 0XFF180390 + + * 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypa + * ss the Tap delay on the Rx clock signal of LQSPI + * PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 + + * IOU tap delay bypass for the LQSPI and NAND controllers + * (OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET, + 0x00000004U, 0x00000004U); +/*##################################################################### */ + + /* + * NAND + */ + /* + * USB + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 + + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 + + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000540U, 0x00000000U); +/*##################################################################### */ + + /* + * USB0 PIPE POWER PRESENT + */ + /* + * Register : fpd_power_prsnt @ 0XFF9D0080 + + * This bit is used to choose between PIPE power present and 1'b1 + * PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 + + * fpd_power_prsnt + * (OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(USB3_0_FPD_POWER_PRSNT_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : fpd_pipe_clk @ 0XFF9D007C + + * This bit is used to choose between PIPE clock coming from SerDes and the + * suspend clk + * PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 + + * fpd_pipe_clk + * (OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(USB3_0_FPD_PIPE_CLK_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * SD + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_SDIO1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000040U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000040U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CTRL_REG_SD @ 0XFF180310 + + * SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled + * PSU_IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL 0 + + * SD eMMC selection + * (OFFSET, MASK, VALUE) (0XFF180310, 0x00008000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_CTRL_REG_SD_OFFSET, + 0x00008000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SD_CONFIG_REG2 @ 0XFF180320 + + * Should be set based on the final product usage 00 - Removable SCard Slot + * 01 - Embedded Slot for One Device 10 - Shared Bus Slot 11 - Reserved + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE 0 + + * 1.8V Support 1: 1.8V supported 0: 1.8V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 1 + + * 3.0V Support 1: 3.0V supported 0: 3.0V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V 0 + + * 3.3V Support 1: 3.3V supported 0: 3.3V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V 1 + + * SD Config Register 2 + * (OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x02800000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG2_OFFSET, + 0x33800000U, 0x02800000U); +/*##################################################################### */ + + /* + * SD1 BASE CLOCK + */ + /* + * Register : SD_CONFIG_REG1 @ 0XFF18031C + + * Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. + * PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc8 + + * Configures the Number of Taps (Phases) of the rxclk_in that is supported + * . + * PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT 0x28 + + * SD Config Register 1 + * (OFFSET, MASK, VALUE) (0XFF18031C, 0x7FFE0000U ,0x64500000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG1_OFFSET, + 0x7FFE0000U, 0x64500000U); +/*##################################################################### */ + + /* + * Register : SD_DLL_CTRL @ 0XFF180358 + + * Reserved. + * PSU_IOU_SLCR_SD_DLL_CTRL_RESERVED 1 + + * SDIO status register + * (OFFSET, MASK, VALUE) (0XFF180358, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_SD_DLL_CTRL_OFFSET, + 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * SD1 RETUNER + */ + /* + * Register : SD_CONFIG_REG3 @ 0XFF180324 + + * This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. S + * etting to 4'b0 disables Re-Tuning Timer. 0h - Get information via other + * source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n + * = 2(n-1) seconds -- Bh = 1024 seconds Fh - Ch = Reserved + * PSU_IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR 0X0 + + * SD Config Register 3 + * (OFFSET, MASK, VALUE) (0XFF180324, 0x03C00000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG3_OFFSET, + 0x03C00000U, 0x00000000U); +/*##################################################################### */ + + /* + * CAN + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_CAN1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000100U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000100U, 0x00000000U); +/*##################################################################### */ + + /* + * I2C + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_I2C0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_I2C1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000600U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000600U, 0x00000000U); +/*##################################################################### */ + + /* + * SWDT + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_SWDT_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00008000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00008000U, 0x00000000U); +/*##################################################################### */ + + /* + * SPI + */ + /* + * TTC + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC1_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC2_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC3_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00007800U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00007800U, 0x00000000U); +/*##################################################################### */ + + /* + * UART + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_UART0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_UART1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000006U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000006U, 0x00000000U); +/*##################################################################### */ + + /* + * UART BAUD RATE + */ + /* + * Register : Baud_rate_divider_reg0 @ 0XFF000034 + + * Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate + * PSU_UART0_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + + * Baud Rate Divider Register + * (OFFSET, MASK, VALUE) (0XFF000034, 0x000000FFU ,0x00000005U) + */ + PSU_Mask_Write(UART0_BAUD_RATE_DIVIDER_REG0_OFFSET, + 0x000000FFU, 0x00000005U); +/*##################################################################### */ + + /* + * Register : Baud_rate_gen_reg0 @ 0XFF000018 + + * Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + * PSU_UART0_BAUD_RATE_GEN_REG0_CD 0x8f + + * Baud Rate Generator Register. + * (OFFSET, MASK, VALUE) (0XFF000018, 0x0000FFFFU ,0x0000008FU) + */ + PSU_Mask_Write(UART0_BAUD_RATE_GEN_REG0_OFFSET, + 0x0000FFFFU, 0x0000008FU); +/*##################################################################### */ + + /* + * Register : Control_reg0 @ 0XFF000000 + + * Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. + * PSU_UART0_CONTROL_REG0_STPBRK 0x0 + + * Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. + * PSU_UART0_CONTROL_REG0_STTBRK 0x0 + + * Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. + * PSU_UART0_CONTROL_REG0_RSTTO 0x0 + + * Transmit disable: 0: enable transmitter 1: disable transmitter + * PSU_UART0_CONTROL_REG0_TXDIS 0x0 + + * Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. + * PSU_UART0_CONTROL_REG0_TXEN 0x1 + + * Receive disable: 0: enable 1: disable, regardless of the value of RXEN + * PSU_UART0_CONTROL_REG0_RXDIS 0x0 + + * Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. + * PSU_UART0_CONTROL_REG0_RXEN 0x1 + + * Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. + * PSU_UART0_CONTROL_REG0_TXRES 0x1 + + * Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. + * PSU_UART0_CONTROL_REG0_RXRES 0x1 + + * UART Control Register + * (OFFSET, MASK, VALUE) (0XFF000000, 0x000001FFU ,0x00000017U) + */ + PSU_Mask_Write(UART0_CONTROL_REG0_OFFSET, 0x000001FFU, 0x00000017U); +/*##################################################################### */ + + /* + * Register : mode_reg0 @ 0XFF000004 + + * Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback + * PSU_UART0_MODE_REG0_CHMODE 0x0 + + * Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved + * PSU_UART0_MODE_REG0_NBSTOP 0x0 + + * Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty + * PSU_UART0_MODE_REG0_PAR 0x4 + + * Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits + * PSU_UART0_MODE_REG0_CHRL 0x0 + + * Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 + * PSU_UART0_MODE_REG0_CLKS 0x0 + + * UART Mode Register + * (OFFSET, MASK, VALUE) (0XFF000004, 0x000003FFU ,0x00000020U) + */ + PSU_Mask_Write(UART0_MODE_REG0_OFFSET, 0x000003FFU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : Baud_rate_divider_reg0 @ 0XFF010034 + + * Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate + * PSU_UART1_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + + * Baud Rate Divider Register + * (OFFSET, MASK, VALUE) (0XFF010034, 0x000000FFU ,0x00000005U) + */ + PSU_Mask_Write(UART1_BAUD_RATE_DIVIDER_REG0_OFFSET, + 0x000000FFU, 0x00000005U); +/*##################################################################### */ + + /* + * Register : Baud_rate_gen_reg0 @ 0XFF010018 + + * Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + * PSU_UART1_BAUD_RATE_GEN_REG0_CD 0x8f + + * Baud Rate Generator Register. + * (OFFSET, MASK, VALUE) (0XFF010018, 0x0000FFFFU ,0x0000008FU) + */ + PSU_Mask_Write(UART1_BAUD_RATE_GEN_REG0_OFFSET, + 0x0000FFFFU, 0x0000008FU); +/*##################################################################### */ + + /* + * Register : Control_reg0 @ 0XFF010000 + + * Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. + * PSU_UART1_CONTROL_REG0_STPBRK 0x0 + + * Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. + * PSU_UART1_CONTROL_REG0_STTBRK 0x0 + + * Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. + * PSU_UART1_CONTROL_REG0_RSTTO 0x0 + + * Transmit disable: 0: enable transmitter 1: disable transmitter + * PSU_UART1_CONTROL_REG0_TXDIS 0x0 + + * Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. + * PSU_UART1_CONTROL_REG0_TXEN 0x1 + + * Receive disable: 0: enable 1: disable, regardless of the value of RXEN + * PSU_UART1_CONTROL_REG0_RXDIS 0x0 + + * Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. + * PSU_UART1_CONTROL_REG0_RXEN 0x1 + + * Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. + * PSU_UART1_CONTROL_REG0_TXRES 0x1 + + * Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. + * PSU_UART1_CONTROL_REG0_RXRES 0x1 + + * UART Control Register + * (OFFSET, MASK, VALUE) (0XFF010000, 0x000001FFU ,0x00000017U) + */ + PSU_Mask_Write(UART1_CONTROL_REG0_OFFSET, 0x000001FFU, 0x00000017U); +/*##################################################################### */ + + /* + * Register : mode_reg0 @ 0XFF010004 + + * Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback + * PSU_UART1_MODE_REG0_CHMODE 0x0 + + * Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved + * PSU_UART1_MODE_REG0_NBSTOP 0x0 + + * Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty + * PSU_UART1_MODE_REG0_PAR 0x4 + + * Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits + * PSU_UART1_MODE_REG0_CHRL 0x0 + + * Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 + * PSU_UART1_MODE_REG0_CLKS 0x0 + + * UART Mode Register + * (OFFSET, MASK, VALUE) (0XFF010004, 0x000003FFU ,0x00000020U) + */ + PSU_Mask_Write(UART1_MODE_REG0_OFFSET, 0x000003FFU, 0x00000020U); +/*##################################################################### */ + + /* + * GPIO + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_GPIO_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00040000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00040000U, 0x00000000U); +/*##################################################################### */ + + /* + * ADMA TZ + */ + /* + * Register : slcr_adma @ 0XFF4B0024 + + * TrustZone Classification for ADMA + * PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0XFF + + * RPU TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_ADMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * CSU TAMPERING + */ + /* + * CSU TAMPER STATUS + */ + /* + * Register : tamper_status @ 0XFFCA5000 + + * CSU regsiter + * PSU_CSU_TAMPER_STATUS_TAMPER_0 0 + + * External MIO + * PSU_CSU_TAMPER_STATUS_TAMPER_1 0 + + * JTAG toggle detect + * PSU_CSU_TAMPER_STATUS_TAMPER_2 0 + + * PL SEU error + * PSU_CSU_TAMPER_STATUS_TAMPER_3 0 + + * AMS over temperature alarm for LPD + * PSU_CSU_TAMPER_STATUS_TAMPER_4 0 + + * AMS over temperature alarm for APU + * PSU_CSU_TAMPER_STATUS_TAMPER_5 0 + + * AMS voltage alarm for VCCPINT_FPD + * PSU_CSU_TAMPER_STATUS_TAMPER_6 0 + + * AMS voltage alarm for VCCPINT_LPD + * PSU_CSU_TAMPER_STATUS_TAMPER_7 0 + + * AMS voltage alarm for VCCPAUX + * PSU_CSU_TAMPER_STATUS_TAMPER_8 0 + + * AMS voltage alarm for DDRPHY + * PSU_CSU_TAMPER_STATUS_TAMPER_9 0 + + * AMS voltage alarm for PSIO bank 0/1/2 + * PSU_CSU_TAMPER_STATUS_TAMPER_10 0 + + * AMS voltage alarm for PSIO bank 3 (dedicated pins) + * PSU_CSU_TAMPER_STATUS_TAMPER_11 0 + + * AMS voltaage alarm for GT + * PSU_CSU_TAMPER_STATUS_TAMPER_12 0 + + * Tamper Response Status + * (OFFSET, MASK, VALUE) (0XFFCA5000, 0x00001FFFU ,0x00000000U) + */ + PSU_Mask_Write(CSU_TAMPER_STATUS_OFFSET, 0x00001FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * CSU TAMPER RESPONSE + */ + /* + * CPU QOS DEFAULT + */ + /* + * Register : ACE_CTRL @ 0XFD5C0060 + + * Set ACE outgoing AWQOS value + * PSU_APU_ACE_CTRL_AWQOS 0X0 + + * Set ACE outgoing ARQOS value + * PSU_APU_ACE_CTRL_ARQOS 0X0 + + * ACE Control Register + * (OFFSET, MASK, VALUE) (0XFD5C0060, 0x000F000FU ,0x00000000U) + */ + PSU_Mask_Write(APU_ACE_CTRL_OFFSET, 0x000F000FU, 0x00000000U); +/*##################################################################### */ + + /* + * ENABLES RTC SWITCH TO BATTERY WHEN VCC_PSAUX IS NOT AVAILABLE + */ + /* + * Register : CONTROL @ 0XFFA60040 + + * Enables the RTC. By writing a 0 to this bit, RTC will be powered off and + * the only module that potentially draws current from the battery will be + * BBRAM. The value read through this bit does not necessarily reflect whe + * ther RTC is enabled or not. It is expected that RTC is enabled every tim + * e it is being configured. If RTC is not used in the design, FSBL will di + * sable it by writing a 0 to this bit. + * PSU_RTC_CONTROL_BATTERY_DISABLE 0X1 + + * This register controls various functionalities within the RTC + * (OFFSET, MASK, VALUE) (0XFFA60040, 0x80000000U ,0x80000000U) + */ + PSU_Mask_Write(RTC_CONTROL_OFFSET, 0x80000000U, 0x80000000U); +/*##################################################################### */ + + /* + * TIMESTAMP COUNTER + */ + /* + * Register : base_frequency_ID_register @ 0XFF260020 + + * Frequency in number of ticks per second. Valid range from 10 MHz to 100 + * MHz. + * PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5b9f0 + + * Program this register to match the clock frequency of the timestamp gene + * rator, in ticks per second. For example, for a 50 MHz clock, program 0x0 + * 2FAF080. This register is not accessible to the read-only programming in + * terface. + * (OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5B9F0U) + */ + PSU_Mask_Write(IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET, + 0xFFFFFFFFU, 0x05F5B9F0U); +/*##################################################################### */ + + /* + * Register : counter_control_register @ 0XFF260000 + + * Enable 0: The counter is disabled and not incrementing. 1: The counter i + * s enabled and is incrementing. + * PSU_IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN 0x1 + + * Controls the counter increments. This register is not accessible to the + * read-only programming interface. + * (OFFSET, MASK, VALUE) (0XFF260000, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * TTC SRC SELECT + */ + /* + * PCIE GPIO RESET + */ + /* + * PCIE RESET + */ + /* + * DIR MODE BANK 0 + */ + /* + * DIR MODE BANK 1 + */ + /* + * Register : DIRM_1 @ 0XFF0A0244 + + * Operation is the same as DIRM_0[DIRECTION_0] + * PSU_GPIO_DIRM_1_DIRECTION_1 0x20 + + * Direction mode (GPIO Bank1, MIO) + * (OFFSET, MASK, VALUE) (0XFF0A0244, 0x03FFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(GPIO_DIRM_1_OFFSET, 0x03FFFFFFU, 0x00000020U); +/*##################################################################### */ + + /* + * DIR MODE BANK 2 + */ + /* + * OUTPUT ENABLE BANK 0 + */ + /* + * OUTPUT ENABLE BANK 1 + */ + /* + * Register : OEN_1 @ 0XFF0A0248 + + * Operation is the same as OEN_0[OP_ENABLE_0] + * PSU_GPIO_OEN_1_OP_ENABLE_1 0x20 + + * Output enable (GPIO Bank1, MIO) + * (OFFSET, MASK, VALUE) (0XFF0A0248, 0x03FFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(GPIO_OEN_1_OFFSET, 0x03FFFFFFU, 0x00000020U); +/*##################################################################### */ + + /* + * OUTPUT ENABLE BANK 2 + */ + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0020U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * ADD 1 MS DELAY + */ + mask_delay(1); + +/*##################################################################### */ + + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x0 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0000U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0000U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * ADD 5 MS DELAY + */ + mask_delay(5); + +/*##################################################################### */ + + + return 1; } -unsigned long psu_peripherals_powerdwn_data() { - // : POWER DOWN REQUEST INTERRUPT ENABLE - // : POWER DOWN TRIGGER +unsigned long psu_post_config_data(void) +{ + /* + * POST_CONFIG + */ - return 1; + return 1; } -unsigned long psu_lpd_xppu_data() { - // : XPPU INTERRUPT ENABLE - /*Register : IEN @ 0XFF980018

+unsigned long psu_peripherals_powerdwn_data(void) +{ + /* + * POWER DOWN REQUEST INTERRUPT ENABLE + */ + /* + * POWER DOWN TRIGGER + */ - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_PARITY 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_TZ 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_PERM 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_PARITY 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_RO 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_MISS 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_INV_APB 0X1 - - Interrupt Enable Register - (OFFSET, MASK, VALUE) (0XFF980018, 0x000000EFU ,0x000000EFU) - RegMask = (LPD_XPPU_CFG_IEN_APER_PARITY_MASK | LPD_XPPU_CFG_IEN_APER_TZ_MASK | LPD_XPPU_CFG_IEN_APER_PERM_MASK | LPD_XPPU_CFG_IEN_MID_PARITY_MASK | LPD_XPPU_CFG_IEN_MID_RO_MASK | LPD_XPPU_CFG_IEN_MID_MISS_MASK | LPD_XPPU_CFG_IEN_INV_APB_MASK | 0 ); - - RegVal = ((0x00000001U << LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_APER_TZ_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_APER_PERM_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_RO_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_MISS_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_INV_APB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_XPPU_CFG_IEN_OFFSET ,0x000000EFU ,0x000000EFU); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_ddr_xmpu0_data() { +unsigned long psu_lpd_xppu_data(void) +{ + /* + * MASTER ID LIST + */ + /* + * APERTURE PERMISIION LIST + */ + /* + * APERTURE NAME: UART0, START ADDRESS: FF000000, END ADDRESS: FF00FFFF + */ + /* + * APERTURE NAME: UART1, START ADDRESS: FF010000, END ADDRESS: FF01FFFF + */ + /* + * APERTURE NAME: I2C0, START ADDRESS: FF020000, END ADDRESS: FF02FFFF + */ + /* + * APERTURE NAME: I2C1, START ADDRESS: FF030000, END ADDRESS: FF03FFFF + */ + /* + * APERTURE NAME: SPI0, START ADDRESS: FF040000, END ADDRESS: FF04FFFF + */ + /* + * APERTURE NAME: SPI1, START ADDRESS: FF050000, END ADDRESS: FF05FFFF + */ + /* + * APERTURE NAME: CAN0, START ADDRESS: FF060000, END ADDRESS: FF06FFFF + */ + /* + * APERTURE NAME: CAN1, START ADDRESS: FF070000, END ADDRESS: FF07FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09 + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09 + * FFFF + */ + /* + * APERTURE NAME: GPIO, START ADDRESS: FF0A0000, END ADDRESS: FF0AFFFF + */ + /* + * APERTURE NAME: GEM0, START ADDRESS: FF0B0000, END ADDRESS: FF0BFFFF + */ + /* + * APERTURE NAME: GEM1, START ADDRESS: FF0C0000, END ADDRESS: FF0CFFFF + */ + /* + * APERTURE NAME: GEM2, START ADDRESS: FF0D0000, END ADDRESS: FF0DFFFF + */ + /* + * APERTURE NAME: GEM3, START ADDRESS: FF0E0000, END ADDRESS: FF0EFFFF + */ + /* + * APERTURE NAME: QSPI, START ADDRESS: FF0F0000, END ADDRESS: FF0FFFFF + */ + /* + * APERTURE NAME: NAND, START ADDRESS: FF100000, END ADDRESS: FF10FFFF + */ + /* + * APERTURE NAME: TTC0, START ADDRESS: FF110000, END ADDRESS: FF11FFFF + */ + /* + * APERTURE NAME: TTC1, START ADDRESS: FF120000, END ADDRESS: FF12FFFF + */ + /* + * APERTURE NAME: TTC2, START ADDRESS: FF130000, END ADDRESS: FF13FFFF + */ + /* + * APERTURE NAME: TTC3, START ADDRESS: FF140000, END ADDRESS: FF14FFFF + */ + /* + * APERTURE NAME: SWDT, START ADDRESS: FF150000, END ADDRESS: FF15FFFF + */ + /* + * APERTURE NAME: SD0, START ADDRESS: FF160000, END ADDRESS: FF16FFFF + */ + /* + * APERTURE NAME: SD1, START ADDRESS: FF170000, END ADDRESS: FF17FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SECURE_SLCR, START ADDRESS: FF240000, END ADDRESS: FF + * 24FFFF + */ + /* + * APERTURE NAME: IOU_SCNTR, START ADDRESS: FF250000, END ADDRESS: FF25FFFF + */ + /* + * APERTURE NAME: IOU_SCNTRS, START ADDRESS: FF260000, END ADDRESS: FF26FFF + * F + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_1, START ADDRESS: FF400000, END ADDRESS: FF40F + * FFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: OCM_SLCR, START ADDRESS: FF960000, END ADDRESS: FF96FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_4, START ADDRESS: FF970000, END ADDRESS: FF97F + * FFF + */ + /* + * APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + */ + /* + * APERTURE NAME: RPU, START ADDRESS: FF9A0000, END ADDRESS: FF9AFFFF + */ + /* + * APERTURE NAME: AFIFM6, START ADDRESS: FF9B0000, END ADDRESS: FF9BFFFF + */ + /* + * APERTURE NAME: LPD_XPPU_SINK, START ADDRESS: FF9C0000, END ADDRESS: FF9C + * FFFF + */ + /* + * APERTURE NAME: USB3_0, START ADDRESS: FF9D0000, END ADDRESS: FF9DFFFF + */ + /* + * APERTURE NAME: USB3_1, START ADDRESS: FF9E0000, END ADDRESS: FF9EFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_5, START ADDRESS: FF9F0000, END ADDRESS: FF9FF + * FFF + */ + /* + * APERTURE NAME: APM0, START ADDRESS: FFA00000, END ADDRESS: FFA0FFFF + */ + /* + * APERTURE NAME: APM1, START ADDRESS: FFA10000, END ADDRESS: FFA1FFFF + */ + /* + * APERTURE NAME: APM_INTC_IOU, START ADDRESS: FFA20000, END ADDRESS: FFA2F + * FFF + */ + /* + * APERTURE NAME: APM_FPD_LPD, START ADDRESS: FFA30000, END ADDRESS: FFA3FF + * FF + */ + /* + * APERTURE NAME: LPD_UNUSED_6, START ADDRESS: FFA40000, END ADDRESS: FFA4F + * FFF + */ + /* + * APERTURE NAME: AMS, START ADDRESS: FFA50000, END ADDRESS: FFA5FFFF + */ + /* + * APERTURE NAME: RTC, START ADDRESS: FFA60000, END ADDRESS: FFA6FFFF + */ + /* + * APERTURE NAME: OCM_XMPU_CFG, START ADDRESS: FFA70000, END ADDRESS: FFA7F + * FFF + */ + /* + * APERTURE NAME: ADMA_0, START ADDRESS: FFA80000, END ADDRESS: FFA8FFFF + */ + /* + * APERTURE NAME: ADMA_1, START ADDRESS: FFA90000, END ADDRESS: FFA9FFFF + */ + /* + * APERTURE NAME: ADMA_2, START ADDRESS: FFAA0000, END ADDRESS: FFAAFFFF + */ + /* + * APERTURE NAME: ADMA_3, START ADDRESS: FFAB0000, END ADDRESS: FFABFFFF + */ + /* + * APERTURE NAME: ADMA_4, START ADDRESS: FFAC0000, END ADDRESS: FFACFFFF + */ + /* + * APERTURE NAME: ADMA_5, START ADDRESS: FFAD0000, END ADDRESS: FFADFFFF + */ + /* + * APERTURE NAME: ADMA_6, START ADDRESS: FFAE0000, END ADDRESS: FFAEFFFF + */ + /* + * APERTURE NAME: ADMA_7, START ADDRESS: FFAF0000, END ADDRESS: FFAFFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + */ + /* + * APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + */ + /* + * APERTURE NAME: CSU_LOCAL, START ADDRESS: FFC20000, END ADDRESS: FFC2FFFF + */ + /* + * APERTURE NAME: PUF, START ADDRESS: FFC30000, END ADDRESS: FFC3FFFF + */ + /* + * APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + */ + /* + * APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + */ + /* + * APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7F + * FFF + */ + /* + * APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7F + * FFF + */ + /* + * APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + */ + /* + * APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + */ + /* + * APERTURE NAME: CSU, START ADDRESS: FFCA0000, END ADDRESS: FFCAFFFF + */ + /* + * APERTURE NAME: CSU_WDT, START ADDRESS: FFCB0000, END ADDRESS: FFCBFFFF + */ + /* + * APERTURE NAME: EFUSE, START ADDRESS: FFCC0000, END ADDRESS: FFCCFFFF + */ + /* + * APERTURE NAME: BBRAM, START ADDRESS: FFCD0000, END ADDRESS: FFCDFFFF + */ + /* + * APERTURE NAME: RSA_CORE, START ADDRESS: FFCE0000, END ADDRESS: FFCEFFFF + */ + /* + * APERTURE NAME: MBISTJTAG, START ADDRESS: FFCF0000, END ADDRESS: FFCFFFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5F + * FFF + */ + /* + * APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5F + * FFF + */ + /* + * APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + */ + /* + * APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: R5_0_ATCM, START ADDRESS: FFE00000, END ADDRESS: FFE0FFFF + */ + /* + * APERTURE NAME: R5_0_ATCM_LOCKSTEP, START ADDRESS: FFE10000, END ADDRESS: + * FFE1FFFF + */ + /* + * APERTURE NAME: R5_0_BTCM, START ADDRESS: FFE20000, END ADDRESS: FFE2FFFF + */ + /* + * APERTURE NAME: R5_0_BTCM_LOCKSTEP, START ADDRESS: FFE30000, END ADDRESS: + * FFE3FFFF + */ + /* + * APERTURE NAME: R5_0_INSTRUCTION_CACHE, START ADDRESS: FFE40000, END ADDR + * ESS: FFE4FFFF + */ + /* + * APERTURE NAME: R5_0_DATA_CACHE, START ADDRESS: FFE50000, END ADDRESS: FF + * E5FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: R5_1_ATCM_, START ADDRESS: FFE90000, END ADDRESS: FFE9FFF + * F + */ + /* + * APERTURE NAME: RPU_UNUSED_10, START ADDRESS: FFEA0000, END ADDRESS: FFEA + * FFFF + */ + /* + * APERTURE NAME: R5_1_BTCM_, START ADDRESS: FFEB0000, END ADDRESS: FFEBFFF + * F + */ + /* + * APERTURE NAME: R5_1_INSTRUCTION_CACHE, START ADDRESS: FFEC0000, END ADDR + * ESS: FFECFFFF + */ + /* + * APERTURE NAME: R5_1_DATA_CACHE, START ADDRESS: FFED0000, END ADDRESS: FF + * EDFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IOU_GPV, START ADDRESS: FE000000, END ADDRESS: FE0FFFFF + */ + /* + * APERTURE NAME: LPD_GPV, START ADDRESS: FE100000, END ADDRESS: FE1FFFFF + */ + /* + * APERTURE NAME: USB3_0_XHCI, START ADDRESS: FE200000, END ADDRESS: FE2FFF + * FF + */ + /* + * APERTURE NAME: USB3_1_XHCI, START ADDRESS: FE300000, END ADDRESS: FE3FFF + * FF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: QSPI_LINEAR_ADDRESS, START ADDRESS: C0000000, END ADDRESS + * : DFFFFFFF + */ + /* + * XPPU CONTROL + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu1_data() { +unsigned long psu_ddr_xmpu0_data(void) +{ + /* + * DDR XMPU0 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu2_data() { +unsigned long psu_ddr_xmpu1_data(void) +{ + /* + * DDR XMPU1 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu3_data() { +unsigned long psu_ddr_xmpu2_data(void) +{ + /* + * DDR XMPU2 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu4_data() { +unsigned long psu_ddr_xmpu3_data(void) +{ + /* + * DDR XMPU3 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu5_data() { +unsigned long psu_ddr_xmpu4_data(void) +{ + /* + * DDR XMPU4 + */ - return 1; + return 1; } -unsigned long psu_ocm_xmpu_data() { +unsigned long psu_ddr_xmpu5_data(void) +{ + /* + * DDR XMPU5 + */ - return 1; + return 1; } -unsigned long psu_fpd_xmpu_data() { +unsigned long psu_ocm_xmpu_data(void) +{ + /* + * OCM XMPU + */ - return 1; + return 1; } -unsigned long psu_protection_lock_data() { +unsigned long psu_fpd_xmpu_data(void) +{ + /* + * FPD XMPU + */ - return 1; + return 1; } -unsigned long psu_apply_master_tz() { - // : RPU - // : DP TZ - // : SATA TZ - // : PCIE TZ - // : USB TZ - // : SD TZ - // : GEM TZ - // : QSPI TZ - // : NAND TZ +unsigned long psu_protection_lock_data(void) +{ + /* + * LOCKING PROTECTION MODULE + */ + /* + * XPPU LOCK + */ + /* + * APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + */ + /* + * XMPU LOCK + */ + /* + * LOCK OCM XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK FPD XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ - return 1; + return 1; } -unsigned long psu_serdes_init_data() { - // : SERDES INITIALIZATION - // : GT REFERENCE CLOCK SOURCE SELECTION - /*Register : PLL_REF_SEL0 @ 0XFD410000

+unsigned long psu_apply_master_tz(void) +{ + /* + * RPU + */ + /* + * DP TZ + */ + /* + * Register : slcr_dpdma @ 0XFD690040 - PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL0_PLLREFSEL0 0xD + * TrustZone classification for DisplayPort DMA + * PSU_FPD_SLCR_SECURE_SLCR_DPDMA_TZ 1 - PLL0 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410000, 0x0000001FU ,0x0000000DU) - RegMask = (SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK | 0 ); + * DPDMA TrustZone Settings + * (OFFSET, MASK, VALUE) (0XFD690040, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ - RegVal = ((0x0000000DU << SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL0_OFFSET ,0x0000001FU ,0x0000000DU); - /*############################################################################################################################ */ + /* + * SATA TZ + */ + /* + * PCIE TZ + */ + /* + * Register : slcr_pcie @ 0XFD690030 - /*Register : PLL_REF_SEL1 @ 0XFD410004

+ * TrustZone classification for DMA Channel 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0 1 - PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL1_PLLREFSEL1 0x9 + * TrustZone classification for DMA Channel 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1 1 - PLL1 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410004, 0x0000001FU ,0x00000009U) - RegMask = (SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK | 0 ); + * TrustZone classification for DMA Channel 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2 1 - RegVal = ((0x00000009U << SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL1_OFFSET ,0x0000001FU ,0x00000009U); - /*############################################################################################################################ */ + * TrustZone classification for DMA Channel 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3 1 - /*Register : PLL_REF_SEL2 @ 0XFD410008

+ * TrustZone classification for Ingress Address Translation 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0 1 - PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL2_PLLREFSEL2 0x8 + * TrustZone classification for Ingress Address Translation 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1 1 - PLL2 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410008, 0x0000001FU ,0x00000008U) - RegMask = (SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK | 0 ); + * TrustZone classification for Ingress Address Translation 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2 1 - RegVal = ((0x00000008U << SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL2_OFFSET ,0x0000001FU ,0x00000008U); - /*############################################################################################################################ */ + * TrustZone classification for Ingress Address Translation 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3 1 + + * TrustZone classification for Ingress Address Translation 4 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4 1 + + * TrustZone classification for Ingress Address Translation 5 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5 1 + + * TrustZone classification for Ingress Address Translation 6 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6 1 - /*Register : PLL_REF_SEL3 @ 0XFD41000C

- - PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL3_PLLREFSEL3 0xF - - PLL3 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD41000C, 0x0000001FU ,0x0000000FU) - RegMask = (SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK | 0 ); - - RegVal = ((0x0000000FU << SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL3_OFFSET ,0x0000001FU ,0x0000000FU); - /*############################################################################################################################ */ - - // : GT REFERENCE CLOCK FREQUENCY SELECTION - /*Register : L0_L0_REF_CLK_SEL @ 0XFD402860

- - Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer output. Set to 0 to select lane0 ref clock mux output. - PSU_SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL 0x1 - - Lane0 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402860, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L0_REF_CLK_SEL_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_L1_REF_CLK_SEL @ 0XFD402864

- - Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane1 ref clock mux output. - PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL 0x0 - - Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 slicer output from ref clock network - PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3 0x1 - - Lane1 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402864, 0x00000088U ,0x00000008U) - RegMask = (SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK | SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT - | 0x00000001U << SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L1_REF_CLK_SEL_OFFSET ,0x00000088U ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : L0_L2_REF_CLK_SEL @ 0XFD402868

- - Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane2 ref clock mux output. - PSU_SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL 0x1 - - Lane2 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402868, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L2_REF_CLK_SEL_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_L3_REF_CLK_SEL @ 0XFD40286C

- - Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer output. Set to 0 to select lane3 ref clock mux output. - PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL 0x0 - - Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 slicer output from ref clock network - PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1 0x1 - - Lane3 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD40286C, 0x00000082U ,0x00000002U) - RegMask = (SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK | SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT - | 0x00000001U << SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L3_REF_CLK_SEL_OFFSET ,0x00000082U ,0x00000002U); - /*############################################################################################################################ */ - - // : ENABLE SPREAD SPECTRUM - /*Register : L2_TM_PLL_DIG_37 @ 0XFD40A094

- - Enable/Disable coarse code satureation limiting logic - PSU_SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION 0x1 - - Test mode register 37 - (OFFSET, MASK, VALUE) (0XFD40A094, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_PLL_DIG_37_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEPS_0_LSB @ 0XFD40A368

- - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x38 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD40A368, 0x000000FFU ,0x00000038U) - RegMask = (SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x00000038U << SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x00000038U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEPS_1_MSB @ 0XFD40A36C

- - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x03 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40A36C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEPS_0_LSB @ 0XFD40E368

- - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0xE0 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD40E368, 0x000000FFU ,0x000000E0U) - RegMask = (SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x000000E0U << SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x000000E0U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEPS_1_MSB @ 0XFD40E36C

- - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40E36C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEPS_0_LSB @ 0XFD406368

- - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x58 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD406368, 0x000000FFU ,0x00000058U) - RegMask = (SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x00000058U << SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x00000058U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEPS_1_MSB @ 0XFD40636C

- - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40636C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_0_LSB @ 0XFD406370

- - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0x7C - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD406370, 0x000000FFU ,0x0000007CU) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x0000007CU << SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x0000007CU); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_1 @ 0XFD406374

- - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x33 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD406374, 0x000000FFU ,0x00000033U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x00000033U << SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x00000033U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_2 @ 0XFD406378

- - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD406378, 0x000000FFU ,0x00000002U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40637C

- - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40637C, 0x00000033U ,0x00000030U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x00000033U ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40A370

- - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xF4 - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD40A370, 0x000000FFU ,0x000000F4U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x000000F4U << SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x000000F4U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_1 @ 0XFD40A374

- - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x31 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD40A374, 0x000000FFU ,0x00000031U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x00000031U << SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x00000031U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_2 @ 0XFD40A378

- - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD40A378, 0x000000FFU ,0x00000002U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40A37C

- - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40A37C, 0x00000033U ,0x00000030U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x00000033U ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40E370

- - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xC9 - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD40E370, 0x000000FFU ,0x000000C9U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x000000C9U << SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x000000C9U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_1 @ 0XFD40E374

- - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0xD2 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD40E374, 0x000000FFU ,0x000000D2U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x000000D2U << SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x000000D2U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_2 @ 0XFD40E378

- - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x1 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD40E378, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40E37C

- - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable test mode forcing on enable Spread Spectrum - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40E37C, 0x000000B3U ,0x000000B0U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x000000B3U ,0x000000B0U); - /*############################################################################################################################ */ - - /*Register : L2_TM_DIG_6 @ 0XFD40906C

- - Bypass Descrambler - PSU_SERDES_L2_TM_DIG_6_BYPASS_DESCRAM 0x1 - - Enable Bypass for <1> TM_DIG_CTRL_6 - PSU_SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - - Data path test modes in decoder and descram - (OFFSET, MASK, VALUE) (0XFD40906C, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK | SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT - | 0x00000001U << SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_DIG_6_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L2_TX_DIG_TM_61 @ 0XFD4080F4

- - Bypass scrambler signal - PSU_SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - - Enable/disable scrambler bypass signal - PSU_SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - - MPHY PLL Gear and bypass scrambler - (OFFSET, MASK, VALUE) (0XFD4080F4, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK | SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT - | 0x00000001U << SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TX_DIG_TM_61_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_FBDIV_FRAC_3_MSB @ 0XFD40E360

- - Enable test mode force on fractional mode enable - PSU_SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC 0x1 - - Fractional feedback division control and fractional value for feedback division bits 26:24 - (OFFSET, MASK, VALUE) (0XFD40E360, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_FBDIV_FRAC_3_MSB_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_DIG_6 @ 0XFD40D06C

- - Bypass 8b10b decoder - PSU_SERDES_L3_TM_DIG_6_BYPASS_DECODER 0x1 - - Enable Bypass for <3> TM_DIG_CTRL_6 - PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC 0x1 - - Bypass Descrambler - PSU_SERDES_L3_TM_DIG_6_BYPASS_DESCRAM 0x1 - - Enable Bypass for <1> TM_DIG_CTRL_6 - PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - - Data path test modes in decoder and descram - (OFFSET, MASK, VALUE) (0XFD40D06C, 0x0000000FU ,0x0000000FU) - RegMask = (SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK | SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK | SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK | SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_DIG_6_OFFSET ,0x0000000FU ,0x0000000FU); - /*############################################################################################################################ */ - - /*Register : L3_TX_DIG_TM_61 @ 0XFD40C0F4

- - Enable/disable encoder bypass signal - PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_ENC 0x1 - - Bypass scrambler signal - PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - - Enable/disable scrambler bypass signal - PSU_SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - - MPHY PLL Gear and bypass scrambler - (OFFSET, MASK, VALUE) (0XFD40C0F4, 0x0000000BU ,0x0000000BU) - RegMask = (SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK | SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK | SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT - | 0x00000001U << SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT - | 0x00000001U << SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_DIG_TM_61_OFFSET ,0x0000000BU ,0x0000000BU); - /*############################################################################################################################ */ - - /*Register : L3_TXPMA_ST_0 @ 0XFD40CB00

- - PHY Mode: 4'b000 - PCIe, 4'b001 - USB3, 4'b0010 - SATA, 4'b0100 - SGMII, 4'b0101 - DP, 4'b1000 - MPHY - PSU_SERDES_L3_TXPMA_ST_0_TX_PHY_MODE 0x21 - - Opmode Info - (OFFSET, MASK, VALUE) (0XFD40CB00, 0x000000F0U ,0x000000F0U) - RegMask = (SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK | 0 ); - - RegVal = ((0x00000021U << SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TXPMA_ST_0_OFFSET ,0x000000F0U ,0x000000F0U); - /*############################################################################################################################ */ - - // : ENABLE CHICKEN BIT FOR PCIE AND USB - /*Register : L0_TM_AUX_0 @ 0XFD4010CC

- - Spare- not used - PSU_SERDES_L0_TM_AUX_0_BIT_2 1 - - Spare registers - (OFFSET, MASK, VALUE) (0XFD4010CC, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L0_TM_AUX_0_BIT_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_AUX_0_BIT_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_AUX_0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L2_TM_AUX_0 @ 0XFD4090CC

- - Spare- not used - PSU_SERDES_L2_TM_AUX_0_BIT_2 1 - - Spare registers - (OFFSET, MASK, VALUE) (0XFD4090CC, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L2_TM_AUX_0_BIT_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_AUX_0_BIT_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_AUX_0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - // : ENABLING EYE SURF - /*Register : L0_TM_DIG_8 @ 0XFD401074

- - Enable Eye Surf - PSU_SERDES_L0_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD401074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L1_TM_DIG_8 @ 0XFD405074

- - Enable Eye Surf - PSU_SERDES_L1_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD405074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_TM_DIG_8 @ 0XFD409074

- - Enable Eye Surf - PSU_SERDES_L2_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD409074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L3_TM_DIG_8 @ 0XFD40D074

- - Enable Eye Surf - PSU_SERDES_L3_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD40D074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - // : ILL SETTINGS FOR GAIN AND LOCK SETTINGS - /*Register : L0_TM_MISC2 @ 0XFD40189C

- - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40189C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL1 @ 0XFD4018F8

- - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4018F8, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL2 @ 0XFD4018FC

- - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4018FC, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ILL12 @ 0XFD401990

- - G1A pll ctr bypass value - PSU_SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x11 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD401990, 0x000000FFU ,0x00000011U) - RegMask = (SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000011U << SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ILL12_OFFSET ,0x000000FFU ,0x00000011U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL1 @ 0XFD401924

- - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x4 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD401924, 0x000000FFU ,0x00000004U) - RegMask = (SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x00000004U << SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL1_OFFSET ,0x000000FFU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL2 @ 0XFD401928

- - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0xFE - - epi cal code - (OFFSET, MASK, VALUE) (0XFD401928, 0x000000FFU ,0x000000FEU) - RegMask = (SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x000000FEU << SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL2_OFFSET ,0x000000FFU ,0x000000FEU); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL3 @ 0XFD401900

- - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD401900, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL3 @ 0XFD40192C

- - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40192C, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ILL8 @ 0XFD401980

- - ILL calibration code change wait time - PSU_SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD401980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL8 @ 0XFD401914

- - IQ ILL polytrim bypass value - PSU_SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD401914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL9 @ 0XFD401918

- - bypass IQ polytrim - PSU_SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD401918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL8 @ 0XFD401940

- - E ILL polytrim bypass value - PSU_SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD401940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL9 @ 0XFD401944

- - bypass E polytrim - PSU_SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD401944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L2_TM_MISC2 @ 0XFD40989C

- - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40989C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL1 @ 0XFD4098F8

- - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4098F8, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL2 @ 0XFD4098FC

- - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4098FC, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_ILL12 @ 0XFD409990

- - G1A pll ctr bypass value - PSU_SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x10 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD409990, 0x000000FFU ,0x00000010U) - RegMask = (SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000010U << SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ILL12_OFFSET ,0x000000FFU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL1 @ 0XFD409924

- - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0xFE - - epi cal code - (OFFSET, MASK, VALUE) (0XFD409924, 0x000000FFU ,0x000000FEU) - RegMask = (SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x000000FEU << SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL1_OFFSET ,0x000000FFU ,0x000000FEU); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL2 @ 0XFD409928

- - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD409928, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL2_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL3 @ 0XFD409900

- - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD409900, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL3 @ 0XFD40992C

- - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40992C, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L2_TM_ILL8 @ 0XFD409980

- - ILL calibration code change wait time - PSU_SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD409980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL8 @ 0XFD409914

- - IQ ILL polytrim bypass value - PSU_SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD409914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL9 @ 0XFD409918

- - bypass IQ polytrim - PSU_SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD409918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL8 @ 0XFD409940

- - E ILL polytrim bypass value - PSU_SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD409940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL9 @ 0XFD409944

- - bypass E polytrim - PSU_SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD409944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_MISC2 @ 0XFD40D89C

- - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40D89C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL1 @ 0XFD40D8F8

- - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D8F8, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL2 @ 0XFD40D8FC

- - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D8FC, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL12 @ 0XFD40D990

- - G1A pll ctr bypass value - PSU_SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x1 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD40D990, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL12_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL1 @ 0XFD40D924

- - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x9C - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D924, 0x000000FFU ,0x0000009CU) - RegMask = (SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000009CU << SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL1_OFFSET ,0x000000FFU ,0x0000009CU); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL2 @ 0XFD40D928

- - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x39 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D928, 0x000000FFU ,0x00000039U) - RegMask = (SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000039U << SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL2_OFFSET ,0x000000FFU ,0x00000039U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL11 @ 0XFD40D98C

- - G2A_PCIe1 PLL ctr bypass value - PSU_SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL 0x2 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD40D98C, 0x000000F0U ,0x00000020U) - RegMask = (SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL11_OFFSET ,0x000000F0U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL3 @ 0XFD40D900

- - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D900, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL3 @ 0XFD40D92C

- - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x64 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D92C, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL8 @ 0XFD40D980

- - ILL calibration code change wait time - PSU_SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD40D980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL8 @ 0XFD40D914

- - IQ ILL polytrim bypass value - PSU_SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD40D914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL9 @ 0XFD40D918

- - bypass IQ polytrim - PSU_SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD40D918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL8 @ 0XFD40D940

- - E ILL polytrim bypass value - PSU_SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD40D940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL9 @ 0XFD40D944

- - bypass E polytrim - PSU_SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD40D944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : SYMBOL LOCK AND WAIT - /*Register : L0_TM_DIG_21 @ 0XFD4010A8

- - pre lock comma count threshold. 2'b 00 : 3, 2'b 01 : 5, 2'b 10 : 10, 2'b 11 : 20 - PSU_SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH 0x11 - - Control symbol alignment locking - wait counts - (OFFSET, MASK, VALUE) (0XFD4010A8, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK | 0 ); - - RegVal = ((0x00000011U << SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_21_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L0_TM_DIG_10 @ 0XFD40107C

- - CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 - PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0xF - - test control for changing cdr lock wait time - (OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x0000000FU) - RegMask = (SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK | 0 ); - - RegVal = ((0x0000000FU << SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_10_OFFSET ,0x0000000FU ,0x0000000FU); - /*############################################################################################################################ */ - - // : SIOU SETTINGS FOR BYPASS CONTROL,HSRX-DIG - /*Register : L0_TM_RST_DLY @ 0XFD4019A4

- - Delay apb reset by specified amount - PSU_SERDES_L0_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4019A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L0_TM_ANA_BYP_15 @ 0XFD401038

- - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD401038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ANA_BYP_12 @ 0XFD40102C

- - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40102C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L1_TM_RST_DLY @ 0XFD4059A4

- - Delay apb reset by specified amount - PSU_SERDES_L1_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4059A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L1_TM_ANA_BYP_15 @ 0XFD405038

- - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD405038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L1_TM_ANA_BYP_12 @ 0XFD40502C

- - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40502C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L2_TM_RST_DLY @ 0XFD4099A4

- - Delay apb reset by specified amount - PSU_SERDES_L2_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4099A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L2_TM_ANA_BYP_15 @ 0XFD409038

- - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD409038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L2_TM_ANA_BYP_12 @ 0XFD40902C

- - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40902C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_RST_DLY @ 0XFD40D9A4

- - Delay apb reset by specified amount - PSU_SERDES_L3_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD40D9A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L3_TM_ANA_BYP_15 @ 0XFD40D038

- - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD40D038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ANA_BYP_12 @ 0XFD40D02C

- - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40D02C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - // : GT LANE SETTINGS - /*Register : ICM_CFG0 @ 0XFD410010

- - Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unuse - , 7 - Unused - PSU_SERDES_ICM_CFG0_L0_ICM_CFG 1 - - Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG0_L1_ICM_CFG 4 - - ICM Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD410010, 0x00000077U ,0x00000041U) - RegMask = (SERDES_ICM_CFG0_L0_ICM_CFG_MASK | SERDES_ICM_CFG0_L1_ICM_CFG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT - | 0x00000004U << SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_ICM_CFG0_OFFSET ,0x00000077U ,0x00000041U); - /*############################################################################################################################ */ - - /*Register : ICM_CFG1 @ 0XFD410014

- - Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG1_L2_ICM_CFG 3 - - Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG1_L3_ICM_CFG 2 - - ICM Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD410014, 0x00000077U ,0x00000023U) - RegMask = (SERDES_ICM_CFG1_L2_ICM_CFG_MASK | SERDES_ICM_CFG1_L3_ICM_CFG_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT - | 0x00000002U << SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_ICM_CFG1_OFFSET ,0x00000077U ,0x00000023U); - /*############################################################################################################################ */ - - // : CHECKING PLL LOCK - // : ENABLE SERIAL DATA MUX DEEMPH - /*Register : L1_TXPMD_TM_45 @ 0XFD404CB4

- - Enable/disable DP post2 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH 0x1 - - Override enable/disable of DP post2 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH 0x1 - - Override enable/disable of DP post1 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH 0x1 - - Enable/disable DP main path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH 0x1 - - Override enable/disable of DP main path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH 0x1 - - Post or pre or main DP path selection - (OFFSET, MASK, VALUE) (0XFD404CB4, 0x00000037U ,0x00000037U) - RegMask = (SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TXPMD_TM_45_OFFSET ,0x00000037U ,0x00000037U); - /*############################################################################################################################ */ - - /*Register : L1_TX_ANA_TM_118 @ 0XFD4041D8

- - Test register force for enabling/disablign TX deemphasis bits <17:0> - PSU_SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 - - Enable Override of TX deemphasis - (OFFSET, MASK, VALUE) (0XFD4041D8, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TX_ANA_TM_118_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TX_ANA_TM_118 @ 0XFD40C1D8

- - Test register force for enabling/disablign TX deemphasis bits <17:0> - PSU_SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 - - Enable Override of TX deemphasis - (OFFSET, MASK, VALUE) (0XFD40C1D8, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_ANA_TM_118_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : CDR AND RX EQUALIZATION SETTINGS - /*Register : L3_TM_CDR5 @ 0XFD40DC14

- - FPHL FSM accumulate cycles - PSU_SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES 0x7 - - FFL Phase0 int gain aka 2ol SD update rate - PSU_SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN 0x6 - - Fast phase lock controls -- FSM accumulator cycle control and phase 0 int gain control. - (OFFSET, MASK, VALUE) (0XFD40DC14, 0x000000FFU ,0x000000E6U) - RegMask = (SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK | SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK | 0 ); - - RegVal = ((0x00000007U << SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT - | 0x00000006U << SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_CDR5_OFFSET ,0x000000FFU ,0x000000E6U); - /*############################################################################################################################ */ - - /*Register : L3_TM_CDR16 @ 0XFD40DC40

- - FFL Phase0 prop gain aka 1ol SD update rate - PSU_SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN 0xC - - Fast phase lock controls -- phase 0 prop gain - (OFFSET, MASK, VALUE) (0XFD40DC40, 0x0000001FU ,0x0000000CU) - RegMask = (SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK | 0 ); - - RegVal = ((0x0000000CU << SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_CDR16_OFFSET ,0x0000001FU ,0x0000000CU); - /*############################################################################################################################ */ - - /*Register : L3_TM_EQ0 @ 0XFD40D94C

- - EQ stg 2 controls BYPASSED - PSU_SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP 1 - - eq stg1 and stg2 controls - (OFFSET, MASK, VALUE) (0XFD40D94C, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_EQ0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L3_TM_EQ1 @ 0XFD40D950

- - EQ STG2 RL PROG - PSU_SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG 0x2 - - EQ stg 2 preamp mode val - PSU_SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL 0x1 - - eq stg1 and stg2 controls - (OFFSET, MASK, VALUE) (0XFD40D950, 0x00000007U ,0x00000006U) - RegMask = (SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK | SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT - | 0x00000001U << SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_EQ1_OFFSET ,0x00000007U ,0x00000006U); - /*############################################################################################################################ */ - - // : GEM SERDES SETTINGS - // : ENABLE PRE EMPHAIS AND VOLTAGE SWING - /*Register : L1_TXPMD_TM_48 @ 0XFD404CC0

- - Margining factor value - PSU_SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR 0 - - Margining factor - (OFFSET, MASK, VALUE) (0XFD404CC0, 0x0000001FU ,0x00000000U) - RegMask = (SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TXPMD_TM_48_OFFSET ,0x0000001FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L1_TX_ANA_TM_18 @ 0XFD404048

- - pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved - PSU_SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0 - - Override for PIPE TX de-emphasis - (OFFSET, MASK, VALUE) (0XFD404048, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TX_ANA_TM_18_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L3_TX_ANA_TM_18 @ 0XFD40C048

- - pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved - PSU_SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0x1 - - Override for PIPE TX de-emphasis - (OFFSET, MASK, VALUE) (0XFD40C048, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_ANA_TM_18_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - - return 1; + * TrustZone classification for Ingress Address Translation 7 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7 1 + + * TrustZone classification for Egress Address Translation 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0 1 + + * TrustZone classification for Egress Address Translation 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1 1 + + * TrustZone classification for Egress Address Translation 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2 1 + + * TrustZone classification for Egress Address Translation 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3 1 + + * TrustZone classification for Egress Address Translation 4 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4 1 + + * TrustZone classification for Egress Address Translation 5 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5 1 + + * TrustZone classification for Egress Address Translation 6 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6 1 + + * TrustZone classification for Egress Address Translation 7 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7 1 + + * TrustZone classification for DMA Registers + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS 1 + + * TrustZone classification for MSIx Table + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE 1 + + * TrustZone classification for MSIx PBA + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA 1 + + * TrustZone classification for ECAM + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM 1 + + * TrustZone classification for Bridge Common Registers + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS 1 + + * PCIe TrustZone settings. This register may only be modified during bootu + * p (while PCIe block is disabled) + * (OFFSET, MASK, VALUE) (0XFD690030, 0x01FFFFFFU ,0x01FFFFFFU) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_PCIE_OFFSET, + 0x01FFFFFFU, 0x01FFFFFFU); +/*##################################################################### */ + + /* + * USB TZ + */ + /* + * Register : slcr_usb @ 0XFF4B0034 + + * TrustZone Classification for USB3_0 + * PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0 1 + + * TrustZone Classification for USB3_1 + * PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1 1 + + * USB3 TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0034, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_USB_OFFSET, + 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * SD TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x003F0000U ,0x00120000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x003F0000U, 0x00120000U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x003F0000U ,0x00120000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x003F0000U, 0x00120000U); +/*##################################################################### */ + + /* + * GEM TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x00000FFFU ,0x00000492U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x00000FFFU, 0x00000492U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x00000FFFU ,0x00000492U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x00000FFFU, 0x00000492U); +/*##################################################################### */ + + /* + * QSPI TZ + */ + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x0E000000U ,0x04000000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x0E000000U, 0x04000000U); +/*##################################################################### */ + + /* + * NAND TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x01C00000U ,0x00800000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x01C00000U, 0x00800000U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x01C00000U ,0x00800000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x01C00000U, 0x00800000U); +/*##################################################################### */ + + /* + * DMA TZ + */ + /* + * Register : slcr_adma @ 0XFF4B0024 + + * TrustZone Classification for ADMA + * PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0xFF + + * RPU TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_ADMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : slcr_gdma @ 0XFD690050 + + * TrustZone Classification for GDMA + * PSU_FPD_SLCR_SECURE_SLCR_GDMA_TZ 0xFF + + * GDMA Trustzone Settings + * (OFFSET, MASK, VALUE) (0XFD690050, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_GDMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + + return 1; } -unsigned long psu_resetout_init_data() { - // : TAKING SERDES PERIPHERAL OUT OF RESET RESET - // : PUTTING USB0 IN RESET - /*Register : RST_LPD_TOP @ 0XFF5E023C

+unsigned long psu_serdes_init_data(void) +{ + /* + * SERDES INITIALIZATION + */ + /* + * GT REFERENCE CLOCK SOURCE SELECTION + */ + /* + * Register : PLL_REF_SEL0 @ 0XFD410000 + + * PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL0_PLLREFSEL0 0xD + + * PLL0 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410000, 0x0000001FU ,0x0000000DU) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL0_OFFSET, 0x0000001FU, 0x0000000DU); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL1 @ 0XFD410004 + + * PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL1_PLLREFSEL1 0x9 + + * PLL1 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410004, 0x0000001FU ,0x00000009U) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL1_OFFSET, 0x0000001FU, 0x00000009U); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL2 @ 0XFD410008 + + * PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL2_PLLREFSEL2 0x8 + + * PLL2 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410008, 0x0000001FU ,0x00000008U) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL2_OFFSET, 0x0000001FU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL3 @ 0XFD41000C + + * PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL3_PLLREFSEL3 0xF + + * PLL3 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD41000C, 0x0000001FU ,0x0000000FU) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL3_OFFSET, 0x0000001FU, 0x0000000FU); +/*##################################################################### */ + + /* + * GT REFERENCE CLOCK FREQUENCY SELECTION + */ + /* + * Register : L0_L0_REF_CLK_SEL @ 0XFD402860 + + * Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer outp + * ut. Set to 0 to select lane0 ref clock mux output. + * PSU_SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL 0x1 + + * Lane0 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402860, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_L0_REF_CLK_SEL_OFFSET, + 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_L1_REF_CLK_SEL @ 0XFD402864 + + * Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane1 ref clock mux output. + * PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL 0x0 + + * Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 sli + * cer output from ref clock network + * PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3 0x1 + + * Lane1 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402864, 0x00000088U ,0x00000008U) + */ + PSU_Mask_Write(SERDES_L0_L1_REF_CLK_SEL_OFFSET, + 0x00000088U, 0x00000008U); +/*##################################################################### */ + + /* + * Register : L0_L2_REF_CLK_SEL @ 0XFD402868 + + * Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane2 ref clock mux output. + * PSU_SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL 0x1 + + * Lane2 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402868, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_L2_REF_CLK_SEL_OFFSET, + 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_L3_REF_CLK_SEL @ 0XFD40286C + + * Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer outp + * ut. Set to 0 to select lane3 ref clock mux output. + * PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL 0x0 + + * Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 sli + * cer output from ref clock network + * PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1 0x1 + + * Lane3 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD40286C, 0x00000082U ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L0_L3_REF_CLK_SEL_OFFSET, + 0x00000082U, 0x00000002U); +/*##################################################################### */ + + /* + * ENABLE SPREAD SPECTRUM + */ + /* + * Register : L2_TM_PLL_DIG_37 @ 0XFD40A094 + + * Enable/Disable coarse code satureation limiting logic + * PSU_SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION 0x1 + + * Test mode register 37 + * (OFFSET, MASK, VALUE) (0XFD40A094, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_PLL_DIG_37_OFFSET, + 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEPS_0_LSB @ 0XFD40A368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x38 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD40A368, 0x000000FFU ,0x00000038U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x00000038U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEPS_1_MSB @ 0XFD40A36C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x03 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40A36C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L3_PLL_SS_STEPS_0_LSB @ 0XFD40E368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0xE0 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD40E368, 0x000000FFU ,0x000000E0U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x000000E0U); +/*##################################################################### */ + + /* + * Register : L3_PLL_SS_STEPS_1_MSB @ 0XFD40E36C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40E36C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEPS_0_LSB @ 0XFD406368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x58 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD406368, 0x000000FFU ,0x00000058U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x00000058U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEPS_1_MSB @ 0XFD40636C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40636C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_0_LSB @ 0XFD406370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0x7C + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD406370, 0x000000FFU ,0x0000007CU) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x0000007CU); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_1 @ 0XFD406374 + + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x33 + + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD406374, 0x000000FFU ,0x00000033U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x00000033U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_2 @ 0XFD406378 + + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 + + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD406378, 0x000000FFU ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40637C + + * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 + + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 + + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40637C, 0x00000033U ,0x00000030U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x00000033U, 0x00000030U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40A370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xF4 + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD40A370, 0x000000FFU ,0x000000F4U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x000000F4U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_1 @ 0XFD40A374 + + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x31 + + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD40A374, 0x000000FFU ,0x00000031U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x00000031U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_2 @ 0XFD40A378 - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X0 + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 + + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD40A378, 0x000000FFU ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40A37C - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000400U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | 0 ); + * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000400U ,0x00000000U); - /*############################################################################################################################ */ + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 + + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40A37C, 0x00000033U ,0x00000030U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x00000033U, 0x00000030U); +/*##################################################################### */ - // : USB0 PIPE POWER PRESENT - /*Register : fpd_power_prsnt @ 0XFF9D0080

+ /* + * Register : L3_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40E370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xC9 + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD40E370, 0x000000FFU ,0x000000C9U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x000000C9U); +/*##################################################################### */ - This bit is used to choose between PIPE power present and 1'b1 - PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 + /* + * Register : L3_PLL_SS_STEP_SIZE_1 @ 0XFD40E374 - fpd_power_prsnt - (OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) - RegMask = (USB3_0_FPD_POWER_PRSNT_OPTION_MASK | 0 ); + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0xD2 - RegVal = ((0x00000001U << USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_FPD_POWER_PRSNT_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD40E374, 0x000000FFU ,0x000000D2U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x000000D2U); +/*##################################################################### */ - /*Register : fpd_pipe_clk @ 0XFF9D007C

+ /* + * Register : L3_PLL_SS_STEP_SIZE_2 @ 0XFD40E378 - This bit is used to choose between PIPE clock coming from SerDes and the suspend clk - PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x1 - fpd_pipe_clk - (OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) - RegMask = (USB3_0_FPD_PIPE_CLK_OPTION_MASK | 0 ); + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD40E378, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000001U); +/*##################################################################### */ - RegVal = ((0x00000000U << USB3_0_FPD_PIPE_CLK_OPTION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_FPD_PIPE_CLK_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : L3_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40E37C - // : - /*Register : RST_LPD_TOP @ 0XFF5E023C

+ * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X0 + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X0 + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable test mode forcing on enable Spread Spectrum + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS 0x1 - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000140U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40E37C, 0x000000B3U ,0x000000B0U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x000000B3U, 0x000000B0U); +/*##################################################################### */ - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000140U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : L2_TM_DIG_6 @ 0XFD40906C - // : PUTTING GEM0 IN RESET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

+ * Bypass Descrambler + * PSU_SERDES_L2_TM_DIG_6_BYPASS_DESCRAM 0x1 - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X0 + * Enable Bypass for <1> TM_DIG_CTRL_6 + * PSU_SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * Data path test modes in decoder and descram + * (OFFSET, MASK, VALUE) (0XFD40906C, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_6_OFFSET, 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L2_TX_DIG_TM_61 @ 0XFD4080F4 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ + * Bypass scrambler signal + * PSU_SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - // : PUTTING SATA IN RESET - /*Register : sata_misc_ctrl @ 0XFD3D0100

+ * Enable/disable scrambler bypass signal + * PSU_SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 + + * MPHY PLL Gear and bypass scrambler + * (OFFSET, MASK, VALUE) (0XFD4080F4, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_TX_DIG_TM_61_OFFSET, + 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L3_PLL_FBDIV_FRAC_3_MSB @ 0XFD40E360 + + * Enable test mode force on fractional mode enable + * PSU_SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC 0x1 + + * Fractional feedback division control and fractional value for feedback d + * ivision bits 26:24 + * (OFFSET, MASK, VALUE) (0XFD40E360, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_PLL_FBDIV_FRAC_3_MSB_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ - Sata PM clock control select - PSU_SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL 0x3 + /* + * Register : L3_TM_DIG_6 @ 0XFD40D06C + + * Bypass 8b10b decoder + * PSU_SERDES_L3_TM_DIG_6_BYPASS_DECODER 0x1 - Misc Contorls for SATA.This register may only be modified during bootup (while SATA block is disabled) - (OFFSET, MASK, VALUE) (0XFD3D0100, 0x00000003U ,0x00000003U) - RegMask = (SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK | 0 ); + * Enable Bypass for <3> TM_DIG_CTRL_6 + * PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC 0x1 - RegVal = ((0x00000003U << SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SIOU_SATA_MISC_CTRL_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ + * Bypass Descrambler + * PSU_SERDES_L3_TM_DIG_6_BYPASS_DESCRAM 0x1 - /*Register : RST_FPD_TOP @ 0XFD1A0100

+ * Enable Bypass for <1> TM_DIG_CTRL_6 + * PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 + + * Data path test modes in decoder and descram + * (OFFSET, MASK, VALUE) (0XFD40D06C, 0x0000000FU ,0x0000000FU) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_6_OFFSET, 0x0000000FU, 0x0000000FU); +/*##################################################################### */ + + /* + * Register : L3_TX_DIG_TM_61 @ 0XFD40C0F4 + + * Enable/disable encoder bypass signal + * PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_ENC 0x1 + + * Bypass scrambler signal + * PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM 0x1 + + * Enable/disable scrambler bypass signal + * PSU_SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING PCIE CFG AND BRIDGE IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

- - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X0 - - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000C0000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000C0000U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING DP IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

- - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_DP_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00010000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DP_PHY_RESET @ 0XFD4A0200

- - Set to '1' to hold the GT in reset. Clear to release. - PSU_DP_DP_PHY_RESET_GT_RESET 0X0 - - Reset the transmitter PHY. - (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000000U) - RegMask = (DP_DP_PHY_RESET_GT_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << DP_DP_PHY_RESET_GT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_PHY_RESET_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

- - Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1 - PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0X0 - - Control PHY Power down - (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x00000000U) - RegMask = (DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK | 0 ); - - RegVal = ((0x00000000U << DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_TX_PHY_POWER_DOWN_OFFSET ,0x0000000FU ,0x00000000U); - /*############################################################################################################################ */ - - // : USB0 GFLADJ - /*Register : GUSB2PHYCFG @ 0XFE20C200

- - USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to - he Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). The following are the required values for the minimum S - C bus frequency of 60 MHz. USB turnaround time is a critical certification criteria when using long cables and five hub level - . The required values for this field: - 4'h5: When the MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit - UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround time is not critical, this field can be set to a larger - alue. Note: This field is valid only in device mode. - PSU_USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM 0x9 - - Transceiver Delay: Enables a delay between the assertion of the UTMI/ULPI Transceiver Select signal (for HS) and the assertio - of the TxValid signal during a HS Chirp. When this bit is set to 1, a delay (of approximately 2.5 us) is introduced from the - time when the Transceiver Select is set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the chirp-K. This de - ay is required for some UTMI/ULPI PHYs. Note: - If you enable the hibernation feature when the device core comes out of power - off, you must re-initialize this bit with the appropriate value because the core does not save and restore this bit value dur - ng hibernation. - This bit is valid only in device mode. - PSU_USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY 0x0 - - Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application uses this bit to control utmi_sleep_n and utmi_l1_suspen - _n assertion to the PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is not transferre - to the external PHY. - 1'b1: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is transferred to the external PHY. - ote: This bit must be set high for Port0 if PHY is used. Note: In Device mode - Before issuing any device endpoint command wh - n operating in 2.0 speeds, disable this bit and enable it after the command completes. Without disabling this bit, if a comma - d is issued when the device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get complet - d. - PSU_USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM 0x0 - - USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select The application uses this bit to select a high-speed P - Y or a full-speed transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is always 0, with Write Only access. - - 'b1: USB 1.1 full-speed serial transceiver. This bit is always 1, with Write Only access. If both interface types are selecte - in coreConsultant (that is, parameters' values are not zero), the application uses this bit to select the active interface i - active, with Read-Write bit access. Note: USB 1.1 full-serial transceiver is not supported. This bit always reads as 1'b0. - PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYSEL 0x0 - - Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select a unidirectional or bidirectional USB 1.1 - full-speed serial transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial interface. This bit is set to 0 with - ead Only access. - 1'b1: 3-pin bidirectional full-speed serial interface. This bit is set to 0 with Read Only access. Note: U - B 1.1 full-speed serial interface is not supported. This bit always reads as 1'b0. - PSU_USB3_0_XHCI_GUSB2PHYCFG_FSINTF 0x0 - - ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interfa - e - 1'b1: ULPI Interface This bit is writable only if UTMI+ and ULPI is specified for High-Speed PHY Interface(s) in coreCons - ltant configuration (DWC_USB3_HSPHY_INTERFACE = 3). Otherwise, this bit is read-only and the value depends on the interface s - lected through DWC_USB3_HSPHY_INTERFACE. - PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL 0x1 - - PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bit to configure the core to support a UTMI+ PHY with a - 8- or 16-bit interface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the enabled 2.0 ports must have the same - lock frequency as Port0 clock frequency (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used together for differen - ports at the same time (that is, all the ports must be in 8-bit mode, or all of them must be in 16-bit mode, at a time). - I - any of the USB 2.0 ports is selected as ULPI port for operation, then all the USB 2.0 ports must be operating at 60 MHz. - PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYIF 0x0 - - HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicated by the application in this field, is multiplied by - a bit-time factor; this factor is added to the high-speed/full-speed interpacket timeout duration in the core to account for - dditional delays introduced by the PHY. This may be required, since the delay introduced by the PHY in generating the linesta - e condition may vary among PHYs. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. - The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this - ield based on the speed of connection. The number of bit times added per PHY clock are: High-speed operation: - One 30-MHz PH - clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One - 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times - PSU_USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL 0x7 - - Global USB2 PHY Configuration Register The application must program this register before starting any transactions on either - he SoC bus or the USB. In Device-only configurations, only one register is needed. In Host mode, per-port registers are imple - ented. - (OFFSET, MASK, VALUE) (0XFE20C200, 0x00003FBFU ,0x00002417U) - RegMask = (USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK | USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK | USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK | USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK | USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK | USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK | USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK | USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK | 0 ); - - RegVal = ((0x00000009U << USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT - | 0x00000001U << USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT - | 0x00000007U << USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_XHCI_GUSB2PHYCFG_OFFSET ,0x00003FBFU ,0x00002417U); - /*############################################################################################################################ */ - - /*Register : GFLADJ @ 0XFE20C630

- - This field indicates the frame length adjustment to be applied when SOF/ITP counter is running on the ref_clk. This register - alue is used to adjust the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP interval when GLADJ.GFLADJ_REFCLK_LP - _SEL is set to '1'. This field must be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set to '1' or GCTL.SOF - TPSYNC is set to '1'. The value is derived as follows: FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_p - riod)) * ref_clk_period where - the ref_clk_period_integer is the integer value of the ref_clk period got by truncating the d - cimal (fractional) value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_clk_period is the ref_clk period inc - uding the fractional value. Examples: If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLADJ_REFCLK_FLADJ = - ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignoring the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_P - RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*20.8333 = 5208 (ignoring the fractional value) - PSU_USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ 0x0 - - Global Frame Length Adjustment Register This register provides options for the software to control the core behavior with res - ect to SOF (Start of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer functionality. It provides an optio - to override the fladj_30mhz_reg sideband signal. In addition, it enables running SOF or ITP frame timer counters completely - rom the ref_clk. This facilitates hardware LPM in host mode with the SOF or ITP counters being run from the ref_clk signal. - (OFFSET, MASK, VALUE) (0XFE20C630, 0x003FFF00U ,0x00000000U) - RegMask = (USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK | 0 ); - - RegVal = ((0x00000000U << USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_XHCI_GFLADJ_OFFSET ,0x003FFF00U ,0x00000000U); - /*############################################################################################################################ */ - - // : UPDATING TWO PCIE REGISTERS DEFAULT VALUES, AS THESE REGISTERS HAVE INCORRECT RESET VALUES IN SILICON. - /*Register : ATTR_25 @ 0XFD480064

- - If TRUE Completion Timeout Disable is supported. This is required to be TRUE for Endpoint and either setting allowed for Root - ports. Drives Device Capability 2 [4]; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED 0X1 - - ATTR_25 - (OFFSET, MASK, VALUE) (0XFD480064, 0x00000200U ,0x00000200U) - RegMask = (PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_25_OFFSET ,0x00000200U ,0x00000200U); - /*############################################################################################################################ */ - - // : PCIE SETTINGS - /*Register : ATTR_7 @ 0XFD48001C

- - Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0x0004; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_7_ATTR_BAR0 0x0 - - ATTR_7 - (OFFSET, MASK, VALUE) (0XFD48001C, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_7_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_8 @ 0XFD480020

- - Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0xFFF0; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_8_ATTR_BAR0 0x0 - - ATTR_8 - (OFFSET, MASK, VALUE) (0XFD480020, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_8_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_9 @ 0XFD480024

- - Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_9_ATTR_BAR1 0x0 - - ATTR_9 - (OFFSET, MASK, VALUE) (0XFD480024, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_9_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_10 @ 0XFD480028

- - Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_10_ATTR_BAR1 0x0 - - ATTR_10 - (OFFSET, MASK, VALUE) (0XFD480028, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_10_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_11 @ 0XFD48002C

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFFF - PSU_PCIE_ATTRIB_ATTR_11_ATTR_BAR2 0xFFFF - - ATTR_11 - (OFFSET, MASK, VALUE) (0XFD48002C, 0x0000FFFFU ,0x0000FFFFU) - RegMask = (PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK | 0 ); - - RegVal = ((0x0000FFFFU << PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_11_OFFSET ,0x0000FFFFU ,0x0000FFFFU); - /*############################################################################################################################ */ - - /*Register : ATTR_12 @ 0XFD480030

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0x00FF - PSU_PCIE_ATTRIB_ATTR_12_ATTR_BAR2 0xFF - - ATTR_12 - (OFFSET, MASK, VALUE) (0XFD480030, 0x0000FFFFU ,0x000000FFU) - RegMask = (PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK | 0 ); - - RegVal = ((0x000000FFU << PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_12_OFFSET ,0x0000FFFFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : ATTR_13 @ 0XFD480034

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_13_ATTR_BAR3 0x0 - - ATTR_13 - (OFFSET, MASK, VALUE) (0XFD480034, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_13_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_14 @ 0XFD480038

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFFF - PSU_PCIE_ATTRIB_ATTR_14_ATTR_BAR3 0xFFFF - - ATTR_14 - (OFFSET, MASK, VALUE) (0XFD480038, 0x0000FFFFU ,0x0000FFFFU) - RegMask = (PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK | 0 ); - - RegVal = ((0x0000FFFFU << PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_14_OFFSET ,0x0000FFFFU ,0x0000FFFFU); - /*############################################################################################################################ */ - - /*Register : ATTR_15 @ 0XFD48003C

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFF0 - PSU_PCIE_ATTRIB_ATTR_15_ATTR_BAR4 0xFFF0 - - ATTR_15 - (OFFSET, MASK, VALUE) (0XFD48003C, 0x0000FFFFU ,0x0000FFF0U) - RegMask = (PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK | 0 ); - - RegVal = ((0x0000FFF0U << PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_15_OFFSET ,0x0000FFFFU ,0x0000FFF0U); - /*############################################################################################################################ */ - - /*Register : ATTR_16 @ 0XFD480040

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0xFFF0 - PSU_PCIE_ATTRIB_ATTR_16_ATTR_BAR4 0xFFF0 - - ATTR_16 - (OFFSET, MASK, VALUE) (0XFD480040, 0x0000FFFFU ,0x0000FFF0U) - RegMask = (PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK | 0 ); - - RegVal = ((0x0000FFF0U << PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_16_OFFSET ,0x0000FFFFU ,0x0000FFF0U); - /*############################################################################################################################ */ - - /*Register : ATTR_17 @ 0XFD480044

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 - PSU_PCIE_ATTRIB_ATTR_17_ATTR_BAR5 0xFFF1 - - ATTR_17 - (OFFSET, MASK, VALUE) (0XFD480044, 0x0000FFFFU ,0x0000FFF1U) - RegMask = (PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK | 0 ); - - RegVal = ((0x0000FFF1U << PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_17_OFFSET ,0x0000FFFFU ,0x0000FFF1U); - /*############################################################################################################################ */ - - /*Register : ATTR_18 @ 0XFD480048

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 - PSU_PCIE_ATTRIB_ATTR_18_ATTR_BAR5 0xFFF1 - - ATTR_18 - (OFFSET, MASK, VALUE) (0XFD480048, 0x0000FFFFU ,0x0000FFF1U) - RegMask = (PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK | 0 ); - - RegVal = ((0x0000FFF1U << PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_18_OFFSET ,0x0000FFFFU ,0x0000FFF1U); - /*############################################################################################################################ */ - - /*Register : ATTR_27 @ 0XFD48006C

- - Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1- 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred - to the Device Capabilities register. The values: 4-2048 bytes, 5- 4096 bytes are not supported; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED 1 - - Endpoint L1 Acceptable Latency. Records the latency that the endpoint can withstand on transitions from L1 state to L0 (if L1 - state supported). Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to 8us, 4h 8 to 16us, 5h 16 to 32us, 6 - 32 to 64us, 7h more than 64us. For Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY 0x0 - - ATTR_27 - (OFFSET, MASK, VALUE) (0XFD48006C, 0x00000738U ,0x00000100U) - RegMask = (PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK | PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_27_OFFSET ,0x00000738U ,0x00000100U); - /*############################################################################################################################ */ - - /*Register : ATTR_50 @ 0XFD4800C8

- - Identifies the type of device/port as follows: 0000b PCI Express Endpoint device, 0001b Legacy PCI Express Endpoint device, 0 - 00b Root Port of PCI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110b Downstream Port of PCI Express Sw - tch, 0111b PCIE Express to PCI/PCI-X Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Express Capabilities r - gister. Must be consistent with IS_SWITCH and UPSTREAM_FACING settings.; EP=0x0000; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE 4 - - PCIe Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capab - lity.; EP=0x009C; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR 0 - - ATTR_50 - (OFFSET, MASK, VALUE) (0XFD4800C8, 0x0000FFF0U ,0x00000040U) - RegMask = (PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK | PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000004U << PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_50_OFFSET ,0x0000FFF0U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : ATTR_105 @ 0XFD4801A4

- - Number of credits that should be advertised for Completion data received on Virtual Channel 0. The bytes advertised must be l - ss than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD - PSU_PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD 0xCD - - ATTR_105 - (OFFSET, MASK, VALUE) (0XFD4801A4, 0x000007FFU ,0x000000CDU) - RegMask = (PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK | 0 ); - - RegVal = ((0x000000CDU << PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_105_OFFSET ,0x000007FFU ,0x000000CDU); - /*############################################################################################################################ */ - - /*Register : ATTR_106 @ 0XFD4801A8

- - Number of credits that should be advertised for Completion headers received on Virtual Channel 0. The sum of the posted, non - osted, and completion header credits must be <= 80; EP=0x0048; RP=0x0024 - PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH 0x24 - - Number of credits that should be advertised for Non-Posted headers received on Virtual Channel 0. The number of non posted da - a credits advertised by the block is equal to the number of non posted header credits. The sum of the posted, non posted, and - completion header credits must be <= 80; EP=0x0004; RP=0x000C - PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH 0xC - - ATTR_106 - (OFFSET, MASK, VALUE) (0XFD4801A8, 0x00003FFFU ,0x00000624U) - RegMask = (PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK | PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK | 0 ); - - RegVal = ((0x00000024U << PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT - | 0x0000000CU << PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_106_OFFSET ,0x00003FFFU ,0x00000624U); - /*############################################################################################################################ */ - - /*Register : ATTR_107 @ 0XFD4801AC

- - Number of credits that should be advertised for Non-Posted data received on Virtual Channel 0. The number of non posted data - redits advertised by the block is equal to two times the number of non posted header credits if atomic operations are support - d or is equal to the number of non posted header credits if atomic operations are not supported. The bytes advertised must be - less than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 - PSU_PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD 0x18 - - ATTR_107 - (OFFSET, MASK, VALUE) (0XFD4801AC, 0x000007FFU ,0x00000018U) - RegMask = (PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK | 0 ); - - RegVal = ((0x00000018U << PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_107_OFFSET ,0x000007FFU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : ATTR_108 @ 0XFD4801B0

- - Number of credits that should be advertised for Posted data received on Virtual Channel 0. The bytes advertised must be less - han or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 - PSU_PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD 0xB5 - - ATTR_108 - (OFFSET, MASK, VALUE) (0XFD4801B0, 0x000007FFU ,0x000000B5U) - RegMask = (PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK | 0 ); - - RegVal = ((0x000000B5U << PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_108_OFFSET ,0x000007FFU ,0x000000B5U); - /*############################################################################################################################ */ - - /*Register : ATTR_109 @ 0XFD4801B4

- - Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x00 - 0 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV 0x0 - - Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim TRUE == trim.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM 0x1 - - Enables ECRC check on received TLP's 0 == don't check 1 == always check 3 == check if enabled by ECRC check enable bit of AER - cap structure; EP=0x0003; RP=0x0003 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK 0x3 - - Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). Calculated from max payload size supported and the n - mber of brams configured for transmit; EP=0x001C; RP=0x001C - PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET 0x1c - - Number of credits that should be advertised for Posted headers received on Virtual Channel 0. The sum of the posted, non post - d, and completion header credits must be <= 80; EP=0x0004; RP=0x0020 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH 0x20 - - ATTR_109 - (OFFSET, MASK, VALUE) (0XFD4801B4, 0x0000FFFFU ,0x00007E20U) - RegMask = (PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK | PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK | PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK | PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK | PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT - | 0x00000003U << PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT - | 0x0000001CU << PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT - | 0x00000020U << PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_109_OFFSET ,0x0000FFFFU ,0x00007E20U); - /*############################################################################################################################ */ - - /*Register : ATTR_34 @ 0XFD480088

- - Specifies values to be transferred to Header Type register. Bit 7 should be set to '0' indicating single-function device. Bit - 0 identifies header as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE 0x1 - - ATTR_34 - (OFFSET, MASK, VALUE) (0XFD480088, 0x000000FFU ,0x00000001U) - RegMask = (PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_34_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : ATTR_53 @ 0XFD4800D4

- - PM Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabil - ty.; EP=0x0048; RP=0x0060 - PSU_PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR 0x60 - - ATTR_53 - (OFFSET, MASK, VALUE) (0XFD4800D4, 0x000000FFU ,0x00000060U) - RegMask = (PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000060U << PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_53_OFFSET ,0x000000FFU ,0x00000060U); - /*############################################################################################################################ */ - - /*Register : ATTR_41 @ 0XFD4800A4

- - MSI Per-Vector Masking Capable. The value is transferred to the MSI Control Register[8]. When set, adds Mask and Pending Dwor - to Cap structure; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE 0x0 - - Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 - - MSI Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabi - ity.; EP=0x0060; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR 0x0 - - Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 - - ATTR_41 - (OFFSET, MASK, VALUE) (0XFD4800A4, 0x000003FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_41_OFFSET ,0x000003FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_97 @ 0XFD480184

- - Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b x4, 001000b x8.; EP=0x0004; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH 0x1 - - Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x00 - 4; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH 0x1 - - ATTR_97 - (OFFSET, MASK, VALUE) (0XFD480184, 0x00000FFFU ,0x00000041U) - RegMask = (PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK | PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_97_OFFSET ,0x00000FFFU ,0x00000041U); - /*############################################################################################################################ */ - - /*Register : ATTR_100 @ 0XFD480190

- - TRUE specifies upstream-facing port. FALSE specifies downstream-facing port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING 0x0 - - ATTR_100 - (OFFSET, MASK, VALUE) (0XFD480190, 0x00000040U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_100_OFFSET ,0x00000040U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_101 @ 0XFD480194

- - Enable the routing of message TLPs to the user through the TRN RX interface. A bit value of 1 enables routing of the message - LP to the user. Messages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 - ERR NONFATAL, Bit 2 - ERR FATAL, - Bit 3 - INTA Bit 4 - INTB, Bit 5 - INTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit 10 PME_Turn_Off; - EP=0x0000; RP=0x07FF - PSU_PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE 0x7FF - - Disable BAR filtering. Does not change the behavior of the bar hit outputs; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING 0x1 - - ATTR_101 - (OFFSET, MASK, VALUE) (0XFD480194, 0x0000FFE2U ,0x0000FFE2U) - RegMask = (PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK | PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK | 0 ); - - RegVal = ((0x000007FFU << PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_101_OFFSET ,0x0000FFE2U ,0x0000FFE2U); - /*############################################################################################################################ */ - - /*Register : ATTR_37 @ 0XFD480094

- - Link Bandwidth notification capability. Indicates support for the link bandwidth notification status and interrupt mechanism. - Required for Root.; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP 0x1 - - Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Optionality ECN. Transferred to the Link Capabilities r - gister.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY 0x1 - - ATTR_37 - (OFFSET, MASK, VALUE) (0XFD480094, 0x00004200U ,0x00004200U) - RegMask = (PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK | PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_37_OFFSET ,0x00004200U ,0x00004200U); - /*############################################################################################################################ */ - - /*Register : ATTR_93 @ 0XFD480174

- - Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value (or combined with the built-in value, depending on L - _REPLAY_TIMEOUT_FUNC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN 0x1 - - Sets a user-defined timeout for the Replay Timer to force cause the retransmission of unacknowledged TLPs; refer to LL_REPLAY - TIMEOUT_EN and LL_REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this attribute is in symbol times, which is - 4ns at GEN1 speeds and 2ns at GEN2.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT 0x1000 - - ATTR_93 - (OFFSET, MASK, VALUE) (0XFD480174, 0x0000FFFFU ,0x00009000U) - RegMask = (PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK | PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT - | 0x00001000U << PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_93_OFFSET ,0x0000FFFFU ,0x00009000U); - /*############################################################################################################################ */ - - /*Register : ID @ 0XFD480200

- - Device ID for the the PCIe Cap Structure Device ID field - PSU_PCIE_ATTRIB_ID_CFG_DEV_ID 0xd021 - - Vendor ID for the PCIe Cap Structure Vendor ID field - PSU_PCIE_ATTRIB_ID_CFG_VEND_ID 0x10ee - - ID - (OFFSET, MASK, VALUE) (0XFD480200, 0xFFFFFFFFU ,0x10EED021U) - RegMask = (PCIE_ATTRIB_ID_CFG_DEV_ID_MASK | PCIE_ATTRIB_ID_CFG_VEND_ID_MASK | 0 ); - - RegVal = ((0x0000D021U << PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT - | 0x000010EEU << PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ID_OFFSET ,0xFFFFFFFFU ,0x10EED021U); - /*############################################################################################################################ */ - - /*Register : SUBSYS_ID @ 0XFD480204

- - Subsystem ID for the the PCIe Cap Structure Subsystem ID field - PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID 0x7 - - Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field - PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID 0x10ee - - SUBSYS_ID - (OFFSET, MASK, VALUE) (0XFD480204, 0xFFFFFFFFU ,0x10EE0007U) - RegMask = (PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK | PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK | 0 ); - - RegVal = ((0x00000007U << PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT - | 0x000010EEU << PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_SUBSYS_ID_OFFSET ,0xFFFFFFFFU ,0x10EE0007U); - /*############################################################################################################################ */ - - /*Register : REV_ID @ 0XFD480208

- - Revision ID for the the PCIe Cap Structure - PSU_PCIE_ATTRIB_REV_ID_CFG_REV_ID 0x0 - - REV_ID - (OFFSET, MASK, VALUE) (0XFD480208, 0x000000FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_REV_ID_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_24 @ 0XFD480060

- - Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 8000; RP=0x8000 - PSU_PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE 0x400 - - ATTR_24 - (OFFSET, MASK, VALUE) (0XFD480060, 0x0000FFFFU ,0x00000400U) - RegMask = (PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK | 0 ); - - RegVal = ((0x00000400U << PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_24_OFFSET ,0x0000FFFFU ,0x00000400U); - /*############################################################################################################################ */ - - /*Register : ATTR_25 @ 0XFD480064

- - Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 0005; RP=0x0006 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE 0x6 - - INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] to be hardwired to 0.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED 0 - - ATTR_25 - (OFFSET, MASK, VALUE) (0XFD480064, 0x000001FFU ,0x00000006U) - RegMask = (PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK | PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK | 0 ); - - RegVal = ((0x00000006U << PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_25_OFFSET ,0x000001FFU ,0x00000006U); - /*############################################################################################################################ */ - - /*Register : ATTR_4 @ 0XFD480010

- - Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 - - Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 - - ATTR_4 - (OFFSET, MASK, VALUE) (0XFD480010, 0x00001000U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK | PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_4_OFFSET ,0x00001000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_89 @ 0XFD480164

- - VSEC's Next Capability Offset pointer to the next item in the capabilities list, or 000h if this is the final capability.; EP - 0x0140; RP=0x0140 - PSU_PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR 0 - - ATTR_89 - (OFFSET, MASK, VALUE) (0XFD480164, 0x00001FFEU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_89_OFFSET ,0x00001FFEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_79 @ 0XFD48013C

- - CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the Root Capabilities register.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY 1 - - ATTR_79 - (OFFSET, MASK, VALUE) (0XFD48013C, 0x00000020U ,0x00000020U) - RegMask = (PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_79_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : ATTR_43 @ 0XFD4800AC

- - Indicates that the MSIX structures exists. If this is FALSE, then the MSIX structure cannot be accessed via either the link o - the management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON 0 - - ATTR_43 - (OFFSET, MASK, VALUE) (0XFD4800AC, 0x00000100U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_43_OFFSET ,0x00000100U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_48 @ 0XFD4800C0

- - MSI-X Table Size. This value is transferred to the MSI-X Message Control[10:0] field. Set to 0 if MSI-X is not enabled. Note - hat the core does not implement the table; that must be implemented in user logic.; EP=0x0003; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE 0 - - ATTR_48 - (OFFSET, MASK, VALUE) (0XFD4800C0, 0x000007FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_48_OFFSET ,0x000007FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_46 @ 0XFD4800B8

- - MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; - P=0x0000 - PSU_PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET 0 - - ATTR_46 - (OFFSET, MASK, VALUE) (0XFD4800B8, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_46_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_47 @ 0XFD4800BC

- - MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0000; - P=0x0000 - PSU_PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET 0 - - ATTR_47 - (OFFSET, MASK, VALUE) (0XFD4800BC, 0x00001FFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_47_OFFSET ,0x00001FFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_44 @ 0XFD4800B0

- - MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET 0 - - ATTR_44 - (OFFSET, MASK, VALUE) (0XFD4800B0, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_44_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_45 @ 0XFD4800B4

- - MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x1000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET 0 - - ATTR_45 - (OFFSET, MASK, VALUE) (0XFD4800B4, 0x0000FFF8U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_45_OFFSET ,0x0000FFF8U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CB @ 0XFD48031C

- - DT837748 Enable - PSU_PCIE_ATTRIB_CB_CB1 0x0 - - ECO Register 1 - (OFFSET, MASK, VALUE) (0XFD48031C, 0x00000002U ,0x00000000U) - RegMask = (PCIE_ATTRIB_CB_CB1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_CB_CB1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_CB_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_35 @ 0XFD48008C

- - Active State PM Support. Indicates the level of active state power management supported by the selected PCI Express Link, enc - ded as follows: 0 Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supported.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT 0x0 - - ATTR_35 - (OFFSET, MASK, VALUE) (0XFD48008C, 0x00003000U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_35_OFFSET ,0x00003000U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING PCIE CONTROL IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

- - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00020000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00020000U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE0 - /*Register : L0_PLL_STATUS_READ_1 @ 0XFD4023E4

- - Status Read value of PLL Lock - PSU_SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD4023E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L0_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE1 - /*Register : L1_PLL_STATUS_READ_1 @ 0XFD4063E4

- - Status Read value of PLL Lock - PSU_SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD4063E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L1_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE2 - /*Register : L2_PLL_STATUS_READ_1 @ 0XFD40A3E4

- - Status Read value of PLL Lock - PSU_SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD40A3E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L2_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE3 - /*Register : L3_PLL_STATUS_READ_1 @ 0XFD40E3E4

- - Status Read value of PLL Lock - PSU_SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD40E3E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L3_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : SATA AHCI VENDOR SETTING - /*Register : PP2C @ 0XFD0C00AC

- - CIBGMN: COMINIT Burst Gap Minimum. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGMN 0x18 - - CIBGMX: COMINIT Burst Gap Maximum. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGMX 0x40 - - CIBGN: COMINIT Burst Gap Nominal. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGN 0x18 - - CINMP: COMINIT Negate Minimum Period. - PSU_SATA_AHCI_VENDOR_PP2C_CINMP 0x28 - - PP2C - Port Phy2Cfg Register. This register controls the configuration of the Phy Control OOB timing for the COMINIT paramete - s for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00AC, 0xFFFFFFFFU ,0x28184018U) - RegMask = (SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK | SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK | SATA_AHCI_VENDOR_PP2C_CIBGN_MASK | SATA_AHCI_VENDOR_PP2C_CINMP_MASK | 0 ); - - RegVal = ((0x00000018U << SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT - | 0x00000040U << SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT - | 0x00000018U << SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT - | 0x00000028U << SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP2C_OFFSET ,0xFFFFFFFFU ,0x28184018U); - /*############################################################################################################################ */ - - /*Register : PP3C @ 0XFD0C00B0

- - CWBGMN: COMWAKE Burst Gap Minimum. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGMN 0x06 - - CWBGMX: COMWAKE Burst Gap Maximum. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGMX 0x14 - - CWBGN: COMWAKE Burst Gap Nominal. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGN 0x08 - - CWNMP: COMWAKE Negate Minimum Period. - PSU_SATA_AHCI_VENDOR_PP3C_CWNMP 0x0E - - PP3C - Port Phy3CfgRegister. This register controls the configuration of the Phy Control OOB timing for the COMWAKE parameter - for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B0, 0xFFFFFFFFU ,0x0E081406U) - RegMask = (SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK | SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK | SATA_AHCI_VENDOR_PP3C_CWBGN_MASK | SATA_AHCI_VENDOR_PP3C_CWNMP_MASK | 0 ); - - RegVal = ((0x00000006U << SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT - | 0x00000014U << SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT - | 0x00000008U << SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT - | 0x0000000EU << SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP3C_OFFSET ,0xFFFFFFFFU ,0x0E081406U); - /*############################################################################################################################ */ - - /*Register : PP4C @ 0XFD0C00B4

- - BMX: COM Burst Maximum. - PSU_SATA_AHCI_VENDOR_PP4C_BMX 0x13 - - BNM: COM Burst Nominal. - PSU_SATA_AHCI_VENDOR_PP4C_BNM 0x08 - - SFD: Signal Failure Detection, if the signal detection de-asserts for a time greater than this then the OOB detector will det - rmine this is a line idle and cause the PhyInit state machine to exit the Phy Ready State. A value of zero disables the Signa - Failure Detector. The value is based on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving a nominal time of - 500ns based on a 150MHz PMCLK. - PSU_SATA_AHCI_VENDOR_PP4C_SFD 0x4A - - PTST: Partial to Slumber timer value, specific delay the controller should apply while in partial before entering slumber. Th - value is bases on the system clock divided by 128, total delay = (Sys Clock Period) * PTST * 128 - PSU_SATA_AHCI_VENDOR_PP4C_PTST 0x06 - - PP4C - Port Phy4Cfg Register. This register controls the configuration of the Phy Control Burst timing for the COM parameters - for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B4, 0xFFFFFFFFU ,0x064A0813U) - RegMask = (SATA_AHCI_VENDOR_PP4C_BMX_MASK | SATA_AHCI_VENDOR_PP4C_BNM_MASK | SATA_AHCI_VENDOR_PP4C_SFD_MASK | SATA_AHCI_VENDOR_PP4C_PTST_MASK | 0 ); - - RegVal = ((0x00000013U << SATA_AHCI_VENDOR_PP4C_BMX_SHIFT - | 0x00000008U << SATA_AHCI_VENDOR_PP4C_BNM_SHIFT - | 0x0000004AU << SATA_AHCI_VENDOR_PP4C_SFD_SHIFT - | 0x00000006U << SATA_AHCI_VENDOR_PP4C_PTST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP4C_OFFSET ,0xFFFFFFFFU ,0x064A0813U); - /*############################################################################################################################ */ - - /*Register : PP5C @ 0XFD0C00B8

- - RIT: Retry Interval Timer. The calculated value divided by two, the lower digit of precision is not needed. - PSU_SATA_AHCI_VENDOR_PP5C_RIT 0xC96A4 - - RCT: Rate Change Timer, a value based on the 54.2us for which a SATA device will transmit at a fixed rate ALIGNp after OOB ha - completed, for a fast SERDES it is suggested that this value be 54.2us / 4 - PSU_SATA_AHCI_VENDOR_PP5C_RCT 0x3FF - - PP5C - Port Phy5Cfg Register. This register controls the configuration of the Phy Control Retry Interval timing for either Po - t 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B8, 0xFFFFFFFFU ,0x3FFC96A4U) - RegMask = (SATA_AHCI_VENDOR_PP5C_RIT_MASK | SATA_AHCI_VENDOR_PP5C_RCT_MASK | 0 ); - - RegVal = ((0x000C96A4U << SATA_AHCI_VENDOR_PP5C_RIT_SHIFT - | 0x000003FFU << SATA_AHCI_VENDOR_PP5C_RCT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP5C_OFFSET ,0xFFFFFFFFU ,0x3FFC96A4U); - /*############################################################################################################################ */ - - - return 1; + * MPHY PLL Gear and bypass scrambler + * (OFFSET, MASK, VALUE) (0XFD40C0F4, 0x0000000BU ,0x0000000BU) + */ + PSU_Mask_Write(SERDES_L3_TX_DIG_TM_61_OFFSET, + 0x0000000BU, 0x0000000BU); +/*##################################################################### */ + + /* + * ENABLE CHICKEN BIT FOR PCIE AND USB + */ + /* + * Register : L0_TM_AUX_0 @ 0XFD4010CC + + * Spare- not used + * PSU_SERDES_L0_TM_AUX_0_BIT_2 1 + + * Spare registers + * (OFFSET, MASK, VALUE) (0XFD4010CC, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L0_TM_AUX_0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L2_TM_AUX_0 @ 0XFD4090CC + + * Spare- not used + * PSU_SERDES_L2_TM_AUX_0_BIT_2 1 + + * Spare registers + * (OFFSET, MASK, VALUE) (0XFD4090CC, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L2_TM_AUX_0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * ENABLING EYE SURF + */ + /* + * Register : L0_TM_DIG_8 @ 0XFD401074 + + * Enable Eye Surf + * PSU_SERDES_L0_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD401074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L0_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L1_TM_DIG_8 @ 0XFD405074 + + * Enable Eye Surf + * PSU_SERDES_L1_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD405074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L1_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_DIG_8 @ 0XFD409074 + + * Enable Eye Surf + * PSU_SERDES_L2_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD409074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L3_TM_DIG_8 @ 0XFD40D074 + + * Enable Eye Surf + * PSU_SERDES_L3_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD40D074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * ILL SETTINGS FOR GAIN AND LOCK SETTINGS + */ + /* + * Register : L0_TM_MISC2 @ 0XFD40189C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40189C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL1 @ 0XFD4018F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4018F8, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL2 @ 0XFD4018FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4018FC, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL12 @ 0XFD401990 + + * G1A pll ctr bypass value + * PSU_SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x11 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD401990, 0x000000FFU ,0x00000011U) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL12_OFFSET, 0x000000FFU, 0x00000011U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL1 @ 0XFD401924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x4 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD401924, 0x000000FFU ,0x00000004U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL1_OFFSET, 0x000000FFU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL2 @ 0XFD401928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0xFE + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD401928, 0x000000FFU ,0x000000FEU) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL2_OFFSET, 0x000000FFU, 0x000000FEU); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL3 @ 0XFD401900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD401900, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL3 @ 0XFD40192C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40192C, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL8 @ 0XFD401980 + + * ILL calibration code change wait time + * PSU_SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD401980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL8 @ 0XFD401914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD401914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL9 @ 0XFD401918 + + * bypass IQ polytrim + * PSU_SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD401918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL8 @ 0XFD401940 + + * E ILL polytrim bypass value + * PSU_SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD401940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL9 @ 0XFD401944 + + * bypass E polytrim + * PSU_SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD401944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL13 @ 0XFD401994 + + * ILL cal idle val refcnt + * PSU_SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD401994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L1_TM_ILL13 @ 0XFD405994 + + * ILL cal idle val refcnt + * PSU_SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD405994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L1_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L2_TM_MISC2 @ 0XFD40989C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40989C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L2_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL1 @ 0XFD4098F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4098F8, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL2 @ 0XFD4098FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4098FC, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL12 @ 0XFD409990 + + * G1A pll ctr bypass value + * PSU_SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x10 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD409990, 0x000000FFU ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL12_OFFSET, 0x000000FFU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL1 @ 0XFD409924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0xFE + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD409924, 0x000000FFU ,0x000000FEU) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL1_OFFSET, 0x000000FFU, 0x000000FEU); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL2 @ 0XFD409928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD409928, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL2_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL3 @ 0XFD409900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD409900, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL3 @ 0XFD40992C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40992C, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL8 @ 0XFD409980 + + * ILL calibration code change wait time + * PSU_SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD409980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL8 @ 0XFD409914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD409914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL9 @ 0XFD409918 + + * bypass IQ polytrim + * PSU_SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD409918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL8 @ 0XFD409940 + + * E ILL polytrim bypass value + * PSU_SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD409940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL9 @ 0XFD409944 + + * bypass E polytrim + * PSU_SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD409944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL13 @ 0XFD409994 + + * ILL cal idle val refcnt + * PSU_SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD409994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L3_TM_MISC2 @ 0XFD40D89C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40D89C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L3_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL1 @ 0XFD40D8F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D8F8, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL2 @ 0XFD40D8FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D8FC, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL12 @ 0XFD40D990 + + * G1A pll ctr bypass value + * PSU_SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x1 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD40D990, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL12_OFFSET, 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL1 @ 0XFD40D924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x9C + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D924, 0x000000FFU ,0x0000009CU) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL1_OFFSET, 0x000000FFU, 0x0000009CU); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL2 @ 0XFD40D928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x39 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D928, 0x000000FFU ,0x00000039U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL2_OFFSET, 0x000000FFU, 0x00000039U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL11 @ 0XFD40D98C + + * G2A_PCIe1 PLL ctr bypass value + * PSU_SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL 0x2 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD40D98C, 0x000000F0U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL11_OFFSET, 0x000000F0U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL3 @ 0XFD40D900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D900, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL3 @ 0XFD40D92C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x64 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D92C, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL8 @ 0XFD40D980 + + * ILL calibration code change wait time + * PSU_SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD40D980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL8 @ 0XFD40D914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD40D914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL9 @ 0XFD40D918 + + * bypass IQ polytrim + * PSU_SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD40D918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL8 @ 0XFD40D940 + + * E ILL polytrim bypass value + * PSU_SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD40D940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL9 @ 0XFD40D944 + + * bypass E polytrim + * PSU_SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD40D944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL13 @ 0XFD40D994 + + * ILL cal idle val refcnt + * PSU_SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD40D994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * SYMBOL LOCK AND WAIT + */ + /* + * Register : L0_TM_DIG_10 @ 0XFD40107C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L1_TM_DIG_10 @ 0XFD40507C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40507C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L1_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_DIG_10 @ 0XFD40907C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40907C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_DIG_10 @ 0XFD40D07C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40D07C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * SIOU SETTINGS FOR BYPASS CONTROL,HSRX-DIG + */ + /* + * Register : L0_TM_RST_DLY @ 0XFD4019A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L0_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4019A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L0_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L0_TM_ANA_BYP_15 @ 0XFD401038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD401038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L0_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L0_TM_ANA_BYP_12 @ 0XFD40102C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40102C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L0_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L1_TM_RST_DLY @ 0XFD4059A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L1_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4059A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L1_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L1_TM_ANA_BYP_15 @ 0XFD405038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD405038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L1_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L1_TM_ANA_BYP_12 @ 0XFD40502C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40502C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L1_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L2_TM_RST_DLY @ 0XFD4099A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L2_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4099A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L2_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L2_TM_ANA_BYP_15 @ 0XFD409038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD409038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L2_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L2_TM_ANA_BYP_12 @ 0XFD40902C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40902C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L2_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L3_TM_RST_DLY @ 0XFD40D9A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L3_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD40D9A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L3_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L3_TM_ANA_BYP_15 @ 0XFD40D038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD40D038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L3_TM_ANA_BYP_12 @ 0XFD40D02C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40D02C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * DISABLE FPL/FFL + */ + /* + * Register : L0_TM_MISC3 @ 0XFD4019AC + + * CDR fast phase lock control + * PSU_SERDES_L0_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L0_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4019AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L0_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L1_TM_MISC3 @ 0XFD4059AC + + * CDR fast phase lock control + * PSU_SERDES_L1_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L1_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4059AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_MISC3 @ 0XFD4099AC + + * CDR fast phase lock control + * PSU_SERDES_L2_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L2_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4099AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L3_TM_MISC3 @ 0XFD40D9AC + + * CDR fast phase lock control + * PSU_SERDES_L3_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L3_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD40D9AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L3_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * DISABLE DYNAMIC OFFSET CALIBRATION + */ + /* + * Register : L0_TM_EQ11 @ 0XFD401978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD401978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L0_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L1_TM_EQ11 @ 0XFD405978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD405978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L1_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_EQ11 @ 0XFD409978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD409978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ11 @ 0XFD40D978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD40D978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * DISABLE ECO FOR PCIE + */ + /* + * Register : eco_0 @ 0XFD3D001C + + * For future use + * PSU_SIOU_ECO_0_FIELD 0x1 + + * ECO Register for future use + * (OFFSET, MASK, VALUE) (0XFD3D001C, 0xFFFFFFFFU ,0x00000001U) + */ + PSU_Mask_Write(SIOU_ECO_0_OFFSET, 0xFFFFFFFFU, 0x00000001U); +/*##################################################################### */ + + /* + * GT LANE SETTINGS + */ + /* + * Register : ICM_CFG0 @ 0XFD410010 + + * Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG0_L0_ICM_CFG 1 + + * Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG0_L1_ICM_CFG 4 + + * ICM Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD410010, 0x00000077U ,0x00000041U) + */ + PSU_Mask_Write(SERDES_ICM_CFG0_OFFSET, 0x00000077U, 0x00000041U); +/*##################################################################### */ + + /* + * Register : ICM_CFG1 @ 0XFD410014 + + * Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG1_L2_ICM_CFG 3 + + * Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, + * 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG1_L3_ICM_CFG 2 + + * ICM Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD410014, 0x00000077U ,0x00000023U) + */ + PSU_Mask_Write(SERDES_ICM_CFG1_OFFSET, 0x00000077U, 0x00000023U); +/*##################################################################### */ + + /* + * CHECKING PLL LOCK + */ + /* + * ENABLE SERIAL DATA MUX DEEMPH + */ + /* + * Register : L1_TXPMD_TM_45 @ 0XFD404CB4 + + * Enable/disable DP post2 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH 0x1 + + * Override enable/disable of DP post2 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH 0x1 + + * Override enable/disable of DP post1 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH 0x1 + + * Enable/disable DP main path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH 0x1 + + * Override enable/disable of DP main path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH 0x1 + + * Post or pre or main DP path selection + * (OFFSET, MASK, VALUE) (0XFD404CB4, 0x00000037U ,0x00000037U) + */ + PSU_Mask_Write(SERDES_L1_TXPMD_TM_45_OFFSET, + 0x00000037U, 0x00000037U); +/*##################################################################### */ + + /* + * Register : L1_TX_ANA_TM_118 @ 0XFD4041D8 + + * Test register force for enabling/disablign TX deemphasis bits <17:0> + * PSU_SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 + + * Enable Override of TX deemphasis + * (OFFSET, MASK, VALUE) (0XFD4041D8, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L1_TX_ANA_TM_118_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TX_ANA_TM_118 @ 0XFD40C1D8 + + * Test register force for enabling/disablign TX deemphasis bits <17:0> + * PSU_SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 + + * Enable Override of TX deemphasis + * (OFFSET, MASK, VALUE) (0XFD40C1D8, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TX_ANA_TM_118_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * CDR AND RX EQUALIZATION SETTINGS + */ + /* + * Register : L3_TM_CDR5 @ 0XFD40DC14 + + * FPHL FSM accumulate cycles + * PSU_SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES 0x7 + + * FFL Phase0 int gain aka 2ol SD update rate + * PSU_SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN 0x6 + + * Fast phase lock controls -- FSM accumulator cycle control and phase 0 in + * t gain control. + * (OFFSET, MASK, VALUE) (0XFD40DC14, 0x000000FFU ,0x000000E6U) + */ + PSU_Mask_Write(SERDES_L3_TM_CDR5_OFFSET, 0x000000FFU, 0x000000E6U); +/*##################################################################### */ + + /* + * Register : L3_TM_CDR16 @ 0XFD40DC40 + + * FFL Phase0 prop gain aka 1ol SD update rate + * PSU_SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN 0xC + + * Fast phase lock controls -- phase 0 prop gain + * (OFFSET, MASK, VALUE) (0XFD40DC40, 0x0000001FU ,0x0000000CU) + */ + PSU_Mask_Write(SERDES_L3_TM_CDR16_OFFSET, 0x0000001FU, 0x0000000CU); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ0 @ 0XFD40D94C + + * EQ stg 2 controls BYPASSED + * PSU_SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP 1 + + * eq stg1 and stg2 controls + * (OFFSET, MASK, VALUE) (0XFD40D94C, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ1 @ 0XFD40D950 + + * EQ STG2 RL PROG + * PSU_SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG 0x2 + + * EQ stg 2 preamp mode val + * PSU_SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL 0x1 + + * eq stg1 and stg2 controls + * (OFFSET, MASK, VALUE) (0XFD40D950, 0x00000007U ,0x00000006U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ1_OFFSET, 0x00000007U, 0x00000006U); +/*##################################################################### */ + + /* + * GEM SERDES SETTINGS + */ + /* + * ENABLE PRE EMPHAIS AND VOLTAGE SWING + */ + /* + * Register : L1_TXPMD_TM_48 @ 0XFD404CC0 + + * Margining factor value + * PSU_SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR 0 + + * Margining factor + * (OFFSET, MASK, VALUE) (0XFD404CC0, 0x0000001FU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TXPMD_TM_48_OFFSET, + 0x0000001FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L1_TX_ANA_TM_18 @ 0XFD404048 + + * pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved + * PSU_SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0 + + * Override for PIPE TX de-emphasis + * (OFFSET, MASK, VALUE) (0XFD404048, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TX_ANA_TM_18_OFFSET, + 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L3_TX_ANA_TM_18 @ 0XFD40C048 + + * pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved + * PSU_SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0x1 + + * Override for PIPE TX de-emphasis + * (OFFSET, MASK, VALUE) (0XFD40C048, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TX_ANA_TM_18_OFFSET, + 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_resetin_init_data() { - // : PUTTING SERDES PERIPHERAL IN RESET - // : PUTTING USB0 IN RESET - /*Register : RST_LPD_TOP @ 0XFF5E023C

+unsigned long psu_resetout_init_data(void) +{ + /* + * TAKING SERDES PERIPHERAL OUT OF RESET RESET + */ + /* + * PUTTING USB0 IN RESET + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X1 + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X1 + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000400U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000400U, 0x00000000U); +/*##################################################################### */ - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X1 + /* + * HIBERREST + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000540U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X0 - RegVal = ((0x00000001U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0x00000001U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000001U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000540U ,0x00000540U); - /*############################################################################################################################ */ + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X0 - // : PUTTING GEM0 IN RESET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

+ * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000140U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000140U, 0x00000000U); +/*##################################################################### */ - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X1 + /* + * PUTTING GEM0 IN RESET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X0 - RegVal = ((0x00000001U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000000U); +/*##################################################################### */ - // : PUTTING SATA IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

+ /* + * PUTTING SATA IN RESET + */ + /* + * Register : sata_misc_ctrl @ 0XFD3D0100 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X1 + * Sata PM clock control select + * PSU_SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL 0x3 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000002U) - RegMask = (CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); + * Misc Contorls for SATA.This register may only be modified during bootup + * (while SATA block is disabled) + * (OFFSET, MASK, VALUE) (0XFD3D0100, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SIOU_SATA_MISC_CTRL_OFFSET, 0x00000003U, 0x00000003U); +/*##################################################################### */ - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00000002U ,0x00000002U); - /*############################################################################################################################ */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - // : PUTTING PCIE IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

+ * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X0 - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X1 + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X1 + /* + * PUTTING PCIE CFG AND BRIDGE IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X1 + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X0 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000E0000U ,0x000E0000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | 0 ); + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X0 - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000E0000U ,0x000E0000U); - /*############################################################################################################################ */ + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000C0000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000C0000U, 0x00000000U); +/*##################################################################### */ - // : PUTTING DP IN RESET - /*Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

+ /* + * PUTTING DP IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1 - PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0XA + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X0 - Control PHY Power down - (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x0000000AU) - RegMask = (DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK | 0 ); + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00010000U, 0x00000000U); +/*##################################################################### */ - RegVal = ((0x0000000AU << DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_TX_PHY_POWER_DOWN_OFFSET ,0x0000000FU ,0x0000000AU); - /*############################################################################################################################ */ + /* + * Register : DP_PHY_RESET @ 0XFD4A0200 - /*Register : DP_PHY_RESET @ 0XFD4A0200

+ * Set to '1' to hold the GT in reset. Clear to release. + * PSU_DP_DP_PHY_RESET_GT_RESET 0X0 - Set to '1' to hold the GT in reset. Clear to release. - PSU_DP_DP_PHY_RESET_GT_RESET 0X1 + * Reset the transmitter PHY. + * (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(DP_DP_PHY_RESET_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ - Reset the transmitter PHY. - (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000002U) - RegMask = (DP_DP_PHY_RESET_GT_RESET_MASK | 0 ); + /* + * Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238 - RegVal = ((0x00000001U << DP_DP_PHY_RESET_GT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_PHY_RESET_OFFSET ,0x00000002U ,0x00000002U); - /*############################################################################################################################ */ + * Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 + * PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0X0 - /*Register : RST_FPD_TOP @ 0XFD1A0100

+ * Control PHY Power down + * (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x00000000U) + */ + PSU_Mask_Write(DP_DP_TX_PHY_POWER_DOWN_OFFSET, + 0x0000000FU, 0x00000000U); +/*##################################################################### */ - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X1 + /* + * USB0 GFLADJ + */ + /* + * Register : GUSB2PHYCFG @ 0XFE20C200 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00010000U) - RegMask = (CRF_APB_RST_FPD_TOP_DP_RESET_MASK | 0 ); + * USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY cloc + * ks. Specifies the response time for a MAC request to the Packet FIFO Con + * troller (PFC) to fetch data from the DFIFO (SPRAM). The following are th + * e required values for the minimum SoC bus frequency of 60 MHz. USB turna + * round time is a critical certification criteria when using long cables a + * nd five hub levels. The required values for this field: - 4'h5: When the + * MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit + * UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround tim + * e is not critical, this field can be set to a larger value. Note: This f + * ield is valid only in device mode. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM 0x9 - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00010000U ,0x00010000U); - /*############################################################################################################################ */ + * Transceiver Delay: Enables a delay between the assertion of the UTMI/ULP + * I Transceiver Select signal (for HS) and the assertion of the TxValid si + * gnal during a HS Chirp. When this bit is set to 1, a delay (of approxima + * tely 2.5 us) is introduced from the time when the Transceiver Select is + * set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the + * chirp-K. This delay is required for some UTMI/ULPI PHYs. Note: - If you + * enable the hibernation feature when the device core comes out of power- + * off, you must re-initialize this bit with the appropriate value because + * the core does not save and restore this bit value during hibernation. - + * This bit is valid only in device mode. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY 0x0 + + * Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application use + * s this bit to control utmi_sleep_n and utmi_l1_suspend_n assertion to th + * e PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assert + * ion from the core is not transferred to the external PHY. - 1'b1: utmi_s + * leep_n and utmi_l1_suspend_n assertion from the core is transferred to t + * he external PHY. Note: This bit must be set high for Port0 if PHY is use + * d. Note: In Device mode - Before issuing any device endpoint command whe + * n operating in 2.0 speeds, disable this bit and enable it after the comm + * and completes. Without disabling this bit, if a command is issued when t + * he device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated of + * f, the command will not get completed. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM 0x0 + + * USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select T + * he application uses this bit to select a high-speed PHY or a full-speed + * transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is a + * lways 0, with Write Only access. - 1'b1: USB 1.1 full-speed serial trans + * ceiver. This bit is always 1, with Write Only access. If both interface + * types are selected in coreConsultant (that is, parameters' values are no + * t zero), the application uses this bit to select the active interface is + * active, with Read-Write bit access. Note: USB 1.1 full-serial transceiv + * er is not supported. This bit always reads as 1'b0. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYSEL 0x0 + + * Suspend USB2.0 HS/FS/LS PHY (SusPHY) When set, USB2.0 PHY enters Suspend + * mode if Suspend conditions are valid. For DRD/OTG configurations, it is + * recommended that this bit is set to 0 during coreConsultant configurati + * on. If it is set to 1, then the application must clear this bit after po + * wer-on reset. Application needs to set it to 1 after the core initializa + * tion completes. For all other configurations, this bit can be set to 1 d + * uring core configuration. Note: - In host mode, on reset, this bit is se + * t to 1. Software can override this bit after reset. - In device mode, be + * fore issuing any device endpoint command when operating in 2.0 speeds, d + * isable this bit and enable it after the command completes. If you issue + * a command without disabling this bit when the device is in L2 state and + * if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get c + * ompleted. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20 0x1 + + * Full-Speed Serial Interface Select (FSIntf) The application uses this bi + * t to select a unidirectional or bidirectional USB 1.1 full-speed serial + * transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial in + * terface. This bit is set to 0 with Read Only access. - 1'b1: 3-pin bidir + * ectional full-speed serial interface. This bit is set to 0 with Read Onl + * y access. Note: USB 1.1 full-speed serial interface is not supported. Th + * is bit always reads as 1'b0. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_FSINTF 0x0 + + * ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to se + * lect a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interface - 1'b1: ULPI Int + * erface This bit is writable only if UTMI+ and ULPI is specified for High + * -Speed PHY Interface(s) in coreConsultant configuration (DWC_USB3_HSPHY_ + * INTERFACE = 3). Otherwise, this bit is read-only and the value depends o + * n the interface selected through DWC_USB3_HSPHY_INTERFACE. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL 0x1 + + * PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bi + * t to configure the core to support a UTMI+ PHY with an 8- or 16-bit inte + * rface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the en + * abled 2.0 ports must have the same clock frequency as Port0 clock freque + * ncy (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used toge + * ther for different ports at the same time (that is, all the ports must b + * e in 8-bit mode, or all of them must be in 16-bit mode, at a time). - If + * any of the USB 2.0 ports is selected as ULPI port for operation, then a + * ll the USB 2.0 ports must be operating at 60 MHz. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYIF 0x0 + + * HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicat + * ed by the application in this field, is multiplied by a bit-time factor; + * this factor is added to the high-speed/full-speed interpacket timeout d + * uration in the core to account for additional delays introduced by the P + * HY. This may be required, since the delay introduced by the PHY in gener + * ating the linestate condition may vary among PHYs. The USB standard time + * out value for high-speed operation is 736 to 816 (inclusive) bit times. + * The USB standard timeout value for full-speed operation is 16 to 18 (inc + * lusive) bit times. The application must program this field based on the + * speed of connection. The number of bit times added per PHY clock are: Hi + * gh-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz P + * HY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0. + * 4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY cloc + * k = 0.25 bit times + * PSU_USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL 0x7 + + * ULPI External VBUS Drive (ULPIExtVbusDrv) Selects supply source to drive + * 5V on VBUS, in the ULPI PHY. - 1'b0: PHY drives VBUS with internal char + * ge pump (default). - 1'b1: PHY drives VBUS with an external supply. (Onl + * y when RTL parameter DWC_USB3_HSPHY_INTERFACE = 2 or 3) + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV 0x1 + + * Global USB2 PHY Configuration Register The application must program this + * register before starting any transactions on either the SoC bus or the + * USB. In Device-only configurations, only one register is needed. In Host + * mode, per-port registers are implemented. + * (OFFSET, MASK, VALUE) (0XFE20C200, 0x00023FFFU ,0x00022457U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUSB2PHYCFG_OFFSET, + 0x00023FFFU, 0x00022457U); +/*##################################################################### */ + + /* + * Register : GFLADJ @ 0XFE20C630 + + * This field indicates the frame length adjustment to be applied when SOF/ + * ITP counter is running on the ref_clk. This register value is used to ad + * just the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP i + * nterval when GLADJ.GFLADJ_REFCLK_LPM_SEL is set to '1'. This field must + * be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set t + * o '1' or GCTL.SOFITPSYNC is set to '1'. The value is derived as follows: + * FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_pe + * riod)) * ref_clk_period where - the ref_clk_period_integer is the intege + * r value of the ref_clk period got by truncating the decimal (fractional) + * value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_c + * lk_period is the ref_clk period including the fractional value. Examples + * : If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLA + * DJ_REFCLK_FLADJ = ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignorin + * g the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_PE + * RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*2 + * 0.8333 = 5208 (ignoring the fractional value) + * PSU_USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ 0x0 + + * Global Frame Length Adjustment Register This register provides options f + * or the software to control the core behavior with respect to SOF (Start + * of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer + * functionality. It provides an option to override the fladj_30mhz_reg sid + * eband signal. In addition, it enables running SOF or ITP frame timer cou + * nters completely from the ref_clk. This facilitates hardware LPM in host + * mode with the SOF or ITP counters being run from the ref_clk signal. + * (OFFSET, MASK, VALUE) (0XFE20C630, 0x003FFF00U ,0x00000000U) + */ + PSU_Mask_Write(USB3_0_XHCI_GFLADJ_OFFSET, 0x003FFF00U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : GUCTL1 @ 0XFE20C11C + + * When this bit is set to '0', termsel, xcvrsel will become 0 during end o + * f resume while the opmode will become 0 once controller completes end of + * resume and enters U0 state (2 separate commandswill be issued). When th + * is bit is set to '1', all the termsel, xcvrsel, opmode becomes 0 during + * end of resume itself (only 1 command will be issued) + * PSU_USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY 0x1 + + * Reserved + * PSU_USB3_0_XHCI_GUCTL1_RESERVED_9 0x1 + + * Global User Control Register 1 + * (OFFSET, MASK, VALUE) (0XFE20C11C, 0x00000600U ,0x00000600U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUCTL1_OFFSET, 0x00000600U, 0x00000600U); +/*##################################################################### */ + + /* + * Register : GUCTL @ 0XFE20C12C + + * Host IN Auto Retry (USBHstInAutoRetryEn) When set, this field enables th + * e Auto Retry feature. For IN transfers (non-isochronous) that encounter + * data packets with CRC errors or internal overrun scenarios, the auto ret + * ry feature causes the Host core to reply to the device with a non-termin + * ating retry ACK (that is, an ACK transaction packet with Retry = 1 and N + * umP != 0). If the Auto Retry feature is disabled (default), the core wil + * l respond with a terminating retry ACK (that is, an ACK transaction pack + * et with Retry = 1 and NumP = 0). - 1'b0: Auto Retry Disabled - 1'b1: Aut + * o Retry Enabled Note: This bit is also applicable to the device mode. + * PSU_USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN 0x1 + + * Global User Control Register: This register provides a few options for t + * he software to control the core behavior in the Host mode. Most of the o + * ptions are used to improve host inter-operability with different devices + * . + * (OFFSET, MASK, VALUE) (0XFE20C12C, 0x00004000U ,0x00004000U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUCTL_OFFSET, 0x00004000U, 0x00004000U); +/*##################################################################### */ + + /* + * UPDATING TWO PCIE REGISTERS DEFAULT VALUES, AS THESE REGISTERS HAVE INCO + * RRECT RESET VALUES IN SILICON. + */ + /* + * Register : ATTR_25 @ 0XFD480064 + + * If TRUE Completion Timeout Disable is supported. This is required to be + * TRUE for Endpoint and either setting allowed for Root ports. Drives Devi + * ce Capability 2 [4]; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED 0X1 + + * ATTR_25 + * (OFFSET, MASK, VALUE) (0XFD480064, 0x00000200U ,0x00000200U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_25_OFFSET, 0x00000200U, 0x00000200U); +/*##################################################################### */ + + /* + * PCIE SETTINGS + */ + /* + * Register : ATTR_7 @ 0XFD48001C + + * Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0x0004; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_7_ATTR_BAR0 0x0 + + * ATTR_7 + * (OFFSET, MASK, VALUE) (0XFD48001C, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_7_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_8 @ 0XFD480020 + + * Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0xFFF0; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_8_ATTR_BAR0 0x0 + + * ATTR_8 + * (OFFSET, MASK, VALUE) (0XFD480020, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_8_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_9 @ 0XFD480024 + + * Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_9_ATTR_BAR1 0x0 + + * ATTR_9 + * (OFFSET, MASK, VALUE) (0XFD480024, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_9_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_10 @ 0XFD480028 + + * Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_10_ATTR_BAR1 0x0 + + * ATTR_10 + * (OFFSET, MASK, VALUE) (0XFD480028, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_10_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_11 @ 0XFD48002C + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFFF + * PSU_PCIE_ATTRIB_ATTR_11_ATTR_BAR2 0xFFFF + + * ATTR_11 + * (OFFSET, MASK, VALUE) (0XFD48002C, 0x0000FFFFU ,0x0000FFFFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_11_OFFSET, 0x0000FFFFU, 0x0000FFFFU); +/*##################################################################### */ + + /* + * Register : ATTR_12 @ 0XFD480030 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0x00FF + * PSU_PCIE_ATTRIB_ATTR_12_ATTR_BAR2 0xFF + + * ATTR_12 + * (OFFSET, MASK, VALUE) (0XFD480030, 0x0000FFFFU ,0x000000FFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_12_OFFSET, 0x0000FFFFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : ATTR_13 @ 0XFD480034 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_13_ATTR_BAR3 0x0 + + * ATTR_13 + * (OFFSET, MASK, VALUE) (0XFD480034, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_13_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_14 @ 0XFD480038 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0xFFFF + * PSU_PCIE_ATTRIB_ATTR_14_ATTR_BAR3 0xFFFF + + * ATTR_14 + * (OFFSET, MASK, VALUE) (0XFD480038, 0x0000FFFFU ,0x0000FFFFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_14_OFFSET, 0x0000FFFFU, 0x0000FFFFU); +/*##################################################################### */ + + /* + * Register : ATTR_15 @ 0XFD48003C + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFF0 + * PSU_PCIE_ATTRIB_ATTR_15_ATTR_BAR4 0xFFF0 + + * ATTR_15 + * (OFFSET, MASK, VALUE) (0XFD48003C, 0x0000FFFFU ,0x0000FFF0U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_15_OFFSET, 0x0000FFFFU, 0x0000FFF0U); +/*##################################################################### */ + + /* + * Register : ATTR_16 @ 0XFD480040 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0xFFF0 + * PSU_PCIE_ATTRIB_ATTR_16_ATTR_BAR4 0xFFF0 + + * ATTR_16 + * (OFFSET, MASK, VALUE) (0XFD480040, 0x0000FFFFU ,0x0000FFF0U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_16_OFFSET, 0x0000FFFFU, 0x0000FFF0U); +/*##################################################################### */ + + /* + * Register : ATTR_17 @ 0XFD480044 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 + * PSU_PCIE_ATTRIB_ATTR_17_ATTR_BAR5 0xFFF1 + + * ATTR_17 + * (OFFSET, MASK, VALUE) (0XFD480044, 0x0000FFFFU ,0x0000FFF1U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_17_OFFSET, 0x0000FFFFU, 0x0000FFF1U); +/*##################################################################### */ + + /* + * Register : ATTR_18 @ 0XFD480048 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 + * PSU_PCIE_ATTRIB_ATTR_18_ATTR_BAR5 0xFFF1 + + * ATTR_18 + * (OFFSET, MASK, VALUE) (0XFD480048, 0x0000FFFFU ,0x0000FFF1U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_18_OFFSET, 0x0000FFFFU, 0x0000FFF1U); +/*##################################################################### */ + + /* + * Register : ATTR_27 @ 0XFD48006C + + * Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1 + * - 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred to the Device Capa + * bilities register. The values: 4-2048 bytes, 5- 4096 bytes are not suppo + * rted; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED 1 + + * Endpoint L1 Acceptable Latency. Records the latency that the endpoint ca + * n withstand on transitions from L1 state to L0 (if L1 state supported). + * Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to + * 8us, 4h 8 to 16us, 5h 16 to 32us, 6h 32 to 64us, 7h more than 64us. For + * Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY 0x0 + + * ATTR_27 + * (OFFSET, MASK, VALUE) (0XFD48006C, 0x00000738U ,0x00000100U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_27_OFFSET, 0x00000738U, 0x00000100U); +/*##################################################################### */ + + /* + * Register : ATTR_50 @ 0XFD4800C8 + + * Identifies the type of device/port as follows: 0000b PCI Express Endpoin + * t device, 0001b Legacy PCI Express Endpoint device, 0100b Root Port of P + * CI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110 + * b Downstream Port of PCI Express Switch, 0111b PCIE Express to PCI/PCI-X + * Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Expre + * ss Capabilities register. Must be consistent with IS_SWITCH and UPSTREAM + * _FACING settings.; EP=0x0000; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE 4 + + * PCIe Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x009C; + * RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR 0 + + * ATTR_50 + * (OFFSET, MASK, VALUE) (0XFD4800C8, 0x0000FFF0U ,0x00000040U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_50_OFFSET, 0x0000FFF0U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : ATTR_105 @ 0XFD4801A4 + + * Number of credits that should be advertised for Completion data received + * on Virtual Channel 0. The bytes advertised must be less than or equal t + * o the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD + * PSU_PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD 0xCD + + * ATTR_105 + * (OFFSET, MASK, VALUE) (0XFD4801A4, 0x000007FFU ,0x000000CDU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_105_OFFSET, + 0x000007FFU, 0x000000CDU); +/*##################################################################### */ + + /* + * Register : ATTR_106 @ 0XFD4801A8 + + * Number of credits that should be advertised for Completion headers recei + * ved on Virtual Channel 0. The sum of the posted, non posted, and complet + * ion header credits must be <= 80; EP=0x0048; RP=0x0024 + * PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH 0x24 + + * Number of credits that should be advertised for Non-Posted headers recei + * ved on Virtual Channel 0. The number of non posted data credits advertis + * ed by the block is equal to the number of non posted header credits. The + * sum of the posted, non posted, and completion header credits must be <= + * 80; EP=0x0004; RP=0x000C + * PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH 0xC + + * ATTR_106 + * (OFFSET, MASK, VALUE) (0XFD4801A8, 0x00003FFFU ,0x00000624U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_106_OFFSET, + 0x00003FFFU, 0x00000624U); +/*##################################################################### */ + + /* + * Register : ATTR_107 @ 0XFD4801AC + + * Number of credits that should be advertised for Non-Posted data received + * on Virtual Channel 0. The number of non posted data credits advertised + * by the block is equal to two times the number of non posted header credi + * ts if atomic operations are supported or is equal to the number of non p + * osted header credits if atomic operations are not supported. The bytes a + * dvertised must be less than or equal to the bram bytes available. See VC + * 0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 + * PSU_PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD 0x18 + + * ATTR_107 + * (OFFSET, MASK, VALUE) (0XFD4801AC, 0x000007FFU ,0x00000018U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_107_OFFSET, + 0x000007FFU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : ATTR_108 @ 0XFD4801B0 + + * Number of credits that should be advertised for Posted data received on + * Virtual Channel 0. The bytes advertised must be less than or equal to th + * e bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 + * PSU_PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD 0xB5 + + * ATTR_108 + * (OFFSET, MASK, VALUE) (0XFD4801B0, 0x000007FFU ,0x000000B5U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_108_OFFSET, + 0x000007FFU, 0x000000B5U); +/*##################################################################### */ + + /* + * Register : ATTR_109 @ 0XFD4801B4 + + * Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_ + * n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV 0x0 + + * Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim + * TRUE == trim.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM 0x1 + + * Enables ECRC check on received TLP's 0 == don't check 1 == always check + * 3 == check if enabled by ECRC check enable bit of AER cap structure; EP= + * 0x0003; RP=0x0003 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK 0x3 + + * Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). + * Calculated from max payload size supported and the number of brams conf + * igured for transmit; EP=0x001C; RP=0x001C + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET 0x1c + + * Number of credits that should be advertised for Posted headers received + * on Virtual Channel 0. The sum of the posted, non posted, and completion + * header credits must be <= 80; EP=0x0004; RP=0x0020 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH 0x20 + + * ATTR_109 + * (OFFSET, MASK, VALUE) (0XFD4801B4, 0x0000FFFFU ,0x00007E20U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_109_OFFSET, + 0x0000FFFFU, 0x00007E20U); +/*##################################################################### */ + + /* + * Register : ATTR_34 @ 0XFD480088 + + * Specifies values to be transferred to Header Type register. Bit 7 should + * be set to '0' indicating single-function device. Bit 0 identifies heade + * r as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; + * RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE 0x1 + + * ATTR_34 + * (OFFSET, MASK, VALUE) (0XFD480088, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_34_OFFSET, 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : ATTR_53 @ 0XFD4800D4 + + * PM Capability's Next Capability Offset pointer to the next item in the c + * apabilities list, or 00h if this is the final capability.; EP=0x0048; RP + * =0x0060 + * PSU_PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR 0x60 + + * ATTR_53 + * (OFFSET, MASK, VALUE) (0XFD4800D4, 0x000000FFU ,0x00000060U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_53_OFFSET, 0x000000FFU, 0x00000060U); +/*##################################################################### */ + + /* + * Register : ATTR_41 @ 0XFD4800A4 + + * MSI Per-Vector Masking Capable. The value is transferred to the MSI Cont + * rol Register[8]. When set, adds Mask and Pending Dword to Cap structure; + * EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE 0x0 + + * Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 + + * MSI Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x0060; R + * P=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR 0x0 + + * Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 + + * ATTR_41 + * (OFFSET, MASK, VALUE) (0XFD4800A4, 0x000003FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_41_OFFSET, 0x000003FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_97 @ 0XFD480184 + + * Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b + * x4, 001000b x8.; EP=0x0004; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH 0x1 + + * Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1 + * ], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x0004; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH 0x1 + + * ATTR_97 + * (OFFSET, MASK, VALUE) (0XFD480184, 0x00000FFFU ,0x00000041U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_97_OFFSET, 0x00000FFFU, 0x00000041U); +/*##################################################################### */ + + /* + * Register : ATTR_100 @ 0XFD480190 + + * TRUE specifies upstream-facing port. FALSE specifies downstream-facing p + * ort.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING 0x0 + + * ATTR_100 + * (OFFSET, MASK, VALUE) (0XFD480190, 0x00000040U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_100_OFFSET, + 0x00000040U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_101 @ 0XFD480194 + + * Enable the routing of message TLPs to the user through the TRN RX interf + * ace. A bit value of 1 enables routing of the message TLP to the user. Me + * ssages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 + * - ERR NONFATAL, Bit 2 - ERR FATAL, Bit 3 - INTA Bit 4 - INTB, Bit 5 - I + * NTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit + * 10 PME_Turn_Off; EP=0x0000; RP=0x07FF + * PSU_PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE 0x7FF + + * Disable BAR filtering. Does not change the behavior of the bar hit outpu + * ts; EP=0x0000; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING 0x1 + + * ATTR_101 + * (OFFSET, MASK, VALUE) (0XFD480194, 0x0000FFE2U ,0x0000FFE2U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_101_OFFSET, + 0x0000FFE2U, 0x0000FFE2U); +/*##################################################################### */ + + /* + * Register : ATTR_37 @ 0XFD480094 + + * Link Bandwidth notification capability. Indicates support for the link b + * andwidth notification status and interrupt mechanism. Required for Root. + * ; EP=0x0000; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP 0x1 + + * Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Op + * tionality ECN. Transferred to the Link Capabilities register.; EP=0x0001 + * ; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY 0x1 + + * ATTR_37 + * (OFFSET, MASK, VALUE) (0XFD480094, 0x00004200U ,0x00004200U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_37_OFFSET, 0x00004200U, 0x00004200U); +/*##################################################################### */ + + /* + * Register : ATTR_93 @ 0XFD480174 + + * Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value + * (or combined with the built-in value, depending on LL_REPLAY_TIMEOUT_FU + * NC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN 0x1 + + * Sets a user-defined timeout for the Replay Timer to force cause the retr + * ansmission of unacknowledged TLPs; refer to LL_REPLAY_TIMEOUT_EN and LL_ + * REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this att + * ribute is in symbol times, which is 4ns at GEN1 speeds and 2ns at GEN2.; + * EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT 0x1000 + + * ATTR_93 + * (OFFSET, MASK, VALUE) (0XFD480174, 0x0000FFFFU ,0x00009000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_93_OFFSET, 0x0000FFFFU, 0x00009000U); +/*##################################################################### */ + + /* + * Register : ID @ 0XFD480200 + + * Device ID for the the PCIe Cap Structure Device ID field + * PSU_PCIE_ATTRIB_ID_CFG_DEV_ID 0xd021 + + * Vendor ID for the PCIe Cap Structure Vendor ID field + * PSU_PCIE_ATTRIB_ID_CFG_VEND_ID 0x10ee + + * ID + * (OFFSET, MASK, VALUE) (0XFD480200, 0xFFFFFFFFU ,0x10EED021U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ID_OFFSET, 0xFFFFFFFFU, 0x10EED021U); +/*##################################################################### */ + + /* + * Register : SUBSYS_ID @ 0XFD480204 + + * Subsystem ID for the the PCIe Cap Structure Subsystem ID field + * PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID 0x7 + + * Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field + * PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID 0x10ee + + * SUBSYS_ID + * (OFFSET, MASK, VALUE) (0XFD480204, 0xFFFFFFFFU ,0x10EE0007U) + */ + PSU_Mask_Write(PCIE_ATTRIB_SUBSYS_ID_OFFSET, + 0xFFFFFFFFU, 0x10EE0007U); +/*##################################################################### */ + + /* + * Register : REV_ID @ 0XFD480208 + + * Revision ID for the the PCIe Cap Structure + * PSU_PCIE_ATTRIB_REV_ID_CFG_REV_ID 0x0 + + * REV_ID + * (OFFSET, MASK, VALUE) (0XFD480208, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_REV_ID_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_24 @ 0XFD480060 + + * Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x8000; RP=0x8000 + * PSU_PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE 0x400 + + * ATTR_24 + * (OFFSET, MASK, VALUE) (0XFD480060, 0x0000FFFFU ,0x00000400U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_24_OFFSET, 0x0000FFFFU, 0x00000400U); +/*##################################################################### */ + + /* + * Register : ATTR_25 @ 0XFD480064 + + * Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x0005; RP=0x0006 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE 0x6 + + * INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] + * to be hardwired to 0.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED 0 + + * ATTR_25 + * (OFFSET, MASK, VALUE) (0XFD480064, 0x000001FFU ,0x00000006U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_25_OFFSET, 0x000001FFU, 0x00000006U); +/*##################################################################### */ + + /* + * Register : ATTR_4 @ 0XFD480010 + + * Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 + + * Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 + + * ATTR_4 + * (OFFSET, MASK, VALUE) (0XFD480010, 0x00001000U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_4_OFFSET, 0x00001000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_89 @ 0XFD480164 + + * VSEC's Next Capability Offset pointer to the next item in the capabiliti + * es list, or 000h if this is the final capability.; EP=0x0140; RP=0x0140 + * PSU_PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR 0 + + * ATTR_89 + * (OFFSET, MASK, VALUE) (0XFD480164, 0x00001FFEU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_89_OFFSET, 0x00001FFEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_79 @ 0XFD48013C + + * CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the + * Root Capabilities register.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY 1 + + * ATTR_79 + * (OFFSET, MASK, VALUE) (0XFD48013C, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_79_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : ATTR_43 @ 0XFD4800AC + + * Indicates that the MSIX structures exists. If this is FALSE, then the MS + * IX structure cannot be accessed via either the link or the management po + * rt.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON 0 + + * ATTR_43 + * (OFFSET, MASK, VALUE) (0XFD4800AC, 0x00000100U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_43_OFFSET, 0x00000100U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_48 @ 0XFD4800C0 + + * MSI-X Table Size. This value is transferred to the MSI-X Message Control + * [10:0] field. Set to 0 if MSI-X is not enabled. Note that the core does + * not implement the table; that must be implemented in user logic.; EP=0x0 + * 003; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE 0 + + * ATTR_48 + * (OFFSET, MASK, VALUE) (0XFD4800C0, 0x000007FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_48_OFFSET, 0x000007FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_46 @ 0XFD4800B8 + + * MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET 0 + + * ATTR_46 + * (OFFSET, MASK, VALUE) (0XFD4800B8, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_46_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_47 @ 0XFD4800BC + + * MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET 0 + + * ATTR_47 + * (OFFSET, MASK, VALUE) (0XFD4800BC, 0x00001FFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_47_OFFSET, 0x00001FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_44 @ 0XFD4800B0 + + * MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET 0 + + * ATTR_44 + * (OFFSET, MASK, VALUE) (0XFD4800B0, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_44_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_45 @ 0XFD4800B4 + + * MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x1000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET 0 + + * ATTR_45 + * (OFFSET, MASK, VALUE) (0XFD4800B4, 0x0000FFF8U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_45_OFFSET, 0x0000FFF8U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CB @ 0XFD48031C + + * DT837748 Enable + * PSU_PCIE_ATTRIB_CB_CB1 0x0 + + * ECO Register 1 + * (OFFSET, MASK, VALUE) (0XFD48031C, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_CB_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_35 @ 0XFD48008C + + * Active State PM Support. Indicates the level of active state power manag + * ement supported by the selected PCI Express Link, encoded as follows: 0 + * Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supporte + * d.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT 0x0 + + * ATTR_35 + * (OFFSET, MASK, VALUE) (0XFD48008C, 0x00003000U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_35_OFFSET, 0x00003000U, 0x00000000U); +/*##################################################################### */ + + /* + * PUTTING PCIE CONTROL IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00020000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00020000U, 0x00000000U); +/*##################################################################### */ + + /* + * PCIE GPIO RESET + */ + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0020U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * CHECK PLL LOCK FOR LANE0 + */ + /* + * Register : L0_PLL_STATUS_READ_1 @ 0XFD4023E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD4023E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L0_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE1 + */ + /* + * Register : L1_PLL_STATUS_READ_1 @ 0XFD4063E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD4063E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L1_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE2 + */ + /* + * Register : L2_PLL_STATUS_READ_1 @ 0XFD40A3E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD40A3E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L2_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE3 + */ + /* + * Register : L3_PLL_STATUS_READ_1 @ 0XFD40E3E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD40E3E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L3_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * SATA AHCI VENDOR SETTING + */ + /* + * Register : PP2C @ 0XFD0C00AC + + * CIBGMN: COMINIT Burst Gap Minimum. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGMN 0x18 + + * CIBGMX: COMINIT Burst Gap Maximum. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGMX 0x40 + + * CIBGN: COMINIT Burst Gap Nominal. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGN 0x18 + + * CINMP: COMINIT Negate Minimum Period. + * PSU_SATA_AHCI_VENDOR_PP2C_CINMP 0x28 + + * PP2C - Port Phy2Cfg Register. This register controls the configuration o + * f the Phy Control OOB timing for the COMINIT parameters for either Port + * 0 or Port 1. The Port configured is controlled by the value programmed i + * nto the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00AC, 0xFFFFFFFFU ,0x28184018U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP2C_OFFSET, + 0xFFFFFFFFU, 0x28184018U); +/*##################################################################### */ + + /* + * Register : PP3C @ 0XFD0C00B0 + + * CWBGMN: COMWAKE Burst Gap Minimum. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGMN 0x06 + + * CWBGMX: COMWAKE Burst Gap Maximum. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGMX 0x14 + + * CWBGN: COMWAKE Burst Gap Nominal. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGN 0x08 + + * CWNMP: COMWAKE Negate Minimum Period. + * PSU_SATA_AHCI_VENDOR_PP3C_CWNMP 0x0E + + * PP3C - Port Phy3CfgRegister. This register controls the configuration of + * the Phy Control OOB timing for the COMWAKE parameters for either Port 0 + * or Port 1. The Port configured is controlled by the value programmed in + * to the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B0, 0xFFFFFFFFU ,0x0E081406U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP3C_OFFSET, + 0xFFFFFFFFU, 0x0E081406U); +/*##################################################################### */ + + /* + * Register : PP4C @ 0XFD0C00B4 + + * BMX: COM Burst Maximum. + * PSU_SATA_AHCI_VENDOR_PP4C_BMX 0x13 + + * BNM: COM Burst Nominal. + * PSU_SATA_AHCI_VENDOR_PP4C_BNM 0x08 + + * SFD: Signal Failure Detection, if the signal detection de-asserts for a + * time greater than this then the OOB detector will determine this is a li + * ne idle and cause the PhyInit state machine to exit the Phy Ready State. + * A value of zero disables the Signal Failure Detector. The value is base + * d on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving + * a nominal time of 500ns based on a 150MHz PMCLK. + * PSU_SATA_AHCI_VENDOR_PP4C_SFD 0x4A + + * PTST: Partial to Slumber timer value, specific delay the controller shou + * ld apply while in partial before entering slumber. The value is bases on + * the system clock divided by 128, total delay = (Sys Clock Period) * PTS + * T * 128 + * PSU_SATA_AHCI_VENDOR_PP4C_PTST 0x06 + + * PP4C - Port Phy4Cfg Register. This register controls the configuration o + * f the Phy Control Burst timing for the COM parameters for either Port 0 + * or Port 1. The Port configured is controlled by the value programmed int + * o the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B4, 0xFFFFFFFFU ,0x064A0813U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP4C_OFFSET, + 0xFFFFFFFFU, 0x064A0813U); +/*##################################################################### */ + + /* + * Register : PP5C @ 0XFD0C00B8 + + * RIT: Retry Interval Timer. The calculated value divided by two, the lowe + * r digit of precision is not needed. + * PSU_SATA_AHCI_VENDOR_PP5C_RIT 0xC96A4 + + * RCT: Rate Change Timer, a value based on the 54.2us for which a SATA dev + * ice will transmit at a fixed rate ALIGNp after OOB has completed, for a + * fast SERDES it is suggested that this value be 54.2us / 4 + * PSU_SATA_AHCI_VENDOR_PP5C_RCT 0x3FF + + * PP5C - Port Phy5Cfg Register. This register controls the configuration o + * f the Phy Control Retry Interval timing for either Port 0 or Port 1. The + * Port configured is controlled by the value programmed into the Port Con + * fig Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B8, 0xFFFFFFFFU ,0x3FFC96A4U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP5C_OFFSET, + 0xFFFFFFFFU, 0x3FFC96A4U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ps_pl_isolation_removal_data() { - // : PS-PL POWER UP REQUEST - /*Register : REQ_PWRUP_INT_EN @ 0XFFD80118

+unsigned long psu_resetin_init_data(void) +{ + /* + * PUTTING SERDES PERIPHERAL IN RESET + */ + /* + * PUTTING USB0 IN RESET + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - Power-up Request Interrupt Enable for PL - PSU_PMU_GLOBAL_REQ_PWRUP_INT_EN_PL 1 + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X1 - Power-up Request Interrupt Enable Register. Writing a 1 to this location will unmask the interrupt. - (OFFSET, MASK, VALUE) (0XFFD80118, 0x00800000U ,0x00800000U) - RegMask = (PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK | 0 ); + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X1 - RegVal = ((0x00000001U << PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET ,0x00800000U ,0x00800000U); - /*############################################################################################################################ */ + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X1 - /*Register : REQ_PWRUP_TRIG @ 0XFFD80120

+ * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000540U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000540U, 0x00000540U); +/*##################################################################### */ - Power-up Request Trigger for PL - PSU_PMU_GLOBAL_REQ_PWRUP_TRIG_PL 1 + /* + * PUTTING GEM0 IN RESET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 - Power-up Request Trigger Register. A write of one to this location will generate a power-up request to the PMU. - (OFFSET, MASK, VALUE) (0XFFD80120, 0x00800000U ,0x00800000U) - RegMask = (PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK | 0 ); + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X1 - RegVal = ((0x00000001U << PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET ,0x00800000U ,0x00800000U); - /*############################################################################################################################ */ + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000008U); +/*##################################################################### */ - // : POLL ON PL POWER STATUS - /*Register : REQ_PWRUP_STATUS @ 0XFFD80110

+ /* + * PUTTING SATA IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - Power-up Request Status for PL - PSU_PMU_GLOBAL_REQ_PWRUP_STATUS_PL 1 - (OFFSET, MASK, VALUE) (0XFFD80110, 0x00800000U ,0x00000000U) */ - mask_pollOnValue(PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET,0x00800000U,0x00000000U); + * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X1 - /*############################################################################################################################ */ + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000002U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00000002U, 0x00000002U); +/*##################################################################### */ + + /* + * PUTTING PCIE IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X1 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X1 + + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X1 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000E0000U ,0x000E0000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000E0000U, 0x000E0000U); +/*##################################################################### */ + + /* + * PUTTING DP IN RESET + */ + /* + * Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238 + + * Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 + * PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0XA + + * Control PHY Power down + * (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x0000000AU) + */ + PSU_Mask_Write(DP_DP_TX_PHY_POWER_DOWN_OFFSET, + 0x0000000FU, 0x0000000AU); +/*##################################################################### */ + + /* + * Register : DP_PHY_RESET @ 0XFD4A0200 + + * Set to '1' to hold the GT in reset. Clear to release. + * PSU_DP_DP_PHY_RESET_GT_RESET 0X1 + + * Reset the transmitter PHY. + * (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000002U) + */ + PSU_Mask_Write(DP_DP_PHY_RESET_OFFSET, 0x00000002U, 0x00000002U); +/*##################################################################### */ + + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X1 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00010000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00010000U, 0x00010000U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ps_pl_reset_config_data() { - // : PS PL RESET SEQUENCE - // : FABRIC RESET USING EMIO - /*Register : MASK_DATA_5_MSW @ 0XFF0A002C

+unsigned long psu_ps_pl_isolation_removal_data(void) +{ + /* + * PS-PL POWER UP REQUEST + */ + /* + * Register : REQ_PWRUP_INT_EN @ 0XFFD80118 - Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] - PSU_GPIO_MASK_DATA_5_MSW_MASK_5_MSW 0x8000 + * Power-up Request Interrupt Enable for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_INT_EN_PL 1 - Maskable Output Data (GPIO Bank5, EMIO, Upper 16bits) - (OFFSET, MASK, VALUE) (0XFF0A002C, 0xFFFF0000U ,0x80000000U) - RegMask = (GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK | 0 ); + * Power-up Request Interrupt Enable Register. Writing a 1 to this location + * will unmask the interrupt. + * (OFFSET, MASK, VALUE) (0XFFD80118, 0x00800000U ,0x00800000U) + */ + PSU_Mask_Write(PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET, + 0x00800000U, 0x00800000U); +/*##################################################################### */ - RegVal = ((0x00008000U << GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_MASK_DATA_5_MSW_OFFSET ,0xFFFF0000U ,0x80000000U); - /*############################################################################################################################ */ + /* + * Register : REQ_PWRUP_TRIG @ 0XFFD80120 - /*Register : DIRM_5 @ 0XFF0A0344

+ * Power-up Request Trigger for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_TRIG_PL 1 - Operation is the same as DIRM_0[DIRECTION_0] - PSU_GPIO_DIRM_5_DIRECTION_5 0x80000000 + * Power-up Request Trigger Register. A write of one to this location will + * generate a power-up request to the PMU. + * (OFFSET, MASK, VALUE) (0XFFD80120, 0x00800000U ,0x00800000U) + */ + PSU_Mask_Write(PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET, + 0x00800000U, 0x00800000U); +/*##################################################################### */ - Direction mode (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0344, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DIRM_5_DIRECTION_5_MASK | 0 ); + /* + * POLL ON PL POWER STATUS + */ + /* + * Register : REQ_PWRUP_STATUS @ 0XFFD80110 - RegVal = ((0x80000000U << GPIO_DIRM_5_DIRECTION_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DIRM_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * Power-up Request Status for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_STATUS_PL 1 + * (OFFSET, MASK, VALUE) (0XFFD80110, 0x00800000U ,0x00000000U) + */ + mask_pollOnValue(PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET, + 0x00800000U, 0x00000000U); - /*Register : OEN_5 @ 0XFF0A0348

+/*##################################################################### */ - Operation is the same as OEN_0[OP_ENABLE_0] - PSU_GPIO_OEN_5_OP_ENABLE_5 0x80000000 - Output enable (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0348, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_OEN_5_OP_ENABLE_5_MASK | 0 ); + return 1; +} +unsigned long psu_afi_config(void) +{ + /* + * AFI RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - RegVal = ((0x80000000U << GPIO_OEN_5_OP_ENABLE_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_OEN_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * AF_FM0 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM0_RESET 0 - /*Register : DATA_5 @ 0XFF0A0054

+ * AF_FM1 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM1_RESET 0 - Output Data - PSU_GPIO_DATA_5_DATA_5 0x80000000 + * AF_FM2 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM2_RESET 0 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); + * AF_FM3 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM3_RESET 0 - RegVal = ((0x80000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * AF_FM4 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM4_RESET 0 + + * AF_FM5 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM5_RESET 0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00001F80U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00001F80U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * AFI FM 6 + * PSU_CRL_APB_RST_LPD_TOP_AFI_FM6_RESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00080000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00080000U, 0x00000000U); +/*##################################################################### */ + + /* + * AFIFM INTERFACE WIDTH + */ + /* + * Register : afi_fs @ 0XFD615000 + + * Select the 32/64/128-bit data width selection for the Slave 0 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved + * PSU_FPD_SLCR_AFI_FS_DW_SS0_SEL 0x2 + + * Select the 32/64/128-bit data width selection for the Slave 1 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved + * PSU_FPD_SLCR_AFI_FS_DW_SS1_SEL 0x2 + + * afi fs SLCR control register. This register is static and should not be + * modified during operation. + * (OFFSET, MASK, VALUE) (0XFD615000, 0x00000F00U ,0x00000A00U) + */ + PSU_Mask_Write(FPD_SLCR_AFI_FS_OFFSET, 0x00000F00U, 0x00000A00U); +/*##################################################################### */ + + + return 1; +} +unsigned long psu_ps_pl_reset_config_data(void) +{ + /* + * PS PL RESET SEQUENCE + */ + /* + * FABRIC RESET USING EMIO + */ + /* + * Register : MASK_DATA_5_MSW @ 0XFF0A002C + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_5_MSW_MASK_5_MSW 0x8000 + + * Maskable Output Data (GPIO Bank5, EMIO, Upper 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A002C, 0xFFFF0000U ,0x80000000U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_5_MSW_OFFSET, + 0xFFFF0000U, 0x80000000U); +/*##################################################################### */ + + /* + * Register : DIRM_5 @ 0XFF0A0344 + + * Operation is the same as DIRM_0[DIRECTION_0] + * PSU_GPIO_DIRM_5_DIRECTION_5 0x80000000 + + * Direction mode (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0344, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DIRM_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ + + /* + * Register : OEN_5 @ 0XFF0A0348 + + * Operation is the same as OEN_0[OP_ENABLE_0] + * PSU_GPIO_OEN_5_OP_ENABLE_5 0x80000000 + + * Output enable (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0348, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_OEN_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ + + /* + * Register : DATA_5 @ 0XFF0A0054 + + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0x80000000 + + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ mask_delay(1); - /*############################################################################################################################ */ +/*##################################################################### */ - // : FABRIC RESET USING DATA_5 TOGGLE - /*Register : DATA_5 @ 0XFF0A0054

+ /* + * FABRIC RESET USING DATA_5 TOGGLE + */ + /* + * Register : DATA_5 @ 0XFF0A0054 - Output Data - PSU_GPIO_DATA_5_DATA_5 0X00000000 + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0X00000000 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x00000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); - - RegVal = ((0x00000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ mask_delay(1); - /*############################################################################################################################ */ +/*##################################################################### */ - // : FABRIC RESET USING DATA_5 TOGGLE - /*Register : DATA_5 @ 0XFF0A0054

+ /* + * FABRIC RESET USING DATA_5 TOGGLE + */ + /* + * Register : DATA_5 @ 0XFF0A0054 - Output Data - PSU_GPIO_DATA_5_DATA_5 0x80000000 + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0x80000000 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); - - RegVal = ((0x80000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ddr_phybringup_data() { +unsigned long psu_ddr_phybringup_data(void) +{ + + + unsigned int regval = 0; + + unsigned int pll_retry = 10; + + unsigned int pll_locked = 0; + + + while ((pll_retry > 0) && (!pll_locked)) { + + Xil_Out32(0xFD080004, 0x00040010);/*PIR*/ + Xil_Out32(0xFD080004, 0x00040011);/*PIR*/ + + while ((Xil_In32(0xFD080030) & 0x1) != 1) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + + pll_locked = (Xil_In32(0xFD080030) & 0x80000000) + >> 31;/*PGSR0*/ + pll_locked &= (Xil_In32(0xFD0807E0) & 0x10000) + >> 16;/*DX0GSR0*/ + pll_locked &= (Xil_In32(0xFD0809E0) & 0x10000) + >> 16;/*DX2GSR0*/ + pll_locked &= (Xil_In32(0xFD080BE0) & 0x10000) + >> 16;/*DX4GSR0*/ + pll_locked &= (Xil_In32(0xFD080DE0) & 0x10000) + >> 16;/*DX6GSR0*/ + pll_retry--; + } + Xil_Out32(0xFD0800C0, Xil_In32(0xFD0800C0) | + (pll_retry << 16));/*GPR0*/ + Xil_Out32(0xFD080004U, 0x00040063U); + /* PHY BRINGUP SEQ */ + while ((Xil_In32(0xFD080030U) & 0x0000000FU) != 0x0000000FU) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + prog_reg(0xFD080004U, 0x00000001U, 0x00000000U, 0x00000001U); + /* poll for PHY initialization to complete */ + while ((Xil_In32(0xFD080030U) & 0x000000FFU) != 0x0000001FU) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } - unsigned int regval = 0; - int dpll_divisor; - dpll_divisor = (Xil_In32(0xFD1A0080U) & 0x00003F00U) >> 0x00000008U; - prog_reg (0xFD1A0080U, 0x00003F00U, 0x00000008U, 0x00000005U); - prog_reg (0xFD080028U, 0x00000001U, 0x00000000U, 0x00000001U); - Xil_Out32(0xFD080004U, 0x00040003U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - prog_reg (0xFD080684U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806A4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806C4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806E4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD1A0080, 0x3F00, 0x8, dpll_divisor); - Xil_Out32(0xFD080004U, 0x40040071U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - Xil_Out32(0xFD080004U, 0x40040001U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - // PHY BRINGUP SEQ - while ((Xil_In32(0xFD080030U) & 0x0000000FU) != 0x0000000FU); - prog_reg (0xFD080004U, 0x00000001U, 0x00000000U, 0x00000001U); - //poll for PHY initialization to complete - while ((Xil_In32(0xFD080030U) & 0x000000FFU) != 0x0000001FU); - Xil_Out32(0xFD0701B0U, 0x00000001U); Xil_Out32(0xFD070320U, 0x00000001U); - while ((Xil_In32(0xFD070004U) & 0x0000000FU) != 0x00000001U); - prog_reg (0xFD080014U, 0x00000040U, 0x00000006U, 0x00000001U); - Xil_Out32(0xFD080004, 0x0004FE01); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while(regval != 0x80000FFF){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } + while ((Xil_In32(0xFD070004U) & 0x0000000FU) != 0x00000001U) { + /*****TODO*****/ - - // Run Vref training in static read mode + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + prog_reg(0xFD080014U, 0x00000040U, 0x00000006U, 0x00000001U); + Xil_Out32(0xFD080004, 0x0004FE01); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while (regval != 0x80000FFF) + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + +/* Run Vref training in static read mode*/ Xil_Out32(0xFD080200U, 0x100091C7U); - Xil_Out32(0xFD080018U, 0x00F01EF2U); - Xil_Out32(0xFD08001CU, 0x55AA5498U); - Xil_Out32(0xFD08142CU, 0x00041830U); - Xil_Out32(0xFD08146CU, 0x00041830U); - Xil_Out32(0xFD0814ACU, 0x00041830U); - Xil_Out32(0xFD0814ECU, 0x00041830U); - Xil_Out32(0xFD08152CU, 0x00041830U); - + Xil_Out32(0xFD080018U, 0x00F01EEFU); + prog_reg(0xFD08001CU, 0x00000018U, 0x00000003U, 0x00000003U); + prog_reg(0xFD08142CU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD08146CU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD0814ACU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD0814ECU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD08152CU, 0x00000030U, 0x00000004U, 0x00000003U); - Xil_Out32(0xFD080004, 0x00060001); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while((regval & 0x80004001) != 0x80004001){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } - // Vref training is complete, disabling static read mode + Xil_Out32(0xFD080004, 0x00060001); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while ((regval & 0x80004001) != 0x80004001) { + /*PUB_PGSR0*/ + regval = Xil_In32(0xFD080030); + } + + prog_reg(0xFD08001CU, 0x00000018U, 0x00000003U, 0x00000000U); + prog_reg(0xFD08142CU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD08146CU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD0814ACU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD0814ECU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD08152CU, 0x00000030U, 0x00000004U, 0x00000000U); +/*Vref training is complete, disabling static read mode*/ Xil_Out32(0xFD080200U, 0x800091C7U); - Xil_Out32(0xFD080018U, 0x00F12302U); - Xil_Out32(0xFD08001CU, 0x55AA5480U); - Xil_Out32(0xFD08142CU, 0x00041800U); - Xil_Out32(0xFD08146CU, 0x00041800U); - Xil_Out32(0xFD0814ACU, 0x00041800U); - Xil_Out32(0xFD0814ECU, 0x00041800U); - Xil_Out32(0xFD08152CU, 0x00041800U); - + Xil_Out32(0xFD080018U, 0x00F122E7U); - Xil_Out32(0xFD080004, 0x0000C001); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while((regval & 0x80000C01) != 0x80000C01){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } + + Xil_Out32(0xFD080004, 0x0000C001); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while ((regval & 0x80000C01) != 0x80000C01) { + /*PUB_PGSR0*/ + regval = Xil_In32(0xFD080030); + } Xil_Out32(0xFD070180U, 0x01000040U); Xil_Out32(0xFD070060U, 0x00000000U); - prog_reg (0xFD080014U, 0x00000040U, 0x00000006U, 0x00000000U); + prog_reg(0xFD080014U, 0x00000040U, 0x00000006U, 0x00000000U); -return 1; +return 1; } /** * CRL_APB Base Address */ #define CRL_APB_BASEADDR 0XFF5E0000U -#define CRL_APB_RST_LPD_IOU0 ( ( CRL_APB_BASEADDR ) + 0X00000230U ) -#define CRL_APB_RST_LPD_IOU1 ( ( CRL_APB_BASEADDR ) + 0X00000234U ) -#define CRL_APB_RST_LPD_IOU2 ( ( CRL_APB_BASEADDR ) + 0X00000238U ) -#define CRL_APB_RST_LPD_TOP ( ( CRL_APB_BASEADDR ) + 0X0000023CU ) -#define CRL_APB_IOU_SWITCH_CTRL ( ( CRL_APB_BASEADDR ) + 0X0000009CU ) +#define CRL_APB_RST_LPD_IOU0 ((CRL_APB_BASEADDR) + 0X00000230U) +#define CRL_APB_RST_LPD_IOU1 ((CRL_APB_BASEADDR) + 0X00000234U) +#define CRL_APB_RST_LPD_IOU2 ((CRL_APB_BASEADDR) + 0X00000238U) +#define CRL_APB_RST_LPD_TOP ((CRL_APB_BASEADDR) + 0X0000023CU) +#define CRL_APB_IOU_SWITCH_CTRL ((CRL_APB_BASEADDR) + 0X0000009CU) /** * CRF_APB Base Address */ #define CRF_APB_BASEADDR 0XFD1A0000U -#define CRF_APB_RST_FPD_TOP ( ( CRF_APB_BASEADDR ) + 0X00000100U ) -#define CRF_APB_GPU_REF_CTRL ( ( CRF_APB_BASEADDR ) + 0X00000084U ) -#define CRF_APB_RST_DDR_SS ( ( CRF_APB_BASEADDR ) + 0X00000108U ) +#define CRF_APB_RST_FPD_TOP ((CRF_APB_BASEADDR) + 0X00000100U) +#define CRF_APB_GPU_REF_CTRL ((CRF_APB_BASEADDR) + 0X00000084U) +#define CRF_APB_RST_DDR_SS ((CRF_APB_BASEADDR) + 0X00000108U) #define PSU_MASK_POLL_TIME 1100000 +/** + * * Register: CRF_APB_DPLL_CTRL + */ +#define CRF_APB_DPLL_CTRL ((CRF_APB_BASEADDR) + 0X0000002C) -int mask_pollOnValue(u32 add , u32 mask, u32 value ) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; + +#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_DPLL_CTRL_DIV2_WIDTH 1 + +#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_DPLL_CTRL_FBDIV_WIDTH 7 + +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_WIDTH 1 + +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_WIDTH 1 + +/** + * * Register: CRF_APB_DPLL_CFG + */ +#define CRF_APB_DPLL_CFG ((CRF_APB_BASEADDR) + 0X00000030) + +#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_DPLL_CFG_LOCK_DLY_WIDTH 7 + +#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_DPLL_CFG_LOCK_CNT_WIDTH 10 + +#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_DPLL_CFG_LFHF_WIDTH 2 + +#define CRF_APB_DPLL_CFG_CP_SHIFT 5 +#define CRF_APB_DPLL_CFG_CP_WIDTH 4 + +#define CRF_APB_DPLL_CFG_RES_SHIFT 0 +#define CRF_APB_DPLL_CFG_RES_WIDTH 4 + +/** + * Register: CRF_APB_PLL_STATUS + */ +#define CRF_APB_PLL_STATUS ((CRF_APB_BASEADDR) + 0X00000044) + + +static int mask_pollOnValue(u32 add, u32 mask, u32 value) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; int i = 0; - while ((*addr & mask)!= value) { - if (i == PSU_MASK_POLL_TIME) { + + while ((*addr & mask) != value) { + if (i == PSU_MASK_POLL_TIME) return 0; - } i++; } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); + return 1; } -int mask_poll(u32 add , u32 mask) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; +static int mask_poll(u32 add, u32 mask) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; int i = 0; + while (!(*addr & mask)) { - if (i == PSU_MASK_POLL_TIME) { + if (i == PSU_MASK_POLL_TIME) return 0; - } i++; } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); + return 1; } -void mask_delay(u32 delay) { - usleep (delay); +static void mask_delay(u32 delay) +{ + usleep(delay); } -u32 mask_read(u32 add , u32 mask ) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; - u32 val = (*addr & mask); - //xil_printf("MaskRead : 0x%x --> 0x%x \n \r" , add, val); - return val; +static u32 mask_read(u32 add, u32 mask) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; + u32 val = (*addr & mask); + return val; } +static void dpll_prog(int ddr_pll_fbdiv, int d_lock_dly, int d_lock_cnt, + int d_lfhf, int d_cp, int d_res) { -//Following SERDES programming sequences that a user need to follow to work around the known limitation with SERDES. -//These sequences should done before STEP 1 and STEP 2 as described in previous section. These programming steps are -//required for current silicon version and are likely to undergo further changes with subsequent silicon versions. + unsigned int pll_ctrl_regval; + unsigned int pll_status_regval; + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_DIV2_MASK); + pll_ctrl_regval = pll_ctrl_regval | (1 << CRF_APB_DPLL_CTRL_DIV2_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LOCK_DLY_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lock_dly << CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LOCK_CNT_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lock_cnt << CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LFHF_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lfhf << CRF_APB_DPLL_CFG_LFHF_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_CP_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_cp << CRF_APB_DPLL_CFG_CP_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_RES_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_res << CRF_APB_DPLL_CFG_RES_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_FBDIV_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (ddr_pll_fbdiv << CRF_APB_DPLL_CTRL_FBDIV_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Setting PLL BYPASS*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_BYPASS_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (1 << CRF_APB_DPLL_CTRL_BYPASS_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Setting PLL RESET*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_RESET_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (1 << CRF_APB_DPLL_CTRL_RESET_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Clearing PLL RESET*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_RESET_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (0 << CRF_APB_DPLL_CTRL_RESET_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Checking PLL lock*/ + pll_status_regval = 0x00000000; + while ((pll_status_regval & CRF_APB_PLL_STATUS_DPLL_LOCK_MASK) != + CRF_APB_PLL_STATUS_DPLL_LOCK_MASK) + pll_status_regval = Xil_In32(CRF_APB_PLL_STATUS); -int serdes_fixcal_code() { + + /*Clearing PLL BYPASS*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_BYPASS_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (0 << CRF_APB_DPLL_CTRL_BYPASS_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + +} + +/*Following SERDES programming sequences that a user need to follow to work + * around the known limitation with SERDES. These sequences should done + * before STEP 1 and STEP 2 as described in previous section. These + * programming steps are *required for current silicon version and are + * likely to undergo further changes with subsequent silicon versions. + */ + + +static int serdes_enb_coarse_saturation(void) +{ + /*Enable PLL Coarse Code saturation Logic*/ + Xil_Out32(0xFD402094, 0x00000010); + Xil_Out32(0xFD406094, 0x00000010); + Xil_Out32(0xFD40A094, 0x00000010); + Xil_Out32(0xFD40E094, 0x00000010); + return 1; +} + +int serdes_fixcal_code(void) +{ int MaskStatus = 1; - // L3_TM_CALIB_DIG19 - Xil_Out32(0xFD40EC4C,0x00000020); - //ICM_CFG0 - Xil_Out32(0xFD410010,0x00000001); + unsigned int rdata = 0; + + /*The valid codes are from 0x26 to 0x3C. + *There are 23 valid codes in total. + */ + /*Each element of array stands for count of occurence of valid code.*/ + unsigned int match_pmos_code[23]; + /*Each element of array stands for count of occurence of valid code.*/ + /*The valid codes are from 0xC to 0x12. + *There are 7 valid codes in total. + */ + unsigned int match_nmos_code[23]; + /*Each element of array stands for count of occurence of valid code.*/ + /*The valid codes are from 0x6 to 0xC. + * There are 7 valid codes in total. + */ + unsigned int match_ical_code[7]; + /*Each element of array stands for count of occurence of valid code.*/ + unsigned int match_rcal_code[7]; - //is calibration done, polling on L3_CALIB_DONE_STATUS - MaskStatus = mask_poll(0xFD40EF14, 0x2); - - if (MaskStatus == 0) - { - xil_printf("SERDES initialization timed out\n\r"); - } - - unsigned int tmp_0_1; - tmp_0_1 = mask_read(0xFD400B0C, 0x3F); - - unsigned int tmp_0_2 = tmp_0_1 & (0x7); - unsigned int tmp_0_3 = tmp_0_1 & (0x38); - //Configure ICM for de-asserting CMN_Resetn - Xil_Out32(0xFD410010,0x00000000); - Xil_Out32(0xFD410014,0x00000000); - - unsigned int tmp_0_2_mod = (tmp_0_2 <<1) | (0x1); - tmp_0_2_mod = (tmp_0_2_mod <<4); - - tmp_0_3 = tmp_0_3 >>3; - Xil_Out32(0xFD40EC4C,tmp_0_3); + unsigned int p_code = 0; + unsigned int n_code = 0; + unsigned int i_code = 0; + unsigned int r_code = 0; + unsigned int repeat_count = 0; + unsigned int L3_TM_CALIB_DIG20 = 0; + unsigned int L3_TM_CALIB_DIG19 = 0; + unsigned int L3_TM_CALIB_DIG18 = 0; + unsigned int L3_TM_CALIB_DIG16 = 0; + unsigned int L3_TM_CALIB_DIG15 = 0; + unsigned int L3_TM_CALIB_DIG14 = 0; - //L3_TM_CALIB_DIG18 - Xil_Out32(0xFD40EC48,tmp_0_2_mod); - return MaskStatus; + int i = 0; + rdata = Xil_In32(0XFD40289C); + rdata = rdata & ~0x03; + rdata = rdata | 0x1; + Xil_Out32(0XFD40289C, rdata); + // check supply good status before starting AFE sequencing + int count = 0; + do + { + if (count == PSU_MASK_POLL_TIME) + break; + rdata = Xil_In32(0xFD402B1C); + count++; + }while((rdata&0x0000000E) !=0x0000000E); + + for (i = 0; i < 23; i++) { + match_pmos_code[i] = 0; + match_nmos_code[i] = 0; + } + for (i = 0; i < 7; i++) { + match_ical_code[i] = 0; + match_rcal_code[i] = 0; + } + + + do { + /*Clear ICM_CFG value*/ + Xil_Out32(0xFD410010, 0x00000000); + Xil_Out32(0xFD410014, 0x00000000); + + /*Set ICM_CFG value*/ + /*This will trigger recalibration of all stages*/ + Xil_Out32(0xFD410010, 0x00000001); + Xil_Out32(0xFD410014, 0x00000000); + + /*is calibration done? polling on L3_CALIB_DONE_STATUS*/ + MaskStatus = mask_poll(0xFD40EF14, 0x2); + if (MaskStatus == 0) { + /*failure here is because of calibration done timeout*/ + xil_printf("#SERDES initialization timed out\n\r"); + return MaskStatus; + } + + p_code = mask_read(0xFD40EF18, 0xFFFFFFFF);/*PMOS code*/ + n_code = mask_read(0xFD40EF1C, 0xFFFFFFFF);/*NMOS code*/ + /*m_code = mask_read(0xFD40EF20, 0xFFFFFFFF)*/;/*MPHY code*/ + i_code = mask_read(0xFD40EF24, 0xFFFFFFFF);/*ICAL code*/ + r_code = mask_read(0xFD40EF28, 0xFFFFFFFF);/*RX code*/ + /*u_code = mask_read(0xFD40EF2C, 0xFFFFFFFF)*/;/*USB2 code*/ + + /*PMOS code in acceptable range*/ + if ((p_code >= 0x26) && (p_code <= 0x3C)) + match_pmos_code[p_code - 0x26] += 1; + + /*NMOS code in acceptable range*/ + if ((n_code >= 0x26) && (n_code <= 0x3C)) + match_nmos_code[n_code - 0x26] += 1; + + /*PMOS code in acceptable range*/ + if ((i_code >= 0xC) && (i_code <= 0x12)) + match_ical_code[i_code - 0xC] += 1; + + /*NMOS code in acceptable range*/ + if ((r_code >= 0x6) && (r_code <= 0xC)) + match_rcal_code[r_code - 0x6] += 1; + + + } while (repeat_count++ < 10); + + /*find the valid code which resulted in maximum times in 10 iterations*/ + for (i = 0; i < 23; i++) { + if (match_pmos_code[i] >= match_pmos_code[0]) { + match_pmos_code[0] = match_pmos_code[i]; + p_code = 0x26 + i; + } + if (match_nmos_code[i] >= match_nmos_code[0]) { + match_nmos_code[0] = match_nmos_code[i]; + n_code = 0x26 + i; + } + } + + for (i = 0; i < 7; i++) { + if (match_ical_code[i] >= match_ical_code[0]) { + match_ical_code[0] = match_ical_code[i]; + i_code = 0xC + i; + } + if (match_rcal_code[i] >= match_rcal_code[0]) { + match_rcal_code[0] = match_rcal_code[i]; + r_code = 0x6 + i; + } + } + /*L3_TM_CALIB_DIG20[3] PSW MSB Override*/ + /*L3_TM_CALIB_DIG20[2:0] PSW Code [4:2]*/ + L3_TM_CALIB_DIG20 = mask_read(0xFD40EC50, 0xFFFFFFF0);/*read DIG20*/ + L3_TM_CALIB_DIG20 = L3_TM_CALIB_DIG20 | 0x8 | ((p_code >> 2) & 0x7); + + + /*L3_TM_CALIB_DIG19[7:6] PSW Code [1:0]*/ + /*L3_TM_CALIB_DIG19[5] PSW Override*/ + /*L3_TM_CALIB_DIG19[2] NSW MSB Override*/ + /*L3_TM_CALIB_DIG19[1:0] NSW Code [4:3]*/ + L3_TM_CALIB_DIG19 = mask_read(0xFD40EC4C, 0xFFFFFF18);/*read DIG19*/ + L3_TM_CALIB_DIG19 = L3_TM_CALIB_DIG19 | ((p_code & 0x3) << 6) + | 0x20 | 0x4 | ((n_code >> 3) & 0x3); + + /*L3_TM_CALIB_DIG18[7:5] NSW Code [2:0]*/ + /*L3_TM_CALIB_DIG18[4] NSW Override*/ + L3_TM_CALIB_DIG18 = mask_read(0xFD40EC48, 0xFFFFFF0F);/*read DIG18*/ + L3_TM_CALIB_DIG18 = L3_TM_CALIB_DIG18 | ((n_code & 0x7) << 5) | 0x10; + + + /*L3_TM_CALIB_DIG16[2:0] RX Code [3:1]*/ + L3_TM_CALIB_DIG16 = mask_read(0xFD40EC40, 0xFFFFFFF8);/*read DIG16*/ + L3_TM_CALIB_DIG16 = L3_TM_CALIB_DIG16 | ((r_code >> 1) & 0x7); + + /*L3_TM_CALIB_DIG15[7] RX Code [0]*/ + /*L3_TM_CALIB_DIG15[6] RX CODE Override*/ + /*L3_TM_CALIB_DIG15[3] ICAL MSB Override*/ + /*L3_TM_CALIB_DIG15[2:0] ICAL Code [3:1]*/ + L3_TM_CALIB_DIG15 = mask_read(0xFD40EC3C, 0xFFFFFF30);/*read DIG15*/ + L3_TM_CALIB_DIG15 = L3_TM_CALIB_DIG15 | ((r_code & 0x1) << 7) + | 0x40 | 0x8 | ((i_code >> 1) & 0x7); + + /*L3_TM_CALIB_DIG14[7] ICAL Code [0]*/ + /*L3_TM_CALIB_DIG14[6] ICAL Override*/ + L3_TM_CALIB_DIG14 = mask_read(0xFD40EC38, 0xFFFFFF3F);/*read DIG14*/ + L3_TM_CALIB_DIG14 = L3_TM_CALIB_DIG14 | ((i_code & 0x1) << 7) | 0x40; + + /*Forces the calibration values*/ + Xil_Out32(0xFD40EC50, L3_TM_CALIB_DIG20); + Xil_Out32(0xFD40EC4C, L3_TM_CALIB_DIG19); + Xil_Out32(0xFD40EC48, L3_TM_CALIB_DIG18); + Xil_Out32(0xFD40EC40, L3_TM_CALIB_DIG16); + Xil_Out32(0xFD40EC3C, L3_TM_CALIB_DIG15); + Xil_Out32(0xFD40EC38, L3_TM_CALIB_DIG14); + return MaskStatus; } - -int serdes_enb_coarse_saturation() { - //Enable PLL Coarse Code saturation Logic - Xil_Out32(0xFD402094,0x00000010); - Xil_Out32(0xFD406094,0x00000010); - Xil_Out32(0xFD40A094,0x00000010); - Xil_Out32(0xFD40E094,0x00000010); - return 1; -} - -int init_serdes() { +static int init_serdes(void) +{ int status = 1; + status &= psu_resetin_init_data(); status &= serdes_fixcal_code(); status &= serdes_enb_coarse_saturation(); - status &= psu_serdes_init_data(); + status &= psu_serdes_init_data(); status &= psu_resetout_init_data(); return status; } - - - - -void init_peripheral() +static void init_peripheral(void) { - unsigned int RegValue; - - /* Turn on IOU Clock */ - //Xil_Out32( CRL_APB_IOU_SWITCH_CTRL, 0x01001500); - - /* Release all resets in the IOU */ - Xil_Out32( CRL_APB_RST_LPD_IOU0, 0x00000000); - Xil_Out32( CRL_APB_RST_LPD_IOU1, 0x00000000); - Xil_Out32( CRL_APB_RST_LPD_IOU2, 0x00000000); - - /* Activate GPU clocks */ - //Xil_Out32(CRF_APB_GPU_REF_CTRL, 0x07001500); - - /* Take LPD out of reset except R5 */ - RegValue = Xil_In32(CRL_APB_RST_LPD_TOP); - RegValue &= 0x7; - Xil_Out32( CRL_APB_RST_LPD_TOP, RegValue); - - /* Take most of FPD out of reset */ - Xil_Out32( CRF_APB_RST_FPD_TOP, 0x00000000); - - /* Making DPDMA as secure */ - unsigned int tmp_regval; - tmp_regval = Xil_In32(0xFD690040); - tmp_regval &= ~0x00000001; - Xil_Out32(0xFD690040, tmp_regval); - - /* Making PCIe as secure */ - tmp_regval = Xil_In32(0xFD690030); - tmp_regval &= ~0x00000001; - Xil_Out32(0xFD690030, tmp_regval); +/*SMMU_REG Interrrupt Enable: Followig register need to be written all the time to properly catch SMMU messages.*/ + PSU_Mask_Write(0xFD5F0018, 0x8000001FU, 0x8000001FU); } -int psu_init_xppu_aper_ram() { - unsigned long APER_OFFSET = 0xFF981000; - int i = 0; - for (; i <= 400; i++) { - PSU_Mask_Write (APER_OFFSET ,0xF80FFFFFU ,0x08080000U); - APER_OFFSET = APER_OFFSET + 0x4; - } +static int psu_init_xppu_aper_ram(void) +{ return 0; } -int psu_lpd_protection() { - psu_init_xppu_aper_ram(); - psu_lpd_xppu_data(); - return 0; +int psu_lpd_protection(void) +{ + psu_init_xppu_aper_ram(); + return 0; } -int psu_ddr_protection() { - psu_ddr_xmpu0_data(); - psu_ddr_xmpu1_data(); - psu_ddr_xmpu2_data(); - psu_ddr_xmpu3_data(); - psu_ddr_xmpu4_data(); - psu_ddr_xmpu5_data(); - return 0; +int psu_ddr_protection(void) +{ + psu_ddr_xmpu0_data(); + psu_ddr_xmpu1_data(); + psu_ddr_xmpu2_data(); + psu_ddr_xmpu3_data(); + psu_ddr_xmpu4_data(); + psu_ddr_xmpu5_data(); + return 0; } -int psu_ocm_protection() { - psu_ocm_xmpu_data(); - return 0; +int psu_ocm_protection(void) +{ + psu_ocm_xmpu_data(); + return 0; } -int psu_fpd_protection() { - psu_fpd_xmpu_data(); - return 0; +int psu_fpd_protection(void) +{ + psu_fpd_xmpu_data(); + return 0; } -int psu_protection_lock() { - psu_protection_lock_data(); - return 0; +int psu_protection_lock(void) +{ + psu_protection_lock_data(); + return 0; } -int psu_protection() { - psu_ddr_protection(); - psu_ocm_protection(); - psu_fpd_protection(); - psu_lpd_protection(); - return 0; +int psu_protection(void) +{ + psu_apply_master_tz(); + psu_ddr_protection(); + psu_ocm_protection(); + psu_fpd_protection(); + psu_lpd_protection(); + return 0; } - - int -psu_init() +psu_init(void) { - int status = 1; - status &= psu_mio_init_data (); - status &= psu_pll_init_data (); - status &= psu_clock_init_data (); - - status &= psu_ddr_init_data (); - status &= psu_ddr_phybringup_data (); - status &= psu_peripherals_init_data (); + int status = 1; + status &= psu_mio_init_data(); + status &= psu_pll_init_data(); + status &= psu_clock_init_data(); + status &= psu_ddr_init_data(); + status &= psu_ddr_phybringup_data(); + status &= psu_peripherals_init_data(); status &= init_serdes(); - init_peripheral (); + init_peripheral(); - status &= psu_peripherals_powerdwn_data (); - - if (status == 0) { + status &= psu_peripherals_powerdwn_data(); + status &= psu_afi_config(); + psu_ddr_qos_init_data(); + + if (status == 0) return 1; - } return 0; } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.h index e9741eb2f..591552936 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.h @@ -34,7 +34,7 @@ * * @file psu_init.h * -* This file is automatically generated +* This file is automatically generated * *****************************************************************************/ @@ -53,8 +53,6 @@ #define CRL_APB_RPLL_CTRL_OFFSET 0XFF5E0030 #undef CRL_APB_RPLL_TO_FPD_CTRL_OFFSET #define CRL_APB_RPLL_TO_FPD_CTRL_OFFSET 0XFF5E0048 -#undef CRL_APB_RPLL_FRAC_CFG_OFFSET -#define CRL_APB_RPLL_FRAC_CFG_OFFSET 0XFF5E0038 #undef CRL_APB_IOPLL_CFG_OFFSET #define CRL_APB_IOPLL_CFG_OFFSET 0XFF5E0024 #undef CRL_APB_IOPLL_CTRL_OFFSET @@ -69,8 +67,6 @@ #define CRL_APB_IOPLL_CTRL_OFFSET 0XFF5E0020 #undef CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET #define CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET 0XFF5E0044 -#undef CRL_APB_IOPLL_FRAC_CFG_OFFSET -#define CRL_APB_IOPLL_FRAC_CFG_OFFSET 0XFF5E0028 #undef CRF_APB_APLL_CFG_OFFSET #define CRF_APB_APLL_CFG_OFFSET 0XFD1A0024 #undef CRF_APB_APLL_CTRL_OFFSET @@ -85,8 +81,6 @@ #define CRF_APB_APLL_CTRL_OFFSET 0XFD1A0020 #undef CRF_APB_APLL_TO_LPD_CTRL_OFFSET #define CRF_APB_APLL_TO_LPD_CTRL_OFFSET 0XFD1A0048 -#undef CRF_APB_APLL_FRAC_CFG_OFFSET -#define CRF_APB_APLL_FRAC_CFG_OFFSET 0XFD1A0028 #undef CRF_APB_DPLL_CFG_OFFSET #define CRF_APB_DPLL_CFG_OFFSET 0XFD1A0030 #undef CRF_APB_DPLL_CTRL_OFFSET @@ -101,8 +95,6 @@ #define CRF_APB_DPLL_CTRL_OFFSET 0XFD1A002C #undef CRF_APB_DPLL_TO_LPD_CTRL_OFFSET #define CRF_APB_DPLL_TO_LPD_CTRL_OFFSET 0XFD1A004C -#undef CRF_APB_DPLL_FRAC_CFG_OFFSET -#define CRF_APB_DPLL_FRAC_CFG_OFFSET 0XFD1A0034 #undef CRF_APB_VPLL_CFG_OFFSET #define CRF_APB_VPLL_CFG_OFFSET 0XFD1A003C #undef CRF_APB_VPLL_CTRL_OFFSET @@ -117,675 +109,770 @@ #define CRF_APB_VPLL_CTRL_OFFSET 0XFD1A0038 #undef CRF_APB_VPLL_TO_LPD_CTRL_OFFSET #define CRF_APB_VPLL_TO_LPD_CTRL_OFFSET 0XFD1A0050 -#undef CRF_APB_VPLL_FRAC_CFG_OFFSET -#define CRF_APB_VPLL_FRAC_CFG_OFFSET 0XFD1A0040 -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRL_APB_RPLL_CFG_RES_DEFVAL #undef CRL_APB_RPLL_CFG_RES_SHIFT #undef CRL_APB_RPLL_CFG_RES_MASK -#define CRL_APB_RPLL_CFG_RES_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_RES_SHIFT 0 -#define CRL_APB_RPLL_CFG_RES_MASK 0x0000000FU +#define CRL_APB_RPLL_CFG_RES_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_RES_SHIFT 0 +#define CRL_APB_RPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRL_APB_RPLL_CFG_CP_DEFVAL #undef CRL_APB_RPLL_CFG_CP_SHIFT #undef CRL_APB_RPLL_CFG_CP_MASK -#define CRL_APB_RPLL_CFG_CP_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_CP_SHIFT 5 -#define CRL_APB_RPLL_CFG_CP_MASK 0x000001E0U +#define CRL_APB_RPLL_CFG_CP_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_CP_SHIFT 5 +#define CRL_APB_RPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRL_APB_RPLL_CFG_LFHF_DEFVAL #undef CRL_APB_RPLL_CFG_LFHF_SHIFT #undef CRL_APB_RPLL_CFG_LFHF_MASK -#define CRL_APB_RPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LFHF_SHIFT 10 -#define CRL_APB_RPLL_CFG_LFHF_MASK 0x00000C00U +#define CRL_APB_RPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LFHF_SHIFT 10 +#define CRL_APB_RPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL #undef CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT #undef CRL_APB_RPLL_CFG_LOCK_CNT_MASK -#define CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRL_APB_RPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRL_APB_RPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL #undef CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT #undef CRL_APB_RPLL_CFG_LOCK_DLY_MASK -#define CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRL_APB_RPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRL_APB_RPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL #undef CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT #undef CRL_APB_RPLL_CTRL_PRE_SRC_MASK -#define CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRL_APB_RPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRL_APB_RPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRL_APB_RPLL_CTRL_FBDIV_DEFVAL #undef CRL_APB_RPLL_CTRL_FBDIV_SHIFT #undef CRL_APB_RPLL_CTRL_FBDIV_MASK -#define CRL_APB_RPLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_FBDIV_SHIFT 8 -#define CRL_APB_RPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRL_APB_RPLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_FBDIV_SHIFT 8 +#define CRL_APB_RPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRL_APB_RPLL_CTRL_DIV2_DEFVAL #undef CRL_APB_RPLL_CTRL_DIV2_SHIFT #undef CRL_APB_RPLL_CTRL_DIV2_MASK -#define CRL_APB_RPLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_DIV2_SHIFT 16 -#define CRL_APB_RPLL_CTRL_DIV2_MASK 0x00010000U +#define CRL_APB_RPLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_DIV2_SHIFT 16 +#define CRL_APB_RPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_RPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_RPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_RPLL_CTRL_BYPASS_MASK -#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_RPLL_CTRL_RESET_DEFVAL #undef CRL_APB_RPLL_CTRL_RESET_SHIFT #undef CRL_APB_RPLL_CTRL_RESET_MASK -#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_RPLL_CTRL_RESET_DEFVAL #undef CRL_APB_RPLL_CTRL_RESET_SHIFT #undef CRL_APB_RPLL_CTRL_RESET_MASK -#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U -/*RPLL is locked*/ +/* +* RPLL is locked +*/ #undef CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL #undef CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT #undef CRL_APB_PLL_STATUS_RPLL_LOCK_MASK -#define CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL 0x00000018 -#define CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT 1 -#define CRL_APB_PLL_STATUS_RPLL_LOCK_MASK 0x00000002U +#define CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL 0x00000018 +#define CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT 1 +#define CRL_APB_PLL_STATUS_RPLL_LOCK_MASK 0x00000002U #define CRL_APB_PLL_STATUS_OFFSET 0XFF5E0040 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_RPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_RPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_RPLL_CTRL_BYPASS_MASK -#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRL_APB_RPLL_FRAC_CFG_DATA_DEFVAL -#undef CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT -#undef CRL_APB_RPLL_FRAC_CFG_DATA_MASK -#define CRL_APB_RPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRL_APB_RPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRL_APB_IOPLL_CFG_RES_DEFVAL #undef CRL_APB_IOPLL_CFG_RES_SHIFT #undef CRL_APB_IOPLL_CFG_RES_MASK -#define CRL_APB_IOPLL_CFG_RES_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_RES_SHIFT 0 -#define CRL_APB_IOPLL_CFG_RES_MASK 0x0000000FU +#define CRL_APB_IOPLL_CFG_RES_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_RES_SHIFT 0 +#define CRL_APB_IOPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRL_APB_IOPLL_CFG_CP_DEFVAL #undef CRL_APB_IOPLL_CFG_CP_SHIFT #undef CRL_APB_IOPLL_CFG_CP_MASK -#define CRL_APB_IOPLL_CFG_CP_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_CP_SHIFT 5 -#define CRL_APB_IOPLL_CFG_CP_MASK 0x000001E0U +#define CRL_APB_IOPLL_CFG_CP_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_CP_SHIFT 5 +#define CRL_APB_IOPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRL_APB_IOPLL_CFG_LFHF_DEFVAL #undef CRL_APB_IOPLL_CFG_LFHF_SHIFT #undef CRL_APB_IOPLL_CFG_LFHF_MASK -#define CRL_APB_IOPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LFHF_SHIFT 10 -#define CRL_APB_IOPLL_CFG_LFHF_MASK 0x00000C00U +#define CRL_APB_IOPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LFHF_SHIFT 10 +#define CRL_APB_IOPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL #undef CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT #undef CRL_APB_IOPLL_CFG_LOCK_CNT_MASK -#define CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRL_APB_IOPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRL_APB_IOPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL #undef CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT #undef CRL_APB_IOPLL_CFG_LOCK_DLY_MASK -#define CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRL_APB_IOPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRL_APB_IOPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL #undef CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT #undef CRL_APB_IOPLL_CTRL_PRE_SRC_MASK -#define CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRL_APB_IOPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRL_APB_IOPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL #undef CRL_APB_IOPLL_CTRL_FBDIV_SHIFT #undef CRL_APB_IOPLL_CTRL_FBDIV_MASK -#define CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_FBDIV_SHIFT 8 -#define CRL_APB_IOPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_FBDIV_SHIFT 8 +#define CRL_APB_IOPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRL_APB_IOPLL_CTRL_DIV2_DEFVAL #undef CRL_APB_IOPLL_CTRL_DIV2_SHIFT #undef CRL_APB_IOPLL_CTRL_DIV2_MASK -#define CRL_APB_IOPLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_DIV2_SHIFT 16 -#define CRL_APB_IOPLL_CTRL_DIV2_MASK 0x00010000U +#define CRL_APB_IOPLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_DIV2_SHIFT 16 +#define CRL_APB_IOPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_IOPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_IOPLL_CTRL_BYPASS_MASK -#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_IOPLL_CTRL_RESET_DEFVAL #undef CRL_APB_IOPLL_CTRL_RESET_SHIFT #undef CRL_APB_IOPLL_CTRL_RESET_MASK -#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_IOPLL_CTRL_RESET_DEFVAL #undef CRL_APB_IOPLL_CTRL_RESET_SHIFT #undef CRL_APB_IOPLL_CTRL_RESET_MASK -#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U -/*IOPLL is locked*/ +/* +* IOPLL is locked +*/ #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL 0x00000018 -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT 0 -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK 0x00000001U +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL 0x00000018 +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT 0 +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK 0x00000001U #define CRL_APB_PLL_STATUS_OFFSET 0XFF5E0040 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_IOPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_IOPLL_CTRL_BYPASS_MASK -#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_DEFVAL -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_MASK -#define CRL_APB_IOPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRL_APB_IOPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_APLL_CFG_RES_DEFVAL #undef CRF_APB_APLL_CFG_RES_SHIFT #undef CRF_APB_APLL_CFG_RES_MASK -#define CRF_APB_APLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_RES_SHIFT 0 -#define CRF_APB_APLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_APLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_RES_SHIFT 0 +#define CRF_APB_APLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_APLL_CFG_CP_DEFVAL #undef CRF_APB_APLL_CFG_CP_SHIFT #undef CRF_APB_APLL_CFG_CP_MASK -#define CRF_APB_APLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_CP_SHIFT 5 -#define CRF_APB_APLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_APLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_CP_SHIFT 5 +#define CRF_APB_APLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_APLL_CFG_LFHF_DEFVAL #undef CRF_APB_APLL_CFG_LFHF_SHIFT #undef CRF_APB_APLL_CFG_LFHF_MASK -#define CRF_APB_APLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_APLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_APLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_APLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_APLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_APLL_CFG_LOCK_CNT_MASK -#define CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_APLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_APLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_APLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_APLL_CFG_LOCK_DLY_MASK -#define CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_APLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_APLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_APLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_APLL_CTRL_PRE_SRC_MASK -#define CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_APLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_APLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_APLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_APLL_CTRL_FBDIV_SHIFT #undef CRF_APB_APLL_CTRL_FBDIV_MASK -#define CRF_APB_APLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_APLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_APLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_APLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_APLL_CTRL_DIV2_DEFVAL #undef CRF_APB_APLL_CTRL_DIV2_SHIFT #undef CRF_APB_APLL_CTRL_DIV2_MASK -#define CRF_APB_APLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_APLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_APLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_APLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_APLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_APLL_CTRL_BYPASS_SHIFT #undef CRF_APB_APLL_CTRL_BYPASS_MASK -#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_APLL_CTRL_RESET_DEFVAL #undef CRF_APB_APLL_CTRL_RESET_SHIFT #undef CRF_APB_APLL_CTRL_RESET_MASK -#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_APLL_CTRL_RESET_DEFVAL #undef CRF_APB_APLL_CTRL_RESET_SHIFT #undef CRF_APB_APLL_CTRL_RESET_MASK -#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U -/*APLL is locked*/ +/* +* APLL is locked +*/ #undef CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_APLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT 0 -#define CRF_APB_PLL_STATUS_APLL_LOCK_MASK 0x00000001U +#define CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT 0 +#define CRF_APB_PLL_STATUS_APLL_LOCK_MASK 0x00000001U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_APLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_APLL_CTRL_BYPASS_SHIFT #undef CRF_APB_APLL_CTRL_BYPASS_MASK -#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_APLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_APLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_APLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_APLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_APLL_FRAC_CFG_DATA_MASK -#define CRF_APB_APLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_APLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_APLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_DPLL_CFG_RES_DEFVAL #undef CRF_APB_DPLL_CFG_RES_SHIFT #undef CRF_APB_DPLL_CFG_RES_MASK -#define CRF_APB_DPLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_RES_SHIFT 0 -#define CRF_APB_DPLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_DPLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_RES_SHIFT 0 +#define CRF_APB_DPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_DPLL_CFG_CP_DEFVAL #undef CRF_APB_DPLL_CFG_CP_SHIFT #undef CRF_APB_DPLL_CFG_CP_MASK -#define CRF_APB_DPLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_CP_SHIFT 5 -#define CRF_APB_DPLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_DPLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_CP_SHIFT 5 +#define CRF_APB_DPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_DPLL_CFG_LFHF_DEFVAL #undef CRF_APB_DPLL_CFG_LFHF_SHIFT #undef CRF_APB_DPLL_CFG_LFHF_MASK -#define CRF_APB_DPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_DPLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_DPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_DPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_DPLL_CFG_LOCK_CNT_MASK -#define CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_DPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_DPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_DPLL_CFG_LOCK_DLY_MASK -#define CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_DPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_DPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_DPLL_CTRL_PRE_SRC_MASK -#define CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_DPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_DPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_DPLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_DPLL_CTRL_FBDIV_SHIFT #undef CRF_APB_DPLL_CTRL_FBDIV_MASK -#define CRF_APB_DPLL_CTRL_FBDIV_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_DPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_DPLL_CTRL_FBDIV_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_DPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_DPLL_CTRL_DIV2_DEFVAL #undef CRF_APB_DPLL_CTRL_DIV2_SHIFT #undef CRF_APB_DPLL_CTRL_DIV2_MASK -#define CRF_APB_DPLL_CTRL_DIV2_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_DPLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_DPLL_CTRL_DIV2_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_DPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_DPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_DPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_DPLL_CTRL_BYPASS_MASK -#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_DPLL_CTRL_RESET_DEFVAL #undef CRF_APB_DPLL_CTRL_RESET_SHIFT #undef CRF_APB_DPLL_CTRL_RESET_MASK -#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_DPLL_CTRL_RESET_DEFVAL #undef CRF_APB_DPLL_CTRL_RESET_SHIFT #undef CRF_APB_DPLL_CTRL_RESET_MASK -#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U -/*DPLL is locked*/ +/* +* DPLL is locked +*/ #undef CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_DPLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT 1 -#define CRF_APB_PLL_STATUS_DPLL_LOCK_MASK 0x00000002U +#define CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT 1 +#define CRF_APB_PLL_STATUS_DPLL_LOCK_MASK 0x00000002U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_DPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_DPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_DPLL_CTRL_BYPASS_MASK -#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_DPLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_DPLL_FRAC_CFG_DATA_MASK -#define CRF_APB_DPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_DPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_VPLL_CFG_RES_DEFVAL #undef CRF_APB_VPLL_CFG_RES_SHIFT #undef CRF_APB_VPLL_CFG_RES_MASK -#define CRF_APB_VPLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_RES_SHIFT 0 -#define CRF_APB_VPLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_VPLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_RES_SHIFT 0 +#define CRF_APB_VPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_VPLL_CFG_CP_DEFVAL #undef CRF_APB_VPLL_CFG_CP_SHIFT #undef CRF_APB_VPLL_CFG_CP_MASK -#define CRF_APB_VPLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_CP_SHIFT 5 -#define CRF_APB_VPLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_VPLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_CP_SHIFT 5 +#define CRF_APB_VPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_VPLL_CFG_LFHF_DEFVAL #undef CRF_APB_VPLL_CFG_LFHF_SHIFT #undef CRF_APB_VPLL_CFG_LFHF_MASK -#define CRF_APB_VPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_VPLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_VPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_VPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_VPLL_CFG_LOCK_CNT_MASK -#define CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_VPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_VPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_VPLL_CFG_LOCK_DLY_MASK -#define CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_VPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_VPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_VPLL_CTRL_PRE_SRC_MASK -#define CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_VPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_VPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_VPLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_VPLL_CTRL_FBDIV_SHIFT #undef CRF_APB_VPLL_CTRL_FBDIV_MASK -#define CRF_APB_VPLL_CTRL_FBDIV_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_VPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_VPLL_CTRL_FBDIV_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_VPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_VPLL_CTRL_DIV2_DEFVAL #undef CRF_APB_VPLL_CTRL_DIV2_SHIFT #undef CRF_APB_VPLL_CTRL_DIV2_MASK -#define CRF_APB_VPLL_CTRL_DIV2_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_VPLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_VPLL_CTRL_DIV2_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_VPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_VPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_VPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_VPLL_CTRL_BYPASS_MASK -#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_VPLL_CTRL_RESET_DEFVAL #undef CRF_APB_VPLL_CTRL_RESET_SHIFT #undef CRF_APB_VPLL_CTRL_RESET_MASK -#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_VPLL_CTRL_RESET_DEFVAL #undef CRF_APB_VPLL_CTRL_RESET_SHIFT #undef CRF_APB_VPLL_CTRL_RESET_MASK -#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U -/*VPLL is locked*/ +/* +* VPLL is locked +*/ #undef CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_VPLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT 2 -#define CRF_APB_PLL_STATUS_VPLL_LOCK_MASK 0x00000004U +#define CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT 2 +#define CRF_APB_PLL_STATUS_VPLL_LOCK_MASK 0x00000004U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_VPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_VPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_VPLL_CTRL_BYPASS_MASK -#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U - -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_VPLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_VPLL_FRAC_CFG_DATA_MASK -#define CRF_APB_VPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_VPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U #undef CRL_APB_GEM3_REF_CTRL_OFFSET #define CRL_APB_GEM3_REF_CTRL_OFFSET 0XFF5E005C +#undef CRL_APB_GEM_TSU_REF_CTRL_OFFSET +#define CRL_APB_GEM_TSU_REF_CTRL_OFFSET 0XFF5E0100 #undef CRL_APB_USB0_BUS_REF_CTRL_OFFSET #define CRL_APB_USB0_BUS_REF_CTRL_OFFSET 0XFF5E0060 #undef CRL_APB_USB3_DUAL_REF_CTRL_OFFSET @@ -822,12 +909,6 @@ #define CRL_APB_ADMA_REF_CTRL_OFFSET 0XFF5E00B8 #undef CRL_APB_PL0_REF_CTRL_OFFSET #define CRL_APB_PL0_REF_CTRL_OFFSET 0XFF5E00C0 -#undef CRL_APB_PL1_REF_CTRL_OFFSET -#define CRL_APB_PL1_REF_CTRL_OFFSET 0XFF5E00C4 -#undef CRL_APB_PL2_REF_CTRL_OFFSET -#define CRL_APB_PL2_REF_CTRL_OFFSET 0XFF5E00C8 -#undef CRL_APB_PL3_REF_CTRL_OFFSET -#define CRL_APB_PL3_REF_CTRL_OFFSET 0XFF5E00CC #undef CRL_APB_AMS_REF_CTRL_OFFSET #define CRL_APB_AMS_REF_CTRL_OFFSET 0XFF5E0108 #undef CRL_APB_DLL_REF_CTRL_OFFSET @@ -846,8 +927,6 @@ #define CRF_APB_DP_STC_REF_CTRL_OFFSET 0XFD1A007C #undef CRF_APB_ACPU_CTRL_OFFSET #define CRF_APB_ACPU_CTRL_OFFSET 0XFD1A0060 -#undef CRF_APB_DBG_TRACE_CTRL_OFFSET -#define CRF_APB_DBG_TRACE_CTRL_OFFSET 0XFD1A0064 #undef CRF_APB_DBG_FPD_CTRL_OFFSET #define CRF_APB_DBG_FPD_CTRL_OFFSET 0XFD1A0068 #undef CRF_APB_DDR_CTRL_OFFSET @@ -873,1195 +952,1418 @@ #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET #define LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET 0XFF410050 -/*Clock active for the RX channel*/ +/* +* Clock active for the RX channel +*/ #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT 26 -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK 0x04000000U +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT 26 +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK 0x04000000U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_GEM3_REF_CTRL_CLKACT_MASK -#define CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_GEM3_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_GEM3_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* 6 bit divider +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_MASK 0x00003F00U + +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_MASK 0x00000007U + +/* +* 6 bit divider +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_MASK 0x003F0000U + +/* +* Clock active signal. Switch to 0 to disable the clock +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_MASK 0x01000000U + +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_QSPI_REF_CTRL_CLKACT_MASK -#define CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_QSPI_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_QSPI_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO [51] 1: MIO [76]*/ +/* +* MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO + * [51] 1: MIO [76] +*/ #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT 17 -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK 0x00020000U +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT 17 +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK 0x00020000U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_UART0_REF_CTRL_CLKACT_MASK -#define CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_UART0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_UART0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_UART0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_UART0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_UART0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_UART1_REF_CTRL_CLKACT_MASK -#define CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_UART1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_UART1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_UART1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_UART1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_UART1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_I2C0_REF_CTRL_CLKACT_MASK -#define CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_I2C0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_I2C0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_I2C1_REF_CTRL_CLKACT_MASK -#define CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_I2C1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_I2C1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_CAN1_REF_CTRL_CLKACT_MASK -#define CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_CAN1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_CAN1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Turing this off will shut down the OCM, some parts of the APM, and prevent transactions going from the FPD to the LPD and cou - d lead to system hang*/ +/* +* Turing this off will shut down the OCM, some parts of the APM, and preve + * nt transactions going from the FPD to the LPD and could lead to system h + * ang +*/ #undef CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL #undef CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT #undef CRL_APB_CPU_R5_CTRL_CLKACT_MASK -#define CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_CPU_R5_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_CPU_R5_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL #undef CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT #undef CRL_APB_CPU_R5_CTRL_SRCSEL_MASK -#define CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_CPU_R5_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_CPU_R5_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_PCAP_CTRL_CLKACT_DEFVAL #undef CRL_APB_PCAP_CTRL_CLKACT_SHIFT #undef CRL_APB_PCAP_CTRL_CLKACT_MASK -#define CRL_APB_PCAP_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PCAP_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_PCAP_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_PCAP_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT #undef CRL_APB_PCAP_CTRL_DIVISOR0_MASK -#define CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PCAP_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_PCAP_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL #undef CRL_APB_PCAP_CTRL_SRCSEL_SHIFT #undef CRL_APB_PCAP_CTRL_SRCSEL_MASK -#define CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PCAP_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_PCAP_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT #undef CRL_APB_DBG_LPD_CTRL_CLKACT_MASK -#define CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_DBG_LPD_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_DBG_LPD_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_ADMA_REF_CTRL_CLKACT_MASK -#define CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_ADMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_ADMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_PL0_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_PL0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_PL0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_PL0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL1_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL1_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL1_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL1_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL1_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL1_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL2_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL2_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL2_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL2_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL2_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL2_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL3_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL3_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL3_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL3_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL3_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL3_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_AMS_REF_CTRL_SRCSEL_MASK -#define CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_AMS_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_AMS_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_AMS_REF_CTRL_CLKACT_MASK -#define CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_AMS_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_AMS_REF_CTRL_CLKACT_MASK 0x01000000U -/*000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an + * issue, but designers must be aware.) +*/ #undef CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_DLL_REF_CTRL_SRCSEL_MASK -#define CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL 0x00000000 -#define CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_DLL_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL 0x00000000 +#define CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_DLL_REF_CTRL_SRCSEL_MASK 0x00000007U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and - cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may + * only be toggled after 4 cycles of the old clock and 4 cycles of the new + * clock. This is not usually an issue, but designers must be aware.) +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK 0x01000000U -/*000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_SATA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_SATA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_SATA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_SATA_REF_CTRL_CLKACT_MASK -#define CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_SATA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_SATA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cyc - es of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only + * be toggled after 4 cycles of the old clock and 4 cycles of the new cloc + * k. This is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_PCIE_REF_CTRL_CLKACT_MASK -#define CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_PCIE_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_PCIE_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of t - e new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be togg + * led after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT #undef CRF_APB_ACPU_CTRL_DIVISOR0_MASK -#define CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_ACPU_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_ACPU_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL #undef CRF_APB_ACPU_CTRL_SRCSEL_SHIFT #undef CRF_APB_ACPU_CTRL_SRCSEL_MASK -#define CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_ACPU_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_ACPU_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock. For the half speed APU Clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock. For the half spee + * d APU Clock +*/ #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT 25 -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK 0x02000000U +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT 25 +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK 0x02000000U -/*Clock active signal. Switch to 0 to disable the clock. For the full speed ACPUX Clock. This will shut off the high speed cloc - to the entire APU*/ +/* +* Clock active signal. Switch to 0 to disable the clock. For the full spee + * d ACPUX Clock. This will shut off the high speed clock to the entire APU +*/ #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT 24 -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK 0x01000000U +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT 24 +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK 0x01000000U -/*6 bit divider*/ -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT #undef CRF_APB_DBG_FPD_CTRL_CLKACT_MASK -#define CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DBG_FPD_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DBG_FPD_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DDR_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DDR_CTRL_DIVISOR0_MASK -#define CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_DDR_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DDR_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_DDR_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DDR_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - s not usually an issue, but designers must be aware.)*/ +/* +* 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an i + * ssue, but designers must be aware.) +*/ #undef CRF_APB_DDR_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DDR_CTRL_SRCSEL_SHIFT #undef CRF_APB_DDR_CTRL_SRCSEL_MASK -#define CRF_APB_DDR_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_DDR_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DDR_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DDR_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_DDR_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DDR_CTRL_SRCSEL_MASK 0x00000007U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_GPU_REF_CTRL_SRCSEL_MASK -#define CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_GPU_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_GPU_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock, which will stop clock for GPU (and both Pixel Processors).*/ +/* +* Clock active signal. Switch to 0 to disable the clock, which will stop c + * lock for GPU (and both Pixel Processors). +*/ #undef CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_GPU_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_GPU_REF_CTRL_CLKACT_MASK 0x01000000U -/*Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor*/ +/* +* Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor +*/ #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT 25 -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK 0x02000000U +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT 25 +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK 0x02000000U -/*Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor*/ +/* +* Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor +*/ #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT 26 -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK 0x04000000U +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT 26 +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK 0x04000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_GDMA_REF_CTRL_CLKACT_MASK -#define CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_GDMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_GDMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL 0x00000A00 -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL 0x00000A00 +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL 0x00000A00 -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL 0x00000A00 +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK 0x00000007U -/*00" = Select the APB switch clock for the APB interface of TTC0'01" = Select the PLL ref clock for the APB interface of TTC0' - 0" = Select the R5 clock for the APB interface of TTC0*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC0'01" = Se + * lect the PLL ref clock for the APB interface of TTC0'10" = Select the R5 + * clock for the APB interface of TTC0 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT 0 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK 0x00000003U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT 0 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK 0x00000003U -/*00" = Select the APB switch clock for the APB interface of TTC1'01" = Select the PLL ref clock for the APB interface of TTC1' - 0" = Select the R5 clock for the APB interface of TTC1*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC1'01" = Se + * lect the PLL ref clock for the APB interface of TTC1'10" = Select the R5 + * clock for the APB interface of TTC1 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT 2 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK 0x0000000CU +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT 2 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK 0x0000000CU -/*00" = Select the APB switch clock for the APB interface of TTC2'01" = Select the PLL ref clock for the APB interface of TTC2' - 0" = Select the R5 clock for the APB interface of TTC2*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC2'01" = Se + * lect the PLL ref clock for the APB interface of TTC2'10" = Select the R5 + * clock for the APB interface of TTC2 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT 4 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK 0x00000030U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT 4 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK 0x00000030U -/*00" = Select the APB switch clock for the APB interface of TTC3'01" = Select the PLL ref clock for the APB interface of TTC3' - 0" = Select the R5 clock for the APB interface of TTC3*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC3'01" = Se + * lect the PLL ref clock for the APB interface of TTC3'10" = Select the R5 + * clock for the APB interface of TTC3 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT 6 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK 0x000000C0U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT 6 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK 0x000000C0U -/*System watchdog timer clock source selection: 0: Internal APB clock 1: External (PL clock via EMIO or Pinout clock via MIO)*/ +/* +* System watchdog timer clock source selection: 0: Internal APB clock 1: E + * xternal (PL clock via EMIO or Pinout clock via MIO) +*/ #undef FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL #undef FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT #undef FPD_SLCR_WDT_CLK_SEL_SELECT_MASK -#define FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 -#define FPD_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 +#define FPD_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U -/*System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock from PL via EMIO, or from pinout - ia MIO*/ +/* +* System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock from PL via EMIO, or from pinout via MIO +*/ #undef IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL #undef IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT #undef IOU_SLCR_WDT_CLK_SEL_SELECT_MASK -#define IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 -#define IOU_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 +#define IOU_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U -/*System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock pss_ref_clk*/ +/* +* System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock pss_ref_clk +*/ #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT 0 -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT 0 +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK 0x00000001U #undef CRF_APB_RST_DDR_SS_OFFSET #define CRF_APB_RST_DDR_SS_OFFSET 0XFD1A0108 #undef DDRC_MSTR_OFFSET @@ -2078,6 +2380,8 @@ #define DDRC_PWRTMG_OFFSET 0XFD070034 #undef DDRC_RFSHCTL0_OFFSET #define DDRC_RFSHCTL0_OFFSET 0XFD070050 +#undef DDRC_RFSHCTL1_OFFSET +#define DDRC_RFSHCTL1_OFFSET 0XFD070054 #undef DDRC_RFSHCTL3_OFFSET #define DDRC_RFSHCTL3_OFFSET 0XFD070060 #undef DDRC_RFSHTMG_OFFSET @@ -2146,6 +2450,8 @@ #define DDRC_DFILPCFG0_OFFSET 0XFD070198 #undef DDRC_DFILPCFG1_OFFSET #define DDRC_DFILPCFG1_OFFSET 0XFD07019C +#undef DDRC_DFIUPD0_OFFSET +#define DDRC_DFIUPD0_OFFSET 0XFD0701A0 #undef DDRC_DFIUPD1_OFFSET #define DDRC_DFIUPD1_OFFSET 0XFD0701A4 #undef DDRC_DFIMISC_OFFSET @@ -2188,6 +2494,16 @@ #define DDRC_PERFLPR1_OFFSET 0XFD070264 #undef DDRC_PERFWR1_OFFSET #define DDRC_PERFWR1_OFFSET 0XFD07026C +#undef DDRC_DQMAP0_OFFSET +#define DDRC_DQMAP0_OFFSET 0XFD070280 +#undef DDRC_DQMAP1_OFFSET +#define DDRC_DQMAP1_OFFSET 0XFD070284 +#undef DDRC_DQMAP2_OFFSET +#define DDRC_DQMAP2_OFFSET 0XFD070288 +#undef DDRC_DQMAP3_OFFSET +#define DDRC_DQMAP3_OFFSET 0XFD07028C +#undef DDRC_DQMAP4_OFFSET +#define DDRC_DQMAP4_OFFSET 0XFD070290 #undef DDRC_DQMAP5_OFFSET #define DDRC_DQMAP5_OFFSET 0XFD070294 #undef DDRC_DBG0_OFFSET @@ -2294,8 +2610,12 @@ #define DDR_PHY_PTR0_OFFSET 0XFD080040 #undef DDR_PHY_PTR1_OFFSET #define DDR_PHY_PTR1_OFFSET 0XFD080044 +#undef DDR_PHY_PLLCR0_OFFSET +#define DDR_PHY_PLLCR0_OFFSET 0XFD080068 #undef DDR_PHY_DSGCR_OFFSET #define DDR_PHY_DSGCR_OFFSET 0XFD080090 +#undef DDR_PHY_GPR0_OFFSET +#define DDR_PHY_GPR0_OFFSET 0XFD0800C0 #undef DDR_PHY_DCR_OFFSET #define DDR_PHY_DCR_OFFSET 0XFD080100 #undef DDR_PHY_DTPR0_OFFSET @@ -2350,6 +2670,8 @@ #define DDR_PHY_DTCR1_OFFSET 0XFD080204 #undef DDR_PHY_CATR0_OFFSET #define DDR_PHY_CATR0_OFFSET 0XFD080240 +#undef DDR_PHY_DQSDR0_OFFSET +#define DDR_PHY_DQSDR0_OFFSET 0XFD080250 #undef DDR_PHY_BISTLSR_OFFSET #define DDR_PHY_BISTLSR_OFFSET 0XFD080414 #undef DDR_PHY_RIOCR5_OFFSET @@ -2398,10 +2720,6 @@ #define DDR_PHY_DX0GCR5_OFFSET 0XFD080714 #undef DDR_PHY_DX0GCR6_OFFSET #define DDR_PHY_DX0GCR6_OFFSET 0XFD080718 -#undef DDR_PHY_DX0LCDLR2_OFFSET -#define DDR_PHY_DX0LCDLR2_OFFSET 0XFD080788 -#undef DDR_PHY_DX0GTR0_OFFSET -#define DDR_PHY_DX0GTR0_OFFSET 0XFD0807C0 #undef DDR_PHY_DX1GCR0_OFFSET #define DDR_PHY_DX1GCR0_OFFSET 0XFD080800 #undef DDR_PHY_DX1GCR4_OFFSET @@ -2410,10 +2728,6 @@ #define DDR_PHY_DX1GCR5_OFFSET 0XFD080814 #undef DDR_PHY_DX1GCR6_OFFSET #define DDR_PHY_DX1GCR6_OFFSET 0XFD080818 -#undef DDR_PHY_DX1LCDLR2_OFFSET -#define DDR_PHY_DX1LCDLR2_OFFSET 0XFD080888 -#undef DDR_PHY_DX1GTR0_OFFSET -#define DDR_PHY_DX1GTR0_OFFSET 0XFD0808C0 #undef DDR_PHY_DX2GCR0_OFFSET #define DDR_PHY_DX2GCR0_OFFSET 0XFD080900 #undef DDR_PHY_DX2GCR1_OFFSET @@ -2424,10 +2738,6 @@ #define DDR_PHY_DX2GCR5_OFFSET 0XFD080914 #undef DDR_PHY_DX2GCR6_OFFSET #define DDR_PHY_DX2GCR6_OFFSET 0XFD080918 -#undef DDR_PHY_DX2LCDLR2_OFFSET -#define DDR_PHY_DX2LCDLR2_OFFSET 0XFD080988 -#undef DDR_PHY_DX2GTR0_OFFSET -#define DDR_PHY_DX2GTR0_OFFSET 0XFD0809C0 #undef DDR_PHY_DX3GCR0_OFFSET #define DDR_PHY_DX3GCR0_OFFSET 0XFD080A00 #undef DDR_PHY_DX3GCR1_OFFSET @@ -2438,10 +2748,6 @@ #define DDR_PHY_DX3GCR5_OFFSET 0XFD080A14 #undef DDR_PHY_DX3GCR6_OFFSET #define DDR_PHY_DX3GCR6_OFFSET 0XFD080A18 -#undef DDR_PHY_DX3LCDLR2_OFFSET -#define DDR_PHY_DX3LCDLR2_OFFSET 0XFD080A88 -#undef DDR_PHY_DX3GTR0_OFFSET -#define DDR_PHY_DX3GTR0_OFFSET 0XFD080AC0 #undef DDR_PHY_DX4GCR0_OFFSET #define DDR_PHY_DX4GCR0_OFFSET 0XFD080B00 #undef DDR_PHY_DX4GCR1_OFFSET @@ -2452,10 +2758,6 @@ #define DDR_PHY_DX4GCR5_OFFSET 0XFD080B14 #undef DDR_PHY_DX4GCR6_OFFSET #define DDR_PHY_DX4GCR6_OFFSET 0XFD080B18 -#undef DDR_PHY_DX4LCDLR2_OFFSET -#define DDR_PHY_DX4LCDLR2_OFFSET 0XFD080B88 -#undef DDR_PHY_DX4GTR0_OFFSET -#define DDR_PHY_DX4GTR0_OFFSET 0XFD080BC0 #undef DDR_PHY_DX5GCR0_OFFSET #define DDR_PHY_DX5GCR0_OFFSET 0XFD080C00 #undef DDR_PHY_DX5GCR1_OFFSET @@ -2466,10 +2768,6 @@ #define DDR_PHY_DX5GCR5_OFFSET 0XFD080C14 #undef DDR_PHY_DX5GCR6_OFFSET #define DDR_PHY_DX5GCR6_OFFSET 0XFD080C18 -#undef DDR_PHY_DX5LCDLR2_OFFSET -#define DDR_PHY_DX5LCDLR2_OFFSET 0XFD080C88 -#undef DDR_PHY_DX5GTR0_OFFSET -#define DDR_PHY_DX5GTR0_OFFSET 0XFD080CC0 #undef DDR_PHY_DX6GCR0_OFFSET #define DDR_PHY_DX6GCR0_OFFSET 0XFD080D00 #undef DDR_PHY_DX6GCR1_OFFSET @@ -2480,10 +2778,6 @@ #define DDR_PHY_DX6GCR5_OFFSET 0XFD080D14 #undef DDR_PHY_DX6GCR6_OFFSET #define DDR_PHY_DX6GCR6_OFFSET 0XFD080D18 -#undef DDR_PHY_DX6LCDLR2_OFFSET -#define DDR_PHY_DX6LCDLR2_OFFSET 0XFD080D88 -#undef DDR_PHY_DX6GTR0_OFFSET -#define DDR_PHY_DX6GTR0_OFFSET 0XFD080DC0 #undef DDR_PHY_DX7GCR0_OFFSET #define DDR_PHY_DX7GCR0_OFFSET 0XFD080E00 #undef DDR_PHY_DX7GCR1_OFFSET @@ -2494,10 +2788,6 @@ #define DDR_PHY_DX7GCR5_OFFSET 0XFD080E14 #undef DDR_PHY_DX7GCR6_OFFSET #define DDR_PHY_DX7GCR6_OFFSET 0XFD080E18 -#undef DDR_PHY_DX7LCDLR2_OFFSET -#define DDR_PHY_DX7LCDLR2_OFFSET 0XFD080E88 -#undef DDR_PHY_DX7GTR0_OFFSET -#define DDR_PHY_DX7GTR0_OFFSET 0XFD080EC0 #undef DDR_PHY_DX8GCR0_OFFSET #define DDR_PHY_DX8GCR0_OFFSET 0XFD080F00 #undef DDR_PHY_DX8GCR1_OFFSET @@ -2508,12 +2798,10 @@ #define DDR_PHY_DX8GCR5_OFFSET 0XFD080F14 #undef DDR_PHY_DX8GCR6_OFFSET #define DDR_PHY_DX8GCR6_OFFSET 0XFD080F18 -#undef DDR_PHY_DX8LCDLR2_OFFSET -#define DDR_PHY_DX8LCDLR2_OFFSET 0XFD080F88 -#undef DDR_PHY_DX8GTR0_OFFSET -#define DDR_PHY_DX8GTR0_OFFSET 0XFD080FC0 #undef DDR_PHY_DX8SL0OSC_OFFSET #define DDR_PHY_DX8SL0OSC_OFFSET 0XFD081400 +#undef DDR_PHY_DX8SL0PLLCR0_OFFSET +#define DDR_PHY_DX8SL0PLLCR0_OFFSET 0XFD081404 #undef DDR_PHY_DX8SL0DQSCTL_OFFSET #define DDR_PHY_DX8SL0DQSCTL_OFFSET 0XFD08141C #undef DDR_PHY_DX8SL0DXCTL2_OFFSET @@ -2522,6 +2810,8 @@ #define DDR_PHY_DX8SL0IOCR_OFFSET 0XFD081430 #undef DDR_PHY_DX8SL1OSC_OFFSET #define DDR_PHY_DX8SL1OSC_OFFSET 0XFD081440 +#undef DDR_PHY_DX8SL1PLLCR0_OFFSET +#define DDR_PHY_DX8SL1PLLCR0_OFFSET 0XFD081444 #undef DDR_PHY_DX8SL1DQSCTL_OFFSET #define DDR_PHY_DX8SL1DQSCTL_OFFSET 0XFD08145C #undef DDR_PHY_DX8SL1DXCTL2_OFFSET @@ -2530,6 +2820,8 @@ #define DDR_PHY_DX8SL1IOCR_OFFSET 0XFD081470 #undef DDR_PHY_DX8SL2OSC_OFFSET #define DDR_PHY_DX8SL2OSC_OFFSET 0XFD081480 +#undef DDR_PHY_DX8SL2PLLCR0_OFFSET +#define DDR_PHY_DX8SL2PLLCR0_OFFSET 0XFD081484 #undef DDR_PHY_DX8SL2DQSCTL_OFFSET #define DDR_PHY_DX8SL2DQSCTL_OFFSET 0XFD08149C #undef DDR_PHY_DX8SL2DXCTL2_OFFSET @@ -2538,6 +2830,8 @@ #define DDR_PHY_DX8SL2IOCR_OFFSET 0XFD0814B0 #undef DDR_PHY_DX8SL3OSC_OFFSET #define DDR_PHY_DX8SL3OSC_OFFSET 0XFD0814C0 +#undef DDR_PHY_DX8SL3PLLCR0_OFFSET +#define DDR_PHY_DX8SL3PLLCR0_OFFSET 0XFD0814C4 #undef DDR_PHY_DX8SL3DQSCTL_OFFSET #define DDR_PHY_DX8SL3DQSCTL_OFFSET 0XFD0814DC #undef DDR_PHY_DX8SL3DXCTL2_OFFSET @@ -2546,14391 +2840,18570 @@ #define DDR_PHY_DX8SL3IOCR_OFFSET 0XFD0814F0 #undef DDR_PHY_DX8SL4OSC_OFFSET #define DDR_PHY_DX8SL4OSC_OFFSET 0XFD081500 +#undef DDR_PHY_DX8SL4PLLCR0_OFFSET +#define DDR_PHY_DX8SL4PLLCR0_OFFSET 0XFD081504 #undef DDR_PHY_DX8SL4DQSCTL_OFFSET #define DDR_PHY_DX8SL4DQSCTL_OFFSET 0XFD08151C #undef DDR_PHY_DX8SL4DXCTL2_OFFSET #define DDR_PHY_DX8SL4DXCTL2_OFFSET 0XFD08152C #undef DDR_PHY_DX8SL4IOCR_OFFSET #define DDR_PHY_DX8SL4IOCR_OFFSET 0XFD081530 +#undef DDR_PHY_DX8SLBPLLCR0_OFFSET +#define DDR_PHY_DX8SLBPLLCR0_OFFSET 0XFD0817C4 #undef DDR_PHY_DX8SLBDQSCTL_OFFSET #define DDR_PHY_DX8SLBDQSCTL_OFFSET 0XFD0817DC -#undef DDR_PHY_PIR_OFFSET -#define DDR_PHY_PIR_OFFSET 0XFD080004 -/*DDR block level reset inside of the DDR Sub System*/ +/* +* DDR block level reset inside of the DDR Sub System +*/ #undef CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL #undef CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT #undef CRF_APB_RST_DDR_SS_DDR_RESET_MASK -#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F -#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 -#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U +#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 +#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U -/*Indicates the configuration of the device used in the system. - 00 - x4 device - 01 - x8 device - 10 - x16 device - 11 - x32 - evice*/ +/* +* Indicates the configuration of the device used in the system. - 00 - x4 + * device - 01 - x8 device - 10 - x16 device - 11 - x32 device +*/ #undef DDRC_MSTR_DEVICE_CONFIG_DEFVAL #undef DDRC_MSTR_DEVICE_CONFIG_SHIFT #undef DDRC_MSTR_DEVICE_CONFIG_MASK -#define DDRC_MSTR_DEVICE_CONFIG_DEFVAL 0x03040001 -#define DDRC_MSTR_DEVICE_CONFIG_SHIFT 30 -#define DDRC_MSTR_DEVICE_CONFIG_MASK 0xC0000000U +#define DDRC_MSTR_DEVICE_CONFIG_DEFVAL 0x03040001 +#define DDRC_MSTR_DEVICE_CONFIG_SHIFT 30 +#define DDRC_MSTR_DEVICE_CONFIG_MASK 0xC0000000U -/*Choose which registers are used. - 0 - Original registers - 1 - Shadow registers*/ +/* +* Choose which registers are used. - 0 - Original registers - 1 - Shadow r + * egisters +*/ #undef DDRC_MSTR_FREQUENCY_MODE_DEFVAL #undef DDRC_MSTR_FREQUENCY_MODE_SHIFT #undef DDRC_MSTR_FREQUENCY_MODE_MASK -#define DDRC_MSTR_FREQUENCY_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_FREQUENCY_MODE_SHIFT 29 -#define DDRC_MSTR_FREQUENCY_MODE_MASK 0x20000000U +#define DDRC_MSTR_FREQUENCY_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_FREQUENCY_MODE_SHIFT 29 +#define DDRC_MSTR_FREQUENCY_MODE_MASK 0x20000000U -/*Only present for multi-rank configurations. Each bit represents one rank. For two-rank configurations, only bits[25:24] are p - esent. - 1 - populated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks following combinations are legal: - 01 - - ne rank - 11 - Two ranks - Others - Reserved. For 4 ranks following combinations are legal: - 0001 - One rank - 0011 - Two ra - ks - 1111 - Four ranks*/ +/* +* Only present for multi-rank configurations. Each bit represents one rank + * . For two-rank configurations, only bits[25:24] are present. - 1 - popul + * ated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks follow + * ing combinations are legal: - 01 - One rank - 11 - Two ranks - Others - + * Reserved. For 4 ranks following combinations are legal: - 0001 - One ran + * k - 0011 - Two ranks - 1111 - Four ranks +*/ #undef DDRC_MSTR_ACTIVE_RANKS_DEFVAL #undef DDRC_MSTR_ACTIVE_RANKS_SHIFT #undef DDRC_MSTR_ACTIVE_RANKS_MASK -#define DDRC_MSTR_ACTIVE_RANKS_DEFVAL 0x03040001 -#define DDRC_MSTR_ACTIVE_RANKS_SHIFT 24 -#define DDRC_MSTR_ACTIVE_RANKS_MASK 0x03000000U +#define DDRC_MSTR_ACTIVE_RANKS_DEFVAL 0x03040001 +#define DDRC_MSTR_ACTIVE_RANKS_SHIFT 24 +#define DDRC_MSTR_ACTIVE_RANKS_MASK 0x03000000U -/*SDRAM burst length used: - 0001 - Burst length of 2 (only supported for mDDR) - 0010 - Burst length of 4 - 0100 - Burst lengt - of 8 - 1000 - Burst length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other values are reserved. This controls - he burst size used to access the SDRAM. This must match the burst length mode register setting in the SDRAM. (For BC4/8 on-th - -fly mode of DDR3 and DDR4, set this field to 0x0100) Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGT - is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1*/ +/* +* SDRAM burst length used: - 0001 - Burst length of 2 (only supported for + * mDDR) - 0010 - Burst length of 4 - 0100 - Burst length of 8 - 1000 - Bur + * st length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other + * values are reserved. This controls the burst size used to access the SDR + * AM. This must match the burst length mode register setting in the SDRAM. + * (For BC4/8 on-the-fly mode of DDR3 and DDR4, set this field to 0x0100) + * Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGTH + * is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 +*/ #undef DDRC_MSTR_BURST_RDWR_DEFVAL #undef DDRC_MSTR_BURST_RDWR_SHIFT #undef DDRC_MSTR_BURST_RDWR_MASK -#define DDRC_MSTR_BURST_RDWR_DEFVAL 0x03040001 -#define DDRC_MSTR_BURST_RDWR_SHIFT 16 -#define DDRC_MSTR_BURST_RDWR_MASK 0x000F0000U +#define DDRC_MSTR_BURST_RDWR_DEFVAL 0x03040001 +#define DDRC_MSTR_BURST_RDWR_SHIFT 16 +#define DDRC_MSTR_BURST_RDWR_MASK 0x000F0000U -/*Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low frequency operation. Set to 0 to put uMCTL2 and DRAM - n DLL-on mode for normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d - l_off_mode is not supported, and this bit must be set to '0'.*/ +/* +* Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low + * frequency operation. Set to 0 to put uMCTL2 and DRAM in DLL-on mode for + * normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARC + * TL1.crc_parity_retry_enable = 1), dll_off_mode is not supported, and thi + * s bit must be set to '0'. +*/ #undef DDRC_MSTR_DLL_OFF_MODE_DEFVAL #undef DDRC_MSTR_DLL_OFF_MODE_SHIFT #undef DDRC_MSTR_DLL_OFF_MODE_MASK -#define DDRC_MSTR_DLL_OFF_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_DLL_OFF_MODE_SHIFT 15 -#define DDRC_MSTR_DLL_OFF_MODE_MASK 0x00008000U +#define DDRC_MSTR_DLL_OFF_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_DLL_OFF_MODE_SHIFT 15 +#define DDRC_MSTR_DLL_OFF_MODE_MASK 0x00008000U -/*Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full DQ bus width to SDRAM - 01 - Half DQ bus width to SD - AM - 10 - Quarter DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is only supported when the SDRAM bus w - dth is a multiple of 16, and quarter bus width mode is only supported when the SDRAM bus width is a multiple of 32 and the co - figuration parameter MEMC_QBUS_SUPPORT is set. Bus width refers to DQ bus width (excluding any ECC width).*/ +/* +* Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full + * DQ bus width to SDRAM - 01 - Half DQ bus width to SDRAM - 10 - Quarter + * DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is + * only supported when the SDRAM bus width is a multiple of 16, and quarter + * bus width mode is only supported when the SDRAM bus width is a multiple + * of 32 and the configuration parameter MEMC_QBUS_SUPPORT is set. Bus wid + * th refers to DQ bus width (excluding any ECC width). +*/ #undef DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL #undef DDRC_MSTR_DATA_BUS_WIDTH_SHIFT #undef DDRC_MSTR_DATA_BUS_WIDTH_MASK -#define DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL 0x03040001 -#define DDRC_MSTR_DATA_BUS_WIDTH_SHIFT 12 -#define DDRC_MSTR_DATA_BUS_WIDTH_MASK 0x00003000U +#define DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL 0x03040001 +#define DDRC_MSTR_DATA_BUS_WIDTH_SHIFT 12 +#define DDRC_MSTR_DATA_BUS_WIDTH_MASK 0x00003000U -/*1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the DRAM in normal mode (1N). This register can be changed - only when the Controller is in self-refresh mode. This signal must be set the same value as MR3 bit A3. Note: Geardown mode - s not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set*/ +/* +* 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the D + * RAM in normal mode (1N). This register can be changed, only when the Con + * troller is in self-refresh mode. This signal must be set the same value + * as MR3 bit A3. Note: Geardown mode is not supported if the configuration + * parameter MEMC_CMD_RTN2IDLE is set +*/ #undef DDRC_MSTR_GEARDOWN_MODE_DEFVAL #undef DDRC_MSTR_GEARDOWN_MODE_SHIFT #undef DDRC_MSTR_GEARDOWN_MODE_MASK -#define DDRC_MSTR_GEARDOWN_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_GEARDOWN_MODE_SHIFT 11 -#define DDRC_MSTR_GEARDOWN_MODE_MASK 0x00000800U +#define DDRC_MSTR_GEARDOWN_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_GEARDOWN_MODE_SHIFT 11 +#define DDRC_MSTR_GEARDOWN_MODE_MASK 0x00000800U -/*If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timing, all command signals (except chip select) are held - or 2 clocks on the SDRAM bus. Chip select is asserted on the second cycle of the command Note: 2T timing is not supported in - PDDR2/LPDDR3/LPDDR4 mode Note: 2T timing is not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set Note: 2T ti - ing is not supported in DDR4 geardown mode.*/ +/* +* If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timin + * g, all command signals (except chip select) are held for 2 clocks on the + * SDRAM bus. Chip select is asserted on the second cycle of the command N + * ote: 2T timing is not supported in LPDDR2/LPDDR3/LPDDR4 mode Note: 2T ti + * ming is not supported if the configuration parameter MEMC_CMD_RTN2IDLE i + * s set Note: 2T timing is not supported in DDR4 geardown mode. +*/ #undef DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL #undef DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT #undef DDRC_MSTR_EN_2T_TIMING_MODE_MASK -#define DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT 10 -#define DDRC_MSTR_EN_2T_TIMING_MODE_MASK 0x00000400U +#define DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT 10 +#define DDRC_MSTR_EN_2T_TIMING_MODE_MASK 0x00000400U -/*When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exercised only in HIF configurations (UMCTL2_INCL_ARB not s - t) and if in full bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exercised only if Partial Writes enable - (UMCTL2_PARTIAL_WR=1) and if CRC is disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabled (CRCPARCTL1.cr - _parity_retry_enable = 1), burst chop is not supported, and this bit must be set to '0'*/ +/* +* When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exerci + * sed only in HIF configurations (UMCTL2_INCL_ARB not set) and if in full + * bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exer + * cised only if Partial Writes enabled (UMCTL2_PARTIAL_WR=1) and if CRC is + * disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabl + * ed (CRCPARCTL1.crc_parity_retry_enable = 1), burst chop is not supported + * , and this bit must be set to '0' +*/ #undef DDRC_MSTR_BURSTCHOP_DEFVAL #undef DDRC_MSTR_BURSTCHOP_SHIFT #undef DDRC_MSTR_BURSTCHOP_MASK -#define DDRC_MSTR_BURSTCHOP_DEFVAL 0x03040001 -#define DDRC_MSTR_BURSTCHOP_SHIFT 9 -#define DDRC_MSTR_BURSTCHOP_MASK 0x00000200U +#define DDRC_MSTR_BURSTCHOP_DEFVAL 0x03040001 +#define DDRC_MSTR_BURSTCHOP_SHIFT 9 +#define DDRC_MSTR_BURSTCHOP_MASK 0x00000200U -/*Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 device in use Present only in designs configured to su - port LPDDR4.*/ +/* +* Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 d + * evice in use Present only in designs configured to support LPDDR4. +*/ #undef DDRC_MSTR_LPDDR4_DEFVAL #undef DDRC_MSTR_LPDDR4_SHIFT #undef DDRC_MSTR_LPDDR4_MASK -#define DDRC_MSTR_LPDDR4_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR4_SHIFT 5 -#define DDRC_MSTR_LPDDR4_MASK 0x00000020U +#define DDRC_MSTR_LPDDR4_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR4_SHIFT 5 +#define DDRC_MSTR_LPDDR4_MASK 0x00000020U -/*Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device in use Present only in designs configured to support - DR4.*/ +/* +* Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device + * in use Present only in designs configured to support DDR4. +*/ #undef DDRC_MSTR_DDR4_DEFVAL #undef DDRC_MSTR_DDR4_SHIFT #undef DDRC_MSTR_DDR4_MASK -#define DDRC_MSTR_DDR4_DEFVAL 0x03040001 -#define DDRC_MSTR_DDR4_SHIFT 4 -#define DDRC_MSTR_DDR4_MASK 0x00000010U +#define DDRC_MSTR_DDR4_DEFVAL 0x03040001 +#define DDRC_MSTR_DDR4_SHIFT 4 +#define DDRC_MSTR_DDR4_MASK 0x00000010U -/*Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 device in use Present only in designs configured to su - port LPDDR3.*/ +/* +* Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 d + * evice in use Present only in designs configured to support LPDDR3. +*/ #undef DDRC_MSTR_LPDDR3_DEFVAL #undef DDRC_MSTR_LPDDR3_SHIFT #undef DDRC_MSTR_LPDDR3_MASK -#define DDRC_MSTR_LPDDR3_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR3_SHIFT 3 -#define DDRC_MSTR_LPDDR3_MASK 0x00000008U +#define DDRC_MSTR_LPDDR3_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR3_SHIFT 3 +#define DDRC_MSTR_LPDDR3_MASK 0x00000008U -/*Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 device in use Present only in designs configured to su - port LPDDR2.*/ +/* +* Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 d + * evice in use Present only in designs configured to support LPDDR2. +*/ #undef DDRC_MSTR_LPDDR2_DEFVAL #undef DDRC_MSTR_LPDDR2_SHIFT #undef DDRC_MSTR_LPDDR2_MASK -#define DDRC_MSTR_LPDDR2_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR2_SHIFT 2 -#define DDRC_MSTR_LPDDR2_MASK 0x00000004U +#define DDRC_MSTR_LPDDR2_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR2_SHIFT 2 +#define DDRC_MSTR_LPDDR2_MASK 0x00000004U -/*Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM device in use Only present in designs that support DDR3 - */ +/* +* Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM de + * vice in use Only present in designs that support DDR3. +*/ #undef DDRC_MSTR_DDR3_DEFVAL #undef DDRC_MSTR_DDR3_SHIFT #undef DDRC_MSTR_DDR3_MASK -#define DDRC_MSTR_DDR3_DEFVAL 0x03040001 -#define DDRC_MSTR_DDR3_SHIFT 0 -#define DDRC_MSTR_DDR3_MASK 0x00000001U +#define DDRC_MSTR_DDR3_DEFVAL 0x03040001 +#define DDRC_MSTR_DDR3_SHIFT 0 +#define DDRC_MSTR_DDR3_MASK 0x00000001U -/*Setting this register bit to 1 triggers a mode register read or write operation. When the MR operation is complete, the uMCTL - automatically clears this bit. The other register fields of this register must be written in a separate APB transaction, bef - re setting this mr_wr bit. It is recommended NOT to set this signal if in Init, Deep power-down or MPSM operating modes.*/ +/* +* Setting this register bit to 1 triggers a mode register read or write op + * eration. When the MR operation is complete, the uMCTL2 automatically cle + * ars this bit. The other register fields of this register must be written + * in a separate APB transaction, before setting this mr_wr bit. It is rec + * ommended NOT to set this signal if in Init, Deep power-down or MPSM oper + * ating modes. +*/ #undef DDRC_MRCTRL0_MR_WR_DEFVAL #undef DDRC_MRCTRL0_MR_WR_SHIFT #undef DDRC_MRCTRL0_MR_WR_MASK -#define DDRC_MRCTRL0_MR_WR_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_WR_SHIFT 31 -#define DDRC_MRCTRL0_MR_WR_MASK 0x80000000U +#define DDRC_MRCTRL0_MR_WR_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_WR_SHIFT 31 +#define DDRC_MRCTRL0_MR_WR_MASK 0x80000000U -/*Address of the mode register that is to be written to. - 0000 - MR0 - 0001 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 010 - - MR5 - 0110 - MR6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data for mode register addressing in LPD - R2/LPDDR3/LPDDR4) This signal is also used for writing to control words of RDIMMs. In that case, it corresponds to the bank a - dress bits sent to the RDIMM In case of DDR4, the bit[3:2] corresponds to the bank group bits. Therefore, the bit[3] as well - s the bit[2:0] must be set to an appropriate value which is considered both the Address Mirroring of UDIMMs/RDIMMs and the Ou - put Inversion of RDIMMs.*/ +/* +* Address of the mode register that is to be written to. - 0000 - MR0 - 00 + * 01 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 0101 - MR5 - 0110 - MR + * 6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data + * for mode register addressing in LPDDR2/LPDDR3/LPDDR4) This signal is als + * o used for writing to control words of RDIMMs. In that case, it correspo + * nds to the bank address bits sent to the RDIMM In case of DDR4, the bit[ + * 3:2] corresponds to the bank group bits. Therefore, the bit[3] as well a + * s the bit[2:0] must be set to an appropriate value which is considered b + * oth the Address Mirroring of UDIMMs/RDIMMs and the Output Inversion of R + * DIMMs. +*/ #undef DDRC_MRCTRL0_MR_ADDR_DEFVAL #undef DDRC_MRCTRL0_MR_ADDR_SHIFT #undef DDRC_MRCTRL0_MR_ADDR_MASK -#define DDRC_MRCTRL0_MR_ADDR_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_ADDR_SHIFT 12 -#define DDRC_MRCTRL0_MR_ADDR_MASK 0x0000F000U +#define DDRC_MRCTRL0_MR_ADDR_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_ADDR_SHIFT 12 +#define DDRC_MRCTRL0_MR_ADDR_MASK 0x0000F000U -/*Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desired to access all ranks, so all bits should be set to 1 - However, for multi-rank UDIMMs/RDIMMs which implement address mirroring, it may be necessary to access ranks individually. E - amples (assume uMCTL2 is configured for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x5 - select ranks - and 2 - 0xA - select ranks 1 and 3 - 0xF - select ranks 0, 1, 2 and 3*/ +/* +* Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desire + * d to access all ranks, so all bits should be set to 1. However, for mult + * i-rank UDIMMs/RDIMMs which implement address mirroring, it may be necess + * ary to access ranks individually. Examples (assume uMCTL2 is configured + * for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x + * 5 - select ranks 0 and 2 - 0xA - select ranks 1 and 3 - 0xF - select ran + * ks 0, 1, 2 and 3 +*/ #undef DDRC_MRCTRL0_MR_RANK_DEFVAL #undef DDRC_MRCTRL0_MR_RANK_SHIFT #undef DDRC_MRCTRL0_MR_RANK_MASK -#define DDRC_MRCTRL0_MR_RANK_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_RANK_SHIFT 4 -#define DDRC_MRCTRL0_MR_RANK_MASK 0x00000030U +#define DDRC_MRCTRL0_MR_RANK_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_RANK_SHIFT 4 +#define DDRC_MRCTRL0_MR_RANK_MASK 0x00000030U -/*Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 before automatic SDRAM initialization routine or not. - or DDR4, this bit can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM initialization. For LPDDR4, this bit ca - be used to program additional mode registers before automatic SDRAM initialization if necessary. Note: This must be cleared - o 0 after completing Software operation. Otherwise, SDRAM initialization routine will not re-start. - 0 - Software interventi - n is not allowed - 1 - Software intervention is allowed*/ +/* +* Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 b + * efore automatic SDRAM initialization routine or not. For DDR4, this bit + * can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM init + * ialization. For LPDDR4, this bit can be used to program additional mode + * registers before automatic SDRAM initialization if necessary. Note: This + * must be cleared to 0 after completing Software operation. Otherwise, SD + * RAM initialization routine will not re-start. - 0 - Software interventio + * n is not allowed - 1 - Software intervention is allowed +*/ #undef DDRC_MRCTRL0_SW_INIT_INT_DEFVAL #undef DDRC_MRCTRL0_SW_INIT_INT_SHIFT #undef DDRC_MRCTRL0_SW_INIT_INT_MASK -#define DDRC_MRCTRL0_SW_INIT_INT_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_SW_INIT_INT_SHIFT 3 -#define DDRC_MRCTRL0_SW_INIT_INT_MASK 0x00000008U +#define DDRC_MRCTRL0_SW_INIT_INT_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_SW_INIT_INT_SHIFT 3 +#define DDRC_MRCTRL0_SW_INIT_INT_MASK 0x00000008U -/*Indicates whether the mode register operation is MRS in PDA mode or not - 0 - MRS - 1 - MRS in Per DRAM Addressability mode*/ +/* +* Indicates whether the mode register operation is MRS in PDA mode or not + * - 0 - MRS - 1 - MRS in Per DRAM Addressability mode +*/ #undef DDRC_MRCTRL0_PDA_EN_DEFVAL #undef DDRC_MRCTRL0_PDA_EN_SHIFT #undef DDRC_MRCTRL0_PDA_EN_MASK -#define DDRC_MRCTRL0_PDA_EN_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_PDA_EN_SHIFT 2 -#define DDRC_MRCTRL0_PDA_EN_MASK 0x00000004U +#define DDRC_MRCTRL0_PDA_EN_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_PDA_EN_SHIFT 2 +#define DDRC_MRCTRL0_PDA_EN_MASK 0x00000004U -/*Indicates whether the mode register operation is MRS or WR/RD for MPR (only supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR*/ +/* +* Indicates whether the mode register operation is MRS or WR/RD for MPR (o + * nly supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR +*/ #undef DDRC_MRCTRL0_MPR_EN_DEFVAL #undef DDRC_MRCTRL0_MPR_EN_SHIFT #undef DDRC_MRCTRL0_MPR_EN_MASK -#define DDRC_MRCTRL0_MPR_EN_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MPR_EN_SHIFT 1 -#define DDRC_MRCTRL0_MPR_EN_MASK 0x00000002U +#define DDRC_MRCTRL0_MPR_EN_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MPR_EN_SHIFT 1 +#define DDRC_MRCTRL0_MPR_EN_MASK 0x00000002U -/*Indicates whether the mode register operation is read or write. Only used for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Re - d*/ +/* +* Indicates whether the mode register operation is read or write. Only use + * d for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Read +*/ #undef DDRC_MRCTRL0_MR_TYPE_DEFVAL #undef DDRC_MRCTRL0_MR_TYPE_SHIFT #undef DDRC_MRCTRL0_MR_TYPE_MASK -#define DDRC_MRCTRL0_MR_TYPE_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_TYPE_SHIFT 0 -#define DDRC_MRCTRL0_MR_TYPE_MASK 0x00000001U +#define DDRC_MRCTRL0_MR_TYPE_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_TYPE_SHIFT 0 +#define DDRC_MRCTRL0_MR_TYPE_MASK 0x00000001U -/*Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating uses +2. - 2 - Derating uses +3. - 3 - Derating uses +4 - Present only in designs configured to support LPDDR4. The required number of cycles for derating can be determined by dividi - g 3.75ns by the core_ddrc_core_clk period, and rounding up the next integer.*/ +/* +* Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating us + * es +2. - 2 - Derating uses +3. - 3 - Derating uses +4. Present only in d + * esigns configured to support LPDDR4. The required number of cycles for d + * erating can be determined by dividing 3.75ns by the core_ddrc_core_clk p + * eriod, and rounding up the next integer. +*/ #undef DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL #undef DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT #undef DDRC_DERATEEN_RC_DERATE_VALUE_MASK -#define DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT 8 -#define DDRC_DERATEEN_RC_DERATE_VALUE_MASK 0x00000300U +#define DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT 8 +#define DDRC_DERATEEN_RC_DERATE_VALUE_MASK 0x00000300U -/*Derate byte Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 Indicates which byte of the MRR data is used f - r derating. The maximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH.*/ +/* +* Derate byte Present only in designs configured to support LPDDR2/LPDDR3/ + * LPDDR4 Indicates which byte of the MRR data is used for derating. The ma + * ximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. +*/ #undef DDRC_DERATEEN_DERATE_BYTE_DEFVAL #undef DDRC_DERATEEN_DERATE_BYTE_SHIFT #undef DDRC_DERATEEN_DERATE_BYTE_MASK -#define DDRC_DERATEEN_DERATE_BYTE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_BYTE_SHIFT 4 -#define DDRC_DERATEEN_DERATE_BYTE_MASK 0x000000F0U +#define DDRC_DERATEEN_DERATE_BYTE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_BYTE_SHIFT 4 +#define DDRC_DERATEEN_DERATE_BYTE_MASK 0x000000F0U -/*Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present only in designs configured to support LPDDR2/LPDDR3/LPDD - 4 Set to 0 for all LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ddrc_core_clk period. Can be 0 or 1 - for LPDDR3/LPDDR4, depending if +1.875 ns is less than a core_ddrc_core_clk period or not.*/ +/* +* Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present onl + * y in designs configured to support LPDDR2/LPDDR3/LPDDR4 Set to 0 for all + * LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ + * ddrc_core_clk period. Can be 0 or 1 for LPDDR3/LPDDR4, depending if +1.8 + * 75 ns is less than a core_ddrc_core_clk period or not. +*/ #undef DDRC_DERATEEN_DERATE_VALUE_DEFVAL #undef DDRC_DERATEEN_DERATE_VALUE_SHIFT #undef DDRC_DERATEEN_DERATE_VALUE_MASK -#define DDRC_DERATEEN_DERATE_VALUE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_VALUE_SHIFT 1 -#define DDRC_DERATEEN_DERATE_VALUE_MASK 0x00000002U +#define DDRC_DERATEEN_DERATE_VALUE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_VALUE_SHIFT 1 +#define DDRC_DERATEEN_DERATE_VALUE_MASK 0x00000002U -/*Enables derating - 0 - Timing parameter derating is disabled - 1 - Timing parameter derating is enabled using MR4 read value. - Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set to '0' for non-LPDDR2/LPDDR3/LPDDR4 - mode.*/ +/* +* Enables derating - 0 - Timing parameter derating is disabled - 1 - Timin + * g parameter derating is enabled using MR4 read value. Present only in de + * signs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set + * to '0' for non-LPDDR2/LPDDR3/LPDDR4 mode. +*/ #undef DDRC_DERATEEN_DERATE_ENABLE_DEFVAL #undef DDRC_DERATEEN_DERATE_ENABLE_SHIFT #undef DDRC_DERATEEN_DERATE_ENABLE_MASK -#define DDRC_DERATEEN_DERATE_ENABLE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_ENABLE_SHIFT 0 -#define DDRC_DERATEEN_DERATE_ENABLE_MASK 0x00000001U +#define DDRC_DERATEEN_DERATE_ENABLE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_ENABLE_SHIFT 0 +#define DDRC_DERATEEN_DERATE_ENABLE_MASK 0x00000001U -/*Interval between two MR4 reads, used to derate the timing parameters. Present only in designs configured to support LPDDR2/LP - DR3/LPDDR4. This register must not be set to zero*/ +/* +* Interval between two MR4 reads, used to derate the timing parameters. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4. This r + * egister must not be set to zero +*/ #undef DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL #undef DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT #undef DDRC_DERATEINT_MR4_READ_INTERVAL_MASK -#define DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL -#define DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT 0 -#define DDRC_DERATEINT_MR4_READ_INTERVAL_MASK 0xFFFFFFFFU +#define DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL +#define DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT 0 +#define DDRC_DERATEINT_MR4_READ_INTERVAL_MASK 0xFFFFFFFFU -/*Self refresh state is an intermediate state to enter to Self refresh power down state or exit Self refresh power down state f - r LPDDR4. This register controls transition from the Self refresh state. - 1 - Prohibit transition from Self refresh state - - - Allow transition from Self refresh state*/ +/* +* Self refresh state is an intermediate state to enter to Self refresh pow + * er down state or exit Self refresh power down state for LPDDR4. This reg + * ister controls transition from the Self refresh state. - 1 - Prohibit tr + * ansition from Self refresh state - 0 - Allow transition from Self refres + * h state +*/ #undef DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL #undef DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT #undef DDRC_PWRCTL_STAY_IN_SELFREF_MASK -#define DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL 0x00000000 -#define DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT 6 -#define DDRC_PWRCTL_STAY_IN_SELFREF_MASK 0x00000040U +#define DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL 0x00000000 +#define DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT 6 +#define DDRC_PWRCTL_STAY_IN_SELFREF_MASK 0x00000040U -/*A value of 1 to this register causes system to move to Self Refresh state immediately, as long as it is not in INIT or DPD/MP - M operating_mode. This is referred to as Software Entry/Exit to Self Refresh. - 1 - Software Entry to Self Refresh - 0 - Soft - are Exit from Self Refresh*/ +/* +* A value of 1 to this register causes system to move to Self Refresh stat + * e immediately, as long as it is not in INIT or DPD/MPSM operating_mode. + * This is referred to as Software Entry/Exit to Self Refresh. - 1 - Softwa + * re Entry to Self Refresh - 0 - Software Exit from Self Refresh +*/ #undef DDRC_PWRCTL_SELFREF_SW_DEFVAL #undef DDRC_PWRCTL_SELFREF_SW_SHIFT #undef DDRC_PWRCTL_SELFREF_SW_MASK -#define DDRC_PWRCTL_SELFREF_SW_DEFVAL 0x00000000 -#define DDRC_PWRCTL_SELFREF_SW_SHIFT 5 -#define DDRC_PWRCTL_SELFREF_SW_MASK 0x00000020U +#define DDRC_PWRCTL_SELFREF_SW_DEFVAL 0x00000000 +#define DDRC_PWRCTL_SELFREF_SW_SHIFT 5 +#define DDRC_PWRCTL_SELFREF_SW_MASK 0x00000020U -/*When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode when the transaction store is empty. This register m - st be reset to '0' to bring uMCTL2 out of maximum power saving mode. Present only in designs configured to support DDR4. For - on-DDR4, this register should not be set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if the PHY parameter - DWC_AC_CS_USE is disabled, as the MPSM exit sequence requires the chip-select signal to toggle. FOR PERFORMANCE ONLY.*/ +/* +* When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode + * when the transaction store is empty. This register must be reset to '0' + * to bring uMCTL2 out of maximum power saving mode. Present only in desig + * ns configured to support DDR4. For non-DDR4, this register should not be + * set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if + * the PHY parameter DWC_AC_CS_USE is disabled, as the MPSM exit sequence r + * equires the chip-select signal to toggle. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRCTL_MPSM_EN_DEFVAL #undef DDRC_PWRCTL_MPSM_EN_SHIFT #undef DDRC_PWRCTL_MPSM_EN_MASK -#define DDRC_PWRCTL_MPSM_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_MPSM_EN_SHIFT 4 -#define DDRC_PWRCTL_MPSM_EN_MASK 0x00000010U +#define DDRC_PWRCTL_MPSM_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_MPSM_EN_SHIFT 4 +#define DDRC_PWRCTL_MPSM_EN_MASK 0x00000010U -/*Enable the assertion of dfi_dram_clk_disable whenever a clock is not required by the SDRAM. If set to 0, dfi_dram_clk_disable - is never asserted. Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only be asserted in Self Refresh. In DD - 4, can be asserted in following: - in Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, can be asserted in - ollowing: - in Self Refresh - in Power Down - in Deep Power Down - during Normal operation (Clock Stop) In LPDDR4, can be ass - rted in following: - in Self Refresh Power Down - in Power Down - during Normal operation (Clock Stop)*/ +/* +* Enable the assertion of dfi_dram_clk_disable whenever a clock is not req + * uired by the SDRAM. If set to 0, dfi_dram_clk_disable is never asserted. + * Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only + * be asserted in Self Refresh. In DDR4, can be asserted in following: - i + * n Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, ca + * n be asserted in following: - in Self Refresh - in Power Down - in Deep + * Power Down - during Normal operation (Clock Stop) In LPDDR4, can be asse + * rted in following: - in Self Refresh Power Down - in Power Down - during + * Normal operation (Clock Stop) +*/ #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL 0x00000000 -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT 3 -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK 0x00000008U +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL 0x00000000 +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT 3 +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK 0x00000008U -/*When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the transaction store is empty. This register must be re - et to '0' to bring uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM initialization on deep power-down - xit. Present only in designs configured to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPDDR3, this registe - should not be set to 1. FOR PERFORMANCE ONLY.*/ +/* +* When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the + * transaction store is empty. This register must be reset to '0' to bring + * uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM + * initialization on deep power-down exit. Present only in designs configu + * red to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPD + * DR3, this register should not be set to 1. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT 2 -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK 0x00000004U +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT 2 +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK 0x00000004U -/*If true then the uMCTL2 goes into power-down after a programmable number of cycles 'maximum idle clocks before power down' (P - RTMG.powerdown_to_x32). This register bit may be re-programmed during the course of normal operation.*/ +/* +* If true then the uMCTL2 goes into power-down after a programmable number + * of cycles 'maximum idle clocks before power down' (PWRTMG.powerdown_to_ + * x32). This register bit may be re-programmed during the course of normal + * operation. +*/ #undef DDRC_PWRCTL_POWERDOWN_EN_DEFVAL #undef DDRC_PWRCTL_POWERDOWN_EN_SHIFT #undef DDRC_PWRCTL_POWERDOWN_EN_MASK -#define DDRC_PWRCTL_POWERDOWN_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_POWERDOWN_EN_SHIFT 1 -#define DDRC_PWRCTL_POWERDOWN_EN_MASK 0x00000002U +#define DDRC_PWRCTL_POWERDOWN_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_POWERDOWN_EN_SHIFT 1 +#define DDRC_PWRCTL_POWERDOWN_EN_MASK 0x00000002U -/*If true then the uMCTL2 puts the SDRAM into Self Refresh after a programmable number of cycles 'maximum idle clocks before Se - f Refresh (PWRTMG.selfref_to_x32)'. This register bit may be re-programmed during the course of normal operation.*/ +/* +* If true then the uMCTL2 puts the SDRAM into Self Refresh after a program + * mable number of cycles 'maximum idle clocks before Self Refresh (PWRTMG. + * selfref_to_x32)'. This register bit may be re-programmed during the cour + * se of normal operation. +*/ #undef DDRC_PWRCTL_SELFREF_EN_DEFVAL #undef DDRC_PWRCTL_SELFREF_EN_SHIFT #undef DDRC_PWRCTL_SELFREF_EN_MASK -#define DDRC_PWRCTL_SELFREF_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_SELFREF_EN_SHIFT 0 -#define DDRC_PWRCTL_SELFREF_EN_MASK 0x00000001U +#define DDRC_PWRCTL_SELFREF_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_SELFREF_EN_SHIFT 0 +#define DDRC_PWRCTL_SELFREF_EN_MASK 0x00000001U -/*After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into Self Refresh. This must be enabled in - he PWRCTL.selfref_en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY.*/ +/* +* After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into Self Refresh. This must be enabled in the PWRCTL.selfref_ + * en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL #undef DDRC_PWRTMG_SELFREF_TO_X32_SHIFT #undef DDRC_PWRTMG_SELFREF_TO_X32_MASK -#define DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL 0x00402010 -#define DDRC_PWRTMG_SELFREF_TO_X32_SHIFT 16 -#define DDRC_PWRTMG_SELFREF_TO_X32_MASK 0x00FF0000U +#define DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL 0x00402010 +#define DDRC_PWRTMG_SELFREF_TO_X32_SHIFT 16 +#define DDRC_PWRTMG_SELFREF_TO_X32_MASK 0x00FF0000U -/*Minimum deep power-down time. For mDDR, value from the JEDEC specification is 0 as mDDR exits from deep power-down mode immed - ately after PWRCTL.deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDEC specification is 500us. Unit: Mul - iples of 4096 clocks. Present only in designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE ONLY.*/ +/* +* Minimum deep power-down time. For mDDR, value from the JEDEC specificati + * on is 0 as mDDR exits from deep power-down mode immediately after PWRCTL + * .deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDE + * C specification is 500us. Unit: Multiples of 4096 clocks. Present only i + * n designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE + * ONLY. +*/ #undef DDRC_PWRTMG_T_DPD_X4096_DEFVAL #undef DDRC_PWRTMG_T_DPD_X4096_SHIFT #undef DDRC_PWRTMG_T_DPD_X4096_MASK -#define DDRC_PWRTMG_T_DPD_X4096_DEFVAL 0x00402010 -#define DDRC_PWRTMG_T_DPD_X4096_SHIFT 8 -#define DDRC_PWRTMG_T_DPD_X4096_MASK 0x0000FF00U +#define DDRC_PWRTMG_T_DPD_X4096_DEFVAL 0x00402010 +#define DDRC_PWRTMG_T_DPD_X4096_SHIFT 8 +#define DDRC_PWRTMG_T_DPD_X4096_MASK 0x0000FF00U -/*After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into power-down. This must be enabled in th - PWRCTL.powerdown_en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY.*/ +/* +* After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into power-down. This must be enabled in the PWRCTL.powerdown_ + * en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL #undef DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT #undef DDRC_PWRTMG_POWERDOWN_TO_X32_MASK -#define DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL 0x00402010 -#define DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT 0 -#define DDRC_PWRTMG_POWERDOWN_TO_X32_MASK 0x0000001FU +#define DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL 0x00402010 +#define DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT 0 +#define DDRC_PWRTMG_POWERDOWN_TO_X32_MASK 0x0000001FU -/*Threshold value in number of clock cycles before the critical refresh or page timer expires. A critical refresh is to be issu - d before this threshold is reached. It is recommended that this not be changed from the default value, currently shown as 0x2 - It must always be less than internally used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally used t_rfc_nom_x32 - may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating is enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_ - om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clocks.*/ +/* +* Threshold value in number of clock cycles before the critical refresh or + * page timer expires. A critical refresh is to be issued before this thre + * shold is reached. It is recommended that this not be changed from the de + * fault value, currently shown as 0x2. It must always be less than interna + * lly used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally u + * sed t_rfc_nom_x32 may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating i + * s enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_n + * om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clo + * cks. +*/ #undef DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT #undef DDRC_RFSHCTL0_REFRESH_MARGIN_MASK -#define DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT 20 -#define DDRC_RFSHCTL0_REFRESH_MARGIN_MASK 0x00F00000U +#define DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT 20 +#define DDRC_RFSHCTL0_REFRESH_MARGIN_MASK 0x00F00000U -/*If the refresh timer (tRFCnom, also known as tREFI) has expired at least once, but it has not expired (RFSHCTL0.refresh_burst - 1) times yet, then a speculative refresh may be performed. A speculative refresh is a refresh performed at a time when refres - would be useful, but before it is absolutely required. When the SDRAM bus is idle for a period of time determined by this RF - HCTL0.refresh_to_x32 and the refresh timer has expired at least once since the last refresh, then a speculative refresh is pe - formed. Speculative refreshes continues successively until there are no refreshes pending or until new reads or writes are is - ued to the uMCTL2. FOR PERFORMANCE ONLY.*/ +/* +* If the refresh timer (tRFCnom, also known as tREFI) has expired at least + * once, but it has not expired (RFSHCTL0.refresh_burst+1) times yet, then + * a speculative refresh may be performed. A speculative refresh is a refr + * esh performed at a time when refresh would be useful, but before it is a + * bsolutely required. When the SDRAM bus is idle for a period of time dete + * rmined by this RFSHCTL0.refresh_to_x32 and the refresh timer has expired + * at least once since the last refresh, then a speculative refresh is per + * formed. Speculative refreshes continues successively until there are no + * refreshes pending or until new reads or writes are issued to the uMCTL2. + * FOR PERFORMANCE ONLY. +*/ #undef DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT #undef DDRC_RFSHCTL0_REFRESH_TO_X32_MASK -#define DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT 12 -#define DDRC_RFSHCTL0_REFRESH_TO_X32_MASK 0x0001F000U +#define DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT 12 +#define DDRC_RFSHCTL0_REFRESH_TO_X32_MASK 0x0001F000U -/*The programmed value + 1 is the number of refresh timeouts that is allowed to accumulate before traffic is blocked and the re - reshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of re - reshes. Therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for - RFSHCTL.refresh_burst slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshe - . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh For information on burst refresh feature refer to se - tion 3.9 of DDR2 JEDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always per-rank and not per-bank. The rank r - fresh can be accumulated over 8*tREFI cycles using the burst refresh feature. In DDR4 mode, according to Fine Granularity fea - ure, 8 refreshes can be postponed in 1X mode, 16 refreshes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upd - tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ensure that tRFCmax is not violated due to a PHY-initiat - d update occurring shortly before a refresh burst was due. In this situation, the refresh burst will be delayed until the PHY - initiated update is complete.*/ +/* +* The programmed value + 1 is the number of refresh timeouts that is allow + * ed to accumulate before traffic is blocked and the refreshes are forced + * to execute. Closing pages to perform a refresh is a one-time penalty tha + * t must be paid for each group of refreshes. Therefore, performing refres + * hes in a burst reduces the per-refresh penalty of these page closings. H + * igher numbers for RFSHCTL.refresh_burst slightly increases utilization; + * lower numbers decreases the worst-case latency associated with refreshes + * . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh + * For information on burst refresh feature refer to section 3.9 of DDR2 J + * EDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always pe + * r-rank and not per-bank. The rank refresh can be accumulated over 8*tREF + * I cycles using the burst refresh feature. In DDR4 mode, according to Fin + * e Granularity feature, 8 refreshes can be postponed in 1X mode, 16 refre + * shes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upda + * tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ens + * ure that tRFCmax is not violated due to a PHY-initiated update occurring + * shortly before a refresh burst was due. In this situation, the refresh + * burst will be delayed until the PHY-initiated update is complete. +*/ #undef DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_BURST_SHIFT #undef DDRC_RFSHCTL0_REFRESH_BURST_MASK -#define DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_BURST_SHIFT 4 -#define DDRC_RFSHCTL0_REFRESH_BURST_MASK 0x000001F0U +#define DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_BURST_SHIFT 4 +#define DDRC_RFSHCTL0_REFRESH_BURST_MASK 0x000001F0U -/*- 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows traffic to flow to other banks. Per bank refresh is n - t supported by all LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Present only in designs configured to - support LPDDR2/LPDDR3/LPDDR4*/ +/* +* - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows + * traffic to flow to other banks. Per bank refresh is not supported by all + * LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4 +*/ #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT 2 -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK 0x00000004U +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT 2 +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK 0x00000004U -/*Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fixed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x ( - ot supported) - 110 - Enable on the fly 4x (not supported) - Everything else - reserved Note: The on-the-fly modes is not sup - orted in this version of the uMCTL2. Note: This must be set up while the Controller is in reset or while the Controller is in - self-refresh mode. Changing this during normal operation is not allowed. Making this a dynamic register will be supported in - uture version of the uMCTL2.*/ +/* +* Refresh timer start for rank 1 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_DEFVAL +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_SHIFT +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_MASK +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_DEFVAL 0x00000000 +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_SHIFT 16 +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_MASK 0x0FFF0000U + +/* +* Refresh timer start for rank 0 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_DEFVAL +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_SHIFT +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_MASK +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_DEFVAL 0x00000000 +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_SHIFT 0 +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_MASK 0x00000FFFU + +/* +* Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fix + * ed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x (not supported) - 11 + * 0 - Enable on the fly 4x (not supported) - Everything else - reserved No + * te: The on-the-fly modes is not supported in this version of the uMCTL2. + * Note: This must be set up while the Controller is in reset or while the + * Controller is in self-refresh mode. Changing this during normal operati + * on is not allowed. Making this a dynamic register will be supported in f + * uture version of the uMCTL2. +*/ #undef DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL #undef DDRC_RFSHCTL3_REFRESH_MODE_SHIFT #undef DDRC_RFSHCTL3_REFRESH_MODE_MASK -#define DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_REFRESH_MODE_SHIFT 4 -#define DDRC_RFSHCTL3_REFRESH_MODE_MASK 0x00000070U +#define DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_REFRESH_MODE_SHIFT 4 +#define DDRC_RFSHCTL3_REFRESH_MODE_MASK 0x00000070U -/*Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that the refresh register(s) have been updated. The value - s automatically updated when exiting reset, so it does not need to be toggled initially.*/ +/* +* Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that + * the refresh register(s) have been updated. The value is automatically up + * dated when exiting reset, so it does not need to be toggled initially. +*/ #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT 1 -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK 0x00000002U +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT 1 +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK 0x00000002U -/*When '1', disable auto-refresh generated by the uMCTL2. When auto-refresh is disabled, the SoC core must generate refreshes u - ing the registers reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh and reg_ddrc_rank3_refresh. When dis - auto_refresh transitions from 0 to 1, any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 CRC/parity retry - is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), disable auto-refresh is not supported, and this bit must be set to '0'. - his register field is changeable on the fly.*/ +/* +* When '1', disable auto-refresh generated by the uMCTL2. When auto-refres + * h is disabled, the SoC core must generate refreshes using the registers + * reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh a + * nd reg_ddrc_rank3_refresh. When dis_auto_refresh transitions from 0 to 1 + * , any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 + * CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d + * isable auto-refresh is not supported, and this bit must be set to '0'. T + * his register field is changeable on the fly. +*/ #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT 0 -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK 0x00000001U +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT 0 +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK 0x00000001U -/*tREFI: Average time interval between refreshes per rank (Specification: 7.8us for DDR2, DDR3 and DDR4. See JEDEC specificatio - for mDDR, LPDDR2, LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refreshes (RFSHCTL0.per_bank_refresh = 0 - , this register should be set to tREFIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this register should - e set to tREFIpb For configurations with MEMC_FREQ_RATIO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI va - ue is different depending on the refresh mode. The user should program the appropriate value from the spec based on the value - programmed in the refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be greater than RFSHTMG.t_rfc_min, and RFS - TMG.t_rfc_nom_x32 must be greater than 0x1. Unit: Multiples of 32 clocks.*/ +/* +* tREFI: Average time interval between refreshes per rank (Specification: + * 7.8us for DDR2, DDR3 and DDR4. See JEDEC specification for mDDR, LPDDR2, + * LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refre + * shes (RFSHCTL0.per_bank_refresh = 0), this register should be set to tRE + * FIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this + * register should be set to tREFIpb For configurations with MEMC_FREQ_RAT + * IO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI val + * ue is different depending on the refresh mode. The user should program t + * he appropriate value from the spec based on the value programmed in the + * refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be grea + * ter than RFSHTMG.t_rfc_min, and RFSHTMG.t_rfc_nom_x32 must be greater th + * an 0x1. Unit: Multiples of 32 clocks. +*/ #undef DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL #undef DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT #undef DDRC_RFSHTMG_T_RFC_NOM_X32_MASK -#define DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT 16 -#define DDRC_RFSHTMG_T_RFC_NOM_X32_MASK 0x0FFF0000U +#define DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT 16 +#define DDRC_RFSHTMG_T_RFC_NOM_X32_MASK 0x0FFF0000U -/*Used only when LPDDR3 memory type is connected. Should only be changed when uMCTL2 is in reset. Specifies whether to use the - REFBW parameter (required by some LPDDR3 devices which comply with earlier versions of the LPDDR3 JEDEC specification) or not - - 0 - tREFBW parameter not used - 1 - tREFBW parameter used*/ +/* +* Used only when LPDDR3 memory type is connected. Should only be changed w + * hen uMCTL2 is in reset. Specifies whether to use the tREFBW parameter (r + * equired by some LPDDR3 devices which comply with earlier versions of the + * LPDDR3 JEDEC specification) or not: - 0 - tREFBW parameter not used - 1 + * - tREFBW parameter used +*/ #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT 15 -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK 0x00008000U +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT 15 +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK 0x00008000U -/*tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_FREQ_RATIO=1 configurations, t_rfc_min should be set t - RoundUp(tRFCmin/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to RoundUp(RoundUp(tRFCmin/tCK)/2). In L - DDR2/LPDDR3/LPDDR4 mode: - if using all-bank refreshes, the tRFCmin value in the above equations is equal to tRFCab - if usin - per-bank refreshes, the tRFCmin value in the above equations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above - equations is different depending on the refresh mode (fixed 1X,2X,4X) and the device density. The user should program the app - opriate value from the spec based on the 'refresh_mode' and the device density that is used. Unit: Clocks.*/ +/* +* tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_F + * REQ_RATIO=1 configurations, t_rfc_min should be set to RoundUp(tRFCmin/t + * CK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to Ro + * undUp(RoundUp(tRFCmin/tCK)/2). In LPDDR2/LPDDR3/LPDDR4 mode: - if using + * all-bank refreshes, the tRFCmin value in the above equations is equal to + * tRFCab - if using per-bank refreshes, the tRFCmin value in the above eq + * uations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above + * equations is different depending on the refresh mode (fixed 1X,2X,4X) an + * d the device density. The user should program the appropriate value from + * the spec based on the 'refresh_mode' and the device density that is use + * d. Unit: Clocks. +*/ #undef DDRC_RFSHTMG_T_RFC_MIN_DEFVAL #undef DDRC_RFSHTMG_T_RFC_MIN_SHIFT #undef DDRC_RFSHTMG_T_RFC_MIN_MASK -#define DDRC_RFSHTMG_T_RFC_MIN_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_T_RFC_MIN_SHIFT 0 -#define DDRC_RFSHTMG_T_RFC_MIN_MASK 0x000003FFU +#define DDRC_RFSHTMG_T_RFC_MIN_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_T_RFC_MIN_SHIFT 0 +#define DDRC_RFSHTMG_T_RFC_MIN_MASK 0x000003FFU -/*Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_USE_RMW is defined*/ +/* +* Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_U + * SE_RMW is defined +*/ #undef DDRC_ECCCFG0_DIS_SCRUB_DEFVAL #undef DDRC_ECCCFG0_DIS_SCRUB_SHIFT #undef DDRC_ECCCFG0_DIS_SCRUB_MASK -#define DDRC_ECCCFG0_DIS_SCRUB_DEFVAL 0x00000000 -#define DDRC_ECCCFG0_DIS_SCRUB_SHIFT 4 -#define DDRC_ECCCFG0_DIS_SCRUB_MASK 0x00000010U +#define DDRC_ECCCFG0_DIS_SCRUB_DEFVAL 0x00000000 +#define DDRC_ECCCFG0_DIS_SCRUB_SHIFT 4 +#define DDRC_ECCCFG0_DIS_SCRUB_MASK 0x00000010U -/*ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED over 1 beat - all other settings are reserved for futur - use*/ +/* +* ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED ov + * er 1 beat - all other settings are reserved for future use +*/ #undef DDRC_ECCCFG0_ECC_MODE_DEFVAL #undef DDRC_ECCCFG0_ECC_MODE_SHIFT #undef DDRC_ECCCFG0_ECC_MODE_MASK -#define DDRC_ECCCFG0_ECC_MODE_DEFVAL 0x00000000 -#define DDRC_ECCCFG0_ECC_MODE_SHIFT 0 -#define DDRC_ECCCFG0_ECC_MODE_MASK 0x00000007U +#define DDRC_ECCCFG0_ECC_MODE_DEFVAL 0x00000000 +#define DDRC_ECCCFG0_ECC_MODE_SHIFT 0 +#define DDRC_ECCCFG0_ECC_MODE_MASK 0x00000007U -/*Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) data poisoning, if 1 -> 1-bit (correctable) data poison - ng, if ECCCFG1.data_poison_en=1*/ +/* +* Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) da + * ta poisoning, if 1 -> 1-bit (correctable) data poisoning, if ECCCFG1.dat + * a_poison_en=1 +*/ #undef DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL #undef DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT #undef DDRC_ECCCFG1_DATA_POISON_BIT_MASK -#define DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL 0x00000000 -#define DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT 1 -#define DDRC_ECCCFG1_DATA_POISON_BIT_MASK 0x00000002U +#define DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL 0x00000000 +#define DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT 1 +#define DDRC_ECCCFG1_DATA_POISON_BIT_MASK 0x00000002U -/*Enable ECC data poisoning - introduces ECC errors on writes to address specified by the ECCPOISONADDR0/1 registers*/ +/* +* Enable ECC data poisoning - introduces ECC errors on writes to address s + * pecified by the ECCPOISONADDR0/1 registers +*/ #undef DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL #undef DDRC_ECCCFG1_DATA_POISON_EN_SHIFT #undef DDRC_ECCCFG1_DATA_POISON_EN_MASK -#define DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL 0x00000000 -#define DDRC_ECCCFG1_DATA_POISON_EN_SHIFT 0 -#define DDRC_ECCCFG1_DATA_POISON_EN_MASK 0x00000001U +#define DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL 0x00000000 +#define DDRC_ECCCFG1_DATA_POISON_EN_SHIFT 0 +#define DDRC_ECCCFG1_DATA_POISON_EN_MASK 0x00000001U -/*The maximum number of DFI PHY clock cycles allowed from the assertion of the dfi_rddata_en signal to the assertion of each of - the corresponding bits of the dfi_rddata_valid signal. This corresponds to the DFI timing parameter tphy_rdlat. Refer to PHY - pecification for correct value. This value it only used for detecting read data timeout when DDR4 retry is enabled by CRCPARC - L1.crc_parity_retry_enable=1. Maximum supported value: - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ - dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mo - e ANDAND DFITMG0.dfi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_rdlat < 'd114 Unit: DFI Clocks*/ +/* +* The maximum number of DFI PHY clock cycles allowed from the assertion of + * the dfi_rddata_en signal to the assertion of each of the corresponding + * bits of the dfi_rddata_valid signal. This corresponds to the DFI timing + * parameter tphy_rdlat. Refer to PHY specification for correct value. This + * value it only used for detecting read data timeout when DDR4 retry is e + * nabled by CRCPARCTL1.crc_parity_retry_enable=1. Maximum supported value: + * - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_r + * dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 + * : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mode ANDAND DFITMG0.d + * fi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ + * rdlat < 'd114 Unit: DFI Clocks +*/ #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT 24 -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK 0x3F000000U +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT 24 +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK 0x3F000000U -/*After a Parity or CRC error is flagged on dfi_alert_n signal, the software has an option to read the mode registers in the DR - M before the hardware begins the retry process - 1: Wait for software to read/write the mode registers before hardware begins - the retry. After software is done with its operations, it will clear the alert interrupt register bit - 0: Hardware can begin - the retry right away after the dfi_alert_n pulse goes away. The value on this register is valid only when retry is enabled (P - RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if the software doesn't clear the interrupt register afte - handling the parity/CRC error, then the hardware will not begin the retry process and the system will hang. In the case of P - rity/CRC error, there are two possibilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persistent parity' mode re - ister bit is NOT set: the commands sent during retry and normal operation are executed without parity checking. The value in - he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent parity' mode register bit is SET: Parity checking is - one for commands sent during retry and normal operation. If multiple errors occur before MR5[4] is cleared, the error log in - PR Page 1 should be treated as 'Don't care'.*/ +/* +* After a Parity or CRC error is flagged on dfi_alert_n signal, the softwa + * re has an option to read the mode registers in the DRAM before the hardw + * are begins the retry process - 1: Wait for software to read/write the mo + * de registers before hardware begins the retry. After software is done wi + * th its operations, it will clear the alert interrupt register bit - 0: H + * ardware can begin the retry right away after the dfi_alert_n pulse goes + * away. The value on this register is valid only when retry is enabled (PA + * RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if t + * he software doesn't clear the interrupt register after handling the pari + * ty/CRC error, then the hardware will not begin the retry process and the + * system will hang. In the case of Parity/CRC error, there are two possib + * ilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persisten + * t parity' mode register bit is NOT set: the commands sent during retry a + * nd normal operation are executed without parity checking. The value in t + * he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent + * parity' mode register bit is SET: Parity checking is done for commands s + * ent during retry and normal operation. If multiple errors occur before M + * R5[4] is cleared, the error log in MPR Page 1 should be treated as 'Don' + * t care'. +*/ #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT 9 -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK 0x00000200U +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT 9 +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK 0x00000200U -/*- 1: Enable command retry mechanism in case of C/A Parity or CRC error - 0: Disable command retry mechanism when C/A Parity o - CRC features are enabled. Note that retry functionality is not supported if burst chop is enabled (MSTR.burstchop = 1) and/o - disable auto-refresh is enabled (RFSHCTL3.dis_auto_refresh = 1)*/ +/* +* - 1: Enable command retry mechanism in case of C/A Parity or CRC error - + * 0: Disable command retry mechanism when C/A Parity or CRC features are + * enabled. Note that retry functionality is not supported if burst chop is + * enabled (MSTR.burstchop = 1) and/or disable auto-refresh is enabled (RF + * SHCTL3.dis_auto_refresh = 1) +*/ #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT 8 -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK 0x00000100U +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT 8 +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK 0x00000100U -/*CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC not includes DM signal Present only in designs configur - d to support DDR4.*/ +/* +* CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC no + * t includes DM signal Present only in designs configured to support DDR4. +*/ #undef DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL #undef DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT #undef DDRC_CRCPARCTL1_CRC_INC_DM_MASK -#define DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT 7 -#define DDRC_CRCPARCTL1_CRC_INC_DM_MASK 0x00000080U +#define DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT 7 +#define DDRC_CRCPARCTL1_CRC_INC_DM_MASK 0x00000080U -/*CRC enable Register - 1: Enable generation of CRC - 0: Disable generation of CRC The setting of this register should match th - CRC mode register setting in the DRAM.*/ +/* +* CRC enable Register - 1: Enable generation of CRC - 0: Disable generatio + * n of CRC The setting of this register should match the CRC mode register + * setting in the DRAM. +*/ #undef DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_CRC_ENABLE_MASK -#define DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT 4 -#define DDRC_CRCPARCTL1_CRC_ENABLE_MASK 0x00000010U +#define DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT 4 +#define DDRC_CRCPARCTL1_CRC_ENABLE_MASK 0x00000010U -/*C/A Parity enable register - 1: Enable generation of C/A parity and detection of C/A parity error - 0: Disable generation of - /A parity and disable detection of C/A parity error If RCD's parity error detection or SDRAM's parity detection is enabled, t - is register should be 1.*/ +/* +* C/A Parity enable register - 1: Enable generation of C/A parity and dete + * ction of C/A parity error - 0: Disable generation of C/A parity and disa + * ble detection of C/A parity error If RCD's parity error detection or SDR + * AM's parity detection is enabled, this register should be 1. +*/ #undef DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_PARITY_ENABLE_MASK -#define DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT 0 -#define DDRC_CRCPARCTL1_PARITY_ENABLE_MASK 0x00000001U +#define DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT 0 +#define DDRC_CRCPARCTL1_PARITY_ENABLE_MASK 0x00000001U -/*Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a parity error occurs. Recommended values - - tPAR_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT_PW.MAX/2 and round up to next inte - er value. Values of 0, 1 and 2 are illegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max.*/ +/* +* Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a parity error occurs. Recommended values: - tPAR_ALERT_PW.M + * AX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT + * _PW.MAX/2 and round up to next integer value. Values of 0, 1 and 2 are i + * llegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. +*/ #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT 16 -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK 0x01FF0000U +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT 16 +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK 0x01FF0000U -/*Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a CRC error occurs. Recommended values: - - tCRC_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW.MAX/2 and round up to next integer - value. Values of 0, 1 and 2 are illegal. This value must be less than CRCPARCTL2.t_par_alert_pw_max.*/ +/* +* Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a CRC error occurs. Recommended values: - tCRC_ALERT_PW.MAX + * For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW + * .MAX/2 and round up to next integer value. Values of 0, 1 and 2 are ille + * gal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. +*/ #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT 8 -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK 0x00001F00U +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT 8 +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK 0x00001F00U -/*Indicates the maximum duration in number of DRAM clock cycles for which a command should be held in the Command Retry FIFO be - ore it is popped out. Every location in the Command Retry FIFO has an associated down counting timer that will use this regis - er as the start value. The down counting starts when a command is loaded into the FIFO. The timer counts down every 4 DRAM cy - les. When the counter reaches zero, the entry is popped from the FIFO. All the counters are frozen, if a C/A Parity or CRC er - or occurs before the counter reaches zero. The counter is reset to 0, after all the commands in the FIFO are retried. Recomme - ded(minimum) values: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + tPAR_ALERT_ON - max + tPAR_UNKNOWN + PHY Alert Latency(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enabled/ Only CRC is en - bled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) - + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be in terms of DRAM Clock and round up Note 2: Board de - ay(Command/Alert_n) should be considered. Note 3: Use the worst case(longer) value for PHY Latencies/Board delay Note 4: The - ecommended values are minimum value to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max value can be set - to this register is defined below: - MEMC_BURST_LENGTH == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH- - Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_D - PTH-4 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CM - _FIFO_DEPTH-8 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 Full bus Mode (C - C=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mo - e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarte - bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEP - H-6 Values of 0, 1 and 2 are illegal.*/ +/* +* Indicates the maximum duration in number of DRAM clock cycles for which + * a command should be held in the Command Retry FIFO before it is popped o + * ut. Every location in the Command Retry FIFO has an associated down coun + * ting timer that will use this register as the start value. The down coun + * ting starts when a command is loaded into the FIFO. The timer counts dow + * n every 4 DRAM cycles. When the counter reaches zero, the entry is poppe + * d from the FIFO. All the counters are frozen, if a C/A Parity or CRC err + * or occurs before the counter reaches zero. The counter is reset to 0, af + * ter all the commands in the FIFO are retried. Recommended(minimum) value + * s: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + * + CAL + RDIMM delay + tPAR_ALERT_ON.max + tPAR_UNKNOWN + PHY Alert Laten + * cy(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enable + * d/ Only CRC is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + R + * DIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) + * + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be + * in terms of DRAM Clock and round up Note 2: Board delay(Command/Alert_n + * ) should be considered. Note 3: Use the worst case(longer) value for PHY + * Latencies/Board delay Note 4: The Recommended values are minimum value + * to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max + * value can be set to this register is defined below: - MEMC_BURST_LENGTH + * == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 + * Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half b + * us Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Half bus Mod + * e (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (C + * RC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-8 Quarter bus Mode (CRC= + * ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 + * Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full + * bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mod + * e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC + * =ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarter bus Mode (CRC=OFF + * ) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Ma + * x value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Values of 0, 1 and 2 are illegal + * . +*/ #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT 0 -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK 0x0000003FU +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT 0 +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK 0x0000003FU -/*If lower bit is enabled the SDRAM initialization routine is skipped. The upper bit decides what state the controller starts u - in when reset is removed - 00 - SDRAM Intialization routine is run after power-up - 01 - SDRAM Intialization routine is skip - ed after power-up. Controller starts up in Normal Mode - 11 - SDRAM Intialization routine is skipped after power-up. Controll - r starts up in Self-refresh Mode - 10 - SDRAM Intialization routine is run after power-up. Note: The only 2'b00 is supported - or LPDDR4 in this version of the uMCTL2.*/ +/* +* If lower bit is enabled the SDRAM initialization routine is skipped. The + * upper bit decides what state the controller starts up in when reset is + * removed - 00 - SDRAM Intialization routine is run after power-up - 01 - + * SDRAM Intialization routine is skipped after power-up. Controller starts + * up in Normal Mode - 11 - SDRAM Intialization routine is skipped after p + * ower-up. Controller starts up in Self-refresh Mode - 10 - SDRAM Intializ + * ation routine is run after power-up. Note: The only 2'b00 is supported f + * or LPDDR4 in this version of the uMCTL2. +*/ #undef DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL #undef DDRC_INIT0_SKIP_DRAM_INIT_SHIFT #undef DDRC_INIT0_SKIP_DRAM_INIT_MASK -#define DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL 0x0002004E -#define DDRC_INIT0_SKIP_DRAM_INIT_SHIFT 30 -#define DDRC_INIT0_SKIP_DRAM_INIT_MASK 0xC0000000U +#define DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL 0x0002004E +#define DDRC_INIT0_SKIP_DRAM_INIT_SHIFT 30 +#define DDRC_INIT0_SKIP_DRAM_INIT_MASK 0xC0000000U -/*Cycles to wait after driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clocks. DDR2 typically requires - 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDDR3 typically requires this to be pr - grammed for a delay of 200 us. LPDDR4 typically requires this to be programmed for a delay of 2 us. For configurations with M - MC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it up to next integer value.*/ +/* +* Cycles to wait after driving CKE high to start the SDRAM initialization + * sequence. Unit: 1024 clocks. DDR2 typically requires a 400 ns delay, req + * uiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDD + * R3 typically requires this to be programmed for a delay of 200 us. LPDDR + * 4 typically requires this to be programmed for a delay of 2 us. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divi + * ded by 2, and round it up to next integer value. +*/ #undef DDRC_INIT0_POST_CKE_X1024_DEFVAL #undef DDRC_INIT0_POST_CKE_X1024_SHIFT #undef DDRC_INIT0_POST_CKE_X1024_MASK -#define DDRC_INIT0_POST_CKE_X1024_DEFVAL 0x0002004E -#define DDRC_INIT0_POST_CKE_X1024_SHIFT 16 -#define DDRC_INIT0_POST_CKE_X1024_MASK 0x03FF0000U +#define DDRC_INIT0_POST_CKE_X1024_DEFVAL 0x0002004E +#define DDRC_INIT0_POST_CKE_X1024_SHIFT 16 +#define DDRC_INIT0_POST_CKE_X1024_MASK 0x03FF0000U -/*Cycles to wait after reset before driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clock cycles. DDR2 - pecifications typically require this to be programmed for a delay of >= 200 us. LPDDR2/LPDDR3: tINIT1 of 100 ns (min) LPDDR4: - tINIT3 of 2 ms (min) For configurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it u - to next integer value.*/ +/* +* Cycles to wait after reset before driving CKE high to start the SDRAM in + * itialization sequence. Unit: 1024 clock cycles. DDR2 specifications typi + * cally require this to be programmed for a delay of >= 200 us. LPDDR2/LPD + * DR3: tINIT1 of 100 ns (min) LPDDR4: tINIT3 of 2 ms (min) For configurati + * ons with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by + * 2, and round it up to next integer value. +*/ #undef DDRC_INIT0_PRE_CKE_X1024_DEFVAL #undef DDRC_INIT0_PRE_CKE_X1024_SHIFT #undef DDRC_INIT0_PRE_CKE_X1024_MASK -#define DDRC_INIT0_PRE_CKE_X1024_DEFVAL 0x0002004E -#define DDRC_INIT0_PRE_CKE_X1024_SHIFT 0 -#define DDRC_INIT0_PRE_CKE_X1024_MASK 0x00000FFFU +#define DDRC_INIT0_PRE_CKE_X1024_DEFVAL 0x0002004E +#define DDRC_INIT0_PRE_CKE_X1024_SHIFT 0 +#define DDRC_INIT0_PRE_CKE_X1024_MASK 0x00000FFFU -/*Number of cycles to assert SDRAM reset signal during init sequence. This is only present for designs supporting DDR3, DDR4 or - LPDDR4 devices. For use with a DDR PHY, this should be set to a minimum of 1*/ +/* +* Number of cycles to assert SDRAM reset signal during init sequence. This + * is only present for designs supporting DDR3, DDR4 or LPDDR4 devices. Fo + * r use with a DDR PHY, this should be set to a minimum of 1 +*/ #undef DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL #undef DDRC_INIT1_DRAM_RSTN_X1024_SHIFT #undef DDRC_INIT1_DRAM_RSTN_X1024_MASK -#define DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL 0x00000000 -#define DDRC_INIT1_DRAM_RSTN_X1024_SHIFT 16 -#define DDRC_INIT1_DRAM_RSTN_X1024_MASK 0x01FF0000U +#define DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL 0x00000000 +#define DDRC_INIT1_DRAM_RSTN_X1024_SHIFT 16 +#define DDRC_INIT1_DRAM_RSTN_X1024_MASK 0x01FF0000U -/*Cycles to wait after completing the SDRAM initialization sequence before starting the dynamic scheduler. Unit: Counts of a gl - bal timer that pulses every 32 clock cycles. There is no known specific requirement for this; it may be set to zero.*/ +/* +* Cycles to wait after completing the SDRAM initialization sequence before + * starting the dynamic scheduler. Unit: Counts of a global timer that pul + * ses every 32 clock cycles. There is no known specific requirement for th + * is; it may be set to zero. +*/ #undef DDRC_INIT1_FINAL_WAIT_X32_DEFVAL #undef DDRC_INIT1_FINAL_WAIT_X32_SHIFT #undef DDRC_INIT1_FINAL_WAIT_X32_MASK -#define DDRC_INIT1_FINAL_WAIT_X32_DEFVAL 0x00000000 -#define DDRC_INIT1_FINAL_WAIT_X32_SHIFT 8 -#define DDRC_INIT1_FINAL_WAIT_X32_MASK 0x00007F00U +#define DDRC_INIT1_FINAL_WAIT_X32_DEFVAL 0x00000000 +#define DDRC_INIT1_FINAL_WAIT_X32_SHIFT 8 +#define DDRC_INIT1_FINAL_WAIT_X32_MASK 0x00007F00U -/*Wait period before driving the OCD complete command to SDRAM. Unit: Counts of a global timer that pulses every 32 clock cycle - . There is no known specific requirement for this; it may be set to zero.*/ +/* +* Wait period before driving the OCD complete command to SDRAM. Unit: Coun + * ts of a global timer that pulses every 32 clock cycles. There is no know + * n specific requirement for this; it may be set to zero. +*/ #undef DDRC_INIT1_PRE_OCD_X32_DEFVAL #undef DDRC_INIT1_PRE_OCD_X32_SHIFT #undef DDRC_INIT1_PRE_OCD_X32_MASK -#define DDRC_INIT1_PRE_OCD_X32_DEFVAL 0x00000000 -#define DDRC_INIT1_PRE_OCD_X32_SHIFT 0 -#define DDRC_INIT1_PRE_OCD_X32_MASK 0x0000000FU +#define DDRC_INIT1_PRE_OCD_X32_DEFVAL 0x00000000 +#define DDRC_INIT1_PRE_OCD_X32_SHIFT 0 +#define DDRC_INIT1_PRE_OCD_X32_MASK 0x0000000FU -/*Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Unit: 32 clock cycles.*/ +/* +* Idle time after the reset command, tINIT4. Present only in designs confi + * gured to support LPDDR2. Unit: 32 clock cycles. +*/ #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL 0x00000D05 -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT 8 -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK 0x0000FF00U +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL 0x00000D05 +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT 8 +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK 0x0000FF00U -/*Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2/LPDDR3. Unit: 1 clock cyc - e. LPDDR2/LPDDR3 typically requires 5 x tCK delay.*/ +/* +* Time to wait after the first CKE high, tINIT2. Present only in designs c + * onfigured to support LPDDR2/LPDDR3. Unit: 1 clock cycle. LPDDR2/LPDDR3 t + * ypically requires 5 x tCK delay. +*/ #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL 0x00000D05 -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT 0 -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK 0x0000000FU +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL 0x00000D05 +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT 0 +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK 0x0000000FU -/*DDR2: Value to write to MR register. Bit 8 is for DLL and the setting here is ignored. The uMCTL2 sets this bit appropriately - DDR3/DDR4: Value loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LPDDR3/LPDDR4 - Value to write to MR1 - register*/ +/* +* DDR2: Value to write to MR register. Bit 8 is for DLL and the setting he + * re is ignored. The uMCTL2 sets this bit appropriately. DDR3/DDR4: Value + * loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LP + * DDR3/LPDDR4 - Value to write to MR1 register +*/ #undef DDRC_INIT3_MR_DEFVAL #undef DDRC_INIT3_MR_SHIFT #undef DDRC_INIT3_MR_MASK -#define DDRC_INIT3_MR_DEFVAL 0x00000510 -#define DDRC_INIT3_MR_SHIFT 16 -#define DDRC_INIT3_MR_MASK 0xFFFF0000U +#define DDRC_INIT3_MR_DEFVAL 0x00000510 +#define DDRC_INIT3_MR_SHIFT 16 +#define DDRC_INIT3_MR_MASK 0xFFFF0000U -/*DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setting in this register is ignored. The uMCTL2 sets those - bits appropriately. DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evaluation mode training is enabled, thi - bit is set appropriately by the uMCTL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/LPDDR3/LPDDR4 - V - lue to write to MR2 register*/ +/* +* DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setti + * ng in this register is ignored. The uMCTL2 sets those bits appropriately + * . DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evalu + * ation mode training is enabled, this bit is set appropriately by the uMC + * TL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/ + * LPDDR3/LPDDR4 - Value to write to MR2 register +*/ #undef DDRC_INIT3_EMR_DEFVAL #undef DDRC_INIT3_EMR_SHIFT #undef DDRC_INIT3_EMR_MASK -#define DDRC_INIT3_EMR_DEFVAL 0x00000510 -#define DDRC_INIT3_EMR_SHIFT 0 -#define DDRC_INIT3_EMR_MASK 0x0000FFFFU +#define DDRC_INIT3_EMR_DEFVAL 0x00000510 +#define DDRC_INIT3_EMR_SHIFT 0 +#define DDRC_INIT3_EMR_MASK 0x0000FFFFU -/*DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 - egister mDDR: Unused*/ +/* +* DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 + * register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 register mDDR: Unus + * ed +*/ #undef DDRC_INIT4_EMR2_DEFVAL #undef DDRC_INIT4_EMR2_SHIFT #undef DDRC_INIT4_EMR2_MASK -#define DDRC_INIT4_EMR2_DEFVAL 0x00000000 -#define DDRC_INIT4_EMR2_SHIFT 16 -#define DDRC_INIT4_EMR2_MASK 0xFFFF0000U +#define DDRC_INIT4_EMR2_DEFVAL 0x00000000 +#define DDRC_INIT4_EMR2_SHIFT 16 +#define DDRC_INIT4_EMR2_MASK 0xFFFF0000U -/*DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to - rite to MR13 register*/ +/* +* DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 + * register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to write to MR13 regis + * ter +*/ #undef DDRC_INIT4_EMR3_DEFVAL #undef DDRC_INIT4_EMR3_SHIFT #undef DDRC_INIT4_EMR3_MASK -#define DDRC_INIT4_EMR3_DEFVAL 0x00000000 -#define DDRC_INIT4_EMR3_SHIFT 0 -#define DDRC_INIT4_EMR3_MASK 0x0000FFFFU +#define DDRC_INIT4_EMR3_DEFVAL 0x00000000 +#define DDRC_INIT4_EMR3_SHIFT 0 +#define DDRC_INIT4_EMR3_MASK 0x0000FFFFU -/*ZQ initial calibration, tZQINIT. Present only in designs configured to support DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock - ycles. DDR3 typically requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requires 1 us.*/ +/* +* ZQ initial calibration, tZQINIT. Present only in designs configured to s + * upport DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock cycles. DDR3 typica + * lly requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requir + * es 1 us. +*/ #undef DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL #undef DDRC_INIT5_DEV_ZQINIT_X32_SHIFT #undef DDRC_INIT5_DEV_ZQINIT_X32_MASK -#define DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL 0x00100004 -#define DDRC_INIT5_DEV_ZQINIT_X32_SHIFT 16 -#define DDRC_INIT5_DEV_ZQINIT_X32_MASK 0x00FF0000U +#define DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL 0x00100004 +#define DDRC_INIT5_DEV_ZQINIT_X32_SHIFT 16 +#define DDRC_INIT5_DEV_ZQINIT_X32_MASK 0x00FF0000U -/*Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2/LPDDR3. LPDDR2/LPDD - 3 typically requires 10 us.*/ +/* +* Maximum duration of the auto initialization, tINIT5. Present only in des + * igns configured to support LPDDR2/LPDDR3. LPDDR2/LPDDR3 typically requir + * es 10 us. +*/ #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL 0x00100004 -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT 0 -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK 0x000003FFU +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL 0x00100004 +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT 0 +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK 0x000003FFU -/*DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT6_MR4_DEFVAL #undef DDRC_INIT6_MR4_SHIFT #undef DDRC_INIT6_MR4_MASK -#define DDRC_INIT6_MR4_DEFVAL 0x00000000 -#define DDRC_INIT6_MR4_SHIFT 16 -#define DDRC_INIT6_MR4_MASK 0xFFFF0000U +#define DDRC_INIT6_MR4_DEFVAL 0x00000000 +#define DDRC_INIT6_MR4_SHIFT 16 +#define DDRC_INIT6_MR4_MASK 0xFFFF0000U -/*DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT6_MR5_DEFVAL #undef DDRC_INIT6_MR5_SHIFT #undef DDRC_INIT6_MR5_MASK -#define DDRC_INIT6_MR5_DEFVAL 0x00000000 -#define DDRC_INIT6_MR5_SHIFT 0 -#define DDRC_INIT6_MR5_MASK 0x0000FFFFU +#define DDRC_INIT6_MR5_DEFVAL 0x00000000 +#define DDRC_INIT6_MR5_SHIFT 0 +#define DDRC_INIT6_MR5_MASK 0x0000FFFFU -/*DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT7_MR6_DEFVAL #undef DDRC_INIT7_MR6_SHIFT #undef DDRC_INIT7_MR6_MASK -#define DDRC_INIT7_MR6_DEFVAL -#define DDRC_INIT7_MR6_SHIFT 16 -#define DDRC_INIT7_MR6_MASK 0xFFFF0000U +#define DDRC_INIT7_MR6_DEFVAL +#define DDRC_INIT7_MR6_SHIFT 16 +#define DDRC_INIT7_MR6_MASK 0xFFFF0000U -/*Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enab - ed. This will be required for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapped. - 0 - BG0 and BG1 are swapped i - address mirroring is enabled.*/ +/* +* Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and + * BG1 are NOT swapped even if Address Mirroring is enabled. This will be r + * equired for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapp + * ed. - 0 - BG0 and BG1 are swapped if address mirroring is enabled. +*/ #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT 5 -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK 0x00000020U +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT 5 +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK 0x00000020U -/*Enable for BG1 bit of MRS command. BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output - nversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit. Note: This has no - effect on the address of any other memory accesses, or of software-driven mode register accesses. If address mirroring is ena - led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - Enabled - 0 - Disabled*/ +/* +* Enable for BG1 bit of MRS command. BG1 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have BG1 are attached and + * both the CA parity and the Output Inversion are enabled, this must be s + * et to 0, so that the calculation of CA parity will not include BG1 bit. + * Note: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. If address mirroring is enab + * led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - En + * abled - 0 - Disabled +*/ #undef DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL #undef DDRC_DIMMCTL_MRS_BG1_EN_SHIFT #undef DDRC_DIMMCTL_MRS_BG1_EN_MASK -#define DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_MRS_BG1_EN_SHIFT 4 -#define DDRC_DIMMCTL_MRS_BG1_EN_MASK 0x00000010U +#define DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_MRS_BG1_EN_SHIFT 4 +#define DDRC_DIMMCTL_MRS_BG1_EN_MASK 0x00000010U -/*Enable for A17 bit of MRS command. A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, - his must be set to 0, so that the calculation of CA parity will not include A17 bit. Note: This has no effect on the address - f any other memory accesses, or of software-driven mode register accesses. - 1 - Enabled - 0 - Disabled*/ +/* +* Enable for A17 bit of MRS command. A17 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have A17 are attached and + * the Output Inversion are enabled, this must be set to 0, so that the ca + * lculation of CA parity will not include A17 bit. Note: This has no effec + * t on the address of any other memory accesses, or of software-driven mod + * e register accesses. - 1 - Enabled - 0 - Disabled +*/ #undef DDRC_DIMMCTL_MRS_A17_EN_DEFVAL #undef DDRC_DIMMCTL_MRS_A17_EN_SHIFT #undef DDRC_DIMMCTL_MRS_A17_EN_MASK -#define DDRC_DIMMCTL_MRS_A17_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_MRS_A17_EN_SHIFT 3 -#define DDRC_DIMMCTL_MRS_A17_EN_MASK 0x00000008U +#define DDRC_DIMMCTL_MRS_A17_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_MRS_A17_EN_SHIFT 3 +#define DDRC_DIMMCTL_MRS_A17_EN_MASK 0x00000008U -/*Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIMM implements the Output Inversion feature by default, - which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, - A0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the uMCTL2 during the automatic initi - lization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. - or B-side mode register accesses, these bits are inverted within the uMCTL2 to compensate for this RDIMM inversion. Note: Thi - has no effect on the address of any other memory accesses, or of software-driven mode register accesses. - 1 - Implement out - ut inversion for B-side DRAMs. - 0 - Do not implement output inversion for B-side DRAMs.*/ +/* +* Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIM + * M implements the Output Inversion feature by default, which means that t + * he following address, bank address and bank group bits of B-side DRAMs a + * re inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit en + * sures that, for mode register accesses generated by the uMCTL2 during th + * e automatic initialization routine and enabling of a particular DDR4 fea + * ture, separate A-side and B-side mode register accesses are generated. F + * or B-side mode register accesses, these bits are inverted within the uMC + * TL2 to compensate for this RDIMM inversion. Note: This has no effect on + * the address of any other memory accesses, or of software-driven mode reg + * ister accesses. - 1 - Implement output inversion for B-side DRAMs. - 0 - + * Do not implement output inversion for B-side DRAMs. +*/ #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT 2 -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK 0x00000004U +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT 2 +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK 0x00000004U -/*Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations). Some UDIMMs and DD - 4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits - re swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures t - at, for mode register accesses during the automatic initialization routine, these bits are swapped within the uMCTL2 to compe - sate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they ar - swapped during the automatic MRS access to enable/disable of a particular DDR4 feature. Note: This has no effect on the addr - ss of any other memory accesses, or of software-driven mode register accesses. This is not supported for mDDR, LPDDR2, LPDDR3 - or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, - hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ranks, implement address mirroring for MRS commands to d - ring initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring) - 0 - Do - not implement address mirroring*/ +/* +* Address Mirroring Enable (for multi-rank UDIMM implementations and multi + * -rank DDR4 RDIMM implementations). Some UDIMMs and DDR4 RDIMMs implement + * address mirroring for odd ranks, which means that the following address + * , bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, + * A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting t + * his bit ensures that, for mode register accesses during the automatic in + * itialization routine, these bits are swapped within the uMCTL2 to compen + * sate for this UDIMM/RDIMM swapping. In addition to the automatic initial + * ization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during th + * e automatic MRS access to enable/disable of a particular DDR4 feature. N + * ote: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. This is not supported for mDD + * R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 + * output of MRS for the odd ranks is same as BG0 because BG1 is invalid, + * hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ran + * ks, implement address mirroring for MRS commands to during initializatio + * n and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM imp + * lements address mirroring) - 0 - Do not implement address mirroring +*/ #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT 1 -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK 0x00000002U +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT 1 +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK 0x00000002U -/*Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only). This is not supported for mD - R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of software driven MR commands (via M - CTRL0/MRCTRL1), where software is responsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Send MRS commands t - each ranks seperately - 1 - (non-DDR4) Send all commands to even and odd ranks seperately - 0 - Do not stagger accesses*/ +/* +* Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIM + * M implementations only). This is not supported for mDDR, LPDDR2, LPDDR3 + * or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of + * software driven MR commands (via MRCTRL0/MRCTRL1), where software is re + * sponsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Se + * nd MRS commands to each ranks seperately - 1 - (non-DDR4) Send all comma + * nds to even and odd ranks seperately - 0 - Do not stagger accesses +*/ #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT 0 -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK 0x00000001U +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT 0 +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK 0x00000001U -/*Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e writes to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should c - nsider both PHY requirement and ODT requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for value of tphy_wrcs - ap) If CRC feature is enabled, should be increased by 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increa - ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be increased by 1. - ODT requirement: The value programmed - n this register takes care of the ODT switch off timing requirement when switching ranks during writes. For LPDDR4, the requi - ement is ODTLoff - ODTLon - BL/2 + 1 For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY requirement - or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and round it u - to the next integer.*/ +/* +* Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive writes to differ + * ent ranks. This is used to switch the delays in the PHY to match the ran + * k requirements. This value should consider both PHY requirement and ODT + * requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for v + * alue of tphy_wrcsgap) If CRC feature is enabled, should be increased by + * 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increas + * ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be inc + * reased by 1. - ODT requirement: The value programmed in this register ta + * kes care of the ODT switch off timing requirement when switching ranks d + * uring writes. For LPDDR4, the requirement is ODTLoff - ODTLon - BL/2 + 1 + * For configurations with MEMC_FREQ_RATIO=1, program this to the larger o + * f PHY requirement or ODT requirement. For configurations with MEMC_FREQ_ + * RATIO=2, program this to the larger value divided by two and round it up + * to the next integer. +*/ #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL 0x0000066F -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT 8 -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK 0x00000F00U +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL 0x0000066F +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT 8 +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK 0x00000F00U -/*Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e reads to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should co - sider both PHY requirement and ODT requirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for value of tphy_rdcsg - p) If read preamble is set to 2tCK(DDR4/LPDDR4 only), should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 onl - ), should be increased by 1. - ODT requirement: The value programmed in this register takes care of the ODT switch off timing - requirement when switching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY r - quirement or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and - ound it up to the next integer.*/ +/* +* Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive reads to differe + * nt ranks. This is used to switch the delays in the PHY to match the rank + * requirements. This value should consider both PHY requirement and ODT r + * equirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for va + * lue of tphy_rdcsgap) If read preamble is set to 2tCK(DDR4/LPDDR4 only), + * should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 only + * ), should be increased by 1. - ODT requirement: The value programmed in + * this register takes care of the ODT switch off timing requirement when s + * witching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, + * program this to the larger of PHY requirement or ODT requirement. For co + * nfigurations with MEMC_FREQ_RATIO=2, program this to the larger value di + * vided by two and round it up to the next integer. +*/ #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL 0x0000066F -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT 4 -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK 0x000000F0U +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL 0x0000066F +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT 4 +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK 0x000000F0U -/*Only present for multi-rank configurations. Background: Reads to the same rank can be performed back-to-back. Reads to differ - nt ranks require additional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is to avoid possible data bus content - on as well as to give PHY enough time to switch the delay when changing ranks. The uMCTL2 arbitrates for bus access on a cycl - -by-cycle basis; therefore after a read is scheduled, there are few clock cycles (determined by the value on RANKCTL.diff_ran - _rd_gap register) in which only reads from the same rank are eligible to be scheduled. This prevents reads from other ranks f - om having fair access to the data bus. This parameter represents the maximum number of reads that can be scheduled consecutiv - ly to the same rank. After this number is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by the scheduler to - llow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fair - ess. This feature can be DISABLED by setting this register to 0. When set to 0, the Controller will stay on the same rank as - ong as commands are available for it. Minimum programmable value is 0 (feature disabled) and maximum programmable value is 0x - . FOR PERFORMANCE ONLY.*/ +/* +* Only present for multi-rank configurations. Background: Reads to the sam + * e rank can be performed back-to-back. Reads to different ranks require a + * dditional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is + * to avoid possible data bus contention as well as to give PHY enough tim + * e to switch the delay when changing ranks. The uMCTL2 arbitrates for bus + * access on a cycle-by-cycle basis; therefore after a read is scheduled, + * there are few clock cycles (determined by the value on RANKCTL.diff_rank + * _rd_gap register) in which only reads from the same rank are eligible to + * be scheduled. This prevents reads from other ranks from having fair acc + * ess to the data bus. This parameter represents the maximum number of rea + * ds that can be scheduled consecutively to the same rank. After this numb + * er is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by + * the scheduler to allow all ranks a fair opportunity to be scheduled. Hig + * her numbers increase bandwidth utilization, lower numbers increase fairn + * ess. This feature can be DISABLED by setting this register to 0. When se + * t to 0, the Controller will stay on the same rank as long as commands ar + * e available for it. Minimum programmable value is 0 (feature disabled) a + * nd maximum programmable value is 0xF. FOR PERFORMANCE ONLY. +*/ #undef DDRC_RANKCTL_MAX_RANK_RD_DEFVAL #undef DDRC_RANKCTL_MAX_RANK_RD_SHIFT #undef DDRC_RANKCTL_MAX_RANK_RD_MASK -#define DDRC_RANKCTL_MAX_RANK_RD_DEFVAL 0x0000066F -#define DDRC_RANKCTL_MAX_RANK_RD_SHIFT 0 -#define DDRC_RANKCTL_MAX_RANK_RD_MASK 0x0000000FU +#define DDRC_RANKCTL_MAX_RANK_RD_DEFVAL 0x0000066F +#define DDRC_RANKCTL_MAX_RANK_RD_SHIFT 0 +#define DDRC_RANKCTL_MAX_RANK_RD_MASK 0x0000000FU -/*Minimum time between write and precharge to same bank. Unit: Clocks Specifications: WL + BL/2 + tWR = approximately 8 cycles - 15 ns = 14 clocks @400MHz and less for lower frequencies where: - WL = write latency - BL = burst length. This must match th - value programmed in the BL bit of the mode register to the SDRAM. BST (burst terminate) is not supported at present. - tWR = - Write recovery time. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this - arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For configurations - with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer value.*/ +/* +* Minimum time between write and precharge to same bank. Unit: Clocks Spec + * ifications: WL + BL/2 + tWR = approximately 8 cycles + 15 ns = 14 clocks + * @400MHz and less for lower frequencies where: - WL = write latency - BL + * = burst length. This must match the value programmed in the BL bit of t + * he mode register to the SDRAM. BST (burst terminate) is not supported at + * present. - tWR = Write recovery time. This comes directly from the SDRA + * M specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this p + * arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the + * above value by 2. No rounding up. For configurations with MEMC_FREQ_RAT + * IO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it u + * p to the next integer value. +*/ #undef DDRC_DRAMTMG0_WR2PRE_DEFVAL #undef DDRC_DRAMTMG0_WR2PRE_SHIFT #undef DDRC_DRAMTMG0_WR2PRE_MASK -#define DDRC_DRAMTMG0_WR2PRE_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_WR2PRE_SHIFT 24 -#define DDRC_DRAMTMG0_WR2PRE_MASK 0x7F000000U +#define DDRC_DRAMTMG0_WR2PRE_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_WR2PRE_SHIFT 24 +#define DDRC_DRAMTMG0_WR2PRE_MASK 0x7F000000U -/*tFAW Valid only when 8 or more banks(or banks x bank groups) are present. In 8-bank design, at most 4 banks must be activated - in a rolling window of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program this to (tFAW/2) and round up to next - nteger value. In a 4-bank design, set this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. Unit: Clocks*/ +/* +* tFAW Valid only when 8 or more banks(or banks x bank groups) are present + * . In 8-bank design, at most 4 banks must be activated in a rolling windo + * w of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tFAW/2) and round up to next integer value. In a 4-bank design, se + * t this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. + * Unit: Clocks +*/ #undef DDRC_DRAMTMG0_T_FAW_DEFVAL #undef DDRC_DRAMTMG0_T_FAW_SHIFT #undef DDRC_DRAMTMG0_T_FAW_MASK -#define DDRC_DRAMTMG0_T_FAW_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_FAW_SHIFT 16 -#define DDRC_DRAMTMG0_T_FAW_MASK 0x003F0000U +#define DDRC_DRAMTMG0_T_FAW_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_FAW_SHIFT 16 +#define DDRC_DRAMTMG0_T_FAW_MASK 0x003F0000U -/*tRAS(max): Maximum time between activate and precharge to same bank. This is the maximum time that a page can be kept open Mi - imum value of this register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO=2, program this to (tRAS(max)-1)/2 - No rounding up. Unit: Multiples of 1024 clocks.*/ +/* +* tRAS(max): Maximum time between activate and precharge to same bank. Thi + * s is the maximum time that a page can be kept open Minimum value of this + * register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO + * =2, program this to (tRAS(max)-1)/2. No rounding up. Unit: Multiples of + * 1024 clocks. +*/ #undef DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL #undef DDRC_DRAMTMG0_T_RAS_MAX_SHIFT #undef DDRC_DRAMTMG0_T_RAS_MAX_MASK -#define DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_RAS_MAX_SHIFT 8 -#define DDRC_DRAMTMG0_T_RAS_MAX_MASK 0x00007F00U +#define DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_RAS_MAX_SHIFT 8 +#define DDRC_DRAMTMG0_T_RAS_MAX_MASK 0x00007F00U -/*tRAS(min): Minimum time between activate and precharge to the same bank. For configurations with MEMC_FREQ_RATIO=2, 1T mode, - rogram this to tRAS(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, program this t - (tRAS(min)/2) and round it up to the next integer value. Unit: Clocks*/ +/* +* tRAS(min): Minimum time between activate and precharge to the same bank. + * For configurations with MEMC_FREQ_RATIO=2, 1T mode, program this to tRA + * S(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T + * mode or LPDDR4 mode, program this to (tRAS(min)/2) and round it up to th + * e next integer value. Unit: Clocks +*/ #undef DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL #undef DDRC_DRAMTMG0_T_RAS_MIN_SHIFT #undef DDRC_DRAMTMG0_T_RAS_MIN_MASK -#define DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_RAS_MIN_SHIFT 0 -#define DDRC_DRAMTMG0_T_RAS_MIN_MASK 0x0000003FU +#define DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_RAS_MIN_SHIFT 0 +#define DDRC_DRAMTMG0_T_RAS_MIN_MASK 0x0000003FU -/*tXP: Minimum time after power-down exit to any operation. For DDR3, this should be programmed to tXPDLL if slow powerdown exi - is selected in MR0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For configurations with MEMC_FREQ_RATIO=2, - rogram this to (tXP/2) and round it up to the next integer value. Units: Clocks*/ +/* +* tXP: Minimum time after power-down exit to any operation. For DDR3, this + * should be programmed to tXPDLL if slow powerdown exit is selected in MR + * 0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to (tXP/2) and round it + * up to the next integer value. Units: Clocks +*/ #undef DDRC_DRAMTMG1_T_XP_DEFVAL #undef DDRC_DRAMTMG1_T_XP_SHIFT #undef DDRC_DRAMTMG1_T_XP_MASK -#define DDRC_DRAMTMG1_T_XP_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_T_XP_SHIFT 16 -#define DDRC_DRAMTMG1_T_XP_MASK 0x001F0000U +#define DDRC_DRAMTMG1_T_XP_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_T_XP_SHIFT 16 +#define DDRC_DRAMTMG1_T_XP_MASK 0x001F0000U -/*tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL/2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - D - R4: Max of following two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 - LPDDR2: Depends on if it's LPDDR2 - S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + tRTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) - 4 - LPDDR4: BL - 2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For conf - gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer val - e. Unit: Clocks.*/ +/* +* tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL + * /2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - DDR4: Max of followi + * ng two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 + * - LPDDR2: Depends on if it's LPDDR2-S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + t + * RTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) + * - 4 - LPDDR4: BL/2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_ + * RATIO=2, 1T mode, divide the above value by 2. No rounding up. For confi + * gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the abo + * ve value by 2 and round it up to the next integer value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG1_RD2PRE_DEFVAL #undef DDRC_DRAMTMG1_RD2PRE_SHIFT #undef DDRC_DRAMTMG1_RD2PRE_MASK -#define DDRC_DRAMTMG1_RD2PRE_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_RD2PRE_SHIFT 8 -#define DDRC_DRAMTMG1_RD2PRE_MASK 0x00001F00U +#define DDRC_DRAMTMG1_RD2PRE_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_RD2PRE_SHIFT 8 +#define DDRC_DRAMTMG1_RD2PRE_MASK 0x00001F00U -/*tRC: Minimum time between activates to same bank. For configurations with MEMC_FREQ_RATIO=2, program this to (tRC/2) and roun - up to next integer value. Unit: Clocks.*/ +/* +* tRC: Minimum time between activates to same bank. For configurations wit + * h MEMC_FREQ_RATIO=2, program this to (tRC/2) and round up to next intege + * r value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG1_T_RC_DEFVAL #undef DDRC_DRAMTMG1_T_RC_SHIFT #undef DDRC_DRAMTMG1_T_RC_MASK -#define DDRC_DRAMTMG1_T_RC_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_T_RC_SHIFT 0 -#define DDRC_DRAMTMG1_T_RC_MASK 0x0000007FU +#define DDRC_DRAMTMG1_T_RC_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_T_RC_SHIFT 0 +#define DDRC_DRAMTMG1_T_RC_MASK 0x0000007FU -/*Set to WL Time from write command to write data on SDRAM interface. This must be set to WL. For mDDR, it should normally be s - t to 1. Note that, depending on the PHY, if using RDIMM, it may be necessary to use a value of WL + 1 to compensate for the e - tra cycle of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above - equation by 2, and round it up to next integer. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAININ - is set), as the DFI read and write latencies defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks*/ +/* +* Set to WL Time from write command to write data on SDRAM interface. This + * must be set to WL. For mDDR, it should normally be set to 1. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use a valu + * e of WL + 1 to compensate for the extra cycle of latency through the RDI + * MM For configurations with MEMC_FREQ_RATIO=2, divide the value calculate + * d using the above equation by 2, and round it up to next integer. This r + * egister field is not required for DDR2 and DDR3 (except if MEMC_TRAINING + * is set), as the DFI read and write latencies defined in DFITMG0 and DFI + * TMG1 are sufficient for those protocols Unit: clocks +*/ #undef DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL #undef DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT #undef DDRC_DRAMTMG2_WRITE_LATENCY_MASK -#define DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT 24 -#define DDRC_DRAMTMG2_WRITE_LATENCY_MASK 0x3F000000U +#define DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT 24 +#define DDRC_DRAMTMG2_WRITE_LATENCY_MASK 0x3F000000U -/*Set to RL Time from read command to read data on SDRAM interface. This must be set to RL. Note that, depending on the PHY, if - using RDIMM, it mat be necessary to use a value of RL + 1 to compensate for the extra cycle of latency through the RDIMM For - onfigurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next inte - er. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAINING is set), as the DFI read and write latenci - s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks*/ +/* +* Set to RL Time from read command to read data on SDRAM interface. This m + * ust be set to RL. Note that, depending on the PHY, if using RDIMM, it ma + * t be necessary to use a value of RL + 1 to compensate for the extra cycl + * e of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2 + * , divide the value calculated using the above equation by 2, and round i + * t up to next integer. This register field is not required for DDR2 and D + * DR3 (except if MEMC_TRAINING is set), as the DFI read and write latencie + * s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit + * : clocks +*/ #undef DDRC_DRAMTMG2_READ_LATENCY_DEFVAL #undef DDRC_DRAMTMG2_READ_LATENCY_SHIFT #undef DDRC_DRAMTMG2_READ_LATENCY_MASK -#define DDRC_DRAMTMG2_READ_LATENCY_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_READ_LATENCY_SHIFT 16 -#define DDRC_DRAMTMG2_READ_LATENCY_MASK 0x003F0000U +#define DDRC_DRAMTMG2_READ_LATENCY_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_READ_LATENCY_SHIFT 16 +#define DDRC_DRAMTMG2_READ_LATENCY_MASK 0x003F0000U -/*DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL LPDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL - PDDR4(DQ ODT is Disabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL LPDDR4(DQ ODT is Enabled) : RL + B - /2 + RU(tDQSCKmax/tCK) + RD_POSTAMBLE - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write command. Include - time for bus turnaround and all per-bank, per-rank, and global constraints. Unit: Clocks. Where: - WL = write latency - BL = - urst length. This must match the value programmed in the BL bit of the mode register to the SDRAM - RL = read latency = CAS l - tency - WR_PREAMBLE = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = read postamble. This is unique to L - DDR4. For LPDDR2/LPDDR3/LPDDR4, if derating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should be used. For conf - gurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer.*/ +/* +* DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL L + * PDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL LPDDR4(DQ ODT is Di + * sabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL + * LPDDR4(DQ ODT is Enabled) : RL + BL/2 + RU(tDQSCKmax/tCK) + RD_POSTAMBL + * E - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write + * command. Include time for bus turnaround and all per-bank, per-rank, an + * d global constraints. Unit: Clocks. Where: - WL = write latency - BL = b + * urst length. This must match the value programmed in the BL bit of the m + * ode register to the SDRAM - RL = read latency = CAS latency - WR_PREAMBL + * E = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = + * read postamble. This is unique to LPDDR4. For LPDDR2/LPDDR3/LPDDR4, if d + * erating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should + * be used. For configurations with MEMC_FREQ_RATIO=2, divide the value cal + * culated using the above equation by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG2_RD2WR_DEFVAL #undef DDRC_DRAMTMG2_RD2WR_SHIFT #undef DDRC_DRAMTMG2_RD2WR_MASK -#define DDRC_DRAMTMG2_RD2WR_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_RD2WR_SHIFT 8 -#define DDRC_DRAMTMG2_RD2WR_MASK 0x00003F00U +#define DDRC_DRAMTMG2_RD2WR_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_RD2WR_SHIFT 8 +#define DDRC_DRAMTMG2_RD2WR_MASK 0x00003F00U -/*DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimum time from write command to read command for same ba - k group. In others, minimum time from write command to read command. Includes time for bus turnaround, recovery times, and al - per-bank, per-rank, and global constraints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burs - length. This must match the value programmed in the BL bit of the mode register to the SDRAM - tWTR_L = internal write to re - d command delay for same bank group. This comes directly from the SDRAM specification. - tWTR = internal write to read comman - delay. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 operation. For configu - ations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer.*/ +/* +* DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimu + * m time from write command to read command for same bank group. In others + * , minimum time from write command to read command. Includes time for bus + * turnaround, recovery times, and all per-bank, per-rank, and global cons + * traints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity la + * tency - BL = burst length. This must match the value programmed in the B + * L bit of the mode register to the SDRAM - tWTR_L = internal write to rea + * d command delay for same bank group. This comes directly from the SDRAM + * specification. - tWTR = internal write to read command delay. This comes + * directly from the SDRAM specification. Add one extra cycle for LPDDR2/L + * PDDR3/LPDDR4 operation. For configurations with MEMC_FREQ_RATIO=2, divid + * e the value calculated using the above equation by 2, and round it up to + * next integer. +*/ #undef DDRC_DRAMTMG2_WR2RD_DEFVAL #undef DDRC_DRAMTMG2_WR2RD_SHIFT #undef DDRC_DRAMTMG2_WR2RD_MASK -#define DDRC_DRAMTMG2_WR2RD_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_WR2RD_SHIFT 0 -#define DDRC_DRAMTMG2_WR2RD_MASK 0x0000003FU +#define DDRC_DRAMTMG2_WR2RD_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_WR2RD_SHIFT 0 +#define DDRC_DRAMTMG2_WR2RD_MASK 0x0000003FU -/*Time to wait after a mode register write or read (MRW or MRR). Present only in designs configured to support LPDDR2, LPDDR3 o - LPDDR4. LPDDR2 typically requires value of 5. LPDDR3 typically requires value of 10. LPDDR4: Set this to the larger of tMRW - nd tMRWCKEL. For LPDDR2, this register is used for the time from a MRW/MRR to all other commands. For LDPDR3, this register i - used for the time from a MRW/MRR to a MRW/MRR.*/ +/* +* Time to wait after a mode register write or read (MRW or MRR). Present o + * nly in designs configured to support LPDDR2, LPDDR3 or LPDDR4. LPDDR2 ty + * pically requires value of 5. LPDDR3 typically requires value of 10. LPDD + * R4: Set this to the larger of tMRW and tMRWCKEL. For LPDDR2, this regist + * er is used for the time from a MRW/MRR to all other commands. For LDPDR3 + * , this register is used for the time from a MRW/MRR to a MRW/MRR. +*/ #undef DDRC_DRAMTMG3_T_MRW_DEFVAL #undef DDRC_DRAMTMG3_T_MRW_SHIFT #undef DDRC_DRAMTMG3_T_MRW_MASK -#define DDRC_DRAMTMG3_T_MRW_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MRW_SHIFT 20 -#define DDRC_DRAMTMG3_T_MRW_MASK 0x3FF00000U +#define DDRC_DRAMTMG3_T_MRW_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MRW_SHIFT 20 +#define DDRC_DRAMTMG3_T_MRW_MASK 0x3FF00000U -/*tMRD: Cycles to wait after a mode register write or read. Depending on the connected SDRAM, tMRD represents: DDR2/mDDR: Time - rom MRS to any command DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Time from MRS to non-MRS command For c - nfigurations with MEMC_FREQ_RATIO=2, program this to (tMRD/2) and round it up to the next integer value. If C/A parity for DD - 4 is used, set to tMRD_PAR(tMOD+PL) instead.*/ +/* +* tMRD: Cycles to wait after a mode register write or read. Depending on t + * he connected SDRAM, tMRD represents: DDR2/mDDR: Time from MRS to any com + * mand DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Tim + * e from MRS to non-MRS command For configurations with MEMC_FREQ_RATIO=2, + * program this to (tMRD/2) and round it up to the next integer value. If + * C/A parity for DDR4 is used, set to tMRD_PAR(tMOD+PL) instead. +*/ #undef DDRC_DRAMTMG3_T_MRD_DEFVAL #undef DDRC_DRAMTMG3_T_MRD_SHIFT #undef DDRC_DRAMTMG3_T_MRD_MASK -#define DDRC_DRAMTMG3_T_MRD_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MRD_SHIFT 12 -#define DDRC_DRAMTMG3_T_MRD_MASK 0x0003F000U +#define DDRC_DRAMTMG3_T_MRD_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MRD_SHIFT 12 +#define DDRC_DRAMTMG3_T_MRD_MASK 0x0003F000U -/*tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode command and following non-load mode command. If C/A pari - y for DDR4 is used, set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or tMOD/2 (rounded up to next integer - if MEMC_FREQ_RATIO=2. Note that if using RDIMM, depending on the PHY, it may be necessary to use a value of tMOD + 1 or (tMO - + 1)/2 to compensate for the extra cycle of latency applied to mode register writes by the RDIMM chip.*/ +/* +* tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode com + * mand and following non-load mode command. If C/A parity for DDR4 is used + * , set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or + * tMOD/2 (rounded up to next integer) if MEMC_FREQ_RATIO=2. Note that if + * using RDIMM, depending on the PHY, it may be necessary to use a value of + * tMOD + 1 or (tMOD + 1)/2 to compensate for the extra cycle of latency a + * pplied to mode register writes by the RDIMM chip. +*/ #undef DDRC_DRAMTMG3_T_MOD_DEFVAL #undef DDRC_DRAMTMG3_T_MOD_SHIFT #undef DDRC_DRAMTMG3_T_MOD_MASK -#define DDRC_DRAMTMG3_T_MOD_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MOD_SHIFT 0 -#define DDRC_DRAMTMG3_T_MOD_MASK 0x000003FFU +#define DDRC_DRAMTMG3_T_MOD_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MOD_SHIFT 0 +#define DDRC_DRAMTMG3_T_MOD_MASK 0x000003FFU -/*tRCD - tAL: Minimum time from activate to read or write command to same bank. For configurations with MEMC_FREQ_RATIO=2, prog - am this to ((tRCD - tAL)/2) and round it up to the next integer value. Minimum value allowed for this register is 1, which im - lies minimum (tRCD - tAL) value to be 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks.*/ +/* +* tRCD - tAL: Minimum time from activate to read or write command to same + * bank. For configurations with MEMC_FREQ_RATIO=2, program this to ((tRCD + * - tAL)/2) and round it up to the next integer value. Minimum value allow + * ed for this register is 1, which implies minimum (tRCD - tAL) value to b + * e 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RCD_DEFVAL #undef DDRC_DRAMTMG4_T_RCD_SHIFT #undef DDRC_DRAMTMG4_T_RCD_MASK -#define DDRC_DRAMTMG4_T_RCD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RCD_SHIFT 24 -#define DDRC_DRAMTMG4_T_RCD_MASK 0x1F000000U +#define DDRC_DRAMTMG4_T_RCD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RCD_SHIFT 24 +#define DDRC_DRAMTMG4_T_RCD_MASK 0x1F000000U -/*DDR4: tCCD_L: This is the minimum time between two reads or two writes for same bank group. Others: tCCD: This is the minimum - time between two reads or two writes. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_L/2 or tCCD/2) and rou - d it up to the next integer value. Unit: clocks.*/ +/* +* DDR4: tCCD_L: This is the minimum time between two reads or two writes f + * or same bank group. Others: tCCD: This is the minimum time between two r + * eads or two writes. For configurations with MEMC_FREQ_RATIO=2, program t + * his to (tCCD_L/2 or tCCD/2) and round it up to the next integer value. U + * nit: clocks. +*/ #undef DDRC_DRAMTMG4_T_CCD_DEFVAL #undef DDRC_DRAMTMG4_T_CCD_SHIFT #undef DDRC_DRAMTMG4_T_CCD_MASK -#define DDRC_DRAMTMG4_T_CCD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_CCD_SHIFT 16 -#define DDRC_DRAMTMG4_T_CCD_MASK 0x000F0000U +#define DDRC_DRAMTMG4_T_CCD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_CCD_SHIFT 16 +#define DDRC_DRAMTMG4_T_CCD_MASK 0x000F0000U -/*DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' for same bank group. Others: tRRD: Minimum time betwee - activates from bank 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program this to (tRRD_L/2 or tRRD/2) and round - it up to the next integer value. Unit: Clocks.*/ +/* +* DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' f + * or same bank group. Others: tRRD: Minimum time between activates from ba + * nk 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tRRD_L/2 or tRRD/2) and round it up to the next integer value. Uni + * t: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RRD_DEFVAL #undef DDRC_DRAMTMG4_T_RRD_SHIFT #undef DDRC_DRAMTMG4_T_RRD_MASK -#define DDRC_DRAMTMG4_T_RRD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RRD_SHIFT 8 -#define DDRC_DRAMTMG4_T_RRD_MASK 0x00000F00U +#define DDRC_DRAMTMG4_T_RRD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RRD_SHIFT 8 +#define DDRC_DRAMTMG4_T_RRD_MASK 0x00000F00U -/*tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ_RATIO=1 configurations, t_rp should be set to RoundU - (tRP/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(tRP/tCK)/2) + 1. For MEMC_FREQ_RATIO - 2 configurations in LPDDR4, t_rp should be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks.*/ +/* +* tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ + * _RATIO=1 configurations, t_rp should be set to RoundUp(tRP/tCK). For MEM + * C_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(t + * RP/tCK)/2) + 1. For MEMC_FREQ_RATIO=2 configurations in LPDDR4, t_rp sho + * uld be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RP_DEFVAL #undef DDRC_DRAMTMG4_T_RP_SHIFT #undef DDRC_DRAMTMG4_T_RP_MASK -#define DDRC_DRAMTMG4_T_RP_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RP_SHIFT 0 -#define DDRC_DRAMTMG4_T_RP_MASK 0x0000001FU +#define DDRC_DRAMTMG4_T_RP_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RP_SHIFT 0 +#define DDRC_DRAMTMG4_T_RP_MASK 0x0000001FU -/*This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stab - e time before SRX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEH - DDR2: 1 - DDR3: tCKSRX - DDR4: - tCKSRX For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next in - eger.*/ +/* +* This is the time before Self Refresh Exit that CK is maintained as a val + * id clock before issuing SRX. Specifies the clock stable time before SRX. + * Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCK + * EH - DDR2: 1 - DDR3: tCKSRX - DDR4: tCKSRX For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKSRX_DEFVAL #undef DDRC_DRAMTMG5_T_CKSRX_SHIFT #undef DDRC_DRAMTMG5_T_CKSRX_MASK -#define DDRC_DRAMTMG5_T_CKSRX_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKSRX_SHIFT 24 -#define DDRC_DRAMTMG5_T_CKSRX_MASK 0x0F000000U +#define DDRC_DRAMTMG5_T_CKSRX_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKSRX_SHIFT 24 +#define DDRC_DRAMTMG5_T_CKSRX_MASK 0x0F000000U -/*This is the time after Self Refresh Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay afte - SRE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 - DDR3: max (10 ns, 5 tCK) - DDR4: - ax (10 ns, 5 tCK) For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up - to next integer.*/ +/* +* This is the time after Self Refresh Down Entry that CK is maintained as + * a valid clock. Specifies the clock disable delay after SRE. Recommended + * settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 + * - DDR3: max (10 ns, 5 tCK) - DDR4: max (10 ns, 5 tCK) For configurations + * with MEMC_FREQ_RATIO=2, program this to recommended value divided by tw + * o and round it up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKSRE_DEFVAL #undef DDRC_DRAMTMG5_T_CKSRE_SHIFT #undef DDRC_DRAMTMG5_T_CKSRE_MASK -#define DDRC_DRAMTMG5_T_CKSRE_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKSRE_SHIFT 16 -#define DDRC_DRAMTMG5_T_CKSRE_MASK 0x000F0000U +#define DDRC_DRAMTMG5_T_CKSRE_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKSRE_SHIFT 16 +#define DDRC_DRAMTMG5_T_CKSRE_MASK 0x000F0000U -/*Minimum CKE low width for Self refresh or Self refresh power down entry to exit timing in memory clock cycles. Recommended se - tings: - mDDR: tRFC - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: tCKE - DDR3: tCKE + 1 - DDR4: tCKE - 1 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next intege - .*/ +/* +* Minimum CKE low width for Self refresh or Self refresh power down entry + * to exit timing in memory clock cycles. Recommended settings: - mDDR: tRF + * C - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: + * tCKE - DDR3: tCKE + 1 - DDR4: tCKE + 1 For configurations with MEMC_FREQ + * _RATIO=2, program this to recommended value divided by two and round it + * up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKESR_DEFVAL #undef DDRC_DRAMTMG5_T_CKESR_SHIFT #undef DDRC_DRAMTMG5_T_CKESR_MASK -#define DDRC_DRAMTMG5_T_CKESR_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKESR_SHIFT 8 -#define DDRC_DRAMTMG5_T_CKESR_MASK 0x00003F00U +#define DDRC_DRAMTMG5_T_CKESR_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKESR_SHIFT 8 +#define DDRC_DRAMTMG5_T_CKESR_MASK 0x00003F00U -/*Minimum number of cycles of CKE HIGH/LOW during power-down and self refresh. - LPDDR2/LPDDR3 mode: Set this to the larger of - CKE or tCKESR - LPDDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/non-LPDDR3/non-LPDDR4 designs: Set - his to tCKE value. For configurations with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and round it up to th - next integer value. Unit: Clocks.*/ +/* +* Minimum number of cycles of CKE HIGH/LOW during power-down and self refr + * esh. - LPDDR2/LPDDR3 mode: Set this to the larger of tCKE or tCKESR - LP + * DDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/ + * non-LPDDR3/non-LPDDR4 designs: Set this to tCKE value. For configuration + * s with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and + * round it up to the next integer value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG5_T_CKE_DEFVAL #undef DDRC_DRAMTMG5_T_CKE_SHIFT #undef DDRC_DRAMTMG5_T_CKE_MASK -#define DDRC_DRAMTMG5_T_CKE_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKE_SHIFT 0 -#define DDRC_DRAMTMG5_T_CKE_MASK 0x0000001FU +#define DDRC_DRAMTMG5_T_CKE_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKE_SHIFT 0 +#define DDRC_DRAMTMG5_T_CKE_MASK 0x0000001FU -/*This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after - PDE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, program this to recom - ended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3 - devices.*/ +/* +* This is the time after Deep Power Down Entry that CK is maintained as a + * valid clock. Specifies the clock disable delay after DPDE. Recommended s + * ettings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. This is only present for designs supporting mDDR + * or LPDDR2/LPDDR3 devices. +*/ #undef DDRC_DRAMTMG6_T_CKDPDE_DEFVAL #undef DDRC_DRAMTMG6_T_CKDPDE_SHIFT #undef DDRC_DRAMTMG6_T_CKDPDE_MASK -#define DDRC_DRAMTMG6_T_CKDPDE_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKDPDE_SHIFT 24 -#define DDRC_DRAMTMG6_T_CKDPDE_MASK 0x0F000000U +#define DDRC_DRAMTMG6_T_CKDPDE_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKDPDE_SHIFT 24 +#define DDRC_DRAMTMG6_T_CKDPDE_MASK 0x0F000000U -/*This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock - table time before DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, pr - gram this to recommended value divided by two and round it up to next integer. This is only present for designs supporting mD - R or LPDDR2 devices.*/ +/* +* This is the time before Deep Power Down Exit that CK is maintained as a + * valid clock before issuing DPDX. Specifies the clock stable time before + * DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For config + * urations with MEMC_FREQ_RATIO=2, program this to recommended value divid + * ed by two and round it up to next integer. This is only present for desi + * gns supporting mDDR or LPDDR2 devices. +*/ #undef DDRC_DRAMTMG6_T_CKDPDX_DEFVAL #undef DDRC_DRAMTMG6_T_CKDPDX_SHIFT #undef DDRC_DRAMTMG6_T_CKDPDX_MASK -#define DDRC_DRAMTMG6_T_CKDPDX_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKDPDX_SHIFT 16 -#define DDRC_DRAMTMG6_T_CKDPDX_MASK 0x000F0000U +#define DDRC_DRAMTMG6_T_CKDPDX_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKDPDX_SHIFT 16 +#define DDRC_DRAMTMG6_T_CKDPDX_MASK 0x000F0000U -/*This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing Clock Stop Exit. Specifies the - lock stable time before next command after Clock Stop Exit. Recommended settings: - mDDR: 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + - 2 - LPDDR4: tXP + 2 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it - p to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time before Clock Stop Exit that CK is maintained as a valid + * clock before issuing Clock Stop Exit. Specifies the clock stable time b + * efore next command after Clock Stop Exit. Recommended settings: - mDDR: + * 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + 2 - LPDDR4: tXP + 2 For configuratio + * ns with MEMC_FREQ_RATIO=2, program this to recommended value divided by + * two and round it up to next integer. This is only present for designs su + * pporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG6_T_CKCSX_DEFVAL #undef DDRC_DRAMTMG6_T_CKCSX_SHIFT #undef DDRC_DRAMTMG6_T_CKCSX_MASK -#define DDRC_DRAMTMG6_T_CKCSX_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKCSX_SHIFT 0 -#define DDRC_DRAMTMG6_T_CKCSX_MASK 0x0000000FU +#define DDRC_DRAMTMG6_T_CKCSX_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKCSX_SHIFT 0 +#define DDRC_DRAMTMG6_T_CKCSX_MASK 0x0000000FU -/*This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. - ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configurations with MEMC_FREQ_RATIO=2, program t - is to recommended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or L - DDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time after Power Down Entry that CK is maintained as a valid + * clock. Specifies the clock disable delay after PDE. Recommended setting + * s: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configuration + * s with MEMC_FREQ_RATIO=2, program this to recommended value divided by t + * wo and round it up to next integer. This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG7_T_CKPDE_DEFVAL #undef DDRC_DRAMTMG7_T_CKPDE_SHIFT #undef DDRC_DRAMTMG7_T_CKPDE_MASK -#define DDRC_DRAMTMG7_T_CKPDE_DEFVAL 0x00000202 -#define DDRC_DRAMTMG7_T_CKPDE_SHIFT 8 -#define DDRC_DRAMTMG7_T_CKPDE_MASK 0x00000F00U +#define DDRC_DRAMTMG7_T_CKPDE_DEFVAL 0x00000202 +#define DDRC_DRAMTMG7_T_CKPDE_SHIFT 8 +#define DDRC_DRAMTMG7_T_CKPDE_MASK 0x00000F00U -/*This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable - time before PDX. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For configurations with MEMC_FREQ_RATIO= - , program this to recommended value divided by two and round it up to next integer. This is only present for designs supporti - g mDDR or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time before Power Down Exit that CK is maintained as a valid + * clock before issuing PDX. Specifies the clock stable time before PDX. R + * ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For c + * onfigurations with MEMC_FREQ_RATIO=2, program this to recommended value + * divided by two and round it up to next integer. This is only present for + * designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG7_T_CKPDX_DEFVAL #undef DDRC_DRAMTMG7_T_CKPDX_SHIFT #undef DDRC_DRAMTMG7_T_CKPDX_MASK -#define DDRC_DRAMTMG7_T_CKPDX_DEFVAL 0x00000202 -#define DDRC_DRAMTMG7_T_CKPDX_SHIFT 0 -#define DDRC_DRAMTMG7_T_CKPDX_MASK 0x0000000FU +#define DDRC_DRAMTMG7_T_CKPDX_DEFVAL 0x00000202 +#define DDRC_DRAMTMG7_T_CKPDX_SHIFT 0 +#define DDRC_DRAMTMG7_T_CKPDX_MASK 0x0000000FU -/*tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and Geardown mode). For configurations with MEMC_FREQ_RAT - O=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Thi - is applicable to only ZQCL/ZQCS commands. Note: Ensure this is less than or equal to t_xs_x32.*/ +/* +* tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and + * Geardown mode). For configurations with MEMC_FREQ_RATIO=2, program this + * to the above value divided by 2 and round up to next integer value. Unit + * : Multiples of 32 clocks. Note: This is applicable to only ZQCL/ZQCS com + * mands. Note: Ensure this is less than or equal to t_xs_x32. +*/ #undef DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_FAST_X32_MASK -#define DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT 24 -#define DDRC_DRAMTMG8_T_XS_FAST_X32_MASK 0x7F000000U +#define DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT 24 +#define DDRC_DRAMTMG8_T_XS_FAST_X32_MASK 0x7F000000U -/*tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in Self Refresh Abort. For configurations with MEMC_FREQ_ - ATIO=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: - nsure this is less than or equal to t_xs_x32.*/ +/* +* tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in S + * elf Refresh Abort. For configurations with MEMC_FREQ_RATIO=2, program th + * is to the above value divided by 2 and round up to next integer value. U + * nit: Multiples of 32 clocks. Note: Ensure this is less than or equal to + * t_xs_x32. +*/ #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT 16 -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK 0x007F0000U +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT 16 +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK 0x007F0000U -/*tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - bove value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DR4 SDRAMs.*/ +/* +* tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For config + * urations with MEMC_FREQ_RATIO=2, program this to the above value divided + * by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. +*/ #undef DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_DLL_X32_MASK -#define DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT 8 -#define DDRC_DRAMTMG8_T_XS_DLL_X32_MASK 0x00007F00U +#define DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT 8 +#define DDRC_DRAMTMG8_T_XS_DLL_X32_MASK 0x00007F00U -/*tXS: Exit Self Refresh to commands not requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DDR4 SDRAMs.*/ +/* +* tXS: Exit Self Refresh to commands not requiring a locked DLL. For confi + * gurations with MEMC_FREQ_RATIO=2, program this to the above value divide + * d by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. +*/ #undef DDRC_DRAMTMG8_T_XS_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_X32_MASK -#define DDRC_DRAMTMG8_T_XS_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_X32_SHIFT 0 -#define DDRC_DRAMTMG8_T_XS_X32_MASK 0x0000007FU +#define DDRC_DRAMTMG8_T_XS_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_X32_SHIFT 0 +#define DDRC_DRAMTMG8_T_XS_X32_MASK 0x0000007FU -/*DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present only with MEMC_FREQ_RATIO=2*/ +/* +* DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present o + * nly with MEMC_FREQ_RATIO=2 +*/ #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT 30 -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK 0x40000000U +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT 30 +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK 0x40000000U -/*tCCD_S: This is the minimum time between two reads or two writes for different bank group. For bank switching (from bank 'a' - o bank 'b'), the minimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_S/2) and ro - nd it up to the next integer value. Present only in designs configured to support DDR4. Unit: clocks.*/ +/* +* tCCD_S: This is the minimum time between two reads or two writes for dif + * ferent bank group. For bank switching (from bank 'a' to bank 'b'), the m + * inimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2 + * , program this to (tCCD_S/2) and round it up to the next integer value. + * Present only in designs configured to support DDR4. Unit: clocks. +*/ #undef DDRC_DRAMTMG9_T_CCD_S_DEFVAL #undef DDRC_DRAMTMG9_T_CCD_S_SHIFT #undef DDRC_DRAMTMG9_T_CCD_S_MASK -#define DDRC_DRAMTMG9_T_CCD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_T_CCD_S_SHIFT 16 -#define DDRC_DRAMTMG9_T_CCD_S_MASK 0x00070000U +#define DDRC_DRAMTMG9_T_CCD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_T_CCD_S_SHIFT 16 +#define DDRC_DRAMTMG9_T_CCD_S_MASK 0x00070000U -/*tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for different bank group. For configurations with MEMC_FREQ_ - ATIO=2, program this to (tRRD_S/2) and round it up to the next integer value. Present only in designs configured to support D - R4. Unit: Clocks.*/ +/* +* tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for dif + * ferent bank group. For configurations with MEMC_FREQ_RATIO=2, program th + * is to (tRRD_S/2) and round it up to the next integer value. Present only + * in designs configured to support DDR4. Unit: Clocks. +*/ #undef DDRC_DRAMTMG9_T_RRD_S_DEFVAL #undef DDRC_DRAMTMG9_T_RRD_S_SHIFT #undef DDRC_DRAMTMG9_T_RRD_S_MASK -#define DDRC_DRAMTMG9_T_RRD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_T_RRD_S_SHIFT 8 -#define DDRC_DRAMTMG9_T_RRD_S_MASK 0x00000F00U +#define DDRC_DRAMTMG9_T_RRD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_T_RRD_S_SHIFT 8 +#define DDRC_DRAMTMG9_T_RRD_S_MASK 0x00000F00U -/*CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command for different bank group. Includes time for bus turn - round, recovery times, and all per-bank, per-rank, and global constraints. Present only in designs configured to support DDR4 - Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burst length. This must match the value programm - d in the BL bit of the mode register to the SDRAM - tWTR_S = internal write to read command delay for different bank group. T - is comes directly from the SDRAM specification. For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using - he above equation by 2, and round it up to next integer.*/ +/* +* CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command + * for different bank group. Includes time for bus turnaround, recovery ti + * mes, and all per-bank, per-rank, and global constraints. Present only in + * designs configured to support DDR4. Unit: Clocks. Where: - CWL = CAS wr + * ite latency - PL = Parity latency - BL = burst length. This must match t + * he value programmed in the BL bit of the mode register to the SDRAM - tW + * TR_S = internal write to read command delay for different bank group. Th + * is comes directly from the SDRAM specification. For configurations with + * MEMC_FREQ_RATIO=2, divide the value calculated using the above equation + * by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG9_WR2RD_S_DEFVAL #undef DDRC_DRAMTMG9_WR2RD_S_SHIFT #undef DDRC_DRAMTMG9_WR2RD_S_MASK -#define DDRC_DRAMTMG9_WR2RD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_WR2RD_S_SHIFT 0 -#define DDRC_DRAMTMG9_WR2RD_S_MASK 0x0000003FU +#define DDRC_DRAMTMG9_WR2RD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_WR2RD_S_SHIFT 0 +#define DDRC_DRAMTMG9_WR2RD_S_MASK 0x0000003FU -/*tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program - this to (tXMPDLL/2) and round it up to the next integer value. Present only in designs configured to support DDR4. Unit: Mult - ples of 32 clocks.*/ +/* +* tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DL + * L. For configurations with MEMC_FREQ_RATIO=2, program this to (tXMPDLL/2 + * ) and round it up to the next integer value. Present only in designs con + * figured to support DDR4. Unit: Multiples of 32 clocks. +*/ #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT 24 -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK 0x7F000000U +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT 24 +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK 0x7F000000U -/*tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For configurations with MEMC_FREQ_RATIO=2, program this t - RoundUp(tMPX_LH/2)+1. Present only in designs configured to support DDR4. Unit: clocks.*/ +/* +* tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For + * configurations with MEMC_FREQ_RATIO=2, program this to RoundUp(tMPX_LH/2 + * )+1. Present only in designs configured to support DDR4. Unit: clocks. +*/ #undef DDRC_DRAMTMG11_T_MPX_LH_DEFVAL #undef DDRC_DRAMTMG11_T_MPX_LH_SHIFT #undef DDRC_DRAMTMG11_T_MPX_LH_MASK -#define DDRC_DRAMTMG11_T_MPX_LH_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_MPX_LH_SHIFT 16 -#define DDRC_DRAMTMG11_T_MPX_LH_MASK 0x001F0000U +#define DDRC_DRAMTMG11_T_MPX_LH_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_MPX_LH_SHIFT 16 +#define DDRC_DRAMTMG11_T_MPX_LH_MASK 0x001F0000U -/*tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_FREQ_RATIO=2, program this to (tMPX_S/2) and round it - up to the next integer value. Present only in designs configured to support DDR4. Unit: Clocks.*/ +/* +* tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_ + * FREQ_RATIO=2, program this to (tMPX_S/2) and round it up to the next int + * eger value. Present only in designs configured to support DDR4. Unit: Cl + * ocks. +*/ #undef DDRC_DRAMTMG11_T_MPX_S_DEFVAL #undef DDRC_DRAMTMG11_T_MPX_S_SHIFT #undef DDRC_DRAMTMG11_T_MPX_S_MASK -#define DDRC_DRAMTMG11_T_MPX_S_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_MPX_S_SHIFT 8 -#define DDRC_DRAMTMG11_T_MPX_S_MASK 0x00000300U +#define DDRC_DRAMTMG11_T_MPX_S_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_MPX_S_SHIFT 8 +#define DDRC_DRAMTMG11_T_MPX_S_MASK 0x00000300U -/*tCKMPE: Minimum valid clock requirement after MPSM entry. Present only in designs configured to support DDR4. Unit: Clocks. F - r configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next i - teger.*/ +/* +* tCKMPE: Minimum valid clock requirement after MPSM entry. Present only i + * n designs configured to support DDR4. Unit: Clocks. For configurations w + * ith MEMC_FREQ_RATIO=2, divide the value calculated using the above equat + * ion by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG11_T_CKMPE_DEFVAL #undef DDRC_DRAMTMG11_T_CKMPE_SHIFT #undef DDRC_DRAMTMG11_T_CKMPE_MASK -#define DDRC_DRAMTMG11_T_CKMPE_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_CKMPE_SHIFT 0 -#define DDRC_DRAMTMG11_T_CKMPE_MASK 0x0000001FU +#define DDRC_DRAMTMG11_T_CKMPE_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_CKMPE_SHIFT 0 +#define DDRC_DRAMTMG11_T_CKMPE_MASK 0x0000001FU -/*tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larger of tESCKE or tCMDCKE For configurations with MEMC_ - REQ_RATIO=2, program this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer value.*/ +/* +* tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larg + * er of tESCKE or tCMDCKE For configurations with MEMC_FREQ_RATIO=2, progr + * am this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer valu + * e. +*/ #undef DDRC_DRAMTMG12_T_CMDCKE_DEFVAL #undef DDRC_DRAMTMG12_T_CMDCKE_SHIFT #undef DDRC_DRAMTMG12_T_CMDCKE_MASK -#define DDRC_DRAMTMG12_T_CMDCKE_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_CMDCKE_SHIFT 16 -#define DDRC_DRAMTMG12_T_CMDCKE_MASK 0x00030000U +#define DDRC_DRAMTMG12_T_CMDCKE_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_CMDCKE_SHIFT 16 +#define DDRC_DRAMTMG12_T_CMDCKE_MASK 0x00030000U -/*tCKEHCMD: Valid command requirement after CKE input HIGH. For configurations with MEMC_FREQ_RATIO=2, program this to (tCKEHCM - /2) and round it up to next integer value.*/ +/* +* tCKEHCMD: Valid command requirement after CKE input HIGH. For configurat + * ions with MEMC_FREQ_RATIO=2, program this to (tCKEHCMD/2) and round it u + * p to next integer value. +*/ #undef DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL #undef DDRC_DRAMTMG12_T_CKEHCMD_SHIFT #undef DDRC_DRAMTMG12_T_CKEHCMD_MASK -#define DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_CKEHCMD_SHIFT 8 -#define DDRC_DRAMTMG12_T_CKEHCMD_MASK 0x00000F00U +#define DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_CKEHCMD_SHIFT 8 +#define DDRC_DRAMTMG12_T_CKEHCMD_MASK 0x00000F00U -/*tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. For configurations with MEMC_FREQ_RATIO=2, program th - s to (tMRD_PDA/2) and round it up to next integer value.*/ +/* +* tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. + * For configurations with MEMC_FREQ_RATIO=2, program this to (tMRD_PDA/2) + * and round it up to next integer value. +*/ #undef DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL #undef DDRC_DRAMTMG12_T_MRD_PDA_SHIFT #undef DDRC_DRAMTMG12_T_MRD_PDA_MASK -#define DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_MRD_PDA_SHIFT 0 -#define DDRC_DRAMTMG12_T_MRD_PDA_MASK 0x0000001FU +#define DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_MRD_PDA_SHIFT 0 +#define DDRC_DRAMTMG12_T_MRD_PDA_MASK 0x0000001FU -/*- 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Register DBGCMD.zq_calib_short can be used instead to is - ue ZQ calibration request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibration) commands based on ZQCTL1.t_zq_s - ort_interval_x1024. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Reg + * ister DBGCMD.zq_calib_short can be used instead to issue ZQ calibration + * request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibrati + * on) commands based on ZQCTL1.t_zq_short_interval_x1024. This is only pre + * sent for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT 31 -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK 0x80000000U +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT 31 +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK 0x80000000U -/*- 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Powerdown exit. Only applicable when run in DDR3 - or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Power - own exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present for designs suppo - ting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refres + * h/SR-Powerdown exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 + * or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibratio + * n) command at Self-Refresh/SR-Powerdown exit. Only applicable when run i + * n DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present + * for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT 30 -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK 0x40000000U +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT 30 +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK 0x40000000U -/*- 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQCL/ZQCS/MPC(ZQ calibration) commands are sent to one r - nk at a time with tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that commands to different ranks do not ov - rlap. - 0 - ZQ resistor is not shared. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQC + * L/ZQCS/MPC(ZQ calibration) commands are sent to one rank at a time with + * tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that co + * mmands to different ranks do not overlap. - 0 - ZQ resistor is not share + * d. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR + * 3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT 29 -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK 0x20000000U +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT 29 +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK 0x20000000U -/*- 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. - 0 - Enable - ssuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. This is only present for des - gns supporting DDR4 devices.*/ +/* +* - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. + * Only applicable when run in DDR4 mode. - 0 - Enable issuing of ZQCL com + * mand at Maximum Power Saving Mode exit. Only applicable when run in DDR4 + * mode. This is only present for designs supporting DDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT 28 -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK 0x10000000U +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT 28 +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK 0x10000000U -/*tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Number of cycles of NOP required after a ZQCL (ZQ calibrat - on long)/MPC(ZQ Start) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2: DDR3/DDR4: program this to tZQo - er/2 and round it up to the next integer value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to the next integer va - ue. LPDDR4: program this to tZQCAL/2 and round it up to the next integer value. Unit: Clock cycles. This is only present for - esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Numbe + * r of cycles of NOP required after a ZQCL (ZQ calibration long)/MPC(ZQ St + * art) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO + * =2: DDR3/DDR4: program this to tZQoper/2 and round it up to the next int + * eger value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to th + * e next integer value. LPDDR4: program this to tZQCAL/2 and round it up t + * o the next integer value. Unit: Clock cycles. This is only present for d + * esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT 16 -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK 0x07FF0000U +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT 16 +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK 0x07FF0000U -/*tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of NOP required after a ZQCS (ZQ calibration short)/MPC - ZQ Latch) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program this to tZQCS/2 and round it up to t - e next integer value. Unit: Clock cycles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devic - s.*/ +/* +* tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of + * NOP required after a ZQCS (ZQ calibration short)/MPC(ZQ Latch) command + * is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program t + * his to tZQCS/2 and round it up to the next integer value. Unit: Clock cy + * cles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LP + * DDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT 0 -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK 0x000003FFU +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT 0 +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK 0x000003FFU -/*tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibration Reset) command is issued to SDRAM. For configurati - ns with MEMC_FREQ_RATIO=2, program this to tZQReset/2 and round it up to the next integer value. Unit: Clock cycles. This is - nly present for designs supporting LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibrati + * on Reset) command is issued to SDRAM. For configurations with MEMC_FREQ_ + * RATIO=2, program this to tZQReset/2 and round it up to the next integer + * value. Unit: Clock cycles. This is only present for designs supporting L + * PDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL 0x02000100 -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT 20 -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK 0x3FF00000U +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL 0x02000100 +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT 20 +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK 0x3FF00000U -/*Average interval to wait between automatically issuing ZQCS (ZQ calibration short)/MPC(ZQ calibration) commands to DDR3/DDR4/ - PDDR2/LPDDR3/LPDDR4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles. This is only present for designs - upporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* Average interval to wait between automatically issuing ZQCS (ZQ calibrat + * ion short)/MPC(ZQ calibration) commands to DDR3/DDR4/LPDDR2/LPDDR3/LPDDR + * 4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles + * . This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3 + * /LPDDR4 devices. +*/ #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL 0x02000100 -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT 0 -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK 0x000FFFFFU +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL 0x02000100 +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT 0 +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK 0x000FFFFFU -/*Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock.*/ +/* +* Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. +*/ #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT 24 -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK 0x1F000000U +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT 24 +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK 0x1F000000U -/*Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value.*/ +/* +* Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. +*/ #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT 23 -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK 0x00800000U +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT 23 +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK 0x00800000U -/*Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks*/ +/* +* Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks +*/ #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT 16 -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK 0x003F0000U +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT 16 +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK 0x003F0000U -/*Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e.*/ +/* +* Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. +*/ #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT 15 -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK 0x00008000U +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT 15 +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK 0x00008000U -/*Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks*/ +/* +* Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks +*/ #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT 8 -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK 0x00003F00U +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT 8 +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK 0x00003F00U -/*Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM.*/ +/* +* Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. +*/ #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT 0 -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK 0x0000003FU +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT 0 +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK 0x0000003FU -/*Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated command is driven. - his field is used for CAL mode, should be set to '0' or the value which matches the CAL mode register setting in the DRAM. If - the PHY can add the latency for CAL mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8*/ +/* +* Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated command is driven. This field is used + * for CAL mode, should be set to '0' or the value which matches the CAL mo + * de register setting in the DRAM. If the PHY can add the latency for CAL + * mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 +*/ #undef DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL #undef DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT #undef DDRC_DFITMG1_DFI_T_CMD_LAT_MASK -#define DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT 28 -#define DDRC_DFITMG1_DFI_T_CMD_LAT_MASK 0xF0000000U +#define DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT 28 +#define DDRC_DFITMG1_DFI_T_CMD_LAT_MASK 0xF0000000U -/*Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated dfi_parity_in signa - is driven.*/ +/* +* Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated dfi_parity_in signal is driven. +*/ #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT 24 -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK 0x03000000U +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT 24 +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK 0x03000000U -/*Specifies the number of DFI clocks between when the dfi_wrdata_en signal is asserted and when the corresponding write data tr - nsfer is completed on the DRAM bus. This corresponds to the DFI timing parameter twrdata_delay. Refer to PHY specification fo - correct value. For DFI 3.0 PHY, set to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI 2.1 PHY, set to - phy_wrdata + (delay of DFI write data to the DRAM). Value to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ - RATIO=2, divide PHY's value by 2 and round up to next integer. If using DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Uni - : Clocks*/ +/* +* Specifies the number of DFI clocks between when the dfi_wrdata_en signal + * is asserted and when the corresponding write data transfer is completed + * on the DRAM bus. This corresponds to the DFI timing parameter twrdata_d + * elay. Refer to PHY specification for correct value. For DFI 3.0 PHY, set + * to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI + * 2.1 PHY, set to tphy_wrdata + (delay of DFI write data to the DRAM). Va + * lue to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ_ + * RATIO=2, divide PHY's value by 2 and round up to next integer. If using + * DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Unit: Clocks +*/ #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT 16 -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK 0x001F0000U +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT 16 +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK 0x001F0000U -/*Specifies the number of DFI clock cycles from the assertion of the dfi_dram_clk_disable signal on the DFI until the clock to - he DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase - ligned, this timing parameter should be rounded up to the next integer value.*/ +/* +* Specifies the number of DFI clock cycles from the assertion of the dfi_d + * ram_clk_disable signal on the DFI until the clock to the DRAM memory dev + * ices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock + * and the memory clock are not phase aligned, this timing parameter should + * be rounded up to the next integer value. +*/ #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT 8 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK 0x00000F00U +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT 8 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK 0x00000F00U -/*Specifies the number of DFI clock cycles from the de-assertion of the dfi_dram_clk_disable signal on the DFI until the first - alid rising edge of the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the DFI clock and the memory clock are - not phase aligned, this timing parameter should be rounded up to the next integer value.*/ +/* +* Specifies the number of DFI clock cycles from the de-assertion of the df + * i_dram_clk_disable signal on the DFI until the first valid rising edge o + * f the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the + * DFI clock and the memory clock are not phase aligned, this timing param + * eter should be rounded up to the next integer value. +*/ #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT 0 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK 0x0000000FU +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT 0 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK 0x0000000FU -/*Setting for DFI's tlp_resp time. Same value is used for both Power Down, Self Refresh, Deep Power Down and Maximum Power Savi - g modes. DFI 2.1 specification onwards, recommends using a fixed value of 7 always.*/ +/* +* Setting for DFI's tlp_resp time. Same value is used for both Power Down, + * Self Refresh, Deep Power Down and Maximum Power Saving modes. DFI 2.1 s + * pecification onwards, recommends using a fixed value of 7 always. +*/ #undef DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL #undef DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT #undef DDRC_DFILPCFG0_DFI_TLP_RESP_MASK -#define DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT 24 -#define DDRC_DFILPCFG0_DFI_TLP_RESP_MASK 0x0F000000U +#define DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT 24 +#define DDRC_DFILPCFG0_DFI_TLP_RESP_MASK 0x0F000000U -/*Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 - cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - - 31072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting mDDR or LPDDR2/LPDDR3 device - .*/ +/* +* Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is ente + * red. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 + * cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 5 + * 12 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - + * 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 6553 + * 6 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited T + * his is only present for designs supporting mDDR or LPDDR2/LPDDR3 devices + * . +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT 20 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK 0x00F00000U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT 20 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK 0x00F00000U -/*Enables DFI Low Power interface handshaking during Deep Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled This is only pres - nt for designs supporting mDDR or LPDDR2/LPDDR3 devices.*/ +/* +* Enables DFI Low Power interface handshaking during Deep Power Down Entry + * /Exit. - 0 - Disabled - 1 - Enabled This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3 devices. +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT 16 -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK 0x00010000U +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT 16 +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK 0x00010000U -/*Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cy - les - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 131 - 72 cycles - 0xE - 262144 cycles - 0xF - Unlimited*/ +/* +* Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered + * . Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cyc + * les - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 + * cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 + * - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 c + * ycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT 12 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK 0x0000F000U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT 12 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK 0x0000F000U -/*Enables DFI Low Power interface handshaking during Self Refresh Entry/Exit. - 0 - Disabled - 1 - Enabled*/ +/* +* Enables DFI Low Power interface handshaking during Self Refresh Entry/Ex + * it. - 0 - Disabled - 1 - Enabled +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT 8 -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK 0x00000100U +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT 8 +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK 0x00000100U -/*Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycl - s - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 20 - 8 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 13107 - cycles - 0xE - 262144 cycles - 0xF - Unlimited*/ +/* +* Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. + * Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cycle + * s - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cy + * cles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - + * 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cyc + * les - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT 4 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK 0x000000F0U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT 4 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK 0x000000F0U -/*Enables DFI Low Power interface handshaking during Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled*/ +/* +* Enables DFI Low Power interface handshaking during Power Down Entry/Exit + * . - 0 - Disabled - 1 - Enabled +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT 0 -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK 0x00000001U +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT 0 +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK 0x00000001U -/*Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - - 16 cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0 - D - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting DDR4 devices.*/ +/* +* Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is + * entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 + * - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x + * 5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycl + * es - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - + * 65536 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimi + * ted This is only present for designs supporting DDR4 devices. +*/ #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL 0x00000000 -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT 4 -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK 0x000000F0U +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL 0x00000000 +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT 4 +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK 0x000000F0U -/*Enables DFI Low Power interface handshaking during Maximum Power Saving Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is - only present for designs supporting DDR4 devices.*/ +/* +* Enables DFI Low Power interface handshaking during Maximum Power Saving + * Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is only present for d + * esigns supporting DDR4 devices. +*/ #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL 0x00000000 -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT 0 -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK 0x00000001U +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL 0x00000000 +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT 0 +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK 0x00000001U -/*This is the minimum amount of time between uMCTL2 initiated DFI update requests (which is executed whenever the uMCTL2 is idl - ). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the fir - t read request when the uMCTL2 is idle. Unit: 1024 clocks*/ +/* +* When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * . The core must issue the dfi_ctrlupd_req signal using register reg_ddrc + * _ctrlupd. When '0', uMCTL2 issues dfi_ctrlupd_req periodically. +*/ +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_DEFVAL +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SHIFT +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_MASK +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SHIFT 31 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_MASK 0x80000000U + +/* +* When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * following a self-refresh exit. The core must issue the dfi_ctrlupd_req + * signal using register reg_ddrc_ctrlupd. When '0', uMCTL2 issues a dfi_ct + * rlupd_req after exiting self-refresh. +*/ +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_DEFVAL +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_SHIFT +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_MASK +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_SHIFT 30 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_MASK 0x40000000U + +/* +* Specifies the maximum number of clock cycles that the dfi_ctrlupd_req si + * gnal can assert. Lowest value to assign to this variable is 0x40. Unit: + * Clocks +*/ +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_DEFVAL +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_SHIFT +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_MASK +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_SHIFT 16 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_MASK 0x03FF0000U + +/* +* Specifies the minimum number of clock cycles that the dfi_ctrlupd_req si + * gnal must be asserted. The uMCTL2 expects the PHY to respond within this + * time. If the PHY does not respond, the uMCTL2 will de-assert dfi_ctrlup + * d_req after dfi_t_ctrlup_min + 2 cycles. Lowest value to assign to this + * variable is 0x3. Unit: Clocks +*/ +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_DEFVAL +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_SHIFT +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_MASK +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_SHIFT 0 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_MASK 0x000003FFU + +/* +* This is the minimum amount of time between uMCTL2 initiated DFI update r + * equests (which is executed whenever the uMCTL2 is idle). Set this number + * higher to reduce the frequency of update requests, which can have a sma + * ll impact on the latency of the first read request when the uMCTL2 is id + * le. Unit: 1024 clocks +*/ #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL 0x00000000 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT 16 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK 0x00FF0000U +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL 0x00000000 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT 16 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK 0x00FF0000U -/*This is the maximum amount of time between uMCTL2 initiated DFI update requests. This timer resets with each update request; - hen the timer expires dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd_ackx is received. PHY can use this - idle time to recalibrate the delay lines to the DLLs. The DFI controller update is also used to reset PHY FIFO pointers in ca - e of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. - Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x - 024. Unit: 1024 clocks*/ +/* +* This is the maximum amount of time between uMCTL2 initiated DFI update r + * equests. This timer resets with each update request; when the timer expi + * res dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd + * _ackx is received. PHY can use this idle time to recalibrate the delay l + * ines to the DLLs. The DFI controller update is also used to reset PHY FI + * FO pointers in case of data capture errors. Updates are required to main + * tain calibration over PVT, but frequent updates may impact performance. + * Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must + * be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x1024. Unit: 1024 cl + * ocks +*/ #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL 0x00000000 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT 0 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK 0x000000FFU +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL 0x00000000 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT 0 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK 0x000000FFU -/*Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signals are active low - 1: Signals are active high*/ +/* +* Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signal + * s are active low - 1: Signals are active high +*/ #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL 0x00000001 -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT 2 -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK 0x00000004U +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL 0x00000001 +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT 2 +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK 0x00000004U -/*DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. - 1 - PHY implements DBI functionality. Present only - in designs configured to support DDR4 and LPDDR4.*/ +/* +* DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. + * - 1 - PHY implements DBI functionality. Present only in designs configu + * red to support DDR4 and LPDDR4. +*/ #undef DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL #undef DDRC_DFIMISC_PHY_DBI_MODE_SHIFT #undef DDRC_DFIMISC_PHY_DBI_MODE_MASK -#define DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL 0x00000001 -#define DDRC_DFIMISC_PHY_DBI_MODE_SHIFT 1 -#define DDRC_DFIMISC_PHY_DBI_MODE_MASK 0x00000002U +#define DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL 0x00000001 +#define DDRC_DFIMISC_PHY_DBI_MODE_SHIFT 1 +#define DDRC_DFIMISC_PHY_DBI_MODE_MASK 0x00000002U -/*PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialisa - ion*/ +/* +* PHY initialization complete enable signal. When asserted the dfi_init_co + * mplete signal can be used to trigger SDRAM initialisation +*/ #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL 0x00000001 -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT 0 -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK 0x00000001U +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL 0x00000001 +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT 0 +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK 0x00000001U -/*>Number of clocks between when a read command is sent on the DFI control interface and when the associated dfi_rddata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY specification for correct value.*/ +/* +* >Number of clocks between when a read command is sent on the DFI control + * interface and when the associated dfi_rddata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY spe + * cification for correct value. +*/ #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL 0x00000202 -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT 8 -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK 0x00003F00U +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL 0x00000202 +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT 8 +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK 0x00003F00U -/*Number of clocks between when a write command is sent on the DFI control interface and when the associated dfi_wrdata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY specification for correct value.*/ +/* +* Number of clocks between when a write command is sent on the DFI control + * interface and when the associated dfi_wrdata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY spe + * cification for correct value. +*/ #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL 0x00000202 -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT 0 -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK 0x0000003FU +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL 0x00000202 +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT 0 +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK 0x0000003FU -/*Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read DBI is enabled. This signal must be set the same value - as DRAM's mode register. - DDR4: MR5 bit A12. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[6]*/ +/* +* Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read D + * BI is enabled. This signal must be set the same value as DRAM's mode reg + * ister. - DDR4: MR5 bit A12. When x4 devices are used, this signal must b + * e set to 0. - LPDDR4: MR3[6] +*/ #undef DDRC_DBICTL_RD_DBI_EN_DEFVAL #undef DDRC_DBICTL_RD_DBI_EN_SHIFT #undef DDRC_DBICTL_RD_DBI_EN_MASK -#define DDRC_DBICTL_RD_DBI_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_RD_DBI_EN_SHIFT 2 -#define DDRC_DBICTL_RD_DBI_EN_MASK 0x00000004U +#define DDRC_DBICTL_RD_DBI_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_RD_DBI_EN_SHIFT 2 +#define DDRC_DBICTL_RD_DBI_EN_MASK 0x00000004U -/*Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Write DBI is enabled. This signal must be set the same va - ue as DRAM's mode register. - DDR4: MR5 bit A11. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[7]*/ +/* +* Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Writ + * e DBI is enabled. This signal must be set the same value as DRAM's mode + * register. - DDR4: MR5 bit A11. When x4 devices are used, this signal mus + * t be set to 0. - LPDDR4: MR3[7] +*/ #undef DDRC_DBICTL_WR_DBI_EN_DEFVAL #undef DDRC_DBICTL_WR_DBI_EN_SHIFT #undef DDRC_DBICTL_WR_DBI_EN_MASK -#define DDRC_DBICTL_WR_DBI_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_WR_DBI_EN_SHIFT 1 -#define DDRC_DBICTL_WR_DBI_EN_MASK 0x00000002U +#define DDRC_DBICTL_WR_DBI_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_WR_DBI_EN_SHIFT 1 +#define DDRC_DBICTL_WR_DBI_EN_MASK 0x00000002U -/*DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. This signal must be set the same logical value as DRAM's - mode register. - DDR4: Set this to same value as MR5 bit A10. When x4 devices are used, this signal must be set to 0. - LPDDR - : Set this to inverted value of MR13[5] which is opposite polarity from this signal*/ +/* +* DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. Thi + * s signal must be set the same logical value as DRAM's mode register. - D + * DR4: Set this to same value as MR5 bit A10. When x4 devices are used, th + * is signal must be set to 0. - LPDDR4: Set this to inverted value of MR13 + * [5] which is opposite polarity from this signal +*/ #undef DDRC_DBICTL_DM_EN_DEFVAL #undef DDRC_DBICTL_DM_EN_SHIFT #undef DDRC_DBICTL_DM_EN_MASK -#define DDRC_DBICTL_DM_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_DM_EN_SHIFT 0 -#define DDRC_DBICTL_DM_EN_MASK 0x00000001U +#define DDRC_DBICTL_DM_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_DM_EN_SHIFT 0 +#define DDRC_DBICTL_DM_EN_MASK 0x00000001U -/*Selects the HIF address bit used as rank address bit 0. Valid Range: 0 to 27, and 31 Internal Base: 6 The selected HIF addres - bit is determined by adding the internal base to the value of this field. If set to 31, rank address bit 0 is set to 0.*/ +/* +* Selects the HIF address bit used as rank address bit 0. Valid Range: 0 t + * o 27, and 31 Internal Base: 6 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, r + * ank address bit 0 is set to 0. +*/ #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT 0 -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK 0x0000001FU +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT 0 +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK 0x0000001FU -/*Selects the HIF address bit used as bank address bit 2. Valid Range: 0 to 29 and 31 Internal Base: 4 The selected HIF address - bit is determined by adding the internal base to the value of this field. If set to 31, bank address bit 2 is set to 0.*/ +/* +* Selects the HIF address bit used as bank address bit 2. Valid Range: 0 t + * o 29 and 31 Internal Base: 4 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, ba + * nk address bit 2 is set to 0. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT 16 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK 0x001F0000U +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT 16 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK 0x001F0000U -/*Selects the HIF address bits used as bank address bit 1. Valid Range: 0 to 30 Internal Base: 3 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank address bit 1. Valid Range: 0 + * to 30 Internal Base: 3 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT 8 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK 0x00001F00U +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT 8 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK 0x00001F00U -/*Selects the HIF address bits used as bank address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank address bit 0. Valid Range: 0 + * to 30 Internal Base: 2 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT 0 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK 0x0000001FU +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT 0 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK 0x0000001FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 5. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 6. - Quarter bus width mode: Selects the HIF address bit used as column address bit 7 . Vali - Range: 0 to 7, and 15 Internal Base: 5 The selected HIF address bit is determined by adding the internal base to the value o - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 5. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 6. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 7 . Valid Range: 0 to 7, and 15 Internal Base + * : 5 The selected HIF address bit is determined by adding the internal ba + * se to the value of this field. If set to 15, this column address bit is + * set to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT 24 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK 0x0F000000U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT 24 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK 0x0F000000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 4. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 5. - Quarter bus width mode: Selects the HIF address bit used as column address bit 6. Valid - Range: 0 to 7, and 15 Internal Base: 4 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 4. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 5. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 6. Valid Range: 0 to 7, and 15 Internal Base: + * 4 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT 16 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK 0x000F0000U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT 16 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK 0x000F0000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 3. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 4. - Quarter bus width mode: Selects the HIF address bit used as column address bit 5. Valid - Range: 0 to 7 Internal Base: 3 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=16, it is required to program this to 0, hence register does not exist i - this case.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 3. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 4. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 5. Valid Range: 0 to 7 Internal Base: 3 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=1 + * 6, it is required to program this to 0, hence register does not exist in + * this case. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT 8 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK 0x00000F00U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT 8 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 2. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 3. - Quarter bus width mode: Selects the HIF address bit used as column address bit 4. Valid - Range: 0 to 7 Internal Base: 2 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 or 16, it is required to program this to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 2. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 3. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 4. Valid Range: 0 to 7 Internal Base: 2 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 + * or 16, it is required to program this to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT 0 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK 0x0000000FU +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT 0 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK 0x0000000FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 9. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: Selects the HIF address bit used as - column address bit 13 (11 in LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected HIF address bit i - determined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: - er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source addr - ss bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus an - hence column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 9. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: + * Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/ + * LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected + * HIF address bit is determined by adding the internal base to the value o + * f this field. If set to 15, this column address bit is set to 0. Note: P + * er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved fo + * r indicating auto-precharge, and hence no source address bit can be mapp + * ed to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit + * for auto-precharge in the CA bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT 24 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK 0x0F000000U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT 24 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK 0x0F000000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 8. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 9. - Quarter bus width mode: Selects the HIF address bit used as column address bit 11 (10 i - LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 8 The selected HIF address bit is determined by adding the i - ternal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specif - cation, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to col - mn address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is use - .*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 8. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 9. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). Valid Range: 0 + * to 7, and 15 Internal Base: 8 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specifi + * cation, column address bit 10 is reserved for indicating auto-precharge, + * and hence no source address bit can be mapped to column address bit 10. + * In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA + * bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT 16 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK 0x000F0000U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT 16 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK 0x000F0000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 7. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 8. - Quarter bus width mode: Selects the HIF address bit used as column address bit 9. Valid - Range: 0 to 7, and 15 Internal Base: 7 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 7. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 8. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 9. Valid Range: 0 to 7, and 15 Internal Base: + * 7 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT 8 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK 0x00000F00U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT 8 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 6. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 7. - Quarter bus width mode: Selects the HIF address bit used as column address bit 8. Valid - Range: 0 to 7, and 15 Internal Base: 6 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 6. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 7. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 8. Valid Range: 0 to 7, and 15 Internal Base: + * 6 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT 0 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK 0x0000000FU +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT 0 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK 0x0000000FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Unused. To make it unused, this should be tied to 4'hF. - Quarter bus width mode: Unused. To make it unused, this must - e tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 11 The selected HIF address bit is determined by adding the intern - l base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificati - n, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column a - dress bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width mode: Unused. To m + * ake it unused, this should be tied to 4'hF. - Quarter bus width mode: Un + * used. To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, + * and 15 Internal Base: 11 The selected HIF address bit is determined by + * adding the internal base to the value of this field. If set to 15, this + * column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificatio + * n, column address bit 10 is reserved for indicating auto-precharge, and + * hence no source address bit can be mapped to column address bit 10. In L + * PDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus + * and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL 0x00000000 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT 8 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK 0x00000F00U +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL 0x00000000 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT 8 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: UNUSED. - To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF address bit is d - termined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per - JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source address - bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and h - nce column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width mode: Selects the + * HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode) + * . - Quarter bus width mode: UNUSED. To make it unused, this must be tied + * to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF + * address bit is determined by adding the internal base to the value of t + * his field. If set to 15, this column address bit is set to 0. Note: Per + * JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for i + * ndicating auto-precharge, and hence no source address bit can be mapped + * to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for + * auto-precharge in the CA bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL 0x00000000 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT 0 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK 0x0000000FU +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL 0x00000000 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT 0 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK 0x0000000FU -/*Selects the HIF address bit used as row address bit 11. Valid Range: 0 to 11, and 15 Internal Base: 17 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 11 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 11. Valid Range: 0 t + * o 11, and 15 Internal Base: 17 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 11 is set to 0. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT 24 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK 0x0F000000U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT 24 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bits 2 to 10. Valid Range: 0 to 11, and 15 Internal Base: 8 (for row address - bit 2), 9 (for row address bit 3), 10 (for row address bit 4) etc increasing to 16 (for row address bit 10) The selected HIF - ddress bit for each of the row address bits is determined by adding the internal base to the value of this field. When value - 5 is used the values of row address bits 2 to 10 are defined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11.*/ +/* +* Selects the HIF address bits used as row address bits 2 to 10. Valid Ran + * ge: 0 to 11, and 15 Internal Base: 8 (for row address bit 2), 9 (for row + * address bit 3), 10 (for row address bit 4) etc increasing to 16 (for ro + * w address bit 10) The selected HIF address bit for each of the row addre + * ss bits is determined by adding the internal base to the value of this f + * ield. When value 15 is used the values of row address bits 2 to 10 are d + * efined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT 16 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK 0x000F0000U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT 16 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 1. Valid Range: 0 to 11 Internal Base: 7 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as row address bit 1. Valid Range: 0 t + * o 11 Internal Base: 7 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT 8 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK 0x00000F00U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT 8 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 0. Valid Range: 0 to 11 Internal Base: 6 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as row address bit 0. Valid Range: 0 t + * o 11 Internal Base: 6 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT 0 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK 0x0000000FU +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT 0 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK 0x0000000FU -/*Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address - having row[14:13]==2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. All addresses are valid Present on - y in designs configured to support LPDDR3.*/ +/* +* Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 + * - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address having row[14:13]= + * =2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. + * All addresses are valid Present only in designs configured to support L + * PDDR3. +*/ #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT 31 -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK 0x80000000U +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT 31 +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK 0x80000000U -/*Selects the HIF address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 15 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 15. Valid Range: 0 t + * o 11, and 15 Internal Base: 21 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 15 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT 24 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK 0x0F000000U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT 24 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK 0x0F000000U -/*Selects the HIF address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 20 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 14 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 14. Valid Range: 0 t + * o 11, and 15 Internal Base: 20 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 14 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT 16 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK 0x000F0000U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT 16 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK 0x000F0000U -/*Selects the HIF address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 19 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 13 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 13. Valid Range: 0 t + * o 11, and 15 Internal Base: 19 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 13 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT 8 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK 0x00000F00U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT 8 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK 0x00000F00U -/*Selects the HIF address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 18 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 12 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 12. Valid Range: 0 t + * o 11, and 15 Internal Base: 18 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 12 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT 0 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK 0x0000000FU +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT 0 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK 0x0000000FU -/*Selects the HIF address bit used as row address bit 17. Valid Range: 0 to 10, and 15 Internal Base: 23 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 17 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 17. Valid Range: 0 t + * o 10, and 15 Internal Base: 23 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 17 is set to 0. +*/ #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL 0x00000000 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT 8 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK 0x00000F00U +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL 0x00000000 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT 8 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK 0x00000F00U -/*Selects the HIF address bit used as row address bit 16. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 16 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 16. Valid Range: 0 t + * o 11, and 15 Internal Base: 22 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 16 is set to 0. +*/ #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL 0x00000000 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT 0 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK 0x0000000FU +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL 0x00000000 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT 0 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK 0x0000000FU -/*Selects the HIF address bits used as bank group address bit 1. Valid Range: 0 to 30, and 31 Internal Base: 3 The selected HIF - address bit for each of the bank group address bits is determined by adding the internal base to the value of this field. If - et to 31, bank group address bit 1 is set to 0.*/ +/* +* Selects the HIF address bits used as bank group address bit 1. Valid Ran + * ge: 0 to 30, and 31 Internal Base: 3 The selected HIF address bit for ea + * ch of the bank group address bits is determined by adding the internal b + * ase to the value of this field. If set to 31, bank group address bit 1 i + * s set to 0. +*/ #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT 8 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK 0x00001F00U +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT 8 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK 0x00001F00U -/*Selects the HIF address bits used as bank group address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address - bit for each of the bank group address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank group address bit 0. Valid Ran + * ge: 0 to 30 Internal Base: 2 The selected HIF address bit for each of th + * e bank group address bits is determined by adding the internal base to t + * he value of this field. +*/ #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT 0 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK 0x0000001FU +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT 0 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK 0x0000001FU -/*Selects the HIF address bits used as row address bit 5. Valid Range: 0 to 11 Internal Base: 11 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 5. Valid Range: 0 t + * o 11 Internal Base: 11 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT 24 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK 0x0F000000U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT 24 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bit 4. Valid Range: 0 to 11 Internal Base: 10 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 4. Valid Range: 0 t + * o 11 Internal Base: 10 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT 16 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK 0x000F0000U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT 16 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 3. Valid Range: 0 to 11 Internal Base: 9 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 3. Valid Range: 0 t + * o 11 Internal Base: 9 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT 8 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK 0x00000F00U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT 8 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 2. Valid Range: 0 to 11 Internal Base: 8 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 2. Valid Range: 0 t + * o 11 Internal Base: 8 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT 0 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK 0x0000000FU +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT 0 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK 0x0000000FU -/*Selects the HIF address bits used as row address bit 9. Valid Range: 0 to 11 Internal Base: 15 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 9. Valid Range: 0 t + * o 11 Internal Base: 15 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT 24 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK 0x0F000000U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT 24 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bit 8. Valid Range: 0 to 11 Internal Base: 14 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 8. Valid Range: 0 t + * o 11 Internal Base: 14 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT 16 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK 0x000F0000U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT 16 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 7. Valid Range: 0 to 11 Internal Base: 13 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 7. Valid Range: 0 t + * o 11 Internal Base: 13 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT 8 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK 0x00000F00U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT 8 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 6. Valid Range: 0 to 11 Internal Base: 12 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 6. Valid Range: 0 t + * o 11 Internal Base: 12 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT 0 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK 0x0000000FU +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT 0 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK 0x0000000FU -/*Selects the HIF address bits used as row address bit 10. Valid Range: 0 to 11 Internal Base: 16 The selected HIF address bit - or each of the row address bits is determined by adding the internal base to the value of this field. This register field is - sed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 10. Valid Range: 0 + * to 11 Internal Base: 16 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of + * this field. This register field is used only when ADDRMAP5.addrmap_row_b + * 2_10 is set to value 15. +*/ #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT 0 -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK 0x0000000FU +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT 0 +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK 0x0000000FU -/*Cycles to hold ODT for a write command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/ - 67), 0x6 (DDR2-800), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (DDR2-1066) DDR3: - BL8: 0x6 DDR4: - - L8: 5 + WR_PREAMBLE + CRC_MODE WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 (not CRC mode), 1 - CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK)*/ +/* +* Cycles to hold ODT for a write command. The minimum supported value is 2 + * . Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/667), 0x6 (DDR2-800 + * ), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (D + * DR2-1066) DDR3: - BL8: 0x6 DDR4: - BL8: 5 + WR_PREAMBLE + CRC_MODE WR_PR + * EAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 ( + * not CRC mode), 1 (CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL #undef DDRC_ODTCFG_WR_ODT_HOLD_SHIFT #undef DDRC_ODTCFG_WR_ODT_HOLD_MASK -#define DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL 0x04000400 -#define DDRC_ODTCFG_WR_ODT_HOLD_SHIFT 24 -#define DDRC_ODTCFG_WR_ODT_HOLD_MASK 0x0F000000U +#define DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL 0x04000400 +#define DDRC_ODTCFG_WR_ODT_HOLD_SHIFT 24 +#define DDRC_ODTCFG_WR_ODT_HOLD_MASK 0x0F000000U -/*The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting must - remain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CWL + AL - 3 (DDR2-400/533/ - 67), CWL + AL - 4 (DDR2-800), CWL + AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT for write operation - DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK))*/ +/* +* The delay, in clock cycles, from issuing a write command to setting ODT + * values associated with that command. ODT setting must remain constant fo + * r the entire time that DQS is driven by the uMCTL2. Recommended values: + * DDR2: - CWL + AL - 3 (DDR2-400/533/667), CWL + AL - 4 (DDR2-800), CWL + + * AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT fo + * r write operation. DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust + * for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) +*/ #undef DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL #undef DDRC_ODTCFG_WR_ODT_DELAY_SHIFT #undef DDRC_ODTCFG_WR_ODT_DELAY_MASK -#define DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL 0x04000400 -#define DDRC_ODTCFG_WR_ODT_DELAY_SHIFT 16 -#define DDRC_ODTCFG_WR_ODT_DELAY_MASK 0x001F0000U +#define DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL 0x04000400 +#define DDRC_ODTCFG_WR_ODT_DELAY_SHIFT 16 +#define DDRC_ODTCFG_WR_ODT_DELAY_MASK 0x001F0000U -/*Cycles to hold ODT for a read command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066) - 0x7 (DDR2-1066) - BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8: 5 + RD_PREAMBLE RD_PREAMBLE = 1 ( - tCK write preamble), 2 (2tCK write preamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + RU(tODTon(max)/tC - )*/ +/* +* Cycles to hold ODT for a read command. The minimum supported value is 2. + * Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066), 0x7 (DDR2-1066) - + * BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8 + * : 5 + RD_PREAMBLE RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write p + * reamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + + * RU(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL #undef DDRC_ODTCFG_RD_ODT_HOLD_SHIFT #undef DDRC_ODTCFG_RD_ODT_HOLD_MASK -#define DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL 0x04000400 -#define DDRC_ODTCFG_RD_ODT_HOLD_SHIFT 8 -#define DDRC_ODTCFG_RD_ODT_HOLD_MASK 0x00000F00U +#define DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL 0x04000400 +#define DDRC_ODTCFG_RD_ODT_HOLD_SHIFT 8 +#define DDRC_ODTCFG_RD_ODT_HOLD_MASK 0x00000F00U -/*The delay, in clock cycles, from issuing a read command to setting ODT values associated with that command. ODT setting must - emain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CL + AL - 4 (not DDR2-1066), - CL + AL - 5 (DDR2-1066) If (CL + AL - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - CWL DDR4: - CL - C - L - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK - write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, - uMCTL2 does not support ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - RU(tODTon(max)/tCK)*/ +/* +* The delay, in clock cycles, from issuing a read command to setting ODT v + * alues associated with that command. ODT setting must remain constant for + * the entire time that DQS is driven by the uMCTL2. Recommended values: D + * DR2: - CL + AL - 4 (not DDR2-1066), CL + AL - 5 (DDR2-1066) If (CL + AL + * - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - C + * WL DDR4: - CL - CWL - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat + * (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK + * write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write pre + * amble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, uMCTL2 does not su + * pport ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - R + * U(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL #undef DDRC_ODTCFG_RD_ODT_DELAY_SHIFT #undef DDRC_ODTCFG_RD_ODT_DELAY_MASK -#define DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL 0x04000400 -#define DDRC_ODTCFG_RD_ODT_DELAY_SHIFT 2 -#define DDRC_ODTCFG_RD_ODT_DELAY_MASK 0x0000007CU +#define DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL 0x04000400 +#define DDRC_ODTCFG_RD_ODT_DELAY_SHIFT 2 +#define DDRC_ODTCFG_RD_ODT_DELAY_MASK 0x0000007CU -/*Indicates which remote ODTs must be turned on during a read from rank 1. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks*/ +/* +* Indicates which remote ODTs must be turned on during a read from rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. Present only in configurations that have 2 or more + * ranks +*/ #undef DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL #undef DDRC_ODTMAP_RANK1_RD_ODT_SHIFT #undef DDRC_ODTMAP_RANK1_RD_ODT_MASK -#define DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK1_RD_ODT_SHIFT 12 -#define DDRC_ODTMAP_RANK1_RD_ODT_MASK 0x00003000U +#define DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK1_RD_ODT_SHIFT 12 +#define DDRC_ODTMAP_RANK1_RD_ODT_MASK 0x00003000U -/*Indicates which remote ODTs must be turned on during a write to rank 1. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks*/ +/* +* Indicates which remote ODTs must be turned on during a write to rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. Present only in configurations that have 2 or more r + * anks +*/ #undef DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL #undef DDRC_ODTMAP_RANK1_WR_ODT_SHIFT #undef DDRC_ODTMAP_RANK1_WR_ODT_MASK -#define DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK1_WR_ODT_SHIFT 8 -#define DDRC_ODTMAP_RANK1_WR_ODT_MASK 0x00000300U +#define DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK1_WR_ODT_SHIFT 8 +#define DDRC_ODTMAP_RANK1_WR_ODT_MASK 0x00000300U -/*Indicates which remote ODTs must be turned on during a read from rank 0. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT.*/ +/* +* Indicates which remote ODTs must be turned on during a read from rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. +*/ #undef DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL #undef DDRC_ODTMAP_RANK0_RD_ODT_SHIFT #undef DDRC_ODTMAP_RANK0_RD_ODT_MASK -#define DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK0_RD_ODT_SHIFT 4 -#define DDRC_ODTMAP_RANK0_RD_ODT_MASK 0x00000030U +#define DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK0_RD_ODT_SHIFT 4 +#define DDRC_ODTMAP_RANK0_RD_ODT_MASK 0x00000030U -/*Indicates which remote ODTs must be turned on during a write to rank 0. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT.*/ +/* +* Indicates which remote ODTs must be turned on during a write to rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. +*/ #undef DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL #undef DDRC_ODTMAP_RANK0_WR_ODT_SHIFT #undef DDRC_ODTMAP_RANK0_WR_ODT_MASK -#define DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK0_WR_ODT_SHIFT 0 -#define DDRC_ODTMAP_RANK0_WR_ODT_MASK 0x00000003U +#define DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK0_WR_ODT_SHIFT 0 +#define DDRC_ODTMAP_RANK0_WR_ODT_MASK 0x00000003U -/*When the preferred transaction store is empty for these many clock cycles, switch to the alternate transaction store if it is - non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write t - ansaction store is the alternative store. When prefer write over read is set this is reversed. 0x0 is a legal value for this - egister. When set to 0x0, the transaction store switching will happen immediately when the switching conditions become true. - OR PERFORMANCE ONLY*/ +/* +* When the preferred transaction store is empty for these many clock cycle + * s, switch to the alternate transaction store if it is non-empty. The rea + * d transaction store (both high and low priority) is the default preferre + * d transaction store and the write transaction store is the alternative s + * tore. When prefer write over read is set this is reversed. 0x0 is a lega + * l value for this register. When set to 0x0, the transaction store switch + * ing will happen immediately when the switching conditions become true. F + * OR PERFORMANCE ONLY +*/ #undef DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL #undef DDRC_SCHED_RDWR_IDLE_GAP_SHIFT #undef DDRC_SCHED_RDWR_IDLE_GAP_MASK -#define DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL 0x00002005 -#define DDRC_SCHED_RDWR_IDLE_GAP_SHIFT 24 -#define DDRC_SCHED_RDWR_IDLE_GAP_MASK 0x7F000000U +#define DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL 0x00002005 +#define DDRC_SCHED_RDWR_IDLE_GAP_SHIFT 24 +#define DDRC_SCHED_RDWR_IDLE_GAP_MASK 0x7F000000U -/*UNUSED*/ +/* +* UNUSED +*/ #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL 0x00002005 -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT 16 -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK 0x00FF0000U +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL 0x00002005 +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT 16 +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK 0x00FF0000U -/*Number of entries in the low priority transaction store is this value + 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) i - the number of entries available for the high priority transaction store. Setting this to maximum value allocates all entries - to low priority transaction store. Setting this to 0 allocates 1 entry to low priority transaction store and the rest to high - priority transaction store. Note: In ECC configurations, the numbers of write and low priority read credits issued is one les - than in the non-ECC case. One entry each is reserved in the write and low-priority read CAMs for storing the RMW requests ar - sing out of single bit error correction RMW operation.*/ +/* +* Number of entries in the low priority transaction store is this value + + * 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) is the number of ent + * ries available for the high priority transaction store. Setting this to + * maximum value allocates all entries to low priority transaction store. S + * etting this to 0 allocates 1 entry to low priority transaction store and + * the rest to high priority transaction store. Note: In ECC configuration + * s, the numbers of write and low priority read credits issued is one less + * than in the non-ECC case. One entry each is reserved in the write and l + * ow-priority read CAMs for storing the RMW requests arising out of single + * bit error correction RMW operation. +*/ #undef DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL #undef DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT #undef DDRC_SCHED_LPR_NUM_ENTRIES_MASK -#define DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL 0x00002005 -#define DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT 8 -#define DDRC_SCHED_LPR_NUM_ENTRIES_MASK 0x00003F00U +#define DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL 0x00002005 +#define DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT 8 +#define DDRC_SCHED_LPR_NUM_ENTRIES_MASK 0x00003F00U -/*If true, bank is kept open only while there are page hit transactions available in the CAM to that bank. The last read or wri - e command in the CAM with a bank and page hit will be executed with auto-precharge if SCHED1.pageclose_timer=0. Even if this - egister set to 1 and SCHED1.pageclose_timer is set to 0, explicit precharge (and not auto-precharge) may be issued in some ca - es where there is a mode switch between Write and Read or between LPR and HPR. The Read and Write commands that are executed - s part of the ECC scrub requests are also executed without auto-precharge. If false, the bank remains open until there is a n - ed to close it (to open a different page, or for page timeout or refresh timeout) - also known as open page policy. The open - age policy can be overridden by setting the per-command-autopre bit on the HIF interface (hif_cmd_autopre). The pageclose fea - ure provids a midway between Open and Close page policies. FOR PERFORMANCE ONLY.*/ +/* +* If true, bank is kept open only while there are page hit transactions av + * ailable in the CAM to that bank. The last read or write command in the C + * AM with a bank and page hit will be executed with auto-precharge if SCHE + * D1.pageclose_timer=0. Even if this register set to 1 and SCHED1.pageclos + * e_timer is set to 0, explicit precharge (and not auto-precharge) may be + * issued in some cases where there is a mode switch between Write and Read + * or between LPR and HPR. The Read and Write commands that are executed a + * s part of the ECC scrub requests are also executed without auto-precharg + * e. If false, the bank remains open until there is a need to close it (to + * open a different page, or for page timeout or refresh timeout) - also k + * nown as open page policy. The open page policy can be overridden by sett + * ing the per-command-autopre bit on the HIF interface (hif_cmd_autopre). + * The pageclose feature provids a midway between Open and Close page polic + * ies. FOR PERFORMANCE ONLY. +*/ #undef DDRC_SCHED_PAGECLOSE_DEFVAL #undef DDRC_SCHED_PAGECLOSE_SHIFT #undef DDRC_SCHED_PAGECLOSE_MASK -#define DDRC_SCHED_PAGECLOSE_DEFVAL 0x00002005 -#define DDRC_SCHED_PAGECLOSE_SHIFT 2 -#define DDRC_SCHED_PAGECLOSE_MASK 0x00000004U +#define DDRC_SCHED_PAGECLOSE_DEFVAL 0x00002005 +#define DDRC_SCHED_PAGECLOSE_SHIFT 2 +#define DDRC_SCHED_PAGECLOSE_MASK 0x00000004U -/*If set then the bank selector prefers writes over reads. FOR DEBUG ONLY.*/ +/* +* If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. +*/ #undef DDRC_SCHED_PREFER_WRITE_DEFVAL #undef DDRC_SCHED_PREFER_WRITE_SHIFT #undef DDRC_SCHED_PREFER_WRITE_MASK -#define DDRC_SCHED_PREFER_WRITE_DEFVAL 0x00002005 -#define DDRC_SCHED_PREFER_WRITE_SHIFT 1 -#define DDRC_SCHED_PREFER_WRITE_MASK 0x00000002U +#define DDRC_SCHED_PREFER_WRITE_DEFVAL 0x00002005 +#define DDRC_SCHED_PREFER_WRITE_SHIFT 1 +#define DDRC_SCHED_PREFER_WRITE_MASK 0x00000002U -/*Active low signal. When asserted ('0'), all incoming transactions are forced to low priority. This implies that all High Prio - ity Read (HPR) and Variable Priority Read commands (VPR) will be treated as Low Priority Read (LPR) commands. On the write si - e, all Variable Priority Write (VPW) commands will be treated as Normal Priority Write (NPW) commands. Forcing the incoming t - ansactions to low priority implicitly turns off Bypass path for read commands. FOR PERFORMANCE ONLY.*/ +/* +* Active low signal. When asserted ('0'), all incoming transactions are fo + * rced to low priority. This implies that all High Priority Read (HPR) and + * Variable Priority Read commands (VPR) will be treated as Low Priority R + * ead (LPR) commands. On the write side, all Variable Priority Write (VPW) + * commands will be treated as Normal Priority Write (NPW) commands. Forci + * ng the incoming transactions to low priority implicitly turns off Bypass + * path for read commands. FOR PERFORMANCE ONLY. +*/ #undef DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL #undef DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT #undef DDRC_SCHED_FORCE_LOW_PRI_N_MASK -#define DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL 0x00002005 -#define DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT 0 -#define DDRC_SCHED_FORCE_LOW_PRI_N_MASK 0x00000001U +#define DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL 0x00002005 +#define DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT 0 +#define DDRC_SCHED_FORCE_LOW_PRI_N_MASK 0x00000001U -/*Number of transactions that are serviced once the LPR queue goes critical is the smaller of: - (a) This number - (b) Number o - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY.*/ +/* +* Number of transactions that are serviced once the LPR queue goes critica + * l is the smaller of: - (a) This number - (b) Number of transactions avai + * lable. Unit: Transaction. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL 0x0F00007F -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT 24 -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK 0xFF000000U +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL 0x0F00007F +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT 24 +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK 0xFF000000U -/*Number of clocks that the LPR queue can be starved before it goes critical. The minimum valid functional value for this regis - er is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - be disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY.*/ +/* +* Number of clocks that the LPR queue can be starved before it goes critic + * al. The minimum valid functional value for this register is 0x1. Program + * ming it to 0x0 will disable the starvation functionality; during normal + * operation, this function should not be disabled as it will cause excessi + * ve latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL #undef DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT #undef DDRC_PERFLPR1_LPR_MAX_STARVE_MASK -#define DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL 0x0F00007F -#define DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT 0 -#define DDRC_PERFLPR1_LPR_MAX_STARVE_MASK 0x0000FFFFU +#define DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL 0x0F00007F +#define DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT 0 +#define DDRC_PERFLPR1_LPR_MAX_STARVE_MASK 0x0000FFFFU -/*Number of transactions that are serviced once the WR queue goes critical is the smaller of: - (a) This number - (b) Number of - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY.*/ +/* +* Number of transactions that are serviced once the WR queue goes critical + * is the smaller of: - (a) This number - (b) Number of transactions avail + * able. Unit: Transaction. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL 0x0F00007F -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT 24 -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK 0xFF000000U +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL 0x0F00007F +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT 24 +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK 0xFF000000U -/*Number of clocks that the WR queue can be starved before it goes critical. The minimum valid functional value for this regist - r is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - e disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY.*/ +/* +* Number of clocks that the WR queue can be starved before it goes critica + * l. The minimum valid functional value for this register is 0x1. Programm + * ing it to 0x0 will disable the starvation functionality; during normal o + * peration, this function should not be disabled as it will cause excessiv + * e latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFWR1_W_MAX_STARVE_DEFVAL #undef DDRC_PERFWR1_W_MAX_STARVE_SHIFT #undef DDRC_PERFWR1_W_MAX_STARVE_MASK -#define DDRC_PERFWR1_W_MAX_STARVE_DEFVAL 0x0F00007F -#define DDRC_PERFWR1_W_MAX_STARVE_SHIFT 0 -#define DDRC_PERFWR1_W_MAX_STARVE_MASK 0x0000FFFFU +#define DDRC_PERFWR1_W_MAX_STARVE_DEFVAL 0x0F00007F +#define DDRC_PERFWR1_W_MAX_STARVE_SHIFT 0 +#define DDRC_PERFWR1_W_MAX_STARVE_MASK 0x0000FFFFU -/*All even ranks have the same DQ mapping controled by DQMAP0-4 register as rank 0. This register provides DQ swap function for - all odd ranks to support CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap bit 2 with 3, swap bit 4 with 5 and - wap bit 6 with 7. 1: Disable rank based DQ swapping 0: Enable rank based DQ swapping Present only in designs configured to su - port DDR4.*/ +/* +* DQ nibble map for DQ bits [12-15] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_SHIFT 24 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [8-11] Present only in designs configured to s + * upport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_SHIFT 16 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [4-7] Present only in designs configured to su + * pport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_SHIFT 8 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [0-3] Present only in designs configured to su + * pport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_SHIFT 0 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [28-31] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_SHIFT 24 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [24-27] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_SHIFT 16 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [20-23] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_SHIFT 8 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [16-19] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_SHIFT 0 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [44-47] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_SHIFT 24 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [40-43] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_SHIFT 16 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [36-39] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_SHIFT 8 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [32-35] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_SHIFT 0 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [60-63] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_SHIFT 24 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [56-59] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_SHIFT 16 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [52-55] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_SHIFT 8 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [48-51] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_SHIFT 0 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_MASK 0x000000FFU + +/* +* DQ nibble map for DIMM ECC check bits [4-7] Present only in designs conf + * igured to support DDR4. +*/ +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_DEFVAL +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_SHIFT +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_MASK +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_DEFVAL 0x00000000 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_SHIFT 8 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_MASK 0x0000FF00U + +/* +* DQ nibble map for DIMM ECC check bits [0-3] Present only in designs conf + * igured to support DDR4. +*/ +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_DEFVAL +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_SHIFT +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_MASK +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_DEFVAL 0x00000000 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_SHIFT 0 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_MASK 0x000000FFU + +/* +* All even ranks have the same DQ mapping controled by DQMAP0-4 register a + * s rank 0. This register provides DQ swap function for all odd ranks to s + * upport CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap b + * it 2 with 3, swap bit 4 with 5 and swap bit 6 with 7. 1: Disable rank ba + * sed DQ swapping 0: Enable rank based DQ swapping Present only in designs + * configured to support DDR4. +*/ #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT 0 -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK 0x00000001U +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT 0 +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK 0x00000001U -/*When this is set to '0', auto-precharge is disabled for the flushed command in a collision case. Collision cases are write fo - lowed by read to same address, read followed by write to same address, or write followed by write to same address with DBG0.d - s_wc bit = 1 (where same address comparisons exclude the two address bits representing critical word). FOR DEBUG ONLY.*/ +/* +* When this is set to '0', auto-precharge is disabled for the flushed comm + * and in a collision case. Collision cases are write followed by read to s + * ame address, read followed by write to same address, or write followed b + * y write to same address with DBG0.dis_wc bit = 1 (where same address com + * parisons exclude the two address bits representing critical word). FOR D + * EBUG ONLY. +*/ #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL 0x00000000 -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT 4 -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK 0x00000010U +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL 0x00000000 +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT 4 +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK 0x00000010U -/*When 1, disable write combine. FOR DEBUG ONLY*/ +/* +* When 1, disable write combine. FOR DEBUG ONLY +*/ #undef DDRC_DBG0_DIS_WC_DEFVAL #undef DDRC_DBG0_DIS_WC_SHIFT #undef DDRC_DBG0_DIS_WC_MASK -#define DDRC_DBG0_DIS_WC_DEFVAL 0x00000000 -#define DDRC_DBG0_DIS_WC_SHIFT 0 -#define DDRC_DBG0_DIS_WC_MASK 0x00000001U +#define DDRC_DBG0_DIS_WC_DEFVAL 0x00000000 +#define DDRC_DBG0_DIS_WC_SHIFT 0 +#define DDRC_DBG0_DIS_WC_MASK 0x00000001U -/*Setting this register bit to 1 allows refresh and ZQCS commands to be triggered from hardware via the IOs ext_*. If set to 1, - the fields DBGCMD.zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignored by the uMCTL2 logic. Setting this - register bit to 0 allows refresh and ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_short and DBGCMD.rank - _refresh. If set to 0, the hardware pins ext_* have no function, and are ignored by the uMCTL2 logic. This register is static - and may only be changed when the DDRC reset signal, core_ddrc_rstn, is asserted (0).*/ +/* +* Setting this register bit to 1 allows refresh and ZQCS commands to be tr + * iggered from hardware via the IOs ext_*. If set to 1, the fields DBGCMD. + * zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignore + * d by the uMCTL2 logic. Setting this register bit to 0 allows refresh and + * ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_shor + * t and DBGCMD.rank*_refresh. If set to 0, the hardware pins ext_* have no + * function, and are ignored by the uMCTL2 logic. This register is static, + * and may only be changed when the DDRC reset signal, core_ddrc_rstn, is + * asserted (0). +*/ #undef DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL #undef DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT #undef DDRC_DBGCMD_HW_REF_ZQ_EN_MASK -#define DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL 0x00000000 -#define DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT 31 -#define DDRC_DBGCMD_HW_REF_ZQ_EN_MASK 0x80000000U +#define DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL 0x00000000 +#define DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT 31 +#define DDRC_DBGCMD_HW_REF_ZQ_EN_MASK 0x80000000U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ctrlupd_req to the PHY. When this request is stored in - he uMCTL2, the bit is automatically cleared. This operation must only be performed when DFIUPD0.dis_auto_ctrlupd=1.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ct + * rlupd_req to the PHY. When this request is stored in the uMCTL2, the bit + * is automatically cleared. This operation must only be performed when DF + * IUPD0.dis_auto_ctrlupd=1. +*/ #undef DDRC_DBGCMD_CTRLUPD_DEFVAL #undef DDRC_DBGCMD_CTRLUPD_SHIFT #undef DDRC_DBGCMD_CTRLUPD_MASK -#define DDRC_DBGCMD_CTRLUPD_DEFVAL 0x00000000 -#define DDRC_DBGCMD_CTRLUPD_SHIFT 5 -#define DDRC_DBGCMD_CTRLUPD_MASK 0x00000020U +#define DDRC_DBGCMD_CTRLUPD_DEFVAL 0x00000000 +#define DDRC_DBGCMD_CTRLUPD_SHIFT 5 +#define DDRC_DBGCMD_CTRLUPD_MASK 0x00000020U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS (ZQ calibration short)/MPC(ZQ calibration) command to - he SDRAM. When this request is stored in the uMCTL2, the bit is automatically cleared. This operation can be performed only w - en ZQCTL0.dis_auto_zq=1. It is recommended NOT to set this register bit if in Init operating mode. This register bit is ignor - d when in Self-Refresh(except LPDDR4) and SR-Powerdown(LPDDR4) and Deep power-down operating modes and Maximum Power Saving M - de.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS ( + * ZQ calibration short)/MPC(ZQ calibration) command to the SDRAM. When thi + * s request is stored in the uMCTL2, the bit is automatically cleared. Thi + * s operation can be performed only when ZQCTL0.dis_auto_zq=1. It is recom + * mended NOT to set this register bit if in Init operating mode. This regi + * ster bit is ignored when in Self-Refresh(except LPDDR4) and SR-Powerdown + * (LPDDR4) and Deep power-down operating modes and Maximum Power Saving Mo + * de. +*/ #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL 0x00000000 -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT 4 -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK 0x00000010U +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL 0x00000000 +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT 4 +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK 0x00000010U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 1. Writing to this bit causes DBGSTAT.rank1 - refresh_busy to be set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 1. Writing to this bit causes DBGSTAT.rank1_refresh_busy to be + * set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. +*/ #undef DDRC_DBGCMD_RANK1_REFRESH_DEFVAL #undef DDRC_DBGCMD_RANK1_REFRESH_SHIFT #undef DDRC_DBGCMD_RANK1_REFRESH_MASK -#define DDRC_DBGCMD_RANK1_REFRESH_DEFVAL 0x00000000 -#define DDRC_DBGCMD_RANK1_REFRESH_SHIFT 1 -#define DDRC_DBGCMD_RANK1_REFRESH_MASK 0x00000002U +#define DDRC_DBGCMD_RANK1_REFRESH_DEFVAL 0x00000000 +#define DDRC_DBGCMD_RANK1_REFRESH_SHIFT 1 +#define DDRC_DBGCMD_RANK1_REFRESH_MASK 0x00000002U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 0. Writing to this bit causes DBGSTAT.rank0 - refresh_busy to be set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 0. Writing to this bit causes DBGSTAT.rank0_refresh_busy to be + * set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. +*/ #undef DDRC_DBGCMD_RANK0_REFRESH_DEFVAL #undef DDRC_DBGCMD_RANK0_REFRESH_SHIFT #undef DDRC_DBGCMD_RANK0_REFRESH_MASK -#define DDRC_DBGCMD_RANK0_REFRESH_DEFVAL 0x00000000 -#define DDRC_DBGCMD_RANK0_REFRESH_SHIFT 0 -#define DDRC_DBGCMD_RANK0_REFRESH_MASK 0x00000001U +#define DDRC_DBGCMD_RANK0_REFRESH_DEFVAL 0x00000000 +#define DDRC_DBGCMD_RANK0_REFRESH_SHIFT 0 +#define DDRC_DBGCMD_RANK0_REFRESH_MASK 0x00000001U -/*Enable quasi-dynamic register programming outside reset. Program register to 0 to enable quasi-dynamic programming. Set back - egister to 1 once programming is done.*/ +/* +* Enable quasi-dynamic register programming outside reset. Program registe + * r to 0 to enable quasi-dynamic programming. Set back register to 1 once + * programming is done. +*/ #undef DDRC_SWCTL_SW_DONE_DEFVAL #undef DDRC_SWCTL_SW_DONE_SHIFT #undef DDRC_SWCTL_SW_DONE_MASK -#define DDRC_SWCTL_SW_DONE_DEFVAL -#define DDRC_SWCTL_SW_DONE_SHIFT 0 -#define DDRC_SWCTL_SW_DONE_MASK 0x00000001U +#define DDRC_SWCTL_SW_DONE_DEFVAL +#define DDRC_SWCTL_SW_DONE_SHIFT 0 +#define DDRC_SWCTL_SW_DONE_MASK 0x00000001U -/*Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expands every AXI burst into multiple HIF commands, using t - e memory burst length as a unit. If set to 1, then XPI will use half of the memory burst length as a unit. This applies to bo - h reads and writes. When MSTR.data_bus_width==00, setting bl_exp_mode to 1 has no effect. This can be used in cases where Par - ial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.dis_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_cc - _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionality is not supported in the following cases: - UMCTL2_ - ARTIAL_WR=0 - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 and MSTR.reg_ddrc_burst_rdwr=1000 (LP - DR4 only) - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burst_rdwr=0100 (DDR4 - only), with either MSTR.reg_ddrc_burstchop=0 or CRCPARCTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Share - -AC is enabled*/ +/* +* Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expand + * s every AXI burst into multiple HIF commands, using the memory burst len + * gth as a unit. If set to 1, then XPI will use half of the memory burst l + * ength as a unit. This applies to both reads and writes. When MSTR.data_b + * us_width==00, setting bl_exp_mode to 1 has no effect. This can be used i + * n cases where Partial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.d + * is_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_ccd + * _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionali + * ty is not supported in the following cases: - UMCTL2_PARTIAL_WR=0 - UMCT + * L2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 an + * d MSTR.reg_ddrc_burst_rdwr=1000 (LPDDR4 only) - UMCTL2_PARTIAL_WR=1, MST + * R.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burs + * t_rdwr=0100 (DDR4 only), with either MSTR.reg_ddrc_burstchop=0 or CRCPAR + * CTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Shared + * -AC is enabled +*/ #undef DDRC_PCCFG_BL_EXP_MODE_DEFVAL #undef DDRC_PCCFG_BL_EXP_MODE_SHIFT #undef DDRC_PCCFG_BL_EXP_MODE_MASK -#define DDRC_PCCFG_BL_EXP_MODE_DEFVAL 0x00000000 -#define DDRC_PCCFG_BL_EXP_MODE_SHIFT 8 -#define DDRC_PCCFG_BL_EXP_MODE_MASK 0x00000100U +#define DDRC_PCCFG_BL_EXP_MODE_DEFVAL 0x00000000 +#define DDRC_PCCFG_BL_EXP_MODE_SHIFT 8 +#define DDRC_PCCFG_BL_EXP_MODE_MASK 0x00000100U -/*Page match four limit. If set to 1, limits the number of consecutive same page DDRC transactions that can be granted by the P - rt Arbiter to four when Page Match feature is enabled. If set to 0, there is no limit imposed on number of consecutive same p - ge DDRC transactions.*/ +/* +* Page match four limit. If set to 1, limits the number of consecutive sam + * e page DDRC transactions that can be granted by the Port Arbiter to four + * when Page Match feature is enabled. If set to 0, there is no limit impo + * sed on number of consecutive same page DDRC transactions. +*/ #undef DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL #undef DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT #undef DDRC_PCCFG_PAGEMATCH_LIMIT_MASK -#define DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL 0x00000000 -#define DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT 4 -#define DDRC_PCCFG_PAGEMATCH_LIMIT_MASK 0x00000010U +#define DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL 0x00000000 +#define DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT 4 +#define DDRC_PCCFG_PAGEMATCH_LIMIT_MASK 0x00000010U -/*If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals going to DDRC based - n urgent input (awurgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_go2critical_wr and co_gs_go2critica - _lpr/co_gs_go2critical_hpr signals at DDRC are driven to 1b'0.*/ +/* +* If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_l + * pr/co_gs_go2critical_hpr signals going to DDRC based on urgent input (aw + * urgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_ + * go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals a + * t DDRC are driven to 1b'0. +*/ #undef DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL #undef DDRC_PCCFG_GO2CRITICAL_EN_SHIFT #undef DDRC_PCCFG_GO2CRITICAL_EN_MASK -#define DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL 0x00000000 -#define DDRC_PCCFG_GO2CRITICAL_EN_SHIFT 0 -#define DDRC_PCCFG_GO2CRITICAL_EN_MASK 0x00000001U +#define DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL 0x00000000 +#define DDRC_PCCFG_GO2CRITICAL_EN_SHIFT 0 +#define DDRC_PCCFG_GO2CRITICAL_EN_MASK 0x00000001U -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_0_PORT_EN_DEFVAL #undef DDRC_PCTRL_0_PORT_EN_SHIFT #undef DDRC_PCTRL_0_PORT_EN_MASK -#define DDRC_PCTRL_0_PORT_EN_DEFVAL -#define DDRC_PCTRL_0_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_0_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_0_PORT_EN_DEFVAL +#define DDRC_PCTRL_0_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_0_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_1_PORT_EN_DEFVAL #undef DDRC_PCTRL_1_PORT_EN_SHIFT #undef DDRC_PCTRL_1_PORT_EN_MASK -#define DDRC_PCTRL_1_PORT_EN_DEFVAL -#define DDRC_PCTRL_1_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_1_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_1_PORT_EN_DEFVAL +#define DDRC_PCTRL_1_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_1_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT 24 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK 0x03000000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT 24 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK 0x03000000U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values.*/ +/* +* Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT 8 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK 0x00000F00U +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT 8 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK 0x00000F00U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_2_PORT_EN_DEFVAL #undef DDRC_PCTRL_2_PORT_EN_SHIFT #undef DDRC_PCTRL_2_PORT_EN_MASK -#define DDRC_PCTRL_2_PORT_EN_DEFVAL -#define DDRC_PCTRL_2_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_2_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_2_PORT_EN_DEFVAL +#define DDRC_PCTRL_2_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_2_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT 24 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK 0x03000000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT 24 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK 0x03000000U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values.*/ +/* +* Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT 8 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK 0x00000F00U +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT 8 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK 0x00000F00U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_3_PORT_EN_DEFVAL #undef DDRC_PCTRL_3_PORT_EN_SHIFT #undef DDRC_PCTRL_3_PORT_EN_MASK -#define DDRC_PCTRL_3_PORT_EN_DEFVAL -#define DDRC_PCTRL_3_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_3_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_3_PORT_EN_DEFVAL +#define DDRC_PCTRL_3_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_3_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_4_PORT_EN_DEFVAL #undef DDRC_PCTRL_4_PORT_EN_SHIFT #undef DDRC_PCTRL_4_PORT_EN_MASK -#define DDRC_PCTRL_4_PORT_EN_DEFVAL -#define DDRC_PCTRL_4_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_4_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_4_PORT_EN_DEFVAL +#define DDRC_PCTRL_4_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_4_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_5_PORT_EN_DEFVAL #undef DDRC_PCTRL_5_PORT_EN_SHIFT #undef DDRC_PCTRL_5_PORT_EN_MASK -#define DDRC_PCTRL_5_PORT_EN_DEFVAL -#define DDRC_PCTRL_5_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_5_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_5_PORT_EN_DEFVAL +#define DDRC_PCTRL_5_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_5_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)).*/ +/* +* Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). +*/ #undef DDRC_SARBASE0_BASE_ADDR_DEFVAL #undef DDRC_SARBASE0_BASE_ADDR_SHIFT #undef DDRC_SARBASE0_BASE_ADDR_MASK -#define DDRC_SARBASE0_BASE_ADDR_DEFVAL -#define DDRC_SARBASE0_BASE_ADDR_SHIFT 0 -#define DDRC_SARBASE0_BASE_ADDR_MASK 0x000001FFU +#define DDRC_SARBASE0_BASE_ADDR_DEFVAL +#define DDRC_SARBASE0_BASE_ADDR_SHIFT 0 +#define DDRC_SARBASE0_BASE_ADDR_MASK 0x000001FFU -/*Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block.*/ +/* +* Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. +*/ #undef DDRC_SARSIZE0_NBLOCKS_DEFVAL #undef DDRC_SARSIZE0_NBLOCKS_SHIFT #undef DDRC_SARSIZE0_NBLOCKS_MASK -#define DDRC_SARSIZE0_NBLOCKS_DEFVAL -#define DDRC_SARSIZE0_NBLOCKS_SHIFT 0 -#define DDRC_SARSIZE0_NBLOCKS_MASK 0x000000FFU +#define DDRC_SARSIZE0_NBLOCKS_DEFVAL +#define DDRC_SARSIZE0_NBLOCKS_SHIFT 0 +#define DDRC_SARSIZE0_NBLOCKS_MASK 0x000000FFU -/*Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)).*/ +/* +* Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). +*/ #undef DDRC_SARBASE1_BASE_ADDR_DEFVAL #undef DDRC_SARBASE1_BASE_ADDR_SHIFT #undef DDRC_SARBASE1_BASE_ADDR_MASK -#define DDRC_SARBASE1_BASE_ADDR_DEFVAL -#define DDRC_SARBASE1_BASE_ADDR_SHIFT 0 -#define DDRC_SARBASE1_BASE_ADDR_MASK 0x000001FFU +#define DDRC_SARBASE1_BASE_ADDR_DEFVAL +#define DDRC_SARBASE1_BASE_ADDR_SHIFT 0 +#define DDRC_SARBASE1_BASE_ADDR_MASK 0x000001FFU -/*Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block.*/ +/* +* Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. +*/ #undef DDRC_SARSIZE1_NBLOCKS_DEFVAL #undef DDRC_SARSIZE1_NBLOCKS_SHIFT #undef DDRC_SARSIZE1_NBLOCKS_MASK -#define DDRC_SARSIZE1_NBLOCKS_DEFVAL -#define DDRC_SARSIZE1_NBLOCKS_SHIFT 0 -#define DDRC_SARSIZE1_NBLOCKS_MASK 0x000000FFU +#define DDRC_SARSIZE1_NBLOCKS_DEFVAL +#define DDRC_SARSIZE1_NBLOCKS_SHIFT 0 +#define DDRC_SARSIZE1_NBLOCKS_MASK 0x000000FFU -/*Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock.*/ +/* +* Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT 24 -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK 0x1F000000U +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT 24 +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK 0x1F000000U -/*Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value.*/ +/* +* Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT 23 -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK 0x00800000U +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT 23 +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK 0x00800000U -/*Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks*/ +/* +* Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks +*/ #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT 16 -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK 0x003F0000U +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT 16 +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK 0x003F0000U -/*Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e.*/ +/* +* Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT 15 -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK 0x00008000U +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT 15 +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK 0x00008000U -/*Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks*/ +/* +* Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks +*/ #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT 8 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK 0x00003F00U +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT 8 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK 0x00003F00U -/*Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM.*/ +/* +* Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT 0 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK 0x0000003FU +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT 0 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK 0x0000003FU -/*DDR block level reset inside of the DDR Sub System*/ +/* +* DDR block level reset inside of the DDR Sub System +*/ #undef CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL #undef CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT #undef CRF_APB_RST_DDR_SS_DDR_RESET_MASK -#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F -#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 -#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U +#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 +#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U -/*Address Copy*/ +/* +* APM block level reset inside of the DDR Sub System +*/ +#undef CRF_APB_RST_DDR_SS_APM_RESET_DEFVAL +#undef CRF_APB_RST_DDR_SS_APM_RESET_SHIFT +#undef CRF_APB_RST_DDR_SS_APM_RESET_MASK +#define CRF_APB_RST_DDR_SS_APM_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_APM_RESET_SHIFT 2 +#define CRF_APB_RST_DDR_SS_APM_RESET_MASK 0x00000004U + +/* +* Address Copy +*/ #undef DDR_PHY_PGCR0_ADCP_DEFVAL #undef DDR_PHY_PGCR0_ADCP_SHIFT #undef DDR_PHY_PGCR0_ADCP_MASK -#define DDR_PHY_PGCR0_ADCP_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_ADCP_SHIFT 31 -#define DDR_PHY_PGCR0_ADCP_MASK 0x80000000U +#define DDR_PHY_PGCR0_ADCP_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_ADCP_SHIFT 31 +#define DDR_PHY_PGCR0_ADCP_MASK 0x80000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_30_27_SHIFT #undef DDR_PHY_PGCR0_RESERVED_30_27_MASK -#define DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_30_27_SHIFT 27 -#define DDR_PHY_PGCR0_RESERVED_30_27_MASK 0x78000000U +#define DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_30_27_SHIFT 27 +#define DDR_PHY_PGCR0_RESERVED_30_27_MASK 0x78000000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_PGCR0_PHYFRST_DEFVAL #undef DDR_PHY_PGCR0_PHYFRST_SHIFT #undef DDR_PHY_PGCR0_PHYFRST_MASK -#define DDR_PHY_PGCR0_PHYFRST_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_PHYFRST_SHIFT 26 -#define DDR_PHY_PGCR0_PHYFRST_MASK 0x04000000U +#define DDR_PHY_PGCR0_PHYFRST_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_PHYFRST_SHIFT 26 +#define DDR_PHY_PGCR0_PHYFRST_MASK 0x04000000U -/*Oscillator Mode Address/Command Delay Line Select*/ +/* +* Oscillator Mode Address/Command Delay Line Select +*/ #undef DDR_PHY_PGCR0_OSCACDL_DEFVAL #undef DDR_PHY_PGCR0_OSCACDL_SHIFT #undef DDR_PHY_PGCR0_OSCACDL_MASK -#define DDR_PHY_PGCR0_OSCACDL_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCACDL_SHIFT 24 -#define DDR_PHY_PGCR0_OSCACDL_MASK 0x03000000U +#define DDR_PHY_PGCR0_OSCACDL_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCACDL_SHIFT 24 +#define DDR_PHY_PGCR0_OSCACDL_MASK 0x03000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_23_19_SHIFT #undef DDR_PHY_PGCR0_RESERVED_23_19_MASK -#define DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_23_19_SHIFT 19 -#define DDR_PHY_PGCR0_RESERVED_23_19_MASK 0x00F80000U +#define DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_23_19_SHIFT 19 +#define DDR_PHY_PGCR0_RESERVED_23_19_MASK 0x00F80000U -/*Digital Test Output Select*/ +/* +* Digital Test Output Select +*/ #undef DDR_PHY_PGCR0_DTOSEL_DEFVAL #undef DDR_PHY_PGCR0_DTOSEL_SHIFT #undef DDR_PHY_PGCR0_DTOSEL_MASK -#define DDR_PHY_PGCR0_DTOSEL_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_DTOSEL_SHIFT 14 -#define DDR_PHY_PGCR0_DTOSEL_MASK 0x0007C000U +#define DDR_PHY_PGCR0_DTOSEL_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_DTOSEL_SHIFT 14 +#define DDR_PHY_PGCR0_DTOSEL_MASK 0x0007C000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_13_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_13_SHIFT #undef DDR_PHY_PGCR0_RESERVED_13_MASK -#define DDR_PHY_PGCR0_RESERVED_13_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_13_SHIFT 13 -#define DDR_PHY_PGCR0_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_PGCR0_RESERVED_13_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_13_SHIFT 13 +#define DDR_PHY_PGCR0_RESERVED_13_MASK 0x00002000U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_PGCR0_OSCDIV_DEFVAL #undef DDR_PHY_PGCR0_OSCDIV_SHIFT #undef DDR_PHY_PGCR0_OSCDIV_MASK -#define DDR_PHY_PGCR0_OSCDIV_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCDIV_SHIFT 9 -#define DDR_PHY_PGCR0_OSCDIV_MASK 0x00001E00U +#define DDR_PHY_PGCR0_OSCDIV_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCDIV_SHIFT 9 +#define DDR_PHY_PGCR0_OSCDIV_MASK 0x00001E00U -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_PGCR0_OSCEN_DEFVAL #undef DDR_PHY_PGCR0_OSCEN_SHIFT #undef DDR_PHY_PGCR0_OSCEN_MASK -#define DDR_PHY_PGCR0_OSCEN_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCEN_SHIFT 8 -#define DDR_PHY_PGCR0_OSCEN_MASK 0x00000100U +#define DDR_PHY_PGCR0_OSCEN_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCEN_SHIFT 8 +#define DDR_PHY_PGCR0_OSCEN_MASK 0x00000100U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_7_0_SHIFT #undef DDR_PHY_PGCR0_RESERVED_7_0_MASK -#define DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_7_0_SHIFT 0 -#define DDR_PHY_PGCR0_RESERVED_7_0_MASK 0x000000FFU +#define DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_7_0_SHIFT 0 +#define DDR_PHY_PGCR0_RESERVED_7_0_MASK 0x000000FFU -/*Clear Training Status Registers*/ +/* +* Clear Training Status Registers +*/ #undef DDR_PHY_PGCR2_CLRTSTAT_DEFVAL #undef DDR_PHY_PGCR2_CLRTSTAT_SHIFT #undef DDR_PHY_PGCR2_CLRTSTAT_MASK -#define DDR_PHY_PGCR2_CLRTSTAT_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRTSTAT_SHIFT 31 -#define DDR_PHY_PGCR2_CLRTSTAT_MASK 0x80000000U +#define DDR_PHY_PGCR2_CLRTSTAT_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRTSTAT_SHIFT 31 +#define DDR_PHY_PGCR2_CLRTSTAT_MASK 0x80000000U -/*Clear Impedance Calibration*/ +/* +* Clear Impedance Calibration +*/ #undef DDR_PHY_PGCR2_CLRZCAL_DEFVAL #undef DDR_PHY_PGCR2_CLRZCAL_SHIFT #undef DDR_PHY_PGCR2_CLRZCAL_MASK -#define DDR_PHY_PGCR2_CLRZCAL_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRZCAL_SHIFT 30 -#define DDR_PHY_PGCR2_CLRZCAL_MASK 0x40000000U +#define DDR_PHY_PGCR2_CLRZCAL_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRZCAL_SHIFT 30 +#define DDR_PHY_PGCR2_CLRZCAL_MASK 0x40000000U -/*Clear Parity Error*/ +/* +* Clear Parity Error +*/ #undef DDR_PHY_PGCR2_CLRPERR_DEFVAL #undef DDR_PHY_PGCR2_CLRPERR_SHIFT #undef DDR_PHY_PGCR2_CLRPERR_MASK -#define DDR_PHY_PGCR2_CLRPERR_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRPERR_SHIFT 29 -#define DDR_PHY_PGCR2_CLRPERR_MASK 0x20000000U +#define DDR_PHY_PGCR2_CLRPERR_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRPERR_SHIFT 29 +#define DDR_PHY_PGCR2_CLRPERR_MASK 0x20000000U -/*Initialization Complete Pin Configuration*/ +/* +* Initialization Complete Pin Configuration +*/ #undef DDR_PHY_PGCR2_ICPC_DEFVAL #undef DDR_PHY_PGCR2_ICPC_SHIFT #undef DDR_PHY_PGCR2_ICPC_MASK -#define DDR_PHY_PGCR2_ICPC_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_ICPC_SHIFT 28 -#define DDR_PHY_PGCR2_ICPC_MASK 0x10000000U +#define DDR_PHY_PGCR2_ICPC_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_ICPC_SHIFT 28 +#define DDR_PHY_PGCR2_ICPC_MASK 0x10000000U -/*Data Training PUB Mode Exit Timer*/ +/* +* Data Training PUB Mode Exit Timer +*/ #undef DDR_PHY_PGCR2_DTPMXTMR_DEFVAL #undef DDR_PHY_PGCR2_DTPMXTMR_SHIFT #undef DDR_PHY_PGCR2_DTPMXTMR_MASK -#define DDR_PHY_PGCR2_DTPMXTMR_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_DTPMXTMR_SHIFT 20 -#define DDR_PHY_PGCR2_DTPMXTMR_MASK 0x0FF00000U +#define DDR_PHY_PGCR2_DTPMXTMR_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_DTPMXTMR_SHIFT 20 +#define DDR_PHY_PGCR2_DTPMXTMR_MASK 0x0FF00000U -/*Initialization Bypass*/ +/* +* Initialization Bypass +*/ #undef DDR_PHY_PGCR2_INITFSMBYP_DEFVAL #undef DDR_PHY_PGCR2_INITFSMBYP_SHIFT #undef DDR_PHY_PGCR2_INITFSMBYP_MASK -#define DDR_PHY_PGCR2_INITFSMBYP_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_INITFSMBYP_SHIFT 19 -#define DDR_PHY_PGCR2_INITFSMBYP_MASK 0x00080000U +#define DDR_PHY_PGCR2_INITFSMBYP_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_INITFSMBYP_SHIFT 19 +#define DDR_PHY_PGCR2_INITFSMBYP_MASK 0x00080000U -/*PLL FSM Bypass*/ +/* +* PLL FSM Bypass +*/ #undef DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL #undef DDR_PHY_PGCR2_PLLFSMBYP_SHIFT #undef DDR_PHY_PGCR2_PLLFSMBYP_MASK -#define DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_PLLFSMBYP_SHIFT 18 -#define DDR_PHY_PGCR2_PLLFSMBYP_MASK 0x00040000U +#define DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_PLLFSMBYP_SHIFT 18 +#define DDR_PHY_PGCR2_PLLFSMBYP_MASK 0x00040000U -/*Refresh Period*/ +/* +* Refresh Period +*/ #undef DDR_PHY_PGCR2_TREFPRD_DEFVAL #undef DDR_PHY_PGCR2_TREFPRD_SHIFT #undef DDR_PHY_PGCR2_TREFPRD_MASK -#define DDR_PHY_PGCR2_TREFPRD_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_TREFPRD_SHIFT 0 -#define DDR_PHY_PGCR2_TREFPRD_MASK 0x0003FFFFU +#define DDR_PHY_PGCR2_TREFPRD_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_TREFPRD_SHIFT 0 +#define DDR_PHY_PGCR2_TREFPRD_MASK 0x0003FFFFU -/*CKN Enable*/ +/* +* CKN Enable +*/ #undef DDR_PHY_PGCR3_CKNEN_DEFVAL #undef DDR_PHY_PGCR3_CKNEN_SHIFT #undef DDR_PHY_PGCR3_CKNEN_MASK -#define DDR_PHY_PGCR3_CKNEN_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CKNEN_SHIFT 24 -#define DDR_PHY_PGCR3_CKNEN_MASK 0xFF000000U +#define DDR_PHY_PGCR3_CKNEN_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CKNEN_SHIFT 24 +#define DDR_PHY_PGCR3_CKNEN_MASK 0xFF000000U -/*CK Enable*/ +/* +* CK Enable +*/ #undef DDR_PHY_PGCR3_CKEN_DEFVAL #undef DDR_PHY_PGCR3_CKEN_SHIFT #undef DDR_PHY_PGCR3_CKEN_MASK -#define DDR_PHY_PGCR3_CKEN_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CKEN_SHIFT 16 -#define DDR_PHY_PGCR3_CKEN_MASK 0x00FF0000U +#define DDR_PHY_PGCR3_CKEN_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CKEN_SHIFT 16 +#define DDR_PHY_PGCR3_CKEN_MASK 0x00FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR3_RESERVED_15_DEFVAL #undef DDR_PHY_PGCR3_RESERVED_15_SHIFT #undef DDR_PHY_PGCR3_RESERVED_15_MASK -#define DDR_PHY_PGCR3_RESERVED_15_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RESERVED_15_SHIFT 15 -#define DDR_PHY_PGCR3_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_PGCR3_RESERVED_15_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RESERVED_15_SHIFT 15 +#define DDR_PHY_PGCR3_RESERVED_15_MASK 0x00008000U -/*Enable Clock Gating for AC [0] ctl_rd_clk*/ +/* +* Enable Clock Gating for AC [0] ctl_rd_clk +*/ #undef DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACRDCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACRDCLK_MASK -#define DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACRDCLK_SHIFT 13 -#define DDR_PHY_PGCR3_GATEACRDCLK_MASK 0x00006000U +#define DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACRDCLK_SHIFT 13 +#define DDR_PHY_PGCR3_GATEACRDCLK_MASK 0x00006000U -/*Enable Clock Gating for AC [0] ddr_clk*/ +/* +* Enable Clock Gating for AC [0] ddr_clk +*/ #undef DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACDDRCLK_MASK -#define DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT 11 -#define DDR_PHY_PGCR3_GATEACDDRCLK_MASK 0x00001800U +#define DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT 11 +#define DDR_PHY_PGCR3_GATEACDDRCLK_MASK 0x00001800U -/*Enable Clock Gating for AC [0] ctl_clk*/ +/* +* Enable Clock Gating for AC [0] ctl_clk +*/ #undef DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACCTLCLK_MASK -#define DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT 9 -#define DDR_PHY_PGCR3_GATEACCTLCLK_MASK 0x00000600U +#define DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT 9 +#define DDR_PHY_PGCR3_GATEACCTLCLK_MASK 0x00000600U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR3_RESERVED_8_DEFVAL #undef DDR_PHY_PGCR3_RESERVED_8_SHIFT #undef DDR_PHY_PGCR3_RESERVED_8_MASK -#define DDR_PHY_PGCR3_RESERVED_8_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RESERVED_8_SHIFT 8 -#define DDR_PHY_PGCR3_RESERVED_8_MASK 0x00000100U +#define DDR_PHY_PGCR3_RESERVED_8_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RESERVED_8_SHIFT 8 +#define DDR_PHY_PGCR3_RESERVED_8_MASK 0x00000100U -/*Controls DDL Bypass Modes*/ +/* +* Controls DDL Bypass Modes +*/ #undef DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL #undef DDR_PHY_PGCR3_DDLBYPMODE_SHIFT #undef DDR_PHY_PGCR3_DDLBYPMODE_MASK -#define DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_DDLBYPMODE_SHIFT 6 -#define DDR_PHY_PGCR3_DDLBYPMODE_MASK 0x000000C0U +#define DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_DDLBYPMODE_SHIFT 6 +#define DDR_PHY_PGCR3_DDLBYPMODE_MASK 0x000000C0U -/*IO Loop-Back Select*/ +/* +* IO Loop-Back Select +*/ #undef DDR_PHY_PGCR3_IOLB_DEFVAL #undef DDR_PHY_PGCR3_IOLB_SHIFT #undef DDR_PHY_PGCR3_IOLB_MASK -#define DDR_PHY_PGCR3_IOLB_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_IOLB_SHIFT 5 -#define DDR_PHY_PGCR3_IOLB_MASK 0x00000020U +#define DDR_PHY_PGCR3_IOLB_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_IOLB_SHIFT 5 +#define DDR_PHY_PGCR3_IOLB_MASK 0x00000020U -/*AC Receive FIFO Read Mode*/ +/* +* AC Receive FIFO Read Mode +*/ #undef DDR_PHY_PGCR3_RDMODE_DEFVAL #undef DDR_PHY_PGCR3_RDMODE_SHIFT #undef DDR_PHY_PGCR3_RDMODE_MASK -#define DDR_PHY_PGCR3_RDMODE_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RDMODE_SHIFT 3 -#define DDR_PHY_PGCR3_RDMODE_MASK 0x00000018U +#define DDR_PHY_PGCR3_RDMODE_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RDMODE_SHIFT 3 +#define DDR_PHY_PGCR3_RDMODE_MASK 0x00000018U -/*Read FIFO Reset Disable*/ +/* +* Read FIFO Reset Disable +*/ #undef DDR_PHY_PGCR3_DISRST_DEFVAL #undef DDR_PHY_PGCR3_DISRST_SHIFT #undef DDR_PHY_PGCR3_DISRST_MASK -#define DDR_PHY_PGCR3_DISRST_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_DISRST_SHIFT 2 -#define DDR_PHY_PGCR3_DISRST_MASK 0x00000004U +#define DDR_PHY_PGCR3_DISRST_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_DISRST_SHIFT 2 +#define DDR_PHY_PGCR3_DISRST_MASK 0x00000004U -/*Clock Level when Clock Gating*/ +/* +* Clock Level when Clock Gating +*/ #undef DDR_PHY_PGCR3_CLKLEVEL_DEFVAL #undef DDR_PHY_PGCR3_CLKLEVEL_SHIFT #undef DDR_PHY_PGCR3_CLKLEVEL_MASK -#define DDR_PHY_PGCR3_CLKLEVEL_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CLKLEVEL_SHIFT 0 -#define DDR_PHY_PGCR3_CLKLEVEL_MASK 0x00000003U +#define DDR_PHY_PGCR3_CLKLEVEL_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CLKLEVEL_SHIFT 0 +#define DDR_PHY_PGCR3_CLKLEVEL_MASK 0x00000003U -/*Frequency B Ratio Term*/ +/* +* Frequency B Ratio Term +*/ #undef DDR_PHY_PGCR5_FRQBT_DEFVAL #undef DDR_PHY_PGCR5_FRQBT_SHIFT #undef DDR_PHY_PGCR5_FRQBT_MASK -#define DDR_PHY_PGCR5_FRQBT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_FRQBT_SHIFT 24 -#define DDR_PHY_PGCR5_FRQBT_MASK 0xFF000000U +#define DDR_PHY_PGCR5_FRQBT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_FRQBT_SHIFT 24 +#define DDR_PHY_PGCR5_FRQBT_MASK 0xFF000000U -/*Frequency A Ratio Term*/ +/* +* Frequency A Ratio Term +*/ #undef DDR_PHY_PGCR5_FRQAT_DEFVAL #undef DDR_PHY_PGCR5_FRQAT_SHIFT #undef DDR_PHY_PGCR5_FRQAT_MASK -#define DDR_PHY_PGCR5_FRQAT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_FRQAT_SHIFT 16 -#define DDR_PHY_PGCR5_FRQAT_MASK 0x00FF0000U +#define DDR_PHY_PGCR5_FRQAT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_FRQAT_SHIFT 16 +#define DDR_PHY_PGCR5_FRQAT_MASK 0x00FF0000U -/*DFI Disconnect Time Period*/ +/* +* DFI Disconnect Time Period +*/ #undef DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL #undef DDR_PHY_PGCR5_DISCNPERIOD_SHIFT #undef DDR_PHY_PGCR5_DISCNPERIOD_MASK -#define DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DISCNPERIOD_SHIFT 8 -#define DDR_PHY_PGCR5_DISCNPERIOD_MASK 0x0000FF00U +#define DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DISCNPERIOD_SHIFT 8 +#define DDR_PHY_PGCR5_DISCNPERIOD_MASK 0x0000FF00U -/*Receiver bias core side control*/ +/* +* Receiver bias core side control +*/ #undef DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL #undef DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT #undef DDR_PHY_PGCR5_VREF_RBCTRL_MASK -#define DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT 4 -#define DDR_PHY_PGCR5_VREF_RBCTRL_MASK 0x000000F0U +#define DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT 4 +#define DDR_PHY_PGCR5_VREF_RBCTRL_MASK 0x000000F0U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR5_RESERVED_3_DEFVAL #undef DDR_PHY_PGCR5_RESERVED_3_SHIFT #undef DDR_PHY_PGCR5_RESERVED_3_MASK -#define DDR_PHY_PGCR5_RESERVED_3_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_RESERVED_3_SHIFT 3 -#define DDR_PHY_PGCR5_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_PGCR5_RESERVED_3_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_RESERVED_3_SHIFT 3 +#define DDR_PHY_PGCR5_RESERVED_3_MASK 0x00000008U -/*Internal VREF generator REFSEL ragne select*/ +/* +* Internal VREF generator REFSEL ragne select +*/ #undef DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL #undef DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT #undef DDR_PHY_PGCR5_DXREFISELRANGE_MASK -#define DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT 2 -#define DDR_PHY_PGCR5_DXREFISELRANGE_MASK 0x00000004U +#define DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT 2 +#define DDR_PHY_PGCR5_DXREFISELRANGE_MASK 0x00000004U -/*DDL Page Read Write select*/ +/* +* DDL Page Read Write select +*/ #undef DDR_PHY_PGCR5_DDLPGACT_DEFVAL #undef DDR_PHY_PGCR5_DDLPGACT_SHIFT #undef DDR_PHY_PGCR5_DDLPGACT_MASK -#define DDR_PHY_PGCR5_DDLPGACT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DDLPGACT_SHIFT 1 -#define DDR_PHY_PGCR5_DDLPGACT_MASK 0x00000002U +#define DDR_PHY_PGCR5_DDLPGACT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DDLPGACT_SHIFT 1 +#define DDR_PHY_PGCR5_DDLPGACT_MASK 0x00000002U -/*DDL Page Read Write select*/ +/* +* DDL Page Read Write select +*/ #undef DDR_PHY_PGCR5_DDLPGRW_DEFVAL #undef DDR_PHY_PGCR5_DDLPGRW_SHIFT #undef DDR_PHY_PGCR5_DDLPGRW_MASK -#define DDR_PHY_PGCR5_DDLPGRW_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DDLPGRW_SHIFT 0 -#define DDR_PHY_PGCR5_DDLPGRW_MASK 0x00000001U +#define DDR_PHY_PGCR5_DDLPGRW_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DDLPGRW_SHIFT 0 +#define DDR_PHY_PGCR5_DDLPGRW_MASK 0x00000001U -/*PLL Power-Down Time*/ +/* +* PLL Power-Down Time +*/ #undef DDR_PHY_PTR0_TPLLPD_DEFVAL #undef DDR_PHY_PTR0_TPLLPD_SHIFT #undef DDR_PHY_PTR0_TPLLPD_MASK -#define DDR_PHY_PTR0_TPLLPD_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPLLPD_SHIFT 21 -#define DDR_PHY_PTR0_TPLLPD_MASK 0xFFE00000U +#define DDR_PHY_PTR0_TPLLPD_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPLLPD_SHIFT 21 +#define DDR_PHY_PTR0_TPLLPD_MASK 0xFFE00000U -/*PLL Gear Shift Time*/ +/* +* PLL Gear Shift Time +*/ #undef DDR_PHY_PTR0_TPLLGS_DEFVAL #undef DDR_PHY_PTR0_TPLLGS_SHIFT #undef DDR_PHY_PTR0_TPLLGS_MASK -#define DDR_PHY_PTR0_TPLLGS_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPLLGS_SHIFT 6 -#define DDR_PHY_PTR0_TPLLGS_MASK 0x001FFFC0U +#define DDR_PHY_PTR0_TPLLGS_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPLLGS_SHIFT 6 +#define DDR_PHY_PTR0_TPLLGS_MASK 0x001FFFC0U -/*PHY Reset Time*/ +/* +* PHY Reset Time +*/ #undef DDR_PHY_PTR0_TPHYRST_DEFVAL #undef DDR_PHY_PTR0_TPHYRST_SHIFT #undef DDR_PHY_PTR0_TPHYRST_MASK -#define DDR_PHY_PTR0_TPHYRST_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPHYRST_SHIFT 0 -#define DDR_PHY_PTR0_TPHYRST_MASK 0x0000003FU +#define DDR_PHY_PTR0_TPHYRST_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPHYRST_SHIFT 0 +#define DDR_PHY_PTR0_TPHYRST_MASK 0x0000003FU -/*PLL Lock Time*/ +/* +* PLL Lock Time +*/ #undef DDR_PHY_PTR1_TPLLLOCK_DEFVAL #undef DDR_PHY_PTR1_TPLLLOCK_SHIFT #undef DDR_PHY_PTR1_TPLLLOCK_MASK -#define DDR_PHY_PTR1_TPLLLOCK_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_TPLLLOCK_SHIFT 16 -#define DDR_PHY_PTR1_TPLLLOCK_MASK 0xFFFF0000U +#define DDR_PHY_PTR1_TPLLLOCK_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_TPLLLOCK_SHIFT 16 +#define DDR_PHY_PTR1_TPLLLOCK_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PTR1_RESERVED_15_13_DEFVAL #undef DDR_PHY_PTR1_RESERVED_15_13_SHIFT #undef DDR_PHY_PTR1_RESERVED_15_13_MASK -#define DDR_PHY_PTR1_RESERVED_15_13_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_PTR1_RESERVED_15_13_MASK 0x0000E000U +#define DDR_PHY_PTR1_RESERVED_15_13_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_RESERVED_15_13_SHIFT 13 +#define DDR_PHY_PTR1_RESERVED_15_13_MASK 0x0000E000U -/*PLL Reset Time*/ +/* +* PLL Reset Time +*/ #undef DDR_PHY_PTR1_TPLLRST_DEFVAL #undef DDR_PHY_PTR1_TPLLRST_SHIFT #undef DDR_PHY_PTR1_TPLLRST_MASK -#define DDR_PHY_PTR1_TPLLRST_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_TPLLRST_SHIFT 0 -#define DDR_PHY_PTR1_TPLLRST_MASK 0x00001FFFU +#define DDR_PHY_PTR1_TPLLRST_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_TPLLRST_SHIFT 0 +#define DDR_PHY_PTR1_TPLLRST_MASK 0x00001FFFU -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_PLLCR0_PLLBYP_MASK +#define DDR_PHY_PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_PLLCR0_PLLRST_MASK +#define DDR_PHY_PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_PLLCR0_PLLPD_MASK +#define DDR_PHY_PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_PLLCR0_RSTOPM_MASK +#define DDR_PHY_PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_PLLCR0_FRQSEL_MASK +#define DDR_PHY_PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_PLLCR0_RLOCKM_MASK +#define DDR_PHY_PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_PLLCR0_CPPC_SHIFT +#undef DDR_PHY_PLLCR0_CPPC_MASK +#define DDR_PHY_PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_PLLCR0_CPIC_SHIFT +#undef DDR_PHY_PLLCR0_CPIC_MASK +#define DDR_PHY_PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_PLLCR0_GSHIFT_MASK +#define DDR_PHY_PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable +*/ +#undef DDR_PHY_PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_PLLCR0_ATOEN_MASK +#define DDR_PHY_PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_PLLCR0_ATC_DEFVAL +#undef DDR_PHY_PLLCR0_ATC_SHIFT +#undef DDR_PHY_PLLCR0_ATC_MASK +#define DDR_PHY_PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_PLLCR0_DTC_DEFVAL +#undef DDR_PHY_PLLCR0_DTC_SHIFT +#undef DDR_PHY_PLLCR0_DTC_MASK +#define DDR_PHY_PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_31_28_SHIFT #undef DDR_PHY_DSGCR_RESERVED_31_28_MASK -#define DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_31_28_SHIFT 28 -#define DDR_PHY_DSGCR_RESERVED_31_28_MASK 0xF0000000U +#define DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_31_28_SHIFT 28 +#define DDR_PHY_DSGCR_RESERVED_31_28_MASK 0xF0000000U -/*When RDBI enabled, this bit is used to select RDBI CL calculation, if it is 1b1, calculation will use RDBICL, otherwise use d - fault calculation.*/ +/* +* When RDBI enabled, this bit is used to select RDBI CL calculation, if it + * is 1b1, calculation will use RDBICL, otherwise use default calculation. +*/ #undef DDR_PHY_DSGCR_RDBICLSEL_DEFVAL #undef DDR_PHY_DSGCR_RDBICLSEL_SHIFT #undef DDR_PHY_DSGCR_RDBICLSEL_MASK -#define DDR_PHY_DSGCR_RDBICLSEL_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RDBICLSEL_SHIFT 27 -#define DDR_PHY_DSGCR_RDBICLSEL_MASK 0x08000000U +#define DDR_PHY_DSGCR_RDBICLSEL_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RDBICLSEL_SHIFT 27 +#define DDR_PHY_DSGCR_RDBICLSEL_MASK 0x08000000U -/*When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this value.*/ +/* +* When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this v + * alue. +*/ #undef DDR_PHY_DSGCR_RDBICL_DEFVAL #undef DDR_PHY_DSGCR_RDBICL_SHIFT #undef DDR_PHY_DSGCR_RDBICL_MASK -#define DDR_PHY_DSGCR_RDBICL_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RDBICL_SHIFT 24 -#define DDR_PHY_DSGCR_RDBICL_MASK 0x07000000U +#define DDR_PHY_DSGCR_RDBICL_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RDBICL_SHIFT 24 +#define DDR_PHY_DSGCR_RDBICL_MASK 0x07000000U -/*PHY Impedance Update Enable*/ +/* +* PHY Impedance Update Enable +*/ #undef DDR_PHY_DSGCR_PHYZUEN_DEFVAL #undef DDR_PHY_DSGCR_PHYZUEN_SHIFT #undef DDR_PHY_DSGCR_PHYZUEN_MASK -#define DDR_PHY_DSGCR_PHYZUEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PHYZUEN_SHIFT 23 -#define DDR_PHY_DSGCR_PHYZUEN_MASK 0x00800000U +#define DDR_PHY_DSGCR_PHYZUEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PHYZUEN_SHIFT 23 +#define DDR_PHY_DSGCR_PHYZUEN_MASK 0x00800000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_22_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_22_SHIFT #undef DDR_PHY_DSGCR_RESERVED_22_MASK -#define DDR_PHY_DSGCR_RESERVED_22_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_22_SHIFT 22 -#define DDR_PHY_DSGCR_RESERVED_22_MASK 0x00400000U +#define DDR_PHY_DSGCR_RESERVED_22_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_22_SHIFT 22 +#define DDR_PHY_DSGCR_RESERVED_22_MASK 0x00400000U -/*SDRAM Reset Output Enable*/ +/* +* SDRAM Reset Output Enable +*/ #undef DDR_PHY_DSGCR_RSTOE_DEFVAL #undef DDR_PHY_DSGCR_RSTOE_SHIFT #undef DDR_PHY_DSGCR_RSTOE_MASK -#define DDR_PHY_DSGCR_RSTOE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RSTOE_SHIFT 21 -#define DDR_PHY_DSGCR_RSTOE_MASK 0x00200000U +#define DDR_PHY_DSGCR_RSTOE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RSTOE_SHIFT 21 +#define DDR_PHY_DSGCR_RSTOE_MASK 0x00200000U -/*Single Data Rate Mode*/ +/* +* Single Data Rate Mode +*/ #undef DDR_PHY_DSGCR_SDRMODE_DEFVAL #undef DDR_PHY_DSGCR_SDRMODE_SHIFT #undef DDR_PHY_DSGCR_SDRMODE_MASK -#define DDR_PHY_DSGCR_SDRMODE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_SDRMODE_SHIFT 19 -#define DDR_PHY_DSGCR_SDRMODE_MASK 0x00180000U +#define DDR_PHY_DSGCR_SDRMODE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_SDRMODE_SHIFT 19 +#define DDR_PHY_DSGCR_SDRMODE_MASK 0x00180000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_18_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_18_SHIFT #undef DDR_PHY_DSGCR_RESERVED_18_MASK -#define DDR_PHY_DSGCR_RESERVED_18_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_18_SHIFT 18 -#define DDR_PHY_DSGCR_RESERVED_18_MASK 0x00040000U +#define DDR_PHY_DSGCR_RESERVED_18_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_18_SHIFT 18 +#define DDR_PHY_DSGCR_RESERVED_18_MASK 0x00040000U -/*ATO Analog Test Enable*/ +/* +* ATO Analog Test Enable +*/ #undef DDR_PHY_DSGCR_ATOAE_DEFVAL #undef DDR_PHY_DSGCR_ATOAE_SHIFT #undef DDR_PHY_DSGCR_ATOAE_MASK -#define DDR_PHY_DSGCR_ATOAE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_ATOAE_SHIFT 17 -#define DDR_PHY_DSGCR_ATOAE_MASK 0x00020000U +#define DDR_PHY_DSGCR_ATOAE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_ATOAE_SHIFT 17 +#define DDR_PHY_DSGCR_ATOAE_MASK 0x00020000U -/*DTO Output Enable*/ +/* +* DTO Output Enable +*/ #undef DDR_PHY_DSGCR_DTOOE_DEFVAL #undef DDR_PHY_DSGCR_DTOOE_SHIFT #undef DDR_PHY_DSGCR_DTOOE_MASK -#define DDR_PHY_DSGCR_DTOOE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOOE_SHIFT 16 -#define DDR_PHY_DSGCR_DTOOE_MASK 0x00010000U +#define DDR_PHY_DSGCR_DTOOE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOOE_SHIFT 16 +#define DDR_PHY_DSGCR_DTOOE_MASK 0x00010000U -/*DTO I/O Mode*/ +/* +* DTO I/O Mode +*/ #undef DDR_PHY_DSGCR_DTOIOM_DEFVAL #undef DDR_PHY_DSGCR_DTOIOM_SHIFT #undef DDR_PHY_DSGCR_DTOIOM_MASK -#define DDR_PHY_DSGCR_DTOIOM_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOIOM_SHIFT 15 -#define DDR_PHY_DSGCR_DTOIOM_MASK 0x00008000U +#define DDR_PHY_DSGCR_DTOIOM_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOIOM_SHIFT 15 +#define DDR_PHY_DSGCR_DTOIOM_MASK 0x00008000U -/*DTO Power Down Receiver*/ +/* +* DTO Power Down Receiver +*/ #undef DDR_PHY_DSGCR_DTOPDR_DEFVAL #undef DDR_PHY_DSGCR_DTOPDR_SHIFT #undef DDR_PHY_DSGCR_DTOPDR_MASK -#define DDR_PHY_DSGCR_DTOPDR_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOPDR_SHIFT 14 -#define DDR_PHY_DSGCR_DTOPDR_MASK 0x00004000U +#define DDR_PHY_DSGCR_DTOPDR_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOPDR_SHIFT 14 +#define DDR_PHY_DSGCR_DTOPDR_MASK 0x00004000U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_13_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_13_SHIFT #undef DDR_PHY_DSGCR_RESERVED_13_MASK -#define DDR_PHY_DSGCR_RESERVED_13_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_13_SHIFT 13 -#define DDR_PHY_DSGCR_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_DSGCR_RESERVED_13_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_13_SHIFT 13 +#define DDR_PHY_DSGCR_RESERVED_13_MASK 0x00002000U -/*DTO On-Die Termination*/ +/* +* DTO On-Die Termination +*/ #undef DDR_PHY_DSGCR_DTOODT_DEFVAL #undef DDR_PHY_DSGCR_DTOODT_SHIFT #undef DDR_PHY_DSGCR_DTOODT_MASK -#define DDR_PHY_DSGCR_DTOODT_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOODT_SHIFT 12 -#define DDR_PHY_DSGCR_DTOODT_MASK 0x00001000U +#define DDR_PHY_DSGCR_DTOODT_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOODT_SHIFT 12 +#define DDR_PHY_DSGCR_DTOODT_MASK 0x00001000U -/*PHY Update Acknowledge Delay*/ +/* +* PHY Update Acknowledge Delay +*/ #undef DDR_PHY_DSGCR_PUAD_DEFVAL #undef DDR_PHY_DSGCR_PUAD_SHIFT #undef DDR_PHY_DSGCR_PUAD_MASK -#define DDR_PHY_DSGCR_PUAD_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PUAD_SHIFT 6 -#define DDR_PHY_DSGCR_PUAD_MASK 0x00000FC0U +#define DDR_PHY_DSGCR_PUAD_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PUAD_SHIFT 6 +#define DDR_PHY_DSGCR_PUAD_MASK 0x00000FC0U -/*Controller Update Acknowledge Enable*/ +/* +* Controller Update Acknowledge Enable +*/ #undef DDR_PHY_DSGCR_CUAEN_DEFVAL #undef DDR_PHY_DSGCR_CUAEN_SHIFT #undef DDR_PHY_DSGCR_CUAEN_MASK -#define DDR_PHY_DSGCR_CUAEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_CUAEN_SHIFT 5 -#define DDR_PHY_DSGCR_CUAEN_MASK 0x00000020U +#define DDR_PHY_DSGCR_CUAEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_CUAEN_SHIFT 5 +#define DDR_PHY_DSGCR_CUAEN_MASK 0x00000020U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_4_3_SHIFT #undef DDR_PHY_DSGCR_RESERVED_4_3_MASK -#define DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_4_3_SHIFT 3 -#define DDR_PHY_DSGCR_RESERVED_4_3_MASK 0x00000018U +#define DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_4_3_SHIFT 3 +#define DDR_PHY_DSGCR_RESERVED_4_3_MASK 0x00000018U -/*Controller Impedance Update Enable*/ +/* +* Controller Impedance Update Enable +*/ #undef DDR_PHY_DSGCR_CTLZUEN_DEFVAL #undef DDR_PHY_DSGCR_CTLZUEN_SHIFT #undef DDR_PHY_DSGCR_CTLZUEN_MASK -#define DDR_PHY_DSGCR_CTLZUEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_CTLZUEN_SHIFT 2 -#define DDR_PHY_DSGCR_CTLZUEN_MASK 0x00000004U +#define DDR_PHY_DSGCR_CTLZUEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_CTLZUEN_SHIFT 2 +#define DDR_PHY_DSGCR_CTLZUEN_MASK 0x00000004U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_1_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_1_SHIFT #undef DDR_PHY_DSGCR_RESERVED_1_MASK -#define DDR_PHY_DSGCR_RESERVED_1_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_1_SHIFT 1 -#define DDR_PHY_DSGCR_RESERVED_1_MASK 0x00000002U +#define DDR_PHY_DSGCR_RESERVED_1_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_1_SHIFT 1 +#define DDR_PHY_DSGCR_RESERVED_1_MASK 0x00000002U -/*PHY Update Request Enable*/ +/* +* PHY Update Request Enable +*/ #undef DDR_PHY_DSGCR_PUREN_DEFVAL #undef DDR_PHY_DSGCR_PUREN_SHIFT #undef DDR_PHY_DSGCR_PUREN_MASK -#define DDR_PHY_DSGCR_PUREN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PUREN_SHIFT 0 -#define DDR_PHY_DSGCR_PUREN_MASK 0x00000001U +#define DDR_PHY_DSGCR_PUREN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PUREN_SHIFT 0 +#define DDR_PHY_DSGCR_PUREN_MASK 0x00000001U -/*DDR4 Gear Down Timing.*/ +/* +* General Purpose Register 0 +*/ +#undef DDR_PHY_GPR0_GPR0_DEFVAL +#undef DDR_PHY_GPR0_GPR0_SHIFT +#undef DDR_PHY_GPR0_GPR0_MASK +#define DDR_PHY_GPR0_GPR0_DEFVAL +#define DDR_PHY_GPR0_GPR0_SHIFT 0 +#define DDR_PHY_GPR0_GPR0_MASK 0xFFFFFFFFU + +/* +* DDR4 Gear Down Timing. +*/ #undef DDR_PHY_DCR_GEARDN_DEFVAL #undef DDR_PHY_DCR_GEARDN_SHIFT #undef DDR_PHY_DCR_GEARDN_MASK -#define DDR_PHY_DCR_GEARDN_DEFVAL 0x0000040D -#define DDR_PHY_DCR_GEARDN_SHIFT 31 -#define DDR_PHY_DCR_GEARDN_MASK 0x80000000U +#define DDR_PHY_DCR_GEARDN_DEFVAL 0x0000040D +#define DDR_PHY_DCR_GEARDN_SHIFT 31 +#define DDR_PHY_DCR_GEARDN_MASK 0x80000000U -/*Un-used Bank Group*/ +/* +* Un-used Bank Group +*/ #undef DDR_PHY_DCR_UBG_DEFVAL #undef DDR_PHY_DCR_UBG_SHIFT #undef DDR_PHY_DCR_UBG_MASK -#define DDR_PHY_DCR_UBG_DEFVAL 0x0000040D -#define DDR_PHY_DCR_UBG_SHIFT 30 -#define DDR_PHY_DCR_UBG_MASK 0x40000000U +#define DDR_PHY_DCR_UBG_DEFVAL 0x0000040D +#define DDR_PHY_DCR_UBG_SHIFT 30 +#define DDR_PHY_DCR_UBG_MASK 0x40000000U -/*Un-buffered DIMM Address Mirroring*/ +/* +* Un-buffered DIMM Address Mirroring +*/ #undef DDR_PHY_DCR_UDIMM_DEFVAL #undef DDR_PHY_DCR_UDIMM_SHIFT #undef DDR_PHY_DCR_UDIMM_MASK -#define DDR_PHY_DCR_UDIMM_DEFVAL 0x0000040D -#define DDR_PHY_DCR_UDIMM_SHIFT 29 -#define DDR_PHY_DCR_UDIMM_MASK 0x20000000U +#define DDR_PHY_DCR_UDIMM_DEFVAL 0x0000040D +#define DDR_PHY_DCR_UDIMM_SHIFT 29 +#define DDR_PHY_DCR_UDIMM_MASK 0x20000000U -/*DDR 2T Timing*/ +/* +* DDR 2T Timing +*/ #undef DDR_PHY_DCR_DDR2T_DEFVAL #undef DDR_PHY_DCR_DDR2T_SHIFT #undef DDR_PHY_DCR_DDR2T_MASK -#define DDR_PHY_DCR_DDR2T_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDR2T_SHIFT 28 -#define DDR_PHY_DCR_DDR2T_MASK 0x10000000U +#define DDR_PHY_DCR_DDR2T_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDR2T_SHIFT 28 +#define DDR_PHY_DCR_DDR2T_MASK 0x10000000U -/*No Simultaneous Rank Access*/ +/* +* No Simultaneous Rank Access +*/ #undef DDR_PHY_DCR_NOSRA_DEFVAL #undef DDR_PHY_DCR_NOSRA_SHIFT #undef DDR_PHY_DCR_NOSRA_MASK -#define DDR_PHY_DCR_NOSRA_DEFVAL 0x0000040D -#define DDR_PHY_DCR_NOSRA_SHIFT 27 -#define DDR_PHY_DCR_NOSRA_MASK 0x08000000U +#define DDR_PHY_DCR_NOSRA_DEFVAL 0x0000040D +#define DDR_PHY_DCR_NOSRA_SHIFT 27 +#define DDR_PHY_DCR_NOSRA_MASK 0x08000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DCR_RESERVED_26_18_DEFVAL #undef DDR_PHY_DCR_RESERVED_26_18_SHIFT #undef DDR_PHY_DCR_RESERVED_26_18_MASK -#define DDR_PHY_DCR_RESERVED_26_18_DEFVAL 0x0000040D -#define DDR_PHY_DCR_RESERVED_26_18_SHIFT 18 -#define DDR_PHY_DCR_RESERVED_26_18_MASK 0x07FC0000U +#define DDR_PHY_DCR_RESERVED_26_18_DEFVAL 0x0000040D +#define DDR_PHY_DCR_RESERVED_26_18_SHIFT 18 +#define DDR_PHY_DCR_RESERVED_26_18_MASK 0x07FC0000U -/*Byte Mask*/ +/* +* Byte Mask +*/ #undef DDR_PHY_DCR_BYTEMASK_DEFVAL #undef DDR_PHY_DCR_BYTEMASK_SHIFT #undef DDR_PHY_DCR_BYTEMASK_MASK -#define DDR_PHY_DCR_BYTEMASK_DEFVAL 0x0000040D -#define DDR_PHY_DCR_BYTEMASK_SHIFT 10 -#define DDR_PHY_DCR_BYTEMASK_MASK 0x0003FC00U +#define DDR_PHY_DCR_BYTEMASK_DEFVAL 0x0000040D +#define DDR_PHY_DCR_BYTEMASK_SHIFT 10 +#define DDR_PHY_DCR_BYTEMASK_MASK 0x0003FC00U -/*DDR Type*/ +/* +* DDR Type +*/ #undef DDR_PHY_DCR_DDRTYPE_DEFVAL #undef DDR_PHY_DCR_DDRTYPE_SHIFT #undef DDR_PHY_DCR_DDRTYPE_MASK -#define DDR_PHY_DCR_DDRTYPE_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDRTYPE_SHIFT 8 -#define DDR_PHY_DCR_DDRTYPE_MASK 0x00000300U +#define DDR_PHY_DCR_DDRTYPE_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDRTYPE_SHIFT 8 +#define DDR_PHY_DCR_DDRTYPE_MASK 0x00000300U -/*Multi-Purpose Register (MPR) DQ (DDR3 Only)*/ +/* +* Multi-Purpose Register (MPR) DQ (DDR3 Only) +*/ #undef DDR_PHY_DCR_MPRDQ_DEFVAL #undef DDR_PHY_DCR_MPRDQ_SHIFT #undef DDR_PHY_DCR_MPRDQ_MASK -#define DDR_PHY_DCR_MPRDQ_DEFVAL 0x0000040D -#define DDR_PHY_DCR_MPRDQ_SHIFT 7 -#define DDR_PHY_DCR_MPRDQ_MASK 0x00000080U +#define DDR_PHY_DCR_MPRDQ_DEFVAL 0x0000040D +#define DDR_PHY_DCR_MPRDQ_SHIFT 7 +#define DDR_PHY_DCR_MPRDQ_MASK 0x00000080U -/*Primary DQ (DDR3 Only)*/ +/* +* Primary DQ (DDR3 Only) +*/ #undef DDR_PHY_DCR_PDQ_DEFVAL #undef DDR_PHY_DCR_PDQ_SHIFT #undef DDR_PHY_DCR_PDQ_MASK -#define DDR_PHY_DCR_PDQ_DEFVAL 0x0000040D -#define DDR_PHY_DCR_PDQ_SHIFT 4 -#define DDR_PHY_DCR_PDQ_MASK 0x00000070U +#define DDR_PHY_DCR_PDQ_DEFVAL 0x0000040D +#define DDR_PHY_DCR_PDQ_SHIFT 4 +#define DDR_PHY_DCR_PDQ_MASK 0x00000070U -/*DDR 8-Bank*/ +/* +* DDR 8-Bank +*/ #undef DDR_PHY_DCR_DDR8BNK_DEFVAL #undef DDR_PHY_DCR_DDR8BNK_SHIFT #undef DDR_PHY_DCR_DDR8BNK_MASK -#define DDR_PHY_DCR_DDR8BNK_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDR8BNK_SHIFT 3 -#define DDR_PHY_DCR_DDR8BNK_MASK 0x00000008U +#define DDR_PHY_DCR_DDR8BNK_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDR8BNK_SHIFT 3 +#define DDR_PHY_DCR_DDR8BNK_MASK 0x00000008U -/*DDR Mode*/ +/* +* DDR Mode +*/ #undef DDR_PHY_DCR_DDRMD_DEFVAL #undef DDR_PHY_DCR_DDRMD_SHIFT #undef DDR_PHY_DCR_DDRMD_MASK -#define DDR_PHY_DCR_DDRMD_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDRMD_SHIFT 0 -#define DDR_PHY_DCR_DDRMD_MASK 0x00000007U +#define DDR_PHY_DCR_DDRMD_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDRMD_SHIFT 0 +#define DDR_PHY_DCR_DDRMD_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_31_29_SHIFT #undef DDR_PHY_DTPR0_RESERVED_31_29_MASK -#define DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DTPR0_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DTPR0_RESERVED_31_29_MASK 0xE0000000U -/*Activate to activate command delay (different banks)*/ +/* +* Activate to activate command delay (different banks) +*/ #undef DDR_PHY_DTPR0_TRRD_DEFVAL #undef DDR_PHY_DTPR0_TRRD_SHIFT #undef DDR_PHY_DTPR0_TRRD_MASK -#define DDR_PHY_DTPR0_TRRD_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRRD_SHIFT 24 -#define DDR_PHY_DTPR0_TRRD_MASK 0x1F000000U +#define DDR_PHY_DTPR0_TRRD_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRRD_SHIFT 24 +#define DDR_PHY_DTPR0_TRRD_MASK 0x1F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_23_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_23_SHIFT #undef DDR_PHY_DTPR0_RESERVED_23_MASK -#define DDR_PHY_DTPR0_RESERVED_23_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_23_SHIFT 23 -#define DDR_PHY_DTPR0_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DTPR0_RESERVED_23_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_23_SHIFT 23 +#define DDR_PHY_DTPR0_RESERVED_23_MASK 0x00800000U -/*Activate to precharge command delay*/ +/* +* Activate to precharge command delay +*/ #undef DDR_PHY_DTPR0_TRAS_DEFVAL #undef DDR_PHY_DTPR0_TRAS_SHIFT #undef DDR_PHY_DTPR0_TRAS_MASK -#define DDR_PHY_DTPR0_TRAS_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRAS_SHIFT 16 -#define DDR_PHY_DTPR0_TRAS_MASK 0x007F0000U +#define DDR_PHY_DTPR0_TRAS_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRAS_SHIFT 16 +#define DDR_PHY_DTPR0_TRAS_MASK 0x007F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_15_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_15_SHIFT #undef DDR_PHY_DTPR0_RESERVED_15_MASK -#define DDR_PHY_DTPR0_RESERVED_15_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_15_SHIFT 15 -#define DDR_PHY_DTPR0_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DTPR0_RESERVED_15_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_15_SHIFT 15 +#define DDR_PHY_DTPR0_RESERVED_15_MASK 0x00008000U -/*Precharge command period*/ +/* +* Precharge command period +*/ #undef DDR_PHY_DTPR0_TRP_DEFVAL #undef DDR_PHY_DTPR0_TRP_SHIFT #undef DDR_PHY_DTPR0_TRP_MASK -#define DDR_PHY_DTPR0_TRP_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRP_SHIFT 8 -#define DDR_PHY_DTPR0_TRP_MASK 0x00007F00U +#define DDR_PHY_DTPR0_TRP_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRP_SHIFT 8 +#define DDR_PHY_DTPR0_TRP_MASK 0x00007F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR0_RESERVED_7_5_MASK -#define DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR0_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR0_RESERVED_7_5_MASK 0x000000E0U -/*Internal read to precharge command delay*/ +/* +* Internal read to precharge command delay +*/ #undef DDR_PHY_DTPR0_TRTP_DEFVAL #undef DDR_PHY_DTPR0_TRTP_SHIFT #undef DDR_PHY_DTPR0_TRTP_MASK -#define DDR_PHY_DTPR0_TRTP_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRTP_SHIFT 0 -#define DDR_PHY_DTPR0_TRTP_MASK 0x0000001FU +#define DDR_PHY_DTPR0_TRTP_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRTP_SHIFT 0 +#define DDR_PHY_DTPR0_TRTP_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_31_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_31_SHIFT #undef DDR_PHY_DTPR1_RESERVED_31_MASK -#define DDR_PHY_DTPR1_RESERVED_31_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_31_SHIFT 31 -#define DDR_PHY_DTPR1_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DTPR1_RESERVED_31_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_31_SHIFT 31 +#define DDR_PHY_DTPR1_RESERVED_31_MASK 0x80000000U -/*Minimum delay from when write leveling mode is programmed to the first DQS/DQS# rising edge.*/ +/* +* Minimum delay from when write leveling mode is programmed to the first D + * QS/DQS# rising edge. +*/ #undef DDR_PHY_DTPR1_TWLMRD_DEFVAL #undef DDR_PHY_DTPR1_TWLMRD_SHIFT #undef DDR_PHY_DTPR1_TWLMRD_MASK -#define DDR_PHY_DTPR1_TWLMRD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TWLMRD_SHIFT 24 -#define DDR_PHY_DTPR1_TWLMRD_MASK 0x7F000000U +#define DDR_PHY_DTPR1_TWLMRD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TWLMRD_SHIFT 24 +#define DDR_PHY_DTPR1_TWLMRD_MASK 0x7F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_23_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_23_SHIFT #undef DDR_PHY_DTPR1_RESERVED_23_MASK -#define DDR_PHY_DTPR1_RESERVED_23_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_23_SHIFT 23 -#define DDR_PHY_DTPR1_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DTPR1_RESERVED_23_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_23_SHIFT 23 +#define DDR_PHY_DTPR1_RESERVED_23_MASK 0x00800000U -/*4-bank activate period*/ +/* +* 4-bank activate period +*/ #undef DDR_PHY_DTPR1_TFAW_DEFVAL #undef DDR_PHY_DTPR1_TFAW_SHIFT #undef DDR_PHY_DTPR1_TFAW_MASK -#define DDR_PHY_DTPR1_TFAW_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TFAW_SHIFT 16 -#define DDR_PHY_DTPR1_TFAW_MASK 0x007F0000U +#define DDR_PHY_DTPR1_TFAW_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TFAW_SHIFT 16 +#define DDR_PHY_DTPR1_TFAW_MASK 0x007F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_15_11_SHIFT #undef DDR_PHY_DTPR1_RESERVED_15_11_MASK -#define DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_15_11_SHIFT 11 -#define DDR_PHY_DTPR1_RESERVED_15_11_MASK 0x0000F800U +#define DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_15_11_SHIFT 11 +#define DDR_PHY_DTPR1_RESERVED_15_11_MASK 0x0000F800U -/*Load mode update delay (DDR4 and DDR3 only)*/ +/* +* Load mode update delay (DDR4 and DDR3 only) +*/ #undef DDR_PHY_DTPR1_TMOD_DEFVAL #undef DDR_PHY_DTPR1_TMOD_SHIFT #undef DDR_PHY_DTPR1_TMOD_MASK -#define DDR_PHY_DTPR1_TMOD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TMOD_SHIFT 8 -#define DDR_PHY_DTPR1_TMOD_MASK 0x00000700U +#define DDR_PHY_DTPR1_TMOD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TMOD_SHIFT 8 +#define DDR_PHY_DTPR1_TMOD_MASK 0x00000700U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR1_RESERVED_7_5_MASK -#define DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR1_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR1_RESERVED_7_5_MASK 0x000000E0U -/*Load mode cycle time*/ +/* +* Load mode cycle time +*/ #undef DDR_PHY_DTPR1_TMRD_DEFVAL #undef DDR_PHY_DTPR1_TMRD_SHIFT #undef DDR_PHY_DTPR1_TMRD_MASK -#define DDR_PHY_DTPR1_TMRD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TMRD_SHIFT 0 -#define DDR_PHY_DTPR1_TMRD_MASK 0x0000001FU +#define DDR_PHY_DTPR1_TMRD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TMRD_SHIFT 0 +#define DDR_PHY_DTPR1_TMRD_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_31_29_SHIFT #undef DDR_PHY_DTPR2_RESERVED_31_29_MASK -#define DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DTPR2_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DTPR2_RESERVED_31_29_MASK 0xE0000000U -/*Read to Write command delay. Valid values are*/ +/* +* Read to Write command delay. Valid values are +*/ #undef DDR_PHY_DTPR2_TRTW_DEFVAL #undef DDR_PHY_DTPR2_TRTW_SHIFT #undef DDR_PHY_DTPR2_TRTW_MASK -#define DDR_PHY_DTPR2_TRTW_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TRTW_SHIFT 28 -#define DDR_PHY_DTPR2_TRTW_MASK 0x10000000U +#define DDR_PHY_DTPR2_TRTW_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TRTW_SHIFT 28 +#define DDR_PHY_DTPR2_TRTW_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_27_25_SHIFT #undef DDR_PHY_DTPR2_RESERVED_27_25_MASK -#define DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_27_25_SHIFT 25 -#define DDR_PHY_DTPR2_RESERVED_27_25_MASK 0x0E000000U +#define DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_27_25_SHIFT 25 +#define DDR_PHY_DTPR2_RESERVED_27_25_MASK 0x0E000000U -/*Read to ODT delay (DDR3 only)*/ +/* +* Read to ODT delay (DDR3 only) +*/ #undef DDR_PHY_DTPR2_TRTODT_DEFVAL #undef DDR_PHY_DTPR2_TRTODT_SHIFT #undef DDR_PHY_DTPR2_TRTODT_MASK -#define DDR_PHY_DTPR2_TRTODT_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TRTODT_SHIFT 24 -#define DDR_PHY_DTPR2_TRTODT_MASK 0x01000000U +#define DDR_PHY_DTPR2_TRTODT_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TRTODT_SHIFT 24 +#define DDR_PHY_DTPR2_TRTODT_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_23_20_SHIFT #undef DDR_PHY_DTPR2_RESERVED_23_20_MASK -#define DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DTPR2_RESERVED_23_20_MASK 0x00F00000U +#define DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_23_20_SHIFT 20 +#define DDR_PHY_DTPR2_RESERVED_23_20_MASK 0x00F00000U -/*CKE minimum pulse width*/ +/* +* CKE minimum pulse width +*/ #undef DDR_PHY_DTPR2_TCKE_DEFVAL #undef DDR_PHY_DTPR2_TCKE_SHIFT #undef DDR_PHY_DTPR2_TCKE_MASK -#define DDR_PHY_DTPR2_TCKE_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TCKE_SHIFT 16 -#define DDR_PHY_DTPR2_TCKE_MASK 0x000F0000U +#define DDR_PHY_DTPR2_TCKE_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TCKE_SHIFT 16 +#define DDR_PHY_DTPR2_TCKE_MASK 0x000F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_15_10_SHIFT #undef DDR_PHY_DTPR2_RESERVED_15_10_MASK -#define DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_DTPR2_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_DTPR2_RESERVED_15_10_MASK 0x0000FC00U -/*Self refresh exit delay*/ +/* +* Self refresh exit delay +*/ #undef DDR_PHY_DTPR2_TXS_DEFVAL #undef DDR_PHY_DTPR2_TXS_SHIFT #undef DDR_PHY_DTPR2_TXS_MASK -#define DDR_PHY_DTPR2_TXS_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TXS_SHIFT 0 -#define DDR_PHY_DTPR2_TXS_MASK 0x000003FFU +#define DDR_PHY_DTPR2_TXS_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TXS_SHIFT 0 +#define DDR_PHY_DTPR2_TXS_MASK 0x000003FFU -/*ODT turn-off delay extension*/ +/* +* ODT turn-off delay extension +*/ #undef DDR_PHY_DTPR3_TOFDX_DEFVAL #undef DDR_PHY_DTPR3_TOFDX_SHIFT #undef DDR_PHY_DTPR3_TOFDX_MASK -#define DDR_PHY_DTPR3_TOFDX_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TOFDX_SHIFT 29 -#define DDR_PHY_DTPR3_TOFDX_MASK 0xE0000000U +#define DDR_PHY_DTPR3_TOFDX_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TOFDX_SHIFT 29 +#define DDR_PHY_DTPR3_TOFDX_MASK 0xE0000000U -/*Read to read and write to write command delay*/ +/* +* Read to read and write to write command delay +*/ #undef DDR_PHY_DTPR3_TCCD_DEFVAL #undef DDR_PHY_DTPR3_TCCD_SHIFT #undef DDR_PHY_DTPR3_TCCD_MASK -#define DDR_PHY_DTPR3_TCCD_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TCCD_SHIFT 26 -#define DDR_PHY_DTPR3_TCCD_MASK 0x1C000000U +#define DDR_PHY_DTPR3_TCCD_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TCCD_SHIFT 26 +#define DDR_PHY_DTPR3_TCCD_MASK 0x1C000000U -/*DLL locking time*/ +/* +* DLL locking time +*/ #undef DDR_PHY_DTPR3_TDLLK_DEFVAL #undef DDR_PHY_DTPR3_TDLLK_SHIFT #undef DDR_PHY_DTPR3_TDLLK_MASK -#define DDR_PHY_DTPR3_TDLLK_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDLLK_SHIFT 16 -#define DDR_PHY_DTPR3_TDLLK_MASK 0x03FF0000U +#define DDR_PHY_DTPR3_TDLLK_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDLLK_SHIFT 16 +#define DDR_PHY_DTPR3_TDLLK_MASK 0x03FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL #undef DDR_PHY_DTPR3_RESERVED_15_12_SHIFT #undef DDR_PHY_DTPR3_RESERVED_15_12_MASK -#define DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_RESERVED_15_12_SHIFT 12 -#define DDR_PHY_DTPR3_RESERVED_15_12_MASK 0x0000F000U +#define DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_RESERVED_15_12_SHIFT 12 +#define DDR_PHY_DTPR3_RESERVED_15_12_MASK 0x0000F000U -/*Maximum DQS output access time from CK/CK# (LPDDR2/3 only)*/ +/* +* Maximum DQS output access time from CK/CK# (LPDDR2/3 only) +*/ #undef DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL #undef DDR_PHY_DTPR3_TDQSCKMAX_SHIFT #undef DDR_PHY_DTPR3_TDQSCKMAX_MASK -#define DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDQSCKMAX_SHIFT 8 -#define DDR_PHY_DTPR3_TDQSCKMAX_MASK 0x00000F00U +#define DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDQSCKMAX_SHIFT 8 +#define DDR_PHY_DTPR3_TDQSCKMAX_MASK 0x00000F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL #undef DDR_PHY_DTPR3_RESERVED_7_3_SHIFT #undef DDR_PHY_DTPR3_RESERVED_7_3_MASK -#define DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_RESERVED_7_3_SHIFT 3 -#define DDR_PHY_DTPR3_RESERVED_7_3_MASK 0x000000F8U +#define DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_RESERVED_7_3_SHIFT 3 +#define DDR_PHY_DTPR3_RESERVED_7_3_MASK 0x000000F8U -/*DQS output access time from CK/CK# (LPDDR2/3 only)*/ +/* +* DQS output access time from CK/CK# (LPDDR2/3 only) +*/ #undef DDR_PHY_DTPR3_TDQSCK_DEFVAL #undef DDR_PHY_DTPR3_TDQSCK_SHIFT #undef DDR_PHY_DTPR3_TDQSCK_MASK -#define DDR_PHY_DTPR3_TDQSCK_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDQSCK_SHIFT 0 -#define DDR_PHY_DTPR3_TDQSCK_MASK 0x00000007U +#define DDR_PHY_DTPR3_TDQSCK_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDQSCK_SHIFT 0 +#define DDR_PHY_DTPR3_TDQSCK_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_31_30_SHIFT #undef DDR_PHY_DTPR4_RESERVED_31_30_MASK -#define DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DTPR4_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DTPR4_RESERVED_31_30_MASK 0xC0000000U -/*ODT turn-on/turn-off delays (DDR2 only)*/ +/* +* ODT turn-on/turn-off delays (DDR2 only) +*/ #undef DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL #undef DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT #undef DDR_PHY_DTPR4_TAOND_TAOFD_MASK -#define DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT 28 -#define DDR_PHY_DTPR4_TAOND_TAOFD_MASK 0x30000000U +#define DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT 28 +#define DDR_PHY_DTPR4_TAOND_TAOFD_MASK 0x30000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_27_26_SHIFT #undef DDR_PHY_DTPR4_RESERVED_27_26_MASK -#define DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_27_26_SHIFT 26 -#define DDR_PHY_DTPR4_RESERVED_27_26_MASK 0x0C000000U +#define DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_27_26_SHIFT 26 +#define DDR_PHY_DTPR4_RESERVED_27_26_MASK 0x0C000000U -/*Refresh-to-Refresh*/ +/* +* Refresh-to-Refresh +*/ #undef DDR_PHY_DTPR4_TRFC_DEFVAL #undef DDR_PHY_DTPR4_TRFC_SHIFT #undef DDR_PHY_DTPR4_TRFC_MASK -#define DDR_PHY_DTPR4_TRFC_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TRFC_SHIFT 16 -#define DDR_PHY_DTPR4_TRFC_MASK 0x03FF0000U +#define DDR_PHY_DTPR4_TRFC_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TRFC_SHIFT 16 +#define DDR_PHY_DTPR4_TRFC_MASK 0x03FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_15_14_SHIFT #undef DDR_PHY_DTPR4_RESERVED_15_14_MASK -#define DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DTPR4_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DTPR4_RESERVED_15_14_MASK 0x0000C000U -/*Write leveling output delay*/ +/* +* Write leveling output delay +*/ #undef DDR_PHY_DTPR4_TWLO_DEFVAL #undef DDR_PHY_DTPR4_TWLO_SHIFT #undef DDR_PHY_DTPR4_TWLO_MASK -#define DDR_PHY_DTPR4_TWLO_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TWLO_SHIFT 8 -#define DDR_PHY_DTPR4_TWLO_MASK 0x00003F00U +#define DDR_PHY_DTPR4_TWLO_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TWLO_SHIFT 8 +#define DDR_PHY_DTPR4_TWLO_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR4_RESERVED_7_5_MASK -#define DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR4_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR4_RESERVED_7_5_MASK 0x000000E0U -/*Power down exit delay*/ +/* +* Power down exit delay +*/ #undef DDR_PHY_DTPR4_TXP_DEFVAL #undef DDR_PHY_DTPR4_TXP_SHIFT #undef DDR_PHY_DTPR4_TXP_MASK -#define DDR_PHY_DTPR4_TXP_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TXP_SHIFT 0 -#define DDR_PHY_DTPR4_TXP_MASK 0x0000001FU +#define DDR_PHY_DTPR4_TXP_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TXP_SHIFT 0 +#define DDR_PHY_DTPR4_TXP_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_31_24_SHIFT #undef DDR_PHY_DTPR5_RESERVED_31_24_MASK -#define DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DTPR5_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DTPR5_RESERVED_31_24_MASK 0xFF000000U -/*Activate to activate command delay (same bank)*/ +/* +* Activate to activate command delay (same bank) +*/ #undef DDR_PHY_DTPR5_TRC_DEFVAL #undef DDR_PHY_DTPR5_TRC_SHIFT #undef DDR_PHY_DTPR5_TRC_MASK -#define DDR_PHY_DTPR5_TRC_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TRC_SHIFT 16 -#define DDR_PHY_DTPR5_TRC_MASK 0x00FF0000U +#define DDR_PHY_DTPR5_TRC_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TRC_SHIFT 16 +#define DDR_PHY_DTPR5_TRC_MASK 0x00FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_15_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_15_SHIFT #undef DDR_PHY_DTPR5_RESERVED_15_MASK -#define DDR_PHY_DTPR5_RESERVED_15_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DTPR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DTPR5_RESERVED_15_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DTPR5_RESERVED_15_MASK 0x00008000U -/*Activate to read or write delay*/ +/* +* Activate to read or write delay +*/ #undef DDR_PHY_DTPR5_TRCD_DEFVAL #undef DDR_PHY_DTPR5_TRCD_SHIFT #undef DDR_PHY_DTPR5_TRCD_MASK -#define DDR_PHY_DTPR5_TRCD_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TRCD_SHIFT 8 -#define DDR_PHY_DTPR5_TRCD_MASK 0x00007F00U +#define DDR_PHY_DTPR5_TRCD_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TRCD_SHIFT 8 +#define DDR_PHY_DTPR5_TRCD_MASK 0x00007F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR5_RESERVED_7_5_MASK -#define DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR5_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR5_RESERVED_7_5_MASK 0x000000E0U -/*Internal write to read command delay*/ +/* +* Internal write to read command delay +*/ #undef DDR_PHY_DTPR5_TWTR_DEFVAL #undef DDR_PHY_DTPR5_TWTR_SHIFT #undef DDR_PHY_DTPR5_TWTR_MASK -#define DDR_PHY_DTPR5_TWTR_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TWTR_SHIFT 0 -#define DDR_PHY_DTPR5_TWTR_MASK 0x0000001FU +#define DDR_PHY_DTPR5_TWTR_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TWTR_SHIFT 0 +#define DDR_PHY_DTPR5_TWTR_MASK 0x0000001FU -/*PUB Write Latency Enable*/ +/* +* PUB Write Latency Enable +*/ #undef DDR_PHY_DTPR6_PUBWLEN_DEFVAL #undef DDR_PHY_DTPR6_PUBWLEN_SHIFT #undef DDR_PHY_DTPR6_PUBWLEN_MASK -#define DDR_PHY_DTPR6_PUBWLEN_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBWLEN_SHIFT 31 -#define DDR_PHY_DTPR6_PUBWLEN_MASK 0x80000000U +#define DDR_PHY_DTPR6_PUBWLEN_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBWLEN_SHIFT 31 +#define DDR_PHY_DTPR6_PUBWLEN_MASK 0x80000000U -/*PUB Read Latency Enable*/ +/* +* PUB Read Latency Enable +*/ #undef DDR_PHY_DTPR6_PUBRLEN_DEFVAL #undef DDR_PHY_DTPR6_PUBRLEN_SHIFT #undef DDR_PHY_DTPR6_PUBRLEN_MASK -#define DDR_PHY_DTPR6_PUBRLEN_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBRLEN_SHIFT 30 -#define DDR_PHY_DTPR6_PUBRLEN_MASK 0x40000000U +#define DDR_PHY_DTPR6_PUBRLEN_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBRLEN_SHIFT 30 +#define DDR_PHY_DTPR6_PUBRLEN_MASK 0x40000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL #undef DDR_PHY_DTPR6_RESERVED_29_14_SHIFT #undef DDR_PHY_DTPR6_RESERVED_29_14_MASK -#define DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_RESERVED_29_14_SHIFT 14 -#define DDR_PHY_DTPR6_RESERVED_29_14_MASK 0x3FFFC000U +#define DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_RESERVED_29_14_SHIFT 14 +#define DDR_PHY_DTPR6_RESERVED_29_14_MASK 0x3FFFC000U -/*Write Latency*/ +/* +* Write Latency +*/ #undef DDR_PHY_DTPR6_PUBWL_DEFVAL #undef DDR_PHY_DTPR6_PUBWL_SHIFT #undef DDR_PHY_DTPR6_PUBWL_MASK -#define DDR_PHY_DTPR6_PUBWL_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBWL_SHIFT 8 -#define DDR_PHY_DTPR6_PUBWL_MASK 0x00003F00U +#define DDR_PHY_DTPR6_PUBWL_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBWL_SHIFT 8 +#define DDR_PHY_DTPR6_PUBWL_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DTPR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DTPR6_RESERVED_7_6_MASK -#define DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DTPR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DTPR6_RESERVED_7_6_MASK 0x000000C0U -/*Read Latency*/ +/* +* Read Latency +*/ #undef DDR_PHY_DTPR6_PUBRL_DEFVAL #undef DDR_PHY_DTPR6_PUBRL_SHIFT #undef DDR_PHY_DTPR6_PUBRL_MASK -#define DDR_PHY_DTPR6_PUBRL_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBRL_SHIFT 0 -#define DDR_PHY_DTPR6_PUBRL_MASK 0x0000003FU +#define DDR_PHY_DTPR6_PUBRL_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBRL_SHIFT 0 +#define DDR_PHY_DTPR6_PUBRL_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_31_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT 31 -#define DDR_PHY_RDIMMGCR0_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT 31 +#define DDR_PHY_RDIMMGCR0_RESERVED_31_MASK 0x80000000U -/*RDMIMM Quad CS Enable*/ +/* +* RDMIMM Quad CS Enable +*/ #undef DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL #undef DDR_PHY_RDIMMGCR0_QCSEN_SHIFT #undef DDR_PHY_RDIMMGCR0_QCSEN_MASK -#define DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_QCSEN_SHIFT 30 -#define DDR_PHY_RDIMMGCR0_QCSEN_MASK 0x40000000U +#define DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_QCSEN_SHIFT 30 +#define DDR_PHY_RDIMMGCR0_QCSEN_MASK 0x40000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT 28 -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK 0x30000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT 28 +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK 0x30000000U -/*RDIMM Outputs I/O Mode*/ +/* +* RDIMM Outputs I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT 27 -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK 0x08000000U +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT 27 +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK 0x08000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT 24 -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK 0x07000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT 24 +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK 0x07000000U -/*ERROUT# Output Enable*/ +/* +* ERROUT# Output Enable +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTOE_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT 23 -#define DDR_PHY_RDIMMGCR0_ERROUTOE_MASK 0x00800000U +#define DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT 23 +#define DDR_PHY_RDIMMGCR0_ERROUTOE_MASK 0x00800000U -/*ERROUT# I/O Mode*/ +/* +* ERROUT# I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT 22 -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK 0x00400000U +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT 22 +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK 0x00400000U -/*ERROUT# Power Down Receiver*/ +/* +* ERROUT# Power Down Receiver +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT 21 -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK 0x00200000U +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT 21 +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK 0x00200000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_20_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT 20 -#define DDR_PHY_RDIMMGCR0_RESERVED_20_MASK 0x00100000U +#define DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT 20 +#define DDR_PHY_RDIMMGCR0_RESERVED_20_MASK 0x00100000U -/*ERROUT# On-Die Termination*/ +/* +* ERROUT# On-Die Termination +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTODT_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT 19 -#define DDR_PHY_RDIMMGCR0_ERROUTODT_MASK 0x00080000U +#define DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT 19 +#define DDR_PHY_RDIMMGCR0_ERROUTODT_MASK 0x00080000U -/*Load Reduced DIMM*/ +/* +* Load Reduced DIMM +*/ #undef DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL #undef DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT #undef DDR_PHY_RDIMMGCR0_LRDIMM_MASK -#define DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT 18 -#define DDR_PHY_RDIMMGCR0_LRDIMM_MASK 0x00040000U +#define DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT 18 +#define DDR_PHY_RDIMMGCR0_LRDIMM_MASK 0x00040000U -/*PAR_IN I/O Mode*/ +/* +* PAR_IN I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_PARINIOM_MASK -#define DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT 17 -#define DDR_PHY_RDIMMGCR0_PARINIOM_MASK 0x00020000U +#define DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT 17 +#define DDR_PHY_RDIMMGCR0_PARINIOM_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT 8 -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK 0x0001FF00U +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT 8 +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK 0x0001FF00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT 6 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK 0x000000C0U +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT 6 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK 0x000000C0U -/*Rank Mirror Enable.*/ +/* +* Rank Mirror Enable. +*/ #undef DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL #undef DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT #undef DDR_PHY_RDIMMGCR0_RNKMRREN_MASK -#define DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT 4 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_MASK 0x00000030U +#define DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT 4 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_MASK 0x00000030U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_3_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT 3 -#define DDR_PHY_RDIMMGCR0_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT 3 +#define DDR_PHY_RDIMMGCR0_RESERVED_3_MASK 0x00000008U -/*Stop on Parity Error*/ +/* +* Stop on Parity Error +*/ #undef DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL #undef DDR_PHY_RDIMMGCR0_SOPERR_SHIFT #undef DDR_PHY_RDIMMGCR0_SOPERR_MASK -#define DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_SOPERR_SHIFT 2 -#define DDR_PHY_RDIMMGCR0_SOPERR_MASK 0x00000004U +#define DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_SOPERR_SHIFT 2 +#define DDR_PHY_RDIMMGCR0_SOPERR_MASK 0x00000004U -/*Parity Error No Registering*/ +/* +* Parity Error No Registering +*/ #undef DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT #undef DDR_PHY_RDIMMGCR0_ERRNOREG_MASK -#define DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT 1 -#define DDR_PHY_RDIMMGCR0_ERRNOREG_MASK 0x00000002U +#define DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT 1 +#define DDR_PHY_RDIMMGCR0_ERRNOREG_MASK 0x00000002U -/*Registered DIMM*/ +/* +* Registered DIMM +*/ #undef DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL #undef DDR_PHY_RDIMMGCR0_RDIMM_SHIFT #undef DDR_PHY_RDIMMGCR0_RDIMM_MASK -#define DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RDIMM_SHIFT 0 -#define DDR_PHY_RDIMMGCR0_RDIMM_MASK 0x00000001U +#define DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RDIMM_SHIFT 0 +#define DDR_PHY_RDIMMGCR0_RDIMM_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK 0xE0000000U -/*Address [17] B-side Inversion Disable*/ +/* +* Address [17] B-side Inversion Disable +*/ #undef DDR_PHY_RDIMMGCR1_A17BID_DEFVAL #undef DDR_PHY_RDIMMGCR1_A17BID_SHIFT #undef DDR_PHY_RDIMMGCR1_A17BID_MASK -#define DDR_PHY_RDIMMGCR1_A17BID_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_A17BID_SHIFT 28 -#define DDR_PHY_RDIMMGCR1_A17BID_MASK 0x10000000U +#define DDR_PHY_RDIMMGCR1_A17BID_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_A17BID_SHIFT 28 +#define DDR_PHY_RDIMMGCR1_A17BID_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_27_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT 27 -#define DDR_PHY_RDIMMGCR1_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT 27 +#define DDR_PHY_RDIMMGCR1_RESERVED_27_MASK 0x08000000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT 24 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK 0x07000000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT 24 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK 0x07000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_23_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT 23 -#define DDR_PHY_RDIMMGCR1_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT 23 +#define DDR_PHY_RDIMMGCR1_RESERVED_23_MASK 0x00800000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT 20 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK 0x00700000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT 20 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK 0x00700000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_19_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT 19 -#define DDR_PHY_RDIMMGCR1_RESERVED_19_MASK 0x00080000U +#define DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT 19 +#define DDR_PHY_RDIMMGCR1_RESERVED_19_MASK 0x00080000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT 16 -#define DDR_PHY_RDIMMGCR1_TBCMRD_MASK 0x00070000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT 16 +#define DDR_PHY_RDIMMGCR1_TBCMRD_MASK 0x00070000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK 0x0000C000U -/*Stabilization time*/ +/* +* Stabilization time +*/ #undef DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCSTAB_MASK -#define DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT 0 -#define DDR_PHY_RDIMMGCR1_TBCSTAB_MASK 0x00003FFFU +#define DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT 0 +#define DDR_PHY_RDIMMGCR1_TBCSTAB_MASK 0x00003FFFU -/*DDR4/DDR3 Control Word 7*/ +/* +* DDR4/DDR3 Control Word 7 +*/ #undef DDR_PHY_RDIMMCR0_RC7_DEFVAL #undef DDR_PHY_RDIMMCR0_RC7_SHIFT #undef DDR_PHY_RDIMMCR0_RC7_MASK -#define DDR_PHY_RDIMMCR0_RC7_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC7_SHIFT 28 -#define DDR_PHY_RDIMMCR0_RC7_MASK 0xF0000000U +#define DDR_PHY_RDIMMCR0_RC7_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC7_SHIFT 28 +#define DDR_PHY_RDIMMCR0_RC7_MASK 0xF0000000U -/*DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR0_RC6_DEFVAL #undef DDR_PHY_RDIMMCR0_RC6_SHIFT #undef DDR_PHY_RDIMMCR0_RC6_MASK -#define DDR_PHY_RDIMMCR0_RC6_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC6_SHIFT 24 -#define DDR_PHY_RDIMMCR0_RC6_MASK 0x0F000000U +#define DDR_PHY_RDIMMCR0_RC6_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC6_SHIFT 24 +#define DDR_PHY_RDIMMCR0_RC6_MASK 0x0F000000U -/*DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word)*/ +/* +* DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC5_DEFVAL #undef DDR_PHY_RDIMMCR0_RC5_SHIFT #undef DDR_PHY_RDIMMCR0_RC5_MASK -#define DDR_PHY_RDIMMCR0_RC5_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC5_SHIFT 20 -#define DDR_PHY_RDIMMCR0_RC5_MASK 0x00F00000U +#define DDR_PHY_RDIMMCR0_RC5_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC5_SHIFT 20 +#define DDR_PHY_RDIMMCR0_RC5_MASK 0x00F00000U -/*DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control Word) / DDR3 Control Word 4 (Control Signals Driver C - aracteristics Control Word)*/ +/* +* DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control + * Word) / DDR3 Control Word 4 (Control Signals Driver Characteristics Cont + * rol Word) +*/ #undef DDR_PHY_RDIMMCR0_RC4_DEFVAL #undef DDR_PHY_RDIMMCR0_RC4_SHIFT #undef DDR_PHY_RDIMMCR0_RC4_MASK -#define DDR_PHY_RDIMMCR0_RC4_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC4_SHIFT 16 -#define DDR_PHY_RDIMMCR0_RC4_MASK 0x000F0000U +#define DDR_PHY_RDIMMCR0_RC4_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC4_SHIFT 16 +#define DDR_PHY_RDIMMCR0_RC4_MASK 0x000F0000U -/*DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Word) / DDR3 Control Word 3 (Command/Address Signals Dr - ver Characteristrics Control Word)*/ +/* +* DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Wo + * rd) / DDR3 Control Word 3 (Command/Address Signals Driver Characteristri + * cs Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC3_DEFVAL #undef DDR_PHY_RDIMMCR0_RC3_SHIFT #undef DDR_PHY_RDIMMCR0_RC3_MASK -#define DDR_PHY_RDIMMCR0_RC3_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC3_SHIFT 12 -#define DDR_PHY_RDIMMCR0_RC3_MASK 0x0000F000U +#define DDR_PHY_RDIMMCR0_RC3_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC3_SHIFT 12 +#define DDR_PHY_RDIMMCR0_RC3_MASK 0x0000F000U -/*DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 (Timing Control Word)*/ +/* +* DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 + * (Timing Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC2_DEFVAL #undef DDR_PHY_RDIMMCR0_RC2_SHIFT #undef DDR_PHY_RDIMMCR0_RC2_MASK -#define DDR_PHY_RDIMMCR0_RC2_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC2_SHIFT 8 -#define DDR_PHY_RDIMMCR0_RC2_MASK 0x00000F00U +#define DDR_PHY_RDIMMCR0_RC2_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC2_SHIFT 8 +#define DDR_PHY_RDIMMCR0_RC2_MASK 0x00000F00U -/*DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word)*/ +/* +* DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC1_DEFVAL #undef DDR_PHY_RDIMMCR0_RC1_SHIFT #undef DDR_PHY_RDIMMCR0_RC1_MASK -#define DDR_PHY_RDIMMCR0_RC1_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC1_SHIFT 4 -#define DDR_PHY_RDIMMCR0_RC1_MASK 0x000000F0U +#define DDR_PHY_RDIMMCR0_RC1_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC1_SHIFT 4 +#define DDR_PHY_RDIMMCR0_RC1_MASK 0x000000F0U -/*DDR4/DDR3 Control Word 0 (Global Features Control Word)*/ +/* +* DDR4/DDR3 Control Word 0 (Global Features Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC0_DEFVAL #undef DDR_PHY_RDIMMCR0_RC0_SHIFT #undef DDR_PHY_RDIMMCR0_RC0_MASK -#define DDR_PHY_RDIMMCR0_RC0_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC0_SHIFT 0 -#define DDR_PHY_RDIMMCR0_RC0_MASK 0x0000000FU +#define DDR_PHY_RDIMMCR0_RC0_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC0_SHIFT 0 +#define DDR_PHY_RDIMMCR0_RC0_MASK 0x0000000FU -/*Control Word 15*/ +/* +* Control Word 15 +*/ #undef DDR_PHY_RDIMMCR1_RC15_DEFVAL #undef DDR_PHY_RDIMMCR1_RC15_SHIFT #undef DDR_PHY_RDIMMCR1_RC15_MASK -#define DDR_PHY_RDIMMCR1_RC15_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC15_SHIFT 28 -#define DDR_PHY_RDIMMCR1_RC15_MASK 0xF0000000U +#define DDR_PHY_RDIMMCR1_RC15_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC15_SHIFT 28 +#define DDR_PHY_RDIMMCR1_RC15_MASK 0xF0000000U -/*DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC14_DEFVAL #undef DDR_PHY_RDIMMCR1_RC14_SHIFT #undef DDR_PHY_RDIMMCR1_RC14_MASK -#define DDR_PHY_RDIMMCR1_RC14_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC14_SHIFT 24 -#define DDR_PHY_RDIMMCR1_RC14_MASK 0x0F000000U +#define DDR_PHY_RDIMMCR1_RC14_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC14_SHIFT 24 +#define DDR_PHY_RDIMMCR1_RC14_MASK 0x0F000000U -/*DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC13_DEFVAL #undef DDR_PHY_RDIMMCR1_RC13_SHIFT #undef DDR_PHY_RDIMMCR1_RC13_MASK -#define DDR_PHY_RDIMMCR1_RC13_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC13_SHIFT 20 -#define DDR_PHY_RDIMMCR1_RC13_MASK 0x00F00000U +#define DDR_PHY_RDIMMCR1_RC13_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC13_SHIFT 20 +#define DDR_PHY_RDIMMCR1_RC13_MASK 0x00F00000U -/*DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC12_DEFVAL #undef DDR_PHY_RDIMMCR1_RC12_SHIFT #undef DDR_PHY_RDIMMCR1_RC12_MASK -#define DDR_PHY_RDIMMCR1_RC12_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC12_SHIFT 16 -#define DDR_PHY_RDIMMCR1_RC12_MASK 0x000F0000U +#define DDR_PHY_RDIMMCR1_RC12_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC12_SHIFT 16 +#define DDR_PHY_RDIMMCR1_RC12_MASK 0x000F0000U -/*DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Word) / DDR3 Control Word 11 (Operation Voltage VDD Con - rol Word)*/ +/* +* DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Wo + * rd) / DDR3 Control Word 11 (Operation Voltage VDD Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC11_DEFVAL #undef DDR_PHY_RDIMMCR1_RC11_SHIFT #undef DDR_PHY_RDIMMCR1_RC11_MASK -#define DDR_PHY_RDIMMCR1_RC11_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC11_SHIFT 12 -#define DDR_PHY_RDIMMCR1_RC11_MASK 0x0000F000U +#define DDR_PHY_RDIMMCR1_RC11_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC11_SHIFT 12 +#define DDR_PHY_RDIMMCR1_RC11_MASK 0x0000F000U -/*DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word)*/ +/* +* DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC10_DEFVAL #undef DDR_PHY_RDIMMCR1_RC10_SHIFT #undef DDR_PHY_RDIMMCR1_RC10_MASK -#define DDR_PHY_RDIMMCR1_RC10_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC10_SHIFT 8 -#define DDR_PHY_RDIMMCR1_RC10_MASK 0x00000F00U +#define DDR_PHY_RDIMMCR1_RC10_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC10_SHIFT 8 +#define DDR_PHY_RDIMMCR1_RC10_MASK 0x00000F00U -/*DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word)*/ +/* +* DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC9_DEFVAL #undef DDR_PHY_RDIMMCR1_RC9_SHIFT #undef DDR_PHY_RDIMMCR1_RC9_MASK -#define DDR_PHY_RDIMMCR1_RC9_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC9_SHIFT 4 -#define DDR_PHY_RDIMMCR1_RC9_MASK 0x000000F0U +#define DDR_PHY_RDIMMCR1_RC9_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC9_SHIFT 4 +#define DDR_PHY_RDIMMCR1_RC9_MASK 0x000000F0U -/*DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Control Word 8 (Additional Input Bus Termination Setting - Control Word)*/ +/* +* DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Con + * trol Word 8 (Additional Input Bus Termination Setting Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC8_DEFVAL #undef DDR_PHY_RDIMMCR1_RC8_SHIFT #undef DDR_PHY_RDIMMCR1_RC8_MASK -#define DDR_PHY_RDIMMCR1_RC8_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC8_SHIFT 0 -#define DDR_PHY_RDIMMCR1_RC8_MASK 0x0000000FU +#define DDR_PHY_RDIMMCR1_RC8_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC8_SHIFT 0 +#define DDR_PHY_RDIMMCR1_RC8_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR0_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR0_RESERVED_31_8_SHIFT #undef DDR_PHY_MR0_RESERVED_31_8_MASK -#define DDR_PHY_MR0_RESERVED_31_8_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR0_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR0_RESERVED_31_8_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR0_RESERVED_31_8_MASK 0xFFFFFF00U -/*CA Terminating Rank*/ +/* +* CA Terminating Rank +*/ #undef DDR_PHY_MR0_CATR_DEFVAL #undef DDR_PHY_MR0_CATR_SHIFT #undef DDR_PHY_MR0_CATR_MASK -#define DDR_PHY_MR0_CATR_DEFVAL 0x00000052 -#define DDR_PHY_MR0_CATR_SHIFT 7 -#define DDR_PHY_MR0_CATR_MASK 0x00000080U +#define DDR_PHY_MR0_CATR_DEFVAL 0x00000052 +#define DDR_PHY_MR0_CATR_SHIFT 7 +#define DDR_PHY_MR0_CATR_MASK 0x00000080U -/*Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. +*/ #undef DDR_PHY_MR0_RSVD_6_5_DEFVAL #undef DDR_PHY_MR0_RSVD_6_5_SHIFT #undef DDR_PHY_MR0_RSVD_6_5_MASK -#define DDR_PHY_MR0_RSVD_6_5_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RSVD_6_5_SHIFT 5 -#define DDR_PHY_MR0_RSVD_6_5_MASK 0x00000060U +#define DDR_PHY_MR0_RSVD_6_5_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RSVD_6_5_SHIFT 5 +#define DDR_PHY_MR0_RSVD_6_5_MASK 0x00000060U -/*Built-in Self-Test for RZQ*/ +/* +* Built-in Self-Test for RZQ +*/ #undef DDR_PHY_MR0_RZQI_DEFVAL #undef DDR_PHY_MR0_RZQI_SHIFT #undef DDR_PHY_MR0_RZQI_MASK -#define DDR_PHY_MR0_RZQI_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RZQI_SHIFT 3 -#define DDR_PHY_MR0_RZQI_MASK 0x00000018U +#define DDR_PHY_MR0_RZQI_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RZQI_SHIFT 3 +#define DDR_PHY_MR0_RZQI_MASK 0x00000018U -/*Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. +*/ #undef DDR_PHY_MR0_RSVD_2_0_DEFVAL #undef DDR_PHY_MR0_RSVD_2_0_SHIFT #undef DDR_PHY_MR0_RSVD_2_0_MASK -#define DDR_PHY_MR0_RSVD_2_0_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RSVD_2_0_SHIFT 0 -#define DDR_PHY_MR0_RSVD_2_0_MASK 0x00000007U +#define DDR_PHY_MR0_RSVD_2_0_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RSVD_2_0_SHIFT 0 +#define DDR_PHY_MR0_RSVD_2_0_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR1_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR1_RESERVED_31_8_SHIFT #undef DDR_PHY_MR1_RESERVED_31_8_MASK -#define DDR_PHY_MR1_RESERVED_31_8_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR1_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR1_RESERVED_31_8_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR1_RESERVED_31_8_MASK 0xFFFFFF00U -/*Read Postamble Length*/ +/* +* Read Postamble Length +*/ #undef DDR_PHY_MR1_RDPST_DEFVAL #undef DDR_PHY_MR1_RDPST_SHIFT #undef DDR_PHY_MR1_RDPST_MASK -#define DDR_PHY_MR1_RDPST_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RDPST_SHIFT 7 -#define DDR_PHY_MR1_RDPST_MASK 0x00000080U +#define DDR_PHY_MR1_RDPST_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RDPST_SHIFT 7 +#define DDR_PHY_MR1_RDPST_MASK 0x00000080U -/*Write-recovery for auto-precharge command*/ +/* +* Write-recovery for auto-precharge command +*/ #undef DDR_PHY_MR1_NWR_DEFVAL #undef DDR_PHY_MR1_NWR_SHIFT #undef DDR_PHY_MR1_NWR_MASK -#define DDR_PHY_MR1_NWR_DEFVAL 0x00000004 -#define DDR_PHY_MR1_NWR_SHIFT 4 -#define DDR_PHY_MR1_NWR_MASK 0x00000070U +#define DDR_PHY_MR1_NWR_DEFVAL 0x00000004 +#define DDR_PHY_MR1_NWR_SHIFT 4 +#define DDR_PHY_MR1_NWR_MASK 0x00000070U -/*Read Preamble Length*/ +/* +* Read Preamble Length +*/ #undef DDR_PHY_MR1_RDPRE_DEFVAL #undef DDR_PHY_MR1_RDPRE_SHIFT #undef DDR_PHY_MR1_RDPRE_MASK -#define DDR_PHY_MR1_RDPRE_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RDPRE_SHIFT 3 -#define DDR_PHY_MR1_RDPRE_MASK 0x00000008U +#define DDR_PHY_MR1_RDPRE_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RDPRE_SHIFT 3 +#define DDR_PHY_MR1_RDPRE_MASK 0x00000008U -/*Write Preamble Length*/ +/* +* Write Preamble Length +*/ #undef DDR_PHY_MR1_WRPRE_DEFVAL #undef DDR_PHY_MR1_WRPRE_SHIFT #undef DDR_PHY_MR1_WRPRE_MASK -#define DDR_PHY_MR1_WRPRE_DEFVAL 0x00000004 -#define DDR_PHY_MR1_WRPRE_SHIFT 2 -#define DDR_PHY_MR1_WRPRE_MASK 0x00000004U +#define DDR_PHY_MR1_WRPRE_DEFVAL 0x00000004 +#define DDR_PHY_MR1_WRPRE_SHIFT 2 +#define DDR_PHY_MR1_WRPRE_MASK 0x00000004U -/*Burst Length*/ +/* +* Burst Length +*/ #undef DDR_PHY_MR1_BL_DEFVAL #undef DDR_PHY_MR1_BL_SHIFT #undef DDR_PHY_MR1_BL_MASK -#define DDR_PHY_MR1_BL_DEFVAL 0x00000004 -#define DDR_PHY_MR1_BL_SHIFT 0 -#define DDR_PHY_MR1_BL_MASK 0x00000003U +#define DDR_PHY_MR1_BL_DEFVAL 0x00000004 +#define DDR_PHY_MR1_BL_SHIFT 0 +#define DDR_PHY_MR1_BL_MASK 0x00000003U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR2_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR2_RESERVED_31_8_SHIFT #undef DDR_PHY_MR2_RESERVED_31_8_MASK -#define DDR_PHY_MR2_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR2_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR2_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR2_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR2_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR2_RESERVED_31_8_MASK 0xFFFFFF00U -/*Write Leveling*/ +/* +* Write Leveling +*/ #undef DDR_PHY_MR2_WRL_DEFVAL #undef DDR_PHY_MR2_WRL_SHIFT #undef DDR_PHY_MR2_WRL_MASK -#define DDR_PHY_MR2_WRL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WRL_SHIFT 7 -#define DDR_PHY_MR2_WRL_MASK 0x00000080U +#define DDR_PHY_MR2_WRL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WRL_SHIFT 7 +#define DDR_PHY_MR2_WRL_MASK 0x00000080U -/*Write Latency Set*/ +/* +* Write Latency Set +*/ #undef DDR_PHY_MR2_WLS_DEFVAL #undef DDR_PHY_MR2_WLS_SHIFT #undef DDR_PHY_MR2_WLS_MASK -#define DDR_PHY_MR2_WLS_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WLS_SHIFT 6 -#define DDR_PHY_MR2_WLS_MASK 0x00000040U +#define DDR_PHY_MR2_WLS_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WLS_SHIFT 6 +#define DDR_PHY_MR2_WLS_MASK 0x00000040U -/*Write Latency*/ +/* +* Write Latency +*/ #undef DDR_PHY_MR2_WL_DEFVAL #undef DDR_PHY_MR2_WL_SHIFT #undef DDR_PHY_MR2_WL_MASK -#define DDR_PHY_MR2_WL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WL_SHIFT 3 -#define DDR_PHY_MR2_WL_MASK 0x00000038U +#define DDR_PHY_MR2_WL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WL_SHIFT 3 +#define DDR_PHY_MR2_WL_MASK 0x00000038U -/*Read Latency*/ +/* +* Read Latency +*/ #undef DDR_PHY_MR2_RL_DEFVAL #undef DDR_PHY_MR2_RL_SHIFT #undef DDR_PHY_MR2_RL_MASK -#define DDR_PHY_MR2_RL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_RL_SHIFT 0 -#define DDR_PHY_MR2_RL_MASK 0x00000007U +#define DDR_PHY_MR2_RL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_RL_SHIFT 0 +#define DDR_PHY_MR2_RL_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR3_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR3_RESERVED_31_8_SHIFT #undef DDR_PHY_MR3_RESERVED_31_8_MASK -#define DDR_PHY_MR3_RESERVED_31_8_DEFVAL 0x00000031 -#define DDR_PHY_MR3_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR3_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR3_RESERVED_31_8_DEFVAL 0x00000031 +#define DDR_PHY_MR3_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR3_RESERVED_31_8_MASK 0xFFFFFF00U -/*DBI-Write Enable*/ +/* +* DBI-Write Enable +*/ #undef DDR_PHY_MR3_DBIWR_DEFVAL #undef DDR_PHY_MR3_DBIWR_SHIFT #undef DDR_PHY_MR3_DBIWR_MASK -#define DDR_PHY_MR3_DBIWR_DEFVAL 0x00000031 -#define DDR_PHY_MR3_DBIWR_SHIFT 7 -#define DDR_PHY_MR3_DBIWR_MASK 0x00000080U +#define DDR_PHY_MR3_DBIWR_DEFVAL 0x00000031 +#define DDR_PHY_MR3_DBIWR_SHIFT 7 +#define DDR_PHY_MR3_DBIWR_MASK 0x00000080U -/*DBI-Read Enable*/ +/* +* DBI-Read Enable +*/ #undef DDR_PHY_MR3_DBIRD_DEFVAL #undef DDR_PHY_MR3_DBIRD_SHIFT #undef DDR_PHY_MR3_DBIRD_MASK -#define DDR_PHY_MR3_DBIRD_DEFVAL 0x00000031 -#define DDR_PHY_MR3_DBIRD_SHIFT 6 -#define DDR_PHY_MR3_DBIRD_MASK 0x00000040U +#define DDR_PHY_MR3_DBIRD_DEFVAL 0x00000031 +#define DDR_PHY_MR3_DBIRD_SHIFT 6 +#define DDR_PHY_MR3_DBIRD_MASK 0x00000040U -/*Pull-down Drive Strength*/ +/* +* Pull-down Drive Strength +*/ #undef DDR_PHY_MR3_PDDS_DEFVAL #undef DDR_PHY_MR3_PDDS_SHIFT #undef DDR_PHY_MR3_PDDS_MASK -#define DDR_PHY_MR3_PDDS_DEFVAL 0x00000031 -#define DDR_PHY_MR3_PDDS_SHIFT 3 -#define DDR_PHY_MR3_PDDS_MASK 0x00000038U +#define DDR_PHY_MR3_PDDS_DEFVAL 0x00000031 +#define DDR_PHY_MR3_PDDS_SHIFT 3 +#define DDR_PHY_MR3_PDDS_MASK 0x00000038U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR3_RSVD_DEFVAL #undef DDR_PHY_MR3_RSVD_SHIFT #undef DDR_PHY_MR3_RSVD_MASK -#define DDR_PHY_MR3_RSVD_DEFVAL 0x00000031 -#define DDR_PHY_MR3_RSVD_SHIFT 2 -#define DDR_PHY_MR3_RSVD_MASK 0x00000004U +#define DDR_PHY_MR3_RSVD_DEFVAL 0x00000031 +#define DDR_PHY_MR3_RSVD_SHIFT 2 +#define DDR_PHY_MR3_RSVD_MASK 0x00000004U -/*Write Postamble Length*/ +/* +* Write Postamble Length +*/ #undef DDR_PHY_MR3_WRPST_DEFVAL #undef DDR_PHY_MR3_WRPST_SHIFT #undef DDR_PHY_MR3_WRPST_MASK -#define DDR_PHY_MR3_WRPST_DEFVAL 0x00000031 -#define DDR_PHY_MR3_WRPST_SHIFT 1 -#define DDR_PHY_MR3_WRPST_MASK 0x00000002U +#define DDR_PHY_MR3_WRPST_DEFVAL 0x00000031 +#define DDR_PHY_MR3_WRPST_SHIFT 1 +#define DDR_PHY_MR3_WRPST_MASK 0x00000002U -/*Pull-up Calibration Point*/ +/* +* Pull-up Calibration Point +*/ #undef DDR_PHY_MR3_PUCAL_DEFVAL #undef DDR_PHY_MR3_PUCAL_SHIFT #undef DDR_PHY_MR3_PUCAL_MASK -#define DDR_PHY_MR3_PUCAL_DEFVAL 0x00000031 -#define DDR_PHY_MR3_PUCAL_SHIFT 0 -#define DDR_PHY_MR3_PUCAL_MASK 0x00000001U +#define DDR_PHY_MR3_PUCAL_DEFVAL 0x00000031 +#define DDR_PHY_MR3_PUCAL_SHIFT 0 +#define DDR_PHY_MR3_PUCAL_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR4_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR4_RESERVED_31_16_SHIFT #undef DDR_PHY_MR4_RESERVED_31_16_MASK -#define DDR_PHY_MR4_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR4_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR4_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR4_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR4_RSVD_15_13_DEFVAL #undef DDR_PHY_MR4_RSVD_15_13_SHIFT #undef DDR_PHY_MR4_RSVD_15_13_MASK -#define DDR_PHY_MR4_RSVD_15_13_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD_15_13_SHIFT 13 -#define DDR_PHY_MR4_RSVD_15_13_MASK 0x0000E000U +#define DDR_PHY_MR4_RSVD_15_13_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD_15_13_SHIFT 13 +#define DDR_PHY_MR4_RSVD_15_13_MASK 0x0000E000U -/*Write Preamble*/ +/* +* Write Preamble +*/ #undef DDR_PHY_MR4_WRP_DEFVAL #undef DDR_PHY_MR4_WRP_SHIFT #undef DDR_PHY_MR4_WRP_MASK -#define DDR_PHY_MR4_WRP_DEFVAL 0x00000000 -#define DDR_PHY_MR4_WRP_SHIFT 12 -#define DDR_PHY_MR4_WRP_MASK 0x00001000U +#define DDR_PHY_MR4_WRP_DEFVAL 0x00000000 +#define DDR_PHY_MR4_WRP_SHIFT 12 +#define DDR_PHY_MR4_WRP_MASK 0x00001000U -/*Read Preamble*/ +/* +* Read Preamble +*/ #undef DDR_PHY_MR4_RDP_DEFVAL #undef DDR_PHY_MR4_RDP_SHIFT #undef DDR_PHY_MR4_RDP_MASK -#define DDR_PHY_MR4_RDP_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RDP_SHIFT 11 -#define DDR_PHY_MR4_RDP_MASK 0x00000800U +#define DDR_PHY_MR4_RDP_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RDP_SHIFT 11 +#define DDR_PHY_MR4_RDP_MASK 0x00000800U -/*Read Preamble Training Mode*/ +/* +* Read Preamble Training Mode +*/ #undef DDR_PHY_MR4_RPTM_DEFVAL #undef DDR_PHY_MR4_RPTM_SHIFT #undef DDR_PHY_MR4_RPTM_MASK -#define DDR_PHY_MR4_RPTM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RPTM_SHIFT 10 -#define DDR_PHY_MR4_RPTM_MASK 0x00000400U +#define DDR_PHY_MR4_RPTM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RPTM_SHIFT 10 +#define DDR_PHY_MR4_RPTM_MASK 0x00000400U -/*Self Refresh Abort*/ +/* +* Self Refresh Abort +*/ #undef DDR_PHY_MR4_SRA_DEFVAL #undef DDR_PHY_MR4_SRA_SHIFT #undef DDR_PHY_MR4_SRA_MASK -#define DDR_PHY_MR4_SRA_DEFVAL 0x00000000 -#define DDR_PHY_MR4_SRA_SHIFT 9 -#define DDR_PHY_MR4_SRA_MASK 0x00000200U +#define DDR_PHY_MR4_SRA_DEFVAL 0x00000000 +#define DDR_PHY_MR4_SRA_SHIFT 9 +#define DDR_PHY_MR4_SRA_MASK 0x00000200U -/*CS to Command Latency Mode*/ +/* +* CS to Command Latency Mode +*/ #undef DDR_PHY_MR4_CS2CMDL_DEFVAL #undef DDR_PHY_MR4_CS2CMDL_SHIFT #undef DDR_PHY_MR4_CS2CMDL_MASK -#define DDR_PHY_MR4_CS2CMDL_DEFVAL 0x00000000 -#define DDR_PHY_MR4_CS2CMDL_SHIFT 6 -#define DDR_PHY_MR4_CS2CMDL_MASK 0x000001C0U +#define DDR_PHY_MR4_CS2CMDL_DEFVAL 0x00000000 +#define DDR_PHY_MR4_CS2CMDL_SHIFT 6 +#define DDR_PHY_MR4_CS2CMDL_MASK 0x000001C0U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR4_RSVD1_DEFVAL #undef DDR_PHY_MR4_RSVD1_SHIFT #undef DDR_PHY_MR4_RSVD1_MASK -#define DDR_PHY_MR4_RSVD1_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD1_SHIFT 5 -#define DDR_PHY_MR4_RSVD1_MASK 0x00000020U +#define DDR_PHY_MR4_RSVD1_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD1_SHIFT 5 +#define DDR_PHY_MR4_RSVD1_MASK 0x00000020U -/*Internal VREF Monitor*/ +/* +* Internal VREF Monitor +*/ #undef DDR_PHY_MR4_IVM_DEFVAL #undef DDR_PHY_MR4_IVM_SHIFT #undef DDR_PHY_MR4_IVM_MASK -#define DDR_PHY_MR4_IVM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_IVM_SHIFT 4 -#define DDR_PHY_MR4_IVM_MASK 0x00000010U +#define DDR_PHY_MR4_IVM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_IVM_SHIFT 4 +#define DDR_PHY_MR4_IVM_MASK 0x00000010U -/*Temperature Controlled Refresh Mode*/ +/* +* Temperature Controlled Refresh Mode +*/ #undef DDR_PHY_MR4_TCRM_DEFVAL #undef DDR_PHY_MR4_TCRM_SHIFT #undef DDR_PHY_MR4_TCRM_MASK -#define DDR_PHY_MR4_TCRM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_TCRM_SHIFT 3 -#define DDR_PHY_MR4_TCRM_MASK 0x00000008U +#define DDR_PHY_MR4_TCRM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_TCRM_SHIFT 3 +#define DDR_PHY_MR4_TCRM_MASK 0x00000008U -/*Temperature Controlled Refresh Range*/ +/* +* Temperature Controlled Refresh Range +*/ #undef DDR_PHY_MR4_TCRR_DEFVAL #undef DDR_PHY_MR4_TCRR_SHIFT #undef DDR_PHY_MR4_TCRR_MASK -#define DDR_PHY_MR4_TCRR_DEFVAL 0x00000000 -#define DDR_PHY_MR4_TCRR_SHIFT 2 -#define DDR_PHY_MR4_TCRR_MASK 0x00000004U +#define DDR_PHY_MR4_TCRR_DEFVAL 0x00000000 +#define DDR_PHY_MR4_TCRR_SHIFT 2 +#define DDR_PHY_MR4_TCRR_MASK 0x00000004U -/*Maximum Power Down Mode*/ +/* +* Maximum Power Down Mode +*/ #undef DDR_PHY_MR4_MPDM_DEFVAL #undef DDR_PHY_MR4_MPDM_SHIFT #undef DDR_PHY_MR4_MPDM_MASK -#define DDR_PHY_MR4_MPDM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_MPDM_SHIFT 1 -#define DDR_PHY_MR4_MPDM_MASK 0x00000002U +#define DDR_PHY_MR4_MPDM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_MPDM_SHIFT 1 +#define DDR_PHY_MR4_MPDM_MASK 0x00000002U -/*This is a JEDEC reserved bit and is recommended by JEDEC to be programmed to 0x0.*/ +/* +* This is a JEDEC reserved bit and is recommended by JEDEC to be programme + * d to 0x0. +*/ #undef DDR_PHY_MR4_RSVD_0_DEFVAL #undef DDR_PHY_MR4_RSVD_0_SHIFT #undef DDR_PHY_MR4_RSVD_0_MASK -#define DDR_PHY_MR4_RSVD_0_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD_0_SHIFT 0 -#define DDR_PHY_MR4_RSVD_0_MASK 0x00000001U +#define DDR_PHY_MR4_RSVD_0_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD_0_SHIFT 0 +#define DDR_PHY_MR4_RSVD_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR5_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR5_RESERVED_31_16_SHIFT #undef DDR_PHY_MR5_RESERVED_31_16_MASK -#define DDR_PHY_MR5_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR5_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR5_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR5_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR5_RSVD_DEFVAL #undef DDR_PHY_MR5_RSVD_SHIFT #undef DDR_PHY_MR5_RSVD_MASK -#define DDR_PHY_MR5_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RSVD_SHIFT 13 -#define DDR_PHY_MR5_RSVD_MASK 0x0000E000U +#define DDR_PHY_MR5_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RSVD_SHIFT 13 +#define DDR_PHY_MR5_RSVD_MASK 0x0000E000U -/*Read DBI*/ +/* +* Read DBI +*/ #undef DDR_PHY_MR5_RDBI_DEFVAL #undef DDR_PHY_MR5_RDBI_SHIFT #undef DDR_PHY_MR5_RDBI_MASK -#define DDR_PHY_MR5_RDBI_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RDBI_SHIFT 12 -#define DDR_PHY_MR5_RDBI_MASK 0x00001000U +#define DDR_PHY_MR5_RDBI_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RDBI_SHIFT 12 +#define DDR_PHY_MR5_RDBI_MASK 0x00001000U -/*Write DBI*/ +/* +* Write DBI +*/ #undef DDR_PHY_MR5_WDBI_DEFVAL #undef DDR_PHY_MR5_WDBI_SHIFT #undef DDR_PHY_MR5_WDBI_MASK -#define DDR_PHY_MR5_WDBI_DEFVAL 0x00000000 -#define DDR_PHY_MR5_WDBI_SHIFT 11 -#define DDR_PHY_MR5_WDBI_MASK 0x00000800U +#define DDR_PHY_MR5_WDBI_DEFVAL 0x00000000 +#define DDR_PHY_MR5_WDBI_SHIFT 11 +#define DDR_PHY_MR5_WDBI_MASK 0x00000800U -/*Data Mask*/ +/* +* Data Mask +*/ #undef DDR_PHY_MR5_DM_DEFVAL #undef DDR_PHY_MR5_DM_SHIFT #undef DDR_PHY_MR5_DM_MASK -#define DDR_PHY_MR5_DM_DEFVAL 0x00000000 -#define DDR_PHY_MR5_DM_SHIFT 10 -#define DDR_PHY_MR5_DM_MASK 0x00000400U +#define DDR_PHY_MR5_DM_DEFVAL 0x00000000 +#define DDR_PHY_MR5_DM_SHIFT 10 +#define DDR_PHY_MR5_DM_MASK 0x00000400U -/*CA Parity Persistent Error*/ +/* +* CA Parity Persistent Error +*/ #undef DDR_PHY_MR5_CAPPE_DEFVAL #undef DDR_PHY_MR5_CAPPE_SHIFT #undef DDR_PHY_MR5_CAPPE_MASK -#define DDR_PHY_MR5_CAPPE_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPPE_SHIFT 9 -#define DDR_PHY_MR5_CAPPE_MASK 0x00000200U +#define DDR_PHY_MR5_CAPPE_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPPE_SHIFT 9 +#define DDR_PHY_MR5_CAPPE_MASK 0x00000200U -/*RTT_PARK*/ +/* +* RTT_PARK +*/ #undef DDR_PHY_MR5_RTTPARK_DEFVAL #undef DDR_PHY_MR5_RTTPARK_SHIFT #undef DDR_PHY_MR5_RTTPARK_MASK -#define DDR_PHY_MR5_RTTPARK_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RTTPARK_SHIFT 6 -#define DDR_PHY_MR5_RTTPARK_MASK 0x000001C0U +#define DDR_PHY_MR5_RTTPARK_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RTTPARK_SHIFT 6 +#define DDR_PHY_MR5_RTTPARK_MASK 0x000001C0U -/*ODT Input Buffer during Power Down mode*/ +/* +* ODT Input Buffer during Power Down mode +*/ #undef DDR_PHY_MR5_ODTIBPD_DEFVAL #undef DDR_PHY_MR5_ODTIBPD_SHIFT #undef DDR_PHY_MR5_ODTIBPD_MASK -#define DDR_PHY_MR5_ODTIBPD_DEFVAL 0x00000000 -#define DDR_PHY_MR5_ODTIBPD_SHIFT 5 -#define DDR_PHY_MR5_ODTIBPD_MASK 0x00000020U +#define DDR_PHY_MR5_ODTIBPD_DEFVAL 0x00000000 +#define DDR_PHY_MR5_ODTIBPD_SHIFT 5 +#define DDR_PHY_MR5_ODTIBPD_MASK 0x00000020U -/*C/A Parity Error Status*/ +/* +* C/A Parity Error Status +*/ #undef DDR_PHY_MR5_CAPES_DEFVAL #undef DDR_PHY_MR5_CAPES_SHIFT #undef DDR_PHY_MR5_CAPES_MASK -#define DDR_PHY_MR5_CAPES_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPES_SHIFT 4 -#define DDR_PHY_MR5_CAPES_MASK 0x00000010U +#define DDR_PHY_MR5_CAPES_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPES_SHIFT 4 +#define DDR_PHY_MR5_CAPES_MASK 0x00000010U -/*CRC Error Clear*/ +/* +* CRC Error Clear +*/ #undef DDR_PHY_MR5_CRCEC_DEFVAL #undef DDR_PHY_MR5_CRCEC_SHIFT #undef DDR_PHY_MR5_CRCEC_MASK -#define DDR_PHY_MR5_CRCEC_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CRCEC_SHIFT 3 -#define DDR_PHY_MR5_CRCEC_MASK 0x00000008U +#define DDR_PHY_MR5_CRCEC_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CRCEC_SHIFT 3 +#define DDR_PHY_MR5_CRCEC_MASK 0x00000008U -/*C/A Parity Latency Mode*/ +/* +* C/A Parity Latency Mode +*/ #undef DDR_PHY_MR5_CAPM_DEFVAL #undef DDR_PHY_MR5_CAPM_SHIFT #undef DDR_PHY_MR5_CAPM_MASK -#define DDR_PHY_MR5_CAPM_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPM_SHIFT 0 -#define DDR_PHY_MR5_CAPM_MASK 0x00000007U +#define DDR_PHY_MR5_CAPM_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPM_SHIFT 0 +#define DDR_PHY_MR5_CAPM_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR6_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR6_RESERVED_31_16_SHIFT #undef DDR_PHY_MR6_RESERVED_31_16_MASK -#define DDR_PHY_MR6_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR6_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR6_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR6_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR6_RSVD_15_13_DEFVAL #undef DDR_PHY_MR6_RSVD_15_13_SHIFT #undef DDR_PHY_MR6_RSVD_15_13_MASK -#define DDR_PHY_MR6_RSVD_15_13_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RSVD_15_13_SHIFT 13 -#define DDR_PHY_MR6_RSVD_15_13_MASK 0x0000E000U +#define DDR_PHY_MR6_RSVD_15_13_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RSVD_15_13_SHIFT 13 +#define DDR_PHY_MR6_RSVD_15_13_MASK 0x0000E000U -/*CAS_n to CAS_n command delay for same bank group (tCCD_L)*/ +/* +* CAS_n to CAS_n command delay for same bank group (tCCD_L) +*/ #undef DDR_PHY_MR6_TCCDL_DEFVAL #undef DDR_PHY_MR6_TCCDL_SHIFT #undef DDR_PHY_MR6_TCCDL_MASK -#define DDR_PHY_MR6_TCCDL_DEFVAL 0x00000000 -#define DDR_PHY_MR6_TCCDL_SHIFT 10 -#define DDR_PHY_MR6_TCCDL_MASK 0x00001C00U +#define DDR_PHY_MR6_TCCDL_DEFVAL 0x00000000 +#define DDR_PHY_MR6_TCCDL_SHIFT 10 +#define DDR_PHY_MR6_TCCDL_MASK 0x00001C00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR6_RSVD_9_8_DEFVAL #undef DDR_PHY_MR6_RSVD_9_8_SHIFT #undef DDR_PHY_MR6_RSVD_9_8_MASK -#define DDR_PHY_MR6_RSVD_9_8_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RSVD_9_8_SHIFT 8 -#define DDR_PHY_MR6_RSVD_9_8_MASK 0x00000300U +#define DDR_PHY_MR6_RSVD_9_8_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RSVD_9_8_SHIFT 8 +#define DDR_PHY_MR6_RSVD_9_8_MASK 0x00000300U -/*VrefDQ Training Enable*/ +/* +* VrefDQ Training Enable +*/ #undef DDR_PHY_MR6_VDDQTEN_DEFVAL #undef DDR_PHY_MR6_VDDQTEN_SHIFT #undef DDR_PHY_MR6_VDDQTEN_MASK -#define DDR_PHY_MR6_VDDQTEN_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDDQTEN_SHIFT 7 -#define DDR_PHY_MR6_VDDQTEN_MASK 0x00000080U +#define DDR_PHY_MR6_VDDQTEN_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDDQTEN_SHIFT 7 +#define DDR_PHY_MR6_VDDQTEN_MASK 0x00000080U -/*VrefDQ Training Range*/ +/* +* VrefDQ Training Range +*/ #undef DDR_PHY_MR6_VDQTRG_DEFVAL #undef DDR_PHY_MR6_VDQTRG_SHIFT #undef DDR_PHY_MR6_VDQTRG_MASK -#define DDR_PHY_MR6_VDQTRG_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDQTRG_SHIFT 6 -#define DDR_PHY_MR6_VDQTRG_MASK 0x00000040U +#define DDR_PHY_MR6_VDQTRG_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDQTRG_SHIFT 6 +#define DDR_PHY_MR6_VDQTRG_MASK 0x00000040U -/*VrefDQ Training Values*/ +/* +* VrefDQ Training Values +*/ #undef DDR_PHY_MR6_VDQTVAL_DEFVAL #undef DDR_PHY_MR6_VDQTVAL_SHIFT #undef DDR_PHY_MR6_VDQTVAL_MASK -#define DDR_PHY_MR6_VDQTVAL_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDQTVAL_SHIFT 0 -#define DDR_PHY_MR6_VDQTVAL_MASK 0x0000003FU +#define DDR_PHY_MR6_VDQTVAL_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDQTVAL_SHIFT 0 +#define DDR_PHY_MR6_VDQTVAL_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR11_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR11_RESERVED_31_8_SHIFT #undef DDR_PHY_MR11_RESERVED_31_8_MASK -#define DDR_PHY_MR11_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR11_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR11_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR11_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR11_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR11_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR11_RSVD_DEFVAL #undef DDR_PHY_MR11_RSVD_SHIFT #undef DDR_PHY_MR11_RSVD_MASK -#define DDR_PHY_MR11_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR11_RSVD_SHIFT 3 -#define DDR_PHY_MR11_RSVD_MASK 0x000000F8U +#define DDR_PHY_MR11_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR11_RSVD_SHIFT 3 +#define DDR_PHY_MR11_RSVD_MASK 0x000000F8U -/*Power Down Control*/ +/* +* Power Down Control +*/ #undef DDR_PHY_MR11_PDCTL_DEFVAL #undef DDR_PHY_MR11_PDCTL_SHIFT #undef DDR_PHY_MR11_PDCTL_MASK -#define DDR_PHY_MR11_PDCTL_DEFVAL 0x00000000 -#define DDR_PHY_MR11_PDCTL_SHIFT 2 -#define DDR_PHY_MR11_PDCTL_MASK 0x00000004U +#define DDR_PHY_MR11_PDCTL_DEFVAL 0x00000000 +#define DDR_PHY_MR11_PDCTL_SHIFT 2 +#define DDR_PHY_MR11_PDCTL_MASK 0x00000004U -/*DQ Bus Receiver On-Die-Termination*/ +/* +* DQ Bus Receiver On-Die-Termination +*/ #undef DDR_PHY_MR11_DQODT_DEFVAL #undef DDR_PHY_MR11_DQODT_SHIFT #undef DDR_PHY_MR11_DQODT_MASK -#define DDR_PHY_MR11_DQODT_DEFVAL 0x00000000 -#define DDR_PHY_MR11_DQODT_SHIFT 0 -#define DDR_PHY_MR11_DQODT_MASK 0x00000003U +#define DDR_PHY_MR11_DQODT_DEFVAL 0x00000000 +#define DDR_PHY_MR11_DQODT_SHIFT 0 +#define DDR_PHY_MR11_DQODT_MASK 0x00000003U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR12_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR12_RESERVED_31_8_SHIFT #undef DDR_PHY_MR12_RESERVED_31_8_MASK -#define DDR_PHY_MR12_RESERVED_31_8_DEFVAL 0x0000004D -#define DDR_PHY_MR12_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR12_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR12_RESERVED_31_8_DEFVAL 0x0000004D +#define DDR_PHY_MR12_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR12_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR12_RSVD_DEFVAL #undef DDR_PHY_MR12_RSVD_SHIFT #undef DDR_PHY_MR12_RSVD_MASK -#define DDR_PHY_MR12_RSVD_DEFVAL 0x0000004D -#define DDR_PHY_MR12_RSVD_SHIFT 7 -#define DDR_PHY_MR12_RSVD_MASK 0x00000080U +#define DDR_PHY_MR12_RSVD_DEFVAL 0x0000004D +#define DDR_PHY_MR12_RSVD_SHIFT 7 +#define DDR_PHY_MR12_RSVD_MASK 0x00000080U -/*VREF_CA Range Select.*/ +/* +* VREF_CA Range Select. +*/ #undef DDR_PHY_MR12_VR_CA_DEFVAL #undef DDR_PHY_MR12_VR_CA_SHIFT #undef DDR_PHY_MR12_VR_CA_MASK -#define DDR_PHY_MR12_VR_CA_DEFVAL 0x0000004D -#define DDR_PHY_MR12_VR_CA_SHIFT 6 -#define DDR_PHY_MR12_VR_CA_MASK 0x00000040U +#define DDR_PHY_MR12_VR_CA_DEFVAL 0x0000004D +#define DDR_PHY_MR12_VR_CA_SHIFT 6 +#define DDR_PHY_MR12_VR_CA_MASK 0x00000040U -/*Controls the VREF(ca) levels for Frequency-Set-Point[1:0].*/ +/* +* Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. +*/ #undef DDR_PHY_MR12_VREF_CA_DEFVAL #undef DDR_PHY_MR12_VREF_CA_SHIFT #undef DDR_PHY_MR12_VREF_CA_MASK -#define DDR_PHY_MR12_VREF_CA_DEFVAL 0x0000004D -#define DDR_PHY_MR12_VREF_CA_SHIFT 0 -#define DDR_PHY_MR12_VREF_CA_MASK 0x0000003FU +#define DDR_PHY_MR12_VREF_CA_DEFVAL 0x0000004D +#define DDR_PHY_MR12_VREF_CA_SHIFT 0 +#define DDR_PHY_MR12_VREF_CA_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR13_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR13_RESERVED_31_8_SHIFT #undef DDR_PHY_MR13_RESERVED_31_8_MASK -#define DDR_PHY_MR13_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR13_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR13_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR13_RESERVED_31_8_MASK 0xFFFFFF00U -/*Frequency Set Point Operation Mode*/ +/* +* Frequency Set Point Operation Mode +*/ #undef DDR_PHY_MR13_FSPOP_DEFVAL #undef DDR_PHY_MR13_FSPOP_SHIFT #undef DDR_PHY_MR13_FSPOP_MASK -#define DDR_PHY_MR13_FSPOP_DEFVAL 0x00000000 -#define DDR_PHY_MR13_FSPOP_SHIFT 7 -#define DDR_PHY_MR13_FSPOP_MASK 0x00000080U +#define DDR_PHY_MR13_FSPOP_DEFVAL 0x00000000 +#define DDR_PHY_MR13_FSPOP_SHIFT 7 +#define DDR_PHY_MR13_FSPOP_MASK 0x00000080U -/*Frequency Set Point Write Enable*/ +/* +* Frequency Set Point Write Enable +*/ #undef DDR_PHY_MR13_FSPWR_DEFVAL #undef DDR_PHY_MR13_FSPWR_SHIFT #undef DDR_PHY_MR13_FSPWR_MASK -#define DDR_PHY_MR13_FSPWR_DEFVAL 0x00000000 -#define DDR_PHY_MR13_FSPWR_SHIFT 6 -#define DDR_PHY_MR13_FSPWR_MASK 0x00000040U +#define DDR_PHY_MR13_FSPWR_DEFVAL 0x00000000 +#define DDR_PHY_MR13_FSPWR_SHIFT 6 +#define DDR_PHY_MR13_FSPWR_MASK 0x00000040U -/*Data Mask Enable*/ +/* +* Data Mask Enable +*/ #undef DDR_PHY_MR13_DMD_DEFVAL #undef DDR_PHY_MR13_DMD_SHIFT #undef DDR_PHY_MR13_DMD_MASK -#define DDR_PHY_MR13_DMD_DEFVAL 0x00000000 -#define DDR_PHY_MR13_DMD_SHIFT 5 -#define DDR_PHY_MR13_DMD_MASK 0x00000020U +#define DDR_PHY_MR13_DMD_DEFVAL 0x00000000 +#define DDR_PHY_MR13_DMD_SHIFT 5 +#define DDR_PHY_MR13_DMD_MASK 0x00000020U -/*Refresh Rate Option*/ +/* +* Refresh Rate Option +*/ #undef DDR_PHY_MR13_RRO_DEFVAL #undef DDR_PHY_MR13_RRO_SHIFT #undef DDR_PHY_MR13_RRO_MASK -#define DDR_PHY_MR13_RRO_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RRO_SHIFT 4 -#define DDR_PHY_MR13_RRO_MASK 0x00000010U +#define DDR_PHY_MR13_RRO_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RRO_SHIFT 4 +#define DDR_PHY_MR13_RRO_MASK 0x00000010U -/*VREF Current Generator*/ +/* +* VREF Current Generator +*/ #undef DDR_PHY_MR13_VRCG_DEFVAL #undef DDR_PHY_MR13_VRCG_SHIFT #undef DDR_PHY_MR13_VRCG_MASK -#define DDR_PHY_MR13_VRCG_DEFVAL 0x00000000 -#define DDR_PHY_MR13_VRCG_SHIFT 3 -#define DDR_PHY_MR13_VRCG_MASK 0x00000008U +#define DDR_PHY_MR13_VRCG_DEFVAL 0x00000000 +#define DDR_PHY_MR13_VRCG_SHIFT 3 +#define DDR_PHY_MR13_VRCG_MASK 0x00000008U -/*VREF Output*/ +/* +* VREF Output +*/ #undef DDR_PHY_MR13_VRO_DEFVAL #undef DDR_PHY_MR13_VRO_SHIFT #undef DDR_PHY_MR13_VRO_MASK -#define DDR_PHY_MR13_VRO_DEFVAL 0x00000000 -#define DDR_PHY_MR13_VRO_SHIFT 2 -#define DDR_PHY_MR13_VRO_MASK 0x00000004U +#define DDR_PHY_MR13_VRO_DEFVAL 0x00000000 +#define DDR_PHY_MR13_VRO_SHIFT 2 +#define DDR_PHY_MR13_VRO_MASK 0x00000004U -/*Read Preamble Training Mode*/ +/* +* Read Preamble Training Mode +*/ #undef DDR_PHY_MR13_RPT_DEFVAL #undef DDR_PHY_MR13_RPT_SHIFT #undef DDR_PHY_MR13_RPT_MASK -#define DDR_PHY_MR13_RPT_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RPT_SHIFT 1 -#define DDR_PHY_MR13_RPT_MASK 0x00000002U +#define DDR_PHY_MR13_RPT_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RPT_SHIFT 1 +#define DDR_PHY_MR13_RPT_MASK 0x00000002U -/*Command Bus Training*/ +/* +* Command Bus Training +*/ #undef DDR_PHY_MR13_CBT_DEFVAL #undef DDR_PHY_MR13_CBT_SHIFT #undef DDR_PHY_MR13_CBT_MASK -#define DDR_PHY_MR13_CBT_DEFVAL 0x00000000 -#define DDR_PHY_MR13_CBT_SHIFT 0 -#define DDR_PHY_MR13_CBT_MASK 0x00000001U +#define DDR_PHY_MR13_CBT_DEFVAL 0x00000000 +#define DDR_PHY_MR13_CBT_SHIFT 0 +#define DDR_PHY_MR13_CBT_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR14_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR14_RESERVED_31_8_SHIFT #undef DDR_PHY_MR14_RESERVED_31_8_MASK -#define DDR_PHY_MR14_RESERVED_31_8_DEFVAL 0x0000004D -#define DDR_PHY_MR14_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR14_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR14_RESERVED_31_8_DEFVAL 0x0000004D +#define DDR_PHY_MR14_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR14_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR14_RSVD_DEFVAL #undef DDR_PHY_MR14_RSVD_SHIFT #undef DDR_PHY_MR14_RSVD_MASK -#define DDR_PHY_MR14_RSVD_DEFVAL 0x0000004D -#define DDR_PHY_MR14_RSVD_SHIFT 7 -#define DDR_PHY_MR14_RSVD_MASK 0x00000080U +#define DDR_PHY_MR14_RSVD_DEFVAL 0x0000004D +#define DDR_PHY_MR14_RSVD_SHIFT 7 +#define DDR_PHY_MR14_RSVD_MASK 0x00000080U -/*VREFDQ Range Selects.*/ +/* +* VREFDQ Range Selects. +*/ #undef DDR_PHY_MR14_VR_DQ_DEFVAL #undef DDR_PHY_MR14_VR_DQ_SHIFT #undef DDR_PHY_MR14_VR_DQ_MASK -#define DDR_PHY_MR14_VR_DQ_DEFVAL 0x0000004D -#define DDR_PHY_MR14_VR_DQ_SHIFT 6 -#define DDR_PHY_MR14_VR_DQ_MASK 0x00000040U +#define DDR_PHY_MR14_VR_DQ_DEFVAL 0x0000004D +#define DDR_PHY_MR14_VR_DQ_SHIFT 6 +#define DDR_PHY_MR14_VR_DQ_MASK 0x00000040U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR14_VREF_DQ_DEFVAL #undef DDR_PHY_MR14_VREF_DQ_SHIFT #undef DDR_PHY_MR14_VREF_DQ_MASK -#define DDR_PHY_MR14_VREF_DQ_DEFVAL 0x0000004D -#define DDR_PHY_MR14_VREF_DQ_SHIFT 0 -#define DDR_PHY_MR14_VREF_DQ_MASK 0x0000003FU +#define DDR_PHY_MR14_VREF_DQ_DEFVAL 0x0000004D +#define DDR_PHY_MR14_VREF_DQ_SHIFT 0 +#define DDR_PHY_MR14_VREF_DQ_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR22_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR22_RESERVED_31_8_SHIFT #undef DDR_PHY_MR22_RESERVED_31_8_MASK -#define DDR_PHY_MR22_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR22_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR22_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR22_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR22_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR22_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR22_RSVD_DEFVAL #undef DDR_PHY_MR22_RSVD_SHIFT #undef DDR_PHY_MR22_RSVD_MASK -#define DDR_PHY_MR22_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR22_RSVD_SHIFT 6 -#define DDR_PHY_MR22_RSVD_MASK 0x000000C0U +#define DDR_PHY_MR22_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR22_RSVD_SHIFT 6 +#define DDR_PHY_MR22_RSVD_MASK 0x000000C0U -/*CA ODT termination disable.*/ +/* +* CA ODT termination disable. +*/ #undef DDR_PHY_MR22_ODTD_CA_DEFVAL #undef DDR_PHY_MR22_ODTD_CA_SHIFT #undef DDR_PHY_MR22_ODTD_CA_MASK -#define DDR_PHY_MR22_ODTD_CA_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTD_CA_SHIFT 5 -#define DDR_PHY_MR22_ODTD_CA_MASK 0x00000020U +#define DDR_PHY_MR22_ODTD_CA_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTD_CA_SHIFT 5 +#define DDR_PHY_MR22_ODTD_CA_MASK 0x00000020U -/*ODT CS override.*/ +/* +* ODT CS override. +*/ #undef DDR_PHY_MR22_ODTE_CS_DEFVAL #undef DDR_PHY_MR22_ODTE_CS_SHIFT #undef DDR_PHY_MR22_ODTE_CS_MASK -#define DDR_PHY_MR22_ODTE_CS_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTE_CS_SHIFT 4 -#define DDR_PHY_MR22_ODTE_CS_MASK 0x00000010U +#define DDR_PHY_MR22_ODTE_CS_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTE_CS_SHIFT 4 +#define DDR_PHY_MR22_ODTE_CS_MASK 0x00000010U -/*ODT CK override.*/ +/* +* ODT CK override. +*/ #undef DDR_PHY_MR22_ODTE_CK_DEFVAL #undef DDR_PHY_MR22_ODTE_CK_SHIFT #undef DDR_PHY_MR22_ODTE_CK_MASK -#define DDR_PHY_MR22_ODTE_CK_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTE_CK_SHIFT 3 -#define DDR_PHY_MR22_ODTE_CK_MASK 0x00000008U +#define DDR_PHY_MR22_ODTE_CK_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTE_CK_SHIFT 3 +#define DDR_PHY_MR22_ODTE_CK_MASK 0x00000008U -/*Controller ODT value for VOH calibration.*/ +/* +* Controller ODT value for VOH calibration. +*/ #undef DDR_PHY_MR22_CODT_DEFVAL #undef DDR_PHY_MR22_CODT_SHIFT #undef DDR_PHY_MR22_CODT_MASK -#define DDR_PHY_MR22_CODT_DEFVAL 0x00000000 -#define DDR_PHY_MR22_CODT_SHIFT 0 -#define DDR_PHY_MR22_CODT_MASK 0x00000007U +#define DDR_PHY_MR22_CODT_DEFVAL 0x00000000 +#define DDR_PHY_MR22_CODT_SHIFT 0 +#define DDR_PHY_MR22_CODT_MASK 0x00000007U -/*Refresh During Training*/ +/* +* Refresh During Training +*/ #undef DDR_PHY_DTCR0_RFSHDT_DEFVAL #undef DDR_PHY_DTCR0_RFSHDT_SHIFT #undef DDR_PHY_DTCR0_RFSHDT_MASK -#define DDR_PHY_DTCR0_RFSHDT_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RFSHDT_SHIFT 28 -#define DDR_PHY_DTCR0_RFSHDT_MASK 0xF0000000U +#define DDR_PHY_DTCR0_RFSHDT_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RFSHDT_SHIFT 28 +#define DDR_PHY_DTCR0_RFSHDT_MASK 0xF0000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_27_26_SHIFT #undef DDR_PHY_DTCR0_RESERVED_27_26_MASK -#define DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_27_26_SHIFT 26 -#define DDR_PHY_DTCR0_RESERVED_27_26_MASK 0x0C000000U +#define DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_27_26_SHIFT 26 +#define DDR_PHY_DTCR0_RESERVED_27_26_MASK 0x0C000000U -/*Data Training Debug Rank Select*/ +/* +* Data Training Debug Rank Select +*/ #undef DDR_PHY_DTCR0_DTDRS_DEFVAL #undef DDR_PHY_DTCR0_DTDRS_SHIFT #undef DDR_PHY_DTCR0_DTDRS_MASK -#define DDR_PHY_DTCR0_DTDRS_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDRS_SHIFT 24 -#define DDR_PHY_DTCR0_DTDRS_MASK 0x03000000U +#define DDR_PHY_DTCR0_DTDRS_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDRS_SHIFT 24 +#define DDR_PHY_DTCR0_DTDRS_MASK 0x03000000U -/*Data Training with Early/Extended Gate*/ +/* +* Data Training with Early/Extended Gate +*/ #undef DDR_PHY_DTCR0_DTEXG_DEFVAL #undef DDR_PHY_DTCR0_DTEXG_SHIFT #undef DDR_PHY_DTCR0_DTEXG_MASK -#define DDR_PHY_DTCR0_DTEXG_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTEXG_SHIFT 23 -#define DDR_PHY_DTCR0_DTEXG_MASK 0x00800000U +#define DDR_PHY_DTCR0_DTEXG_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTEXG_SHIFT 23 +#define DDR_PHY_DTCR0_DTEXG_MASK 0x00800000U -/*Data Training Extended Write DQS*/ +/* +* Data Training Extended Write DQS +*/ #undef DDR_PHY_DTCR0_DTEXD_DEFVAL #undef DDR_PHY_DTCR0_DTEXD_SHIFT #undef DDR_PHY_DTCR0_DTEXD_MASK -#define DDR_PHY_DTCR0_DTEXD_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTEXD_SHIFT 22 -#define DDR_PHY_DTCR0_DTEXD_MASK 0x00400000U +#define DDR_PHY_DTCR0_DTEXD_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTEXD_SHIFT 22 +#define DDR_PHY_DTCR0_DTEXD_MASK 0x00400000U -/*Data Training Debug Step*/ +/* +* Data Training Debug Step +*/ #undef DDR_PHY_DTCR0_DTDSTP_DEFVAL #undef DDR_PHY_DTCR0_DTDSTP_SHIFT #undef DDR_PHY_DTCR0_DTDSTP_MASK -#define DDR_PHY_DTCR0_DTDSTP_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDSTP_SHIFT 21 -#define DDR_PHY_DTCR0_DTDSTP_MASK 0x00200000U +#define DDR_PHY_DTCR0_DTDSTP_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDSTP_SHIFT 21 +#define DDR_PHY_DTCR0_DTDSTP_MASK 0x00200000U -/*Data Training Debug Enable*/ +/* +* Data Training Debug Enable +*/ #undef DDR_PHY_DTCR0_DTDEN_DEFVAL #undef DDR_PHY_DTCR0_DTDEN_SHIFT #undef DDR_PHY_DTCR0_DTDEN_MASK -#define DDR_PHY_DTCR0_DTDEN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDEN_SHIFT 20 -#define DDR_PHY_DTCR0_DTDEN_MASK 0x00100000U +#define DDR_PHY_DTCR0_DTDEN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDEN_SHIFT 20 +#define DDR_PHY_DTCR0_DTDEN_MASK 0x00100000U -/*Data Training Debug Byte Select*/ +/* +* Data Training Debug Byte Select +*/ #undef DDR_PHY_DTCR0_DTDBS_DEFVAL #undef DDR_PHY_DTCR0_DTDBS_SHIFT #undef DDR_PHY_DTCR0_DTDBS_MASK -#define DDR_PHY_DTCR0_DTDBS_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDBS_SHIFT 16 -#define DDR_PHY_DTCR0_DTDBS_MASK 0x000F0000U +#define DDR_PHY_DTCR0_DTDBS_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDBS_SHIFT 16 +#define DDR_PHY_DTCR0_DTDBS_MASK 0x000F0000U -/*Data Training read DBI deskewing configuration*/ +/* +* Data Training read DBI deskewing configuration +*/ #undef DDR_PHY_DTCR0_DTRDBITR_DEFVAL #undef DDR_PHY_DTCR0_DTRDBITR_SHIFT #undef DDR_PHY_DTCR0_DTRDBITR_MASK -#define DDR_PHY_DTCR0_DTRDBITR_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTRDBITR_SHIFT 14 -#define DDR_PHY_DTCR0_DTRDBITR_MASK 0x0000C000U +#define DDR_PHY_DTCR0_DTRDBITR_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTRDBITR_SHIFT 14 +#define DDR_PHY_DTCR0_DTRDBITR_MASK 0x0000C000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_13_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_13_SHIFT #undef DDR_PHY_DTCR0_RESERVED_13_MASK -#define DDR_PHY_DTCR0_RESERVED_13_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_13_SHIFT 13 -#define DDR_PHY_DTCR0_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_DTCR0_RESERVED_13_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_13_SHIFT 13 +#define DDR_PHY_DTCR0_RESERVED_13_MASK 0x00002000U -/*Data Training Write Bit Deskew Data Mask*/ +/* +* Data Training Write Bit Deskew Data Mask +*/ #undef DDR_PHY_DTCR0_DTWBDDM_DEFVAL #undef DDR_PHY_DTCR0_DTWBDDM_SHIFT #undef DDR_PHY_DTCR0_DTWBDDM_MASK -#define DDR_PHY_DTCR0_DTWBDDM_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTWBDDM_SHIFT 12 -#define DDR_PHY_DTCR0_DTWBDDM_MASK 0x00001000U +#define DDR_PHY_DTCR0_DTWBDDM_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTWBDDM_SHIFT 12 +#define DDR_PHY_DTCR0_DTWBDDM_MASK 0x00001000U -/*Refreshes Issued During Entry to Training*/ +/* +* Refreshes Issued During Entry to Training +*/ #undef DDR_PHY_DTCR0_RFSHEN_DEFVAL #undef DDR_PHY_DTCR0_RFSHEN_SHIFT #undef DDR_PHY_DTCR0_RFSHEN_MASK -#define DDR_PHY_DTCR0_RFSHEN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RFSHEN_SHIFT 8 -#define DDR_PHY_DTCR0_RFSHEN_MASK 0x00000F00U +#define DDR_PHY_DTCR0_RFSHEN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RFSHEN_SHIFT 8 +#define DDR_PHY_DTCR0_RFSHEN_MASK 0x00000F00U -/*Data Training Compare Data*/ +/* +* Data Training Compare Data +*/ #undef DDR_PHY_DTCR0_DTCMPD_DEFVAL #undef DDR_PHY_DTCR0_DTCMPD_SHIFT #undef DDR_PHY_DTCR0_DTCMPD_MASK -#define DDR_PHY_DTCR0_DTCMPD_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTCMPD_SHIFT 7 -#define DDR_PHY_DTCR0_DTCMPD_MASK 0x00000080U +#define DDR_PHY_DTCR0_DTCMPD_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTCMPD_SHIFT 7 +#define DDR_PHY_DTCR0_DTCMPD_MASK 0x00000080U -/*Data Training Using MPR*/ +/* +* Data Training Using MPR +*/ #undef DDR_PHY_DTCR0_DTMPR_DEFVAL #undef DDR_PHY_DTCR0_DTMPR_SHIFT #undef DDR_PHY_DTCR0_DTMPR_MASK -#define DDR_PHY_DTCR0_DTMPR_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTMPR_SHIFT 6 -#define DDR_PHY_DTCR0_DTMPR_MASK 0x00000040U +#define DDR_PHY_DTCR0_DTMPR_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTMPR_SHIFT 6 +#define DDR_PHY_DTCR0_DTMPR_MASK 0x00000040U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_5_4_SHIFT #undef DDR_PHY_DTCR0_RESERVED_5_4_MASK -#define DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_5_4_SHIFT 4 -#define DDR_PHY_DTCR0_RESERVED_5_4_MASK 0x00000030U +#define DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_5_4_SHIFT 4 +#define DDR_PHY_DTCR0_RESERVED_5_4_MASK 0x00000030U -/*Data Training Repeat Number*/ +/* +* Data Training Repeat Number +*/ #undef DDR_PHY_DTCR0_DTRPTN_DEFVAL #undef DDR_PHY_DTCR0_DTRPTN_SHIFT #undef DDR_PHY_DTCR0_DTRPTN_MASK -#define DDR_PHY_DTCR0_DTRPTN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTRPTN_SHIFT 0 -#define DDR_PHY_DTCR0_DTRPTN_MASK 0x0000000FU +#define DDR_PHY_DTCR0_DTRPTN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTRPTN_SHIFT 0 +#define DDR_PHY_DTCR0_DTRPTN_MASK 0x0000000FU -/*Rank Enable.*/ +/* +* Rank Enable. +*/ #undef DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL #undef DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT #undef DDR_PHY_DTCR1_RANKEN_RSVD_MASK -#define DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT 18 -#define DDR_PHY_DTCR1_RANKEN_RSVD_MASK 0xFFFC0000U +#define DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT 18 +#define DDR_PHY_DTCR1_RANKEN_RSVD_MASK 0xFFFC0000U -/*Rank Enable.*/ +/* +* Rank Enable. +*/ #undef DDR_PHY_DTCR1_RANKEN_DEFVAL #undef DDR_PHY_DTCR1_RANKEN_SHIFT #undef DDR_PHY_DTCR1_RANKEN_MASK -#define DDR_PHY_DTCR1_RANKEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RANKEN_SHIFT 16 -#define DDR_PHY_DTCR1_RANKEN_MASK 0x00030000U +#define DDR_PHY_DTCR1_RANKEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RANKEN_SHIFT 16 +#define DDR_PHY_DTCR1_RANKEN_MASK 0x00030000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_15_14_SHIFT #undef DDR_PHY_DTCR1_RESERVED_15_14_MASK -#define DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DTCR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DTCR1_RESERVED_15_14_MASK 0x0000C000U -/*Data Training Rank*/ +/* +* Data Training Rank +*/ #undef DDR_PHY_DTCR1_DTRANK_DEFVAL #undef DDR_PHY_DTCR1_DTRANK_SHIFT #undef DDR_PHY_DTCR1_DTRANK_MASK -#define DDR_PHY_DTCR1_DTRANK_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_DTRANK_SHIFT 12 -#define DDR_PHY_DTCR1_DTRANK_MASK 0x00003000U +#define DDR_PHY_DTCR1_DTRANK_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_DTRANK_SHIFT 12 +#define DDR_PHY_DTCR1_DTRANK_MASK 0x00003000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_11_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_11_SHIFT #undef DDR_PHY_DTCR1_RESERVED_11_MASK -#define DDR_PHY_DTCR1_RESERVED_11_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_11_SHIFT 11 -#define DDR_PHY_DTCR1_RESERVED_11_MASK 0x00000800U +#define DDR_PHY_DTCR1_RESERVED_11_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_11_SHIFT 11 +#define DDR_PHY_DTCR1_RESERVED_11_MASK 0x00000800U -/*Read Leveling Gate Sampling Difference*/ +/* +* Read Leveling Gate Sampling Difference +*/ #undef DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL #undef DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT #undef DDR_PHY_DTCR1_RDLVLGDIFF_MASK -#define DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT 8 -#define DDR_PHY_DTCR1_RDLVLGDIFF_MASK 0x00000700U +#define DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT 8 +#define DDR_PHY_DTCR1_RDLVLGDIFF_MASK 0x00000700U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_7_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_7_SHIFT #undef DDR_PHY_DTCR1_RESERVED_7_MASK -#define DDR_PHY_DTCR1_RESERVED_7_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_7_SHIFT 7 -#define DDR_PHY_DTCR1_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DTCR1_RESERVED_7_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_7_SHIFT 7 +#define DDR_PHY_DTCR1_RESERVED_7_MASK 0x00000080U -/*Read Leveling Gate Shift*/ +/* +* Read Leveling Gate Shift +*/ #undef DDR_PHY_DTCR1_RDLVLGS_DEFVAL #undef DDR_PHY_DTCR1_RDLVLGS_SHIFT #undef DDR_PHY_DTCR1_RDLVLGS_MASK -#define DDR_PHY_DTCR1_RDLVLGS_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLGS_SHIFT 4 -#define DDR_PHY_DTCR1_RDLVLGS_MASK 0x00000070U +#define DDR_PHY_DTCR1_RDLVLGS_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLGS_SHIFT 4 +#define DDR_PHY_DTCR1_RDLVLGS_MASK 0x00000070U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_3_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_3_SHIFT #undef DDR_PHY_DTCR1_RESERVED_3_MASK -#define DDR_PHY_DTCR1_RESERVED_3_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_3_SHIFT 3 -#define DDR_PHY_DTCR1_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_DTCR1_RESERVED_3_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_3_SHIFT 3 +#define DDR_PHY_DTCR1_RESERVED_3_MASK 0x00000008U -/*Read Preamble Training enable*/ +/* +* Read Preamble Training enable +*/ #undef DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL #undef DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT #undef DDR_PHY_DTCR1_RDPRMVL_TRN_MASK -#define DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT 2 -#define DDR_PHY_DTCR1_RDPRMVL_TRN_MASK 0x00000004U +#define DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT 2 +#define DDR_PHY_DTCR1_RDPRMVL_TRN_MASK 0x00000004U -/*Read Leveling Enable*/ +/* +* Read Leveling Enable +*/ #undef DDR_PHY_DTCR1_RDLVLEN_DEFVAL #undef DDR_PHY_DTCR1_RDLVLEN_SHIFT #undef DDR_PHY_DTCR1_RDLVLEN_MASK -#define DDR_PHY_DTCR1_RDLVLEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLEN_SHIFT 1 -#define DDR_PHY_DTCR1_RDLVLEN_MASK 0x00000002U +#define DDR_PHY_DTCR1_RDLVLEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLEN_SHIFT 1 +#define DDR_PHY_DTCR1_RDLVLEN_MASK 0x00000002U -/*Basic Gate Training Enable*/ +/* +* Basic Gate Training Enable +*/ #undef DDR_PHY_DTCR1_BSTEN_DEFVAL #undef DDR_PHY_DTCR1_BSTEN_SHIFT #undef DDR_PHY_DTCR1_BSTEN_MASK -#define DDR_PHY_DTCR1_BSTEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_BSTEN_SHIFT 0 -#define DDR_PHY_DTCR1_BSTEN_MASK 0x00000001U +#define DDR_PHY_DTCR1_BSTEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_BSTEN_SHIFT 0 +#define DDR_PHY_DTCR1_BSTEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_CATR0_RESERVED_31_21_DEFVAL #undef DDR_PHY_CATR0_RESERVED_31_21_SHIFT #undef DDR_PHY_CATR0_RESERVED_31_21_MASK -#define DDR_PHY_CATR0_RESERVED_31_21_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_RESERVED_31_21_SHIFT 21 -#define DDR_PHY_CATR0_RESERVED_31_21_MASK 0xFFE00000U +#define DDR_PHY_CATR0_RESERVED_31_21_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_RESERVED_31_21_SHIFT 21 +#define DDR_PHY_CATR0_RESERVED_31_21_MASK 0xFFE00000U -/*Minimum time (in terms of number of dram clocks) between two consectuve CA calibration command*/ +/* +* Minimum time (in terms of number of dram clocks) between two consectuve + * CA calibration command +*/ #undef DDR_PHY_CATR0_CACD_DEFVAL #undef DDR_PHY_CATR0_CACD_SHIFT #undef DDR_PHY_CATR0_CACD_MASK -#define DDR_PHY_CATR0_CACD_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CACD_SHIFT 16 -#define DDR_PHY_CATR0_CACD_MASK 0x001F0000U +#define DDR_PHY_CATR0_CACD_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CACD_SHIFT 16 +#define DDR_PHY_CATR0_CACD_MASK 0x001F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_CATR0_RESERVED_15_13_DEFVAL #undef DDR_PHY_CATR0_RESERVED_15_13_SHIFT #undef DDR_PHY_CATR0_RESERVED_15_13_MASK -#define DDR_PHY_CATR0_RESERVED_15_13_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_CATR0_RESERVED_15_13_MASK 0x0000E000U +#define DDR_PHY_CATR0_RESERVED_15_13_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_RESERVED_15_13_SHIFT 13 +#define DDR_PHY_CATR0_RESERVED_15_13_MASK 0x0000E000U -/*Minimum time (in terms of number of dram clocks) PUB should wait before sampling the CA response after Calibration command ha - been sent to the memory*/ +/* +* Minimum time (in terms of number of dram clocks) PUB should wait before + * sampling the CA response after Calibration command has been sent to the + * memory +*/ #undef DDR_PHY_CATR0_CAADR_DEFVAL #undef DDR_PHY_CATR0_CAADR_SHIFT #undef DDR_PHY_CATR0_CAADR_MASK -#define DDR_PHY_CATR0_CAADR_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CAADR_SHIFT 8 -#define DDR_PHY_CATR0_CAADR_MASK 0x00001F00U +#define DDR_PHY_CATR0_CAADR_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CAADR_SHIFT 8 +#define DDR_PHY_CATR0_CAADR_MASK 0x00001F00U -/*CA_1 Response Byte Lane 1*/ +/* +* CA_1 Response Byte Lane 1 +*/ #undef DDR_PHY_CATR0_CA1BYTE1_DEFVAL #undef DDR_PHY_CATR0_CA1BYTE1_SHIFT #undef DDR_PHY_CATR0_CA1BYTE1_MASK -#define DDR_PHY_CATR0_CA1BYTE1_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CA1BYTE1_SHIFT 4 -#define DDR_PHY_CATR0_CA1BYTE1_MASK 0x000000F0U +#define DDR_PHY_CATR0_CA1BYTE1_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CA1BYTE1_SHIFT 4 +#define DDR_PHY_CATR0_CA1BYTE1_MASK 0x000000F0U -/*CA_1 Response Byte Lane 0*/ +/* +* CA_1 Response Byte Lane 0 +*/ #undef DDR_PHY_CATR0_CA1BYTE0_DEFVAL #undef DDR_PHY_CATR0_CA1BYTE0_SHIFT #undef DDR_PHY_CATR0_CA1BYTE0_MASK -#define DDR_PHY_CATR0_CA1BYTE0_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CA1BYTE0_SHIFT 0 -#define DDR_PHY_CATR0_CA1BYTE0_MASK 0x0000000FU +#define DDR_PHY_CATR0_CA1BYTE0_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CA1BYTE0_SHIFT 0 +#define DDR_PHY_CATR0_CA1BYTE0_MASK 0x0000000FU -/*LFSR seed for pseudo-random BIST patterns*/ +/* +* Number of delay taps by which the DQS gate LCDL will be updated when DQS + * drift is detected +*/ +#undef DDR_PHY_DQSDR0_DFTDLY_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDLY_SHIFT +#undef DDR_PHY_DQSDR0_DFTDLY_MASK +#define DDR_PHY_DQSDR0_DFTDLY_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDLY_SHIFT 28 +#define DDR_PHY_DQSDR0_DFTDLY_MASK 0xF0000000U + +/* +* Drift Impedance Update +*/ +#undef DDR_PHY_DQSDR0_DFTZQUP_DEFVAL +#undef DDR_PHY_DQSDR0_DFTZQUP_SHIFT +#undef DDR_PHY_DQSDR0_DFTZQUP_MASK +#define DDR_PHY_DQSDR0_DFTZQUP_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTZQUP_SHIFT 27 +#define DDR_PHY_DQSDR0_DFTZQUP_MASK 0x08000000U + +/* +* Drift DDL Update +*/ +#undef DDR_PHY_DQSDR0_DFTDDLUP_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDDLUP_SHIFT +#undef DDR_PHY_DQSDR0_DFTDDLUP_MASK +#define DDR_PHY_DQSDR0_DFTDDLUP_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDDLUP_SHIFT 26 +#define DDR_PHY_DQSDR0_DFTDDLUP_MASK 0x04000000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DQSDR0_RESERVED_25_22_DEFVAL +#undef DDR_PHY_DQSDR0_RESERVED_25_22_SHIFT +#undef DDR_PHY_DQSDR0_RESERVED_25_22_MASK +#define DDR_PHY_DQSDR0_RESERVED_25_22_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_RESERVED_25_22_SHIFT 22 +#define DDR_PHY_DQSDR0_RESERVED_25_22_MASK 0x03C00000U + +/* +* Drift Read Spacing +*/ +#undef DDR_PHY_DQSDR0_DFTRDSPC_DEFVAL +#undef DDR_PHY_DQSDR0_DFTRDSPC_SHIFT +#undef DDR_PHY_DQSDR0_DFTRDSPC_MASK +#define DDR_PHY_DQSDR0_DFTRDSPC_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTRDSPC_SHIFT 20 +#define DDR_PHY_DQSDR0_DFTRDSPC_MASK 0x00300000U + +/* +* Drift Back-to-Back Reads +*/ +#undef DDR_PHY_DQSDR0_DFTB2BRD_DEFVAL +#undef DDR_PHY_DQSDR0_DFTB2BRD_SHIFT +#undef DDR_PHY_DQSDR0_DFTB2BRD_MASK +#define DDR_PHY_DQSDR0_DFTB2BRD_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTB2BRD_SHIFT 16 +#define DDR_PHY_DQSDR0_DFTB2BRD_MASK 0x000F0000U + +/* +* Drift Idle Reads +*/ +#undef DDR_PHY_DQSDR0_DFTIDLRD_DEFVAL +#undef DDR_PHY_DQSDR0_DFTIDLRD_SHIFT +#undef DDR_PHY_DQSDR0_DFTIDLRD_MASK +#define DDR_PHY_DQSDR0_DFTIDLRD_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTIDLRD_SHIFT 12 +#define DDR_PHY_DQSDR0_DFTIDLRD_MASK 0x0000F000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DQSDR0_RESERVED_11_8_DEFVAL +#undef DDR_PHY_DQSDR0_RESERVED_11_8_SHIFT +#undef DDR_PHY_DQSDR0_RESERVED_11_8_MASK +#define DDR_PHY_DQSDR0_RESERVED_11_8_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_RESERVED_11_8_SHIFT 8 +#define DDR_PHY_DQSDR0_RESERVED_11_8_MASK 0x00000F00U + +/* +* Gate Pulse Enable +*/ +#undef DDR_PHY_DQSDR0_DFTGPULSE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTGPULSE_SHIFT +#undef DDR_PHY_DQSDR0_DFTGPULSE_MASK +#define DDR_PHY_DQSDR0_DFTGPULSE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTGPULSE_SHIFT 4 +#define DDR_PHY_DQSDR0_DFTGPULSE_MASK 0x000000F0U + +/* +* DQS Drift Update Mode +*/ +#undef DDR_PHY_DQSDR0_DFTUPMODE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTUPMODE_SHIFT +#undef DDR_PHY_DQSDR0_DFTUPMODE_MASK +#define DDR_PHY_DQSDR0_DFTUPMODE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTUPMODE_SHIFT 2 +#define DDR_PHY_DQSDR0_DFTUPMODE_MASK 0x0000000CU + +/* +* DQS Drift Detection Mode +*/ +#undef DDR_PHY_DQSDR0_DFTDTMODE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDTMODE_SHIFT +#undef DDR_PHY_DQSDR0_DFTDTMODE_MASK +#define DDR_PHY_DQSDR0_DFTDTMODE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDTMODE_SHIFT 1 +#define DDR_PHY_DQSDR0_DFTDTMODE_MASK 0x00000002U + +/* +* DQS Drift Detection Enable +*/ +#undef DDR_PHY_DQSDR0_DFTDTEN_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDTEN_SHIFT +#undef DDR_PHY_DQSDR0_DFTDTEN_MASK +#define DDR_PHY_DQSDR0_DFTDTEN_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDTEN_SHIFT 0 +#define DDR_PHY_DQSDR0_DFTDTEN_MASK 0x00000001U + +/* +* LFSR seed for pseudo-random BIST patterns +*/ #undef DDR_PHY_BISTLSR_SEED_DEFVAL #undef DDR_PHY_BISTLSR_SEED_SHIFT #undef DDR_PHY_BISTLSR_SEED_MASK -#define DDR_PHY_BISTLSR_SEED_DEFVAL -#define DDR_PHY_BISTLSR_SEED_SHIFT 0 -#define DDR_PHY_BISTLSR_SEED_MASK 0xFFFFFFFFU +#define DDR_PHY_BISTLSR_SEED_DEFVAL +#define DDR_PHY_BISTLSR_SEED_SHIFT 0 +#define DDR_PHY_BISTLSR_SEED_MASK 0xFFFFFFFFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL #undef DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT #undef DDR_PHY_RIOCR5_RESERVED_31_16_MASK -#define DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_RIOCR5_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_RIOCR5_RESERVED_31_16_MASK 0xFFFF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT 4 -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK 0x0000FFF0U +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT 4 +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK 0x0000FFF0U -/*SDRAM On-die Termination Output Enable (OE) Mode Selection.*/ +/* +* SDRAM On-die Termination Output Enable (OE) Mode Selection. +*/ #undef DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL #undef DDR_PHY_RIOCR5_ODTOEMODE_SHIFT #undef DDR_PHY_RIOCR5_ODTOEMODE_MASK -#define DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_ODTOEMODE_SHIFT 0 -#define DDR_PHY_RIOCR5_ODTOEMODE_MASK 0x0000000FU +#define DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_ODTOEMODE_SHIFT 0 +#define DDR_PHY_RIOCR5_ODTOEMODE_MASK 0x0000000FU -/*Address/Command Slew Rate (D3F I/O Only)*/ +/* +* Address/Command Slew Rate (D3F I/O Only) +*/ #undef DDR_PHY_ACIOCR0_ACSR_DEFVAL #undef DDR_PHY_ACIOCR0_ACSR_SHIFT #undef DDR_PHY_ACIOCR0_ACSR_MASK -#define DDR_PHY_ACIOCR0_ACSR_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACSR_SHIFT 30 -#define DDR_PHY_ACIOCR0_ACSR_MASK 0xC0000000U +#define DDR_PHY_ACIOCR0_ACSR_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACSR_SHIFT 30 +#define DDR_PHY_ACIOCR0_ACSR_MASK 0xC0000000U -/*SDRAM Reset I/O Mode*/ +/* +* SDRAM Reset I/O Mode +*/ #undef DDR_PHY_ACIOCR0_RSTIOM_DEFVAL #undef DDR_PHY_ACIOCR0_RSTIOM_SHIFT #undef DDR_PHY_ACIOCR0_RSTIOM_MASK -#define DDR_PHY_ACIOCR0_RSTIOM_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTIOM_SHIFT 29 -#define DDR_PHY_ACIOCR0_RSTIOM_MASK 0x20000000U +#define DDR_PHY_ACIOCR0_RSTIOM_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTIOM_SHIFT 29 +#define DDR_PHY_ACIOCR0_RSTIOM_MASK 0x20000000U -/*SDRAM Reset Power Down Receiver*/ +/* +* SDRAM Reset Power Down Receiver +*/ #undef DDR_PHY_ACIOCR0_RSTPDR_DEFVAL #undef DDR_PHY_ACIOCR0_RSTPDR_SHIFT #undef DDR_PHY_ACIOCR0_RSTPDR_MASK -#define DDR_PHY_ACIOCR0_RSTPDR_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTPDR_SHIFT 28 -#define DDR_PHY_ACIOCR0_RSTPDR_MASK 0x10000000U +#define DDR_PHY_ACIOCR0_RSTPDR_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTPDR_SHIFT 28 +#define DDR_PHY_ACIOCR0_RSTPDR_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_27_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_27_MASK -#define DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_27_SHIFT 27 -#define DDR_PHY_ACIOCR0_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_27_SHIFT 27 +#define DDR_PHY_ACIOCR0_RESERVED_27_MASK 0x08000000U -/*SDRAM Reset On-Die Termination*/ +/* +* SDRAM Reset On-Die Termination +*/ #undef DDR_PHY_ACIOCR0_RSTODT_DEFVAL #undef DDR_PHY_ACIOCR0_RSTODT_SHIFT #undef DDR_PHY_ACIOCR0_RSTODT_MASK -#define DDR_PHY_ACIOCR0_RSTODT_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTODT_SHIFT 26 -#define DDR_PHY_ACIOCR0_RSTODT_MASK 0x04000000U +#define DDR_PHY_ACIOCR0_RSTODT_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTODT_SHIFT 26 +#define DDR_PHY_ACIOCR0_RSTODT_MASK 0x04000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_25_10_MASK -#define DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT 10 -#define DDR_PHY_ACIOCR0_RESERVED_25_10_MASK 0x03FFFC00U +#define DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT 10 +#define DDR_PHY_ACIOCR0_RESERVED_25_10_MASK 0x03FFFC00U -/*CK Duty Cycle Correction*/ +/* +* CK Duty Cycle Correction +*/ #undef DDR_PHY_ACIOCR0_CKDCC_DEFVAL #undef DDR_PHY_ACIOCR0_CKDCC_SHIFT #undef DDR_PHY_ACIOCR0_CKDCC_MASK -#define DDR_PHY_ACIOCR0_CKDCC_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_CKDCC_SHIFT 6 -#define DDR_PHY_ACIOCR0_CKDCC_MASK 0x000003C0U +#define DDR_PHY_ACIOCR0_CKDCC_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_CKDCC_SHIFT 6 +#define DDR_PHY_ACIOCR0_CKDCC_MASK 0x000003C0U -/*AC Power Down Receiver Mode*/ +/* +* AC Power Down Receiver Mode +*/ #undef DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL #undef DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT #undef DDR_PHY_ACIOCR0_ACPDRMODE_MASK -#define DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT 4 -#define DDR_PHY_ACIOCR0_ACPDRMODE_MASK 0x00000030U +#define DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT 4 +#define DDR_PHY_ACIOCR0_ACPDRMODE_MASK 0x00000030U -/*AC On-die Termination Mode*/ +/* +* AC On-die Termination Mode +*/ #undef DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL #undef DDR_PHY_ACIOCR0_ACODTMODE_SHIFT #undef DDR_PHY_ACIOCR0_ACODTMODE_MASK -#define DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACODTMODE_SHIFT 2 -#define DDR_PHY_ACIOCR0_ACODTMODE_MASK 0x0000000CU +#define DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACODTMODE_SHIFT 2 +#define DDR_PHY_ACIOCR0_ACODTMODE_MASK 0x0000000CU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_1_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_1_MASK -#define DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_1_SHIFT 1 -#define DDR_PHY_ACIOCR0_RESERVED_1_MASK 0x00000002U +#define DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_1_SHIFT 1 +#define DDR_PHY_ACIOCR0_RESERVED_1_MASK 0x00000002U -/*Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices.*/ +/* +* Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. +*/ #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT 0 -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK 0x00000001U +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT 0 +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK 0x00000001U -/*Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL slice*/ +/* +* Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL + * slice +*/ #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT 31 -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK 0x80000000U +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT 31 +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK 0x80000000U -/*Clock gating for Output Enable D slices [0]*/ +/* +* Clock gating for Output Enable D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT 30 -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK 0x40000000U +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT 30 +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK 0x40000000U -/*Clock gating for Power Down Receiver D slices [0]*/ +/* +* Clock gating for Power Down Receiver D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT 29 -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK 0x20000000U +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT 29 +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK 0x20000000U -/*Clock gating for Termination Enable D slices [0]*/ +/* +* Clock gating for Termination Enable D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT 28 -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK 0x10000000U +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT 28 +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK 0x10000000U -/*Clock gating for CK# D slices [1:0]*/ +/* +* Clock gating for CK# D slices [1:0] +*/ #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT 26 -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK 0x0C000000U +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT 26 +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK 0x0C000000U -/*Clock gating for CK D slices [1:0]*/ +/* +* Clock gating for CK D slices [1:0] +*/ #undef DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_CKCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT 24 -#define DDR_PHY_ACIOCR2_CKCLKGATE0_MASK 0x03000000U +#define DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT 24 +#define DDR_PHY_ACIOCR2_CKCLKGATE0_MASK 0x03000000U -/*Clock gating for AC D slices [23:0]*/ +/* +* Clock gating for AC D slices [23:0] +*/ #undef DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT 0 -#define DDR_PHY_ACIOCR2_ACCLKGATE0_MASK 0x00FFFFFFU +#define DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT 0 +#define DDR_PHY_ACIOCR2_ACCLKGATE0_MASK 0x00FFFFFFU -/*SDRAM Parity Output Enable (OE) Mode Selection*/ +/* +* SDRAM Parity Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_PAROEMODE_SHIFT #undef DDR_PHY_ACIOCR3_PAROEMODE_MASK -#define DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_PAROEMODE_SHIFT 30 -#define DDR_PHY_ACIOCR3_PAROEMODE_MASK 0xC0000000U +#define DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_PAROEMODE_SHIFT 30 +#define DDR_PHY_ACIOCR3_PAROEMODE_MASK 0xC0000000U -/*SDRAM Bank Group Output Enable (OE) Mode Selection*/ +/* +* SDRAM Bank Group Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_BGOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_BGOEMODE_MASK -#define DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_BGOEMODE_SHIFT 26 -#define DDR_PHY_ACIOCR3_BGOEMODE_MASK 0x3C000000U +#define DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_BGOEMODE_SHIFT 26 +#define DDR_PHY_ACIOCR3_BGOEMODE_MASK 0x3C000000U -/*SDRAM Bank Address Output Enable (OE) Mode Selection*/ +/* +* SDRAM Bank Address Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_BAOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_BAOEMODE_MASK -#define DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_BAOEMODE_SHIFT 22 -#define DDR_PHY_ACIOCR3_BAOEMODE_MASK 0x03C00000U +#define DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_BAOEMODE_SHIFT 22 +#define DDR_PHY_ACIOCR3_BAOEMODE_MASK 0x03C00000U -/*SDRAM A[17] Output Enable (OE) Mode Selection*/ +/* +* SDRAM A[17] Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_A17OEMODE_SHIFT #undef DDR_PHY_ACIOCR3_A17OEMODE_MASK -#define DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_A17OEMODE_SHIFT 20 -#define DDR_PHY_ACIOCR3_A17OEMODE_MASK 0x00300000U +#define DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_A17OEMODE_SHIFT 20 +#define DDR_PHY_ACIOCR3_A17OEMODE_MASK 0x00300000U -/*SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection*/ +/* +* SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_A16OEMODE_SHIFT #undef DDR_PHY_ACIOCR3_A16OEMODE_MASK -#define DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_A16OEMODE_SHIFT 18 -#define DDR_PHY_ACIOCR3_A16OEMODE_MASK 0x000C0000U +#define DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_A16OEMODE_SHIFT 18 +#define DDR_PHY_ACIOCR3_A16OEMODE_MASK 0x000C0000U -/*SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only)*/ +/* +* SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) +*/ #undef DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_ACTOEMODE_MASK -#define DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT 16 -#define DDR_PHY_ACIOCR3_ACTOEMODE_MASK 0x00030000U +#define DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT 16 +#define DDR_PHY_ACIOCR3_ACTOEMODE_MASK 0x00030000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL #undef DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT #undef DDR_PHY_ACIOCR3_RESERVED_15_8_MASK -#define DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT 8 -#define DDR_PHY_ACIOCR3_RESERVED_15_8_MASK 0x0000FF00U +#define DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT 8 +#define DDR_PHY_ACIOCR3_RESERVED_15_8_MASK 0x0000FF00U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT 4 -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK 0x000000F0U +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT 4 +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK 0x000000F0U -/*SDRAM CK Output Enable (OE) Mode Selection.*/ +/* +* SDRAM CK Output Enable (OE) Mode Selection. +*/ #undef DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_CKOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_CKOEMODE_MASK -#define DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_CKOEMODE_SHIFT 0 -#define DDR_PHY_ACIOCR3_CKOEMODE_MASK 0x0000000FU +#define DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_CKOEMODE_SHIFT 0 +#define DDR_PHY_ACIOCR3_CKOEMODE_MASK 0x0000000FU -/*Clock gating for AC LB slices and loopback read valid slices*/ +/* +* Clock gating for AC LB slices and loopback read valid slices +*/ #undef DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL #undef DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT #undef DDR_PHY_ACIOCR4_LBCLKGATE_MASK -#define DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT 31 -#define DDR_PHY_ACIOCR4_LBCLKGATE_MASK 0x80000000U +#define DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT 31 +#define DDR_PHY_ACIOCR4_LBCLKGATE_MASK 0x80000000U -/*Clock gating for Output Enable D slices [1]*/ +/* +* Clock gating for Output Enable D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT 30 -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK 0x40000000U +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT 30 +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK 0x40000000U -/*Clock gating for Power Down Receiver D slices [1]*/ +/* +* Clock gating for Power Down Receiver D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT 29 -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK 0x20000000U +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT 29 +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK 0x20000000U -/*Clock gating for Termination Enable D slices [1]*/ +/* +* Clock gating for Termination Enable D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT 28 -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK 0x10000000U +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT 28 +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK 0x10000000U -/*Clock gating for CK# D slices [3:2]*/ +/* +* Clock gating for CK# D slices [3:2] +*/ #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT 26 -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK 0x0C000000U +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT 26 +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK 0x0C000000U -/*Clock gating for CK D slices [3:2]*/ +/* +* Clock gating for CK D slices [3:2] +*/ #undef DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_CKCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT 24 -#define DDR_PHY_ACIOCR4_CKCLKGATE1_MASK 0x03000000U +#define DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT 24 +#define DDR_PHY_ACIOCR4_CKCLKGATE1_MASK 0x03000000U -/*Clock gating for AC D slices [47:24]*/ +/* +* Clock gating for AC D slices [47:24] +*/ #undef DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT 0 -#define DDR_PHY_ACIOCR4_ACCLKGATE1_MASK 0x00FFFFFFU +#define DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT 0 +#define DDR_PHY_ACIOCR4_ACCLKGATE1_MASK 0x00FFFFFFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL #undef DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT #undef DDR_PHY_IOVCR0_RESERVED_31_29_MASK -#define DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_IOVCR0_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_IOVCR0_RESERVED_31_29_MASK 0xE0000000U -/*Address/command lane VREF Pad Enable*/ +/* +* Address/command lane VREF Pad Enable +*/ #undef DDR_PHY_IOVCR0_ACREFPEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFPEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFPEN_MASK -#define DDR_PHY_IOVCR0_ACREFPEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFPEN_SHIFT 28 -#define DDR_PHY_IOVCR0_ACREFPEN_MASK 0x10000000U +#define DDR_PHY_IOVCR0_ACREFPEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFPEN_SHIFT 28 +#define DDR_PHY_IOVCR0_ACREFPEN_MASK 0x10000000U -/*Address/command lane Internal VREF Enable*/ +/* +* Address/command lane Internal VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFEEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFEEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFEEN_MASK -#define DDR_PHY_IOVCR0_ACREFEEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFEEN_SHIFT 26 -#define DDR_PHY_IOVCR0_ACREFEEN_MASK 0x0C000000U +#define DDR_PHY_IOVCR0_ACREFEEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFEEN_SHIFT 26 +#define DDR_PHY_IOVCR0_ACREFEEN_MASK 0x0C000000U -/*Address/command lane Single-End VREF Enable*/ +/* +* Address/command lane Single-End VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFSEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFSEN_MASK -#define DDR_PHY_IOVCR0_ACREFSEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSEN_SHIFT 25 -#define DDR_PHY_IOVCR0_ACREFSEN_MASK 0x02000000U +#define DDR_PHY_IOVCR0_ACREFSEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSEN_SHIFT 25 +#define DDR_PHY_IOVCR0_ACREFSEN_MASK 0x02000000U -/*Address/command lane Internal VREF Enable*/ +/* +* Address/command lane Internal VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFIEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFIEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFIEN_MASK -#define DDR_PHY_IOVCR0_ACREFIEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFIEN_SHIFT 24 -#define DDR_PHY_IOVCR0_ACREFIEN_MASK 0x01000000U +#define DDR_PHY_IOVCR0_ACREFIEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFIEN_SHIFT 24 +#define DDR_PHY_IOVCR0_ACREFIEN_MASK 0x01000000U -/*External VREF generato REFSEL range select*/ +/* +* External VREF generato REFSEL range select +*/ #undef DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACREFESELRANGE_MASK -#define DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT 23 -#define DDR_PHY_IOVCR0_ACREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT 23 +#define DDR_PHY_IOVCR0_ACREFESELRANGE_MASK 0x00800000U -/*Address/command lane External VREF Select*/ +/* +* Address/command lane External VREF Select +*/ #undef DDR_PHY_IOVCR0_ACREFESEL_DEFVAL #undef DDR_PHY_IOVCR0_ACREFESEL_SHIFT #undef DDR_PHY_IOVCR0_ACREFESEL_MASK -#define DDR_PHY_IOVCR0_ACREFESEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFESEL_SHIFT 16 -#define DDR_PHY_IOVCR0_ACREFESEL_MASK 0x007F0000U +#define DDR_PHY_IOVCR0_ACREFESEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFESEL_SHIFT 16 +#define DDR_PHY_IOVCR0_ACREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT 15 -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT 15 +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK 0x00008000U -/*Address/command lane Single-End VREF Select*/ +/* +* Address/command lane Single-End VREF Select +*/ #undef DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSSEL_SHIFT #undef DDR_PHY_IOVCR0_ACREFSSEL_MASK -#define DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSSEL_SHIFT 8 -#define DDR_PHY_IOVCR0_ACREFSSEL_MASK 0x00007F00U +#define DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSSEL_SHIFT 8 +#define DDR_PHY_IOVCR0_ACREFSSEL_MASK 0x00007F00U -/*Internal VREF generator REFSEL ragne select*/ +/* +* Internal VREF generator REFSEL ragne select +*/ #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT 7 -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK 0x00000080U +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT 7 +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK 0x00000080U -/*REFSEL Control for internal AC IOs*/ +/* +* REFSEL Control for internal AC IOs +*/ #undef DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL #undef DDR_PHY_IOVCR0_ACVREFISEL_SHIFT #undef DDR_PHY_IOVCR0_ACVREFISEL_MASK -#define DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACVREFISEL_SHIFT 0 -#define DDR_PHY_IOVCR0_ACVREFISEL_MASK 0x0000007FU +#define DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACVREFISEL_SHIFT 0 +#define DDR_PHY_IOVCR0_ACVREFISEL_MASK 0x0000007FU -/*Number of ctl_clk required to meet (> 150ns) timing requirements during DRAM DQ VREF training*/ +/* +* Number of ctl_clk required to meet (> 150ns) timing requirements during + * DRAM DQ VREF training +*/ #undef DDR_PHY_VTCR0_TVREF_DEFVAL #undef DDR_PHY_VTCR0_TVREF_SHIFT #undef DDR_PHY_VTCR0_TVREF_MASK -#define DDR_PHY_VTCR0_TVREF_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_TVREF_SHIFT 29 -#define DDR_PHY_VTCR0_TVREF_MASK 0xE0000000U +#define DDR_PHY_VTCR0_TVREF_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_TVREF_SHIFT 29 +#define DDR_PHY_VTCR0_TVREF_MASK 0xE0000000U -/*DRM DQ VREF training Enable*/ +/* +* DRM DQ VREF training Enable +*/ #undef DDR_PHY_VTCR0_DVEN_DEFVAL #undef DDR_PHY_VTCR0_DVEN_SHIFT #undef DDR_PHY_VTCR0_DVEN_MASK -#define DDR_PHY_VTCR0_DVEN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVEN_SHIFT 28 -#define DDR_PHY_VTCR0_DVEN_MASK 0x10000000U +#define DDR_PHY_VTCR0_DVEN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVEN_SHIFT 28 +#define DDR_PHY_VTCR0_DVEN_MASK 0x10000000U -/*Per Device Addressability Enable*/ +/* +* Per Device Addressability Enable +*/ #undef DDR_PHY_VTCR0_PDAEN_DEFVAL #undef DDR_PHY_VTCR0_PDAEN_SHIFT #undef DDR_PHY_VTCR0_PDAEN_MASK -#define DDR_PHY_VTCR0_PDAEN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_PDAEN_SHIFT 27 -#define DDR_PHY_VTCR0_PDAEN_MASK 0x08000000U +#define DDR_PHY_VTCR0_PDAEN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_PDAEN_SHIFT 27 +#define DDR_PHY_VTCR0_PDAEN_MASK 0x08000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR0_RESERVED_26_DEFVAL #undef DDR_PHY_VTCR0_RESERVED_26_SHIFT #undef DDR_PHY_VTCR0_RESERVED_26_MASK -#define DDR_PHY_VTCR0_RESERVED_26_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_RESERVED_26_SHIFT 26 -#define DDR_PHY_VTCR0_RESERVED_26_MASK 0x04000000U +#define DDR_PHY_VTCR0_RESERVED_26_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_RESERVED_26_SHIFT 26 +#define DDR_PHY_VTCR0_RESERVED_26_MASK 0x04000000U -/*VREF Word Count*/ +/* +* VREF Word Count +*/ #undef DDR_PHY_VTCR0_VWCR_DEFVAL #undef DDR_PHY_VTCR0_VWCR_SHIFT #undef DDR_PHY_VTCR0_VWCR_MASK -#define DDR_PHY_VTCR0_VWCR_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_VWCR_SHIFT 22 -#define DDR_PHY_VTCR0_VWCR_MASK 0x03C00000U +#define DDR_PHY_VTCR0_VWCR_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_VWCR_SHIFT 22 +#define DDR_PHY_VTCR0_VWCR_MASK 0x03C00000U -/*DRAM DQ VREF step size used during DRAM VREF training*/ +/* +* DRAM DQ VREF step size used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVSS_DEFVAL #undef DDR_PHY_VTCR0_DVSS_SHIFT #undef DDR_PHY_VTCR0_DVSS_MASK -#define DDR_PHY_VTCR0_DVSS_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVSS_SHIFT 18 -#define DDR_PHY_VTCR0_DVSS_MASK 0x003C0000U +#define DDR_PHY_VTCR0_DVSS_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVSS_SHIFT 18 +#define DDR_PHY_VTCR0_DVSS_MASK 0x003C0000U -/*Maximum VREF limit value used during DRAM VREF training*/ +/* +* Maximum VREF limit value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVMAX_DEFVAL #undef DDR_PHY_VTCR0_DVMAX_SHIFT #undef DDR_PHY_VTCR0_DVMAX_MASK -#define DDR_PHY_VTCR0_DVMAX_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVMAX_SHIFT 12 -#define DDR_PHY_VTCR0_DVMAX_MASK 0x0003F000U +#define DDR_PHY_VTCR0_DVMAX_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVMAX_SHIFT 12 +#define DDR_PHY_VTCR0_DVMAX_MASK 0x0003F000U -/*Minimum VREF limit value used during DRAM VREF training*/ +/* +* Minimum VREF limit value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVMIN_DEFVAL #undef DDR_PHY_VTCR0_DVMIN_SHIFT #undef DDR_PHY_VTCR0_DVMIN_MASK -#define DDR_PHY_VTCR0_DVMIN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVMIN_SHIFT 6 -#define DDR_PHY_VTCR0_DVMIN_MASK 0x00000FC0U +#define DDR_PHY_VTCR0_DVMIN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVMIN_SHIFT 6 +#define DDR_PHY_VTCR0_DVMIN_MASK 0x00000FC0U -/*Initial DRAM DQ VREF value used during DRAM VREF training*/ +/* +* Initial DRAM DQ VREF value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVINIT_DEFVAL #undef DDR_PHY_VTCR0_DVINIT_SHIFT #undef DDR_PHY_VTCR0_DVINIT_MASK -#define DDR_PHY_VTCR0_DVINIT_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVINIT_SHIFT 0 -#define DDR_PHY_VTCR0_DVINIT_MASK 0x0000003FU +#define DDR_PHY_VTCR0_DVINIT_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVINIT_SHIFT 0 +#define DDR_PHY_VTCR0_DVINIT_MASK 0x0000003FU -/*Host VREF step size used during VREF training. The register value of N indicates step size of (N+1)*/ +/* +* Host VREF step size used during VREF training. The register value of N i + * ndicates step size of (N+1) +*/ #undef DDR_PHY_VTCR1_HVSS_DEFVAL #undef DDR_PHY_VTCR1_HVSS_SHIFT #undef DDR_PHY_VTCR1_HVSS_MASK -#define DDR_PHY_VTCR1_HVSS_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVSS_SHIFT 28 -#define DDR_PHY_VTCR1_HVSS_MASK 0xF0000000U +#define DDR_PHY_VTCR1_HVSS_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVSS_SHIFT 28 +#define DDR_PHY_VTCR1_HVSS_MASK 0xF0000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_27_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_27_SHIFT #undef DDR_PHY_VTCR1_RESERVED_27_MASK -#define DDR_PHY_VTCR1_RESERVED_27_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_27_SHIFT 27 -#define DDR_PHY_VTCR1_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_VTCR1_RESERVED_27_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_27_SHIFT 27 +#define DDR_PHY_VTCR1_RESERVED_27_MASK 0x08000000U -/*Maximum VREF limit value used during DRAM VREF training.*/ +/* +* Maximum VREF limit value used during DRAM VREF training. +*/ #undef DDR_PHY_VTCR1_HVMAX_DEFVAL #undef DDR_PHY_VTCR1_HVMAX_SHIFT #undef DDR_PHY_VTCR1_HVMAX_MASK -#define DDR_PHY_VTCR1_HVMAX_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVMAX_SHIFT 20 -#define DDR_PHY_VTCR1_HVMAX_MASK 0x07F00000U +#define DDR_PHY_VTCR1_HVMAX_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVMAX_SHIFT 20 +#define DDR_PHY_VTCR1_HVMAX_MASK 0x07F00000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_19_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_19_SHIFT #undef DDR_PHY_VTCR1_RESERVED_19_MASK -#define DDR_PHY_VTCR1_RESERVED_19_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_19_SHIFT 19 -#define DDR_PHY_VTCR1_RESERVED_19_MASK 0x00080000U +#define DDR_PHY_VTCR1_RESERVED_19_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_19_SHIFT 19 +#define DDR_PHY_VTCR1_RESERVED_19_MASK 0x00080000U -/*Minimum VREF limit value used during DRAM VREF training.*/ +/* +* Minimum VREF limit value used during DRAM VREF training. +*/ #undef DDR_PHY_VTCR1_HVMIN_DEFVAL #undef DDR_PHY_VTCR1_HVMIN_SHIFT #undef DDR_PHY_VTCR1_HVMIN_MASK -#define DDR_PHY_VTCR1_HVMIN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVMIN_SHIFT 12 -#define DDR_PHY_VTCR1_HVMIN_MASK 0x0007F000U +#define DDR_PHY_VTCR1_HVMIN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVMIN_SHIFT 12 +#define DDR_PHY_VTCR1_HVMIN_MASK 0x0007F000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_11_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_11_SHIFT #undef DDR_PHY_VTCR1_RESERVED_11_MASK -#define DDR_PHY_VTCR1_RESERVED_11_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_11_SHIFT 11 -#define DDR_PHY_VTCR1_RESERVED_11_MASK 0x00000800U +#define DDR_PHY_VTCR1_RESERVED_11_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_11_SHIFT 11 +#define DDR_PHY_VTCR1_RESERVED_11_MASK 0x00000800U -/*Static Host Vref Rank Value*/ +/* +* Static Host Vref Rank Value +*/ #undef DDR_PHY_VTCR1_SHRNK_DEFVAL #undef DDR_PHY_VTCR1_SHRNK_SHIFT #undef DDR_PHY_VTCR1_SHRNK_MASK -#define DDR_PHY_VTCR1_SHRNK_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_SHRNK_SHIFT 9 -#define DDR_PHY_VTCR1_SHRNK_MASK 0x00000600U +#define DDR_PHY_VTCR1_SHRNK_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_SHRNK_SHIFT 9 +#define DDR_PHY_VTCR1_SHRNK_MASK 0x00000600U -/*Static Host Vref Rank Enable*/ +/* +* Static Host Vref Rank Enable +*/ #undef DDR_PHY_VTCR1_SHREN_DEFVAL #undef DDR_PHY_VTCR1_SHREN_SHIFT #undef DDR_PHY_VTCR1_SHREN_MASK -#define DDR_PHY_VTCR1_SHREN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_SHREN_SHIFT 8 -#define DDR_PHY_VTCR1_SHREN_MASK 0x00000100U +#define DDR_PHY_VTCR1_SHREN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_SHREN_SHIFT 8 +#define DDR_PHY_VTCR1_SHREN_MASK 0x00000100U -/*Number of ctl_clk required to meet (> 200ns) VREF Settling timing requirements during Host IO VREF training*/ +/* +* Number of ctl_clk required to meet (> 200ns) VREF Settling timing requir + * ements during Host IO VREF training +*/ #undef DDR_PHY_VTCR1_TVREFIO_DEFVAL #undef DDR_PHY_VTCR1_TVREFIO_SHIFT #undef DDR_PHY_VTCR1_TVREFIO_MASK -#define DDR_PHY_VTCR1_TVREFIO_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_TVREFIO_SHIFT 5 -#define DDR_PHY_VTCR1_TVREFIO_MASK 0x000000E0U +#define DDR_PHY_VTCR1_TVREFIO_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_TVREFIO_SHIFT 5 +#define DDR_PHY_VTCR1_TVREFIO_MASK 0x000000E0U -/*Eye LCDL Offset value for VREF training*/ +/* +* Eye LCDL Offset value for VREF training +*/ #undef DDR_PHY_VTCR1_EOFF_DEFVAL #undef DDR_PHY_VTCR1_EOFF_SHIFT #undef DDR_PHY_VTCR1_EOFF_MASK -#define DDR_PHY_VTCR1_EOFF_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_EOFF_SHIFT 3 -#define DDR_PHY_VTCR1_EOFF_MASK 0x00000018U +#define DDR_PHY_VTCR1_EOFF_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_EOFF_SHIFT 3 +#define DDR_PHY_VTCR1_EOFF_MASK 0x00000018U -/*Number of LCDL Eye points for which VREF training is repeated*/ +/* +* Number of LCDL Eye points for which VREF training is repeated +*/ #undef DDR_PHY_VTCR1_ENUM_DEFVAL #undef DDR_PHY_VTCR1_ENUM_SHIFT #undef DDR_PHY_VTCR1_ENUM_MASK -#define DDR_PHY_VTCR1_ENUM_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_ENUM_SHIFT 2 -#define DDR_PHY_VTCR1_ENUM_MASK 0x00000004U +#define DDR_PHY_VTCR1_ENUM_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_ENUM_SHIFT 2 +#define DDR_PHY_VTCR1_ENUM_MASK 0x00000004U -/*HOST (IO) internal VREF training Enable*/ +/* +* HOST (IO) internal VREF training Enable +*/ #undef DDR_PHY_VTCR1_HVEN_DEFVAL #undef DDR_PHY_VTCR1_HVEN_SHIFT #undef DDR_PHY_VTCR1_HVEN_MASK -#define DDR_PHY_VTCR1_HVEN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVEN_SHIFT 1 -#define DDR_PHY_VTCR1_HVEN_MASK 0x00000002U +#define DDR_PHY_VTCR1_HVEN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVEN_SHIFT 1 +#define DDR_PHY_VTCR1_HVEN_MASK 0x00000002U -/*Host IO Type Control*/ +/* +* Host IO Type Control +*/ #undef DDR_PHY_VTCR1_HVIO_DEFVAL #undef DDR_PHY_VTCR1_HVIO_SHIFT #undef DDR_PHY_VTCR1_HVIO_MASK -#define DDR_PHY_VTCR1_HVIO_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVIO_SHIFT 0 -#define DDR_PHY_VTCR1_HVIO_MASK 0x00000001U +#define DDR_PHY_VTCR1_HVIO_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVIO_SHIFT 0 +#define DDR_PHY_VTCR1_HVIO_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR1_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR1_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Parity.*/ +/* +* Delay select for the BDL on Parity. +*/ #undef DDR_PHY_ACBDLR1_PARBD_DEFVAL #undef DDR_PHY_ACBDLR1_PARBD_SHIFT #undef DDR_PHY_ACBDLR1_PARBD_MASK -#define DDR_PHY_ACBDLR1_PARBD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_PARBD_SHIFT 24 -#define DDR_PHY_ACBDLR1_PARBD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR1_PARBD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_PARBD_SHIFT 24 +#define DDR_PHY_ACBDLR1_PARBD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR1_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR1_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[16]. In DDR3 mode this pin is connected to WE.*/ +/* +* Delay select for the BDL on Address A[16]. In DDR3 mode this pin is conn + * ected to WE. +*/ #undef DDR_PHY_ACBDLR1_A16BD_DEFVAL #undef DDR_PHY_ACBDLR1_A16BD_SHIFT #undef DDR_PHY_ACBDLR1_A16BD_MASK -#define DDR_PHY_ACBDLR1_A16BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_A16BD_SHIFT 16 -#define DDR_PHY_ACBDLR1_A16BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR1_A16BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_A16BD_SHIFT 16 +#define DDR_PHY_ACBDLR1_A16BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR1_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[17]. When not in DDR4 modemode this pin is connected to CAS.*/ +/* +* Delay select for the BDL on Address A[17]. When not in DDR4 modemode thi + * s pin is connected to CAS. +*/ #undef DDR_PHY_ACBDLR1_A17BD_DEFVAL #undef DDR_PHY_ACBDLR1_A17BD_SHIFT #undef DDR_PHY_ACBDLR1_A17BD_MASK -#define DDR_PHY_ACBDLR1_A17BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_A17BD_SHIFT 8 -#define DDR_PHY_ACBDLR1_A17BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR1_A17BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_A17BD_SHIFT 8 +#define DDR_PHY_ACBDLR1_A17BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR1_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR1_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on ACTN.*/ +/* +* Delay select for the BDL on ACTN. +*/ #undef DDR_PHY_ACBDLR1_ACTBD_DEFVAL #undef DDR_PHY_ACBDLR1_ACTBD_SHIFT #undef DDR_PHY_ACBDLR1_ACTBD_MASK -#define DDR_PHY_ACBDLR1_ACTBD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_ACTBD_SHIFT 0 -#define DDR_PHY_ACBDLR1_ACTBD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR1_ACTBD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_ACTBD_SHIFT 0 +#define DDR_PHY_ACBDLR1_ACTBD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR2_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR2_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on BG[1].*/ +/* +* Delay select for the BDL on BG[1]. +*/ #undef DDR_PHY_ACBDLR2_BG1BD_DEFVAL #undef DDR_PHY_ACBDLR2_BG1BD_SHIFT #undef DDR_PHY_ACBDLR2_BG1BD_MASK -#define DDR_PHY_ACBDLR2_BG1BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BG1BD_SHIFT 24 -#define DDR_PHY_ACBDLR2_BG1BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR2_BG1BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BG1BD_SHIFT 24 +#define DDR_PHY_ACBDLR2_BG1BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR2_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR2_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on BG[0].*/ +/* +* Delay select for the BDL on BG[0]. +*/ #undef DDR_PHY_ACBDLR2_BG0BD_DEFVAL #undef DDR_PHY_ACBDLR2_BG0BD_SHIFT #undef DDR_PHY_ACBDLR2_BG0BD_MASK -#define DDR_PHY_ACBDLR2_BG0BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BG0BD_SHIFT 16 -#define DDR_PHY_ACBDLR2_BG0BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR2_BG0BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BG0BD_SHIFT 16 +#define DDR_PHY_ACBDLR2_BG0BD_MASK 0x003F0000U -/*Reser.ved Return zeroes on reads.*/ +/* +* Reser.ved Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR2_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR2_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on BA[1].*/ +/* +* Delay select for the BDL on BA[1]. +*/ #undef DDR_PHY_ACBDLR2_BA1BD_DEFVAL #undef DDR_PHY_ACBDLR2_BA1BD_SHIFT #undef DDR_PHY_ACBDLR2_BA1BD_MASK -#define DDR_PHY_ACBDLR2_BA1BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BA1BD_SHIFT 8 -#define DDR_PHY_ACBDLR2_BA1BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR2_BA1BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BA1BD_SHIFT 8 +#define DDR_PHY_ACBDLR2_BA1BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR2_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR2_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on BA[0].*/ +/* +* Delay select for the BDL on BA[0]. +*/ #undef DDR_PHY_ACBDLR2_BA0BD_DEFVAL #undef DDR_PHY_ACBDLR2_BA0BD_SHIFT #undef DDR_PHY_ACBDLR2_BA0BD_MASK -#define DDR_PHY_ACBDLR2_BA0BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BA0BD_SHIFT 0 -#define DDR_PHY_ACBDLR2_BA0BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR2_BA0BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BA0BD_SHIFT 0 +#define DDR_PHY_ACBDLR2_BA0BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR6_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[3].*/ +/* +* Delay select for the BDL on Address A[3]. +*/ #undef DDR_PHY_ACBDLR6_A03BD_DEFVAL #undef DDR_PHY_ACBDLR6_A03BD_SHIFT #undef DDR_PHY_ACBDLR6_A03BD_MASK -#define DDR_PHY_ACBDLR6_A03BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A03BD_SHIFT 24 -#define DDR_PHY_ACBDLR6_A03BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR6_A03BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A03BD_SHIFT 24 +#define DDR_PHY_ACBDLR6_A03BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR6_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[2].*/ +/* +* Delay select for the BDL on Address A[2]. +*/ #undef DDR_PHY_ACBDLR6_A02BD_DEFVAL #undef DDR_PHY_ACBDLR6_A02BD_SHIFT #undef DDR_PHY_ACBDLR6_A02BD_MASK -#define DDR_PHY_ACBDLR6_A02BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A02BD_SHIFT 16 -#define DDR_PHY_ACBDLR6_A02BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR6_A02BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A02BD_SHIFT 16 +#define DDR_PHY_ACBDLR6_A02BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR6_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[1].*/ +/* +* Delay select for the BDL on Address A[1]. +*/ #undef DDR_PHY_ACBDLR6_A01BD_DEFVAL #undef DDR_PHY_ACBDLR6_A01BD_SHIFT #undef DDR_PHY_ACBDLR6_A01BD_MASK -#define DDR_PHY_ACBDLR6_A01BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A01BD_SHIFT 8 -#define DDR_PHY_ACBDLR6_A01BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR6_A01BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A01BD_SHIFT 8 +#define DDR_PHY_ACBDLR6_A01BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR6_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[0].*/ +/* +* Delay select for the BDL on Address A[0]. +*/ #undef DDR_PHY_ACBDLR6_A00BD_DEFVAL #undef DDR_PHY_ACBDLR6_A00BD_SHIFT #undef DDR_PHY_ACBDLR6_A00BD_MASK -#define DDR_PHY_ACBDLR6_A00BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A00BD_SHIFT 0 -#define DDR_PHY_ACBDLR6_A00BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR6_A00BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A00BD_SHIFT 0 +#define DDR_PHY_ACBDLR6_A00BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR7_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR7_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[7].*/ +/* +* Delay select for the BDL on Address A[7]. +*/ #undef DDR_PHY_ACBDLR7_A07BD_DEFVAL #undef DDR_PHY_ACBDLR7_A07BD_SHIFT #undef DDR_PHY_ACBDLR7_A07BD_MASK -#define DDR_PHY_ACBDLR7_A07BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A07BD_SHIFT 24 -#define DDR_PHY_ACBDLR7_A07BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR7_A07BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A07BD_SHIFT 24 +#define DDR_PHY_ACBDLR7_A07BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR7_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR7_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[6].*/ +/* +* Delay select for the BDL on Address A[6]. +*/ #undef DDR_PHY_ACBDLR7_A06BD_DEFVAL #undef DDR_PHY_ACBDLR7_A06BD_SHIFT #undef DDR_PHY_ACBDLR7_A06BD_MASK -#define DDR_PHY_ACBDLR7_A06BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A06BD_SHIFT 16 -#define DDR_PHY_ACBDLR7_A06BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR7_A06BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A06BD_SHIFT 16 +#define DDR_PHY_ACBDLR7_A06BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR7_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR7_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[5].*/ +/* +* Delay select for the BDL on Address A[5]. +*/ #undef DDR_PHY_ACBDLR7_A05BD_DEFVAL #undef DDR_PHY_ACBDLR7_A05BD_SHIFT #undef DDR_PHY_ACBDLR7_A05BD_MASK -#define DDR_PHY_ACBDLR7_A05BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A05BD_SHIFT 8 -#define DDR_PHY_ACBDLR7_A05BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR7_A05BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A05BD_SHIFT 8 +#define DDR_PHY_ACBDLR7_A05BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR7_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR7_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[4].*/ +/* +* Delay select for the BDL on Address A[4]. +*/ #undef DDR_PHY_ACBDLR7_A04BD_DEFVAL #undef DDR_PHY_ACBDLR7_A04BD_SHIFT #undef DDR_PHY_ACBDLR7_A04BD_MASK -#define DDR_PHY_ACBDLR7_A04BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A04BD_SHIFT 0 -#define DDR_PHY_ACBDLR7_A04BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR7_A04BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A04BD_SHIFT 0 +#define DDR_PHY_ACBDLR7_A04BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR8_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR8_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[11].*/ +/* +* Delay select for the BDL on Address A[11]. +*/ #undef DDR_PHY_ACBDLR8_A11BD_DEFVAL #undef DDR_PHY_ACBDLR8_A11BD_SHIFT #undef DDR_PHY_ACBDLR8_A11BD_MASK -#define DDR_PHY_ACBDLR8_A11BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A11BD_SHIFT 24 -#define DDR_PHY_ACBDLR8_A11BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR8_A11BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A11BD_SHIFT 24 +#define DDR_PHY_ACBDLR8_A11BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR8_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR8_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[10].*/ +/* +* Delay select for the BDL on Address A[10]. +*/ #undef DDR_PHY_ACBDLR8_A10BD_DEFVAL #undef DDR_PHY_ACBDLR8_A10BD_SHIFT #undef DDR_PHY_ACBDLR8_A10BD_MASK -#define DDR_PHY_ACBDLR8_A10BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A10BD_SHIFT 16 -#define DDR_PHY_ACBDLR8_A10BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR8_A10BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A10BD_SHIFT 16 +#define DDR_PHY_ACBDLR8_A10BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR8_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR8_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[9].*/ +/* +* Delay select for the BDL on Address A[9]. +*/ #undef DDR_PHY_ACBDLR8_A09BD_DEFVAL #undef DDR_PHY_ACBDLR8_A09BD_SHIFT #undef DDR_PHY_ACBDLR8_A09BD_MASK -#define DDR_PHY_ACBDLR8_A09BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A09BD_SHIFT 8 -#define DDR_PHY_ACBDLR8_A09BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR8_A09BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A09BD_SHIFT 8 +#define DDR_PHY_ACBDLR8_A09BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR8_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR8_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[8].*/ +/* +* Delay select for the BDL on Address A[8]. +*/ #undef DDR_PHY_ACBDLR8_A08BD_DEFVAL #undef DDR_PHY_ACBDLR8_A08BD_SHIFT #undef DDR_PHY_ACBDLR8_A08BD_MASK -#define DDR_PHY_ACBDLR8_A08BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A08BD_SHIFT 0 -#define DDR_PHY_ACBDLR8_A08BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR8_A08BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A08BD_SHIFT 0 +#define DDR_PHY_ACBDLR8_A08BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR9_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR9_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[15].*/ +/* +* Delay select for the BDL on Address A[15]. +*/ #undef DDR_PHY_ACBDLR9_A15BD_DEFVAL #undef DDR_PHY_ACBDLR9_A15BD_SHIFT #undef DDR_PHY_ACBDLR9_A15BD_MASK -#define DDR_PHY_ACBDLR9_A15BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A15BD_SHIFT 24 -#define DDR_PHY_ACBDLR9_A15BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR9_A15BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A15BD_SHIFT 24 +#define DDR_PHY_ACBDLR9_A15BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR9_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR9_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[14].*/ +/* +* Delay select for the BDL on Address A[14]. +*/ #undef DDR_PHY_ACBDLR9_A14BD_DEFVAL #undef DDR_PHY_ACBDLR9_A14BD_SHIFT #undef DDR_PHY_ACBDLR9_A14BD_MASK -#define DDR_PHY_ACBDLR9_A14BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A14BD_SHIFT 16 -#define DDR_PHY_ACBDLR9_A14BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR9_A14BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A14BD_SHIFT 16 +#define DDR_PHY_ACBDLR9_A14BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR9_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR9_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[13].*/ +/* +* Delay select for the BDL on Address A[13]. +*/ #undef DDR_PHY_ACBDLR9_A13BD_DEFVAL #undef DDR_PHY_ACBDLR9_A13BD_SHIFT #undef DDR_PHY_ACBDLR9_A13BD_MASK -#define DDR_PHY_ACBDLR9_A13BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A13BD_SHIFT 8 -#define DDR_PHY_ACBDLR9_A13BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR9_A13BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A13BD_SHIFT 8 +#define DDR_PHY_ACBDLR9_A13BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR9_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR9_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[12].*/ +/* +* Delay select for the BDL on Address A[12]. +*/ #undef DDR_PHY_ACBDLR9_A12BD_DEFVAL #undef DDR_PHY_ACBDLR9_A12BD_SHIFT #undef DDR_PHY_ACBDLR9_A12BD_MASK -#define DDR_PHY_ACBDLR9_A12BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A12BD_SHIFT 0 -#define DDR_PHY_ACBDLR9_A12BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR9_A12BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A12BD_SHIFT 0 +#define DDR_PHY_ACBDLR9_A12BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQCR_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQCR_RESERVED_31_26_MASK -#define DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQCR_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQCR_RESERVED_31_26_MASK 0xFC000000U -/*ZQ VREF Range*/ +/* +* ZQ VREF Range +*/ #undef DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL #undef DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT #undef DDR_PHY_ZQCR_ZQREFISELRANGE_MASK -#define DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT 25 -#define DDR_PHY_ZQCR_ZQREFISELRANGE_MASK 0x02000000U +#define DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT 25 +#define DDR_PHY_ZQCR_ZQREFISELRANGE_MASK 0x02000000U -/*Programmable Wait for Frequency B*/ +/* +* Programmable Wait for Frequency B +*/ #undef DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL #undef DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT #undef DDR_PHY_ZQCR_PGWAIT_FRQB_MASK -#define DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT 19 -#define DDR_PHY_ZQCR_PGWAIT_FRQB_MASK 0x01F80000U +#define DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT 19 +#define DDR_PHY_ZQCR_PGWAIT_FRQB_MASK 0x01F80000U -/*Programmable Wait for Frequency A*/ +/* +* Programmable Wait for Frequency A +*/ #undef DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL #undef DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT #undef DDR_PHY_ZQCR_PGWAIT_FRQA_MASK -#define DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT 13 -#define DDR_PHY_ZQCR_PGWAIT_FRQA_MASK 0x0007E000U +#define DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT 13 +#define DDR_PHY_ZQCR_PGWAIT_FRQA_MASK 0x0007E000U -/*ZQ VREF Pad Enable*/ +/* +* ZQ VREF Pad Enable +*/ #undef DDR_PHY_ZQCR_ZQREFPEN_DEFVAL #undef DDR_PHY_ZQCR_ZQREFPEN_SHIFT #undef DDR_PHY_ZQCR_ZQREFPEN_MASK -#define DDR_PHY_ZQCR_ZQREFPEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFPEN_SHIFT 12 -#define DDR_PHY_ZQCR_ZQREFPEN_MASK 0x00001000U +#define DDR_PHY_ZQCR_ZQREFPEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFPEN_SHIFT 12 +#define DDR_PHY_ZQCR_ZQREFPEN_MASK 0x00001000U -/*ZQ Internal VREF Enable*/ +/* +* ZQ Internal VREF Enable +*/ #undef DDR_PHY_ZQCR_ZQREFIEN_DEFVAL #undef DDR_PHY_ZQCR_ZQREFIEN_SHIFT #undef DDR_PHY_ZQCR_ZQREFIEN_MASK -#define DDR_PHY_ZQCR_ZQREFIEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFIEN_SHIFT 11 -#define DDR_PHY_ZQCR_ZQREFIEN_MASK 0x00000800U +#define DDR_PHY_ZQCR_ZQREFIEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFIEN_SHIFT 11 +#define DDR_PHY_ZQCR_ZQREFIEN_MASK 0x00000800U -/*Choice of termination mode*/ +/* +* Choice of termination mode +*/ #undef DDR_PHY_ZQCR_ODT_MODE_DEFVAL #undef DDR_PHY_ZQCR_ODT_MODE_SHIFT #undef DDR_PHY_ZQCR_ODT_MODE_MASK -#define DDR_PHY_ZQCR_ODT_MODE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ODT_MODE_SHIFT 9 -#define DDR_PHY_ZQCR_ODT_MODE_MASK 0x00000600U +#define DDR_PHY_ZQCR_ODT_MODE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ODT_MODE_SHIFT 9 +#define DDR_PHY_ZQCR_ODT_MODE_MASK 0x00000600U -/*Force ZCAL VT update*/ +/* +* Force ZCAL VT update +*/ #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT 8 -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK 0x00000100U +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT 8 +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK 0x00000100U -/*IO VT Drift Limit*/ +/* +* IO VT Drift Limit +*/ #undef DDR_PHY_ZQCR_IODLMT_DEFVAL #undef DDR_PHY_ZQCR_IODLMT_SHIFT #undef DDR_PHY_ZQCR_IODLMT_MASK -#define DDR_PHY_ZQCR_IODLMT_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_IODLMT_SHIFT 5 -#define DDR_PHY_ZQCR_IODLMT_MASK 0x000000E0U +#define DDR_PHY_ZQCR_IODLMT_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_IODLMT_SHIFT 5 +#define DDR_PHY_ZQCR_IODLMT_MASK 0x000000E0U -/*Averaging algorithm enable, if set, enables averaging algorithm*/ +/* +* Averaging algorithm enable, if set, enables averaging algorithm +*/ #undef DDR_PHY_ZQCR_AVGEN_DEFVAL #undef DDR_PHY_ZQCR_AVGEN_SHIFT #undef DDR_PHY_ZQCR_AVGEN_MASK -#define DDR_PHY_ZQCR_AVGEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_AVGEN_SHIFT 4 -#define DDR_PHY_ZQCR_AVGEN_MASK 0x00000010U +#define DDR_PHY_ZQCR_AVGEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_AVGEN_SHIFT 4 +#define DDR_PHY_ZQCR_AVGEN_MASK 0x00000010U -/*Maximum number of averaging rounds to be used by averaging algorithm*/ +/* +* Maximum number of averaging rounds to be used by averaging algorithm +*/ #undef DDR_PHY_ZQCR_AVGMAX_DEFVAL #undef DDR_PHY_ZQCR_AVGMAX_SHIFT #undef DDR_PHY_ZQCR_AVGMAX_MASK -#define DDR_PHY_ZQCR_AVGMAX_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_AVGMAX_SHIFT 2 -#define DDR_PHY_ZQCR_AVGMAX_MASK 0x0000000CU +#define DDR_PHY_ZQCR_AVGMAX_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_AVGMAX_SHIFT 2 +#define DDR_PHY_ZQCR_AVGMAX_MASK 0x0000000CU -/*ZQ Calibration Type*/ +/* +* ZQ Calibration Type +*/ #undef DDR_PHY_ZQCR_ZCALT_DEFVAL #undef DDR_PHY_ZQCR_ZCALT_SHIFT #undef DDR_PHY_ZQCR_ZCALT_MASK -#define DDR_PHY_ZQCR_ZCALT_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZCALT_SHIFT 1 -#define DDR_PHY_ZQCR_ZCALT_MASK 0x00000002U +#define DDR_PHY_ZQCR_ZCALT_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZCALT_SHIFT 1 +#define DDR_PHY_ZQCR_ZCALT_MASK 0x00000002U -/*ZQ Power Down*/ +/* +* ZQ Power Down +*/ #undef DDR_PHY_ZQCR_ZQPD_DEFVAL #undef DDR_PHY_ZQCR_ZQPD_SHIFT #undef DDR_PHY_ZQCR_ZQPD_MASK -#define DDR_PHY_ZQCR_ZQPD_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQPD_SHIFT 0 -#define DDR_PHY_ZQCR_ZQPD_MASK 0x00000001U +#define DDR_PHY_ZQCR_ZQPD_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQPD_SHIFT 0 +#define DDR_PHY_ZQCR_ZQPD_MASK 0x00000001U -/*Pull-down drive strength ZCTRL over-ride enable*/ +/* +* Pull-down drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT 31 -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK 0x80000000U +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT 31 +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK 0x80000000U -/*Pull-up drive strength ZCTRL over-ride enable*/ +/* +* Pull-up drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT 30 -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK 0x40000000U +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT 30 +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK 0x40000000U -/*Pull-down termination ZCTRL over-ride enable*/ +/* +* Pull-down termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT 29 -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK 0x20000000U +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT 29 +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK 0x20000000U -/*Pull-up termination ZCTRL over-ride enable*/ +/* +* Pull-up termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT 28 -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK 0x10000000U +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT 28 +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK 0x10000000U -/*Calibration segment bypass*/ +/* +* Calibration segment bypass +*/ #undef DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL #undef DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT #undef DDR_PHY_ZQ0PR0_ZSEGBYP_MASK -#define DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT 27 -#define DDR_PHY_ZQ0PR0_ZSEGBYP_MASK 0x08000000U +#define DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT 27 +#define DDR_PHY_ZQ0PR0_ZSEGBYP_MASK 0x08000000U -/*VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB*/ +/* +* VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB +*/ #undef DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL #undef DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT #undef DDR_PHY_ZQ0PR0_ZLE_MODE_MASK -#define DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT 25 -#define DDR_PHY_ZQ0PR0_ZLE_MODE_MASK 0x06000000U +#define DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT 25 +#define DDR_PHY_ZQ0PR0_ZLE_MODE_MASK 0x06000000U -/*Termination adjustment*/ +/* +* Termination adjustment +*/ #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT 22 -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK 0x01C00000U +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT 22 +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK 0x01C00000U -/*Pulldown drive strength adjustment*/ +/* +* Pulldown drive strength adjustment +*/ #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT 19 -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK 0x00380000U +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT 19 +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK 0x00380000U -/*Pullup drive strength adjustment*/ +/* +* Pullup drive strength adjustment +*/ #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT 16 -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK 0x00070000U +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT 16 +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK 0x00070000U -/*DRAM Impedance Divide Ratio*/ +/* +* DRAM Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT 12 -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT 12 +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U -/*HOST Impedance Divide Ratio*/ +/* +* HOST Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT 8 -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK 0x00000F00U +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT 8 +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK 0x00000F00U -/*Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U -/*Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK 0xFC000000U -/*Override value for the pull-up output impedance*/ +/* +* Override value for the pull-up output impedance +*/ #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT 16 -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK 0x03FF0000U +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT 16 +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK 0x03FF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK 0x0000FC00U -/*Override value for the pull-down output impedance*/ +/* +* Override value for the pull-down output impedance +*/ #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT 0 -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK 0x000003FFU +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT 0 +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK 0x000003FFU -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK 0xFC000000U -/*Override value for the pull-up termination*/ +/* +* Override value for the pull-up termination +*/ #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT 16 -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK 0x03FF0000U +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT 16 +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK 0x03FF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK 0x0000FC00U -/*Override value for the pull-down termination*/ +/* +* Override value for the pull-down termination +*/ #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT 0 -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK 0x000003FFU +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT 0 +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK 0x000003FFU -/*Pull-down drive strength ZCTRL over-ride enable*/ +/* +* Pull-down drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT 31 -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK 0x80000000U +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT 31 +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK 0x80000000U -/*Pull-up drive strength ZCTRL over-ride enable*/ +/* +* Pull-up drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT 30 -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK 0x40000000U +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT 30 +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK 0x40000000U -/*Pull-down termination ZCTRL over-ride enable*/ +/* +* Pull-down termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT 29 -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK 0x20000000U +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT 29 +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK 0x20000000U -/*Pull-up termination ZCTRL over-ride enable*/ +/* +* Pull-up termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT 28 -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK 0x10000000U +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT 28 +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK 0x10000000U -/*Calibration segment bypass*/ +/* +* Calibration segment bypass +*/ #undef DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL #undef DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT #undef DDR_PHY_ZQ1PR0_ZSEGBYP_MASK -#define DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT 27 -#define DDR_PHY_ZQ1PR0_ZSEGBYP_MASK 0x08000000U +#define DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT 27 +#define DDR_PHY_ZQ1PR0_ZSEGBYP_MASK 0x08000000U -/*VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB*/ +/* +* VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB +*/ #undef DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL #undef DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT #undef DDR_PHY_ZQ1PR0_ZLE_MODE_MASK -#define DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT 25 -#define DDR_PHY_ZQ1PR0_ZLE_MODE_MASK 0x06000000U +#define DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT 25 +#define DDR_PHY_ZQ1PR0_ZLE_MODE_MASK 0x06000000U -/*Termination adjustment*/ +/* +* Termination adjustment +*/ #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT 22 -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK 0x01C00000U +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT 22 +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK 0x01C00000U -/*Pulldown drive strength adjustment*/ +/* +* Pulldown drive strength adjustment +*/ #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT 19 -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK 0x00380000U +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT 19 +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK 0x00380000U -/*Pullup drive strength adjustment*/ +/* +* Pullup drive strength adjustment +*/ #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT 16 -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK 0x00070000U +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT 16 +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK 0x00070000U -/*DRAM Impedance Divide Ratio*/ +/* +* DRAM Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT 12 -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT 12 +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U -/*HOST Impedance Divide Ratio*/ +/* +* HOST Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT 8 -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK 0x00000F00U +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT 8 +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK 0x00000F00U -/*Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U -/*Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX0GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX0GCR0_CALBYP_SHIFT #undef DDR_PHY_DX0GCR0_CALBYP_MASK -#define DDR_PHY_DX0GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX0GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX0GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX0GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX0GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX0GCR0_MDLEN_SHIFT #undef DDR_PHY_DX0GCR0_MDLEN_MASK -#define DDR_PHY_DX0GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX0GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX0GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX0GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX0GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX0GCR0_CODTSHFT_MASK -#define DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX0GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX0GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX0GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX0GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX0GCR0_DQSDCC_MASK -#define DDR_PHY_DX0GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX0GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX0GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX0GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX0GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX0GCR0_RDDLY_SHIFT #undef DDR_PHY_DX0GCR0_RDDLY_MASK -#define DDR_PHY_DX0GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX0GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX0GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX0GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX0GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX0GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX0GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX0GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX0GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX0GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX0GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX0GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX0GCR0_RTTOAL_MASK -#define DDR_PHY_DX0GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX0GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX0GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX0GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX0GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX0GCR0_RTTOH_SHIFT #undef DDR_PHY_DX0GCR0_RTTOH_MASK -#define DDR_PHY_DX0GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX0GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX0GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX0GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX0GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX0GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX0GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX0GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX0GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX0GCR0_DQSRPD_MASK -#define DDR_PHY_DX0GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX0GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX0GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX0GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSGPDR_MASK -#define DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX0GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX0GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_4_MASK -#define DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX0GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX0GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX0GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX0GCR0_DQSGODT_MASK -#define DDR_PHY_DX0GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX0GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX0GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX0GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX0GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX0GCR0_DQSGOE_MASK -#define DDR_PHY_DX0GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX0GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX0GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX0GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX0GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX0GCR0_RESERVED_1_0_MASK 0x00000003U -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX0GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX0GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFPEN_MASK -#define DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX0GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX0GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFEEN_MASK -#define DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX0GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX0GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSEN_MASK -#define DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX0GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX0GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_24_MASK -#define DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX0GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX0GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX0GCR4_DXREFESEL_MASK -#define DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX0GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX0GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX0GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX0GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX0GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX0GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFIEN_MASK -#define DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX0GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX0GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX0GCR4_DXREFIMON_MASK -#define DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX0GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX0GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_31_MASK -#define DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX0GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX0GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX0GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX0GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_23_MASK -#define DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX0GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX0GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX0GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX0GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_15_MASK -#define DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX0GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX0GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX0GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX0GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_7_MASK -#define DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX0GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX0GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX0GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX0GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX0GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX0GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX0GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX0GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX0GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX0GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX0GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX0GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX0GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX0GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX0GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX0GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX0GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX0GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX0GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX0GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX0LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX0LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX0LCDLR2_DQSGD_MASK -#define DDR_PHY_DX0LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX0LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX0GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX0GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX0GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX0GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX0GTR0_WDQSL_MASK -#define DDR_PHY_DX0GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX0GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX0GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX0GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX0GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX0GTR0_WLSL_SHIFT -#undef DDR_PHY_DX0GTR0_WLSL_MASK -#define DDR_PHY_DX0GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX0GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX0GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX0GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX0GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX0GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX0GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX0GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX0GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX0GTR0_DGSL_SHIFT -#undef DDR_PHY_DX0GTR0_DGSL_MASK -#define DDR_PHY_DX0GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX0GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX1GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX1GCR0_CALBYP_SHIFT #undef DDR_PHY_DX1GCR0_CALBYP_MASK -#define DDR_PHY_DX1GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX1GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX1GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX1GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX1GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX1GCR0_MDLEN_SHIFT #undef DDR_PHY_DX1GCR0_MDLEN_MASK -#define DDR_PHY_DX1GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX1GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX1GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX1GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX1GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX1GCR0_CODTSHFT_MASK -#define DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX1GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX1GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX1GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX1GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX1GCR0_DQSDCC_MASK -#define DDR_PHY_DX1GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX1GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX1GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX1GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX1GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX1GCR0_RDDLY_SHIFT #undef DDR_PHY_DX1GCR0_RDDLY_MASK -#define DDR_PHY_DX1GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX1GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX1GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX1GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX1GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX1GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX1GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX1GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX1GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX1GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX1GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX1GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX1GCR0_RTTOAL_MASK -#define DDR_PHY_DX1GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX1GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX1GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX1GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX1GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX1GCR0_RTTOH_SHIFT #undef DDR_PHY_DX1GCR0_RTTOH_MASK -#define DDR_PHY_DX1GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX1GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX1GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX1GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX1GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX1GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX1GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX1GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX1GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX1GCR0_DQSRPD_MASK -#define DDR_PHY_DX1GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX1GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX1GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX1GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSGPDR_MASK -#define DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX1GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX1GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_4_MASK -#define DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX1GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX1GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX1GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX1GCR0_DQSGODT_MASK -#define DDR_PHY_DX1GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX1GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX1GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX1GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX1GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX1GCR0_DQSGOE_MASK -#define DDR_PHY_DX1GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX1GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX1GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX1GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX1GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX1GCR0_RESERVED_1_0_MASK 0x00000003U -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX1GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX1GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFPEN_MASK -#define DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX1GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX1GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFEEN_MASK -#define DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX1GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX1GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSEN_MASK -#define DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX1GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX1GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_24_MASK -#define DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX1GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX1GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX1GCR4_DXREFESEL_MASK -#define DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX1GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX1GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX1GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX1GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX1GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX1GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFIEN_MASK -#define DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX1GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX1GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX1GCR4_DXREFIMON_MASK -#define DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX1GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX1GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_31_MASK -#define DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX1GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX1GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX1GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX1GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_23_MASK -#define DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX1GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX1GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX1GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX1GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_15_MASK -#define DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX1GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX1GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX1GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX1GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_7_MASK -#define DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX1GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX1GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX1GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX1GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX1GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX1GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX1GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX1GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX1GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX1GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX1GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX1GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX1GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX1GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX1GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX1GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX1GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX1GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX1GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX1GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX1LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX1LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX1LCDLR2_DQSGD_MASK -#define DDR_PHY_DX1LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX1LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX1GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX1GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX1GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX1GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX1GTR0_WDQSL_MASK -#define DDR_PHY_DX1GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX1GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX1GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX1GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX1GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX1GTR0_WLSL_SHIFT -#undef DDR_PHY_DX1GTR0_WLSL_MASK -#define DDR_PHY_DX1GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX1GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX1GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX1GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX1GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX1GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX1GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX1GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX1GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX1GTR0_DGSL_SHIFT -#undef DDR_PHY_DX1GTR0_DGSL_MASK -#define DDR_PHY_DX1GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX1GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX2GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX2GCR0_CALBYP_SHIFT #undef DDR_PHY_DX2GCR0_CALBYP_MASK -#define DDR_PHY_DX2GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX2GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX2GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX2GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX2GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX2GCR0_MDLEN_SHIFT #undef DDR_PHY_DX2GCR0_MDLEN_MASK -#define DDR_PHY_DX2GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX2GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX2GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX2GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX2GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX2GCR0_CODTSHFT_MASK -#define DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX2GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX2GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX2GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX2GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX2GCR0_DQSDCC_MASK -#define DDR_PHY_DX2GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX2GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX2GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX2GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX2GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX2GCR0_RDDLY_SHIFT #undef DDR_PHY_DX2GCR0_RDDLY_MASK -#define DDR_PHY_DX2GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX2GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX2GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX2GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX2GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX2GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX2GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX2GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX2GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX2GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX2GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX2GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX2GCR0_RTTOAL_MASK -#define DDR_PHY_DX2GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX2GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX2GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX2GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX2GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX2GCR0_RTTOH_SHIFT #undef DDR_PHY_DX2GCR0_RTTOH_MASK -#define DDR_PHY_DX2GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX2GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX2GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX2GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX2GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX2GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX2GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX2GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX2GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX2GCR0_DQSRPD_MASK -#define DDR_PHY_DX2GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX2GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX2GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX2GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSGPDR_MASK -#define DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX2GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX2GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_4_MASK -#define DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX2GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX2GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX2GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX2GCR0_DQSGODT_MASK -#define DDR_PHY_DX2GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX2GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX2GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX2GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX2GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX2GCR0_DQSGOE_MASK -#define DDR_PHY_DX2GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX2GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX2GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX2GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX2GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX2GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX2GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX2GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX2GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX2GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX2GCR1_RESERVED_15_MASK -#define DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX2GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX2GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX2GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX2GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX2GCR1_QSNSEL_MASK -#define DDR_PHY_DX2GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX2GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX2GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX2GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX2GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX2GCR1_QSSEL_SHIFT #undef DDR_PHY_DX2GCR1_QSSEL_MASK -#define DDR_PHY_DX2GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX2GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX2GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX2GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX2GCR1_OEEN_DEFVAL #undef DDR_PHY_DX2GCR1_OEEN_SHIFT #undef DDR_PHY_DX2GCR1_OEEN_MASK -#define DDR_PHY_DX2GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX2GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX2GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX2GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX2GCR1_PDREN_DEFVAL #undef DDR_PHY_DX2GCR1_PDREN_SHIFT #undef DDR_PHY_DX2GCR1_PDREN_MASK -#define DDR_PHY_DX2GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX2GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX2GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX2GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX2GCR1_TEEN_DEFVAL #undef DDR_PHY_DX2GCR1_TEEN_SHIFT #undef DDR_PHY_DX2GCR1_TEEN_MASK -#define DDR_PHY_DX2GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX2GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX2GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX2GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX2GCR1_DSEN_DEFVAL #undef DDR_PHY_DX2GCR1_DSEN_SHIFT #undef DDR_PHY_DX2GCR1_DSEN_MASK -#define DDR_PHY_DX2GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX2GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX2GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX2GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX2GCR1_DMEN_DEFVAL #undef DDR_PHY_DX2GCR1_DMEN_SHIFT #undef DDR_PHY_DX2GCR1_DMEN_MASK -#define DDR_PHY_DX2GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX2GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX2GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX2GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX2GCR1_DQEN_DEFVAL #undef DDR_PHY_DX2GCR1_DQEN_SHIFT #undef DDR_PHY_DX2GCR1_DQEN_MASK -#define DDR_PHY_DX2GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX2GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX2GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX2GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX2GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX2GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFPEN_MASK -#define DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX2GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX2GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFEEN_MASK -#define DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX2GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX2GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSEN_MASK -#define DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX2GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX2GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_24_MASK -#define DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX2GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX2GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX2GCR4_DXREFESEL_MASK -#define DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX2GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX2GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX2GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX2GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX2GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX2GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFIEN_MASK -#define DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX2GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX2GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX2GCR4_DXREFIMON_MASK -#define DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX2GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX2GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_31_MASK -#define DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX2GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX2GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX2GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX2GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_23_MASK -#define DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX2GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX2GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX2GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX2GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_15_MASK -#define DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX2GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX2GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX2GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX2GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_7_MASK -#define DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX2GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX2GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX2GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX2GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX2GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX2GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX2GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX2GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX2GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX2GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX2GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX2GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX2GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX2GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX2GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX2GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX2GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX2GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX2GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX2GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX2LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX2LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX2LCDLR2_DQSGD_MASK -#define DDR_PHY_DX2LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX2LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX2GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX2GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX2GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX2GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX2GTR0_WDQSL_MASK -#define DDR_PHY_DX2GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX2GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX2GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX2GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX2GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX2GTR0_WLSL_SHIFT -#undef DDR_PHY_DX2GTR0_WLSL_MASK -#define DDR_PHY_DX2GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX2GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX2GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX2GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX2GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX2GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX2GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX2GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX2GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX2GTR0_DGSL_SHIFT -#undef DDR_PHY_DX2GTR0_DGSL_MASK -#define DDR_PHY_DX2GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX2GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX3GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX3GCR0_CALBYP_SHIFT #undef DDR_PHY_DX3GCR0_CALBYP_MASK -#define DDR_PHY_DX3GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX3GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX3GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX3GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX3GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX3GCR0_MDLEN_SHIFT #undef DDR_PHY_DX3GCR0_MDLEN_MASK -#define DDR_PHY_DX3GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX3GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX3GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX3GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX3GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX3GCR0_CODTSHFT_MASK -#define DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX3GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX3GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX3GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX3GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX3GCR0_DQSDCC_MASK -#define DDR_PHY_DX3GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX3GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX3GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX3GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX3GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX3GCR0_RDDLY_SHIFT #undef DDR_PHY_DX3GCR0_RDDLY_MASK -#define DDR_PHY_DX3GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX3GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX3GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX3GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX3GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX3GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX3GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX3GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX3GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX3GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX3GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX3GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX3GCR0_RTTOAL_MASK -#define DDR_PHY_DX3GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX3GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX3GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX3GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX3GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX3GCR0_RTTOH_SHIFT #undef DDR_PHY_DX3GCR0_RTTOH_MASK -#define DDR_PHY_DX3GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX3GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX3GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX3GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX3GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX3GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX3GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX3GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX3GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX3GCR0_DQSRPD_MASK -#define DDR_PHY_DX3GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX3GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX3GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX3GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSGPDR_MASK -#define DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX3GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX3GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_4_MASK -#define DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX3GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX3GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX3GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX3GCR0_DQSGODT_MASK -#define DDR_PHY_DX3GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX3GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX3GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX3GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX3GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX3GCR0_DQSGOE_MASK -#define DDR_PHY_DX3GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX3GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX3GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX3GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX3GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX3GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX3GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX3GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX3GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX3GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX3GCR1_RESERVED_15_MASK -#define DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX3GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX3GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX3GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX3GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX3GCR1_QSNSEL_MASK -#define DDR_PHY_DX3GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX3GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX3GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX3GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX3GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX3GCR1_QSSEL_SHIFT #undef DDR_PHY_DX3GCR1_QSSEL_MASK -#define DDR_PHY_DX3GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX3GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX3GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX3GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX3GCR1_OEEN_DEFVAL #undef DDR_PHY_DX3GCR1_OEEN_SHIFT #undef DDR_PHY_DX3GCR1_OEEN_MASK -#define DDR_PHY_DX3GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX3GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX3GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX3GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX3GCR1_PDREN_DEFVAL #undef DDR_PHY_DX3GCR1_PDREN_SHIFT #undef DDR_PHY_DX3GCR1_PDREN_MASK -#define DDR_PHY_DX3GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX3GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX3GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX3GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX3GCR1_TEEN_DEFVAL #undef DDR_PHY_DX3GCR1_TEEN_SHIFT #undef DDR_PHY_DX3GCR1_TEEN_MASK -#define DDR_PHY_DX3GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX3GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX3GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX3GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX3GCR1_DSEN_DEFVAL #undef DDR_PHY_DX3GCR1_DSEN_SHIFT #undef DDR_PHY_DX3GCR1_DSEN_MASK -#define DDR_PHY_DX3GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX3GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX3GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX3GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX3GCR1_DMEN_DEFVAL #undef DDR_PHY_DX3GCR1_DMEN_SHIFT #undef DDR_PHY_DX3GCR1_DMEN_MASK -#define DDR_PHY_DX3GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX3GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX3GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX3GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX3GCR1_DQEN_DEFVAL #undef DDR_PHY_DX3GCR1_DQEN_SHIFT #undef DDR_PHY_DX3GCR1_DQEN_MASK -#define DDR_PHY_DX3GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX3GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX3GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX3GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX3GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX3GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFPEN_MASK -#define DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX3GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX3GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFEEN_MASK -#define DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX3GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX3GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSEN_MASK -#define DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX3GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX3GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_24_MASK -#define DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX3GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX3GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX3GCR4_DXREFESEL_MASK -#define DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX3GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX3GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX3GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX3GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX3GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX3GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFIEN_MASK -#define DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX3GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX3GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX3GCR4_DXREFIMON_MASK -#define DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX3GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX3GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_31_MASK -#define DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX3GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX3GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX3GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX3GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_23_MASK -#define DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX3GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX3GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX3GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX3GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_15_MASK -#define DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX3GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX3GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX3GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX3GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_7_MASK -#define DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX3GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX3GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX3GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX3GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX3GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX3GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX3GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX3GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX3GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX3GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX3GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX3GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX3GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX3GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX3GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX3GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX3GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX3GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX3GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX3GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX3LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX3LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX3LCDLR2_DQSGD_MASK -#define DDR_PHY_DX3LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX3LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX3GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX3GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX3GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX3GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX3GTR0_WDQSL_MASK -#define DDR_PHY_DX3GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX3GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX3GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX3GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX3GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX3GTR0_WLSL_SHIFT -#undef DDR_PHY_DX3GTR0_WLSL_MASK -#define DDR_PHY_DX3GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX3GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX3GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX3GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX3GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX3GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX3GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX3GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX3GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX3GTR0_DGSL_SHIFT -#undef DDR_PHY_DX3GTR0_DGSL_MASK -#define DDR_PHY_DX3GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX3GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX4GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX4GCR0_CALBYP_SHIFT #undef DDR_PHY_DX4GCR0_CALBYP_MASK -#define DDR_PHY_DX4GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX4GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX4GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX4GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX4GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX4GCR0_MDLEN_SHIFT #undef DDR_PHY_DX4GCR0_MDLEN_MASK -#define DDR_PHY_DX4GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX4GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX4GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX4GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX4GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX4GCR0_CODTSHFT_MASK -#define DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX4GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX4GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX4GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX4GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX4GCR0_DQSDCC_MASK -#define DDR_PHY_DX4GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX4GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX4GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX4GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX4GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX4GCR0_RDDLY_SHIFT #undef DDR_PHY_DX4GCR0_RDDLY_MASK -#define DDR_PHY_DX4GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX4GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX4GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX4GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX4GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX4GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX4GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX4GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX4GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX4GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX4GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX4GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX4GCR0_RTTOAL_MASK -#define DDR_PHY_DX4GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX4GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX4GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX4GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX4GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX4GCR0_RTTOH_SHIFT #undef DDR_PHY_DX4GCR0_RTTOH_MASK -#define DDR_PHY_DX4GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX4GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX4GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX4GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX4GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX4GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX4GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX4GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX4GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX4GCR0_DQSRPD_MASK -#define DDR_PHY_DX4GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX4GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX4GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX4GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSGPDR_MASK -#define DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX4GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX4GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_4_MASK -#define DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX4GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX4GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX4GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX4GCR0_DQSGODT_MASK -#define DDR_PHY_DX4GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX4GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX4GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX4GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX4GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX4GCR0_DQSGOE_MASK -#define DDR_PHY_DX4GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX4GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX4GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX4GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX4GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX4GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX4GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX4GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX4GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX4GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX4GCR1_RESERVED_15_MASK -#define DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX4GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX4GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX4GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX4GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX4GCR1_QSNSEL_MASK -#define DDR_PHY_DX4GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX4GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX4GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX4GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX4GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX4GCR1_QSSEL_SHIFT #undef DDR_PHY_DX4GCR1_QSSEL_MASK -#define DDR_PHY_DX4GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX4GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX4GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX4GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX4GCR1_OEEN_DEFVAL #undef DDR_PHY_DX4GCR1_OEEN_SHIFT #undef DDR_PHY_DX4GCR1_OEEN_MASK -#define DDR_PHY_DX4GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX4GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX4GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX4GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX4GCR1_PDREN_DEFVAL #undef DDR_PHY_DX4GCR1_PDREN_SHIFT #undef DDR_PHY_DX4GCR1_PDREN_MASK -#define DDR_PHY_DX4GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX4GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX4GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX4GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX4GCR1_TEEN_DEFVAL #undef DDR_PHY_DX4GCR1_TEEN_SHIFT #undef DDR_PHY_DX4GCR1_TEEN_MASK -#define DDR_PHY_DX4GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX4GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX4GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX4GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX4GCR1_DSEN_DEFVAL #undef DDR_PHY_DX4GCR1_DSEN_SHIFT #undef DDR_PHY_DX4GCR1_DSEN_MASK -#define DDR_PHY_DX4GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX4GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX4GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX4GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX4GCR1_DMEN_DEFVAL #undef DDR_PHY_DX4GCR1_DMEN_SHIFT #undef DDR_PHY_DX4GCR1_DMEN_MASK -#define DDR_PHY_DX4GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX4GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX4GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX4GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX4GCR1_DQEN_DEFVAL #undef DDR_PHY_DX4GCR1_DQEN_SHIFT #undef DDR_PHY_DX4GCR1_DQEN_MASK -#define DDR_PHY_DX4GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX4GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX4GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX4GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX4GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX4GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFPEN_MASK -#define DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX4GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX4GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFEEN_MASK -#define DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX4GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX4GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSEN_MASK -#define DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX4GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX4GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_24_MASK -#define DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX4GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX4GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX4GCR4_DXREFESEL_MASK -#define DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX4GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX4GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX4GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX4GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX4GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX4GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFIEN_MASK -#define DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX4GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX4GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX4GCR4_DXREFIMON_MASK -#define DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX4GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX4GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_31_MASK -#define DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX4GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX4GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX4GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX4GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_23_MASK -#define DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX4GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX4GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX4GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX4GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_15_MASK -#define DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX4GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX4GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX4GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX4GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_7_MASK -#define DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX4GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX4GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX4GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX4GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX4GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX4GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX4GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX4GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX4GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX4GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX4GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX4GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX4GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX4GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX4GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX4GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX4GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX4GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX4GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX4GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX4LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX4LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX4LCDLR2_DQSGD_MASK -#define DDR_PHY_DX4LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX4LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX4GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX4GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX4GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX4GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX4GTR0_WDQSL_MASK -#define DDR_PHY_DX4GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX4GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX4GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX4GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX4GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX4GTR0_WLSL_SHIFT -#undef DDR_PHY_DX4GTR0_WLSL_MASK -#define DDR_PHY_DX4GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX4GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX4GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX4GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX4GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX4GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX4GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX4GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX4GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX4GTR0_DGSL_SHIFT -#undef DDR_PHY_DX4GTR0_DGSL_MASK -#define DDR_PHY_DX4GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX4GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX5GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX5GCR0_CALBYP_SHIFT #undef DDR_PHY_DX5GCR0_CALBYP_MASK -#define DDR_PHY_DX5GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX5GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX5GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX5GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX5GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX5GCR0_MDLEN_SHIFT #undef DDR_PHY_DX5GCR0_MDLEN_MASK -#define DDR_PHY_DX5GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX5GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX5GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX5GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX5GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX5GCR0_CODTSHFT_MASK -#define DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX5GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX5GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX5GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX5GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX5GCR0_DQSDCC_MASK -#define DDR_PHY_DX5GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX5GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX5GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX5GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX5GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX5GCR0_RDDLY_SHIFT #undef DDR_PHY_DX5GCR0_RDDLY_MASK -#define DDR_PHY_DX5GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX5GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX5GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX5GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX5GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX5GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX5GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX5GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX5GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX5GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX5GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX5GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX5GCR0_RTTOAL_MASK -#define DDR_PHY_DX5GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX5GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX5GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX5GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX5GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX5GCR0_RTTOH_SHIFT #undef DDR_PHY_DX5GCR0_RTTOH_MASK -#define DDR_PHY_DX5GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX5GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX5GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX5GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX5GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX5GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX5GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX5GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX5GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX5GCR0_DQSRPD_MASK -#define DDR_PHY_DX5GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX5GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX5GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX5GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSGPDR_MASK -#define DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX5GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX5GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_4_MASK -#define DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX5GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX5GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX5GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX5GCR0_DQSGODT_MASK -#define DDR_PHY_DX5GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX5GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX5GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX5GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX5GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX5GCR0_DQSGOE_MASK -#define DDR_PHY_DX5GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX5GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX5GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX5GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX5GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX5GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX5GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX5GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX5GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX5GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX5GCR1_RESERVED_15_MASK -#define DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX5GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX5GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX5GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX5GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX5GCR1_QSNSEL_MASK -#define DDR_PHY_DX5GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX5GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX5GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX5GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX5GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX5GCR1_QSSEL_SHIFT #undef DDR_PHY_DX5GCR1_QSSEL_MASK -#define DDR_PHY_DX5GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX5GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX5GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX5GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX5GCR1_OEEN_DEFVAL #undef DDR_PHY_DX5GCR1_OEEN_SHIFT #undef DDR_PHY_DX5GCR1_OEEN_MASK -#define DDR_PHY_DX5GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX5GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX5GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX5GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX5GCR1_PDREN_DEFVAL #undef DDR_PHY_DX5GCR1_PDREN_SHIFT #undef DDR_PHY_DX5GCR1_PDREN_MASK -#define DDR_PHY_DX5GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX5GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX5GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX5GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX5GCR1_TEEN_DEFVAL #undef DDR_PHY_DX5GCR1_TEEN_SHIFT #undef DDR_PHY_DX5GCR1_TEEN_MASK -#define DDR_PHY_DX5GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX5GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX5GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX5GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX5GCR1_DSEN_DEFVAL #undef DDR_PHY_DX5GCR1_DSEN_SHIFT #undef DDR_PHY_DX5GCR1_DSEN_MASK -#define DDR_PHY_DX5GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX5GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX5GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX5GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX5GCR1_DMEN_DEFVAL #undef DDR_PHY_DX5GCR1_DMEN_SHIFT #undef DDR_PHY_DX5GCR1_DMEN_MASK -#define DDR_PHY_DX5GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX5GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX5GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX5GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX5GCR1_DQEN_DEFVAL #undef DDR_PHY_DX5GCR1_DQEN_SHIFT #undef DDR_PHY_DX5GCR1_DQEN_MASK -#define DDR_PHY_DX5GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX5GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX5GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX5GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX5GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX5GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFPEN_MASK -#define DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX5GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX5GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFEEN_MASK -#define DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX5GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX5GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSEN_MASK -#define DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX5GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX5GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_24_MASK -#define DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX5GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX5GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX5GCR4_DXREFESEL_MASK -#define DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX5GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX5GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX5GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX5GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX5GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX5GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFIEN_MASK -#define DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX5GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX5GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX5GCR4_DXREFIMON_MASK -#define DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX5GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX5GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_31_MASK -#define DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX5GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX5GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX5GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX5GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_23_MASK -#define DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX5GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX5GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX5GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX5GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_15_MASK -#define DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX5GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX5GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX5GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX5GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_7_MASK -#define DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX5GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX5GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX5GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX5GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX5GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX5GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX5GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX5GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX5GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX5GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX5GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX5GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX5GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX5GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX5GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX5GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX5GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX5GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX5GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX5GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX5LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX5LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX5LCDLR2_DQSGD_MASK -#define DDR_PHY_DX5LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX5LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX5GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX5GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX5GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX5GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX5GTR0_WDQSL_MASK -#define DDR_PHY_DX5GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX5GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX5GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX5GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX5GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX5GTR0_WLSL_SHIFT -#undef DDR_PHY_DX5GTR0_WLSL_MASK -#define DDR_PHY_DX5GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX5GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX5GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX5GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX5GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX5GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX5GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX5GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX5GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX5GTR0_DGSL_SHIFT -#undef DDR_PHY_DX5GTR0_DGSL_MASK -#define DDR_PHY_DX5GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX5GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX6GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX6GCR0_CALBYP_SHIFT #undef DDR_PHY_DX6GCR0_CALBYP_MASK -#define DDR_PHY_DX6GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX6GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX6GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX6GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX6GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX6GCR0_MDLEN_SHIFT #undef DDR_PHY_DX6GCR0_MDLEN_MASK -#define DDR_PHY_DX6GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX6GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX6GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX6GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX6GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX6GCR0_CODTSHFT_MASK -#define DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX6GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX6GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX6GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX6GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX6GCR0_DQSDCC_MASK -#define DDR_PHY_DX6GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX6GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX6GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX6GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX6GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX6GCR0_RDDLY_SHIFT #undef DDR_PHY_DX6GCR0_RDDLY_MASK -#define DDR_PHY_DX6GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX6GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX6GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX6GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX6GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX6GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX6GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX6GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX6GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX6GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX6GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX6GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX6GCR0_RTTOAL_MASK -#define DDR_PHY_DX6GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX6GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX6GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX6GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX6GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX6GCR0_RTTOH_SHIFT #undef DDR_PHY_DX6GCR0_RTTOH_MASK -#define DDR_PHY_DX6GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX6GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX6GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX6GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX6GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX6GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX6GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX6GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX6GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX6GCR0_DQSRPD_MASK -#define DDR_PHY_DX6GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX6GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX6GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX6GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSGPDR_MASK -#define DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX6GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX6GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_4_MASK -#define DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX6GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX6GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX6GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX6GCR0_DQSGODT_MASK -#define DDR_PHY_DX6GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX6GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX6GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX6GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX6GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX6GCR0_DQSGOE_MASK -#define DDR_PHY_DX6GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX6GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX6GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX6GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX6GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX6GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX6GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX6GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX6GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX6GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX6GCR1_RESERVED_15_MASK -#define DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX6GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX6GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX6GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX6GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX6GCR1_QSNSEL_MASK -#define DDR_PHY_DX6GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX6GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX6GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX6GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX6GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX6GCR1_QSSEL_SHIFT #undef DDR_PHY_DX6GCR1_QSSEL_MASK -#define DDR_PHY_DX6GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX6GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX6GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX6GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX6GCR1_OEEN_DEFVAL #undef DDR_PHY_DX6GCR1_OEEN_SHIFT #undef DDR_PHY_DX6GCR1_OEEN_MASK -#define DDR_PHY_DX6GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX6GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX6GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX6GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX6GCR1_PDREN_DEFVAL #undef DDR_PHY_DX6GCR1_PDREN_SHIFT #undef DDR_PHY_DX6GCR1_PDREN_MASK -#define DDR_PHY_DX6GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX6GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX6GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX6GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX6GCR1_TEEN_DEFVAL #undef DDR_PHY_DX6GCR1_TEEN_SHIFT #undef DDR_PHY_DX6GCR1_TEEN_MASK -#define DDR_PHY_DX6GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX6GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX6GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX6GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX6GCR1_DSEN_DEFVAL #undef DDR_PHY_DX6GCR1_DSEN_SHIFT #undef DDR_PHY_DX6GCR1_DSEN_MASK -#define DDR_PHY_DX6GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX6GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX6GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX6GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX6GCR1_DMEN_DEFVAL #undef DDR_PHY_DX6GCR1_DMEN_SHIFT #undef DDR_PHY_DX6GCR1_DMEN_MASK -#define DDR_PHY_DX6GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX6GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX6GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX6GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX6GCR1_DQEN_DEFVAL #undef DDR_PHY_DX6GCR1_DQEN_SHIFT #undef DDR_PHY_DX6GCR1_DQEN_MASK -#define DDR_PHY_DX6GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX6GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX6GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX6GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX6GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX6GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFPEN_MASK -#define DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX6GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX6GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFEEN_MASK -#define DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX6GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX6GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSEN_MASK -#define DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX6GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX6GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_24_MASK -#define DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX6GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX6GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX6GCR4_DXREFESEL_MASK -#define DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX6GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX6GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX6GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX6GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX6GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX6GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFIEN_MASK -#define DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX6GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX6GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX6GCR4_DXREFIMON_MASK -#define DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX6GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX6GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_31_MASK -#define DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX6GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX6GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX6GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX6GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_23_MASK -#define DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX6GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX6GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX6GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX6GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_15_MASK -#define DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX6GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX6GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX6GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX6GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_7_MASK -#define DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX6GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX6GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX6GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX6GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX6GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX6GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX6GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX6GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX6GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX6GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX6GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX6GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX6GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX6GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX6GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX6GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX6GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX6GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX6GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX6GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX6LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX6LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX6LCDLR2_DQSGD_MASK -#define DDR_PHY_DX6LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX6LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX6GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX6GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX6GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX6GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX6GTR0_WDQSL_MASK -#define DDR_PHY_DX6GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX6GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX6GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX6GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX6GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX6GTR0_WLSL_SHIFT -#undef DDR_PHY_DX6GTR0_WLSL_MASK -#define DDR_PHY_DX6GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX6GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX6GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX6GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX6GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX6GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX6GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX6GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX6GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX6GTR0_DGSL_SHIFT -#undef DDR_PHY_DX6GTR0_DGSL_MASK -#define DDR_PHY_DX6GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX6GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX7GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX7GCR0_CALBYP_SHIFT #undef DDR_PHY_DX7GCR0_CALBYP_MASK -#define DDR_PHY_DX7GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX7GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX7GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX7GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX7GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX7GCR0_MDLEN_SHIFT #undef DDR_PHY_DX7GCR0_MDLEN_MASK -#define DDR_PHY_DX7GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX7GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX7GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX7GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX7GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX7GCR0_CODTSHFT_MASK -#define DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX7GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX7GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX7GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX7GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX7GCR0_DQSDCC_MASK -#define DDR_PHY_DX7GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX7GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX7GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX7GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX7GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX7GCR0_RDDLY_SHIFT #undef DDR_PHY_DX7GCR0_RDDLY_MASK -#define DDR_PHY_DX7GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX7GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX7GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX7GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX7GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX7GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX7GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX7GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX7GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX7GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX7GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX7GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX7GCR0_RTTOAL_MASK -#define DDR_PHY_DX7GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX7GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX7GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX7GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX7GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX7GCR0_RTTOH_SHIFT #undef DDR_PHY_DX7GCR0_RTTOH_MASK -#define DDR_PHY_DX7GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX7GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX7GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX7GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX7GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX7GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX7GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX7GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX7GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX7GCR0_DQSRPD_MASK -#define DDR_PHY_DX7GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX7GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX7GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX7GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSGPDR_MASK -#define DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX7GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX7GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_4_MASK -#define DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX7GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX7GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX7GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX7GCR0_DQSGODT_MASK -#define DDR_PHY_DX7GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX7GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX7GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX7GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX7GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX7GCR0_DQSGOE_MASK -#define DDR_PHY_DX7GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX7GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX7GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX7GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX7GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX7GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX7GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX7GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX7GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX7GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX7GCR1_RESERVED_15_MASK -#define DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX7GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX7GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX7GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX7GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX7GCR1_QSNSEL_MASK -#define DDR_PHY_DX7GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX7GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX7GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX7GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX7GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX7GCR1_QSSEL_SHIFT #undef DDR_PHY_DX7GCR1_QSSEL_MASK -#define DDR_PHY_DX7GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX7GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX7GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX7GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX7GCR1_OEEN_DEFVAL #undef DDR_PHY_DX7GCR1_OEEN_SHIFT #undef DDR_PHY_DX7GCR1_OEEN_MASK -#define DDR_PHY_DX7GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX7GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX7GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX7GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX7GCR1_PDREN_DEFVAL #undef DDR_PHY_DX7GCR1_PDREN_SHIFT #undef DDR_PHY_DX7GCR1_PDREN_MASK -#define DDR_PHY_DX7GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX7GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX7GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX7GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX7GCR1_TEEN_DEFVAL #undef DDR_PHY_DX7GCR1_TEEN_SHIFT #undef DDR_PHY_DX7GCR1_TEEN_MASK -#define DDR_PHY_DX7GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX7GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX7GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX7GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX7GCR1_DSEN_DEFVAL #undef DDR_PHY_DX7GCR1_DSEN_SHIFT #undef DDR_PHY_DX7GCR1_DSEN_MASK -#define DDR_PHY_DX7GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX7GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX7GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX7GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX7GCR1_DMEN_DEFVAL #undef DDR_PHY_DX7GCR1_DMEN_SHIFT #undef DDR_PHY_DX7GCR1_DMEN_MASK -#define DDR_PHY_DX7GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX7GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX7GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX7GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX7GCR1_DQEN_DEFVAL #undef DDR_PHY_DX7GCR1_DQEN_SHIFT #undef DDR_PHY_DX7GCR1_DQEN_MASK -#define DDR_PHY_DX7GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX7GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX7GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX7GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX7GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX7GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFPEN_MASK -#define DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX7GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX7GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFEEN_MASK -#define DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX7GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX7GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSEN_MASK -#define DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX7GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX7GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_24_MASK -#define DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX7GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX7GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX7GCR4_DXREFESEL_MASK -#define DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX7GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX7GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX7GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX7GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX7GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX7GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFIEN_MASK -#define DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX7GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX7GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX7GCR4_DXREFIMON_MASK -#define DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX7GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX7GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_31_MASK -#define DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX7GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX7GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX7GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX7GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_23_MASK -#define DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX7GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX7GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX7GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX7GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_15_MASK -#define DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX7GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX7GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX7GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX7GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_7_MASK -#define DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX7GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX7GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX7GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX7GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX7GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX7GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX7GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX7GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX7GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX7GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX7GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX7GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX7GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX7GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX7GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX7GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX7GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX7GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX7GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX7GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX7LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX7LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX7LCDLR2_DQSGD_MASK -#define DDR_PHY_DX7LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX7LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX7GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX7GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX7GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX7GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX7GTR0_WDQSL_MASK -#define DDR_PHY_DX7GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX7GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX7GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX7GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX7GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX7GTR0_WLSL_SHIFT -#undef DDR_PHY_DX7GTR0_WLSL_MASK -#define DDR_PHY_DX7GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX7GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX7GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX7GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX7GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX7GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX7GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX7GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX7GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX7GTR0_DGSL_SHIFT -#undef DDR_PHY_DX7GTR0_DGSL_MASK -#define DDR_PHY_DX7GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX7GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX8GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX8GCR0_CALBYP_SHIFT #undef DDR_PHY_DX8GCR0_CALBYP_MASK -#define DDR_PHY_DX8GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX8GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX8GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX8GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX8GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX8GCR0_MDLEN_SHIFT #undef DDR_PHY_DX8GCR0_MDLEN_MASK -#define DDR_PHY_DX8GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX8GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX8GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX8GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX8GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX8GCR0_CODTSHFT_MASK -#define DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX8GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX8GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX8GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX8GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX8GCR0_DQSDCC_MASK -#define DDR_PHY_DX8GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX8GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX8GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX8GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX8GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX8GCR0_RDDLY_SHIFT #undef DDR_PHY_DX8GCR0_RDDLY_MASK -#define DDR_PHY_DX8GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX8GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX8GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX8GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX8GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX8GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX8GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX8GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX8GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX8GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX8GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX8GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX8GCR0_RTTOAL_MASK -#define DDR_PHY_DX8GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX8GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX8GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX8GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX8GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX8GCR0_RTTOH_SHIFT #undef DDR_PHY_DX8GCR0_RTTOH_MASK -#define DDR_PHY_DX8GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX8GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX8GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX8GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX8GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX8GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX8GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX8GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX8GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX8GCR0_DQSRPD_MASK -#define DDR_PHY_DX8GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX8GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX8GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX8GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSGPDR_MASK -#define DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX8GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX8GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_4_MASK -#define DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX8GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX8GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX8GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX8GCR0_DQSGODT_MASK -#define DDR_PHY_DX8GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX8GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX8GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX8GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX8GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX8GCR0_DQSGOE_MASK -#define DDR_PHY_DX8GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX8GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX8GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX8GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX8GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX8GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX8GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX8GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX8GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX8GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX8GCR1_RESERVED_15_MASK -#define DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX8GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX8GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX8GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX8GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX8GCR1_QSNSEL_MASK -#define DDR_PHY_DX8GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX8GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX8GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX8GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX8GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX8GCR1_QSSEL_SHIFT #undef DDR_PHY_DX8GCR1_QSSEL_MASK -#define DDR_PHY_DX8GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX8GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX8GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX8GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX8GCR1_OEEN_DEFVAL #undef DDR_PHY_DX8GCR1_OEEN_SHIFT #undef DDR_PHY_DX8GCR1_OEEN_MASK -#define DDR_PHY_DX8GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX8GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX8GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX8GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX8GCR1_PDREN_DEFVAL #undef DDR_PHY_DX8GCR1_PDREN_SHIFT #undef DDR_PHY_DX8GCR1_PDREN_MASK -#define DDR_PHY_DX8GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX8GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX8GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX8GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX8GCR1_TEEN_DEFVAL #undef DDR_PHY_DX8GCR1_TEEN_SHIFT #undef DDR_PHY_DX8GCR1_TEEN_MASK -#define DDR_PHY_DX8GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX8GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX8GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX8GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX8GCR1_DSEN_DEFVAL #undef DDR_PHY_DX8GCR1_DSEN_SHIFT #undef DDR_PHY_DX8GCR1_DSEN_MASK -#define DDR_PHY_DX8GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX8GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX8GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX8GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX8GCR1_DMEN_DEFVAL #undef DDR_PHY_DX8GCR1_DMEN_SHIFT #undef DDR_PHY_DX8GCR1_DMEN_MASK -#define DDR_PHY_DX8GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX8GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX8GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX8GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX8GCR1_DQEN_DEFVAL #undef DDR_PHY_DX8GCR1_DQEN_SHIFT #undef DDR_PHY_DX8GCR1_DQEN_MASK -#define DDR_PHY_DX8GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX8GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX8GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX8GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX8GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX8GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFPEN_MASK -#define DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX8GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX8GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFEEN_MASK -#define DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX8GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX8GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSEN_MASK -#define DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX8GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX8GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_24_MASK -#define DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX8GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX8GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX8GCR4_DXREFESEL_MASK -#define DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX8GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX8GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX8GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX8GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX8GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX8GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFIEN_MASK -#define DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX8GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX8GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX8GCR4_DXREFIMON_MASK -#define DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX8GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX8GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_31_MASK -#define DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX8GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX8GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_23_MASK -#define DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX8GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX8GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX8GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX8GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_15_MASK -#define DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX8GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX8GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX8GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX8GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_7_MASK -#define DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX8GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX8GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX8GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX8GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX8GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX8GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX8GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX8GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX8GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX8GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX8GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX8GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX8GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX8GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX8GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX8GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX8LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX8LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX8LCDLR2_DQSGD_MASK -#define DDR_PHY_DX8LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX8LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX8GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX8GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX8GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX8GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX8GTR0_WDQSL_MASK -#define DDR_PHY_DX8GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX8GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX8GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX8GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX8GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX8GTR0_WLSL_SHIFT -#undef DDR_PHY_DX8GTR0_WLSL_MASK -#define DDR_PHY_DX8GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX8GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX8GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX8GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX8GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX8GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX8GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX8GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX8GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX8GTR0_DGSL_SHIFT -#undef DDR_PHY_DX8GTR0_DGSL_MASK -#define DDR_PHY_DX8GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX8GTR0_DGSL_MASK 0x0000001FU - -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL0OSC_LBMODE_MASK -#define DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL0OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL0OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL0OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL0OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL0OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL0OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL0OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL0OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL0OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL0OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL0OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL0OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL0OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL0OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL0OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL0OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL0OSC_DLTST_MASK -#define DDR_PHY_DX8SL0OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL0OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL0OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL0OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL0OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL0OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL0OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL0OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL0OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL0OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL0OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL0OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL0OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCEN_MASK -#define DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL0OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL0OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL0PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL0PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL0PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL0PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL0PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL0PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL0PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL0PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL0DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL0DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL0DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL0DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL0DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL0DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL0DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL0DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL0DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL0DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL0DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL0DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL0IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL0IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL0IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL0IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL0IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL0IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL1OSC_LBMODE_MASK -#define DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL1OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL1OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL1OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL1OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL1OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL1OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL1OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL1OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL1OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL1OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL1OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL1OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL1OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL1OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL1OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL1OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL1OSC_DLTST_MASK -#define DDR_PHY_DX8SL1OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL1OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL1OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL1OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL1OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL1OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL1OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL1OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL1OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL1OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL1OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL1OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL1OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCEN_MASK -#define DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL1OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL1OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL1PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL1PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL1PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL1PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL1PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL1PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL1PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL1PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL1DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL1DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL1DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL1DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL1DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL1DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL1DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL1DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL1DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL1DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL1DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL1DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL1IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL1IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL1IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL1IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL1IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL1IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL2OSC_LBMODE_MASK -#define DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL2OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL2OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL2OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL2OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL2OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL2OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL2OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL2OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL2OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL2OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL2OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL2OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL2OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL2OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL2OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL2OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL2OSC_DLTST_MASK -#define DDR_PHY_DX8SL2OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL2OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL2OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL2OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL2OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL2OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL2OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL2OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL2OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL2OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL2OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL2OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL2OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCEN_MASK -#define DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL2OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL2OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL2PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL2PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL2PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL2PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL2PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL2PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL2PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL2PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL2DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL2DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL2DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL2DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL2DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL2DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL2DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL2DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL2DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL2DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL2DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL2DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL2IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL2IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL2IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL2IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL2IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL2IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL3OSC_LBMODE_MASK -#define DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL3OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL3OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL3OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL3OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL3OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL3OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL3OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL3OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL3OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL3OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL3OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL3OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL3OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL3OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL3OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL3OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL3OSC_DLTST_MASK -#define DDR_PHY_DX8SL3OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL3OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL3OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL3OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL3OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL3OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL3OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL3OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL3OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL3OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL3OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL3OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL3OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCEN_MASK -#define DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL3OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL3OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL3PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL3PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL3PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL3PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL3PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL3PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL3PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL3PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL3DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL3DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL3DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL3DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL3DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL3DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL3DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL3DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL3DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL3DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL3DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL3DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL3IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL3IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL3IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL3IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL3IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL3IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL4OSC_LBMODE_MASK -#define DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL4OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL4OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL4OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL4OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL4OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL4OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL4OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL4OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL4OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL4OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL4OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL4OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL4OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL4OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL4OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL4OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL4OSC_DLTST_MASK -#define DDR_PHY_DX8SL4OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL4OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL4OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL4OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL4OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL4OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL4OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL4OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL4OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL4OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL4OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL4OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL4OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCEN_MASK -#define DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL4OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL4OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL4PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL4PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL4PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL4PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL4PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL4PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL4PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL4PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL4DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL4DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL4DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL4DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL4DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL4DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL4DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL4DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL4DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL4DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL4DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL4DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL4IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL4IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL4IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL4IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL4IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL4IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_MASK +#define DDR_PHY_DX8SLBPLLCR0_CPPC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SLBPLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_MASK +#define DDR_PHY_DX8SLBPLLCR0_CPIC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SLBPLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_ATC_MASK +#define DDR_PHY_DX8SLBPLLCR0_ATC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SLBPLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_DTC_MASK +#define DDR_PHY_DX8SLBPLLCR0_DTC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SLBPLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DXSR_MASK -#define DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SLBDQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SLBDQSCTL_DXSR_MASK 0x00000300U -/*DQS# Resistor*/ +/* +* DQS# Resistor +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK 0x0000000FU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_31_DEFVAL -#undef DDR_PHY_PIR_RESERVED_31_SHIFT -#undef DDR_PHY_PIR_RESERVED_31_MASK -#define DDR_PHY_PIR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_31_SHIFT 31 -#define DDR_PHY_PIR_RESERVED_31_MASK 0x80000000U - -/*Impedance Calibration Bypass*/ -#undef DDR_PHY_PIR_ZCALBYP_DEFVAL -#undef DDR_PHY_PIR_ZCALBYP_SHIFT -#undef DDR_PHY_PIR_ZCALBYP_MASK -#define DDR_PHY_PIR_ZCALBYP_DEFVAL 0x00000000 -#define DDR_PHY_PIR_ZCALBYP_SHIFT 30 -#define DDR_PHY_PIR_ZCALBYP_MASK 0x40000000U - -/*Digital Delay Line (DDL) Calibration Pause*/ -#undef DDR_PHY_PIR_DCALPSE_DEFVAL -#undef DDR_PHY_PIR_DCALPSE_SHIFT -#undef DDR_PHY_PIR_DCALPSE_MASK -#define DDR_PHY_PIR_DCALPSE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DCALPSE_SHIFT 29 -#define DDR_PHY_PIR_DCALPSE_MASK 0x20000000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_28_21_DEFVAL -#undef DDR_PHY_PIR_RESERVED_28_21_SHIFT -#undef DDR_PHY_PIR_RESERVED_28_21_MASK -#define DDR_PHY_PIR_RESERVED_28_21_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_28_21_SHIFT 21 -#define DDR_PHY_PIR_RESERVED_28_21_MASK 0x1FE00000U - -/*Write DQS2DQ Training*/ -#undef DDR_PHY_PIR_DQS2DQ_DEFVAL -#undef DDR_PHY_PIR_DQS2DQ_SHIFT -#undef DDR_PHY_PIR_DQS2DQ_MASK -#define DDR_PHY_PIR_DQS2DQ_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DQS2DQ_SHIFT 20 -#define DDR_PHY_PIR_DQS2DQ_MASK 0x00100000U - -/*RDIMM Initialization*/ -#undef DDR_PHY_PIR_RDIMMINIT_DEFVAL -#undef DDR_PHY_PIR_RDIMMINIT_SHIFT -#undef DDR_PHY_PIR_RDIMMINIT_MASK -#define DDR_PHY_PIR_RDIMMINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDIMMINIT_SHIFT 19 -#define DDR_PHY_PIR_RDIMMINIT_MASK 0x00080000U - -/*Controller DRAM Initialization*/ -#undef DDR_PHY_PIR_CTLDINIT_DEFVAL -#undef DDR_PHY_PIR_CTLDINIT_SHIFT -#undef DDR_PHY_PIR_CTLDINIT_MASK -#define DDR_PHY_PIR_CTLDINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_CTLDINIT_SHIFT 18 -#define DDR_PHY_PIR_CTLDINIT_MASK 0x00040000U - -/*VREF Training*/ -#undef DDR_PHY_PIR_VREF_DEFVAL -#undef DDR_PHY_PIR_VREF_SHIFT -#undef DDR_PHY_PIR_VREF_MASK -#define DDR_PHY_PIR_VREF_DEFVAL 0x00000000 -#define DDR_PHY_PIR_VREF_SHIFT 17 -#define DDR_PHY_PIR_VREF_MASK 0x00020000U - -/*Static Read Training*/ -#undef DDR_PHY_PIR_SRD_DEFVAL -#undef DDR_PHY_PIR_SRD_SHIFT -#undef DDR_PHY_PIR_SRD_MASK -#define DDR_PHY_PIR_SRD_DEFVAL 0x00000000 -#define DDR_PHY_PIR_SRD_SHIFT 16 -#define DDR_PHY_PIR_SRD_MASK 0x00010000U - -/*Write Data Eye Training*/ -#undef DDR_PHY_PIR_WREYE_DEFVAL -#undef DDR_PHY_PIR_WREYE_SHIFT -#undef DDR_PHY_PIR_WREYE_MASK -#define DDR_PHY_PIR_WREYE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WREYE_SHIFT 15 -#define DDR_PHY_PIR_WREYE_MASK 0x00008000U - -/*Read Data Eye Training*/ -#undef DDR_PHY_PIR_RDEYE_DEFVAL -#undef DDR_PHY_PIR_RDEYE_SHIFT -#undef DDR_PHY_PIR_RDEYE_MASK -#define DDR_PHY_PIR_RDEYE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDEYE_SHIFT 14 -#define DDR_PHY_PIR_RDEYE_MASK 0x00004000U - -/*Write Data Bit Deskew*/ -#undef DDR_PHY_PIR_WRDSKW_DEFVAL -#undef DDR_PHY_PIR_WRDSKW_SHIFT -#undef DDR_PHY_PIR_WRDSKW_MASK -#define DDR_PHY_PIR_WRDSKW_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WRDSKW_SHIFT 13 -#define DDR_PHY_PIR_WRDSKW_MASK 0x00002000U - -/*Read Data Bit Deskew*/ -#undef DDR_PHY_PIR_RDDSKW_DEFVAL -#undef DDR_PHY_PIR_RDDSKW_SHIFT -#undef DDR_PHY_PIR_RDDSKW_MASK -#define DDR_PHY_PIR_RDDSKW_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDDSKW_SHIFT 12 -#define DDR_PHY_PIR_RDDSKW_MASK 0x00001000U - -/*Write Leveling Adjust*/ -#undef DDR_PHY_PIR_WLADJ_DEFVAL -#undef DDR_PHY_PIR_WLADJ_SHIFT -#undef DDR_PHY_PIR_WLADJ_MASK -#define DDR_PHY_PIR_WLADJ_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WLADJ_SHIFT 11 -#define DDR_PHY_PIR_WLADJ_MASK 0x00000800U - -/*Read DQS Gate Training*/ -#undef DDR_PHY_PIR_QSGATE_DEFVAL -#undef DDR_PHY_PIR_QSGATE_SHIFT -#undef DDR_PHY_PIR_QSGATE_MASK -#define DDR_PHY_PIR_QSGATE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_QSGATE_SHIFT 10 -#define DDR_PHY_PIR_QSGATE_MASK 0x00000400U - -/*Write Leveling*/ -#undef DDR_PHY_PIR_WL_DEFVAL -#undef DDR_PHY_PIR_WL_SHIFT -#undef DDR_PHY_PIR_WL_MASK -#define DDR_PHY_PIR_WL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WL_SHIFT 9 -#define DDR_PHY_PIR_WL_MASK 0x00000200U - -/*DRAM Initialization*/ -#undef DDR_PHY_PIR_DRAMINIT_DEFVAL -#undef DDR_PHY_PIR_DRAMINIT_SHIFT -#undef DDR_PHY_PIR_DRAMINIT_MASK -#define DDR_PHY_PIR_DRAMINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DRAMINIT_SHIFT 8 -#define DDR_PHY_PIR_DRAMINIT_MASK 0x00000100U - -/*DRAM Reset (DDR3/DDR4/LPDDR4 Only)*/ -#undef DDR_PHY_PIR_DRAMRST_DEFVAL -#undef DDR_PHY_PIR_DRAMRST_SHIFT -#undef DDR_PHY_PIR_DRAMRST_MASK -#define DDR_PHY_PIR_DRAMRST_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DRAMRST_SHIFT 7 -#define DDR_PHY_PIR_DRAMRST_MASK 0x00000080U - -/*PHY Reset*/ -#undef DDR_PHY_PIR_PHYRST_DEFVAL -#undef DDR_PHY_PIR_PHYRST_SHIFT -#undef DDR_PHY_PIR_PHYRST_MASK -#define DDR_PHY_PIR_PHYRST_DEFVAL 0x00000000 -#define DDR_PHY_PIR_PHYRST_SHIFT 6 -#define DDR_PHY_PIR_PHYRST_MASK 0x00000040U - -/*Digital Delay Line (DDL) Calibration*/ -#undef DDR_PHY_PIR_DCAL_DEFVAL -#undef DDR_PHY_PIR_DCAL_SHIFT -#undef DDR_PHY_PIR_DCAL_MASK -#define DDR_PHY_PIR_DCAL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DCAL_SHIFT 5 -#define DDR_PHY_PIR_DCAL_MASK 0x00000020U - -/*PLL Initialiazation*/ -#undef DDR_PHY_PIR_PLLINIT_DEFVAL -#undef DDR_PHY_PIR_PLLINIT_SHIFT -#undef DDR_PHY_PIR_PLLINIT_MASK -#define DDR_PHY_PIR_PLLINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_PLLINIT_SHIFT 4 -#define DDR_PHY_PIR_PLLINIT_MASK 0x00000010U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_3_DEFVAL -#undef DDR_PHY_PIR_RESERVED_3_SHIFT -#undef DDR_PHY_PIR_RESERVED_3_MASK -#define DDR_PHY_PIR_RESERVED_3_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_3_SHIFT 3 -#define DDR_PHY_PIR_RESERVED_3_MASK 0x00000008U - -/*CA Training*/ -#undef DDR_PHY_PIR_CA_DEFVAL -#undef DDR_PHY_PIR_CA_SHIFT -#undef DDR_PHY_PIR_CA_MASK -#define DDR_PHY_PIR_CA_DEFVAL 0x00000000 -#define DDR_PHY_PIR_CA_SHIFT 2 -#define DDR_PHY_PIR_CA_MASK 0x00000004U - -/*Impedance Calibration*/ -#undef DDR_PHY_PIR_ZCAL_DEFVAL -#undef DDR_PHY_PIR_ZCAL_SHIFT -#undef DDR_PHY_PIR_ZCAL_MASK -#define DDR_PHY_PIR_ZCAL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_ZCAL_SHIFT 1 -#define DDR_PHY_PIR_ZCAL_MASK 0x00000002U - -/*Initialization Trigger*/ -#undef DDR_PHY_PIR_INIT_DEFVAL -#undef DDR_PHY_PIR_INIT_SHIFT -#undef DDR_PHY_PIR_INIT_MASK -#define DDR_PHY_PIR_INIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_INIT_SHIFT 0 -#define DDR_PHY_PIR_INIT_MASK 0x00000001U +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK 0x0000000FU #undef IOU_SLCR_MIO_PIN_0_OFFSET #define IOU_SLCR_MIO_PIN_0_OFFSET 0XFF180000 #undef IOU_SLCR_MIO_PIN_1_OFFSET @@ -17132,7308 +21605,9482 @@ #undef IOU_SLCR_MIO_LOOPBACK_OFFSET #define IOU_SLCR_MIO_LOOPBACK_OFFSET 0XFF180200 -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- + * (QSPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_0_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_0_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_0_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_0_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[0]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[0]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[0]- (Test Scan Port) = test_scan, Output, test_scan_out[0 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_0_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_0_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_0_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_0_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Data - us)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (Q + * SPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_1_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_1_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_1_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_1_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[1]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[1]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[1]- (Test Scan Port) = test_scan, Output, test_scan_out[1 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_1_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_1_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Ou + * tput, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) +*/ #undef IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_1_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_1_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI + * Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_2_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_2_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_2_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_2_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[2]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[2]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[2]- (Test Scan Port) = test_scan, Output, test_scan_out[2 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_2_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_2_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, Input, ttc2_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, I + * nput, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_2_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_2_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI + * Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_3_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_3_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_3_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_3_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[3]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[3]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[3]- (Test Scan Port) = test_scan, Output, test_scan_out[3 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_3_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_3_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_3_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_3_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Data - us)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- ( + * QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_4_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_4_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_4_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_4_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[4]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[4]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[4]- (Test Scan Port) = test_scan, Output, test_scan_out[4 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_4_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_4_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_4_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_4_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- (QSPI Slave Select)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- + * (QSPI Slave Select) +*/ #undef IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_5_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_5_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_5_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_5_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[5]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[5]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[5]- (Test Scan Port) = test_scan, Output, test_scan_out[5 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_5_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_5_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_5_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_5_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_l + * pbk- (QSPI Clock to be fed-back) +*/ #undef IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_6_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_6_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_6_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_6_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[6]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[6]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[6]- (Test Scan Port) = test_scan, Output, test_scan_out[6 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_6_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_6_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1 - sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, - Output, tracedq[4]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= s + * pi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TT + * C Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, + * Output, tracedq[4]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_6_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_6_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_upper- (QSPI Slave Select upper)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_ + * upper- (QSPI Slave Select upper) +*/ #undef IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_7_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_7_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_7_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_7_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[7]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[7]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[7]- (Test Scan Port) = test_scan, Output, test_scan_out[7 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_7_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_7_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - tc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, - racedq[5]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Ma + * ster Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua + * 0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, t + * racedq[5]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_7_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_7_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [0]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_8_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_8_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_8_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_8_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[8]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[8]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[8]- (Test Scan Port) = test_scan, Output, test_scan_out[8 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_8_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_8_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc - , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tr - ce Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Maste + * r Selects) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_ + * txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tra + * ce Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_8_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_8_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [1]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_9_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_9_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_9_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_9_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[9]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[9]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[9]- (Test Scan Port) = test_scan, Output, test_scan_out[9 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_9_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_9_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - utput, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (U - RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master S + * elects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, + * Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UA + * RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_9_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_9_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [2]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_10_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_10_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_10_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_10_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[10]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[10]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[10]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 10]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_10_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_10_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_10_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_10_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [3]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_11_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_11_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_11_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_11_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[11]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[11]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[11]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 11]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_11_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_11_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_11_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_11_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_ + * upper- (QSPI Upper Clock) +*/ #undef IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_12_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_12_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - */ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) +*/ #undef IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_12_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_12_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[12]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[12]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[12]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 12]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_12_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_12_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cl - ck) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trac - dq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJT + * AG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_ + * sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, O + * utput, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace + * dq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_12_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_12_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_13_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_13_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_13_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_13_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, test_scan_out[13]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, + * test_scan_out[13]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_13_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_13_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave - out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Dat - bus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTA + * G TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, + * Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UAR + * T receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_13_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_13_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_14_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_14_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND Command Latch Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND + * Command Latch Enable) +*/ #undef IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_14_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_14_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, test_scan_out[14]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, + * test_scan_out[14]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_14_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_14_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_ - n- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJT + * AG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, + * Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver + * serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_14_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_14_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_15_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_15_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND Address Latch Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND + * Address Latch Enable) +*/ #undef IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_15_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_15_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, test_scan_out[15]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, + * test_scan_out[15]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_15_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_15_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out - 0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seri - l output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJT + * AG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outp + * ut, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_ou + * t- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seria + * l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_15_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_15_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_16_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_16_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_16_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_16_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, test_scan_out[16]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, + * test_scan_out[16]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_16_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_16_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_16_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_16_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_17_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_17_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_17_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_17_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, test_scan_out[17]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, + * test_scan_out[17]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_17_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_17_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_17_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_17_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_18_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_18_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_18_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_18_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, test_scan_out[18]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, + * test_scan_out[18]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_18_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_18_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_18_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_18_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_19_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_19_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_19_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_19_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, test_scan_out[19]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, + * test_scan_out[19]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_19_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_19_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_19_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_19_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_20_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_20_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_20_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_20_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, test_scan_out[20]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, + * test_scan_out[20]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_20_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_20_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= t - c1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua + * 1_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_20_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_20_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_21_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_21_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_21_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_21_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= test_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, test_scan_out[21]- (Test Scan Port) - = csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= tes + * t_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, t + * est_scan_out[21]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU E + * xt Tamper) +*/ #undef IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_21_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_21_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- - UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc + * 1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- ( + * UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_21_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_21_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_22_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_22_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAND Write Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAN + * D Write Enable) +*/ #undef IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_22_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_22_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- - (Test Scan Port) = test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- (Test Scan Port) = + * test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, c + * su_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_22_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_22_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed +*/ #undef IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_22_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_22_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_23_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_23_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_23_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_23_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= test_scan, Input, test_scan_in - 23]- (Test Scan Port) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper - */ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= test_scan, Input, test_scan_in[23]- (Test Scan Po + * rt) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Inp + * ut, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_23_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_23_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_23_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_23_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_24_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_24_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_24_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_24_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= test_scan, Input, test - scan_in[24]- (Test Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ex - Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= test_scan, Input, test_scan_in[24]- (Test + * Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= + * csu, Input, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_24_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_24_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, - Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= N + * ot Used +*/ #undef IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_24_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_24_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_25_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_25_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAND Read Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAN + * D Read Enable) +*/ #undef IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_25_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_25_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= test_scan, Input, - test_scan_in[25]- (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (C - U Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= test_scan, Input, test_scan_in[25]- + * (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port + * ) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_25_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_25_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_out- (TTC Waveform - lock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_ou + * t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in + * put) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_25_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_25_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_26_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_26_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_26_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_26_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[26]- (Test Sc - n Port) = test_scan, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[26]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_26_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_26_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_26_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_26_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_27_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_27_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_27_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_27_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[27]- (Test Sc - n Port) = test_scan, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[27]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_27_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_27_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_27_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_27_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_28_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_28_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_28_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_28_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[28]- (Test Sc - n Port) = test_scan, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[28]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_28_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_28_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_28_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_28_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_29_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_29_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_29_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_29_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[29]- (Test Sc - n Port) = test_scan, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[29]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_29_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_29_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, + * spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_29_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_29_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_30_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_30_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_30_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_30_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[30]- (Test Sc - n Port) = test_scan, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[30]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_30_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_30_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_so - (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output - tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0 + * , Output, spi0_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock + * ) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, + * tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_30_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_30_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_31_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_31_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_31_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_31_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[31]- (Test Sc - n Port) = test_scan, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[31]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_31_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_31_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi - _si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial out - ut) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TT + * C Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial outp + * ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_31_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_31_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_32_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_32_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - */ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) +*/ #undef IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_32_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_32_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[32]- (Test S - an Port) = test_scan, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[32]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_32_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_32_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi - _sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= - race, Output, tracedq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= t + * race, Output, tracedq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_32_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_32_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_33_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_33_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_33_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_33_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[33]- (Test S - an Port) = test_scan, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[33]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_33_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_33_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= t - c3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, traced - [11]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Mas + * ter Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1 + * , Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq + * [11]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_33_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_33_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_34_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_34_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_34_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_34_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[34]- (Test S - an Port) = test_scan, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[34]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_34_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_34_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc2 - Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace P - rt Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master + * Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rx + * d- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Po + * rt Databus) +*/ #undef IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_34_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_34_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_35_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_35_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_35_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_35_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[35]- (Test S - an Port) = test_scan, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[35]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_35_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_35_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- - UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2 + * , Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- ( + * UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Po + * rt Databus) +*/ #undef IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_35_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_35_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_36_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_36_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_36_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_36_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[36]- (Test S - an Port) = test_scan, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[36]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_36_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_36_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_36_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_36_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_37_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_37_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_37_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_37_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[37]- (Test S - an Port) = test_scan, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[37]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_37_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_37_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_37_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_37_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_38_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_38_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_38_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_38_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_38_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_38_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clo - k) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- - (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTA + * G TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_s + * clk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, In + * put, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- + * (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_38_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_38_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_39_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_39_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_39_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_39_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= sd1, Input, sd1_data_i - [4]- (8-bit Data bus) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= sd1, Input, sd1_data_in[4]- (8-bit Data b + * us) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_39_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_39_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, Output, ttc0_wav - _out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port - Control Signal)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJT + * AG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, + * Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (U + * ART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port + * Control Signal) +*/ #undef IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_39_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_39_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_40_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_40_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_40_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_40_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= sd1, Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[5]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= sd1 + * , Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[ + * 5]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_40_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_40_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3, Input, ttc3_clk - in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJ + * TAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3 + * , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmi + * tter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_40_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_40_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_41_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_41_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_41_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_41_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_out[6]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[6]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_41_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_41_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[ - ]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in - ut) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTA + * G TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outpu + * t, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out + * - (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inp + * ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_41_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_41_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_42_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_42_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_42_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_42_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_out[7]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[7]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_42_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_42_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= sp + * i0, Output, spi0_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_42_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_42_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_43_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_43_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_43_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_43_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_43_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_43_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, s - i0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) + * 4= spi0, Input, spi0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_43_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_43_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_44_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_44_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_44_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_44_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_44_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_44_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, s - i1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4 + * = spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_44_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_44_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_45_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_45_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_45_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_45_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_45_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_45_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_45_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_45_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_46_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_46_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_46_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_46_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_46_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_46_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= tt - 0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_46_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_46_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_47_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_47_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_47_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_47_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_47_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_47_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Maste + * r Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= tt + * c0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_47_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_47_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_48_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_48_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_48_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_48_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_48_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_48_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not U - ed*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Us + * ed +*/ #undef IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_48_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_48_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_49_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_49_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_49_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_49_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8 - bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd + * 1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_49_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_49_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_49_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_49_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) +*/ #undef IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_50_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_50_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_50_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_50_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Input, sd1_c - d_in- (Command Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Input, sd1_cmd_in- (Command Ind + * icator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_50_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_50_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= ttc2, Input, ttc2 - clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= + * ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART rece + * iver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_50_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_50_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) +*/ #undef IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_51_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_51_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_51_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_51_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdio1_clk_out- (SDSDIO clock) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdi + * o1_clk_out- (SDSDIO clock) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_51_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_51_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Data) 4= mdio1, Outp - t, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter - serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Dat + * a) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wa + * ve_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter + * serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_51_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_51_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_52_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_52_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_in- (ULPI Clock)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_i + * n- (ULPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_52_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_52_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_52_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_52_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_52_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_52_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_53_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_53_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- + * (Data bus direction control) +*/ #undef IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_53_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_53_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_53_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_53_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Ou + * tput, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) +*/ #undef IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_53_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_53_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_54_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_54_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[2]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_54_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_54_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_54_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_54_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, I + * nput, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_54_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_54_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_55_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_55_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- + * (Data flow control signal from the PHY) +*/ #undef IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_55_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_55_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_55_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_55_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_55_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_55_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_56_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_56_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[0]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_56_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_56_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_56_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_56_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_56_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_56_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_57_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_57_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[1]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_57_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_57_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_57_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_57_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_57_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_57_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_58_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_58_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- + * (Asserted to end or interrupt transfers) +*/ #undef IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_58_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_58_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_58_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_58_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_58_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_58_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_59_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_59_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[3]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_59_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_59_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_59_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_59_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_59_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_59_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_60_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_60_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[4]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_60_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_60_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_60_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_60_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_60_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_60_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_61_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_61_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[5]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_61_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_61_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_61_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_61_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, spi1_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, + * spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_61_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_61_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_62_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_62_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[6]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_62_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_62_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_62_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_62_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_62_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_62_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_63_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_63_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[7]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_63_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_63_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_63_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_63_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_63_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_63_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_64_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_64_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_in- (ULPI Clock)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_i + * n- (ULPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_64_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_64_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_64_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_64_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, s - i0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - trace, Output, tracedq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4 + * = spi0, Output, spi0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * trace, Output, tracedq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_64_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_64_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_65_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_65_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- + * (Data bus direction control) +*/ #undef IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_65_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_65_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_65_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_65_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= - ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trac - dq[11]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace + * dq[11]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_65_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_65_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_66_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_66_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[2]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_66_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_66_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= Not + * Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_66_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_66_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= tt - 2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace - Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace + * Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_66_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_66_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_67_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_67_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- + * (Data flow control signal from the PHY) +*/ #undef IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_67_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_67_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= N + * ot Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_67_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_67_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Maste + * r Selects) 4= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= tt + * c2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace + * Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_67_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_67_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_68_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_68_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[0]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_68_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_68_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= N + * ot Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_68_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_68_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_68_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_68_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_69_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_69_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[1]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_69_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_69_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_69_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_69_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_69_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_69_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_70_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_70_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- + * (Asserted to end or interrupt transfers) +*/ #undef IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_70_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_70_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_70_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_70_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed +*/ #undef IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_70_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_70_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_71_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_71_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[3]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_71_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_71_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_71_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_71_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_71_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_71_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_72_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_72_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[4]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_72_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_72_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_72_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_72_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= N - t Used 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= Not Used 6= ua1, Output, ua1_txd- (UART transmitter seri + * al output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_72_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_72_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_73_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_73_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[5]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_73_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_73_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_73_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_73_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not + * Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_73_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_73_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_74_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_74_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[6]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_74_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_74_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[3]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_74_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_74_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- ( + * UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_74_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_74_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_75_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_75_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[7]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_75_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_75_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Comma - d Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Command Indicator) = sd1 + * , Output, sdio1_cmd_out- (Command Indicator) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_75_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_75_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_t + * xd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_75_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_75_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_76_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_76_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_76_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_76_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Output, sdio - _clk_out- (SDSDIO clock) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Output, sdio1_clk_out- (SDSDIO + * clock) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_76_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_76_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= mdio0, Output, gem0_mdc- (MDIO Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2_mdc- (MDIO Clock - 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= mdio0, Output, gem0_mdc- (MDI + * O Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2 + * _mdc- (MDIO Clock) 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_76_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_76_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_77_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_77_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_77_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_77_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio + * 1_cd_n- (SD card detect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_77_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_77_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= mdio0, Input, gem0_mdio_in- (MDIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, gem1_mdio_in- (MD - O Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_o - t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Output, gem3_mdio_out- (MDIO Data) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= mdio0, Input, gem0_mdio_in- (M + * DIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, + * gem1_mdio_in- (MDIO Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5 + * = mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_ou + * t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Outp + * ut, gem3_mdio_out- (MDIO Data) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_77_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_77_L3_SEL_MASK 0x000000E0U -/*Master Tri-state Enable for pin 0, active high*/ +/* +* Master Tri-state Enable for pin 0, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 1, active high*/ +/* +* Master Tri-state Enable for pin 1, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 2, active high*/ +/* +* Master Tri-state Enable for pin 2, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 3, active high*/ +/* +* Master Tri-state Enable for pin 3, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 4, active high*/ +/* +* Master Tri-state Enable for pin 4, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 5, active high*/ +/* +* Master Tri-state Enable for pin 5, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 6, active high*/ +/* +* Master Tri-state Enable for pin 6, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 7, active high*/ +/* +* Master Tri-state Enable for pin 7, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 8, active high*/ +/* +* Master Tri-state Enable for pin 8, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 9, active high*/ +/* +* Master Tri-state Enable for pin 9, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 10, active high*/ +/* +* Master Tri-state Enable for pin 10, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 11, active high*/ +/* +* Master Tri-state Enable for pin 11, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 12, active high*/ +/* +* Master Tri-state Enable for pin 12, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 13, active high*/ +/* +* Master Tri-state Enable for pin 13, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK 0x00002000U -/*Master Tri-state Enable for pin 14, active high*/ +/* +* Master Tri-state Enable for pin 14, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT 14 -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK 0x00004000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT 14 +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK 0x00004000U -/*Master Tri-state Enable for pin 15, active high*/ +/* +* Master Tri-state Enable for pin 15, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT 15 -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK 0x00008000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT 15 +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK 0x00008000U -/*Master Tri-state Enable for pin 16, active high*/ +/* +* Master Tri-state Enable for pin 16, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT 16 -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK 0x00010000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT 16 +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK 0x00010000U -/*Master Tri-state Enable for pin 17, active high*/ +/* +* Master Tri-state Enable for pin 17, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT 17 -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK 0x00020000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT 17 +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK 0x00020000U -/*Master Tri-state Enable for pin 18, active high*/ +/* +* Master Tri-state Enable for pin 18, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT 18 -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK 0x00040000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT 18 +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK 0x00040000U -/*Master Tri-state Enable for pin 19, active high*/ +/* +* Master Tri-state Enable for pin 19, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT 19 -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK 0x00080000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT 19 +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK 0x00080000U -/*Master Tri-state Enable for pin 20, active high*/ +/* +* Master Tri-state Enable for pin 20, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT 20 -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK 0x00100000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT 20 +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK 0x00100000U -/*Master Tri-state Enable for pin 21, active high*/ +/* +* Master Tri-state Enable for pin 21, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT 21 -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK 0x00200000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT 21 +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK 0x00200000U -/*Master Tri-state Enable for pin 22, active high*/ +/* +* Master Tri-state Enable for pin 22, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT 22 -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK 0x00400000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT 22 +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK 0x00400000U -/*Master Tri-state Enable for pin 23, active high*/ +/* +* Master Tri-state Enable for pin 23, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT 23 -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK 0x00800000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT 23 +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK 0x00800000U -/*Master Tri-state Enable for pin 24, active high*/ +/* +* Master Tri-state Enable for pin 24, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT 24 -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK 0x01000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT 24 +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK 0x01000000U -/*Master Tri-state Enable for pin 25, active high*/ +/* +* Master Tri-state Enable for pin 25, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT 25 -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK 0x02000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT 25 +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK 0x02000000U -/*Master Tri-state Enable for pin 26, active high*/ +/* +* Master Tri-state Enable for pin 26, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT 26 -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK 0x04000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT 26 +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK 0x04000000U -/*Master Tri-state Enable for pin 27, active high*/ +/* +* Master Tri-state Enable for pin 27, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT 27 -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK 0x08000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT 27 +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK 0x08000000U -/*Master Tri-state Enable for pin 28, active high*/ +/* +* Master Tri-state Enable for pin 28, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT 28 -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK 0x10000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT 28 +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK 0x10000000U -/*Master Tri-state Enable for pin 29, active high*/ +/* +* Master Tri-state Enable for pin 29, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT 29 -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK 0x20000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT 29 +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK 0x20000000U -/*Master Tri-state Enable for pin 30, active high*/ +/* +* Master Tri-state Enable for pin 30, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT 30 -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK 0x40000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT 30 +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK 0x40000000U -/*Master Tri-state Enable for pin 31, active high*/ +/* +* Master Tri-state Enable for pin 31, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT 31 -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK 0x80000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT 31 +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK 0x80000000U -/*Master Tri-state Enable for pin 32, active high*/ +/* +* Master Tri-state Enable for pin 32, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 33, active high*/ +/* +* Master Tri-state Enable for pin 33, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 34, active high*/ +/* +* Master Tri-state Enable for pin 34, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 35, active high*/ +/* +* Master Tri-state Enable for pin 35, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 36, active high*/ +/* +* Master Tri-state Enable for pin 36, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 37, active high*/ +/* +* Master Tri-state Enable for pin 37, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 38, active high*/ +/* +* Master Tri-state Enable for pin 38, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 39, active high*/ +/* +* Master Tri-state Enable for pin 39, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 40, active high*/ +/* +* Master Tri-state Enable for pin 40, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 41, active high*/ +/* +* Master Tri-state Enable for pin 41, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 42, active high*/ +/* +* Master Tri-state Enable for pin 42, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 43, active high*/ +/* +* Master Tri-state Enable for pin 43, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 44, active high*/ +/* +* Master Tri-state Enable for pin 44, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 45, active high*/ +/* +* Master Tri-state Enable for pin 45, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK 0x00002000U -/*Master Tri-state Enable for pin 46, active high*/ +/* +* Master Tri-state Enable for pin 46, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT 14 -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK 0x00004000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT 14 +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK 0x00004000U -/*Master Tri-state Enable for pin 47, active high*/ +/* +* Master Tri-state Enable for pin 47, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT 15 -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK 0x00008000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT 15 +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK 0x00008000U -/*Master Tri-state Enable for pin 48, active high*/ +/* +* Master Tri-state Enable for pin 48, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT 16 -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK 0x00010000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT 16 +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK 0x00010000U -/*Master Tri-state Enable for pin 49, active high*/ +/* +* Master Tri-state Enable for pin 49, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT 17 -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK 0x00020000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT 17 +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK 0x00020000U -/*Master Tri-state Enable for pin 50, active high*/ +/* +* Master Tri-state Enable for pin 50, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT 18 -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK 0x00040000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT 18 +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK 0x00040000U -/*Master Tri-state Enable for pin 51, active high*/ +/* +* Master Tri-state Enable for pin 51, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT 19 -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK 0x00080000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT 19 +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK 0x00080000U -/*Master Tri-state Enable for pin 52, active high*/ +/* +* Master Tri-state Enable for pin 52, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT 20 -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK 0x00100000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT 20 +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK 0x00100000U -/*Master Tri-state Enable for pin 53, active high*/ +/* +* Master Tri-state Enable for pin 53, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT 21 -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK 0x00200000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT 21 +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK 0x00200000U -/*Master Tri-state Enable for pin 54, active high*/ +/* +* Master Tri-state Enable for pin 54, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT 22 -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK 0x00400000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT 22 +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK 0x00400000U -/*Master Tri-state Enable for pin 55, active high*/ +/* +* Master Tri-state Enable for pin 55, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT 23 -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK 0x00800000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT 23 +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK 0x00800000U -/*Master Tri-state Enable for pin 56, active high*/ +/* +* Master Tri-state Enable for pin 56, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT 24 -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK 0x01000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT 24 +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK 0x01000000U -/*Master Tri-state Enable for pin 57, active high*/ +/* +* Master Tri-state Enable for pin 57, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT 25 -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK 0x02000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT 25 +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK 0x02000000U -/*Master Tri-state Enable for pin 58, active high*/ +/* +* Master Tri-state Enable for pin 58, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT 26 -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK 0x04000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT 26 +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK 0x04000000U -/*Master Tri-state Enable for pin 59, active high*/ +/* +* Master Tri-state Enable for pin 59, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT 27 -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK 0x08000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT 27 +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK 0x08000000U -/*Master Tri-state Enable for pin 60, active high*/ +/* +* Master Tri-state Enable for pin 60, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT 28 -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK 0x10000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT 28 +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK 0x10000000U -/*Master Tri-state Enable for pin 61, active high*/ +/* +* Master Tri-state Enable for pin 61, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT 29 -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK 0x20000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT 29 +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK 0x20000000U -/*Master Tri-state Enable for pin 62, active high*/ +/* +* Master Tri-state Enable for pin 62, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT 30 -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK 0x40000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT 30 +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK 0x40000000U -/*Master Tri-state Enable for pin 63, active high*/ +/* +* Master Tri-state Enable for pin 63, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT 31 -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK 0x80000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT 31 +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK 0x80000000U -/*Master Tri-state Enable for pin 64, active high*/ +/* +* Master Tri-state Enable for pin 64, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 65, active high*/ +/* +* Master Tri-state Enable for pin 65, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 66, active high*/ +/* +* Master Tri-state Enable for pin 66, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 67, active high*/ +/* +* Master Tri-state Enable for pin 67, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 68, active high*/ +/* +* Master Tri-state Enable for pin 68, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 69, active high*/ +/* +* Master Tri-state Enable for pin 69, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 70, active high*/ +/* +* Master Tri-state Enable for pin 70, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 71, active high*/ +/* +* Master Tri-state Enable for pin 71, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 72, active high*/ +/* +* Master Tri-state Enable for pin 72, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 73, active high*/ +/* +* Master Tri-state Enable for pin 73, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 74, active high*/ +/* +* Master Tri-state Enable for pin 74, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 75, active high*/ +/* +* Master Tri-state Enable for pin 75, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 76, active high*/ +/* +* Master Tri-state Enable for pin 76, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 77, active high*/ +/* +* Master Tri-state Enable for pin 77, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outp - ts to I2C 0 inputs.*/ +/* +* I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 + * = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outputs to I2C 0 inputs + * . +*/ #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT 3 -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK 0x00000008U +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT 3 +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK 0x00000008U -/*CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 R - .*/ +/* +* CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 + * = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 Rx. +*/ #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT 2 -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK 0x00000004U +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT 2 +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK 0x00000004U -/*UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 - outputs to UART 0 inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD and RI not used.*/ +/* +* UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. + * 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 outputs to UART 0 + * inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD + * and RI not used. +*/ #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT 1 -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK 0x00000002U +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT 1 +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK 0x00000002U -/*SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outp - ts to SPI 0 inputs. The other SPI core will appear on the LS Slave Select.*/ +/* +* SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 + * = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outputs to SPI 0 inputs + * . The other SPI core will appear on the LS Slave Select. +*/ #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT 0 -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK 0x00000001U +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT 0 +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK 0x00000001U +#undef CRF_APB_RST_FPD_TOP_OFFSET +#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 #undef CRL_APB_RST_LPD_IOU2_OFFSET #define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 +#undef CRL_APB_RST_LPD_TOP_OFFSET +#define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET #define CRL_APB_RST_LPD_IOU0_OFFSET 0XFF5E0230 #undef CRL_APB_RST_LPD_IOU2_OFFSET @@ -24442,8 +31089,10 @@ #define IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET 0XFF180390 #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C -#undef CRF_APB_RST_FPD_TOP_OFFSET -#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef USB3_0_FPD_POWER_PRSNT_OFFSET +#define USB3_0_FPD_POWER_PRSNT_OFFSET 0XFF9D0080 +#undef USB3_0_FPD_PIPE_CLK_OFFSET +#define USB3_0_FPD_PIPE_CLK_OFFSET 0XFF9D007C #undef CRL_APB_RST_LPD_IOU2_OFFSET #define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 #undef IOU_SLCR_CTRL_REG_SD_OFFSET @@ -24452,6 +31101,8 @@ #define IOU_SLCR_SD_CONFIG_REG2_OFFSET 0XFF180320 #undef IOU_SLCR_SD_CONFIG_REG1_OFFSET #define IOU_SLCR_SD_CONFIG_REG1_OFFSET 0XFF18031C +#undef IOU_SLCR_SD_DLL_CTRL_OFFSET +#define IOU_SLCR_SD_DLL_CTRL_OFFSET 0XFF180358 #undef IOU_SLCR_SD_CONFIG_REG3_OFFSET #define IOU_SLCR_SD_CONFIG_REG3_OFFSET 0XFF180324 #undef CRL_APB_RST_LPD_IOU2_OFFSET @@ -24480,6 +31131,8 @@ #define UART1_CONTROL_REG0_OFFSET 0XFF010000 #undef UART1_MODE_REG0_OFFSET #define UART1_MODE_REG0_OFFSET 0XFF010004 +#undef CRL_APB_RST_LPD_IOU2_OFFSET +#define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 #undef LPD_SLCR_SECURE_SLCR_ADMA_OFFSET #define LPD_SLCR_SECURE_SLCR_ADMA_OFFSET 0XFF4B0024 #undef CSU_TAMPER_STATUS_OFFSET @@ -24492,782 +31145,1656 @@ #define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET 0XFF260020 #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET #define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET 0XFF260000 +#undef GPIO_DIRM_1_OFFSET +#define GPIO_DIRM_1_OFFSET 0XFF0A0244 +#undef GPIO_OEN_1_OFFSET +#define GPIO_OEN_1_OFFSET 0XFF0A0248 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 -/*Block level reset*/ -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT 20 -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK 0x00100000U - -/*GEM 3 reset*/ -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U - -/*Block level reset*/ -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT 0 -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK 0x00000001U - -/*0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypass the Tap delay on the Rx clock signal of LQSPI*/ -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL 0x00000007 -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT 2 -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK 0x00000004U - -/*USB 0 reset for control registers*/ -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U - -/*USB 0 sleep circuit reset*/ -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U - -/*USB 0 reset*/ -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U - -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U -/*FPD WDT reset*/ +/* +* FPD WDT reset +*/ #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT 15 -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK 0x00008000U +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT 15 +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK 0x00008000U -/*GDMA block level reset*/ +/* +* GDMA block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT 6 -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK 0x00000040U +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT 6 +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK 0x00000040U -/*Pixel Processor (submodule of GPU) block level reset*/ +/* +* Pixel Processor (submodule of GPU) block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT 4 -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK 0x00000010U +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT 4 +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK 0x00000010U -/*Pixel Processor (submodule of GPU) block level reset*/ +/* +* Pixel Processor (submodule of GPU) block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT 5 -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK 0x00000020U +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT 5 +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK 0x00000020U -/*GPU block level reset*/ +/* +* GPU block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT 3 -#define CRF_APB_RST_FPD_TOP_GPU_RESET_MASK 0x00000008U +#define CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT 3 +#define CRF_APB_RST_FPD_TOP_GPU_RESET_MASK 0x00000008U -/*GT block level reset*/ +/* +* GT block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GT_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT 2 -#define CRF_APB_RST_FPD_TOP_GT_RESET_MASK 0x00000004U +#define CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT 2 +#define CRF_APB_RST_FPD_TOP_GT_RESET_MASK 0x00000004U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*Block level reset*/ +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT 20 +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK 0x00100000U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_SHIFT 19 +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_MASK 0x00080000U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_SHIFT 17 +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_MASK 0x00020000U + +/* +* Reset entire full power domain. +*/ +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_MASK +#define CRL_APB_RST_LPD_TOP_FPD_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_FPD_RESET_SHIFT 23 +#define CRL_APB_RST_LPD_TOP_FPD_RESET_MASK 0x00800000U + +/* +* LPD SWDT +*/ +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_MASK +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_SHIFT 20 +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_MASK 0x00100000U + +/* +* Sysmonitor reset +*/ +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_MASK +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_SHIFT 17 +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_MASK 0x00020000U + +/* +* Real Time Clock reset +*/ +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_MASK +#define CRL_APB_RST_LPD_TOP_RTC_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_RTC_RESET_SHIFT 16 +#define CRL_APB_RST_LPD_TOP_RTC_RESET_MASK 0x00010000U + +/* +* APM reset +*/ +#undef CRL_APB_RST_LPD_TOP_APM_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_APM_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_APM_RESET_MASK +#define CRL_APB_RST_LPD_TOP_APM_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_APM_RESET_SHIFT 15 +#define CRL_APB_RST_LPD_TOP_APM_RESET_MASK 0x00008000U + +/* +* IPI reset +*/ +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_MASK +#define CRL_APB_RST_LPD_TOP_IPI_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_IPI_RESET_SHIFT 14 +#define CRL_APB_RST_LPD_TOP_IPI_RESET_MASK 0x00004000U + +/* +* reset entire RPU power island +*/ +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_MASK +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_SHIFT 4 +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_MASK 0x00000010U + +/* +* reset ocm +*/ +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_MASK +#define CRL_APB_RST_LPD_TOP_OCM_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_OCM_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_TOP_OCM_RESET_MASK 0x00000008U + +/* +* GEM 3 reset +*/ +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT 0 +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK 0x00000001U + +/* +* 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypa + * ss the Tap delay on the Rx clock signal of LQSPI +*/ +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL 0x00000007 +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT 2 +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK 0x00000004U + +/* +* USB 0 reset for control registers +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U + +/* +* USB 0 sleep circuit reset +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U + +/* +* USB 0 reset +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U + +/* +* This bit is used to choose between PIPE power present and 1'b1 +*/ +#undef USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL +#undef USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT +#undef USB3_0_FPD_POWER_PRSNT_OPTION_MASK +#define USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL +#define USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT 0 +#define USB3_0_FPD_POWER_PRSNT_OPTION_MASK 0x00000001U + +/* +* This bit is used to choose between PIPE clock coming from SerDes and the + * suspend clk +*/ +#undef USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL +#undef USB3_0_FPD_PIPE_CLK_OPTION_SHIFT +#undef USB3_0_FPD_PIPE_CLK_OPTION_MASK +#define USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL +#define USB3_0_FPD_PIPE_CLK_OPTION_SHIFT 0 +#define USB3_0_FPD_PIPE_CLK_OPTION_MASK 0x00000001U + +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT 6 -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT 6 +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK 0x00000040U -/*SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled*/ +/* +* SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled +*/ #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT 15 -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK 0x00008000U +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT 15 +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK 0x00008000U -/*Should be set based on the final product usage 00 - Removable SCard Slot 01 - Embedded Slot for One Device 10 - Shared Bus Sl - t 11 - Reserved*/ +/* +* Should be set based on the final product usage 00 - Removable SCard Slot + * 01 - Embedded Slot for One Device 10 - Shared Bus Slot 11 - Reserved +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT 28 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK 0x30000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT 28 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK 0x30000000U -/*1.8V Support 1: 1.8V supported 0: 1.8V not supported support*/ +/* +* 1.8V Support 1: 1.8V supported 0: 1.8V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT 25 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK 0x02000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT 25 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK 0x02000000U -/*3.0V Support 1: 3.0V supported 0: 3.0V not supported support*/ +/* +* 3.0V Support 1: 3.0V supported 0: 3.0V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT 24 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK 0x01000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT 24 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK 0x01000000U -/*3.3V Support 1: 3.3V supported 0: 3.3V not supported support*/ +/* +* 3.3V Support 1: 3.3V supported 0: 3.3V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT 23 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK 0x00800000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT 23 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK 0x00800000U -/*Base Clock Frequency for SD Clock. This is the frequency of the xin_clk.*/ +/* +* Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. +*/ #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL 0x32403240 -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT 23 -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK 0x7F800000U +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL 0x32403240 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT 23 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK 0x7F800000U -/*This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. Setting to 4'b0 disables Re-Tuning Timer. 0h - Get inf - rmation via other source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n = 2(n-1) seconds -- Bh = 1024 secon - s Fh - Ch = Reserved*/ +/* +* Configures the Number of Taps (Phases) of the rxclk_in that is supported + * . +*/ +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_DEFVAL +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_SHIFT +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_MASK +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_DEFVAL 0x32403240 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_SHIFT 17 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_MASK 0x007E0000U + +/* +* Reserved. +*/ +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_DEFVAL +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_SHIFT +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_MASK +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_DEFVAL 0x00080008 +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_SHIFT 3 +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_MASK 0x00000008U + +/* +* This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. S + * etting to 4'b0 disables Re-Tuning Timer. 0h - Get information via other + * source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n + * = 2(n-1) seconds -- Bh = 1024 seconds Fh - Ch = Reserved +*/ #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL 0x06070607 -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT 22 -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK 0x03C00000U +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL 0x06070607 +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT 22 +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK 0x03C00000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT 8 -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT 8 +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK 0x00000100U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT 9 -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK 0x00000200U +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT 9 +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK 0x00000200U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK 0x00000400U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT 15 -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK 0x00008000U +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT 15 +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK 0x00008000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT 11 -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK 0x00000800U +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT 11 +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK 0x00000800U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT 12 -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK 0x00001000U +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT 12 +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK 0x00001000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT 13 -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK 0x00002000U +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT 13 +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK 0x00002000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT 14 -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK 0x00004000U +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT 14 +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK 0x00004000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT 1 -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK 0x00000002U +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT 1 +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK 0x00000002U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT 2 -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK 0x00000004U +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT 2 +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK 0x00000004U -/*Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate*/ +/* +* Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +*/ #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU -/*Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample*/ +/* +* Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +*/ #undef UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL #undef UART0_BAUD_RATE_GEN_REG0_CD_SHIFT #undef UART0_BAUD_RATE_GEN_REG0_CD_MASK -#define UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B -#define UART0_BAUD_RATE_GEN_REG0_CD_SHIFT 0 -#define UART0_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU +#define UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B +#define UART0_BAUD_RATE_GEN_REG0_CD_SHIFT 0 +#define UART0_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU -/*Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK.*/ +/* +* Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. +*/ #undef UART0_CONTROL_REG0_STPBRK_DEFVAL #undef UART0_CONTROL_REG0_STPBRK_SHIFT #undef UART0_CONTROL_REG0_STPBRK_MASK -#define UART0_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_STPBRK_SHIFT 8 -#define UART0_CONTROL_REG0_STPBRK_MASK 0x00000100U +#define UART0_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_STPBRK_SHIFT 8 +#define UART0_CONTROL_REG0_STPBRK_MASK 0x00000100U -/*Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high.*/ +/* +* Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. +*/ #undef UART0_CONTROL_REG0_STTBRK_DEFVAL #undef UART0_CONTROL_REG0_STTBRK_SHIFT #undef UART0_CONTROL_REG0_STTBRK_MASK -#define UART0_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_STTBRK_SHIFT 7 -#define UART0_CONTROL_REG0_STTBRK_MASK 0x00000080U +#define UART0_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_STTBRK_SHIFT 7 +#define UART0_CONTROL_REG0_STTBRK_MASK 0x00000080U -/*Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted.*/ +/* +* Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. +*/ #undef UART0_CONTROL_REG0_RSTTO_DEFVAL #undef UART0_CONTROL_REG0_RSTTO_SHIFT #undef UART0_CONTROL_REG0_RSTTO_MASK -#define UART0_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RSTTO_SHIFT 6 -#define UART0_CONTROL_REG0_RSTTO_MASK 0x00000040U +#define UART0_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RSTTO_SHIFT 6 +#define UART0_CONTROL_REG0_RSTTO_MASK 0x00000040U -/*Transmit disable: 0: enable transmitter 1: disable transmitter*/ +/* +* Transmit disable: 0: enable transmitter 1: disable transmitter +*/ #undef UART0_CONTROL_REG0_TXDIS_DEFVAL #undef UART0_CONTROL_REG0_TXDIS_SHIFT #undef UART0_CONTROL_REG0_TXDIS_MASK -#define UART0_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXDIS_SHIFT 5 -#define UART0_CONTROL_REG0_TXDIS_MASK 0x00000020U +#define UART0_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXDIS_SHIFT 5 +#define UART0_CONTROL_REG0_TXDIS_MASK 0x00000020U -/*Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0.*/ +/* +* Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. +*/ #undef UART0_CONTROL_REG0_TXEN_DEFVAL #undef UART0_CONTROL_REG0_TXEN_SHIFT #undef UART0_CONTROL_REG0_TXEN_MASK -#define UART0_CONTROL_REG0_TXEN_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXEN_SHIFT 4 -#define UART0_CONTROL_REG0_TXEN_MASK 0x00000010U +#define UART0_CONTROL_REG0_TXEN_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXEN_SHIFT 4 +#define UART0_CONTROL_REG0_TXEN_MASK 0x00000010U -/*Receive disable: 0: enable 1: disable, regardless of the value of RXEN*/ +/* +* Receive disable: 0: enable 1: disable, regardless of the value of RXEN +*/ #undef UART0_CONTROL_REG0_RXDIS_DEFVAL #undef UART0_CONTROL_REG0_RXDIS_SHIFT #undef UART0_CONTROL_REG0_RXDIS_MASK -#define UART0_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXDIS_SHIFT 3 -#define UART0_CONTROL_REG0_RXDIS_MASK 0x00000008U +#define UART0_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXDIS_SHIFT 3 +#define UART0_CONTROL_REG0_RXDIS_MASK 0x00000008U -/*Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero.*/ +/* +* Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. +*/ #undef UART0_CONTROL_REG0_RXEN_DEFVAL #undef UART0_CONTROL_REG0_RXEN_SHIFT #undef UART0_CONTROL_REG0_RXEN_MASK -#define UART0_CONTROL_REG0_RXEN_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXEN_SHIFT 2 -#define UART0_CONTROL_REG0_RXEN_MASK 0x00000004U +#define UART0_CONTROL_REG0_RXEN_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXEN_SHIFT 2 +#define UART0_CONTROL_REG0_RXEN_MASK 0x00000004U -/*Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed.*/ +/* +* Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. +*/ #undef UART0_CONTROL_REG0_TXRES_DEFVAL #undef UART0_CONTROL_REG0_TXRES_SHIFT #undef UART0_CONTROL_REG0_TXRES_MASK -#define UART0_CONTROL_REG0_TXRES_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXRES_SHIFT 1 -#define UART0_CONTROL_REG0_TXRES_MASK 0x00000002U +#define UART0_CONTROL_REG0_TXRES_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXRES_SHIFT 1 +#define UART0_CONTROL_REG0_TXRES_MASK 0x00000002U -/*Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed.*/ +/* +* Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. +*/ #undef UART0_CONTROL_REG0_RXRES_DEFVAL #undef UART0_CONTROL_REG0_RXRES_SHIFT #undef UART0_CONTROL_REG0_RXRES_MASK -#define UART0_CONTROL_REG0_RXRES_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXRES_SHIFT 0 -#define UART0_CONTROL_REG0_RXRES_MASK 0x00000001U +#define UART0_CONTROL_REG0_RXRES_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXRES_SHIFT 0 +#define UART0_CONTROL_REG0_RXRES_MASK 0x00000001U -/*Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback*/ +/* +* Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback +*/ #undef UART0_MODE_REG0_CHMODE_DEFVAL #undef UART0_MODE_REG0_CHMODE_SHIFT #undef UART0_MODE_REG0_CHMODE_MASK -#define UART0_MODE_REG0_CHMODE_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CHMODE_SHIFT 8 -#define UART0_MODE_REG0_CHMODE_MASK 0x00000300U +#define UART0_MODE_REG0_CHMODE_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CHMODE_SHIFT 8 +#define UART0_MODE_REG0_CHMODE_MASK 0x00000300U -/*Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved*/ +/* +* Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved +*/ #undef UART0_MODE_REG0_NBSTOP_DEFVAL #undef UART0_MODE_REG0_NBSTOP_SHIFT #undef UART0_MODE_REG0_NBSTOP_MASK -#define UART0_MODE_REG0_NBSTOP_DEFVAL 0x00000000 -#define UART0_MODE_REG0_NBSTOP_SHIFT 6 -#define UART0_MODE_REG0_NBSTOP_MASK 0x000000C0U +#define UART0_MODE_REG0_NBSTOP_DEFVAL 0x00000000 +#define UART0_MODE_REG0_NBSTOP_SHIFT 6 +#define UART0_MODE_REG0_NBSTOP_MASK 0x000000C0U -/*Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity*/ +/* +* Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty +*/ #undef UART0_MODE_REG0_PAR_DEFVAL #undef UART0_MODE_REG0_PAR_SHIFT #undef UART0_MODE_REG0_PAR_MASK -#define UART0_MODE_REG0_PAR_DEFVAL 0x00000000 -#define UART0_MODE_REG0_PAR_SHIFT 3 -#define UART0_MODE_REG0_PAR_MASK 0x00000038U +#define UART0_MODE_REG0_PAR_DEFVAL 0x00000000 +#define UART0_MODE_REG0_PAR_SHIFT 3 +#define UART0_MODE_REG0_PAR_MASK 0x00000038U -/*Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits*/ +/* +* Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits +*/ #undef UART0_MODE_REG0_CHRL_DEFVAL #undef UART0_MODE_REG0_CHRL_SHIFT #undef UART0_MODE_REG0_CHRL_MASK -#define UART0_MODE_REG0_CHRL_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CHRL_SHIFT 1 -#define UART0_MODE_REG0_CHRL_MASK 0x00000006U +#define UART0_MODE_REG0_CHRL_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CHRL_SHIFT 1 +#define UART0_MODE_REG0_CHRL_MASK 0x00000006U -/*Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8*/ +/* +* Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 +*/ #undef UART0_MODE_REG0_CLKS_DEFVAL #undef UART0_MODE_REG0_CLKS_SHIFT #undef UART0_MODE_REG0_CLKS_MASK -#define UART0_MODE_REG0_CLKS_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CLKS_SHIFT 0 -#define UART0_MODE_REG0_CLKS_MASK 0x00000001U +#define UART0_MODE_REG0_CLKS_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CLKS_SHIFT 0 +#define UART0_MODE_REG0_CLKS_MASK 0x00000001U -/*Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate*/ +/* +* Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +*/ #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU -/*Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample*/ +/* +* Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +*/ #undef UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL #undef UART1_BAUD_RATE_GEN_REG0_CD_SHIFT #undef UART1_BAUD_RATE_GEN_REG0_CD_MASK -#define UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B -#define UART1_BAUD_RATE_GEN_REG0_CD_SHIFT 0 -#define UART1_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU +#define UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B +#define UART1_BAUD_RATE_GEN_REG0_CD_SHIFT 0 +#define UART1_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU -/*Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK.*/ +/* +* Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. +*/ #undef UART1_CONTROL_REG0_STPBRK_DEFVAL #undef UART1_CONTROL_REG0_STPBRK_SHIFT #undef UART1_CONTROL_REG0_STPBRK_MASK -#define UART1_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_STPBRK_SHIFT 8 -#define UART1_CONTROL_REG0_STPBRK_MASK 0x00000100U +#define UART1_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_STPBRK_SHIFT 8 +#define UART1_CONTROL_REG0_STPBRK_MASK 0x00000100U -/*Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high.*/ +/* +* Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. +*/ #undef UART1_CONTROL_REG0_STTBRK_DEFVAL #undef UART1_CONTROL_REG0_STTBRK_SHIFT #undef UART1_CONTROL_REG0_STTBRK_MASK -#define UART1_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_STTBRK_SHIFT 7 -#define UART1_CONTROL_REG0_STTBRK_MASK 0x00000080U +#define UART1_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_STTBRK_SHIFT 7 +#define UART1_CONTROL_REG0_STTBRK_MASK 0x00000080U -/*Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted.*/ +/* +* Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. +*/ #undef UART1_CONTROL_REG0_RSTTO_DEFVAL #undef UART1_CONTROL_REG0_RSTTO_SHIFT #undef UART1_CONTROL_REG0_RSTTO_MASK -#define UART1_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RSTTO_SHIFT 6 -#define UART1_CONTROL_REG0_RSTTO_MASK 0x00000040U +#define UART1_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RSTTO_SHIFT 6 +#define UART1_CONTROL_REG0_RSTTO_MASK 0x00000040U -/*Transmit disable: 0: enable transmitter 1: disable transmitter*/ +/* +* Transmit disable: 0: enable transmitter 1: disable transmitter +*/ #undef UART1_CONTROL_REG0_TXDIS_DEFVAL #undef UART1_CONTROL_REG0_TXDIS_SHIFT #undef UART1_CONTROL_REG0_TXDIS_MASK -#define UART1_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXDIS_SHIFT 5 -#define UART1_CONTROL_REG0_TXDIS_MASK 0x00000020U +#define UART1_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXDIS_SHIFT 5 +#define UART1_CONTROL_REG0_TXDIS_MASK 0x00000020U -/*Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0.*/ +/* +* Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. +*/ #undef UART1_CONTROL_REG0_TXEN_DEFVAL #undef UART1_CONTROL_REG0_TXEN_SHIFT #undef UART1_CONTROL_REG0_TXEN_MASK -#define UART1_CONTROL_REG0_TXEN_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXEN_SHIFT 4 -#define UART1_CONTROL_REG0_TXEN_MASK 0x00000010U +#define UART1_CONTROL_REG0_TXEN_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXEN_SHIFT 4 +#define UART1_CONTROL_REG0_TXEN_MASK 0x00000010U -/*Receive disable: 0: enable 1: disable, regardless of the value of RXEN*/ +/* +* Receive disable: 0: enable 1: disable, regardless of the value of RXEN +*/ #undef UART1_CONTROL_REG0_RXDIS_DEFVAL #undef UART1_CONTROL_REG0_RXDIS_SHIFT #undef UART1_CONTROL_REG0_RXDIS_MASK -#define UART1_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXDIS_SHIFT 3 -#define UART1_CONTROL_REG0_RXDIS_MASK 0x00000008U +#define UART1_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXDIS_SHIFT 3 +#define UART1_CONTROL_REG0_RXDIS_MASK 0x00000008U -/*Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero.*/ +/* +* Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. +*/ #undef UART1_CONTROL_REG0_RXEN_DEFVAL #undef UART1_CONTROL_REG0_RXEN_SHIFT #undef UART1_CONTROL_REG0_RXEN_MASK -#define UART1_CONTROL_REG0_RXEN_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXEN_SHIFT 2 -#define UART1_CONTROL_REG0_RXEN_MASK 0x00000004U +#define UART1_CONTROL_REG0_RXEN_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXEN_SHIFT 2 +#define UART1_CONTROL_REG0_RXEN_MASK 0x00000004U -/*Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed.*/ +/* +* Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. +*/ #undef UART1_CONTROL_REG0_TXRES_DEFVAL #undef UART1_CONTROL_REG0_TXRES_SHIFT #undef UART1_CONTROL_REG0_TXRES_MASK -#define UART1_CONTROL_REG0_TXRES_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXRES_SHIFT 1 -#define UART1_CONTROL_REG0_TXRES_MASK 0x00000002U +#define UART1_CONTROL_REG0_TXRES_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXRES_SHIFT 1 +#define UART1_CONTROL_REG0_TXRES_MASK 0x00000002U -/*Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed.*/ +/* +* Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. +*/ #undef UART1_CONTROL_REG0_RXRES_DEFVAL #undef UART1_CONTROL_REG0_RXRES_SHIFT #undef UART1_CONTROL_REG0_RXRES_MASK -#define UART1_CONTROL_REG0_RXRES_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXRES_SHIFT 0 -#define UART1_CONTROL_REG0_RXRES_MASK 0x00000001U +#define UART1_CONTROL_REG0_RXRES_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXRES_SHIFT 0 +#define UART1_CONTROL_REG0_RXRES_MASK 0x00000001U -/*Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback*/ +/* +* Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback +*/ #undef UART1_MODE_REG0_CHMODE_DEFVAL #undef UART1_MODE_REG0_CHMODE_SHIFT #undef UART1_MODE_REG0_CHMODE_MASK -#define UART1_MODE_REG0_CHMODE_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CHMODE_SHIFT 8 -#define UART1_MODE_REG0_CHMODE_MASK 0x00000300U +#define UART1_MODE_REG0_CHMODE_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CHMODE_SHIFT 8 +#define UART1_MODE_REG0_CHMODE_MASK 0x00000300U -/*Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved*/ +/* +* Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved +*/ #undef UART1_MODE_REG0_NBSTOP_DEFVAL #undef UART1_MODE_REG0_NBSTOP_SHIFT #undef UART1_MODE_REG0_NBSTOP_MASK -#define UART1_MODE_REG0_NBSTOP_DEFVAL 0x00000000 -#define UART1_MODE_REG0_NBSTOP_SHIFT 6 -#define UART1_MODE_REG0_NBSTOP_MASK 0x000000C0U +#define UART1_MODE_REG0_NBSTOP_DEFVAL 0x00000000 +#define UART1_MODE_REG0_NBSTOP_SHIFT 6 +#define UART1_MODE_REG0_NBSTOP_MASK 0x000000C0U -/*Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity*/ +/* +* Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty +*/ #undef UART1_MODE_REG0_PAR_DEFVAL #undef UART1_MODE_REG0_PAR_SHIFT #undef UART1_MODE_REG0_PAR_MASK -#define UART1_MODE_REG0_PAR_DEFVAL 0x00000000 -#define UART1_MODE_REG0_PAR_SHIFT 3 -#define UART1_MODE_REG0_PAR_MASK 0x00000038U +#define UART1_MODE_REG0_PAR_DEFVAL 0x00000000 +#define UART1_MODE_REG0_PAR_SHIFT 3 +#define UART1_MODE_REG0_PAR_MASK 0x00000038U -/*Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits*/ +/* +* Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits +*/ #undef UART1_MODE_REG0_CHRL_DEFVAL #undef UART1_MODE_REG0_CHRL_SHIFT #undef UART1_MODE_REG0_CHRL_MASK -#define UART1_MODE_REG0_CHRL_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CHRL_SHIFT 1 -#define UART1_MODE_REG0_CHRL_MASK 0x00000006U +#define UART1_MODE_REG0_CHRL_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CHRL_SHIFT 1 +#define UART1_MODE_REG0_CHRL_MASK 0x00000006U -/*Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8*/ +/* +* Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 +*/ #undef UART1_MODE_REG0_CLKS_DEFVAL #undef UART1_MODE_REG0_CLKS_SHIFT #undef UART1_MODE_REG0_CLKS_MASK -#define UART1_MODE_REG0_CLKS_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CLKS_SHIFT 0 -#define UART1_MODE_REG0_CLKS_MASK 0x00000001U +#define UART1_MODE_REG0_CLKS_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CLKS_SHIFT 0 +#define UART1_MODE_REG0_CLKS_MASK 0x00000001U -/*TrustZone Classification for ADMA*/ +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_SHIFT 18 +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_MASK 0x00040000U + +/* +* TrustZone Classification for ADMA +*/ #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU -/*CSU regsiter*/ +/* +* CSU regsiter +*/ #undef CSU_TAMPER_STATUS_TAMPER_0_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_0_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_0_MASK -#define CSU_TAMPER_STATUS_TAMPER_0_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_0_SHIFT 0 -#define CSU_TAMPER_STATUS_TAMPER_0_MASK 0x00000001U +#define CSU_TAMPER_STATUS_TAMPER_0_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_0_SHIFT 0 +#define CSU_TAMPER_STATUS_TAMPER_0_MASK 0x00000001U -/*External MIO*/ +/* +* External MIO +*/ #undef CSU_TAMPER_STATUS_TAMPER_1_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_1_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_1_MASK -#define CSU_TAMPER_STATUS_TAMPER_1_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_1_SHIFT 1 -#define CSU_TAMPER_STATUS_TAMPER_1_MASK 0x00000002U +#define CSU_TAMPER_STATUS_TAMPER_1_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_1_SHIFT 1 +#define CSU_TAMPER_STATUS_TAMPER_1_MASK 0x00000002U -/*JTAG toggle detect*/ +/* +* JTAG toggle detect +*/ #undef CSU_TAMPER_STATUS_TAMPER_2_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_2_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_2_MASK -#define CSU_TAMPER_STATUS_TAMPER_2_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_2_SHIFT 2 -#define CSU_TAMPER_STATUS_TAMPER_2_MASK 0x00000004U +#define CSU_TAMPER_STATUS_TAMPER_2_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_2_SHIFT 2 +#define CSU_TAMPER_STATUS_TAMPER_2_MASK 0x00000004U -/*PL SEU error*/ +/* +* PL SEU error +*/ #undef CSU_TAMPER_STATUS_TAMPER_3_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_3_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_3_MASK -#define CSU_TAMPER_STATUS_TAMPER_3_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_3_SHIFT 3 -#define CSU_TAMPER_STATUS_TAMPER_3_MASK 0x00000008U +#define CSU_TAMPER_STATUS_TAMPER_3_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_3_SHIFT 3 +#define CSU_TAMPER_STATUS_TAMPER_3_MASK 0x00000008U -/*AMS over temperature alarm for LPD*/ +/* +* AMS over temperature alarm for LPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_4_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_4_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_4_MASK -#define CSU_TAMPER_STATUS_TAMPER_4_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_4_SHIFT 4 -#define CSU_TAMPER_STATUS_TAMPER_4_MASK 0x00000010U +#define CSU_TAMPER_STATUS_TAMPER_4_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_4_SHIFT 4 +#define CSU_TAMPER_STATUS_TAMPER_4_MASK 0x00000010U -/*AMS over temperature alarm for APU*/ +/* +* AMS over temperature alarm for APU +*/ #undef CSU_TAMPER_STATUS_TAMPER_5_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_5_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_5_MASK -#define CSU_TAMPER_STATUS_TAMPER_5_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_5_SHIFT 5 -#define CSU_TAMPER_STATUS_TAMPER_5_MASK 0x00000020U +#define CSU_TAMPER_STATUS_TAMPER_5_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_5_SHIFT 5 +#define CSU_TAMPER_STATUS_TAMPER_5_MASK 0x00000020U -/*AMS voltage alarm for VCCPINT_FPD*/ +/* +* AMS voltage alarm for VCCPINT_FPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_6_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_6_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_6_MASK -#define CSU_TAMPER_STATUS_TAMPER_6_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_6_SHIFT 6 -#define CSU_TAMPER_STATUS_TAMPER_6_MASK 0x00000040U +#define CSU_TAMPER_STATUS_TAMPER_6_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_6_SHIFT 6 +#define CSU_TAMPER_STATUS_TAMPER_6_MASK 0x00000040U -/*AMS voltage alarm for VCCPINT_LPD*/ +/* +* AMS voltage alarm for VCCPINT_LPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_7_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_7_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_7_MASK -#define CSU_TAMPER_STATUS_TAMPER_7_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_7_SHIFT 7 -#define CSU_TAMPER_STATUS_TAMPER_7_MASK 0x00000080U +#define CSU_TAMPER_STATUS_TAMPER_7_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_7_SHIFT 7 +#define CSU_TAMPER_STATUS_TAMPER_7_MASK 0x00000080U -/*AMS voltage alarm for VCCPAUX*/ +/* +* AMS voltage alarm for VCCPAUX +*/ #undef CSU_TAMPER_STATUS_TAMPER_8_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_8_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_8_MASK -#define CSU_TAMPER_STATUS_TAMPER_8_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_8_SHIFT 8 -#define CSU_TAMPER_STATUS_TAMPER_8_MASK 0x00000100U +#define CSU_TAMPER_STATUS_TAMPER_8_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_8_SHIFT 8 +#define CSU_TAMPER_STATUS_TAMPER_8_MASK 0x00000100U -/*AMS voltage alarm for DDRPHY*/ +/* +* AMS voltage alarm for DDRPHY +*/ #undef CSU_TAMPER_STATUS_TAMPER_9_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_9_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_9_MASK -#define CSU_TAMPER_STATUS_TAMPER_9_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_9_SHIFT 9 -#define CSU_TAMPER_STATUS_TAMPER_9_MASK 0x00000200U +#define CSU_TAMPER_STATUS_TAMPER_9_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_9_SHIFT 9 +#define CSU_TAMPER_STATUS_TAMPER_9_MASK 0x00000200U -/*AMS voltage alarm for PSIO bank 0/1/2*/ +/* +* AMS voltage alarm for PSIO bank 0/1/2 +*/ #undef CSU_TAMPER_STATUS_TAMPER_10_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_10_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_10_MASK -#define CSU_TAMPER_STATUS_TAMPER_10_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_10_SHIFT 10 -#define CSU_TAMPER_STATUS_TAMPER_10_MASK 0x00000400U +#define CSU_TAMPER_STATUS_TAMPER_10_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_10_SHIFT 10 +#define CSU_TAMPER_STATUS_TAMPER_10_MASK 0x00000400U -/*AMS voltage alarm for PSIO bank 3 (dedicated pins)*/ +/* +* AMS voltage alarm for PSIO bank 3 (dedicated pins) +*/ #undef CSU_TAMPER_STATUS_TAMPER_11_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_11_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_11_MASK -#define CSU_TAMPER_STATUS_TAMPER_11_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_11_SHIFT 11 -#define CSU_TAMPER_STATUS_TAMPER_11_MASK 0x00000800U +#define CSU_TAMPER_STATUS_TAMPER_11_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_11_SHIFT 11 +#define CSU_TAMPER_STATUS_TAMPER_11_MASK 0x00000800U -/*AMS voltaage alarm for GT*/ +/* +* AMS voltaage alarm for GT +*/ #undef CSU_TAMPER_STATUS_TAMPER_12_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_12_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_12_MASK -#define CSU_TAMPER_STATUS_TAMPER_12_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_12_SHIFT 12 -#define CSU_TAMPER_STATUS_TAMPER_12_MASK 0x00001000U +#define CSU_TAMPER_STATUS_TAMPER_12_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_12_SHIFT 12 +#define CSU_TAMPER_STATUS_TAMPER_12_MASK 0x00001000U -/*Set ACE outgoing AWQOS value*/ +/* +* Set ACE outgoing AWQOS value +*/ #undef APU_ACE_CTRL_AWQOS_DEFVAL #undef APU_ACE_CTRL_AWQOS_SHIFT #undef APU_ACE_CTRL_AWQOS_MASK -#define APU_ACE_CTRL_AWQOS_DEFVAL 0x000F000F -#define APU_ACE_CTRL_AWQOS_SHIFT 16 -#define APU_ACE_CTRL_AWQOS_MASK 0x000F0000U +#define APU_ACE_CTRL_AWQOS_DEFVAL 0x000F000F +#define APU_ACE_CTRL_AWQOS_SHIFT 16 +#define APU_ACE_CTRL_AWQOS_MASK 0x000F0000U -/*Set ACE outgoing ARQOS value*/ +/* +* Set ACE outgoing ARQOS value +*/ #undef APU_ACE_CTRL_ARQOS_DEFVAL #undef APU_ACE_CTRL_ARQOS_SHIFT #undef APU_ACE_CTRL_ARQOS_MASK -#define APU_ACE_CTRL_ARQOS_DEFVAL 0x000F000F -#define APU_ACE_CTRL_ARQOS_SHIFT 0 -#define APU_ACE_CTRL_ARQOS_MASK 0x0000000FU +#define APU_ACE_CTRL_ARQOS_DEFVAL 0x000F000F +#define APU_ACE_CTRL_ARQOS_SHIFT 0 +#define APU_ACE_CTRL_ARQOS_MASK 0x0000000FU -/*Enables the RTC. By writing a 0 to this bit, RTC will be powered off and the only module that potentially draws current from - he battery will be BBRAM. The value read through this bit does not necessarily reflect whether RTC is enabled or not. It is e - pected that RTC is enabled every time it is being configured. If RTC is not used in the design, FSBL will disable it by writi - g a 0 to this bit.*/ +/* +* Enables the RTC. By writing a 0 to this bit, RTC will be powered off and + * the only module that potentially draws current from the battery will be + * BBRAM. The value read through this bit does not necessarily reflect whe + * ther RTC is enabled or not. It is expected that RTC is enabled every tim + * e it is being configured. If RTC is not used in the design, FSBL will di + * sable it by writing a 0 to this bit. +*/ #undef RTC_CONTROL_BATTERY_DISABLE_DEFVAL #undef RTC_CONTROL_BATTERY_DISABLE_SHIFT #undef RTC_CONTROL_BATTERY_DISABLE_MASK -#define RTC_CONTROL_BATTERY_DISABLE_DEFVAL 0x01000000 -#define RTC_CONTROL_BATTERY_DISABLE_SHIFT 31 -#define RTC_CONTROL_BATTERY_DISABLE_MASK 0x80000000U +#define RTC_CONTROL_BATTERY_DISABLE_DEFVAL 0x01000000 +#define RTC_CONTROL_BATTERY_DISABLE_SHIFT 31 +#define RTC_CONTROL_BATTERY_DISABLE_MASK 0x80000000U -/*Frequency in number of ticks per second. Valid range from 10 MHz to 100 MHz.*/ +/* +* Frequency in number of ticks per second. Valid range from 10 MHz to 100 + * MHz. +*/ #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT 0 -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK 0xFFFFFFFFU +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT 0 +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK 0xFFFFFFFFU -/*Enable 0: The counter is disabled and not incrementing. 1: The counter is enabled and is incrementing.*/ +/* +* Enable 0: The counter is disabled and not incrementing. 1: The counter i + * s enabled and is incrementing. +*/ #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL 0x00000000 -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT 0 -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK 0x00000001U -#undef LPD_XPPU_CFG_IEN_OFFSET -#define LPD_XPPU_CFG_IEN_OFFSET 0XFF980018 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL 0x00000000 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT 0 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK 0x00000001U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_PARITY_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_PARITY_MASK -#define LPD_XPPU_CFG_IEN_APER_PARITY_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT 7 -#define LPD_XPPU_CFG_IEN_APER_PARITY_MASK 0x00000080U +/* +* Operation is the same as DIRM_0[DIRECTION_0] +*/ +#undef GPIO_DIRM_1_DIRECTION_1_DEFVAL +#undef GPIO_DIRM_1_DIRECTION_1_SHIFT +#undef GPIO_DIRM_1_DIRECTION_1_MASK +#define GPIO_DIRM_1_DIRECTION_1_DEFVAL 0x00000000 +#define GPIO_DIRM_1_DIRECTION_1_SHIFT 0 +#define GPIO_DIRM_1_DIRECTION_1_MASK 0x03FFFFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_TZ_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_TZ_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_TZ_MASK -#define LPD_XPPU_CFG_IEN_APER_TZ_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_TZ_SHIFT 6 -#define LPD_XPPU_CFG_IEN_APER_TZ_MASK 0x00000040U +/* +* Operation is the same as OEN_0[OP_ENABLE_0] +*/ +#undef GPIO_OEN_1_OP_ENABLE_1_DEFVAL +#undef GPIO_OEN_1_OP_ENABLE_1_SHIFT +#undef GPIO_OEN_1_OP_ENABLE_1_MASK +#define GPIO_OEN_1_OP_ENABLE_1_DEFVAL 0x00000000 +#define GPIO_OEN_1_OP_ENABLE_1_SHIFT 0 +#define GPIO_OEN_1_OP_ENABLE_1_MASK 0x03FFFFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_PERM_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_PERM_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_PERM_MASK -#define LPD_XPPU_CFG_IEN_APER_PERM_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_PERM_SHIFT 5 -#define LPD_XPPU_CFG_IEN_APER_PERM_MASK 0x00000020U +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_PARITY_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_PARITY_MASK -#define LPD_XPPU_CFG_IEN_MID_PARITY_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT 3 -#define LPD_XPPU_CFG_IEN_MID_PARITY_MASK 0x00000008U +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_RO_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_RO_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_RO_MASK -#define LPD_XPPU_CFG_IEN_MID_RO_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_RO_SHIFT 2 -#define LPD_XPPU_CFG_IEN_MID_RO_MASK 0x00000004U +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_MISS_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_MISS_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_MISS_MASK -#define LPD_XPPU_CFG_IEN_MID_MISS_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_MISS_SHIFT 1 -#define LPD_XPPU_CFG_IEN_MID_MISS_MASK 0x00000002U +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU +#undef FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET +#define FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET 0XFD690040 +#undef FPD_SLCR_SECURE_SLCR_PCIE_OFFSET +#define FPD_SLCR_SECURE_SLCR_PCIE_OFFSET 0XFD690030 +#undef LPD_SLCR_SECURE_SLCR_USB_OFFSET +#define LPD_SLCR_SECURE_SLCR_USB_OFFSET 0XFF4B0034 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef LPD_SLCR_SECURE_SLCR_ADMA_OFFSET +#define LPD_SLCR_SECURE_SLCR_ADMA_OFFSET 0XFF4B0024 +#undef FPD_SLCR_SECURE_SLCR_GDMA_OFFSET +#define FPD_SLCR_SECURE_SLCR_GDMA_OFFSET 0XFD690050 -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_INV_APB_DEFVAL -#undef LPD_XPPU_CFG_IEN_INV_APB_SHIFT -#undef LPD_XPPU_CFG_IEN_INV_APB_MASK -#define LPD_XPPU_CFG_IEN_INV_APB_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_INV_APB_SHIFT 0 -#define LPD_XPPU_CFG_IEN_INV_APB_MASK 0x00000001U +/* +* TrustZone classification for DisplayPort DMA +*/ +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_SHIFT +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_MASK +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_DEFVAL 0x00000001 +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_MASK 0x00000001U + +/* +* TrustZone classification for DMA Channel 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_SHIFT 21 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_MASK 0x00200000U + +/* +* TrustZone classification for DMA Channel 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_SHIFT 22 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_MASK 0x00400000U + +/* +* TrustZone classification for DMA Channel 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_SHIFT 23 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_MASK 0x00800000U + +/* +* TrustZone classification for DMA Channel 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_SHIFT 24 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_MASK 0x01000000U + +/* +* TrustZone classification for Ingress Address Translation 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_SHIFT 13 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_MASK 0x00002000U + +/* +* TrustZone classification for Ingress Address Translation 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_SHIFT 14 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_MASK 0x00004000U + +/* +* TrustZone classification for Ingress Address Translation 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_SHIFT 15 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_MASK 0x00008000U + +/* +* TrustZone classification for Ingress Address Translation 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_SHIFT 16 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_MASK 0x00010000U + +/* +* TrustZone classification for Ingress Address Translation 4 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_SHIFT 17 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_MASK 0x00020000U + +/* +* TrustZone classification for Ingress Address Translation 5 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_SHIFT 18 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_MASK 0x00040000U + +/* +* TrustZone classification for Ingress Address Translation 6 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_SHIFT 19 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_MASK 0x00080000U + +/* +* TrustZone classification for Ingress Address Translation 7 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_SHIFT 20 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_MASK 0x00100000U + +/* +* TrustZone classification for Egress Address Translation 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_SHIFT 5 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_MASK 0x00000020U + +/* +* TrustZone classification for Egress Address Translation 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_SHIFT 6 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_MASK 0x00000040U + +/* +* TrustZone classification for Egress Address Translation 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_SHIFT 7 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_MASK 0x00000080U + +/* +* TrustZone classification for Egress Address Translation 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_SHIFT 8 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_MASK 0x00000100U + +/* +* TrustZone classification for Egress Address Translation 4 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_SHIFT 9 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_MASK 0x00000200U + +/* +* TrustZone classification for Egress Address Translation 5 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_SHIFT 10 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_MASK 0x00000400U + +/* +* TrustZone classification for Egress Address Translation 6 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_SHIFT 11 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_MASK 0x00000800U + +/* +* TrustZone classification for Egress Address Translation 7 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_SHIFT 12 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_MASK 0x00001000U + +/* +* TrustZone classification for DMA Registers +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_SHIFT 4 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_MASK 0x00000010U + +/* +* TrustZone classification for MSIx Table +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_SHIFT 2 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_MASK 0x00000004U + +/* +* TrustZone classification for MSIx PBA +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_SHIFT 3 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_MASK 0x00000008U + +/* +* TrustZone classification for ECAM +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_SHIFT 1 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_MASK 0x00000002U + +/* +* TrustZone classification for Bridge Common Registers +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_MASK 0x00000001U + +/* +* TrustZone Classification for USB3_0 +*/ +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_SHIFT +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_MASK +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_DEFVAL 0x00000003 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_MASK 0x00000001U + +/* +* TrustZone Classification for USB3_1 +*/ +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_SHIFT +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_MASK +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_DEFVAL 0x00000003 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_SHIFT 1 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_MASK 0x00000002U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_SHIFT 16 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_MASK 0x00070000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_SHIFT 19 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_MASK 0x00380000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_SHIFT 16 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_MASK 0x00070000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_SHIFT 19 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_MASK 0x00380000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_SHIFT 0 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_MASK 0x00000007U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_SHIFT 3 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_MASK 0x00000038U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_SHIFT 6 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_MASK 0x000001C0U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_SHIFT 9 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_MASK 0x00000E00U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_SHIFT 0 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_MASK 0x00000007U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_SHIFT 3 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_MASK 0x00000038U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_SHIFT 6 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_MASK 0x000001C0U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_SHIFT 9 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_MASK 0x00000E00U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_SHIFT 25 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_MASK 0x0E000000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_SHIFT 22 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_MASK 0x01C00000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_SHIFT 22 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_MASK 0x01C00000U + +/* +* TrustZone Classification for ADMA +*/ +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU + +/* +* TrustZone Classification for GDMA +*/ +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_SHIFT +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_MASK +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_DEFVAL +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_MASK 0x000000FFU #undef SERDES_PLL_REF_SEL0_OFFSET #define SERDES_PLL_REF_SEL0_OFFSET 0XFD410000 #undef SERDES_PLL_REF_SEL1_OFFSET @@ -25332,8 +32859,6 @@ #define SERDES_L3_TM_DIG_6_OFFSET 0XFD40D06C #undef SERDES_L3_TX_DIG_TM_61_OFFSET #define SERDES_L3_TX_DIG_TM_61_OFFSET 0XFD40C0F4 -#undef SERDES_L3_TXPMA_ST_0_OFFSET -#define SERDES_L3_TXPMA_ST_0_OFFSET 0XFD40CB00 #undef SERDES_L0_TM_AUX_0_OFFSET #define SERDES_L0_TM_AUX_0_OFFSET 0XFD4010CC #undef SERDES_L2_TM_AUX_0_OFFSET @@ -25372,6 +32897,10 @@ #define SERDES_L0_TM_E_ILL8_OFFSET 0XFD401940 #undef SERDES_L0_TM_E_ILL9_OFFSET #define SERDES_L0_TM_E_ILL9_OFFSET 0XFD401944 +#undef SERDES_L0_TM_ILL13_OFFSET +#define SERDES_L0_TM_ILL13_OFFSET 0XFD401994 +#undef SERDES_L1_TM_ILL13_OFFSET +#define SERDES_L1_TM_ILL13_OFFSET 0XFD405994 #undef SERDES_L2_TM_MISC2_OFFSET #define SERDES_L2_TM_MISC2_OFFSET 0XFD40989C #undef SERDES_L2_TM_IQ_ILL1_OFFSET @@ -25398,6 +32927,8 @@ #define SERDES_L2_TM_E_ILL8_OFFSET 0XFD409940 #undef SERDES_L2_TM_E_ILL9_OFFSET #define SERDES_L2_TM_E_ILL9_OFFSET 0XFD409944 +#undef SERDES_L2_TM_ILL13_OFFSET +#define SERDES_L2_TM_ILL13_OFFSET 0XFD409994 #undef SERDES_L3_TM_MISC2_OFFSET #define SERDES_L3_TM_MISC2_OFFSET 0XFD40D89C #undef SERDES_L3_TM_IQ_ILL1_OFFSET @@ -25426,10 +32957,16 @@ #define SERDES_L3_TM_E_ILL8_OFFSET 0XFD40D940 #undef SERDES_L3_TM_E_ILL9_OFFSET #define SERDES_L3_TM_E_ILL9_OFFSET 0XFD40D944 -#undef SERDES_L0_TM_DIG_21_OFFSET -#define SERDES_L0_TM_DIG_21_OFFSET 0XFD4010A8 +#undef SERDES_L3_TM_ILL13_OFFSET +#define SERDES_L3_TM_ILL13_OFFSET 0XFD40D994 #undef SERDES_L0_TM_DIG_10_OFFSET #define SERDES_L0_TM_DIG_10_OFFSET 0XFD40107C +#undef SERDES_L1_TM_DIG_10_OFFSET +#define SERDES_L1_TM_DIG_10_OFFSET 0XFD40507C +#undef SERDES_L2_TM_DIG_10_OFFSET +#define SERDES_L2_TM_DIG_10_OFFSET 0XFD40907C +#undef SERDES_L3_TM_DIG_10_OFFSET +#define SERDES_L3_TM_DIG_10_OFFSET 0XFD40D07C #undef SERDES_L0_TM_RST_DLY_OFFSET #define SERDES_L0_TM_RST_DLY_OFFSET 0XFD4019A4 #undef SERDES_L0_TM_ANA_BYP_15_OFFSET @@ -25454,6 +32991,24 @@ #define SERDES_L3_TM_ANA_BYP_15_OFFSET 0XFD40D038 #undef SERDES_L3_TM_ANA_BYP_12_OFFSET #define SERDES_L3_TM_ANA_BYP_12_OFFSET 0XFD40D02C +#undef SERDES_L0_TM_MISC3_OFFSET +#define SERDES_L0_TM_MISC3_OFFSET 0XFD4019AC +#undef SERDES_L1_TM_MISC3_OFFSET +#define SERDES_L1_TM_MISC3_OFFSET 0XFD4059AC +#undef SERDES_L2_TM_MISC3_OFFSET +#define SERDES_L2_TM_MISC3_OFFSET 0XFD4099AC +#undef SERDES_L3_TM_MISC3_OFFSET +#define SERDES_L3_TM_MISC3_OFFSET 0XFD40D9AC +#undef SERDES_L0_TM_EQ11_OFFSET +#define SERDES_L0_TM_EQ11_OFFSET 0XFD401978 +#undef SERDES_L1_TM_EQ11_OFFSET +#define SERDES_L1_TM_EQ11_OFFSET 0XFD405978 +#undef SERDES_L2_TM_EQ11_OFFSET +#define SERDES_L2_TM_EQ11_OFFSET 0XFD409978 +#undef SERDES_L3_TM_EQ11_OFFSET +#define SERDES_L3_TM_EQ11_OFFSET 0XFD40D978 +#undef SIOU_ECO_0_OFFSET +#define SIOU_ECO_0_OFFSET 0XFD3D001C #undef SERDES_ICM_CFG0_OFFSET #define SERDES_ICM_CFG0_OFFSET 0XFD410010 #undef SERDES_ICM_CFG1_OFFSET @@ -25479,1055 +33034,1511 @@ #undef SERDES_L3_TX_ANA_TM_18_OFFSET #define SERDES_L3_TX_ANA_TM_18_OFFSET 0XFD40C048 -/*PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL 0x0000000D -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT 0 -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL 0x0000000D +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT 0 +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK 0x0000001FU -/*PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL 0x00000008 -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT 0 -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL 0x00000008 +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT 0 +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK 0x0000001FU -/*PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL 0x0000000F -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT 0 -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL 0x0000000F +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT 0 +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK 0x0000001FU -/*PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL 0x0000000E -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT 0 -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL 0x0000000E +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT 0 +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK 0x0000001FU -/*Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer output. Set to 0 to select lane0 ref clock mux output.*/ +/* +* Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer outp + * ut. Set to 0 to select lane0 ref clock mux output. +*/ #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane1 ref clock mux output.*/ +/* +* Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane1 ref clock mux output. +*/ #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 slicer output from ref clock network*/ +/* +* Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 sli + * cer output from ref clock network +*/ #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL 0x00000080 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT 3 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK 0x00000008U +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL 0x00000080 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT 3 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK 0x00000008U -/*Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane2 ref clock mux output.*/ +/* +* Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane2 ref clock mux output. +*/ #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer output. Set to 0 to select lane3 ref clock mux output.*/ +/* +* Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer outp + * ut. Set to 0 to select lane3 ref clock mux output. +*/ #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 slicer output from ref clock network*/ +/* +* Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 sli + * cer output from ref clock network +*/ #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL 0x00000080 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT 1 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK 0x00000002U +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL 0x00000080 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT 1 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK 0x00000002U -/*Enable/Disable coarse code satureation limiting logic*/ +/* +* Enable/Disable coarse code satureation limiting logic +*/ #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL 0x00000000 -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT 4 -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK 0x00000010U +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL 0x00000000 +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT 4 +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK 0x00000010U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Enable test mode forcing on enable Spread Spectrum*/ +/* +* Enable test mode forcing on enable Spread Spectrum +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT 7 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK 0x00000080U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT 7 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK 0x00000080U -/*Bypass Descrambler*/ +/* +* Bypass Descrambler +*/ #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U -/*Enable Bypass for <1> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <1> TM_DIG_CTRL_6 +*/ #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U -/*Bypass scrambler signal*/ +/* +* Bypass scrambler signal +*/ #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U -/*Enable/disable scrambler bypass signal*/ +/* +* Enable/disable scrambler bypass signal +*/ #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U -/*Enable test mode force on fractional mode enable*/ +/* +* Enable test mode force on fractional mode enable +*/ #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL 0x00000000 -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT 6 -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK 0x00000040U +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL 0x00000000 +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT 6 +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK 0x00000040U -/*Bypass 8b10b decoder*/ +/* +* Bypass 8b10b decoder +*/ #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT 3 -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK 0x00000008U +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT 3 +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK 0x00000008U -/*Enable Bypass for <3> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <3> TM_DIG_CTRL_6 +*/ #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT 2 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK 0x00000004U +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT 2 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK 0x00000004U -/*Bypass Descrambler*/ +/* +* Bypass Descrambler +*/ #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U -/*Enable Bypass for <1> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <1> TM_DIG_CTRL_6 +*/ #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U -/*Enable/disable encoder bypass signal*/ +/* +* Enable/disable encoder bypass signal +*/ #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT 3 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK 0x00000008U +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT 3 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK 0x00000008U -/*Bypass scrambler signal*/ +/* +* Bypass scrambler signal +*/ #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U -/*Enable/disable scrambler bypass signal*/ +/* +* Enable/disable scrambler bypass signal +*/ #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U -/*PHY Mode: 4'b000 - PCIe, 4'b001 - USB3, 4'b0010 - SATA, 4'b0100 - SGMII, 4'b0101 - DP, 4'b1000 - MPHY*/ -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_DEFVAL -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_DEFVAL 0x00000001 -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT 4 -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK 0x000000F0U - -/*Spare- not used*/ +/* +* Spare- not used +*/ #undef SERDES_L0_TM_AUX_0_BIT_2_DEFVAL #undef SERDES_L0_TM_AUX_0_BIT_2_SHIFT #undef SERDES_L0_TM_AUX_0_BIT_2_MASK -#define SERDES_L0_TM_AUX_0_BIT_2_DEFVAL 0x00000000 -#define SERDES_L0_TM_AUX_0_BIT_2_SHIFT 5 -#define SERDES_L0_TM_AUX_0_BIT_2_MASK 0x00000020U +#define SERDES_L0_TM_AUX_0_BIT_2_DEFVAL 0x00000000 +#define SERDES_L0_TM_AUX_0_BIT_2_SHIFT 5 +#define SERDES_L0_TM_AUX_0_BIT_2_MASK 0x00000020U -/*Spare- not used*/ +/* +* Spare- not used +*/ #undef SERDES_L2_TM_AUX_0_BIT_2_DEFVAL #undef SERDES_L2_TM_AUX_0_BIT_2_SHIFT #undef SERDES_L2_TM_AUX_0_BIT_2_MASK -#define SERDES_L2_TM_AUX_0_BIT_2_DEFVAL 0x00000000 -#define SERDES_L2_TM_AUX_0_BIT_2_SHIFT 5 -#define SERDES_L2_TM_AUX_0_BIT_2_MASK 0x00000020U +#define SERDES_L2_TM_AUX_0_BIT_2_DEFVAL 0x00000000 +#define SERDES_L2_TM_AUX_0_BIT_2_SHIFT 5 +#define SERDES_L2_TM_AUX_0_BIT_2_MASK 0x00000020U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*G2A_PCIe1 PLL ctr bypass value*/ +/* +* G2A_PCIe1 PLL ctr bypass value +*/ #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT 4 -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK 0x000000F0U +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT 4 +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK 0x000000F0U -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*pre lock comma count threshold. 2'b 00 : 3, 2'b 01 : 5, 2'b 10 : 10, 2'b 11 : 20*/ -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_DEFVAL -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_DEFVAL 0x00000000 -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT 0 -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK 0x00000003U +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U -/*CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001*/ +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU -/*Delay apb reset by specified amount*/ +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unuse - , 7 - Unused*/ +/* +* CDR fast phase lock control +*/ +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* For future use +*/ +#undef SIOU_ECO_0_FIELD_DEFVAL +#undef SIOU_ECO_0_FIELD_SHIFT +#undef SIOU_ECO_0_FIELD_MASK +#define SIOU_ECO_0_FIELD_DEFVAL +#define SIOU_ECO_0_FIELD_SHIFT 0 +#define SIOU_ECO_0_FIELD_MASK 0xFFFFFFFFU + +/* +* Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT #undef SERDES_ICM_CFG0_L0_ICM_CFG_MASK -#define SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT 0 -#define SERDES_ICM_CFG0_L0_ICM_CFG_MASK 0x00000007U +#define SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT 0 +#define SERDES_ICM_CFG0_L0_ICM_CFG_MASK 0x00000007U -/*Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT #undef SERDES_ICM_CFG0_L1_ICM_CFG_MASK -#define SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT 4 -#define SERDES_ICM_CFG0_L1_ICM_CFG_MASK 0x00000070U +#define SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT 4 +#define SERDES_ICM_CFG0_L1_ICM_CFG_MASK 0x00000070U -/*Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT #undef SERDES_ICM_CFG1_L2_ICM_CFG_MASK -#define SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT 0 -#define SERDES_ICM_CFG1_L2_ICM_CFG_MASK 0x00000007U +#define SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT 0 +#define SERDES_ICM_CFG1_L2_ICM_CFG_MASK 0x00000007U -/*Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, + * 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT #undef SERDES_ICM_CFG1_L3_ICM_CFG_MASK -#define SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT 4 -#define SERDES_ICM_CFG1_L3_ICM_CFG_MASK 0x00000070U +#define SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT 4 +#define SERDES_ICM_CFG1_L3_ICM_CFG_MASK 0x00000070U -/*Enable/disable DP post2 path*/ +/* +* Enable/disable DP post2 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT 5 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK 0x00000020U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT 5 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK 0x00000020U -/*Override enable/disable of DP post2 path*/ +/* +* Override enable/disable of DP post2 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT 4 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK 0x00000010U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT 4 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK 0x00000010U -/*Override enable/disable of DP post1 path*/ +/* +* Override enable/disable of DP post1 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT 2 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK 0x00000004U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT 2 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK 0x00000004U -/*Enable/disable DP main path*/ +/* +* Enable/disable DP main path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT 1 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK 0x00000002U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT 1 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK 0x00000002U -/*Override enable/disable of DP main path*/ +/* +* Override enable/disable of DP main path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT 0 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK 0x00000001U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT 0 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK 0x00000001U -/*Test register force for enabling/disablign TX deemphasis bits <17:0>*/ +/* +* Test register force for enabling/disablign TX deemphasis bits <17:0> +*/ #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U -/*Test register force for enabling/disablign TX deemphasis bits <17:0>*/ +/* +* Test register force for enabling/disablign TX deemphasis bits <17:0> +*/ #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U -/*FPHL FSM accumulate cycles*/ +/* +* FPHL FSM accumulate cycles +*/ #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT 5 -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK 0x000000E0U +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT 5 +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK 0x000000E0U -/*FFL Phase0 int gain aka 2ol SD update rate*/ +/* +* FFL Phase0 int gain aka 2ol SD update rate +*/ #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT 0 -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK 0x0000001FU +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT 0 +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK 0x0000001FU -/*FFL Phase0 prop gain aka 1ol SD update rate*/ +/* +* FFL Phase0 prop gain aka 1ol SD update rate +*/ #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT 0 -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK 0x0000001FU +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT 0 +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK 0x0000001FU -/*EQ stg 2 controls BYPASSED*/ +/* +* EQ stg 2 controls BYPASSED +*/ #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT 5 -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK 0x00000020U +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT 5 +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK 0x00000020U -/*EQ STG2 RL PROG*/ +/* +* EQ STG2 RL PROG +*/ #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT 0 -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK 0x00000003U +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT 0 +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK 0x00000003U -/*EQ stg 2 preamp mode val*/ +/* +* EQ stg 2 preamp mode val +*/ #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT 2 -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK 0x00000004U +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT 2 +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK 0x00000004U -/*Margining factor value*/ +/* +* Margining factor value +*/ #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT 0 -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK 0x0000001FU +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT 0 +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK 0x0000001FU -/*pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved*/ +/* +* pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved +*/ #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU -/*pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved*/ +/* +* pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved +*/ #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C -#undef USB3_0_FPD_POWER_PRSNT_OFFSET -#define USB3_0_FPD_POWER_PRSNT_OFFSET 0XFF9D0080 -#undef USB3_0_FPD_PIPE_CLK_OFFSET -#define USB3_0_FPD_PIPE_CLK_OFFSET 0XFF9D007C #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET @@ -26548,6 +34559,10 @@ #define USB3_0_XHCI_GUSB2PHYCFG_OFFSET 0XFE20C200 #undef USB3_0_XHCI_GFLADJ_OFFSET #define USB3_0_XHCI_GFLADJ_OFFSET 0XFE20C630 +#undef USB3_0_XHCI_GUCTL1_OFFSET +#define USB3_0_XHCI_GUCTL1_OFFSET 0XFE20C11C +#undef USB3_0_XHCI_GUCTL_OFFSET +#define USB3_0_XHCI_GUCTL_OFFSET 0XFE20C12C #undef PCIE_ATTRIB_ATTR_25_OFFSET #define PCIE_ATTRIB_ATTR_25_OFFSET 0XFD480064 #undef PCIE_ATTRIB_ATTR_7_OFFSET @@ -26638,6 +34653,8 @@ #define PCIE_ATTRIB_ATTR_35_OFFSET 0XFD48008C #undef CRF_APB_RST_FPD_TOP_OFFSET #define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 #undef SATA_AHCI_VENDOR_PP2C_OFFSET #define SATA_AHCI_VENDOR_PP2C_OFFSET 0XFD0C00AC #undef SATA_AHCI_VENDOR_PP3C_OFFSET @@ -26647,1015 +34664,1462 @@ #undef SATA_AHCI_VENDOR_PP5C_OFFSET #define SATA_AHCI_VENDOR_PP5C_OFFSET 0XFD0C00B8 -/*USB 0 reset for control registers*/ +/* +* USB 0 reset for control registers +*/ #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U -/*This bit is used to choose between PIPE power present and 1'b1*/ -#undef USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL -#undef USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT -#undef USB3_0_FPD_POWER_PRSNT_OPTION_MASK -#define USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL -#define USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT 0 -#define USB3_0_FPD_POWER_PRSNT_OPTION_MASK 0x00000001U - -/*This bit is used to choose between PIPE clock coming from SerDes and the suspend clk*/ -#undef USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL -#undef USB3_0_FPD_PIPE_CLK_OPTION_SHIFT -#undef USB3_0_FPD_PIPE_CLK_OPTION_MASK -#define USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL -#define USB3_0_FPD_PIPE_CLK_OPTION_SHIFT 0 -#define USB3_0_FPD_PIPE_CLK_OPTION_MASK 0x00000001U - -/*USB 0 sleep circuit reset*/ +/* +* USB 0 sleep circuit reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U -/*USB 0 reset*/ +/* +* USB 0 reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U -/*GEM 3 reset*/ +/* +* GEM 3 reset +*/ #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U -/*Sata PM clock control select*/ +/* +* Sata PM clock control select +*/ #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT 0 -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK 0x00000003U +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT 0 +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK 0x00000003U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U -/*Set to '1' to hold the GT in reset. Clear to release.*/ +/* +* Set to '1' to hold the GT in reset. Clear to release. +*/ #undef DP_DP_PHY_RESET_GT_RESET_DEFVAL #undef DP_DP_PHY_RESET_GT_RESET_SHIFT #undef DP_DP_PHY_RESET_GT_RESET_MASK -#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 -#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 -#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U +#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 +#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 +#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U -/*Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1*/ +/* +* Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 +*/ #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU -/*USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to - he Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). The following are the required values for the minimum S - C bus frequency of 60 MHz. USB turnaround time is a critical certification criteria when using long cables and five hub level - . The required values for this field: - 4'h5: When the MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit - UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround time is not critical, this field can be set to a larger - alue. Note: This field is valid only in device mode.*/ +/* +* USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY cloc + * ks. Specifies the response time for a MAC request to the Packet FIFO Con + * troller (PFC) to fetch data from the DFIFO (SPRAM). The following are th + * e required values for the minimum SoC bus frequency of 60 MHz. USB turna + * round time is a critical certification criteria when using long cables a + * nd five hub levels. The required values for this field: - 4'h5: When the + * MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit + * UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround tim + * e is not critical, this field can be set to a larger value. Note: This f + * ield is valid only in device mode. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT 10 -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK 0x00003C00U +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT 10 +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK 0x00003C00U -/*Transceiver Delay: Enables a delay between the assertion of the UTMI/ULPI Transceiver Select signal (for HS) and the assertio - of the TxValid signal during a HS Chirp. When this bit is set to 1, a delay (of approximately 2.5 us) is introduced from the - time when the Transceiver Select is set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the chirp-K. This de - ay is required for some UTMI/ULPI PHYs. Note: - If you enable the hibernation feature when the device core comes out of power - off, you must re-initialize this bit with the appropriate value because the core does not save and restore this bit value dur - ng hibernation. - This bit is valid only in device mode.*/ +/* +* Transceiver Delay: Enables a delay between the assertion of the UTMI/ULP + * I Transceiver Select signal (for HS) and the assertion of the TxValid si + * gnal during a HS Chirp. When this bit is set to 1, a delay (of approxima + * tely 2.5 us) is introduced from the time when the Transceiver Select is + * set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the + * chirp-K. This delay is required for some UTMI/ULPI PHYs. Note: - If you + * enable the hibernation feature when the device core comes out of power- + * off, you must re-initialize this bit with the appropriate value because + * the core does not save and restore this bit value during hibernation. - + * This bit is valid only in device mode. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT 9 -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK 0x00000200U +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT 9 +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK 0x00000200U -/*Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application uses this bit to control utmi_sleep_n and utmi_l1_suspen - _n assertion to the PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is not transferre - to the external PHY. - 1'b1: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is transferred to the external PHY. - ote: This bit must be set high for Port0 if PHY is used. Note: In Device mode - Before issuing any device endpoint command wh - n operating in 2.0 speeds, disable this bit and enable it after the command completes. Without disabling this bit, if a comma - d is issued when the device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get complet - d.*/ +/* +* Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application use + * s this bit to control utmi_sleep_n and utmi_l1_suspend_n assertion to th + * e PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assert + * ion from the core is not transferred to the external PHY. - 1'b1: utmi_s + * leep_n and utmi_l1_suspend_n assertion from the core is transferred to t + * he external PHY. Note: This bit must be set high for Port0 if PHY is use + * d. Note: In Device mode - Before issuing any device endpoint command whe + * n operating in 2.0 speeds, disable this bit and enable it after the comm + * and completes. Without disabling this bit, if a command is issued when t + * he device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated of + * f, the command will not get completed. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT 8 -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK 0x00000100U +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT 8 +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK 0x00000100U -/*USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select The application uses this bit to select a high-speed P - Y or a full-speed transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is always 0, with Write Only access. - - 'b1: USB 1.1 full-speed serial transceiver. This bit is always 1, with Write Only access. If both interface types are selecte - in coreConsultant (that is, parameters' values are not zero), the application uses this bit to select the active interface i - active, with Read-Write bit access. Note: USB 1.1 full-serial transceiver is not supported. This bit always reads as 1'b0.*/ +/* +* USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select T + * he application uses this bit to select a high-speed PHY or a full-speed + * transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is a + * lways 0, with Write Only access. - 1'b1: USB 1.1 full-speed serial trans + * ceiver. This bit is always 1, with Write Only access. If both interface + * types are selected in coreConsultant (that is, parameters' values are no + * t zero), the application uses this bit to select the active interface is + * active, with Read-Write bit access. Note: USB 1.1 full-serial transceiv + * er is not supported. This bit always reads as 1'b0. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT 7 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK 0x00000080U +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT 7 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK 0x00000080U -/*Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select a unidirectional or bidirectional USB 1.1 - full-speed serial transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial interface. This bit is set to 0 with - ead Only access. - 1'b1: 3-pin bidirectional full-speed serial interface. This bit is set to 0 with Read Only access. Note: U - B 1.1 full-speed serial interface is not supported. This bit always reads as 1'b0.*/ +/* +* Suspend USB2.0 HS/FS/LS PHY (SusPHY) When set, USB2.0 PHY enters Suspend + * mode if Suspend conditions are valid. For DRD/OTG configurations, it is + * recommended that this bit is set to 0 during coreConsultant configurati + * on. If it is set to 1, then the application must clear this bit after po + * wer-on reset. Application needs to set it to 1 after the core initializa + * tion completes. For all other configurations, this bit can be set to 1 d + * uring core configuration. Note: - In host mode, on reset, this bit is se + * t to 1. Software can override this bit after reset. - In device mode, be + * fore issuing any device endpoint command when operating in 2.0 speeds, d + * isable this bit and enable it after the command completes. If you issue + * a command without disabling this bit when the device is in L2 state and + * if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get c + * ompleted. +*/ +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_DEFVAL +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_SHIFT +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_MASK +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_SHIFT 6 +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_MASK 0x00000040U + +/* +* Full-Speed Serial Interface Select (FSIntf) The application uses this bi + * t to select a unidirectional or bidirectional USB 1.1 full-speed serial + * transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial in + * terface. This bit is set to 0 with Read Only access. - 1'b1: 3-pin bidir + * ectional full-speed serial interface. This bit is set to 0 with Read Onl + * y access. Note: USB 1.1 full-speed serial interface is not supported. Th + * is bit always reads as 1'b0. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT 5 -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK 0x00000020U +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT 5 +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK 0x00000020U -/*ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interfa - e - 1'b1: ULPI Interface This bit is writable only if UTMI+ and ULPI is specified for High-Speed PHY Interface(s) in coreCons - ltant configuration (DWC_USB3_HSPHY_INTERFACE = 3). Otherwise, this bit is read-only and the value depends on the interface s - lected through DWC_USB3_HSPHY_INTERFACE.*/ +/* +* ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to se + * lect a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interface - 1'b1: ULPI Int + * erface This bit is writable only if UTMI+ and ULPI is specified for High + * -Speed PHY Interface(s) in coreConsultant configuration (DWC_USB3_HSPHY_ + * INTERFACE = 3). Otherwise, this bit is read-only and the value depends o + * n the interface selected through DWC_USB3_HSPHY_INTERFACE. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT 4 -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK 0x00000010U +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT 4 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK 0x00000010U -/*PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bit to configure the core to support a UTMI+ PHY with a - 8- or 16-bit interface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the enabled 2.0 ports must have the same - lock frequency as Port0 clock frequency (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used together for differen - ports at the same time (that is, all the ports must be in 8-bit mode, or all of them must be in 16-bit mode, at a time). - I - any of the USB 2.0 ports is selected as ULPI port for operation, then all the USB 2.0 ports must be operating at 60 MHz.*/ +/* +* PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bi + * t to configure the core to support a UTMI+ PHY with an 8- or 16-bit inte + * rface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the en + * abled 2.0 ports must have the same clock frequency as Port0 clock freque + * ncy (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used toge + * ther for different ports at the same time (that is, all the ports must b + * e in 8-bit mode, or all of them must be in 16-bit mode, at a time). - If + * any of the USB 2.0 ports is selected as ULPI port for operation, then a + * ll the USB 2.0 ports must be operating at 60 MHz. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT 3 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK 0x00000008U +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT 3 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK 0x00000008U -/*HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicated by the application in this field, is multiplied by - a bit-time factor; this factor is added to the high-speed/full-speed interpacket timeout duration in the core to account for - dditional delays introduced by the PHY. This may be required, since the delay introduced by the PHY in generating the linesta - e condition may vary among PHYs. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. - The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this - ield based on the speed of connection. The number of bit times added per PHY clock are: High-speed operation: - One 30-MHz PH - clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One - 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times*/ +/* +* HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicat + * ed by the application in this field, is multiplied by a bit-time factor; + * this factor is added to the high-speed/full-speed interpacket timeout d + * uration in the core to account for additional delays introduced by the P + * HY. This may be required, since the delay introduced by the PHY in gener + * ating the linestate condition may vary among PHYs. The USB standard time + * out value for high-speed operation is 736 to 816 (inclusive) bit times. + * The USB standard timeout value for full-speed operation is 16 to 18 (inc + * lusive) bit times. The application must program this field based on the + * speed of connection. The number of bit times added per PHY clock are: Hi + * gh-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz P + * HY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0. + * 4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY cloc + * k = 0.25 bit times +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT 0 -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK 0x00000007U +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT 0 +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK 0x00000007U -/*This field indicates the frame length adjustment to be applied when SOF/ITP counter is running on the ref_clk. This register - alue is used to adjust the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP interval when GLADJ.GFLADJ_REFCLK_LP - _SEL is set to '1'. This field must be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set to '1' or GCTL.SOF - TPSYNC is set to '1'. The value is derived as follows: FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_p - riod)) * ref_clk_period where - the ref_clk_period_integer is the integer value of the ref_clk period got by truncating the d - cimal (fractional) value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_clk_period is the ref_clk period inc - uding the fractional value. Examples: If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLADJ_REFCLK_FLADJ = - ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignoring the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_P - RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*20.8333 = 5208 (ignoring the fractional value)*/ +/* +* ULPI External VBUS Drive (ULPIExtVbusDrv) Selects supply source to drive + * 5V on VBUS, in the ULPI PHY. - 1'b0: PHY drives VBUS with internal char + * ge pump (default). - 1'b1: PHY drives VBUS with an external supply. (Onl + * y when RTL parameter DWC_USB3_HSPHY_INTERFACE = 2 or 3) +*/ +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_DEFVAL +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_SHIFT +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_MASK +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_SHIFT 17 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_MASK 0x00020000U + +/* +* This field indicates the frame length adjustment to be applied when SOF/ + * ITP counter is running on the ref_clk. This register value is used to ad + * just the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP i + * nterval when GLADJ.GFLADJ_REFCLK_LPM_SEL is set to '1'. This field must + * be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set t + * o '1' or GCTL.SOFITPSYNC is set to '1'. The value is derived as follows: + * FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_pe + * riod)) * ref_clk_period where - the ref_clk_period_integer is the intege + * r value of the ref_clk period got by truncating the decimal (fractional) + * value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_c + * lk_period is the ref_clk period including the fractional value. Examples + * : If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLA + * DJ_REFCLK_FLADJ = ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignorin + * g the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_PE + * RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*2 + * 0.8333 = 5208 (ignoring the fractional value) +*/ #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL 0x00000000 -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT 8 -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK 0x003FFF00U +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL 0x00000000 +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT 8 +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK 0x003FFF00U -/*If TRUE Completion Timeout Disable is supported. This is required to be TRUE for Endpoint and either setting allowed for Root - ports. Drives Device Capability 2 [4]; EP=0x0001; RP=0x0001*/ +/* +* When this bit is set to '0', termsel, xcvrsel will become 0 during end o + * f resume while the opmode will become 0 once controller completes end of + * resume and enters U0 state (2 separate commandswill be issued). When th + * is bit is set to '1', all the termsel, xcvrsel, opmode becomes 0 during + * end of resume itself (only 1 command will be issued) +*/ +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_DEFVAL +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_SHIFT +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_MASK +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_SHIFT 10 +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_MASK 0x00000400U + +/* +* Reserved +*/ +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_DEFVAL +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_SHIFT +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_MASK +#define USB3_0_XHCI_GUCTL1_RESERVED_9_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL1_RESERVED_9_SHIFT 9 +#define USB3_0_XHCI_GUCTL1_RESERVED_9_MASK 0x00000200U + +/* +* Host IN Auto Retry (USBHstInAutoRetryEn) When set, this field enables th + * e Auto Retry feature. For IN transfers (non-isochronous) that encounter + * data packets with CRC errors or internal overrun scenarios, the auto ret + * ry feature causes the Host core to reply to the device with a non-termin + * ating retry ACK (that is, an ACK transaction packet with Retry = 1 and N + * umP != 0). If the Auto Retry feature is disabled (default), the core wil + * l respond with a terminating retry ACK (that is, an ACK transaction pack + * et with Retry = 1 and NumP = 0). - 1'b0: Auto Retry Disabled - 1'b1: Aut + * o Retry Enabled Note: This bit is also applicable to the device mode. +*/ +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_DEFVAL +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_SHIFT +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_MASK +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_SHIFT 14 +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_MASK 0x00004000U + +/* +* If TRUE Completion Timeout Disable is supported. This is required to be + * TRUE for Endpoint and either setting allowed for Root ports. Drives Devi + * ce Capability 2 [4]; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT 9 -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT 9 +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK 0x00000200U -/*Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0x0004; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0x0004; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT 0 -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT 0 +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0xFFF0; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0xFFF0; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT 0 -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT 0 +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT 0 -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT 0 +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT 0 -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT 0 +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFFF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFFF +*/ #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT 0 -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT 0 +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0x00FF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0x00FF +*/ #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT 0 -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT 0 +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT 0 -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT 0 +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFFF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0xFFFF +*/ #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT 0 -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT 0 +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFF0*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFF0 +*/ #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT 0 -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT 0 +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0xFFF0*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0xFFF0 +*/ #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT 0 -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT 0 +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 +*/ #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT 0 -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT 0 +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 +*/ #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT 0 -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT 0 +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK 0x0000FFFFU -/*Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1- 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred - to the Device Capabilities register. The values: 4-2048 bytes, 5- 4096 bytes are not supported; EP=0x0001; RP=0x0001*/ +/* +* Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1 + * - 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred to the Device Capa + * bilities register. The values: 4-2048 bytes, 5- 4096 bytes are not suppo + * rted; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL 0x00002138 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT 8 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK 0x00000700U +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL 0x00002138 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT 8 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK 0x00000700U -/*Endpoint L1 Acceptable Latency. Records the latency that the endpoint can withstand on transitions from L1 state to L0 (if L1 - state supported). Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to 8us, 4h 8 to 16us, 5h 16 to 32us, 6 - 32 to 64us, 7h more than 64us. For Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000*/ +/* +* Endpoint L1 Acceptable Latency. Records the latency that the endpoint ca + * n withstand on transitions from L1 state to L0 (if L1 state supported). + * Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to + * 8us, 4h 8 to 16us, 5h 16 to 32us, 6h 32 to 64us, 7h more than 64us. For + * Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL 0x00002138 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT 3 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK 0x00000038U +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL 0x00002138 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT 3 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK 0x00000038U -/*Identifies the type of device/port as follows: 0000b PCI Express Endpoint device, 0001b Legacy PCI Express Endpoint device, 0 - 00b Root Port of PCI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110b Downstream Port of PCI Express Sw - tch, 0111b PCIE Express to PCI/PCI-X Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Express Capabilities r - gister. Must be consistent with IS_SWITCH and UPSTREAM_FACING settings.; EP=0x0000; RP=0x0004*/ +/* +* Identifies the type of device/port as follows: 0000b PCI Express Endpoin + * t device, 0001b Legacy PCI Express Endpoint device, 0100b Root Port of P + * CI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110 + * b Downstream Port of PCI Express Switch, 0111b PCIE Express to PCI/PCI-X + * Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Expre + * ss Capabilities register. Must be consistent with IS_SWITCH and UPSTREAM + * _FACING settings.; EP=0x0000; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL 0x00009C02 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT 4 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK 0x000000F0U +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL 0x00009C02 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT 4 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK 0x000000F0U -/*PCIe Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capab - lity.; EP=0x009C; RP=0x0000*/ +/* +* PCIe Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x009C; + * RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL 0x00009C02 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT 8 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK 0x0000FF00U +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL 0x00009C02 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT 8 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK 0x0000FF00U -/*Number of credits that should be advertised for Completion data received on Virtual Channel 0. The bytes advertised must be l - ss than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD*/ +/* +* Number of credits that should be advertised for Completion data received + * on Virtual Channel 0. The bytes advertised must be less than or equal t + * o the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD +*/ #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK 0x000007FFU -/*Number of credits that should be advertised for Completion headers received on Virtual Channel 0. The sum of the posted, non - osted, and completion header credits must be <= 80; EP=0x0048; RP=0x0024*/ +/* +* Number of credits that should be advertised for Completion headers recei + * ved on Virtual Channel 0. The sum of the posted, non posted, and complet + * ion header credits must be <= 80; EP=0x0048; RP=0x0024 +*/ #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL 0x00000248 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK 0x0000007FU +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL 0x00000248 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK 0x0000007FU -/*Number of credits that should be advertised for Non-Posted headers received on Virtual Channel 0. The number of non posted da - a credits advertised by the block is equal to the number of non posted header credits. The sum of the posted, non posted, and - completion header credits must be <= 80; EP=0x0004; RP=0x000C*/ +/* +* Number of credits that should be advertised for Non-Posted headers recei + * ved on Virtual Channel 0. The number of non posted data credits advertis + * ed by the block is equal to the number of non posted header credits. The + * sum of the posted, non posted, and completion header credits must be <= + * 80; EP=0x0004; RP=0x000C +*/ #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL 0x00000248 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT 7 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK 0x00003F80U +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL 0x00000248 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT 7 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK 0x00003F80U -/*Number of credits that should be advertised for Non-Posted data received on Virtual Channel 0. The number of non posted data - redits advertised by the block is equal to two times the number of non posted header credits if atomic operations are support - d or is equal to the number of non posted header credits if atomic operations are not supported. The bytes advertised must be - less than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018*/ +/* +* Number of credits that should be advertised for Non-Posted data received + * on Virtual Channel 0. The number of non posted data credits advertised + * by the block is equal to two times the number of non posted header credi + * ts if atomic operations are supported or is equal to the number of non p + * osted header credits if atomic operations are not supported. The bytes a + * dvertised must be less than or equal to the bram bytes available. See VC + * 0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 +*/ #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK 0x000007FFU -/*Number of credits that should be advertised for Posted data received on Virtual Channel 0. The bytes advertised must be less - han or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5*/ +/* +* Number of credits that should be advertised for Posted data received on + * Virtual Channel 0. The bytes advertised must be less than or equal to th + * e bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 +*/ #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK 0x000007FFU -/*Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x00 - 0*/ +/* +* Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_ + * n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT 15 -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK 0x00008000U +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT 15 +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK 0x00008000U -/*Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim TRUE == trim.; EP=0x0001; RP=0x0001*/ +/* +* Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim + * TRUE == trim.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT 14 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK 0x00004000U +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT 14 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK 0x00004000U -/*Enables ECRC check on received TLP's 0 == don't check 1 == always check 3 == check if enabled by ECRC check enable bit of AER - cap structure; EP=0x0003; RP=0x0003*/ +/* +* Enables ECRC check on received TLP's 0 == don't check 1 == always check + * 3 == check if enabled by ECRC check enable bit of AER cap structure; EP= + * 0x0003; RP=0x0003 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT 12 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK 0x00003000U +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT 12 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK 0x00003000U -/*Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). Calculated from max payload size supported and the n - mber of brams configured for transmit; EP=0x001C; RP=0x001C*/ +/* +* Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). + * Calculated from max payload size supported and the number of brams conf + * igured for transmit; EP=0x001C; RP=0x001C +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT 7 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK 0x00000F80U +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT 7 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK 0x00000F80U -/*Number of credits that should be advertised for Posted headers received on Virtual Channel 0. The sum of the posted, non post - d, and completion header credits must be <= 80; EP=0x0004; RP=0x0020*/ +/* +* Number of credits that should be advertised for Posted headers received + * on Virtual Channel 0. The sum of the posted, non posted, and completion + * header credits must be <= 80; EP=0x0004; RP=0x0020 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK 0x0000007FU +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK 0x0000007FU -/*Specifies values to be transferred to Header Type register. Bit 7 should be set to '0' indicating single-function device. Bit - 0 identifies header as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; RP=0x0001*/ +/* +* Specifies values to be transferred to Header Type register. Bit 7 should + * be set to '0' indicating single-function device. Bit 0 identifies heade + * r as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; + * RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL 0x00000100 -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL 0x00000100 +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK 0x000000FFU -/*PM Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabil - ty.; EP=0x0048; RP=0x0060*/ +/* +* PM Capability's Next Capability Offset pointer to the next item in the c + * apabilities list, or 00h if this is the final capability.; EP=0x0048; RP + * =0x0060 +*/ #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL 0x00003D48 -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT 0 -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL 0x00003D48 +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT 0 +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK 0x000000FFU -/*MSI Per-Vector Masking Capable. The value is transferred to the MSI Control Register[8]. When set, adds Mask and Pending Dwor - to Cap structure; EP=0x0000; RP=0x0000*/ +/* +* MSI Per-Vector Masking Capable. The value is transferred to the MSI Cont + * rol Register[8]. When set, adds Mask and Pending Dword to Cap structure; + * EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT 9 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT 9 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK 0x00000200U -/*Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U -/*MSI Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabi - ity.; EP=0x0060; RP=0x0000*/ +/* +* MSI Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x0060; R + * P=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT 0 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT 0 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK 0x000000FFU -/*Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U -/*Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b x4, 001000b x8.; EP=0x0004; RP=0x0004*/ +/* +* Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b + * x4, 001000b x8.; EP=0x0004; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL 0x00000104 -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK 0x0000003FU +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL 0x00000104 +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK 0x0000003FU -/*Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x00 - 4; RP=0x0004*/ +/* +* Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1 + * ], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x0004; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL 0x00000104 -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT 6 -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK 0x00000FC0U +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL 0x00000104 +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT 6 +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK 0x00000FC0U -/*TRUE specifies upstream-facing port. FALSE specifies downstream-facing port.; EP=0x0001; RP=0x0000*/ +/* +* TRUE specifies upstream-facing port. FALSE specifies downstream-facing p + * ort.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL 0x000000F0 -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT 6 -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK 0x00000040U +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL 0x000000F0 +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT 6 +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK 0x00000040U -/*Enable the routing of message TLPs to the user through the TRN RX interface. A bit value of 1 enables routing of the message - LP to the user. Messages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 - ERR NONFATAL, Bit 2 - ERR FATAL, - Bit 3 - INTA Bit 4 - INTB, Bit 5 - INTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit 10 PME_Turn_Off; - EP=0x0000; RP=0x07FF*/ +/* +* Enable the routing of message TLPs to the user through the TRN RX interf + * ace. A bit value of 1 enables routing of the message TLP to the user. Me + * ssages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 + * - ERR NONFATAL, Bit 2 - ERR FATAL, Bit 3 - INTA Bit 4 - INTB, Bit 5 - I + * NTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit + * 10 PME_Turn_Off; EP=0x0000; RP=0x07FF +*/ #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT 5 -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK 0x0000FFE0U +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT 5 +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK 0x0000FFE0U -/*Disable BAR filtering. Does not change the behavior of the bar hit outputs; EP=0x0000; RP=0x0001*/ +/* +* Disable BAR filtering. Does not change the behavior of the bar hit outpu + * ts; EP=0x0000; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT 1 -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK 0x00000002U +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT 1 +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK 0x00000002U -/*Link Bandwidth notification capability. Indicates support for the link bandwidth notification status and interrupt mechanism. - Required for Root.; EP=0x0000; RP=0x0001*/ +/* +* Link Bandwidth notification capability. Indicates support for the link b + * andwidth notification status and interrupt mechanism. Required for Root. + * ; EP=0x0000; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL 0x000009FF -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT 9 -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL 0x000009FF +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT 9 +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK 0x00000200U -/*Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Optionality ECN. Transferred to the Link Capabilities r - gister.; EP=0x0001; RP=0x0001*/ +/* +* Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Op + * tionality ECN. Transferred to the Link Capabilities register.; EP=0x0001 + * ; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL 0x000009FF -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT 14 -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK 0x00004000U +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL 0x000009FF +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT 14 +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK 0x00004000U -/*Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value (or combined with the built-in value, depending on L - _REPLAY_TIMEOUT_FUNC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000*/ +/* +* Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value + * (or combined with the built-in value, depending on LL_REPLAY_TIMEOUT_FU + * NC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT 15 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK 0x00008000U +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT 15 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK 0x00008000U -/*Sets a user-defined timeout for the Replay Timer to force cause the retransmission of unacknowledged TLPs; refer to LL_REPLAY - TIMEOUT_EN and LL_REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this attribute is in symbol times, which is - 4ns at GEN1 speeds and 2ns at GEN2.; EP=0x0000; RP=0x0000*/ +/* +* Sets a user-defined timeout for the Replay Timer to force cause the retr + * ansmission of unacknowledged TLPs; refer to LL_REPLAY_TIMEOUT_EN and LL_ + * REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this att + * ribute is in symbol times, which is 4ns at GEN1 speeds and 2ns at GEN2.; + * EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT 0 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK 0x00007FFFU +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT 0 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK 0x00007FFFU -/*Device ID for the the PCIe Cap Structure Device ID field*/ +/* +* Device ID for the the PCIe Cap Structure Device ID field +*/ #undef PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL #undef PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT #undef PCIE_ATTRIB_ID_CFG_DEV_ID_MASK -#define PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL 0x10EE7024 -#define PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT 0 -#define PCIE_ATTRIB_ID_CFG_DEV_ID_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL 0x10EE7024 +#define PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT 0 +#define PCIE_ATTRIB_ID_CFG_DEV_ID_MASK 0x0000FFFFU -/*Vendor ID for the PCIe Cap Structure Vendor ID field*/ +/* +* Vendor ID for the PCIe Cap Structure Vendor ID field +*/ #undef PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL #undef PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT #undef PCIE_ATTRIB_ID_CFG_VEND_ID_MASK -#define PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL 0x10EE7024 -#define PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT 16 -#define PCIE_ATTRIB_ID_CFG_VEND_ID_MASK 0xFFFF0000U +#define PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL 0x10EE7024 +#define PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT 16 +#define PCIE_ATTRIB_ID_CFG_VEND_ID_MASK 0xFFFF0000U -/*Subsystem ID for the the PCIe Cap Structure Subsystem ID field*/ +/* +* Subsystem ID for the the PCIe Cap Structure Subsystem ID field +*/ #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL 0x10EE0007 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT 0 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK 0x0000FFFFU +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL 0x10EE0007 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT 0 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK 0x0000FFFFU -/*Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field*/ +/* +* Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field +*/ #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL 0x10EE0007 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT 16 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK 0xFFFF0000U +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL 0x10EE0007 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT 16 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK 0xFFFF0000U -/*Revision ID for the the PCIe Cap Structure*/ +/* +* Revision ID for the the PCIe Cap Structure +*/ #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT 0 -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK 0x000000FFU +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT 0 +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK 0x000000FFU -/*Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 8000; RP=0x8000*/ +/* +* Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x8000; RP=0x8000 +*/ #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK 0x0000FFFFU -/*Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 0005; RP=0x0006*/ +/* +* Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x0005; RP=0x0006 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK 0x000000FFU -/*INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] to be hardwired to 0.; EP=0x0001; RP=0x0001*/ +/* +* INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] + * to be hardwired to 0.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT 8 -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT 8 +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK 0x00000100U -/*Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001*/ +/* +* Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U -/*Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001*/ +/* +* Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U -/*VSEC's Next Capability Offset pointer to the next item in the capabilities list, or 000h if this is the final capability.; EP - 0x0140; RP=0x0140*/ +/* +* VSEC's Next Capability Offset pointer to the next item in the capabiliti + * es list, or 000h if this is the final capability.; EP=0x0140; RP=0x0140 +*/ #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL 0x00002281 -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT 1 -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK 0x00001FFEU +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL 0x00002281 +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT 1 +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK 0x00001FFEU -/*CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the Root Capabilities register.; EP=0x0000; RP=0x0000*/ +/* +* CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the + * Root Capabilities register.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT 5 -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK 0x00000020U +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT 5 +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK 0x00000020U -/*Indicates that the MSIX structures exists. If this is FALSE, then the MSIX structure cannot be accessed via either the link o - the management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSIX structures exists. If this is FALSE, then the MS + * IX structure cannot be accessed via either the link or the management po + * rt.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL 0x00000100 -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL 0x00000100 +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK 0x00000100U -/*MSI-X Table Size. This value is transferred to the MSI-X Message Control[10:0] field. Set to 0 if MSI-X is not enabled. Note - hat the core does not implement the table; that must be implemented in user logic.; EP=0x0003; RP=0x0000*/ +/* +* MSI-X Table Size. This value is transferred to the MSI-X Message Control + * [10:0] field. Set to 0 if MSI-X is not enabled. Note that the core does + * not implement the table; that must be implemented in user logic.; EP=0x0 + * 003; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK 0x000007FFU -/*MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; - P=0x0000*/ +/* +* MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x0000FFFFU -/*MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0000; - P=0x0000*/ +/* +* MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x00001FFFU +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x00001FFFU -/*MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x0001; RP=0x0000*/ +/* +* MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFFFU -/*MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x1000; RP=0x0000*/ +/* +* MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x1000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL 0x00008000 -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 3 -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFF8U +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL 0x00008000 +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 3 +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFF8U -/*DT837748 Enable*/ +/* +* DT837748 Enable +*/ #undef PCIE_ATTRIB_CB_CB1_DEFVAL #undef PCIE_ATTRIB_CB_CB1_SHIFT #undef PCIE_ATTRIB_CB_CB1_MASK -#define PCIE_ATTRIB_CB_CB1_DEFVAL 0x00000001 -#define PCIE_ATTRIB_CB_CB1_SHIFT 1 -#define PCIE_ATTRIB_CB_CB1_MASK 0x00000002U +#define PCIE_ATTRIB_CB_CB1_DEFVAL 0x00000001 +#define PCIE_ATTRIB_CB_CB1_SHIFT 1 +#define PCIE_ATTRIB_CB_CB1_MASK 0x00000002U -/*Active State PM Support. Indicates the level of active state power management supported by the selected PCI Express Link, enc - ded as follows: 0 Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supported.; EP=0x0001; RP=0x0001*/ +/* +* Active State PM Support. Indicates the level of active state power manag + * ement supported by the selected PCI Express Link, encoded as follows: 0 + * Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supporte + * d.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL 0x00001FFD -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT 12 -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK 0x00003000U +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL 0x00001FFD +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT 12 +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK 0x00003000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*Status Read value of PLL Lock*/ +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U + +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU + +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L0_PLL_STATUS_READ_1_OFFSET 0XFD4023E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L1_PLL_STATUS_READ_1_OFFSET 0XFD4063E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L2_PLL_STATUS_READ_1_OFFSET 0XFD40A3E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L3_PLL_STATUS_READ_1_OFFSET 0XFD40E3E4 -/*CIBGMN: COMINIT Burst Gap Minimum.*/ +/* +* CIBGMN: COMINIT Burst Gap Minimum. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT 0 -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT 0 +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK 0x000000FFU -/*CIBGMX: COMINIT Burst Gap Maximum.*/ +/* +* CIBGMX: COMINIT Burst Gap Maximum. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT 8 -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT 8 +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK 0x0000FF00U -/*CIBGN: COMINIT Burst Gap Nominal.*/ +/* +* CIBGN: COMINIT Burst Gap Nominal. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGN_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT 16 -#define SATA_AHCI_VENDOR_PP2C_CIBGN_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT 16 +#define SATA_AHCI_VENDOR_PP2C_CIBGN_MASK 0x00FF0000U -/*CINMP: COMINIT Negate Minimum Period.*/ +/* +* CINMP: COMINIT Negate Minimum Period. +*/ #undef SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CINMP_MASK -#define SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT 24 -#define SATA_AHCI_VENDOR_PP2C_CINMP_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT 24 +#define SATA_AHCI_VENDOR_PP2C_CINMP_MASK 0xFF000000U -/*CWBGMN: COMWAKE Burst Gap Minimum.*/ +/* +* CWBGMN: COMWAKE Burst Gap Minimum. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT 0 -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT 0 +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK 0x000000FFU -/*CWBGMX: COMWAKE Burst Gap Maximum.*/ +/* +* CWBGMX: COMWAKE Burst Gap Maximum. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT 8 -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT 8 +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK 0x0000FF00U -/*CWBGN: COMWAKE Burst Gap Nominal.*/ +/* +* CWBGN: COMWAKE Burst Gap Nominal. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGN_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT 16 -#define SATA_AHCI_VENDOR_PP3C_CWBGN_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT 16 +#define SATA_AHCI_VENDOR_PP3C_CWBGN_MASK 0x00FF0000U -/*CWNMP: COMWAKE Negate Minimum Period.*/ +/* +* CWNMP: COMWAKE Negate Minimum Period. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWNMP_MASK -#define SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT 24 -#define SATA_AHCI_VENDOR_PP3C_CWNMP_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT 24 +#define SATA_AHCI_VENDOR_PP3C_CWNMP_MASK 0xFF000000U -/*BMX: COM Burst Maximum.*/ +/* +* BMX: COM Burst Maximum. +*/ #undef SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_BMX_SHIFT #undef SATA_AHCI_VENDOR_PP4C_BMX_MASK -#define SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_BMX_SHIFT 0 -#define SATA_AHCI_VENDOR_PP4C_BMX_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_BMX_SHIFT 0 +#define SATA_AHCI_VENDOR_PP4C_BMX_MASK 0x000000FFU -/*BNM: COM Burst Nominal.*/ +/* +* BNM: COM Burst Nominal. +*/ #undef SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_BNM_SHIFT #undef SATA_AHCI_VENDOR_PP4C_BNM_MASK -#define SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_BNM_SHIFT 8 -#define SATA_AHCI_VENDOR_PP4C_BNM_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_BNM_SHIFT 8 +#define SATA_AHCI_VENDOR_PP4C_BNM_MASK 0x0000FF00U -/*SFD: Signal Failure Detection, if the signal detection de-asserts for a time greater than this then the OOB detector will det - rmine this is a line idle and cause the PhyInit state machine to exit the Phy Ready State. A value of zero disables the Signa - Failure Detector. The value is based on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving a nominal time of - 500ns based on a 150MHz PMCLK.*/ +/* +* SFD: Signal Failure Detection, if the signal detection de-asserts for a + * time greater than this then the OOB detector will determine this is a li + * ne idle and cause the PhyInit state machine to exit the Phy Ready State. + * A value of zero disables the Signal Failure Detector. The value is base + * d on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving + * a nominal time of 500ns based on a 150MHz PMCLK. +*/ #undef SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_SFD_SHIFT #undef SATA_AHCI_VENDOR_PP4C_SFD_MASK -#define SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_SFD_SHIFT 16 -#define SATA_AHCI_VENDOR_PP4C_SFD_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_SFD_SHIFT 16 +#define SATA_AHCI_VENDOR_PP4C_SFD_MASK 0x00FF0000U -/*PTST: Partial to Slumber timer value, specific delay the controller should apply while in partial before entering slumber. Th - value is bases on the system clock divided by 128, total delay = (Sys Clock Period) * PTST * 128*/ +/* +* PTST: Partial to Slumber timer value, specific delay the controller shou + * ld apply while in partial before entering slumber. The value is bases on + * the system clock divided by 128, total delay = (Sys Clock Period) * PTS + * T * 128 +*/ #undef SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_PTST_SHIFT #undef SATA_AHCI_VENDOR_PP4C_PTST_MASK -#define SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_PTST_SHIFT 24 -#define SATA_AHCI_VENDOR_PP4C_PTST_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_PTST_SHIFT 24 +#define SATA_AHCI_VENDOR_PP4C_PTST_MASK 0xFF000000U -/*RIT: Retry Interval Timer. The calculated value divided by two, the lower digit of precision is not needed.*/ +/* +* RIT: Retry Interval Timer. The calculated value divided by two, the lowe + * r digit of precision is not needed. +*/ #undef SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL #undef SATA_AHCI_VENDOR_PP5C_RIT_SHIFT #undef SATA_AHCI_VENDOR_PP5C_RIT_MASK -#define SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL 0x3FFC96A4 -#define SATA_AHCI_VENDOR_PP5C_RIT_SHIFT 0 -#define SATA_AHCI_VENDOR_PP5C_RIT_MASK 0x000FFFFFU +#define SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL 0x3FFC96A4 +#define SATA_AHCI_VENDOR_PP5C_RIT_SHIFT 0 +#define SATA_AHCI_VENDOR_PP5C_RIT_MASK 0x000FFFFFU -/*RCT: Rate Change Timer, a value based on the 54.2us for which a SATA device will transmit at a fixed rate ALIGNp after OOB ha - completed, for a fast SERDES it is suggested that this value be 54.2us / 4*/ +/* +* RCT: Rate Change Timer, a value based on the 54.2us for which a SATA dev + * ice will transmit at a fixed rate ALIGNp after OOB has completed, for a + * fast SERDES it is suggested that this value be 54.2us / 4 +*/ #undef SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL #undef SATA_AHCI_VENDOR_PP5C_RCT_SHIFT #undef SATA_AHCI_VENDOR_PP5C_RCT_MASK -#define SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL 0x3FFC96A4 -#define SATA_AHCI_VENDOR_PP5C_RCT_SHIFT 20 -#define SATA_AHCI_VENDOR_PP5C_RCT_MASK 0xFFF00000U +#define SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL 0x3FFC96A4 +#define SATA_AHCI_VENDOR_PP5C_RCT_SHIFT 20 +#define SATA_AHCI_VENDOR_PP5C_RCT_MASK 0xFFF00000U #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET @@ -27671,123 +36135,252 @@ #undef CRF_APB_RST_FPD_TOP_OFFSET #define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 -/*USB 0 reset for control registers*/ +/* +* USB 0 reset for control registers +*/ #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U -/*USB 0 sleep circuit reset*/ +/* +* USB 0 sleep circuit reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U -/*USB 0 reset*/ +/* +* USB 0 reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U -/*GEM 3 reset*/ +/* +* GEM 3 reset +*/ #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1*/ +/* +* Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 +*/ #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU -/*Set to '1' to hold the GT in reset. Clear to release.*/ +/* +* Set to '1' to hold the GT in reset. Clear to release. +*/ #undef DP_DP_PHY_RESET_GT_RESET_DEFVAL #undef DP_DP_PHY_RESET_GT_RESET_SHIFT #undef DP_DP_PHY_RESET_GT_RESET_MASK -#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 -#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 -#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U +#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 +#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 +#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET #define PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET 0XFFD80118 #undef PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET #define PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET 0XFFD80120 -/*Power-up Request Interrupt Enable for PL*/ +/* +* Power-up Request Interrupt Enable for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK 0x00800000U -/*Power-up Request Trigger for PL*/ +/* +* Power-up Request Trigger for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK 0x00800000U -/*Power-up Request Status for PL*/ +/* +* Power-up Request Status for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK 0x00800000U #define PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET 0XFFD80110 +#undef CRF_APB_RST_FPD_TOP_OFFSET +#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef CRL_APB_RST_LPD_TOP_OFFSET +#define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C +#undef FPD_SLCR_AFI_FS_OFFSET +#define FPD_SLCR_AFI_FS_OFFSET 0XFD615000 + +/* +* AF_FM0 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_SHIFT 7 +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_MASK 0x00000080U + +/* +* AF_FM1 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_SHIFT 8 +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_MASK 0x00000100U + +/* +* AF_FM2 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_SHIFT 9 +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_MASK 0x00000200U + +/* +* AF_FM3 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_SHIFT 10 +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_MASK 0x00000400U + +/* +* AF_FM4 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_SHIFT 11 +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_MASK 0x00000800U + +/* +* AF_FM5 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_SHIFT 12 +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_MASK 0x00001000U + +/* +* AFI FM 6 +*/ +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_MASK +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_SHIFT 19 +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_MASK 0x00080000U + +/* +* Select the 32/64/128-bit data width selection for the Slave 0 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved +*/ +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_DEFVAL +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_SHIFT +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_MASK +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_DEFVAL 0x00000A00 +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_SHIFT 8 +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_MASK 0x00000300U + +/* +* Select the 32/64/128-bit data width selection for the Slave 1 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved +*/ +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_DEFVAL +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_SHIFT +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_MASK +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_DEFVAL 0x00000A00 +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_SHIFT 10 +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_MASK 0x00000C00U #undef GPIO_MASK_DATA_5_MSW_OFFSET #define GPIO_MASK_DATA_5_MSW_OFFSET 0XFF0A002C #undef GPIO_DIRM_5_OFFSET @@ -27801,53 +36394,65 @@ #undef GPIO_DATA_5_OFFSET #define GPIO_DATA_5_OFFSET 0XFF0A0054 -/*Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW]*/ +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL 0x00000000 -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT 16 -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK 0xFFFF0000U +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT 16 +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK 0xFFFF0000U -/*Operation is the same as DIRM_0[DIRECTION_0]*/ +/* +* Operation is the same as DIRM_0[DIRECTION_0] +*/ #undef GPIO_DIRM_5_DIRECTION_5_DEFVAL #undef GPIO_DIRM_5_DIRECTION_5_SHIFT #undef GPIO_DIRM_5_DIRECTION_5_MASK -#define GPIO_DIRM_5_DIRECTION_5_DEFVAL -#define GPIO_DIRM_5_DIRECTION_5_SHIFT 0 -#define GPIO_DIRM_5_DIRECTION_5_MASK 0xFFFFFFFFU +#define GPIO_DIRM_5_DIRECTION_5_DEFVAL +#define GPIO_DIRM_5_DIRECTION_5_SHIFT 0 +#define GPIO_DIRM_5_DIRECTION_5_MASK 0xFFFFFFFFU -/*Operation is the same as OEN_0[OP_ENABLE_0]*/ +/* +* Operation is the same as OEN_0[OP_ENABLE_0] +*/ #undef GPIO_OEN_5_OP_ENABLE_5_DEFVAL #undef GPIO_OEN_5_OP_ENABLE_5_SHIFT #undef GPIO_OEN_5_OP_ENABLE_5_MASK -#define GPIO_OEN_5_OP_ENABLE_5_DEFVAL -#define GPIO_OEN_5_OP_ENABLE_5_SHIFT 0 -#define GPIO_OEN_5_OP_ENABLE_5_MASK 0xFFFFFFFFU +#define GPIO_OEN_5_OP_ENABLE_5_DEFVAL +#define GPIO_OEN_5_OP_ENABLE_5_SHIFT 0 +#define GPIO_OEN_5_OP_ENABLE_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU #ifdef __cplusplus extern "C" { #endif @@ -27860,6 +36465,7 @@ extern "C" { int psu_ddr_protection(); int psu_lpd_protection(); int psu_protection_lock(); + unsigned long psu_ddr_qos_init_data(void); unsigned long psu_apply_master_tz(); #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.tcl b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.tcl index b6d9c0418..bcdd9de80 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.tcl +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.tcl @@ -11,7 +11,7 @@ set psu_pll_init_data { # Register : RPLL_CFG @ 0XFF5E0034

# PLL loop filter resistor control - # PSU_CRL_APB_RPLL_CFG_RES 0x2 + # PSU_CRL_APB_RPLL_CFG_RES 0xc # PLL charge pump control # PSU_CRL_APB_RPLL_CFG_CP 0x3 @@ -20,35 +20,39 @@ set psu_pll_init_data { # PSU_CRL_APB_RPLL_CFG_LFHF 0x3 # Lock circuit counter setting - # PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x258 + # PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x339 # Lock circuit configuration settings for lock windowsize # PSU_CRL_APB_RPLL_CFG_LOCK_DLY 0x3f # Helper data. Values are to be looked up in a table from Data Sheet - #(OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E4B0C62U) */ - mask_write 0XFF5E0034 0xFE7FEDEF 0x7E4B0C62 + #(OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E672C6CU) */ + mask_write 0XFF5E0034 0xFE7FEDEF 0x7E672C6C # : UPDATE FB_DIV # Register : RPLL_CTRL @ 0XFF5E0030

- # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - # ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + # s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + # ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source # PSU_CRL_APB_RPLL_CTRL_PRE_SRC 0x0 # The integer portion of the feedback divider to the PLL - # PSU_CRL_APB_RPLL_CTRL_FBDIV 0x48 + # PSU_CRL_APB_RPLL_CTRL_FBDIV 0x2d - # This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency + # This turns on the divide by 2 that is inside of the PLL. This does not c + # hange the VCO frequency, just the output frequency # PSU_CRL_APB_RPLL_CTRL_DIV2 0x1 # PLL Basic Control - #(OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00014800U) */ - mask_write 0XFF5E0030 0x00717F00 0x00014800 + #(OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00012D00U) */ + mask_write 0XFF5E0030 0x00717F00 0x00012D00 # : BY PASS PLL # Register : RPLL_CTRL @ 0XFF5E0030

- # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRL_APB_RPLL_CTRL_BYPASS 1 # PLL Basic Control @@ -57,7 +61,8 @@ set psu_pll_init_data { # : ASSERT RESET # Register : RPLL_CTRL @ 0XFF5E0030

- # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRL_APB_RPLL_CTRL_RESET 1 # PLL Basic Control @@ -66,7 +71,8 @@ set psu_pll_init_data { # : DEASSERT RESET # Register : RPLL_CTRL @ 0XFF5E0030

- # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRL_APB_RPLL_CTRL_RESET 0 # PLL Basic Control @@ -81,8 +87,10 @@ set psu_pll_init_data { # : REMOVE PLL BY PASS # Register : RPLL_CTRL @ 0XFF5E0030

- # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRL_APB_RPLL_CTRL_BYPASS 0 # PLL Basic Control @@ -91,66 +99,59 @@ set psu_pll_init_data { # Register : RPLL_TO_FPD_CTRL @ 0XFF5E0048

# Divisor value for this clock. - # PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x3 + # PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x2 - # Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. - #(OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000300U) */ - mask_write 0XFF5E0048 0x00003F00 0x00000300 + # Control for a clock that will be generated in the LPD, but used in the F + # PD as a clock source for the peripheral clock muxes. + #(OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000200U) */ + mask_write 0XFF5E0048 0x00003F00 0x00000200 # : RPLL FRAC CFG - # Register : RPLL_FRAC_CFG @ 0XFF5E0038

- - # Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - # mode and uses DATA of this register for the fractional portion of the feedback divider. - # PSU_CRL_APB_RPLL_FRAC_CFG_ENABLED 0x0 - - # Fractional value for the Feedback value. - # PSU_CRL_APB_RPLL_FRAC_CFG_DATA 0x0 - - # Fractional control for the PLL - #(OFFSET, MASK, VALUE) (0XFF5E0038, 0x8000FFFFU ,0x00000000U) */ - mask_write 0XFF5E0038 0x8000FFFF 0x00000000 # : IOPLL INIT # Register : IOPLL_CFG @ 0XFF5E0024

# PLL loop filter resistor control - # PSU_CRL_APB_IOPLL_CFG_RES 0xc + # PSU_CRL_APB_IOPLL_CFG_RES 0x2 # PLL charge pump control - # PSU_CRL_APB_IOPLL_CFG_CP 0x3 + # PSU_CRL_APB_IOPLL_CFG_CP 0x4 # PLL loop filter high frequency capacitor control # PSU_CRL_APB_IOPLL_CFG_LFHF 0x3 # Lock circuit counter setting - # PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x339 + # PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x258 # Lock circuit configuration settings for lock windowsize # PSU_CRL_APB_IOPLL_CFG_LOCK_DLY 0x3f # Helper data. Values are to be looked up in a table from Data Sheet - #(OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E672C6CU) */ - mask_write 0XFF5E0024 0xFE7FEDEF 0x7E672C6C + #(OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E4B0C82U) */ + mask_write 0XFF5E0024 0xFE7FEDEF 0x7E4B0C82 # : UPDATE FB_DIV # Register : IOPLL_CTRL @ 0XFF5E0020

- # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - # ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + # s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + # ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source # PSU_CRL_APB_IOPLL_CTRL_PRE_SRC 0x0 # The integer portion of the feedback divider to the PLL - # PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x2d + # PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x5a - # This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - # PSU_CRL_APB_IOPLL_CTRL_DIV2 0x0 + # This turns on the divide by 2 that is inside of the PLL. This does not c + # hange the VCO frequency, just the output frequency + # PSU_CRL_APB_IOPLL_CTRL_DIV2 0x1 # PLL Basic Control - #(OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00002D00U) */ - mask_write 0XFF5E0020 0x00717F00 0x00002D00 + #(OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00015A00U) */ + mask_write 0XFF5E0020 0x00717F00 0x00015A00 # : BY PASS PLL # Register : IOPLL_CTRL @ 0XFF5E0020

- # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRL_APB_IOPLL_CTRL_BYPASS 1 # PLL Basic Control @@ -159,7 +160,8 @@ set psu_pll_init_data { # : ASSERT RESET # Register : IOPLL_CTRL @ 0XFF5E0020

- # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRL_APB_IOPLL_CTRL_RESET 1 # PLL Basic Control @@ -168,7 +170,8 @@ set psu_pll_init_data { # : DEASSERT RESET # Register : IOPLL_CTRL @ 0XFF5E0020

- # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRL_APB_IOPLL_CTRL_RESET 0 # PLL Basic Control @@ -183,8 +186,10 @@ set psu_pll_init_data { # : REMOVE PLL BY PASS # Register : IOPLL_CTRL @ 0XFF5E0020

- # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRL_APB_IOPLL_CTRL_BYPASS 0 # PLL Basic Control @@ -195,22 +200,11 @@ set psu_pll_init_data { # Divisor value for this clock. # PSU_CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0 0x3 - # Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. + # Control for a clock that will be generated in the LPD, but used in the F + # PD as a clock source for the peripheral clock muxes. #(OFFSET, MASK, VALUE) (0XFF5E0044, 0x00003F00U ,0x00000300U) */ mask_write 0XFF5E0044 0x00003F00 0x00000300 # : IOPLL FRAC CFG - # Register : IOPLL_FRAC_CFG @ 0XFF5E0028

- - # Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - # mode and uses DATA of this register for the fractional portion of the feedback divider. - # PSU_CRL_APB_IOPLL_FRAC_CFG_ENABLED 0x0 - - # Fractional value for the Feedback value. - # PSU_CRL_APB_IOPLL_FRAC_CFG_DATA 0x0 - - # Fractional control for the PLL - #(OFFSET, MASK, VALUE) (0XFF5E0028, 0x8000FFFFU ,0x00000000U) */ - mask_write 0XFF5E0028 0x8000FFFF 0x00000000 # : APU_PLL INIT # Register : APLL_CFG @ 0XFD1A0024

@@ -235,24 +229,28 @@ set psu_pll_init_data { # : UPDATE FB_DIV # Register : APLL_CTRL @ 0XFD1A0020

- # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - # ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + # s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + # ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source # PSU_CRF_APB_APLL_CTRL_PRE_SRC 0x0 # The integer portion of the feedback divider to the PLL - # PSU_CRF_APB_APLL_CTRL_FBDIV 0x42 + # PSU_CRF_APB_APLL_CTRL_FBDIV 0x48 - # This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency + # This turns on the divide by 2 that is inside of the PLL. This does not c + # hange the VCO frequency, just the output frequency # PSU_CRF_APB_APLL_CTRL_DIV2 0x1 # PLL Basic Control - #(OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014200U) */ - mask_write 0XFD1A0020 0x00717F00 0x00014200 + #(OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014800U) */ + mask_write 0XFD1A0020 0x00717F00 0x00014800 # : BY PASS PLL # Register : APLL_CTRL @ 0XFD1A0020

- # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_APLL_CTRL_BYPASS 1 # PLL Basic Control @@ -261,7 +259,8 @@ set psu_pll_init_data { # : ASSERT RESET # Register : APLL_CTRL @ 0XFD1A0020

- # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_APLL_CTRL_RESET 1 # PLL Basic Control @@ -270,7 +269,8 @@ set psu_pll_init_data { # : DEASSERT RESET # Register : APLL_CTRL @ 0XFD1A0020

- # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_APLL_CTRL_RESET 0 # PLL Basic Control @@ -285,8 +285,10 @@ set psu_pll_init_data { # : REMOVE PLL BY PASS # Register : APLL_CTRL @ 0XFD1A0020

- # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_APLL_CTRL_BYPASS 0 # PLL Basic Control @@ -297,22 +299,11 @@ set psu_pll_init_data { # Divisor value for this clock. # PSU_CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0 0x3 - # Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. + # Control for a clock that will be generated in the FPD, but used in the L + # PD as a clock source for the peripheral clock muxes. #(OFFSET, MASK, VALUE) (0XFD1A0048, 0x00003F00U ,0x00000300U) */ mask_write 0XFD1A0048 0x00003F00 0x00000300 # : APLL FRAC CFG - # Register : APLL_FRAC_CFG @ 0XFD1A0028

- - # Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - # mode and uses DATA of this register for the fractional portion of the feedback divider. - # PSU_CRF_APB_APLL_FRAC_CFG_ENABLED 0x0 - - # Fractional value for the Feedback value. - # PSU_CRF_APB_APLL_FRAC_CFG_DATA 0x0 - - # Fractional control for the PLL - #(OFFSET, MASK, VALUE) (0XFD1A0028, 0x8000FFFFU ,0x00000000U) */ - mask_write 0XFD1A0028 0x8000FFFF 0x00000000 # : DDR_PLL INIT # Register : DPLL_CFG @ 0XFD1A0030

@@ -337,14 +328,16 @@ set psu_pll_init_data { # : UPDATE FB_DIV # Register : DPLL_CTRL @ 0XFD1A002C

- # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - # ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + # s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + # ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source # PSU_CRF_APB_DPLL_CTRL_PRE_SRC 0x0 # The integer portion of the feedback divider to the PLL # PSU_CRF_APB_DPLL_CTRL_FBDIV 0x40 - # This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency + # This turns on the divide by 2 that is inside of the PLL. This does not c + # hange the VCO frequency, just the output frequency # PSU_CRF_APB_DPLL_CTRL_DIV2 0x1 # PLL Basic Control @@ -353,8 +346,10 @@ set psu_pll_init_data { # : BY PASS PLL # Register : DPLL_CTRL @ 0XFD1A002C

- # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_DPLL_CTRL_BYPASS 1 # PLL Basic Control @@ -363,7 +358,8 @@ set psu_pll_init_data { # : ASSERT RESET # Register : DPLL_CTRL @ 0XFD1A002C

- # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_DPLL_CTRL_RESET 1 # PLL Basic Control @@ -372,7 +368,8 @@ set psu_pll_init_data { # : DEASSERT RESET # Register : DPLL_CTRL @ 0XFD1A002C

- # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_DPLL_CTRL_RESET 0 # PLL Basic Control @@ -387,8 +384,10 @@ set psu_pll_init_data { # : REMOVE PLL BY PASS # Register : DPLL_CTRL @ 0XFD1A002C

- # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_DPLL_CTRL_BYPASS 0 # PLL Basic Control @@ -397,24 +396,13 @@ set psu_pll_init_data { # Register : DPLL_TO_LPD_CTRL @ 0XFD1A004C

# Divisor value for this clock. - # PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x3 + # PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x2 - # Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - #(OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000300U) */ - mask_write 0XFD1A004C 0x00003F00 0x00000300 + # Control for a clock that will be generated in the FPD, but used in the L + # PD as a clock source for the peripheral clock muxes. + #(OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000200U) */ + mask_write 0XFD1A004C 0x00003F00 0x00000200 # : DPLL FRAC CFG - # Register : DPLL_FRAC_CFG @ 0XFD1A0034

- - # Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - # mode and uses DATA of this register for the fractional portion of the feedback divider. - # PSU_CRF_APB_DPLL_FRAC_CFG_ENABLED 0x0 - - # Fractional value for the Feedback value. - # PSU_CRF_APB_DPLL_FRAC_CFG_DATA 0x0 - - # Fractional control for the PLL - #(OFFSET, MASK, VALUE) (0XFD1A0034, 0x8000FFFFU ,0x00000000U) */ - mask_write 0XFD1A0034 0x8000FFFF 0x00000000 # : VIDEO_PLL INIT # Register : VPLL_CFG @ 0XFD1A003C

@@ -422,41 +410,45 @@ set psu_pll_init_data { # PSU_CRF_APB_VPLL_CFG_RES 0x2 # PLL charge pump control - # PSU_CRF_APB_VPLL_CFG_CP 0x3 + # PSU_CRF_APB_VPLL_CFG_CP 0x4 # PLL loop filter high frequency capacitor control # PSU_CRF_APB_VPLL_CFG_LFHF 0x3 # Lock circuit counter setting - # PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x28a + # PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x258 # Lock circuit configuration settings for lock windowsize # PSU_CRF_APB_VPLL_CFG_LOCK_DLY 0x3f # Helper data. Values are to be looked up in a table from Data Sheet - #(OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E514C62U) */ - mask_write 0XFD1A003C 0xFE7FEDEF 0x7E514C62 + #(OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E4B0C82U) */ + mask_write 0XFD1A003C 0xFE7FEDEF 0x7E4B0C82 # : UPDATE FB_DIV # Register : VPLL_CTRL @ 0XFD1A0038

- # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - # ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + # s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + # ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source # PSU_CRF_APB_VPLL_CTRL_PRE_SRC 0x0 # The integer portion of the feedback divider to the PLL - # PSU_CRF_APB_VPLL_CTRL_FBDIV 0x39 + # PSU_CRF_APB_VPLL_CTRL_FBDIV 0x5a - # This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency + # This turns on the divide by 2 that is inside of the PLL. This does not c + # hange the VCO frequency, just the output frequency # PSU_CRF_APB_VPLL_CTRL_DIV2 0x1 # PLL Basic Control - #(OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00013900U) */ - mask_write 0XFD1A0038 0x00717F00 0x00013900 + #(OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00015A00U) */ + mask_write 0XFD1A0038 0x00717F00 0x00015A00 # : BY PASS PLL # Register : VPLL_CTRL @ 0XFD1A0038

- # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_VPLL_CTRL_BYPASS 1 # PLL Basic Control @@ -465,7 +457,8 @@ set psu_pll_init_data { # : ASSERT RESET # Register : VPLL_CTRL @ 0XFD1A0038

- # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_VPLL_CTRL_RESET 1 # PLL Basic Control @@ -474,7 +467,8 @@ set psu_pll_init_data { # : DEASSERT RESET # Register : VPLL_CTRL @ 0XFD1A0038

- # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_VPLL_CTRL_RESET 0 # PLL Basic Control @@ -489,8 +483,10 @@ set psu_pll_init_data { # : REMOVE PLL BY PASS # Register : VPLL_CTRL @ 0XFD1A0038

- # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_VPLL_CTRL_BYPASS 0 # PLL Basic Control @@ -501,22 +497,11 @@ set psu_pll_init_data { # Divisor value for this clock. # PSU_CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0 0x3 - # Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. + # Control for a clock that will be generated in the FPD, but used in the L + # PD as a clock source for the peripheral clock muxes. #(OFFSET, MASK, VALUE) (0XFD1A0050, 0x00003F00U ,0x00000300U) */ mask_write 0XFD1A0050 0x00003F00 0x00000300 # : VIDEO FRAC CFG - # Register : VPLL_FRAC_CFG @ 0XFD1A0040

- - # Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - # mode and uses DATA of this register for the fractional portion of the feedback divider. - # PSU_CRF_APB_VPLL_FRAC_CFG_ENABLED 0x1 - - # Fractional value for the Feedback value. - # PSU_CRF_APB_VPLL_FRAC_CFG_DATA 0x820c - - # Fractional control for the PLL - #(OFFSET, MASK, VALUE) (0XFD1A0040, 0x8000FFFFU ,0x8000820CU) */ - mask_write 0XFD1A0040 0x8000FFFF 0x8000820C } set psu_clock_init_data { @@ -535,13 +520,33 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR0 0xc - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_GEM3_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock #(OFFSET, MASK, VALUE) (0XFF5E005C, 0x063F3F07U ,0x06010C00U) */ mask_write 0XFF5E005C 0x063F3F07 0x06010C00 + # Register : GEM_TSU_REF_CTRL @ 0XFF5E0100

+ + # 6 bit divider + # PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0 0x6 + + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) + # PSU_CRL_APB_GEM_TSU_REF_CTRL_SRCSEL 0x0 + + # 6 bit divider + # PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1 0x1 + + # Clock active signal. Switch to 0 to disable the clock + # PSU_CRL_APB_GEM_TSU_REF_CTRL_CLKACT 0x1 + + # This register controls this reference clock + #(OFFSET, MASK, VALUE) (0XFF5E0100, 0x013F3F07U ,0x01010600U) */ + mask_write 0XFF5E0100 0x013F3F07 0x01010600 # Register : USB0_BUS_REF_CTRL @ 0XFF5E0060

# Clock active signal. Switch to 0 to disable the clock @@ -553,8 +558,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0 0x6 - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_USB0_BUS_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -566,18 +572,19 @@ set psu_clock_init_data { # PSU_CRL_APB_USB3_DUAL_REF_CTRL_CLKACT 0x1 # 6 bit divider - # PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0xf + # PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0x3 # 6 bit divider - # PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x5 + # PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x19 - # 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x020F0500U) */ - mask_write 0XFF5E004C 0x023F3F07 0x020F0500 + #(OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x02031900U) */ + mask_write 0XFF5E004C 0x023F3F07 0x02031900 # Register : QSPI_REF_CTRL @ 0XFF5E0068

# Clock active signal. Switch to 0 to disable the clock @@ -589,8 +596,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR0 0xc - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_QSPI_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -605,18 +613,20 @@ set psu_clock_init_data { # PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR1 0x1 # 6 bit divider - # PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x6 + # PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x8 - # 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) - # PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x2 + # 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) + # PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010602U) */ - mask_write 0XFF5E0070 0x013F3F07 0x01010602 + #(OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010800U) */ + mask_write 0XFF5E0070 0x013F3F07 0x01010800 # Register : SDIO_CLK_CTRL @ 0XFF18030C

- # MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO [51] 1: MIO [76] + # MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO + # [51] 1: MIO [76] # PSU_IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL 0 # SoC Debug Clock Control @@ -633,8 +643,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_UART0_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_UART0_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -651,8 +662,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_UART1_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_UART1_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -669,8 +681,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_I2C0_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -687,8 +700,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_I2C1_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -705,8 +719,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_CAN1_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -714,15 +729,17 @@ set psu_clock_init_data { mask_write 0XFF5E0088 0x013F3F07 0x01010F00 # Register : CPU_R5_CTRL @ 0XFF5E0090

- # Turing this off will shut down the OCM, some parts of the APM, and prevent transactions going from the FPD to the LPD and cou - # d lead to system hang + # Turing this off will shut down the OCM, some parts of the APM, and preve + # nt transactions going from the FPD to the LPD and could lead to system h + # ang # PSU_CRL_APB_CPU_R5_CTRL_CLKACT 0x1 # 6 bit divider # PSU_CRL_APB_CPU_R5_CTRL_DIVISOR0 0x3 - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_CPU_R5_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -736,8 +753,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_IOU_SWITCH_CTRL_DIVISOR0 0x6 - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_IOU_SWITCH_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -749,15 +767,16 @@ set psu_clock_init_data { # PSU_CRL_APB_PCAP_CTRL_CLKACT 0x1 # 6 bit divider - # PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x6 + # PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x8 - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) - # PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x2 + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) + # PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x0 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000602U) */ - mask_write 0XFF5E00A4 0x01003F07 0x01000602 + #(OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000800U) */ + mask_write 0XFF5E00A4 0x01003F07 0x01000800 # Register : LPD_SWITCH_CTRL @ 0XFF5E00A8

# Clock active signal. Switch to 0 to disable the clock @@ -766,8 +785,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_LPD_SWITCH_CTRL_DIVISOR0 0x3 - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_LPD_SWITCH_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -781,8 +801,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_LPD_LSBUS_CTRL_DIVISOR0 0xf - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_LPD_LSBUS_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -796,8 +817,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_DBG_LPD_CTRL_DIVISOR0 0x6 - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_DBG_LPD_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -811,8 +833,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_ADMA_REF_CTRL_DIVISOR0 0x3 - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_ADMA_REF_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -829,89 +852,38 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_PL0_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_PL0_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock #(OFFSET, MASK, VALUE) (0XFF5E00C0, 0x013F3F07U ,0x01010F00U) */ mask_write 0XFF5E00C0 0x013F3F07 0x01010F00 - # Register : PL1_REF_CTRL @ 0XFF5E00C4

- - # Clock active signal. Switch to 0 to disable the clock - # PSU_CRL_APB_PL1_REF_CTRL_CLKACT 0x1 - - # 6 bit divider - # PSU_CRL_APB_PL1_REF_CTRL_DIVISOR1 0x4 - - # 6 bit divider - # PSU_CRL_APB_PL1_REF_CTRL_DIVISOR0 0xf - - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) - # PSU_CRL_APB_PL1_REF_CTRL_SRCSEL 0x0 - - # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E00C4, 0x013F3F07U ,0x01040F00U) */ - mask_write 0XFF5E00C4 0x013F3F07 0x01040F00 - # Register : PL2_REF_CTRL @ 0XFF5E00C8

- - # Clock active signal. Switch to 0 to disable the clock - # PSU_CRL_APB_PL2_REF_CTRL_CLKACT 0x1 - - # 6 bit divider - # PSU_CRL_APB_PL2_REF_CTRL_DIVISOR1 0x1 - - # 6 bit divider - # PSU_CRL_APB_PL2_REF_CTRL_DIVISOR0 0x4 - - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) - # PSU_CRL_APB_PL2_REF_CTRL_SRCSEL 0x2 - - # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E00C8, 0x013F3F07U ,0x01010402U) */ - mask_write 0XFF5E00C8 0x013F3F07 0x01010402 - # Register : PL3_REF_CTRL @ 0XFF5E00CC

- - # Clock active signal. Switch to 0 to disable the clock - # PSU_CRL_APB_PL3_REF_CTRL_CLKACT 0x1 - - # 6 bit divider - # PSU_CRL_APB_PL3_REF_CTRL_DIVISOR1 0x1 - - # 6 bit divider - # PSU_CRL_APB_PL3_REF_CTRL_DIVISOR0 0x3 - - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) - # PSU_CRL_APB_PL3_REF_CTRL_SRCSEL 0x2 - - # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E00CC, 0x013F3F07U ,0x01010302U) */ - mask_write 0XFF5E00CC 0x013F3F07 0x01010302 # Register : AMS_REF_CTRL @ 0XFF5E0108

# 6 bit divider # PSU_CRL_APB_AMS_REF_CTRL_DIVISOR1 0x1 # 6 bit divider - # PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1d + # PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1e - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_AMS_REF_CTRL_SRCSEL 0x2 # Clock active signal. Switch to 0 to disable the clock # PSU_CRL_APB_AMS_REF_CTRL_CLKACT 0x1 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011D02U) */ - mask_write 0XFF5E0108 0x013F3F07 0x01011D02 + #(OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011E02U) */ + mask_write 0XFF5E0108 0x013F3F07 0x01011E02 # Register : DLL_REF_CTRL @ 0XFF5E0104

- # 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - # is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles + # of the old clock and 4 cycles of the new clock. This is not usually an + # issue, but designers must be aware.) # PSU_CRL_APB_DLL_REF_CTRL_SRCSEL 0 # This register controls this reference clock @@ -922,8 +894,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0 0xf - # 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and - # cycles of the new clock. This is not usually an issue, but designers must be aware.) + # 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may + # only be toggled after 4 cycles of the old clock and 4 cycles of the new + # clock. This is not usually an issue, but designers must be aware.) # PSU_CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -934,8 +907,9 @@ set psu_clock_init_data { mask_write 0XFF5E0128 0x01003F07 0x01000F00 # Register : SATA_REF_CTRL @ 0XFD1A00A0

- # 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be tog + # gled after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_SATA_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -949,8 +923,9 @@ set psu_clock_init_data { mask_write 0XFD1A00A0 0x01003F07 0x01000200 # Register : PCIE_REF_CTRL @ 0XFD1A00B4

- # 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cyc - # es of the new clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only + # be toggled after 4 cycles of the old clock and 4 cycles of the new cloc + # k. This is not usually an issue, but designers must be aware.) # PSU_CRF_APB_PCIE_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -968,95 +943,88 @@ set psu_clock_init_data { # PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1 0x1 # 6 bit divider - # PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x3 + # PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x5 - # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - # ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - # PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x3 + # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + # his signal may only be toggled after 4 cycles of the old clock and 4 cyc + # les of the new clock. This is not usually an issue, but designers must b + # e aware.) + # PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock # PSU_CRF_APB_DP_VIDEO_REF_CTRL_CLKACT 0x1 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010303U) */ - mask_write 0XFD1A0070 0x013F3F07 0x01010303 + #(OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010500U) */ + mask_write 0XFD1A0070 0x013F3F07 0x01010500 # Register : DP_AUDIO_REF_CTRL @ 0XFD1A0074

# 6 bit divider # PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1 0x1 # 6 bit divider - # PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0x27 + # PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0xf - # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - # ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - # PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x0 + # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + # his signal may only be toggled after 4 cycles of the old clock and 4 cyc + # les of the new clock. This is not usually an issue, but designers must b + # e aware.) + # PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x3 # Clock active signal. Switch to 0 to disable the clock # PSU_CRF_APB_DP_AUDIO_REF_CTRL_CLKACT 0x1 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01012700U) */ - mask_write 0XFD1A0074 0x013F3F07 0x01012700 + #(OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01010F03U) */ + mask_write 0XFD1A0074 0x013F3F07 0x01010F03 # Register : DP_STC_REF_CTRL @ 0XFD1A007C

# 6 bit divider # PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR1 0x1 # 6 bit divider - # PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0x11 + # PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0xe - # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of t - # e new clock. This is not usually an issue, but designers must be aware.) + # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be togg + # led after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_DP_STC_REF_CTRL_SRCSEL 0x3 # Clock active signal. Switch to 0 to disable the clock # PSU_CRF_APB_DP_STC_REF_CTRL_CLKACT 0x1 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01011103U) */ - mask_write 0XFD1A007C 0x013F3F07 0x01011103 + #(OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01010E03U) */ + mask_write 0XFD1A007C 0x013F3F07 0x01010E03 # Register : ACPU_CTRL @ 0XFD1A0060

# 6 bit divider # PSU_CRF_APB_ACPU_CTRL_DIVISOR0 0x1 - # 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # lock. This is not usually an issue, but designers must be aware.) + # 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled aft + # er 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRF_APB_ACPU_CTRL_SRCSEL 0x0 - # Clock active signal. Switch to 0 to disable the clock. For the half speed APU Clock + # Clock active signal. Switch to 0 to disable the clock. For the half spee + # d APU Clock # PSU_CRF_APB_ACPU_CTRL_CLKACT_HALF 0x1 - # Clock active signal. Switch to 0 to disable the clock. For the full speed ACPUX Clock. This will shut off the high speed cloc - # to the entire APU + # Clock active signal. Switch to 0 to disable the clock. For the full spee + # d ACPUX Clock. This will shut off the high speed clock to the entire APU # PSU_CRF_APB_ACPU_CTRL_CLKACT_FULL 0x1 # This register controls this reference clock #(OFFSET, MASK, VALUE) (0XFD1A0060, 0x03003F07U ,0x03000100U) */ mask_write 0XFD1A0060 0x03003F07 0x03000100 - # Register : DBG_TRACE_CTRL @ 0XFD1A0064

- - # 6 bit divider - # PSU_CRF_APB_DBG_TRACE_CTRL_DIVISOR0 0x2 - - # 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) - # PSU_CRF_APB_DBG_TRACE_CTRL_SRCSEL 0x0 - - # Clock active signal. Switch to 0 to disable the clock - # PSU_CRF_APB_DBG_TRACE_CTRL_CLKACT 0x1 - - # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFD1A0064, 0x01003F07U ,0x01000200U) */ - mask_write 0XFD1A0064 0x01003F07 0x01000200 # Register : DBG_FPD_CTRL @ 0XFD1A0068

# 6 bit divider # PSU_CRF_APB_DBG_FPD_CTRL_DIVISOR0 0x2 - # 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + # gled after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_DBG_FPD_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -1070,8 +1038,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_DDR_CTRL_DIVISOR0 0x2 - # 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - # s not usually an issue, but designers must be aware.) + # 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles + # of the old clock and 4 cycles of the new clock. This is not usually an i + # ssue, but designers must be aware.) # PSU_CRF_APB_DDR_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -1082,17 +1051,21 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_GPU_REF_CTRL_DIVISOR0 0x1 - # 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be tog + # gled after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_GPU_REF_CTRL_SRCSEL 0x0 - # Clock active signal. Switch to 0 to disable the clock, which will stop clock for GPU (and both Pixel Processors). + # Clock active signal. Switch to 0 to disable the clock, which will stop c + # lock for GPU (and both Pixel Processors). # PSU_CRF_APB_GPU_REF_CTRL_CLKACT 0x1 - # Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor + # Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + # k only to this Pixel Processor # PSU_CRF_APB_GPU_REF_CTRL_PP0_CLKACT 0x1 - # Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor + # Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + # k only to this Pixel Processor # PSU_CRF_APB_GPU_REF_CTRL_PP1_CLKACT 0x1 # This register controls this reference clock @@ -1103,8 +1076,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_GDMA_REF_CTRL_DIVISOR0 0x2 - # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # lock. This is not usually an issue, but designers must be aware.) + # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + # er 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRF_APB_GDMA_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -1118,8 +1092,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_DPDMA_REF_CTRL_DIVISOR0 0x2 - # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # lock. This is not usually an issue, but designers must be aware.) + # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + # er 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRF_APB_DPDMA_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -1133,23 +1108,25 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0 0x2 - # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # lock. This is not usually an issue, but designers must be aware.) - # PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x2 + # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + # er 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) + # PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x3 # Clock active signal. Switch to 0 to disable the clock # PSU_CRF_APB_TOPSW_MAIN_CTRL_CLKACT 0x1 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000202U) */ - mask_write 0XFD1A00C0 0x01003F07 0x01000202 + #(OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000203U) */ + mask_write 0XFD1A00C0 0x01003F07 0x01000203 # Register : TOPSW_LSBUS_CTRL @ 0XFD1A00C4

# 6 bit divider # PSU_CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0 0x5 - # 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) + # 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be tog + # gled after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL 0x2 # Clock active signal. Switch to 0 to disable the clock @@ -1163,8 +1140,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_DBG_TSTMP_CTRL_DIVISOR0 0x2 - # 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + # gled after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_DBG_TSTMP_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -1172,20 +1150,24 @@ set psu_clock_init_data { mask_write 0XFD1A00F8 0x00003F07 0x00000200 # Register : IOU_TTC_APB_CLK @ 0XFF180380

- # 00" = Select the APB switch clock for the APB interface of TTC0'01" = Select the PLL ref clock for the APB interface of TTC0' - # 0" = Select the R5 clock for the APB interface of TTC0 + # 00" = Select the APB switch clock for the APB interface of TTC0'01" = Se + # lect the PLL ref clock for the APB interface of TTC0'10" = Select the R5 + # clock for the APB interface of TTC0 # PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL 0 - # 00" = Select the APB switch clock for the APB interface of TTC1'01" = Select the PLL ref clock for the APB interface of TTC1' - # 0" = Select the R5 clock for the APB interface of TTC1 + # 00" = Select the APB switch clock for the APB interface of TTC1'01" = Se + # lect the PLL ref clock for the APB interface of TTC1'10" = Select the R5 + # clock for the APB interface of TTC1 # PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL 0 - # 00" = Select the APB switch clock for the APB interface of TTC2'01" = Select the PLL ref clock for the APB interface of TTC2' - # 0" = Select the R5 clock for the APB interface of TTC2 + # 00" = Select the APB switch clock for the APB interface of TTC2'01" = Se + # lect the PLL ref clock for the APB interface of TTC2'10" = Select the R5 + # clock for the APB interface of TTC2 # PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL 0 - # 00" = Select the APB switch clock for the APB interface of TTC3'01" = Select the PLL ref clock for the APB interface of TTC3' - # 0" = Select the R5 clock for the APB interface of TTC3 + # 00" = Select the APB switch clock for the APB interface of TTC3'01" = Se + # lect the PLL ref clock for the APB interface of TTC3'10" = Select the R5 + # clock for the APB interface of TTC3 # PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL 0 # TTC APB clock select @@ -1193,7 +1175,8 @@ set psu_clock_init_data { mask_write 0XFF180380 0x000000FF 0x00000000 # Register : WDT_CLK_SEL @ 0XFD610100

- # System watchdog timer clock source selection: 0: Internal APB clock 1: External (PL clock via EMIO or Pinout clock via MIO) + # System watchdog timer clock source selection: 0: Internal APB clock 1: E + # xternal (PL clock via EMIO or Pinout clock via MIO) # PSU_FPD_SLCR_WDT_CLK_SEL_SELECT 0 # SWDT clock source select @@ -1201,8 +1184,8 @@ set psu_clock_init_data { mask_write 0XFD610100 0x00000001 0x00000000 # Register : WDT_CLK_SEL @ 0XFF180300

- # System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock from PL via EMIO, or from pinout - # ia MIO + # System watchdog timer clock source selection: 0: internal clock APB cloc + # k 1: external clock from PL via EMIO, or from pinout via MIO # PSU_IOU_SLCR_WDT_CLK_SEL_SELECT 0 # SWDT clock source select @@ -1210,7 +1193,8 @@ set psu_clock_init_data { mask_write 0XFF180300 0x00000001 0x00000000 # Register : CSUPMU_WDT_CLK_SEL @ 0XFF410050

- # System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock pss_ref_clk + # System watchdog timer clock source selection: 0: internal clock APB cloc + # k 1: external clock pss_ref_clk # PSU_LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT 0 # SWDT clock source select @@ -1231,72 +1215,90 @@ set psu_ddr_init_data { mask_write 0XFD1A0108 0x00000008 0x00000008 # Register : MSTR @ 0XFD070000

- # Indicates the configuration of the device used in the system. - 00 - x4 device - 01 - x8 device - 10 - x16 device - 11 - x32 - # evice + # Indicates the configuration of the device used in the system. - 00 - x4 + # device - 01 - x8 device - 10 - x16 device - 11 - x32 device # PSU_DDRC_MSTR_DEVICE_CONFIG 0x1 - # Choose which registers are used. - 0 - Original registers - 1 - Shadow registers + # Choose which registers are used. - 0 - Original registers - 1 - Shadow r + # egisters # PSU_DDRC_MSTR_FREQUENCY_MODE 0x0 - # Only present for multi-rank configurations. Each bit represents one rank. For two-rank configurations, only bits[25:24] are p - # esent. - 1 - populated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks following combinations are legal: - 01 - - # ne rank - 11 - Two ranks - Others - Reserved. For 4 ranks following combinations are legal: - 0001 - One rank - 0011 - Two ra - # ks - 1111 - Four ranks + # Only present for multi-rank configurations. Each bit represents one rank + # . For two-rank configurations, only bits[25:24] are present. - 1 - popul + # ated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks follow + # ing combinations are legal: - 01 - One rank - 11 - Two ranks - Others - + # Reserved. For 4 ranks following combinations are legal: - 0001 - One ran + # k - 0011 - Two ranks - 1111 - Four ranks # PSU_DDRC_MSTR_ACTIVE_RANKS 0x1 - # SDRAM burst length used: - 0001 - Burst length of 2 (only supported for mDDR) - 0010 - Burst length of 4 - 0100 - Burst lengt - # of 8 - 1000 - Burst length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other values are reserved. This controls - # he burst size used to access the SDRAM. This must match the burst length mode register setting in the SDRAM. (For BC4/8 on-th - # -fly mode of DDR3 and DDR4, set this field to 0x0100) Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGT - # is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 + # SDRAM burst length used: - 0001 - Burst length of 2 (only supported for + # mDDR) - 0010 - Burst length of 4 - 0100 - Burst length of 8 - 1000 - Bur + # st length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other + # values are reserved. This controls the burst size used to access the SDR + # AM. This must match the burst length mode register setting in the SDRAM. + # (For BC4/8 on-the-fly mode of DDR3 and DDR4, set this field to 0x0100) + # Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGTH + # is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 # PSU_DDRC_MSTR_BURST_RDWR 0x4 - # Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low frequency operation. Set to 0 to put uMCTL2 and DRAM - # n DLL-on mode for normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d - # l_off_mode is not supported, and this bit must be set to '0'. + # Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low + # frequency operation. Set to 0 to put uMCTL2 and DRAM in DLL-on mode for + # normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARC + # TL1.crc_parity_retry_enable = 1), dll_off_mode is not supported, and thi + # s bit must be set to '0'. # PSU_DDRC_MSTR_DLL_OFF_MODE 0x0 - # Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full DQ bus width to SDRAM - 01 - Half DQ bus width to SD - # AM - 10 - Quarter DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is only supported when the SDRAM bus w - # dth is a multiple of 16, and quarter bus width mode is only supported when the SDRAM bus width is a multiple of 32 and the co - # figuration parameter MEMC_QBUS_SUPPORT is set. Bus width refers to DQ bus width (excluding any ECC width). + # Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full + # DQ bus width to SDRAM - 01 - Half DQ bus width to SDRAM - 10 - Quarter + # DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is + # only supported when the SDRAM bus width is a multiple of 16, and quarter + # bus width mode is only supported when the SDRAM bus width is a multiple + # of 32 and the configuration parameter MEMC_QBUS_SUPPORT is set. Bus wid + # th refers to DQ bus width (excluding any ECC width). # PSU_DDRC_MSTR_DATA_BUS_WIDTH 0x0 - # 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the DRAM in normal mode (1N). This register can be changed - # only when the Controller is in self-refresh mode. This signal must be set the same value as MR3 bit A3. Note: Geardown mode - # s not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set + # 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the D + # RAM in normal mode (1N). This register can be changed, only when the Con + # troller is in self-refresh mode. This signal must be set the same value + # as MR3 bit A3. Note: Geardown mode is not supported if the configuration + # parameter MEMC_CMD_RTN2IDLE is set # PSU_DDRC_MSTR_GEARDOWN_MODE 0x0 - # If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timing, all command signals (except chip select) are held - # or 2 clocks on the SDRAM bus. Chip select is asserted on the second cycle of the command Note: 2T timing is not supported in - # PDDR2/LPDDR3/LPDDR4 mode Note: 2T timing is not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set Note: 2T ti - # ing is not supported in DDR4 geardown mode. + # If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timin + # g, all command signals (except chip select) are held for 2 clocks on the + # SDRAM bus. Chip select is asserted on the second cycle of the command N + # ote: 2T timing is not supported in LPDDR2/LPDDR3/LPDDR4 mode Note: 2T ti + # ming is not supported if the configuration parameter MEMC_CMD_RTN2IDLE i + # s set Note: 2T timing is not supported in DDR4 geardown mode. # PSU_DDRC_MSTR_EN_2T_TIMING_MODE 0x0 - # When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exercised only in HIF configurations (UMCTL2_INCL_ARB not s - # t) and if in full bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exercised only if Partial Writes enable - # (UMCTL2_PARTIAL_WR=1) and if CRC is disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabled (CRCPARCTL1.cr - # _parity_retry_enable = 1), burst chop is not supported, and this bit must be set to '0' + # When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exerci + # sed only in HIF configurations (UMCTL2_INCL_ARB not set) and if in full + # bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exer + # cised only if Partial Writes enabled (UMCTL2_PARTIAL_WR=1) and if CRC is + # disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabl + # ed (CRCPARCTL1.crc_parity_retry_enable = 1), burst chop is not supported + # , and this bit must be set to '0' # PSU_DDRC_MSTR_BURSTCHOP 0x0 - # Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 device in use Present only in designs configured to su - # port LPDDR4. + # Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 d + # evice in use Present only in designs configured to support LPDDR4. # PSU_DDRC_MSTR_LPDDR4 0x0 - # Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device in use Present only in designs configured to support - # DR4. + # Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device + # in use Present only in designs configured to support DDR4. # PSU_DDRC_MSTR_DDR4 0x1 - # Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 device in use Present only in designs configured to su - # port LPDDR3. + # Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 d + # evice in use Present only in designs configured to support LPDDR3. # PSU_DDRC_MSTR_LPDDR3 0x0 - # Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 device in use Present only in designs configured to su - # port LPDDR2. + # Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 d + # evice in use Present only in designs configured to support LPDDR2. # PSU_DDRC_MSTR_LPDDR2 0x0 - # Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM device in use Only present in designs that support DDR3 - # + # Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM de + # vice in use Only present in designs that support DDR3. # PSU_DDRC_MSTR_DDR3 0x0 # Master Register @@ -1304,74 +1306,97 @@ set psu_ddr_init_data { mask_write 0XFD070000 0xE30FBE3D 0x41040010 # Register : MRCTRL0 @ 0XFD070010

- # Setting this register bit to 1 triggers a mode register read or write operation. When the MR operation is complete, the uMCTL - # automatically clears this bit. The other register fields of this register must be written in a separate APB transaction, bef - # re setting this mr_wr bit. It is recommended NOT to set this signal if in Init, Deep power-down or MPSM operating modes. + # Setting this register bit to 1 triggers a mode register read or write op + # eration. When the MR operation is complete, the uMCTL2 automatically cle + # ars this bit. The other register fields of this register must be written + # in a separate APB transaction, before setting this mr_wr bit. It is rec + # ommended NOT to set this signal if in Init, Deep power-down or MPSM oper + # ating modes. # PSU_DDRC_MRCTRL0_MR_WR 0x0 - # Address of the mode register that is to be written to. - 0000 - MR0 - 0001 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 010 - # - MR5 - 0110 - MR6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data for mode register addressing in LPD - # R2/LPDDR3/LPDDR4) This signal is also used for writing to control words of RDIMMs. In that case, it corresponds to the bank a - # dress bits sent to the RDIMM In case of DDR4, the bit[3:2] corresponds to the bank group bits. Therefore, the bit[3] as well - # s the bit[2:0] must be set to an appropriate value which is considered both the Address Mirroring of UDIMMs/RDIMMs and the Ou - # put Inversion of RDIMMs. + # Address of the mode register that is to be written to. - 0000 - MR0 - 00 + # 01 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 0101 - MR5 - 0110 - MR + # 6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data + # for mode register addressing in LPDDR2/LPDDR3/LPDDR4) This signal is als + # o used for writing to control words of RDIMMs. In that case, it correspo + # nds to the bank address bits sent to the RDIMM In case of DDR4, the bit[ + # 3:2] corresponds to the bank group bits. Therefore, the bit[3] as well a + # s the bit[2:0] must be set to an appropriate value which is considered b + # oth the Address Mirroring of UDIMMs/RDIMMs and the Output Inversion of R + # DIMMs. # PSU_DDRC_MRCTRL0_MR_ADDR 0x0 - # Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desired to access all ranks, so all bits should be set to 1 - # However, for multi-rank UDIMMs/RDIMMs which implement address mirroring, it may be necessary to access ranks individually. E - # amples (assume uMCTL2 is configured for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x5 - select ranks - # and 2 - 0xA - select ranks 1 and 3 - 0xF - select ranks 0, 1, 2 and 3 + # Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desire + # d to access all ranks, so all bits should be set to 1. However, for mult + # i-rank UDIMMs/RDIMMs which implement address mirroring, it may be necess + # ary to access ranks individually. Examples (assume uMCTL2 is configured + # for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x + # 5 - select ranks 0 and 2 - 0xA - select ranks 1 and 3 - 0xF - select ran + # ks 0, 1, 2 and 3 # PSU_DDRC_MRCTRL0_MR_RANK 0x3 - # Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 before automatic SDRAM initialization routine or not. - # or DDR4, this bit can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM initialization. For LPDDR4, this bit ca - # be used to program additional mode registers before automatic SDRAM initialization if necessary. Note: This must be cleared - # o 0 after completing Software operation. Otherwise, SDRAM initialization routine will not re-start. - 0 - Software interventi - # n is not allowed - 1 - Software intervention is allowed + # Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 b + # efore automatic SDRAM initialization routine or not. For DDR4, this bit + # can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM init + # ialization. For LPDDR4, this bit can be used to program additional mode + # registers before automatic SDRAM initialization if necessary. Note: This + # must be cleared to 0 after completing Software operation. Otherwise, SD + # RAM initialization routine will not re-start. - 0 - Software interventio + # n is not allowed - 1 - Software intervention is allowed # PSU_DDRC_MRCTRL0_SW_INIT_INT 0x0 - # Indicates whether the mode register operation is MRS in PDA mode or not - 0 - MRS - 1 - MRS in Per DRAM Addressability mode + # Indicates whether the mode register operation is MRS in PDA mode or not + # - 0 - MRS - 1 - MRS in Per DRAM Addressability mode # PSU_DDRC_MRCTRL0_PDA_EN 0x0 - # Indicates whether the mode register operation is MRS or WR/RD for MPR (only supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR + # Indicates whether the mode register operation is MRS or WR/RD for MPR (o + # nly supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR # PSU_DDRC_MRCTRL0_MPR_EN 0x0 - # Indicates whether the mode register operation is read or write. Only used for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Re - # d + # Indicates whether the mode register operation is read or write. Only use + # d for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Read # PSU_DDRC_MRCTRL0_MR_TYPE 0x0 - # Mode Register Read/Write Control Register 0. Note: Do not enable more than one of the following fields simultaneously: - sw_i - # it_int - pda_en - mpr_en + # Mode Register Read/Write Control Register 0. Note: Do not enable more th + # an one of the following fields simultaneously: - sw_init_int - pda_en - + # mpr_en #(OFFSET, MASK, VALUE) (0XFD070010, 0x8000F03FU ,0x00000030U) */ mask_write 0XFD070010 0x8000F03F 0x00000030 # Register : DERATEEN @ 0XFD070020

- # Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating uses +2. - 2 - Derating uses +3. - 3 - Derating uses +4 - # Present only in designs configured to support LPDDR4. The required number of cycles for derating can be determined by dividi - # g 3.75ns by the core_ddrc_core_clk period, and rounding up the next integer. - # PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x3 + # Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating us + # es +2. - 2 - Derating uses +3. - 3 - Derating uses +4. Present only in d + # esigns configured to support LPDDR4. The required number of cycles for d + # erating can be determined by dividing 3.75ns by the core_ddrc_core_clk p + # eriod, and rounding up the next integer. + # PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x2 - # Derate byte Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 Indicates which byte of the MRR data is used f - # r derating. The maximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. + # Derate byte Present only in designs configured to support LPDDR2/LPDDR3/ + # LPDDR4 Indicates which byte of the MRR data is used for derating. The ma + # ximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. # PSU_DDRC_DERATEEN_DERATE_BYTE 0x0 - # Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present only in designs configured to support LPDDR2/LPDDR3/LPDD - # 4 Set to 0 for all LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ddrc_core_clk period. Can be 0 or 1 - # for LPDDR3/LPDDR4, depending if +1.875 ns is less than a core_ddrc_core_clk period or not. + # Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present onl + # y in designs configured to support LPDDR2/LPDDR3/LPDDR4 Set to 0 for all + # LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ + # ddrc_core_clk period. Can be 0 or 1 for LPDDR3/LPDDR4, depending if +1.8 + # 75 ns is less than a core_ddrc_core_clk period or not. # PSU_DDRC_DERATEEN_DERATE_VALUE 0x0 - # Enables derating - 0 - Timing parameter derating is disabled - 1 - Timing parameter derating is enabled using MR4 read value. - # Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set to '0' for non-LPDDR2/LPDDR3/LPDDR4 - # mode. + # Enables derating - 0 - Timing parameter derating is disabled - 1 - Timin + # g parameter derating is enabled using MR4 read value. Present only in de + # signs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set + # to '0' for non-LPDDR2/LPDDR3/LPDDR4 mode. # PSU_DDRC_DERATEEN_DERATE_ENABLE 0x0 # Temperature Derate Enable Register - #(OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000300U) */ - mask_write 0XFD070020 0x000003F3 0x00000300 + #(OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000200U) */ + mask_write 0XFD070020 0x000003F3 0x00000200 # Register : DERATEINT @ 0XFD070024

- # Interval between two MR4 reads, used to derate the timing parameters. Present only in designs configured to support LPDDR2/LP - # DR3/LPDDR4. This register must not be set to zero + # Interval between two MR4 reads, used to derate the timing parameters. Pr + # esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4. This r + # egister must not be set to zero # PSU_DDRC_DERATEINT_MR4_READ_INTERVAL 0x800000 # Temperature Derate Interval Register @@ -1379,41 +1404,57 @@ set psu_ddr_init_data { mask_write 0XFD070024 0xFFFFFFFF 0x00800000 # Register : PWRCTL @ 0XFD070030

- # Self refresh state is an intermediate state to enter to Self refresh power down state or exit Self refresh power down state f - # r LPDDR4. This register controls transition from the Self refresh state. - 1 - Prohibit transition from Self refresh state - - # - Allow transition from Self refresh state + # Self refresh state is an intermediate state to enter to Self refresh pow + # er down state or exit Self refresh power down state for LPDDR4. This reg + # ister controls transition from the Self refresh state. - 1 - Prohibit tr + # ansition from Self refresh state - 0 - Allow transition from Self refres + # h state # PSU_DDRC_PWRCTL_STAY_IN_SELFREF 0x0 - # A value of 1 to this register causes system to move to Self Refresh state immediately, as long as it is not in INIT or DPD/MP - # M operating_mode. This is referred to as Software Entry/Exit to Self Refresh. - 1 - Software Entry to Self Refresh - 0 - Soft - # are Exit from Self Refresh + # A value of 1 to this register causes system to move to Self Refresh stat + # e immediately, as long as it is not in INIT or DPD/MPSM operating_mode. + # This is referred to as Software Entry/Exit to Self Refresh. - 1 - Softwa + # re Entry to Self Refresh - 0 - Software Exit from Self Refresh # PSU_DDRC_PWRCTL_SELFREF_SW 0x0 - # When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode when the transaction store is empty. This register m - # st be reset to '0' to bring uMCTL2 out of maximum power saving mode. Present only in designs configured to support DDR4. For - # on-DDR4, this register should not be set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if the PHY parameter - # DWC_AC_CS_USE is disabled, as the MPSM exit sequence requires the chip-select signal to toggle. FOR PERFORMANCE ONLY. + # When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode + # when the transaction store is empty. This register must be reset to '0' + # to bring uMCTL2 out of maximum power saving mode. Present only in desig + # ns configured to support DDR4. For non-DDR4, this register should not be + # set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if + # the PHY parameter DWC_AC_CS_USE is disabled, as the MPSM exit sequence r + # equires the chip-select signal to toggle. FOR PERFORMANCE ONLY. # PSU_DDRC_PWRCTL_MPSM_EN 0x0 - # Enable the assertion of dfi_dram_clk_disable whenever a clock is not required by the SDRAM. If set to 0, dfi_dram_clk_disable - # is never asserted. Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only be asserted in Self Refresh. In DD - # 4, can be asserted in following: - in Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, can be asserted in - # ollowing: - in Self Refresh - in Power Down - in Deep Power Down - during Normal operation (Clock Stop) In LPDDR4, can be ass - # rted in following: - in Self Refresh Power Down - in Power Down - during Normal operation (Clock Stop) + # Enable the assertion of dfi_dram_clk_disable whenever a clock is not req + # uired by the SDRAM. If set to 0, dfi_dram_clk_disable is never asserted. + # Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only + # be asserted in Self Refresh. In DDR4, can be asserted in following: - i + # n Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, ca + # n be asserted in following: - in Self Refresh - in Power Down - in Deep + # Power Down - during Normal operation (Clock Stop) In LPDDR4, can be asse + # rted in following: - in Self Refresh Power Down - in Power Down - during + # Normal operation (Clock Stop) # PSU_DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE 0x0 - # When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the transaction store is empty. This register must be re - # et to '0' to bring uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM initialization on deep power-down - # xit. Present only in designs configured to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPDDR3, this registe - # should not be set to 1. FOR PERFORMANCE ONLY. + # When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the + # transaction store is empty. This register must be reset to '0' to bring + # uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM + # initialization on deep power-down exit. Present only in designs configu + # red to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPD + # DR3, this register should not be set to 1. FOR PERFORMANCE ONLY. # PSU_DDRC_PWRCTL_DEEPPOWERDOWN_EN 0x0 - # If true then the uMCTL2 goes into power-down after a programmable number of cycles 'maximum idle clocks before power down' (P - # RTMG.powerdown_to_x32). This register bit may be re-programmed during the course of normal operation. + # If true then the uMCTL2 goes into power-down after a programmable number + # of cycles 'maximum idle clocks before power down' (PWRTMG.powerdown_to_ + # x32). This register bit may be re-programmed during the course of normal + # operation. # PSU_DDRC_PWRCTL_POWERDOWN_EN 0x0 - # If true then the uMCTL2 puts the SDRAM into Self Refresh after a programmable number of cycles 'maximum idle clocks before Se - # f Refresh (PWRTMG.selfref_to_x32)'. This register bit may be re-programmed during the course of normal operation. + # If true then the uMCTL2 puts the SDRAM into Self Refresh after a program + # mable number of cycles 'maximum idle clocks before Self Refresh (PWRTMG. + # selfref_to_x32)'. This register bit may be re-programmed during the cour + # se of normal operation. # PSU_DDRC_PWRCTL_SELFREF_EN 0x0 # Low Power Control Register @@ -1421,17 +1462,22 @@ set psu_ddr_init_data { mask_write 0XFD070030 0x0000007F 0x00000000 # Register : PWRTMG @ 0XFD070034

- # After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into Self Refresh. This must be enabled in - # he PWRCTL.selfref_en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + # After this many clocks of NOP or deselect the uMCTL2 automatically puts + # the SDRAM into Self Refresh. This must be enabled in the PWRCTL.selfref_ + # en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. # PSU_DDRC_PWRTMG_SELFREF_TO_X32 0x40 - # Minimum deep power-down time. For mDDR, value from the JEDEC specification is 0 as mDDR exits from deep power-down mode immed - # ately after PWRCTL.deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDEC specification is 500us. Unit: Mul - # iples of 4096 clocks. Present only in designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE ONLY. + # Minimum deep power-down time. For mDDR, value from the JEDEC specificati + # on is 0 as mDDR exits from deep power-down mode immediately after PWRCTL + # .deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDE + # C specification is 500us. Unit: Multiples of 4096 clocks. Present only i + # n designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE + # ONLY. # PSU_DDRC_PWRTMG_T_DPD_X4096 0x84 - # After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into power-down. This must be enabled in th - # PWRCTL.powerdown_en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. + # After this many clocks of NOP or deselect the uMCTL2 automatically puts + # the SDRAM into power-down. This must be enabled in the PWRCTL.powerdown_ + # en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. # PSU_DDRC_PWRTMG_POWERDOWN_TO_X32 0x10 # Low Power Timing Register @@ -1439,60 +1485,100 @@ set psu_ddr_init_data { mask_write 0XFD070034 0x00FFFF1F 0x00408410 # Register : RFSHCTL0 @ 0XFD070050

- # Threshold value in number of clock cycles before the critical refresh or page timer expires. A critical refresh is to be issu - # d before this threshold is reached. It is recommended that this not be changed from the default value, currently shown as 0x2 - # It must always be less than internally used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally used t_rfc_nom_x32 - # may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating is enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_ - # om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clocks. + # Threshold value in number of clock cycles before the critical refresh or + # page timer expires. A critical refresh is to be issued before this thre + # shold is reached. It is recommended that this not be changed from the de + # fault value, currently shown as 0x2. It must always be less than interna + # lly used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally u + # sed t_rfc_nom_x32 may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating i + # s enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_n + # om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clo + # cks. # PSU_DDRC_RFSHCTL0_REFRESH_MARGIN 0x2 - # If the refresh timer (tRFCnom, also known as tREFI) has expired at least once, but it has not expired (RFSHCTL0.refresh_burst - # 1) times yet, then a speculative refresh may be performed. A speculative refresh is a refresh performed at a time when refres - # would be useful, but before it is absolutely required. When the SDRAM bus is idle for a period of time determined by this RF - # HCTL0.refresh_to_x32 and the refresh timer has expired at least once since the last refresh, then a speculative refresh is pe - # formed. Speculative refreshes continues successively until there are no refreshes pending or until new reads or writes are is - # ued to the uMCTL2. FOR PERFORMANCE ONLY. + # If the refresh timer (tRFCnom, also known as tREFI) has expired at least + # once, but it has not expired (RFSHCTL0.refresh_burst+1) times yet, then + # a speculative refresh may be performed. A speculative refresh is a refr + # esh performed at a time when refresh would be useful, but before it is a + # bsolutely required. When the SDRAM bus is idle for a period of time dete + # rmined by this RFSHCTL0.refresh_to_x32 and the refresh timer has expired + # at least once since the last refresh, then a speculative refresh is per + # formed. Speculative refreshes continues successively until there are no + # refreshes pending or until new reads or writes are issued to the uMCTL2. + # FOR PERFORMANCE ONLY. # PSU_DDRC_RFSHCTL0_REFRESH_TO_X32 0x10 - # The programmed value + 1 is the number of refresh timeouts that is allowed to accumulate before traffic is blocked and the re - # reshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of re - # reshes. Therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for - # RFSHCTL.refresh_burst slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshe - # . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh For information on burst refresh feature refer to se - # tion 3.9 of DDR2 JEDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always per-rank and not per-bank. The rank r - # fresh can be accumulated over 8*tREFI cycles using the burst refresh feature. In DDR4 mode, according to Fine Granularity fea - # ure, 8 refreshes can be postponed in 1X mode, 16 refreshes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upd - # tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ensure that tRFCmax is not violated due to a PHY-initiat - # d update occurring shortly before a refresh burst was due. In this situation, the refresh burst will be delayed until the PHY - # initiated update is complete. + # The programmed value + 1 is the number of refresh timeouts that is allow + # ed to accumulate before traffic is blocked and the refreshes are forced + # to execute. Closing pages to perform a refresh is a one-time penalty tha + # t must be paid for each group of refreshes. Therefore, performing refres + # hes in a burst reduces the per-refresh penalty of these page closings. H + # igher numbers for RFSHCTL.refresh_burst slightly increases utilization; + # lower numbers decreases the worst-case latency associated with refreshes + # . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh + # For information on burst refresh feature refer to section 3.9 of DDR2 J + # EDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always pe + # r-rank and not per-bank. The rank refresh can be accumulated over 8*tREF + # I cycles using the burst refresh feature. In DDR4 mode, according to Fin + # e Granularity feature, 8 refreshes can be postponed in 1X mode, 16 refre + # shes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upda + # tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ens + # ure that tRFCmax is not violated due to a PHY-initiated update occurring + # shortly before a refresh burst was due. In this situation, the refresh + # burst will be delayed until the PHY-initiated update is complete. # PSU_DDRC_RFSHCTL0_REFRESH_BURST 0x0 - # - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows traffic to flow to other banks. Per bank refresh is n - # t supported by all LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Present only in designs configured to - # support LPDDR2/LPDDR3/LPDDR4 + # - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows + # traffic to flow to other banks. Per bank refresh is not supported by all + # LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Pr + # esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4 # PSU_DDRC_RFSHCTL0_PER_BANK_REFRESH 0x0 # Refresh Control Register 0 #(OFFSET, MASK, VALUE) (0XFD070050, 0x00F1F1F4U ,0x00210000U) */ mask_write 0XFD070050 0x00F1F1F4 0x00210000 + # Register : RFSHCTL1 @ 0XFD070054

+ + # Refresh timer start for rank 1 (only present in multi-rank configuration + # s). This is useful in staggering the refreshes to multiple ranks to help + # traffic to proceed. This is explained in Refresh Controls section of ar + # chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + # PSU_DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32 0x0 + + # Refresh timer start for rank 0 (only present in multi-rank configuration + # s). This is useful in staggering the refreshes to multiple ranks to help + # traffic to proceed. This is explained in Refresh Controls section of ar + # chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + # PSU_DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32 0x0 + + # Refresh Control Register 1 + #(OFFSET, MASK, VALUE) (0XFD070054, 0x0FFF0FFFU ,0x00000000U) */ + mask_write 0XFD070054 0x0FFF0FFF 0x00000000 # Register : RFSHCTL3 @ 0XFD070060

- # Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fixed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x ( - # ot supported) - 110 - Enable on the fly 4x (not supported) - Everything else - reserved Note: The on-the-fly modes is not sup - # orted in this version of the uMCTL2. Note: This must be set up while the Controller is in reset or while the Controller is in - # self-refresh mode. Changing this during normal operation is not allowed. Making this a dynamic register will be supported in - # uture version of the uMCTL2. + # Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fix + # ed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x (not supported) - 11 + # 0 - Enable on the fly 4x (not supported) - Everything else - reserved No + # te: The on-the-fly modes is not supported in this version of the uMCTL2. + # Note: This must be set up while the Controller is in reset or while the + # Controller is in self-refresh mode. Changing this during normal operati + # on is not allowed. Making this a dynamic register will be supported in f + # uture version of the uMCTL2. # PSU_DDRC_RFSHCTL3_REFRESH_MODE 0x0 - # Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that the refresh register(s) have been updated. The value - # s automatically updated when exiting reset, so it does not need to be toggled initially. + # Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that + # the refresh register(s) have been updated. The value is automatically up + # dated when exiting reset, so it does not need to be toggled initially. # PSU_DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL 0x0 - # When '1', disable auto-refresh generated by the uMCTL2. When auto-refresh is disabled, the SoC core must generate refreshes u - # ing the registers reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh and reg_ddrc_rank3_refresh. When dis - # auto_refresh transitions from 0 to 1, any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 CRC/parity retry - # is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), disable auto-refresh is not supported, and this bit must be set to '0'. - # his register field is changeable on the fly. + # When '1', disable auto-refresh generated by the uMCTL2. When auto-refres + # h is disabled, the SoC core must generate refreshes using the registers + # reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh a + # nd reg_ddrc_rank3_refresh. When dis_auto_refresh transitions from 0 to 1 + # , any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 + # CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d + # isable auto-refresh is not supported, and this bit must be set to '0'. T + # his register field is changeable on the fly. # PSU_DDRC_RFSHCTL3_DIS_AUTO_REFRESH 0x1 # Refresh Control Register 3 @@ -1500,38 +1586,51 @@ set psu_ddr_init_data { mask_write 0XFD070060 0x00000073 0x00000001 # Register : RFSHTMG @ 0XFD070064

- # tREFI: Average time interval between refreshes per rank (Specification: 7.8us for DDR2, DDR3 and DDR4. See JEDEC specificatio - # for mDDR, LPDDR2, LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refreshes (RFSHCTL0.per_bank_refresh = 0 - # , this register should be set to tREFIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this register should - # e set to tREFIpb For configurations with MEMC_FREQ_RATIO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI va - # ue is different depending on the refresh mode. The user should program the appropriate value from the spec based on the value - # programmed in the refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be greater than RFSHTMG.t_rfc_min, and RFS - # TMG.t_rfc_nom_x32 must be greater than 0x1. Unit: Multiples of 32 clocks. - # PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x82 + # tREFI: Average time interval between refreshes per rank (Specification: + # 7.8us for DDR2, DDR3 and DDR4. See JEDEC specification for mDDR, LPDDR2, + # LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refre + # shes (RFSHCTL0.per_bank_refresh = 0), this register should be set to tRE + # FIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this + # register should be set to tREFIpb For configurations with MEMC_FREQ_RAT + # IO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI val + # ue is different depending on the refresh mode. The user should program t + # he appropriate value from the spec based on the value programmed in the + # refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be grea + # ter than RFSHTMG.t_rfc_min, and RFSHTMG.t_rfc_nom_x32 must be greater th + # an 0x1. Unit: Multiples of 32 clocks. + # PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x81 - # Used only when LPDDR3 memory type is connected. Should only be changed when uMCTL2 is in reset. Specifies whether to use the - # REFBW parameter (required by some LPDDR3 devices which comply with earlier versions of the LPDDR3 JEDEC specification) or not - # - 0 - tREFBW parameter not used - 1 - tREFBW parameter used + # Used only when LPDDR3 memory type is connected. Should only be changed w + # hen uMCTL2 is in reset. Specifies whether to use the tREFBW parameter (r + # equired by some LPDDR3 devices which comply with earlier versions of the + # LPDDR3 JEDEC specification) or not: - 0 - tREFBW parameter not used - 1 + # - tREFBW parameter used # PSU_DDRC_RFSHTMG_LPDDR3_TREFBW_EN 0x1 - # tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_FREQ_RATIO=1 configurations, t_rfc_min should be set t - # RoundUp(tRFCmin/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to RoundUp(RoundUp(tRFCmin/tCK)/2). In L - # DDR2/LPDDR3/LPDDR4 mode: - if using all-bank refreshes, the tRFCmin value in the above equations is equal to tRFCab - if usin - # per-bank refreshes, the tRFCmin value in the above equations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above - # equations is different depending on the refresh mode (fixed 1X,2X,4X) and the device density. The user should program the app - # opriate value from the spec based on the 'refresh_mode' and the device density that is used. Unit: Clocks. + # tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_F + # REQ_RATIO=1 configurations, t_rfc_min should be set to RoundUp(tRFCmin/t + # CK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to Ro + # undUp(RoundUp(tRFCmin/tCK)/2). In LPDDR2/LPDDR3/LPDDR4 mode: - if using + # all-bank refreshes, the tRFCmin value in the above equations is equal to + # tRFCab - if using per-bank refreshes, the tRFCmin value in the above eq + # uations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above + # equations is different depending on the refresh mode (fixed 1X,2X,4X) an + # d the device density. The user should program the appropriate value from + # the spec based on the 'refresh_mode' and the device density that is use + # d. Unit: Clocks. # PSU_DDRC_RFSHTMG_T_RFC_MIN 0x8b # Refresh Timing Register - #(OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0082808BU) */ - mask_write 0XFD070064 0x0FFF83FF 0x0082808B + #(OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0081808BU) */ + mask_write 0XFD070064 0x0FFF83FF 0x0081808B # Register : ECCCFG0 @ 0XFD070070

- # Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_USE_RMW is defined + # Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_U + # SE_RMW is defined # PSU_DDRC_ECCCFG0_DIS_SCRUB 0x1 - # ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED over 1 beat - all other settings are reserved for futur - # use + # ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED ov + # er 1 beat - all other settings are reserved for future use # PSU_DDRC_ECCCFG0_ECC_MODE 0x0 # ECC Configuration Register 0 @@ -1539,11 +1638,13 @@ set psu_ddr_init_data { mask_write 0XFD070070 0x00000017 0x00000010 # Register : ECCCFG1 @ 0XFD070074

- # Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) data poisoning, if 1 -> 1-bit (correctable) data poison - # ng, if ECCCFG1.data_poison_en=1 + # Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) da + # ta poisoning, if 1 -> 1-bit (correctable) data poisoning, if ECCCFG1.dat + # a_poison_en=1 # PSU_DDRC_ECCCFG1_DATA_POISON_BIT 0x0 - # Enable ECC data poisoning - introduces ECC errors on writes to address specified by the ECCPOISONADDR0/1 registers + # Enable ECC data poisoning - introduces ECC errors on writes to address s + # pecified by the ECCPOISONADDR0/1 registers # PSU_DDRC_ECCCFG1_DATA_POISON_EN 0x0 # ECC Configuration Register 1 @@ -1551,43 +1652,60 @@ set psu_ddr_init_data { mask_write 0XFD070074 0x00000003 0x00000000 # Register : CRCPARCTL1 @ 0XFD0700C4

- # The maximum number of DFI PHY clock cycles allowed from the assertion of the dfi_rddata_en signal to the assertion of each of - # the corresponding bits of the dfi_rddata_valid signal. This corresponds to the DFI timing parameter tphy_rdlat. Refer to PHY - # pecification for correct value. This value it only used for detecting read data timeout when DDR4 retry is enabled by CRCPARC - # L1.crc_parity_retry_enable=1. Maximum supported value: - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ - # dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mo - # e ANDAND DFITMG0.dfi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_rdlat < 'd114 Unit: DFI Clocks + # The maximum number of DFI PHY clock cycles allowed from the assertion of + # the dfi_rddata_en signal to the assertion of each of the corresponding + # bits of the dfi_rddata_valid signal. This corresponds to the DFI timing + # parameter tphy_rdlat. Refer to PHY specification for correct value. This + # value it only used for detecting read data timeout when DDR4 retry is e + # nabled by CRCPARCTL1.crc_parity_retry_enable=1. Maximum supported value: + # - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_r + # dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 + # : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mode ANDAND DFITMG0.d + # fi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ + # rdlat < 'd114 Unit: DFI Clocks # PSU_DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT 0x10 - # After a Parity or CRC error is flagged on dfi_alert_n signal, the software has an option to read the mode registers in the DR - # M before the hardware begins the retry process - 1: Wait for software to read/write the mode registers before hardware begins - # the retry. After software is done with its operations, it will clear the alert interrupt register bit - 0: Hardware can begin - # the retry right away after the dfi_alert_n pulse goes away. The value on this register is valid only when retry is enabled (P - # RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if the software doesn't clear the interrupt register afte - # handling the parity/CRC error, then the hardware will not begin the retry process and the system will hang. In the case of P - # rity/CRC error, there are two possibilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persistent parity' mode re - # ister bit is NOT set: the commands sent during retry and normal operation are executed without parity checking. The value in - # he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent parity' mode register bit is SET: Parity checking is - # one for commands sent during retry and normal operation. If multiple errors occur before MR5[4] is cleared, the error log in - # PR Page 1 should be treated as 'Don't care'. + # After a Parity or CRC error is flagged on dfi_alert_n signal, the softwa + # re has an option to read the mode registers in the DRAM before the hardw + # are begins the retry process - 1: Wait for software to read/write the mo + # de registers before hardware begins the retry. After software is done wi + # th its operations, it will clear the alert interrupt register bit - 0: H + # ardware can begin the retry right away after the dfi_alert_n pulse goes + # away. The value on this register is valid only when retry is enabled (PA + # RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if t + # he software doesn't clear the interrupt register after handling the pari + # ty/CRC error, then the hardware will not begin the retry process and the + # system will hang. In the case of Parity/CRC error, there are two possib + # ilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persisten + # t parity' mode register bit is NOT set: the commands sent during retry a + # nd normal operation are executed without parity checking. The value in t + # he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent + # parity' mode register bit is SET: Parity checking is done for commands s + # ent during retry and normal operation. If multiple errors occur before M + # R5[4] is cleared, the error log in MPR Page 1 should be treated as 'Don' + # t care'. # PSU_DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW 0x1 - # - 1: Enable command retry mechanism in case of C/A Parity or CRC error - 0: Disable command retry mechanism when C/A Parity o - # CRC features are enabled. Note that retry functionality is not supported if burst chop is enabled (MSTR.burstchop = 1) and/o - # disable auto-refresh is enabled (RFSHCTL3.dis_auto_refresh = 1) + # - 1: Enable command retry mechanism in case of C/A Parity or CRC error - + # 0: Disable command retry mechanism when C/A Parity or CRC features are + # enabled. Note that retry functionality is not supported if burst chop is + # enabled (MSTR.burstchop = 1) and/or disable auto-refresh is enabled (RF + # SHCTL3.dis_auto_refresh = 1) # PSU_DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE 0x0 - # CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC not includes DM signal Present only in designs configur - # d to support DDR4. + # CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC no + # t includes DM signal Present only in designs configured to support DDR4. # PSU_DDRC_CRCPARCTL1_CRC_INC_DM 0x0 - # CRC enable Register - 1: Enable generation of CRC - 0: Disable generation of CRC The setting of this register should match th - # CRC mode register setting in the DRAM. + # CRC enable Register - 1: Enable generation of CRC - 0: Disable generatio + # n of CRC The setting of this register should match the CRC mode register + # setting in the DRAM. # PSU_DDRC_CRCPARCTL1_CRC_ENABLE 0x0 - # C/A Parity enable register - 1: Enable generation of C/A parity and detection of C/A parity error - 0: Disable generation of - # /A parity and disable detection of C/A parity error If RCD's parity error detection or SDRAM's parity detection is enabled, t - # is register should be 1. + # C/A Parity enable register - 1: Enable generation of C/A parity and dete + # ction of C/A parity error - 0: Disable generation of C/A parity and disa + # ble detection of C/A parity error If RCD's parity error detection or SDR + # AM's parity detection is enabled, this register should be 1. # PSU_DDRC_CRCPARCTL1_PARITY_ENABLE 0x0 # CRC Parity Control Register1 @@ -1595,35 +1713,53 @@ set psu_ddr_init_data { mask_write 0XFD0700C4 0x3F000391 0x10000200 # Register : CRCPARCTL2 @ 0XFD0700C8

- # Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a parity error occurs. Recommended values - # - tPAR_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT_PW.MAX/2 and round up to next inte - # er value. Values of 0, 1 and 2 are illegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. + # Value from the DRAM spec indicating the maximum width of the dfi_alert_n + # pulse when a parity error occurs. Recommended values: - tPAR_ALERT_PW.M + # AX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT + # _PW.MAX/2 and round up to next integer value. Values of 0, 1 and 2 are i + # llegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. # PSU_DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX 0x40 - # Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a CRC error occurs. Recommended values: - - # tCRC_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW.MAX/2 and round up to next integer - # value. Values of 0, 1 and 2 are illegal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. + # Value from the DRAM spec indicating the maximum width of the dfi_alert_n + # pulse when a CRC error occurs. Recommended values: - tCRC_ALERT_PW.MAX + # For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW + # .MAX/2 and round up to next integer value. Values of 0, 1 and 2 are ille + # gal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. # PSU_DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX 0x5 - # Indicates the maximum duration in number of DRAM clock cycles for which a command should be held in the Command Retry FIFO be - # ore it is popped out. Every location in the Command Retry FIFO has an associated down counting timer that will use this regis - # er as the start value. The down counting starts when a command is loaded into the FIFO. The timer counts down every 4 DRAM cy - # les. When the counter reaches zero, the entry is popped from the FIFO. All the counters are frozen, if a C/A Parity or CRC er - # or occurs before the counter reaches zero. The counter is reset to 0, after all the commands in the FIFO are retried. Recomme - # ded(minimum) values: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + tPAR_ALERT_ON - # max + tPAR_UNKNOWN + PHY Alert Latency(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enabled/ Only CRC is en - # bled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) - # + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be in terms of DRAM Clock and round up Note 2: Board de - # ay(Command/Alert_n) should be considered. Note 3: Use the worst case(longer) value for PHY Latencies/Board delay Note 4: The - # ecommended values are minimum value to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max value can be set - # to this register is defined below: - MEMC_BURST_LENGTH == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH- - # Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_D - # PTH-4 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CM - # _FIFO_DEPTH-8 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 Full bus Mode (C - # C=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mo - # e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarte - # bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEP - # H-6 Values of 0, 1 and 2 are illegal. + # Indicates the maximum duration in number of DRAM clock cycles for which + # a command should be held in the Command Retry FIFO before it is popped o + # ut. Every location in the Command Retry FIFO has an associated down coun + # ting timer that will use this register as the start value. The down coun + # ting starts when a command is loaded into the FIFO. The timer counts dow + # n every 4 DRAM cycles. When the counter reaches zero, the entry is poppe + # d from the FIFO. All the counters are frozen, if a C/A Parity or CRC err + # or occurs before the counter reaches zero. The counter is reset to 0, af + # ter all the commands in the FIFO are retried. Recommended(minimum) value + # s: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + # + CAL + RDIMM delay + tPAR_ALERT_ON.max + tPAR_UNKNOWN + PHY Alert Laten + # cy(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enable + # d/ Only CRC is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + R + # DIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) + # + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be + # in terms of DRAM Clock and round up Note 2: Board delay(Command/Alert_n + # ) should be considered. Note 3: Use the worst case(longer) value for PHY + # Latencies/Board delay Note 4: The Recommended values are minimum value + # to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max + # value can be set to this register is defined below: - MEMC_BURST_LENGTH + # == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 + # Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half b + # us Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Half bus Mod + # e (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (C + # RC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-8 Quarter bus Mode (CRC= + # ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 + # Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full + # bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mod + # e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC + # =ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarter bus Mode (CRC=OFF + # ) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Ma + # x value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Values of 0, 1 and 2 are illegal + # . # PSU_DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4 0x1f # CRC Parity Control Register2 @@ -1631,23 +1767,31 @@ set psu_ddr_init_data { mask_write 0XFD0700C8 0x01FF1F3F 0x0040051F # Register : INIT0 @ 0XFD0700D0

- # If lower bit is enabled the SDRAM initialization routine is skipped. The upper bit decides what state the controller starts u - # in when reset is removed - 00 - SDRAM Intialization routine is run after power-up - 01 - SDRAM Intialization routine is skip - # ed after power-up. Controller starts up in Normal Mode - 11 - SDRAM Intialization routine is skipped after power-up. Controll - # r starts up in Self-refresh Mode - 10 - SDRAM Intialization routine is run after power-up. Note: The only 2'b00 is supported - # or LPDDR4 in this version of the uMCTL2. + # If lower bit is enabled the SDRAM initialization routine is skipped. The + # upper bit decides what state the controller starts up in when reset is + # removed - 00 - SDRAM Intialization routine is run after power-up - 01 - + # SDRAM Intialization routine is skipped after power-up. Controller starts + # up in Normal Mode - 11 - SDRAM Intialization routine is skipped after p + # ower-up. Controller starts up in Self-refresh Mode - 10 - SDRAM Intializ + # ation routine is run after power-up. Note: The only 2'b00 is supported f + # or LPDDR4 in this version of the uMCTL2. # PSU_DDRC_INIT0_SKIP_DRAM_INIT 0x0 - # Cycles to wait after driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clocks. DDR2 typically requires - # 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDDR3 typically requires this to be pr - # grammed for a delay of 200 us. LPDDR4 typically requires this to be programmed for a delay of 2 us. For configurations with M - # MC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it up to next integer value. + # Cycles to wait after driving CKE high to start the SDRAM initialization + # sequence. Unit: 1024 clocks. DDR2 typically requires a 400 ns delay, req + # uiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDD + # R3 typically requires this to be programmed for a delay of 200 us. LPDDR + # 4 typically requires this to be programmed for a delay of 2 us. For conf + # igurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divi + # ded by 2, and round it up to next integer value. # PSU_DDRC_INIT0_POST_CKE_X1024 0x2 - # Cycles to wait after reset before driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clock cycles. DDR2 - # pecifications typically require this to be programmed for a delay of >= 200 us. LPDDR2/LPDDR3: tINIT1 of 100 ns (min) LPDDR4: - # tINIT3 of 2 ms (min) For configurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it u - # to next integer value. + # Cycles to wait after reset before driving CKE high to start the SDRAM in + # itialization sequence. Unit: 1024 clock cycles. DDR2 specifications typi + # cally require this to be programmed for a delay of >= 200 us. LPDDR2/LPD + # DR3: tINIT1 of 100 ns (min) LPDDR4: tINIT3 of 2 ms (min) For configurati + # ons with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by + # 2, and round it up to next integer value. # PSU_DDRC_INIT0_PRE_CKE_X1024 0x106 # SDRAM Initialization Register 0 @@ -1655,16 +1799,20 @@ set psu_ddr_init_data { mask_write 0XFD0700D0 0xC3FF0FFF 0x00020106 # Register : INIT1 @ 0XFD0700D4

- # Number of cycles to assert SDRAM reset signal during init sequence. This is only present for designs supporting DDR3, DDR4 or - # LPDDR4 devices. For use with a DDR PHY, this should be set to a minimum of 1 + # Number of cycles to assert SDRAM reset signal during init sequence. This + # is only present for designs supporting DDR3, DDR4 or LPDDR4 devices. Fo + # r use with a DDR PHY, this should be set to a minimum of 1 # PSU_DDRC_INIT1_DRAM_RSTN_X1024 0x2 - # Cycles to wait after completing the SDRAM initialization sequence before starting the dynamic scheduler. Unit: Counts of a gl - # bal timer that pulses every 32 clock cycles. There is no known specific requirement for this; it may be set to zero. + # Cycles to wait after completing the SDRAM initialization sequence before + # starting the dynamic scheduler. Unit: Counts of a global timer that pul + # ses every 32 clock cycles. There is no known specific requirement for th + # is; it may be set to zero. # PSU_DDRC_INIT1_FINAL_WAIT_X32 0x0 - # Wait period before driving the OCD complete command to SDRAM. Unit: Counts of a global timer that pulses every 32 clock cycle - # . There is no known specific requirement for this; it may be set to zero. + # Wait period before driving the OCD complete command to SDRAM. Unit: Coun + # ts of a global timer that pulses every 32 clock cycles. There is no know + # n specific requirement for this; it may be set to zero. # PSU_DDRC_INIT1_PRE_OCD_X32 0x0 # SDRAM Initialization Register 1 @@ -1672,11 +1820,13 @@ set psu_ddr_init_data { mask_write 0XFD0700D4 0x01FF7F0F 0x00020000 # Register : INIT2 @ 0XFD0700D8

- # Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Unit: 32 clock cycles. + # Idle time after the reset command, tINIT4. Present only in designs confi + # gured to support LPDDR2. Unit: 32 clock cycles. # PSU_DDRC_INIT2_IDLE_AFTER_RESET_X32 0x23 - # Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2/LPDDR3. Unit: 1 clock cyc - # e. LPDDR2/LPDDR3 typically requires 5 x tCK delay. + # Time to wait after the first CKE high, tINIT2. Present only in designs c + # onfigured to support LPDDR2/LPDDR3. Unit: 1 clock cycle. LPDDR2/LPDDR3 t + # ypically requires 5 x tCK delay. # PSU_DDRC_INIT2_MIN_STABLE_CLOCK_X1 0x5 # SDRAM Initialization Register 2 @@ -1684,28 +1834,33 @@ set psu_ddr_init_data { mask_write 0XFD0700D8 0x0000FF0F 0x00002305 # Register : INIT3 @ 0XFD0700DC

- # DDR2: Value to write to MR register. Bit 8 is for DLL and the setting here is ignored. The uMCTL2 sets this bit appropriately - # DDR3/DDR4: Value loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LPDDR3/LPDDR4 - Value to write to MR1 - # register - # PSU_DDRC_INIT3_MR 0x930 + # DDR2: Value to write to MR register. Bit 8 is for DLL and the setting he + # re is ignored. The uMCTL2 sets this bit appropriately. DDR3/DDR4: Value + # loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LP + # DDR3/LPDDR4 - Value to write to MR1 register + # PSU_DDRC_INIT3_MR 0x730 - # DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setting in this register is ignored. The uMCTL2 sets those - # bits appropriately. DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evaluation mode training is enabled, thi - # bit is set appropriately by the uMCTL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/LPDDR3/LPDDR4 - V - # lue to write to MR2 register + # DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setti + # ng in this register is ignored. The uMCTL2 sets those bits appropriately + # . DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evalu + # ation mode training is enabled, this bit is set appropriately by the uMC + # TL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/ + # LPDDR3/LPDDR4 - Value to write to MR2 register # PSU_DDRC_INIT3_EMR 0x301 # SDRAM Initialization Register 3 - #(OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x09300301U) */ - mask_write 0XFD0700DC 0xFFFFFFFF 0x09300301 + #(OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x07300301U) */ + mask_write 0XFD0700DC 0xFFFFFFFF 0x07300301 # Register : INIT4 @ 0XFD0700E0

- # DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 - # egister mDDR: Unused + # DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 + # register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 register mDDR: Unus + # ed # PSU_DDRC_INIT4_EMR2 0x20 - # DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to - # rite to MR13 register + # DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 + # register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to write to MR13 regis + # ter # PSU_DDRC_INIT4_EMR3 0x200 # SDRAM Initialization Register 4 @@ -1713,12 +1868,15 @@ set psu_ddr_init_data { mask_write 0XFD0700E0 0xFFFFFFFF 0x00200200 # Register : INIT5 @ 0XFD0700E4

- # ZQ initial calibration, tZQINIT. Present only in designs configured to support DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock - # ycles. DDR3 typically requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requires 1 us. + # ZQ initial calibration, tZQINIT. Present only in designs configured to s + # upport DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock cycles. DDR3 typica + # lly requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requir + # es 1 us. # PSU_DDRC_INIT5_DEV_ZQINIT_X32 0x21 - # Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2/LPDDR3. LPDDR2/LPDD - # 3 typically requires 10 us. + # Maximum duration of the auto initialization, tINIT5. Present only in des + # igns configured to support LPDDR2/LPDDR3. LPDDR2/LPDDR3 typically requir + # es 10 us. # PSU_DDRC_INIT5_MAX_AUTO_INIT_X1024 0x4 # SDRAM Initialization Register 5 @@ -1726,10 +1884,12 @@ set psu_ddr_init_data { mask_write 0XFD0700E4 0x00FF03FF 0x00210004 # Register : INIT6 @ 0XFD0700E8

- # DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs only. + # DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs + # only. # PSU_DDRC_INIT6_MR4 0x0 - # DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs only. + # DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs + # only. # PSU_DDRC_INIT6_MR5 0x6c0 # SDRAM Initialization Register 6 @@ -1737,7 +1897,8 @@ set psu_ddr_init_data { mask_write 0XFD0700E8 0xFFFFFFFF 0x000006C0 # Register : INIT7 @ 0XFD0700EC

- # DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs only. + # DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs + # only. # PSU_DDRC_INIT7_MR6 0x819 # SDRAM Initialization Register 7 @@ -1745,50 +1906,73 @@ set psu_ddr_init_data { mask_write 0XFD0700EC 0xFFFF0000 0x08190000 # Register : DIMMCTL @ 0XFD0700F0

- # Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enab - # ed. This will be required for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapped. - 0 - BG0 and BG1 are swapped i - # address mirroring is enabled. + # Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and + # BG1 are NOT swapped even if Address Mirroring is enabled. This will be r + # equired for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapp + # ed. - 0 - BG0 and BG1 are swapped if address mirroring is enabled. # PSU_DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING 0x0 - # Enable for BG1 bit of MRS command. BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - # be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output - # nversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit. Note: This has no - # effect on the address of any other memory accesses, or of software-driven mode register accesses. If address mirroring is ena - # led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - Enabled - 0 - Disabled + # Enable for BG1 bit of MRS command. BG1 bit of the mode register address + # is specified as RFU (Reserved for Future Use) and must be programmed to + # 0 during MRS. In case where DRAMs which do not have BG1 are attached and + # both the CA parity and the Output Inversion are enabled, this must be s + # et to 0, so that the calculation of CA parity will not include BG1 bit. + # Note: This has no effect on the address of any other memory accesses, or + # of software-driven mode register accesses. If address mirroring is enab + # led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - En + # abled - 0 - Disabled # PSU_DDRC_DIMMCTL_MRS_BG1_EN 0x1 - # Enable for A17 bit of MRS command. A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - # be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, - # his must be set to 0, so that the calculation of CA parity will not include A17 bit. Note: This has no effect on the address - # f any other memory accesses, or of software-driven mode register accesses. - 1 - Enabled - 0 - Disabled + # Enable for A17 bit of MRS command. A17 bit of the mode register address + # is specified as RFU (Reserved for Future Use) and must be programmed to + # 0 during MRS. In case where DRAMs which do not have A17 are attached and + # the Output Inversion are enabled, this must be set to 0, so that the ca + # lculation of CA parity will not include A17 bit. Note: This has no effec + # t on the address of any other memory accesses, or of software-driven mod + # e register accesses. - 1 - Enabled - 0 - Disabled # PSU_DDRC_DIMMCTL_MRS_A17_EN 0x0 - # Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIMM implements the Output Inversion feature by default, - # which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, - # A0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the uMCTL2 during the automatic initi - # lization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. - # or B-side mode register accesses, these bits are inverted within the uMCTL2 to compensate for this RDIMM inversion. Note: Thi - # has no effect on the address of any other memory accesses, or of software-driven mode register accesses. - 1 - Implement out - # ut inversion for B-side DRAMs. - 0 - Do not implement output inversion for B-side DRAMs. + # Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIM + # M implements the Output Inversion feature by default, which means that t + # he following address, bank address and bank group bits of B-side DRAMs a + # re inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit en + # sures that, for mode register accesses generated by the uMCTL2 during th + # e automatic initialization routine and enabling of a particular DDR4 fea + # ture, separate A-side and B-side mode register accesses are generated. F + # or B-side mode register accesses, these bits are inverted within the uMC + # TL2 to compensate for this RDIMM inversion. Note: This has no effect on + # the address of any other memory accesses, or of software-driven mode reg + # ister accesses. - 1 - Implement output inversion for B-side DRAMs. - 0 - + # Do not implement output inversion for B-side DRAMs. # PSU_DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN 0x0 - # Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations). Some UDIMMs and DD - # 4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits - # re swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures t - # at, for mode register accesses during the automatic initialization routine, these bits are swapped within the uMCTL2 to compe - # sate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they ar - # swapped during the automatic MRS access to enable/disable of a particular DDR4 feature. Note: This has no effect on the addr - # ss of any other memory accesses, or of software-driven mode register accesses. This is not supported for mDDR, LPDDR2, LPDDR3 - # or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, - # hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ranks, implement address mirroring for MRS commands to d - # ring initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring) - 0 - Do - # not implement address mirroring + # Address Mirroring Enable (for multi-rank UDIMM implementations and multi + # -rank DDR4 RDIMM implementations). Some UDIMMs and DDR4 RDIMMs implement + # address mirroring for odd ranks, which means that the following address + # , bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, + # A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting t + # his bit ensures that, for mode register accesses during the automatic in + # itialization routine, these bits are swapped within the uMCTL2 to compen + # sate for this UDIMM/RDIMM swapping. In addition to the automatic initial + # ization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during th + # e automatic MRS access to enable/disable of a particular DDR4 feature. N + # ote: This has no effect on the address of any other memory accesses, or + # of software-driven mode register accesses. This is not supported for mDD + # R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 + # output of MRS for the odd ranks is same as BG0 because BG1 is invalid, + # hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ran + # ks, implement address mirroring for MRS commands to during initializatio + # n and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM imp + # lements address mirroring) - 0 - Do not implement address mirroring # PSU_DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN 0x0 - # Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only). This is not supported for mD - # R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of software driven MR commands (via M - # CTRL0/MRCTRL1), where software is responsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Send MRS commands t - # each ranks seperately - 1 - (non-DDR4) Send all commands to even and odd ranks seperately - 0 - Do not stagger accesses + # Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIM + # M implementations only). This is not supported for mDDR, LPDDR2, LPDDR3 + # or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of + # software driven MR commands (via MRCTRL0/MRCTRL1), where software is re + # sponsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Se + # nd MRS commands to each ranks seperately - 1 - (non-DDR4) Send all comma + # nds to even and odd ranks seperately - 0 - Do not stagger accesses # PSU_DDRC_DIMMCTL_DIMM_STAGGER_CS_EN 0x0 # DIMM Control Register @@ -1796,38 +1980,56 @@ set psu_ddr_init_data { mask_write 0XFD0700F0 0x0000003F 0x00000010 # Register : RANKCTL @ 0XFD0700F4

- # Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - # e writes to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should c - # nsider both PHY requirement and ODT requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for value of tphy_wrcs - # ap) If CRC feature is enabled, should be increased by 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increa - # ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be increased by 1. - ODT requirement: The value programmed - # n this register takes care of the ODT switch off timing requirement when switching ranks during writes. For LPDDR4, the requi - # ement is ODTLoff - ODTLon - BL/2 + 1 For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY requirement - # or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and round it u - # to the next integer. + # Only present for multi-rank configurations. Indicates the number of cloc + # ks of gap in data responses when performing consecutive writes to differ + # ent ranks. This is used to switch the delays in the PHY to match the ran + # k requirements. This value should consider both PHY requirement and ODT + # requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for v + # alue of tphy_wrcsgap) If CRC feature is enabled, should be increased by + # 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increas + # ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be inc + # reased by 1. - ODT requirement: The value programmed in this register ta + # kes care of the ODT switch off timing requirement when switching ranks d + # uring writes. For LPDDR4, the requirement is ODTLoff - ODTLon - BL/2 + 1 + # For configurations with MEMC_FREQ_RATIO=1, program this to the larger o + # f PHY requirement or ODT requirement. For configurations with MEMC_FREQ_ + # RATIO=2, program this to the larger value divided by two and round it up + # to the next integer. # PSU_DDRC_RANKCTL_DIFF_RANK_WR_GAP 0x6 - # Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - # e reads to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should co - # sider both PHY requirement and ODT requirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for value of tphy_rdcsg - # p) If read preamble is set to 2tCK(DDR4/LPDDR4 only), should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 onl - # ), should be increased by 1. - ODT requirement: The value programmed in this register takes care of the ODT switch off timing - # requirement when switching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY r - # quirement or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and - # ound it up to the next integer. + # Only present for multi-rank configurations. Indicates the number of cloc + # ks of gap in data responses when performing consecutive reads to differe + # nt ranks. This is used to switch the delays in the PHY to match the rank + # requirements. This value should consider both PHY requirement and ODT r + # equirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for va + # lue of tphy_rdcsgap) If read preamble is set to 2tCK(DDR4/LPDDR4 only), + # should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 only + # ), should be increased by 1. - ODT requirement: The value programmed in + # this register takes care of the ODT switch off timing requirement when s + # witching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, + # program this to the larger of PHY requirement or ODT requirement. For co + # nfigurations with MEMC_FREQ_RATIO=2, program this to the larger value di + # vided by two and round it up to the next integer. # PSU_DDRC_RANKCTL_DIFF_RANK_RD_GAP 0x6 - # Only present for multi-rank configurations. Background: Reads to the same rank can be performed back-to-back. Reads to differ - # nt ranks require additional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is to avoid possible data bus content - # on as well as to give PHY enough time to switch the delay when changing ranks. The uMCTL2 arbitrates for bus access on a cycl - # -by-cycle basis; therefore after a read is scheduled, there are few clock cycles (determined by the value on RANKCTL.diff_ran - # _rd_gap register) in which only reads from the same rank are eligible to be scheduled. This prevents reads from other ranks f - # om having fair access to the data bus. This parameter represents the maximum number of reads that can be scheduled consecutiv - # ly to the same rank. After this number is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by the scheduler to - # llow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fair - # ess. This feature can be DISABLED by setting this register to 0. When set to 0, the Controller will stay on the same rank as - # ong as commands are available for it. Minimum programmable value is 0 (feature disabled) and maximum programmable value is 0x - # . FOR PERFORMANCE ONLY. + # Only present for multi-rank configurations. Background: Reads to the sam + # e rank can be performed back-to-back. Reads to different ranks require a + # dditional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is + # to avoid possible data bus contention as well as to give PHY enough tim + # e to switch the delay when changing ranks. The uMCTL2 arbitrates for bus + # access on a cycle-by-cycle basis; therefore after a read is scheduled, + # there are few clock cycles (determined by the value on RANKCTL.diff_rank + # _rd_gap register) in which only reads from the same rank are eligible to + # be scheduled. This prevents reads from other ranks from having fair acc + # ess to the data bus. This parameter represents the maximum number of rea + # ds that can be scheduled consecutively to the same rank. After this numb + # er is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by + # the scheduler to allow all ranks a fair opportunity to be scheduled. Hig + # her numbers increase bandwidth utilization, lower numbers increase fairn + # ess. This feature can be DISABLED by setting this register to 0. When se + # t to 0, the Controller will stay on the same rank as long as commands ar + # e available for it. Minimum programmable value is 0 (feature disabled) a + # nd maximum programmable value is 0xF. FOR PERFORMANCE ONLY. # PSU_DDRC_RANKCTL_MAX_RANK_RD 0xf # Rank Control Register @@ -1835,110 +2037,155 @@ set psu_ddr_init_data { mask_write 0XFD0700F4 0x00000FFF 0x0000066F # Register : DRAMTMG0 @ 0XFD070100

- # Minimum time between write and precharge to same bank. Unit: Clocks Specifications: WL + BL/2 + tWR = approximately 8 cycles - # 15 ns = 14 clocks @400MHz and less for lower frequencies where: - WL = write latency - BL = burst length. This must match th - # value programmed in the BL bit of the mode register to the SDRAM. BST (burst terminate) is not supported at present. - tWR = - # Write recovery time. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this - # arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For configurations - # with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer value. + # Minimum time between write and precharge to same bank. Unit: Clocks Spec + # ifications: WL + BL/2 + tWR = approximately 8 cycles + 15 ns = 14 clocks + # @400MHz and less for lower frequencies where: - WL = write latency - BL + # = burst length. This must match the value programmed in the BL bit of t + # he mode register to the SDRAM. BST (burst terminate) is not supported at + # present. - tWR = Write recovery time. This comes directly from the SDRA + # M specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this p + # arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the + # above value by 2. No rounding up. For configurations with MEMC_FREQ_RAT + # IO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it u + # p to the next integer value. # PSU_DDRC_DRAMTMG0_WR2PRE 0x11 - # tFAW Valid only when 8 or more banks(or banks x bank groups) are present. In 8-bank design, at most 4 banks must be activated - # in a rolling window of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program this to (tFAW/2) and round up to next - # nteger value. In a 4-bank design, set this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. Unit: Clocks - # PSU_DDRC_DRAMTMG0_T_FAW 0xc + # tFAW Valid only when 8 or more banks(or banks x bank groups) are present + # . In 8-bank design, at most 4 banks must be activated in a rolling windo + # w of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program thi + # s to (tFAW/2) and round up to next integer value. In a 4-bank design, se + # t this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. + # Unit: Clocks + # PSU_DDRC_DRAMTMG0_T_FAW 0x10 - # tRAS(max): Maximum time between activate and precharge to same bank. This is the maximum time that a page can be kept open Mi - # imum value of this register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO=2, program this to (tRAS(max)-1)/2 - # No rounding up. Unit: Multiples of 1024 clocks. + # tRAS(max): Maximum time between activate and precharge to same bank. Thi + # s is the maximum time that a page can be kept open Minimum value of this + # register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO + # =2, program this to (tRAS(max)-1)/2. No rounding up. Unit: Multiples of + # 1024 clocks. # PSU_DDRC_DRAMTMG0_T_RAS_MAX 0x24 - # tRAS(min): Minimum time between activate and precharge to the same bank. For configurations with MEMC_FREQ_RATIO=2, 1T mode, - # rogram this to tRAS(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, program this t - # (tRAS(min)/2) and round it up to the next integer value. Unit: Clocks + # tRAS(min): Minimum time between activate and precharge to the same bank. + # For configurations with MEMC_FREQ_RATIO=2, 1T mode, program this to tRA + # S(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T + # mode or LPDDR4 mode, program this to (tRAS(min)/2) and round it up to th + # e next integer value. Unit: Clocks # PSU_DDRC_DRAMTMG0_T_RAS_MIN 0x12 # SDRAM Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x110C2412U) */ - mask_write 0XFD070100 0x7F3F7F3F 0x110C2412 + #(OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x11102412U) */ + mask_write 0XFD070100 0x7F3F7F3F 0x11102412 # Register : DRAMTMG1 @ 0XFD070104

- # tXP: Minimum time after power-down exit to any operation. For DDR3, this should be programmed to tXPDLL if slow powerdown exi - # is selected in MR0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For configurations with MEMC_FREQ_RATIO=2, - # rogram this to (tXP/2) and round it up to the next integer value. Units: Clocks + # tXP: Minimum time after power-down exit to any operation. For DDR3, this + # should be programmed to tXPDLL if slow powerdown exit is selected in MR + # 0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For conf + # igurations with MEMC_FREQ_RATIO=2, program this to (tXP/2) and round it + # up to the next integer value. Units: Clocks # PSU_DDRC_DRAMTMG1_T_XP 0x4 - # tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL/2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - D - # R4: Max of following two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 - LPDDR2: Depends on if it's LPDDR2 - # S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + tRTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) - 4 - LPDDR4: BL - # 2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For conf - # gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer val - # e. Unit: Clocks. + # tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL + # /2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - DDR4: Max of followi + # ng two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 + # - LPDDR2: Depends on if it's LPDDR2-S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + t + # RTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) + # - 4 - LPDDR4: BL/2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_ + # RATIO=2, 1T mode, divide the above value by 2. No rounding up. For confi + # gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the abo + # ve value by 2 and round it up to the next integer value. Unit: Clocks. # PSU_DDRC_DRAMTMG1_RD2PRE 0x4 - # tRC: Minimum time between activates to same bank. For configurations with MEMC_FREQ_RATIO=2, program this to (tRC/2) and roun - # up to next integer value. Unit: Clocks. - # PSU_DDRC_DRAMTMG1_T_RC 0x19 + # tRC: Minimum time between activates to same bank. For configurations wit + # h MEMC_FREQ_RATIO=2, program this to (tRC/2) and round up to next intege + # r value. Unit: Clocks. + # PSU_DDRC_DRAMTMG1_T_RC 0x1a # SDRAM Timing Register 1 - #(OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x00040419U) */ - mask_write 0XFD070104 0x001F1F7F 0x00040419 + #(OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x0004041AU) */ + mask_write 0XFD070104 0x001F1F7F 0x0004041A # Register : DRAMTMG2 @ 0XFD070108

- # Set to WL Time from write command to write data on SDRAM interface. This must be set to WL. For mDDR, it should normally be s - # t to 1. Note that, depending on the PHY, if using RDIMM, it may be necessary to use a value of WL + 1 to compensate for the e - # tra cycle of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above - # equation by 2, and round it up to next integer. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAININ - # is set), as the DFI read and write latencies defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks + # Set to WL Time from write command to write data on SDRAM interface. This + # must be set to WL. For mDDR, it should normally be set to 1. Note that, + # depending on the PHY, if using RDIMM, it may be necessary to use a valu + # e of WL + 1 to compensate for the extra cycle of latency through the RDI + # MM For configurations with MEMC_FREQ_RATIO=2, divide the value calculate + # d using the above equation by 2, and round it up to next integer. This r + # egister field is not required for DDR2 and DDR3 (except if MEMC_TRAINING + # is set), as the DFI read and write latencies defined in DFITMG0 and DFI + # TMG1 are sufficient for those protocols Unit: clocks # PSU_DDRC_DRAMTMG2_WRITE_LATENCY 0x7 - # Set to RL Time from read command to read data on SDRAM interface. This must be set to RL. Note that, depending on the PHY, if - # using RDIMM, it mat be necessary to use a value of RL + 1 to compensate for the extra cycle of latency through the RDIMM For - # onfigurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next inte - # er. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAINING is set), as the DFI read and write latenci - # s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks + # Set to RL Time from read command to read data on SDRAM interface. This m + # ust be set to RL. Note that, depending on the PHY, if using RDIMM, it ma + # t be necessary to use a value of RL + 1 to compensate for the extra cycl + # e of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2 + # , divide the value calculated using the above equation by 2, and round i + # t up to next integer. This register field is not required for DDR2 and D + # DR3 (except if MEMC_TRAINING is set), as the DFI read and write latencie + # s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit + # : clocks # PSU_DDRC_DRAMTMG2_READ_LATENCY 0x8 - # DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL LPDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL - # PDDR4(DQ ODT is Disabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL LPDDR4(DQ ODT is Enabled) : RL + B - # /2 + RU(tDQSCKmax/tCK) + RD_POSTAMBLE - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write command. Include - # time for bus turnaround and all per-bank, per-rank, and global constraints. Unit: Clocks. Where: - WL = write latency - BL = - # urst length. This must match the value programmed in the BL bit of the mode register to the SDRAM - RL = read latency = CAS l - # tency - WR_PREAMBLE = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = read postamble. This is unique to L - # DDR4. For LPDDR2/LPDDR3/LPDDR4, if derating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should be used. For conf - # gurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. + # DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL L + # PDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL LPDDR4(DQ ODT is Di + # sabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL + # LPDDR4(DQ ODT is Enabled) : RL + BL/2 + RU(tDQSCKmax/tCK) + RD_POSTAMBL + # E - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write + # command. Include time for bus turnaround and all per-bank, per-rank, an + # d global constraints. Unit: Clocks. Where: - WL = write latency - BL = b + # urst length. This must match the value programmed in the BL bit of the m + # ode register to the SDRAM - RL = read latency = CAS latency - WR_PREAMBL + # E = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = + # read postamble. This is unique to LPDDR4. For LPDDR2/LPDDR3/LPDDR4, if d + # erating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should + # be used. For configurations with MEMC_FREQ_RATIO=2, divide the value cal + # culated using the above equation by 2, and round it up to next integer. # PSU_DDRC_DRAMTMG2_RD2WR 0x6 - # DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimum time from write command to read command for same ba - # k group. In others, minimum time from write command to read command. Includes time for bus turnaround, recovery times, and al - # per-bank, per-rank, and global constraints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burs - # length. This must match the value programmed in the BL bit of the mode register to the SDRAM - tWTR_L = internal write to re - # d command delay for same bank group. This comes directly from the SDRAM specification. - tWTR = internal write to read comman - # delay. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 operation. For configu - # ations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. - # PSU_DDRC_DRAMTMG2_WR2RD 0xe + # DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimu + # m time from write command to read command for same bank group. In others + # , minimum time from write command to read command. Includes time for bus + # turnaround, recovery times, and all per-bank, per-rank, and global cons + # traints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity la + # tency - BL = burst length. This must match the value programmed in the B + # L bit of the mode register to the SDRAM - tWTR_L = internal write to rea + # d command delay for same bank group. This comes directly from the SDRAM + # specification. - tWTR = internal write to read command delay. This comes + # directly from the SDRAM specification. Add one extra cycle for LPDDR2/L + # PDDR3/LPDDR4 operation. For configurations with MEMC_FREQ_RATIO=2, divid + # e the value calculated using the above equation by 2, and round it up to + # next integer. + # PSU_DDRC_DRAMTMG2_WR2RD 0xd # SDRAM Timing Register 2 - #(OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060EU) */ - mask_write 0XFD070108 0x3F3F3F3F 0x0708060E + #(OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060DU) */ + mask_write 0XFD070108 0x3F3F3F3F 0x0708060D # Register : DRAMTMG3 @ 0XFD07010C

- # Time to wait after a mode register write or read (MRW or MRR). Present only in designs configured to support LPDDR2, LPDDR3 o - # LPDDR4. LPDDR2 typically requires value of 5. LPDDR3 typically requires value of 10. LPDDR4: Set this to the larger of tMRW - # nd tMRWCKEL. For LPDDR2, this register is used for the time from a MRW/MRR to all other commands. For LDPDR3, this register i - # used for the time from a MRW/MRR to a MRW/MRR. + # Time to wait after a mode register write or read (MRW or MRR). Present o + # nly in designs configured to support LPDDR2, LPDDR3 or LPDDR4. LPDDR2 ty + # pically requires value of 5. LPDDR3 typically requires value of 10. LPDD + # R4: Set this to the larger of tMRW and tMRWCKEL. For LPDDR2, this regist + # er is used for the time from a MRW/MRR to all other commands. For LDPDR3 + # , this register is used for the time from a MRW/MRR to a MRW/MRR. # PSU_DDRC_DRAMTMG3_T_MRW 0x5 - # tMRD: Cycles to wait after a mode register write or read. Depending on the connected SDRAM, tMRD represents: DDR2/mDDR: Time - # rom MRS to any command DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Time from MRS to non-MRS command For c - # nfigurations with MEMC_FREQ_RATIO=2, program this to (tMRD/2) and round it up to the next integer value. If C/A parity for DD - # 4 is used, set to tMRD_PAR(tMOD+PL) instead. + # tMRD: Cycles to wait after a mode register write or read. Depending on t + # he connected SDRAM, tMRD represents: DDR2/mDDR: Time from MRS to any com + # mand DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Tim + # e from MRS to non-MRS command For configurations with MEMC_FREQ_RATIO=2, + # program this to (tMRD/2) and round it up to the next integer value. If + # C/A parity for DDR4 is used, set to tMRD_PAR(tMOD+PL) instead. # PSU_DDRC_DRAMTMG3_T_MRD 0x4 - # tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode command and following non-load mode command. If C/A pari - # y for DDR4 is used, set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or tMOD/2 (rounded up to next integer - # if MEMC_FREQ_RATIO=2. Note that if using RDIMM, depending on the PHY, it may be necessary to use a value of tMOD + 1 or (tMO - # + 1)/2 to compensate for the extra cycle of latency applied to mode register writes by the RDIMM chip. + # tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode com + # mand and following non-load mode command. If C/A parity for DDR4 is used + # , set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or + # tMOD/2 (rounded up to next integer) if MEMC_FREQ_RATIO=2. Note that if + # using RDIMM, depending on the PHY, it may be necessary to use a value of + # tMOD + 1 or (tMOD + 1)/2 to compensate for the extra cycle of latency a + # pplied to mode register writes by the RDIMM chip. # PSU_DDRC_DRAMTMG3_T_MOD 0xc # SDRAM Timing Register 3 @@ -1946,24 +2193,32 @@ set psu_ddr_init_data { mask_write 0XFD07010C 0x3FF3F3FF 0x0050400C # Register : DRAMTMG4 @ 0XFD070110

- # tRCD - tAL: Minimum time from activate to read or write command to same bank. For configurations with MEMC_FREQ_RATIO=2, prog - # am this to ((tRCD - tAL)/2) and round it up to the next integer value. Minimum value allowed for this register is 1, which im - # lies minimum (tRCD - tAL) value to be 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. + # tRCD - tAL: Minimum time from activate to read or write command to same + # bank. For configurations with MEMC_FREQ_RATIO=2, program this to ((tRCD + # - tAL)/2) and round it up to the next integer value. Minimum value allow + # ed for this register is 1, which implies minimum (tRCD - tAL) value to b + # e 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. # PSU_DDRC_DRAMTMG4_T_RCD 0x8 - # DDR4: tCCD_L: This is the minimum time between two reads or two writes for same bank group. Others: tCCD: This is the minimum - # time between two reads or two writes. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_L/2 or tCCD/2) and rou - # d it up to the next integer value. Unit: clocks. + # DDR4: tCCD_L: This is the minimum time between two reads or two writes f + # or same bank group. Others: tCCD: This is the minimum time between two r + # eads or two writes. For configurations with MEMC_FREQ_RATIO=2, program t + # his to (tCCD_L/2 or tCCD/2) and round it up to the next integer value. U + # nit: clocks. # PSU_DDRC_DRAMTMG4_T_CCD 0x3 - # DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' for same bank group. Others: tRRD: Minimum time betwee - # activates from bank 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program this to (tRRD_L/2 or tRRD/2) and round - # it up to the next integer value. Unit: Clocks. + # DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' f + # or same bank group. Others: tRRD: Minimum time between activates from ba + # nk 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program thi + # s to (tRRD_L/2 or tRRD/2) and round it up to the next integer value. Uni + # t: Clocks. # PSU_DDRC_DRAMTMG4_T_RRD 0x3 - # tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ_RATIO=1 configurations, t_rp should be set to RoundU - # (tRP/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(tRP/tCK)/2) + 1. For MEMC_FREQ_RATIO - # 2 configurations in LPDDR4, t_rp should be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. + # tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ + # _RATIO=1 configurations, t_rp should be set to RoundUp(tRP/tCK). For MEM + # C_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(t + # RP/tCK)/2) + 1. For MEMC_FREQ_RATIO=2 configurations in LPDDR4, t_rp sho + # uld be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. # PSU_DDRC_DRAMTMG4_T_RP 0x9 # SDRAM Timing Register 4 @@ -1971,28 +2226,36 @@ set psu_ddr_init_data { mask_write 0XFD070110 0x1F0F0F1F 0x08030309 # Register : DRAMTMG5 @ 0XFD070114

- # This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stab - # e time before SRX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEH - DDR2: 1 - DDR3: tCKSRX - DDR4: - # tCKSRX For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next in - # eger. + # This is the time before Self Refresh Exit that CK is maintained as a val + # id clock before issuing SRX. Specifies the clock stable time before SRX. + # Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCK + # EH - DDR2: 1 - DDR3: tCKSRX - DDR4: tCKSRX For configurations with MEMC_ + # FREQ_RATIO=2, program this to recommended value divided by two and round + # it up to next integer. # PSU_DDRC_DRAMTMG5_T_CKSRX 0x6 - # This is the time after Self Refresh Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay afte - # SRE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 - DDR3: max (10 ns, 5 tCK) - DDR4: - # ax (10 ns, 5 tCK) For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up - # to next integer. + # This is the time after Self Refresh Down Entry that CK is maintained as + # a valid clock. Specifies the clock disable delay after SRE. Recommended + # settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 + # - DDR3: max (10 ns, 5 tCK) - DDR4: max (10 ns, 5 tCK) For configurations + # with MEMC_FREQ_RATIO=2, program this to recommended value divided by tw + # o and round it up to next integer. # PSU_DDRC_DRAMTMG5_T_CKSRE 0x6 - # Minimum CKE low width for Self refresh or Self refresh power down entry to exit timing in memory clock cycles. Recommended se - # tings: - mDDR: tRFC - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: tCKE - DDR3: tCKE + 1 - DDR4: tCKE - # 1 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next intege - # . + # Minimum CKE low width for Self refresh or Self refresh power down entry + # to exit timing in memory clock cycles. Recommended settings: - mDDR: tRF + # C - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: + # tCKE - DDR3: tCKE + 1 - DDR4: tCKE + 1 For configurations with MEMC_FREQ + # _RATIO=2, program this to recommended value divided by two and round it + # up to next integer. # PSU_DDRC_DRAMTMG5_T_CKESR 0x4 - # Minimum number of cycles of CKE HIGH/LOW during power-down and self refresh. - LPDDR2/LPDDR3 mode: Set this to the larger of - # CKE or tCKESR - LPDDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/non-LPDDR3/non-LPDDR4 designs: Set - # his to tCKE value. For configurations with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and round it up to th - # next integer value. Unit: Clocks. + # Minimum number of cycles of CKE HIGH/LOW during power-down and self refr + # esh. - LPDDR2/LPDDR3 mode: Set this to the larger of tCKE or tCKESR - LP + # DDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/ + # non-LPDDR3/non-LPDDR4 designs: Set this to tCKE value. For configuration + # s with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and + # round it up to the next integer value. Unit: Clocks. # PSU_DDRC_DRAMTMG5_T_CKE 0x3 # SDRAM Timing Register 5 @@ -2000,22 +2263,29 @@ set psu_ddr_init_data { mask_write 0XFD070114 0x0F0F3F1F 0x06060403 # Register : DRAMTMG6 @ 0XFD070118

- # This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after - # PDE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, program this to recom - # ended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3 - # devices. + # This is the time after Deep Power Down Entry that CK is maintained as a + # valid clock. Specifies the clock disable delay after DPDE. Recommended s + # ettings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_ + # FREQ_RATIO=2, program this to recommended value divided by two and round + # it up to next integer. This is only present for designs supporting mDDR + # or LPDDR2/LPDDR3 devices. # PSU_DDRC_DRAMTMG6_T_CKDPDE 0x1 - # This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock - # table time before DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, pr - # gram this to recommended value divided by two and round it up to next integer. This is only present for designs supporting mD - # R or LPDDR2 devices. + # This is the time before Deep Power Down Exit that CK is maintained as a + # valid clock before issuing DPDX. Specifies the clock stable time before + # DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For config + # urations with MEMC_FREQ_RATIO=2, program this to recommended value divid + # ed by two and round it up to next integer. This is only present for desi + # gns supporting mDDR or LPDDR2 devices. # PSU_DDRC_DRAMTMG6_T_CKDPDX 0x1 - # This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing Clock Stop Exit. Specifies the - # lock stable time before next command after Clock Stop Exit. Recommended settings: - mDDR: 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + - # 2 - LPDDR4: tXP + 2 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it - # p to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + # This is the time before Clock Stop Exit that CK is maintained as a valid + # clock before issuing Clock Stop Exit. Specifies the clock stable time b + # efore next command after Clock Stop Exit. Recommended settings: - mDDR: + # 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + 2 - LPDDR4: tXP + 2 For configuratio + # ns with MEMC_FREQ_RATIO=2, program this to recommended value divided by + # two and round it up to next integer. This is only present for designs su + # pporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_DRAMTMG6_T_CKCSX 0x4 # SDRAM Timing Register 6 @@ -2023,16 +2293,20 @@ set psu_ddr_init_data { mask_write 0XFD070118 0x0F0F000F 0x01010004 # Register : DRAMTMG7 @ 0XFD07011C

- # This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. - # ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configurations with MEMC_FREQ_RATIO=2, program t - # is to recommended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or L - # DDR2/LPDDR3/LPDDR4 devices. + # This is the time after Power Down Entry that CK is maintained as a valid + # clock. Specifies the clock disable delay after PDE. Recommended setting + # s: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configuration + # s with MEMC_FREQ_RATIO=2, program this to recommended value divided by t + # wo and round it up to next integer. This is only present for designs sup + # porting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_DRAMTMG7_T_CKPDE 0x6 - # This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable - # time before PDX. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For configurations with MEMC_FREQ_RATIO= - # , program this to recommended value divided by two and round it up to next integer. This is only present for designs supporti - # g mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + # This is the time before Power Down Exit that CK is maintained as a valid + # clock before issuing PDX. Specifies the clock stable time before PDX. R + # ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For c + # onfigurations with MEMC_FREQ_RATIO=2, program this to recommended value + # divided by two and round it up to next integer. This is only present for + # designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_DRAMTMG7_T_CKPDX 0x6 # SDRAM Timing Register 7 @@ -2040,50 +2314,64 @@ set psu_ddr_init_data { mask_write 0XFD07011C 0x00000F0F 0x00000606 # Register : DRAMTMG8 @ 0XFD070120

- # tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and Geardown mode). For configurations with MEMC_FREQ_RAT - # O=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Thi - # is applicable to only ZQCL/ZQCS commands. Note: Ensure this is less than or equal to t_xs_x32. - # PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x4 + # tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and + # Geardown mode). For configurations with MEMC_FREQ_RATIO=2, program this + # to the above value divided by 2 and round up to next integer value. Unit + # : Multiples of 32 clocks. Note: This is applicable to only ZQCL/ZQCS com + # mands. Note: Ensure this is less than or equal to t_xs_x32. + # PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x3 - # tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in Self Refresh Abort. For configurations with MEMC_FREQ_ - # ATIO=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: - # nsure this is less than or equal to t_xs_x32. - # PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x4 + # tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in S + # elf Refresh Abort. For configurations with MEMC_FREQ_RATIO=2, program th + # is to the above value divided by 2 and round up to next integer value. U + # nit: Multiples of 32 clocks. Note: Ensure this is less than or equal to + # t_xs_x32. + # PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x3 - # tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - # bove value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - # DR4 SDRAMs. + # tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For config + # urations with MEMC_FREQ_RATIO=2, program this to the above value divided + # by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + # Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. # PSU_DDRC_DRAMTMG8_T_XS_DLL_X32 0xd - # tXS: Exit Self Refresh to commands not requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - # above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - # DDR4 SDRAMs. + # tXS: Exit Self Refresh to commands not requiring a locked DLL. For confi + # gurations with MEMC_FREQ_RATIO=2, program this to the above value divide + # d by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + # Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. # PSU_DDRC_DRAMTMG8_T_XS_X32 0x6 # SDRAM Timing Register 8 - #(OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x04040D06U) */ - mask_write 0XFD070120 0x7F7F7F7F 0x04040D06 + #(OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x03030D06U) */ + mask_write 0XFD070120 0x7F7F7F7F 0x03030D06 # Register : DRAMTMG9 @ 0XFD070124

- # DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present only with MEMC_FREQ_RATIO=2 + # DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present o + # nly with MEMC_FREQ_RATIO=2 # PSU_DDRC_DRAMTMG9_DDR4_WR_PREAMBLE 0x0 - # tCCD_S: This is the minimum time between two reads or two writes for different bank group. For bank switching (from bank 'a' - # o bank 'b'), the minimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_S/2) and ro - # nd it up to the next integer value. Present only in designs configured to support DDR4. Unit: clocks. + # tCCD_S: This is the minimum time between two reads or two writes for dif + # ferent bank group. For bank switching (from bank 'a' to bank 'b'), the m + # inimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2 + # , program this to (tCCD_S/2) and round it up to the next integer value. + # Present only in designs configured to support DDR4. Unit: clocks. # PSU_DDRC_DRAMTMG9_T_CCD_S 0x2 - # tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for different bank group. For configurations with MEMC_FREQ_ - # ATIO=2, program this to (tRRD_S/2) and round it up to the next integer value. Present only in designs configured to support D - # R4. Unit: Clocks. + # tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for dif + # ferent bank group. For configurations with MEMC_FREQ_RATIO=2, program th + # is to (tRRD_S/2) and round it up to the next integer value. Present only + # in designs configured to support DDR4. Unit: Clocks. # PSU_DDRC_DRAMTMG9_T_RRD_S 0x2 - # CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command for different bank group. Includes time for bus turn - # round, recovery times, and all per-bank, per-rank, and global constraints. Present only in designs configured to support DDR4 - # Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burst length. This must match the value programm - # d in the BL bit of the mode register to the SDRAM - tWTR_S = internal write to read command delay for different bank group. T - # is comes directly from the SDRAM specification. For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using - # he above equation by 2, and round it up to next integer. + # CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command + # for different bank group. Includes time for bus turnaround, recovery ti + # mes, and all per-bank, per-rank, and global constraints. Present only in + # designs configured to support DDR4. Unit: Clocks. Where: - CWL = CAS wr + # ite latency - PL = Parity latency - BL = burst length. This must match t + # he value programmed in the BL bit of the mode register to the SDRAM - tW + # TR_S = internal write to read command delay for different bank group. Th + # is comes directly from the SDRAM specification. For configurations with + # MEMC_FREQ_RATIO=2, divide the value calculated using the above equation + # by 2, and round it up to next integer. # PSU_DDRC_DRAMTMG9_WR2RD_S 0xb # SDRAM Timing Register 9 @@ -2091,39 +2379,48 @@ set psu_ddr_init_data { mask_write 0XFD070124 0x40070F3F 0x0002020B # Register : DRAMTMG11 @ 0XFD07012C

- # tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program - # this to (tXMPDLL/2) and round it up to the next integer value. Present only in designs configured to support DDR4. Unit: Mult - # ples of 32 clocks. - # PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x6f + # tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DL + # L. For configurations with MEMC_FREQ_RATIO=2, program this to (tXMPDLL/2 + # ) and round it up to the next integer value. Present only in designs con + # figured to support DDR4. Unit: Multiples of 32 clocks. + # PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x70 - # tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For configurations with MEMC_FREQ_RATIO=2, program this t - # RoundUp(tMPX_LH/2)+1. Present only in designs configured to support DDR4. Unit: clocks. + # tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For + # configurations with MEMC_FREQ_RATIO=2, program this to RoundUp(tMPX_LH/2 + # )+1. Present only in designs configured to support DDR4. Unit: clocks. # PSU_DDRC_DRAMTMG11_T_MPX_LH 0x7 - # tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_FREQ_RATIO=2, program this to (tMPX_S/2) and round it - # up to the next integer value. Present only in designs configured to support DDR4. Unit: Clocks. + # tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_ + # FREQ_RATIO=2, program this to (tMPX_S/2) and round it up to the next int + # eger value. Present only in designs configured to support DDR4. Unit: Cl + # ocks. # PSU_DDRC_DRAMTMG11_T_MPX_S 0x1 - # tCKMPE: Minimum valid clock requirement after MPSM entry. Present only in designs configured to support DDR4. Unit: Clocks. F - # r configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next i - # teger. + # tCKMPE: Minimum valid clock requirement after MPSM entry. Present only i + # n designs configured to support DDR4. Unit: Clocks. For configurations w + # ith MEMC_FREQ_RATIO=2, divide the value calculated using the above equat + # ion by 2, and round it up to next integer. # PSU_DDRC_DRAMTMG11_T_CKMPE 0xe # SDRAM Timing Register 11 - #(OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x6F07010EU) */ - mask_write 0XFD07012C 0x7F1F031F 0x6F07010E + #(OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x7007010EU) */ + mask_write 0XFD07012C 0x7F1F031F 0x7007010E # Register : DRAMTMG12 @ 0XFD070130

- # tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larger of tESCKE or tCMDCKE For configurations with MEMC_ - # REQ_RATIO=2, program this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer value. + # tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larg + # er of tESCKE or tCMDCKE For configurations with MEMC_FREQ_RATIO=2, progr + # am this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer valu + # e. # PSU_DDRC_DRAMTMG12_T_CMDCKE 0x2 - # tCKEHCMD: Valid command requirement after CKE input HIGH. For configurations with MEMC_FREQ_RATIO=2, program this to (tCKEHCM - # /2) and round it up to next integer value. + # tCKEHCMD: Valid command requirement after CKE input HIGH. For configurat + # ions with MEMC_FREQ_RATIO=2, program this to (tCKEHCMD/2) and round it u + # p to next integer value. # PSU_DDRC_DRAMTMG12_T_CKEHCMD 0x6 - # tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. For configurations with MEMC_FREQ_RATIO=2, program th - # s to (tMRD_PDA/2) and round it up to next integer value. + # tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. + # For configurations with MEMC_FREQ_RATIO=2, program this to (tMRD_PDA/2) + # and round it up to next integer value. # PSU_DDRC_DRAMTMG12_T_MRD_PDA 0x8 # SDRAM Timing Register 12 @@ -2131,38 +2428,51 @@ set psu_ddr_init_data { mask_write 0XFD070130 0x00030F1F 0x00020608 # Register : ZQCTL0 @ 0XFD070180

- # - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Register DBGCMD.zq_calib_short can be used instead to is - # ue ZQ calibration request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibration) commands based on ZQCTL1.t_zq_s - # ort_interval_x1024. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + # - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Reg + # ister DBGCMD.zq_calib_short can be used instead to issue ZQ calibration + # request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibrati + # on) commands based on ZQCTL1.t_zq_short_interval_x1024. This is only pre + # sent for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_ZQCTL0_DIS_AUTO_ZQ 0x1 - # - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Powerdown exit. Only applicable when run in DDR3 - # or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Power - # own exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present for designs suppo - # ting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + # - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refres + # h/SR-Powerdown exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 + # or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibratio + # n) command at Self-Refresh/SR-Powerdown exit. Only applicable when run i + # n DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present + # for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_ZQCTL0_DIS_SRX_ZQCL 0x0 - # - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQCL/ZQCS/MPC(ZQ calibration) commands are sent to one r - # nk at a time with tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that commands to different ranks do not ov - # rlap. - 0 - ZQ resistor is not shared. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + # - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQC + # L/ZQCS/MPC(ZQ calibration) commands are sent to one rank at a time with + # tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that co + # mmands to different ranks do not overlap. - 0 - ZQ resistor is not share + # d. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR + # 3/LPDDR4 devices. # PSU_DDRC_ZQCTL0_ZQ_RESISTOR_SHARED 0x0 - # - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. - 0 - Enable - # ssuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. This is only present for des - # gns supporting DDR4 devices. + # - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. + # Only applicable when run in DDR4 mode. - 0 - Enable issuing of ZQCL com + # mand at Maximum Power Saving Mode exit. Only applicable when run in DDR4 + # mode. This is only present for designs supporting DDR4 devices. # PSU_DDRC_ZQCTL0_DIS_MPSMX_ZQCL 0x0 - # tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Number of cycles of NOP required after a ZQCL (ZQ calibrat - # on long)/MPC(ZQ Start) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2: DDR3/DDR4: program this to tZQo - # er/2 and round it up to the next integer value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to the next integer va - # ue. LPDDR4: program this to tZQCAL/2 and round it up to the next integer value. Unit: Clock cycles. This is only present for - # esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + # tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Numbe + # r of cycles of NOP required after a ZQCL (ZQ calibration long)/MPC(ZQ St + # art) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO + # =2: DDR3/DDR4: program this to tZQoper/2 and round it up to the next int + # eger value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to th + # e next integer value. LPDDR4: program this to tZQCAL/2 and round it up t + # o the next integer value. Unit: Clock cycles. This is only present for d + # esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_ZQCTL0_T_ZQ_LONG_NOP 0x100 - # tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of NOP required after a ZQCS (ZQ calibration short)/MPC - # ZQ Latch) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program this to tZQCS/2 and round it up to t - # e next integer value. Unit: Clock cycles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devic - # s. + # tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of + # NOP required after a ZQCS (ZQ calibration short)/MPC(ZQ Latch) command + # is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program t + # his to tZQCS/2 and round it up to the next integer value. Unit: Clock cy + # cles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LP + # DDR3/LPDDR4 devices. # PSU_DDRC_ZQCTL0_T_ZQ_SHORT_NOP 0x40 # ZQ Control Register 0 @@ -2170,53 +2480,70 @@ set psu_ddr_init_data { mask_write 0XFD070180 0xF7FF03FF 0x81000040 # Register : ZQCTL1 @ 0XFD070184

- # tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibration Reset) command is issued to SDRAM. For configurati - # ns with MEMC_FREQ_RATIO=2, program this to tZQReset/2 and round it up to the next integer value. Unit: Clock cycles. This is - # nly present for designs supporting LPDDR2/LPDDR3/LPDDR4 devices. + # tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibrati + # on Reset) command is issued to SDRAM. For configurations with MEMC_FREQ_ + # RATIO=2, program this to tZQReset/2 and round it up to the next integer + # value. Unit: Clock cycles. This is only present for designs supporting L + # PDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_ZQCTL1_T_ZQ_RESET_NOP 0x20 - # Average interval to wait between automatically issuing ZQCS (ZQ calibration short)/MPC(ZQ calibration) commands to DDR3/DDR4/ - # PDDR2/LPDDR3/LPDDR4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles. This is only present for designs - # upporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - # PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x19707 + # Average interval to wait between automatically issuing ZQCS (ZQ calibrat + # ion short)/MPC(ZQ calibration) commands to DDR3/DDR4/LPDDR2/LPDDR3/LPDDR + # 4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles + # . This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3 + # /LPDDR4 devices. + # PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x196dc # ZQ Control Register 1 - #(OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x02019707U) */ - mask_write 0XFD070184 0x3FFFFFFF 0x02019707 + #(OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x020196DCU) */ + mask_write 0XFD070184 0x3FFFFFFF 0x020196DC # Register : DFITMG0 @ 0XFD070190

- # Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - # s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - # , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - # this parameter by RDIMM's extra cycle of latency in terms of DFI clock. + # Specifies the number of DFI clock cycles after an assertion or de-assert + # ion of the DFI control signals that the control signals at the PHY-DRAM + # interface reflect the assertion or de-assertion. If the DFI clock and th + # e memory clock are not phase-aligned, this timing parameter should be ro + # unded up to the next integer value. Note that if using RDIMM, it is nece + # ssary to increment this parameter by RDIMM's extra cycle of latency in t + # erms of DFI clock. # PSU_DDRC_DFITMG0_DFI_T_CTRL_DELAY 0x4 - # Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - # 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - # fer to PHY specification for correct value. + # Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + # sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + # is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + # - 1 in terms of SDR clock cycles Refer to PHY specification for correct + # value. # PSU_DDRC_DFITMG0_DFI_RDDATA_USE_SDR 0x1 - # Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - # ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - # , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - # latency through the RDIMM. Unit: Clocks + # Time from the assertion of a read command on the DFI interface to the as + # sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + # ect value. This corresponds to the DFI parameter trddata_en. Note that, + # depending on the PHY, if using RDIMM, it may be necessary to use the val + # ue (CL + 1) in the calculation of trddata_en. This is to compensate for + # the extra cycle of latency through the RDIMM. Unit: Clocks # PSU_DDRC_DFITMG0_DFI_T_RDDATA_EN 0xb - # Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - # .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - # HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - # e. + # Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + # ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + # in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + # i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + # clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + # n for correct value. # PSU_DDRC_DFITMG0_DFI_WRDATA_USE_SDR 0x1 - # Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - # dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - # te, max supported value is 8. Unit: Clocks + # Specifies the number of clock cycles between when dfi_wrdata_en is asser + # ted to when the associated write data is driven on the dfi_wrdata signal + # . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + # specification for correct value. Note, max supported value is 8. Unit: + # Clocks # PSU_DDRC_DFITMG0_DFI_TPHY_WRDATA 0x2 - # Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - # parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - # necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - # rough the RDIMM. + # Write latency Number of clocks from the write command to write data enab + # le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + # lat. Refer to PHY specification for correct value.Note that, depending o + # n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + # in the calculation of tphy_wrlat. This is to compensate for the extra c + # ycle of latency through the RDIMM. # PSU_DDRC_DFITMG0_DFI_TPHY_WRLAT 0xb # DFI Timing Register 0 @@ -2224,31 +2551,40 @@ set psu_ddr_init_data { mask_write 0XFD070190 0x1FBFBF3F 0x048B820B # Register : DFITMG1 @ 0XFD070194

- # Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated command is driven. - # his field is used for CAL mode, should be set to '0' or the value which matches the CAL mode register setting in the DRAM. If - # the PHY can add the latency for CAL mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 + # Specifies the number of DFI PHY clocks between when the dfi_cs signal is + # asserted and when the associated command is driven. This field is used + # for CAL mode, should be set to '0' or the value which matches the CAL mo + # de register setting in the DRAM. If the PHY can add the latency for CAL + # mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 # PSU_DDRC_DFITMG1_DFI_T_CMD_LAT 0x0 - # Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated dfi_parity_in signa - # is driven. + # Specifies the number of DFI PHY clocks between when the dfi_cs signal is + # asserted and when the associated dfi_parity_in signal is driven. # PSU_DDRC_DFITMG1_DFI_T_PARIN_LAT 0x0 - # Specifies the number of DFI clocks between when the dfi_wrdata_en signal is asserted and when the corresponding write data tr - # nsfer is completed on the DRAM bus. This corresponds to the DFI timing parameter twrdata_delay. Refer to PHY specification fo - # correct value. For DFI 3.0 PHY, set to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI 2.1 PHY, set to - # phy_wrdata + (delay of DFI write data to the DRAM). Value to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ - # RATIO=2, divide PHY's value by 2 and round up to next integer. If using DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Uni - # : Clocks + # Specifies the number of DFI clocks between when the dfi_wrdata_en signal + # is asserted and when the corresponding write data transfer is completed + # on the DRAM bus. This corresponds to the DFI timing parameter twrdata_d + # elay. Refer to PHY specification for correct value. For DFI 3.0 PHY, set + # to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI + # 2.1 PHY, set to tphy_wrdata + (delay of DFI write data to the DRAM). Va + # lue to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ_ + # RATIO=2, divide PHY's value by 2 and round up to next integer. If using + # DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Unit: Clocks # PSU_DDRC_DFITMG1_DFI_T_WRDATA_DELAY 0x3 - # Specifies the number of DFI clock cycles from the assertion of the dfi_dram_clk_disable signal on the DFI until the clock to - # he DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase - # ligned, this timing parameter should be rounded up to the next integer value. + # Specifies the number of DFI clock cycles from the assertion of the dfi_d + # ram_clk_disable signal on the DFI until the clock to the DRAM memory dev + # ices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock + # and the memory clock are not phase aligned, this timing parameter should + # be rounded up to the next integer value. # PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE 0x3 - # Specifies the number of DFI clock cycles from the de-assertion of the dfi_dram_clk_disable signal on the DFI until the first - # alid rising edge of the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the DFI clock and the memory clock are - # not phase aligned, this timing parameter should be rounded up to the next integer value. + # Specifies the number of DFI clock cycles from the de-assertion of the df + # i_dram_clk_disable signal on the DFI until the first valid rising edge o + # f the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the + # DFI clock and the memory clock are not phase aligned, this timing param + # eter should be rounded up to the next integer value. # PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE 0x4 # DFI Timing Register 1 @@ -2256,37 +2592,48 @@ set psu_ddr_init_data { mask_write 0XFD070194 0xF31F0F0F 0x00030304 # Register : DFILPCFG0 @ 0XFD070198

- # Setting for DFI's tlp_resp time. Same value is used for both Power Down, Self Refresh, Deep Power Down and Maximum Power Savi - # g modes. DFI 2.1 specification onwards, recommends using a fixed value of 7 always. + # Setting for DFI's tlp_resp time. Same value is used for both Power Down, + # Self Refresh, Deep Power Down and Maximum Power Saving modes. DFI 2.1 s + # pecification onwards, recommends using a fixed value of 7 always. # PSU_DDRC_DFILPCFG0_DFI_TLP_RESP 0x7 - # Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 - # cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - # - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - - # 31072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting mDDR or LPDDR2/LPDDR3 device - # . + # Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is ente + # red. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 + # cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 5 + # 12 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - + # 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 6553 + # 6 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited T + # his is only present for designs supporting mDDR or LPDDR2/LPDDR3 devices + # . # PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD 0x0 - # Enables DFI Low Power interface handshaking during Deep Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled This is only pres - # nt for designs supporting mDDR or LPDDR2/LPDDR3 devices. + # Enables DFI Low Power interface handshaking during Deep Power Down Entry + # /Exit. - 0 - Disabled - 1 - Enabled This is only present for designs sup + # porting mDDR or LPDDR2/LPDDR3 devices. # PSU_DDRC_DFILPCFG0_DFI_LP_EN_DPD 0x0 - # Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cy - # les - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - # 048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 131 - # 72 cycles - 0xE - 262144 cycles - 0xF - Unlimited + # Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered + # . Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cyc + # les - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 + # cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 + # - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 c + # ycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited # PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR 0x0 - # Enables DFI Low Power interface handshaking during Self Refresh Entry/Exit. - 0 - Disabled - 1 - Enabled + # Enables DFI Low Power interface handshaking during Self Refresh Entry/Ex + # it. - 0 - Disabled - 1 - Enabled # PSU_DDRC_DFILPCFG0_DFI_LP_EN_SR 0x1 - # Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycl - # s - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 20 - # 8 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 13107 - # cycles - 0xE - 262144 cycles - 0xF - Unlimited + # Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. + # Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cycle + # s - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cy + # cles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - + # 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cyc + # les - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited # PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD 0x0 - # Enables DFI Low Power interface handshaking during Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled + # Enables DFI Low Power interface handshaking during Power Down Entry/Exit + # . - 0 - Disabled - 1 - Enabled # PSU_DDRC_DFILPCFG0_DFI_LP_EN_PD 0x1 # DFI Low Power Configuration Register 0 @@ -2294,48 +2641,88 @@ set psu_ddr_init_data { mask_write 0XFD070198 0x0FF1F1F1 0x07000101 # Register : DFILPCFG1 @ 0XFD07019C

- # Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - # - 16 cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - # 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0 - # D - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting DDR4 devices. + # Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is + # entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 + # - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x + # 5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycl + # es - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - + # 65536 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimi + # ted This is only present for designs supporting DDR4 devices. # PSU_DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM 0x2 - # Enables DFI Low Power interface handshaking during Maximum Power Saving Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is - # only present for designs supporting DDR4 devices. + # Enables DFI Low Power interface handshaking during Maximum Power Saving + # Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is only present for d + # esigns supporting DDR4 devices. # PSU_DDRC_DFILPCFG1_DFI_LP_EN_MPSM 0x1 # DFI Low Power Configuration Register 1 #(OFFSET, MASK, VALUE) (0XFD07019C, 0x000000F1U ,0x00000021U) */ mask_write 0XFD07019C 0x000000F1 0x00000021 + # Register : DFIUPD0 @ 0XFD0701A0

+ + # When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + # . The core must issue the dfi_ctrlupd_req signal using register reg_ddrc + # _ctrlupd. When '0', uMCTL2 issues dfi_ctrlupd_req periodically. + # PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD 0x0 + + # When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + # following a self-refresh exit. The core must issue the dfi_ctrlupd_req + # signal using register reg_ddrc_ctrlupd. When '0', uMCTL2 issues a dfi_ct + # rlupd_req after exiting self-refresh. + # PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX 0x0 + + # Specifies the maximum number of clock cycles that the dfi_ctrlupd_req si + # gnal can assert. Lowest value to assign to this variable is 0x40. Unit: + # Clocks + # PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MAX 0x40 + + # Specifies the minimum number of clock cycles that the dfi_ctrlupd_req si + # gnal must be asserted. The uMCTL2 expects the PHY to respond within this + # time. If the PHY does not respond, the uMCTL2 will de-assert dfi_ctrlup + # d_req after dfi_t_ctrlup_min + 2 cycles. Lowest value to assign to this + # variable is 0x3. Unit: Clocks + # PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MIN 0x3 + + # DFI Update Register 0 + #(OFFSET, MASK, VALUE) (0XFD0701A0, 0xC3FF03FFU ,0x00400003U) */ + mask_write 0XFD0701A0 0xC3FF03FF 0x00400003 # Register : DFIUPD1 @ 0XFD0701A4

- # This is the minimum amount of time between uMCTL2 initiated DFI update requests (which is executed whenever the uMCTL2 is idl - # ). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the fir - # t read request when the uMCTL2 is idle. Unit: 1024 clocks + # This is the minimum amount of time between uMCTL2 initiated DFI update r + # equests (which is executed whenever the uMCTL2 is idle). Set this number + # higher to reduce the frequency of update requests, which can have a sma + # ll impact on the latency of the first read request when the uMCTL2 is id + # le. Unit: 1024 clocks # PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024 0x41 - # This is the maximum amount of time between uMCTL2 initiated DFI update requests. This timer resets with each update request; - # hen the timer expires dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd_ackx is received. PHY can use this - # idle time to recalibrate the delay lines to the DLLs. The DFI controller update is also used to reset PHY FIFO pointers in ca - # e of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. - # Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x - # 024. Unit: 1024 clocks - # PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe2 + # This is the maximum amount of time between uMCTL2 initiated DFI update r + # equests. This timer resets with each update request; when the timer expi + # res dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd + # _ackx is received. PHY can use this idle time to recalibrate the delay l + # ines to the DLLs. The DFI controller update is also used to reset PHY FI + # FO pointers in case of data capture errors. Updates are required to main + # tain calibration over PVT, but frequent updates may impact performance. + # Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must + # be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x1024. Unit: 1024 cl + # ocks + # PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe1 # DFI Update Register 1 - #(OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E2U) */ - mask_write 0XFD0701A4 0x00FF00FF 0x004100E2 + #(OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E1U) */ + mask_write 0XFD0701A4 0x00FF00FF 0x004100E1 # Register : DFIMISC @ 0XFD0701B0

- # Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signals are active low - 1: Signals are active high + # Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signal + # s are active low - 1: Signals are active high # PSU_DDRC_DFIMISC_DFI_DATA_CS_POLARITY 0x0 - # DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. - 1 - PHY implements DBI functionality. Present only - # in designs configured to support DDR4 and LPDDR4. + # DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. + # - 1 - PHY implements DBI functionality. Present only in designs configu + # red to support DDR4 and LPDDR4. # PSU_DDRC_DFIMISC_PHY_DBI_MODE 0x0 - # PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialisa - # ion + # PHY initialization complete enable signal. When asserted the dfi_init_co + # mplete signal can be used to trigger SDRAM initialisation # PSU_DDRC_DFIMISC_DFI_INIT_COMPLETE_EN 0x0 # DFI Miscellaneous Control Register @@ -2343,12 +2730,16 @@ set psu_ddr_init_data { mask_write 0XFD0701B0 0x00000007 0x00000000 # Register : DFITMG2 @ 0XFD0701B4

- # >Number of clocks between when a read command is sent on the DFI control interface and when the associated dfi_rddata_cs sign - # l is asserted. This corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY specification for correct value. + # >Number of clocks between when a read command is sent on the DFI control + # interface and when the associated dfi_rddata_cs signal is asserted. Thi + # s corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY spe + # cification for correct value. # PSU_DDRC_DFITMG2_DFI_TPHY_RDCSLAT 0x9 - # Number of clocks between when a write command is sent on the DFI control interface and when the associated dfi_wrdata_cs sign - # l is asserted. This corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY specification for correct value. + # Number of clocks between when a write command is sent on the DFI control + # interface and when the associated dfi_wrdata_cs signal is asserted. Thi + # s corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY spe + # cification for correct value. # PSU_DDRC_DFITMG2_DFI_TPHY_WRCSLAT 0x6 # DFI Timing Register 2 @@ -2356,17 +2747,23 @@ set psu_ddr_init_data { mask_write 0XFD0701B4 0x00003F3F 0x00000906 # Register : DBICTL @ 0XFD0701C0

- # Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read DBI is enabled. This signal must be set the same value - # as DRAM's mode register. - DDR4: MR5 bit A12. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[6] + # Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read D + # BI is enabled. This signal must be set the same value as DRAM's mode reg + # ister. - DDR4: MR5 bit A12. When x4 devices are used, this signal must b + # e set to 0. - LPDDR4: MR3[6] # PSU_DDRC_DBICTL_RD_DBI_EN 0x0 - # Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Write DBI is enabled. This signal must be set the same va - # ue as DRAM's mode register. - DDR4: MR5 bit A11. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[7] + # Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Writ + # e DBI is enabled. This signal must be set the same value as DRAM's mode + # register. - DDR4: MR5 bit A11. When x4 devices are used, this signal mus + # t be set to 0. - LPDDR4: MR3[7] # PSU_DDRC_DBICTL_WR_DBI_EN 0x0 - # DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. This signal must be set the same logical value as DRAM's - # mode register. - DDR4: Set this to same value as MR5 bit A10. When x4 devices are used, this signal must be set to 0. - LPDDR - # : Set this to inverted value of MR13[5] which is opposite polarity from this signal + # DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. Thi + # s signal must be set the same logical value as DRAM's mode register. - D + # DR4: Set this to same value as MR5 bit A10. When x4 devices are used, th + # is signal must be set to 0. - LPDDR4: Set this to inverted value of MR13 + # [5] which is opposite polarity from this signal # PSU_DDRC_DBICTL_DM_EN 0x1 # DM/DBI Control Register @@ -2374,8 +2771,10 @@ set psu_ddr_init_data { mask_write 0XFD0701C0 0x00000007 0x00000001 # Register : ADDRMAP0 @ 0XFD070200

- # Selects the HIF address bit used as rank address bit 0. Valid Range: 0 to 27, and 31 Internal Base: 6 The selected HIF addres - # bit is determined by adding the internal base to the value of this field. If set to 31, rank address bit 0 is set to 0. + # Selects the HIF address bit used as rank address bit 0. Valid Range: 0 t + # o 27, and 31 Internal Base: 6 The selected HIF address bit is determined + # by adding the internal base to the value of this field. If set to 31, r + # ank address bit 0 is set to 0. # PSU_DDRC_ADDRMAP0_ADDRMAP_CS_BIT0 0x1f # Address Map Register 0 @@ -2383,16 +2782,22 @@ set psu_ddr_init_data { mask_write 0XFD070200 0x0000001F 0x0000001F # Register : ADDRMAP1 @ 0XFD070204

- # Selects the HIF address bit used as bank address bit 2. Valid Range: 0 to 29 and 31 Internal Base: 4 The selected HIF address - # bit is determined by adding the internal base to the value of this field. If set to 31, bank address bit 2 is set to 0. + # Selects the HIF address bit used as bank address bit 2. Valid Range: 0 t + # o 29 and 31 Internal Base: 4 The selected HIF address bit is determined + # by adding the internal base to the value of this field. If set to 31, ba + # nk address bit 2 is set to 0. # PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B2 0x1f - # Selects the HIF address bits used as bank address bit 1. Valid Range: 0 to 30 Internal Base: 3 The selected HIF address bit f - # r each of the bank address bits is determined by adding the internal base to the value of this field. + # Selects the HIF address bits used as bank address bit 1. Valid Range: 0 + # to 30 Internal Base: 3 The selected HIF address bit for each of the bank + # address bits is determined by adding the internal base to the value of + # this field. # PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B1 0xa - # Selects the HIF address bits used as bank address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address bit f - # r each of the bank address bits is determined by adding the internal base to the value of this field. + # Selects the HIF address bits used as bank address bit 0. Valid Range: 0 + # to 30 Internal Base: 2 The selected HIF address bit for each of the bank + # address bits is determined by adding the internal base to the value of + # this field. # PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B0 0xa # Address Map Register 1 @@ -2400,29 +2805,41 @@ set psu_ddr_init_data { mask_write 0XFD070204 0x001F1F1F 0x001F0A0A # Register : ADDRMAP2 @ 0XFD070208

- # - Full bus width mode: Selects the HIF address bit used as column address bit 5. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 6. - Quarter bus width mode: Selects the HIF address bit used as column address bit 7 . Vali - # Range: 0 to 7, and 15 Internal Base: 5 The selected HIF address bit is determined by adding the internal base to the value o - # this field. If set to 15, this column address bit is set to 0. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 5. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 6. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 7 . Valid Range: 0 to 7, and 15 Internal Base + # : 5 The selected HIF address bit is determined by adding the internal ba + # se to the value of this field. If set to 15, this column address bit is + # set to 0. # PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B5 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 4. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 5. - Quarter bus width mode: Selects the HIF address bit used as column address bit 6. Valid - # Range: 0 to 7, and 15 Internal Base: 4 The selected HIF address bit is determined by adding the internal base to the value of - # this field. If set to 15, this column address bit is set to 0. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 4. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 5. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 6. Valid Range: 0 to 7, and 15 Internal Base: + # 4 The selected HIF address bit is determined by adding the internal bas + # e to the value of this field. If set to 15, this column address bit is s + # et to 0. # PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B4 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 3. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 4. - Quarter bus width mode: Selects the HIF address bit used as column address bit 5. Valid - # Range: 0 to 7 Internal Base: 3 The selected HIF address bit is determined by adding the internal base to the value of this fi - # ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=16, it is required to program this to 0, hence register does not exist i - # this case. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 3. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 4. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 5. Valid Range: 0 to 7 Internal Base: 3 The s + # elected HIF address bit is determined by adding the internal base to the + # value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=1 + # 6, it is required to program this to 0, hence register does not exist in + # this case. # PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B3 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 2. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 3. - Quarter bus width mode: Selects the HIF address bit used as column address bit 4. Valid - # Range: 0 to 7 Internal Base: 2 The selected HIF address bit is determined by adding the internal base to the value of this fi - # ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 or 16, it is required to program this to 0. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 2. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 3. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 4. Valid Range: 0 to 7 Internal Base: 2 The s + # elected HIF address bit is determined by adding the internal base to the + # value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 + # or 16, it is required to program this to 0. # PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B2 0x0 # Address Map Register 2 @@ -2430,34 +2847,48 @@ set psu_ddr_init_data { mask_write 0XFD070208 0x0F0F0F0F 0x00000000 # Register : ADDRMAP3 @ 0XFD07020C

- # - Full bus width mode: Selects the HIF address bit used as column address bit 9. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: Selects the HIF address bit used as - # column address bit 13 (11 in LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected HIF address bit i - # determined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: - # er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source addr - # ss bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus an - # hence column bit 10 is used. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 9. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: + # Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/ + # LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected + # HIF address bit is determined by adding the internal base to the value o + # f this field. If set to 15, this column address bit is set to 0. Note: P + # er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved fo + # r indicating auto-precharge, and hence no source address bit can be mapp + # ed to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit + # for auto-precharge in the CA bus and hence column bit 10 is used. # PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B9 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 8. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 9. - Quarter bus width mode: Selects the HIF address bit used as column address bit 11 (10 i - # LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 8 The selected HIF address bit is determined by adding the i - # ternal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specif - # cation, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to col - # mn address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is use - # . + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 8. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 9. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). Valid Range: 0 + # to 7, and 15 Internal Base: 8 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specifi + # cation, column address bit 10 is reserved for indicating auto-precharge, + # and hence no source address bit can be mapped to column address bit 10. + # In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA + # bus and hence column bit 10 is used. # PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B8 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 7. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 8. - Quarter bus width mode: Selects the HIF address bit used as column address bit 9. Valid - # Range: 0 to 7, and 15 Internal Base: 7 The selected HIF address bit is determined by adding the internal base to the value of - # this field. If set to 15, this column address bit is set to 0. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 7. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 8. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 9. Valid Range: 0 to 7, and 15 Internal Base: + # 7 The selected HIF address bit is determined by adding the internal bas + # e to the value of this field. If set to 15, this column address bit is s + # et to 0. # PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B7 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 6. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 7. - Quarter bus width mode: Selects the HIF address bit used as column address bit 8. Valid - # Range: 0 to 7, and 15 Internal Base: 6 The selected HIF address bit is determined by adding the internal base to the value of - # this field. If set to 15, this column address bit is set to 0. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 6. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 7. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 8. Valid Range: 0 to 7, and 15 Internal Base: + # 6 The selected HIF address bit is determined by adding the internal bas + # e to the value of this field. If set to 15, this column address bit is s + # et to 0. # PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B6 0x0 # Address Map Register 3 @@ -2465,21 +2896,30 @@ set psu_ddr_init_data { mask_write 0XFD07020C 0x0F0F0F0F 0x00000000 # Register : ADDRMAP4 @ 0XFD070210

- # - Full bus width mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width - # mode: Unused. To make it unused, this should be tied to 4'hF. - Quarter bus width mode: Unused. To make it unused, this must - # e tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 11 The selected HIF address bit is determined by adding the intern - # l base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificati - # n, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column a - # dress bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is used. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width mode: Unused. To m + # ake it unused, this should be tied to 4'hF. - Quarter bus width mode: Un + # used. To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, + # and 15 Internal Base: 11 The selected HIF address bit is determined by + # adding the internal base to the value of this field. If set to 15, this + # column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificatio + # n, column address bit 10 is reserved for indicating auto-precharge, and + # hence no source address bit can be mapped to column address bit 10. In L + # PDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus + # and hence column bit 10 is used. # PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B11 0xf - # - Full bus width mode: Selects the HIF address bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width - # mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: UNUSED. - # To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF address bit is d - # termined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per - # JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source address - # bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and h - # nce column bit 10 is used. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width mode: Selects the + # HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode) + # . - Quarter bus width mode: UNUSED. To make it unused, this must be tied + # to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF + # address bit is determined by adding the internal base to the value of t + # his field. If set to 15, this column address bit is set to 0. Note: Per + # JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for i + # ndicating auto-precharge, and hence no source address bit can be mapped + # to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for + # auto-precharge in the CA bus and hence column bit 10 is used. # PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B10 0xf # Address Map Register 4 @@ -2487,22 +2927,31 @@ set psu_ddr_init_data { mask_write 0XFD070210 0x00000F0F 0x00000F0F # Register : ADDRMAP5 @ 0XFD070214

- # Selects the HIF address bit used as row address bit 11. Valid Range: 0 to 11, and 15 Internal Base: 17 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 11 is set to 0. + # Selects the HIF address bit used as row address bit 11. Valid Range: 0 t + # o 11, and 15 Internal Base: 17 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 11 is set to 0. # PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B11 0x8 - # Selects the HIF address bits used as row address bits 2 to 10. Valid Range: 0 to 11, and 15 Internal Base: 8 (for row address - # bit 2), 9 (for row address bit 3), 10 (for row address bit 4) etc increasing to 16 (for row address bit 10) The selected HIF - # ddress bit for each of the row address bits is determined by adding the internal base to the value of this field. When value - # 5 is used the values of row address bits 2 to 10 are defined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. + # Selects the HIF address bits used as row address bits 2 to 10. Valid Ran + # ge: 0 to 11, and 15 Internal Base: 8 (for row address bit 2), 9 (for row + # address bit 3), 10 (for row address bit 4) etc increasing to 16 (for ro + # w address bit 10) The selected HIF address bit for each of the row addre + # ss bits is determined by adding the internal base to the value of this f + # ield. When value 15 is used the values of row address bits 2 to 10 are d + # efined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. # PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10 0xf - # Selects the HIF address bits used as row address bit 1. Valid Range: 0 to 11 Internal Base: 7 The selected HIF address bit fo - # each of the row address bits is determined by adding the internal base to the value of this field. + # Selects the HIF address bits used as row address bit 1. Valid Range: 0 t + # o 11 Internal Base: 7 The selected HIF address bit for each of the row a + # ddress bits is determined by adding the internal base to the value of th + # is field. # PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B1 0x8 - # Selects the HIF address bits used as row address bit 0. Valid Range: 0 to 11 Internal Base: 6 The selected HIF address bit fo - # each of the row address bits is determined by adding the internal base to the value of this field. + # Selects the HIF address bits used as row address bit 0. Valid Range: 0 t + # o 11 Internal Base: 6 The selected HIF address bit for each of the row a + # ddress bits is determined by adding the internal base to the value of th + # is field. # PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B0 0x8 # Address Map Register 5 @@ -2510,25 +2959,35 @@ set psu_ddr_init_data { mask_write 0XFD070214 0x0F0F0F0F 0x080F0808 # Register : ADDRMAP6 @ 0XFD070218

- # Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address - # having row[14:13]==2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. All addresses are valid Present on - # y in designs configured to support LPDDR3. + # Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 + # - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address having row[14:13]= + # =2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. + # All addresses are valid Present only in designs configured to support L + # PDDR3. # PSU_DDRC_ADDRMAP6_LPDDR3_6GB_12GB 0x0 - # Selects the HIF address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 15 is set to 0. + # Selects the HIF address bit used as row address bit 15. Valid Range: 0 t + # o 11, and 15 Internal Base: 21 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 15 is set to 0. # PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B15 0xf - # Selects the HIF address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 20 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 14 is set to 0. + # Selects the HIF address bit used as row address bit 14. Valid Range: 0 t + # o 11, and 15 Internal Base: 20 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 14 is set to 0. # PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B14 0x8 - # Selects the HIF address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 19 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 13 is set to 0. + # Selects the HIF address bit used as row address bit 13. Valid Range: 0 t + # o 11, and 15 Internal Base: 19 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 13 is set to 0. # PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B13 0x8 - # Selects the HIF address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 18 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 12 is set to 0. + # Selects the HIF address bit used as row address bit 12. Valid Range: 0 t + # o 11, and 15 Internal Base: 18 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 12 is set to 0. # PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B12 0x8 # Address Map Register 6 @@ -2536,12 +2995,16 @@ set psu_ddr_init_data { mask_write 0XFD070218 0x8F0F0F0F 0x0F080808 # Register : ADDRMAP7 @ 0XFD07021C

- # Selects the HIF address bit used as row address bit 17. Valid Range: 0 to 10, and 15 Internal Base: 23 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 17 is set to 0. + # Selects the HIF address bit used as row address bit 17. Valid Range: 0 t + # o 10, and 15 Internal Base: 23 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 17 is set to 0. # PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B17 0xf - # Selects the HIF address bit used as row address bit 16. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 16 is set to 0. + # Selects the HIF address bit used as row address bit 16. Valid Range: 0 t + # o 11, and 15 Internal Base: 22 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 16 is set to 0. # PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B16 0xf # Address Map Register 7 @@ -2549,13 +3012,17 @@ set psu_ddr_init_data { mask_write 0XFD07021C 0x00000F0F 0x00000F0F # Register : ADDRMAP8 @ 0XFD070220

- # Selects the HIF address bits used as bank group address bit 1. Valid Range: 0 to 30, and 31 Internal Base: 3 The selected HIF - # address bit for each of the bank group address bits is determined by adding the internal base to the value of this field. If - # et to 31, bank group address bit 1 is set to 0. + # Selects the HIF address bits used as bank group address bit 1. Valid Ran + # ge: 0 to 30, and 31 Internal Base: 3 The selected HIF address bit for ea + # ch of the bank group address bits is determined by adding the internal b + # ase to the value of this field. If set to 31, bank group address bit 1 i + # s set to 0. # PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B1 0x8 - # Selects the HIF address bits used as bank group address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address - # bit for each of the bank group address bits is determined by adding the internal base to the value of this field. + # Selects the HIF address bits used as bank group address bit 0. Valid Ran + # ge: 0 to 30 Internal Base: 2 The selected HIF address bit for each of th + # e bank group address bits is determined by adding the internal base to t + # he value of this field. # PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B0 0x8 # Address Map Register 8 @@ -2563,24 +3030,32 @@ set psu_ddr_init_data { mask_write 0XFD070220 0x00001F1F 0x00000808 # Register : ADDRMAP9 @ 0XFD070224

- # Selects the HIF address bits used as row address bit 5. Valid Range: 0 to 11 Internal Base: 11 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 5. Valid Range: 0 t + # o 11 Internal Base: 11 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B5 0x8 - # Selects the HIF address bits used as row address bit 4. Valid Range: 0 to 11 Internal Base: 10 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 4. Valid Range: 0 t + # o 11 Internal Base: 10 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B4 0x8 - # Selects the HIF address bits used as row address bit 3. Valid Range: 0 to 11 Internal Base: 9 The selected HIF address bit fo - # each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - # d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 3. Valid Range: 0 t + # o 11 Internal Base: 9 The selected HIF address bit for each of the row a + # ddress bits is determined by adding the internal base to the value of th + # is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + # 10 is set to value 15. # PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B3 0x8 - # Selects the HIF address bits used as row address bit 2. Valid Range: 0 to 11 Internal Base: 8 The selected HIF address bit fo - # each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - # d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 2. Valid Range: 0 t + # o 11 Internal Base: 8 The selected HIF address bit for each of the row a + # ddress bits is determined by adding the internal base to the value of th + # is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + # 10 is set to value 15. # PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B2 0x8 # Address Map Register 9 @@ -2588,24 +3063,32 @@ set psu_ddr_init_data { mask_write 0XFD070224 0x0F0F0F0F 0x08080808 # Register : ADDRMAP10 @ 0XFD070228

- # Selects the HIF address bits used as row address bit 9. Valid Range: 0 to 11 Internal Base: 15 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 9. Valid Range: 0 t + # o 11 Internal Base: 15 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B9 0x8 - # Selects the HIF address bits used as row address bit 8. Valid Range: 0 to 11 Internal Base: 14 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 8. Valid Range: 0 t + # o 11 Internal Base: 14 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B8 0x8 - # Selects the HIF address bits used as row address bit 7. Valid Range: 0 to 11 Internal Base: 13 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 7. Valid Range: 0 t + # o 11 Internal Base: 13 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B7 0x8 - # Selects the HIF address bits used as row address bit 6. Valid Range: 0 to 11 Internal Base: 12 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 6. Valid Range: 0 t + # o 11 Internal Base: 12 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B6 0x8 # Address Map Register 10 @@ -2613,9 +3096,11 @@ set psu_ddr_init_data { mask_write 0XFD070228 0x0F0F0F0F 0x08080808 # Register : ADDRMAP11 @ 0XFD07022C

- # Selects the HIF address bits used as row address bit 10. Valid Range: 0 to 11 Internal Base: 16 The selected HIF address bit - # or each of the row address bits is determined by adding the internal base to the value of this field. This register field is - # sed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 10. Valid Range: 0 + # to 11 Internal Base: 16 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of + # this field. This register field is used only when ADDRMAP5.addrmap_row_b + # 2_10 is set to value 15. # PSU_DDRC_ADDRMAP11_ADDRMAP_ROW_B10 0x8 # Address Map Register 11 @@ -2623,30 +3108,42 @@ set psu_ddr_init_data { mask_write 0XFD07022C 0x0000000F 0x00000008 # Register : ODTCFG @ 0XFD070240

- # Cycles to hold ODT for a write command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/ - # 67), 0x6 (DDR2-800), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (DDR2-1066) DDR3: - BL8: 0x6 DDR4: - - # L8: 5 + WR_PREAMBLE + CRC_MODE WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 (not CRC mode), 1 - # CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) + # Cycles to hold ODT for a write command. The minimum supported value is 2 + # . Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/667), 0x6 (DDR2-800 + # ), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (D + # DR2-1066) DDR3: - BL8: 0x6 DDR4: - BL8: 5 + WR_PREAMBLE + CRC_MODE WR_PR + # EAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 ( + # not CRC mode), 1 (CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) # PSU_DDRC_ODTCFG_WR_ODT_HOLD 0x6 - # The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting must - # remain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CWL + AL - 3 (DDR2-400/533/ - # 67), CWL + AL - 4 (DDR2-800), CWL + AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT for write operation - # DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) + # The delay, in clock cycles, from issuing a write command to setting ODT + # values associated with that command. ODT setting must remain constant fo + # r the entire time that DQS is driven by the uMCTL2. Recommended values: + # DDR2: - CWL + AL - 3 (DDR2-400/533/667), CWL + AL - 4 (DDR2-800), CWL + + # AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT fo + # r write operation. DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust + # for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) # PSU_DDRC_ODTCFG_WR_ODT_DELAY 0x0 - # Cycles to hold ODT for a read command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066) - # 0x7 (DDR2-1066) - BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8: 5 + RD_PREAMBLE RD_PREAMBLE = 1 ( - # tCK write preamble), 2 (2tCK write preamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + RU(tODTon(max)/tC - # ) + # Cycles to hold ODT for a read command. The minimum supported value is 2. + # Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066), 0x7 (DDR2-1066) - + # BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8 + # : 5 + RD_PREAMBLE RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write p + # reamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + + # RU(tODTon(max)/tCK) # PSU_DDRC_ODTCFG_RD_ODT_HOLD 0x6 - # The delay, in clock cycles, from issuing a read command to setting ODT values associated with that command. ODT setting must - # emain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CL + AL - 4 (not DDR2-1066), - # CL + AL - 5 (DDR2-1066) If (CL + AL - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - CWL DDR4: - CL - C - # L - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK - # write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, - # uMCTL2 does not support ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - RU(tODTon(max)/tCK) + # The delay, in clock cycles, from issuing a read command to setting ODT v + # alues associated with that command. ODT setting must remain constant for + # the entire time that DQS is driven by the uMCTL2. Recommended values: D + # DR2: - CL + AL - 4 (not DDR2-1066), CL + AL - 5 (DDR2-1066) If (CL + AL + # - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - C + # WL DDR4: - CL - CWL - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat + # (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK + # write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write pre + # amble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, uMCTL2 does not su + # pport ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - R + # U(tODTon(max)/tCK) # PSU_DDRC_ODTCFG_RD_ODT_DELAY 0x0 # ODT Configuration Register @@ -2654,24 +3151,34 @@ set psu_ddr_init_data { mask_write 0XFD070240 0x0F1F0F7C 0x06000600 # Register : ODTMAP @ 0XFD070244

- # Indicates which remote ODTs must be turned on during a read from rank 1. Each rank has a remote ODT (in the SDRAM) which can - # e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - # etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks + # Indicates which remote ODTs must be turned on during a read from rank 1. + # Each rank has a remote ODT (in the SDRAM) which can be turned on by set + # ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + # s controlled by bit next to the LSB, etc. For each rank, set its bit to + # 1 to enable its ODT. Present only in configurations that have 2 or more + # ranks # PSU_DDRC_ODTMAP_RANK1_RD_ODT 0x0 - # Indicates which remote ODTs must be turned on during a write to rank 1. Each rank has a remote ODT (in the SDRAM) which can b - # turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - # etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks + # Indicates which remote ODTs must be turned on during a write to rank 1. + # Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + # ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + # controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + # to enable its ODT. Present only in configurations that have 2 or more r + # anks # PSU_DDRC_ODTMAP_RANK1_WR_ODT 0x0 - # Indicates which remote ODTs must be turned on during a read from rank 0. Each rank has a remote ODT (in the SDRAM) which can - # e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - # etc. For each rank, set its bit to 1 to enable its ODT. + # Indicates which remote ODTs must be turned on during a read from rank 0. + # Each rank has a remote ODT (in the SDRAM) which can be turned on by set + # ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + # s controlled by bit next to the LSB, etc. For each rank, set its bit to + # 1 to enable its ODT. # PSU_DDRC_ODTMAP_RANK0_RD_ODT 0x0 - # Indicates which remote ODTs must be turned on during a write to rank 0. Each rank has a remote ODT (in the SDRAM) which can b - # turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - # etc. For each rank, set its bit to 1 to enable its ODT. + # Indicates which remote ODTs must be turned on during a write to rank 0. + # Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + # ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + # controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + # to enable its ODT. # PSU_DDRC_ODTMAP_RANK0_WR_ODT 0x1 # ODT/Rank Map Register @@ -2679,41 +3186,57 @@ set psu_ddr_init_data { mask_write 0XFD070244 0x00003333 0x00000001 # Register : SCHED @ 0XFD070250

- # When the preferred transaction store is empty for these many clock cycles, switch to the alternate transaction store if it is - # non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write t - # ansaction store is the alternative store. When prefer write over read is set this is reversed. 0x0 is a legal value for this - # egister. When set to 0x0, the transaction store switching will happen immediately when the switching conditions become true. - # OR PERFORMANCE ONLY + # When the preferred transaction store is empty for these many clock cycle + # s, switch to the alternate transaction store if it is non-empty. The rea + # d transaction store (both high and low priority) is the default preferre + # d transaction store and the write transaction store is the alternative s + # tore. When prefer write over read is set this is reversed. 0x0 is a lega + # l value for this register. When set to 0x0, the transaction store switch + # ing will happen immediately when the switching conditions become true. F + # OR PERFORMANCE ONLY # PSU_DDRC_SCHED_RDWR_IDLE_GAP 0x1 # UNUSED # PSU_DDRC_SCHED_GO2CRITICAL_HYSTERESIS 0x0 - # Number of entries in the low priority transaction store is this value + 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) i - # the number of entries available for the high priority transaction store. Setting this to maximum value allocates all entries - # to low priority transaction store. Setting this to 0 allocates 1 entry to low priority transaction store and the rest to high - # priority transaction store. Note: In ECC configurations, the numbers of write and low priority read credits issued is one les - # than in the non-ECC case. One entry each is reserved in the write and low-priority read CAMs for storing the RMW requests ar - # sing out of single bit error correction RMW operation. + # Number of entries in the low priority transaction store is this value + + # 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) is the number of ent + # ries available for the high priority transaction store. Setting this to + # maximum value allocates all entries to low priority transaction store. S + # etting this to 0 allocates 1 entry to low priority transaction store and + # the rest to high priority transaction store. Note: In ECC configuration + # s, the numbers of write and low priority read credits issued is one less + # than in the non-ECC case. One entry each is reserved in the write and l + # ow-priority read CAMs for storing the RMW requests arising out of single + # bit error correction RMW operation. # PSU_DDRC_SCHED_LPR_NUM_ENTRIES 0x20 - # If true, bank is kept open only while there are page hit transactions available in the CAM to that bank. The last read or wri - # e command in the CAM with a bank and page hit will be executed with auto-precharge if SCHED1.pageclose_timer=0. Even if this - # egister set to 1 and SCHED1.pageclose_timer is set to 0, explicit precharge (and not auto-precharge) may be issued in some ca - # es where there is a mode switch between Write and Read or between LPR and HPR. The Read and Write commands that are executed - # s part of the ECC scrub requests are also executed without auto-precharge. If false, the bank remains open until there is a n - # ed to close it (to open a different page, or for page timeout or refresh timeout) - also known as open page policy. The open - # age policy can be overridden by setting the per-command-autopre bit on the HIF interface (hif_cmd_autopre). The pageclose fea - # ure provids a midway between Open and Close page policies. FOR PERFORMANCE ONLY. + # If true, bank is kept open only while there are page hit transactions av + # ailable in the CAM to that bank. The last read or write command in the C + # AM with a bank and page hit will be executed with auto-precharge if SCHE + # D1.pageclose_timer=0. Even if this register set to 1 and SCHED1.pageclos + # e_timer is set to 0, explicit precharge (and not auto-precharge) may be + # issued in some cases where there is a mode switch between Write and Read + # or between LPR and HPR. The Read and Write commands that are executed a + # s part of the ECC scrub requests are also executed without auto-precharg + # e. If false, the bank remains open until there is a need to close it (to + # open a different page, or for page timeout or refresh timeout) - also k + # nown as open page policy. The open page policy can be overridden by sett + # ing the per-command-autopre bit on the HIF interface (hif_cmd_autopre). + # The pageclose feature provids a midway between Open and Close page polic + # ies. FOR PERFORMANCE ONLY. # PSU_DDRC_SCHED_PAGECLOSE 0x0 # If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. # PSU_DDRC_SCHED_PREFER_WRITE 0x0 - # Active low signal. When asserted ('0'), all incoming transactions are forced to low priority. This implies that all High Prio - # ity Read (HPR) and Variable Priority Read commands (VPR) will be treated as Low Priority Read (LPR) commands. On the write si - # e, all Variable Priority Write (VPW) commands will be treated as Normal Priority Write (NPW) commands. Forcing the incoming t - # ansactions to low priority implicitly turns off Bypass path for read commands. FOR PERFORMANCE ONLY. + # Active low signal. When asserted ('0'), all incoming transactions are fo + # rced to low priority. This implies that all High Priority Read (HPR) and + # Variable Priority Read commands (VPR) will be treated as Low Priority R + # ead (LPR) commands. On the write side, all Variable Priority Write (VPW) + # commands will be treated as Normal Priority Write (NPW) commands. Forci + # ng the incoming transactions to low priority implicitly turns off Bypass + # path for read commands. FOR PERFORMANCE ONLY. # PSU_DDRC_SCHED_FORCE_LOW_PRI_N 0x1 # Scheduler Control Register @@ -2721,13 +3244,16 @@ set psu_ddr_init_data { mask_write 0XFD070250 0x7FFF3F07 0x01002001 # Register : PERFLPR1 @ 0XFD070264

- # Number of transactions that are serviced once the LPR queue goes critical is the smaller of: - (a) This number - (b) Number o - # transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. + # Number of transactions that are serviced once the LPR queue goes critica + # l is the smaller of: - (a) This number - (b) Number of transactions avai + # lable. Unit: Transaction. FOR PERFORMANCE ONLY. # PSU_DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH 0x8 - # Number of clocks that the LPR queue can be starved before it goes critical. The minimum valid functional value for this regis - # er is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - # be disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + # Number of clocks that the LPR queue can be starved before it goes critic + # al. The minimum valid functional value for this register is 0x1. Program + # ming it to 0x0 will disable the starvation functionality; during normal + # operation, this function should not be disabled as it will cause excessi + # ve latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. # PSU_DDRC_PERFLPR1_LPR_MAX_STARVE 0x40 # Low Priority Read CAM Register 1 @@ -2735,24 +3261,126 @@ set psu_ddr_init_data { mask_write 0XFD070264 0xFF00FFFF 0x08000040 # Register : PERFWR1 @ 0XFD07026C

- # Number of transactions that are serviced once the WR queue goes critical is the smaller of: - (a) This number - (b) Number of - # transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. + # Number of transactions that are serviced once the WR queue goes critical + # is the smaller of: - (a) This number - (b) Number of transactions avail + # able. Unit: Transaction. FOR PERFORMANCE ONLY. # PSU_DDRC_PERFWR1_W_XACT_RUN_LENGTH 0x8 - # Number of clocks that the WR queue can be starved before it goes critical. The minimum valid functional value for this regist - # r is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - # e disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + # Number of clocks that the WR queue can be starved before it goes critica + # l. The minimum valid functional value for this register is 0x1. Programm + # ing it to 0x0 will disable the starvation functionality; during normal o + # peration, this function should not be disabled as it will cause excessiv + # e latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. # PSU_DDRC_PERFWR1_W_MAX_STARVE 0x40 # Write CAM Register 1 #(OFFSET, MASK, VALUE) (0XFD07026C, 0xFF00FFFFU ,0x08000040U) */ mask_write 0XFD07026C 0xFF00FFFF 0x08000040 + # Register : DQMAP0 @ 0XFD070280

+ + # DQ nibble map for DQ bits [12-15] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15 0x0 + + # DQ nibble map for DQ bits [8-11] Present only in designs configured to s + # upport DDR4. + # PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11 0x0 + + # DQ nibble map for DQ bits [4-7] Present only in designs configured to su + # pport DDR4. + # PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7 0x0 + + # DQ nibble map for DQ bits [0-3] Present only in designs configured to su + # pport DDR4. + # PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3 0x0 + + # DQ Map Register 0 + #(OFFSET, MASK, VALUE) (0XFD070280, 0xFFFFFFFFU ,0x00000000U) */ + mask_write 0XFD070280 0xFFFFFFFF 0x00000000 + # Register : DQMAP1 @ 0XFD070284

+ + # DQ nibble map for DQ bits [28-31] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31 0x0 + + # DQ nibble map for DQ bits [24-27] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27 0x0 + + # DQ nibble map for DQ bits [20-23] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23 0x0 + + # DQ nibble map for DQ bits [16-19] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19 0x0 + + # DQ Map Register 1 + #(OFFSET, MASK, VALUE) (0XFD070284, 0xFFFFFFFFU ,0x00000000U) */ + mask_write 0XFD070284 0xFFFFFFFF 0x00000000 + # Register : DQMAP2 @ 0XFD070288

+ + # DQ nibble map for DQ bits [44-47] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47 0x0 + + # DQ nibble map for DQ bits [40-43] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43 0x0 + + # DQ nibble map for DQ bits [36-39] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39 0x0 + + # DQ nibble map for DQ bits [32-35] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35 0x0 + + # DQ Map Register 2 + #(OFFSET, MASK, VALUE) (0XFD070288, 0xFFFFFFFFU ,0x00000000U) */ + mask_write 0XFD070288 0xFFFFFFFF 0x00000000 + # Register : DQMAP3 @ 0XFD07028C

+ + # DQ nibble map for DQ bits [60-63] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63 0x0 + + # DQ nibble map for DQ bits [56-59] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59 0x0 + + # DQ nibble map for DQ bits [52-55] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55 0x0 + + # DQ nibble map for DQ bits [48-51] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51 0x0 + + # DQ Map Register 3 + #(OFFSET, MASK, VALUE) (0XFD07028C, 0xFFFFFFFFU ,0x00000000U) */ + mask_write 0XFD07028C 0xFFFFFFFF 0x00000000 + # Register : DQMAP4 @ 0XFD070290

+ + # DQ nibble map for DIMM ECC check bits [4-7] Present only in designs conf + # igured to support DDR4. + # PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7 0x0 + + # DQ nibble map for DIMM ECC check bits [0-3] Present only in designs conf + # igured to support DDR4. + # PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3 0x0 + + # DQ Map Register 4 + #(OFFSET, MASK, VALUE) (0XFD070290, 0x0000FFFFU ,0x00000000U) */ + mask_write 0XFD070290 0x0000FFFF 0x00000000 # Register : DQMAP5 @ 0XFD070294

- # All even ranks have the same DQ mapping controled by DQMAP0-4 register as rank 0. This register provides DQ swap function for - # all odd ranks to support CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap bit 2 with 3, swap bit 4 with 5 and - # wap bit 6 with 7. 1: Disable rank based DQ swapping 0: Enable rank based DQ swapping Present only in designs configured to su - # port DDR4. + # All even ranks have the same DQ mapping controled by DQMAP0-4 register a + # s rank 0. This register provides DQ swap function for all odd ranks to s + # upport CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap b + # it 2 with 3, swap bit 4 with 5 and swap bit 6 with 7. 1: Disable rank ba + # sed DQ swapping 0: Enable rank based DQ swapping Present only in designs + # configured to support DDR4. # PSU_DDRC_DQMAP5_DIS_DQ_RANK_SWAP 0x1 # DQ Map Register 5 @@ -2760,9 +3388,12 @@ set psu_ddr_init_data { mask_write 0XFD070294 0x00000001 0x00000001 # Register : DBG0 @ 0XFD070300

- # When this is set to '0', auto-precharge is disabled for the flushed command in a collision case. Collision cases are write fo - # lowed by read to same address, read followed by write to same address, or write followed by write to same address with DBG0.d - # s_wc bit = 1 (where same address comparisons exclude the two address bits representing critical word). FOR DEBUG ONLY. + # When this is set to '0', auto-precharge is disabled for the flushed comm + # and in a collision case. Collision cases are write followed by read to s + # ame address, read followed by write to same address, or write followed b + # y write to same address with DBG0.dis_wc bit = 1 (where same address com + # parisons exclude the two address bits representing critical word). FOR D + # EBUG ONLY. # PSU_DDRC_DBG0_DIS_COLLISION_PAGE_OPT 0x0 # When 1, disable write combine. FOR DEBUG ONLY @@ -2773,34 +3404,47 @@ set psu_ddr_init_data { mask_write 0XFD070300 0x00000011 0x00000000 # Register : DBGCMD @ 0XFD07030C

- # Setting this register bit to 1 allows refresh and ZQCS commands to be triggered from hardware via the IOs ext_*. If set to 1, - # the fields DBGCMD.zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignored by the uMCTL2 logic. Setting this - # register bit to 0 allows refresh and ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_short and DBGCMD.rank - # _refresh. If set to 0, the hardware pins ext_* have no function, and are ignored by the uMCTL2 logic. This register is static - # and may only be changed when the DDRC reset signal, core_ddrc_rstn, is asserted (0). + # Setting this register bit to 1 allows refresh and ZQCS commands to be tr + # iggered from hardware via the IOs ext_*. If set to 1, the fields DBGCMD. + # zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignore + # d by the uMCTL2 logic. Setting this register bit to 0 allows refresh and + # ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_shor + # t and DBGCMD.rank*_refresh. If set to 0, the hardware pins ext_* have no + # function, and are ignored by the uMCTL2 logic. This register is static, + # and may only be changed when the DDRC reset signal, core_ddrc_rstn, is + # asserted (0). # PSU_DDRC_DBGCMD_HW_REF_ZQ_EN 0x0 - # Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ctrlupd_req to the PHY. When this request is stored in - # he uMCTL2, the bit is automatically cleared. This operation must only be performed when DFIUPD0.dis_auto_ctrlupd=1. + # Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ct + # rlupd_req to the PHY. When this request is stored in the uMCTL2, the bit + # is automatically cleared. This operation must only be performed when DF + # IUPD0.dis_auto_ctrlupd=1. # PSU_DDRC_DBGCMD_CTRLUPD 0x0 - # Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS (ZQ calibration short)/MPC(ZQ calibration) command to - # he SDRAM. When this request is stored in the uMCTL2, the bit is automatically cleared. This operation can be performed only w - # en ZQCTL0.dis_auto_zq=1. It is recommended NOT to set this register bit if in Init operating mode. This register bit is ignor - # d when in Self-Refresh(except LPDDR4) and SR-Powerdown(LPDDR4) and Deep power-down operating modes and Maximum Power Saving M - # de. + # Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS ( + # ZQ calibration short)/MPC(ZQ calibration) command to the SDRAM. When thi + # s request is stored in the uMCTL2, the bit is automatically cleared. Thi + # s operation can be performed only when ZQCTL0.dis_auto_zq=1. It is recom + # mended NOT to set this register bit if in Init operating mode. This regi + # ster bit is ignored when in Self-Refresh(except LPDDR4) and SR-Powerdown + # (LPDDR4) and Deep power-down operating modes and Maximum Power Saving Mo + # de. # PSU_DDRC_DBGCMD_ZQ_CALIB_SHORT 0x0 - # Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 1. Writing to this bit causes DBGSTAT.rank1 - # refresh_busy to be set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - # be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - # wn operating modes or Maximum Power Saving Mode. + # Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + # h to rank 1. Writing to this bit causes DBGSTAT.rank1_refresh_busy to be + # set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been s + # tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + # auto_refresh=1. It is recommended NOT to set this register bit if in Ini + # t or Deep power-down operating modes or Maximum Power Saving Mode. # PSU_DDRC_DBGCMD_RANK1_REFRESH 0x0 - # Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 0. Writing to this bit causes DBGSTAT.rank0 - # refresh_busy to be set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - # be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - # wn operating modes or Maximum Power Saving Mode. + # Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + # h to rank 0. Writing to this bit causes DBGSTAT.rank0_refresh_busy to be + # set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been s + # tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + # auto_refresh=1. It is recommended NOT to set this register bit if in Ini + # t or Deep power-down operating modes or Maximum Power Saving Mode. # PSU_DDRC_DBGCMD_RANK0_REFRESH 0x0 # Command Debug Register @@ -2808,8 +3452,9 @@ set psu_ddr_init_data { mask_write 0XFD07030C 0x80000033 0x00000000 # Register : SWCTL @ 0XFD070320

- # Enable quasi-dynamic register programming outside reset. Program register to 0 to enable quasi-dynamic programming. Set back - # egister to 1 once programming is done. + # Enable quasi-dynamic register programming outside reset. Program registe + # r to 0 to enable quasi-dynamic programming. Set back register to 1 once + # programming is done. # PSU_DDRC_SWCTL_SW_DONE 0x0 # Software register programming control enable @@ -2817,25 +3462,34 @@ set psu_ddr_init_data { mask_write 0XFD070320 0x00000001 0x00000000 # Register : PCCFG @ 0XFD070400

- # Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expands every AXI burst into multiple HIF commands, using t - # e memory burst length as a unit. If set to 1, then XPI will use half of the memory burst length as a unit. This applies to bo - # h reads and writes. When MSTR.data_bus_width==00, setting bl_exp_mode to 1 has no effect. This can be used in cases where Par - # ial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.dis_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_cc - # _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionality is not supported in the following cases: - UMCTL2_ - # ARTIAL_WR=0 - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 and MSTR.reg_ddrc_burst_rdwr=1000 (LP - # DR4 only) - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burst_rdwr=0100 (DDR4 - # only), with either MSTR.reg_ddrc_burstchop=0 or CRCPARCTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Share - # -AC is enabled + # Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expand + # s every AXI burst into multiple HIF commands, using the memory burst len + # gth as a unit. If set to 1, then XPI will use half of the memory burst l + # ength as a unit. This applies to both reads and writes. When MSTR.data_b + # us_width==00, setting bl_exp_mode to 1 has no effect. This can be used i + # n cases where Partial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.d + # is_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_ccd + # _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionali + # ty is not supported in the following cases: - UMCTL2_PARTIAL_WR=0 - UMCT + # L2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 an + # d MSTR.reg_ddrc_burst_rdwr=1000 (LPDDR4 only) - UMCTL2_PARTIAL_WR=1, MST + # R.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burs + # t_rdwr=0100 (DDR4 only), with either MSTR.reg_ddrc_burstchop=0 or CRCPAR + # CTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Shared + # -AC is enabled # PSU_DDRC_PCCFG_BL_EXP_MODE 0x0 - # Page match four limit. If set to 1, limits the number of consecutive same page DDRC transactions that can be granted by the P - # rt Arbiter to four when Page Match feature is enabled. If set to 0, there is no limit imposed on number of consecutive same p - # ge DDRC transactions. + # Page match four limit. If set to 1, limits the number of consecutive sam + # e page DDRC transactions that can be granted by the Port Arbiter to four + # when Page Match feature is enabled. If set to 0, there is no limit impo + # sed on number of consecutive same page DDRC transactions. # PSU_DDRC_PCCFG_PAGEMATCH_LIMIT 0x0 - # If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals going to DDRC based - # n urgent input (awurgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_go2critical_wr and co_gs_go2critica - # _lpr/co_gs_go2critical_hpr signals at DDRC are driven to 1b'0. + # If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_l + # pr/co_gs_go2critical_hpr signals going to DDRC based on urgent input (aw + # urgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_ + # go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals a + # t DDRC are driven to 1b'0. # PSU_DDRC_PCCFG_GO2CRITICAL_EN 0x1 # Port Common Configuration Register @@ -2843,30 +3497,41 @@ set psu_ddr_init_data { mask_write 0XFD070400 0x00000111 0x00000001 # Register : PCFGR_0 @ 0XFD070404

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. # PSU_DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_0_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_0_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_0_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register @@ -2874,33 +3539,42 @@ set psu_ddr_init_data { mask_write 0XFD070404 0x000073FF 0x0000200F # Register : PCFGW_0 @ 0XFD070408

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_0_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_0_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_0_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD070408 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD070408 0x000073FF 0x0000200F # Register : PCTRL_0 @ 0XFD070490

# Enables port n. @@ -2911,20 +3585,28 @@ set psu_ddr_init_data { mask_write 0XFD070490 0x00000001 0x00000001 # Register : PCFGQOS0_0 @ 0XFD070494

- # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION1 0x2 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION0 0x0 - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1 0xb # Port n Read QoS Configuration Register 0 @@ -2932,10 +3614,12 @@ set psu_ddr_init_data { mask_write 0XFD070494 0x0033000F 0x0020000B # Register : PCFGQOS1_0 @ 0XFD070498

- # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB 0x0 # Port n Read QoS Configuration Register 1 @@ -2943,30 +3627,41 @@ set psu_ddr_init_data { mask_write 0XFD070498 0x07FF07FF 0x00000000 # Register : PCFGR_1 @ 0XFD0704B4

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. # PSU_DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_1_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_1_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_1_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register @@ -2974,33 +3669,42 @@ set psu_ddr_init_data { mask_write 0XFD0704B4 0x000073FF 0x0000200F # Register : PCFGW_1 @ 0XFD0704B8

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_1_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_1_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_1_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD0704B8 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD0704B8 0x000073FF 0x0000200F # Register : PCTRL_1 @ 0XFD070540

# Enables port n. @@ -3011,31 +3715,43 @@ set psu_ddr_init_data { mask_write 0XFD070540 0x00000001 0x00000001 # Register : PCFGQOS0_1 @ 0XFD070544

- # This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - # ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - # s set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region2. For dual address q + # ueue configurations, region2 maps to the red address queue. Valid values + # are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + # = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + # ased to LPR traffic. # PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION2 0x2 - # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION1 0x0 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION0 0x0 - # Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - # el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - # directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - # ust be set to distinct values. + # Separation level2 indicating the end of region1 mapping; start of region + # 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + # ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + # that for PA, arqos values are used directly as port priorities, where t + # he higher the value corresponds to higher port priority. All of the map_ + # level* registers must be set to distinct values. # PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2 0xb - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1 0x3 # Port n Read QoS Configuration Register 0 @@ -3043,10 +3759,12 @@ set psu_ddr_init_data { mask_write 0XFD070544 0x03330F0F 0x02000B03 # Register : PCFGQOS1_1 @ 0XFD070548

- # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB 0x0 # Port n Read QoS Configuration Register 1 @@ -3054,30 +3772,41 @@ set psu_ddr_init_data { mask_write 0XFD070548 0x07FF07FF 0x00000000 # Register : PCFGR_2 @ 0XFD070564

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. # PSU_DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_2_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_2_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_2_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register @@ -3085,33 +3814,42 @@ set psu_ddr_init_data { mask_write 0XFD070564 0x000073FF 0x0000200F # Register : PCFGW_2 @ 0XFD070568

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_2_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_2_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_2_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD070568 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD070568 0x000073FF 0x0000200F # Register : PCTRL_2 @ 0XFD0705F0

# Enables port n. @@ -3122,31 +3860,43 @@ set psu_ddr_init_data { mask_write 0XFD0705F0 0x00000001 0x00000001 # Register : PCFGQOS0_2 @ 0XFD0705F4

- # This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - # ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - # s set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region2. For dual address q + # ueue configurations, region2 maps to the red address queue. Valid values + # are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + # = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + # ased to LPR traffic. # PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION2 0x2 - # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION1 0x0 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION0 0x0 - # Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - # el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - # directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - # ust be set to distinct values. + # Separation level2 indicating the end of region1 mapping; start of region + # 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + # ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + # that for PA, arqos values are used directly as port priorities, where t + # he higher the value corresponds to higher port priority. All of the map_ + # level* registers must be set to distinct values. # PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2 0xb - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1 0x3 # Port n Read QoS Configuration Register 0 @@ -3154,10 +3904,12 @@ set psu_ddr_init_data { mask_write 0XFD0705F4 0x03330F0F 0x02000B03 # Register : PCFGQOS1_2 @ 0XFD0705F8

- # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB 0x0 # Port n Read QoS Configuration Register 1 @@ -3165,30 +3917,41 @@ set psu_ddr_init_data { mask_write 0XFD0705F8 0x07FF07FF 0x00000000 # Register : PCFGR_3 @ 0XFD070614

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. # PSU_DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_3_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_3_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_3_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register @@ -3196,33 +3959,42 @@ set psu_ddr_init_data { mask_write 0XFD070614 0x000073FF 0x0000200F # Register : PCFGW_3 @ 0XFD070618

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_3_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_3_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_3_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD070618 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD070618 0x000073FF 0x0000200F # Register : PCTRL_3 @ 0XFD0706A0

# Enables port n. @@ -3233,20 +4005,28 @@ set psu_ddr_init_data { mask_write 0XFD0706A0 0x00000001 0x00000001 # Register : PCFGQOS0_3 @ 0XFD0706A4

- # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION0 0x0 - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1 0x3 # Port n Read QoS Configuration Register 0 @@ -3254,10 +4034,12 @@ set psu_ddr_init_data { mask_write 0XFD0706A4 0x0033000F 0x00100003 # Register : PCFGQOS1_3 @ 0XFD0706A8

- # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB 0x4f # Port n Read QoS Configuration Register 1 @@ -3265,17 +4047,22 @@ set psu_ddr_init_data { mask_write 0XFD0706A8 0x07FF07FF 0x0000004F # Register : PCFGWQOS0_3 @ 0XFD0706AC

- # This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + # traffic. # PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + # traffic. # PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0 0x0 - # Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - # rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - # s to higher port priority. + # Separation level indicating the end of region0 mapping; start of region0 + # is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + # . Note that for PA, awqos values are used directly as port priorities, w + # here the higher the value corresponds to higher port priority. # PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL 0x3 # Port n Write QoS Configuration Register 0 @@ -3291,64 +4078,84 @@ set psu_ddr_init_data { mask_write 0XFD0706B0 0x000007FF 0x0000004F # Register : PCFGR_4 @ 0XFD0706C4

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_4_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_4_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_4_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register - #(OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD0706C4 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD0706C4 0x000073FF 0x0000200F # Register : PCFGW_4 @ 0XFD0706C8

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_4_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_4_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_4_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD0706C8 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD0706C8 0x000073FF 0x0000200F # Register : PCTRL_4 @ 0XFD070750

# Enables port n. @@ -3359,20 +4166,28 @@ set psu_ddr_init_data { mask_write 0XFD070750 0x00000001 0x00000001 # Register : PCFGQOS0_4 @ 0XFD070754

- # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION0 0x0 - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1 0x3 # Port n Read QoS Configuration Register 0 @@ -3380,10 +4195,12 @@ set psu_ddr_init_data { mask_write 0XFD070754 0x0033000F 0x00100003 # Register : PCFGQOS1_4 @ 0XFD070758

- # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB 0x4f # Port n Read QoS Configuration Register 1 @@ -3391,17 +4208,22 @@ set psu_ddr_init_data { mask_write 0XFD070758 0x07FF07FF 0x0000004F # Register : PCFGWQOS0_4 @ 0XFD07075C

- # This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + # traffic. # PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + # traffic. # PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0 0x0 - # Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - # rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - # s to higher port priority. + # Separation level indicating the end of region0 mapping; start of region0 + # is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + # . Note that for PA, awqos values are used directly as port priorities, w + # here the higher the value corresponds to higher port priority. # PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL 0x3 # Port n Write QoS Configuration Register 0 @@ -3417,30 +4239,41 @@ set psu_ddr_init_data { mask_write 0XFD070760 0x000007FF 0x0000004F # Register : PCFGR_5 @ 0XFD070774

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. # PSU_DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_5_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_5_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_5_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register @@ -3448,33 +4281,42 @@ set psu_ddr_init_data { mask_write 0XFD070774 0x000073FF 0x0000200F # Register : PCFGW_5 @ 0XFD070778

- # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_5_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_5_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_5_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD070778 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD070778 0x000073FF 0x0000200F # Register : PCTRL_5 @ 0XFD070800

# Enables port n. @@ -3485,20 +4327,28 @@ set psu_ddr_init_data { mask_write 0XFD070800 0x00000001 0x00000001 # Register : PCFGQOS0_5 @ 0XFD070804

- # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION0 0x0 - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1 0x3 # Port n Read QoS Configuration Register 0 @@ -3506,10 +4356,12 @@ set psu_ddr_init_data { mask_write 0XFD070804 0x0033000F 0x00100003 # Register : PCFGQOS1_5 @ 0XFD070808

- # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB 0x4f # Port n Read QoS Configuration Register 1 @@ -3517,17 +4369,22 @@ set psu_ddr_init_data { mask_write 0XFD070808 0x07FF07FF 0x0000004F # Register : PCFGWQOS0_5 @ 0XFD07080C

- # This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + # traffic. # PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + # traffic. # PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0 0x0 - # Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - # rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - # s to higher port priority. + # Separation level indicating the end of region0 mapping; start of region0 + # is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + # . Note that for PA, awqos values are used directly as port priorities, w + # here the higher the value corresponds to higher port priority. # PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL 0x3 # Port n Write QoS Configuration Register 0 @@ -3543,8 +4400,9 @@ set psu_ddr_init_data { mask_write 0XFD070810 0x000007FF 0x0000004F # Register : SARBASE0 @ 0XFD070F04

- # Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - # by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + # Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + # ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + # ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). # PSU_DDRC_SARBASE0_BASE_ADDR 0x0 # SAR Base Address Register n @@ -3552,9 +4410,11 @@ set psu_ddr_init_data { mask_write 0XFD070F04 0x000001FF 0x00000000 # Register : SARSIZE0 @ 0XFD070F08

- # Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - # e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - # or example, if register is programmed to 0, region will have 1 block. + # Number of blocks for address region n. This register determines the tota + # l size of the region in multiples of minimum block size as specified by + # the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + # as number of blocks = nblocks + 1. For example, if register is programme + # d to 0, region will have 1 block. # PSU_DDRC_SARSIZE0_NBLOCKS 0x0 # SAR Size Register n @@ -3562,8 +4422,9 @@ set psu_ddr_init_data { mask_write 0XFD070F08 0x000000FF 0x00000000 # Register : SARBASE1 @ 0XFD070F0C

- # Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - # by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + # Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + # ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + # ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). # PSU_DDRC_SARBASE1_BASE_ADDR 0x10 # SAR Base Address Register n @@ -3571,9 +4432,11 @@ set psu_ddr_init_data { mask_write 0XFD070F0C 0x000001FF 0x00000010 # Register : SARSIZE1 @ 0XFD070F10

- # Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - # e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - # or example, if register is programmed to 0, region will have 1 block. + # Number of blocks for address region n. This register determines the tota + # l size of the region in multiples of minimum block size as specified by + # the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + # as number of blocks = nblocks + 1. For example, if register is programme + # d to 0, region will have 1 block. # PSU_DDRC_SARSIZE1_NBLOCKS 0xf # SAR Size Register n @@ -3581,38 +4444,51 @@ set psu_ddr_init_data { mask_write 0XFD070F10 0x000000FF 0x0000000F # Register : DFITMG0_SHADOW @ 0XFD072190

- # Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - # s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - # , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - # this parameter by RDIMM's extra cycle of latency in terms of DFI clock. + # Specifies the number of DFI clock cycles after an assertion or de-assert + # ion of the DFI control signals that the control signals at the PHY-DRAM + # interface reflect the assertion or de-assertion. If the DFI clock and th + # e memory clock are not phase-aligned, this timing parameter should be ro + # unded up to the next integer value. Note that if using RDIMM, it is nece + # ssary to increment this parameter by RDIMM's extra cycle of latency in t + # erms of DFI clock. # PSU_DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY 0x7 - # Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - # 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - # fer to PHY specification for correct value. + # Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + # sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + # is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + # - 1 in terms of SDR clock cycles Refer to PHY specification for correct + # value. # PSU_DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR 0x1 - # Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - # ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - # , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - # latency through the RDIMM. Unit: Clocks + # Time from the assertion of a read command on the DFI interface to the as + # sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + # ect value. This corresponds to the DFI parameter trddata_en. Note that, + # depending on the PHY, if using RDIMM, it may be necessary to use the val + # ue (CL + 1) in the calculation of trddata_en. This is to compensate for + # the extra cycle of latency through the RDIMM. Unit: Clocks # PSU_DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN 0x2 - # Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - # .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - # HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - # e. + # Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + # ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + # in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + # i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + # clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + # n for correct value. # PSU_DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR 0x1 - # Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - # dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - # te, max supported value is 8. Unit: Clocks + # Specifies the number of clock cycles between when dfi_wrdata_en is asser + # ted to when the associated write data is driven on the dfi_wrdata signal + # . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + # specification for correct value. Note, max supported value is 8. Unit: + # Clocks # PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA 0x0 - # Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - # parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - # necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - # rough the RDIMM. + # Write latency Number of clocks from the write command to write data enab + # le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + # lat. Refer to PHY specification for correct value.Note that, depending o + # n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + # in the calculation of tphy_wrlat. This is to compensate for the extra c + # ycle of latency through the RDIMM. # PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT 0x2 # DFI Timing Shadow Register 0 @@ -3624,9 +4500,12 @@ set psu_ddr_init_data { # DDR block level reset inside of the DDR Sub System # PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X0 + # APM block level reset inside of the DDR Sub System + # PSU_CRF_APB_RST_DDR_SS_APM_RESET 0X0 + # DDR sub system block level reset - #(OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000000U) */ - mask_write 0XFD1A0108 0x00000008 0x00000000 + #(OFFSET, MASK, VALUE) (0XFD1A0108, 0x0000000CU ,0x00000000U) */ + mask_write 0XFD1A0108 0x0000000C 0x00000000 # : DDR PHY # Register : PGCR0 @ 0XFD080010

@@ -3687,11 +4566,11 @@ set psu_ddr_init_data { # PSU_DDR_PHY_PGCR2_PLLFSMBYP 0x0 # Refresh Period - # PSU_DDR_PHY_PGCR2_TREFPRD 0x10028 + # PSU_DDR_PHY_PGCR2_TREFPRD 0x10010 # PHY General Configuration Register 2 - #(OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10028U) */ - mask_write 0XFD080018 0xFFFFFFFF 0x00F10028 + #(OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10010U) */ + mask_write 0XFD080018 0xFFFFFFFF 0x00F10010 # Register : PGCR3 @ 0XFD08001C

# CKN Enable @@ -3765,41 +4644,86 @@ set psu_ddr_init_data { # Register : PTR0 @ 0XFD080040

# PLL Power-Down Time - # PSU_DDR_PHY_PTR0_TPLLPD 0x2f0 + # PSU_DDR_PHY_PTR0_TPLLPD 0x56 # PLL Gear Shift Time - # PSU_DDR_PHY_PTR0_TPLLGS 0x60 + # PSU_DDR_PHY_PTR0_TPLLGS 0x2155 # PHY Reset Time # PSU_DDR_PHY_PTR0_TPHYRST 0x10 # PHY Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x5E001810U) */ - mask_write 0XFD080040 0xFFFFFFFF 0x5E001810 + #(OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x0AC85550U) */ + mask_write 0XFD080040 0xFFFFFFFF 0x0AC85550 # Register : PTR1 @ 0XFD080044

# PLL Lock Time - # PSU_DDR_PHY_PTR1_TPLLLOCK 0x80 + # PSU_DDR_PHY_PTR1_TPLLLOCK 0x4141 # Reserved. Returns zeroes on reads. # PSU_DDR_PHY_PTR1_RESERVED_15_13 0x0 # PLL Reset Time - # PSU_DDR_PHY_PTR1_TPLLRST 0x5f0 + # PSU_DDR_PHY_PTR1_TPLLRST 0xaff # PHY Timing Register 1 - #(OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x008005F0U) */ - mask_write 0XFD080044 0xFFFFFFFF 0x008005F0 + #(OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x41410AFFU) */ + mask_write 0XFD080044 0xFFFFFFFF 0x41410AFF + # Register : PLLCR0 @ 0XFD080068

+ + # PLL Bypass + # PSU_DDR_PHY_PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable + # PSU_DDR_PHY_PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_PLLCR0_DTC 0x0 + + # PLL Control Register 0 (Type B PLL Only) + #(OFFSET, MASK, VALUE) (0XFD080068, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD080068 0xFFFFFFFF 0x01100000 # Register : DSGCR @ 0XFD080090

# Reserved. Return zeroes on reads. # PSU_DDR_PHY_DSGCR_RESERVED_31_28 0x0 - # When RDBI enabled, this bit is used to select RDBI CL calculation, if it is 1b1, calculation will use RDBICL, otherwise use d - # fault calculation. + # When RDBI enabled, this bit is used to select RDBI CL calculation, if it + # is 1b1, calculation will use RDBICL, otherwise use default calculation. # PSU_DDR_PHY_DSGCR_RDBICLSEL 0x0 - # When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this value. + # When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this v + # alue. # PSU_DDR_PHY_DSGCR_RDBICL 0x2 # PHY Impedance Update Enable @@ -3836,7 +4760,7 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DSGCR_DTOODT 0x0 # PHY Update Acknowledge Delay - # PSU_DDR_PHY_DSGCR_PUAD 0x4 + # PSU_DDR_PHY_DSGCR_PUAD 0x5 # Controller Update Acknowledge Enable # PSU_DDR_PHY_DSGCR_CUAEN 0x1 @@ -3854,8 +4778,16 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DSGCR_PUREN 0x1 # DDR System General Configuration Register - #(OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04121U) */ - mask_write 0XFD080090 0xFFFFFFFF 0x02A04121 + #(OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04161U) */ + mask_write 0XFD080090 0xFFFFFFFF 0x02A04161 + # Register : GPR0 @ 0XFD0800C0

+ + # General Purpose Register 0 + # PSU_DDR_PHY_GPR0_GPR0 0xd3 + + # General Purpose Register 0 + #(OFFSET, MASK, VALUE) (0XFD0800C0, 0xFFFFFFFFU ,0x000000D3U) */ + mask_write 0XFD0800C0 0xFFFFFFFF 0x000000D3 # Register : DCR @ 0XFD080100

# DDR4 Gear Down Timing. @@ -3921,30 +4853,31 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DTPR0_RESERVED_7_5 0x0 # Internal read to precharge command delay - # PSU_DDR_PHY_DTPR0_TRTP 0x9 + # PSU_DDR_PHY_DTPR0_TRTP 0x8 # DRAM Timing Parameters Register 0 - #(OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F09U) */ - mask_write 0XFD080110 0xFFFFFFFF 0x06240F09 + #(OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F08U) */ + mask_write 0XFD080110 0xFFFFFFFF 0x06240F08 # Register : DTPR1 @ 0XFD080114

# Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR1_RESERVED_31 0x0 - # Minimum delay from when write leveling mode is programmed to the first DQS/DQS# rising edge. + # Minimum delay from when write leveling mode is programmed to the first D + # QS/DQS# rising edge. # PSU_DDR_PHY_DTPR1_TWLMRD 0x28 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR1_RESERVED_23 0x0 # 4-bank activate period - # PSU_DDR_PHY_DTPR1_TFAW 0x18 + # PSU_DDR_PHY_DTPR1_TFAW 0x20 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR1_RESERVED_15_11 0x0 # Load mode update delay (DDR4 and DDR3 only) - # PSU_DDR_PHY_DTPR1_TMOD 0x7 + # PSU_DDR_PHY_DTPR1_TMOD 0x0 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR1_RESERVED_7_5 0x0 @@ -3953,8 +4886,8 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DTPR1_TMRD 0x8 # DRAM Timing Parameters Register 1 - #(OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28180708U) */ - mask_write 0XFD080114 0xFFFFFFFF 0x28180708 + #(OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28200008U) */ + mask_write 0XFD080114 0xFFFFFFFF 0x28200008 # Register : DTPR2 @ 0XFD080118

# Reserved. Return zeroes on reads. @@ -3973,17 +4906,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DTPR2_RESERVED_23_20 0x0 # CKE minimum pulse width - # PSU_DDR_PHY_DTPR2_TCKE 0x8 + # PSU_DDR_PHY_DTPR2_TCKE 0x7 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR2_RESERVED_15_10 0x0 # Self refresh exit delay - # PSU_DDR_PHY_DTPR2_TXS 0x200 + # PSU_DDR_PHY_DTPR2_TXS 0x300 # DRAM Timing Parameters Register 2 - #(OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00080200U) */ - mask_write 0XFD080118 0xFFFFFFFF 0x00080200 + #(OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00070300U) */ + mask_write 0XFD080118 0xFFFFFFFF 0x00070300 # Register : DTPR3 @ 0XFD08011C

# ODT turn-off delay extension @@ -4034,18 +4967,18 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DTPR4_RESERVED_7_5 0x0 # Power down exit delay - # PSU_DDR_PHY_DTPR4_TXP 0x8 + # PSU_DDR_PHY_DTPR4_TXP 0x7 # DRAM Timing Parameters Register 4 - #(OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B08U) */ - mask_write 0XFD080120 0xFFFFFFFF 0x01162B08 + #(OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B07U) */ + mask_write 0XFD080120 0xFFFFFFFF 0x01162B07 # Register : DTPR5 @ 0XFD080124

# Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR5_RESERVED_31_24 0x0 # Activate to activate command delay (same bank) - # PSU_DDR_PHY_DTPR5_TRC 0x32 + # PSU_DDR_PHY_DTPR5_TRC 0x33 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR5_RESERVED_15 0x0 @@ -4057,11 +4990,11 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DTPR5_RESERVED_7_5 0x0 # Internal write to read command delay - # PSU_DDR_PHY_DTPR5_TWTR 0x9 + # PSU_DDR_PHY_DTPR5_TWTR 0x8 # DRAM Timing Parameters Register 5 - #(OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00320F09U) */ - mask_write 0XFD080124 0xFFFFFFFF 0x00320F09 + #(OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00330F08U) */ + mask_write 0XFD080124 0xFFFFFFFF 0x00330F08 # Register : DTPR6 @ 0XFD080128

# PUB Write Latency Enable @@ -4193,15 +5126,18 @@ set psu_ddr_init_data { # DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) # PSU_DDR_PHY_RDIMMCR0_RC5 0x0 - # DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control Word) / DDR3 Control Word 4 (Control Signals Driver C - # aracteristics Control Word) + # DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control + # Word) / DDR3 Control Word 4 (Control Signals Driver Characteristics Cont + # rol Word) # PSU_DDR_PHY_RDIMMCR0_RC4 0x0 - # DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Word) / DDR3 Control Word 3 (Command/Address Signals Dr - # ver Characteristrics Control Word) + # DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Wo + # rd) / DDR3 Control Word 3 (Command/Address Signals Driver Characteristri + # cs Control Word) # PSU_DDR_PHY_RDIMMCR0_RC3 0x0 - # DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 (Timing Control Word) + # DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 + # (Timing Control Word) # PSU_DDR_PHY_RDIMMCR0_RC2 0x0 # DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) @@ -4227,8 +5163,8 @@ set psu_ddr_init_data { # DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved # PSU_DDR_PHY_RDIMMCR1_RC12 0x0 - # DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Word) / DDR3 Control Word 11 (Operation Voltage VDD Con - # rol Word) + # DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Wo + # rd) / DDR3 Control Word 11 (Operation Voltage VDD Control Word) # PSU_DDR_PHY_RDIMMCR1_RC11 0x0 # DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) @@ -4237,8 +5173,8 @@ set psu_ddr_init_data { # DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) # PSU_DDR_PHY_RDIMMCR1_RC9 0x0 - # DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Control Word 8 (Additional Input Bus Termination Setting - # Control Word) + # DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Con + # trol Word 8 (Additional Input Bus Termination Setting Control Word) # PSU_DDR_PHY_RDIMMCR1_RC8 0x0 # RDIMM Control Register 1 @@ -4247,23 +5183,25 @@ set psu_ddr_init_data { # Register : MR0 @ 0XFD080180

# Reserved. Return zeroes on reads. - # PSU_DDR_PHY_MR0_RESERVED_31_8 0x8 + # PSU_DDR_PHY_MR0_RESERVED_31_8 0x6 # CA Terminating Rank # PSU_DDR_PHY_MR0_CATR 0x0 - # Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + # be programmed to 0x0. # PSU_DDR_PHY_MR0_RSVD_6_5 0x1 # Built-in Self-Test for RZQ # PSU_DDR_PHY_MR0_RZQI 0x2 - # Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + # be programmed to 0x0. # PSU_DDR_PHY_MR0_RSVD_2_0 0x0 # LPDDR4 Mode Register 0 - #(OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000830U) */ - mask_write 0XFD080180 0xFFFFFFFF 0x00000830 + #(OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000630U) */ + mask_write 0XFD080180 0xFFFFFFFF 0x00000630 # Register : MR1 @ 0XFD080184

# Reserved. Return zeroes on reads. @@ -4321,7 +5259,8 @@ set psu_ddr_init_data { # Pull-down Drive Strength # PSU_DDR_PHY_MR3_PDDS 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR3_RSVD 0x0 # Write Postamble Length @@ -4338,7 +5277,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR4_RESERVED_31_16 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR4_RSVD_15_13 0x0 # Write Preamble @@ -4356,7 +5296,8 @@ set psu_ddr_init_data { # CS to Command Latency Mode # PSU_DDR_PHY_MR4_CS2CMDL 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR4_RSVD1 0x0 # Internal VREF Monitor @@ -4371,7 +5312,8 @@ set psu_ddr_init_data { # Maximum Power Down Mode # PSU_DDR_PHY_MR4_MPDM 0x0 - # This is a JEDEC reserved bit and is recommended by JEDEC to be programmed to 0x0. + # This is a JEDEC reserved bit and is recommended by JEDEC to be programme + # d to 0x0. # PSU_DDR_PHY_MR4_RSVD_0 0x0 # DDR4 Mode Register 4 @@ -4382,7 +5324,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR5_RESERVED_31_16 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR5_RSVD 0x0 # Read DBI @@ -4420,13 +5363,15 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR6_RESERVED_31_16 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR6_RSVD_15_13 0x0 # CAS_n to CAS_n command delay for same bank group (tCCD_L) # PSU_DDR_PHY_MR6_TCCDL 0x2 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR6_RSVD_9_8 0x0 # VrefDQ Training Enable @@ -4446,7 +5391,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR11_RESERVED_31_8 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR11_RSVD 0x0 # Power Down Control @@ -4463,7 +5409,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR12_RESERVED_31_8 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR12_RSVD 0x0 # VREF_CA Range Select. @@ -4512,7 +5459,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR14_RESERVED_31_8 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR14_RSVD 0x0 # VREFDQ Range Selects. @@ -4529,7 +5477,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR22_RESERVED_31_8 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR22_RSVD 0x0 # CA ODT termination disable. @@ -4646,14 +5595,16 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_CATR0_RESERVED_31_21 0x0 - # Minimum time (in terms of number of dram clocks) between two consectuve CA calibration command + # Minimum time (in terms of number of dram clocks) between two consectuve + # CA calibration command # PSU_DDR_PHY_CATR0_CACD 0x14 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_CATR0_RESERVED_15_13 0x0 - # Minimum time (in terms of number of dram clocks) PUB should wait before sampling the CA response after Calibration command ha - # been sent to the memory + # Minimum time (in terms of number of dram clocks) PUB should wait before + # sampling the CA response after Calibration command has been sent to the + # memory # PSU_DDR_PHY_CATR0_CAADR 0x10 # CA_1 Response Byte Lane 1 @@ -4665,6 +5616,48 @@ set psu_ddr_init_data { # CA Training Register 0 #(OFFSET, MASK, VALUE) (0XFD080240, 0xFFFFFFFFU ,0x00141054U) */ mask_write 0XFD080240 0xFFFFFFFF 0x00141054 + # Register : DQSDR0 @ 0XFD080250

+ + # Number of delay taps by which the DQS gate LCDL will be updated when DQS + # drift is detected + # PSU_DDR_PHY_DQSDR0_DFTDLY 0x0 + + # Drift Impedance Update + # PSU_DDR_PHY_DQSDR0_DFTZQUP 0x0 + + # Drift DDL Update + # PSU_DDR_PHY_DQSDR0_DFTDDLUP 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DQSDR0_RESERVED_25_22 0x0 + + # Drift Read Spacing + # PSU_DDR_PHY_DQSDR0_DFTRDSPC 0x0 + + # Drift Back-to-Back Reads + # PSU_DDR_PHY_DQSDR0_DFTB2BRD 0x8 + + # Drift Idle Reads + # PSU_DDR_PHY_DQSDR0_DFTIDLRD 0x8 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DQSDR0_RESERVED_11_8 0x0 + + # Gate Pulse Enable + # PSU_DDR_PHY_DQSDR0_DFTGPULSE 0x0 + + # DQS Drift Update Mode + # PSU_DDR_PHY_DQSDR0_DFTUPMODE 0x0 + + # DQS Drift Detection Mode + # PSU_DDR_PHY_DQSDR0_DFTDTMODE 0x0 + + # DQS Drift Detection Enable + # PSU_DDR_PHY_DQSDR0_DFTDTEN 0x0 + + # DQS Drift Register 0 + #(OFFSET, MASK, VALUE) (0XFD080250, 0xFFFFFFFFU ,0x00088000U) */ + mask_write 0XFD080250 0xFFFFFFFF 0x00088000 # Register : BISTLSR @ 0XFD080414

# LFSR seed for pseudo-random BIST patterns @@ -4727,7 +5720,8 @@ set psu_ddr_init_data { mask_write 0XFD080500 0xFFFFFFFF 0x30000028 # Register : ACIOCR2 @ 0XFD080508

- # Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL slice + # Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL + # slice # PSU_DDR_PHY_ACIOCR2_CLKGENCLKGATE 0x0 # Clock gating for Output Enable D slices [0] @@ -4842,14 +5836,15 @@ set psu_ddr_init_data { # PSU_DDR_PHY_IOVCR0_ACVREFISELRANGE 0x1 # REFSEL Control for internal AC IOs - # PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x30 + # PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x4e # IO VREF Control Register 0 - #(OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0B0U) */ - mask_write 0XFD080520 0xFFFFFFFF 0x0300B0B0 + #(OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0CEU) */ + mask_write 0XFD080520 0xFFFFFFFF 0x0300B0CE # Register : VTCR0 @ 0XFD080528

- # Number of ctl_clk required to meet (> 150ns) timing requirements during DRAM DQ VREF training + # Number of ctl_clk required to meet (> 150ns) timing requirements during + # DRAM DQ VREF training # PSU_DDR_PHY_VTCR0_TVREF 0x7 # DRM DQ VREF training Enable @@ -4881,7 +5876,8 @@ set psu_ddr_init_data { mask_write 0XFD080528 0xFFFFFFFF 0xF9032019 # Register : VTCR1 @ 0XFD08052C

- # Host VREF step size used during VREF training. The register value of N indicates step size of (N+1) + # Host VREF step size used during VREF training. The register value of N i + # ndicates step size of (N+1) # PSU_DDR_PHY_VTCR1_HVSS 0x0 # Reserved. Returns zeroes on reads. @@ -4905,7 +5901,8 @@ set psu_ddr_init_data { # Static Host Vref Rank Enable # PSU_DDR_PHY_VTCR1_SHREN 0x1 - # Number of ctl_clk required to meet (> 200ns) VREF Settling timing requirements during Host IO VREF training + # Number of ctl_clk required to meet (> 200ns) VREF Settling timing requir + # ements during Host IO VREF training # PSU_DDR_PHY_VTCR1_TVREFIO 0x7 # Eye LCDL Offset value for VREF training @@ -4934,13 +5931,15 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_ACBDLR1_RESERVED_23_22 0x0 - # Delay select for the BDL on Address A[16]. In DDR3 mode this pin is connected to WE. + # Delay select for the BDL on Address A[16]. In DDR3 mode this pin is conn + # ected to WE. # PSU_DDR_PHY_ACBDLR1_A16BD 0x0 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_ACBDLR1_RESERVED_15_14 0x0 - # Delay select for the BDL on Address A[17]. When not in DDR4 modemode this pin is connected to CAS. + # Delay select for the BDL on Address A[17]. When not in DDR4 modemode thi + # s pin is connected to CAS. # PSU_DDR_PHY_ACBDLR1_A17BD 0x0 # Reserved. Return zeroes on reads. @@ -5109,7 +6108,7 @@ set psu_ddr_init_data { # PSU_DDR_PHY_ZQCR_PGWAIT_FRQB 0x11 # Programmable Wait for Frequency A - # PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x11 + # PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x15 # ZQ VREF Pad Enable # PSU_DDR_PHY_ZQCR_ZQREFPEN 0x0 @@ -5139,8 +6138,8 @@ set psu_ddr_init_data { # PSU_DDR_PHY_ZQCR_ZQPD 0x0 # ZQ Impedance Control Register - #(OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008A2A58U) */ - mask_write 0XFD080680 0xFFFFFFFF 0x008A2A58 + #(OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008AAA58U) */ + mask_write 0XFD080680 0xFFFFFFFF 0x008AAA58 # Register : ZQ0PR0 @ 0XFD080684

# Pull-down drive strength ZCTRL over-ride enable @@ -5158,7 +6157,8 @@ set psu_ddr_init_data { # Calibration segment bypass # PSU_DDR_PHY_ZQ0PR0_ZSEGBYP 0x0 - # VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB + # VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + # is driven by the PUB # PSU_DDR_PHY_ZQ0PR0_ZLE_MODE 0x0 # Termination adjustment @@ -5174,17 +6174,19 @@ set psu_ddr_init_data { # PSU_DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT 0x7 # HOST Impedance Divide Ratio - # PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x7 + # PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x9 - # Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) + # Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + # ve strength calibration) # PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD 0xd - # Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) + # Impedance Divide Ratio (pullup drive calibration during asymmetric drive + # strength calibration) # PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU 0xd # ZQ n Impedance Control Program Register 0 - #(OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000077DDU) */ - mask_write 0XFD080684 0xFFFFFFFF 0x000077DD + #(OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000079DDU) */ + mask_write 0XFD080684 0xFFFFFFFF 0x000079DD # Register : ZQ0OR0 @ 0XFD080694

# Reserved. Return zeros on reads. @@ -5236,7 +6238,8 @@ set psu_ddr_init_data { # Calibration segment bypass # PSU_DDR_PHY_ZQ1PR0_ZSEGBYP 0x0 - # VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB + # VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + # is driven by the PUB # PSU_DDR_PHY_ZQ1PR0_ZLE_MODE 0x0 # Termination adjustment @@ -5254,10 +6257,12 @@ set psu_ddr_init_data { # HOST Impedance Divide Ratio # PSU_DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT 0xb - # Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) + # Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + # ve strength calibration) # PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD 0xd - # Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) + # Impedance Divide Ratio (pullup drive calibration during asymmetric drive + # strength calibration) # PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU 0xb # ZQ n Impedance Control Program Register 0 @@ -5277,7 +6282,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX0GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX0GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -5378,17 +6384,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX0GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX0GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080714 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080714 0xFFFFFFFF 0x09095555 # Register : DX0GCR6 @ 0XFD080718

# Reserved. Returns zeros on reads. @@ -5418,52 +6424,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080718, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080718 0xFFFFFFFF 0x09092B2B - # Register : DX0LCDLR2 @ 0XFD080788

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX0LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX0LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX0LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX0LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080788, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080788 0xFFFFFFFF 0x00000000 - # Register : DX0GTR0 @ 0XFD0807C0

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX0GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX0GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX0GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX0GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX0GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX0GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX0GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX0GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD0807C0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD0807C0 0xFFFFFFFF 0x00020000 # Register : DX1GCR0 @ 0XFD080800

# Calibration Bypass @@ -5478,7 +6438,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX1GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX1GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -5579,17 +6540,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX1GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX1GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080814 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080814 0xFFFFFFFF 0x09095555 # Register : DX1GCR6 @ 0XFD080818

# Reserved. Returns zeros on reads. @@ -5619,52 +6580,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080818, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080818 0xFFFFFFFF 0x09092B2B - # Register : DX1LCDLR2 @ 0XFD080888

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX1LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX1LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX1LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX1LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080888, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080888 0xFFFFFFFF 0x00000000 - # Register : DX1GTR0 @ 0XFD0808C0

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX1GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX1GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX1GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX1GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX1GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX1GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX1GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX1GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD0808C0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD0808C0 0xFFFFFFFF 0x00020000 # Register : DX2GCR0 @ 0XFD080900

# Calibration Bypass @@ -5679,7 +6594,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX2GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX2GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -5815,17 +6731,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX2GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX2GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080914 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080914 0xFFFFFFFF 0x09095555 # Register : DX2GCR6 @ 0XFD080918

# Reserved. Returns zeros on reads. @@ -5855,52 +6771,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080918, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080918 0xFFFFFFFF 0x09092B2B - # Register : DX2LCDLR2 @ 0XFD080988

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX2LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX2LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX2LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX2LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080988, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080988 0xFFFFFFFF 0x00000000 - # Register : DX2GTR0 @ 0XFD0809C0

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX2GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX2GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX2GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX2GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX2GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX2GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX2GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX2GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD0809C0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD0809C0 0xFFFFFFFF 0x00020000 # Register : DX3GCR0 @ 0XFD080A00

# Calibration Bypass @@ -5915,7 +6785,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX3GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX3GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -6051,17 +6922,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX3GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX3GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080A14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080A14 0xFFFFFFFF 0x09095555 # Register : DX3GCR6 @ 0XFD080A18

# Reserved. Returns zeros on reads. @@ -6091,52 +6962,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080A18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080A18 0xFFFFFFFF 0x09092B2B - # Register : DX3LCDLR2 @ 0XFD080A88

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX3LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX3LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX3LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX3LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080A88, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080A88 0xFFFFFFFF 0x00000000 - # Register : DX3GTR0 @ 0XFD080AC0

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX3GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX3GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX3GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX3GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX3GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX3GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX3GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX3GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080AC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080AC0 0xFFFFFFFF 0x00020000 # Register : DX4GCR0 @ 0XFD080B00

# Calibration Bypass @@ -6151,7 +6976,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX4GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX4GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -6287,17 +7113,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX4GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX4GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080B14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080B14 0xFFFFFFFF 0x09095555 # Register : DX4GCR6 @ 0XFD080B18

# Reserved. Returns zeros on reads. @@ -6327,52 +7153,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080B18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080B18 0xFFFFFFFF 0x09092B2B - # Register : DX4LCDLR2 @ 0XFD080B88

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX4LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX4LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX4LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX4LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080B88, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080B88 0xFFFFFFFF 0x00000000 - # Register : DX4GTR0 @ 0XFD080BC0

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX4GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX4GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX4GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX4GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX4GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX4GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX4GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX4GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080BC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080BC0 0xFFFFFFFF 0x00020000 # Register : DX5GCR0 @ 0XFD080C00

# Calibration Bypass @@ -6387,7 +7167,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX5GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX5GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -6523,17 +7304,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX5GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX5GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080C14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080C14 0xFFFFFFFF 0x09095555 # Register : DX5GCR6 @ 0XFD080C18

# Reserved. Returns zeros on reads. @@ -6563,52 +7344,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080C18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080C18 0xFFFFFFFF 0x09092B2B - # Register : DX5LCDLR2 @ 0XFD080C88

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX5LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX5LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX5LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX5LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080C88, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080C88 0xFFFFFFFF 0x00000000 - # Register : DX5GTR0 @ 0XFD080CC0

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX5GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX5GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX5GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX5GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX5GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX5GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX5GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX5GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080CC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080CC0 0xFFFFFFFF 0x00020000 # Register : DX6GCR0 @ 0XFD080D00

# Calibration Bypass @@ -6623,7 +7358,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX6GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX6GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -6759,17 +7495,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX6GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX6GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080D14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080D14 0xFFFFFFFF 0x09095555 # Register : DX6GCR6 @ 0XFD080D18

# Reserved. Returns zeros on reads. @@ -6799,52 +7535,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080D18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080D18 0xFFFFFFFF 0x09092B2B - # Register : DX6LCDLR2 @ 0XFD080D88

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX6LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX6LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX6LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX6LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080D88, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080D88 0xFFFFFFFF 0x00000000 - # Register : DX6GTR0 @ 0XFD080DC0

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX6GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX6GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX6GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX6GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX6GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX6GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX6GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX6GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080DC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080DC0 0xFFFFFFFF 0x00020000 # Register : DX7GCR0 @ 0XFD080E00

# Calibration Bypass @@ -6859,7 +7549,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX7GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX7GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -6995,17 +7686,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX7GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX7GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080E14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080E14 0xFFFFFFFF 0x09095555 # Register : DX7GCR6 @ 0XFD080E18

# Reserved. Returns zeros on reads. @@ -7035,52 +7726,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080E18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080E18 0xFFFFFFFF 0x09092B2B - # Register : DX7LCDLR2 @ 0XFD080E88

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX7LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX7LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX7LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX7LCDLR2_DQSGD 0xa - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080E88, 0xFFFFFFFFU ,0x0000000AU) */ - mask_write 0XFD080E88 0xFFFFFFFF 0x0000000A - # Register : DX7GTR0 @ 0XFD080EC0

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX7GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX7GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX7GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX7GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX7GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX7GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX7GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX7GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080EC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080EC0 0xFFFFFFFF 0x00020000 # Register : DX8GCR0 @ 0XFD080F00

# Calibration Bypass @@ -7095,7 +7740,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX8GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX8GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -7231,17 +7877,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX8GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX8GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080F14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080F14 0xFFFFFFFF 0x09095555 # Register : DX8GCR6 @ 0XFD080F18

# Reserved. Returns zeros on reads. @@ -7271,52 +7917,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080F18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080F18 0xFFFFFFFF 0x09092B2B - # Register : DX8LCDLR2 @ 0XFD080F88

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX8LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX8LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX8LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX8LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080F88, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080F88 0xFFFFFFFF 0x00000000 - # Register : DX8GTR0 @ 0XFD080FC0

- - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX8GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX8GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX8GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX8GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX8GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX8GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX8GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX8GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080FC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080FC0 0xFFFFFFFF 0x00020000 # Register : DX8SL0OSC @ 0XFD081400

# Reserved. Return zeroes on reads. @@ -7331,7 +7931,8 @@ set psu_ddr_init_data { # Enable Clock Gating for DX ctl_clk # PSU_DDR_PHY_DX8SL0OSC_GATEDXCTLCLK 0x2 - # Selects the level to which clocks will be stalled when clock gating is enabled. + # Selects the level to which clocks will be stalled when clock gating is e + # nabled. # PSU_DDR_PHY_DX8SL0OSC_CLKLEVEL 0x0 # Loopback Mode @@ -7376,9 +7977,54 @@ set psu_ddr_init_data { # Oscillator Enable # PSU_DDR_PHY_DX8SL0OSC_OSCEN 0x0 - # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register + # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + # opback, and Gated Clock Control Register #(OFFSET, MASK, VALUE) (0XFD081400, 0xFFFFFFFFU ,0x2A019FFEU) */ mask_write 0XFD081400 0xFFFFFFFF 0x2A019FFE + # Register : DX8SL0PLLCR0 @ 0XFD081404

+ + # PLL Bypass + # PSU_DDR_PHY_DX8SL0PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SL0PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SL0PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SL0PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SL0PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SL0PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SL0PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SL0PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SL0PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SL0PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SL0PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SL0PLLCR0_DTC 0x0 + + # DAXT8 0-1 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD081404, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD081404 0xFFFFFFFF 0x01100000 # Register : DX8SL0DQSCTL @ 0XFD08141C

# Reserved. Return zeroes on reads. @@ -7516,7 +8162,8 @@ set psu_ddr_init_data { # Enable Clock Gating for DX ctl_clk # PSU_DDR_PHY_DX8SL1OSC_GATEDXCTLCLK 0x2 - # Selects the level to which clocks will be stalled when clock gating is enabled. + # Selects the level to which clocks will be stalled when clock gating is e + # nabled. # PSU_DDR_PHY_DX8SL1OSC_CLKLEVEL 0x0 # Loopback Mode @@ -7561,9 +8208,54 @@ set psu_ddr_init_data { # Oscillator Enable # PSU_DDR_PHY_DX8SL1OSC_OSCEN 0x0 - # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register + # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + # opback, and Gated Clock Control Register #(OFFSET, MASK, VALUE) (0XFD081440, 0xFFFFFFFFU ,0x2A019FFEU) */ mask_write 0XFD081440 0xFFFFFFFF 0x2A019FFE + # Register : DX8SL1PLLCR0 @ 0XFD081444

+ + # PLL Bypass + # PSU_DDR_PHY_DX8SL1PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SL1PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SL1PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SL1PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SL1PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SL1PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SL1PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SL1PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SL1PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SL1PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SL1PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SL1PLLCR0_DTC 0x0 + + # DAXT8 0-1 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD081444, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD081444 0xFFFFFFFF 0x01100000 # Register : DX8SL1DQSCTL @ 0XFD08145C

# Reserved. Return zeroes on reads. @@ -7701,7 +8393,8 @@ set psu_ddr_init_data { # Enable Clock Gating for DX ctl_clk # PSU_DDR_PHY_DX8SL2OSC_GATEDXCTLCLK 0x2 - # Selects the level to which clocks will be stalled when clock gating is enabled. + # Selects the level to which clocks will be stalled when clock gating is e + # nabled. # PSU_DDR_PHY_DX8SL2OSC_CLKLEVEL 0x0 # Loopback Mode @@ -7746,9 +8439,54 @@ set psu_ddr_init_data { # Oscillator Enable # PSU_DDR_PHY_DX8SL2OSC_OSCEN 0x0 - # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register + # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + # opback, and Gated Clock Control Register #(OFFSET, MASK, VALUE) (0XFD081480, 0xFFFFFFFFU ,0x2A019FFEU) */ mask_write 0XFD081480 0xFFFFFFFF 0x2A019FFE + # Register : DX8SL2PLLCR0 @ 0XFD081484

+ + # PLL Bypass + # PSU_DDR_PHY_DX8SL2PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SL2PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SL2PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SL2PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SL2PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SL2PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SL2PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SL2PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SL2PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SL2PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SL2PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SL2PLLCR0_DTC 0x0 + + # DAXT8 0-1 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD081484, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD081484 0xFFFFFFFF 0x01100000 # Register : DX8SL2DQSCTL @ 0XFD08149C

# Reserved. Return zeroes on reads. @@ -7886,7 +8624,8 @@ set psu_ddr_init_data { # Enable Clock Gating for DX ctl_clk # PSU_DDR_PHY_DX8SL3OSC_GATEDXCTLCLK 0x2 - # Selects the level to which clocks will be stalled when clock gating is enabled. + # Selects the level to which clocks will be stalled when clock gating is e + # nabled. # PSU_DDR_PHY_DX8SL3OSC_CLKLEVEL 0x0 # Loopback Mode @@ -7931,9 +8670,54 @@ set psu_ddr_init_data { # Oscillator Enable # PSU_DDR_PHY_DX8SL3OSC_OSCEN 0x0 - # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register + # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + # opback, and Gated Clock Control Register #(OFFSET, MASK, VALUE) (0XFD0814C0, 0xFFFFFFFFU ,0x2A019FFEU) */ mask_write 0XFD0814C0 0xFFFFFFFF 0x2A019FFE + # Register : DX8SL3PLLCR0 @ 0XFD0814C4

+ + # PLL Bypass + # PSU_DDR_PHY_DX8SL3PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SL3PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SL3PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SL3PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SL3PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SL3PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SL3PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SL3PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SL3PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SL3PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SL3PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SL3PLLCR0_DTC 0x0 + + # DAXT8 0-1 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD0814C4, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD0814C4 0xFFFFFFFF 0x01100000 # Register : DX8SL3DQSCTL @ 0XFD0814DC

# Reserved. Return zeroes on reads. @@ -8071,7 +8855,8 @@ set psu_ddr_init_data { # Enable Clock Gating for DX ctl_clk # PSU_DDR_PHY_DX8SL4OSC_GATEDXCTLCLK 0x2 - # Selects the level to which clocks will be stalled when clock gating is enabled. + # Selects the level to which clocks will be stalled when clock gating is e + # nabled. # PSU_DDR_PHY_DX8SL4OSC_CLKLEVEL 0x0 # Loopback Mode @@ -8116,9 +8901,54 @@ set psu_ddr_init_data { # Oscillator Enable # PSU_DDR_PHY_DX8SL4OSC_OSCEN 0x0 - # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register + # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + # opback, and Gated Clock Control Register #(OFFSET, MASK, VALUE) (0XFD081500, 0xFFFFFFFFU ,0x2A019FFEU) */ mask_write 0XFD081500 0xFFFFFFFF 0x2A019FFE + # Register : DX8SL4PLLCR0 @ 0XFD081504

+ + # PLL Bypass + # PSU_DDR_PHY_DX8SL4PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SL4PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SL4PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SL4PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SL4PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SL4PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SL4PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SL4PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SL4PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SL4PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SL4PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SL4PLLCR0_DTC 0x0 + + # DAXT8 0-1 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD081504, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD081504 0xFFFFFFFF 0x01100000 # Register : DX8SL4DQSCTL @ 0XFD08151C

# Reserved. Return zeroes on reads. @@ -8242,6 +9072,50 @@ set psu_ddr_init_data { # DATX8 0-1 I/O Configuration Register #(OFFSET, MASK, VALUE) (0XFD081530, 0xFFFFFFFFU ,0x70800000U) */ mask_write 0XFD081530 0xFFFFFFFF 0x70800000 + # Register : DX8SLbPLLCR0 @ 0XFD0817C4

+ + # PLL Bypass + # PSU_DDR_PHY_DX8SLBPLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SLBPLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SLBPLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SLBPLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SLBPLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SLBPLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SLBPLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SLBPLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SLBPLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SLBPLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SLBPLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SLBPLLCR0_DTC 0x0 + + # DAXT8 0-8 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD0817C4, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD0817C4 0xFFFFFFFF 0x01100000 # Register : DX8SLbDQSCTL @ 0XFD0817DC

# Reserved. Return zeroes on reads. @@ -8289,107 +9163,35 @@ set psu_ddr_init_data { # DATX8 0-8 DQS Control Register #(OFFSET, MASK, VALUE) (0XFD0817DC, 0xFFFFFFFFU ,0x012643C4U) */ mask_write 0XFD0817DC 0xFFFFFFFF 0x012643C4 - # Register : PIR @ 0XFD080004

+} - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_PIR_RESERVED_31 0x0 - - # Impedance Calibration Bypass - # PSU_DDR_PHY_PIR_ZCALBYP 0x0 - - # Digital Delay Line (DDL) Calibration Pause - # PSU_DDR_PHY_PIR_DCALPSE 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_PIR_RESERVED_28_21 0x0 - - # Write DQS2DQ Training - # PSU_DDR_PHY_PIR_DQS2DQ 0x0 - - # RDIMM Initialization - # PSU_DDR_PHY_PIR_RDIMMINIT 0x0 - - # Controller DRAM Initialization - # PSU_DDR_PHY_PIR_CTLDINIT 0x1 - - # VREF Training - # PSU_DDR_PHY_PIR_VREF 0x0 - - # Static Read Training - # PSU_DDR_PHY_PIR_SRD 0x0 - - # Write Data Eye Training - # PSU_DDR_PHY_PIR_WREYE 0x0 - - # Read Data Eye Training - # PSU_DDR_PHY_PIR_RDEYE 0x0 - - # Write Data Bit Deskew - # PSU_DDR_PHY_PIR_WRDSKW 0x0 - - # Read Data Bit Deskew - # PSU_DDR_PHY_PIR_RDDSKW 0x0 - - # Write Leveling Adjust - # PSU_DDR_PHY_PIR_WLADJ 0x0 - - # Read DQS Gate Training - # PSU_DDR_PHY_PIR_QSGATE 0x0 - - # Write Leveling - # PSU_DDR_PHY_PIR_WL 0x0 - - # DRAM Initialization - # PSU_DDR_PHY_PIR_DRAMINIT 0x0 - - # DRAM Reset (DDR3/DDR4/LPDDR4 Only) - # PSU_DDR_PHY_PIR_DRAMRST 0x0 - - # PHY Reset - # PSU_DDR_PHY_PIR_PHYRST 0x1 - - # Digital Delay Line (DDL) Calibration - # PSU_DDR_PHY_PIR_DCAL 0x1 - - # PLL Initialiazation - # PSU_DDR_PHY_PIR_PLLINIT 0x1 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_PIR_RESERVED_3 0x0 - - # CA Training - # PSU_DDR_PHY_PIR_CA 0x0 - - # Impedance Calibration - # PSU_DDR_PHY_PIR_ZCAL 0x1 - - # Initialization Trigger - # PSU_DDR_PHY_PIR_INIT 0x1 - - # PHY Initialization Register - #(OFFSET, MASK, VALUE) (0XFD080004, 0xFFFFFFFFU ,0x00040073U) */ - mask_write 0XFD080004 0xFFFFFFFF 0x00040073 +set psu_ddr_qos_init_data { } set psu_mio_init_data { # : MIO PROGRAMMING # Register : MIO_PIN_0 @ 0XFF180000

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- + # (QSPI Clock) # PSU_IOU_SLCR_MIO_PIN_0_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_0_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[0]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[0]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[0]- (Test Scan Port) = test_scan, Output, test_scan_out[0 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_0_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - # ) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - # lk- (Trace Port Clock) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + # TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + # lk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Out + # put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + # lk- (Trace Port Clock) # PSU_IOU_SLCR_MIO_PIN_0_L3_SEL 0 # Configures MIO Pin 0 peripheral interface mapping. S @@ -8397,22 +9199,26 @@ set psu_mio_init_data { mask_write 0XFF180000 0x000000FE 0x00000002 # Register : MIO_PIN_1 @ 0XFF180004

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Data - # us) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (Q + # SPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) # PSU_IOU_SLCR_MIO_PIN_1_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_1_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[1]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[1]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[1]- (Test Scan Port) = test_scan, Output, test_scan_out[1 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_1_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_o - # t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - # Signal) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + # TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Ou + # tput, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + # receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + # Signal) # PSU_IOU_SLCR_MIO_PIN_1_L3_SEL 0 # Configures MIO Pin 1 peripheral interface mapping @@ -8420,20 +9226,25 @@ set psu_mio_init_data { mask_write 0XFF180004 0x000000FE 0x00000002 # Register : MIO_PIN_2 @ 0XFF180008

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI + # Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) # PSU_IOU_SLCR_MIO_PIN_2_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_2_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[2]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[2]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[2]- (Test Scan Port) = test_scan, Output, test_scan_out[2 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_2_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, Input, ttc2_clk_in - # (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + # TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, I + # nput, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + # rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_2_L3_SEL 0 # Configures MIO Pin 2 peripheral interface mapping @@ -8441,21 +9252,26 @@ set psu_mio_init_data { mask_write 0XFF180008 0x000000FE 0x00000002 # Register : MIO_PIN_3 @ 0XFF18000C

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI + # Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) # PSU_IOU_SLCR_MIO_PIN_3_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_3_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[3]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[3]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[3]- (Test Scan Port) = test_scan, Output, test_scan_out[3 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_3_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - # - (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - # output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + # TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + # , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- + # (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + # output) 7= trace, Output, tracedq[1]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_3_L3_SEL 0 # Configures MIO Pin 3 peripheral interface mapping @@ -8463,22 +9279,26 @@ set psu_mio_init_data { mask_write 0XFF18000C 0x000000FE 0x00000002 # Register : MIO_PIN_4 @ 0XFF180010

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Data - # us) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- ( + # QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) # PSU_IOU_SLCR_MIO_PIN_4_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_4_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[4]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[4]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[4]- (Test Scan Port) = test_scan, Output, test_scan_out[4 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_4_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - # - (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - # utput, tracedq[2]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + # tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + # 0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cloc + # k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + # utput, tracedq[2]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_4_L3_SEL 0 # Configures MIO Pin 4 peripheral interface mapping @@ -8486,21 +9306,26 @@ set psu_mio_init_data { mask_write 0XFF180010 0x000000FE 0x00000002 # Register : MIO_PIN_5 @ 0XFF180014

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- (QSPI Slave Select) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- + # (QSPI Slave Select) # PSU_IOU_SLCR_MIO_PIN_5_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_5_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[5]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[5]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[5]- (Test Scan Port) = test_scan, Output, test_scan_out[5 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_5_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - # si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - # trace, Output, tracedq[3]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + # atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + # spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC + # Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + # trace, Output, tracedq[3]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_5_L3_SEL 0 # Configures MIO Pin 5 peripheral interface mapping @@ -8508,21 +9333,26 @@ set psu_mio_init_data { mask_write 0XFF180014 0x000000FE 0x00000002 # Register : MIO_PIN_6 @ 0XFF180018

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_l + # pbk- (QSPI Clock to be fed-back) # PSU_IOU_SLCR_MIO_PIN_6_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_6_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[6]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[6]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[6]- (Test Scan Port) = test_scan, Output, test_scan_out[6 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_6_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1 - # sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, - # Output, tracedq[4]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + # ch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= s + # pi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TT + # C Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, + # Output, tracedq[4]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_6_L3_SEL 0 # Configures MIO Pin 6 peripheral interface mapping @@ -8530,21 +9360,26 @@ set psu_mio_init_data { mask_write 0XFF180018 0x000000FE 0x00000002 # Register : MIO_PIN_7 @ 0XFF18001C

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_upper- (QSPI Slave Select upper) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_ + # upper- (QSPI Slave Select upper) # PSU_IOU_SLCR_MIO_PIN_7_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_7_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[7]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[7]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[7]- (Test Scan Port) = test_scan, Output, test_scan_out[7 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_7_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - # tc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, - # racedq[5]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + # Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Ma + # ster Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua + # 0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, t + # racedq[5]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_7_L3_SEL 0 # Configures MIO Pin 7 peripheral interface mapping @@ -8552,22 +9387,27 @@ set psu_mio_init_data { mask_write 0XFF18001C 0x000000FE 0x00000002 # Register : MIO_PIN_8 @ 0XFF180020

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - # [0]- (QSPI Upper Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0 + # ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper D + # atabus) # PSU_IOU_SLCR_MIO_PIN_8_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_8_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[8]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[8]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[8]- (Test Scan Port) = test_scan, Output, test_scan_out[8 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_8_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc - # , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tr - # ce Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + # tch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Maste + # r Selects) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_ + # txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tra + # ce Port Databus) # PSU_IOU_SLCR_MIO_PIN_8_L3_SEL 0 # Configures MIO Pin 8 peripheral interface mapping @@ -8575,22 +9415,29 @@ set psu_mio_init_data { mask_write 0XFF180020 0x000000FE 0x00000002 # Register : MIO_PIN_9 @ 0XFF180024

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - # [1]- (QSPI Upper Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1 + # ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper D + # atabus) # PSU_IOU_SLCR_MIO_PIN_9_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + # ND chip enable) # PSU_IOU_SLCR_MIO_PIN_9_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[9]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[9]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[9]- (Test Scan Port) = test_scan, Output, test_scan_out[9 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_9_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - # utput, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (U - # RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + # atch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master S + # elects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, + # Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UA + # RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Data + # bus) # PSU_IOU_SLCR_MIO_PIN_9_L3_SEL 0 # Configures MIO Pin 9 peripheral interface mapping @@ -8598,22 +9445,28 @@ set psu_mio_init_data { mask_write 0XFF180024 0x000000FE 0x00000002 # Register : MIO_PIN_10 @ 0XFF180028

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - # [2]- (QSPI Upper Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2 + # ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper D + # atabus) # PSU_IOU_SLCR_MIO_PIN_10_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + # AND Ready/Busy) # PSU_IOU_SLCR_MIO_PIN_10_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[10]- (Test Scan Port) = test_scan, Out - # ut, test_scan_out[10]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[10]- (Test Scan Port) = test_scan, Output, test_scan_out[ + # 10]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_10_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - # o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - # t, tracedq[8]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + # i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + # ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + # t, tracedq[8]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_10_L3_SEL 0 # Configures MIO Pin 10 peripheral interface mapping @@ -8621,22 +9474,28 @@ set psu_mio_init_data { mask_write 0XFF180028 0x000000FE 0x00000002 # Register : MIO_PIN_11 @ 0XFF18002C

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - # [3]- (QSPI Upper Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3 + # ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper D + # atabus) # PSU_IOU_SLCR_MIO_PIN_11_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + # AND Ready/Busy) # PSU_IOU_SLCR_MIO_PIN_11_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[11]- (Test Scan Port) = test_scan, Out - # ut, test_scan_out[11]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[11]- (Test Scan Port) = test_scan, Output, test_scan_out[ + # 11]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_11_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - # i1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - # tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + # 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + # TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + # tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_11_L3_SEL 0 # Configures MIO Pin 11 peripheral interface mapping @@ -8644,22 +9503,27 @@ set psu_mio_init_data { mask_write 0XFF18002C 0x000000FE 0x00000002 # Register : MIO_PIN_12 @ 0XFF180030

- # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_ + # upper- (QSPI Upper Clock) # PSU_IOU_SLCR_MIO_PIN_12_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - # + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + # ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) # PSU_IOU_SLCR_MIO_PIN_12_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[12]- (Test Scan Port) = test_scan, Out - # ut, test_scan_out[12]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[12]- (Test Scan Port) = test_scan, Output, test_scan_out[ + # 12]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_12_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cl - # ck) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trac - # dq[10]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJT + # AG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_ + # sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, O + # utput, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace + # dq[10]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_12_L3_SEL 0 # Configures MIO Pin 12 peripheral interface mapping @@ -8670,19 +9534,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_13_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NAND chip enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NA + # ND chip enable) # PSU_IOU_SLCR_MIO_PIN_13_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, test_scan_out[13]- (Test Scan Port - # 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, + # test_scan_out[13]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_13_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave - # out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Dat - # bus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTA + # G TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, + # Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UAR + # T receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Data + # bus) # PSU_IOU_SLCR_MIO_PIN_13_L3_SEL 0 # Configures MIO Pin 13 peripheral interface mapping @@ -8693,18 +9562,23 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_14_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND Command Latch Enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND + # Command Latch Enable) # PSU_IOU_SLCR_MIO_PIN_14_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, test_scan_out[14]- (Test Scan Port - # 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, + # test_scan_out[14]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_14_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_ - # n- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJT + # AG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, + # Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver + # serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_14_L3_SEL 2 # Configures MIO Pin 14 peripheral interface mapping @@ -8715,19 +9589,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_15_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND Address Latch Enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND + # Address Latch Enable) # PSU_IOU_SLCR_MIO_PIN_15_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, test_scan_out[15]- (Test Scan Port - # 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, + # test_scan_out[15]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_15_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out - # 0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seri - # l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJT + # AG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outp + # ut, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_ou + # t- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seria + # l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_15_L3_SEL 2 # Configures MIO Pin 15 peripheral interface mapping @@ -8738,20 +9617,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_16_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_16_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, test_scan_out[16]- (Test Scan Port - # 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, + # test_scan_out[16]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_16_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - # so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - # Output, tracedq[14]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + # pi0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + # ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + # Output, tracedq[14]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_16_L3_SEL 2 # Configures MIO Pin 16 peripheral interface mapping @@ -8762,20 +9645,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_17_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_17_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, test_scan_out[17]- (Test Scan Port - # 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, + # test_scan_out[17]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_17_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - # 0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - # 7= trace, Output, tracedq[15]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + # = spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + # TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + # 7= trace, Output, tracedq[15]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_17_L3_SEL 2 # Configures MIO Pin 17 peripheral interface mapping @@ -8786,19 +9673,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_18_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_18_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, test_scan_out[18]- (Test Scan Port - # 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, + # test_scan_out[18]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + # Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_18_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - # o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + # i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + # ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_18_L3_SEL 6 # Configures MIO Pin 18 peripheral interface mapping @@ -8809,19 +9701,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_19_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_19_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, test_scan_out[19]- (Test Scan Port - # 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, + # test_scan_out[19]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + # Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_19_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - # ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + # Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= + # ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_19_L3_SEL 6 # Configures MIO Pin 19 peripheral interface mapping @@ -8832,19 +9729,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_20_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_20_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, test_scan_out[20]- (Test Scan Port - # 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, + # test_scan_out[20]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + # Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_20_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= t - # c1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + # ter Selects) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua + # 1_txd- (UART transmitter serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_20_L3_SEL 6 # Configures MIO Pin 20 peripheral interface mapping @@ -8855,20 +9757,25 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_21_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_21_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - # Indicator) 2= test_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, test_scan_out[21]- (Test Scan Port) - # = csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + # mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= tes + # t_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, t + # est_scan_out[21]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU E + # xt Tamper) # PSU_IOU_SLCR_MIO_PIN_21_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - # Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- - # UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + # Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc + # 1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- ( + # UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_21_L3_SEL 6 # Configures MIO Pin 21 peripheral interface mapping @@ -8879,18 +9786,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_22_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAND Write Enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAN + # D Write Enable) # PSU_IOU_SLCR_MIO_PIN_22_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- - # (Test Scan Port) = test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + # (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- (Test Scan Port) = + # test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, c + # su_ext_tamper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_22_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - # 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - # sed + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + # spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + # TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + # sed # PSU_IOU_SLCR_MIO_PIN_22_L3_SEL 0 # Configures MIO Pin 22 peripheral interface mapping @@ -8901,20 +9814,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_23_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_23_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= test_scan, Input, test_scan_in - # 23]- (Test Scan Port) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper - # + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + # (SD card bus power) 2= test_scan, Input, test_scan_in[23]- (Test Scan Po + # rt) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Inp + # ut, csu_ext_tamper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_23_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - # i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - # tput) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + # 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + # TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + # tput) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_23_L3_SEL 0 # Configures MIO Pin 23 peripheral interface mapping @@ -8925,19 +9842,23 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_24_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_24_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= test_scan, Input, test - # scan_in[24]- (Test Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ex - # Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + # card detect from connector) 2= test_scan, Input, test_scan_in[24]- (Test + # Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= + # csu, Input, csu_ext_tamper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_24_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, - # Output, ua1_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (T + # TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= N + # ot Used # PSU_IOU_SLCR_MIO_PIN_24_L3_SEL 1 # Configures MIO Pin 24 peripheral interface mapping @@ -8948,18 +9869,23 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_25_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAND Read Enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAN + # D Read Enable) # PSU_IOU_SLCR_MIO_PIN_25_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= test_scan, Input, - # test_scan_in[25]- (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (C - # U Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + # rd write protect from connector) 2= test_scan, Input, test_scan_in[25]- + # (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port + # ) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_25_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_out- (TTC Waveform - # lock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_ou + # t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in + # put) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_25_L3_SEL 1 # Configures MIO Pin 25 peripheral interface mapping @@ -8967,21 +9893,28 @@ set psu_mio_init_data { mask_write 0XFF180064 0x000000FE 0x00000020 # Register : MIO_PIN_26 @ 0XFF180068

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + # clk- (TX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_26_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + # ND chip enable) # PSU_IOU_SLCR_MIO_PIN_26_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[26]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[26]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_ta + # mper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_26_L2_SEL 0 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clock - # 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - # Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + # TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_scl + # k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + # t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + # Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_26_L3_SEL 0 # Configures MIO Pin 26 peripheral interface mapping @@ -8989,22 +9922,28 @@ set psu_mio_init_data { mask_write 0XFF180068 0x000000FE 0x00000000 # Register : MIO_PIN_27 @ 0XFF18006C

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + # [0]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_27_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + # AND Ready/Busy) # PSU_IOU_SLCR_MIO_PIN_27_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[27]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - # t, dp_aux_data_out- (Dp Aux Data) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[27]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + # ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) # PSU_IOU_SLCR_MIO_PIN_27_L2_SEL 3 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - # ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - # atabus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + # TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + # utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + # T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + # atabus) # PSU_IOU_SLCR_MIO_PIN_27_L3_SEL 0 # Configures MIO Pin 27 peripheral interface mapping @@ -9012,20 +9951,27 @@ set psu_mio_init_data { mask_write 0XFF18006C 0x000000FE 0x00000018 # Register : MIO_PIN_28 @ 0XFF180070

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + # [1]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_28_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + # AND Ready/Busy) # PSU_IOU_SLCR_MIO_PIN_28_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[28]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[28]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + # lug_detect- (Dp Aux Hot Plug) # PSU_IOU_SLCR_MIO_PIN_28_L2_SEL 3 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - # - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + # G TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + # Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + # er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_28_L3_SEL 0 # Configures MIO Pin 28 peripheral interface mapping @@ -9033,22 +9979,28 @@ set psu_mio_init_data { mask_write 0XFF180070 0x000000FE 0x00000018 # Register : MIO_PIN_29 @ 0XFF180074

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + # [2]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_29_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_29_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[29]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - # t, dp_aux_data_out- (Dp Aux Data) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[29]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + # ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) # PSU_IOU_SLCR_MIO_PIN_29_L2_SEL 3 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0] - # (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - # ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + # TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, + # spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + # (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + # ) 7= trace, Output, tracedq[7]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_29_L3_SEL 0 # Configures MIO Pin 29 peripheral interface mapping @@ -9056,21 +10008,28 @@ set psu_mio_init_data { mask_write 0XFF180074 0x000000FE 0x00000018 # Register : MIO_PIN_30 @ 0XFF180078

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + # [3]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_30_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_30_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[30]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[30]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + # lug_detect- (Dp Aux Hot Plug) # PSU_IOU_SLCR_MIO_PIN_30_L2_SEL 3 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_so - # (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output - # tracedq[8]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + # ch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0 + # , Output, spi0_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock + # ) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, + # tracedq[8]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_30_L3_SEL 0 # Configures MIO Pin 30 peripheral interface mapping @@ -9078,21 +10037,28 @@ set psu_mio_init_data { mask_write 0XFF180078 0x000000FE 0x00000018 # Register : MIO_PIN_31 @ 0XFF18007C

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + # ctl- (TX RGMII control) # PSU_IOU_SLCR_MIO_PIN_31_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_31_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[31]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[31]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_ta + # mper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_31_L2_SEL 0 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi - # _si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial out - # ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + # Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + # spi0, Input, spi0_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TT + # C Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial outp + # ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_31_L3_SEL 0 # Configures MIO Pin 31 peripheral interface mapping @@ -9100,22 +10066,28 @@ set psu_mio_init_data { mask_write 0XFF18007C 0x000000FE 0x00000000 # Register : MIO_PIN_32 @ 0XFF180080

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + # lk- (RX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_32_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - # + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + # ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) # PSU_IOU_SLCR_MIO_PIN_32_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[32]- (Test S - # an Port) = test_scan, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[32]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_t + # amper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_32_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi - # _sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= - # race, Output, tracedq[10]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + # tch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + # spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (T + # TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= t + # race, Output, tracedq[10]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_32_L3_SEL 0 # Configures MIO Pin 32 peripheral interface mapping @@ -9123,21 +10095,28 @@ set psu_mio_init_data { mask_write 0XFF180080 0x000000FE 0x00000008 # Register : MIO_PIN_33 @ 0XFF180084

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + # 0]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_33_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_33_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[33]- (Test S - # an Port) = test_scan, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[33]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_t + # amper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_33_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= t - # c3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, traced - # [11]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + # atch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Mas + # ter Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1 + # , Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq + # [11]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_33_L3_SEL 0 # Configures MIO Pin 33 peripheral interface mapping @@ -9145,22 +10124,28 @@ set psu_mio_init_data { mask_write 0XFF180084 0x000000FE 0x00000008 # Register : MIO_PIN_34 @ 0XFF180088

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + # 1]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_34_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_34_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[34]- (Test S - # an Port) = test_scan, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - # ut, dp_aux_data_out- (Dp Aux Data) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[34]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + # data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) # PSU_IOU_SLCR_MIO_PIN_34_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc2 - # Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace P - # rt Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + # ch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master + # Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rx + # d- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Po + # rt Databus) # PSU_IOU_SLCR_MIO_PIN_34_L3_SEL 0 # Configures MIO Pin 34 peripheral interface mapping @@ -9168,21 +10153,29 @@ set psu_mio_init_data { mask_write 0XFF180088 0x000000FE 0x00000008 # Register : MIO_PIN_35 @ 0XFF18008C

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + # 2]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_35_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_35_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[35]- (Test S - # an Port) = test_scan, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[35]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + # plug_detect- (Dp Aux Hot Plug) # PSU_IOU_SLCR_MIO_PIN_35_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - # Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- - # UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + # Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + # Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2 + # , Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- ( + # UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Po + # rt Databus) # PSU_IOU_SLCR_MIO_PIN_35_L3_SEL 0 # Configures MIO Pin 35 peripheral interface mapping @@ -9190,22 +10183,28 @@ set psu_mio_init_data { mask_write 0XFF18008C 0x000000FE 0x00000008 # Register : MIO_PIN_36 @ 0XFF180090

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + # 3]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_36_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_36_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[36]- (Test S - # an Port) = test_scan, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - # ut, dp_aux_data_out- (Dp Aux Data) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[36]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + # data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) # PSU_IOU_SLCR_MIO_PIN_36_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - # so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - # Output, tracedq[14]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + # pi1, Output, spi1_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + # ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + # Output, tracedq[14]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_36_L3_SEL 0 # Configures MIO Pin 36 peripheral interface mapping @@ -9213,21 +10212,28 @@ set psu_mio_init_data { mask_write 0XFF180090 0x000000FE 0x00000008 # Register : MIO_PIN_37 @ 0XFF180094

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + # tl- (RX RGMII control ) # PSU_IOU_SLCR_MIO_PIN_37_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_37_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[37]- (Test S - # an Port) = test_scan, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[37]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + # plug_detect- (Dp Aux Hot Plug) # PSU_IOU_SLCR_MIO_PIN_37_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - # 1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - # 7= trace, Output, tracedq[15]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + # = spi1, Input, spi1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + # TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + # 7= trace, Output, tracedq[15]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_37_L3_SEL 0 # Configures MIO Pin 37 peripheral interface mapping @@ -9235,20 +10241,25 @@ set psu_mio_init_data { mask_write 0XFF180094 0x000000FE 0x00000008 # Register : MIO_PIN_38 @ 0XFF180098

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + # clk- (TX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_38_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_38_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + # (SDSDIO clock) 2= Not Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_38_L2_SEL 0 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clo - # k) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- - # (Trace Port Clock) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTA + # G TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_s + # clk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, In + # put, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- + # (Trace Port Clock) # PSU_IOU_SLCR_MIO_PIN_38_L3_SEL 0 # Configures MIO Pin 38 peripheral interface mapping @@ -9256,130 +10267,163 @@ set psu_mio_init_data { mask_write 0XFF180098 0x000000FE 0x00000000 # Register : MIO_PIN_39 @ 0XFF18009C

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + # [0]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_39_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_39_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= sd1, Input, sd1_data_i - # [4]- (8-bit Data bus) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used - # PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 0 + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + # card detect from connector) 2= sd1, Input, sd1_data_in[4]- (8-bit Data b + # us) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used + # PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, Output, ttc0_wav - # _out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port - # Control Signal) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJT + # AG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, + # Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (U + # ART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port + # Control Signal) # PSU_IOU_SLCR_MIO_PIN_39_L3_SEL 0 # Configures MIO Pin 39 peripheral interface mapping - #(OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000000U) */ - mask_write 0XFF18009C 0x000000FE 0x00000000 + #(OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000010U) */ + mask_write 0XFF18009C 0x000000FE 0x00000010 # Register : MIO_PIN_40 @ 0XFF1800A0

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + # [1]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_40_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_40_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - # Indicator) 2= sd1, Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[5]- (8-bit Data bus) 3= Not Used - # PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 0 + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + # mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= sd1 + # , Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[ + # 5]- (8-bit Data bus) 3= Not Used + # PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3, Input, ttc3_clk - # in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJ + # TAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3 + # , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmi + # tter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_40_L3_SEL 0 # Configures MIO Pin 40 peripheral interface mapping - #(OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000000U) */ - mask_write 0XFF1800A0 0x000000FE 0x00000000 + #(OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000010U) */ + mask_write 0XFF1800A0 0x000000FE 0x00000010 # Register : MIO_PIN_41 @ 0XFF1800A4

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + # [2]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_41_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_41_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_out[6]- (8-bit Data bus) 3= Not Used - # PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 0 + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[6]- (8-bit Data bus) 3= Not Used + # PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[ - # ]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in - # ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTA + # G TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outpu + # t, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out + # - (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inp + # ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_41_L3_SEL 0 # Configures MIO Pin 41 peripheral interface mapping - #(OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000000U) */ - mask_write 0XFF1800A4 0x000000FE 0x00000000 + #(OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000010U) */ + mask_write 0XFF1800A4 0x000000FE 0x00000010 # Register : MIO_PIN_42 @ 0XFF1800A8

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + # [3]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_42_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_42_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_out[7]- (8-bit Data bus) 3= Not Used - # PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 0 + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[7]- (8-bit Data bus) 3= Not Used + # PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_ - # o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - # t, tracedq[2]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= sp + # i0, Output, spi0_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + # ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + # t, tracedq[2]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_42_L3_SEL 0 # Configures MIO Pin 42 peripheral interface mapping - #(OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000000U) */ - mask_write 0XFF1800A8 0x000000FE 0x00000000 + #(OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000010U) */ + mask_write 0XFF1800A8 0x000000FE 0x00000010 # Register : MIO_PIN_43 @ 0XFF1800AC

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + # ctl- (TX RGMII control) # PSU_IOU_SLCR_MIO_PIN_43_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_43_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - # bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used - # PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 2 + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + # d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + # PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 0 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, s - # i0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - # tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) + # 4= spi0, Input, spi0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + # TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + # tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_43_L3_SEL 0 # Configures MIO Pin 43 peripheral interface mapping - #(OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000010U) */ - mask_write 0XFF1800AC 0x000000FE 0x00000010 + #(OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000000U) */ + mask_write 0XFF1800AC 0x000000FE 0x00000000 # Register : MIO_PIN_44 @ 0XFF1800B0

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + # lk- (RX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_44_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_44_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - # bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + # d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_44_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, s - # i1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - # Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4 + # = spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- + # (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + # Not Used # PSU_IOU_SLCR_MIO_PIN_44_L3_SEL 0 # Configures MIO Pin 44 peripheral interface mapping @@ -9387,20 +10431,25 @@ set psu_mio_init_data { mask_write 0XFF1800B0 0x000000FE 0x00000010 # Register : MIO_PIN_45 @ 0XFF1800B4

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + # 0]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_45_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_45_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - # bit Data bus) 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + # d1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_45_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - # ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI M + # aster Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= u + # a1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_45_L3_SEL 0 # Configures MIO Pin 45 peripheral interface mapping @@ -9408,20 +10457,26 @@ set psu_mio_init_data { mask_write 0XFF1800B4 0x000000FE 0x00000010 # Register : MIO_PIN_46 @ 0XFF1800B8

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + # 1]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_46_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_46_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[0]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_46_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= tt - # 0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mast + # er Selects) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + # rxd- (UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_46_L3_SEL 0 # Configures MIO Pin 46 peripheral interface mapping @@ -9429,21 +10484,27 @@ set psu_mio_init_data { mask_write 0XFF1800B8 0x000000FE 0x00000010 # Register : MIO_PIN_47 @ 0XFF1800BC

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + # 2]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_47_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_47_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[1]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_47_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi - # , Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - # (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Maste + # r Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= tt + # c0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + # (UART transmitter serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_47_L3_SEL 0 # Configures MIO Pin 47 peripheral interface mapping @@ -9451,21 +10512,27 @@ set psu_mio_init_data { mask_write 0XFF1800BC 0x000000FE 0x00000010 # Register : MIO_PIN_48 @ 0XFF1800C0

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + # 3]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_48_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_48_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[2]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_48_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - # so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not U - # ed + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + # pi1, Output, spi1_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + # ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Us + # ed # PSU_IOU_SLCR_MIO_PIN_48_L3_SEL 0 # Configures MIO Pin 48 peripheral interface mapping @@ -9473,21 +10540,26 @@ set psu_mio_init_data { mask_write 0XFF1800C0 0x000000FE 0x00000010 # Register : MIO_PIN_49 @ 0XFF1800C4

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control ) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + # tl- (RX RGMII control ) # PSU_IOU_SLCR_MIO_PIN_49_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_49_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8 - # bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + # (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd + # 1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_49_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - # 1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - # 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + # = spi1, Input, spi1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + # TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + # 7= Not Used # PSU_IOU_SLCR_MIO_PIN_49_L3_SEL 0 # Configures MIO Pin 49 peripheral interface mapping @@ -9495,20 +10567,25 @@ set psu_mio_init_data { mask_write 0XFF1800C4 0x000000FE 0x00000010 # Register : MIO_PIN_50 @ 0XFF1800C8

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + # (TSU clock) # PSU_IOU_SLCR_MIO_PIN_50_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_50_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Input, sd1_c - # d_in- (Command Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + # rd write protect from connector) 2= sd1, Input, sd1_cmd_in- (Command Ind + # icator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_50_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= ttc2, Input, ttc2 - # clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= + # ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART rece + # iver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_50_L3_SEL 0 # Configures MIO Pin 50 peripheral interface mapping @@ -9516,20 +10593,25 @@ set psu_mio_init_data { mask_write 0XFF1800C8 0x000000FE 0x00000010 # Register : MIO_PIN_51 @ 0XFF1800CC

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + # (TSU clock) # PSU_IOU_SLCR_MIO_PIN_51_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_51_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdio1_clk_out- (SDSDIO clock) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdi + # o1_clk_out- (SDSDIO clock) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_51_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Data) 4= mdio1, Outp - # t, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter - # serial output) 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Dat + # a) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wa + # ve_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter + # serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_51_L3_SEL 0 # Configures MIO Pin 51 peripheral interface mapping @@ -9537,20 +10619,26 @@ set psu_mio_init_data { mask_write 0XFF1800CC 0x000000FE 0x00000010 # Register : MIO_PIN_52 @ 0XFF1800D0

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_clk- (TX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + # clk- (TX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_52_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_in- (ULPI Clock) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_i + # n- (ULPI Clock) # PSU_IOU_SLCR_MIO_PIN_52_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_52_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - # ) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - # lk- (Trace Port Clock) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + # TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + # lk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Out + # put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + # lk- (Trace Port Clock) # PSU_IOU_SLCR_MIO_PIN_52_L3_SEL 0 # Configures MIO Pin 52 peripheral interface mapping @@ -9558,20 +10646,26 @@ set psu_mio_init_data { mask_write 0XFF1800D0 0x000000FE 0x00000004 # Register : MIO_PIN_53 @ 0XFF1800D4

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[0]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + # [0]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_53_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- + # (Data bus direction control) # PSU_IOU_SLCR_MIO_PIN_53_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_53_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_o - # t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - # Signal) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + # TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Ou + # tput, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + # receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + # Signal) # PSU_IOU_SLCR_MIO_PIN_53_L3_SEL 0 # Configures MIO Pin 53 peripheral interface mapping @@ -9579,20 +10673,26 @@ set psu_mio_init_data { mask_write 0XFF1800D4 0x000000FE 0x00000004 # Register : MIO_PIN_54 @ 0XFF1800D8

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[1]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + # [1]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_54_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[2]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_54_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_54_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_in - # (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + # TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, I + # nput, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + # rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_54_L3_SEL 0 # Configures MIO Pin 54 peripheral interface mapping @@ -9600,20 +10700,26 @@ set psu_mio_init_data { mask_write 0XFF1800D8 0x000000FE 0x00000004 # Register : MIO_PIN_55 @ 0XFF1800DC

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[2]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + # [2]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_55_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- + # (Data flow control signal from the PHY) # PSU_IOU_SLCR_MIO_PIN_55_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_55_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - # - (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - # output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + # TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + # , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- + # (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + # output) 7= trace, Output, tracedq[1]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_55_L3_SEL 0 # Configures MIO Pin 55 peripheral interface mapping @@ -9621,21 +10727,27 @@ set psu_mio_init_data { mask_write 0XFF1800DC 0x000000FE 0x00000004 # Register : MIO_PIN_56 @ 0XFF1800E0

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[3]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + # [3]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_56_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[0]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_56_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_56_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - # - (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - # utput, tracedq[2]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + # tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + # 0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cloc + # k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + # utput, tracedq[2]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_56_L3_SEL 0 # Configures MIO Pin 56 peripheral interface mapping @@ -9643,21 +10755,27 @@ set psu_mio_init_data { mask_write 0XFF1800E0 0x000000FE 0x00000004 # Register : MIO_PIN_57 @ 0XFF1800E4

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ctl- (TX RGMII control) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + # ctl- (TX RGMII control) # PSU_IOU_SLCR_MIO_PIN_57_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[1]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_57_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_57_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - # si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - # trace, Output, tracedq[3]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + # atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + # spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC + # Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + # trace, Output, tracedq[3]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_57_L3_SEL 0 # Configures MIO Pin 57 peripheral interface mapping @@ -9665,20 +10783,26 @@ set psu_mio_init_data { mask_write 0XFF1800E4 0x000000FE 0x00000004 # Register : MIO_PIN_58 @ 0XFF1800E8

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_clk- (RX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + # lk- (RX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_58_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- + # (Asserted to end or interrupt transfers) # PSU_IOU_SLCR_MIO_PIN_58_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_58_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_sclk_out- (SPI Clock - # 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - # Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + # TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_scl + # k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + # t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + # Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_58_L3_SEL 0 # Configures MIO Pin 58 peripheral interface mapping @@ -9686,21 +10810,27 @@ set psu_mio_init_data { mask_write 0XFF1800E8 0x000000FE 0x00000004 # Register : MIO_PIN_59 @ 0XFF1800EC

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[0]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + # 0]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_59_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[3]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_59_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_59_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - # ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - # atabus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + # TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + # utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + # T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + # atabus) # PSU_IOU_SLCR_MIO_PIN_59_L3_SEL 0 # Configures MIO Pin 59 peripheral interface mapping @@ -9708,20 +10838,26 @@ set psu_mio_init_data { mask_write 0XFF1800EC 0x000000FE 0x00000004 # Register : MIO_PIN_60 @ 0XFF1800F0

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[1]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + # 1]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_60_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[4]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_60_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_60_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - # - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + # G TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + # Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + # er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_60_L3_SEL 0 # Configures MIO Pin 60 peripheral interface mapping @@ -9729,21 +10865,27 @@ set psu_mio_init_data { mask_write 0XFF1800F0 0x000000FE 0x00000004 # Register : MIO_PIN_61 @ 0XFF1800F4

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[2]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + # 2]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_61_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[5]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_61_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_61_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, spi1_n_ss_out[0] - # (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - # ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + # TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, + # spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + # (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + # ) 7= trace, Output, tracedq[7]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_61_L3_SEL 0 # Configures MIO Pin 61 peripheral interface mapping @@ -9751,21 +10893,27 @@ set psu_mio_init_data { mask_write 0XFF1800F4 0x000000FE 0x00000004 # Register : MIO_PIN_62 @ 0XFF1800F8

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[3]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + # 3]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_62_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[6]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_62_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_62_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - # o- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - # t, tracedq[8]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + # i1, Output, spi1_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clo + # ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + # t, tracedq[8]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_62_L3_SEL 0 # Configures MIO Pin 62 peripheral interface mapping @@ -9773,21 +10921,27 @@ set psu_mio_init_data { mask_write 0XFF1800F8 0x000000FE 0x00000004 # Register : MIO_PIN_63 @ 0XFF1800FC

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_ctl- (RX RGMII control ) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + # tl- (RX RGMII control ) # PSU_IOU_SLCR_MIO_PIN_63_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[7]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_63_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_63_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - # i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - # tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + # 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + # TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + # tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_63_L3_SEL 0 # Configures MIO Pin 63 peripheral interface mapping @@ -9795,20 +10949,26 @@ set psu_mio_init_data { mask_write 0XFF1800FC 0x000000FE 0x00000004 # Register : MIO_PIN_64 @ 0XFF180100

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_clk- (TX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + # clk- (TX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_64_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_in- (ULPI Clock) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_i + # n- (ULPI Clock) # PSU_IOU_SLCR_MIO_PIN_64_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + # (SDSDIO clock) 2= Not Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_64_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, s - # i0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - # trace, Output, tracedq[10]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4 + # = spi0, Output, spi0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- + # (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + # trace, Output, tracedq[10]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_64_L3_SEL 0 # Configures MIO Pin 64 peripheral interface mapping @@ -9816,20 +10976,26 @@ set psu_mio_init_data { mask_write 0XFF180100 0x000000FE 0x00000002 # Register : MIO_PIN_65 @ 0XFF180104

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[0]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + # [0]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_65_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- + # (Data bus direction control) # PSU_IOU_SLCR_MIO_PIN_65_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + # card detect from connector) 2= Not Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_65_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= - # ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trac - # dq[11]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI M + # aster Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= u + # a1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace + # dq[11]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_65_L3_SEL 0 # Configures MIO Pin 65 peripheral interface mapping @@ -9837,22 +11003,28 @@ set psu_mio_init_data { mask_write 0XFF180104 0x000000FE 0x00000002 # Register : MIO_PIN_66 @ 0XFF180108

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[1]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + # [1]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_66_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[2]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_66_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - # Indicator) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + # mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= Not + # Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_66_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= tt - # 2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace - # Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Mast + # er Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + # rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace + # Port Databus) # PSU_IOU_SLCR_MIO_PIN_66_L3_SEL 0 # Configures MIO Pin 66 peripheral interface mapping @@ -9860,21 +11032,28 @@ set psu_mio_init_data { mask_write 0XFF180108 0x000000FE 0x00000002 # Register : MIO_PIN_67 @ 0XFF18010C

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[2]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + # [2]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_67_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- + # (Data flow control signal from the PHY) # PSU_IOU_SLCR_MIO_PIN_67_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - # bit Data bus) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= N + # ot Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_67_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi - # , Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - # (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Maste + # r Selects) 4= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= tt + # c2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + # (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace + # Port Databus) # PSU_IOU_SLCR_MIO_PIN_67_L3_SEL 0 # Configures MIO Pin 67 peripheral interface mapping @@ -9882,22 +11061,28 @@ set psu_mio_init_data { mask_write 0XFF18010C 0x000000FE 0x00000002 # Register : MIO_PIN_68 @ 0XFF180110

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[3]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + # [3]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_68_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[0]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_68_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - # bit Data bus) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= N + # ot Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_68_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - # so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - # Output, tracedq[14]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + # pi0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + # ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + # Output, tracedq[14]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_68_L3_SEL 0 # Configures MIO Pin 68 peripheral interface mapping @@ -9905,22 +11090,28 @@ set psu_mio_init_data { mask_write 0XFF180110 0x000000FE 0x00000002 # Register : MIO_PIN_69 @ 0XFF180114

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ctl- (TX RGMII control) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + # ctl- (TX RGMII control) # PSU_IOU_SLCR_MIO_PIN_69_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[1]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_69_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - # bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + # d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_69_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - # 0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - # 7= trace, Output, tracedq[15]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + # = spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + # TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + # 7= trace, Output, tracedq[15]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_69_L3_SEL 0 # Configures MIO Pin 69 peripheral interface mapping @@ -9928,21 +11119,27 @@ set psu_mio_init_data { mask_write 0XFF180114 0x000000FE 0x00000002 # Register : MIO_PIN_70 @ 0XFF180118

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_clk- (RX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + # lk- (RX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_70_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- + # (Asserted to end or interrupt transfers) # PSU_IOU_SLCR_MIO_PIN_70_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - # bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + # d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_70_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - # 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - # sed + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + # spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + # TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + # sed # PSU_IOU_SLCR_MIO_PIN_70_L3_SEL 0 # Configures MIO Pin 70 peripheral interface mapping @@ -9950,21 +11147,28 @@ set psu_mio_init_data { mask_write 0XFF180118 0x000000FE 0x00000002 # Register : MIO_PIN_71 @ 0XFF18011C

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[0]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + # 0]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_71_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[3]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_71_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[0]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_71_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - # ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + # Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= + # ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_71_L3_SEL 0 # Configures MIO Pin 71 peripheral interface mapping @@ -9972,21 +11176,28 @@ set psu_mio_init_data { mask_write 0XFF18011C 0x000000FE 0x00000002 # Register : MIO_PIN_72 @ 0XFF180120

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[1]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + # 1]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_72_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[4]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_72_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[1]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_72_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= N - # t Used 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + # ter Selects) 5= Not Used 6= ua1, Output, ua1_txd- (UART transmitter seri + # al output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_72_L3_SEL 0 # Configures MIO Pin 72 peripheral interface mapping @@ -9994,21 +11205,28 @@ set psu_mio_init_data { mask_write 0XFF180120 0x000000FE 0x00000002 # Register : MIO_PIN_73 @ 0XFF180124

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[2]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + # 2]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_73_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[5]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_73_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[2]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_73_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - # Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + # Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not + # Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_73_L3_SEL 0 # Configures MIO Pin 73 peripheral interface mapping @@ -10016,21 +11234,28 @@ set psu_mio_init_data { mask_write 0XFF180124 0x000000FE 0x00000002 # Register : MIO_PIN_74 @ 0XFF180128

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[3]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + # 3]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_74_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[6]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_74_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[3]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_74_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - # o- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + # i1, Output, spi1_so- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- ( + # UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_74_L3_SEL 0 # Configures MIO Pin 74 peripheral interface mapping @@ -10038,21 +11263,27 @@ set psu_mio_init_data { mask_write 0XFF180128 0x000000FE 0x00000002 # Register : MIO_PIN_75 @ 0XFF18012C

- # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_ctl- (RX RGMII control ) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + # tl- (RX RGMII control ) # PSU_IOU_SLCR_MIO_PIN_75_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[7]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_75_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Comma - # d Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + # (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Command Indicator) = sd1 + # , Output, sdio1_cmd_out- (Command Indicator) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_75_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - # i1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + # 4= spi1, Input, spi1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_t + # xd- (UART transmitter serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_75_L3_SEL 0 # Configures MIO Pin 75 peripheral interface mapping @@ -10066,14 +11297,17 @@ set psu_mio_init_data { # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_76_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Output, sdio - # _clk_out- (SDSDIO clock) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + # rd write protect from connector) 2= sd1, Output, sdio1_clk_out- (SDSDIO + # clock) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_76_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= mdio0, Output, gem0_mdc- (MDIO Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2_mdc- (MDIO Clock - # 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= mdio0, Output, gem0_mdc- (MDI + # O Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2 + # _mdc- (MDIO Clock) 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_76_L3_SEL 6 # Configures MIO Pin 76 peripheral interface mapping @@ -10087,14 +11321,19 @@ set psu_mio_init_data { # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_77_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio + # 1_cd_n- (SD card detect from connector) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_77_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= mdio0, Input, gem0_mdio_in- (MDIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, gem1_mdio_in- (MD - # O Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_o - # t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Output, gem3_mdio_out- (MDIO Data) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= mdio0, Input, gem0_mdio_in- (M + # DIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, + # gem1_mdio_in- (MDIO Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5 + # = mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_ou + # t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Outp + # ut, gem3_mdio_out- (MDIO Data) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_77_L3_SEL 6 # Configures MIO Pin 77 peripheral interface mapping @@ -10678,7 +11917,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[0]. # PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - # When mio_bank0_pull_enable is set, this selects pull up or pull down for MIO Bank 0 - control MIO[25:0] + # When mio_bank0_pull_enable is set, this selects pull up or pull down for + # MIO Bank 0 - control MIO[25:0] #(OFFSET, MASK, VALUE) (0XFF180144, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF180144 0x03FFFFFF 0x03FFFFFF # Register : bank0_ctrl5 @ 0XFF180148

@@ -10761,7 +12001,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[0]. # PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25 1 - # When set, this enables mio_bank0_pullupdown to selects pull up or pull down for MIO Bank 0 - control MIO[25:0] + # When set, this enables mio_bank0_pullupdown to selects pull up or pull d + # own for MIO Bank 0 - control MIO[25:0] #(OFFSET, MASK, VALUE) (0XFF180148, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF180148 0x03FFFFFF 0x03FFFFFF # Register : bank0_ctrl6 @ 0XFF18014C

@@ -11176,7 +12417,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[26]. # PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - # When mio_bank1_pull_enable is set, this selects pull up or pull down for MIO Bank 1 - control MIO[51:26] + # When mio_bank1_pull_enable is set, this selects pull up or pull down for + # MIO Bank 1 - control MIO[51:26] #(OFFSET, MASK, VALUE) (0XFF180160, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF180160 0x03FFFFFF 0x03FFFFFF # Register : bank1_ctrl5 @ 0XFF180164

@@ -11259,7 +12501,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[26]. # PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25 1 - # When set, this enables mio_bank1_pullupdown to selects pull up or pull down for MIO Bank 1 - control MIO[51:26] + # When set, this enables mio_bank1_pullupdown to selects pull up or pull d + # own for MIO Bank 1 - control MIO[51:26] #(OFFSET, MASK, VALUE) (0XFF180164, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF180164 0x03FFFFFF 0x03FFFFFF # Register : bank1_ctrl6 @ 0XFF180168

@@ -11674,7 +12917,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[52]. # PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - # When mio_bank2_pull_enable is set, this selects pull up or pull down for MIO Bank 2 - control MIO[77:52] + # When mio_bank2_pull_enable is set, this selects pull up or pull down for + # MIO Bank 2 - control MIO[77:52] #(OFFSET, MASK, VALUE) (0XFF18017C, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF18017C 0x03FFFFFF 0x03FFFFFF # Register : bank2_ctrl5 @ 0XFF180180

@@ -11757,7 +13001,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[52]. # PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25 1 - # When set, this enables mio_bank2_pullupdown to selects pull up or pull down for MIO Bank 2 - control MIO[77:52] + # When set, this enables mio_bank2_pullupdown to selects pull up or pull d + # own for MIO Bank 2 - control MIO[77:52] #(OFFSET, MASK, VALUE) (0XFF180180, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF180180 0x03FFFFFF 0x03FFFFFF # Register : bank2_ctrl6 @ 0XFF180184

@@ -11846,20 +13091,24 @@ set psu_mio_init_data { # : LOOPBACK # Register : MIO_LOOPBACK @ 0XFF180200

- # I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outp - # ts to I2C 0 inputs. + # I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 + # = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outputs to I2C 0 inputs + # . # PSU_IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1 0 - # CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 R - # . + # CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 + # = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 Rx. # PSU_IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1 0 - # UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 - # outputs to UART 0 inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD and RI not used. + # UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. + # 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 outputs to UART 0 + # inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD + # and RI not used. # PSU_IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1 0 - # SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outp - # ts to SPI 0 inputs. The other SPI core will appear on the LS Slave Select. + # SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 + # = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outputs to SPI 0 inputs + # . The other SPI core will appear on the LS Slave Select. # PSU_IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1 0 # Loopback function within MIO @@ -11868,59 +13117,7 @@ set psu_mio_init_data { } set psu_peripherals_init_data { - # : RESET BLOCKS - # : TIMESTAMP - # Register : RST_LPD_IOU2 @ 0XFF5E0238

- - # Block level reset - # PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 - - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00100000U ,0x00000000U) */ - mask_write 0XFF5E0238 0x00100000 0x00000000 - # : ENET - # Register : RST_LPD_IOU0 @ 0XFF5E0230

- - # GEM 3 reset - # PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 - - # Software controlled reset for the GEMs - #(OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) */ - mask_write 0XFF5E0230 0x00000008 0x00000000 - # : QSPI - # Register : RST_LPD_IOU2 @ 0XFF5E0238

- - # Block level reset - # PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 - - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) */ - mask_write 0XFF5E0238 0x00000001 0x00000000 - # : QSPI TAP DELAY - # Register : IOU_TAPDLY_BYPASS @ 0XFF180390

- - # 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypass the Tap delay on the Rx clock signal of LQSPI - # PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 - - # IOU tap delay bypass for the LQSPI and NAND controllers - #(OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) */ - mask_write 0XFF180390 0x00000004 0x00000004 - # : NAND - # : USB - # Register : RST_LPD_TOP @ 0XFF5E023C

- - # USB 0 reset for control registers - # PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 - - # USB 0 sleep circuit reset - # PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 - - # USB 0 reset - # PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 - - # Software control register for the LPD block. - #(OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) */ - mask_write 0XFF5E023C 0x00000540 0x00000000 + # : COHERENCY # : FPD RESET # Register : RST_FPD_TOP @ 0XFD1A0100

@@ -11960,13 +13157,123 @@ set psu_peripherals_init_data { # FPD Block level software controlled reset #(OFFSET, MASK, VALUE) (0XFD1A0100, 0x000F807EU ,0x00000000U) */ mask_write 0XFD1A0100 0x000F807E 0x00000000 + # : RESET BLOCKS + # : TIMESTAMP + # Register : RST_LPD_IOU2 @ 0XFF5E0238

+ + # Block level reset + # PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 + + # Block level reset + # PSU_CRL_APB_RST_LPD_IOU2_IOU_CC_RESET 0 + + # Block level reset + # PSU_CRL_APB_RST_LPD_IOU2_ADMA_RESET 0 + + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. + #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x001A0000U ,0x00000000U) */ + mask_write 0XFF5E0238 0x001A0000 0x00000000 + # Register : RST_LPD_TOP @ 0XFF5E023C

+ + # Reset entire full power domain. + # PSU_CRL_APB_RST_LPD_TOP_FPD_RESET 0 + + # LPD SWDT + # PSU_CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET 0 + + # Sysmonitor reset + # PSU_CRL_APB_RST_LPD_TOP_SYSMON_RESET 0 + + # Real Time Clock reset + # PSU_CRL_APB_RST_LPD_TOP_RTC_RESET 0 + + # APM reset + # PSU_CRL_APB_RST_LPD_TOP_APM_RESET 0 + + # IPI reset + # PSU_CRL_APB_RST_LPD_TOP_IPI_RESET 0 + + # reset entire RPU power island + # PSU_CRL_APB_RST_LPD_TOP_RPU_PGE_RESET 0 + + # reset ocm + # PSU_CRL_APB_RST_LPD_TOP_OCM_RESET 0 + + # Software control register for the LPD block. + #(OFFSET, MASK, VALUE) (0XFF5E023C, 0x0093C018U ,0x00000000U) */ + mask_write 0XFF5E023C 0x0093C018 0x00000000 + # : ENET + # Register : RST_LPD_IOU0 @ 0XFF5E0230

+ + # GEM 3 reset + # PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 + + # Software controlled reset for the GEMs + #(OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) */ + mask_write 0XFF5E0230 0x00000008 0x00000000 + # : QSPI + # Register : RST_LPD_IOU2 @ 0XFF5E0238

+ + # Block level reset + # PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 + + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. + #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) */ + mask_write 0XFF5E0238 0x00000001 0x00000000 + # : QSPI TAP DELAY + # Register : IOU_TAPDLY_BYPASS @ 0XFF180390

+ + # 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypa + # ss the Tap delay on the Rx clock signal of LQSPI + # PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 + + # IOU tap delay bypass for the LQSPI and NAND controllers + #(OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) */ + mask_write 0XFF180390 0x00000004 0x00000004 + # : NAND + # : USB + # Register : RST_LPD_TOP @ 0XFF5E023C

+ + # USB 0 reset for control registers + # PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 + + # USB 0 sleep circuit reset + # PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 + + # USB 0 reset + # PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 + + # Software control register for the LPD block. + #(OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) */ + mask_write 0XFF5E023C 0x00000540 0x00000000 + # : USB0 PIPE POWER PRESENT + # Register : fpd_power_prsnt @ 0XFF9D0080

+ + # This bit is used to choose between PIPE power present and 1'b1 + # PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 + + # fpd_power_prsnt + #(OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) */ + mask_write 0XFF9D0080 0x00000001 0x00000001 + # Register : fpd_pipe_clk @ 0XFF9D007C

+ + # This bit is used to choose between PIPE clock coming from SerDes and the + # suspend clk + # PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 + + # fpd_pipe_clk + #(OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) */ + mask_write 0XFF9D007C 0x00000001 0x00000000 # : SD # Register : RST_LPD_IOU2 @ 0XFF5E0238

# Block level reset # PSU_CRL_APB_RST_LPD_IOU2_SDIO1_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000040U ,0x00000000U) */ mask_write 0XFF5E0238 0x00000040 0x00000000 # Register : CTRL_REG_SD @ 0XFF180310

@@ -11979,12 +13286,12 @@ set psu_peripherals_init_data { mask_write 0XFF180310 0x00008000 0x00000000 # Register : SD_CONFIG_REG2 @ 0XFF180320

- # Should be set based on the final product usage 00 - Removable SCard Slot 01 - Embedded Slot for One Device 10 - Shared Bus Sl - # t 11 - Reserved + # Should be set based on the final product usage 00 - Removable SCard Slot + # 01 - Embedded Slot for One Device 10 - Shared Bus Slot 11 - Reserved # PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE 0 # 1.8V Support 1: 1.8V supported 0: 1.8V not supported support - # PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 0 + # PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 1 # 3.0V Support 1: 3.0V supported 0: 3.0V not supported support # PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V 0 @@ -11993,23 +13300,36 @@ set psu_peripherals_init_data { # PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V 1 # SD Config Register 2 - #(OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x00800000U) */ - mask_write 0XFF180320 0x33800000 0x00800000 + #(OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x02800000U) */ + mask_write 0XFF180320 0x33800000 0x02800000 # : SD1 BASE CLOCK # Register : SD_CONFIG_REG1 @ 0XFF18031C

# Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. - # PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc7 + # PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc8 + + # Configures the Number of Taps (Phases) of the rxclk_in that is supported + # . + # PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT 0x28 # SD Config Register 1 - #(OFFSET, MASK, VALUE) (0XFF18031C, 0x7F800000U ,0x63800000U) */ - mask_write 0XFF18031C 0x7F800000 0x63800000 + #(OFFSET, MASK, VALUE) (0XFF18031C, 0x7FFE0000U ,0x64500000U) */ + mask_write 0XFF18031C 0x7FFE0000 0x64500000 + # Register : SD_DLL_CTRL @ 0XFF180358

+ + # Reserved. + # PSU_IOU_SLCR_SD_DLL_CTRL_RESERVED 1 + + # SDIO status register + #(OFFSET, MASK, VALUE) (0XFF180358, 0x00000008U ,0x00000008U) */ + mask_write 0XFF180358 0x00000008 0x00000008 # : SD1 RETUNER # Register : SD_CONFIG_REG3 @ 0XFF180324

- # This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. Setting to 4'b0 disables Re-Tuning Timer. 0h - Get inf - # rmation via other source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n = 2(n-1) seconds -- Bh = 1024 secon - # s Fh - Ch = Reserved + # This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. S + # etting to 4'b0 disables Re-Tuning Timer. 0h - Get information via other + # source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n + # = 2(n-1) seconds -- Bh = 1024 seconds Fh - Ch = Reserved # PSU_IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR 0X0 # SD Config Register 3 @@ -12021,7 +13341,8 @@ set psu_peripherals_init_data { # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_CAN1_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000100U ,0x00000000U) */ mask_write 0XFF5E0238 0x00000100 0x00000000 # : I2C @@ -12033,7 +13354,8 @@ set psu_peripherals_init_data { # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_I2C1_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000600U ,0x00000000U) */ mask_write 0XFF5E0238 0x00000600 0x00000000 # : SWDT @@ -12042,7 +13364,8 @@ set psu_peripherals_init_data { # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_SWDT_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00008000U ,0x00000000U) */ mask_write 0XFF5E0238 0x00008000 0x00000000 # : SPI @@ -12061,7 +13384,8 @@ set psu_peripherals_init_data { # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_TTC3_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00007800U ,0x00000000U) */ mask_write 0XFF5E0238 0x00007800 0x00000000 # : UART @@ -12073,7 +13397,8 @@ set psu_peripherals_init_data { # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_UART1_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000006U ,0x00000000U) */ mask_write 0XFF5E0238 0x00000006 0x00000000 # : UART BAUD RATE @@ -12087,7 +13412,8 @@ set psu_peripherals_init_data { mask_write 0XFF000034 0x000000FF 0x00000005 # Register : Baud_rate_gen_reg0 @ 0XFF000018

- # Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + # Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + # bypass (baud_sample = sel_clk) 2 - 65535: baud_sample # PSU_UART0_BAUD_RATE_GEN_REG0_CD 0x8f # Baud Rate Generator Register. @@ -12095,36 +13421,43 @@ set psu_peripherals_init_data { mask_write 0XFF000018 0x0000FFFF 0x0000008F # Register : Control_reg0 @ 0XFF000000

- # Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - # high level during 12 bit periods. It can be set regardless of the value of STTBRK. + # Stop transmitter break: 0: no affect 1: stop transmission of the break a + # fter a minimum of one character length and transmit a high level during + # 12 bit periods. It can be set regardless of the value of STTBRK. # PSU_UART0_CONTROL_REG0_STPBRK 0x0 - # Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - # transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. + # Start transmitter break: 0: no affect 1: start to transmit a break after + # the characters currently present in the FIFO and the transmit shift reg + # ister have been transmitted. It can only be set if STPBRK (Stop transmit + # ter break) is not high. # PSU_UART0_CONTROL_REG0_STTBRK 0x0 - # Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - # pleted. + # Restart receiver timeout counter: 1: receiver timeout counter is restart + # ed. This bit is self clearing once the restart has completed. # PSU_UART0_CONTROL_REG0_RSTTO 0x0 # Transmit disable: 0: enable transmitter 1: disable transmitter # PSU_UART0_CONTROL_REG0_TXDIS 0x0 - # Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. + # Transmit enable: 0: disable transmitter 1: enable transmitter, provided + # the TXDIS field is set to 0. # PSU_UART0_CONTROL_REG0_TXEN 0x1 # Receive disable: 0: enable 1: disable, regardless of the value of RXEN # PSU_UART0_CONTROL_REG0_RXDIS 0x0 - # Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. + # Receive enable: 0: disable 1: enable When set to one, the receiver logic + # is enabled, provided the RXDIS field is set to zero. # PSU_UART0_CONTROL_REG0_RXEN 0x1 - # Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - # bit is self clearing once the reset has completed. + # Software reset for Tx data path: 0: no affect 1: transmitter logic is re + # set and all pending transmitter data is discarded This bit is self clear + # ing once the reset has completed. # PSU_UART0_CONTROL_REG0_TXRES 0x1 - # Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - # is self clearing once the reset has completed. + # Software reset for Rx data path: 0: no affect 1: receiver logic is reset + # and all pending receiver data is discarded. This bit is self clearing o + # nce the reset has completed. # PSU_UART0_CONTROL_REG0_RXRES 0x1 # UART Control Register @@ -12132,22 +13465,28 @@ set psu_peripherals_init_data { mask_write 0XFF000000 0x000001FF 0x00000017 # Register : mode_reg0 @ 0XFF000004

- # Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback + # Channel mode: Defines the mode of operation of the UART. 00: normal 01: + # automatic echo 10: local loopback 11: remote loopback # PSU_UART0_MODE_REG0_CHMODE 0x0 - # Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - # stop bits 10: 2 stop bits 11: reserved + # Number of stop bits: Defines the number of stop bits to detect on receiv + # e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + # op bits 11: reserved # PSU_UART0_MODE_REG0_NBSTOP 0x0 - # Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - # 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity + # Parity type select: Defines the expected parity to check on receive and + # the parity to generate on transmit. 000: even parity 001: odd parity 010 + # : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + # ty # PSU_UART0_MODE_REG0_PAR 0x4 - # Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits + # Character length select: Defines the number of bits in each character. 1 + # 1: 6 bits 10: 7 bits 0x: 8 bits # PSU_UART0_MODE_REG0_CHRL 0x0 - # Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - # source is uart_ref_clk 1: clock source is uart_ref_clk/8 + # Clock source select: This field defines whether a pre-scalar of 8 is app + # lied to the baud rate generator input clock. 0: clock source is uart_ref + # _clk 1: clock source is uart_ref_clk/8 # PSU_UART0_MODE_REG0_CLKS 0x0 # UART Mode Register @@ -12163,7 +13502,8 @@ set psu_peripherals_init_data { mask_write 0XFF010034 0x000000FF 0x00000005 # Register : Baud_rate_gen_reg0 @ 0XFF010018

- # Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + # Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + # bypass (baud_sample = sel_clk) 2 - 65535: baud_sample # PSU_UART1_BAUD_RATE_GEN_REG0_CD 0x8f # Baud Rate Generator Register. @@ -12171,36 +13511,43 @@ set psu_peripherals_init_data { mask_write 0XFF010018 0x0000FFFF 0x0000008F # Register : Control_reg0 @ 0XFF010000

- # Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - # high level during 12 bit periods. It can be set regardless of the value of STTBRK. + # Stop transmitter break: 0: no affect 1: stop transmission of the break a + # fter a minimum of one character length and transmit a high level during + # 12 bit periods. It can be set regardless of the value of STTBRK. # PSU_UART1_CONTROL_REG0_STPBRK 0x0 - # Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - # transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. + # Start transmitter break: 0: no affect 1: start to transmit a break after + # the characters currently present in the FIFO and the transmit shift reg + # ister have been transmitted. It can only be set if STPBRK (Stop transmit + # ter break) is not high. # PSU_UART1_CONTROL_REG0_STTBRK 0x0 - # Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - # pleted. + # Restart receiver timeout counter: 1: receiver timeout counter is restart + # ed. This bit is self clearing once the restart has completed. # PSU_UART1_CONTROL_REG0_RSTTO 0x0 # Transmit disable: 0: enable transmitter 1: disable transmitter # PSU_UART1_CONTROL_REG0_TXDIS 0x0 - # Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. + # Transmit enable: 0: disable transmitter 1: enable transmitter, provided + # the TXDIS field is set to 0. # PSU_UART1_CONTROL_REG0_TXEN 0x1 # Receive disable: 0: enable 1: disable, regardless of the value of RXEN # PSU_UART1_CONTROL_REG0_RXDIS 0x0 - # Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. + # Receive enable: 0: disable 1: enable When set to one, the receiver logic + # is enabled, provided the RXDIS field is set to zero. # PSU_UART1_CONTROL_REG0_RXEN 0x1 - # Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - # bit is self clearing once the reset has completed. + # Software reset for Tx data path: 0: no affect 1: transmitter logic is re + # set and all pending transmitter data is discarded This bit is self clear + # ing once the reset has completed. # PSU_UART1_CONTROL_REG0_TXRES 0x1 - # Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - # is self clearing once the reset has completed. + # Software reset for Rx data path: 0: no affect 1: receiver logic is reset + # and all pending receiver data is discarded. This bit is self clearing o + # nce the reset has completed. # PSU_UART1_CONTROL_REG0_RXRES 0x1 # UART Control Register @@ -12208,28 +13555,43 @@ set psu_peripherals_init_data { mask_write 0XFF010000 0x000001FF 0x00000017 # Register : mode_reg0 @ 0XFF010004

- # Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback + # Channel mode: Defines the mode of operation of the UART. 00: normal 01: + # automatic echo 10: local loopback 11: remote loopback # PSU_UART1_MODE_REG0_CHMODE 0x0 - # Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - # stop bits 10: 2 stop bits 11: reserved + # Number of stop bits: Defines the number of stop bits to detect on receiv + # e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + # op bits 11: reserved # PSU_UART1_MODE_REG0_NBSTOP 0x0 - # Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - # 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity + # Parity type select: Defines the expected parity to check on receive and + # the parity to generate on transmit. 000: even parity 001: odd parity 010 + # : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + # ty # PSU_UART1_MODE_REG0_PAR 0x4 - # Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits + # Character length select: Defines the number of bits in each character. 1 + # 1: 6 bits 10: 7 bits 0x: 8 bits # PSU_UART1_MODE_REG0_CHRL 0x0 - # Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - # source is uart_ref_clk 1: clock source is uart_ref_clk/8 + # Clock source select: This field defines whether a pre-scalar of 8 is app + # lied to the baud rate generator input clock. 0: clock source is uart_ref + # _clk 1: clock source is uart_ref_clk/8 # PSU_UART1_MODE_REG0_CLKS 0x0 # UART Mode Register #(OFFSET, MASK, VALUE) (0XFF010004, 0x000003FFU ,0x00000020U) */ mask_write 0XFF010004 0x000003FF 0x00000020 # : GPIO + # Register : RST_LPD_IOU2 @ 0XFF5E0238

+ + # Block level reset + # PSU_CRL_APB_RST_LPD_IOU2_GPIO_RESET 0 + + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. + #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00040000U ,0x00000000U) */ + mask_write 0XFF5E0238 0x00040000 0x00000000 # : ADMA TZ # Register : slcr_adma @ 0XFF4B0024

@@ -12286,7 +13648,6 @@ set psu_peripherals_init_data { #(OFFSET, MASK, VALUE) (0XFFCA5000, 0x00001FFFU ,0x00000000U) */ mask_write 0XFFCA5000 0x00001FFF 0x00000000 # : CSU TAMPER RESPONSE - # : AFIFM INTERFACE WIDTH # : CPU QOS DEFAULT # Register : ACE_CTRL @ 0XFD5C0060

@@ -12302,10 +13663,12 @@ set psu_peripherals_init_data { # : ENABLES RTC SWITCH TO BATTERY WHEN VCC_PSAUX IS NOT AVAILABLE # Register : CONTROL @ 0XFFA60040

- # Enables the RTC. By writing a 0 to this bit, RTC will be powered off and the only module that potentially draws current from - # he battery will be BBRAM. The value read through this bit does not necessarily reflect whether RTC is enabled or not. It is e - # pected that RTC is enabled every time it is being configured. If RTC is not used in the design, FSBL will disable it by writi - # g a 0 to this bit. + # Enables the RTC. By writing a 0 to this bit, RTC will be powered off and + # the only module that potentially draws current from the battery will be + # BBRAM. The value read through this bit does not necessarily reflect whe + # ther RTC is enabled or not. It is expected that RTC is enabled every tim + # e it is being configured. If RTC is not used in the design, FSBL will di + # sable it by writing a 0 to this bit. # PSU_RTC_CONTROL_BATTERY_DISABLE 0X1 # This register controls various functionalities within the RTC @@ -12314,22 +13677,89 @@ set psu_peripherals_init_data { # : TIMESTAMP COUNTER # Register : base_frequency_ID_register @ 0XFF260020

- # Frequency in number of ticks per second. Valid range from 10 MHz to 100 MHz. - # PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5e100 + # Frequency in number of ticks per second. Valid range from 10 MHz to 100 + # MHz. + # PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5b9f0 - # Program this register to match the clock frequency of the timestamp generator, in ticks per second. For example, for a 50 MHz - # clock, program 0x02FAF080. This register is not accessible to the read-only programming interface. - #(OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5E100U) */ - mask_write 0XFF260020 0xFFFFFFFF 0x05F5E100 + # Program this register to match the clock frequency of the timestamp gene + # rator, in ticks per second. For example, for a 50 MHz clock, program 0x0 + # 2FAF080. This register is not accessible to the read-only programming in + # terface. + #(OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5B9F0U) */ + mask_write 0XFF260020 0xFFFFFFFF 0x05F5B9F0 # Register : counter_control_register @ 0XFF260000

- # Enable 0: The counter is disabled and not incrementing. 1: The counter is enabled and is incrementing. + # Enable 0: The counter is disabled and not incrementing. 1: The counter i + # s enabled and is incrementing. # PSU_IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN 0x1 - # Controls the counter increments. This register is not accessible to the read-only programming interface. + # Controls the counter increments. This register is not accessible to the + # read-only programming interface. #(OFFSET, MASK, VALUE) (0XFF260000, 0x00000001U ,0x00000001U) */ mask_write 0XFF260000 0x00000001 0x00000001 # : TTC SRC SELECT + # : PCIE GPIO RESET + # : PCIE RESET + # : DIR MODE BANK 0 + # : DIR MODE BANK 1 + # Register : DIRM_1 @ 0XFF0A0244

+ + # Operation is the same as DIRM_0[DIRECTION_0] + # PSU_GPIO_DIRM_1_DIRECTION_1 0x20 + + # Direction mode (GPIO Bank1, MIO) + #(OFFSET, MASK, VALUE) (0XFF0A0244, 0x03FFFFFFU ,0x00000020U) */ + mask_write 0XFF0A0244 0x03FFFFFF 0x00000020 + # : DIR MODE BANK 2 + # : OUTPUT ENABLE BANK 0 + # : OUTPUT ENABLE BANK 1 + # Register : OEN_1 @ 0XFF0A0248

+ + # Operation is the same as OEN_0[OP_ENABLE_0] + # PSU_GPIO_OEN_1_OP_ENABLE_1 0x20 + + # Output enable (GPIO Bank1, MIO) + #(OFFSET, MASK, VALUE) (0XFF0A0248, 0x03FFFFFFU ,0x00000020U) */ + mask_write 0XFF0A0248 0x03FFFFFF 0x00000020 + # : OUTPUT ENABLE BANK 2 + # : MASK_DATA_0_LSW LOW BANK [15:0] + # : MASK_DATA_0_MSW LOW BANK [25:16] + # : MASK_DATA_1_LSW LOW BANK [41:26] + # Register : MASK_DATA_1_LSW @ 0XFF0A0008

+ + # Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + # Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + # Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + #(OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) */ + mask_write 0XFF0A0008 0xFFFFFFFF 0xFFDF0020 + # : MASK_DATA_1_MSW HIGH BANK [51:42] + # : MASK_DATA_1_LSW HIGH BANK [67:52] + # : MASK_DATA_1_LSW HIGH BANK [77:68] + # : ADD 1 MS DELAY + mask_delay 0x00000000 1 + # : MASK_DATA_0_LSW LOW BANK [15:0] + # : MASK_DATA_0_MSW LOW BANK [25:16] + # : MASK_DATA_1_LSW LOW BANK [41:26] + # Register : MASK_DATA_1_LSW @ 0XFF0A0008

+ + # Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + # Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x0 + + # Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + #(OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0000U) */ + mask_write 0XFF0A0008 0xFFFFFFFF 0xFFDF0000 + # : MASK_DATA_1_MSW HIGH BANK [51:42] + # : MASK_DATA_1_LSW HIGH BANK [67:52] + # : MASK_DATA_1_LSW HIGH BANK [77:68] + # : ADD 5 MS DELAY + mask_delay 0x00000000 5 } set psu_post_config_data { @@ -12342,72 +13772,695 @@ set psu_peripherals_powerdwn_data { } set psu_lpd_xppu_data { - # : XPPU INTERRUPT ENABLE - # Register : IEN @ 0XFF980018

- - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_APER_PARITY 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_APER_TZ 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_APER_PERM 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_MID_PARITY 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_MID_RO 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_MID_MISS 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_INV_APB 0X1 - - # Interrupt Enable Register - #(OFFSET, MASK, VALUE) (0XFF980018, 0x000000EFU ,0x000000EFU) */ - mask_write 0XFF980018 0x000000EF 0x000000EF + # : MASTER ID LIST + # : APERTURE PERMISIION LIST + # : APERTURE NAME: UART0, START ADDRESS: FF000000, END ADDRESS: FF00FFFF + # : APERTURE NAME: UART1, START ADDRESS: FF010000, END ADDRESS: FF01FFFF + # : APERTURE NAME: I2C0, START ADDRESS: FF020000, END ADDRESS: FF02FFFF + # : APERTURE NAME: I2C1, START ADDRESS: FF030000, END ADDRESS: FF03FFFF + # : APERTURE NAME: SPI0, START ADDRESS: FF040000, END ADDRESS: FF04FFFF + # : APERTURE NAME: SPI1, START ADDRESS: FF050000, END ADDRESS: FF05FFFF + # : APERTURE NAME: CAN0, START ADDRESS: FF060000, END ADDRESS: FF06FFFF + # : APERTURE NAME: CAN1, START ADDRESS: FF070000, END ADDRESS: FF07FFFF + # : APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09FFFF + # : APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09FFFF + # : APERTURE NAME: GPIO, START ADDRESS: FF0A0000, END ADDRESS: FF0AFFFF + # : APERTURE NAME: GEM0, START ADDRESS: FF0B0000, END ADDRESS: FF0BFFFF + # : APERTURE NAME: GEM1, START ADDRESS: FF0C0000, END ADDRESS: FF0CFFFF + # : APERTURE NAME: GEM2, START ADDRESS: FF0D0000, END ADDRESS: FF0DFFFF + # : APERTURE NAME: GEM3, START ADDRESS: FF0E0000, END ADDRESS: FF0EFFFF + # : APERTURE NAME: QSPI, START ADDRESS: FF0F0000, END ADDRESS: FF0FFFFF + # : APERTURE NAME: NAND, START ADDRESS: FF100000, END ADDRESS: FF10FFFF + # : APERTURE NAME: TTC0, START ADDRESS: FF110000, END ADDRESS: FF11FFFF + # : APERTURE NAME: TTC1, START ADDRESS: FF120000, END ADDRESS: FF12FFFF + # : APERTURE NAME: TTC2, START ADDRESS: FF130000, END ADDRESS: FF13FFFF + # : APERTURE NAME: TTC3, START ADDRESS: FF140000, END ADDRESS: FF14FFFF + # : APERTURE NAME: SWDT, START ADDRESS: FF150000, END ADDRESS: FF15FFFF + # : APERTURE NAME: SD0, START ADDRESS: FF160000, END ADDRESS: FF16FFFF + # : APERTURE NAME: SD1, START ADDRESS: FF170000, END ADDRESS: FF17FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SECURE_SLCR, START ADDRESS: FF240000, END ADDRESS: FF24FFFF + # : APERTURE NAME: IOU_SCNTR, START ADDRESS: FF250000, END ADDRESS: FF25FFFF + # : APERTURE NAME: IOU_SCNTRS, START ADDRESS: FF260000, END ADDRESS: FF26FFFF + # : APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2AFFFF + # : APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2AFFFF + # : APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2AFFFF + # : APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2AFFFF + # : APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2FFFFF + # : APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2FFFFF + # : APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2FFFFF + # : APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2FFFFF + # : APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2FFFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: LPD_UNUSED_1, START ADDRESS: FF400000, END ADDRESS: FF40FFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF4DFFFF + # : APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF4DFFFF + # : APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF4DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: OCM_SLCR, START ADDRESS: FF960000, END ADDRESS: FF96FFFF + # : APERTURE NAME: LPD_UNUSED_4, START ADDRESS: FF970000, END ADDRESS: FF97FFFF + # : APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + # : APERTURE NAME: RPU, START ADDRESS: FF9A0000, END ADDRESS: FF9AFFFF + # : APERTURE NAME: AFIFM6, START ADDRESS: FF9B0000, END ADDRESS: FF9BFFFF + # : APERTURE NAME: LPD_XPPU_SINK, START ADDRESS: FF9C0000, END ADDRESS: FF9CFFFF + # : APERTURE NAME: USB3_0, START ADDRESS: FF9D0000, END ADDRESS: FF9DFFFF + # : APERTURE NAME: USB3_1, START ADDRESS: FF9E0000, END ADDRESS: FF9EFFFF + # : APERTURE NAME: LPD_UNUSED_5, START ADDRESS: FF9F0000, END ADDRESS: FF9FFFFF + # : APERTURE NAME: APM0, START ADDRESS: FFA00000, END ADDRESS: FFA0FFFF + # : APERTURE NAME: APM1, START ADDRESS: FFA10000, END ADDRESS: FFA1FFFF + # : APERTURE NAME: APM_INTC_IOU, START ADDRESS: FFA20000, END ADDRESS: FFA2FFFF + # : APERTURE NAME: APM_FPD_LPD, START ADDRESS: FFA30000, END ADDRESS: FFA3FFFF + # : APERTURE NAME: LPD_UNUSED_6, START ADDRESS: FFA40000, END ADDRESS: FFA4FFFF + # : APERTURE NAME: AMS, START ADDRESS: FFA50000, END ADDRESS: FFA5FFFF + # : APERTURE NAME: RTC, START ADDRESS: FFA60000, END ADDRESS: FFA6FFFF + # : APERTURE NAME: OCM_XMPU_CFG, START ADDRESS: FFA70000, END ADDRESS: FFA7FFFF + # : APERTURE NAME: ADMA_0, START ADDRESS: FFA80000, END ADDRESS: FFA8FFFF + # : APERTURE NAME: ADMA_1, START ADDRESS: FFA90000, END ADDRESS: FFA9FFFF + # : APERTURE NAME: ADMA_2, START ADDRESS: FFAA0000, END ADDRESS: FFAAFFFF + # : APERTURE NAME: ADMA_3, START ADDRESS: FFAB0000, END ADDRESS: FFABFFFF + # : APERTURE NAME: ADMA_4, START ADDRESS: FFAC0000, END ADDRESS: FFACFFFF + # : APERTURE NAME: ADMA_5, START ADDRESS: FFAD0000, END ADDRESS: FFADFFFF + # : APERTURE NAME: ADMA_6, START ADDRESS: FFAE0000, END ADDRESS: FFAEFFFF + # : APERTURE NAME: ADMA_7, START ADDRESS: FFAF0000, END ADDRESS: FFAFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + # : APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + # : APERTURE NAME: CSU_LOCAL, START ADDRESS: FFC20000, END ADDRESS: FFC2FFFF + # : APERTURE NAME: PUF, START ADDRESS: FFC30000, END ADDRESS: FFC3FFFF + # : APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + # : APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + # : APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7FFFF + # : APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7FFFF + # : APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + # : APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + # : APERTURE NAME: CSU, START ADDRESS: FFCA0000, END ADDRESS: FFCAFFFF + # : APERTURE NAME: CSU_WDT, START ADDRESS: FFCB0000, END ADDRESS: FFCBFFFF + # : APERTURE NAME: EFUSE, START ADDRESS: FFCC0000, END ADDRESS: FFCCFFFF + # : APERTURE NAME: BBRAM, START ADDRESS: FFCD0000, END ADDRESS: FFCDFFFF + # : APERTURE NAME: RSA_CORE, START ADDRESS: FFCE0000, END ADDRESS: FFCEFFFF + # : APERTURE NAME: MBISTJTAG, START ADDRESS: FFCF0000, END ADDRESS: FFCFFFFF + # : APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + # : APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + # : APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + # : APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + # : APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5FFFF + # : APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5FFFF + # : APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + # : APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + # : APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFFF + # : APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFFF + # : APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFFF + # : APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFFF + # : APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + # : APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + # : APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + # : APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + # : APERTURE NAME: R5_0_ATCM, START ADDRESS: FFE00000, END ADDRESS: FFE0FFFF + # : APERTURE NAME: R5_0_ATCM_LOCKSTEP, START ADDRESS: FFE10000, END ADDRESS: FFE1FFFF + # : APERTURE NAME: R5_0_BTCM, START ADDRESS: FFE20000, END ADDRESS: FFE2FFFF + # : APERTURE NAME: R5_0_BTCM_LOCKSTEP, START ADDRESS: FFE30000, END ADDRESS: FFE3FFFF + # : APERTURE NAME: R5_0_INSTRUCTION_CACHE, START ADDRESS: FFE40000, END ADDRESS: FFE4FFFF + # : APERTURE NAME: R5_0_DATA_CACHE, START ADDRESS: FFE50000, END ADDRESS: FFE5FFFF + # : APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8FFFF + # : APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8FFFF + # : APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8FFFF + # : APERTURE NAME: R5_1_ATCM_, START ADDRESS: FFE90000, END ADDRESS: FFE9FFFF + # : APERTURE NAME: RPU_UNUSED_10, START ADDRESS: FFEA0000, END ADDRESS: FFEAFFFF + # : APERTURE NAME: R5_1_BTCM_, START ADDRESS: FFEB0000, END ADDRESS: FFEBFFFF + # : APERTURE NAME: R5_1_INSTRUCTION_CACHE, START ADDRESS: FFEC0000, END ADDRESS: FFECFFFF + # : APERTURE NAME: R5_1_DATA_CACHE, START ADDRESS: FFED0000, END ADDRESS: FFEDFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFFFFFF + # : APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFFFFFF + # : APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFFFFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IOU_GPV, START ADDRESS: FE000000, END ADDRESS: FE0FFFFF + # : APERTURE NAME: LPD_GPV, START ADDRESS: FE100000, END ADDRESS: FE1FFFFF + # : APERTURE NAME: USB3_0_XHCI, START ADDRESS: FE200000, END ADDRESS: FE2FFFFF + # : APERTURE NAME: USB3_1_XHCI, START ADDRESS: FE300000, END ADDRESS: FE3FFFFF + # : APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7FFFFF + # : APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7FFFFF + # : APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7FFFFF + # : APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7FFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: QSPI_LINEAR_ADDRESS, START ADDRESS: C0000000, END ADDRESS: DFFFFFFF + # : XPPU CONTROL } set psu_ddr_xmpu0_data { + # : DDR XMPU0 } set psu_ddr_xmpu1_data { + # : DDR XMPU1 } set psu_ddr_xmpu2_data { + # : DDR XMPU2 } set psu_ddr_xmpu3_data { + # : DDR XMPU3 } set psu_ddr_xmpu4_data { + # : DDR XMPU4 } set psu_ddr_xmpu5_data { + # : DDR XMPU5 } set psu_ocm_xmpu_data { + # : OCM XMPU } set psu_fpd_xmpu_data { + # : FPD XMPU } set psu_protection_lock_data { + # : LOCKING PROTECTION MODULE + # : XPPU LOCK + # : APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + # : XMPU LOCK + # : LOCK OCM XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK FPD XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER } set psu_apply_master_tz { # : RPU # : DP TZ + # Register : slcr_dpdma @ 0XFD690040

+ + # TrustZone classification for DisplayPort DMA + # PSU_FPD_SLCR_SECURE_SLCR_DPDMA_TZ 1 + + # DPDMA TrustZone Settings + #(OFFSET, MASK, VALUE) (0XFD690040, 0x00000001U ,0x00000001U) */ + mask_write 0XFD690040 0x00000001 0x00000001 # : SATA TZ # : PCIE TZ + # Register : slcr_pcie @ 0XFD690030

+ + # TrustZone classification for DMA Channel 0 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0 1 + + # TrustZone classification for DMA Channel 1 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1 1 + + # TrustZone classification for DMA Channel 2 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2 1 + + # TrustZone classification for DMA Channel 3 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3 1 + + # TrustZone classification for Ingress Address Translation 0 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0 1 + + # TrustZone classification for Ingress Address Translation 1 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1 1 + + # TrustZone classification for Ingress Address Translation 2 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2 1 + + # TrustZone classification for Ingress Address Translation 3 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3 1 + + # TrustZone classification for Ingress Address Translation 4 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4 1 + + # TrustZone classification for Ingress Address Translation 5 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5 1 + + # TrustZone classification for Ingress Address Translation 6 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6 1 + + # TrustZone classification for Ingress Address Translation 7 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7 1 + + # TrustZone classification for Egress Address Translation 0 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0 1 + + # TrustZone classification for Egress Address Translation 1 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1 1 + + # TrustZone classification for Egress Address Translation 2 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2 1 + + # TrustZone classification for Egress Address Translation 3 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3 1 + + # TrustZone classification for Egress Address Translation 4 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4 1 + + # TrustZone classification for Egress Address Translation 5 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5 1 + + # TrustZone classification for Egress Address Translation 6 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6 1 + + # TrustZone classification for Egress Address Translation 7 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7 1 + + # TrustZone classification for DMA Registers + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS 1 + + # TrustZone classification for MSIx Table + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE 1 + + # TrustZone classification for MSIx PBA + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA 1 + + # TrustZone classification for ECAM + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM 1 + + # TrustZone classification for Bridge Common Registers + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS 1 + + # PCIe TrustZone settings. This register may only be modified during bootu + # p (while PCIe block is disabled) + #(OFFSET, MASK, VALUE) (0XFD690030, 0x01FFFFFFU ,0x01FFFFFFU) */ + mask_write 0XFD690030 0x01FFFFFF 0x01FFFFFF # : USB TZ + # Register : slcr_usb @ 0XFF4B0034

+ + # TrustZone Classification for USB3_0 + # PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0 1 + + # TrustZone Classification for USB3_1 + # PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1 1 + + # USB3 TrustZone settings + #(OFFSET, MASK, VALUE) (0XFF4B0034, 0x00000003U ,0x00000003U) */ + mask_write 0XFF4B0034 0x00000003 0x00000003 # : SD TZ + # Register : IOU_AXI_RPRTCN @ 0XFF240004

+ + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT 2 + + # AXI read protection type selection + #(OFFSET, MASK, VALUE) (0XFF240004, 0x003F0000U ,0x00120000U) */ + mask_write 0XFF240004 0x003F0000 0x00120000 + # Register : IOU_AXI_WPRTCN @ 0XFF240000

+ + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT 2 + + # AXI write protection type selection + #(OFFSET, MASK, VALUE) (0XFF240000, 0x003F0000U ,0x00120000U) */ + mask_write 0XFF240000 0x003F0000 0x00120000 # : GEM TZ + # Register : IOU_AXI_RPRTCN @ 0XFF240004

+ + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT 2 + + # AXI read protection type selection + #(OFFSET, MASK, VALUE) (0XFF240004, 0x00000FFFU ,0x00000492U) */ + mask_write 0XFF240004 0x00000FFF 0x00000492 + # Register : IOU_AXI_WPRTCN @ 0XFF240000

+ + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT 2 + + # AXI write protection type selection + #(OFFSET, MASK, VALUE) (0XFF240000, 0x00000FFFU ,0x00000492U) */ + mask_write 0XFF240000 0x00000FFF 0x00000492 # : QSPI TZ + # Register : IOU_AXI_WPRTCN @ 0XFF240000

+ + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT 2 + + # AXI write protection type selection + #(OFFSET, MASK, VALUE) (0XFF240000, 0x0E000000U ,0x04000000U) */ + mask_write 0XFF240000 0x0E000000 0x04000000 # : NAND TZ + # Register : IOU_AXI_RPRTCN @ 0XFF240004

+ + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT 2 + + # AXI read protection type selection + #(OFFSET, MASK, VALUE) (0XFF240004, 0x01C00000U ,0x00800000U) */ + mask_write 0XFF240004 0x01C00000 0x00800000 + # Register : IOU_AXI_WPRTCN @ 0XFF240000

+ + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT 2 + + # AXI write protection type selection + #(OFFSET, MASK, VALUE) (0XFF240000, 0x01C00000U ,0x00800000U) */ + mask_write 0XFF240000 0x01C00000 0x00800000 + # : DMA TZ + # Register : slcr_adma @ 0XFF4B0024

+ + # TrustZone Classification for ADMA + # PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0xFF + + # RPU TrustZone settings + #(OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) */ + mask_write 0XFF4B0024 0x000000FF 0x000000FF + # Register : slcr_gdma @ 0XFD690050

+ + # TrustZone Classification for GDMA + # PSU_FPD_SLCR_SECURE_SLCR_GDMA_TZ 0xFF + + # GDMA Trustzone Settings + #(OFFSET, MASK, VALUE) (0XFD690050, 0x000000FFU ,0x000000FFU) */ + mask_write 0XFD690050 0x000000FF 0x000000FF } set psu_serdes_init_data { @@ -12415,9 +14468,11 @@ set psu_serdes_init_data { # : GT REFERENCE CLOCK SOURCE SELECTION # Register : PLL_REF_SEL0 @ 0XFD410000

- # PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - # 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - # Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved + # PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + # 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + # 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + # - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + # eserved # PSU_SERDES_PLL_REF_SEL0_PLLREFSEL0 0xD # PLL0 Reference Selection Register @@ -12425,9 +14480,11 @@ set psu_serdes_init_data { mask_write 0XFD410000 0x0000001F 0x0000000D # Register : PLL_REF_SEL1 @ 0XFD410004

- # PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - # 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - # Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved + # PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + # 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + # 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + # - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + # eserved # PSU_SERDES_PLL_REF_SEL1_PLLREFSEL1 0x9 # PLL1 Reference Selection Register @@ -12435,9 +14492,11 @@ set psu_serdes_init_data { mask_write 0XFD410004 0x0000001F 0x00000009 # Register : PLL_REF_SEL2 @ 0XFD410008

- # PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - # 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - # Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved + # PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + # 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + # 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + # - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + # eserved # PSU_SERDES_PLL_REF_SEL2_PLLREFSEL2 0x8 # PLL2 Reference Selection Register @@ -12445,9 +14504,11 @@ set psu_serdes_init_data { mask_write 0XFD410008 0x0000001F 0x00000008 # Register : PLL_REF_SEL3 @ 0XFD41000C

- # PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - # 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - # Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved + # PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + # 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + # 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + # - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + # eserved # PSU_SERDES_PLL_REF_SEL3_PLLREFSEL3 0xF # PLL3 Reference Selection Register @@ -12456,7 +14517,8 @@ set psu_serdes_init_data { # : GT REFERENCE CLOCK FREQUENCY SELECTION # Register : L0_L0_REF_CLK_SEL @ 0XFD402860

- # Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer output. Set to 0 to select lane0 ref clock mux output. + # Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer outp + # ut. Set to 0 to select lane0 ref clock mux output. # PSU_SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL 0x1 # Lane0 Ref Clock Selection Register @@ -12464,10 +14526,12 @@ set psu_serdes_init_data { mask_write 0XFD402860 0x00000080 0x00000080 # Register : L0_L1_REF_CLK_SEL @ 0XFD402864

- # Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane1 ref clock mux output. + # Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer outp + # ut. Set to 0 to select lane1 ref clock mux output. # PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL 0x0 - # Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 slicer output from ref clock network + # Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 sli + # cer output from ref clock network # PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3 0x1 # Lane1 Ref Clock Selection Register @@ -12475,7 +14539,8 @@ set psu_serdes_init_data { mask_write 0XFD402864 0x00000088 0x00000008 # Register : L0_L2_REF_CLK_SEL @ 0XFD402868

- # Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane2 ref clock mux output. + # Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer outp + # ut. Set to 0 to select lane2 ref clock mux output. # PSU_SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL 0x1 # Lane2 Ref Clock Selection Register @@ -12483,10 +14548,12 @@ set psu_serdes_init_data { mask_write 0XFD402868 0x00000080 0x00000080 # Register : L0_L3_REF_CLK_SEL @ 0XFD40286C

- # Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer output. Set to 0 to select lane3 ref clock mux output. + # Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer outp + # ut. Set to 0 to select lane3 ref clock mux output. # PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL 0x0 - # Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 slicer output from ref clock network + # Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 sli + # cer output from ref clock network # PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1 0x1 # Lane3 Ref Clock Selection Register @@ -12693,7 +14760,8 @@ set psu_serdes_init_data { # Enable test mode force on fractional mode enable # PSU_SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC 0x1 - # Fractional feedback division control and fractional value for feedback division bits 26:24 + # Fractional feedback division control and fractional value for feedback d + # ivision bits 26:24 #(OFFSET, MASK, VALUE) (0XFD40E360, 0x00000040U ,0x00000040U) */ mask_write 0XFD40E360 0x00000040 0x00000040 # Register : L3_TM_DIG_6 @ 0XFD40D06C

@@ -12727,14 +14795,6 @@ set psu_serdes_init_data { # MPHY PLL Gear and bypass scrambler #(OFFSET, MASK, VALUE) (0XFD40C0F4, 0x0000000BU ,0x0000000BU) */ mask_write 0XFD40C0F4 0x0000000B 0x0000000B - # Register : L3_TXPMA_ST_0 @ 0XFD40CB00

- - # PHY Mode: 4'b000 - PCIe, 4'b001 - USB3, 4'b0010 - SATA, 4'b0100 - SGMII, 4'b0101 - DP, 4'b1000 - MPHY - # PSU_SERDES_L3_TXPMA_ST_0_TX_PHY_MODE 0x21 - - # Opmode Info - #(OFFSET, MASK, VALUE) (0XFD40CB00, 0x000000F0U ,0x000000F0U) */ - mask_write 0XFD40CB00 0x000000F0 0x000000F0 # : ENABLE CHICKEN BIT FOR PCIE AND USB # Register : L0_TM_AUX_0 @ 0XFD4010CC

@@ -12796,7 +14856,8 @@ set psu_serdes_init_data { mask_write 0XFD40189C 0x00000080 0x00000080 # Register : L0_TM_IQ_ILL1 @ 0XFD4018F8

- # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + # USB3 : SS # PSU_SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x64 # iqpi cal code @@ -12820,7 +14881,8 @@ set psu_serdes_init_data { mask_write 0XFD401990 0x000000FF 0x00000011 # Register : L0_TM_E_ILL1 @ 0XFD401924

- # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + # SB3 : SS # PSU_SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x4 # epi cal code @@ -12890,6 +14952,22 @@ set psu_serdes_init_data { # enables for lf,constant gm trim and polytirm #(OFFSET, MASK, VALUE) (0XFD401944, 0x00000001U ,0x00000001U) */ mask_write 0XFD401944 0x00000001 0x00000001 + # Register : L0_TM_ILL13 @ 0XFD401994

+ + # ILL cal idle val refcnt + # PSU_SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + # ill cal idle value count + #(OFFSET, MASK, VALUE) (0XFD401994, 0x00000007U ,0x00000007U) */ + mask_write 0XFD401994 0x00000007 0x00000007 + # Register : L1_TM_ILL13 @ 0XFD405994

+ + # ILL cal idle val refcnt + # PSU_SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + # ill cal idle value count + #(OFFSET, MASK, VALUE) (0XFD405994, 0x00000007U ,0x00000007U) */ + mask_write 0XFD405994 0x00000007 0x00000007 # Register : L2_TM_MISC2 @ 0XFD40989C

# ILL calib counts BYPASSED with calcode bits @@ -12900,7 +14978,8 @@ set psu_serdes_init_data { mask_write 0XFD40989C 0x00000080 0x00000080 # Register : L2_TM_IQ_ILL1 @ 0XFD4098F8

- # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + # USB3 : SS # PSU_SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x1A # iqpi cal code @@ -12924,7 +15003,8 @@ set psu_serdes_init_data { mask_write 0XFD409990 0x000000FF 0x00000010 # Register : L2_TM_E_ILL1 @ 0XFD409924

- # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + # SB3 : SS # PSU_SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0xFE # epi cal code @@ -12994,6 +15074,14 @@ set psu_serdes_init_data { # enables for lf,constant gm trim and polytirm #(OFFSET, MASK, VALUE) (0XFD409944, 0x00000001U ,0x00000001U) */ mask_write 0XFD409944 0x00000001 0x00000001 + # Register : L2_TM_ILL13 @ 0XFD409994

+ + # ILL cal idle val refcnt + # PSU_SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + # ill cal idle value count + #(OFFSET, MASK, VALUE) (0XFD409994, 0x00000007U ,0x00000007U) */ + mask_write 0XFD409994 0x00000007 0x00000007 # Register : L3_TM_MISC2 @ 0XFD40D89C

# ILL calib counts BYPASSED with calcode bits @@ -13004,7 +15092,8 @@ set psu_serdes_init_data { mask_write 0XFD40D89C 0x00000080 0x00000080 # Register : L3_TM_IQ_ILL1 @ 0XFD40D8F8

- # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + # USB3 : SS # PSU_SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x7D # iqpi cal code @@ -13028,7 +15117,8 @@ set psu_serdes_init_data { mask_write 0XFD40D990 0x000000FF 0x00000001 # Register : L3_TM_E_ILL1 @ 0XFD40D924

- # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + # SB3 : SS # PSU_SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x9C # epi cal code @@ -13106,23 +15196,47 @@ set psu_serdes_init_data { # enables for lf,constant gm trim and polytirm #(OFFSET, MASK, VALUE) (0XFD40D944, 0x00000001U ,0x00000001U) */ mask_write 0XFD40D944 0x00000001 0x00000001 + # Register : L3_TM_ILL13 @ 0XFD40D994

+ + # ILL cal idle val refcnt + # PSU_SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + # ill cal idle value count + #(OFFSET, MASK, VALUE) (0XFD40D994, 0x00000007U ,0x00000007U) */ + mask_write 0XFD40D994 0x00000007 0x00000007 # : SYMBOL LOCK AND WAIT - # Register : L0_TM_DIG_21 @ 0XFD4010A8

- - # pre lock comma count threshold. 2'b 00 : 3, 2'b 01 : 5, 2'b 10 : 10, 2'b 11 : 20 - # PSU_SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH 0x11 - - # Control symbol alignment locking - wait counts - #(OFFSET, MASK, VALUE) (0XFD4010A8, 0x00000003U ,0x00000003U) */ - mask_write 0XFD4010A8 0x00000003 0x00000003 # Register : L0_TM_DIG_10 @ 0XFD40107C

# CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 - # PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0xF + # PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 # test control for changing cdr lock wait time - #(OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x0000000FU) */ - mask_write 0XFD40107C 0x0000000F 0x0000000F + #(OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x00000001U) */ + mask_write 0XFD40107C 0x0000000F 0x00000001 + # Register : L1_TM_DIG_10 @ 0XFD40507C

+ + # CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + # PSU_SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + # test control for changing cdr lock wait time + #(OFFSET, MASK, VALUE) (0XFD40507C, 0x0000000FU ,0x00000001U) */ + mask_write 0XFD40507C 0x0000000F 0x00000001 + # Register : L2_TM_DIG_10 @ 0XFD40907C

+ + # CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + # PSU_SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + # test control for changing cdr lock wait time + #(OFFSET, MASK, VALUE) (0XFD40907C, 0x0000000FU ,0x00000001U) */ + mask_write 0XFD40907C 0x0000000F 0x00000001 + # Register : L3_TM_DIG_10 @ 0XFD40D07C

+ + # CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + # PSU_SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + # test control for changing cdr lock wait time + #(OFFSET, MASK, VALUE) (0XFD40D07C, 0x0000000FU ,0x00000001U) */ + mask_write 0XFD40D07C 0x0000000F 0x00000001 # : SIOU SETTINGS FOR BYPASS CONTROL,HSRX-DIG # Register : L0_TM_RST_DLY @ 0XFD4019A4

@@ -13137,7 +15251,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_15 # PSU_SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - # Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c + # Bypass control for pcs-pma interface. EQ supplies, main master supply an + # d ps for samp c2c #(OFFSET, MASK, VALUE) (0XFD401038, 0x00000040U ,0x00000040U) */ mask_write 0XFD401038 0x00000040 0x00000040 # Register : L0_TM_ANA_BYP_12 @ 0XFD40102C

@@ -13145,7 +15260,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_12 # PSU_SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls + # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + # ble controls #(OFFSET, MASK, VALUE) (0XFD40102C, 0x00000040U ,0x00000040U) */ mask_write 0XFD40102C 0x00000040 0x00000040 # Register : L1_TM_RST_DLY @ 0XFD4059A4

@@ -13161,7 +15277,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_15 # PSU_SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - # Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c + # Bypass control for pcs-pma interface. EQ supplies, main master supply an + # d ps for samp c2c #(OFFSET, MASK, VALUE) (0XFD405038, 0x00000040U ,0x00000040U) */ mask_write 0XFD405038 0x00000040 0x00000040 # Register : L1_TM_ANA_BYP_12 @ 0XFD40502C

@@ -13169,7 +15286,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_12 # PSU_SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls + # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + # ble controls #(OFFSET, MASK, VALUE) (0XFD40502C, 0x00000040U ,0x00000040U) */ mask_write 0XFD40502C 0x00000040 0x00000040 # Register : L2_TM_RST_DLY @ 0XFD4099A4

@@ -13185,7 +15303,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_15 # PSU_SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - # Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c + # Bypass control for pcs-pma interface. EQ supplies, main master supply an + # d ps for samp c2c #(OFFSET, MASK, VALUE) (0XFD409038, 0x00000040U ,0x00000040U) */ mask_write 0XFD409038 0x00000040 0x00000040 # Register : L2_TM_ANA_BYP_12 @ 0XFD40902C

@@ -13193,7 +15312,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_12 # PSU_SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls + # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + # ble controls #(OFFSET, MASK, VALUE) (0XFD40902C, 0x00000040U ,0x00000040U) */ mask_write 0XFD40902C 0x00000040 0x00000040 # Register : L3_TM_RST_DLY @ 0XFD40D9A4

@@ -13209,7 +15329,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_15 # PSU_SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - # Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c + # Bypass control for pcs-pma interface. EQ supplies, main master supply an + # d ps for samp c2c #(OFFSET, MASK, VALUE) (0XFD40D038, 0x00000040U ,0x00000040U) */ mask_write 0XFD40D038 0x00000040 0x00000040 # Register : L3_TM_ANA_BYP_12 @ 0XFD40D02C

@@ -13217,18 +15338,106 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_12 # PSU_SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls + # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + # ble controls #(OFFSET, MASK, VALUE) (0XFD40D02C, 0x00000040U ,0x00000040U) */ mask_write 0XFD40D02C 0x00000040 0x00000040 + # : DISABLE FPL/FFL + # Register : L0_TM_MISC3 @ 0XFD4019AC

+ + # CDR fast phase lock control + # PSU_SERDES_L0_TM_MISC3_CDR_EN_FPL 0x0 + + # CDR fast frequency lock control + # PSU_SERDES_L0_TM_MISC3_CDR_EN_FFL 0x0 + + # debug bus selection bit, cdr fast phase and freq controls + #(OFFSET, MASK, VALUE) (0XFD4019AC, 0x00000003U ,0x00000000U) */ + mask_write 0XFD4019AC 0x00000003 0x00000000 + # Register : L1_TM_MISC3 @ 0XFD4059AC

+ + # CDR fast phase lock control + # PSU_SERDES_L1_TM_MISC3_CDR_EN_FPL 0x0 + + # CDR fast frequency lock control + # PSU_SERDES_L1_TM_MISC3_CDR_EN_FFL 0x0 + + # debug bus selection bit, cdr fast phase and freq controls + #(OFFSET, MASK, VALUE) (0XFD4059AC, 0x00000003U ,0x00000000U) */ + mask_write 0XFD4059AC 0x00000003 0x00000000 + # Register : L2_TM_MISC3 @ 0XFD4099AC

+ + # CDR fast phase lock control + # PSU_SERDES_L2_TM_MISC3_CDR_EN_FPL 0x0 + + # CDR fast frequency lock control + # PSU_SERDES_L2_TM_MISC3_CDR_EN_FFL 0x0 + + # debug bus selection bit, cdr fast phase and freq controls + #(OFFSET, MASK, VALUE) (0XFD4099AC, 0x00000003U ,0x00000000U) */ + mask_write 0XFD4099AC 0x00000003 0x00000000 + # Register : L3_TM_MISC3 @ 0XFD40D9AC

+ + # CDR fast phase lock control + # PSU_SERDES_L3_TM_MISC3_CDR_EN_FPL 0x0 + + # CDR fast frequency lock control + # PSU_SERDES_L3_TM_MISC3_CDR_EN_FFL 0x0 + + # debug bus selection bit, cdr fast phase and freq controls + #(OFFSET, MASK, VALUE) (0XFD40D9AC, 0x00000003U ,0x00000000U) */ + mask_write 0XFD40D9AC 0x00000003 0x00000000 + # : DISABLE DYNAMIC OFFSET CALIBRATION + # Register : L0_TM_EQ11 @ 0XFD401978

+ + # Force EQ offset correction algo off if not forced on + # PSU_SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + # eq dynamic offset correction + #(OFFSET, MASK, VALUE) (0XFD401978, 0x00000010U ,0x00000010U) */ + mask_write 0XFD401978 0x00000010 0x00000010 + # Register : L1_TM_EQ11 @ 0XFD405978

+ + # Force EQ offset correction algo off if not forced on + # PSU_SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + # eq dynamic offset correction + #(OFFSET, MASK, VALUE) (0XFD405978, 0x00000010U ,0x00000010U) */ + mask_write 0XFD405978 0x00000010 0x00000010 + # Register : L2_TM_EQ11 @ 0XFD409978

+ + # Force EQ offset correction algo off if not forced on + # PSU_SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + # eq dynamic offset correction + #(OFFSET, MASK, VALUE) (0XFD409978, 0x00000010U ,0x00000010U) */ + mask_write 0XFD409978 0x00000010 0x00000010 + # Register : L3_TM_EQ11 @ 0XFD40D978

+ + # Force EQ offset correction algo off if not forced on + # PSU_SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + # eq dynamic offset correction + #(OFFSET, MASK, VALUE) (0XFD40D978, 0x00000010U ,0x00000010U) */ + mask_write 0XFD40D978 0x00000010 0x00000010 + # : DISABLE ECO FOR PCIE + # Register : eco_0 @ 0XFD3D001C

+ + # For future use + # PSU_SIOU_ECO_0_FIELD 0x1 + + # ECO Register for future use + #(OFFSET, MASK, VALUE) (0XFD3D001C, 0xFFFFFFFFU ,0x00000001U) */ + mask_write 0XFD3D001C 0xFFFFFFFF 0x00000001 # : GT LANE SETTINGS # Register : ICM_CFG0 @ 0XFD410010

- # Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unuse - # , 7 - Unused + # Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, + # 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unused, 7 - Unused # PSU_SERDES_ICM_CFG0_L0_ICM_CFG 1 - # Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused - # 7 - Unused + # Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + # 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused, 7 - Unused # PSU_SERDES_ICM_CFG0_L1_ICM_CFG 4 # ICM Configuration Register 0 @@ -13236,12 +15445,12 @@ set psu_serdes_init_data { mask_write 0XFD410010 0x00000077 0x00000041 # Register : ICM_CFG1 @ 0XFD410014

- # Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused - # 7 - Unused + # Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + # 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused, 7 - Unused # PSU_SERDES_ICM_CFG1_L2_ICM_CFG 3 - # Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused - # 7 - Unused + # Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, + # 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused, 7 - Unused # PSU_SERDES_ICM_CFG1_L3_ICM_CFG 2 # ICM Configuration Register 1 @@ -13294,7 +15503,8 @@ set psu_serdes_init_data { # FFL Phase0 int gain aka 2ol SD update rate # PSU_SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN 0x6 - # Fast phase lock controls -- FSM accumulator cycle control and phase 0 int gain control. + # Fast phase lock controls -- FSM accumulator cycle control and phase 0 in + # t gain control. #(OFFSET, MASK, VALUE) (0XFD40DC14, 0x000000FFU ,0x000000E6U) */ mask_write 0XFD40DC14 0x000000FF 0x000000E6 # Register : L3_TM_CDR16 @ 0XFD40DC40

@@ -13336,7 +15546,8 @@ set psu_serdes_init_data { mask_write 0XFD404CC0 0x0000001F 0x00000000 # Register : L1_TX_ANA_TM_18 @ 0XFD404048

- # pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved + # pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + # phasis, Others: reserved # PSU_SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0 # Override for PIPE TX de-emphasis @@ -13344,7 +15555,8 @@ set psu_serdes_init_data { mask_write 0XFD404048 0x000000FF 0x00000000 # Register : L3_TX_ANA_TM_18 @ 0XFD40C048

- # pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved + # pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + # phasis, Others: reserved # PSU_SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0x1 # Override for PIPE TX de-emphasis @@ -13363,24 +15575,7 @@ set psu_resetout_init_data { # Software control register for the LPD block. #(OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000400U ,0x00000000U) */ mask_write 0XFF5E023C 0x00000400 0x00000000 - # : USB0 PIPE POWER PRESENT - # Register : fpd_power_prsnt @ 0XFF9D0080

- - # This bit is used to choose between PIPE power present and 1'b1 - # PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 - - # fpd_power_prsnt - #(OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) */ - mask_write 0XFF9D0080 0x00000001 0x00000001 - # Register : fpd_pipe_clk @ 0XFF9D007C

- - # This bit is used to choose between PIPE clock coming from SerDes and the suspend clk - # PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 - - # fpd_pipe_clk - #(OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) */ - mask_write 0XFF9D007C 0x00000001 0x00000000 - # : + # : HIBERREST # Register : RST_LPD_TOP @ 0XFF5E023C

# USB 0 sleep circuit reset @@ -13407,7 +15602,8 @@ set psu_resetout_init_data { # Sata PM clock control select # PSU_SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL 0x3 - # Misc Contorls for SATA.This register may only be modified during bootup (while SATA block is disabled) + # Misc Contorls for SATA.This register may only be modified during bootup + # (while SATA block is disabled) #(OFFSET, MASK, VALUE) (0XFD3D0100, 0x00000003U ,0x00000003U) */ mask_write 0XFD3D0100 0x00000003 0x00000003 # Register : RST_FPD_TOP @ 0XFD1A0100

@@ -13449,8 +15645,9 @@ set psu_resetout_init_data { mask_write 0XFD4A0200 0x00000002 0x00000000 # Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

- # Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - # ane0 Bits [3:2] - lane 1 + # Two bits per lane. When set to 11, moves the GT to power down mode. When + # set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + # lane 1 # PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0X0 # Control PHY Power down @@ -13459,96 +15656,194 @@ set psu_resetout_init_data { # : USB0 GFLADJ # Register : GUSB2PHYCFG @ 0XFE20C200

- # USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to - # he Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). The following are the required values for the minimum S - # C bus frequency of 60 MHz. USB turnaround time is a critical certification criteria when using long cables and five hub level - # . The required values for this field: - 4'h5: When the MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit - # UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround time is not critical, this field can be set to a larger - # alue. Note: This field is valid only in device mode. + # USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY cloc + # ks. Specifies the response time for a MAC request to the Packet FIFO Con + # troller (PFC) to fetch data from the DFIFO (SPRAM). The following are th + # e required values for the minimum SoC bus frequency of 60 MHz. USB turna + # round time is a critical certification criteria when using long cables a + # nd five hub levels. The required values for this field: - 4'h5: When the + # MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit + # UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround tim + # e is not critical, this field can be set to a larger value. Note: This f + # ield is valid only in device mode. # PSU_USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM 0x9 - # Transceiver Delay: Enables a delay between the assertion of the UTMI/ULPI Transceiver Select signal (for HS) and the assertio - # of the TxValid signal during a HS Chirp. When this bit is set to 1, a delay (of approximately 2.5 us) is introduced from the - # time when the Transceiver Select is set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the chirp-K. This de - # ay is required for some UTMI/ULPI PHYs. Note: - If you enable the hibernation feature when the device core comes out of power - # off, you must re-initialize this bit with the appropriate value because the core does not save and restore this bit value dur - # ng hibernation. - This bit is valid only in device mode. + # Transceiver Delay: Enables a delay between the assertion of the UTMI/ULP + # I Transceiver Select signal (for HS) and the assertion of the TxValid si + # gnal during a HS Chirp. When this bit is set to 1, a delay (of approxima + # tely 2.5 us) is introduced from the time when the Transceiver Select is + # set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the + # chirp-K. This delay is required for some UTMI/ULPI PHYs. Note: - If you + # enable the hibernation feature when the device core comes out of power- + # off, you must re-initialize this bit with the appropriate value because + # the core does not save and restore this bit value during hibernation. - + # This bit is valid only in device mode. # PSU_USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY 0x0 - # Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application uses this bit to control utmi_sleep_n and utmi_l1_suspen - # _n assertion to the PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is not transferre - # to the external PHY. - 1'b1: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is transferred to the external PHY. - # ote: This bit must be set high for Port0 if PHY is used. Note: In Device mode - Before issuing any device endpoint command wh - # n operating in 2.0 speeds, disable this bit and enable it after the command completes. Without disabling this bit, if a comma - # d is issued when the device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get complet - # d. + # Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application use + # s this bit to control utmi_sleep_n and utmi_l1_suspend_n assertion to th + # e PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assert + # ion from the core is not transferred to the external PHY. - 1'b1: utmi_s + # leep_n and utmi_l1_suspend_n assertion from the core is transferred to t + # he external PHY. Note: This bit must be set high for Port0 if PHY is use + # d. Note: In Device mode - Before issuing any device endpoint command whe + # n operating in 2.0 speeds, disable this bit and enable it after the comm + # and completes. Without disabling this bit, if a command is issued when t + # he device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated of + # f, the command will not get completed. # PSU_USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM 0x0 - # USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select The application uses this bit to select a high-speed P - # Y or a full-speed transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is always 0, with Write Only access. - - # 'b1: USB 1.1 full-speed serial transceiver. This bit is always 1, with Write Only access. If both interface types are selecte - # in coreConsultant (that is, parameters' values are not zero), the application uses this bit to select the active interface i - # active, with Read-Write bit access. Note: USB 1.1 full-serial transceiver is not supported. This bit always reads as 1'b0. + # USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select T + # he application uses this bit to select a high-speed PHY or a full-speed + # transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is a + # lways 0, with Write Only access. - 1'b1: USB 1.1 full-speed serial trans + # ceiver. This bit is always 1, with Write Only access. If both interface + # types are selected in coreConsultant (that is, parameters' values are no + # t zero), the application uses this bit to select the active interface is + # active, with Read-Write bit access. Note: USB 1.1 full-serial transceiv + # er is not supported. This bit always reads as 1'b0. # PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYSEL 0x0 - # Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select a unidirectional or bidirectional USB 1.1 - # full-speed serial transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial interface. This bit is set to 0 with - # ead Only access. - 1'b1: 3-pin bidirectional full-speed serial interface. This bit is set to 0 with Read Only access. Note: U - # B 1.1 full-speed serial interface is not supported. This bit always reads as 1'b0. + # Suspend USB2.0 HS/FS/LS PHY (SusPHY) When set, USB2.0 PHY enters Suspend + # mode if Suspend conditions are valid. For DRD/OTG configurations, it is + # recommended that this bit is set to 0 during coreConsultant configurati + # on. If it is set to 1, then the application must clear this bit after po + # wer-on reset. Application needs to set it to 1 after the core initializa + # tion completes. For all other configurations, this bit can be set to 1 d + # uring core configuration. Note: - In host mode, on reset, this bit is se + # t to 1. Software can override this bit after reset. - In device mode, be + # fore issuing any device endpoint command when operating in 2.0 speeds, d + # isable this bit and enable it after the command completes. If you issue + # a command without disabling this bit when the device is in L2 state and + # if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get c + # ompleted. + # PSU_USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20 0x1 + + # Full-Speed Serial Interface Select (FSIntf) The application uses this bi + # t to select a unidirectional or bidirectional USB 1.1 full-speed serial + # transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial in + # terface. This bit is set to 0 with Read Only access. - 1'b1: 3-pin bidir + # ectional full-speed serial interface. This bit is set to 0 with Read Onl + # y access. Note: USB 1.1 full-speed serial interface is not supported. Th + # is bit always reads as 1'b0. # PSU_USB3_0_XHCI_GUSB2PHYCFG_FSINTF 0x0 - # ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interfa - # e - 1'b1: ULPI Interface This bit is writable only if UTMI+ and ULPI is specified for High-Speed PHY Interface(s) in coreCons - # ltant configuration (DWC_USB3_HSPHY_INTERFACE = 3). Otherwise, this bit is read-only and the value depends on the interface s - # lected through DWC_USB3_HSPHY_INTERFACE. + # ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to se + # lect a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interface - 1'b1: ULPI Int + # erface This bit is writable only if UTMI+ and ULPI is specified for High + # -Speed PHY Interface(s) in coreConsultant configuration (DWC_USB3_HSPHY_ + # INTERFACE = 3). Otherwise, this bit is read-only and the value depends o + # n the interface selected through DWC_USB3_HSPHY_INTERFACE. # PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL 0x1 - # PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bit to configure the core to support a UTMI+ PHY with a - # 8- or 16-bit interface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the enabled 2.0 ports must have the same - # lock frequency as Port0 clock frequency (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used together for differen - # ports at the same time (that is, all the ports must be in 8-bit mode, or all of them must be in 16-bit mode, at a time). - I - # any of the USB 2.0 ports is selected as ULPI port for operation, then all the USB 2.0 ports must be operating at 60 MHz. + # PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bi + # t to configure the core to support a UTMI+ PHY with an 8- or 16-bit inte + # rface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the en + # abled 2.0 ports must have the same clock frequency as Port0 clock freque + # ncy (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used toge + # ther for different ports at the same time (that is, all the ports must b + # e in 8-bit mode, or all of them must be in 16-bit mode, at a time). - If + # any of the USB 2.0 ports is selected as ULPI port for operation, then a + # ll the USB 2.0 ports must be operating at 60 MHz. # PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYIF 0x0 - # HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicated by the application in this field, is multiplied by - # a bit-time factor; this factor is added to the high-speed/full-speed interpacket timeout duration in the core to account for - # dditional delays introduced by the PHY. This may be required, since the delay introduced by the PHY in generating the linesta - # e condition may vary among PHYs. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. - # The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this - # ield based on the speed of connection. The number of bit times added per PHY clock are: High-speed operation: - One 30-MHz PH - # clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One - # 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times + # HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicat + # ed by the application in this field, is multiplied by a bit-time factor; + # this factor is added to the high-speed/full-speed interpacket timeout d + # uration in the core to account for additional delays introduced by the P + # HY. This may be required, since the delay introduced by the PHY in gener + # ating the linestate condition may vary among PHYs. The USB standard time + # out value for high-speed operation is 736 to 816 (inclusive) bit times. + # The USB standard timeout value for full-speed operation is 16 to 18 (inc + # lusive) bit times. The application must program this field based on the + # speed of connection. The number of bit times added per PHY clock are: Hi + # gh-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz P + # HY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0. + # 4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY cloc + # k = 0.25 bit times # PSU_USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL 0x7 - # Global USB2 PHY Configuration Register The application must program this register before starting any transactions on either - # he SoC bus or the USB. In Device-only configurations, only one register is needed. In Host mode, per-port registers are imple - # ented. - #(OFFSET, MASK, VALUE) (0XFE20C200, 0x00003FBFU ,0x00002417U) */ - mask_write 0XFE20C200 0x00003FBF 0x00002417 + # ULPI External VBUS Drive (ULPIExtVbusDrv) Selects supply source to drive + # 5V on VBUS, in the ULPI PHY. - 1'b0: PHY drives VBUS with internal char + # ge pump (default). - 1'b1: PHY drives VBUS with an external supply. (Onl + # y when RTL parameter DWC_USB3_HSPHY_INTERFACE = 2 or 3) + # PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV 0x1 + + # Global USB2 PHY Configuration Register The application must program this + # register before starting any transactions on either the SoC bus or the + # USB. In Device-only configurations, only one register is needed. In Host + # mode, per-port registers are implemented. + #(OFFSET, MASK, VALUE) (0XFE20C200, 0x00023FFFU ,0x00022457U) */ + mask_write 0XFE20C200 0x00023FFF 0x00022457 # Register : GFLADJ @ 0XFE20C630

- # This field indicates the frame length adjustment to be applied when SOF/ITP counter is running on the ref_clk. This register - # alue is used to adjust the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP interval when GLADJ.GFLADJ_REFCLK_LP - # _SEL is set to '1'. This field must be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set to '1' or GCTL.SOF - # TPSYNC is set to '1'. The value is derived as follows: FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_p - # riod)) * ref_clk_period where - the ref_clk_period_integer is the integer value of the ref_clk period got by truncating the d - # cimal (fractional) value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_clk_period is the ref_clk period inc - # uding the fractional value. Examples: If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLADJ_REFCLK_FLADJ = - # ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignoring the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_P - # RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*20.8333 = 5208 (ignoring the fractional value) + # This field indicates the frame length adjustment to be applied when SOF/ + # ITP counter is running on the ref_clk. This register value is used to ad + # just the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP i + # nterval when GLADJ.GFLADJ_REFCLK_LPM_SEL is set to '1'. This field must + # be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set t + # o '1' or GCTL.SOFITPSYNC is set to '1'. The value is derived as follows: + # FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_pe + # riod)) * ref_clk_period where - the ref_clk_period_integer is the intege + # r value of the ref_clk period got by truncating the decimal (fractional) + # value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_c + # lk_period is the ref_clk period including the fractional value. Examples + # : If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLA + # DJ_REFCLK_FLADJ = ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignorin + # g the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_PE + # RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*2 + # 0.8333 = 5208 (ignoring the fractional value) # PSU_USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ 0x0 - # Global Frame Length Adjustment Register This register provides options for the software to control the core behavior with res - # ect to SOF (Start of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer functionality. It provides an optio - # to override the fladj_30mhz_reg sideband signal. In addition, it enables running SOF or ITP frame timer counters completely - # rom the ref_clk. This facilitates hardware LPM in host mode with the SOF or ITP counters being run from the ref_clk signal. + # Global Frame Length Adjustment Register This register provides options f + # or the software to control the core behavior with respect to SOF (Start + # of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer + # functionality. It provides an option to override the fladj_30mhz_reg sid + # eband signal. In addition, it enables running SOF or ITP frame timer cou + # nters completely from the ref_clk. This facilitates hardware LPM in host + # mode with the SOF or ITP counters being run from the ref_clk signal. #(OFFSET, MASK, VALUE) (0XFE20C630, 0x003FFF00U ,0x00000000U) */ mask_write 0XFE20C630 0x003FFF00 0x00000000 + # Register : GUCTL1 @ 0XFE20C11C

+ + # When this bit is set to '0', termsel, xcvrsel will become 0 during end o + # f resume while the opmode will become 0 once controller completes end of + # resume and enters U0 state (2 separate commandswill be issued). When th + # is bit is set to '1', all the termsel, xcvrsel, opmode becomes 0 during + # end of resume itself (only 1 command will be issued) + # PSU_USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY 0x1 + + # Reserved + # PSU_USB3_0_XHCI_GUCTL1_RESERVED_9 0x1 + + # Global User Control Register 1 + #(OFFSET, MASK, VALUE) (0XFE20C11C, 0x00000600U ,0x00000600U) */ + mask_write 0XFE20C11C 0x00000600 0x00000600 + # Register : GUCTL @ 0XFE20C12C

+ + # Host IN Auto Retry (USBHstInAutoRetryEn) When set, this field enables th + # e Auto Retry feature. For IN transfers (non-isochronous) that encounter + # data packets with CRC errors or internal overrun scenarios, the auto ret + # ry feature causes the Host core to reply to the device with a non-termin + # ating retry ACK (that is, an ACK transaction packet with Retry = 1 and N + # umP != 0). If the Auto Retry feature is disabled (default), the core wil + # l respond with a terminating retry ACK (that is, an ACK transaction pack + # et with Retry = 1 and NumP = 0). - 1'b0: Auto Retry Disabled - 1'b1: Aut + # o Retry Enabled Note: This bit is also applicable to the device mode. + # PSU_USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN 0x1 + + # Global User Control Register: This register provides a few options for t + # he software to control the core behavior in the Host mode. Most of the o + # ptions are used to improve host inter-operability with different devices + # . + #(OFFSET, MASK, VALUE) (0XFE20C12C, 0x00004000U ,0x00004000U) */ + mask_write 0XFE20C12C 0x00004000 0x00004000 # : UPDATING TWO PCIE REGISTERS DEFAULT VALUES, AS THESE REGISTERS HAVE INCORRECT RESET VALUES IN SILICON. # Register : ATTR_25 @ 0XFD480064

- # If TRUE Completion Timeout Disable is supported. This is required to be TRUE for Endpoint and either setting allowed for Root - # ports. Drives Device Capability 2 [4]; EP=0x0001; RP=0x0001 + # If TRUE Completion Timeout Disable is supported. This is required to be + # TRUE for Endpoint and either setting allowed for Root ports. Drives Devi + # ce Capability 2 [4]; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED 0X1 # ATTR_25 @@ -13557,12 +15852,16 @@ set psu_resetout_init_data { # : PCIE SETTINGS # Register : ATTR_7 @ 0XFD48001C

- # Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - # ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - # Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - # erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - # set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - # re size in bytes.; EP=0x0004; RP=0x0000 + # Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + # to be implemented, set to 32'h00000000. Bits are defined as follows: Me + # mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + # 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + # for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + # here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + # n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + # set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + # AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + # EP=0x0004; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_7_ATTR_BAR0 0x0 # ATTR_7 @@ -13570,12 +15869,16 @@ set psu_resetout_init_data { mask_write 0XFD48001C 0x0000FFFF 0x00000000 # Register : ATTR_8 @ 0XFD480020

- # Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - # ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - # Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - # erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - # set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - # re size in bytes.; EP=0xFFF0; RP=0x0000 + # Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + # to be implemented, set to 32'h00000000. Bits are defined as follows: Me + # mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + # 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + # for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + # here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + # n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + # set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + # AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + # EP=0xFFF0; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_8_ATTR_BAR0 0x0 # ATTR_8 @@ -13583,13 +15886,18 @@ set psu_resetout_init_data { mask_write 0XFD480020 0x0000FFFF 0x00000000 # Register : ATTR_9 @ 0XFD480024

- # Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - # AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - # bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - # o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - # 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - # '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - # ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + # Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + # 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + # R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + # ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + # ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + # e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + # [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + # 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + # in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + # o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + # to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + # o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_9_ATTR_BAR1 0x0 # ATTR_9 @@ -13597,13 +15905,18 @@ set psu_resetout_init_data { mask_write 0XFD480024 0x0000FFFF 0x00000000 # Register : ATTR_10 @ 0XFD480028

- # Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - # AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - # bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - # o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - # 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - # '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - # ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + # Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + # 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + # R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + # ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + # ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + # e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + # [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + # 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + # in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + # o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + # to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + # o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_10_ATTR_BAR1 0x0 # ATTR_10 @@ -13611,14 +15924,20 @@ set psu_resetout_init_data { mask_write 0XFD480028 0x0000FFFF 0x00000000 # Register : ATTR_11 @ 0XFD48002C

- # For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - # AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - # , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - # most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - # . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - # ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFFF + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + # R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR1 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + # F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + # pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + # ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + # 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + # 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + # or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + # of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + # es.; EP=0x0004; RP=0xFFFF # PSU_PCIE_ATTRIB_ATTR_11_ATTR_BAR2 0xFFFF # ATTR_11 @@ -13626,14 +15945,20 @@ set psu_resetout_init_data { mask_write 0XFD48002C 0x0000FFFF 0x0000FFFF # Register : ATTR_12 @ 0XFD480030

- # For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - # AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - # , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - # most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - # . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - # ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0x00FF + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + # R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR1 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + # F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + # pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + # ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + # 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + # 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + # or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + # of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + # es.; EP=0xFFF0; RP=0x00FF # PSU_PCIE_ATTRIB_ATTR_12_ATTR_BAR2 0xFF # ATTR_12 @@ -13641,15 +15966,22 @@ set psu_resetout_init_data { mask_write 0XFD480030 0x0000FFFF 0x000000FF # Register : ATTR_13 @ 0XFD480034

- # For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - # AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - # Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - # t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - # t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - # if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - # f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - # bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + # R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR2 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + # 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + # egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + # t decode For an endpoint, bits are defined as follows: Memory Space BAR + # (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + # pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + # 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + # ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + # ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + # ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + # bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + # in bytes.; EP=0xFFFF; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_13_ATTR_BAR3 0x0 # ATTR_13 @@ -13657,15 +15989,22 @@ set psu_resetout_init_data { mask_write 0XFD480034 0x0000FFFF 0x00000000 # Register : ATTR_14 @ 0XFD480038

- # For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - # AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - # Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - # t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - # t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - # if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - # f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - # bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFFF + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + # R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR2 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + # 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + # egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + # t decode For an endpoint, bits are defined as follows: Memory Space BAR + # (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + # pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + # 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + # ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + # ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + # ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + # bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + # in bytes.; EP=0xFFFF; RP=0xFFFF # PSU_PCIE_ATTRIB_ATTR_14_ATTR_BAR3 0xFFFF # ATTR_14 @@ -13673,14 +16012,20 @@ set psu_resetout_init_data { mask_write 0XFD480038 0x0000FFFF 0x0000FFFF # Register : ATTR_15 @ 0XFD48003C

- # For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - # AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - # , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - # most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - # . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - # ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFF0 + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + # R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR3 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + # 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + # pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + # ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + # 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + # 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + # or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + # of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + # es.; EP=0x0004; RP=0xFFF0 # PSU_PCIE_ATTRIB_ATTR_15_ATTR_BAR4 0xFFF0 # ATTR_15 @@ -13688,14 +16033,20 @@ set psu_resetout_init_data { mask_write 0XFD48003C 0x0000FFFF 0x0000FFF0 # Register : ATTR_16 @ 0XFD480040

- # For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - # AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - # , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - # most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - # . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - # ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0xFFF0 + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + # R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR3 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + # 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + # pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + # ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + # 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + # 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + # or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + # of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + # es.; EP=0xFFF0; RP=0xFFF0 # PSU_PCIE_ATTRIB_ATTR_16_ATTR_BAR4 0xFFF0 # ATTR_16 @@ -13703,15 +16054,22 @@ set psu_resetout_init_data { mask_write 0XFD480040 0x0000FFFF 0x0000FFF0 # Register : ATTR_17 @ 0XFD480044

- # For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - # AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - # Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - # refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - # R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - # refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - # ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - # permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + # R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR4 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + # 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + # = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + # refetchable Memory Limit/Base implemented For an endpoint, bits are defi + # ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + # e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + # lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + # or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + # aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + # [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + # permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + # ; RP=0xFFF1 # PSU_PCIE_ATTRIB_ATTR_17_ATTR_BAR5 0xFFF1 # ATTR_17 @@ -13719,15 +16077,22 @@ set psu_resetout_init_data { mask_write 0XFD480044 0x0000FFFF 0x0000FFF1 # Register : ATTR_18 @ 0XFD480048

- # For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - # AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - # Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - # refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - # R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - # refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - # ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - # permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + # R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR4 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + # 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + # = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + # refetchable Memory Limit/Base implemented For an endpoint, bits are defi + # ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + # e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + # lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + # or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + # aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + # [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + # permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + # ; RP=0xFFF1 # PSU_PCIE_ATTRIB_ATTR_18_ATTR_BAR5 0xFFF1 # ATTR_18 @@ -13735,13 +16100,17 @@ set psu_resetout_init_data { mask_write 0XFD480048 0x0000FFFF 0x0000FFF1 # Register : ATTR_27 @ 0XFD48006C

- # Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1- 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred - # to the Device Capabilities register. The values: 4-2048 bytes, 5- 4096 bytes are not supported; EP=0x0001; RP=0x0001 + # Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1 + # - 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred to the Device Capa + # bilities register. The values: 4-2048 bytes, 5- 4096 bytes are not suppo + # rted; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED 1 - # Endpoint L1 Acceptable Latency. Records the latency that the endpoint can withstand on transitions from L1 state to L0 (if L1 - # state supported). Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to 8us, 4h 8 to 16us, 5h 16 to 32us, 6 - # 32 to 64us, 7h more than 64us. For Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 + # Endpoint L1 Acceptable Latency. Records the latency that the endpoint ca + # n withstand on transitions from L1 state to L0 (if L1 state supported). + # Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to + # 8us, 4h 8 to 16us, 5h 16 to 32us, 6h 32 to 64us, 7h more than 64us. For + # Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY 0x0 # ATTR_27 @@ -13749,14 +16118,18 @@ set psu_resetout_init_data { mask_write 0XFD48006C 0x00000738 0x00000100 # Register : ATTR_50 @ 0XFD4800C8

- # Identifies the type of device/port as follows: 0000b PCI Express Endpoint device, 0001b Legacy PCI Express Endpoint device, 0 - # 00b Root Port of PCI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110b Downstream Port of PCI Express Sw - # tch, 0111b PCIE Express to PCI/PCI-X Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Express Capabilities r - # gister. Must be consistent with IS_SWITCH and UPSTREAM_FACING settings.; EP=0x0000; RP=0x0004 + # Identifies the type of device/port as follows: 0000b PCI Express Endpoin + # t device, 0001b Legacy PCI Express Endpoint device, 0100b Root Port of P + # CI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110 + # b Downstream Port of PCI Express Switch, 0111b PCIE Express to PCI/PCI-X + # Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Expre + # ss Capabilities register. Must be consistent with IS_SWITCH and UPSTREAM + # _FACING settings.; EP=0x0000; RP=0x0004 # PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE 4 - # PCIe Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capab - # lity.; EP=0x009C; RP=0x0000 + # PCIe Capability's Next Capability Offset pointer to the next item in the + # capabilities list, or 00h if this is the final capability.; EP=0x009C; + # RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR 0 # ATTR_50 @@ -13764,8 +16137,9 @@ set psu_resetout_init_data { mask_write 0XFD4800C8 0x0000FFF0 0x00000040 # Register : ATTR_105 @ 0XFD4801A4

- # Number of credits that should be advertised for Completion data received on Virtual Channel 0. The bytes advertised must be l - # ss than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD + # Number of credits that should be advertised for Completion data received + # on Virtual Channel 0. The bytes advertised must be less than or equal t + # o the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD # PSU_PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD 0xCD # ATTR_105 @@ -13773,13 +16147,16 @@ set psu_resetout_init_data { mask_write 0XFD4801A4 0x000007FF 0x000000CD # Register : ATTR_106 @ 0XFD4801A8

- # Number of credits that should be advertised for Completion headers received on Virtual Channel 0. The sum of the posted, non - # osted, and completion header credits must be <= 80; EP=0x0048; RP=0x0024 + # Number of credits that should be advertised for Completion headers recei + # ved on Virtual Channel 0. The sum of the posted, non posted, and complet + # ion header credits must be <= 80; EP=0x0048; RP=0x0024 # PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH 0x24 - # Number of credits that should be advertised for Non-Posted headers received on Virtual Channel 0. The number of non posted da - # a credits advertised by the block is equal to the number of non posted header credits. The sum of the posted, non posted, and - # completion header credits must be <= 80; EP=0x0004; RP=0x000C + # Number of credits that should be advertised for Non-Posted headers recei + # ved on Virtual Channel 0. The number of non posted data credits advertis + # ed by the block is equal to the number of non posted header credits. The + # sum of the posted, non posted, and completion header credits must be <= + # 80; EP=0x0004; RP=0x000C # PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH 0xC # ATTR_106 @@ -13787,10 +16164,13 @@ set psu_resetout_init_data { mask_write 0XFD4801A8 0x00003FFF 0x00000624 # Register : ATTR_107 @ 0XFD4801AC

- # Number of credits that should be advertised for Non-Posted data received on Virtual Channel 0. The number of non posted data - # redits advertised by the block is equal to two times the number of non posted header credits if atomic operations are support - # d or is equal to the number of non posted header credits if atomic operations are not supported. The bytes advertised must be - # less than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 + # Number of credits that should be advertised for Non-Posted data received + # on Virtual Channel 0. The number of non posted data credits advertised + # by the block is equal to two times the number of non posted header credi + # ts if atomic operations are supported or is equal to the number of non p + # osted header credits if atomic operations are not supported. The bytes a + # dvertised must be less than or equal to the bram bytes available. See VC + # 0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 # PSU_PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD 0x18 # ATTR_107 @@ -13798,8 +16178,9 @@ set psu_resetout_init_data { mask_write 0XFD4801AC 0x000007FF 0x00000018 # Register : ATTR_108 @ 0XFD4801B0

- # Number of credits that should be advertised for Posted data received on Virtual Channel 0. The bytes advertised must be less - # han or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 + # Number of credits that should be advertised for Posted data received on + # Virtual Channel 0. The bytes advertised must be less than or equal to th + # e bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 # PSU_PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD 0xB5 # ATTR_108 @@ -13807,23 +16188,27 @@ set psu_resetout_init_data { mask_write 0XFD4801B0 0x000007FF 0x000000B5 # Register : ATTR_109 @ 0XFD4801B4

- # Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x00 - # 0 + # Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_ + # n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV 0x0 - # Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim TRUE == trim.; EP=0x0001; RP=0x0001 + # Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim + # TRUE == trim.; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM 0x1 - # Enables ECRC check on received TLP's 0 == don't check 1 == always check 3 == check if enabled by ECRC check enable bit of AER - # cap structure; EP=0x0003; RP=0x0003 + # Enables ECRC check on received TLP's 0 == don't check 1 == always check + # 3 == check if enabled by ECRC check enable bit of AER cap structure; EP= + # 0x0003; RP=0x0003 # PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK 0x3 - # Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). Calculated from max payload size supported and the n - # mber of brams configured for transmit; EP=0x001C; RP=0x001C + # Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). + # Calculated from max payload size supported and the number of brams conf + # igured for transmit; EP=0x001C; RP=0x001C # PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET 0x1c - # Number of credits that should be advertised for Posted headers received on Virtual Channel 0. The sum of the posted, non post - # d, and completion header credits must be <= 80; EP=0x0004; RP=0x0020 + # Number of credits that should be advertised for Posted headers received + # on Virtual Channel 0. The sum of the posted, non posted, and completion + # header credits must be <= 80; EP=0x0004; RP=0x0020 # PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH 0x20 # ATTR_109 @@ -13831,8 +16216,10 @@ set psu_resetout_init_data { mask_write 0XFD4801B4 0x0000FFFF 0x00007E20 # Register : ATTR_34 @ 0XFD480088

- # Specifies values to be transferred to Header Type register. Bit 7 should be set to '0' indicating single-function device. Bit - # 0 identifies header as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; RP=0x0001 + # Specifies values to be transferred to Header Type register. Bit 7 should + # be set to '0' indicating single-function device. Bit 0 identifies heade + # r as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; + # RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE 0x1 # ATTR_34 @@ -13840,8 +16227,9 @@ set psu_resetout_init_data { mask_write 0XFD480088 0x000000FF 0x00000001 # Register : ATTR_53 @ 0XFD4800D4

- # PM Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabil - # ty.; EP=0x0048; RP=0x0060 + # PM Capability's Next Capability Offset pointer to the next item in the c + # apabilities list, or 00h if this is the final capability.; EP=0x0048; RP + # =0x0060 # PSU_PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR 0x60 # ATTR_53 @@ -13849,20 +16237,24 @@ set psu_resetout_init_data { mask_write 0XFD4800D4 0x000000FF 0x00000060 # Register : ATTR_41 @ 0XFD4800A4

- # MSI Per-Vector Masking Capable. The value is transferred to the MSI Control Register[8]. When set, adds Mask and Pending Dwor - # to Cap structure; EP=0x0000; RP=0x0000 + # MSI Per-Vector Masking Capable. The value is transferred to the MSI Cont + # rol Register[8]. When set, adds Mask and Pending Dword to Cap structure; + # EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE 0x0 - # Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - # he management port.; EP=0x0001; RP=0x0000 + # Indicates that the MSI structures exists. If this is FALSE, then the MSI + # structure cannot be accessed via either the link or the management port + # .; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 - # MSI Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabi - # ity.; EP=0x0060; RP=0x0000 + # MSI Capability's Next Capability Offset pointer to the next item in the + # capabilities list, or 00h if this is the final capability.; EP=0x0060; R + # P=0x0000 # PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR 0x0 - # Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - # he management port.; EP=0x0001; RP=0x0000 + # Indicates that the MSI structures exists. If this is FALSE, then the MSI + # structure cannot be accessed via either the link or the management port + # .; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 # ATTR_41 @@ -13870,11 +16262,12 @@ set psu_resetout_init_data { mask_write 0XFD4800A4 0x000003FF 0x00000000 # Register : ATTR_97 @ 0XFD480184

- # Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b x4, 001000b x8.; EP=0x0004; RP=0x0004 + # Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b + # x4, 001000b x8.; EP=0x0004; RP=0x0004 # PSU_PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH 0x1 - # Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x00 - # 4; RP=0x0004 + # Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1 + # ], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x0004; RP=0x0004 # PSU_PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH 0x1 # ATTR_97 @@ -13882,7 +16275,8 @@ set psu_resetout_init_data { mask_write 0XFD480184 0x00000FFF 0x00000041 # Register : ATTR_100 @ 0XFD480190

- # TRUE specifies upstream-facing port. FALSE specifies downstream-facing port.; EP=0x0001; RP=0x0000 + # TRUE specifies upstream-facing port. FALSE specifies downstream-facing p + # ort.; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING 0x0 # ATTR_100 @@ -13890,13 +16284,16 @@ set psu_resetout_init_data { mask_write 0XFD480190 0x00000040 0x00000000 # Register : ATTR_101 @ 0XFD480194

- # Enable the routing of message TLPs to the user through the TRN RX interface. A bit value of 1 enables routing of the message - # LP to the user. Messages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 - ERR NONFATAL, Bit 2 - ERR FATAL, - # Bit 3 - INTA Bit 4 - INTB, Bit 5 - INTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit 10 PME_Turn_Off; - # EP=0x0000; RP=0x07FF + # Enable the routing of message TLPs to the user through the TRN RX interf + # ace. A bit value of 1 enables routing of the message TLP to the user. Me + # ssages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 + # - ERR NONFATAL, Bit 2 - ERR FATAL, Bit 3 - INTA Bit 4 - INTB, Bit 5 - I + # NTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit + # 10 PME_Turn_Off; EP=0x0000; RP=0x07FF # PSU_PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE 0x7FF - # Disable BAR filtering. Does not change the behavior of the bar hit outputs; EP=0x0000; RP=0x0001 + # Disable BAR filtering. Does not change the behavior of the bar hit outpu + # ts; EP=0x0000; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING 0x1 # ATTR_101 @@ -13904,12 +16301,14 @@ set psu_resetout_init_data { mask_write 0XFD480194 0x0000FFE2 0x0000FFE2 # Register : ATTR_37 @ 0XFD480094

- # Link Bandwidth notification capability. Indicates support for the link bandwidth notification status and interrupt mechanism. - # Required for Root.; EP=0x0000; RP=0x0001 + # Link Bandwidth notification capability. Indicates support for the link b + # andwidth notification status and interrupt mechanism. Required for Root. + # ; EP=0x0000; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP 0x1 - # Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Optionality ECN. Transferred to the Link Capabilities r - # gister.; EP=0x0001; RP=0x0001 + # Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Op + # tionality ECN. Transferred to the Link Capabilities register.; EP=0x0001 + # ; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY 0x1 # ATTR_37 @@ -13917,13 +16316,16 @@ set psu_resetout_init_data { mask_write 0XFD480094 0x00004200 0x00004200 # Register : ATTR_93 @ 0XFD480174

- # Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value (or combined with the built-in value, depending on L - # _REPLAY_TIMEOUT_FUNC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 + # Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value + # (or combined with the built-in value, depending on LL_REPLAY_TIMEOUT_FU + # NC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN 0x1 - # Sets a user-defined timeout for the Replay Timer to force cause the retransmission of unacknowledged TLPs; refer to LL_REPLAY - # TIMEOUT_EN and LL_REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this attribute is in symbol times, which is - # 4ns at GEN1 speeds and 2ns at GEN2.; EP=0x0000; RP=0x0000 + # Sets a user-defined timeout for the Replay Timer to force cause the retr + # ansmission of unacknowledged TLPs; refer to LL_REPLAY_TIMEOUT_EN and LL_ + # REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this att + # ribute is in symbol times, which is 4ns at GEN1 speeds and 2ns at GEN2.; + # EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT 0x1000 # ATTR_93 @@ -13961,8 +16363,8 @@ set psu_resetout_init_data { mask_write 0XFD480208 0x000000FF 0x00000000 # Register : ATTR_24 @ 0XFD480060

- # Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - # 8000; RP=0x8000 + # Code identifying basic function, subclass and applicable programming int + # erface. Transferred to the Class Code register.; EP=0x8000; RP=0x8000 # PSU_PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE 0x400 # ATTR_24 @@ -13970,11 +16372,12 @@ set psu_resetout_init_data { mask_write 0XFD480060 0x0000FFFF 0x00000400 # Register : ATTR_25 @ 0XFD480064

- # Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - # 0005; RP=0x0006 + # Code identifying basic function, subclass and applicable programming int + # erface. Transferred to the Class Code register.; EP=0x0005; RP=0x0006 # PSU_PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE 0x6 - # INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] to be hardwired to 0.; EP=0x0001; RP=0x0001 + # INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] + # to be hardwired to 0.; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED 0 # ATTR_25 @@ -13982,14 +16385,18 @@ set psu_resetout_init_data { mask_write 0XFD480064 0x000001FF 0x00000006 # Register : ATTR_4 @ 0XFD480010

- # Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - # he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - # ges are sent if an error is detected).; EP=0x0001; RP=0x0001 + # Indicates that the AER structures exists. If this is FALSE, then the AER + # structure cannot be accessed via either the link or the management port + # , and AER will be considered to not be present for error management task + # s (such as what types of error messages are sent if an error is detected + # ).; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 - # Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - # he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - # ges are sent if an error is detected).; EP=0x0001; RP=0x0001 + # Indicates that the AER structures exists. If this is FALSE, then the AER + # structure cannot be accessed via either the link or the management port + # , and AER will be considered to not be present for error management task + # s (such as what types of error messages are sent if an error is detected + # ).; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 # ATTR_4 @@ -13997,8 +16404,8 @@ set psu_resetout_init_data { mask_write 0XFD480010 0x00001000 0x00000000 # Register : ATTR_89 @ 0XFD480164

- # VSEC's Next Capability Offset pointer to the next item in the capabilities list, or 000h if this is the final capability.; EP - # 0x0140; RP=0x0140 + # VSEC's Next Capability Offset pointer to the next item in the capabiliti + # es list, or 000h if this is the final capability.; EP=0x0140; RP=0x0140 # PSU_PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR 0 # ATTR_89 @@ -14006,7 +16413,8 @@ set psu_resetout_init_data { mask_write 0XFD480164 0x00001FFE 0x00000000 # Register : ATTR_79 @ 0XFD48013C

- # CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the Root Capabilities register.; EP=0x0000; RP=0x0000 + # CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the + # Root Capabilities register.; EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY 1 # ATTR_79 @@ -14014,8 +16422,9 @@ set psu_resetout_init_data { mask_write 0XFD48013C 0x00000020 0x00000020 # Register : ATTR_43 @ 0XFD4800AC

- # Indicates that the MSIX structures exists. If this is FALSE, then the MSIX structure cannot be accessed via either the link o - # the management port.; EP=0x0001; RP=0x0000 + # Indicates that the MSIX structures exists. If this is FALSE, then the MS + # IX structure cannot be accessed via either the link or the management po + # rt.; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON 0 # ATTR_43 @@ -14023,8 +16432,10 @@ set psu_resetout_init_data { mask_write 0XFD4800AC 0x00000100 0x00000000 # Register : ATTR_48 @ 0XFD4800C0

- # MSI-X Table Size. This value is transferred to the MSI-X Message Control[10:0] field. Set to 0 if MSI-X is not enabled. Note - # hat the core does not implement the table; that must be implemented in user logic.; EP=0x0003; RP=0x0000 + # MSI-X Table Size. This value is transferred to the MSI-X Message Control + # [10:0] field. Set to 0 if MSI-X is not enabled. Note that the core does + # not implement the table; that must be implemented in user logic.; EP=0x0 + # 003; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE 0 # ATTR_48 @@ -14032,8 +16443,8 @@ set psu_resetout_init_data { mask_write 0XFD4800C0 0x000007FF 0x00000000 # Register : ATTR_46 @ 0XFD4800B8

- # MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; - # P=0x0000 + # MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + # field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET 0 # ATTR_46 @@ -14041,8 +16452,8 @@ set psu_resetout_init_data { mask_write 0XFD4800B8 0x0000FFFF 0x00000000 # Register : ATTR_47 @ 0XFD4800BC

- # MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0000; - # P=0x0000 + # MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + # field. Set to 0 if MSI-X is not enabled.; EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET 0 # ATTR_47 @@ -14050,8 +16461,8 @@ set psu_resetout_init_data { mask_write 0XFD4800BC 0x00001FFF 0x00000000 # Register : ATTR_44 @ 0XFD4800B0

- # MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - # 0x0001; RP=0x0000 + # MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + # A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET 0 # ATTR_44 @@ -14059,8 +16470,8 @@ set psu_resetout_init_data { mask_write 0XFD4800B0 0x0000FFFF 0x00000000 # Register : ATTR_45 @ 0XFD4800B4

- # MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - # 0x1000; RP=0x0000 + # MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + # A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x1000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET 0 # ATTR_45 @@ -14076,8 +16487,10 @@ set psu_resetout_init_data { mask_write 0XFD48031C 0x00000002 0x00000000 # Register : ATTR_35 @ 0XFD48008C

- # Active State PM Support. Indicates the level of active state power management supported by the selected PCI Express Link, enc - # ded as follows: 0 Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supported.; EP=0x0001; RP=0x0001 + # Active State PM Support. Indicates the level of active state power manag + # ement supported by the selected PCI Express Link, encoded as follows: 0 + # Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supporte + # d.; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT 0x0 # ATTR_35 @@ -14092,6 +16505,24 @@ set psu_resetout_init_data { # FPD Block level software controlled reset #(OFFSET, MASK, VALUE) (0XFD1A0100, 0x00020000U ,0x00000000U) */ mask_write 0XFD1A0100 0x00020000 0x00000000 + # : PCIE GPIO RESET + # : MASK_DATA_0_LSW LOW BANK [15:0] + # : MASK_DATA_0_MSW LOW BANK [25:16] + # : MASK_DATA_1_LSW LOW BANK [41:26] + # Register : MASK_DATA_1_LSW @ 0XFF0A0008

+ + # Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + # Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + # Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + #(OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) */ + mask_write 0XFF0A0008 0xFFFFFFFF 0xFFDF0020 + # : MASK_DATA_1_MSW HIGH BANK [51:42] + # : MASK_DATA_1_LSW HIGH BANK [67:52] + # : MASK_DATA_1_LSW HIGH BANK [77:68] # : CHECK PLL LOCK FOR LANE0 # Register : L0_PLL_STATUS_READ_1 @ 0XFD4023E4

@@ -14131,8 +16562,10 @@ set psu_resetout_init_data { # CINMP: COMINIT Negate Minimum Period. # PSU_SATA_AHCI_VENDOR_PP2C_CINMP 0x28 - # PP2C - Port Phy2Cfg Register. This register controls the configuration of the Phy Control OOB timing for the COMINIT paramete - # s for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. + # PP2C - Port Phy2Cfg Register. This register controls the configuration o + # f the Phy Control OOB timing for the COMINIT parameters for either Port + # 0 or Port 1. The Port configured is controlled by the value programmed i + # nto the Port Config Register. #(OFFSET, MASK, VALUE) (0XFD0C00AC, 0xFFFFFFFFU ,0x28184018U) */ mask_write 0XFD0C00AC 0xFFFFFFFF 0x28184018 # Register : PP3C @ 0XFD0C00B0

@@ -14149,8 +16582,10 @@ set psu_resetout_init_data { # CWNMP: COMWAKE Negate Minimum Period. # PSU_SATA_AHCI_VENDOR_PP3C_CWNMP 0x0E - # PP3C - Port Phy3CfgRegister. This register controls the configuration of the Phy Control OOB timing for the COMWAKE parameter - # for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. + # PP3C - Port Phy3CfgRegister. This register controls the configuration of + # the Phy Control OOB timing for the COMWAKE parameters for either Port 0 + # or Port 1. The Port configured is controlled by the value programmed in + # to the Port Config Register. #(OFFSET, MASK, VALUE) (0XFD0C00B0, 0xFFFFFFFFU ,0x0E081406U) */ mask_write 0XFD0C00B0 0xFFFFFFFF 0x0E081406 # Register : PP4C @ 0XFD0C00B4

@@ -14161,31 +16596,41 @@ set psu_resetout_init_data { # BNM: COM Burst Nominal. # PSU_SATA_AHCI_VENDOR_PP4C_BNM 0x08 - # SFD: Signal Failure Detection, if the signal detection de-asserts for a time greater than this then the OOB detector will det - # rmine this is a line idle and cause the PhyInit state machine to exit the Phy Ready State. A value of zero disables the Signa - # Failure Detector. The value is based on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving a nominal time of - # 500ns based on a 150MHz PMCLK. + # SFD: Signal Failure Detection, if the signal detection de-asserts for a + # time greater than this then the OOB detector will determine this is a li + # ne idle and cause the PhyInit state machine to exit the Phy Ready State. + # A value of zero disables the Signal Failure Detector. The value is base + # d on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving + # a nominal time of 500ns based on a 150MHz PMCLK. # PSU_SATA_AHCI_VENDOR_PP4C_SFD 0x4A - # PTST: Partial to Slumber timer value, specific delay the controller should apply while in partial before entering slumber. Th - # value is bases on the system clock divided by 128, total delay = (Sys Clock Period) * PTST * 128 + # PTST: Partial to Slumber timer value, specific delay the controller shou + # ld apply while in partial before entering slumber. The value is bases on + # the system clock divided by 128, total delay = (Sys Clock Period) * PTS + # T * 128 # PSU_SATA_AHCI_VENDOR_PP4C_PTST 0x06 - # PP4C - Port Phy4Cfg Register. This register controls the configuration of the Phy Control Burst timing for the COM parameters - # for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. + # PP4C - Port Phy4Cfg Register. This register controls the configuration o + # f the Phy Control Burst timing for the COM parameters for either Port 0 + # or Port 1. The Port configured is controlled by the value programmed int + # o the Port Config Register. #(OFFSET, MASK, VALUE) (0XFD0C00B4, 0xFFFFFFFFU ,0x064A0813U) */ mask_write 0XFD0C00B4 0xFFFFFFFF 0x064A0813 # Register : PP5C @ 0XFD0C00B8

- # RIT: Retry Interval Timer. The calculated value divided by two, the lower digit of precision is not needed. + # RIT: Retry Interval Timer. The calculated value divided by two, the lowe + # r digit of precision is not needed. # PSU_SATA_AHCI_VENDOR_PP5C_RIT 0xC96A4 - # RCT: Rate Change Timer, a value based on the 54.2us for which a SATA device will transmit at a fixed rate ALIGNp after OOB ha - # completed, for a fast SERDES it is suggested that this value be 54.2us / 4 + # RCT: Rate Change Timer, a value based on the 54.2us for which a SATA dev + # ice will transmit at a fixed rate ALIGNp after OOB has completed, for a + # fast SERDES it is suggested that this value be 54.2us / 4 # PSU_SATA_AHCI_VENDOR_PP5C_RCT 0x3FF - # PP5C - Port Phy5Cfg Register. This register controls the configuration of the Phy Control Retry Interval timing for either Po - # t 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. + # PP5C - Port Phy5Cfg Register. This register controls the configuration o + # f the Phy Control Retry Interval timing for either Port 0 or Port 1. The + # Port configured is controlled by the value programmed into the Port Con + # fig Register. #(OFFSET, MASK, VALUE) (0XFD0C00B8, 0xFFFFFFFFU ,0x3FFC96A4U) */ mask_write 0XFD0C00B8 0xFFFFFFFF 0x3FFC96A4 } @@ -14243,8 +16688,9 @@ set psu_resetin_init_data { # : PUTTING DP IN RESET # Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

- # Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - # ane0 Bits [3:2] - lane 1 + # Two bits per lane. When set to 11, moves the GT to power down mode. When + # set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + # lane 1 # PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0XA # Control PHY Power down @@ -14275,7 +16721,8 @@ set psu_ps_pl_isolation_removal_data { # Power-up Request Interrupt Enable for PL # PSU_PMU_GLOBAL_REQ_PWRUP_INT_EN_PL 1 - # Power-up Request Interrupt Enable Register. Writing a 1 to this location will unmask the interrupt. + # Power-up Request Interrupt Enable Register. Writing a 1 to this location + # will unmask the interrupt. #(OFFSET, MASK, VALUE) (0XFFD80118, 0x00800000U ,0x00800000U) */ mask_write 0XFFD80118 0x00800000 0x00800000 # Register : REQ_PWRUP_TRIG @ 0XFFD80120

@@ -14283,7 +16730,8 @@ set psu_ps_pl_isolation_removal_data { # Power-up Request Trigger for PL # PSU_PMU_GLOBAL_REQ_PWRUP_TRIG_PL 1 - # Power-up Request Trigger Register. A write of one to this location will generate a power-up request to the PMU. + # Power-up Request Trigger Register. A write of one to this location will + # generate a power-up request to the PMU. #(OFFSET, MASK, VALUE) (0XFFD80120, 0x00800000U ,0x00800000U) */ mask_write 0XFFD80120 0x00800000 0x00800000 # : POLL ON PL POWER STATUS @@ -14294,6 +16742,58 @@ set psu_ps_pl_isolation_removal_data { mask_poll 0XFFD80110 0x00800000 0x00000000 } +set psu_afi_config { + # : AFI RESET + # Register : RST_FPD_TOP @ 0XFD1A0100

+ + # AF_FM0 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM0_RESET 0 + + # AF_FM1 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM1_RESET 0 + + # AF_FM2 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM2_RESET 0 + + # AF_FM3 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM3_RESET 0 + + # AF_FM4 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM4_RESET 0 + + # AF_FM5 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM5_RESET 0 + + # FPD Block level software controlled reset + #(OFFSET, MASK, VALUE) (0XFD1A0100, 0x00001F80U ,0x00000000U) */ + mask_write 0XFD1A0100 0x00001F80 0x00000000 + # Register : RST_LPD_TOP @ 0XFF5E023C

+ + # AFI FM 6 + # PSU_CRL_APB_RST_LPD_TOP_AFI_FM6_RESET 0 + + # Software control register for the LPD block. + #(OFFSET, MASK, VALUE) (0XFF5E023C, 0x00080000U ,0x00000000U) */ + mask_write 0XFF5E023C 0x00080000 0x00000000 + # : AFIFM INTERFACE WIDTH + # Register : afi_fs @ 0XFD615000

+ + # Select the 32/64/128-bit data width selection for the Slave 0 00: 32-bit + # AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + # width 11: reserved + # PSU_FPD_SLCR_AFI_FS_DW_SS0_SEL 0x2 + + # Select the 32/64/128-bit data width selection for the Slave 1 00: 32-bit + # AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + # width 11: reserved + # PSU_FPD_SLCR_AFI_FS_DW_SS1_SEL 0x2 + + # afi fs SLCR control register. This register is static and should not be + # modified during operation. + #(OFFSET, MASK, VALUE) (0XFD615000, 0x00000F00U ,0x00000A00U) */ + mask_write 0XFD615000 0x00000F00 0x00000A00 +} + set psu_ps_pl_reset_config_data { # : PS PL RESET SEQUENCE # : FABRIC RESET USING EMIO @@ -14366,6 +16866,7 @@ proc psu_init {} { variable psu_serdes_init_data variable psu_resetin_init_data variable psu_peripherals_powerdwn_data + variable psu_afi_config init_ps [subst {$psu_mio_init_data $psu_pll_init_data $psu_clock_init_data $psu_ddr_init_data }] psu_ddr_phybringup_data @@ -14374,6 +16875,7 @@ proc psu_init {} { init_ps [subst {$psu_serdes_init_data $psu_resetout_init_data }] init_peripheral init_ps [subst {$psu_peripherals_powerdwn_data }] + init_ps [subst {$psu_afi_config }] # restore original mode configparams force-mem-accesses $saved_mode } @@ -14409,7 +16911,7 @@ proc mask_poll { addr mask } { set curval "0x[string range [mrd -force $addr] end-8 end]" set maskedval [expr {$curval & $mask}] set count [ expr { $count + 1 } ] - if { $count == 100000000 } { + if { $count == 1000 } { puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" break } @@ -14424,48 +16926,195 @@ proc psu_mask_write { addr mask value } { mwr -force $addr $maskedval } +proc serdes_fixcal_code {} { + + set MaskStatus 1 + array set match_pmos_code {} + array set match_nmos_code {} + array set match_ical_code {} + array set match_rcal_code {} + set p_code 0 + set n_code 0 + set i_code 0 + set r_code 0 + set repeat_count 0 + set L3_TM_CALIB_DIG20 0 + set L3_TM_CALIB_DIG19 0 + set L3_TM_CALIB_DIG18 0 + set L3_TM_CALIB_DIG16 0 + set L3_TM_CALIB_DIG15 0 + set L3_TM_CALIB_DIG14 0 -proc serdes_fixcal_code {} { - #/* - # * L3_TM_CALIB_DIG19 - # */ - mask_write 0xFD40EC4C 0xFFFFFFFF 0x00000020 + set rdata 0 + + set rdata [mask_read 0XFD40289C 0xFFFFFFFF] + set rdata [expr $rdata & ~0x03 ] + set rdata [expr $rdata | 0x1] + mask_write 0XFD40289C 0xFFFFFFFF $rdata + #check supply good status before starting AFE sequencing + set count 1 + while 1 { + set rdata [mask_read 0xFD402B1C 0xFFFFFFFF] + set count [ expr { $count + 1 } ] + if { [expr $rdata & 0x0000000E] == 0x0000000E } { + break; + } + if { $count == 1000 } { + break; + } + } + + + for {set i 0} {$i<23 } {incr i } { + set match_pmos_code($i) 0; + set match_nmos_code($i) 0; + } + + for {set i 0} {$i<7} {incr i} { + set match_ical_code($i) 0; + set match_rcal_code($i) 0; + } + + while 1 { + #Clear ICM_CFG value + mask_write 0xFD410010 0xFFFFFFFF 0x00000000 + mask_write 0xFD410014 0xFFFFFFFF 0x00000000 + + #Set ICM_CFG value + #This will trigger recalibration of all stages + mask_write 0xFD410010 0xFFFFFFFF 0x00000001 + mask_write 0xFD410014 0xFFFFFFFF 0x00000000; + + #is calibration done? polling on L3_CALIB_DONE_STATUS + mask_poll 0xFD40EF14 0x2; + + #PMOS code + set p_code [mask_read 0xFD40EF18 0xFFFFFFFF]; + #NMOS code + set n_code [mask_read 0xFD40EF1C 0xFFFFFFFF]; + #ICAL code + set i_code [mask_read 0xFD40EF24 0xFFFFFFFF]; + #RX code + set r_code [mask_read 0xFD40EF28 0xFFFFFFFF]; + + + #xil_printf("#SERDES initialization VALUES NMOS = 0x%x, PMOS = 0x%x, ICAL = 0x%x, RCAL = 0x%x\n\r", p_code, n_code, i_code, r_code); + #PMOS code in acceptable range + if {($p_code >= 0x26) && ($p_code <= 0x3C)} { + set index [expr $p_code - 0x26] + set value $match_pmos_code($index) + incr value + set match_pmos_code($index) $value; + } + #NMOS code in acceptable range + if {($n_code >= 0x26) && ($n_code <= 0x3C)} { + set index [expr $n_code - 0x26] + set value $match_nmos_code($index) + incr value + set match_nmos_code($index) $value; + } + #PMOS code in acceptable range + if {($i_code >= 0xC) && ($i_code <= 0x12)} { + + set index [expr $i_code - 0xC] + set value $match_ical_code($index) + incr value + set match_ical_code($index) $value; + + } + #NMOS code in acceptable range + if {($r_code >= 0x6) && ($r_code <= 0xC)} { + set index [expr $r_code - 0x6] + set value $match_rcal_code($index) + incr value + set match_rcal_code($index) $value; + } + + incr repeat_count + if {$repeat_count > 10} { + break + } + } + + + #find the valid code which resulted in maximum times in 10 iterations + for {set i 0 } {$i < 23} {incr i} { - #/* - # * ICM_CFG0 - # */ - mask_write 0xFD410010 0xFFFFFFFF 0x00000001 + if {$match_pmos_code($i) >= $match_pmos_code(0) } { + set match_pmos_code(0) $match_pmos_code($i) + set p_code [expr 0x26 + $i] + } + if {$match_nmos_code($i) >= $match_nmos_code(0)} { + + set match_nmos_code(0) $match_nmos_code($i) + set n_code [expr 0x26 + $i]; + } + } - - #/* - # * is calibration done, polling on L3_CALIB_DONE_STATUS - # */ - mask_poll 0xFD40EF14 0x2 - - #unsigned int tmp_0_1; - set tmp_0_1 [mrd -force -value 0xFD400B0C] - set tmp_0_1 [expr {$tmp_0_1 & 0x3F}] - - set tmp_0_2 [expr {$tmp_0_1 & 0x7}] - set tmp_0_3 [expr {$tmp_0_1 & 0x38}] - - #Configure ICM for de-asserting CMN_Resetn - mask_write 0xFD410010 0xFFFFFFFF 0x00000000 - mask_write 0xFD410014 0xFFFFFFFF 0x00000000 - - set tmp_0_2_mod [expr {($tmp_0_2 << 1) | (0x1)}] - set tmp_0_2_mod [expr {$tmp_0_2_mod << 4}] - - set tmp_0_3 [expr {$tmp_0_3 >> 3}] - mask_write 0xFD40EC4C 0xFFFFFFFF $tmp_0_3 - - #L3_TM_CALIB_DIG18 - mask_write 0xFD40EC48 0xFFFFFFFF $tmp_0_2_mod + for {set $i 0} {$i<7} {incr i} { + if {$match_ical_code($i) >= $match_ical_code(0)} { + set match_ical_code(0) $match_ical_code($i) + set i_code [expr 0xC + $i] + } + if {$match_rcal_code($i) >= $match_rcal_code(0)} { + set match_rcal_code(0) $match_rcal_code($i) + set r_code [expr 0x6 + $i] + } + } + #xil_printf("#SERDES initialization PASSED NMOS = 0x%x, PMOS = 0x%x, ICAL = 0x%x, RCAL = 0x%x\n\r", p_code, n_code, i_code, r_code); + #L3_TM_CALIB_DIG20[3] PSW MSB Override + #L3_TM_CALIB_DIG20[2:0] PSW Code [4:2] + #read DIG20 + set L3_TM_CALIB_DIG20 [mask_read 0xFD40EC50 0xFFFFFFF0]; + set L3_TM_CALIB_DIG20 [expr $L3_TM_CALIB_DIG20 | 0x8 | (($p_code>>2)&0x7)] -} + #L3_TM_CALIB_DIG19[7:6] PSW Code [1:0] + #L3_TM_CALIB_DIG19[5] PSW Override + #L3_TM_CALIB_DIG19[2] NSW MSB Override + #L3_TM_CALIB_DIG19[1:0] NSW Code [4:3] + #read DIG19 + set L3_TM_CALIB_DIG19 [mask_read 0xFD40EC4C 0xFFFFFF18] + set L3_TM_CALIB_DIG19 [expr $L3_TM_CALIB_DIG19 | (($p_code&0x3)<<6) | 0x20 | 0x4 | (($n_code>>3)&0x3)] + #L3_TM_CALIB_DIG18[7:5] NSW Code [2:0] + #L3_TM_CALIB_DIG18[4] NSW Override + #read DIG18 + set L3_TM_CALIB_DIG18 [mask_read 0xFD40EC48 0xFFFFFF0F] + set L3_TM_CALIB_DIG18 [expr $L3_TM_CALIB_DIG18 | (($n_code&0x7)<<5) | 0x10] + + + #L3_TM_CALIB_DIG16[2:0] RX Code [3:1] + #read DIG16 + set L3_TM_CALIB_DIG16 [mask_read 0xFD40EC40 0xFFFFFFF8] + set L3_TM_CALIB_DIG16 [expr $L3_TM_CALIB_DIG16 | (($r_code>>1)&0x7)] + + #L3_TM_CALIB_DIG15[7] RX Code [0] + #L3_TM_CALIB_DIG15[6] RX CODE Override + #L3_TM_CALIB_DIG15[3] ICAL MSB Override + #L3_TM_CALIB_DIG15[2:0] ICAL Code [3:1] + #read DIG15 + set L3_TM_CALIB_DIG15 [mask_read 0xFD40EC3C 0xFFFFFF30] + set L3_TM_CALIB_DIG15 [expr $L3_TM_CALIB_DIG15 | (($r_code&0x1)<<7) | 0x40 | 0x8 | (($i_code>>1)&0x7)] + + #L3_TM_CALIB_DIG14[7] ICAL Code [0] + #L3_TM_CALIB_DIG14[6] ICAL Override + #read DIG14 + set L3_TM_CALIB_DIG14 [mask_read 0xFD40EC38 0xFFFFFF3F] + set L3_TM_CALIB_DIG14 [expr $L3_TM_CALIB_DIG14 | (($i_code&0x1)<<7) | 0x40] + + #Forces the calibration values + mask_write 0xFD40EC50 0xFFFFFFFF $L3_TM_CALIB_DIG20 + mask_write 0xFD40EC4C 0xFFFFFFFF $L3_TM_CALIB_DIG19 + mask_write 0xFD40EC48 0xFFFFFFFF $L3_TM_CALIB_DIG18 + mask_write 0xFD40EC40 0xFFFFFFFF $L3_TM_CALIB_DIG16 + mask_write 0xFD40EC3C 0xFFFFFFFF $L3_TM_CALIB_DIG15 + mask_write 0xFD40EC38 0xFFFFFFFF $L3_TM_CALIB_DIG14 + + + return $MaskStatus; + } proc serdes_enb_coarse_saturation {} { #/* # * Enable PLL Coarse Code saturation Logic @@ -14477,9 +17126,7 @@ proc serdes_enb_coarse_saturation {} { } - proc init_serdes {} { - serdes_fixcal_code serdes_enb_coarse_saturation @@ -14501,48 +17148,15 @@ proc poll { addr mask data} { } proc init_peripheral {} { - - # Release all resets in the IOU */ - mask_write 0xFF5E0230 0xFFFFFFFF 0x00000000 - mask_write 0xFF5E0234 0xFFFFFFFF 0x00000000 - mask_write 0xFF5E0238 0xFFFFFFFF 0x00000000 - - # Take LPD out of reset except R5 */ - set tmp_0_1 [mrd -force -value 0xFF5E023C] - set tmp_0_1 [expr {$tmp_0_1 & 0x7}] - mask_write 0xFF5E023C 0xFFFFFFFF $tmp_0_1 - - # Take most of FPD out of reset */ - mask_write 0XFD1A0100 0xFFFFFFFF 0x00000000 - - # Making DPDMA as secure - mask_write 0xFD690040 0x00000001 0x00000000 - # Making PCIe as secure - mask_write 0xFD690030 0x00000001 0x00000000 - +#SMMU_REG Interrrupt Enable: Followig register need to be written all the time to properly catch SMMU messages. + mask_write 0xFD5F0018 0x8000001F 0x8000001F } proc psu_init_xppu_aper_ram {} { - set APER_OFFSET 0xFF981000 - set i 0 - while { $i <= 400 } { - mask_write $APER_OFFSET 0xF80FFFFF 0x08080000 - set APER_OFFSET [ expr $APER_OFFSET + 4 ] - set APER_OFFSET "0x[format %08X [ expr $APER_OFFSET] ]" - set i [ expr { $i + 1 } ] - } } proc psu_lpd_protection {} { - set saved_mode [configparams force-mem-accesses] - configparams force-mem-accesses 1 - - psu_init_xppu_aper_ram; - variable psu_lpd_xppu_data - init_ps [subst {$psu_lpd_xppu_data }] - - configparams force-mem-accesses $saved_mode } proc psu_ddr_protection {} { @@ -14591,6 +17205,8 @@ proc psu_protection_lock {} { } proc psu_protection {} { + variable psu_apply_master_tz + init_ps [subst {$psu_apply_master_tz }] psu_ddr_protection psu_ocm_protection psu_fpd_protection @@ -14598,26 +17214,34 @@ proc psu_protection {} { } proc psu_ddr_phybringup_data {} { -set dpll_divisor [expr {(0x00003F00 & [mrd -force -value 0xFD1A0080]) >> 0x00000008 }] - psu_mask_write 0xFD1A0080 0x00003F00 0x00000500 - psu_mask_write 0xFD080028 0x00000001 0x00000001 -mwr -force 0xFD080004 0x00040003 -mask_poll 0xFD080030 0x00000001 - psu_mask_write 0xFD080684 0x06000000 0x02000000 - psu_mask_write 0xFD0806A4 0x06000000 0x02000000 - psu_mask_write 0xFD0806C4 0x06000000 0x02000000 - psu_mask_write 0xFD0806E4 0x06000000 0x02000000 - psu_mask_write 0xFD1A0080 0x3F00 [expr {($dpll_divisor << 8)}] -mwr -force 0xFD080004 0x40040071 -mask_poll 0xFD080030 0x00000001 -mwr -force 0xFD080004 0x40040001 -mask_poll 0xFD080030 0x00000001 +mwr -force 0xFD080004 0x00040073 poll 0xFD080030 0x0000000F 0x0000000F psu_mask_write 0xFD080004 0x00000001 0x00000001 #poll for PHY initialization to complete poll 0xFD080030 0x000000FF 0x0000001F + psu_mask_write 0xFD070010 0x00000008 0x00000008 + psu_mask_write 0xFD0701B0 0x00000001 0x00000001 + psu_mask_write 0xFD070010 0x00000030 0x00000010 + psu_mask_write 0xFD070010 0x00000001 0x00000000 + psu_mask_write 0xFD070010 0x0000F000 0x00006000 + psu_mask_write 0xFD070014 0x0003FFFF 0x00000819 + psu_mask_write 0xFD070010 0x80000000 0x80000000 +poll 0xFD070018 0x00000001 0 + psu_mask_write 0xFD070010 0x00000030 0x00000010 + psu_mask_write 0xFD070010 0x00000001 0x00000000 + psu_mask_write 0xFD070010 0x0000F000 0x00006000 + psu_mask_write 0xFD070014 0x0003FFFF 0x00000899 + psu_mask_write 0xFD070010 0x80000000 0x80000000 +poll 0xFD070018 0x00000001 0 + psu_mask_write 0xFD070010 0x00000030 0x00000010 + psu_mask_write 0xFD070010 0x00000001 0x00000000 + psu_mask_write 0xFD070010 0x0000F000 0x00006000 + psu_mask_write 0xFD070014 0x0003FFFF 0x00000819 + psu_mask_write 0xFD070010 0x80000000 0x80000000 +poll 0xFD070018 0x00000001 0 + psu_mask_write 0xFD070010 0x00000008 0x00000000 mwr -force 0xFD0701B0 0x00000001 mwr -force 0xFD070320 0x00000001 #//poll for DDR initialization to complete @@ -14646,31 +17270,29 @@ poll 0xFD080030 0x00000FFF 0x00000FFF # Run Vref training in static read mode mwr -force 0xFD080200 0x100091C7 -mwr -force 0xFD080018 0x00F01EF2 -mwr -force 0xFD08001C 0x55AA5498 -mwr -force 0xFD08142C 0x00041830 -mwr -force 0xFD08146C 0x00041830 -mwr -force 0xFD0814AC 0x00041830 -mwr -force 0xFD0814EC 0x00041830 -mwr -force 0xFD08152C 0x00041830 +mwr -force 0xFD080018 0x00F01EEF + psu_mask_write 0xFD08142C 0x00000030 0x00000030 + psu_mask_write 0xFD08146C 0x00000030 0x00000030 + psu_mask_write 0xFD0814AC 0x00000030 0x00000030 + psu_mask_write 0xFD0814EC 0x00000030 0x00000030 + psu_mask_write 0xFD08152C 0x00000030 0x00000030 psu_mask_write 0xFD080004 0xFFFFFFFF 0x00060001 #trigger VreFPHY training -poll 0xFD080030 0x00000C01 0x00000C01 +poll 0xFD080030 0x00004001 0x00004001 #//Poll PUB_PGSR0 for Trng complete mwr -force 0xFD080200 0x800091C7 -mwr -force 0xFD080018 0x00F12302 -mwr -force 0xFD08001C 0x55AA5480 -mwr -force 0xFD08142C 0x00041800 -mwr -force 0xFD08146C 0x00041800 -mwr -force 0xFD0814AC 0x00041800 -mwr -force 0xFD0814EC 0x00041800 -mwr -force 0xFD08152C 0x00041800 +mwr -force 0xFD080018 0x00F122E7 + psu_mask_write 0xFD08142C 0x00000030 0x00000000 + psu_mask_write 0xFD08146C 0x00000030 0x00000000 + psu_mask_write 0xFD0814AC 0x00000030 0x00000000 + psu_mask_write 0xFD0814EC 0x00000030 0x00000000 + psu_mask_write 0xFD08152C 0x00000030 0x00000000 psu_mask_write 0xFD080004 0xFFFFFFFF 0x0000C001 #trigger VreFPHY training -poll 0xFD080030 0x00004001 0x00004001 +poll 0xFD080030 0x00000C01 0x00000C01 #//Poll PUB_PGSR0 for Trng complete mwr -force 0xFD070180 0x01000040 diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.c index 8ed7cf1dc..d75ebacb3 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Copyright (C) 2015 Xilinx, Inc. All rights reserved. -* +* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -11,21103 +11,21793 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License along * with this program; if not, see -* -* -******************************************************************************/ +* +* +******************************************************************************/ #include #include #include "psu_init_gpl.h" +#define DPLL_CFG_LOCK_DLY 63 +#define DPLL_CFG_LOCK_CNT 625 +#define DPLL_CFG_LFHF 3 +#define DPLL_CFG_CP 3 +#define DPLL_CFG_RES 2 -int mask_pollOnValue(u32 add , u32 mask, u32 value ); +static int mask_pollOnValue(u32 add, u32 mask, u32 value); -int mask_poll(u32 add , u32 mask ); +static int mask_poll(u32 add, u32 mask); -void mask_delay(u32 delay); +static void mask_delay(u32 delay); -u32 mask_read(u32 add , u32 mask ); +static u32 mask_read(u32 add, u32 mask); -static void PSU_Mask_Write (unsigned long offset, unsigned long mask, unsigned long val) +static void dpll_prog(int ddr_pll_fbdiv, int d_lock_dly, + int d_lock_cnt, int d_lfhf, int d_cp, int d_res); + +static +void PSU_Mask_Write(unsigned long offset, unsigned long mask, + unsigned long val) { unsigned long RegVal = 0x0; - RegVal = Xil_In32 (offset); + + RegVal = Xil_In32(offset); RegVal &= ~(mask); RegVal |= (val & mask); - Xil_Out32 (offset, RegVal); + Xil_Out32(offset, RegVal); } - void prog_reg (unsigned long addr, unsigned long mask, unsigned long shift, unsigned long value) { - int rdata =0; +static +void prog_reg(unsigned long addr, unsigned long mask, + unsigned long shift, + unsigned long value) +{ + int rdata = 0; + rdata = Xil_In32(addr); rdata = rdata & (~mask); rdata = rdata | (value << shift); - Xil_Out32(addr,rdata); - } - -unsigned long psu_pll_init_data() { - // : RPLL INIT - /*Register : RPLL_CFG @ 0XFF5E0034

- - PLL loop filter resistor control - PSU_CRL_APB_RPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRL_APB_RPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRL_APB_RPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRL_APB_RPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRL_APB_RPLL_CFG_RES_MASK | CRL_APB_RPLL_CFG_CP_MASK | CRL_APB_RPLL_CFG_LFHF_MASK | CRL_APB_RPLL_CFG_LOCK_CNT_MASK | CRL_APB_RPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRL_APB_RPLL_CFG_RES_SHIFT - | 0x00000003U << CRL_APB_RPLL_CFG_CP_SHIFT - | 0x00000003U << CRL_APB_RPLL_CFG_LFHF_SHIFT - | 0x00000258U << CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : RPLL_CTRL @ 0XFF5E0030

- - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRL_APB_RPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRL_APB_RPLL_CTRL_FBDIV 0x48 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRL_APB_RPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00014800U) - RegMask = (CRL_APB_RPLL_CTRL_PRE_SRC_MASK | CRL_APB_RPLL_CTRL_FBDIV_MASK | CRL_APB_RPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT - | 0x00000048U << CRL_APB_RPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRL_APB_RPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00717F00U ,0x00014800U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : RPLL_CTRL @ 0XFF5E0030

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_RPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_RPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_RPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : RPLL_CTRL @ 0XFF5E0030

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_RPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000001U) - RegMask = (CRL_APB_RPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_RPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : RPLL_CTRL @ 0XFF5E0030

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_RPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_RPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFF5E0040

- - RPLL is locked - PSU_CRL_APB_PLL_STATUS_RPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000002U ,0x00000002U) */ - mask_poll(CRL_APB_PLL_STATUS_OFFSET,0x00000002U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : RPLL_CTRL @ 0XFF5E0030

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_RPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : RPLL_TO_FPD_CTRL @ 0XFF5E0048

- - Divisor value for this clock. - PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000300U) - RegMask = (CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_TO_FPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : RPLL FRAC CFG - /*Register : RPLL_FRAC_CFG @ 0XFF5E0038

- - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRL_APB_RPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRL_APB_RPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFF5E0038, 0x8000FFFFU ,0x00000000U) - RegMask = (CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK | CRL_APB_RPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : IOPLL INIT - /*Register : IOPLL_CFG @ 0XFF5E0024

- - PLL loop filter resistor control - PSU_CRL_APB_IOPLL_CFG_RES 0xc - - PLL charge pump control - PSU_CRL_APB_IOPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRL_APB_IOPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x339 - - Lock circuit configuration settings for lock windowsize - PSU_CRL_APB_IOPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E672C6CU) - RegMask = (CRL_APB_IOPLL_CFG_RES_MASK | CRL_APB_IOPLL_CFG_CP_MASK | CRL_APB_IOPLL_CFG_LFHF_MASK | CRL_APB_IOPLL_CFG_LOCK_CNT_MASK | CRL_APB_IOPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x0000000CU << CRL_APB_IOPLL_CFG_RES_SHIFT - | 0x00000003U << CRL_APB_IOPLL_CFG_CP_SHIFT - | 0x00000003U << CRL_APB_IOPLL_CFG_LFHF_SHIFT - | 0x00000339U << CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E672C6CU); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : IOPLL_CTRL @ 0XFF5E0020

- - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRL_APB_IOPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x2d - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRL_APB_IOPLL_CTRL_DIV2 0x0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00002D00U) - RegMask = (CRL_APB_IOPLL_CTRL_PRE_SRC_MASK | CRL_APB_IOPLL_CTRL_FBDIV_MASK | CRL_APB_IOPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT - | 0x0000002DU << CRL_APB_IOPLL_CTRL_FBDIV_SHIFT - | 0x00000000U << CRL_APB_IOPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00717F00U ,0x00002D00U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : IOPLL_CTRL @ 0XFF5E0020

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_IOPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : IOPLL_CTRL @ 0XFF5E0020

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_IOPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000001U) - RegMask = (CRL_APB_IOPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : IOPLL_CTRL @ 0XFF5E0020

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_IOPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_IOPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFF5E0040

- - IOPLL is locked - PSU_CRL_APB_PLL_STATUS_IOPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000001U ,0x00000001U) */ - mask_poll(CRL_APB_PLL_STATUS_OFFSET,0x00000001U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : IOPLL_CTRL @ 0XFF5E0020

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_IOPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : IOPLL_TO_FPD_CTRL @ 0XFF5E0044

- - Divisor value for this clock. - PSU_CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFF5E0044, 0x00003F00U ,0x00000300U) - RegMask = (CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : IOPLL FRAC CFG - /*Register : IOPLL_FRAC_CFG @ 0XFF5E0028

- - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRL_APB_IOPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRL_APB_IOPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFF5E0028, 0x8000FFFFU ,0x00000000U) - RegMask = (CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK | CRL_APB_IOPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : APU_PLL INIT - /*Register : APLL_CFG @ 0XFD1A0024

- - PLL loop filter resistor control - PSU_CRF_APB_APLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_APLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_APLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_APLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_APLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A0024, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRF_APB_APLL_CFG_RES_MASK | CRF_APB_APLL_CFG_CP_MASK | CRF_APB_APLL_CFG_LFHF_MASK | CRF_APB_APLL_CFG_LOCK_CNT_MASK | CRF_APB_APLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_APLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_APLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_APLL_CFG_LFHF_SHIFT - | 0x00000258U << CRF_APB_APLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_APLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : APLL_CTRL @ 0XFD1A0020

- - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_APLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_APLL_CTRL_FBDIV 0x42 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_APLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014200U) - RegMask = (CRF_APB_APLL_CTRL_PRE_SRC_MASK | CRF_APB_APLL_CTRL_FBDIV_MASK | CRF_APB_APLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_PRE_SRC_SHIFT - | 0x00000042U << CRF_APB_APLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_APLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00717F00U ,0x00014200U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : APLL_CTRL @ 0XFD1A0020

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_APLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_APLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_APLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : APLL_CTRL @ 0XFD1A0020

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_APLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_APLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_APLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : APLL_CTRL @ 0XFD1A0020

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_APLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_APLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

- - APLL is locked - PSU_CRF_APB_PLL_STATUS_APLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000001U ,0x00000001U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000001U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : APLL_CTRL @ 0XFD1A0020

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_APLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_APLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : APLL_TO_LPD_CTRL @ 0XFD1A0048

- - Divisor value for this clock. - PSU_CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A0048, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : APLL FRAC CFG - /*Register : APLL_FRAC_CFG @ 0XFD1A0028

- - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_APLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRF_APB_APLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0028, 0x8000FFFFU ,0x00000000U) - RegMask = (CRF_APB_APLL_FRAC_CFG_ENABLED_MASK | CRF_APB_APLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRF_APB_APLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : DDR_PLL INIT - /*Register : DPLL_CFG @ 0XFD1A0030

- - PLL loop filter resistor control - PSU_CRF_APB_DPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_DPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_DPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_DPLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_DPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A0030, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRF_APB_DPLL_CFG_RES_MASK | CRF_APB_DPLL_CFG_CP_MASK | CRF_APB_DPLL_CFG_LFHF_MASK | CRF_APB_DPLL_CFG_LOCK_CNT_MASK | CRF_APB_DPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DPLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_DPLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_DPLL_CFG_LFHF_SHIFT - | 0x00000258U << CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : DPLL_CTRL @ 0XFD1A002C

- - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_DPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_DPLL_CTRL_FBDIV 0x40 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_DPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00717F00U ,0x00014000U) - RegMask = (CRF_APB_DPLL_CTRL_PRE_SRC_MASK | CRF_APB_DPLL_CTRL_FBDIV_MASK | CRF_APB_DPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT - | 0x00000040U << CRF_APB_DPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_DPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00717F00U ,0x00014000U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : DPLL_CTRL @ 0XFD1A002C

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_DPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : DPLL_CTRL @ 0XFD1A002C

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_DPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_DPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : DPLL_CTRL @ 0XFD1A002C

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_DPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_DPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

- - DPLL is locked - PSU_CRF_APB_PLL_STATUS_DPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000002U ,0x00000002U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000002U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : DPLL_CTRL @ 0XFD1A002C

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_DPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DPLL_TO_LPD_CTRL @ 0XFD1A004C

- - Divisor value for this clock. - PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : DPLL FRAC CFG - /*Register : DPLL_FRAC_CFG @ 0XFD1A0034

- - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_DPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRF_APB_DPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0034, 0x8000FFFFU ,0x00000000U) - RegMask = (CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK | CRF_APB_DPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : VIDEO_PLL INIT - /*Register : VPLL_CFG @ 0XFD1A003C

- - PLL loop filter resistor control - PSU_CRF_APB_VPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_VPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_VPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x28a - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_VPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E514C62U) - RegMask = (CRF_APB_VPLL_CFG_RES_MASK | CRF_APB_VPLL_CFG_CP_MASK | CRF_APB_VPLL_CFG_LFHF_MASK | CRF_APB_VPLL_CFG_LOCK_CNT_MASK | CRF_APB_VPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_VPLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_VPLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_VPLL_CFG_LFHF_SHIFT - | 0x0000028AU << CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E514C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : VPLL_CTRL @ 0XFD1A0038

- - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_VPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_VPLL_CTRL_FBDIV 0x39 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_VPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00013900U) - RegMask = (CRF_APB_VPLL_CTRL_PRE_SRC_MASK | CRF_APB_VPLL_CTRL_FBDIV_MASK | CRF_APB_VPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT - | 0x00000039U << CRF_APB_VPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_VPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00717F00U ,0x00013900U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : VPLL_CTRL @ 0XFD1A0038

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_VPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_VPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : VPLL_CTRL @ 0XFD1A0038

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_VPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_VPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : VPLL_CTRL @ 0XFD1A0038

- - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_VPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_VPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

- - VPLL is locked - PSU_CRF_APB_PLL_STATUS_VPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000004U ,0x00000004U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000004U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : VPLL_CTRL @ 0XFD1A0038

- - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_VPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_VPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : VPLL_TO_LPD_CTRL @ 0XFD1A0050

- - Divisor value for this clock. - PSU_CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A0050, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : VIDEO FRAC CFG - /*Register : VPLL_FRAC_CFG @ 0XFD1A0040

- - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_VPLL_FRAC_CFG_ENABLED 0x1 - - Fractional value for the Feedback value. - PSU_CRF_APB_VPLL_FRAC_CFG_DATA 0x820c - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0040, 0x8000FFFFU ,0x8000820CU) - RegMask = (CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK | CRF_APB_VPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT - | 0x0000820CU << CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x8000820CU); - /*############################################################################################################################ */ - - - return 1; + Xil_Out32(addr, rdata); + } + +unsigned long psu_pll_init_data(void) +{ + /* + * RPLL INIT + */ + /* + * Register : RPLL_CFG @ 0XFF5E0034 + + * PLL loop filter resistor control + * PSU_CRL_APB_RPLL_CFG_RES 0xc + + * PLL charge pump control + * PSU_CRL_APB_RPLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRL_APB_RPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x339 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRL_APB_RPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E672C6CU) + */ + PSU_Mask_Write(CRL_APB_RPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E672C6CU); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRL_APB_RPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRL_APB_RPLL_CTRL_FBDIV 0x2d + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRL_APB_RPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00012D00U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00717F00U, 0x00012D00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_RPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_RPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_RPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFF5E0040 + + * RPLL is locked + * PSU_CRL_APB_PLL_STATUS_RPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000002U ,0x00000002U) + */ + mask_poll(CRL_APB_PLL_STATUS_OFFSET, 0x00000002U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_RPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RPLL_TO_FPD_CTRL @ 0XFF5E0048 + + * Divisor value for this clock. + * PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x2 + + * Control for a clock that will be generated in the LPD, but used in the F + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000200U) + */ + PSU_Mask_Write(CRL_APB_RPLL_TO_FPD_CTRL_OFFSET, + 0x00003F00U, 0x00000200U); +/*##################################################################### */ + + /* + * RPLL FRAC CFG + */ + /* + * IOPLL INIT + */ + /* + * Register : IOPLL_CFG @ 0XFF5E0024 + + * PLL loop filter resistor control + * PSU_CRL_APB_IOPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRL_APB_IOPLL_CFG_CP 0x4 + + * PLL loop filter high frequency capacitor control + * PSU_CRL_APB_IOPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRL_APB_IOPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E4B0C82U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C82U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRL_APB_IOPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x5a + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRL_APB_IOPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00015A00U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00717F00U, 0x00015A00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_IOPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_IOPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_IOPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFF5E0040 + + * IOPLL is locked + * PSU_CRL_APB_PLL_STATUS_IOPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000001U ,0x00000001U) + */ + mask_poll(CRL_APB_PLL_STATUS_OFFSET, 0x00000001U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_IOPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : IOPLL_TO_FPD_CTRL @ 0XFF5E0044 + + * Divisor value for this clock. + * PSU_CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the LPD, but used in the F + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFF5E0044, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * IOPLL FRAC CFG + */ + /* + * APU_PLL INIT + */ + /* + * Register : APLL_CFG @ 0XFD1A0024 + + * PLL loop filter resistor control + * PSU_CRF_APB_APLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_APLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_APLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_APLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_APLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A0024, 0xFE7FEDEFU ,0x7E4B0C62U) + */ + PSU_Mask_Write(CRF_APB_APLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C62U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_APLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_APLL_CTRL_FBDIV 0x48 + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_APLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014800U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00717F00U, 0x00014800U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_APLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_APLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_APLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * APLL is locked + * PSU_CRF_APB_PLL_STATUS_APLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000001U ,0x00000001U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000001U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_APLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : APLL_TO_LPD_CTRL @ 0XFD1A0048 + + * Divisor value for this clock. + * PSU_CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A0048, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRF_APB_APLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * APLL FRAC CFG + */ + /* + * DDR_PLL INIT + */ + /* + * Register : DPLL_CFG @ 0XFD1A0030 + + * PLL loop filter resistor control + * PSU_CRF_APB_DPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_DPLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_DPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_DPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_DPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A0030, 0xFE7FEDEFU ,0x7E4B0C62U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C62U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_DPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_DPLL_CTRL_FBDIV 0x40 + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_DPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00717F00U ,0x00014000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00717F00U, 0x00014000U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_DPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_DPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_DPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * DPLL is locked + * PSU_CRF_APB_PLL_STATUS_DPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000002U ,0x00000002U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000002U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_DPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DPLL_TO_LPD_CTRL @ 0XFD1A004C + + * Divisor value for this clock. + * PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x2 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DPLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000200U); +/*##################################################################### */ + + /* + * DPLL FRAC CFG + */ + /* + * VIDEO_PLL INIT + */ + /* + * Register : VPLL_CFG @ 0XFD1A003C + + * PLL loop filter resistor control + * PSU_CRF_APB_VPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_VPLL_CFG_CP 0x4 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_VPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_VPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E4B0C82U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C82U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_VPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_VPLL_CTRL_FBDIV 0x5a + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_VPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00015A00U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00717F00U, 0x00015A00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_VPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_VPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_VPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * VPLL is locked + * PSU_CRF_APB_PLL_STATUS_VPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000004U ,0x00000004U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000004U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_VPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : VPLL_TO_LPD_CTRL @ 0XFD1A0050 + + * Divisor value for this clock. + * PSU_CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A0050, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRF_APB_VPLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * VIDEO FRAC CFG + */ + + return 1; } -unsigned long psu_clock_init_data() { - // : CLOCK CONTROL SLCR REGISTER - /*Register : GEM3_REF_CTRL @ 0XFF5E005C

+unsigned long psu_clock_init_data(void) +{ + /* + * CLOCK CONTROL SLCR REGISTER + */ + /* + * Register : GEM3_REF_CTRL @ 0XFF5E005C + + * Clock active for the RX channel + * PSU_CRL_APB_GEM3_REF_CTRL_RX_CLKACT 0x1 - Clock active for the RX channel - PSU_CRL_APB_GEM3_REF_CTRL_RX_CLKACT 0x1 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_GEM3_REF_CTRL_CLKACT 0x1 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_GEM3_REF_CTRL_CLKACT 0x1 + * 6 bit divider + * PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR1 0x1 - 6 bit divider - PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR1 0x1 + * 6 bit divider + * PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR0 0xc + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_GEM3_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E005C, 0x063F3F07U ,0x06010C00U) + */ + PSU_Mask_Write(CRL_APB_GEM3_REF_CTRL_OFFSET, + 0x063F3F07U, 0x06010C00U); +/*##################################################################### */ + + /* + * Register : GEM_TSU_REF_CTRL @ 0XFF5E0100 - 6 bit divider - PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR0 0xc + * 6 bit divider + * PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0 0x6 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_GEM3_REF_CTRL_SRCSEL 0x0 + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_GEM_TSU_REF_CTRL_SRCSEL 0x0 - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E005C, 0x063F3F07U ,0x06010C00U) - RegMask = (CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK | CRL_APB_GEM3_REF_CTRL_CLKACT_MASK | CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK | CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK | CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK | 0 ); + * 6 bit divider + * PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1 0x1 - RegVal = ((0x00000001U << CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT - | 0x00000001U << CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000CU << CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_GEM3_REF_CTRL_OFFSET ,0x063F3F07U ,0x06010C00U); - /*############################################################################################################################ */ + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_GEM_TSU_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0100, 0x013F3F07U ,0x01010600U) + */ + PSU_Mask_Write(CRL_APB_GEM_TSU_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010600U); +/*##################################################################### */ + + /* + * Register : USB0_BUS_REF_CTRL @ 0XFF5E0060 - /*Register : USB0_BUS_REF_CTRL @ 0XFF5E0060

+ * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_USB0_BUS_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0 0x6 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_USB0_BUS_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0060, 0x023F3F07U ,0x02010600U) + */ + PSU_Mask_Write(CRL_APB_USB0_BUS_REF_CTRL_OFFSET, + 0x023F3F07U, 0x02010600U); +/*##################################################################### */ + + /* + * Register : USB3_DUAL_REF_CTRL @ 0XFF5E004C - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_USB0_BUS_REF_CTRL_CLKACT 0x1 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0x3 + + * 6 bit divider + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x19 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x02031900U) + */ + PSU_Mask_Write(CRL_APB_USB3_DUAL_REF_CTRL_OFFSET, + 0x023F3F07U, 0x02031900U); +/*##################################################################### */ - 6 bit divider - PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1 0x1 + /* + * Register : QSPI_REF_CTRL @ 0XFF5E0068 - 6 bit divider - PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0 0x6 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_QSPI_REF_CTRL_CLKACT 0x1 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_USB0_BUS_REF_CTRL_SRCSEL 0x0 + * 6 bit divider + * PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR0 0xc + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_QSPI_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0068, 0x013F3F07U ,0x01010C00U) + */ + PSU_Mask_Write(CRL_APB_QSPI_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010C00U); +/*##################################################################### */ - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0060, 0x023F3F07U ,0x02010600U) - RegMask = (CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK | CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK | CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK | CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK | 0 ); + /* + * Register : SDIO1_REF_CTRL @ 0XFF5E0070 - RegVal = ((0x00000001U << CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT - | 0x00000006U << CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_USB0_BUS_REF_CTRL_OFFSET ,0x023F3F07U ,0x02010600U); - /*############################################################################################################################ */ + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_SDIO1_REF_CTRL_CLKACT 0x1 - /*Register : USB3_DUAL_REF_CTRL @ 0XFF5E004C

+ * 6 bit divider + * PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x8 + + * 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x0 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_USB3_DUAL_REF_CTRL_CLKACT 0x1 + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010800U) + */ + PSU_Mask_Write(CRL_APB_SDIO1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010800U); +/*##################################################################### */ - 6 bit divider - PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0xf + /* + * Register : SDIO_CLK_CTRL @ 0XFF18030C - 6 bit divider - PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x5 + * MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO + * [51] 1: MIO [76] + * PSU_IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL 0 - 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL 0x0 + * SoC Debug Clock Control + * (OFFSET, MASK, VALUE) (0XFF18030C, 0x00020000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_SDIO_CLK_CTRL_OFFSET, + 0x00020000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : UART0_REF_CTRL @ 0XFF5E0074 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_UART0_REF_CTRL_CLKACT 0x1 - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x020F0500U) - RegMask = (CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK | CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK | CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK | CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK | 0 ); + * 6 bit divider + * PSU_CRL_APB_UART0_REF_CTRL_DIVISOR1 0x1 - RegVal = ((0x00000001U << CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT - | 0x0000000FU << CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT - | 0x00000005U << CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_USB3_DUAL_REF_CTRL_OFFSET ,0x023F3F07U ,0x020F0500U); - /*############################################################################################################################ */ + * 6 bit divider + * PSU_CRL_APB_UART0_REF_CTRL_DIVISOR0 0xf - /*Register : QSPI_REF_CTRL @ 0XFF5E0068

+ * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_UART0_REF_CTRL_SRCSEL 0x0 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_QSPI_REF_CTRL_CLKACT 0x1 + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0074, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_UART0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : UART1_REF_CTRL @ 0XFF5E0078 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_UART1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_UART1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_UART1_REF_CTRL_DIVISOR0 0xf - 6 bit divider - PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR1 0x1 + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_UART1_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0078, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_UART1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : I2C0_REF_CTRL @ 0XFF5E0120 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_I2C0_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_I2C0_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0120, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_I2C0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : I2C1_REF_CTRL @ 0XFF5E0124 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_I2C1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_I2C1_REF_CTRL_SRCSEL 0x0 - 6 bit divider - PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR0 0xc + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0124, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_I2C1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : CAN1_REF_CTRL @ 0XFF5E0088 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_QSPI_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0068, 0x013F3F07U ,0x01010C00U) - RegMask = (CRL_APB_QSPI_REF_CTRL_CLKACT_MASK | CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK | CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK | CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000CU << CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_QSPI_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010C00U); - /*############################################################################################################################ */ - - /*Register : SDIO1_REF_CTRL @ 0XFF5E0070

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_SDIO1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x6 - - 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010602U) - RegMask = (CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK | CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK | CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK | CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT - | 0x00000006U << CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_SDIO1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010602U); - /*############################################################################################################################ */ - - /*Register : SDIO_CLK_CTRL @ 0XFF18030C

- - MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO [51] 1: MIO [76] - PSU_IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL 0 - - SoC Debug Clock Control - (OFFSET, MASK, VALUE) (0XFF18030C, 0x00020000U ,0x00000000U) - RegMask = (IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SDIO_CLK_CTRL_OFFSET ,0x00020000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : UART0_REF_CTRL @ 0XFF5E0074

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_UART0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_UART0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_UART0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_UART0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0074, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_UART0_REF_CTRL_CLKACT_MASK | CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK | CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK | CRL_APB_UART0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_UART0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : UART1_REF_CTRL @ 0XFF5E0078

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_UART1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_UART1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_UART1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_UART1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0078, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_UART1_REF_CTRL_CLKACT_MASK | CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK | CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK | CRL_APB_UART1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_UART1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : I2C0_REF_CTRL @ 0XFF5E0120

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_I2C0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_I2C0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0120, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_I2C0_REF_CTRL_CLKACT_MASK | CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK | CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK | CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_I2C0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : I2C1_REF_CTRL @ 0XFF5E0124

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_I2C1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_I2C1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0124, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_I2C1_REF_CTRL_CLKACT_MASK | CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK | CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK | CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_I2C1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : CAN1_REF_CTRL @ 0XFF5E0088

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_CAN1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_CAN1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0088, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_CAN1_REF_CTRL_CLKACT_MASK | CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK | CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK | CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_CAN1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : CPU_R5_CTRL @ 0XFF5E0090

- - Turing this off will shut down the OCM, some parts of the APM, and prevent transactions going from the FPD to the LPD and cou - d lead to system hang - PSU_CRL_APB_CPU_R5_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_CPU_R5_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_CPU_R5_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0090, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_CPU_R5_CTRL_CLKACT_MASK | CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK | CRL_APB_CPU_R5_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_CPU_R5_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : IOU_SWITCH_CTRL @ 0XFF5E009C

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_IOU_SWITCH_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_IOU_SWITCH_CTRL_DIVISOR0 0x6 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOU_SWITCH_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E009C, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK | CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK | CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOU_SWITCH_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : PCAP_CTRL @ 0XFF5E00A4

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PCAP_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x6 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_PCAP_CTRL_CLKACT_MASK | CRL_APB_PCAP_CTRL_DIVISOR0_MASK | CRL_APB_PCAP_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PCAP_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PCAP_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PCAP_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : LPD_SWITCH_CTRL @ 0XFF5E00A8

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_LPD_SWITCH_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_LPD_SWITCH_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_LPD_SWITCH_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00A8, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK | CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK | CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_LPD_SWITCH_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : LPD_LSBUS_CTRL @ 0XFF5E00AC

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_LPD_LSBUS_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_LPD_LSBUS_CTRL_DIVISOR0 0xf - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_LPD_LSBUS_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00AC, 0x01003F07U ,0x01000F02U) - RegMask = (CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK | CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK | CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT - | 0x0000000FU << CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_LPD_LSBUS_CTRL_OFFSET ,0x01003F07U ,0x01000F02U); - /*############################################################################################################################ */ - - /*Register : DBG_LPD_CTRL @ 0XFF5E00B0

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_DBG_LPD_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_DBG_LPD_CTRL_DIVISOR0 0x6 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_DBG_LPD_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00B0, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_DBG_LPD_CTRL_CLKACT_MASK | CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK | CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_DBG_LPD_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : ADMA_REF_CTRL @ 0XFF5E00B8

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_ADMA_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_ADMA_REF_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_ADMA_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00B8, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_ADMA_REF_CTRL_CLKACT_MASK | CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK | CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_ADMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : PL0_REF_CTRL @ 0XFF5E00C0

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C0, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_PL0_REF_CTRL_CLKACT_MASK | CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : PL1_REF_CTRL @ 0XFF5E00C4

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL1_REF_CTRL_DIVISOR1 0x4 - - 6 bit divider - PSU_CRL_APB_PL1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C4, 0x013F3F07U ,0x01040F00U) - RegMask = (CRL_APB_PL1_REF_CTRL_CLKACT_MASK | CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT - | 0x00000004U << CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01040F00U); - /*############################################################################################################################ */ - - /*Register : PL2_REF_CTRL @ 0XFF5E00C8

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL2_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL2_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL2_REF_CTRL_DIVISOR0 0x4 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL2_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C8, 0x013F3F07U ,0x01010402U) - RegMask = (CRL_APB_PL2_REF_CTRL_CLKACT_MASK | CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL2_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT - | 0x00000004U << CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL2_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010402U); - /*############################################################################################################################ */ - - /*Register : PL3_REF_CTRL @ 0XFF5E00CC

- - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL3_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL3_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL3_REF_CTRL_DIVISOR0 0x3 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL3_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00CC, 0x013F3F07U ,0x01010302U) - RegMask = (CRL_APB_PL3_REF_CTRL_CLKACT_MASK | CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL3_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT - | 0x00000003U << CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL3_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010302U); - /*############################################################################################################################ */ - - /*Register : AMS_REF_CTRL @ 0XFF5E0108

- - 6 bit divider - PSU_CRL_APB_AMS_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1d - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_AMS_REF_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_AMS_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011D02U) - RegMask = (CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK | CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK | CRL_APB_AMS_REF_CTRL_SRCSEL_MASK | CRL_APB_AMS_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT - | 0x0000001DU << CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_AMS_REF_CTRL_OFFSET ,0x013F3F07U ,0x01011D02U); - /*############################################################################################################################ */ - - /*Register : DLL_REF_CTRL @ 0XFF5E0104

- - 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - is not usually an issue, but designers must be aware.) - PSU_CRL_APB_DLL_REF_CTRL_SRCSEL 0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0104, 0x00000007U ,0x00000000U) - RegMask = (CRL_APB_DLL_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_DLL_REF_CTRL_OFFSET ,0x00000007U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : TIMESTAMP_REF_CTRL @ 0XFF5E0128

- - 6 bit divider - PSU_CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0 0xf - - 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and - cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0128, 0x01003F07U ,0x01000F00U) - RegMask = (CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK | CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK | CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x0000000FU << CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_TIMESTAMP_REF_CTRL_OFFSET ,0x01003F07U ,0x01000F00U); - /*############################################################################################################################ */ - - /*Register : SATA_REF_CTRL @ 0XFD1A00A0

- - 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_SATA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_SATA_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRF_APB_SATA_REF_CTRL_DIVISOR0 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00A0, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_SATA_REF_CTRL_SRCSEL_MASK | CRF_APB_SATA_REF_CTRL_CLKACT_MASK | CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT - | 0x00000002U << CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_SATA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : PCIE_REF_CTRL @ 0XFD1A00B4

- - 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cyc - es of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_PCIE_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_PCIE_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRF_APB_PCIE_REF_CTRL_DIVISOR0 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00B4, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK | CRF_APB_PCIE_REF_CTRL_CLKACT_MASK | CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT - | 0x00000002U << CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_PCIE_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DP_VIDEO_REF_CTRL @ 0XFD1A0070

- - 6 bit divider - PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x3 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x3 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_VIDEO_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010303U) - RegMask = (CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT - | 0x00000003U << CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT - | 0x00000003U << CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_VIDEO_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010303U); - /*############################################################################################################################ */ - - /*Register : DP_AUDIO_REF_CTRL @ 0XFD1A0074

- - 6 bit divider - PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0x27 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_AUDIO_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01012700U) - RegMask = (CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT - | 0x00000027U << CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_AUDIO_REF_CTRL_OFFSET ,0x013F3F07U ,0x01012700U); - /*############################################################################################################################ */ - - /*Register : DP_STC_REF_CTRL @ 0XFD1A007C

- - 6 bit divider - PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0x11 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of t - e new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_STC_REF_CTRL_SRCSEL 0x3 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_STC_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01011103U) - RegMask = (CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT - | 0x00000011U << CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT - | 0x00000003U << CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_STC_REF_CTRL_OFFSET ,0x013F3F07U ,0x01011103U); - /*############################################################################################################################ */ - - /*Register : ACPU_CTRL @ 0XFD1A0060

- - 6 bit divider - PSU_CRF_APB_ACPU_CTRL_DIVISOR0 0x1 - - 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_ACPU_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock. For the half speed APU Clock - PSU_CRF_APB_ACPU_CTRL_CLKACT_HALF 0x1 - - Clock active signal. Switch to 0 to disable the clock. For the full speed ACPUX Clock. This will shut off the high speed cloc - to the entire APU - PSU_CRF_APB_ACPU_CTRL_CLKACT_FULL 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0060, 0x03003F07U ,0x03000100U) - RegMask = (CRF_APB_ACPU_CTRL_DIVISOR0_MASK | CRF_APB_ACPU_CTRL_SRCSEL_MASK | CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK | CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_ACPU_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT - | 0x00000001U << CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_ACPU_CTRL_OFFSET ,0x03003F07U ,0x03000100U); - /*############################################################################################################################ */ - - /*Register : DBG_TRACE_CTRL @ 0XFD1A0064

- - 6 bit divider - PSU_CRF_APB_DBG_TRACE_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_TRACE_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DBG_TRACE_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0064, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK | CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK | CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_TRACE_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DBG_FPD_CTRL @ 0XFD1A0068

- - 6 bit divider - PSU_CRF_APB_DBG_FPD_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_FPD_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DBG_FPD_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0068, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK | CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK | CRF_APB_DBG_FPD_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_FPD_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DDR_CTRL @ 0XFD1A0080

- - 6 bit divider - PSU_CRF_APB_DDR_CTRL_DIVISOR0 0x2 - - 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - s not usually an issue, but designers must be aware.) - PSU_CRF_APB_DDR_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0080, 0x00003F07U ,0x00000200U) - RegMask = (CRF_APB_DDR_CTRL_DIVISOR0_MASK | CRF_APB_DDR_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DDR_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DDR_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DDR_CTRL_OFFSET ,0x00003F07U ,0x00000200U); - /*############################################################################################################################ */ - - /*Register : GPU_REF_CTRL @ 0XFD1A0084

- - 6 bit divider - PSU_CRF_APB_GPU_REF_CTRL_DIVISOR0 0x1 - - 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_GPU_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock, which will stop clock for GPU (and both Pixel Processors). - PSU_CRF_APB_GPU_REF_CTRL_CLKACT 0x1 - - Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor - PSU_CRF_APB_GPU_REF_CTRL_PP0_CLKACT 0x1 - - Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor - PSU_CRF_APB_GPU_REF_CTRL_PP1_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0084, 0x07003F07U ,0x07000100U) - RegMask = (CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK | CRF_APB_GPU_REF_CTRL_SRCSEL_MASK | CRF_APB_GPU_REF_CTRL_CLKACT_MASK | CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK | CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_GPU_REF_CTRL_OFFSET ,0x07003F07U ,0x07000100U); - /*############################################################################################################################ */ - - /*Register : GDMA_REF_CTRL @ 0XFD1A00B8

- - 6 bit divider - PSU_CRF_APB_GDMA_REF_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_GDMA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_GDMA_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00B8, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK | CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK | CRF_APB_GDMA_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_GDMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DPDMA_REF_CTRL @ 0XFD1A00BC

- - 6 bit divider - PSU_CRF_APB_DPDMA_REF_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPDMA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DPDMA_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00BC, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK | CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK | CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPDMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : TOPSW_MAIN_CTRL @ 0XFD1A00C0

- - 6 bit divider - PSU_CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_TOPSW_MAIN_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000202U) - RegMask = (CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK | CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK | CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_TOPSW_MAIN_CTRL_OFFSET ,0x01003F07U ,0x01000202U); - /*############################################################################################################################ */ - - /*Register : TOPSW_LSBUS_CTRL @ 0XFD1A00C4

- - 6 bit divider - PSU_CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0 0x5 - - 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_TOPSW_LSBUS_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00C4, 0x01003F07U ,0x01000502U) - RegMask = (CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK | CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK | CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000005U << CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_TOPSW_LSBUS_CTRL_OFFSET ,0x01003F07U ,0x01000502U); - /*############################################################################################################################ */ - - /*Register : DBG_TSTMP_CTRL @ 0XFD1A00F8

- - 6 bit divider - PSU_CRF_APB_DBG_TSTMP_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_TSTMP_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00F8, 0x00003F07U ,0x00000200U) - RegMask = (CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK | CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_TSTMP_CTRL_OFFSET ,0x00003F07U ,0x00000200U); - /*############################################################################################################################ */ - - /*Register : IOU_TTC_APB_CLK @ 0XFF180380

- - 00" = Select the APB switch clock for the APB interface of TTC0'01" = Select the PLL ref clock for the APB interface of TTC0' - 0" = Select the R5 clock for the APB interface of TTC0 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC1'01" = Select the PLL ref clock for the APB interface of TTC1' - 0" = Select the R5 clock for the APB interface of TTC1 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC2'01" = Select the PLL ref clock for the APB interface of TTC2' - 0" = Select the R5 clock for the APB interface of TTC2 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC3'01" = Select the PLL ref clock for the APB interface of TTC3' - 0" = Select the R5 clock for the APB interface of TTC3 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL 0 - - TTC APB clock select - (OFFSET, MASK, VALUE) (0XFF180380, 0x000000FFU ,0x00000000U) - RegMask = (IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_IOU_TTC_APB_CLK_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : WDT_CLK_SEL @ 0XFD610100

- - System watchdog timer clock source selection: 0: Internal APB clock 1: External (PL clock via EMIO or Pinout clock via MIO) - PSU_FPD_SLCR_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFD610100, 0x00000001U ,0x00000000U) - RegMask = (FPD_SLCR_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (FPD_SLCR_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : WDT_CLK_SEL @ 0XFF180300

- - System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock from PL via EMIO, or from pinout - ia MIO - PSU_IOU_SLCR_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFF180300, 0x00000001U ,0x00000000U) - RegMask = (IOU_SLCR_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CSUPMU_WDT_CLK_SEL @ 0XFF410050

- - System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock pss_ref_clk - PSU_LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFF410050, 0x00000001U ,0x00000000U) - RegMask = (LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - - return 1; + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_CAN1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_CAN1_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0088, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_CAN1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : CPU_R5_CTRL @ 0XFF5E0090 + + * Turing this off will shut down the OCM, some parts of the APM, and preve + * nt transactions going from the FPD to the LPD and could lead to system h + * ang + * PSU_CRL_APB_CPU_R5_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_CPU_R5_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_CPU_R5_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0090, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_CPU_R5_CTRL_OFFSET, 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : IOU_SWITCH_CTRL @ 0XFF5E009C + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_IOU_SWITCH_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_IOU_SWITCH_CTRL_DIVISOR0 0x6 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_IOU_SWITCH_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E009C, 0x01003F07U ,0x01000602U) + */ + PSU_Mask_Write(CRL_APB_IOU_SWITCH_CTRL_OFFSET, + 0x01003F07U, 0x01000602U); +/*##################################################################### */ + + /* + * Register : PCAP_CTRL @ 0XFF5E00A4 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_PCAP_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x8 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000800U) + */ + PSU_Mask_Write(CRL_APB_PCAP_CTRL_OFFSET, 0x01003F07U, 0x01000800U); +/*##################################################################### */ + + /* + * Register : LPD_SWITCH_CTRL @ 0XFF5E00A8 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_LPD_SWITCH_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_LPD_SWITCH_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_LPD_SWITCH_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00A8, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_LPD_SWITCH_CTRL_OFFSET, + 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : LPD_LSBUS_CTRL @ 0XFF5E00AC + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_LPD_LSBUS_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_LPD_LSBUS_CTRL_DIVISOR0 0xf + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_LPD_LSBUS_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00AC, 0x01003F07U ,0x01000F02U) + */ + PSU_Mask_Write(CRL_APB_LPD_LSBUS_CTRL_OFFSET, + 0x01003F07U, 0x01000F02U); +/*##################################################################### */ + + /* + * Register : DBG_LPD_CTRL @ 0XFF5E00B0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_DBG_LPD_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_DBG_LPD_CTRL_DIVISOR0 0x6 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_DBG_LPD_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00B0, 0x01003F07U ,0x01000602U) + */ + PSU_Mask_Write(CRL_APB_DBG_LPD_CTRL_OFFSET, + 0x01003F07U, 0x01000602U); +/*##################################################################### */ + + /* + * Register : ADMA_REF_CTRL @ 0XFF5E00B8 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_ADMA_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_ADMA_REF_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_ADMA_REF_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00B8, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_ADMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : PL0_REF_CTRL @ 0XFF5E00C0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_PL0_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_PL0_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_PL0_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_PL0_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00C0, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_PL0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : AMS_REF_CTRL @ 0XFF5E0108 + + * 6 bit divider + * PSU_CRL_APB_AMS_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1e + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_AMS_REF_CTRL_SRCSEL 0x2 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_AMS_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011E02U) + */ + PSU_Mask_Write(CRL_APB_AMS_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01011E02U); +/*##################################################################### */ + + /* + * Register : DLL_REF_CTRL @ 0XFF5E0104 + + * 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an + * issue, but designers must be aware.) + * PSU_CRL_APB_DLL_REF_CTRL_SRCSEL 0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0104, 0x00000007U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_DLL_REF_CTRL_OFFSET, + 0x00000007U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : TIMESTAMP_REF_CTRL @ 0XFF5E0128 + + * 6 bit divider + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0 0xf + + * 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may + * only be toggled after 4 cycles of the old clock and 4 cycles of the new + * clock. This is not usually an issue, but designers must be aware.) + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0128, 0x01003F07U ,0x01000F00U) + */ + PSU_Mask_Write(CRL_APB_TIMESTAMP_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000F00U); +/*##################################################################### */ + + /* + * Register : SATA_REF_CTRL @ 0XFD1A00A0 + + * 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_SATA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_SATA_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRF_APB_SATA_REF_CTRL_DIVISOR0 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00A0, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_SATA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : PCIE_REF_CTRL @ 0XFD1A00B4 + + * 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only + * be toggled after 4 cycles of the old clock and 4 cycles of the new cloc + * k. This is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_PCIE_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_PCIE_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRF_APB_PCIE_REF_CTRL_DIVISOR0 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00B4, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_PCIE_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DP_VIDEO_REF_CTRL @ 0XFD1A0070 + + * 6 bit divider + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x5 + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010500U) + */ + PSU_Mask_Write(CRF_APB_DP_VIDEO_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010500U); +/*##################################################################### */ + + /* + * Register : DP_AUDIO_REF_CTRL @ 0XFD1A0074 + + * 6 bit divider + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0xf + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01010F03U) + */ + PSU_Mask_Write(CRF_APB_DP_AUDIO_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F03U); +/*##################################################################### */ + + /* + * Register : DP_STC_REF_CTRL @ 0XFD1A007C + + * 6 bit divider + * PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0xe + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be togg + * led after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DP_STC_REF_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_STC_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01010E03U) + */ + PSU_Mask_Write(CRF_APB_DP_STC_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010E03U); +/*##################################################################### */ + + /* + * Register : ACPU_CTRL @ 0XFD1A0060 + + * 6 bit divider + * PSU_CRF_APB_ACPU_CTRL_DIVISOR0 0x1 + + * 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_ACPU_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock. For the half spee + * d APU Clock + * PSU_CRF_APB_ACPU_CTRL_CLKACT_HALF 0x1 + + * Clock active signal. Switch to 0 to disable the clock. For the full spee + * d ACPUX Clock. This will shut off the high speed clock to the entire APU + * PSU_CRF_APB_ACPU_CTRL_CLKACT_FULL 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0060, 0x03003F07U ,0x03000100U) + */ + PSU_Mask_Write(CRF_APB_ACPU_CTRL_OFFSET, 0x03003F07U, 0x03000100U); +/*##################################################################### */ + + /* + * Register : DBG_FPD_CTRL @ 0XFD1A0068 + + * 6 bit divider + * PSU_CRF_APB_DBG_FPD_CTRL_DIVISOR0 0x2 + + * 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DBG_FPD_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DBG_FPD_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0068, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_DBG_FPD_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DDR_CTRL @ 0XFD1A0080 + + * 6 bit divider + * PSU_CRF_APB_DDR_CTRL_DIVISOR0 0x2 + + * 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an i + * ssue, but designers must be aware.) + * PSU_CRF_APB_DDR_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0080, 0x00003F07U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DDR_CTRL_OFFSET, 0x00003F07U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : GPU_REF_CTRL @ 0XFD1A0084 + + * 6 bit divider + * PSU_CRF_APB_GPU_REF_CTRL_DIVISOR0 0x1 + + * 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_GPU_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock, which will stop c + * lock for GPU (and both Pixel Processors). + * PSU_CRF_APB_GPU_REF_CTRL_CLKACT 0x1 + + * Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor + * PSU_CRF_APB_GPU_REF_CTRL_PP0_CLKACT 0x1 + + * Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor + * PSU_CRF_APB_GPU_REF_CTRL_PP1_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0084, 0x07003F07U ,0x07000100U) + */ + PSU_Mask_Write(CRF_APB_GPU_REF_CTRL_OFFSET, + 0x07003F07U, 0x07000100U); +/*##################################################################### */ + + /* + * Register : GDMA_REF_CTRL @ 0XFD1A00B8 + + * 6 bit divider + * PSU_CRF_APB_GDMA_REF_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_GDMA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_GDMA_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00B8, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_GDMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DPDMA_REF_CTRL @ 0XFD1A00BC + + * 6 bit divider + * PSU_CRF_APB_DPDMA_REF_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_DPDMA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DPDMA_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00BC, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_DPDMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : TOPSW_MAIN_CTRL @ 0XFD1A00C0 + + * 6 bit divider + * PSU_CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_TOPSW_MAIN_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000203U) + */ + PSU_Mask_Write(CRF_APB_TOPSW_MAIN_CTRL_OFFSET, + 0x01003F07U, 0x01000203U); +/*##################################################################### */ + + /* + * Register : TOPSW_LSBUS_CTRL @ 0XFD1A00C4 + + * 6 bit divider + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0 0x5 + + * 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL 0x2 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00C4, 0x01003F07U ,0x01000502U) + */ + PSU_Mask_Write(CRF_APB_TOPSW_LSBUS_CTRL_OFFSET, + 0x01003F07U, 0x01000502U); +/*##################################################################### */ + + /* + * Register : DBG_TSTMP_CTRL @ 0XFD1A00F8 + + * 6 bit divider + * PSU_CRF_APB_DBG_TSTMP_CTRL_DIVISOR0 0x2 + + * 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DBG_TSTMP_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00F8, 0x00003F07U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DBG_TSTMP_CTRL_OFFSET, + 0x00003F07U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : IOU_TTC_APB_CLK @ 0XFF180380 + + * 00" = Select the APB switch clock for the APB interface of TTC0'01" = Se + * lect the PLL ref clock for the APB interface of TTC0'10" = Select the R5 + * clock for the APB interface of TTC0 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC1'01" = Se + * lect the PLL ref clock for the APB interface of TTC1'10" = Select the R5 + * clock for the APB interface of TTC1 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC2'01" = Se + * lect the PLL ref clock for the APB interface of TTC2'10" = Select the R5 + * clock for the APB interface of TTC2 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC3'01" = Se + * lect the PLL ref clock for the APB interface of TTC3'10" = Select the R5 + * clock for the APB interface of TTC3 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL 0 + + * TTC APB clock select + * (OFFSET, MASK, VALUE) (0XFF180380, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_IOU_TTC_APB_CLK_OFFSET, + 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : WDT_CLK_SEL @ 0XFD610100 + + * System watchdog timer clock source selection: 0: Internal APB clock 1: E + * xternal (PL clock via EMIO or Pinout clock via MIO) + * PSU_FPD_SLCR_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFD610100, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(FPD_SLCR_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : WDT_CLK_SEL @ 0XFF180300 + + * System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock from PL via EMIO, or from pinout via MIO + * PSU_IOU_SLCR_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFF180300, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CSUPMU_WDT_CLK_SEL @ 0XFF410050 + + * System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock pss_ref_clk + * PSU_LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFF410050, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_ddr_init_data() { - // : DDR INITIALIZATION - // : DDR CONTROLLER RESET - /*Register : RST_DDR_SS @ 0XFD1A0108

- - DDR block level reset inside of the DDR Sub System - PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X1 - - DDR sub system block level reset - (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_RST_DDR_SS_DDR_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_DDR_SS_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MSTR @ 0XFD070000

- - Indicates the configuration of the device used in the system. - 00 - x4 device - 01 - x8 device - 10 - x16 device - 11 - x32 - evice - PSU_DDRC_MSTR_DEVICE_CONFIG 0x1 - - Choose which registers are used. - 0 - Original registers - 1 - Shadow registers - PSU_DDRC_MSTR_FREQUENCY_MODE 0x0 - - Only present for multi-rank configurations. Each bit represents one rank. For two-rank configurations, only bits[25:24] are p - esent. - 1 - populated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks following combinations are legal: - 01 - - ne rank - 11 - Two ranks - Others - Reserved. For 4 ranks following combinations are legal: - 0001 - One rank - 0011 - Two ra - ks - 1111 - Four ranks - PSU_DDRC_MSTR_ACTIVE_RANKS 0x1 - - SDRAM burst length used: - 0001 - Burst length of 2 (only supported for mDDR) - 0010 - Burst length of 4 - 0100 - Burst lengt - of 8 - 1000 - Burst length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other values are reserved. This controls - he burst size used to access the SDRAM. This must match the burst length mode register setting in the SDRAM. (For BC4/8 on-th - -fly mode of DDR3 and DDR4, set this field to 0x0100) Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGT - is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 - PSU_DDRC_MSTR_BURST_RDWR 0x4 - - Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low frequency operation. Set to 0 to put uMCTL2 and DRAM - n DLL-on mode for normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d - l_off_mode is not supported, and this bit must be set to '0'. - PSU_DDRC_MSTR_DLL_OFF_MODE 0x0 - - Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full DQ bus width to SDRAM - 01 - Half DQ bus width to SD - AM - 10 - Quarter DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is only supported when the SDRAM bus w - dth is a multiple of 16, and quarter bus width mode is only supported when the SDRAM bus width is a multiple of 32 and the co - figuration parameter MEMC_QBUS_SUPPORT is set. Bus width refers to DQ bus width (excluding any ECC width). - PSU_DDRC_MSTR_DATA_BUS_WIDTH 0x0 - - 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the DRAM in normal mode (1N). This register can be changed - only when the Controller is in self-refresh mode. This signal must be set the same value as MR3 bit A3. Note: Geardown mode - s not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set - PSU_DDRC_MSTR_GEARDOWN_MODE 0x0 - - If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timing, all command signals (except chip select) are held - or 2 clocks on the SDRAM bus. Chip select is asserted on the second cycle of the command Note: 2T timing is not supported in - PDDR2/LPDDR3/LPDDR4 mode Note: 2T timing is not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set Note: 2T ti - ing is not supported in DDR4 geardown mode. - PSU_DDRC_MSTR_EN_2T_TIMING_MODE 0x0 - - When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exercised only in HIF configurations (UMCTL2_INCL_ARB not s - t) and if in full bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exercised only if Partial Writes enable - (UMCTL2_PARTIAL_WR=1) and if CRC is disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabled (CRCPARCTL1.cr - _parity_retry_enable = 1), burst chop is not supported, and this bit must be set to '0' - PSU_DDRC_MSTR_BURSTCHOP 0x0 - - Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 device in use Present only in designs configured to su - port LPDDR4. - PSU_DDRC_MSTR_LPDDR4 0x0 - - Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device in use Present only in designs configured to support - DR4. - PSU_DDRC_MSTR_DDR4 0x1 - - Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 device in use Present only in designs configured to su - port LPDDR3. - PSU_DDRC_MSTR_LPDDR3 0x0 - - Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 device in use Present only in designs configured to su - port LPDDR2. - PSU_DDRC_MSTR_LPDDR2 0x0 - - Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM device in use Only present in designs that support DDR3 - - PSU_DDRC_MSTR_DDR3 0x0 - - Master Register - (OFFSET, MASK, VALUE) (0XFD070000, 0xE30FBE3DU ,0x41040010U) - RegMask = (DDRC_MSTR_DEVICE_CONFIG_MASK | DDRC_MSTR_FREQUENCY_MODE_MASK | DDRC_MSTR_ACTIVE_RANKS_MASK | DDRC_MSTR_BURST_RDWR_MASK | DDRC_MSTR_DLL_OFF_MODE_MASK | DDRC_MSTR_DATA_BUS_WIDTH_MASK | DDRC_MSTR_GEARDOWN_MODE_MASK | DDRC_MSTR_EN_2T_TIMING_MODE_MASK | DDRC_MSTR_BURSTCHOP_MASK | DDRC_MSTR_LPDDR4_MASK | DDRC_MSTR_DDR4_MASK | DDRC_MSTR_LPDDR3_MASK | DDRC_MSTR_LPDDR2_MASK | DDRC_MSTR_DDR3_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_MSTR_DEVICE_CONFIG_SHIFT - | 0x00000000U << DDRC_MSTR_FREQUENCY_MODE_SHIFT - | 0x00000001U << DDRC_MSTR_ACTIVE_RANKS_SHIFT - | 0x00000004U << DDRC_MSTR_BURST_RDWR_SHIFT - | 0x00000000U << DDRC_MSTR_DLL_OFF_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_DATA_BUS_WIDTH_SHIFT - | 0x00000000U << DDRC_MSTR_GEARDOWN_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_BURSTCHOP_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR4_SHIFT - | 0x00000001U << DDRC_MSTR_DDR4_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR3_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR2_SHIFT - | 0x00000000U << DDRC_MSTR_DDR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_MSTR_OFFSET ,0xE30FBE3DU ,0x41040010U); - /*############################################################################################################################ */ - - /*Register : MRCTRL0 @ 0XFD070010

- - Setting this register bit to 1 triggers a mode register read or write operation. When the MR operation is complete, the uMCTL - automatically clears this bit. The other register fields of this register must be written in a separate APB transaction, bef - re setting this mr_wr bit. It is recommended NOT to set this signal if in Init, Deep power-down or MPSM operating modes. - PSU_DDRC_MRCTRL0_MR_WR 0x0 - - Address of the mode register that is to be written to. - 0000 - MR0 - 0001 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 010 - - MR5 - 0110 - MR6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data for mode register addressing in LPD - R2/LPDDR3/LPDDR4) This signal is also used for writing to control words of RDIMMs. In that case, it corresponds to the bank a - dress bits sent to the RDIMM In case of DDR4, the bit[3:2] corresponds to the bank group bits. Therefore, the bit[3] as well - s the bit[2:0] must be set to an appropriate value which is considered both the Address Mirroring of UDIMMs/RDIMMs and the Ou - put Inversion of RDIMMs. - PSU_DDRC_MRCTRL0_MR_ADDR 0x0 - - Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desired to access all ranks, so all bits should be set to 1 - However, for multi-rank UDIMMs/RDIMMs which implement address mirroring, it may be necessary to access ranks individually. E - amples (assume uMCTL2 is configured for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x5 - select ranks - and 2 - 0xA - select ranks 1 and 3 - 0xF - select ranks 0, 1, 2 and 3 - PSU_DDRC_MRCTRL0_MR_RANK 0x3 - - Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 before automatic SDRAM initialization routine or not. - or DDR4, this bit can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM initialization. For LPDDR4, this bit ca - be used to program additional mode registers before automatic SDRAM initialization if necessary. Note: This must be cleared - o 0 after completing Software operation. Otherwise, SDRAM initialization routine will not re-start. - 0 - Software interventi - n is not allowed - 1 - Software intervention is allowed - PSU_DDRC_MRCTRL0_SW_INIT_INT 0x0 - - Indicates whether the mode register operation is MRS in PDA mode or not - 0 - MRS - 1 - MRS in Per DRAM Addressability mode - PSU_DDRC_MRCTRL0_PDA_EN 0x0 - - Indicates whether the mode register operation is MRS or WR/RD for MPR (only supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR - PSU_DDRC_MRCTRL0_MPR_EN 0x0 - - Indicates whether the mode register operation is read or write. Only used for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Re - d - PSU_DDRC_MRCTRL0_MR_TYPE 0x0 - - Mode Register Read/Write Control Register 0. Note: Do not enable more than one of the following fields simultaneously: - sw_i - it_int - pda_en - mpr_en - (OFFSET, MASK, VALUE) (0XFD070010, 0x8000F03FU ,0x00000030U) - RegMask = (DDRC_MRCTRL0_MR_WR_MASK | DDRC_MRCTRL0_MR_ADDR_MASK | DDRC_MRCTRL0_MR_RANK_MASK | DDRC_MRCTRL0_SW_INIT_INT_MASK | DDRC_MRCTRL0_PDA_EN_MASK | DDRC_MRCTRL0_MPR_EN_MASK | DDRC_MRCTRL0_MR_TYPE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_MRCTRL0_MR_WR_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MR_ADDR_SHIFT - | 0x00000003U << DDRC_MRCTRL0_MR_RANK_SHIFT - | 0x00000000U << DDRC_MRCTRL0_SW_INIT_INT_SHIFT - | 0x00000000U << DDRC_MRCTRL0_PDA_EN_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MPR_EN_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MR_TYPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_MRCTRL0_OFFSET ,0x8000F03FU ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : DERATEEN @ 0XFD070020

- - Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating uses +2. - 2 - Derating uses +3. - 3 - Derating uses +4 - Present only in designs configured to support LPDDR4. The required number of cycles for derating can be determined by dividi - g 3.75ns by the core_ddrc_core_clk period, and rounding up the next integer. - PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x3 - - Derate byte Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 Indicates which byte of the MRR data is used f - r derating. The maximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. - PSU_DDRC_DERATEEN_DERATE_BYTE 0x0 - - Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present only in designs configured to support LPDDR2/LPDDR3/LPDD - 4 Set to 0 for all LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ddrc_core_clk period. Can be 0 or 1 - for LPDDR3/LPDDR4, depending if +1.875 ns is less than a core_ddrc_core_clk period or not. - PSU_DDRC_DERATEEN_DERATE_VALUE 0x0 - - Enables derating - 0 - Timing parameter derating is disabled - 1 - Timing parameter derating is enabled using MR4 read value. - Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set to '0' for non-LPDDR2/LPDDR3/LPDDR4 - mode. - PSU_DDRC_DERATEEN_DERATE_ENABLE 0x0 - - Temperature Derate Enable Register - (OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000300U) - RegMask = (DDRC_DERATEEN_RC_DERATE_VALUE_MASK | DDRC_DERATEEN_DERATE_BYTE_MASK | DDRC_DERATEEN_DERATE_VALUE_MASK | DDRC_DERATEEN_DERATE_ENABLE_MASK | 0 ); - - RegVal = ((0x00000003U << DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_BYTE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_VALUE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DERATEEN_OFFSET ,0x000003F3U ,0x00000300U); - /*############################################################################################################################ */ - - /*Register : DERATEINT @ 0XFD070024

- - Interval between two MR4 reads, used to derate the timing parameters. Present only in designs configured to support LPDDR2/LP - DR3/LPDDR4. This register must not be set to zero - PSU_DDRC_DERATEINT_MR4_READ_INTERVAL 0x800000 - - Temperature Derate Interval Register - (OFFSET, MASK, VALUE) (0XFD070024, 0xFFFFFFFFU ,0x00800000U) - RegMask = (DDRC_DERATEINT_MR4_READ_INTERVAL_MASK | 0 ); - - RegVal = ((0x00800000U << DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DERATEINT_OFFSET ,0xFFFFFFFFU ,0x00800000U); - /*############################################################################################################################ */ - - /*Register : PWRCTL @ 0XFD070030

- - Self refresh state is an intermediate state to enter to Self refresh power down state or exit Self refresh power down state f - r LPDDR4. This register controls transition from the Self refresh state. - 1 - Prohibit transition from Self refresh state - - - Allow transition from Self refresh state - PSU_DDRC_PWRCTL_STAY_IN_SELFREF 0x0 - - A value of 1 to this register causes system to move to Self Refresh state immediately, as long as it is not in INIT or DPD/MP - M operating_mode. This is referred to as Software Entry/Exit to Self Refresh. - 1 - Software Entry to Self Refresh - 0 - Soft - are Exit from Self Refresh - PSU_DDRC_PWRCTL_SELFREF_SW 0x0 - - When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode when the transaction store is empty. This register m - st be reset to '0' to bring uMCTL2 out of maximum power saving mode. Present only in designs configured to support DDR4. For - on-DDR4, this register should not be set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if the PHY parameter - DWC_AC_CS_USE is disabled, as the MPSM exit sequence requires the chip-select signal to toggle. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRCTL_MPSM_EN 0x0 - - Enable the assertion of dfi_dram_clk_disable whenever a clock is not required by the SDRAM. If set to 0, dfi_dram_clk_disable - is never asserted. Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only be asserted in Self Refresh. In DD - 4, can be asserted in following: - in Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, can be asserted in - ollowing: - in Self Refresh - in Power Down - in Deep Power Down - during Normal operation (Clock Stop) In LPDDR4, can be ass - rted in following: - in Self Refresh Power Down - in Power Down - during Normal operation (Clock Stop) - PSU_DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE 0x0 - - When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the transaction store is empty. This register must be re - et to '0' to bring uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM initialization on deep power-down - xit. Present only in designs configured to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPDDR3, this registe - should not be set to 1. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRCTL_DEEPPOWERDOWN_EN 0x0 - - If true then the uMCTL2 goes into power-down after a programmable number of cycles 'maximum idle clocks before power down' (P - RTMG.powerdown_to_x32). This register bit may be re-programmed during the course of normal operation. - PSU_DDRC_PWRCTL_POWERDOWN_EN 0x0 - - If true then the uMCTL2 puts the SDRAM into Self Refresh after a programmable number of cycles 'maximum idle clocks before Se - f Refresh (PWRTMG.selfref_to_x32)'. This register bit may be re-programmed during the course of normal operation. - PSU_DDRC_PWRCTL_SELFREF_EN 0x0 - - Low Power Control Register - (OFFSET, MASK, VALUE) (0XFD070030, 0x0000007FU ,0x00000000U) - RegMask = (DDRC_PWRCTL_STAY_IN_SELFREF_MASK | DDRC_PWRCTL_SELFREF_SW_MASK | DDRC_PWRCTL_MPSM_EN_MASK | DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK | DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK | DDRC_PWRCTL_POWERDOWN_EN_MASK | DDRC_PWRCTL_SELFREF_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT - | 0x00000000U << DDRC_PWRCTL_SELFREF_SW_SHIFT - | 0x00000000U << DDRC_PWRCTL_MPSM_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT - | 0x00000000U << DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_POWERDOWN_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_SELFREF_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PWRCTL_OFFSET ,0x0000007FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PWRTMG @ 0XFD070034

- - After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into Self Refresh. This must be enabled in - he PWRCTL.selfref_en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_SELFREF_TO_X32 0x40 - - Minimum deep power-down time. For mDDR, value from the JEDEC specification is 0 as mDDR exits from deep power-down mode immed - ately after PWRCTL.deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDEC specification is 500us. Unit: Mul - iples of 4096 clocks. Present only in designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_T_DPD_X4096 0x84 - - After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into power-down. This must be enabled in th - PWRCTL.powerdown_en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_POWERDOWN_TO_X32 0x10 - - Low Power Timing Register - (OFFSET, MASK, VALUE) (0XFD070034, 0x00FFFF1FU ,0x00408410U) - RegMask = (DDRC_PWRTMG_SELFREF_TO_X32_MASK | DDRC_PWRTMG_T_DPD_X4096_MASK | DDRC_PWRTMG_POWERDOWN_TO_X32_MASK | 0 ); - - RegVal = ((0x00000040U << DDRC_PWRTMG_SELFREF_TO_X32_SHIFT - | 0x00000084U << DDRC_PWRTMG_T_DPD_X4096_SHIFT - | 0x00000010U << DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PWRTMG_OFFSET ,0x00FFFF1FU ,0x00408410U); - /*############################################################################################################################ */ - - /*Register : RFSHCTL0 @ 0XFD070050

- - Threshold value in number of clock cycles before the critical refresh or page timer expires. A critical refresh is to be issu - d before this threshold is reached. It is recommended that this not be changed from the default value, currently shown as 0x2 - It must always be less than internally used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally used t_rfc_nom_x32 - may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating is enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_ - om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clocks. - PSU_DDRC_RFSHCTL0_REFRESH_MARGIN 0x2 - - If the refresh timer (tRFCnom, also known as tREFI) has expired at least once, but it has not expired (RFSHCTL0.refresh_burst - 1) times yet, then a speculative refresh may be performed. A speculative refresh is a refresh performed at a time when refres - would be useful, but before it is absolutely required. When the SDRAM bus is idle for a period of time determined by this RF - HCTL0.refresh_to_x32 and the refresh timer has expired at least once since the last refresh, then a speculative refresh is pe - formed. Speculative refreshes continues successively until there are no refreshes pending or until new reads or writes are is - ued to the uMCTL2. FOR PERFORMANCE ONLY. - PSU_DDRC_RFSHCTL0_REFRESH_TO_X32 0x10 - - The programmed value + 1 is the number of refresh timeouts that is allowed to accumulate before traffic is blocked and the re - reshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of re - reshes. Therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for - RFSHCTL.refresh_burst slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshe - . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh For information on burst refresh feature refer to se - tion 3.9 of DDR2 JEDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always per-rank and not per-bank. The rank r - fresh can be accumulated over 8*tREFI cycles using the burst refresh feature. In DDR4 mode, according to Fine Granularity fea - ure, 8 refreshes can be postponed in 1X mode, 16 refreshes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upd - tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ensure that tRFCmax is not violated due to a PHY-initiat - d update occurring shortly before a refresh burst was due. In this situation, the refresh burst will be delayed until the PHY - initiated update is complete. - PSU_DDRC_RFSHCTL0_REFRESH_BURST 0x0 - - - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows traffic to flow to other banks. Per bank refresh is n - t supported by all LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Present only in designs configured to - support LPDDR2/LPDDR3/LPDDR4 - PSU_DDRC_RFSHCTL0_PER_BANK_REFRESH 0x0 - - Refresh Control Register 0 - (OFFSET, MASK, VALUE) (0XFD070050, 0x00F1F1F4U ,0x00210000U) - RegMask = (DDRC_RFSHCTL0_REFRESH_MARGIN_MASK | DDRC_RFSHCTL0_REFRESH_TO_X32_MASK | DDRC_RFSHCTL0_REFRESH_BURST_MASK | DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT - | 0x00000010U << DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT - | 0x00000000U << DDRC_RFSHCTL0_REFRESH_BURST_SHIFT - | 0x00000000U << DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHCTL0_OFFSET ,0x00F1F1F4U ,0x00210000U); - /*############################################################################################################################ */ - - /*Register : RFSHCTL3 @ 0XFD070060

- - Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fixed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x ( - ot supported) - 110 - Enable on the fly 4x (not supported) - Everything else - reserved Note: The on-the-fly modes is not sup - orted in this version of the uMCTL2. Note: This must be set up while the Controller is in reset or while the Controller is in - self-refresh mode. Changing this during normal operation is not allowed. Making this a dynamic register will be supported in - uture version of the uMCTL2. - PSU_DDRC_RFSHCTL3_REFRESH_MODE 0x0 - - Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that the refresh register(s) have been updated. The value - s automatically updated when exiting reset, so it does not need to be toggled initially. - PSU_DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL 0x0 - - When '1', disable auto-refresh generated by the uMCTL2. When auto-refresh is disabled, the SoC core must generate refreshes u - ing the registers reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh and reg_ddrc_rank3_refresh. When dis - auto_refresh transitions from 0 to 1, any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 CRC/parity retry - is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), disable auto-refresh is not supported, and this bit must be set to '0'. - his register field is changeable on the fly. - PSU_DDRC_RFSHCTL3_DIS_AUTO_REFRESH 0x1 - - Refresh Control Register 3 - (OFFSET, MASK, VALUE) (0XFD070060, 0x00000073U ,0x00000001U) - RegMask = (DDRC_RFSHCTL3_REFRESH_MODE_MASK | DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK | DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_RFSHCTL3_REFRESH_MODE_SHIFT - | 0x00000000U << DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT - | 0x00000001U << DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHCTL3_OFFSET ,0x00000073U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : RFSHTMG @ 0XFD070064

- - tREFI: Average time interval between refreshes per rank (Specification: 7.8us for DDR2, DDR3 and DDR4. See JEDEC specificatio - for mDDR, LPDDR2, LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refreshes (RFSHCTL0.per_bank_refresh = 0 - , this register should be set to tREFIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this register should - e set to tREFIpb For configurations with MEMC_FREQ_RATIO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI va - ue is different depending on the refresh mode. The user should program the appropriate value from the spec based on the value - programmed in the refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be greater than RFSHTMG.t_rfc_min, and RFS - TMG.t_rfc_nom_x32 must be greater than 0x1. Unit: Multiples of 32 clocks. - PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x82 - - Used only when LPDDR3 memory type is connected. Should only be changed when uMCTL2 is in reset. Specifies whether to use the - REFBW parameter (required by some LPDDR3 devices which comply with earlier versions of the LPDDR3 JEDEC specification) or not - - 0 - tREFBW parameter not used - 1 - tREFBW parameter used - PSU_DDRC_RFSHTMG_LPDDR3_TREFBW_EN 0x1 - - tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_FREQ_RATIO=1 configurations, t_rfc_min should be set t - RoundUp(tRFCmin/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to RoundUp(RoundUp(tRFCmin/tCK)/2). In L - DDR2/LPDDR3/LPDDR4 mode: - if using all-bank refreshes, the tRFCmin value in the above equations is equal to tRFCab - if usin - per-bank refreshes, the tRFCmin value in the above equations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above - equations is different depending on the refresh mode (fixed 1X,2X,4X) and the device density. The user should program the app - opriate value from the spec based on the 'refresh_mode' and the device density that is used. Unit: Clocks. - PSU_DDRC_RFSHTMG_T_RFC_MIN 0x8b - - Refresh Timing Register - (OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0082808BU) - RegMask = (DDRC_RFSHTMG_T_RFC_NOM_X32_MASK | DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK | DDRC_RFSHTMG_T_RFC_MIN_MASK | 0 ); - - RegVal = ((0x00000082U << DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT - | 0x00000001U << DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT - | 0x0000008BU << DDRC_RFSHTMG_T_RFC_MIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHTMG_OFFSET ,0x0FFF83FFU ,0x0082808BU); - /*############################################################################################################################ */ - - /*Register : ECCCFG0 @ 0XFD070070

- - Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_USE_RMW is defined - PSU_DDRC_ECCCFG0_DIS_SCRUB 0x1 - - ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED over 1 beat - all other settings are reserved for futur - use - PSU_DDRC_ECCCFG0_ECC_MODE 0x0 - - ECC Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070070, 0x00000017U ,0x00000010U) - RegMask = (DDRC_ECCCFG0_DIS_SCRUB_MASK | DDRC_ECCCFG0_ECC_MODE_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_ECCCFG0_DIS_SCRUB_SHIFT - | 0x00000000U << DDRC_ECCCFG0_ECC_MODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ECCCFG0_OFFSET ,0x00000017U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : ECCCFG1 @ 0XFD070074

- - Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) data poisoning, if 1 -> 1-bit (correctable) data poison - ng, if ECCCFG1.data_poison_en=1 - PSU_DDRC_ECCCFG1_DATA_POISON_BIT 0x0 - - Enable ECC data poisoning - introduces ECC errors on writes to address specified by the ECCPOISONADDR0/1 registers - PSU_DDRC_ECCCFG1_DATA_POISON_EN 0x0 - - ECC Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070074, 0x00000003U ,0x00000000U) - RegMask = (DDRC_ECCCFG1_DATA_POISON_BIT_MASK | DDRC_ECCCFG1_DATA_POISON_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT - | 0x00000000U << DDRC_ECCCFG1_DATA_POISON_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ECCCFG1_OFFSET ,0x00000003U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CRCPARCTL1 @ 0XFD0700C4

- - The maximum number of DFI PHY clock cycles allowed from the assertion of the dfi_rddata_en signal to the assertion of each of - the corresponding bits of the dfi_rddata_valid signal. This corresponds to the DFI timing parameter tphy_rdlat. Refer to PHY - pecification for correct value. This value it only used for detecting read data timeout when DDR4 retry is enabled by CRCPARC - L1.crc_parity_retry_enable=1. Maximum supported value: - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ - dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mo - e ANDAND DFITMG0.dfi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_rdlat < 'd114 Unit: DFI Clocks - PSU_DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT 0x10 - - After a Parity or CRC error is flagged on dfi_alert_n signal, the software has an option to read the mode registers in the DR - M before the hardware begins the retry process - 1: Wait for software to read/write the mode registers before hardware begins - the retry. After software is done with its operations, it will clear the alert interrupt register bit - 0: Hardware can begin - the retry right away after the dfi_alert_n pulse goes away. The value on this register is valid only when retry is enabled (P - RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if the software doesn't clear the interrupt register afte - handling the parity/CRC error, then the hardware will not begin the retry process and the system will hang. In the case of P - rity/CRC error, there are two possibilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persistent parity' mode re - ister bit is NOT set: the commands sent during retry and normal operation are executed without parity checking. The value in - he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent parity' mode register bit is SET: Parity checking is - one for commands sent during retry and normal operation. If multiple errors occur before MR5[4] is cleared, the error log in - PR Page 1 should be treated as 'Don't care'. - PSU_DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW 0x1 - - - 1: Enable command retry mechanism in case of C/A Parity or CRC error - 0: Disable command retry mechanism when C/A Parity o - CRC features are enabled. Note that retry functionality is not supported if burst chop is enabled (MSTR.burstchop = 1) and/o - disable auto-refresh is enabled (RFSHCTL3.dis_auto_refresh = 1) - PSU_DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE 0x0 - - CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC not includes DM signal Present only in designs configur - d to support DDR4. - PSU_DDRC_CRCPARCTL1_CRC_INC_DM 0x0 - - CRC enable Register - 1: Enable generation of CRC - 0: Disable generation of CRC The setting of this register should match th - CRC mode register setting in the DRAM. - PSU_DDRC_CRCPARCTL1_CRC_ENABLE 0x0 - - C/A Parity enable register - 1: Enable generation of C/A parity and detection of C/A parity error - 0: Disable generation of - /A parity and disable detection of C/A parity error If RCD's parity error detection or SDRAM's parity detection is enabled, t - is register should be 1. - PSU_DDRC_CRCPARCTL1_PARITY_ENABLE 0x0 - - CRC Parity Control Register1 - (OFFSET, MASK, VALUE) (0XFD0700C4, 0x3F000391U ,0x10000200U) - RegMask = (DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK | DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK | DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK | DDRC_CRCPARCTL1_CRC_INC_DM_MASK | DDRC_CRCPARCTL1_CRC_ENABLE_MASK | DDRC_CRCPARCTL1_PARITY_ENABLE_MASK | 0 ); - - RegVal = ((0x00000010U << DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT - | 0x00000001U << DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_CRCPARCTL1_OFFSET ,0x3F000391U ,0x10000200U); - /*############################################################################################################################ */ - - /*Register : CRCPARCTL2 @ 0XFD0700C8

- - Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a parity error occurs. Recommended values - - tPAR_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT_PW.MAX/2 and round up to next inte - er value. Values of 0, 1 and 2 are illegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. - PSU_DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX 0x40 - - Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a CRC error occurs. Recommended values: - - tCRC_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW.MAX/2 and round up to next integer - value. Values of 0, 1 and 2 are illegal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. - PSU_DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX 0x5 - - Indicates the maximum duration in number of DRAM clock cycles for which a command should be held in the Command Retry FIFO be - ore it is popped out. Every location in the Command Retry FIFO has an associated down counting timer that will use this regis - er as the start value. The down counting starts when a command is loaded into the FIFO. The timer counts down every 4 DRAM cy - les. When the counter reaches zero, the entry is popped from the FIFO. All the counters are frozen, if a C/A Parity or CRC er - or occurs before the counter reaches zero. The counter is reset to 0, after all the commands in the FIFO are retried. Recomme - ded(minimum) values: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + tPAR_ALERT_ON - max + tPAR_UNKNOWN + PHY Alert Latency(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enabled/ Only CRC is en - bled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) - + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be in terms of DRAM Clock and round up Note 2: Board de - ay(Command/Alert_n) should be considered. Note 3: Use the worst case(longer) value for PHY Latencies/Board delay Note 4: The - ecommended values are minimum value to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max value can be set - to this register is defined below: - MEMC_BURST_LENGTH == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH- - Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_D - PTH-4 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CM - _FIFO_DEPTH-8 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 Full bus Mode (C - C=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mo - e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarte - bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEP - H-6 Values of 0, 1 and 2 are illegal. - PSU_DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4 0x1f - - CRC Parity Control Register2 - (OFFSET, MASK, VALUE) (0XFD0700C8, 0x01FF1F3FU ,0x0040051FU) - RegMask = (DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK | DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK | DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK | 0 ); - - RegVal = ((0x00000040U << DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT - | 0x00000005U << DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT - | 0x0000001FU << DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_CRCPARCTL2_OFFSET ,0x01FF1F3FU ,0x0040051FU); - /*############################################################################################################################ */ - - /*Register : INIT0 @ 0XFD0700D0

- - If lower bit is enabled the SDRAM initialization routine is skipped. The upper bit decides what state the controller starts u - in when reset is removed - 00 - SDRAM Intialization routine is run after power-up - 01 - SDRAM Intialization routine is skip - ed after power-up. Controller starts up in Normal Mode - 11 - SDRAM Intialization routine is skipped after power-up. Controll - r starts up in Self-refresh Mode - 10 - SDRAM Intialization routine is run after power-up. Note: The only 2'b00 is supported - or LPDDR4 in this version of the uMCTL2. - PSU_DDRC_INIT0_SKIP_DRAM_INIT 0x0 - - Cycles to wait after driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clocks. DDR2 typically requires - 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDDR3 typically requires this to be pr - grammed for a delay of 200 us. LPDDR4 typically requires this to be programmed for a delay of 2 us. For configurations with M - MC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it up to next integer value. - PSU_DDRC_INIT0_POST_CKE_X1024 0x2 - - Cycles to wait after reset before driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clock cycles. DDR2 - pecifications typically require this to be programmed for a delay of >= 200 us. LPDDR2/LPDDR3: tINIT1 of 100 ns (min) LPDDR4: - tINIT3 of 2 ms (min) For configurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it u - to next integer value. - PSU_DDRC_INIT0_PRE_CKE_X1024 0x106 - - SDRAM Initialization Register 0 - (OFFSET, MASK, VALUE) (0XFD0700D0, 0xC3FF0FFFU ,0x00020106U) - RegMask = (DDRC_INIT0_SKIP_DRAM_INIT_MASK | DDRC_INIT0_POST_CKE_X1024_MASK | DDRC_INIT0_PRE_CKE_X1024_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_INIT0_SKIP_DRAM_INIT_SHIFT - | 0x00000002U << DDRC_INIT0_POST_CKE_X1024_SHIFT - | 0x00000106U << DDRC_INIT0_PRE_CKE_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT0_OFFSET ,0xC3FF0FFFU ,0x00020106U); - /*############################################################################################################################ */ - - /*Register : INIT1 @ 0XFD0700D4

- - Number of cycles to assert SDRAM reset signal during init sequence. This is only present for designs supporting DDR3, DDR4 or - LPDDR4 devices. For use with a DDR PHY, this should be set to a minimum of 1 - PSU_DDRC_INIT1_DRAM_RSTN_X1024 0x2 - - Cycles to wait after completing the SDRAM initialization sequence before starting the dynamic scheduler. Unit: Counts of a gl - bal timer that pulses every 32 clock cycles. There is no known specific requirement for this; it may be set to zero. - PSU_DDRC_INIT1_FINAL_WAIT_X32 0x0 - - Wait period before driving the OCD complete command to SDRAM. Unit: Counts of a global timer that pulses every 32 clock cycle - . There is no known specific requirement for this; it may be set to zero. - PSU_DDRC_INIT1_PRE_OCD_X32 0x0 - - SDRAM Initialization Register 1 - (OFFSET, MASK, VALUE) (0XFD0700D4, 0x01FF7F0FU ,0x00020000U) - RegMask = (DDRC_INIT1_DRAM_RSTN_X1024_MASK | DDRC_INIT1_FINAL_WAIT_X32_MASK | DDRC_INIT1_PRE_OCD_X32_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_INIT1_DRAM_RSTN_X1024_SHIFT - | 0x00000000U << DDRC_INIT1_FINAL_WAIT_X32_SHIFT - | 0x00000000U << DDRC_INIT1_PRE_OCD_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT1_OFFSET ,0x01FF7F0FU ,0x00020000U); - /*############################################################################################################################ */ - - /*Register : INIT2 @ 0XFD0700D8

- - Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Unit: 32 clock cycles. - PSU_DDRC_INIT2_IDLE_AFTER_RESET_X32 0x23 - - Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2/LPDDR3. Unit: 1 clock cyc - e. LPDDR2/LPDDR3 typically requires 5 x tCK delay. - PSU_DDRC_INIT2_MIN_STABLE_CLOCK_X1 0x5 - - SDRAM Initialization Register 2 - (OFFSET, MASK, VALUE) (0XFD0700D8, 0x0000FF0FU ,0x00002305U) - RegMask = (DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK | DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK | 0 ); - - RegVal = ((0x00000023U << DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT - | 0x00000005U << DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT2_OFFSET ,0x0000FF0FU ,0x00002305U); - /*############################################################################################################################ */ - - /*Register : INIT3 @ 0XFD0700DC

- - DDR2: Value to write to MR register. Bit 8 is for DLL and the setting here is ignored. The uMCTL2 sets this bit appropriately - DDR3/DDR4: Value loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LPDDR3/LPDDR4 - Value to write to MR1 - register - PSU_DDRC_INIT3_MR 0x930 - - DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setting in this register is ignored. The uMCTL2 sets those - bits appropriately. DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evaluation mode training is enabled, thi - bit is set appropriately by the uMCTL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/LPDDR3/LPDDR4 - V - lue to write to MR2 register - PSU_DDRC_INIT3_EMR 0x301 - - SDRAM Initialization Register 3 - (OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x09300301U) - RegMask = (DDRC_INIT3_MR_MASK | DDRC_INIT3_EMR_MASK | 0 ); - - RegVal = ((0x00000930U << DDRC_INIT3_MR_SHIFT - | 0x00000301U << DDRC_INIT3_EMR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT3_OFFSET ,0xFFFFFFFFU ,0x09300301U); - /*############################################################################################################################ */ - - /*Register : INIT4 @ 0XFD0700E0

- - DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 - egister mDDR: Unused - PSU_DDRC_INIT4_EMR2 0x20 - - DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to - rite to MR13 register - PSU_DDRC_INIT4_EMR3 0x200 - - SDRAM Initialization Register 4 - (OFFSET, MASK, VALUE) (0XFD0700E0, 0xFFFFFFFFU ,0x00200200U) - RegMask = (DDRC_INIT4_EMR2_MASK | DDRC_INIT4_EMR3_MASK | 0 ); - - RegVal = ((0x00000020U << DDRC_INIT4_EMR2_SHIFT - | 0x00000200U << DDRC_INIT4_EMR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT4_OFFSET ,0xFFFFFFFFU ,0x00200200U); - /*############################################################################################################################ */ - - /*Register : INIT5 @ 0XFD0700E4

- - ZQ initial calibration, tZQINIT. Present only in designs configured to support DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock - ycles. DDR3 typically requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requires 1 us. - PSU_DDRC_INIT5_DEV_ZQINIT_X32 0x21 - - Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2/LPDDR3. LPDDR2/LPDD - 3 typically requires 10 us. - PSU_DDRC_INIT5_MAX_AUTO_INIT_X1024 0x4 - - SDRAM Initialization Register 5 - (OFFSET, MASK, VALUE) (0XFD0700E4, 0x00FF03FFU ,0x00210004U) - RegMask = (DDRC_INIT5_DEV_ZQINIT_X32_MASK | DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK | 0 ); - - RegVal = ((0x00000021U << DDRC_INIT5_DEV_ZQINIT_X32_SHIFT - | 0x00000004U << DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT5_OFFSET ,0x00FF03FFU ,0x00210004U); - /*############################################################################################################################ */ - - /*Register : INIT6 @ 0XFD0700E8

- - DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs only. - PSU_DDRC_INIT6_MR4 0x0 - - DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs only. - PSU_DDRC_INIT6_MR5 0x6c0 - - SDRAM Initialization Register 6 - (OFFSET, MASK, VALUE) (0XFD0700E8, 0xFFFFFFFFU ,0x000006C0U) - RegMask = (DDRC_INIT6_MR4_MASK | DDRC_INIT6_MR5_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_INIT6_MR4_SHIFT - | 0x000006C0U << DDRC_INIT6_MR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT6_OFFSET ,0xFFFFFFFFU ,0x000006C0U); - /*############################################################################################################################ */ - - /*Register : INIT7 @ 0XFD0700EC

- - DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs only. - PSU_DDRC_INIT7_MR6 0x819 - - SDRAM Initialization Register 7 - (OFFSET, MASK, VALUE) (0XFD0700EC, 0xFFFF0000U ,0x08190000U) - RegMask = (DDRC_INIT7_MR6_MASK | 0 ); - - RegVal = ((0x00000819U << DDRC_INIT7_MR6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT7_OFFSET ,0xFFFF0000U ,0x08190000U); - /*############################################################################################################################ */ - - /*Register : DIMMCTL @ 0XFD0700F0

- - Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enab - ed. This will be required for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapped. - 0 - BG0 and BG1 are swapped i - address mirroring is enabled. - PSU_DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING 0x0 - - Enable for BG1 bit of MRS command. BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output - nversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit. Note: This has no - effect on the address of any other memory accesses, or of software-driven mode register accesses. If address mirroring is ena - led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - Enabled - 0 - Disabled - PSU_DDRC_DIMMCTL_MRS_BG1_EN 0x1 - - Enable for A17 bit of MRS command. A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, - his must be set to 0, so that the calculation of CA parity will not include A17 bit. Note: This has no effect on the address - f any other memory accesses, or of software-driven mode register accesses. - 1 - Enabled - 0 - Disabled - PSU_DDRC_DIMMCTL_MRS_A17_EN 0x0 - - Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIMM implements the Output Inversion feature by default, - which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, - A0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the uMCTL2 during the automatic initi - lization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. - or B-side mode register accesses, these bits are inverted within the uMCTL2 to compensate for this RDIMM inversion. Note: Thi - has no effect on the address of any other memory accesses, or of software-driven mode register accesses. - 1 - Implement out - ut inversion for B-side DRAMs. - 0 - Do not implement output inversion for B-side DRAMs. - PSU_DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN 0x0 - - Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations). Some UDIMMs and DD - 4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits - re swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures t - at, for mode register accesses during the automatic initialization routine, these bits are swapped within the uMCTL2 to compe - sate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they ar - swapped during the automatic MRS access to enable/disable of a particular DDR4 feature. Note: This has no effect on the addr - ss of any other memory accesses, or of software-driven mode register accesses. This is not supported for mDDR, LPDDR2, LPDDR3 - or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, - hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ranks, implement address mirroring for MRS commands to d - ring initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring) - 0 - Do - not implement address mirroring - PSU_DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN 0x0 - - Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only). This is not supported for mD - R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of software driven MR commands (via M - CTRL0/MRCTRL1), where software is responsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Send MRS commands t - each ranks seperately - 1 - (non-DDR4) Send all commands to even and odd ranks seperately - 0 - Do not stagger accesses - PSU_DDRC_DIMMCTL_DIMM_STAGGER_CS_EN 0x0 - - DIMM Control Register - (OFFSET, MASK, VALUE) (0XFD0700F0, 0x0000003FU ,0x00000010U) - RegMask = (DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK | DDRC_DIMMCTL_MRS_BG1_EN_MASK | DDRC_DIMMCTL_MRS_A17_EN_MASK | DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK | DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK | DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT - | 0x00000001U << DDRC_DIMMCTL_MRS_BG1_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_MRS_A17_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DIMMCTL_OFFSET ,0x0000003FU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : RANKCTL @ 0XFD0700F4

- - Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e writes to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should c - nsider both PHY requirement and ODT requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for value of tphy_wrcs - ap) If CRC feature is enabled, should be increased by 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increa - ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be increased by 1. - ODT requirement: The value programmed - n this register takes care of the ODT switch off timing requirement when switching ranks during writes. For LPDDR4, the requi - ement is ODTLoff - ODTLon - BL/2 + 1 For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY requirement - or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and round it u - to the next integer. - PSU_DDRC_RANKCTL_DIFF_RANK_WR_GAP 0x6 - - Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e reads to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should co - sider both PHY requirement and ODT requirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for value of tphy_rdcsg - p) If read preamble is set to 2tCK(DDR4/LPDDR4 only), should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 onl - ), should be increased by 1. - ODT requirement: The value programmed in this register takes care of the ODT switch off timing - requirement when switching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY r - quirement or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and - ound it up to the next integer. - PSU_DDRC_RANKCTL_DIFF_RANK_RD_GAP 0x6 - - Only present for multi-rank configurations. Background: Reads to the same rank can be performed back-to-back. Reads to differ - nt ranks require additional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is to avoid possible data bus content - on as well as to give PHY enough time to switch the delay when changing ranks. The uMCTL2 arbitrates for bus access on a cycl - -by-cycle basis; therefore after a read is scheduled, there are few clock cycles (determined by the value on RANKCTL.diff_ran - _rd_gap register) in which only reads from the same rank are eligible to be scheduled. This prevents reads from other ranks f - om having fair access to the data bus. This parameter represents the maximum number of reads that can be scheduled consecutiv - ly to the same rank. After this number is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by the scheduler to - llow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fair - ess. This feature can be DISABLED by setting this register to 0. When set to 0, the Controller will stay on the same rank as - ong as commands are available for it. Minimum programmable value is 0 (feature disabled) and maximum programmable value is 0x - . FOR PERFORMANCE ONLY. - PSU_DDRC_RANKCTL_MAX_RANK_RD 0xf - - Rank Control Register - (OFFSET, MASK, VALUE) (0XFD0700F4, 0x00000FFFU ,0x0000066FU) - RegMask = (DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK | DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK | DDRC_RANKCTL_MAX_RANK_RD_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT - | 0x00000006U << DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT - | 0x0000000FU << DDRC_RANKCTL_MAX_RANK_RD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RANKCTL_OFFSET ,0x00000FFFU ,0x0000066FU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG0 @ 0XFD070100

- - Minimum time between write and precharge to same bank. Unit: Clocks Specifications: WL + BL/2 + tWR = approximately 8 cycles - 15 ns = 14 clocks @400MHz and less for lower frequencies where: - WL = write latency - BL = burst length. This must match th - value programmed in the BL bit of the mode register to the SDRAM. BST (burst terminate) is not supported at present. - tWR = - Write recovery time. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this - arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For configurations - with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer value. - PSU_DDRC_DRAMTMG0_WR2PRE 0x11 - - tFAW Valid only when 8 or more banks(or banks x bank groups) are present. In 8-bank design, at most 4 banks must be activated - in a rolling window of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program this to (tFAW/2) and round up to next - nteger value. In a 4-bank design, set this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. Unit: Clocks - PSU_DDRC_DRAMTMG0_T_FAW 0xc - - tRAS(max): Maximum time between activate and precharge to same bank. This is the maximum time that a page can be kept open Mi - imum value of this register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO=2, program this to (tRAS(max)-1)/2 - No rounding up. Unit: Multiples of 1024 clocks. - PSU_DDRC_DRAMTMG0_T_RAS_MAX 0x24 - - tRAS(min): Minimum time between activate and precharge to the same bank. For configurations with MEMC_FREQ_RATIO=2, 1T mode, - rogram this to tRAS(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, program this t - (tRAS(min)/2) and round it up to the next integer value. Unit: Clocks - PSU_DDRC_DRAMTMG0_T_RAS_MIN 0x12 - - SDRAM Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x110C2412U) - RegMask = (DDRC_DRAMTMG0_WR2PRE_MASK | DDRC_DRAMTMG0_T_FAW_MASK | DDRC_DRAMTMG0_T_RAS_MAX_MASK | DDRC_DRAMTMG0_T_RAS_MIN_MASK | 0 ); - - RegVal = ((0x00000011U << DDRC_DRAMTMG0_WR2PRE_SHIFT - | 0x0000000CU << DDRC_DRAMTMG0_T_FAW_SHIFT - | 0x00000024U << DDRC_DRAMTMG0_T_RAS_MAX_SHIFT - | 0x00000012U << DDRC_DRAMTMG0_T_RAS_MIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG0_OFFSET ,0x7F3F7F3FU ,0x110C2412U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG1 @ 0XFD070104

- - tXP: Minimum time after power-down exit to any operation. For DDR3, this should be programmed to tXPDLL if slow powerdown exi - is selected in MR0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For configurations with MEMC_FREQ_RATIO=2, - rogram this to (tXP/2) and round it up to the next integer value. Units: Clocks - PSU_DDRC_DRAMTMG1_T_XP 0x4 - - tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL/2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - D - R4: Max of following two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 - LPDDR2: Depends on if it's LPDDR2 - S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + tRTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) - 4 - LPDDR4: BL - 2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For conf - gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer val - e. Unit: Clocks. - PSU_DDRC_DRAMTMG1_RD2PRE 0x4 - - tRC: Minimum time between activates to same bank. For configurations with MEMC_FREQ_RATIO=2, program this to (tRC/2) and roun - up to next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG1_T_RC 0x19 - - SDRAM Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x00040419U) - RegMask = (DDRC_DRAMTMG1_T_XP_MASK | DDRC_DRAMTMG1_RD2PRE_MASK | DDRC_DRAMTMG1_T_RC_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DRAMTMG1_T_XP_SHIFT - | 0x00000004U << DDRC_DRAMTMG1_RD2PRE_SHIFT - | 0x00000019U << DDRC_DRAMTMG1_T_RC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG1_OFFSET ,0x001F1F7FU ,0x00040419U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG2 @ 0XFD070108

- - Set to WL Time from write command to write data on SDRAM interface. This must be set to WL. For mDDR, it should normally be s - t to 1. Note that, depending on the PHY, if using RDIMM, it may be necessary to use a value of WL + 1 to compensate for the e - tra cycle of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above - equation by 2, and round it up to next integer. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAININ - is set), as the DFI read and write latencies defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks - PSU_DDRC_DRAMTMG2_WRITE_LATENCY 0x7 - - Set to RL Time from read command to read data on SDRAM interface. This must be set to RL. Note that, depending on the PHY, if - using RDIMM, it mat be necessary to use a value of RL + 1 to compensate for the extra cycle of latency through the RDIMM For - onfigurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next inte - er. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAINING is set), as the DFI read and write latenci - s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks - PSU_DDRC_DRAMTMG2_READ_LATENCY 0x8 - - DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL LPDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL - PDDR4(DQ ODT is Disabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL LPDDR4(DQ ODT is Enabled) : RL + B - /2 + RU(tDQSCKmax/tCK) + RD_POSTAMBLE - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write command. Include - time for bus turnaround and all per-bank, per-rank, and global constraints. Unit: Clocks. Where: - WL = write latency - BL = - urst length. This must match the value programmed in the BL bit of the mode register to the SDRAM - RL = read latency = CAS l - tency - WR_PREAMBLE = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = read postamble. This is unique to L - DDR4. For LPDDR2/LPDDR3/LPDDR4, if derating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should be used. For conf - gurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG2_RD2WR 0x6 - - DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimum time from write command to read command for same ba - k group. In others, minimum time from write command to read command. Includes time for bus turnaround, recovery times, and al - per-bank, per-rank, and global constraints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burs - length. This must match the value programmed in the BL bit of the mode register to the SDRAM - tWTR_L = internal write to re - d command delay for same bank group. This comes directly from the SDRAM specification. - tWTR = internal write to read comman - delay. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 operation. For configu - ations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG2_WR2RD 0xe - - SDRAM Timing Register 2 - (OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060EU) - RegMask = (DDRC_DRAMTMG2_WRITE_LATENCY_MASK | DDRC_DRAMTMG2_READ_LATENCY_MASK | DDRC_DRAMTMG2_RD2WR_MASK | DDRC_DRAMTMG2_WR2RD_MASK | 0 ); - - RegVal = ((0x00000007U << DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT - | 0x00000008U << DDRC_DRAMTMG2_READ_LATENCY_SHIFT - | 0x00000006U << DDRC_DRAMTMG2_RD2WR_SHIFT - | 0x0000000EU << DDRC_DRAMTMG2_WR2RD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG2_OFFSET ,0x3F3F3F3FU ,0x0708060EU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG3 @ 0XFD07010C

- - Time to wait after a mode register write or read (MRW or MRR). Present only in designs configured to support LPDDR2, LPDDR3 o - LPDDR4. LPDDR2 typically requires value of 5. LPDDR3 typically requires value of 10. LPDDR4: Set this to the larger of tMRW - nd tMRWCKEL. For LPDDR2, this register is used for the time from a MRW/MRR to all other commands. For LDPDR3, this register i - used for the time from a MRW/MRR to a MRW/MRR. - PSU_DDRC_DRAMTMG3_T_MRW 0x5 - - tMRD: Cycles to wait after a mode register write or read. Depending on the connected SDRAM, tMRD represents: DDR2/mDDR: Time - rom MRS to any command DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Time from MRS to non-MRS command For c - nfigurations with MEMC_FREQ_RATIO=2, program this to (tMRD/2) and round it up to the next integer value. If C/A parity for DD - 4 is used, set to tMRD_PAR(tMOD+PL) instead. - PSU_DDRC_DRAMTMG3_T_MRD 0x4 - - tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode command and following non-load mode command. If C/A pari - y for DDR4 is used, set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or tMOD/2 (rounded up to next integer - if MEMC_FREQ_RATIO=2. Note that if using RDIMM, depending on the PHY, it may be necessary to use a value of tMOD + 1 or (tMO - + 1)/2 to compensate for the extra cycle of latency applied to mode register writes by the RDIMM chip. - PSU_DDRC_DRAMTMG3_T_MOD 0xc - - SDRAM Timing Register 3 - (OFFSET, MASK, VALUE) (0XFD07010C, 0x3FF3F3FFU ,0x0050400CU) - RegMask = (DDRC_DRAMTMG3_T_MRW_MASK | DDRC_DRAMTMG3_T_MRD_MASK | DDRC_DRAMTMG3_T_MOD_MASK | 0 ); - - RegVal = ((0x00000005U << DDRC_DRAMTMG3_T_MRW_SHIFT - | 0x00000004U << DDRC_DRAMTMG3_T_MRD_SHIFT - | 0x0000000CU << DDRC_DRAMTMG3_T_MOD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG3_OFFSET ,0x3FF3F3FFU ,0x0050400CU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG4 @ 0XFD070110

- - tRCD - tAL: Minimum time from activate to read or write command to same bank. For configurations with MEMC_FREQ_RATIO=2, prog - am this to ((tRCD - tAL)/2) and round it up to the next integer value. Minimum value allowed for this register is 1, which im - lies minimum (tRCD - tAL) value to be 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RCD 0x8 - - DDR4: tCCD_L: This is the minimum time between two reads or two writes for same bank group. Others: tCCD: This is the minimum - time between two reads or two writes. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_L/2 or tCCD/2) and rou - d it up to the next integer value. Unit: clocks. - PSU_DDRC_DRAMTMG4_T_CCD 0x3 - - DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' for same bank group. Others: tRRD: Minimum time betwee - activates from bank 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program this to (tRRD_L/2 or tRRD/2) and round - it up to the next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RRD 0x3 - - tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ_RATIO=1 configurations, t_rp should be set to RoundU - (tRP/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(tRP/tCK)/2) + 1. For MEMC_FREQ_RATIO - 2 configurations in LPDDR4, t_rp should be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RP 0x9 - - SDRAM Timing Register 4 - (OFFSET, MASK, VALUE) (0XFD070110, 0x1F0F0F1FU ,0x08030309U) - RegMask = (DDRC_DRAMTMG4_T_RCD_MASK | DDRC_DRAMTMG4_T_CCD_MASK | DDRC_DRAMTMG4_T_RRD_MASK | DDRC_DRAMTMG4_T_RP_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_DRAMTMG4_T_RCD_SHIFT - | 0x00000003U << DDRC_DRAMTMG4_T_CCD_SHIFT - | 0x00000003U << DDRC_DRAMTMG4_T_RRD_SHIFT - | 0x00000009U << DDRC_DRAMTMG4_T_RP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG4_OFFSET ,0x1F0F0F1FU ,0x08030309U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG5 @ 0XFD070114

- - This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stab - e time before SRX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEH - DDR2: 1 - DDR3: tCKSRX - DDR4: - tCKSRX For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next in - eger. - PSU_DDRC_DRAMTMG5_T_CKSRX 0x6 - - This is the time after Self Refresh Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay afte - SRE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 - DDR3: max (10 ns, 5 tCK) - DDR4: - ax (10 ns, 5 tCK) For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up - to next integer. - PSU_DDRC_DRAMTMG5_T_CKSRE 0x6 - - Minimum CKE low width for Self refresh or Self refresh power down entry to exit timing in memory clock cycles. Recommended se - tings: - mDDR: tRFC - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: tCKE - DDR3: tCKE + 1 - DDR4: tCKE - 1 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next intege - . - PSU_DDRC_DRAMTMG5_T_CKESR 0x4 - - Minimum number of cycles of CKE HIGH/LOW during power-down and self refresh. - LPDDR2/LPDDR3 mode: Set this to the larger of - CKE or tCKESR - LPDDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/non-LPDDR3/non-LPDDR4 designs: Set - his to tCKE value. For configurations with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and round it up to th - next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG5_T_CKE 0x3 - - SDRAM Timing Register 5 - (OFFSET, MASK, VALUE) (0XFD070114, 0x0F0F3F1FU ,0x06060403U) - RegMask = (DDRC_DRAMTMG5_T_CKSRX_MASK | DDRC_DRAMTMG5_T_CKSRE_MASK | DDRC_DRAMTMG5_T_CKESR_MASK | DDRC_DRAMTMG5_T_CKE_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_DRAMTMG5_T_CKSRX_SHIFT - | 0x00000006U << DDRC_DRAMTMG5_T_CKSRE_SHIFT - | 0x00000004U << DDRC_DRAMTMG5_T_CKESR_SHIFT - | 0x00000003U << DDRC_DRAMTMG5_T_CKE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG5_OFFSET ,0x0F0F3F1FU ,0x06060403U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG6 @ 0XFD070118

- - This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after - PDE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, program this to recom - ended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3 - devices. - PSU_DDRC_DRAMTMG6_T_CKDPDE 0x1 - - This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock - table time before DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, pr - gram this to recommended value divided by two and round it up to next integer. This is only present for designs supporting mD - R or LPDDR2 devices. - PSU_DDRC_DRAMTMG6_T_CKDPDX 0x1 - - This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing Clock Stop Exit. Specifies the - lock stable time before next command after Clock Stop Exit. Recommended settings: - mDDR: 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + - 2 - LPDDR4: tXP + 2 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it - p to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG6_T_CKCSX 0x4 - - SDRAM Timing Register 6 - (OFFSET, MASK, VALUE) (0XFD070118, 0x0F0F000FU ,0x01010004U) - RegMask = (DDRC_DRAMTMG6_T_CKDPDE_MASK | DDRC_DRAMTMG6_T_CKDPDX_MASK | DDRC_DRAMTMG6_T_CKCSX_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_DRAMTMG6_T_CKDPDE_SHIFT - | 0x00000001U << DDRC_DRAMTMG6_T_CKDPDX_SHIFT - | 0x00000004U << DDRC_DRAMTMG6_T_CKCSX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG6_OFFSET ,0x0F0F000FU ,0x01010004U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG7 @ 0XFD07011C

- - This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. - ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configurations with MEMC_FREQ_RATIO=2, program t - is to recommended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or L - DDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG7_T_CKPDE 0x6 - - This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable - time before PDX. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For configurations with MEMC_FREQ_RATIO= - , program this to recommended value divided by two and round it up to next integer. This is only present for designs supporti - g mDDR or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG7_T_CKPDX 0x6 - - SDRAM Timing Register 7 - (OFFSET, MASK, VALUE) (0XFD07011C, 0x00000F0FU ,0x00000606U) - RegMask = (DDRC_DRAMTMG7_T_CKPDE_MASK | DDRC_DRAMTMG7_T_CKPDX_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_DRAMTMG7_T_CKPDE_SHIFT - | 0x00000006U << DDRC_DRAMTMG7_T_CKPDX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG7_OFFSET ,0x00000F0FU ,0x00000606U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG8 @ 0XFD070120

- - tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and Geardown mode). For configurations with MEMC_FREQ_RAT - O=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Thi - is applicable to only ZQCL/ZQCS commands. Note: Ensure this is less than or equal to t_xs_x32. - PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x4 - - tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in Self Refresh Abort. For configurations with MEMC_FREQ_ - ATIO=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: - nsure this is less than or equal to t_xs_x32. - PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x4 - - tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - bove value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DR4 SDRAMs. - PSU_DDRC_DRAMTMG8_T_XS_DLL_X32 0xd - - tXS: Exit Self Refresh to commands not requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DDR4 SDRAMs. - PSU_DDRC_DRAMTMG8_T_XS_X32 0x6 - - SDRAM Timing Register 8 - (OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x04040D06U) - RegMask = (DDRC_DRAMTMG8_T_XS_FAST_X32_MASK | DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK | DDRC_DRAMTMG8_T_XS_DLL_X32_MASK | DDRC_DRAMTMG8_T_XS_X32_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT - | 0x00000004U << DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT - | 0x0000000DU << DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT - | 0x00000006U << DDRC_DRAMTMG8_T_XS_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG8_OFFSET ,0x7F7F7F7FU ,0x04040D06U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG9 @ 0XFD070124

- - DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present only with MEMC_FREQ_RATIO=2 - PSU_DDRC_DRAMTMG9_DDR4_WR_PREAMBLE 0x0 - - tCCD_S: This is the minimum time between two reads or two writes for different bank group. For bank switching (from bank 'a' - o bank 'b'), the minimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_S/2) and ro - nd it up to the next integer value. Present only in designs configured to support DDR4. Unit: clocks. - PSU_DDRC_DRAMTMG9_T_CCD_S 0x2 - - tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for different bank group. For configurations with MEMC_FREQ_ - ATIO=2, program this to (tRRD_S/2) and round it up to the next integer value. Present only in designs configured to support D - R4. Unit: Clocks. - PSU_DDRC_DRAMTMG9_T_RRD_S 0x2 - - CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command for different bank group. Includes time for bus turn - round, recovery times, and all per-bank, per-rank, and global constraints. Present only in designs configured to support DDR4 - Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burst length. This must match the value programm - d in the BL bit of the mode register to the SDRAM - tWTR_S = internal write to read command delay for different bank group. T - is comes directly from the SDRAM specification. For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using - he above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG9_WR2RD_S 0xb - - SDRAM Timing Register 9 - (OFFSET, MASK, VALUE) (0XFD070124, 0x40070F3FU ,0x0002020BU) - RegMask = (DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK | DDRC_DRAMTMG9_T_CCD_S_MASK | DDRC_DRAMTMG9_T_RRD_S_MASK | DDRC_DRAMTMG9_WR2RD_S_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT - | 0x00000002U << DDRC_DRAMTMG9_T_CCD_S_SHIFT - | 0x00000002U << DDRC_DRAMTMG9_T_RRD_S_SHIFT - | 0x0000000BU << DDRC_DRAMTMG9_WR2RD_S_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG9_OFFSET ,0x40070F3FU ,0x0002020BU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG11 @ 0XFD07012C

- - tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program - this to (tXMPDLL/2) and round it up to the next integer value. Present only in designs configured to support DDR4. Unit: Mult - ples of 32 clocks. - PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x6f - - tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For configurations with MEMC_FREQ_RATIO=2, program this t - RoundUp(tMPX_LH/2)+1. Present only in designs configured to support DDR4. Unit: clocks. - PSU_DDRC_DRAMTMG11_T_MPX_LH 0x7 - - tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_FREQ_RATIO=2, program this to (tMPX_S/2) and round it - up to the next integer value. Present only in designs configured to support DDR4. Unit: Clocks. - PSU_DDRC_DRAMTMG11_T_MPX_S 0x1 - - tCKMPE: Minimum valid clock requirement after MPSM entry. Present only in designs configured to support DDR4. Unit: Clocks. F - r configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next i - teger. - PSU_DDRC_DRAMTMG11_T_CKMPE 0xe - - SDRAM Timing Register 11 - (OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x6F07010EU) - RegMask = (DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK | DDRC_DRAMTMG11_T_MPX_LH_MASK | DDRC_DRAMTMG11_T_MPX_S_MASK | DDRC_DRAMTMG11_T_CKMPE_MASK | 0 ); - - RegVal = ((0x0000006FU << DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT - | 0x00000007U << DDRC_DRAMTMG11_T_MPX_LH_SHIFT - | 0x00000001U << DDRC_DRAMTMG11_T_MPX_S_SHIFT - | 0x0000000EU << DDRC_DRAMTMG11_T_CKMPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG11_OFFSET ,0x7F1F031FU ,0x6F07010EU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG12 @ 0XFD070130

- - tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larger of tESCKE or tCMDCKE For configurations with MEMC_ - REQ_RATIO=2, program this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_CMDCKE 0x2 - - tCKEHCMD: Valid command requirement after CKE input HIGH. For configurations with MEMC_FREQ_RATIO=2, program this to (tCKEHCM - /2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_CKEHCMD 0x6 - - tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. For configurations with MEMC_FREQ_RATIO=2, program th - s to (tMRD_PDA/2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_MRD_PDA 0x8 - - SDRAM Timing Register 12 - (OFFSET, MASK, VALUE) (0XFD070130, 0x00030F1FU ,0x00020608U) - RegMask = (DDRC_DRAMTMG12_T_CMDCKE_MASK | DDRC_DRAMTMG12_T_CKEHCMD_MASK | DDRC_DRAMTMG12_T_MRD_PDA_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_DRAMTMG12_T_CMDCKE_SHIFT - | 0x00000006U << DDRC_DRAMTMG12_T_CKEHCMD_SHIFT - | 0x00000008U << DDRC_DRAMTMG12_T_MRD_PDA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG12_OFFSET ,0x00030F1FU ,0x00020608U); - /*############################################################################################################################ */ - - /*Register : ZQCTL0 @ 0XFD070180

- - - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Register DBGCMD.zq_calib_short can be used instead to is - ue ZQ calibration request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibration) commands based on ZQCTL1.t_zq_s - ort_interval_x1024. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_DIS_AUTO_ZQ 0x1 - - - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Powerdown exit. Only applicable when run in DDR3 - or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Power - own exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present for designs suppo - ting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_DIS_SRX_ZQCL 0x0 - - - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQCL/ZQCS/MPC(ZQ calibration) commands are sent to one r - nk at a time with tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that commands to different ranks do not ov - rlap. - 0 - ZQ resistor is not shared. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_ZQ_RESISTOR_SHARED 0x0 - - - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. - 0 - Enable - ssuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. This is only present for des - gns supporting DDR4 devices. - PSU_DDRC_ZQCTL0_DIS_MPSMX_ZQCL 0x0 - - tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Number of cycles of NOP required after a ZQCL (ZQ calibrat - on long)/MPC(ZQ Start) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2: DDR3/DDR4: program this to tZQo - er/2 and round it up to the next integer value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to the next integer va - ue. LPDDR4: program this to tZQCAL/2 and round it up to the next integer value. Unit: Clock cycles. This is only present for - esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_T_ZQ_LONG_NOP 0x100 - - tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of NOP required after a ZQCS (ZQ calibration short)/MPC - ZQ Latch) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program this to tZQCS/2 and round it up to t - e next integer value. Unit: Clock cycles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devic - s. - PSU_DDRC_ZQCTL0_T_ZQ_SHORT_NOP 0x40 - - ZQ Control Register 0 - (OFFSET, MASK, VALUE) (0XFD070180, 0xF7FF03FFU ,0x81000040U) - RegMask = (DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK | DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK | DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK | DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK | DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK | DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT - | 0x00000000U << DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT - | 0x00000000U << DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT - | 0x00000000U << DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT - | 0x00000100U << DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT - | 0x00000040U << DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ZQCTL0_OFFSET ,0xF7FF03FFU ,0x81000040U); - /*############################################################################################################################ */ - - /*Register : ZQCTL1 @ 0XFD070184

- - tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibration Reset) command is issued to SDRAM. For configurati - ns with MEMC_FREQ_RATIO=2, program this to tZQReset/2 and round it up to the next integer value. Unit: Clock cycles. This is - nly present for designs supporting LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL1_T_ZQ_RESET_NOP 0x20 - - Average interval to wait between automatically issuing ZQCS (ZQ calibration short)/MPC(ZQ calibration) commands to DDR3/DDR4/ - PDDR2/LPDDR3/LPDDR4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles. This is only present for designs - upporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x19707 - - ZQ Control Register 1 - (OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x02019707U) - RegMask = (DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK | DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK | 0 ); - - RegVal = ((0x00000020U << DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT - | 0x00019707U << DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ZQCTL1_OFFSET ,0x3FFFFFFFU ,0x02019707U); - /*############################################################################################################################ */ - - /*Register : DFITMG0 @ 0XFD070190

- - Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock. - PSU_DDRC_DFITMG0_DFI_T_CTRL_DELAY 0x4 - - Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value. - PSU_DDRC_DFITMG0_DFI_RDDATA_USE_SDR 0x1 - - Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks - PSU_DDRC_DFITMG0_DFI_T_RDDATA_EN 0xb - - Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e. - PSU_DDRC_DFITMG0_DFI_WRDATA_USE_SDR 0x1 - - Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks - PSU_DDRC_DFITMG0_DFI_TPHY_WRDATA 0x2 - - Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM. - PSU_DDRC_DFITMG0_DFI_TPHY_WRLAT 0xb - - DFI Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD070190, 0x1FBFBF3FU ,0x048B820BU) - RegMask = (DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK | DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK | DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK | DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK | DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK | DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT - | 0x00000001U << DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT - | 0x0000000BU << DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT - | 0x00000001U << DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT - | 0x00000002U << DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT - | 0x0000000BU << DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG0_OFFSET ,0x1FBFBF3FU ,0x048B820BU); - /*############################################################################################################################ */ - - /*Register : DFITMG1 @ 0XFD070194

- - Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated command is driven. - his field is used for CAL mode, should be set to '0' or the value which matches the CAL mode register setting in the DRAM. If - the PHY can add the latency for CAL mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 - PSU_DDRC_DFITMG1_DFI_T_CMD_LAT 0x0 - - Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated dfi_parity_in signa - is driven. - PSU_DDRC_DFITMG1_DFI_T_PARIN_LAT 0x0 - - Specifies the number of DFI clocks between when the dfi_wrdata_en signal is asserted and when the corresponding write data tr - nsfer is completed on the DRAM bus. This corresponds to the DFI timing parameter twrdata_delay. Refer to PHY specification fo - correct value. For DFI 3.0 PHY, set to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI 2.1 PHY, set to - phy_wrdata + (delay of DFI write data to the DRAM). Value to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ - RATIO=2, divide PHY's value by 2 and round up to next integer. If using DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Uni - : Clocks - PSU_DDRC_DFITMG1_DFI_T_WRDATA_DELAY 0x3 - - Specifies the number of DFI clock cycles from the assertion of the dfi_dram_clk_disable signal on the DFI until the clock to - he DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase - ligned, this timing parameter should be rounded up to the next integer value. - PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE 0x3 - - Specifies the number of DFI clock cycles from the de-assertion of the dfi_dram_clk_disable signal on the DFI until the first - alid rising edge of the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the DFI clock and the memory clock are - not phase aligned, this timing parameter should be rounded up to the next integer value. - PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE 0x4 - - DFI Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD070194, 0xF31F0F0FU ,0x00030304U) - RegMask = (DDRC_DFITMG1_DFI_T_CMD_LAT_MASK | DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK | DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK | DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK | DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT - | 0x00000000U << DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT - | 0x00000003U << DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT - | 0x00000003U << DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT - | 0x00000004U << DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG1_OFFSET ,0xF31F0F0FU ,0x00030304U); - /*############################################################################################################################ */ - - /*Register : DFILPCFG0 @ 0XFD070198

- - Setting for DFI's tlp_resp time. Same value is used for both Power Down, Self Refresh, Deep Power Down and Maximum Power Savi - g modes. DFI 2.1 specification onwards, recommends using a fixed value of 7 always. - PSU_DDRC_DFILPCFG0_DFI_TLP_RESP 0x7 - - Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 - cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - - 31072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting mDDR or LPDDR2/LPDDR3 device - . - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD 0x0 - - Enables DFI Low Power interface handshaking during Deep Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled This is only pres - nt for designs supporting mDDR or LPDDR2/LPDDR3 devices. - PSU_DDRC_DFILPCFG0_DFI_LP_EN_DPD 0x0 - - Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cy - les - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 131 - 72 cycles - 0xE - 262144 cycles - 0xF - Unlimited - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR 0x0 - - Enables DFI Low Power interface handshaking during Self Refresh Entry/Exit. - 0 - Disabled - 1 - Enabled - PSU_DDRC_DFILPCFG0_DFI_LP_EN_SR 0x1 - - Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycl - s - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 20 - 8 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 13107 - cycles - 0xE - 262144 cycles - 0xF - Unlimited - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD 0x0 - - Enables DFI Low Power interface handshaking during Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled - PSU_DDRC_DFILPCFG0_DFI_LP_EN_PD 0x1 - - DFI Low Power Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070198, 0x0FF1F1F1U ,0x07000101U) - RegMask = (DDRC_DFILPCFG0_DFI_TLP_RESP_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK | DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK | DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK | DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK | 0 ); - - RegVal = ((0x00000007U << DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT - | 0x00000001U << DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT - | 0x00000001U << DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFILPCFG0_OFFSET ,0x0FF1F1F1U ,0x07000101U); - /*############################################################################################################################ */ - - /*Register : DFILPCFG1 @ 0XFD07019C

- - Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - - 16 cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0 - D - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting DDR4 devices. - PSU_DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM 0x2 - - Enables DFI Low Power interface handshaking during Maximum Power Saving Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is - only present for designs supporting DDR4 devices. - PSU_DDRC_DFILPCFG1_DFI_LP_EN_MPSM 0x1 - - DFI Low Power Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD07019C, 0x000000F1U ,0x00000021U) - RegMask = (DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK | DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT - | 0x00000001U << DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFILPCFG1_OFFSET ,0x000000F1U ,0x00000021U); - /*############################################################################################################################ */ - - /*Register : DFIUPD1 @ 0XFD0701A4

- - This is the minimum amount of time between uMCTL2 initiated DFI update requests (which is executed whenever the uMCTL2 is idl - ). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the fir - t read request when the uMCTL2 is idle. Unit: 1024 clocks - PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024 0x41 - - This is the maximum amount of time between uMCTL2 initiated DFI update requests. This timer resets with each update request; - hen the timer expires dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd_ackx is received. PHY can use this - idle time to recalibrate the delay lines to the DLLs. The DFI controller update is also used to reset PHY FIFO pointers in ca - e of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. - Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x - 024. Unit: 1024 clocks - PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe2 - - DFI Update Register 1 - (OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E2U) - RegMask = (DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK | DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK | 0 ); - - RegVal = ((0x00000041U << DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT - | 0x000000E2U << DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFIUPD1_OFFSET ,0x00FF00FFU ,0x004100E2U); - /*############################################################################################################################ */ - - /*Register : DFIMISC @ 0XFD0701B0

- - Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signals are active low - 1: Signals are active high - PSU_DDRC_DFIMISC_DFI_DATA_CS_POLARITY 0x0 - - DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. - 1 - PHY implements DBI functionality. Present only - in designs configured to support DDR4 and LPDDR4. - PSU_DDRC_DFIMISC_PHY_DBI_MODE 0x0 - - PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialisa - ion - PSU_DDRC_DFIMISC_DFI_INIT_COMPLETE_EN 0x0 - - DFI Miscellaneous Control Register - (OFFSET, MASK, VALUE) (0XFD0701B0, 0x00000007U ,0x00000000U) - RegMask = (DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK | DDRC_DFIMISC_PHY_DBI_MODE_MASK | DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT - | 0x00000000U << DDRC_DFIMISC_PHY_DBI_MODE_SHIFT - | 0x00000000U << DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFIMISC_OFFSET ,0x00000007U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DFITMG2 @ 0XFD0701B4

- - >Number of clocks between when a read command is sent on the DFI control interface and when the associated dfi_rddata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY specification for correct value. - PSU_DDRC_DFITMG2_DFI_TPHY_RDCSLAT 0x9 - - Number of clocks between when a write command is sent on the DFI control interface and when the associated dfi_wrdata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY specification for correct value. - PSU_DDRC_DFITMG2_DFI_TPHY_WRCSLAT 0x6 - - DFI Timing Register 2 - (OFFSET, MASK, VALUE) (0XFD0701B4, 0x00003F3FU ,0x00000906U) - RegMask = (DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK | DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK | 0 ); - - RegVal = ((0x00000009U << DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT - | 0x00000006U << DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG2_OFFSET ,0x00003F3FU ,0x00000906U); - /*############################################################################################################################ */ - - /*Register : DBICTL @ 0XFD0701C0

- - Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read DBI is enabled. This signal must be set the same value - as DRAM's mode register. - DDR4: MR5 bit A12. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[6] - PSU_DDRC_DBICTL_RD_DBI_EN 0x0 - - Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Write DBI is enabled. This signal must be set the same va - ue as DRAM's mode register. - DDR4: MR5 bit A11. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[7] - PSU_DDRC_DBICTL_WR_DBI_EN 0x0 - - DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. This signal must be set the same logical value as DRAM's - mode register. - DDR4: Set this to same value as MR5 bit A10. When x4 devices are used, this signal must be set to 0. - LPDDR - : Set this to inverted value of MR13[5] which is opposite polarity from this signal - PSU_DDRC_DBICTL_DM_EN 0x1 - - DM/DBI Control Register - (OFFSET, MASK, VALUE) (0XFD0701C0, 0x00000007U ,0x00000001U) - RegMask = (DDRC_DBICTL_RD_DBI_EN_MASK | DDRC_DBICTL_WR_DBI_EN_MASK | DDRC_DBICTL_DM_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBICTL_RD_DBI_EN_SHIFT - | 0x00000000U << DDRC_DBICTL_WR_DBI_EN_SHIFT - | 0x00000001U << DDRC_DBICTL_DM_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBICTL_OFFSET ,0x00000007U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP0 @ 0XFD070200

- - Selects the HIF address bit used as rank address bit 0. Valid Range: 0 to 27, and 31 Internal Base: 6 The selected HIF addres - bit is determined by adding the internal base to the value of this field. If set to 31, rank address bit 0 is set to 0. - PSU_DDRC_ADDRMAP0_ADDRMAP_CS_BIT0 0x1f - - Address Map Register 0 - (OFFSET, MASK, VALUE) (0XFD070200, 0x0000001FU ,0x0000001FU) - RegMask = (DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK | 0 ); - - RegVal = ((0x0000001FU << DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP0_OFFSET ,0x0000001FU ,0x0000001FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP1 @ 0XFD070204

- - Selects the HIF address bit used as bank address bit 2. Valid Range: 0 to 29 and 31 Internal Base: 4 The selected HIF address - bit is determined by adding the internal base to the value of this field. If set to 31, bank address bit 2 is set to 0. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B2 0x1f - - Selects the HIF address bits used as bank address bit 1. Valid Range: 0 to 30 Internal Base: 3 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B1 0xa - - Selects the HIF address bits used as bank address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B0 0xa - - Address Map Register 1 - (OFFSET, MASK, VALUE) (0XFD070204, 0x001F1F1FU ,0x001F0A0AU) - RegMask = (DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK | DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK | DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK | 0 ); - - RegVal = ((0x0000001FU << DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT - | 0x0000000AU << DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT - | 0x0000000AU << DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP1_OFFSET ,0x001F1F1FU ,0x001F0A0AU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP2 @ 0XFD070208

- - - Full bus width mode: Selects the HIF address bit used as column address bit 5. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 6. - Quarter bus width mode: Selects the HIF address bit used as column address bit 7 . Vali - Range: 0 to 7, and 15 Internal Base: 5 The selected HIF address bit is determined by adding the internal base to the value o - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B5 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 4. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 5. - Quarter bus width mode: Selects the HIF address bit used as column address bit 6. Valid - Range: 0 to 7, and 15 Internal Base: 4 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B4 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 3. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 4. - Quarter bus width mode: Selects the HIF address bit used as column address bit 5. Valid - Range: 0 to 7 Internal Base: 3 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=16, it is required to program this to 0, hence register does not exist i - this case. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B3 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 2. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 3. - Quarter bus width mode: Selects the HIF address bit used as column address bit 4. Valid - Range: 0 to 7 Internal Base: 2 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 or 16, it is required to program this to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B2 0x0 - - Address Map Register 2 - (OFFSET, MASK, VALUE) (0XFD070208, 0x0F0F0F0FU ,0x00000000U) - RegMask = (DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP2_OFFSET ,0x0F0F0F0FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP3 @ 0XFD07020C

- - - Full bus width mode: Selects the HIF address bit used as column address bit 9. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: Selects the HIF address bit used as - column address bit 13 (11 in LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected HIF address bit i - determined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: - er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source addr - ss bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus an - hence column bit 10 is used. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B9 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 8. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 9. - Quarter bus width mode: Selects the HIF address bit used as column address bit 11 (10 i - LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 8 The selected HIF address bit is determined by adding the i - ternal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specif - cation, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to col - mn address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is use - . - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B8 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 7. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 8. - Quarter bus width mode: Selects the HIF address bit used as column address bit 9. Valid - Range: 0 to 7, and 15 Internal Base: 7 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B7 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 6. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 7. - Quarter bus width mode: Selects the HIF address bit used as column address bit 8. Valid - Range: 0 to 7, and 15 Internal Base: 6 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B6 0x0 - - Address Map Register 3 - (OFFSET, MASK, VALUE) (0XFD07020C, 0x0F0F0F0FU ,0x00000000U) - RegMask = (DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP3_OFFSET ,0x0F0F0F0FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP4 @ 0XFD070210

- - - Full bus width mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Unused. To make it unused, this should be tied to 4'hF. - Quarter bus width mode: Unused. To make it unused, this must - e tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 11 The selected HIF address bit is determined by adding the intern - l base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificati - n, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column a - dress bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is used. - PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B11 0xf - - - Full bus width mode: Selects the HIF address bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: UNUSED. - To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF address bit is d - termined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per - JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source address - bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and h - nce column bit 10 is used. - PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B10 0xf - - Address Map Register 4 - (OFFSET, MASK, VALUE) (0XFD070210, 0x00000F0FU ,0x00000F0FU) - RegMask = (DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK | DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK | 0 ); - - RegVal = ((0x0000000FU << DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT - | 0x0000000FU << DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP4_OFFSET ,0x00000F0FU ,0x00000F0FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP5 @ 0XFD070214

- - Selects the HIF address bit used as row address bit 11. Valid Range: 0 to 11, and 15 Internal Base: 17 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 11 is set to 0. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B11 0x8 - - Selects the HIF address bits used as row address bits 2 to 10. Valid Range: 0 to 11, and 15 Internal Base: 8 (for row address - bit 2), 9 (for row address bit 3), 10 (for row address bit 4) etc increasing to 16 (for row address bit 10) The selected HIF - ddress bit for each of the row address bits is determined by adding the internal base to the value of this field. When value - 5 is used the values of row address bits 2 to 10 are defined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10 0xf - - Selects the HIF address bits used as row address bit 1. Valid Range: 0 to 11 Internal Base: 7 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B1 0x8 - - Selects the HIF address bits used as row address bit 0. Valid Range: 0 to 11 Internal Base: 6 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B0 0x8 - - Address Map Register 5 - (OFFSET, MASK, VALUE) (0XFD070214, 0x0F0F0F0FU ,0x080F0808U) - RegMask = (DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT - | 0x0000000FU << DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT - | 0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT - | 0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP5_OFFSET ,0x0F0F0F0FU ,0x080F0808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP6 @ 0XFD070218

- - Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address - having row[14:13]==2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. All addresses are valid Present on - y in designs configured to support LPDDR3. - PSU_DDRC_ADDRMAP6_LPDDR3_6GB_12GB 0x0 - - Selects the HIF address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 15 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B15 0xf - - Selects the HIF address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 20 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 14 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B14 0x8 - - Selects the HIF address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 19 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 13 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B13 0x8 - - Selects the HIF address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 18 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 12 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B12 0x8 - - Address Map Register 6 - (OFFSET, MASK, VALUE) (0XFD070218, 0x8F0F0F0FU ,0x0F080808U) - RegMask = (DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT - | 0x0000000FU << DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP6_OFFSET ,0x8F0F0F0FU ,0x0F080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP7 @ 0XFD07021C

- - Selects the HIF address bit used as row address bit 17. Valid Range: 0 to 10, and 15 Internal Base: 23 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 17 is set to 0. - PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B17 0xf - - Selects the HIF address bit used as row address bit 16. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 16 is set to 0. - PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B16 0xf - - Address Map Register 7 - (OFFSET, MASK, VALUE) (0XFD07021C, 0x00000F0FU ,0x00000F0FU) - RegMask = (DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK | DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK | 0 ); - - RegVal = ((0x0000000FU << DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT - | 0x0000000FU << DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP7_OFFSET ,0x00000F0FU ,0x00000F0FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP8 @ 0XFD070220

- - Selects the HIF address bits used as bank group address bit 1. Valid Range: 0 to 30, and 31 Internal Base: 3 The selected HIF - address bit for each of the bank group address bits is determined by adding the internal base to the value of this field. If - et to 31, bank group address bit 1 is set to 0. - PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B1 0x8 - - Selects the HIF address bits used as bank group address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address - bit for each of the bank group address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B0 0x8 - - Address Map Register 8 - (OFFSET, MASK, VALUE) (0XFD070220, 0x00001F1FU ,0x00000808U) - RegMask = (DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK | DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT - | 0x00000008U << DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP8_OFFSET ,0x00001F1FU ,0x00000808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP9 @ 0XFD070224

- - Selects the HIF address bits used as row address bit 5. Valid Range: 0 to 11 Internal Base: 11 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B5 0x8 - - Selects the HIF address bits used as row address bit 4. Valid Range: 0 to 11 Internal Base: 10 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B4 0x8 - - Selects the HIF address bits used as row address bit 3. Valid Range: 0 to 11 Internal Base: 9 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B3 0x8 - - Selects the HIF address bits used as row address bit 2. Valid Range: 0 to 11 Internal Base: 8 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B2 0x8 - - Address Map Register 9 - (OFFSET, MASK, VALUE) (0XFD070224, 0x0F0F0F0FU ,0x08080808U) - RegMask = (DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP9_OFFSET ,0x0F0F0F0FU ,0x08080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP10 @ 0XFD070228

- - Selects the HIF address bits used as row address bit 9. Valid Range: 0 to 11 Internal Base: 15 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B9 0x8 - - Selects the HIF address bits used as row address bit 8. Valid Range: 0 to 11 Internal Base: 14 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B8 0x8 - - Selects the HIF address bits used as row address bit 7. Valid Range: 0 to 11 Internal Base: 13 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B7 0x8 - - Selects the HIF address bits used as row address bit 6. Valid Range: 0 to 11 Internal Base: 12 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B6 0x8 - - Address Map Register 10 - (OFFSET, MASK, VALUE) (0XFD070228, 0x0F0F0F0FU ,0x08080808U) - RegMask = (DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP10_OFFSET ,0x0F0F0F0FU ,0x08080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP11 @ 0XFD07022C

- - Selects the HIF address bits used as row address bit 10. Valid Range: 0 to 11 Internal Base: 16 The selected HIF address bit - or each of the row address bits is determined by adding the internal base to the value of this field. This register field is - sed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP11_ADDRMAP_ROW_B10 0x8 - - Address Map Register 11 - (OFFSET, MASK, VALUE) (0XFD07022C, 0x0000000FU ,0x00000008U) - RegMask = (DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP11_OFFSET ,0x0000000FU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : ODTCFG @ 0XFD070240

- - Cycles to hold ODT for a write command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/ - 67), 0x6 (DDR2-800), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (DDR2-1066) DDR3: - BL8: 0x6 DDR4: - - L8: 5 + WR_PREAMBLE + CRC_MODE WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 (not CRC mode), 1 - CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) - PSU_DDRC_ODTCFG_WR_ODT_HOLD 0x6 - - The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting must - remain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CWL + AL - 3 (DDR2-400/533/ - 67), CWL + AL - 4 (DDR2-800), CWL + AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT for write operation - DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) - PSU_DDRC_ODTCFG_WR_ODT_DELAY 0x0 - - Cycles to hold ODT for a read command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066) - 0x7 (DDR2-1066) - BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8: 5 + RD_PREAMBLE RD_PREAMBLE = 1 ( - tCK write preamble), 2 (2tCK write preamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + RU(tODTon(max)/tC - ) - PSU_DDRC_ODTCFG_RD_ODT_HOLD 0x6 - - The delay, in clock cycles, from issuing a read command to setting ODT values associated with that command. ODT setting must - emain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CL + AL - 4 (not DDR2-1066), - CL + AL - 5 (DDR2-1066) If (CL + AL - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - CWL DDR4: - CL - C - L - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK - write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, - uMCTL2 does not support ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - RU(tODTon(max)/tCK) - PSU_DDRC_ODTCFG_RD_ODT_DELAY 0x0 - - ODT Configuration Register - (OFFSET, MASK, VALUE) (0XFD070240, 0x0F1F0F7CU ,0x06000600U) - RegMask = (DDRC_ODTCFG_WR_ODT_HOLD_MASK | DDRC_ODTCFG_WR_ODT_DELAY_MASK | DDRC_ODTCFG_RD_ODT_HOLD_MASK | DDRC_ODTCFG_RD_ODT_DELAY_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_ODTCFG_WR_ODT_HOLD_SHIFT - | 0x00000000U << DDRC_ODTCFG_WR_ODT_DELAY_SHIFT - | 0x00000006U << DDRC_ODTCFG_RD_ODT_HOLD_SHIFT - | 0x00000000U << DDRC_ODTCFG_RD_ODT_DELAY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ODTCFG_OFFSET ,0x0F1F0F7CU ,0x06000600U); - /*############################################################################################################################ */ - - /*Register : ODTMAP @ 0XFD070244

- - Indicates which remote ODTs must be turned on during a read from rank 1. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks - PSU_DDRC_ODTMAP_RANK1_RD_ODT 0x0 - - Indicates which remote ODTs must be turned on during a write to rank 1. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks - PSU_DDRC_ODTMAP_RANK1_WR_ODT 0x0 - - Indicates which remote ODTs must be turned on during a read from rank 0. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. - PSU_DDRC_ODTMAP_RANK0_RD_ODT 0x0 - - Indicates which remote ODTs must be turned on during a write to rank 0. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. - PSU_DDRC_ODTMAP_RANK0_WR_ODT 0x1 - - ODT/Rank Map Register - (OFFSET, MASK, VALUE) (0XFD070244, 0x00003333U ,0x00000001U) - RegMask = (DDRC_ODTMAP_RANK1_RD_ODT_MASK | DDRC_ODTMAP_RANK1_WR_ODT_MASK | DDRC_ODTMAP_RANK0_RD_ODT_MASK | DDRC_ODTMAP_RANK0_WR_ODT_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ODTMAP_RANK1_RD_ODT_SHIFT - | 0x00000000U << DDRC_ODTMAP_RANK1_WR_ODT_SHIFT - | 0x00000000U << DDRC_ODTMAP_RANK0_RD_ODT_SHIFT - | 0x00000001U << DDRC_ODTMAP_RANK0_WR_ODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ODTMAP_OFFSET ,0x00003333U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : SCHED @ 0XFD070250

- - When the preferred transaction store is empty for these many clock cycles, switch to the alternate transaction store if it is - non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write t - ansaction store is the alternative store. When prefer write over read is set this is reversed. 0x0 is a legal value for this - egister. When set to 0x0, the transaction store switching will happen immediately when the switching conditions become true. - OR PERFORMANCE ONLY - PSU_DDRC_SCHED_RDWR_IDLE_GAP 0x1 - - UNUSED - PSU_DDRC_SCHED_GO2CRITICAL_HYSTERESIS 0x0 - - Number of entries in the low priority transaction store is this value + 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) i - the number of entries available for the high priority transaction store. Setting this to maximum value allocates all entries - to low priority transaction store. Setting this to 0 allocates 1 entry to low priority transaction store and the rest to high - priority transaction store. Note: In ECC configurations, the numbers of write and low priority read credits issued is one les - than in the non-ECC case. One entry each is reserved in the write and low-priority read CAMs for storing the RMW requests ar - sing out of single bit error correction RMW operation. - PSU_DDRC_SCHED_LPR_NUM_ENTRIES 0x20 - - If true, bank is kept open only while there are page hit transactions available in the CAM to that bank. The last read or wri - e command in the CAM with a bank and page hit will be executed with auto-precharge if SCHED1.pageclose_timer=0. Even if this - egister set to 1 and SCHED1.pageclose_timer is set to 0, explicit precharge (and not auto-precharge) may be issued in some ca - es where there is a mode switch between Write and Read or between LPR and HPR. The Read and Write commands that are executed - s part of the ECC scrub requests are also executed without auto-precharge. If false, the bank remains open until there is a n - ed to close it (to open a different page, or for page timeout or refresh timeout) - also known as open page policy. The open - age policy can be overridden by setting the per-command-autopre bit on the HIF interface (hif_cmd_autopre). The pageclose fea - ure provids a midway between Open and Close page policies. FOR PERFORMANCE ONLY. - PSU_DDRC_SCHED_PAGECLOSE 0x0 - - If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. - PSU_DDRC_SCHED_PREFER_WRITE 0x0 - - Active low signal. When asserted ('0'), all incoming transactions are forced to low priority. This implies that all High Prio - ity Read (HPR) and Variable Priority Read commands (VPR) will be treated as Low Priority Read (LPR) commands. On the write si - e, all Variable Priority Write (VPW) commands will be treated as Normal Priority Write (NPW) commands. Forcing the incoming t - ansactions to low priority implicitly turns off Bypass path for read commands. FOR PERFORMANCE ONLY. - PSU_DDRC_SCHED_FORCE_LOW_PRI_N 0x1 - - Scheduler Control Register - (OFFSET, MASK, VALUE) (0XFD070250, 0x7FFF3F07U ,0x01002001U) - RegMask = (DDRC_SCHED_RDWR_IDLE_GAP_MASK | DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK | DDRC_SCHED_LPR_NUM_ENTRIES_MASK | DDRC_SCHED_PAGECLOSE_MASK | DDRC_SCHED_PREFER_WRITE_MASK | DDRC_SCHED_FORCE_LOW_PRI_N_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_SCHED_RDWR_IDLE_GAP_SHIFT - | 0x00000000U << DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT - | 0x00000020U << DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT - | 0x00000000U << DDRC_SCHED_PAGECLOSE_SHIFT - | 0x00000000U << DDRC_SCHED_PREFER_WRITE_SHIFT - | 0x00000001U << DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SCHED_OFFSET ,0x7FFF3F07U ,0x01002001U); - /*############################################################################################################################ */ - - /*Register : PERFLPR1 @ 0XFD070264

- - Number of transactions that are serviced once the LPR queue goes critical is the smaller of: - (a) This number - (b) Number o - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH 0x8 - - Number of clocks that the LPR queue can be starved before it goes critical. The minimum valid functional value for this regis - er is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - be disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFLPR1_LPR_MAX_STARVE 0x40 - - Low Priority Read CAM Register 1 - (OFFSET, MASK, VALUE) (0XFD070264, 0xFF00FFFFU ,0x08000040U) - RegMask = (DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK | DDRC_PERFLPR1_LPR_MAX_STARVE_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT - | 0x00000040U << DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PERFLPR1_OFFSET ,0xFF00FFFFU ,0x08000040U); - /*############################################################################################################################ */ - - /*Register : PERFWR1 @ 0XFD07026C

- - Number of transactions that are serviced once the WR queue goes critical is the smaller of: - (a) This number - (b) Number of - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFWR1_W_XACT_RUN_LENGTH 0x8 - - Number of clocks that the WR queue can be starved before it goes critical. The minimum valid functional value for this regist - r is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - e disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFWR1_W_MAX_STARVE 0x40 - - Write CAM Register 1 - (OFFSET, MASK, VALUE) (0XFD07026C, 0xFF00FFFFU ,0x08000040U) - RegMask = (DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK | DDRC_PERFWR1_W_MAX_STARVE_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT - | 0x00000040U << DDRC_PERFWR1_W_MAX_STARVE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PERFWR1_OFFSET ,0xFF00FFFFU ,0x08000040U); - /*############################################################################################################################ */ - - /*Register : DQMAP5 @ 0XFD070294

- - All even ranks have the same DQ mapping controled by DQMAP0-4 register as rank 0. This register provides DQ swap function for - all odd ranks to support CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap bit 2 with 3, swap bit 4 with 5 and - wap bit 6 with 7. 1: Disable rank based DQ swapping 0: Enable rank based DQ swapping Present only in designs configured to su - port DDR4. - PSU_DDRC_DQMAP5_DIS_DQ_RANK_SWAP 0x1 - - DQ Map Register 5 - (OFFSET, MASK, VALUE) (0XFD070294, 0x00000001U ,0x00000001U) - RegMask = (DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DQMAP5_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : DBG0 @ 0XFD070300

- - When this is set to '0', auto-precharge is disabled for the flushed command in a collision case. Collision cases are write fo - lowed by read to same address, read followed by write to same address, or write followed by write to same address with DBG0.d - s_wc bit = 1 (where same address comparisons exclude the two address bits representing critical word). FOR DEBUG ONLY. - PSU_DDRC_DBG0_DIS_COLLISION_PAGE_OPT 0x0 - - When 1, disable write combine. FOR DEBUG ONLY - PSU_DDRC_DBG0_DIS_WC 0x0 - - Debug Register 0 - (OFFSET, MASK, VALUE) (0XFD070300, 0x00000011U ,0x00000000U) - RegMask = (DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK | DDRC_DBG0_DIS_WC_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT - | 0x00000000U << DDRC_DBG0_DIS_WC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBG0_OFFSET ,0x00000011U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DBGCMD @ 0XFD07030C

- - Setting this register bit to 1 allows refresh and ZQCS commands to be triggered from hardware via the IOs ext_*. If set to 1, - the fields DBGCMD.zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignored by the uMCTL2 logic. Setting this - register bit to 0 allows refresh and ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_short and DBGCMD.rank - _refresh. If set to 0, the hardware pins ext_* have no function, and are ignored by the uMCTL2 logic. This register is static - and may only be changed when the DDRC reset signal, core_ddrc_rstn, is asserted (0). - PSU_DDRC_DBGCMD_HW_REF_ZQ_EN 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ctrlupd_req to the PHY. When this request is stored in - he uMCTL2, the bit is automatically cleared. This operation must only be performed when DFIUPD0.dis_auto_ctrlupd=1. - PSU_DDRC_DBGCMD_CTRLUPD 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS (ZQ calibration short)/MPC(ZQ calibration) command to - he SDRAM. When this request is stored in the uMCTL2, the bit is automatically cleared. This operation can be performed only w - en ZQCTL0.dis_auto_zq=1. It is recommended NOT to set this register bit if in Init operating mode. This register bit is ignor - d when in Self-Refresh(except LPDDR4) and SR-Powerdown(LPDDR4) and Deep power-down operating modes and Maximum Power Saving M - de. - PSU_DDRC_DBGCMD_ZQ_CALIB_SHORT 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 1. Writing to this bit causes DBGSTAT.rank1 - refresh_busy to be set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode. - PSU_DDRC_DBGCMD_RANK1_REFRESH 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 0. Writing to this bit causes DBGSTAT.rank0 - refresh_busy to be set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode. - PSU_DDRC_DBGCMD_RANK0_REFRESH 0x0 - - Command Debug Register - (OFFSET, MASK, VALUE) (0XFD07030C, 0x80000033U ,0x00000000U) - RegMask = (DDRC_DBGCMD_HW_REF_ZQ_EN_MASK | DDRC_DBGCMD_CTRLUPD_MASK | DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK | DDRC_DBGCMD_RANK1_REFRESH_MASK | DDRC_DBGCMD_RANK0_REFRESH_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT - | 0x00000000U << DDRC_DBGCMD_CTRLUPD_SHIFT - | 0x00000000U << DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT - | 0x00000000U << DDRC_DBGCMD_RANK1_REFRESH_SHIFT - | 0x00000000U << DDRC_DBGCMD_RANK0_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBGCMD_OFFSET ,0x80000033U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SWCTL @ 0XFD070320

- - Enable quasi-dynamic register programming outside reset. Program register to 0 to enable quasi-dynamic programming. Set back - egister to 1 once programming is done. - PSU_DDRC_SWCTL_SW_DONE 0x0 - - Software register programming control enable - (OFFSET, MASK, VALUE) (0XFD070320, 0x00000001U ,0x00000000U) - RegMask = (DDRC_SWCTL_SW_DONE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SWCTL_SW_DONE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SWCTL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCCFG @ 0XFD070400

- - Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expands every AXI burst into multiple HIF commands, using t - e memory burst length as a unit. If set to 1, then XPI will use half of the memory burst length as a unit. This applies to bo - h reads and writes. When MSTR.data_bus_width==00, setting bl_exp_mode to 1 has no effect. This can be used in cases where Par - ial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.dis_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_cc - _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionality is not supported in the following cases: - UMCTL2_ - ARTIAL_WR=0 - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 and MSTR.reg_ddrc_burst_rdwr=1000 (LP - DR4 only) - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burst_rdwr=0100 (DDR4 - only), with either MSTR.reg_ddrc_burstchop=0 or CRCPARCTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Share - -AC is enabled - PSU_DDRC_PCCFG_BL_EXP_MODE 0x0 - - Page match four limit. If set to 1, limits the number of consecutive same page DDRC transactions that can be granted by the P - rt Arbiter to four when Page Match feature is enabled. If set to 0, there is no limit imposed on number of consecutive same p - ge DDRC transactions. - PSU_DDRC_PCCFG_PAGEMATCH_LIMIT 0x0 - - If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals going to DDRC based - n urgent input (awurgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_go2critical_wr and co_gs_go2critica - _lpr/co_gs_go2critical_hpr signals at DDRC are driven to 1b'0. - PSU_DDRC_PCCFG_GO2CRITICAL_EN 0x1 - - Port Common Configuration Register - (OFFSET, MASK, VALUE) (0XFD070400, 0x00000111U ,0x00000001U) - RegMask = (DDRC_PCCFG_BL_EXP_MODE_MASK | DDRC_PCCFG_PAGEMATCH_LIMIT_MASK | DDRC_PCCFG_GO2CRITICAL_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCCFG_BL_EXP_MODE_SHIFT - | 0x00000000U << DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT - | 0x00000001U << DDRC_PCCFG_GO2CRITICAL_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCCFG_OFFSET ,0x00000111U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGR_0 @ 0XFD070404

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_0_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_0_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_0_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070404, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_0_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_0 @ 0XFD070408

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_0_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_0_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_0_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_0_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_0 @ 0XFD070490

- - Enables port n. - PSU_DDRC_PCTRL_0_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070490, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_0_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_0_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_0_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_0 @ 0XFD070494

- - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION1 0x2 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1 0xb - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070494, 0x0033000FU ,0x0020000BU) - RegMask = (DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_0_OFFSET ,0x0033000FU ,0x0020000BU); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_0 @ 0XFD070498

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070498, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_0_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_1 @ 0XFD0704B4

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_1_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_1_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_1_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD0704B4, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_1_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_1 @ 0XFD0704B8

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_1_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_1_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_1_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_1_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_1 @ 0XFD070540

- - Enables port n. - PSU_DDRC_PCTRL_1_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070540, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_1_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_1_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_1_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_1 @ 0XFD070544

- - This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION2 0x2 - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION1 0x0 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION0 0x0 - - Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2 0xb - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070544, 0x03330F0FU ,0x02000B03U) - RegMask = (DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_1_OFFSET ,0x03330F0FU ,0x02000B03U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_1 @ 0XFD070548

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070548, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_1_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_2 @ 0XFD070564

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_2_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_2_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_2_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070564, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_2_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_2 @ 0XFD070568

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_2_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_2_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_2_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_2_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_2 @ 0XFD0705F0

- - Enables port n. - PSU_DDRC_PCTRL_2_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD0705F0, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_2_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_2_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_2_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_2 @ 0XFD0705F4

- - This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION2 0x2 - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION1 0x0 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION0 0x0 - - Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2 0xb - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0705F4, 0x03330F0FU ,0x02000B03U) - RegMask = (DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_2_OFFSET ,0x03330F0FU ,0x02000B03U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_2 @ 0XFD0705F8

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0705F8, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_2_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_3 @ 0XFD070614

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_3_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_3_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_3_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070614, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_3_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_3 @ 0XFD070618

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_3_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_3_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_3_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_3_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_3 @ 0XFD0706A0

- - Enables port n. - PSU_DDRC_PCTRL_3_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD0706A0, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_3_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_3_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_3_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_3 @ 0XFD0706A4

- - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0706A4, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_3_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_3 @ 0XFD0706A8

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0706A8, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_3_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_3 @ 0XFD0706AC

- - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0706AC, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_3_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_3 @ 0XFD0706B0

- - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0706B0, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_3_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGR_4 @ 0XFD0706C4

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_4_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_4_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_4_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_4_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_4 @ 0XFD0706C8

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_4_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_4_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_4_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_4_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_4 @ 0XFD070750

- - Enables port n. - PSU_DDRC_PCTRL_4_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070750, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_4_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_4_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_4_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_4 @ 0XFD070754

- - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070754, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_4_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_4 @ 0XFD070758

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070758, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_4_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_4 @ 0XFD07075C

- - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD07075C, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_4_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_4 @ 0XFD070760

- - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070760, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_4_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGR_5 @ 0XFD070774

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_5_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_5_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_5_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070774, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_5_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_5 @ 0XFD070778

- - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_5_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_5_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_5_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_5_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_5 @ 0XFD070800

- - Enables port n. - PSU_DDRC_PCTRL_5_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070800, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_5_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_5_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_5_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_5 @ 0XFD070804

- - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070804, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_5_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_5 @ 0XFD070808

- - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070808, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_5_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_5 @ 0XFD07080C

- - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD07080C, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_5_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_5 @ 0XFD070810

- - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070810, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_5_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : SARBASE0 @ 0XFD070F04

- - Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). - PSU_DDRC_SARBASE0_BASE_ADDR 0x0 - - SAR Base Address Register n - (OFFSET, MASK, VALUE) (0XFD070F04, 0x000001FFU ,0x00000000U) - RegMask = (DDRC_SARBASE0_BASE_ADDR_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SARBASE0_BASE_ADDR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARBASE0_OFFSET ,0x000001FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SARSIZE0 @ 0XFD070F08

- - Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block. - PSU_DDRC_SARSIZE0_NBLOCKS 0x0 - - SAR Size Register n - (OFFSET, MASK, VALUE) (0XFD070F08, 0x000000FFU ,0x00000000U) - RegMask = (DDRC_SARSIZE0_NBLOCKS_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SARSIZE0_NBLOCKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARSIZE0_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SARBASE1 @ 0XFD070F0C

- - Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). - PSU_DDRC_SARBASE1_BASE_ADDR 0x10 - - SAR Base Address Register n - (OFFSET, MASK, VALUE) (0XFD070F0C, 0x000001FFU ,0x00000010U) - RegMask = (DDRC_SARBASE1_BASE_ADDR_MASK | 0 ); - - RegVal = ((0x00000010U << DDRC_SARBASE1_BASE_ADDR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARBASE1_OFFSET ,0x000001FFU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : SARSIZE1 @ 0XFD070F10

- - Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block. - PSU_DDRC_SARSIZE1_NBLOCKS 0xf - - SAR Size Register n - (OFFSET, MASK, VALUE) (0XFD070F10, 0x000000FFU ,0x0000000FU) - RegMask = (DDRC_SARSIZE1_NBLOCKS_MASK | 0 ); +unsigned long psu_ddr_init_data(void) +{ + /* + * DDR INITIALIZATION + */ + /* + * DDR CONTROLLER RESET + */ + /* + * Register : RST_DDR_SS @ 0XFD1A0108 + + * DDR block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X1 + + * DDR sub system block level reset + * (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_RST_DDR_SS_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MSTR @ 0XFD070000 + + * Indicates the configuration of the device used in the system. - 00 - x4 + * device - 01 - x8 device - 10 - x16 device - 11 - x32 device + * PSU_DDRC_MSTR_DEVICE_CONFIG 0x1 + + * Choose which registers are used. - 0 - Original registers - 1 - Shadow r + * egisters + * PSU_DDRC_MSTR_FREQUENCY_MODE 0x0 + + * Only present for multi-rank configurations. Each bit represents one rank + * . For two-rank configurations, only bits[25:24] are present. - 1 - popul + * ated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks follow + * ing combinations are legal: - 01 - One rank - 11 - Two ranks - Others - + * Reserved. For 4 ranks following combinations are legal: - 0001 - One ran + * k - 0011 - Two ranks - 1111 - Four ranks + * PSU_DDRC_MSTR_ACTIVE_RANKS 0x1 + + * SDRAM burst length used: - 0001 - Burst length of 2 (only supported for + * mDDR) - 0010 - Burst length of 4 - 0100 - Burst length of 8 - 1000 - Bur + * st length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other + * values are reserved. This controls the burst size used to access the SDR + * AM. This must match the burst length mode register setting in the SDRAM. + * (For BC4/8 on-the-fly mode of DDR3 and DDR4, set this field to 0x0100) + * Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGTH + * is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 + * PSU_DDRC_MSTR_BURST_RDWR 0x4 + + * Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low + * frequency operation. Set to 0 to put uMCTL2 and DRAM in DLL-on mode for + * normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARC + * TL1.crc_parity_retry_enable = 1), dll_off_mode is not supported, and thi + * s bit must be set to '0'. + * PSU_DDRC_MSTR_DLL_OFF_MODE 0x0 + + * Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full + * DQ bus width to SDRAM - 01 - Half DQ bus width to SDRAM - 10 - Quarter + * DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is + * only supported when the SDRAM bus width is a multiple of 16, and quarter + * bus width mode is only supported when the SDRAM bus width is a multiple + * of 32 and the configuration parameter MEMC_QBUS_SUPPORT is set. Bus wid + * th refers to DQ bus width (excluding any ECC width). + * PSU_DDRC_MSTR_DATA_BUS_WIDTH 0x0 + + * 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the D + * RAM in normal mode (1N). This register can be changed, only when the Con + * troller is in self-refresh mode. This signal must be set the same value + * as MR3 bit A3. Note: Geardown mode is not supported if the configuration + * parameter MEMC_CMD_RTN2IDLE is set + * PSU_DDRC_MSTR_GEARDOWN_MODE 0x0 + + * If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timin + * g, all command signals (except chip select) are held for 2 clocks on the + * SDRAM bus. Chip select is asserted on the second cycle of the command N + * ote: 2T timing is not supported in LPDDR2/LPDDR3/LPDDR4 mode Note: 2T ti + * ming is not supported if the configuration parameter MEMC_CMD_RTN2IDLE i + * s set Note: 2T timing is not supported in DDR4 geardown mode. + * PSU_DDRC_MSTR_EN_2T_TIMING_MODE 0x0 + + * When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exerci + * sed only in HIF configurations (UMCTL2_INCL_ARB not set) and if in full + * bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exer + * cised only if Partial Writes enabled (UMCTL2_PARTIAL_WR=1) and if CRC is + * disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabl + * ed (CRCPARCTL1.crc_parity_retry_enable = 1), burst chop is not supported + * , and this bit must be set to '0' + * PSU_DDRC_MSTR_BURSTCHOP 0x0 + + * Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 d + * evice in use Present only in designs configured to support LPDDR4. + * PSU_DDRC_MSTR_LPDDR4 0x0 + + * Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device + * in use Present only in designs configured to support DDR4. + * PSU_DDRC_MSTR_DDR4 0x1 + + * Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 d + * evice in use Present only in designs configured to support LPDDR3. + * PSU_DDRC_MSTR_LPDDR3 0x0 + + * Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 d + * evice in use Present only in designs configured to support LPDDR2. + * PSU_DDRC_MSTR_LPDDR2 0x0 + + * Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM de + * vice in use Only present in designs that support DDR3. + * PSU_DDRC_MSTR_DDR3 0x0 + + * Master Register + * (OFFSET, MASK, VALUE) (0XFD070000, 0xE30FBE3DU ,0x41040010U) + */ + PSU_Mask_Write(DDRC_MSTR_OFFSET, 0xE30FBE3DU, 0x41040010U); +/*##################################################################### */ + + /* + * Register : MRCTRL0 @ 0XFD070010 + + * Setting this register bit to 1 triggers a mode register read or write op + * eration. When the MR operation is complete, the uMCTL2 automatically cle + * ars this bit. The other register fields of this register must be written + * in a separate APB transaction, before setting this mr_wr bit. It is rec + * ommended NOT to set this signal if in Init, Deep power-down or MPSM oper + * ating modes. + * PSU_DDRC_MRCTRL0_MR_WR 0x0 + + * Address of the mode register that is to be written to. - 0000 - MR0 - 00 + * 01 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 0101 - MR5 - 0110 - MR + * 6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data + * for mode register addressing in LPDDR2/LPDDR3/LPDDR4) This signal is als + * o used for writing to control words of RDIMMs. In that case, it correspo + * nds to the bank address bits sent to the RDIMM In case of DDR4, the bit[ + * 3:2] corresponds to the bank group bits. Therefore, the bit[3] as well a + * s the bit[2:0] must be set to an appropriate value which is considered b + * oth the Address Mirroring of UDIMMs/RDIMMs and the Output Inversion of R + * DIMMs. + * PSU_DDRC_MRCTRL0_MR_ADDR 0x0 + + * Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desire + * d to access all ranks, so all bits should be set to 1. However, for mult + * i-rank UDIMMs/RDIMMs which implement address mirroring, it may be necess + * ary to access ranks individually. Examples (assume uMCTL2 is configured + * for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x + * 5 - select ranks 0 and 2 - 0xA - select ranks 1 and 3 - 0xF - select ran + * ks 0, 1, 2 and 3 + * PSU_DDRC_MRCTRL0_MR_RANK 0x3 + + * Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 b + * efore automatic SDRAM initialization routine or not. For DDR4, this bit + * can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM init + * ialization. For LPDDR4, this bit can be used to program additional mode + * registers before automatic SDRAM initialization if necessary. Note: This + * must be cleared to 0 after completing Software operation. Otherwise, SD + * RAM initialization routine will not re-start. - 0 - Software interventio + * n is not allowed - 1 - Software intervention is allowed + * PSU_DDRC_MRCTRL0_SW_INIT_INT 0x0 + + * Indicates whether the mode register operation is MRS in PDA mode or not + * - 0 - MRS - 1 - MRS in Per DRAM Addressability mode + * PSU_DDRC_MRCTRL0_PDA_EN 0x0 + + * Indicates whether the mode register operation is MRS or WR/RD for MPR (o + * nly supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR + * PSU_DDRC_MRCTRL0_MPR_EN 0x0 + + * Indicates whether the mode register operation is read or write. Only use + * d for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Read + * PSU_DDRC_MRCTRL0_MR_TYPE 0x0 + + * Mode Register Read/Write Control Register 0. Note: Do not enable more th + * an one of the following fields simultaneously: - sw_init_int - pda_en - + * mpr_en + * (OFFSET, MASK, VALUE) (0XFD070010, 0x8000F03FU ,0x00000030U) + */ + PSU_Mask_Write(DDRC_MRCTRL0_OFFSET, 0x8000F03FU, 0x00000030U); +/*##################################################################### */ + + /* + * Register : DERATEEN @ 0XFD070020 + + * Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating us + * es +2. - 2 - Derating uses +3. - 3 - Derating uses +4. Present only in d + * esigns configured to support LPDDR4. The required number of cycles for d + * erating can be determined by dividing 3.75ns by the core_ddrc_core_clk p + * eriod, and rounding up the next integer. + * PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x2 + + * Derate byte Present only in designs configured to support LPDDR2/LPDDR3/ + * LPDDR4 Indicates which byte of the MRR data is used for derating. The ma + * ximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. + * PSU_DDRC_DERATEEN_DERATE_BYTE 0x0 + + * Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present onl + * y in designs configured to support LPDDR2/LPDDR3/LPDDR4 Set to 0 for all + * LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ + * ddrc_core_clk period. Can be 0 or 1 for LPDDR3/LPDDR4, depending if +1.8 + * 75 ns is less than a core_ddrc_core_clk period or not. + * PSU_DDRC_DERATEEN_DERATE_VALUE 0x0 + + * Enables derating - 0 - Timing parameter derating is disabled - 1 - Timin + * g parameter derating is enabled using MR4 read value. Present only in de + * signs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set + * to '0' for non-LPDDR2/LPDDR3/LPDDR4 mode. + * PSU_DDRC_DERATEEN_DERATE_ENABLE 0x0 + + * Temperature Derate Enable Register + * (OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000200U) + */ + PSU_Mask_Write(DDRC_DERATEEN_OFFSET, 0x000003F3U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : DERATEINT @ 0XFD070024 + + * Interval between two MR4 reads, used to derate the timing parameters. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4. This r + * egister must not be set to zero + * PSU_DDRC_DERATEINT_MR4_READ_INTERVAL 0x800000 + + * Temperature Derate Interval Register + * (OFFSET, MASK, VALUE) (0XFD070024, 0xFFFFFFFFU ,0x00800000U) + */ + PSU_Mask_Write(DDRC_DERATEINT_OFFSET, 0xFFFFFFFFU, 0x00800000U); +/*##################################################################### */ + + /* + * Register : PWRCTL @ 0XFD070030 + + * Self refresh state is an intermediate state to enter to Self refresh pow + * er down state or exit Self refresh power down state for LPDDR4. This reg + * ister controls transition from the Self refresh state. - 1 - Prohibit tr + * ansition from Self refresh state - 0 - Allow transition from Self refres + * h state + * PSU_DDRC_PWRCTL_STAY_IN_SELFREF 0x0 + + * A value of 1 to this register causes system to move to Self Refresh stat + * e immediately, as long as it is not in INIT or DPD/MPSM operating_mode. + * This is referred to as Software Entry/Exit to Self Refresh. - 1 - Softwa + * re Entry to Self Refresh - 0 - Software Exit from Self Refresh + * PSU_DDRC_PWRCTL_SELFREF_SW 0x0 + + * When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode + * when the transaction store is empty. This register must be reset to '0' + * to bring uMCTL2 out of maximum power saving mode. Present only in desig + * ns configured to support DDR4. For non-DDR4, this register should not be + * set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if + * the PHY parameter DWC_AC_CS_USE is disabled, as the MPSM exit sequence r + * equires the chip-select signal to toggle. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRCTL_MPSM_EN 0x0 + + * Enable the assertion of dfi_dram_clk_disable whenever a clock is not req + * uired by the SDRAM. If set to 0, dfi_dram_clk_disable is never asserted. + * Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only + * be asserted in Self Refresh. In DDR4, can be asserted in following: - i + * n Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, ca + * n be asserted in following: - in Self Refresh - in Power Down - in Deep + * Power Down - during Normal operation (Clock Stop) In LPDDR4, can be asse + * rted in following: - in Self Refresh Power Down - in Power Down - during + * Normal operation (Clock Stop) + * PSU_DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE 0x0 + + * When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the + * transaction store is empty. This register must be reset to '0' to bring + * uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM + * initialization on deep power-down exit. Present only in designs configu + * red to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPD + * DR3, this register should not be set to 1. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRCTL_DEEPPOWERDOWN_EN 0x0 + + * If true then the uMCTL2 goes into power-down after a programmable number + * of cycles 'maximum idle clocks before power down' (PWRTMG.powerdown_to_ + * x32). This register bit may be re-programmed during the course of normal + * operation. + * PSU_DDRC_PWRCTL_POWERDOWN_EN 0x0 + + * If true then the uMCTL2 puts the SDRAM into Self Refresh after a program + * mable number of cycles 'maximum idle clocks before Self Refresh (PWRTMG. + * selfref_to_x32)'. This register bit may be re-programmed during the cour + * se of normal operation. + * PSU_DDRC_PWRCTL_SELFREF_EN 0x0 + + * Low Power Control Register + * (OFFSET, MASK, VALUE) (0XFD070030, 0x0000007FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PWRCTL_OFFSET, 0x0000007FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PWRTMG @ 0XFD070034 + + * After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into Self Refresh. This must be enabled in the PWRCTL.selfref_ + * en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRTMG_SELFREF_TO_X32 0x40 + + * Minimum deep power-down time. For mDDR, value from the JEDEC specificati + * on is 0 as mDDR exits from deep power-down mode immediately after PWRCTL + * .deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDE + * C specification is 500us. Unit: Multiples of 4096 clocks. Present only i + * n designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE + * ONLY. + * PSU_DDRC_PWRTMG_T_DPD_X4096 0x84 + + * After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into power-down. This must be enabled in the PWRCTL.powerdown_ + * en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRTMG_POWERDOWN_TO_X32 0x10 + + * Low Power Timing Register + * (OFFSET, MASK, VALUE) (0XFD070034, 0x00FFFF1FU ,0x00408410U) + */ + PSU_Mask_Write(DDRC_PWRTMG_OFFSET, 0x00FFFF1FU, 0x00408410U); +/*##################################################################### */ + + /* + * Register : RFSHCTL0 @ 0XFD070050 + + * Threshold value in number of clock cycles before the critical refresh or + * page timer expires. A critical refresh is to be issued before this thre + * shold is reached. It is recommended that this not be changed from the de + * fault value, currently shown as 0x2. It must always be less than interna + * lly used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally u + * sed t_rfc_nom_x32 may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating i + * s enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_n + * om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clo + * cks. + * PSU_DDRC_RFSHCTL0_REFRESH_MARGIN 0x2 + + * If the refresh timer (tRFCnom, also known as tREFI) has expired at least + * once, but it has not expired (RFSHCTL0.refresh_burst+1) times yet, then + * a speculative refresh may be performed. A speculative refresh is a refr + * esh performed at a time when refresh would be useful, but before it is a + * bsolutely required. When the SDRAM bus is idle for a period of time dete + * rmined by this RFSHCTL0.refresh_to_x32 and the refresh timer has expired + * at least once since the last refresh, then a speculative refresh is per + * formed. Speculative refreshes continues successively until there are no + * refreshes pending or until new reads or writes are issued to the uMCTL2. + * FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL0_REFRESH_TO_X32 0x10 + + * The programmed value + 1 is the number of refresh timeouts that is allow + * ed to accumulate before traffic is blocked and the refreshes are forced + * to execute. Closing pages to perform a refresh is a one-time penalty tha + * t must be paid for each group of refreshes. Therefore, performing refres + * hes in a burst reduces the per-refresh penalty of these page closings. H + * igher numbers for RFSHCTL.refresh_burst slightly increases utilization; + * lower numbers decreases the worst-case latency associated with refreshes + * . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh + * For information on burst refresh feature refer to section 3.9 of DDR2 J + * EDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always pe + * r-rank and not per-bank. The rank refresh can be accumulated over 8*tREF + * I cycles using the burst refresh feature. In DDR4 mode, according to Fin + * e Granularity feature, 8 refreshes can be postponed in 1X mode, 16 refre + * shes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upda + * tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ens + * ure that tRFCmax is not violated due to a PHY-initiated update occurring + * shortly before a refresh burst was due. In this situation, the refresh + * burst will be delayed until the PHY-initiated update is complete. + * PSU_DDRC_RFSHCTL0_REFRESH_BURST 0x0 + + * - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows + * traffic to flow to other banks. Per bank refresh is not supported by all + * LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4 + * PSU_DDRC_RFSHCTL0_PER_BANK_REFRESH 0x0 + + * Refresh Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD070050, 0x00F1F1F4U ,0x00210000U) + */ + PSU_Mask_Write(DDRC_RFSHCTL0_OFFSET, 0x00F1F1F4U, 0x00210000U); +/*##################################################################### */ + + /* + * Register : RFSHCTL1 @ 0XFD070054 + + * Refresh timer start for rank 1 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32 0x0 + + * Refresh timer start for rank 0 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32 0x0 + + * Refresh Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD070054, 0x0FFF0FFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_RFSHCTL1_OFFSET, 0x0FFF0FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RFSHCTL3 @ 0XFD070060 + + * Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fix + * ed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x (not supported) - 11 + * 0 - Enable on the fly 4x (not supported) - Everything else - reserved No + * te: The on-the-fly modes is not supported in this version of the uMCTL2. + * Note: This must be set up while the Controller is in reset or while the + * Controller is in self-refresh mode. Changing this during normal operati + * on is not allowed. Making this a dynamic register will be supported in f + * uture version of the uMCTL2. + * PSU_DDRC_RFSHCTL3_REFRESH_MODE 0x0 + + * Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that + * the refresh register(s) have been updated. The value is automatically up + * dated when exiting reset, so it does not need to be toggled initially. + * PSU_DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL 0x0 + + * When '1', disable auto-refresh generated by the uMCTL2. When auto-refres + * h is disabled, the SoC core must generate refreshes using the registers + * reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh a + * nd reg_ddrc_rank3_refresh. When dis_auto_refresh transitions from 0 to 1 + * , any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 + * CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d + * isable auto-refresh is not supported, and this bit must be set to '0'. T + * his register field is changeable on the fly. + * PSU_DDRC_RFSHCTL3_DIS_AUTO_REFRESH 0x1 + + * Refresh Control Register 3 + * (OFFSET, MASK, VALUE) (0XFD070060, 0x00000073U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_RFSHCTL3_OFFSET, 0x00000073U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : RFSHTMG @ 0XFD070064 + + * tREFI: Average time interval between refreshes per rank (Specification: + * 7.8us for DDR2, DDR3 and DDR4. See JEDEC specification for mDDR, LPDDR2, + * LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refre + * shes (RFSHCTL0.per_bank_refresh = 0), this register should be set to tRE + * FIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this + * register should be set to tREFIpb For configurations with MEMC_FREQ_RAT + * IO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI val + * ue is different depending on the refresh mode. The user should program t + * he appropriate value from the spec based on the value programmed in the + * refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be grea + * ter than RFSHTMG.t_rfc_min, and RFSHTMG.t_rfc_nom_x32 must be greater th + * an 0x1. Unit: Multiples of 32 clocks. + * PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x81 + + * Used only when LPDDR3 memory type is connected. Should only be changed w + * hen uMCTL2 is in reset. Specifies whether to use the tREFBW parameter (r + * equired by some LPDDR3 devices which comply with earlier versions of the + * LPDDR3 JEDEC specification) or not: - 0 - tREFBW parameter not used - 1 + * - tREFBW parameter used + * PSU_DDRC_RFSHTMG_LPDDR3_TREFBW_EN 0x1 + + * tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_F + * REQ_RATIO=1 configurations, t_rfc_min should be set to RoundUp(tRFCmin/t + * CK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to Ro + * undUp(RoundUp(tRFCmin/tCK)/2). In LPDDR2/LPDDR3/LPDDR4 mode: - if using + * all-bank refreshes, the tRFCmin value in the above equations is equal to + * tRFCab - if using per-bank refreshes, the tRFCmin value in the above eq + * uations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above + * equations is different depending on the refresh mode (fixed 1X,2X,4X) an + * d the device density. The user should program the appropriate value from + * the spec based on the 'refresh_mode' and the device density that is use + * d. Unit: Clocks. + * PSU_DDRC_RFSHTMG_T_RFC_MIN 0x8b + + * Refresh Timing Register + * (OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0081808BU) + */ + PSU_Mask_Write(DDRC_RFSHTMG_OFFSET, 0x0FFF83FFU, 0x0081808BU); +/*##################################################################### */ + + /* + * Register : ECCCFG0 @ 0XFD070070 + + * Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_U + * SE_RMW is defined + * PSU_DDRC_ECCCFG0_DIS_SCRUB 0x1 + + * ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED ov + * er 1 beat - all other settings are reserved for future use + * PSU_DDRC_ECCCFG0_ECC_MODE 0x0 + + * ECC Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070070, 0x00000017U ,0x00000010U) + */ + PSU_Mask_Write(DDRC_ECCCFG0_OFFSET, 0x00000017U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : ECCCFG1 @ 0XFD070074 + + * Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) da + * ta poisoning, if 1 -> 1-bit (correctable) data poisoning, if ECCCFG1.dat + * a_poison_en=1 + * PSU_DDRC_ECCCFG1_DATA_POISON_BIT 0x0 + + * Enable ECC data poisoning - introduces ECC errors on writes to address s + * pecified by the ECCPOISONADDR0/1 registers + * PSU_DDRC_ECCCFG1_DATA_POISON_EN 0x0 + + * ECC Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070074, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ECCCFG1_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CRCPARCTL1 @ 0XFD0700C4 + + * The maximum number of DFI PHY clock cycles allowed from the assertion of + * the dfi_rddata_en signal to the assertion of each of the corresponding + * bits of the dfi_rddata_valid signal. This corresponds to the DFI timing + * parameter tphy_rdlat. Refer to PHY specification for correct value. This + * value it only used for detecting read data timeout when DDR4 retry is e + * nabled by CRCPARCTL1.crc_parity_retry_enable=1. Maximum supported value: + * - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_r + * dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 + * : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mode ANDAND DFITMG0.d + * fi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ + * rdlat < 'd114 Unit: DFI Clocks + * PSU_DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT 0x10 + + * After a Parity or CRC error is flagged on dfi_alert_n signal, the softwa + * re has an option to read the mode registers in the DRAM before the hardw + * are begins the retry process - 1: Wait for software to read/write the mo + * de registers before hardware begins the retry. After software is done wi + * th its operations, it will clear the alert interrupt register bit - 0: H + * ardware can begin the retry right away after the dfi_alert_n pulse goes + * away. The value on this register is valid only when retry is enabled (PA + * RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if t + * he software doesn't clear the interrupt register after handling the pari + * ty/CRC error, then the hardware will not begin the retry process and the + * system will hang. In the case of Parity/CRC error, there are two possib + * ilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persisten + * t parity' mode register bit is NOT set: the commands sent during retry a + * nd normal operation are executed without parity checking. The value in t + * he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent + * parity' mode register bit is SET: Parity checking is done for commands s + * ent during retry and normal operation. If multiple errors occur before M + * R5[4] is cleared, the error log in MPR Page 1 should be treated as 'Don' + * t care'. + * PSU_DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW 0x1 + + * - 1: Enable command retry mechanism in case of C/A Parity or CRC error - + * 0: Disable command retry mechanism when C/A Parity or CRC features are + * enabled. Note that retry functionality is not supported if burst chop is + * enabled (MSTR.burstchop = 1) and/or disable auto-refresh is enabled (RF + * SHCTL3.dis_auto_refresh = 1) + * PSU_DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE 0x0 + + * CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC no + * t includes DM signal Present only in designs configured to support DDR4. + * PSU_DDRC_CRCPARCTL1_CRC_INC_DM 0x0 + + * CRC enable Register - 1: Enable generation of CRC - 0: Disable generatio + * n of CRC The setting of this register should match the CRC mode register + * setting in the DRAM. + * PSU_DDRC_CRCPARCTL1_CRC_ENABLE 0x0 + + * C/A Parity enable register - 1: Enable generation of C/A parity and dete + * ction of C/A parity error - 0: Disable generation of C/A parity and disa + * ble detection of C/A parity error If RCD's parity error detection or SDR + * AM's parity detection is enabled, this register should be 1. + * PSU_DDRC_CRCPARCTL1_PARITY_ENABLE 0x0 + + * CRC Parity Control Register1 + * (OFFSET, MASK, VALUE) (0XFD0700C4, 0x3F000391U ,0x10000200U) + */ + PSU_Mask_Write(DDRC_CRCPARCTL1_OFFSET, 0x3F000391U, 0x10000200U); +/*##################################################################### */ + + /* + * Register : CRCPARCTL2 @ 0XFD0700C8 + + * Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a parity error occurs. Recommended values: - tPAR_ALERT_PW.M + * AX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT + * _PW.MAX/2 and round up to next integer value. Values of 0, 1 and 2 are i + * llegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. + * PSU_DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX 0x40 + + * Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a CRC error occurs. Recommended values: - tCRC_ALERT_PW.MAX + * For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW + * .MAX/2 and round up to next integer value. Values of 0, 1 and 2 are ille + * gal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. + * PSU_DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX 0x5 + + * Indicates the maximum duration in number of DRAM clock cycles for which + * a command should be held in the Command Retry FIFO before it is popped o + * ut. Every location in the Command Retry FIFO has an associated down coun + * ting timer that will use this register as the start value. The down coun + * ting starts when a command is loaded into the FIFO. The timer counts dow + * n every 4 DRAM cycles. When the counter reaches zero, the entry is poppe + * d from the FIFO. All the counters are frozen, if a C/A Parity or CRC err + * or occurs before the counter reaches zero. The counter is reset to 0, af + * ter all the commands in the FIFO are retried. Recommended(minimum) value + * s: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + * + CAL + RDIMM delay + tPAR_ALERT_ON.max + tPAR_UNKNOWN + PHY Alert Laten + * cy(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enable + * d/ Only CRC is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + R + * DIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) + * + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be + * in terms of DRAM Clock and round up Note 2: Board delay(Command/Alert_n + * ) should be considered. Note 3: Use the worst case(longer) value for PHY + * Latencies/Board delay Note 4: The Recommended values are minimum value + * to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max + * value can be set to this register is defined below: - MEMC_BURST_LENGTH + * == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 + * Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half b + * us Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Half bus Mod + * e (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (C + * RC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-8 Quarter bus Mode (CRC= + * ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 + * Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full + * bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mod + * e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC + * =ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarter bus Mode (CRC=OFF + * ) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Ma + * x value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Values of 0, 1 and 2 are illegal + * . + * PSU_DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4 0x1f + + * CRC Parity Control Register2 + * (OFFSET, MASK, VALUE) (0XFD0700C8, 0x01FF1F3FU ,0x0040051FU) + */ + PSU_Mask_Write(DDRC_CRCPARCTL2_OFFSET, 0x01FF1F3FU, 0x0040051FU); +/*##################################################################### */ + + /* + * Register : INIT0 @ 0XFD0700D0 + + * If lower bit is enabled the SDRAM initialization routine is skipped. The + * upper bit decides what state the controller starts up in when reset is + * removed - 00 - SDRAM Intialization routine is run after power-up - 01 - + * SDRAM Intialization routine is skipped after power-up. Controller starts + * up in Normal Mode - 11 - SDRAM Intialization routine is skipped after p + * ower-up. Controller starts up in Self-refresh Mode - 10 - SDRAM Intializ + * ation routine is run after power-up. Note: The only 2'b00 is supported f + * or LPDDR4 in this version of the uMCTL2. + * PSU_DDRC_INIT0_SKIP_DRAM_INIT 0x0 + + * Cycles to wait after driving CKE high to start the SDRAM initialization + * sequence. Unit: 1024 clocks. DDR2 typically requires a 400 ns delay, req + * uiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDD + * R3 typically requires this to be programmed for a delay of 200 us. LPDDR + * 4 typically requires this to be programmed for a delay of 2 us. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divi + * ded by 2, and round it up to next integer value. + * PSU_DDRC_INIT0_POST_CKE_X1024 0x2 + + * Cycles to wait after reset before driving CKE high to start the SDRAM in + * itialization sequence. Unit: 1024 clock cycles. DDR2 specifications typi + * cally require this to be programmed for a delay of >= 200 us. LPDDR2/LPD + * DR3: tINIT1 of 100 ns (min) LPDDR4: tINIT3 of 2 ms (min) For configurati + * ons with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by + * 2, and round it up to next integer value. + * PSU_DDRC_INIT0_PRE_CKE_X1024 0x106 + + * SDRAM Initialization Register 0 + * (OFFSET, MASK, VALUE) (0XFD0700D0, 0xC3FF0FFFU ,0x00020106U) + */ + PSU_Mask_Write(DDRC_INIT0_OFFSET, 0xC3FF0FFFU, 0x00020106U); +/*##################################################################### */ + + /* + * Register : INIT1 @ 0XFD0700D4 + + * Number of cycles to assert SDRAM reset signal during init sequence. This + * is only present for designs supporting DDR3, DDR4 or LPDDR4 devices. Fo + * r use with a DDR PHY, this should be set to a minimum of 1 + * PSU_DDRC_INIT1_DRAM_RSTN_X1024 0x2 + + * Cycles to wait after completing the SDRAM initialization sequence before + * starting the dynamic scheduler. Unit: Counts of a global timer that pul + * ses every 32 clock cycles. There is no known specific requirement for th + * is; it may be set to zero. + * PSU_DDRC_INIT1_FINAL_WAIT_X32 0x0 + + * Wait period before driving the OCD complete command to SDRAM. Unit: Coun + * ts of a global timer that pulses every 32 clock cycles. There is no know + * n specific requirement for this; it may be set to zero. + * PSU_DDRC_INIT1_PRE_OCD_X32 0x0 + + * SDRAM Initialization Register 1 + * (OFFSET, MASK, VALUE) (0XFD0700D4, 0x01FF7F0FU ,0x00020000U) + */ + PSU_Mask_Write(DDRC_INIT1_OFFSET, 0x01FF7F0FU, 0x00020000U); +/*##################################################################### */ + + /* + * Register : INIT2 @ 0XFD0700D8 + + * Idle time after the reset command, tINIT4. Present only in designs confi + * gured to support LPDDR2. Unit: 32 clock cycles. + * PSU_DDRC_INIT2_IDLE_AFTER_RESET_X32 0x23 + + * Time to wait after the first CKE high, tINIT2. Present only in designs c + * onfigured to support LPDDR2/LPDDR3. Unit: 1 clock cycle. LPDDR2/LPDDR3 t + * ypically requires 5 x tCK delay. + * PSU_DDRC_INIT2_MIN_STABLE_CLOCK_X1 0x5 + + * SDRAM Initialization Register 2 + * (OFFSET, MASK, VALUE) (0XFD0700D8, 0x0000FF0FU ,0x00002305U) + */ + PSU_Mask_Write(DDRC_INIT2_OFFSET, 0x0000FF0FU, 0x00002305U); +/*##################################################################### */ + + /* + * Register : INIT3 @ 0XFD0700DC + + * DDR2: Value to write to MR register. Bit 8 is for DLL and the setting he + * re is ignored. The uMCTL2 sets this bit appropriately. DDR3/DDR4: Value + * loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LP + * DDR3/LPDDR4 - Value to write to MR1 register + * PSU_DDRC_INIT3_MR 0x730 + + * DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setti + * ng in this register is ignored. The uMCTL2 sets those bits appropriately + * . DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evalu + * ation mode training is enabled, this bit is set appropriately by the uMC + * TL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/ + * LPDDR3/LPDDR4 - Value to write to MR2 register + * PSU_DDRC_INIT3_EMR 0x301 + + * SDRAM Initialization Register 3 + * (OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x07300301U) + */ + PSU_Mask_Write(DDRC_INIT3_OFFSET, 0xFFFFFFFFU, 0x07300301U); +/*##################################################################### */ + + /* + * Register : INIT4 @ 0XFD0700E0 + + * DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 + * register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 register mDDR: Unus + * ed + * PSU_DDRC_INIT4_EMR2 0x20 + + * DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 + * register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to write to MR13 regis + * ter + * PSU_DDRC_INIT4_EMR3 0x200 + + * SDRAM Initialization Register 4 + * (OFFSET, MASK, VALUE) (0XFD0700E0, 0xFFFFFFFFU ,0x00200200U) + */ + PSU_Mask_Write(DDRC_INIT4_OFFSET, 0xFFFFFFFFU, 0x00200200U); +/*##################################################################### */ + + /* + * Register : INIT5 @ 0XFD0700E4 + + * ZQ initial calibration, tZQINIT. Present only in designs configured to s + * upport DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock cycles. DDR3 typica + * lly requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requir + * es 1 us. + * PSU_DDRC_INIT5_DEV_ZQINIT_X32 0x21 + + * Maximum duration of the auto initialization, tINIT5. Present only in des + * igns configured to support LPDDR2/LPDDR3. LPDDR2/LPDDR3 typically requir + * es 10 us. + * PSU_DDRC_INIT5_MAX_AUTO_INIT_X1024 0x4 + + * SDRAM Initialization Register 5 + * (OFFSET, MASK, VALUE) (0XFD0700E4, 0x00FF03FFU ,0x00210004U) + */ + PSU_Mask_Write(DDRC_INIT5_OFFSET, 0x00FF03FFU, 0x00210004U); +/*##################################################################### */ + + /* + * Register : INIT6 @ 0XFD0700E8 + + * DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT6_MR4 0x0 + + * DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT6_MR5 0x6c0 + + * SDRAM Initialization Register 6 + * (OFFSET, MASK, VALUE) (0XFD0700E8, 0xFFFFFFFFU ,0x000006C0U) + */ + PSU_Mask_Write(DDRC_INIT6_OFFSET, 0xFFFFFFFFU, 0x000006C0U); +/*##################################################################### */ + + /* + * Register : INIT7 @ 0XFD0700EC + + * DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT7_MR6 0x819 + + * SDRAM Initialization Register 7 + * (OFFSET, MASK, VALUE) (0XFD0700EC, 0xFFFF0000U ,0x08190000U) + */ + PSU_Mask_Write(DDRC_INIT7_OFFSET, 0xFFFF0000U, 0x08190000U); +/*##################################################################### */ + + /* + * Register : DIMMCTL @ 0XFD0700F0 + + * Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and + * BG1 are NOT swapped even if Address Mirroring is enabled. This will be r + * equired for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapp + * ed. - 0 - BG0 and BG1 are swapped if address mirroring is enabled. + * PSU_DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING 0x0 + + * Enable for BG1 bit of MRS command. BG1 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have BG1 are attached and + * both the CA parity and the Output Inversion are enabled, this must be s + * et to 0, so that the calculation of CA parity will not include BG1 bit. + * Note: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. If address mirroring is enab + * led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - En + * abled - 0 - Disabled + * PSU_DDRC_DIMMCTL_MRS_BG1_EN 0x1 + + * Enable for A17 bit of MRS command. A17 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have A17 are attached and + * the Output Inversion are enabled, this must be set to 0, so that the ca + * lculation of CA parity will not include A17 bit. Note: This has no effec + * t on the address of any other memory accesses, or of software-driven mod + * e register accesses. - 1 - Enabled - 0 - Disabled + * PSU_DDRC_DIMMCTL_MRS_A17_EN 0x0 + + * Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIM + * M implements the Output Inversion feature by default, which means that t + * he following address, bank address and bank group bits of B-side DRAMs a + * re inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit en + * sures that, for mode register accesses generated by the uMCTL2 during th + * e automatic initialization routine and enabling of a particular DDR4 fea + * ture, separate A-side and B-side mode register accesses are generated. F + * or B-side mode register accesses, these bits are inverted within the uMC + * TL2 to compensate for this RDIMM inversion. Note: This has no effect on + * the address of any other memory accesses, or of software-driven mode reg + * ister accesses. - 1 - Implement output inversion for B-side DRAMs. - 0 - + * Do not implement output inversion for B-side DRAMs. + * PSU_DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN 0x0 + + * Address Mirroring Enable (for multi-rank UDIMM implementations and multi + * -rank DDR4 RDIMM implementations). Some UDIMMs and DDR4 RDIMMs implement + * address mirroring for odd ranks, which means that the following address + * , bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, + * A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting t + * his bit ensures that, for mode register accesses during the automatic in + * itialization routine, these bits are swapped within the uMCTL2 to compen + * sate for this UDIMM/RDIMM swapping. In addition to the automatic initial + * ization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during th + * e automatic MRS access to enable/disable of a particular DDR4 feature. N + * ote: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. This is not supported for mDD + * R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 + * output of MRS for the odd ranks is same as BG0 because BG1 is invalid, + * hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ran + * ks, implement address mirroring for MRS commands to during initializatio + * n and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM imp + * lements address mirroring) - 0 - Do not implement address mirroring + * PSU_DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN 0x0 + + * Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIM + * M implementations only). This is not supported for mDDR, LPDDR2, LPDDR3 + * or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of + * software driven MR commands (via MRCTRL0/MRCTRL1), where software is re + * sponsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Se + * nd MRS commands to each ranks seperately - 1 - (non-DDR4) Send all comma + * nds to even and odd ranks seperately - 0 - Do not stagger accesses + * PSU_DDRC_DIMMCTL_DIMM_STAGGER_CS_EN 0x0 + + * DIMM Control Register + * (OFFSET, MASK, VALUE) (0XFD0700F0, 0x0000003FU ,0x00000010U) + */ + PSU_Mask_Write(DDRC_DIMMCTL_OFFSET, 0x0000003FU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : RANKCTL @ 0XFD0700F4 + + * Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive writes to differ + * ent ranks. This is used to switch the delays in the PHY to match the ran + * k requirements. This value should consider both PHY requirement and ODT + * requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for v + * alue of tphy_wrcsgap) If CRC feature is enabled, should be increased by + * 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increas + * ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be inc + * reased by 1. - ODT requirement: The value programmed in this register ta + * kes care of the ODT switch off timing requirement when switching ranks d + * uring writes. For LPDDR4, the requirement is ODTLoff - ODTLon - BL/2 + 1 + * For configurations with MEMC_FREQ_RATIO=1, program this to the larger o + * f PHY requirement or ODT requirement. For configurations with MEMC_FREQ_ + * RATIO=2, program this to the larger value divided by two and round it up + * to the next integer. + * PSU_DDRC_RANKCTL_DIFF_RANK_WR_GAP 0x6 + + * Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive reads to differe + * nt ranks. This is used to switch the delays in the PHY to match the rank + * requirements. This value should consider both PHY requirement and ODT r + * equirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for va + * lue of tphy_rdcsgap) If read preamble is set to 2tCK(DDR4/LPDDR4 only), + * should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 only + * ), should be increased by 1. - ODT requirement: The value programmed in + * this register takes care of the ODT switch off timing requirement when s + * witching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, + * program this to the larger of PHY requirement or ODT requirement. For co + * nfigurations with MEMC_FREQ_RATIO=2, program this to the larger value di + * vided by two and round it up to the next integer. + * PSU_DDRC_RANKCTL_DIFF_RANK_RD_GAP 0x6 + + * Only present for multi-rank configurations. Background: Reads to the sam + * e rank can be performed back-to-back. Reads to different ranks require a + * dditional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is + * to avoid possible data bus contention as well as to give PHY enough tim + * e to switch the delay when changing ranks. The uMCTL2 arbitrates for bus + * access on a cycle-by-cycle basis; therefore after a read is scheduled, + * there are few clock cycles (determined by the value on RANKCTL.diff_rank + * _rd_gap register) in which only reads from the same rank are eligible to + * be scheduled. This prevents reads from other ranks from having fair acc + * ess to the data bus. This parameter represents the maximum number of rea + * ds that can be scheduled consecutively to the same rank. After this numb + * er is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by + * the scheduler to allow all ranks a fair opportunity to be scheduled. Hig + * her numbers increase bandwidth utilization, lower numbers increase fairn + * ess. This feature can be DISABLED by setting this register to 0. When se + * t to 0, the Controller will stay on the same rank as long as commands ar + * e available for it. Minimum programmable value is 0 (feature disabled) a + * nd maximum programmable value is 0xF. FOR PERFORMANCE ONLY. + * PSU_DDRC_RANKCTL_MAX_RANK_RD 0xf + + * Rank Control Register + * (OFFSET, MASK, VALUE) (0XFD0700F4, 0x00000FFFU ,0x0000066FU) + */ + PSU_Mask_Write(DDRC_RANKCTL_OFFSET, 0x00000FFFU, 0x0000066FU); +/*##################################################################### */ + + /* + * Register : DRAMTMG0 @ 0XFD070100 + + * Minimum time between write and precharge to same bank. Unit: Clocks Spec + * ifications: WL + BL/2 + tWR = approximately 8 cycles + 15 ns = 14 clocks + * @400MHz and less for lower frequencies where: - WL = write latency - BL + * = burst length. This must match the value programmed in the BL bit of t + * he mode register to the SDRAM. BST (burst terminate) is not supported at + * present. - tWR = Write recovery time. This comes directly from the SDRA + * M specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this p + * arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the + * above value by 2. No rounding up. For configurations with MEMC_FREQ_RAT + * IO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it u + * p to the next integer value. + * PSU_DDRC_DRAMTMG0_WR2PRE 0x11 + + * tFAW Valid only when 8 or more banks(or banks x bank groups) are present + * . In 8-bank design, at most 4 banks must be activated in a rolling windo + * w of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tFAW/2) and round up to next integer value. In a 4-bank design, se + * t this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. + * Unit: Clocks + * PSU_DDRC_DRAMTMG0_T_FAW 0x10 + + * tRAS(max): Maximum time between activate and precharge to same bank. Thi + * s is the maximum time that a page can be kept open Minimum value of this + * register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO + * =2, program this to (tRAS(max)-1)/2. No rounding up. Unit: Multiples of + * 1024 clocks. + * PSU_DDRC_DRAMTMG0_T_RAS_MAX 0x24 + + * tRAS(min): Minimum time between activate and precharge to the same bank. + * For configurations with MEMC_FREQ_RATIO=2, 1T mode, program this to tRA + * S(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T + * mode or LPDDR4 mode, program this to (tRAS(min)/2) and round it up to th + * e next integer value. Unit: Clocks + * PSU_DDRC_DRAMTMG0_T_RAS_MIN 0x12 + + * SDRAM Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x11102412U) + */ + PSU_Mask_Write(DDRC_DRAMTMG0_OFFSET, 0x7F3F7F3FU, 0x11102412U); +/*##################################################################### */ + + /* + * Register : DRAMTMG1 @ 0XFD070104 + + * tXP: Minimum time after power-down exit to any operation. For DDR3, this + * should be programmed to tXPDLL if slow powerdown exit is selected in MR + * 0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to (tXP/2) and round it + * up to the next integer value. Units: Clocks + * PSU_DDRC_DRAMTMG1_T_XP 0x4 + + * tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL + * /2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - DDR4: Max of followi + * ng two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 + * - LPDDR2: Depends on if it's LPDDR2-S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + t + * RTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) + * - 4 - LPDDR4: BL/2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_ + * RATIO=2, 1T mode, divide the above value by 2. No rounding up. For confi + * gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the abo + * ve value by 2 and round it up to the next integer value. Unit: Clocks. + * PSU_DDRC_DRAMTMG1_RD2PRE 0x4 + + * tRC: Minimum time between activates to same bank. For configurations wit + * h MEMC_FREQ_RATIO=2, program this to (tRC/2) and round up to next intege + * r value. Unit: Clocks. + * PSU_DDRC_DRAMTMG1_T_RC 0x1a + + * SDRAM Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x0004041AU) + */ + PSU_Mask_Write(DDRC_DRAMTMG1_OFFSET, 0x001F1F7FU, 0x0004041AU); +/*##################################################################### */ + + /* + * Register : DRAMTMG2 @ 0XFD070108 + + * Set to WL Time from write command to write data on SDRAM interface. This + * must be set to WL. For mDDR, it should normally be set to 1. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use a valu + * e of WL + 1 to compensate for the extra cycle of latency through the RDI + * MM For configurations with MEMC_FREQ_RATIO=2, divide the value calculate + * d using the above equation by 2, and round it up to next integer. This r + * egister field is not required for DDR2 and DDR3 (except if MEMC_TRAINING + * is set), as the DFI read and write latencies defined in DFITMG0 and DFI + * TMG1 are sufficient for those protocols Unit: clocks + * PSU_DDRC_DRAMTMG2_WRITE_LATENCY 0x7 + + * Set to RL Time from read command to read data on SDRAM interface. This m + * ust be set to RL. Note that, depending on the PHY, if using RDIMM, it ma + * t be necessary to use a value of RL + 1 to compensate for the extra cycl + * e of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2 + * , divide the value calculated using the above equation by 2, and round i + * t up to next integer. This register field is not required for DDR2 and D + * DR3 (except if MEMC_TRAINING is set), as the DFI read and write latencie + * s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit + * : clocks + * PSU_DDRC_DRAMTMG2_READ_LATENCY 0x8 + + * DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL L + * PDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL LPDDR4(DQ ODT is Di + * sabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL + * LPDDR4(DQ ODT is Enabled) : RL + BL/2 + RU(tDQSCKmax/tCK) + RD_POSTAMBL + * E - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write + * command. Include time for bus turnaround and all per-bank, per-rank, an + * d global constraints. Unit: Clocks. Where: - WL = write latency - BL = b + * urst length. This must match the value programmed in the BL bit of the m + * ode register to the SDRAM - RL = read latency = CAS latency - WR_PREAMBL + * E = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = + * read postamble. This is unique to LPDDR4. For LPDDR2/LPDDR3/LPDDR4, if d + * erating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should + * be used. For configurations with MEMC_FREQ_RATIO=2, divide the value cal + * culated using the above equation by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG2_RD2WR 0x6 + + * DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimu + * m time from write command to read command for same bank group. In others + * , minimum time from write command to read command. Includes time for bus + * turnaround, recovery times, and all per-bank, per-rank, and global cons + * traints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity la + * tency - BL = burst length. This must match the value programmed in the B + * L bit of the mode register to the SDRAM - tWTR_L = internal write to rea + * d command delay for same bank group. This comes directly from the SDRAM + * specification. - tWTR = internal write to read command delay. This comes + * directly from the SDRAM specification. Add one extra cycle for LPDDR2/L + * PDDR3/LPDDR4 operation. For configurations with MEMC_FREQ_RATIO=2, divid + * e the value calculated using the above equation by 2, and round it up to + * next integer. + * PSU_DDRC_DRAMTMG2_WR2RD 0xd + + * SDRAM Timing Register 2 + * (OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060DU) + */ + PSU_Mask_Write(DDRC_DRAMTMG2_OFFSET, 0x3F3F3F3FU, 0x0708060DU); +/*##################################################################### */ + + /* + * Register : DRAMTMG3 @ 0XFD07010C + + * Time to wait after a mode register write or read (MRW or MRR). Present o + * nly in designs configured to support LPDDR2, LPDDR3 or LPDDR4. LPDDR2 ty + * pically requires value of 5. LPDDR3 typically requires value of 10. LPDD + * R4: Set this to the larger of tMRW and tMRWCKEL. For LPDDR2, this regist + * er is used for the time from a MRW/MRR to all other commands. For LDPDR3 + * , this register is used for the time from a MRW/MRR to a MRW/MRR. + * PSU_DDRC_DRAMTMG3_T_MRW 0x5 + + * tMRD: Cycles to wait after a mode register write or read. Depending on t + * he connected SDRAM, tMRD represents: DDR2/mDDR: Time from MRS to any com + * mand DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Tim + * e from MRS to non-MRS command For configurations with MEMC_FREQ_RATIO=2, + * program this to (tMRD/2) and round it up to the next integer value. If + * C/A parity for DDR4 is used, set to tMRD_PAR(tMOD+PL) instead. + * PSU_DDRC_DRAMTMG3_T_MRD 0x4 + + * tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode com + * mand and following non-load mode command. If C/A parity for DDR4 is used + * , set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or + * tMOD/2 (rounded up to next integer) if MEMC_FREQ_RATIO=2. Note that if + * using RDIMM, depending on the PHY, it may be necessary to use a value of + * tMOD + 1 or (tMOD + 1)/2 to compensate for the extra cycle of latency a + * pplied to mode register writes by the RDIMM chip. + * PSU_DDRC_DRAMTMG3_T_MOD 0xc + + * SDRAM Timing Register 3 + * (OFFSET, MASK, VALUE) (0XFD07010C, 0x3FF3F3FFU ,0x0050400CU) + */ + PSU_Mask_Write(DDRC_DRAMTMG3_OFFSET, 0x3FF3F3FFU, 0x0050400CU); +/*##################################################################### */ + + /* + * Register : DRAMTMG4 @ 0XFD070110 + + * tRCD - tAL: Minimum time from activate to read or write command to same + * bank. For configurations with MEMC_FREQ_RATIO=2, program this to ((tRCD + * - tAL)/2) and round it up to the next integer value. Minimum value allow + * ed for this register is 1, which implies minimum (tRCD - tAL) value to b + * e 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. + * PSU_DDRC_DRAMTMG4_T_RCD 0x8 + + * DDR4: tCCD_L: This is the minimum time between two reads or two writes f + * or same bank group. Others: tCCD: This is the minimum time between two r + * eads or two writes. For configurations with MEMC_FREQ_RATIO=2, program t + * his to (tCCD_L/2 or tCCD/2) and round it up to the next integer value. U + * nit: clocks. + * PSU_DDRC_DRAMTMG4_T_CCD 0x3 + + * DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' f + * or same bank group. Others: tRRD: Minimum time between activates from ba + * nk 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tRRD_L/2 or tRRD/2) and round it up to the next integer value. Uni + * t: Clocks. + * PSU_DDRC_DRAMTMG4_T_RRD 0x3 + + * tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ + * _RATIO=1 configurations, t_rp should be set to RoundUp(tRP/tCK). For MEM + * C_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(t + * RP/tCK)/2) + 1. For MEMC_FREQ_RATIO=2 configurations in LPDDR4, t_rp sho + * uld be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. + * PSU_DDRC_DRAMTMG4_T_RP 0x9 + + * SDRAM Timing Register 4 + * (OFFSET, MASK, VALUE) (0XFD070110, 0x1F0F0F1FU ,0x08030309U) + */ + PSU_Mask_Write(DDRC_DRAMTMG4_OFFSET, 0x1F0F0F1FU, 0x08030309U); +/*##################################################################### */ + + /* + * Register : DRAMTMG5 @ 0XFD070114 + + * This is the time before Self Refresh Exit that CK is maintained as a val + * id clock before issuing SRX. Specifies the clock stable time before SRX. + * Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCK + * EH - DDR2: 1 - DDR3: tCKSRX - DDR4: tCKSRX For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKSRX 0x6 + + * This is the time after Self Refresh Down Entry that CK is maintained as + * a valid clock. Specifies the clock disable delay after SRE. Recommended + * settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 + * - DDR3: max (10 ns, 5 tCK) - DDR4: max (10 ns, 5 tCK) For configurations + * with MEMC_FREQ_RATIO=2, program this to recommended value divided by tw + * o and round it up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKSRE 0x6 + + * Minimum CKE low width for Self refresh or Self refresh power down entry + * to exit timing in memory clock cycles. Recommended settings: - mDDR: tRF + * C - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: + * tCKE - DDR3: tCKE + 1 - DDR4: tCKE + 1 For configurations with MEMC_FREQ + * _RATIO=2, program this to recommended value divided by two and round it + * up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKESR 0x4 + + * Minimum number of cycles of CKE HIGH/LOW during power-down and self refr + * esh. - LPDDR2/LPDDR3 mode: Set this to the larger of tCKE or tCKESR - LP + * DDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/ + * non-LPDDR3/non-LPDDR4 designs: Set this to tCKE value. For configuration + * s with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and + * round it up to the next integer value. Unit: Clocks. + * PSU_DDRC_DRAMTMG5_T_CKE 0x3 + + * SDRAM Timing Register 5 + * (OFFSET, MASK, VALUE) (0XFD070114, 0x0F0F3F1FU ,0x06060403U) + */ + PSU_Mask_Write(DDRC_DRAMTMG5_OFFSET, 0x0F0F3F1FU, 0x06060403U); +/*##################################################################### */ + + /* + * Register : DRAMTMG6 @ 0XFD070118 + + * This is the time after Deep Power Down Entry that CK is maintained as a + * valid clock. Specifies the clock disable delay after DPDE. Recommended s + * ettings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. This is only present for designs supporting mDDR + * or LPDDR2/LPDDR3 devices. + * PSU_DDRC_DRAMTMG6_T_CKDPDE 0x1 + + * This is the time before Deep Power Down Exit that CK is maintained as a + * valid clock before issuing DPDX. Specifies the clock stable time before + * DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For config + * urations with MEMC_FREQ_RATIO=2, program this to recommended value divid + * ed by two and round it up to next integer. This is only present for desi + * gns supporting mDDR or LPDDR2 devices. + * PSU_DDRC_DRAMTMG6_T_CKDPDX 0x1 + + * This is the time before Clock Stop Exit that CK is maintained as a valid + * clock before issuing Clock Stop Exit. Specifies the clock stable time b + * efore next command after Clock Stop Exit. Recommended settings: - mDDR: + * 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + 2 - LPDDR4: tXP + 2 For configuratio + * ns with MEMC_FREQ_RATIO=2, program this to recommended value divided by + * two and round it up to next integer. This is only present for designs su + * pporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG6_T_CKCSX 0x4 + + * SDRAM Timing Register 6 + * (OFFSET, MASK, VALUE) (0XFD070118, 0x0F0F000FU ,0x01010004U) + */ + PSU_Mask_Write(DDRC_DRAMTMG6_OFFSET, 0x0F0F000FU, 0x01010004U); +/*##################################################################### */ + + /* + * Register : DRAMTMG7 @ 0XFD07011C + + * This is the time after Power Down Entry that CK is maintained as a valid + * clock. Specifies the clock disable delay after PDE. Recommended setting + * s: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configuration + * s with MEMC_FREQ_RATIO=2, program this to recommended value divided by t + * wo and round it up to next integer. This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG7_T_CKPDE 0x6 + + * This is the time before Power Down Exit that CK is maintained as a valid + * clock before issuing PDX. Specifies the clock stable time before PDX. R + * ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For c + * onfigurations with MEMC_FREQ_RATIO=2, program this to recommended value + * divided by two and round it up to next integer. This is only present for + * designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG7_T_CKPDX 0x6 + + * SDRAM Timing Register 7 + * (OFFSET, MASK, VALUE) (0XFD07011C, 0x00000F0FU ,0x00000606U) + */ + PSU_Mask_Write(DDRC_DRAMTMG7_OFFSET, 0x00000F0FU, 0x00000606U); +/*##################################################################### */ + + /* + * Register : DRAMTMG8 @ 0XFD070120 + + * tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and + * Geardown mode). For configurations with MEMC_FREQ_RATIO=2, program this + * to the above value divided by 2 and round up to next integer value. Unit + * : Multiples of 32 clocks. Note: This is applicable to only ZQCL/ZQCS com + * mands. Note: Ensure this is less than or equal to t_xs_x32. + * PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x3 + + * tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in S + * elf Refresh Abort. For configurations with MEMC_FREQ_RATIO=2, program th + * is to the above value divided by 2 and round up to next integer value. U + * nit: Multiples of 32 clocks. Note: Ensure this is less than or equal to + * t_xs_x32. + * PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x3 + + * tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For config + * urations with MEMC_FREQ_RATIO=2, program this to the above value divided + * by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. + * PSU_DDRC_DRAMTMG8_T_XS_DLL_X32 0xd + + * tXS: Exit Self Refresh to commands not requiring a locked DLL. For confi + * gurations with MEMC_FREQ_RATIO=2, program this to the above value divide + * d by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. + * PSU_DDRC_DRAMTMG8_T_XS_X32 0x6 + + * SDRAM Timing Register 8 + * (OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x03030D06U) + */ + PSU_Mask_Write(DDRC_DRAMTMG8_OFFSET, 0x7F7F7F7FU, 0x03030D06U); +/*##################################################################### */ + + /* + * Register : DRAMTMG9 @ 0XFD070124 + + * DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present o + * nly with MEMC_FREQ_RATIO=2 + * PSU_DDRC_DRAMTMG9_DDR4_WR_PREAMBLE 0x0 + + * tCCD_S: This is the minimum time between two reads or two writes for dif + * ferent bank group. For bank switching (from bank 'a' to bank 'b'), the m + * inimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2 + * , program this to (tCCD_S/2) and round it up to the next integer value. + * Present only in designs configured to support DDR4. Unit: clocks. + * PSU_DDRC_DRAMTMG9_T_CCD_S 0x2 + + * tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for dif + * ferent bank group. For configurations with MEMC_FREQ_RATIO=2, program th + * is to (tRRD_S/2) and round it up to the next integer value. Present only + * in designs configured to support DDR4. Unit: Clocks. + * PSU_DDRC_DRAMTMG9_T_RRD_S 0x2 + + * CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command + * for different bank group. Includes time for bus turnaround, recovery ti + * mes, and all per-bank, per-rank, and global constraints. Present only in + * designs configured to support DDR4. Unit: Clocks. Where: - CWL = CAS wr + * ite latency - PL = Parity latency - BL = burst length. This must match t + * he value programmed in the BL bit of the mode register to the SDRAM - tW + * TR_S = internal write to read command delay for different bank group. Th + * is comes directly from the SDRAM specification. For configurations with + * MEMC_FREQ_RATIO=2, divide the value calculated using the above equation + * by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG9_WR2RD_S 0xb + + * SDRAM Timing Register 9 + * (OFFSET, MASK, VALUE) (0XFD070124, 0x40070F3FU ,0x0002020BU) + */ + PSU_Mask_Write(DDRC_DRAMTMG9_OFFSET, 0x40070F3FU, 0x0002020BU); +/*##################################################################### */ + + /* + * Register : DRAMTMG11 @ 0XFD07012C + + * tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DL + * L. For configurations with MEMC_FREQ_RATIO=2, program this to (tXMPDLL/2 + * ) and round it up to the next integer value. Present only in designs con + * figured to support DDR4. Unit: Multiples of 32 clocks. + * PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x70 + + * tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For + * configurations with MEMC_FREQ_RATIO=2, program this to RoundUp(tMPX_LH/2 + * )+1. Present only in designs configured to support DDR4. Unit: clocks. + * PSU_DDRC_DRAMTMG11_T_MPX_LH 0x7 + + * tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_ + * FREQ_RATIO=2, program this to (tMPX_S/2) and round it up to the next int + * eger value. Present only in designs configured to support DDR4. Unit: Cl + * ocks. + * PSU_DDRC_DRAMTMG11_T_MPX_S 0x1 + + * tCKMPE: Minimum valid clock requirement after MPSM entry. Present only i + * n designs configured to support DDR4. Unit: Clocks. For configurations w + * ith MEMC_FREQ_RATIO=2, divide the value calculated using the above equat + * ion by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG11_T_CKMPE 0xe + + * SDRAM Timing Register 11 + * (OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x7007010EU) + */ + PSU_Mask_Write(DDRC_DRAMTMG11_OFFSET, 0x7F1F031FU, 0x7007010EU); +/*##################################################################### */ + + /* + * Register : DRAMTMG12 @ 0XFD070130 + + * tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larg + * er of tESCKE or tCMDCKE For configurations with MEMC_FREQ_RATIO=2, progr + * am this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer valu + * e. + * PSU_DDRC_DRAMTMG12_T_CMDCKE 0x2 + + * tCKEHCMD: Valid command requirement after CKE input HIGH. For configurat + * ions with MEMC_FREQ_RATIO=2, program this to (tCKEHCMD/2) and round it u + * p to next integer value. + * PSU_DDRC_DRAMTMG12_T_CKEHCMD 0x6 + + * tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. + * For configurations with MEMC_FREQ_RATIO=2, program this to (tMRD_PDA/2) + * and round it up to next integer value. + * PSU_DDRC_DRAMTMG12_T_MRD_PDA 0x8 + + * SDRAM Timing Register 12 + * (OFFSET, MASK, VALUE) (0XFD070130, 0x00030F1FU ,0x00020608U) + */ + PSU_Mask_Write(DDRC_DRAMTMG12_OFFSET, 0x00030F1FU, 0x00020608U); +/*##################################################################### */ + + /* + * Register : ZQCTL0 @ 0XFD070180 + + * - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Reg + * ister DBGCMD.zq_calib_short can be used instead to issue ZQ calibration + * request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibrati + * on) commands based on ZQCTL1.t_zq_short_interval_x1024. This is only pre + * sent for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_AUTO_ZQ 0x1 + + * - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refres + * h/SR-Powerdown exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 + * or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibratio + * n) command at Self-Refresh/SR-Powerdown exit. Only applicable when run i + * n DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present + * for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_SRX_ZQCL 0x0 + + * - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQC + * L/ZQCS/MPC(ZQ calibration) commands are sent to one rank at a time with + * tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that co + * mmands to different ranks do not overlap. - 0 - ZQ resistor is not share + * d. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR + * 3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_ZQ_RESISTOR_SHARED 0x0 + + * - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. + * Only applicable when run in DDR4 mode. - 0 - Enable issuing of ZQCL com + * mand at Maximum Power Saving Mode exit. Only applicable when run in DDR4 + * mode. This is only present for designs supporting DDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_MPSMX_ZQCL 0x0 + + * tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Numbe + * r of cycles of NOP required after a ZQCL (ZQ calibration long)/MPC(ZQ St + * art) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO + * =2: DDR3/DDR4: program this to tZQoper/2 and round it up to the next int + * eger value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to th + * e next integer value. LPDDR4: program this to tZQCAL/2 and round it up t + * o the next integer value. Unit: Clock cycles. This is only present for d + * esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_T_ZQ_LONG_NOP 0x100 + + * tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of + * NOP required after a ZQCS (ZQ calibration short)/MPC(ZQ Latch) command + * is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program t + * his to tZQCS/2 and round it up to the next integer value. Unit: Clock cy + * cles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LP + * DDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_T_ZQ_SHORT_NOP 0x40 + + * ZQ Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD070180, 0xF7FF03FFU ,0x81000040U) + */ + PSU_Mask_Write(DDRC_ZQCTL0_OFFSET, 0xF7FF03FFU, 0x81000040U); +/*##################################################################### */ + + /* + * Register : ZQCTL1 @ 0XFD070184 + + * tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibrati + * on Reset) command is issued to SDRAM. For configurations with MEMC_FREQ_ + * RATIO=2, program this to tZQReset/2 and round it up to the next integer + * value. Unit: Clock cycles. This is only present for designs supporting L + * PDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL1_T_ZQ_RESET_NOP 0x20 + + * Average interval to wait between automatically issuing ZQCS (ZQ calibrat + * ion short)/MPC(ZQ calibration) commands to DDR3/DDR4/LPDDR2/LPDDR3/LPDDR + * 4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles + * . This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3 + * /LPDDR4 devices. + * PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x196dc + + * ZQ Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x020196DCU) + */ + PSU_Mask_Write(DDRC_ZQCTL1_OFFSET, 0x3FFFFFFFU, 0x020196DCU); +/*##################################################################### */ + + /* + * Register : DFITMG0 @ 0XFD070190 + + * Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. + * PSU_DDRC_DFITMG0_DFI_T_CTRL_DELAY 0x4 + + * Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. + * PSU_DDRC_DFITMG0_DFI_RDDATA_USE_SDR 0x1 + + * Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks + * PSU_DDRC_DFITMG0_DFI_T_RDDATA_EN 0xb + + * Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. + * PSU_DDRC_DFITMG0_DFI_WRDATA_USE_SDR 0x1 + + * Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks + * PSU_DDRC_DFITMG0_DFI_TPHY_WRDATA 0x2 + + * Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. + * PSU_DDRC_DFITMG0_DFI_TPHY_WRLAT 0xb + + * DFI Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD070190, 0x1FBFBF3FU ,0x048B820BU) + */ + PSU_Mask_Write(DDRC_DFITMG0_OFFSET, 0x1FBFBF3FU, 0x048B820BU); +/*##################################################################### */ + + /* + * Register : DFITMG1 @ 0XFD070194 + + * Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated command is driven. This field is used + * for CAL mode, should be set to '0' or the value which matches the CAL mo + * de register setting in the DRAM. If the PHY can add the latency for CAL + * mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 + * PSU_DDRC_DFITMG1_DFI_T_CMD_LAT 0x0 + + * Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated dfi_parity_in signal is driven. + * PSU_DDRC_DFITMG1_DFI_T_PARIN_LAT 0x0 + + * Specifies the number of DFI clocks between when the dfi_wrdata_en signal + * is asserted and when the corresponding write data transfer is completed + * on the DRAM bus. This corresponds to the DFI timing parameter twrdata_d + * elay. Refer to PHY specification for correct value. For DFI 3.0 PHY, set + * to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI + * 2.1 PHY, set to tphy_wrdata + (delay of DFI write data to the DRAM). Va + * lue to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ_ + * RATIO=2, divide PHY's value by 2 and round up to next integer. If using + * DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Unit: Clocks + * PSU_DDRC_DFITMG1_DFI_T_WRDATA_DELAY 0x3 + + * Specifies the number of DFI clock cycles from the assertion of the dfi_d + * ram_clk_disable signal on the DFI until the clock to the DRAM memory dev + * ices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock + * and the memory clock are not phase aligned, this timing parameter should + * be rounded up to the next integer value. + * PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE 0x3 + + * Specifies the number of DFI clock cycles from the de-assertion of the df + * i_dram_clk_disable signal on the DFI until the first valid rising edge o + * f the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the + * DFI clock and the memory clock are not phase aligned, this timing param + * eter should be rounded up to the next integer value. + * PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE 0x4 + + * DFI Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD070194, 0xF31F0F0FU ,0x00030304U) + */ + PSU_Mask_Write(DDRC_DFITMG1_OFFSET, 0xF31F0F0FU, 0x00030304U); +/*##################################################################### */ + + /* + * Register : DFILPCFG0 @ 0XFD070198 + + * Setting for DFI's tlp_resp time. Same value is used for both Power Down, + * Self Refresh, Deep Power Down and Maximum Power Saving modes. DFI 2.1 s + * pecification onwards, recommends using a fixed value of 7 always. + * PSU_DDRC_DFILPCFG0_DFI_TLP_RESP 0x7 + + * Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is ente + * red. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 + * cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 5 + * 12 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - + * 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 6553 + * 6 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited T + * his is only present for designs supporting mDDR or LPDDR2/LPDDR3 devices + * . + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD 0x0 + + * Enables DFI Low Power interface handshaking during Deep Power Down Entry + * /Exit. - 0 - Disabled - 1 - Enabled This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3 devices. + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_DPD 0x0 + + * Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered + * . Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cyc + * les - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 + * cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 + * - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 c + * ycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR 0x0 + + * Enables DFI Low Power interface handshaking during Self Refresh Entry/Ex + * it. - 0 - Disabled - 1 - Enabled + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_SR 0x1 + + * Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. + * Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cycle + * s - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cy + * cles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - + * 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cyc + * les - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD 0x0 + + * Enables DFI Low Power interface handshaking during Power Down Entry/Exit + * . - 0 - Disabled - 1 - Enabled + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_PD 0x1 + + * DFI Low Power Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070198, 0x0FF1F1F1U ,0x07000101U) + */ + PSU_Mask_Write(DDRC_DFILPCFG0_OFFSET, 0x0FF1F1F1U, 0x07000101U); +/*##################################################################### */ + + /* + * Register : DFILPCFG1 @ 0XFD07019C + + * Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is + * entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 + * - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x + * 5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycl + * es - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - + * 65536 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimi + * ted This is only present for designs supporting DDR4 devices. + * PSU_DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM 0x2 + + * Enables DFI Low Power interface handshaking during Maximum Power Saving + * Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is only present for d + * esigns supporting DDR4 devices. + * PSU_DDRC_DFILPCFG1_DFI_LP_EN_MPSM 0x1 + + * DFI Low Power Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD07019C, 0x000000F1U ,0x00000021U) + */ + PSU_Mask_Write(DDRC_DFILPCFG1_OFFSET, 0x000000F1U, 0x00000021U); +/*##################################################################### */ + + /* + * Register : DFIUPD0 @ 0XFD0701A0 + + * When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * . The core must issue the dfi_ctrlupd_req signal using register reg_ddrc + * _ctrlupd. When '0', uMCTL2 issues dfi_ctrlupd_req periodically. + * PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD 0x0 + + * When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * following a self-refresh exit. The core must issue the dfi_ctrlupd_req + * signal using register reg_ddrc_ctrlupd. When '0', uMCTL2 issues a dfi_ct + * rlupd_req after exiting self-refresh. + * PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX 0x0 + + * Specifies the maximum number of clock cycles that the dfi_ctrlupd_req si + * gnal can assert. Lowest value to assign to this variable is 0x40. Unit: + * Clocks + * PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MAX 0x40 + + * Specifies the minimum number of clock cycles that the dfi_ctrlupd_req si + * gnal must be asserted. The uMCTL2 expects the PHY to respond within this + * time. If the PHY does not respond, the uMCTL2 will de-assert dfi_ctrlup + * d_req after dfi_t_ctrlup_min + 2 cycles. Lowest value to assign to this + * variable is 0x3. Unit: Clocks + * PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MIN 0x3 + + * DFI Update Register 0 + * (OFFSET, MASK, VALUE) (0XFD0701A0, 0xC3FF03FFU ,0x00400003U) + */ + PSU_Mask_Write(DDRC_DFIUPD0_OFFSET, 0xC3FF03FFU, 0x00400003U); +/*##################################################################### */ + + /* + * Register : DFIUPD1 @ 0XFD0701A4 + + * This is the minimum amount of time between uMCTL2 initiated DFI update r + * equests (which is executed whenever the uMCTL2 is idle). Set this number + * higher to reduce the frequency of update requests, which can have a sma + * ll impact on the latency of the first read request when the uMCTL2 is id + * le. Unit: 1024 clocks + * PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024 0x41 + + * This is the maximum amount of time between uMCTL2 initiated DFI update r + * equests. This timer resets with each update request; when the timer expi + * res dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd + * _ackx is received. PHY can use this idle time to recalibrate the delay l + * ines to the DLLs. The DFI controller update is also used to reset PHY FI + * FO pointers in case of data capture errors. Updates are required to main + * tain calibration over PVT, but frequent updates may impact performance. + * Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must + * be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x1024. Unit: 1024 cl + * ocks + * PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe1 + + * DFI Update Register 1 + * (OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E1U) + */ + PSU_Mask_Write(DDRC_DFIUPD1_OFFSET, 0x00FF00FFU, 0x004100E1U); +/*##################################################################### */ + + /* + * Register : DFIMISC @ 0XFD0701B0 + + * Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signal + * s are active low - 1: Signals are active high + * PSU_DDRC_DFIMISC_DFI_DATA_CS_POLARITY 0x0 + + * DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. + * - 1 - PHY implements DBI functionality. Present only in designs configu + * red to support DDR4 and LPDDR4. + * PSU_DDRC_DFIMISC_PHY_DBI_MODE 0x0 + + * PHY initialization complete enable signal. When asserted the dfi_init_co + * mplete signal can be used to trigger SDRAM initialisation + * PSU_DDRC_DFIMISC_DFI_INIT_COMPLETE_EN 0x0 + + * DFI Miscellaneous Control Register + * (OFFSET, MASK, VALUE) (0XFD0701B0, 0x00000007U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DFIMISC_OFFSET, 0x00000007U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DFITMG2 @ 0XFD0701B4 + + * >Number of clocks between when a read command is sent on the DFI control + * interface and when the associated dfi_rddata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY spe + * cification for correct value. + * PSU_DDRC_DFITMG2_DFI_TPHY_RDCSLAT 0x9 + + * Number of clocks between when a write command is sent on the DFI control + * interface and when the associated dfi_wrdata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY spe + * cification for correct value. + * PSU_DDRC_DFITMG2_DFI_TPHY_WRCSLAT 0x6 + + * DFI Timing Register 2 + * (OFFSET, MASK, VALUE) (0XFD0701B4, 0x00003F3FU ,0x00000906U) + */ + PSU_Mask_Write(DDRC_DFITMG2_OFFSET, 0x00003F3FU, 0x00000906U); +/*##################################################################### */ + + /* + * Register : DBICTL @ 0XFD0701C0 + + * Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read D + * BI is enabled. This signal must be set the same value as DRAM's mode reg + * ister. - DDR4: MR5 bit A12. When x4 devices are used, this signal must b + * e set to 0. - LPDDR4: MR3[6] + * PSU_DDRC_DBICTL_RD_DBI_EN 0x0 + + * Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Writ + * e DBI is enabled. This signal must be set the same value as DRAM's mode + * register. - DDR4: MR5 bit A11. When x4 devices are used, this signal mus + * t be set to 0. - LPDDR4: MR3[7] + * PSU_DDRC_DBICTL_WR_DBI_EN 0x0 + + * DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. Thi + * s signal must be set the same logical value as DRAM's mode register. - D + * DR4: Set this to same value as MR5 bit A10. When x4 devices are used, th + * is signal must be set to 0. - LPDDR4: Set this to inverted value of MR13 + * [5] which is opposite polarity from this signal + * PSU_DDRC_DBICTL_DM_EN 0x1 + + * DM/DBI Control Register + * (OFFSET, MASK, VALUE) (0XFD0701C0, 0x00000007U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_DBICTL_OFFSET, 0x00000007U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : ADDRMAP0 @ 0XFD070200 + + * Selects the HIF address bit used as rank address bit 0. Valid Range: 0 t + * o 27, and 31 Internal Base: 6 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, r + * ank address bit 0 is set to 0. + * PSU_DDRC_ADDRMAP0_ADDRMAP_CS_BIT0 0x1f + + * Address Map Register 0 + * (OFFSET, MASK, VALUE) (0XFD070200, 0x0000001FU ,0x0000001FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP0_OFFSET, 0x0000001FU, 0x0000001FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP1 @ 0XFD070204 + + * Selects the HIF address bit used as bank address bit 2. Valid Range: 0 t + * o 29 and 31 Internal Base: 4 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, ba + * nk address bit 2 is set to 0. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B2 0x1f + + * Selects the HIF address bits used as bank address bit 1. Valid Range: 0 + * to 30 Internal Base: 3 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B1 0xa + + * Selects the HIF address bits used as bank address bit 0. Valid Range: 0 + * to 30 Internal Base: 2 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B0 0xa + + * Address Map Register 1 + * (OFFSET, MASK, VALUE) (0XFD070204, 0x001F1F1FU ,0x001F0A0AU) + */ + PSU_Mask_Write(DDRC_ADDRMAP1_OFFSET, 0x001F1F1FU, 0x001F0A0AU); +/*##################################################################### */ + + /* + * Register : ADDRMAP2 @ 0XFD070208 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 5. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 6. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 7 . Valid Range: 0 to 7, and 15 Internal Base + * : 5 The selected HIF address bit is determined by adding the internal ba + * se to the value of this field. If set to 15, this column address bit is + * set to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B5 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 4. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 5. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 6. Valid Range: 0 to 7, and 15 Internal Base: + * 4 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B4 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 3. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 4. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 5. Valid Range: 0 to 7 Internal Base: 3 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=1 + * 6, it is required to program this to 0, hence register does not exist in + * this case. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B3 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 2. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 3. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 4. Valid Range: 0 to 7 Internal Base: 2 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 + * or 16, it is required to program this to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B2 0x0 + + * Address Map Register 2 + * (OFFSET, MASK, VALUE) (0XFD070208, 0x0F0F0F0FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ADDRMAP2_OFFSET, 0x0F0F0F0FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ADDRMAP3 @ 0XFD07020C + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 9. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: + * Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/ + * LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected + * HIF address bit is determined by adding the internal base to the value o + * f this field. If set to 15, this column address bit is set to 0. Note: P + * er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved fo + * r indicating auto-precharge, and hence no source address bit can be mapp + * ed to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit + * for auto-precharge in the CA bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B9 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 8. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 9. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). Valid Range: 0 + * to 7, and 15 Internal Base: 8 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specifi + * cation, column address bit 10 is reserved for indicating auto-precharge, + * and hence no source address bit can be mapped to column address bit 10. + * In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA + * bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B8 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 7. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 8. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 9. Valid Range: 0 to 7, and 15 Internal Base: + * 7 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B7 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 6. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 7. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 8. Valid Range: 0 to 7, and 15 Internal Base: + * 6 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B6 0x0 + + * Address Map Register 3 + * (OFFSET, MASK, VALUE) (0XFD07020C, 0x0F0F0F0FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ADDRMAP3_OFFSET, 0x0F0F0F0FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ADDRMAP4 @ 0XFD070210 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width mode: Unused. To m + * ake it unused, this should be tied to 4'hF. - Quarter bus width mode: Un + * used. To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, + * and 15 Internal Base: 11 The selected HIF address bit is determined by + * adding the internal base to the value of this field. If set to 15, this + * column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificatio + * n, column address bit 10 is reserved for indicating auto-precharge, and + * hence no source address bit can be mapped to column address bit 10. In L + * PDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus + * and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B11 0xf + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width mode: Selects the + * HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode) + * . - Quarter bus width mode: UNUSED. To make it unused, this must be tied + * to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF + * address bit is determined by adding the internal base to the value of t + * his field. If set to 15, this column address bit is set to 0. Note: Per + * JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for i + * ndicating auto-precharge, and hence no source address bit can be mapped + * to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for + * auto-precharge in the CA bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B10 0xf + + * Address Map Register 4 + * (OFFSET, MASK, VALUE) (0XFD070210, 0x00000F0FU ,0x00000F0FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP4_OFFSET, 0x00000F0FU, 0x00000F0FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP5 @ 0XFD070214 + + * Selects the HIF address bit used as row address bit 11. Valid Range: 0 t + * o 11, and 15 Internal Base: 17 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 11 is set to 0. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B11 0x8 + + * Selects the HIF address bits used as row address bits 2 to 10. Valid Ran + * ge: 0 to 11, and 15 Internal Base: 8 (for row address bit 2), 9 (for row + * address bit 3), 10 (for row address bit 4) etc increasing to 16 (for ro + * w address bit 10) The selected HIF address bit for each of the row addre + * ss bits is determined by adding the internal base to the value of this f + * ield. When value 15 is used the values of row address bits 2 to 10 are d + * efined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10 0xf + + * Selects the HIF address bits used as row address bit 1. Valid Range: 0 t + * o 11 Internal Base: 7 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B1 0x8 + + * Selects the HIF address bits used as row address bit 0. Valid Range: 0 t + * o 11 Internal Base: 6 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B0 0x8 + + * Address Map Register 5 + * (OFFSET, MASK, VALUE) (0XFD070214, 0x0F0F0F0FU ,0x080F0808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP5_OFFSET, 0x0F0F0F0FU, 0x080F0808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP6 @ 0XFD070218 + + * Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 + * - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address having row[14:13]= + * =2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. + * All addresses are valid Present only in designs configured to support L + * PDDR3. + * PSU_DDRC_ADDRMAP6_LPDDR3_6GB_12GB 0x0 + + * Selects the HIF address bit used as row address bit 15. Valid Range: 0 t + * o 11, and 15 Internal Base: 21 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 15 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B15 0xf + + * Selects the HIF address bit used as row address bit 14. Valid Range: 0 t + * o 11, and 15 Internal Base: 20 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 14 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B14 0x8 + + * Selects the HIF address bit used as row address bit 13. Valid Range: 0 t + * o 11, and 15 Internal Base: 19 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 13 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B13 0x8 + + * Selects the HIF address bit used as row address bit 12. Valid Range: 0 t + * o 11, and 15 Internal Base: 18 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 12 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B12 0x8 + + * Address Map Register 6 + * (OFFSET, MASK, VALUE) (0XFD070218, 0x8F0F0F0FU ,0x0F080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP6_OFFSET, 0x8F0F0F0FU, 0x0F080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP7 @ 0XFD07021C + + * Selects the HIF address bit used as row address bit 17. Valid Range: 0 t + * o 10, and 15 Internal Base: 23 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 17 is set to 0. + * PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B17 0xf + + * Selects the HIF address bit used as row address bit 16. Valid Range: 0 t + * o 11, and 15 Internal Base: 22 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 16 is set to 0. + * PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B16 0xf + + * Address Map Register 7 + * (OFFSET, MASK, VALUE) (0XFD07021C, 0x00000F0FU ,0x00000F0FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP7_OFFSET, 0x00000F0FU, 0x00000F0FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP8 @ 0XFD070220 + + * Selects the HIF address bits used as bank group address bit 1. Valid Ran + * ge: 0 to 30, and 31 Internal Base: 3 The selected HIF address bit for ea + * ch of the bank group address bits is determined by adding the internal b + * ase to the value of this field. If set to 31, bank group address bit 1 i + * s set to 0. + * PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B1 0x8 + + * Selects the HIF address bits used as bank group address bit 0. Valid Ran + * ge: 0 to 30 Internal Base: 2 The selected HIF address bit for each of th + * e bank group address bits is determined by adding the internal base to t + * he value of this field. + * PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B0 0x8 + + * Address Map Register 8 + * (OFFSET, MASK, VALUE) (0XFD070220, 0x00001F1FU ,0x00000808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP8_OFFSET, 0x00001F1FU, 0x00000808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP9 @ 0XFD070224 + + * Selects the HIF address bits used as row address bit 5. Valid Range: 0 t + * o 11 Internal Base: 11 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B5 0x8 + + * Selects the HIF address bits used as row address bit 4. Valid Range: 0 t + * o 11 Internal Base: 10 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B4 0x8 + + * Selects the HIF address bits used as row address bit 3. Valid Range: 0 t + * o 11 Internal Base: 9 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B3 0x8 + + * Selects the HIF address bits used as row address bit 2. Valid Range: 0 t + * o 11 Internal Base: 8 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B2 0x8 + + * Address Map Register 9 + * (OFFSET, MASK, VALUE) (0XFD070224, 0x0F0F0F0FU ,0x08080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP9_OFFSET, 0x0F0F0F0FU, 0x08080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP10 @ 0XFD070228 + + * Selects the HIF address bits used as row address bit 9. Valid Range: 0 t + * o 11 Internal Base: 15 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B9 0x8 + + * Selects the HIF address bits used as row address bit 8. Valid Range: 0 t + * o 11 Internal Base: 14 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B8 0x8 + + * Selects the HIF address bits used as row address bit 7. Valid Range: 0 t + * o 11 Internal Base: 13 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B7 0x8 + + * Selects the HIF address bits used as row address bit 6. Valid Range: 0 t + * o 11 Internal Base: 12 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B6 0x8 + + * Address Map Register 10 + * (OFFSET, MASK, VALUE) (0XFD070228, 0x0F0F0F0FU ,0x08080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP10_OFFSET, 0x0F0F0F0FU, 0x08080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP11 @ 0XFD07022C + + * Selects the HIF address bits used as row address bit 10. Valid Range: 0 + * to 11 Internal Base: 16 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of + * this field. This register field is used only when ADDRMAP5.addrmap_row_b + * 2_10 is set to value 15. + * PSU_DDRC_ADDRMAP11_ADDRMAP_ROW_B10 0x8 + + * Address Map Register 11 + * (OFFSET, MASK, VALUE) (0XFD07022C, 0x0000000FU ,0x00000008U) + */ + PSU_Mask_Write(DDRC_ADDRMAP11_OFFSET, 0x0000000FU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : ODTCFG @ 0XFD070240 + + * Cycles to hold ODT for a write command. The minimum supported value is 2 + * . Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/667), 0x6 (DDR2-800 + * ), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (D + * DR2-1066) DDR3: - BL8: 0x6 DDR4: - BL8: 5 + WR_PREAMBLE + CRC_MODE WR_PR + * EAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 ( + * not CRC mode), 1 (CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_WR_ODT_HOLD 0x6 + + * The delay, in clock cycles, from issuing a write command to setting ODT + * values associated with that command. ODT setting must remain constant fo + * r the entire time that DQS is driven by the uMCTL2. Recommended values: + * DDR2: - CWL + AL - 3 (DDR2-400/533/667), CWL + AL - 4 (DDR2-800), CWL + + * AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT fo + * r write operation. DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust + * for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) + * PSU_DDRC_ODTCFG_WR_ODT_DELAY 0x0 + + * Cycles to hold ODT for a read command. The minimum supported value is 2. + * Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066), 0x7 (DDR2-1066) - + * BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8 + * : 5 + RD_PREAMBLE RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write p + * reamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + + * RU(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_RD_ODT_HOLD 0x6 + + * The delay, in clock cycles, from issuing a read command to setting ODT v + * alues associated with that command. ODT setting must remain constant for + * the entire time that DQS is driven by the uMCTL2. Recommended values: D + * DR2: - CL + AL - 4 (not DDR2-1066), CL + AL - 5 (DDR2-1066) If (CL + AL + * - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - C + * WL DDR4: - CL - CWL - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat + * (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK + * write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write pre + * amble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, uMCTL2 does not su + * pport ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - R + * U(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_RD_ODT_DELAY 0x0 + + * ODT Configuration Register + * (OFFSET, MASK, VALUE) (0XFD070240, 0x0F1F0F7CU ,0x06000600U) + */ + PSU_Mask_Write(DDRC_ODTCFG_OFFSET, 0x0F1F0F7CU, 0x06000600U); +/*##################################################################### */ + + /* + * Register : ODTMAP @ 0XFD070244 + + * Indicates which remote ODTs must be turned on during a read from rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. Present only in configurations that have 2 or more + * ranks + * PSU_DDRC_ODTMAP_RANK1_RD_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a write to rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. Present only in configurations that have 2 or more r + * anks + * PSU_DDRC_ODTMAP_RANK1_WR_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a read from rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. + * PSU_DDRC_ODTMAP_RANK0_RD_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a write to rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. + * PSU_DDRC_ODTMAP_RANK0_WR_ODT 0x1 + + * ODT/Rank Map Register + * (OFFSET, MASK, VALUE) (0XFD070244, 0x00003333U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_ODTMAP_OFFSET, 0x00003333U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : SCHED @ 0XFD070250 + + * When the preferred transaction store is empty for these many clock cycle + * s, switch to the alternate transaction store if it is non-empty. The rea + * d transaction store (both high and low priority) is the default preferre + * d transaction store and the write transaction store is the alternative s + * tore. When prefer write over read is set this is reversed. 0x0 is a lega + * l value for this register. When set to 0x0, the transaction store switch + * ing will happen immediately when the switching conditions become true. F + * OR PERFORMANCE ONLY + * PSU_DDRC_SCHED_RDWR_IDLE_GAP 0x1 + + * UNUSED + * PSU_DDRC_SCHED_GO2CRITICAL_HYSTERESIS 0x0 + + * Number of entries in the low priority transaction store is this value + + * 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) is the number of ent + * ries available for the high priority transaction store. Setting this to + * maximum value allocates all entries to low priority transaction store. S + * etting this to 0 allocates 1 entry to low priority transaction store and + * the rest to high priority transaction store. Note: In ECC configuration + * s, the numbers of write and low priority read credits issued is one less + * than in the non-ECC case. One entry each is reserved in the write and l + * ow-priority read CAMs for storing the RMW requests arising out of single + * bit error correction RMW operation. + * PSU_DDRC_SCHED_LPR_NUM_ENTRIES 0x20 + + * If true, bank is kept open only while there are page hit transactions av + * ailable in the CAM to that bank. The last read or write command in the C + * AM with a bank and page hit will be executed with auto-precharge if SCHE + * D1.pageclose_timer=0. Even if this register set to 1 and SCHED1.pageclos + * e_timer is set to 0, explicit precharge (and not auto-precharge) may be + * issued in some cases where there is a mode switch between Write and Read + * or between LPR and HPR. The Read and Write commands that are executed a + * s part of the ECC scrub requests are also executed without auto-precharg + * e. If false, the bank remains open until there is a need to close it (to + * open a different page, or for page timeout or refresh timeout) - also k + * nown as open page policy. The open page policy can be overridden by sett + * ing the per-command-autopre bit on the HIF interface (hif_cmd_autopre). + * The pageclose feature provids a midway between Open and Close page polic + * ies. FOR PERFORMANCE ONLY. + * PSU_DDRC_SCHED_PAGECLOSE 0x0 + + * If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. + * PSU_DDRC_SCHED_PREFER_WRITE 0x0 + + * Active low signal. When asserted ('0'), all incoming transactions are fo + * rced to low priority. This implies that all High Priority Read (HPR) and + * Variable Priority Read commands (VPR) will be treated as Low Priority R + * ead (LPR) commands. On the write side, all Variable Priority Write (VPW) + * commands will be treated as Normal Priority Write (NPW) commands. Forci + * ng the incoming transactions to low priority implicitly turns off Bypass + * path for read commands. FOR PERFORMANCE ONLY. + * PSU_DDRC_SCHED_FORCE_LOW_PRI_N 0x1 + + * Scheduler Control Register + * (OFFSET, MASK, VALUE) (0XFD070250, 0x7FFF3F07U ,0x01002001U) + */ + PSU_Mask_Write(DDRC_SCHED_OFFSET, 0x7FFF3F07U, 0x01002001U); +/*##################################################################### */ + + /* + * Register : PERFLPR1 @ 0XFD070264 + + * Number of transactions that are serviced once the LPR queue goes critica + * l is the smaller of: - (a) This number - (b) Number of transactions avai + * lable. Unit: Transaction. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH 0x8 + + * Number of clocks that the LPR queue can be starved before it goes critic + * al. The minimum valid functional value for this register is 0x1. Program + * ming it to 0x0 will disable the starvation functionality; during normal + * operation, this function should not be disabled as it will cause excessi + * ve latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFLPR1_LPR_MAX_STARVE 0x40 + + * Low Priority Read CAM Register 1 + * (OFFSET, MASK, VALUE) (0XFD070264, 0xFF00FFFFU ,0x08000040U) + */ + PSU_Mask_Write(DDRC_PERFLPR1_OFFSET, 0xFF00FFFFU, 0x08000040U); +/*##################################################################### */ + + /* + * Register : PERFWR1 @ 0XFD07026C + + * Number of transactions that are serviced once the WR queue goes critical + * is the smaller of: - (a) This number - (b) Number of transactions avail + * able. Unit: Transaction. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFWR1_W_XACT_RUN_LENGTH 0x8 + + * Number of clocks that the WR queue can be starved before it goes critica + * l. The minimum valid functional value for this register is 0x1. Programm + * ing it to 0x0 will disable the starvation functionality; during normal o + * peration, this function should not be disabled as it will cause excessiv + * e latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFWR1_W_MAX_STARVE 0x40 + + * Write CAM Register 1 + * (OFFSET, MASK, VALUE) (0XFD07026C, 0xFF00FFFFU ,0x08000040U) + */ + PSU_Mask_Write(DDRC_PERFWR1_OFFSET, 0xFF00FFFFU, 0x08000040U); +/*##################################################################### */ + + /* + * Register : DQMAP0 @ 0XFD070280 + + * DQ nibble map for DQ bits [12-15] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15 0x0 + + * DQ nibble map for DQ bits [8-11] Present only in designs configured to s + * upport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11 0x0 + + * DQ nibble map for DQ bits [4-7] Present only in designs configured to su + * pport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7 0x0 + + * DQ nibble map for DQ bits [0-3] Present only in designs configured to su + * pport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3 0x0 + + * DQ Map Register 0 + * (OFFSET, MASK, VALUE) (0XFD070280, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP0_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP1 @ 0XFD070284 + + * DQ nibble map for DQ bits [28-31] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31 0x0 + + * DQ nibble map for DQ bits [24-27] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27 0x0 + + * DQ nibble map for DQ bits [20-23] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23 0x0 + + * DQ nibble map for DQ bits [16-19] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19 0x0 + + * DQ Map Register 1 + * (OFFSET, MASK, VALUE) (0XFD070284, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP1_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP2 @ 0XFD070288 + + * DQ nibble map for DQ bits [44-47] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47 0x0 + + * DQ nibble map for DQ bits [40-43] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43 0x0 + + * DQ nibble map for DQ bits [36-39] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39 0x0 + + * DQ nibble map for DQ bits [32-35] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35 0x0 + + * DQ Map Register 2 + * (OFFSET, MASK, VALUE) (0XFD070288, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP2_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP3 @ 0XFD07028C + + * DQ nibble map for DQ bits [60-63] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63 0x0 + + * DQ nibble map for DQ bits [56-59] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59 0x0 + + * DQ nibble map for DQ bits [52-55] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55 0x0 + + * DQ nibble map for DQ bits [48-51] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51 0x0 + + * DQ Map Register 3 + * (OFFSET, MASK, VALUE) (0XFD07028C, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP3_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP4 @ 0XFD070290 + + * DQ nibble map for DIMM ECC check bits [4-7] Present only in designs conf + * igured to support DDR4. + * PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7 0x0 + + * DQ nibble map for DIMM ECC check bits [0-3] Present only in designs conf + * igured to support DDR4. + * PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3 0x0 + + * DQ Map Register 4 + * (OFFSET, MASK, VALUE) (0XFD070290, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP4_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP5 @ 0XFD070294 + + * All even ranks have the same DQ mapping controled by DQMAP0-4 register a + * s rank 0. This register provides DQ swap function for all odd ranks to s + * upport CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap b + * it 2 with 3, swap bit 4 with 5 and swap bit 6 with 7. 1: Disable rank ba + * sed DQ swapping 0: Enable rank based DQ swapping Present only in designs + * configured to support DDR4. + * PSU_DDRC_DQMAP5_DIS_DQ_RANK_SWAP 0x1 + + * DQ Map Register 5 + * (OFFSET, MASK, VALUE) (0XFD070294, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_DQMAP5_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : DBG0 @ 0XFD070300 + + * When this is set to '0', auto-precharge is disabled for the flushed comm + * and in a collision case. Collision cases are write followed by read to s + * ame address, read followed by write to same address, or write followed b + * y write to same address with DBG0.dis_wc bit = 1 (where same address com + * parisons exclude the two address bits representing critical word). FOR D + * EBUG ONLY. + * PSU_DDRC_DBG0_DIS_COLLISION_PAGE_OPT 0x0 + + * When 1, disable write combine. FOR DEBUG ONLY + * PSU_DDRC_DBG0_DIS_WC 0x0 + + * Debug Register 0 + * (OFFSET, MASK, VALUE) (0XFD070300, 0x00000011U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DBG0_OFFSET, 0x00000011U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DBGCMD @ 0XFD07030C + + * Setting this register bit to 1 allows refresh and ZQCS commands to be tr + * iggered from hardware via the IOs ext_*. If set to 1, the fields DBGCMD. + * zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignore + * d by the uMCTL2 logic. Setting this register bit to 0 allows refresh and + * ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_shor + * t and DBGCMD.rank*_refresh. If set to 0, the hardware pins ext_* have no + * function, and are ignored by the uMCTL2 logic. This register is static, + * and may only be changed when the DDRC reset signal, core_ddrc_rstn, is + * asserted (0). + * PSU_DDRC_DBGCMD_HW_REF_ZQ_EN 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ct + * rlupd_req to the PHY. When this request is stored in the uMCTL2, the bit + * is automatically cleared. This operation must only be performed when DF + * IUPD0.dis_auto_ctrlupd=1. + * PSU_DDRC_DBGCMD_CTRLUPD 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS ( + * ZQ calibration short)/MPC(ZQ calibration) command to the SDRAM. When thi + * s request is stored in the uMCTL2, the bit is automatically cleared. Thi + * s operation can be performed only when ZQCTL0.dis_auto_zq=1. It is recom + * mended NOT to set this register bit if in Init operating mode. This regi + * ster bit is ignored when in Self-Refresh(except LPDDR4) and SR-Powerdown + * (LPDDR4) and Deep power-down operating modes and Maximum Power Saving Mo + * de. + * PSU_DDRC_DBGCMD_ZQ_CALIB_SHORT 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 1. Writing to this bit causes DBGSTAT.rank1_refresh_busy to be + * set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. + * PSU_DDRC_DBGCMD_RANK1_REFRESH 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 0. Writing to this bit causes DBGSTAT.rank0_refresh_busy to be + * set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. + * PSU_DDRC_DBGCMD_RANK0_REFRESH 0x0 + + * Command Debug Register + * (OFFSET, MASK, VALUE) (0XFD07030C, 0x80000033U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DBGCMD_OFFSET, 0x80000033U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SWCTL @ 0XFD070320 + + * Enable quasi-dynamic register programming outside reset. Program registe + * r to 0 to enable quasi-dynamic programming. Set back register to 1 once + * programming is done. + * PSU_DDRC_SWCTL_SW_DONE 0x0 + + * Software register programming control enable + * (OFFSET, MASK, VALUE) (0XFD070320, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SWCTL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCCFG @ 0XFD070400 + + * Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expand + * s every AXI burst into multiple HIF commands, using the memory burst len + * gth as a unit. If set to 1, then XPI will use half of the memory burst l + * ength as a unit. This applies to both reads and writes. When MSTR.data_b + * us_width==00, setting bl_exp_mode to 1 has no effect. This can be used i + * n cases where Partial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.d + * is_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_ccd + * _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionali + * ty is not supported in the following cases: - UMCTL2_PARTIAL_WR=0 - UMCT + * L2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 an + * d MSTR.reg_ddrc_burst_rdwr=1000 (LPDDR4 only) - UMCTL2_PARTIAL_WR=1, MST + * R.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burs + * t_rdwr=0100 (DDR4 only), with either MSTR.reg_ddrc_burstchop=0 or CRCPAR + * CTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Shared + * -AC is enabled + * PSU_DDRC_PCCFG_BL_EXP_MODE 0x0 + + * Page match four limit. If set to 1, limits the number of consecutive sam + * e page DDRC transactions that can be granted by the Port Arbiter to four + * when Page Match feature is enabled. If set to 0, there is no limit impo + * sed on number of consecutive same page DDRC transactions. + * PSU_DDRC_PCCFG_PAGEMATCH_LIMIT 0x0 + + * If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_l + * pr/co_gs_go2critical_hpr signals going to DDRC based on urgent input (aw + * urgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_ + * go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals a + * t DDRC are driven to 1b'0. + * PSU_DDRC_PCCFG_GO2CRITICAL_EN 0x1 + + * Port Common Configuration Register + * (OFFSET, MASK, VALUE) (0XFD070400, 0x00000111U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCCFG_OFFSET, 0x00000111U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGR_0 @ 0XFD070404 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_0_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_0_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_0_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070404, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_0_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_0 @ 0XFD070408 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_0_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_0_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_0_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_0_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_0 @ 0XFD070490 + + * Enables port n. + * PSU_DDRC_PCTRL_0_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070490, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_0_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_0 @ 0XFD070494 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION1 0x2 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1 0xb + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070494, 0x0033000FU ,0x0020000BU) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_0_OFFSET, 0x0033000FU, 0x0020000BU); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_0 @ 0XFD070498 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070498, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_0_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_1 @ 0XFD0704B4 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_1_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_1_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_1_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD0704B4, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_1_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_1 @ 0XFD0704B8 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_1_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_1_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_1_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_1_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_1 @ 0XFD070540 + + * Enables port n. + * PSU_DDRC_PCTRL_1_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070540, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_1_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_1 @ 0XFD070544 + + * This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION2 0x2 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION1 0x0 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION0 0x0 + + * Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2 0xb + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070544, 0x03330F0FU ,0x02000B03U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_1_OFFSET, 0x03330F0FU, 0x02000B03U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_1 @ 0XFD070548 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070548, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_1_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_2 @ 0XFD070564 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_2_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_2_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_2_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070564, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_2_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_2 @ 0XFD070568 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_2_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_2_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_2_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_2_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_2 @ 0XFD0705F0 + + * Enables port n. + * PSU_DDRC_PCTRL_2_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD0705F0, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_2_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_2 @ 0XFD0705F4 + + * This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION2 0x2 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION1 0x0 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION0 0x0 + + * Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2 0xb + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0705F4, 0x03330F0FU ,0x02000B03U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_2_OFFSET, 0x03330F0FU, 0x02000B03U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_2 @ 0XFD0705F8 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0705F8, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_2_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_3 @ 0XFD070614 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_3_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_3_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_3_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070614, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_3_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_3 @ 0XFD070618 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_3_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_3_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_3_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_3_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_3 @ 0XFD0706A0 + + * Enables port n. + * PSU_DDRC_PCTRL_3_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD0706A0, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_3_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_3 @ 0XFD0706A4 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0706A4, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_3_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_3 @ 0XFD0706A8 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0706A8, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_3_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_3 @ 0XFD0706AC + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0706AC, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_3_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_3 @ 0XFD0706B0 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0706B0, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_3_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGR_4 @ 0XFD0706C4 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_4_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_4_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_4_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_4_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_4 @ 0XFD0706C8 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_4_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_4_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_4_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_4_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_4 @ 0XFD070750 + + * Enables port n. + * PSU_DDRC_PCTRL_4_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070750, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_4_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_4 @ 0XFD070754 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070754, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_4_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_4 @ 0XFD070758 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070758, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_4_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_4 @ 0XFD07075C + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD07075C, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_4_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_4 @ 0XFD070760 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070760, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_4_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGR_5 @ 0XFD070774 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_5_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_5_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_5_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070774, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_5_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_5 @ 0XFD070778 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_5_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_5_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_5_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_5_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_5 @ 0XFD070800 + + * Enables port n. + * PSU_DDRC_PCTRL_5_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070800, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_5_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_5 @ 0XFD070804 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070804, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_5_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_5 @ 0XFD070808 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070808, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_5_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_5 @ 0XFD07080C + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD07080C, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_5_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_5 @ 0XFD070810 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070810, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_5_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : SARBASE0 @ 0XFD070F04 + + * Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + * PSU_DDRC_SARBASE0_BASE_ADDR 0x0 + + * SAR Base Address Register n + * (OFFSET, MASK, VALUE) (0XFD070F04, 0x000001FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SARBASE0_OFFSET, 0x000001FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SARSIZE0 @ 0XFD070F08 + + * Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. + * PSU_DDRC_SARSIZE0_NBLOCKS 0x0 + + * SAR Size Register n + * (OFFSET, MASK, VALUE) (0XFD070F08, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SARSIZE0_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SARBASE1 @ 0XFD070F0C + + * Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + * PSU_DDRC_SARBASE1_BASE_ADDR 0x10 + + * SAR Base Address Register n + * (OFFSET, MASK, VALUE) (0XFD070F0C, 0x000001FFU ,0x00000010U) + */ + PSU_Mask_Write(DDRC_SARBASE1_OFFSET, 0x000001FFU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : SARSIZE1 @ 0XFD070F10 + + * Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. + * PSU_DDRC_SARSIZE1_NBLOCKS 0xf + + * SAR Size Register n + * (OFFSET, MASK, VALUE) (0XFD070F10, 0x000000FFU ,0x0000000FU) + */ + PSU_Mask_Write(DDRC_SARSIZE1_OFFSET, 0x000000FFU, 0x0000000FU); +/*##################################################################### */ + + /* + * Register : DFITMG0_SHADOW @ 0XFD072190 + + * Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. + * PSU_DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY 0x7 + + * Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. + * PSU_DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR 0x1 + + * Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks + * PSU_DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN 0x2 + + * Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. + * PSU_DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR 0x1 + + * Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks + * PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA 0x0 + + * Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. + * PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT 0x2 + + * DFI Timing Shadow Register 0 + * (OFFSET, MASK, VALUE) (0XFD072190, 0x1FBFBF3FU ,0x07828002U) + */ + PSU_Mask_Write(DDRC_DFITMG0_SHADOW_OFFSET, 0x1FBFBF3FU, 0x07828002U); +/*##################################################################### */ + + /* + * DDR CONTROLLER RESET + */ + /* + * Register : RST_DDR_SS @ 0XFD1A0108 + + * DDR block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X0 + + * APM block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_APM_RESET 0X0 + + * DDR sub system block level reset + * (OFFSET, MASK, VALUE) (0XFD1A0108, 0x0000000CU ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_DDR_SS_OFFSET, 0x0000000CU, 0x00000000U); +/*##################################################################### */ + + /* + * DDR PHY + */ + /* + * Register : PGCR0 @ 0XFD080010 + + * Address Copy + * PSU_DDR_PHY_PGCR0_ADCP 0x0 + + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_30_27 0x0 + + * PHY FIFO Reset + * PSU_DDR_PHY_PGCR0_PHYFRST 0x1 + + * Oscillator Mode Address/Command Delay Line Select + * PSU_DDR_PHY_PGCR0_OSCACDL 0x3 + + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_23_19 0x0 + + * Digital Test Output Select + * PSU_DDR_PHY_PGCR0_DTOSEL 0x0 - RegVal = ((0x0000000FU << DDRC_SARSIZE1_NBLOCKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARSIZE1_OFFSET ,0x000000FFU ,0x0000000FU); - /*############################################################################################################################ */ + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_13 0x0 - /*Register : DFITMG0_SHADOW @ 0XFD072190

+ * Oscillator Mode Division + * PSU_DDR_PHY_PGCR0_OSCDIV 0xf - Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock. - PSU_DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY 0x7 - - Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value. - PSU_DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR 0x1 - - Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks - PSU_DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN 0x2 - - Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e. - PSU_DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR 0x1 - - Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks - PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA 0x0 - - Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM. - PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT 0x2 + * Oscillator Enable + * PSU_DDR_PHY_PGCR0_OSCEN 0x0 - DFI Timing Shadow Register 0 - (OFFSET, MASK, VALUE) (0XFD072190, 0x1FBFBF3FU ,0x07828002U) - RegMask = (DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK | DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK | DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK | DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK | DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK | DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK | 0 ); + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_7_0 0x0 - RegVal = ((0x00000007U << DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT - | 0x00000001U << DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT - | 0x00000002U << DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT - | 0x00000001U << DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT - | 0x00000000U << DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT - | 0x00000002U << DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG0_SHADOW_OFFSET ,0x1FBFBF3FU ,0x07828002U); - /*############################################################################################################################ */ - - // : DDR CONTROLLER RESET - /*Register : RST_DDR_SS @ 0XFD1A0108

- - DDR block level reset inside of the DDR Sub System - PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X0 - - DDR sub system block level reset - (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_RST_DDR_SS_DDR_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_DDR_SS_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - // : DDR PHY - /*Register : PGCR0 @ 0XFD080010

- - Address Copy - PSU_DDR_PHY_PGCR0_ADCP 0x0 - - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_30_27 0x0 - - PHY FIFO Reset - PSU_DDR_PHY_PGCR0_PHYFRST 0x1 - - Oscillator Mode Address/Command Delay Line Select - PSU_DDR_PHY_PGCR0_OSCACDL 0x3 - - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_23_19 0x0 + * PHY General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080010, 0xFFFFFFFFU ,0x07001E00U) + */ + PSU_Mask_Write(DDR_PHY_PGCR0_OFFSET, 0xFFFFFFFFU, 0x07001E00U); +/*##################################################################### */ - Digital Test Output Select - PSU_DDR_PHY_PGCR0_DTOSEL 0x0 + /* + * Register : PGCR2 @ 0XFD080018 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_13 0x0 + * Clear Training Status Registers + * PSU_DDR_PHY_PGCR2_CLRTSTAT 0x0 - Oscillator Mode Division - PSU_DDR_PHY_PGCR0_OSCDIV 0xf + * Clear Impedance Calibration + * PSU_DDR_PHY_PGCR2_CLRZCAL 0x0 - Oscillator Enable - PSU_DDR_PHY_PGCR0_OSCEN 0x0 + * Clear Parity Error + * PSU_DDR_PHY_PGCR2_CLRPERR 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_7_0 0x0 + * Initialization Complete Pin Configuration + * PSU_DDR_PHY_PGCR2_ICPC 0x0 - PHY General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080010, 0xFFFFFFFFU ,0x07001E00U) - RegMask = (DDR_PHY_PGCR0_ADCP_MASK | DDR_PHY_PGCR0_RESERVED_30_27_MASK | DDR_PHY_PGCR0_PHYFRST_MASK | DDR_PHY_PGCR0_OSCACDL_MASK | DDR_PHY_PGCR0_RESERVED_23_19_MASK | DDR_PHY_PGCR0_DTOSEL_MASK | DDR_PHY_PGCR0_RESERVED_13_MASK | DDR_PHY_PGCR0_OSCDIV_MASK | DDR_PHY_PGCR0_OSCEN_MASK | DDR_PHY_PGCR0_RESERVED_7_0_MASK | 0 ); + * Data Training PUB Mode Exit Timer + * PSU_DDR_PHY_PGCR2_DTPMXTMR 0xf - RegVal = ((0x00000000U << DDR_PHY_PGCR0_ADCP_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_30_27_SHIFT - | 0x00000001U << DDR_PHY_PGCR0_PHYFRST_SHIFT - | 0x00000003U << DDR_PHY_PGCR0_OSCACDL_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_23_19_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_DTOSEL_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_13_SHIFT - | 0x0000000FU << DDR_PHY_PGCR0_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_OSCEN_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR0_OFFSET ,0xFFFFFFFFU ,0x07001E00U); - /*############################################################################################################################ */ - - /*Register : PGCR2 @ 0XFD080018

+ * Initialization Bypass + * PSU_DDR_PHY_PGCR2_INITFSMBYP 0x0 - Clear Training Status Registers - PSU_DDR_PHY_PGCR2_CLRTSTAT 0x0 + * PLL FSM Bypass + * PSU_DDR_PHY_PGCR2_PLLFSMBYP 0x0 - Clear Impedance Calibration - PSU_DDR_PHY_PGCR2_CLRZCAL 0x0 + * Refresh Period + * PSU_DDR_PHY_PGCR2_TREFPRD 0x10010 - Clear Parity Error - PSU_DDR_PHY_PGCR2_CLRPERR 0x0 + * PHY General Configuration Register 2 + * (OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10010U) + */ + PSU_Mask_Write(DDR_PHY_PGCR2_OFFSET, 0xFFFFFFFFU, 0x00F10010U); +/*##################################################################### */ - Initialization Complete Pin Configuration - PSU_DDR_PHY_PGCR2_ICPC 0x0 + /* + * Register : PGCR3 @ 0XFD08001C - Data Training PUB Mode Exit Timer - PSU_DDR_PHY_PGCR2_DTPMXTMR 0xf + * CKN Enable + * PSU_DDR_PHY_PGCR3_CKNEN 0x55 - Initialization Bypass - PSU_DDR_PHY_PGCR2_INITFSMBYP 0x0 + * CK Enable + * PSU_DDR_PHY_PGCR3_CKEN 0xaa - PLL FSM Bypass - PSU_DDR_PHY_PGCR2_PLLFSMBYP 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR3_RESERVED_15 0x0 - Refresh Period - PSU_DDR_PHY_PGCR2_TREFPRD 0x10028 + * Enable Clock Gating for AC [0] ctl_rd_clk + * PSU_DDR_PHY_PGCR3_GATEACRDCLK 0x2 - PHY General Configuration Register 2 - (OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10028U) - RegMask = (DDR_PHY_PGCR2_CLRTSTAT_MASK | DDR_PHY_PGCR2_CLRZCAL_MASK | DDR_PHY_PGCR2_CLRPERR_MASK | DDR_PHY_PGCR2_ICPC_MASK | DDR_PHY_PGCR2_DTPMXTMR_MASK | DDR_PHY_PGCR2_INITFSMBYP_MASK | DDR_PHY_PGCR2_PLLFSMBYP_MASK | DDR_PHY_PGCR2_TREFPRD_MASK | 0 ); + * Enable Clock Gating for AC [0] ddr_clk + * PSU_DDR_PHY_PGCR3_GATEACDDRCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_PGCR2_CLRTSTAT_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_CLRZCAL_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_CLRPERR_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_ICPC_SHIFT - | 0x0000000FU << DDR_PHY_PGCR2_DTPMXTMR_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_INITFSMBYP_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_PLLFSMBYP_SHIFT - | 0x00010028U << DDR_PHY_PGCR2_TREFPRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR2_OFFSET ,0xFFFFFFFFU ,0x00F10028U); - /*############################################################################################################################ */ + * Enable Clock Gating for AC [0] ctl_clk + * PSU_DDR_PHY_PGCR3_GATEACCTLCLK 0x2 - /*Register : PGCR3 @ 0XFD08001C

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR3_RESERVED_8 0x0 - CKN Enable - PSU_DDR_PHY_PGCR3_CKNEN 0x55 + * Controls DDL Bypass Modes + * PSU_DDR_PHY_PGCR3_DDLBYPMODE 0x2 - CK Enable - PSU_DDR_PHY_PGCR3_CKEN 0xaa + * IO Loop-Back Select + * PSU_DDR_PHY_PGCR3_IOLB 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR3_RESERVED_15 0x0 + * AC Receive FIFO Read Mode + * PSU_DDR_PHY_PGCR3_RDMODE 0x0 - Enable Clock Gating for AC [0] ctl_rd_clk - PSU_DDR_PHY_PGCR3_GATEACRDCLK 0x2 + * Read FIFO Reset Disable + * PSU_DDR_PHY_PGCR3_DISRST 0x0 - Enable Clock Gating for AC [0] ddr_clk - PSU_DDR_PHY_PGCR3_GATEACDDRCLK 0x2 + * Clock Level when Clock Gating + * PSU_DDR_PHY_PGCR3_CLKLEVEL 0x0 - Enable Clock Gating for AC [0] ctl_clk - PSU_DDR_PHY_PGCR3_GATEACCTLCLK 0x2 + * PHY General Configuration Register 3 + * (OFFSET, MASK, VALUE) (0XFD08001C, 0xFFFFFFFFU ,0x55AA5480U) + */ + PSU_Mask_Write(DDR_PHY_PGCR3_OFFSET, 0xFFFFFFFFU, 0x55AA5480U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR3_RESERVED_8 0x0 + /* + * Register : PGCR5 @ 0XFD080024 - Controls DDL Bypass Modes - PSU_DDR_PHY_PGCR3_DDLBYPMODE 0x2 + * Frequency B Ratio Term + * PSU_DDR_PHY_PGCR5_FRQBT 0x1 - IO Loop-Back Select - PSU_DDR_PHY_PGCR3_IOLB 0x0 + * Frequency A Ratio Term + * PSU_DDR_PHY_PGCR5_FRQAT 0x1 - AC Receive FIFO Read Mode - PSU_DDR_PHY_PGCR3_RDMODE 0x0 + * DFI Disconnect Time Period + * PSU_DDR_PHY_PGCR5_DISCNPERIOD 0x0 - Read FIFO Reset Disable - PSU_DDR_PHY_PGCR3_DISRST 0x0 + * Receiver bias core side control + * PSU_DDR_PHY_PGCR5_VREF_RBCTRL 0xf - Clock Level when Clock Gating - PSU_DDR_PHY_PGCR3_CLKLEVEL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR5_RESERVED_3 0x0 - PHY General Configuration Register 3 - (OFFSET, MASK, VALUE) (0XFD08001C, 0xFFFFFFFFU ,0x55AA5480U) - RegMask = (DDR_PHY_PGCR3_CKNEN_MASK | DDR_PHY_PGCR3_CKEN_MASK | DDR_PHY_PGCR3_RESERVED_15_MASK | DDR_PHY_PGCR3_GATEACRDCLK_MASK | DDR_PHY_PGCR3_GATEACDDRCLK_MASK | DDR_PHY_PGCR3_GATEACCTLCLK_MASK | DDR_PHY_PGCR3_RESERVED_8_MASK | DDR_PHY_PGCR3_DDLBYPMODE_MASK | DDR_PHY_PGCR3_IOLB_MASK | DDR_PHY_PGCR3_RDMODE_MASK | DDR_PHY_PGCR3_DISRST_MASK | DDR_PHY_PGCR3_CLKLEVEL_MASK | 0 ); + * Internal VREF generator REFSEL ragne select + * PSU_DDR_PHY_PGCR5_DXREFISELRANGE 0x1 - RegVal = ((0x00000055U << DDR_PHY_PGCR3_CKNEN_SHIFT - | 0x000000AAU << DDR_PHY_PGCR3_CKEN_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RESERVED_15_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACRDCLK_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RESERVED_8_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_DDLBYPMODE_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_IOLB_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_DISRST_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_CLKLEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR3_OFFSET ,0xFFFFFFFFU ,0x55AA5480U); - /*############################################################################################################################ */ + * DDL Page Read Write select + * PSU_DDR_PHY_PGCR5_DDLPGACT 0x0 - /*Register : PGCR5 @ 0XFD080024

+ * DDL Page Read Write select + * PSU_DDR_PHY_PGCR5_DDLPGRW 0x0 - Frequency B Ratio Term - PSU_DDR_PHY_PGCR5_FRQBT 0x1 + * PHY General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080024, 0xFFFFFFFFU ,0x010100F4U) + */ + PSU_Mask_Write(DDR_PHY_PGCR5_OFFSET, 0xFFFFFFFFU, 0x010100F4U); +/*##################################################################### */ - Frequency A Ratio Term - PSU_DDR_PHY_PGCR5_FRQAT 0x1 + /* + * Register : PTR0 @ 0XFD080040 - DFI Disconnect Time Period - PSU_DDR_PHY_PGCR5_DISCNPERIOD 0x0 + * PLL Power-Down Time + * PSU_DDR_PHY_PTR0_TPLLPD 0x56 - Receiver bias core side control - PSU_DDR_PHY_PGCR5_VREF_RBCTRL 0xf + * PLL Gear Shift Time + * PSU_DDR_PHY_PTR0_TPLLGS 0x2155 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR5_RESERVED_3 0x0 + * PHY Reset Time + * PSU_DDR_PHY_PTR0_TPHYRST 0x10 - Internal VREF generator REFSEL ragne select - PSU_DDR_PHY_PGCR5_DXREFISELRANGE 0x1 + * PHY Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x0AC85550U) + */ + PSU_Mask_Write(DDR_PHY_PTR0_OFFSET, 0xFFFFFFFFU, 0x0AC85550U); +/*##################################################################### */ - DDL Page Read Write select - PSU_DDR_PHY_PGCR5_DDLPGACT 0x0 + /* + * Register : PTR1 @ 0XFD080044 - DDL Page Read Write select - PSU_DDR_PHY_PGCR5_DDLPGRW 0x0 + * PLL Lock Time + * PSU_DDR_PHY_PTR1_TPLLLOCK 0x4141 - PHY General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080024, 0xFFFFFFFFU ,0x010100F4U) - RegMask = (DDR_PHY_PGCR5_FRQBT_MASK | DDR_PHY_PGCR5_FRQAT_MASK | DDR_PHY_PGCR5_DISCNPERIOD_MASK | DDR_PHY_PGCR5_VREF_RBCTRL_MASK | DDR_PHY_PGCR5_RESERVED_3_MASK | DDR_PHY_PGCR5_DXREFISELRANGE_MASK | DDR_PHY_PGCR5_DDLPGACT_MASK | DDR_PHY_PGCR5_DDLPGRW_MASK | 0 ); + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PTR1_RESERVED_15_13 0x0 - RegVal = ((0x00000001U << DDR_PHY_PGCR5_FRQBT_SHIFT - | 0x00000001U << DDR_PHY_PGCR5_FRQAT_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DISCNPERIOD_SHIFT - | 0x0000000FU << DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_RESERVED_3_SHIFT - | 0x00000001U << DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DDLPGACT_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DDLPGRW_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR5_OFFSET ,0xFFFFFFFFU ,0x010100F4U); - /*############################################################################################################################ */ + * PLL Reset Time + * PSU_DDR_PHY_PTR1_TPLLRST 0xaff - /*Register : PTR0 @ 0XFD080040

+ * PHY Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x41410AFFU) + */ + PSU_Mask_Write(DDR_PHY_PTR1_OFFSET, 0xFFFFFFFFU, 0x41410AFFU); +/*##################################################################### */ - PLL Power-Down Time - PSU_DDR_PHY_PTR0_TPLLPD 0x2f0 + /* + * Register : PLLCR0 @ 0XFD080068 - PLL Gear Shift Time - PSU_DDR_PHY_PTR0_TPLLGS 0x60 + * PLL Bypass + * PSU_DDR_PHY_PLLCR0_PLLBYP 0x0 - PHY Reset Time - PSU_DDR_PHY_PTR0_TPHYRST 0x10 + * PLL Reset + * PSU_DDR_PHY_PLLCR0_PLLRST 0x0 - PHY Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x5E001810U) - RegMask = (DDR_PHY_PTR0_TPLLPD_MASK | DDR_PHY_PTR0_TPLLGS_MASK | DDR_PHY_PTR0_TPHYRST_MASK | 0 ); + * PLL Power Down + * PSU_DDR_PHY_PLLCR0_PLLPD 0x0 - RegVal = ((0x000002F0U << DDR_PHY_PTR0_TPLLPD_SHIFT - | 0x00000060U << DDR_PHY_PTR0_TPLLGS_SHIFT - | 0x00000010U << DDR_PHY_PTR0_TPHYRST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PTR0_OFFSET ,0xFFFFFFFFU ,0x5E001810U); - /*############################################################################################################################ */ + * Reference Stop Mode + * PSU_DDR_PHY_PLLCR0_RSTOPM 0x0 - /*Register : PTR1 @ 0XFD080044

+ * PLL Frequency Select + * PSU_DDR_PHY_PLLCR0_FRQSEL 0x1 - PLL Lock Time - PSU_DDR_PHY_PTR1_TPLLLOCK 0x80 + * Relock Mode + * PSU_DDR_PHY_PLLCR0_RLOCKM 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PTR1_RESERVED_15_13 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_PLLCR0_CPPC 0x8 - PLL Reset Time - PSU_DDR_PHY_PTR1_TPLLRST 0x5f0 - - PHY Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x008005F0U) - RegMask = (DDR_PHY_PTR1_TPLLLOCK_MASK | DDR_PHY_PTR1_RESERVED_15_13_MASK | DDR_PHY_PTR1_TPLLRST_MASK | 0 ); + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_PLLCR0_CPIC 0x0 - RegVal = ((0x00000080U << DDR_PHY_PTR1_TPLLLOCK_SHIFT - | 0x00000000U << DDR_PHY_PTR1_RESERVED_15_13_SHIFT - | 0x000005F0U << DDR_PHY_PTR1_TPLLRST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PTR1_OFFSET ,0xFFFFFFFFU ,0x008005F0U); - /*############################################################################################################################ */ + * Gear Shift + * PSU_DDR_PHY_PLLCR0_GSHIFT 0x0 - /*Register : DSGCR @ 0XFD080090

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PLLCR0_RESERVED_11_9 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_31_28 0x0 + * Analog Test Enable + * PSU_DDR_PHY_PLLCR0_ATOEN 0x0 - When RDBI enabled, this bit is used to select RDBI CL calculation, if it is 1b1, calculation will use RDBICL, otherwise use d - fault calculation. - PSU_DDR_PHY_DSGCR_RDBICLSEL 0x0 + * Analog Test Control + * PSU_DDR_PHY_PLLCR0_ATC 0x0 - When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this value. - PSU_DDR_PHY_DSGCR_RDBICL 0x2 + * Digital Test Control + * PSU_DDR_PHY_PLLCR0_DTC 0x0 - PHY Impedance Update Enable - PSU_DDR_PHY_DSGCR_PHYZUEN 0x1 + * PLL Control Register 0 (Type B PLL Only) + * (OFFSET, MASK, VALUE) (0XFD080068, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_PLLCR0_OFFSET, 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_22 0x0 + /* + * Register : DSGCR @ 0XFD080090 - SDRAM Reset Output Enable - PSU_DDR_PHY_DSGCR_RSTOE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_31_28 0x0 - Single Data Rate Mode - PSU_DDR_PHY_DSGCR_SDRMODE 0x0 + * When RDBI enabled, this bit is used to select RDBI CL calculation, if it + * is 1b1, calculation will use RDBICL, otherwise use default calculation. + * PSU_DDR_PHY_DSGCR_RDBICLSEL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_18 0x0 + * When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this v + * alue. + * PSU_DDR_PHY_DSGCR_RDBICL 0x2 - ATO Analog Test Enable - PSU_DDR_PHY_DSGCR_ATOAE 0x0 + * PHY Impedance Update Enable + * PSU_DDR_PHY_DSGCR_PHYZUEN 0x1 - DTO Output Enable - PSU_DDR_PHY_DSGCR_DTOOE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_22 0x0 - DTO I/O Mode - PSU_DDR_PHY_DSGCR_DTOIOM 0x0 + * SDRAM Reset Output Enable + * PSU_DDR_PHY_DSGCR_RSTOE 0x1 - DTO Power Down Receiver - PSU_DDR_PHY_DSGCR_DTOPDR 0x1 + * Single Data Rate Mode + * PSU_DDR_PHY_DSGCR_SDRMODE 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_13 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_18 0x0 - DTO On-Die Termination - PSU_DDR_PHY_DSGCR_DTOODT 0x0 + * ATO Analog Test Enable + * PSU_DDR_PHY_DSGCR_ATOAE 0x0 - PHY Update Acknowledge Delay - PSU_DDR_PHY_DSGCR_PUAD 0x4 + * DTO Output Enable + * PSU_DDR_PHY_DSGCR_DTOOE 0x0 - Controller Update Acknowledge Enable - PSU_DDR_PHY_DSGCR_CUAEN 0x1 + * DTO I/O Mode + * PSU_DDR_PHY_DSGCR_DTOIOM 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_4_3 0x0 + * DTO Power Down Receiver + * PSU_DDR_PHY_DSGCR_DTOPDR 0x1 - Controller Impedance Update Enable - PSU_DDR_PHY_DSGCR_CTLZUEN 0x0 + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_13 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_1 0x0 + * DTO On-Die Termination + * PSU_DDR_PHY_DSGCR_DTOODT 0x0 - PHY Update Request Enable - PSU_DDR_PHY_DSGCR_PUREN 0x1 + * PHY Update Acknowledge Delay + * PSU_DDR_PHY_DSGCR_PUAD 0x5 - DDR System General Configuration Register - (OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04121U) - RegMask = (DDR_PHY_DSGCR_RESERVED_31_28_MASK | DDR_PHY_DSGCR_RDBICLSEL_MASK | DDR_PHY_DSGCR_RDBICL_MASK | DDR_PHY_DSGCR_PHYZUEN_MASK | DDR_PHY_DSGCR_RESERVED_22_MASK | DDR_PHY_DSGCR_RSTOE_MASK | DDR_PHY_DSGCR_SDRMODE_MASK | DDR_PHY_DSGCR_RESERVED_18_MASK | DDR_PHY_DSGCR_ATOAE_MASK | DDR_PHY_DSGCR_DTOOE_MASK | DDR_PHY_DSGCR_DTOIOM_MASK | DDR_PHY_DSGCR_DTOPDR_MASK | DDR_PHY_DSGCR_RESERVED_13_MASK | DDR_PHY_DSGCR_DTOODT_MASK | DDR_PHY_DSGCR_PUAD_MASK | DDR_PHY_DSGCR_CUAEN_MASK | DDR_PHY_DSGCR_RESERVED_4_3_MASK | DDR_PHY_DSGCR_CTLZUEN_MASK | DDR_PHY_DSGCR_RESERVED_1_MASK | DDR_PHY_DSGCR_PUREN_MASK | 0 ); + * Controller Update Acknowledge Enable + * PSU_DDR_PHY_DSGCR_CUAEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DSGCR_RESERVED_31_28_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RDBICLSEL_SHIFT - | 0x00000002U << DDR_PHY_DSGCR_RDBICL_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_PHYZUEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_22_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_RSTOE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_SDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_18_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_ATOAE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOOE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOIOM_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_DTOPDR_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_13_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOODT_SHIFT - | 0x00000004U << DDR_PHY_DSGCR_PUAD_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_CUAEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_4_3_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_CTLZUEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_1_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_PUREN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DSGCR_OFFSET ,0xFFFFFFFFU ,0x02A04121U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_4_3 0x0 - /*Register : DCR @ 0XFD080100

+ * Controller Impedance Update Enable + * PSU_DDR_PHY_DSGCR_CTLZUEN 0x0 - DDR4 Gear Down Timing. - PSU_DDR_PHY_DCR_GEARDN 0x0 + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_1 0x0 - Un-used Bank Group - PSU_DDR_PHY_DCR_UBG 0x0 + * PHY Update Request Enable + * PSU_DDR_PHY_DSGCR_PUREN 0x1 - Un-buffered DIMM Address Mirroring - PSU_DDR_PHY_DCR_UDIMM 0x0 + * DDR System General Configuration Register + * (OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04161U) + */ + PSU_Mask_Write(DDR_PHY_DSGCR_OFFSET, 0xFFFFFFFFU, 0x02A04161U); +/*##################################################################### */ - DDR 2T Timing - PSU_DDR_PHY_DCR_DDR2T 0x0 + /* + * Register : GPR0 @ 0XFD0800C0 - No Simultaneous Rank Access - PSU_DDR_PHY_DCR_NOSRA 0x1 + * General Purpose Register 0 + * PSU_DDR_PHY_GPR0_GPR0 0xd3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DCR_RESERVED_26_18 0x0 + * General Purpose Register 0 + * (OFFSET, MASK, VALUE) (0XFD0800C0, 0xFFFFFFFFU ,0x000000D3U) + */ + PSU_Mask_Write(DDR_PHY_GPR0_OFFSET, 0xFFFFFFFFU, 0x000000D3U); +/*##################################################################### */ - Byte Mask - PSU_DDR_PHY_DCR_BYTEMASK 0x1 + /* + * Register : DCR @ 0XFD080100 - DDR Type - PSU_DDR_PHY_DCR_DDRTYPE 0x0 + * DDR4 Gear Down Timing. + * PSU_DDR_PHY_DCR_GEARDN 0x0 - Multi-Purpose Register (MPR) DQ (DDR3 Only) - PSU_DDR_PHY_DCR_MPRDQ 0x0 + * Un-used Bank Group + * PSU_DDR_PHY_DCR_UBG 0x0 - Primary DQ (DDR3 Only) - PSU_DDR_PHY_DCR_PDQ 0x0 + * Un-buffered DIMM Address Mirroring + * PSU_DDR_PHY_DCR_UDIMM 0x0 - DDR 8-Bank - PSU_DDR_PHY_DCR_DDR8BNK 0x1 + * DDR 2T Timing + * PSU_DDR_PHY_DCR_DDR2T 0x0 - DDR Mode - PSU_DDR_PHY_DCR_DDRMD 0x4 + * No Simultaneous Rank Access + * PSU_DDR_PHY_DCR_NOSRA 0x1 - DRAM Configuration Register - (OFFSET, MASK, VALUE) (0XFD080100, 0xFFFFFFFFU ,0x0800040CU) - RegMask = (DDR_PHY_DCR_GEARDN_MASK | DDR_PHY_DCR_UBG_MASK | DDR_PHY_DCR_UDIMM_MASK | DDR_PHY_DCR_DDR2T_MASK | DDR_PHY_DCR_NOSRA_MASK | DDR_PHY_DCR_RESERVED_26_18_MASK | DDR_PHY_DCR_BYTEMASK_MASK | DDR_PHY_DCR_DDRTYPE_MASK | DDR_PHY_DCR_MPRDQ_MASK | DDR_PHY_DCR_PDQ_MASK | DDR_PHY_DCR_DDR8BNK_MASK | DDR_PHY_DCR_DDRMD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DCR_RESERVED_26_18 0x0 - RegVal = ((0x00000000U << DDR_PHY_DCR_GEARDN_SHIFT - | 0x00000000U << DDR_PHY_DCR_UBG_SHIFT - | 0x00000000U << DDR_PHY_DCR_UDIMM_SHIFT - | 0x00000000U << DDR_PHY_DCR_DDR2T_SHIFT - | 0x00000001U << DDR_PHY_DCR_NOSRA_SHIFT - | 0x00000000U << DDR_PHY_DCR_RESERVED_26_18_SHIFT - | 0x00000001U << DDR_PHY_DCR_BYTEMASK_SHIFT - | 0x00000000U << DDR_PHY_DCR_DDRTYPE_SHIFT - | 0x00000000U << DDR_PHY_DCR_MPRDQ_SHIFT - | 0x00000000U << DDR_PHY_DCR_PDQ_SHIFT - | 0x00000001U << DDR_PHY_DCR_DDR8BNK_SHIFT - | 0x00000004U << DDR_PHY_DCR_DDRMD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DCR_OFFSET ,0xFFFFFFFFU ,0x0800040CU); - /*############################################################################################################################ */ - - /*Register : DTPR0 @ 0XFD080110

+ * Byte Mask + * PSU_DDR_PHY_DCR_BYTEMASK 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_31_29 0x0 + * DDR Type + * PSU_DDR_PHY_DCR_DDRTYPE 0x0 - Activate to activate command delay (different banks) - PSU_DDR_PHY_DTPR0_TRRD 0x6 + * Multi-Purpose Register (MPR) DQ (DDR3 Only) + * PSU_DDR_PHY_DCR_MPRDQ 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_23 0x0 + * Primary DQ (DDR3 Only) + * PSU_DDR_PHY_DCR_PDQ 0x0 - Activate to precharge command delay - PSU_DDR_PHY_DTPR0_TRAS 0x24 + * DDR 8-Bank + * PSU_DDR_PHY_DCR_DDR8BNK 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_15 0x0 - - Precharge command period - PSU_DDR_PHY_DTPR0_TRP 0xf - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_7_5 0x0 - - Internal read to precharge command delay - PSU_DDR_PHY_DTPR0_TRTP 0x9 - - DRAM Timing Parameters Register 0 - (OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F09U) - RegMask = (DDR_PHY_DTPR0_RESERVED_31_29_MASK | DDR_PHY_DTPR0_TRRD_MASK | DDR_PHY_DTPR0_RESERVED_23_MASK | DDR_PHY_DTPR0_TRAS_MASK | DDR_PHY_DTPR0_RESERVED_15_MASK | DDR_PHY_DTPR0_TRP_MASK | DDR_PHY_DTPR0_RESERVED_7_5_MASK | DDR_PHY_DTPR0_TRTP_MASK | 0 ); + * DDR Mode + * PSU_DDR_PHY_DCR_DDRMD 0x4 - RegVal = ((0x00000000U << DDR_PHY_DTPR0_RESERVED_31_29_SHIFT - | 0x00000006U << DDR_PHY_DTPR0_TRRD_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_23_SHIFT - | 0x00000024U << DDR_PHY_DTPR0_TRAS_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_15_SHIFT - | 0x0000000FU << DDR_PHY_DTPR0_TRP_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_7_5_SHIFT - | 0x00000009U << DDR_PHY_DTPR0_TRTP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR0_OFFSET ,0xFFFFFFFFU ,0x06240F09U); - /*############################################################################################################################ */ + * DRAM Configuration Register + * (OFFSET, MASK, VALUE) (0XFD080100, 0xFFFFFFFFU ,0x0800040CU) + */ + PSU_Mask_Write(DDR_PHY_DCR_OFFSET, 0xFFFFFFFFU, 0x0800040CU); +/*##################################################################### */ - /*Register : DTPR1 @ 0XFD080114

+ /* + * Register : DTPR0 @ 0XFD080110 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_31 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_31_29 0x0 - Minimum delay from when write leveling mode is programmed to the first DQS/DQS# rising edge. - PSU_DDR_PHY_DTPR1_TWLMRD 0x28 + * Activate to activate command delay (different banks) + * PSU_DDR_PHY_DTPR0_TRRD 0x6 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_23 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_23 0x0 - 4-bank activate period - PSU_DDR_PHY_DTPR1_TFAW 0x18 + * Activate to precharge command delay + * PSU_DDR_PHY_DTPR0_TRAS 0x24 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_15_11 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_15 0x0 - Load mode update delay (DDR4 and DDR3 only) - PSU_DDR_PHY_DTPR1_TMOD 0x7 + * Precharge command period + * PSU_DDR_PHY_DTPR0_TRP 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_7_5 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_7_5 0x0 - Load mode cycle time - PSU_DDR_PHY_DTPR1_TMRD 0x8 + * Internal read to precharge command delay + * PSU_DDR_PHY_DTPR0_TRTP 0x8 - DRAM Timing Parameters Register 1 - (OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28180708U) - RegMask = (DDR_PHY_DTPR1_RESERVED_31_MASK | DDR_PHY_DTPR1_TWLMRD_MASK | DDR_PHY_DTPR1_RESERVED_23_MASK | DDR_PHY_DTPR1_TFAW_MASK | DDR_PHY_DTPR1_RESERVED_15_11_MASK | DDR_PHY_DTPR1_TMOD_MASK | DDR_PHY_DTPR1_RESERVED_7_5_MASK | DDR_PHY_DTPR1_TMRD_MASK | 0 ); + * DRAM Timing Parameters Register 0 + * (OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F08U) + */ + PSU_Mask_Write(DDR_PHY_DTPR0_OFFSET, 0xFFFFFFFFU, 0x06240F08U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DTPR1_RESERVED_31_SHIFT - | 0x00000028U << DDR_PHY_DTPR1_TWLMRD_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_23_SHIFT - | 0x00000018U << DDR_PHY_DTPR1_TFAW_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_15_11_SHIFT - | 0x00000007U << DDR_PHY_DTPR1_TMOD_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_7_5_SHIFT - | 0x00000008U << DDR_PHY_DTPR1_TMRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR1_OFFSET ,0xFFFFFFFFU ,0x28180708U); - /*############################################################################################################################ */ + /* + * Register : DTPR1 @ 0XFD080114 - /*Register : DTPR2 @ 0XFD080118

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_31 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_31_29 0x0 + * Minimum delay from when write leveling mode is programmed to the first D + * QS/DQS# rising edge. + * PSU_DDR_PHY_DTPR1_TWLMRD 0x28 - Read to Write command delay. Valid values are - PSU_DDR_PHY_DTPR2_TRTW 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_23 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_27_25 0x0 + * 4-bank activate period + * PSU_DDR_PHY_DTPR1_TFAW 0x20 - Read to ODT delay (DDR3 only) - PSU_DDR_PHY_DTPR2_TRTODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_15_11 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_23_20 0x0 + * Load mode update delay (DDR4 and DDR3 only) + * PSU_DDR_PHY_DTPR1_TMOD 0x0 - CKE minimum pulse width - PSU_DDR_PHY_DTPR2_TCKE 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_7_5 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_15_10 0x0 + * Load mode cycle time + * PSU_DDR_PHY_DTPR1_TMRD 0x8 - Self refresh exit delay - PSU_DDR_PHY_DTPR2_TXS 0x200 + * DRAM Timing Parameters Register 1 + * (OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28200008U) + */ + PSU_Mask_Write(DDR_PHY_DTPR1_OFFSET, 0xFFFFFFFFU, 0x28200008U); +/*##################################################################### */ - DRAM Timing Parameters Register 2 - (OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00080200U) - RegMask = (DDR_PHY_DTPR2_RESERVED_31_29_MASK | DDR_PHY_DTPR2_TRTW_MASK | DDR_PHY_DTPR2_RESERVED_27_25_MASK | DDR_PHY_DTPR2_TRTODT_MASK | DDR_PHY_DTPR2_RESERVED_23_20_MASK | DDR_PHY_DTPR2_TCKE_MASK | DDR_PHY_DTPR2_RESERVED_15_10_MASK | DDR_PHY_DTPR2_TXS_MASK | 0 ); + /* + * Register : DTPR2 @ 0XFD080118 - RegVal = ((0x00000000U << DDR_PHY_DTPR2_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_TRTW_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_27_25_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_TRTODT_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_23_20_SHIFT - | 0x00000008U << DDR_PHY_DTPR2_TCKE_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_15_10_SHIFT - | 0x00000200U << DDR_PHY_DTPR2_TXS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR2_OFFSET ,0xFFFFFFFFU ,0x00080200U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_31_29 0x0 - /*Register : DTPR3 @ 0XFD08011C

+ * Read to Write command delay. Valid values are + * PSU_DDR_PHY_DTPR2_TRTW 0x0 - ODT turn-off delay extension - PSU_DDR_PHY_DTPR3_TOFDX 0x4 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_27_25 0x0 - Read to read and write to write command delay - PSU_DDR_PHY_DTPR3_TCCD 0x0 + * Read to ODT delay (DDR3 only) + * PSU_DDR_PHY_DTPR2_TRTODT 0x0 - DLL locking time - PSU_DDR_PHY_DTPR3_TDLLK 0x300 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_23_20 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR3_RESERVED_15_12 0x0 + * CKE minimum pulse width + * PSU_DDR_PHY_DTPR2_TCKE 0x7 - Maximum DQS output access time from CK/CK# (LPDDR2/3 only) - PSU_DDR_PHY_DTPR3_TDQSCKMAX 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_15_10 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR3_RESERVED_7_3 0x0 + * Self refresh exit delay + * PSU_DDR_PHY_DTPR2_TXS 0x300 - DQS output access time from CK/CK# (LPDDR2/3 only) - PSU_DDR_PHY_DTPR3_TDQSCK 0x0 + * DRAM Timing Parameters Register 2 + * (OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00070300U) + */ + PSU_Mask_Write(DDR_PHY_DTPR2_OFFSET, 0xFFFFFFFFU, 0x00070300U); +/*##################################################################### */ - DRAM Timing Parameters Register 3 - (OFFSET, MASK, VALUE) (0XFD08011C, 0xFFFFFFFFU ,0x83000800U) - RegMask = (DDR_PHY_DTPR3_TOFDX_MASK | DDR_PHY_DTPR3_TCCD_MASK | DDR_PHY_DTPR3_TDLLK_MASK | DDR_PHY_DTPR3_RESERVED_15_12_MASK | DDR_PHY_DTPR3_TDQSCKMAX_MASK | DDR_PHY_DTPR3_RESERVED_7_3_MASK | DDR_PHY_DTPR3_TDQSCK_MASK | 0 ); + /* + * Register : DTPR3 @ 0XFD08011C - RegVal = ((0x00000004U << DDR_PHY_DTPR3_TOFDX_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_TCCD_SHIFT - | 0x00000300U << DDR_PHY_DTPR3_TDLLK_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_RESERVED_15_12_SHIFT - | 0x00000008U << DDR_PHY_DTPR3_TDQSCKMAX_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_RESERVED_7_3_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_TDQSCK_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR3_OFFSET ,0xFFFFFFFFU ,0x83000800U); - /*############################################################################################################################ */ + * ODT turn-off delay extension + * PSU_DDR_PHY_DTPR3_TOFDX 0x4 - /*Register : DTPR4 @ 0XFD080120

+ * Read to read and write to write command delay + * PSU_DDR_PHY_DTPR3_TCCD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_31_30 0x0 + * DLL locking time + * PSU_DDR_PHY_DTPR3_TDLLK 0x300 - ODT turn-on/turn-off delays (DDR2 only) - PSU_DDR_PHY_DTPR4_TAOND_TAOFD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR3_RESERVED_15_12 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_27_26 0x0 + * Maximum DQS output access time from CK/CK# (LPDDR2/3 only) + * PSU_DDR_PHY_DTPR3_TDQSCKMAX 0x8 - Refresh-to-Refresh - PSU_DDR_PHY_DTPR4_TRFC 0x116 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR3_RESERVED_7_3 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_15_14 0x0 + * DQS output access time from CK/CK# (LPDDR2/3 only) + * PSU_DDR_PHY_DTPR3_TDQSCK 0x0 - Write leveling output delay - PSU_DDR_PHY_DTPR4_TWLO 0x2b + * DRAM Timing Parameters Register 3 + * (OFFSET, MASK, VALUE) (0XFD08011C, 0xFFFFFFFFU ,0x83000800U) + */ + PSU_Mask_Write(DDR_PHY_DTPR3_OFFSET, 0xFFFFFFFFU, 0x83000800U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_7_5 0x0 + /* + * Register : DTPR4 @ 0XFD080120 - Power down exit delay - PSU_DDR_PHY_DTPR4_TXP 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_31_30 0x0 - DRAM Timing Parameters Register 4 - (OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B08U) - RegMask = (DDR_PHY_DTPR4_RESERVED_31_30_MASK | DDR_PHY_DTPR4_TAOND_TAOFD_MASK | DDR_PHY_DTPR4_RESERVED_27_26_MASK | DDR_PHY_DTPR4_TRFC_MASK | DDR_PHY_DTPR4_RESERVED_15_14_MASK | DDR_PHY_DTPR4_TWLO_MASK | DDR_PHY_DTPR4_RESERVED_7_5_MASK | DDR_PHY_DTPR4_TXP_MASK | 0 ); + * ODT turn-on/turn-off delays (DDR2 only) + * PSU_DDR_PHY_DTPR4_TAOND_TAOFD 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR4_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_27_26_SHIFT - | 0x00000116U << DDR_PHY_DTPR4_TRFC_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DTPR4_TWLO_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_7_5_SHIFT - | 0x00000008U << DDR_PHY_DTPR4_TXP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR4_OFFSET ,0xFFFFFFFFU ,0x01162B08U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_27_26 0x0 - /*Register : DTPR5 @ 0XFD080124

+ * Refresh-to-Refresh + * PSU_DDR_PHY_DTPR4_TRFC 0x116 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_31_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_15_14 0x0 - Activate to activate command delay (same bank) - PSU_DDR_PHY_DTPR5_TRC 0x32 + * Write leveling output delay + * PSU_DDR_PHY_DTPR4_TWLO 0x2b - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_15 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_7_5 0x0 - Activate to read or write delay - PSU_DDR_PHY_DTPR5_TRCD 0xf + * Power down exit delay + * PSU_DDR_PHY_DTPR4_TXP 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_7_5 0x0 + * DRAM Timing Parameters Register 4 + * (OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B07U) + */ + PSU_Mask_Write(DDR_PHY_DTPR4_OFFSET, 0xFFFFFFFFU, 0x01162B07U); +/*##################################################################### */ - Internal write to read command delay - PSU_DDR_PHY_DTPR5_TWTR 0x9 + /* + * Register : DTPR5 @ 0XFD080124 - DRAM Timing Parameters Register 5 - (OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00320F09U) - RegMask = (DDR_PHY_DTPR5_RESERVED_31_24_MASK | DDR_PHY_DTPR5_TRC_MASK | DDR_PHY_DTPR5_RESERVED_15_MASK | DDR_PHY_DTPR5_TRCD_MASK | DDR_PHY_DTPR5_RESERVED_7_5_MASK | DDR_PHY_DTPR5_TWTR_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_31_24 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR5_RESERVED_31_24_SHIFT - | 0x00000032U << DDR_PHY_DTPR5_TRC_SHIFT - | 0x00000000U << DDR_PHY_DTPR5_RESERVED_15_SHIFT - | 0x0000000FU << DDR_PHY_DTPR5_TRCD_SHIFT - | 0x00000000U << DDR_PHY_DTPR5_RESERVED_7_5_SHIFT - | 0x00000009U << DDR_PHY_DTPR5_TWTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR5_OFFSET ,0xFFFFFFFFU ,0x00320F09U); - /*############################################################################################################################ */ + * Activate to activate command delay (same bank) + * PSU_DDR_PHY_DTPR5_TRC 0x33 - /*Register : DTPR6 @ 0XFD080128

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_15 0x0 - PUB Write Latency Enable - PSU_DDR_PHY_DTPR6_PUBWLEN 0x0 + * Activate to read or write delay + * PSU_DDR_PHY_DTPR5_TRCD 0xf - PUB Read Latency Enable - PSU_DDR_PHY_DTPR6_PUBRLEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_7_5 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR6_RESERVED_29_14 0x0 + * Internal write to read command delay + * PSU_DDR_PHY_DTPR5_TWTR 0x8 - Write Latency - PSU_DDR_PHY_DTPR6_PUBWL 0xe + * DRAM Timing Parameters Register 5 + * (OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00330F08U) + */ + PSU_Mask_Write(DDR_PHY_DTPR5_OFFSET, 0xFFFFFFFFU, 0x00330F08U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR6_RESERVED_7_6 0x0 + /* + * Register : DTPR6 @ 0XFD080128 - Read Latency - PSU_DDR_PHY_DTPR6_PUBRL 0xf + * PUB Write Latency Enable + * PSU_DDR_PHY_DTPR6_PUBWLEN 0x0 - DRAM Timing Parameters Register 6 - (OFFSET, MASK, VALUE) (0XFD080128, 0xFFFFFFFFU ,0x00000E0FU) - RegMask = (DDR_PHY_DTPR6_PUBWLEN_MASK | DDR_PHY_DTPR6_PUBRLEN_MASK | DDR_PHY_DTPR6_RESERVED_29_14_MASK | DDR_PHY_DTPR6_PUBWL_MASK | DDR_PHY_DTPR6_RESERVED_7_6_MASK | DDR_PHY_DTPR6_PUBRL_MASK | 0 ); + * PUB Read Latency Enable + * PSU_DDR_PHY_DTPR6_PUBRLEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR6_PUBWLEN_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_PUBRLEN_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_RESERVED_29_14_SHIFT - | 0x0000000EU << DDR_PHY_DTPR6_PUBWL_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DTPR6_PUBRL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR6_OFFSET ,0xFFFFFFFFU ,0x00000E0FU); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR6_RESERVED_29_14 0x0 - /*Register : RDIMMGCR0 @ 0XFD080140

+ * Write Latency + * PSU_DDR_PHY_DTPR6_PUBWL 0xe - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_31 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR6_RESERVED_7_6 0x0 - RDMIMM Quad CS Enable - PSU_DDR_PHY_RDIMMGCR0_QCSEN 0x0 + * Read Latency + * PSU_DDR_PHY_DTPR6_PUBRL 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_29_28 0x0 + * DRAM Timing Parameters Register 6 + * (OFFSET, MASK, VALUE) (0XFD080128, 0xFFFFFFFFU ,0x00000E0FU) + */ + PSU_Mask_Write(DDR_PHY_DTPR6_OFFSET, 0xFFFFFFFFU, 0x00000E0FU); +/*##################################################################### */ - RDIMM Outputs I/O Mode - PSU_DDR_PHY_RDIMMGCR0_RDIMMIOM 0x1 + /* + * Register : RDIMMGCR0 @ 0XFD080140 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_26_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_31 0x0 - ERROUT# Output Enable - PSU_DDR_PHY_RDIMMGCR0_ERROUTOE 0x0 + * RDMIMM Quad CS Enable + * PSU_DDR_PHY_RDIMMGCR0_QCSEN 0x0 - ERROUT# I/O Mode - PSU_DDR_PHY_RDIMMGCR0_ERROUTIOM 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_29_28 0x0 - ERROUT# Power Down Receiver - PSU_DDR_PHY_RDIMMGCR0_ERROUTPDR 0x0 + * RDIMM Outputs I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_RDIMMIOM 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_20 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_26_24 0x0 - ERROUT# On-Die Termination - PSU_DDR_PHY_RDIMMGCR0_ERROUTODT 0x0 + * ERROUT# Output Enable + * PSU_DDR_PHY_RDIMMGCR0_ERROUTOE 0x0 - Load Reduced DIMM - PSU_DDR_PHY_RDIMMGCR0_LRDIMM 0x0 + * ERROUT# I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_ERROUTIOM 0x1 - PAR_IN I/O Mode - PSU_DDR_PHY_RDIMMGCR0_PARINIOM 0x0 + * ERROUT# Power Down Receiver + * PSU_DDR_PHY_RDIMMGCR0_ERROUTPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_16_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_20 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD 0x0 + * ERROUT# On-Die Termination + * PSU_DDR_PHY_RDIMMGCR0_ERROUTODT 0x0 - Rank Mirror Enable. - PSU_DDR_PHY_RDIMMGCR0_RNKMRREN 0x2 + * Load Reduced DIMM + * PSU_DDR_PHY_RDIMMGCR0_LRDIMM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_3 0x0 + * PAR_IN I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_PARINIOM 0x0 - Stop on Parity Error - PSU_DDR_PHY_RDIMMGCR0_SOPERR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_16_8 0x0 - Parity Error No Registering - PSU_DDR_PHY_RDIMMGCR0_ERRNOREG 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD 0x0 - Registered DIMM - PSU_DDR_PHY_RDIMMGCR0_RDIMM 0x0 + * Rank Mirror Enable. + * PSU_DDR_PHY_RDIMMGCR0_RNKMRREN 0x2 - RDIMM General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080140, 0xFFFFFFFFU ,0x08400020U) - RegMask = (DDR_PHY_RDIMMGCR0_RESERVED_31_MASK | DDR_PHY_RDIMMGCR0_QCSEN_MASK | DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK | DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK | DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK | DDR_PHY_RDIMMGCR0_ERROUTOE_MASK | DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK | DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK | DDR_PHY_RDIMMGCR0_RESERVED_20_MASK | DDR_PHY_RDIMMGCR0_ERROUTODT_MASK | DDR_PHY_RDIMMGCR0_LRDIMM_MASK | DDR_PHY_RDIMMGCR0_PARINIOM_MASK | DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK | DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK | DDR_PHY_RDIMMGCR0_RNKMRREN_MASK | DDR_PHY_RDIMMGCR0_RESERVED_3_MASK | DDR_PHY_RDIMMGCR0_SOPERR_MASK | DDR_PHY_RDIMMGCR0_ERRNOREG_MASK | DDR_PHY_RDIMMGCR0_RDIMM_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_3 0x0 - RegVal = ((0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_QCSEN_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT - | 0x00000001U << DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT - | 0x00000001U << DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT - | 0x00000002U << DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_SOPERR_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RDIMM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMGCR0_OFFSET ,0xFFFFFFFFU ,0x08400020U); - /*############################################################################################################################ */ + * Stop on Parity Error + * PSU_DDR_PHY_RDIMMGCR0_SOPERR 0x0 - /*Register : RDIMMGCR1 @ 0XFD080144

+ * Parity Error No Registering + * PSU_DDR_PHY_RDIMMGCR0_ERRNOREG 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_31_29 0x0 + * Registered DIMM + * PSU_DDR_PHY_RDIMMGCR0_RDIMM 0x0 - Address [17] B-side Inversion Disable - PSU_DDR_PHY_RDIMMGCR1_A17BID 0x0 + * RDIMM General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080140, 0xFFFFFFFFU ,0x08400020U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMGCR0_OFFSET, 0xFFFFFFFFU, 0x08400020U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_27 0x0 + /* + * Register : RDIMMGCR1 @ 0XFD080144 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L2 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_31_29 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_23 0x0 + * Address [17] B-side Inversion Disable + * PSU_DDR_PHY_RDIMMGCR1_A17BID 0x0 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_27 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_19 0x0 + * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L2 0x0 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_23 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_15_14 0x0 + * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L 0x0 - Stabilization time - PSU_DDR_PHY_RDIMMGCR1_TBCSTAB 0xc80 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_19 0x0 - RDIMM General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080144, 0xFFFFFFFFU ,0x00000C80U) - RegMask = (DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK | DDR_PHY_RDIMMGCR1_A17BID_MASK | DDR_PHY_RDIMMGCR1_RESERVED_27_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK | DDR_PHY_RDIMMGCR1_RESERVED_23_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK | DDR_PHY_RDIMMGCR1_RESERVED_19_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_MASK | DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK | DDR_PHY_RDIMMGCR1_TBCSTAB_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_A17BID_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT - | 0x00000C80U << DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMGCR1_OFFSET ,0xFFFFFFFFU ,0x00000C80U); - /*############################################################################################################################ */ - - /*Register : RDIMMCR0 @ 0XFD080150

+ * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD 0x0 - DDR4/DDR3 Control Word 7 - PSU_DDR_PHY_RDIMMCR0_RC7 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_15_14 0x0 - DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR0_RC6 0x0 - - DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC5 0x0 - - DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control Word) / DDR3 Control Word 4 (Control Signals Driver C - aracteristics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC4 0x0 - - DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Word) / DDR3 Control Word 3 (Command/Address Signals Dr - ver Characteristrics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC3 0x0 - - DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 (Timing Control Word) - PSU_DDR_PHY_RDIMMCR0_RC2 0x0 - - DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) - PSU_DDR_PHY_RDIMMCR0_RC1 0x0 - - DDR4/DDR3 Control Word 0 (Global Features Control Word) - PSU_DDR_PHY_RDIMMCR0_RC0 0x0 - - RDIMM Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080150, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_RDIMMCR0_RC7_MASK | DDR_PHY_RDIMMCR0_RC6_MASK | DDR_PHY_RDIMMCR0_RC5_MASK | DDR_PHY_RDIMMCR0_RC4_MASK | DDR_PHY_RDIMMCR0_RC3_MASK | DDR_PHY_RDIMMCR0_RC2_MASK | DDR_PHY_RDIMMCR0_RC1_MASK | DDR_PHY_RDIMMCR0_RC0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_RDIMMCR0_RC7_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC6_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC5_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC4_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC3_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC2_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC1_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMCR0_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Stabilization time + * PSU_DDR_PHY_RDIMMGCR1_TBCSTAB 0xc80 - /*Register : RDIMMCR1 @ 0XFD080154

+ * RDIMM General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080144, 0xFFFFFFFFU ,0x00000C80U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMGCR1_OFFSET, 0xFFFFFFFFU, 0x00000C80U); +/*##################################################################### */ - Control Word 15 - PSU_DDR_PHY_RDIMMCR1_RC15 0x0 + /* + * Register : RDIMMCR0 @ 0XFD080150 - DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC14 0x0 + * DDR4/DDR3 Control Word 7 + * PSU_DDR_PHY_RDIMMCR0_RC7 0x0 - DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC13 0x0 + * DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR0_RC6 0x0 - DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC12 0x0 + * DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC5 0x0 - DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Word) / DDR3 Control Word 11 (Operation Voltage VDD Con - rol Word) - PSU_DDR_PHY_RDIMMCR1_RC11 0x0 + * DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control + * Word) / DDR3 Control Word 4 (Control Signals Driver Characteristics Cont + * rol Word) + * PSU_DDR_PHY_RDIMMCR0_RC4 0x0 - DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) - PSU_DDR_PHY_RDIMMCR1_RC10 0x2 + * DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Wo + * rd) / DDR3 Control Word 3 (Command/Address Signals Driver Characteristri + * cs Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC3 0x0 - DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) - PSU_DDR_PHY_RDIMMCR1_RC9 0x0 + * DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 + * (Timing Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC2 0x0 - DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Control Word 8 (Additional Input Bus Termination Setting - Control Word) - PSU_DDR_PHY_RDIMMCR1_RC8 0x0 + * DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC1 0x0 - RDIMM Control Register 1 - (OFFSET, MASK, VALUE) (0XFD080154, 0xFFFFFFFFU ,0x00000200U) - RegMask = (DDR_PHY_RDIMMCR1_RC15_MASK | DDR_PHY_RDIMMCR1_RC14_MASK | DDR_PHY_RDIMMCR1_RC13_MASK | DDR_PHY_RDIMMCR1_RC12_MASK | DDR_PHY_RDIMMCR1_RC11_MASK | DDR_PHY_RDIMMCR1_RC10_MASK | DDR_PHY_RDIMMCR1_RC9_MASK | DDR_PHY_RDIMMCR1_RC8_MASK | 0 ); + * DDR4/DDR3 Control Word 0 (Global Features Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC0 0x0 - RegVal = ((0x00000000U << DDR_PHY_RDIMMCR1_RC15_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC14_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC13_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC12_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC11_SHIFT - | 0x00000002U << DDR_PHY_RDIMMCR1_RC10_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC9_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC8_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMCR1_OFFSET ,0xFFFFFFFFU ,0x00000200U); - /*############################################################################################################################ */ + * RDIMM Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080150, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMCR0_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - /*Register : MR0 @ 0XFD080180

+ /* + * Register : RDIMMCR1 @ 0XFD080154 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR0_RESERVED_31_8 0x8 + * Control Word 15 + * PSU_DDR_PHY_RDIMMCR1_RC15 0x0 - CA Terminating Rank - PSU_DDR_PHY_MR0_CATR 0x0 + * DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC14 0x0 - Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR0_RSVD_6_5 0x1 + * DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC13 0x0 - Built-in Self-Test for RZQ - PSU_DDR_PHY_MR0_RZQI 0x2 + * DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC12 0x0 - Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR0_RSVD_2_0 0x0 + * DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Wo + * rd) / DDR3 Control Word 11 (Operation Voltage VDD Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC11 0x0 - LPDDR4 Mode Register 0 - (OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000830U) - RegMask = (DDR_PHY_MR0_RESERVED_31_8_MASK | DDR_PHY_MR0_CATR_MASK | DDR_PHY_MR0_RSVD_6_5_MASK | DDR_PHY_MR0_RZQI_MASK | DDR_PHY_MR0_RSVD_2_0_MASK | 0 ); + * DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC10 0x2 - RegVal = ((0x00000008U << DDR_PHY_MR0_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR0_CATR_SHIFT - | 0x00000001U << DDR_PHY_MR0_RSVD_6_5_SHIFT - | 0x00000002U << DDR_PHY_MR0_RZQI_SHIFT - | 0x00000000U << DDR_PHY_MR0_RSVD_2_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR0_OFFSET ,0xFFFFFFFFU ,0x00000830U); - /*############################################################################################################################ */ + * DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC9 0x0 - /*Register : MR1 @ 0XFD080184

+ * DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Con + * trol Word 8 (Additional Input Bus Termination Setting Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC8 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR1_RESERVED_31_8 0x3 + * RDIMM Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD080154, 0xFFFFFFFFU ,0x00000200U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMCR1_OFFSET, 0xFFFFFFFFU, 0x00000200U); +/*##################################################################### */ - Read Postamble Length - PSU_DDR_PHY_MR1_RDPST 0x0 + /* + * Register : MR0 @ 0XFD080180 - Write-recovery for auto-precharge command - PSU_DDR_PHY_MR1_NWR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR0_RESERVED_31_8 0x6 - Read Preamble Length - PSU_DDR_PHY_MR1_RDPRE 0x0 + * CA Terminating Rank + * PSU_DDR_PHY_MR0_CATR 0x0 - Write Preamble Length - PSU_DDR_PHY_MR1_WRPRE 0x0 + * Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. + * PSU_DDR_PHY_MR0_RSVD_6_5 0x1 - Burst Length - PSU_DDR_PHY_MR1_BL 0x1 + * Built-in Self-Test for RZQ + * PSU_DDR_PHY_MR0_RZQI 0x2 - LPDDR4 Mode Register 1 - (OFFSET, MASK, VALUE) (0XFD080184, 0xFFFFFFFFU ,0x00000301U) - RegMask = (DDR_PHY_MR1_RESERVED_31_8_MASK | DDR_PHY_MR1_RDPST_MASK | DDR_PHY_MR1_NWR_MASK | DDR_PHY_MR1_RDPRE_MASK | DDR_PHY_MR1_WRPRE_MASK | DDR_PHY_MR1_BL_MASK | 0 ); + * Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. + * PSU_DDR_PHY_MR0_RSVD_2_0 0x0 - RegVal = ((0x00000003U << DDR_PHY_MR1_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR1_RDPST_SHIFT - | 0x00000000U << DDR_PHY_MR1_NWR_SHIFT - | 0x00000000U << DDR_PHY_MR1_RDPRE_SHIFT - | 0x00000000U << DDR_PHY_MR1_WRPRE_SHIFT - | 0x00000001U << DDR_PHY_MR1_BL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR1_OFFSET ,0xFFFFFFFFU ,0x00000301U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 0 + * (OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000630U) + */ + PSU_Mask_Write(DDR_PHY_MR0_OFFSET, 0xFFFFFFFFU, 0x00000630U); +/*##################################################################### */ - /*Register : MR2 @ 0XFD080188

+ /* + * Register : MR1 @ 0XFD080184 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR2_RESERVED_31_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR1_RESERVED_31_8 0x3 - Write Leveling - PSU_DDR_PHY_MR2_WRL 0x0 + * Read Postamble Length + * PSU_DDR_PHY_MR1_RDPST 0x0 - Write Latency Set - PSU_DDR_PHY_MR2_WLS 0x0 + * Write-recovery for auto-precharge command + * PSU_DDR_PHY_MR1_NWR 0x0 - Write Latency - PSU_DDR_PHY_MR2_WL 0x4 + * Read Preamble Length + * PSU_DDR_PHY_MR1_RDPRE 0x0 - Read Latency - PSU_DDR_PHY_MR2_RL 0x0 + * Write Preamble Length + * PSU_DDR_PHY_MR1_WRPRE 0x0 - LPDDR4 Mode Register 2 - (OFFSET, MASK, VALUE) (0XFD080188, 0xFFFFFFFFU ,0x00000020U) - RegMask = (DDR_PHY_MR2_RESERVED_31_8_MASK | DDR_PHY_MR2_WRL_MASK | DDR_PHY_MR2_WLS_MASK | DDR_PHY_MR2_WL_MASK | DDR_PHY_MR2_RL_MASK | 0 ); + * Burst Length + * PSU_DDR_PHY_MR1_BL 0x1 - RegVal = ((0x00000000U << DDR_PHY_MR2_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR2_WRL_SHIFT - | 0x00000000U << DDR_PHY_MR2_WLS_SHIFT - | 0x00000004U << DDR_PHY_MR2_WL_SHIFT - | 0x00000000U << DDR_PHY_MR2_RL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR2_OFFSET ,0xFFFFFFFFU ,0x00000020U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 1 + * (OFFSET, MASK, VALUE) (0XFD080184, 0xFFFFFFFFU ,0x00000301U) + */ + PSU_Mask_Write(DDR_PHY_MR1_OFFSET, 0xFFFFFFFFU, 0x00000301U); +/*##################################################################### */ - /*Register : MR3 @ 0XFD08018C

+ /* + * Register : MR2 @ 0XFD080188 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR3_RESERVED_31_8 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR2_RESERVED_31_8 0x0 - DBI-Write Enable - PSU_DDR_PHY_MR3_DBIWR 0x0 + * Write Leveling + * PSU_DDR_PHY_MR2_WRL 0x0 - DBI-Read Enable - PSU_DDR_PHY_MR3_DBIRD 0x0 + * Write Latency Set + * PSU_DDR_PHY_MR2_WLS 0x0 - Pull-down Drive Strength - PSU_DDR_PHY_MR3_PDDS 0x0 + * Write Latency + * PSU_DDR_PHY_MR2_WL 0x4 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR3_RSVD 0x0 + * Read Latency + * PSU_DDR_PHY_MR2_RL 0x0 - Write Postamble Length - PSU_DDR_PHY_MR3_WRPST 0x0 + * LPDDR4 Mode Register 2 + * (OFFSET, MASK, VALUE) (0XFD080188, 0xFFFFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(DDR_PHY_MR2_OFFSET, 0xFFFFFFFFU, 0x00000020U); +/*##################################################################### */ - Pull-up Calibration Point - PSU_DDR_PHY_MR3_PUCAL 0x0 + /* + * Register : MR3 @ 0XFD08018C - LPDDR4 Mode Register 3 - (OFFSET, MASK, VALUE) (0XFD08018C, 0xFFFFFFFFU ,0x00000200U) - RegMask = (DDR_PHY_MR3_RESERVED_31_8_MASK | DDR_PHY_MR3_DBIWR_MASK | DDR_PHY_MR3_DBIRD_MASK | DDR_PHY_MR3_PDDS_MASK | DDR_PHY_MR3_RSVD_MASK | DDR_PHY_MR3_WRPST_MASK | DDR_PHY_MR3_PUCAL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR3_RESERVED_31_8 0x2 - RegVal = ((0x00000002U << DDR_PHY_MR3_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR3_DBIWR_SHIFT - | 0x00000000U << DDR_PHY_MR3_DBIRD_SHIFT - | 0x00000000U << DDR_PHY_MR3_PDDS_SHIFT - | 0x00000000U << DDR_PHY_MR3_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR3_WRPST_SHIFT - | 0x00000000U << DDR_PHY_MR3_PUCAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR3_OFFSET ,0xFFFFFFFFU ,0x00000200U); - /*############################################################################################################################ */ + * DBI-Write Enable + * PSU_DDR_PHY_MR3_DBIWR 0x0 - /*Register : MR4 @ 0XFD080190

+ * DBI-Read Enable + * PSU_DDR_PHY_MR3_DBIRD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR4_RESERVED_31_16 0x0 + * Pull-down Drive Strength + * PSU_DDR_PHY_MR3_PDDS 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD_15_13 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR3_RSVD 0x0 - Write Preamble - PSU_DDR_PHY_MR4_WRP 0x0 + * Write Postamble Length + * PSU_DDR_PHY_MR3_WRPST 0x0 - Read Preamble - PSU_DDR_PHY_MR4_RDP 0x0 + * Pull-up Calibration Point + * PSU_DDR_PHY_MR3_PUCAL 0x0 - Read Preamble Training Mode - PSU_DDR_PHY_MR4_RPTM 0x0 + * LPDDR4 Mode Register 3 + * (OFFSET, MASK, VALUE) (0XFD08018C, 0xFFFFFFFFU ,0x00000200U) + */ + PSU_Mask_Write(DDR_PHY_MR3_OFFSET, 0xFFFFFFFFU, 0x00000200U); +/*##################################################################### */ - Self Refresh Abort - PSU_DDR_PHY_MR4_SRA 0x0 + /* + * Register : MR4 @ 0XFD080190 - CS to Command Latency Mode - PSU_DDR_PHY_MR4_CS2CMDL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR4_RESERVED_31_16 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD1 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR4_RSVD_15_13 0x0 - Internal VREF Monitor - PSU_DDR_PHY_MR4_IVM 0x0 + * Write Preamble + * PSU_DDR_PHY_MR4_WRP 0x0 - Temperature Controlled Refresh Mode - PSU_DDR_PHY_MR4_TCRM 0x0 + * Read Preamble + * PSU_DDR_PHY_MR4_RDP 0x0 - Temperature Controlled Refresh Range - PSU_DDR_PHY_MR4_TCRR 0x0 + * Read Preamble Training Mode + * PSU_DDR_PHY_MR4_RPTM 0x0 - Maximum Power Down Mode - PSU_DDR_PHY_MR4_MPDM 0x0 + * Self Refresh Abort + * PSU_DDR_PHY_MR4_SRA 0x0 - This is a JEDEC reserved bit and is recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD_0 0x0 + * CS to Command Latency Mode + * PSU_DDR_PHY_MR4_CS2CMDL 0x0 - DDR4 Mode Register 4 - (OFFSET, MASK, VALUE) (0XFD080190, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR4_RESERVED_31_16_MASK | DDR_PHY_MR4_RSVD_15_13_MASK | DDR_PHY_MR4_WRP_MASK | DDR_PHY_MR4_RDP_MASK | DDR_PHY_MR4_RPTM_MASK | DDR_PHY_MR4_SRA_MASK | DDR_PHY_MR4_CS2CMDL_MASK | DDR_PHY_MR4_RSVD1_MASK | DDR_PHY_MR4_IVM_MASK | DDR_PHY_MR4_TCRM_MASK | DDR_PHY_MR4_TCRR_MASK | DDR_PHY_MR4_MPDM_MASK | DDR_PHY_MR4_RSVD_0_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR4_RSVD1 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR4_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD_15_13_SHIFT - | 0x00000000U << DDR_PHY_MR4_WRP_SHIFT - | 0x00000000U << DDR_PHY_MR4_RDP_SHIFT - | 0x00000000U << DDR_PHY_MR4_RPTM_SHIFT - | 0x00000000U << DDR_PHY_MR4_SRA_SHIFT - | 0x00000000U << DDR_PHY_MR4_CS2CMDL_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD1_SHIFT - | 0x00000000U << DDR_PHY_MR4_IVM_SHIFT - | 0x00000000U << DDR_PHY_MR4_TCRM_SHIFT - | 0x00000000U << DDR_PHY_MR4_TCRR_SHIFT - | 0x00000000U << DDR_PHY_MR4_MPDM_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR4_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Internal VREF Monitor + * PSU_DDR_PHY_MR4_IVM 0x0 - /*Register : MR5 @ 0XFD080194

+ * Temperature Controlled Refresh Mode + * PSU_DDR_PHY_MR4_TCRM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR5_RESERVED_31_16 0x0 + * Temperature Controlled Refresh Range + * PSU_DDR_PHY_MR4_TCRR 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR5_RSVD 0x0 + * Maximum Power Down Mode + * PSU_DDR_PHY_MR4_MPDM 0x0 - Read DBI - PSU_DDR_PHY_MR5_RDBI 0x0 + * This is a JEDEC reserved bit and is recommended by JEDEC to be programme + * d to 0x0. + * PSU_DDR_PHY_MR4_RSVD_0 0x0 - Write DBI - PSU_DDR_PHY_MR5_WDBI 0x0 + * DDR4 Mode Register 4 + * (OFFSET, MASK, VALUE) (0XFD080190, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR4_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Data Mask - PSU_DDR_PHY_MR5_DM 0x1 + /* + * Register : MR5 @ 0XFD080194 - CA Parity Persistent Error - PSU_DDR_PHY_MR5_CAPPE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR5_RESERVED_31_16 0x0 - RTT_PARK - PSU_DDR_PHY_MR5_RTTPARK 0x3 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR5_RSVD 0x0 - ODT Input Buffer during Power Down mode - PSU_DDR_PHY_MR5_ODTIBPD 0x0 + * Read DBI + * PSU_DDR_PHY_MR5_RDBI 0x0 - C/A Parity Error Status - PSU_DDR_PHY_MR5_CAPES 0x0 + * Write DBI + * PSU_DDR_PHY_MR5_WDBI 0x0 - CRC Error Clear - PSU_DDR_PHY_MR5_CRCEC 0x0 + * Data Mask + * PSU_DDR_PHY_MR5_DM 0x1 - C/A Parity Latency Mode - PSU_DDR_PHY_MR5_CAPM 0x0 + * CA Parity Persistent Error + * PSU_DDR_PHY_MR5_CAPPE 0x1 - DDR4 Mode Register 5 - (OFFSET, MASK, VALUE) (0XFD080194, 0xFFFFFFFFU ,0x000006C0U) - RegMask = (DDR_PHY_MR5_RESERVED_31_16_MASK | DDR_PHY_MR5_RSVD_MASK | DDR_PHY_MR5_RDBI_MASK | DDR_PHY_MR5_WDBI_MASK | DDR_PHY_MR5_DM_MASK | DDR_PHY_MR5_CAPPE_MASK | DDR_PHY_MR5_RTTPARK_MASK | DDR_PHY_MR5_ODTIBPD_MASK | DDR_PHY_MR5_CAPES_MASK | DDR_PHY_MR5_CRCEC_MASK | DDR_PHY_MR5_CAPM_MASK | 0 ); + * RTT_PARK + * PSU_DDR_PHY_MR5_RTTPARK 0x3 - RegVal = ((0x00000000U << DDR_PHY_MR5_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR5_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR5_RDBI_SHIFT - | 0x00000000U << DDR_PHY_MR5_WDBI_SHIFT - | 0x00000001U << DDR_PHY_MR5_DM_SHIFT - | 0x00000001U << DDR_PHY_MR5_CAPPE_SHIFT - | 0x00000003U << DDR_PHY_MR5_RTTPARK_SHIFT - | 0x00000000U << DDR_PHY_MR5_ODTIBPD_SHIFT - | 0x00000000U << DDR_PHY_MR5_CAPES_SHIFT - | 0x00000000U << DDR_PHY_MR5_CRCEC_SHIFT - | 0x00000000U << DDR_PHY_MR5_CAPM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR5_OFFSET ,0xFFFFFFFFU ,0x000006C0U); - /*############################################################################################################################ */ + * ODT Input Buffer during Power Down mode + * PSU_DDR_PHY_MR5_ODTIBPD 0x0 - /*Register : MR6 @ 0XFD080198

+ * C/A Parity Error Status + * PSU_DDR_PHY_MR5_CAPES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR6_RESERVED_31_16 0x0 + * CRC Error Clear + * PSU_DDR_PHY_MR5_CRCEC 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR6_RSVD_15_13 0x0 + * C/A Parity Latency Mode + * PSU_DDR_PHY_MR5_CAPM 0x0 - CAS_n to CAS_n command delay for same bank group (tCCD_L) - PSU_DDR_PHY_MR6_TCCDL 0x2 + * DDR4 Mode Register 5 + * (OFFSET, MASK, VALUE) (0XFD080194, 0xFFFFFFFFU ,0x000006C0U) + */ + PSU_Mask_Write(DDR_PHY_MR5_OFFSET, 0xFFFFFFFFU, 0x000006C0U); +/*##################################################################### */ - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR6_RSVD_9_8 0x0 + /* + * Register : MR6 @ 0XFD080198 - VrefDQ Training Enable - PSU_DDR_PHY_MR6_VDDQTEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR6_RESERVED_31_16 0x0 - VrefDQ Training Range - PSU_DDR_PHY_MR6_VDQTRG 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR6_RSVD_15_13 0x0 - VrefDQ Training Values - PSU_DDR_PHY_MR6_VDQTVAL 0x19 + * CAS_n to CAS_n command delay for same bank group (tCCD_L) + * PSU_DDR_PHY_MR6_TCCDL 0x2 - DDR4 Mode Register 6 - (OFFSET, MASK, VALUE) (0XFD080198, 0xFFFFFFFFU ,0x00000819U) - RegMask = (DDR_PHY_MR6_RESERVED_31_16_MASK | DDR_PHY_MR6_RSVD_15_13_MASK | DDR_PHY_MR6_TCCDL_MASK | DDR_PHY_MR6_RSVD_9_8_MASK | DDR_PHY_MR6_VDDQTEN_MASK | DDR_PHY_MR6_VDQTRG_MASK | DDR_PHY_MR6_VDQTVAL_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR6_RSVD_9_8 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR6_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR6_RSVD_15_13_SHIFT - | 0x00000002U << DDR_PHY_MR6_TCCDL_SHIFT - | 0x00000000U << DDR_PHY_MR6_RSVD_9_8_SHIFT - | 0x00000000U << DDR_PHY_MR6_VDDQTEN_SHIFT - | 0x00000000U << DDR_PHY_MR6_VDQTRG_SHIFT - | 0x00000019U << DDR_PHY_MR6_VDQTVAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR6_OFFSET ,0xFFFFFFFFU ,0x00000819U); - /*############################################################################################################################ */ + * VrefDQ Training Enable + * PSU_DDR_PHY_MR6_VDDQTEN 0x0 - /*Register : MR11 @ 0XFD0801AC

+ * VrefDQ Training Range + * PSU_DDR_PHY_MR6_VDQTRG 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR11_RESERVED_31_8 0x0 + * VrefDQ Training Values + * PSU_DDR_PHY_MR6_VDQTVAL 0x19 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR11_RSVD 0x0 + * DDR4 Mode Register 6 + * (OFFSET, MASK, VALUE) (0XFD080198, 0xFFFFFFFFU ,0x00000819U) + */ + PSU_Mask_Write(DDR_PHY_MR6_OFFSET, 0xFFFFFFFFU, 0x00000819U); +/*##################################################################### */ - Power Down Control - PSU_DDR_PHY_MR11_PDCTL 0x0 + /* + * Register : MR11 @ 0XFD0801AC - DQ Bus Receiver On-Die-Termination - PSU_DDR_PHY_MR11_DQODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR11_RESERVED_31_8 0x0 - LPDDR4 Mode Register 11 - (OFFSET, MASK, VALUE) (0XFD0801AC, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR11_RESERVED_31_8_MASK | DDR_PHY_MR11_RSVD_MASK | DDR_PHY_MR11_PDCTL_MASK | DDR_PHY_MR11_DQODT_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR11_RSVD 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR11_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR11_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR11_PDCTL_SHIFT - | 0x00000000U << DDR_PHY_MR11_DQODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR11_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Power Down Control + * PSU_DDR_PHY_MR11_PDCTL 0x0 - /*Register : MR12 @ 0XFD0801B0

+ * DQ Bus Receiver On-Die-Termination + * PSU_DDR_PHY_MR11_DQODT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR12_RESERVED_31_8 0x0 + * LPDDR4 Mode Register 11 + * (OFFSET, MASK, VALUE) (0XFD0801AC, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR11_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR12_RSVD 0x0 + /* + * Register : MR12 @ 0XFD0801B0 - VREF_CA Range Select. - PSU_DDR_PHY_MR12_VR_CA 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR12_RESERVED_31_8 0x0 - Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. - PSU_DDR_PHY_MR12_VREF_CA 0xd + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR12_RSVD 0x0 - LPDDR4 Mode Register 12 - (OFFSET, MASK, VALUE) (0XFD0801B0, 0xFFFFFFFFU ,0x0000004DU) - RegMask = (DDR_PHY_MR12_RESERVED_31_8_MASK | DDR_PHY_MR12_RSVD_MASK | DDR_PHY_MR12_VR_CA_MASK | DDR_PHY_MR12_VREF_CA_MASK | 0 ); + * VREF_CA Range Select. + * PSU_DDR_PHY_MR12_VR_CA 0x1 - RegVal = ((0x00000000U << DDR_PHY_MR12_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR12_RSVD_SHIFT - | 0x00000001U << DDR_PHY_MR12_VR_CA_SHIFT - | 0x0000000DU << DDR_PHY_MR12_VREF_CA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR12_OFFSET ,0xFFFFFFFFU ,0x0000004DU); - /*############################################################################################################################ */ + * Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. + * PSU_DDR_PHY_MR12_VREF_CA 0xd - /*Register : MR13 @ 0XFD0801B4

+ * LPDDR4 Mode Register 12 + * (OFFSET, MASK, VALUE) (0XFD0801B0, 0xFFFFFFFFU ,0x0000004DU) + */ + PSU_Mask_Write(DDR_PHY_MR12_OFFSET, 0xFFFFFFFFU, 0x0000004DU); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR13_RESERVED_31_8 0x0 + /* + * Register : MR13 @ 0XFD0801B4 - Frequency Set Point Operation Mode - PSU_DDR_PHY_MR13_FSPOP 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR13_RESERVED_31_8 0x0 - Frequency Set Point Write Enable - PSU_DDR_PHY_MR13_FSPWR 0x0 + * Frequency Set Point Operation Mode + * PSU_DDR_PHY_MR13_FSPOP 0x0 - Data Mask Enable - PSU_DDR_PHY_MR13_DMD 0x0 + * Frequency Set Point Write Enable + * PSU_DDR_PHY_MR13_FSPWR 0x0 - Refresh Rate Option - PSU_DDR_PHY_MR13_RRO 0x0 + * Data Mask Enable + * PSU_DDR_PHY_MR13_DMD 0x0 - VREF Current Generator - PSU_DDR_PHY_MR13_VRCG 0x1 + * Refresh Rate Option + * PSU_DDR_PHY_MR13_RRO 0x0 - VREF Output - PSU_DDR_PHY_MR13_VRO 0x0 + * VREF Current Generator + * PSU_DDR_PHY_MR13_VRCG 0x1 - Read Preamble Training Mode - PSU_DDR_PHY_MR13_RPT 0x0 + * VREF Output + * PSU_DDR_PHY_MR13_VRO 0x0 - Command Bus Training - PSU_DDR_PHY_MR13_CBT 0x0 + * Read Preamble Training Mode + * PSU_DDR_PHY_MR13_RPT 0x0 - LPDDR4 Mode Register 13 - (OFFSET, MASK, VALUE) (0XFD0801B4, 0xFFFFFFFFU ,0x00000008U) - RegMask = (DDR_PHY_MR13_RESERVED_31_8_MASK | DDR_PHY_MR13_FSPOP_MASK | DDR_PHY_MR13_FSPWR_MASK | DDR_PHY_MR13_DMD_MASK | DDR_PHY_MR13_RRO_MASK | DDR_PHY_MR13_VRCG_MASK | DDR_PHY_MR13_VRO_MASK | DDR_PHY_MR13_RPT_MASK | DDR_PHY_MR13_CBT_MASK | 0 ); + * Command Bus Training + * PSU_DDR_PHY_MR13_CBT 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR13_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR13_FSPOP_SHIFT - | 0x00000000U << DDR_PHY_MR13_FSPWR_SHIFT - | 0x00000000U << DDR_PHY_MR13_DMD_SHIFT - | 0x00000000U << DDR_PHY_MR13_RRO_SHIFT - | 0x00000001U << DDR_PHY_MR13_VRCG_SHIFT - | 0x00000000U << DDR_PHY_MR13_VRO_SHIFT - | 0x00000000U << DDR_PHY_MR13_RPT_SHIFT - | 0x00000000U << DDR_PHY_MR13_CBT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR13_OFFSET ,0xFFFFFFFFU ,0x00000008U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 13 + * (OFFSET, MASK, VALUE) (0XFD0801B4, 0xFFFFFFFFU ,0x00000008U) + */ + PSU_Mask_Write(DDR_PHY_MR13_OFFSET, 0xFFFFFFFFU, 0x00000008U); +/*##################################################################### */ - /*Register : MR14 @ 0XFD0801B8

+ /* + * Register : MR14 @ 0XFD0801B8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR14_RESERVED_31_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR14_RESERVED_31_8 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR14_RSVD 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR14_RSVD 0x0 - VREFDQ Range Selects. - PSU_DDR_PHY_MR14_VR_DQ 0x1 + * VREFDQ Range Selects. + * PSU_DDR_PHY_MR14_VR_DQ 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR14_VREF_DQ 0xd + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR14_VREF_DQ 0xd - LPDDR4 Mode Register 14 - (OFFSET, MASK, VALUE) (0XFD0801B8, 0xFFFFFFFFU ,0x0000004DU) - RegMask = (DDR_PHY_MR14_RESERVED_31_8_MASK | DDR_PHY_MR14_RSVD_MASK | DDR_PHY_MR14_VR_DQ_MASK | DDR_PHY_MR14_VREF_DQ_MASK | 0 ); + * LPDDR4 Mode Register 14 + * (OFFSET, MASK, VALUE) (0XFD0801B8, 0xFFFFFFFFU ,0x0000004DU) + */ + PSU_Mask_Write(DDR_PHY_MR14_OFFSET, 0xFFFFFFFFU, 0x0000004DU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_MR14_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR14_RSVD_SHIFT - | 0x00000001U << DDR_PHY_MR14_VR_DQ_SHIFT - | 0x0000000DU << DDR_PHY_MR14_VREF_DQ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR14_OFFSET ,0xFFFFFFFFU ,0x0000004DU); - /*############################################################################################################################ */ + /* + * Register : MR22 @ 0XFD0801D8 - /*Register : MR22 @ 0XFD0801D8

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR22_RESERVED_31_8 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR22_RESERVED_31_8 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR22_RSVD 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR22_RSVD 0x0 + * CA ODT termination disable. + * PSU_DDR_PHY_MR22_ODTD_CA 0x0 - CA ODT termination disable. - PSU_DDR_PHY_MR22_ODTD_CA 0x0 + * ODT CS override. + * PSU_DDR_PHY_MR22_ODTE_CS 0x0 - ODT CS override. - PSU_DDR_PHY_MR22_ODTE_CS 0x0 + * ODT CK override. + * PSU_DDR_PHY_MR22_ODTE_CK 0x0 - ODT CK override. - PSU_DDR_PHY_MR22_ODTE_CK 0x0 + * Controller ODT value for VOH calibration. + * PSU_DDR_PHY_MR22_CODT 0x0 - Controller ODT value for VOH calibration. - PSU_DDR_PHY_MR22_CODT 0x0 + * LPDDR4 Mode Register 22 + * (OFFSET, MASK, VALUE) (0XFD0801D8, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR22_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - LPDDR4 Mode Register 22 - (OFFSET, MASK, VALUE) (0XFD0801D8, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR22_RESERVED_31_8_MASK | DDR_PHY_MR22_RSVD_MASK | DDR_PHY_MR22_ODTD_CA_MASK | DDR_PHY_MR22_ODTE_CS_MASK | DDR_PHY_MR22_ODTE_CK_MASK | DDR_PHY_MR22_CODT_MASK | 0 ); + /* + * Register : DTCR0 @ 0XFD080200 - RegVal = ((0x00000000U << DDR_PHY_MR22_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR22_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTD_CA_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTE_CS_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTE_CK_SHIFT - | 0x00000000U << DDR_PHY_MR22_CODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR22_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Refresh During Training + * PSU_DDR_PHY_DTCR0_RFSHDT 0x8 - /*Register : DTCR0 @ 0XFD080200

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_27_26 0x0 - Refresh During Training - PSU_DDR_PHY_DTCR0_RFSHDT 0x8 + * Data Training Debug Rank Select + * PSU_DDR_PHY_DTCR0_DTDRS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_27_26 0x0 + * Data Training with Early/Extended Gate + * PSU_DDR_PHY_DTCR0_DTEXG 0x0 - Data Training Debug Rank Select - PSU_DDR_PHY_DTCR0_DTDRS 0x0 + * Data Training Extended Write DQS + * PSU_DDR_PHY_DTCR0_DTEXD 0x0 - Data Training with Early/Extended Gate - PSU_DDR_PHY_DTCR0_DTEXG 0x0 + * Data Training Debug Step + * PSU_DDR_PHY_DTCR0_DTDSTP 0x0 - Data Training Extended Write DQS - PSU_DDR_PHY_DTCR0_DTEXD 0x0 + * Data Training Debug Enable + * PSU_DDR_PHY_DTCR0_DTDEN 0x0 - Data Training Debug Step - PSU_DDR_PHY_DTCR0_DTDSTP 0x0 + * Data Training Debug Byte Select + * PSU_DDR_PHY_DTCR0_DTDBS 0x0 - Data Training Debug Enable - PSU_DDR_PHY_DTCR0_DTDEN 0x0 + * Data Training read DBI deskewing configuration + * PSU_DDR_PHY_DTCR0_DTRDBITR 0x2 - Data Training Debug Byte Select - PSU_DDR_PHY_DTCR0_DTDBS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_13 0x0 - Data Training read DBI deskewing configuration - PSU_DDR_PHY_DTCR0_DTRDBITR 0x2 + * Data Training Write Bit Deskew Data Mask + * PSU_DDR_PHY_DTCR0_DTWBDDM 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_13 0x0 + * Refreshes Issued During Entry to Training + * PSU_DDR_PHY_DTCR0_RFSHEN 0x1 - Data Training Write Bit Deskew Data Mask - PSU_DDR_PHY_DTCR0_DTWBDDM 0x1 + * Data Training Compare Data + * PSU_DDR_PHY_DTCR0_DTCMPD 0x1 - Refreshes Issued During Entry to Training - PSU_DDR_PHY_DTCR0_RFSHEN 0x1 + * Data Training Using MPR + * PSU_DDR_PHY_DTCR0_DTMPR 0x1 - Data Training Compare Data - PSU_DDR_PHY_DTCR0_DTCMPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_5_4 0x0 - Data Training Using MPR - PSU_DDR_PHY_DTCR0_DTMPR 0x1 + * Data Training Repeat Number + * PSU_DDR_PHY_DTCR0_DTRPTN 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_5_4 0x0 + * Data Training Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080200, 0xFFFFFFFFU ,0x800091C7U) + */ + PSU_Mask_Write(DDR_PHY_DTCR0_OFFSET, 0xFFFFFFFFU, 0x800091C7U); +/*##################################################################### */ - Data Training Repeat Number - PSU_DDR_PHY_DTCR0_DTRPTN 0x7 + /* + * Register : DTCR1 @ 0XFD080204 - Data Training Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080200, 0xFFFFFFFFU ,0x800091C7U) - RegMask = (DDR_PHY_DTCR0_RFSHDT_MASK | DDR_PHY_DTCR0_RESERVED_27_26_MASK | DDR_PHY_DTCR0_DTDRS_MASK | DDR_PHY_DTCR0_DTEXG_MASK | DDR_PHY_DTCR0_DTEXD_MASK | DDR_PHY_DTCR0_DTDSTP_MASK | DDR_PHY_DTCR0_DTDEN_MASK | DDR_PHY_DTCR0_DTDBS_MASK | DDR_PHY_DTCR0_DTRDBITR_MASK | DDR_PHY_DTCR0_RESERVED_13_MASK | DDR_PHY_DTCR0_DTWBDDM_MASK | DDR_PHY_DTCR0_RFSHEN_MASK | DDR_PHY_DTCR0_DTCMPD_MASK | DDR_PHY_DTCR0_DTMPR_MASK | DDR_PHY_DTCR0_RESERVED_5_4_MASK | DDR_PHY_DTCR0_DTRPTN_MASK | 0 ); + * Rank Enable. + * PSU_DDR_PHY_DTCR1_RANKEN_RSVD 0x0 - RegVal = ((0x00000008U << DDR_PHY_DTCR0_RFSHDT_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_27_26_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDRS_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTEXG_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTEXD_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDSTP_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDBS_SHIFT - | 0x00000002U << DDR_PHY_DTCR0_DTRDBITR_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_13_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTWBDDM_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_RFSHEN_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTCMPD_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTMPR_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_5_4_SHIFT - | 0x00000007U << DDR_PHY_DTCR0_DTRPTN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTCR0_OFFSET ,0xFFFFFFFFU ,0x800091C7U); - /*############################################################################################################################ */ + * Rank Enable. + * PSU_DDR_PHY_DTCR1_RANKEN 0x1 - /*Register : DTCR1 @ 0XFD080204

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_15_14 0x0 - Rank Enable. - PSU_DDR_PHY_DTCR1_RANKEN_RSVD 0x0 + * Data Training Rank + * PSU_DDR_PHY_DTCR1_DTRANK 0x0 - Rank Enable. - PSU_DDR_PHY_DTCR1_RANKEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_11 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_15_14 0x0 + * Read Leveling Gate Sampling Difference + * PSU_DDR_PHY_DTCR1_RDLVLGDIFF 0x2 - Data Training Rank - PSU_DDR_PHY_DTCR1_DTRANK 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_7 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_11 0x0 + * Read Leveling Gate Shift + * PSU_DDR_PHY_DTCR1_RDLVLGS 0x3 - Read Leveling Gate Sampling Difference - PSU_DDR_PHY_DTCR1_RDLVLGDIFF 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_3 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_7 0x0 + * Read Preamble Training enable + * PSU_DDR_PHY_DTCR1_RDPRMVL_TRN 0x1 - Read Leveling Gate Shift - PSU_DDR_PHY_DTCR1_RDLVLGS 0x3 + * Read Leveling Enable + * PSU_DDR_PHY_DTCR1_RDLVLEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_3 0x0 + * Basic Gate Training Enable + * PSU_DDR_PHY_DTCR1_BSTEN 0x0 - Read Preamble Training enable - PSU_DDR_PHY_DTCR1_RDPRMVL_TRN 0x1 + * Data Training Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080204, 0xFFFFFFFFU ,0x00010236U) + */ + PSU_Mask_Write(DDR_PHY_DTCR1_OFFSET, 0xFFFFFFFFU, 0x00010236U); +/*##################################################################### */ - Read Leveling Enable - PSU_DDR_PHY_DTCR1_RDLVLEN 0x1 + /* + * Register : CATR0 @ 0XFD080240 - Basic Gate Training Enable - PSU_DDR_PHY_DTCR1_BSTEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_CATR0_RESERVED_31_21 0x0 - Data Training Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080204, 0xFFFFFFFFU ,0x00010236U) - RegMask = (DDR_PHY_DTCR1_RANKEN_RSVD_MASK | DDR_PHY_DTCR1_RANKEN_MASK | DDR_PHY_DTCR1_RESERVED_15_14_MASK | DDR_PHY_DTCR1_DTRANK_MASK | DDR_PHY_DTCR1_RESERVED_11_MASK | DDR_PHY_DTCR1_RDLVLGDIFF_MASK | DDR_PHY_DTCR1_RESERVED_7_MASK | DDR_PHY_DTCR1_RDLVLGS_MASK | DDR_PHY_DTCR1_RESERVED_3_MASK | DDR_PHY_DTCR1_RDPRMVL_TRN_MASK | DDR_PHY_DTCR1_RDLVLEN_MASK | DDR_PHY_DTCR1_BSTEN_MASK | 0 ); + * Minimum time (in terms of number of dram clocks) between two consectuve + * CA calibration command + * PSU_DDR_PHY_CATR0_CACD 0x14 - RegVal = ((0x00000000U << DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RANKEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_DTRANK_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_11_SHIFT - | 0x00000002U << DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_7_SHIFT - | 0x00000003U << DDR_PHY_DTCR1_RDLVLGS_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_3_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RDLVLEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_BSTEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTCR1_OFFSET ,0xFFFFFFFFU ,0x00010236U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_CATR0_RESERVED_15_13 0x0 - /*Register : CATR0 @ 0XFD080240

+ * Minimum time (in terms of number of dram clocks) PUB should wait before + * sampling the CA response after Calibration command has been sent to the + * memory + * PSU_DDR_PHY_CATR0_CAADR 0x10 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_CATR0_RESERVED_31_21 0x0 + * CA_1 Response Byte Lane 1 + * PSU_DDR_PHY_CATR0_CA1BYTE1 0x5 - Minimum time (in terms of number of dram clocks) between two consectuve CA calibration command - PSU_DDR_PHY_CATR0_CACD 0x14 + * CA_1 Response Byte Lane 0 + * PSU_DDR_PHY_CATR0_CA1BYTE0 0x4 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_CATR0_RESERVED_15_13 0x0 + * CA Training Register 0 + * (OFFSET, MASK, VALUE) (0XFD080240, 0xFFFFFFFFU ,0x00141054U) + */ + PSU_Mask_Write(DDR_PHY_CATR0_OFFSET, 0xFFFFFFFFU, 0x00141054U); +/*##################################################################### */ - Minimum time (in terms of number of dram clocks) PUB should wait before sampling the CA response after Calibration command ha - been sent to the memory - PSU_DDR_PHY_CATR0_CAADR 0x10 + /* + * Register : DQSDR0 @ 0XFD080250 - CA_1 Response Byte Lane 1 - PSU_DDR_PHY_CATR0_CA1BYTE1 0x5 + * Number of delay taps by which the DQS gate LCDL will be updated when DQS + * drift is detected + * PSU_DDR_PHY_DQSDR0_DFTDLY 0x0 - CA_1 Response Byte Lane 0 - PSU_DDR_PHY_CATR0_CA1BYTE0 0x4 - - CA Training Register 0 - (OFFSET, MASK, VALUE) (0XFD080240, 0xFFFFFFFFU ,0x00141054U) - RegMask = (DDR_PHY_CATR0_RESERVED_31_21_MASK | DDR_PHY_CATR0_CACD_MASK | DDR_PHY_CATR0_RESERVED_15_13_MASK | DDR_PHY_CATR0_CAADR_MASK | DDR_PHY_CATR0_CA1BYTE1_MASK | DDR_PHY_CATR0_CA1BYTE0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_CATR0_RESERVED_31_21_SHIFT - | 0x00000014U << DDR_PHY_CATR0_CACD_SHIFT - | 0x00000000U << DDR_PHY_CATR0_RESERVED_15_13_SHIFT - | 0x00000010U << DDR_PHY_CATR0_CAADR_SHIFT - | 0x00000005U << DDR_PHY_CATR0_CA1BYTE1_SHIFT - | 0x00000004U << DDR_PHY_CATR0_CA1BYTE0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_CATR0_OFFSET ,0xFFFFFFFFU ,0x00141054U); - /*############################################################################################################################ */ + * Drift Impedance Update + * PSU_DDR_PHY_DQSDR0_DFTZQUP 0x0 - /*Register : BISTLSR @ 0XFD080414

+ * Drift DDL Update + * PSU_DDR_PHY_DQSDR0_DFTDDLUP 0x0 - LFSR seed for pseudo-random BIST patterns - PSU_DDR_PHY_BISTLSR_SEED 0x12341000 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DQSDR0_RESERVED_25_22 0x0 - BIST LFSR Seed Register - (OFFSET, MASK, VALUE) (0XFD080414, 0xFFFFFFFFU ,0x12341000U) - RegMask = (DDR_PHY_BISTLSR_SEED_MASK | 0 ); + * Drift Read Spacing + * PSU_DDR_PHY_DQSDR0_DFTRDSPC 0x0 - RegVal = ((0x12341000U << DDR_PHY_BISTLSR_SEED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_BISTLSR_OFFSET ,0xFFFFFFFFU ,0x12341000U); - /*############################################################################################################################ */ + * Drift Back-to-Back Reads + * PSU_DDR_PHY_DQSDR0_DFTB2BRD 0x8 - /*Register : RIOCR5 @ 0XFD0804F4

+ * Drift Idle Reads + * PSU_DDR_PHY_DQSDR0_DFTIDLRD 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RIOCR5_RESERVED_31_16 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DQSDR0_RESERVED_11_8 0x0 - Reserved. Return zeros on reads. - PSU_DDR_PHY_RIOCR5_ODTOEMODE_RSVD 0x0 + * Gate Pulse Enable + * PSU_DDR_PHY_DQSDR0_DFTGPULSE 0x0 - SDRAM On-die Termination Output Enable (OE) Mode Selection. - PSU_DDR_PHY_RIOCR5_ODTOEMODE 0x5 + * DQS Drift Update Mode + * PSU_DDR_PHY_DQSDR0_DFTUPMODE 0x0 - Rank I/O Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD0804F4, 0xFFFFFFFFU ,0x00000005U) - RegMask = (DDR_PHY_RIOCR5_RESERVED_31_16_MASK | DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK | DDR_PHY_RIOCR5_ODTOEMODE_MASK | 0 ); + * DQS Drift Detection Mode + * PSU_DDR_PHY_DQSDR0_DFTDTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT - | 0x00000005U << DDR_PHY_RIOCR5_ODTOEMODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RIOCR5_OFFSET ,0xFFFFFFFFU ,0x00000005U); - /*############################################################################################################################ */ + * DQS Drift Detection Enable + * PSU_DDR_PHY_DQSDR0_DFTDTEN 0x0 - /*Register : ACIOCR0 @ 0XFD080500

+ * DQS Drift Register 0 + * (OFFSET, MASK, VALUE) (0XFD080250, 0xFFFFFFFFU ,0x00088000U) + */ + PSU_Mask_Write(DDR_PHY_DQSDR0_OFFSET, 0xFFFFFFFFU, 0x00088000U); +/*##################################################################### */ - Address/Command Slew Rate (D3F I/O Only) - PSU_DDR_PHY_ACIOCR0_ACSR 0x0 + /* + * Register : BISTLSR @ 0XFD080414 - SDRAM Reset I/O Mode - PSU_DDR_PHY_ACIOCR0_RSTIOM 0x1 + * LFSR seed for pseudo-random BIST patterns + * PSU_DDR_PHY_BISTLSR_SEED 0x12341000 - SDRAM Reset Power Down Receiver - PSU_DDR_PHY_ACIOCR0_RSTPDR 0x1 + * BIST LFSR Seed Register + * (OFFSET, MASK, VALUE) (0XFD080414, 0xFFFFFFFFU ,0x12341000U) + */ + PSU_Mask_Write(DDR_PHY_BISTLSR_OFFSET, 0xFFFFFFFFU, 0x12341000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_27 0x0 + /* + * Register : RIOCR5 @ 0XFD0804F4 - SDRAM Reset On-Die Termination - PSU_DDR_PHY_ACIOCR0_RSTODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RIOCR5_RESERVED_31_16 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_25_10 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_RIOCR5_ODTOEMODE_RSVD 0x0 - CK Duty Cycle Correction - PSU_DDR_PHY_ACIOCR0_CKDCC 0x0 + * SDRAM On-die Termination Output Enable (OE) Mode Selection. + * PSU_DDR_PHY_RIOCR5_ODTOEMODE 0x5 - AC Power Down Receiver Mode - PSU_DDR_PHY_ACIOCR0_ACPDRMODE 0x2 + * Rank I/O Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD0804F4, 0xFFFFFFFFU ,0x00000005U) + */ + PSU_Mask_Write(DDR_PHY_RIOCR5_OFFSET, 0xFFFFFFFFU, 0x00000005U); +/*##################################################################### */ - AC On-die Termination Mode - PSU_DDR_PHY_ACIOCR0_ACODTMODE 0x2 + /* + * Register : ACIOCR0 @ 0XFD080500 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_1 0x0 + * Address/Command Slew Rate (D3F I/O Only) + * PSU_DDR_PHY_ACIOCR0_ACSR 0x0 - Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. - PSU_DDR_PHY_ACIOCR0_ACRANKCLKSEL 0x0 + * SDRAM Reset I/O Mode + * PSU_DDR_PHY_ACIOCR0_RSTIOM 0x1 - AC I/O Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080500, 0xFFFFFFFFU ,0x30000028U) - RegMask = (DDR_PHY_ACIOCR0_ACSR_MASK | DDR_PHY_ACIOCR0_RSTIOM_MASK | DDR_PHY_ACIOCR0_RSTPDR_MASK | DDR_PHY_ACIOCR0_RESERVED_27_MASK | DDR_PHY_ACIOCR0_RSTODT_MASK | DDR_PHY_ACIOCR0_RESERVED_25_10_MASK | DDR_PHY_ACIOCR0_CKDCC_MASK | DDR_PHY_ACIOCR0_ACPDRMODE_MASK | DDR_PHY_ACIOCR0_ACODTMODE_MASK | DDR_PHY_ACIOCR0_RESERVED_1_MASK | DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK | 0 ); + * SDRAM Reset Power Down Receiver + * PSU_DDR_PHY_ACIOCR0_RSTPDR 0x1 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR0_ACSR_SHIFT - | 0x00000001U << DDR_PHY_ACIOCR0_RSTIOM_SHIFT - | 0x00000001U << DDR_PHY_ACIOCR0_RSTPDR_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_27_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RSTODT_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_CKDCC_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR0_ACODTMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR0_OFFSET ,0xFFFFFFFFU ,0x30000028U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_27 0x0 - /*Register : ACIOCR2 @ 0XFD080508

+ * SDRAM Reset On-Die Termination + * PSU_DDR_PHY_ACIOCR0_RSTODT 0x0 - Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL slice - PSU_DDR_PHY_ACIOCR2_CLKGENCLKGATE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_25_10 0x0 - Clock gating for Output Enable D slices [0] - PSU_DDR_PHY_ACIOCR2_ACOECLKGATE0 0x0 + * CK Duty Cycle Correction + * PSU_DDR_PHY_ACIOCR0_CKDCC 0x0 - Clock gating for Power Down Receiver D slices [0] - PSU_DDR_PHY_ACIOCR2_ACPDRCLKGATE0 0x0 + * AC Power Down Receiver Mode + * PSU_DDR_PHY_ACIOCR0_ACPDRMODE 0x2 - Clock gating for Termination Enable D slices [0] - PSU_DDR_PHY_ACIOCR2_ACTECLKGATE0 0x0 + * AC On-die Termination Mode + * PSU_DDR_PHY_ACIOCR0_ACODTMODE 0x2 - Clock gating for CK# D slices [1:0] - PSU_DDR_PHY_ACIOCR2_CKNCLKGATE0 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_1 0x0 - Clock gating for CK D slices [1:0] - PSU_DDR_PHY_ACIOCR2_CKCLKGATE0 0x2 + * Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. + * PSU_DDR_PHY_ACIOCR0_ACRANKCLKSEL 0x0 - Clock gating for AC D slices [23:0] - PSU_DDR_PHY_ACIOCR2_ACCLKGATE0 0x0 + * AC I/O Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080500, 0xFFFFFFFFU ,0x30000028U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR0_OFFSET, 0xFFFFFFFFU, 0x30000028U); +/*##################################################################### */ - AC I/O Configuration Register 2 - (OFFSET, MASK, VALUE) (0XFD080508, 0xFFFFFFFFU ,0x0A000000U) - RegMask = (DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK | DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK | DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK | DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK | DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK | DDR_PHY_ACIOCR2_CKCLKGATE0_MASK | DDR_PHY_ACIOCR2_ACCLKGATE0_MASK | 0 ); + /* + * Register : ACIOCR2 @ 0XFD080508 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR2_OFFSET ,0xFFFFFFFFU ,0x0A000000U); - /*############################################################################################################################ */ + * Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL + * slice + * PSU_DDR_PHY_ACIOCR2_CLKGENCLKGATE 0x0 - /*Register : ACIOCR3 @ 0XFD08050C

+ * Clock gating for Output Enable D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACOECLKGATE0 0x0 - SDRAM Parity Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_PAROEMODE 0x0 + * Clock gating for Power Down Receiver D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACPDRCLKGATE0 0x0 - SDRAM Bank Group Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_BGOEMODE 0x0 + * Clock gating for Termination Enable D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACTECLKGATE0 0x0 - SDRAM Bank Address Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_BAOEMODE 0x0 + * Clock gating for CK# D slices [1:0] + * PSU_DDR_PHY_ACIOCR2_CKNCLKGATE0 0x2 - SDRAM A[17] Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_A17OEMODE 0x0 + * Clock gating for CK D slices [1:0] + * PSU_DDR_PHY_ACIOCR2_CKCLKGATE0 0x2 - SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_A16OEMODE 0x0 + * Clock gating for AC D slices [23:0] + * PSU_DDR_PHY_ACIOCR2_ACCLKGATE0 0x0 - SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) - PSU_DDR_PHY_ACIOCR3_ACTOEMODE 0x0 + * AC I/O Configuration Register 2 + * (OFFSET, MASK, VALUE) (0XFD080508, 0xFFFFFFFFU ,0x0A000000U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR2_OFFSET, 0xFFFFFFFFU, 0x0A000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR3_RESERVED_15_8 0x0 + /* + * Register : ACIOCR3 @ 0XFD08050C - Reserved. Return zeros on reads. - PSU_DDR_PHY_ACIOCR3_CKOEMODE_RSVD 0x0 + * SDRAM Parity Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_PAROEMODE 0x0 - SDRAM CK Output Enable (OE) Mode Selection. - PSU_DDR_PHY_ACIOCR3_CKOEMODE 0x9 + * SDRAM Bank Group Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_BGOEMODE 0x0 - AC I/O Configuration Register 3 - (OFFSET, MASK, VALUE) (0XFD08050C, 0xFFFFFFFFU ,0x00000009U) - RegMask = (DDR_PHY_ACIOCR3_PAROEMODE_MASK | DDR_PHY_ACIOCR3_BGOEMODE_MASK | DDR_PHY_ACIOCR3_BAOEMODE_MASK | DDR_PHY_ACIOCR3_A17OEMODE_MASK | DDR_PHY_ACIOCR3_A16OEMODE_MASK | DDR_PHY_ACIOCR3_ACTOEMODE_MASK | DDR_PHY_ACIOCR3_RESERVED_15_8_MASK | DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK | DDR_PHY_ACIOCR3_CKOEMODE_MASK | 0 ); + * SDRAM Bank Address Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_BAOEMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR3_PAROEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_BGOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_BAOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_A17OEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_A16OEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT - | 0x00000009U << DDR_PHY_ACIOCR3_CKOEMODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR3_OFFSET ,0xFFFFFFFFU ,0x00000009U); - /*############################################################################################################################ */ + * SDRAM A[17] Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_A17OEMODE 0x0 - /*Register : ACIOCR4 @ 0XFD080510

+ * SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_A16OEMODE 0x0 - Clock gating for AC LB slices and loopback read valid slices - PSU_DDR_PHY_ACIOCR4_LBCLKGATE 0x0 + * SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) + * PSU_DDR_PHY_ACIOCR3_ACTOEMODE 0x0 - Clock gating for Output Enable D slices [1] - PSU_DDR_PHY_ACIOCR4_ACOECLKGATE1 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR3_RESERVED_15_8 0x0 - Clock gating for Power Down Receiver D slices [1] - PSU_DDR_PHY_ACIOCR4_ACPDRCLKGATE1 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ACIOCR3_CKOEMODE_RSVD 0x0 - Clock gating for Termination Enable D slices [1] - PSU_DDR_PHY_ACIOCR4_ACTECLKGATE1 0x0 + * SDRAM CK Output Enable (OE) Mode Selection. + * PSU_DDR_PHY_ACIOCR3_CKOEMODE 0x9 - Clock gating for CK# D slices [3:2] - PSU_DDR_PHY_ACIOCR4_CKNCLKGATE1 0x2 + * AC I/O Configuration Register 3 + * (OFFSET, MASK, VALUE) (0XFD08050C, 0xFFFFFFFFU ,0x00000009U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR3_OFFSET, 0xFFFFFFFFU, 0x00000009U); +/*##################################################################### */ - Clock gating for CK D slices [3:2] - PSU_DDR_PHY_ACIOCR4_CKCLKGATE1 0x2 + /* + * Register : ACIOCR4 @ 0XFD080510 - Clock gating for AC D slices [47:24] - PSU_DDR_PHY_ACIOCR4_ACCLKGATE1 0x0 + * Clock gating for AC LB slices and loopback read valid slices + * PSU_DDR_PHY_ACIOCR4_LBCLKGATE 0x0 - AC I/O Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080510, 0xFFFFFFFFU ,0x0A000000U) - RegMask = (DDR_PHY_ACIOCR4_LBCLKGATE_MASK | DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK | DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK | DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK | DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK | DDR_PHY_ACIOCR4_CKCLKGATE1_MASK | DDR_PHY_ACIOCR4_ACCLKGATE1_MASK | 0 ); + * Clock gating for Output Enable D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACOECLKGATE1 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR4_OFFSET ,0xFFFFFFFFU ,0x0A000000U); - /*############################################################################################################################ */ + * Clock gating for Power Down Receiver D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACPDRCLKGATE1 0x0 - /*Register : IOVCR0 @ 0XFD080520

+ * Clock gating for Termination Enable D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACTECLKGATE1 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_IOVCR0_RESERVED_31_29 0x0 + * Clock gating for CK# D slices [3:2] + * PSU_DDR_PHY_ACIOCR4_CKNCLKGATE1 0x2 - Address/command lane VREF Pad Enable - PSU_DDR_PHY_IOVCR0_ACREFPEN 0x0 + * Clock gating for CK D slices [3:2] + * PSU_DDR_PHY_ACIOCR4_CKCLKGATE1 0x2 - Address/command lane Internal VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFEEN 0x0 + * Clock gating for AC D slices [47:24] + * PSU_DDR_PHY_ACIOCR4_ACCLKGATE1 0x0 - Address/command lane Single-End VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFSEN 0x1 + * AC I/O Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080510, 0xFFFFFFFFU ,0x0A000000U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR4_OFFSET, 0xFFFFFFFFU, 0x0A000000U); +/*##################################################################### */ - Address/command lane Internal VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFIEN 0x1 + /* + * Register : IOVCR0 @ 0XFD080520 - External VREF generato REFSEL range select - PSU_DDR_PHY_IOVCR0_ACREFESELRANGE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_IOVCR0_RESERVED_31_29 0x0 - Address/command lane External VREF Select - PSU_DDR_PHY_IOVCR0_ACREFESEL 0x0 + * Address/command lane VREF Pad Enable + * PSU_DDR_PHY_IOVCR0_ACREFPEN 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_IOVCR0_ACREFSSELRANGE 0x1 + * Address/command lane Internal VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFEEN 0x0 - Address/command lane Single-End VREF Select - PSU_DDR_PHY_IOVCR0_ACREFSSEL 0x30 + * Address/command lane Single-End VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFSEN 0x1 - Internal VREF generator REFSEL ragne select - PSU_DDR_PHY_IOVCR0_ACVREFISELRANGE 0x1 + * Address/command lane Internal VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFIEN 0x1 - REFSEL Control for internal AC IOs - PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x30 + * External VREF generato REFSEL range select + * PSU_DDR_PHY_IOVCR0_ACREFESELRANGE 0x0 - IO VREF Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0B0U) - RegMask = (DDR_PHY_IOVCR0_RESERVED_31_29_MASK | DDR_PHY_IOVCR0_ACREFPEN_MASK | DDR_PHY_IOVCR0_ACREFEEN_MASK | DDR_PHY_IOVCR0_ACREFSEN_MASK | DDR_PHY_IOVCR0_ACREFIEN_MASK | DDR_PHY_IOVCR0_ACREFESELRANGE_MASK | DDR_PHY_IOVCR0_ACREFESEL_MASK | DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK | DDR_PHY_IOVCR0_ACREFSSEL_MASK | DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK | DDR_PHY_IOVCR0_ACVREFISEL_MASK | 0 ); + * Address/command lane External VREF Select + * PSU_DDR_PHY_IOVCR0_ACREFESEL 0x0 - RegVal = ((0x00000000U << DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFPEN_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFEEN_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFSEN_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFIEN_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFESEL_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_IOVCR0_ACREFSSEL_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT - | 0x00000030U << DDR_PHY_IOVCR0_ACVREFISEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_IOVCR0_OFFSET ,0xFFFFFFFFU ,0x0300B0B0U); - /*############################################################################################################################ */ + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_IOVCR0_ACREFSSELRANGE 0x1 - /*Register : VTCR0 @ 0XFD080528

+ * Address/command lane Single-End VREF Select + * PSU_DDR_PHY_IOVCR0_ACREFSSEL 0x30 - Number of ctl_clk required to meet (> 150ns) timing requirements during DRAM DQ VREF training - PSU_DDR_PHY_VTCR0_TVREF 0x7 + * Internal VREF generator REFSEL ragne select + * PSU_DDR_PHY_IOVCR0_ACVREFISELRANGE 0x1 - DRM DQ VREF training Enable - PSU_DDR_PHY_VTCR0_DVEN 0x1 + * REFSEL Control for internal AC IOs + * PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x4e - Per Device Addressability Enable - PSU_DDR_PHY_VTCR0_PDAEN 0x1 + * IO VREF Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0CEU) + */ + PSU_Mask_Write(DDR_PHY_IOVCR0_OFFSET, 0xFFFFFFFFU, 0x0300B0CEU); +/*##################################################################### */ - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR0_RESERVED_26 0x0 + /* + * Register : VTCR0 @ 0XFD080528 - VREF Word Count - PSU_DDR_PHY_VTCR0_VWCR 0x4 + * Number of ctl_clk required to meet (> 150ns) timing requirements during + * DRAM DQ VREF training + * PSU_DDR_PHY_VTCR0_TVREF 0x7 - DRAM DQ VREF step size used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVSS 0x0 + * DRM DQ VREF training Enable + * PSU_DDR_PHY_VTCR0_DVEN 0x1 - Maximum VREF limit value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVMAX 0x32 + * Per Device Addressability Enable + * PSU_DDR_PHY_VTCR0_PDAEN 0x1 - Minimum VREF limit value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVMIN 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR0_RESERVED_26 0x0 - Initial DRAM DQ VREF value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVINIT 0x19 + * VREF Word Count + * PSU_DDR_PHY_VTCR0_VWCR 0x4 - VREF Training Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080528, 0xFFFFFFFFU ,0xF9032019U) - RegMask = (DDR_PHY_VTCR0_TVREF_MASK | DDR_PHY_VTCR0_DVEN_MASK | DDR_PHY_VTCR0_PDAEN_MASK | DDR_PHY_VTCR0_RESERVED_26_MASK | DDR_PHY_VTCR0_VWCR_MASK | DDR_PHY_VTCR0_DVSS_MASK | DDR_PHY_VTCR0_DVMAX_MASK | DDR_PHY_VTCR0_DVMIN_MASK | DDR_PHY_VTCR0_DVINIT_MASK | 0 ); + * DRAM DQ VREF step size used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVSS 0x0 - RegVal = ((0x00000007U << DDR_PHY_VTCR0_TVREF_SHIFT - | 0x00000001U << DDR_PHY_VTCR0_DVEN_SHIFT - | 0x00000001U << DDR_PHY_VTCR0_PDAEN_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_RESERVED_26_SHIFT - | 0x00000004U << DDR_PHY_VTCR0_VWCR_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_DVSS_SHIFT - | 0x00000032U << DDR_PHY_VTCR0_DVMAX_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_DVMIN_SHIFT - | 0x00000019U << DDR_PHY_VTCR0_DVINIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_VTCR0_OFFSET ,0xFFFFFFFFU ,0xF9032019U); - /*############################################################################################################################ */ + * Maximum VREF limit value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVMAX 0x32 - /*Register : VTCR1 @ 0XFD08052C

+ * Minimum VREF limit value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVMIN 0x0 - Host VREF step size used during VREF training. The register value of N indicates step size of (N+1) - PSU_DDR_PHY_VTCR1_HVSS 0x0 + * Initial DRAM DQ VREF value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVINIT 0x19 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_27 0x0 + * VREF Training Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080528, 0xFFFFFFFFU ,0xF9032019U) + */ + PSU_Mask_Write(DDR_PHY_VTCR0_OFFSET, 0xFFFFFFFFU, 0xF9032019U); +/*##################################################################### */ - Maximum VREF limit value used during DRAM VREF training. - PSU_DDR_PHY_VTCR1_HVMAX 0x7f + /* + * Register : VTCR1 @ 0XFD08052C - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_19 0x0 + * Host VREF step size used during VREF training. The register value of N i + * ndicates step size of (N+1) + * PSU_DDR_PHY_VTCR1_HVSS 0x0 - Minimum VREF limit value used during DRAM VREF training. - PSU_DDR_PHY_VTCR1_HVMIN 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_27 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_11 0x0 + * Maximum VREF limit value used during DRAM VREF training. + * PSU_DDR_PHY_VTCR1_HVMAX 0x7f - Static Host Vref Rank Value - PSU_DDR_PHY_VTCR1_SHRNK 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_19 0x0 - Static Host Vref Rank Enable - PSU_DDR_PHY_VTCR1_SHREN 0x1 + * Minimum VREF limit value used during DRAM VREF training. + * PSU_DDR_PHY_VTCR1_HVMIN 0x0 - Number of ctl_clk required to meet (> 200ns) VREF Settling timing requirements during Host IO VREF training - PSU_DDR_PHY_VTCR1_TVREFIO 0x7 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_11 0x0 - Eye LCDL Offset value for VREF training - PSU_DDR_PHY_VTCR1_EOFF 0x0 + * Static Host Vref Rank Value + * PSU_DDR_PHY_VTCR1_SHRNK 0x0 - Number of LCDL Eye points for which VREF training is repeated - PSU_DDR_PHY_VTCR1_ENUM 0x0 + * Static Host Vref Rank Enable + * PSU_DDR_PHY_VTCR1_SHREN 0x1 - HOST (IO) internal VREF training Enable - PSU_DDR_PHY_VTCR1_HVEN 0x1 + * Number of ctl_clk required to meet (> 200ns) VREF Settling timing requir + * ements during Host IO VREF training + * PSU_DDR_PHY_VTCR1_TVREFIO 0x7 - Host IO Type Control - PSU_DDR_PHY_VTCR1_HVIO 0x1 + * Eye LCDL Offset value for VREF training + * PSU_DDR_PHY_VTCR1_EOFF 0x0 - VREF Training Control Register 1 - (OFFSET, MASK, VALUE) (0XFD08052C, 0xFFFFFFFFU ,0x07F001E3U) - RegMask = (DDR_PHY_VTCR1_HVSS_MASK | DDR_PHY_VTCR1_RESERVED_27_MASK | DDR_PHY_VTCR1_HVMAX_MASK | DDR_PHY_VTCR1_RESERVED_19_MASK | DDR_PHY_VTCR1_HVMIN_MASK | DDR_PHY_VTCR1_RESERVED_11_MASK | DDR_PHY_VTCR1_SHRNK_MASK | DDR_PHY_VTCR1_SHREN_MASK | DDR_PHY_VTCR1_TVREFIO_MASK | DDR_PHY_VTCR1_EOFF_MASK | DDR_PHY_VTCR1_ENUM_MASK | DDR_PHY_VTCR1_HVEN_MASK | DDR_PHY_VTCR1_HVIO_MASK | 0 ); + * Number of LCDL Eye points for which VREF training is repeated + * PSU_DDR_PHY_VTCR1_ENUM 0x0 - RegVal = ((0x00000000U << DDR_PHY_VTCR1_HVSS_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_27_SHIFT - | 0x0000007FU << DDR_PHY_VTCR1_HVMAX_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_19_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_HVMIN_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_11_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_SHRNK_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_SHREN_SHIFT - | 0x00000007U << DDR_PHY_VTCR1_TVREFIO_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_EOFF_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_ENUM_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_HVEN_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_HVIO_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_VTCR1_OFFSET ,0xFFFFFFFFU ,0x07F001E3U); - /*############################################################################################################################ */ + * HOST (IO) internal VREF training Enable + * PSU_DDR_PHY_VTCR1_HVEN 0x1 - /*Register : ACBDLR1 @ 0XFD080544

+ * Host IO Type Control + * PSU_DDR_PHY_VTCR1_HVIO 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_31_30 0x0 + * VREF Training Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD08052C, 0xFFFFFFFFU ,0x07F001E3U) + */ + PSU_Mask_Write(DDR_PHY_VTCR1_OFFSET, 0xFFFFFFFFU, 0x07F001E3U); +/*##################################################################### */ - Delay select for the BDL on Parity. - PSU_DDR_PHY_ACBDLR1_PARBD 0x0 + /* + * Register : ACBDLR1 @ 0XFD080544 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_31_30 0x0 - Delay select for the BDL on Address A[16]. In DDR3 mode this pin is connected to WE. - PSU_DDR_PHY_ACBDLR1_A16BD 0x0 + * Delay select for the BDL on Parity. + * PSU_DDR_PHY_ACBDLR1_PARBD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[17]. When not in DDR4 modemode this pin is connected to CAS. - PSU_DDR_PHY_ACBDLR1_A17BD 0x0 + * Delay select for the BDL on Address A[16]. In DDR3 mode this pin is conn + * ected to WE. + * PSU_DDR_PHY_ACBDLR1_A16BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_15_14 0x0 - Delay select for the BDL on ACTN. - PSU_DDR_PHY_ACBDLR1_ACTBD 0x0 + * Delay select for the BDL on Address A[17]. When not in DDR4 modemode thi + * s pin is connected to CAS. + * PSU_DDR_PHY_ACBDLR1_A17BD 0x0 - AC Bit Delay Line Register 1 - (OFFSET, MASK, VALUE) (0XFD080544, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR1_RESERVED_31_30_MASK | DDR_PHY_ACBDLR1_PARBD_MASK | DDR_PHY_ACBDLR1_RESERVED_23_22_MASK | DDR_PHY_ACBDLR1_A16BD_MASK | DDR_PHY_ACBDLR1_RESERVED_15_14_MASK | DDR_PHY_ACBDLR1_A17BD_MASK | DDR_PHY_ACBDLR1_RESERVED_7_6_MASK | DDR_PHY_ACBDLR1_ACTBD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_7_6 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_PARBD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_A16BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_A17BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_ACTBD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR1_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Delay select for the BDL on ACTN. + * PSU_DDR_PHY_ACBDLR1_ACTBD 0x0 - /*Register : ACBDLR2 @ 0XFD080548

+ * AC Bit Delay Line Register 1 + * (OFFSET, MASK, VALUE) (0XFD080544, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR1_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_31_30 0x0 + /* + * Register : ACBDLR2 @ 0XFD080548 - Delay select for the BDL on BG[1]. - PSU_DDR_PHY_ACBDLR2_BG1BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_23_22 0x0 + * Delay select for the BDL on BG[1]. + * PSU_DDR_PHY_ACBDLR2_BG1BD 0x0 - Delay select for the BDL on BG[0]. - PSU_DDR_PHY_ACBDLR2_BG0BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_23_22 0x0 - Reser.ved Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_15_14 0x0 + * Delay select for the BDL on BG[0]. + * PSU_DDR_PHY_ACBDLR2_BG0BD 0x0 - Delay select for the BDL on BA[1]. - PSU_DDR_PHY_ACBDLR2_BA1BD 0x0 + * Reser.ved Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_7_6 0x0 + * Delay select for the BDL on BA[1]. + * PSU_DDR_PHY_ACBDLR2_BA1BD 0x0 - Delay select for the BDL on BA[0]. - PSU_DDR_PHY_ACBDLR2_BA0BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_7_6 0x0 - AC Bit Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080548, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR2_RESERVED_31_30_MASK | DDR_PHY_ACBDLR2_BG1BD_MASK | DDR_PHY_ACBDLR2_RESERVED_23_22_MASK | DDR_PHY_ACBDLR2_BG0BD_MASK | DDR_PHY_ACBDLR2_RESERVED_15_14_MASK | DDR_PHY_ACBDLR2_BA1BD_MASK | DDR_PHY_ACBDLR2_RESERVED_7_6_MASK | DDR_PHY_ACBDLR2_BA0BD_MASK | 0 ); + * Delay select for the BDL on BA[0]. + * PSU_DDR_PHY_ACBDLR2_BA0BD 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BG1BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BG0BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BA1BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BA0BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * AC Bit Delay Line Register 2 + * (OFFSET, MASK, VALUE) (0XFD080548, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR2_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - /*Register : ACBDLR6 @ 0XFD080558

+ /* + * Register : ACBDLR6 @ 0XFD080558 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_31_30 0x0 - Delay select for the BDL on Address A[3]. - PSU_DDR_PHY_ACBDLR6_A03BD 0x0 + * Delay select for the BDL on Address A[3]. + * PSU_DDR_PHY_ACBDLR6_A03BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[2]. - PSU_DDR_PHY_ACBDLR6_A02BD 0x0 + * Delay select for the BDL on Address A[2]. + * PSU_DDR_PHY_ACBDLR6_A02BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_15_14 0x0 - Delay select for the BDL on Address A[1]. - PSU_DDR_PHY_ACBDLR6_A01BD 0x0 + * Delay select for the BDL on Address A[1]. + * PSU_DDR_PHY_ACBDLR6_A01BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_7_6 0x0 - Delay select for the BDL on Address A[0]. - PSU_DDR_PHY_ACBDLR6_A00BD 0x0 + * Delay select for the BDL on Address A[0]. + * PSU_DDR_PHY_ACBDLR6_A00BD 0x0 - AC Bit Delay Line Register 6 - (OFFSET, MASK, VALUE) (0XFD080558, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR6_RESERVED_31_30_MASK | DDR_PHY_ACBDLR6_A03BD_MASK | DDR_PHY_ACBDLR6_RESERVED_23_22_MASK | DDR_PHY_ACBDLR6_A02BD_MASK | DDR_PHY_ACBDLR6_RESERVED_15_14_MASK | DDR_PHY_ACBDLR6_A01BD_MASK | DDR_PHY_ACBDLR6_RESERVED_7_6_MASK | DDR_PHY_ACBDLR6_A00BD_MASK | 0 ); + * AC Bit Delay Line Register 6 + * (OFFSET, MASK, VALUE) (0XFD080558, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR6_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A03BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A02BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A01BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A00BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR6_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : ACBDLR7 @ 0XFD08055C - /*Register : ACBDLR7 @ 0XFD08055C

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_31_30 0x0 + * Delay select for the BDL on Address A[7]. + * PSU_DDR_PHY_ACBDLR7_A07BD 0x0 - Delay select for the BDL on Address A[7]. - PSU_DDR_PHY_ACBDLR7_A07BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_23_22 0x0 + * Delay select for the BDL on Address A[6]. + * PSU_DDR_PHY_ACBDLR7_A06BD 0x0 - Delay select for the BDL on Address A[6]. - PSU_DDR_PHY_ACBDLR7_A06BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_15_14 0x0 + * Delay select for the BDL on Address A[5]. + * PSU_DDR_PHY_ACBDLR7_A05BD 0x0 - Delay select for the BDL on Address A[5]. - PSU_DDR_PHY_ACBDLR7_A05BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_7_6 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_7_6 0x0 + * Delay select for the BDL on Address A[4]. + * PSU_DDR_PHY_ACBDLR7_A04BD 0x0 - Delay select for the BDL on Address A[4]. - PSU_DDR_PHY_ACBDLR7_A04BD 0x0 + * AC Bit Delay Line Register 7 + * (OFFSET, MASK, VALUE) (0XFD08055C, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR7_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - AC Bit Delay Line Register 7 - (OFFSET, MASK, VALUE) (0XFD08055C, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR7_RESERVED_31_30_MASK | DDR_PHY_ACBDLR7_A07BD_MASK | DDR_PHY_ACBDLR7_RESERVED_23_22_MASK | DDR_PHY_ACBDLR7_A06BD_MASK | DDR_PHY_ACBDLR7_RESERVED_15_14_MASK | DDR_PHY_ACBDLR7_A05BD_MASK | DDR_PHY_ACBDLR7_RESERVED_7_6_MASK | DDR_PHY_ACBDLR7_A04BD_MASK | 0 ); + /* + * Register : ACBDLR8 @ 0XFD080560 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A07BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A06BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A05BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A04BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR7_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_31_30 0x0 - /*Register : ACBDLR8 @ 0XFD080560

+ * Delay select for the BDL on Address A[11]. + * PSU_DDR_PHY_ACBDLR8_A11BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[11]. - PSU_DDR_PHY_ACBDLR8_A11BD 0x0 + * Delay select for the BDL on Address A[10]. + * PSU_DDR_PHY_ACBDLR8_A10BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_15_14 0x0 - Delay select for the BDL on Address A[10]. - PSU_DDR_PHY_ACBDLR8_A10BD 0x0 + * Delay select for the BDL on Address A[9]. + * PSU_DDR_PHY_ACBDLR8_A09BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_7_6 0x0 - Delay select for the BDL on Address A[9]. - PSU_DDR_PHY_ACBDLR8_A09BD 0x0 + * Delay select for the BDL on Address A[8]. + * PSU_DDR_PHY_ACBDLR8_A08BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_7_6 0x0 + * AC Bit Delay Line Register 8 + * (OFFSET, MASK, VALUE) (0XFD080560, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR8_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Delay select for the BDL on Address A[8]. - PSU_DDR_PHY_ACBDLR8_A08BD 0x0 + /* + * Register : ACBDLR9 @ 0XFD080564 - AC Bit Delay Line Register 8 - (OFFSET, MASK, VALUE) (0XFD080560, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR8_RESERVED_31_30_MASK | DDR_PHY_ACBDLR8_A11BD_MASK | DDR_PHY_ACBDLR8_RESERVED_23_22_MASK | DDR_PHY_ACBDLR8_A10BD_MASK | DDR_PHY_ACBDLR8_RESERVED_15_14_MASK | DDR_PHY_ACBDLR8_A09BD_MASK | DDR_PHY_ACBDLR8_RESERVED_7_6_MASK | DDR_PHY_ACBDLR8_A08BD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A11BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A10BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A09BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A08BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR8_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Delay select for the BDL on Address A[15]. + * PSU_DDR_PHY_ACBDLR9_A15BD 0x0 - /*Register : ACBDLR9 @ 0XFD080564

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_31_30 0x0 + * Delay select for the BDL on Address A[14]. + * PSU_DDR_PHY_ACBDLR9_A14BD 0x0 - Delay select for the BDL on Address A[15]. - PSU_DDR_PHY_ACBDLR9_A15BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_23_22 0x0 + * Delay select for the BDL on Address A[13]. + * PSU_DDR_PHY_ACBDLR9_A13BD 0x0 - Delay select for the BDL on Address A[14]. - PSU_DDR_PHY_ACBDLR9_A14BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_7_6 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_15_14 0x0 + * Delay select for the BDL on Address A[12]. + * PSU_DDR_PHY_ACBDLR9_A12BD 0x0 - Delay select for the BDL on Address A[13]. - PSU_DDR_PHY_ACBDLR9_A13BD 0x0 + * AC Bit Delay Line Register 9 + * (OFFSET, MASK, VALUE) (0XFD080564, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR9_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_7_6 0x0 + /* + * Register : ZQCR @ 0XFD080680 - Delay select for the BDL on Address A[12]. - PSU_DDR_PHY_ACBDLR9_A12BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ZQCR_RESERVED_31_26 0x0 - AC Bit Delay Line Register 9 - (OFFSET, MASK, VALUE) (0XFD080564, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR9_RESERVED_31_30_MASK | DDR_PHY_ACBDLR9_A15BD_MASK | DDR_PHY_ACBDLR9_RESERVED_23_22_MASK | DDR_PHY_ACBDLR9_A14BD_MASK | DDR_PHY_ACBDLR9_RESERVED_15_14_MASK | DDR_PHY_ACBDLR9_A13BD_MASK | DDR_PHY_ACBDLR9_RESERVED_7_6_MASK | DDR_PHY_ACBDLR9_A12BD_MASK | 0 ); + * ZQ VREF Range + * PSU_DDR_PHY_ZQCR_ZQREFISELRANGE 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A15BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A14BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A13BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A12BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR9_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Programmable Wait for Frequency B + * PSU_DDR_PHY_ZQCR_PGWAIT_FRQB 0x11 - /*Register : ZQCR @ 0XFD080680

+ * Programmable Wait for Frequency A + * PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x15 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ZQCR_RESERVED_31_26 0x0 + * ZQ VREF Pad Enable + * PSU_DDR_PHY_ZQCR_ZQREFPEN 0x0 - ZQ VREF Range - PSU_DDR_PHY_ZQCR_ZQREFISELRANGE 0x0 + * ZQ Internal VREF Enable + * PSU_DDR_PHY_ZQCR_ZQREFIEN 0x1 - Programmable Wait for Frequency B - PSU_DDR_PHY_ZQCR_PGWAIT_FRQB 0x11 + * Choice of termination mode + * PSU_DDR_PHY_ZQCR_ODT_MODE 0x1 - Programmable Wait for Frequency A - PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x11 + * Force ZCAL VT update + * PSU_DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE 0x0 - ZQ VREF Pad Enable - PSU_DDR_PHY_ZQCR_ZQREFPEN 0x0 + * IO VT Drift Limit + * PSU_DDR_PHY_ZQCR_IODLMT 0x2 - ZQ Internal VREF Enable - PSU_DDR_PHY_ZQCR_ZQREFIEN 0x1 + * Averaging algorithm enable, if set, enables averaging algorithm + * PSU_DDR_PHY_ZQCR_AVGEN 0x1 - Choice of termination mode - PSU_DDR_PHY_ZQCR_ODT_MODE 0x1 + * Maximum number of averaging rounds to be used by averaging algorithm + * PSU_DDR_PHY_ZQCR_AVGMAX 0x2 - Force ZCAL VT update - PSU_DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE 0x0 + * ZQ Calibration Type + * PSU_DDR_PHY_ZQCR_ZCALT 0x0 - IO VT Drift Limit - PSU_DDR_PHY_ZQCR_IODLMT 0x2 + * ZQ Power Down + * PSU_DDR_PHY_ZQCR_ZQPD 0x0 - Averaging algorithm enable, if set, enables averaging algorithm - PSU_DDR_PHY_ZQCR_AVGEN 0x1 + * ZQ Impedance Control Register + * (OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008AAA58U) + */ + PSU_Mask_Write(DDR_PHY_ZQCR_OFFSET, 0xFFFFFFFFU, 0x008AAA58U); +/*##################################################################### */ - Maximum number of averaging rounds to be used by averaging algorithm - PSU_DDR_PHY_ZQCR_AVGMAX 0x2 + /* + * Register : ZQ0PR0 @ 0XFD080684 - ZQ Calibration Type - PSU_DDR_PHY_ZQCR_ZCALT 0x0 + * Pull-down drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PD_DRV_ZDEN 0x0 - ZQ Power Down - PSU_DDR_PHY_ZQCR_ZQPD 0x0 + * Pull-up drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PU_DRV_ZDEN 0x0 - ZQ Impedance Control Register - (OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008A2A58U) - RegMask = (DDR_PHY_ZQCR_RESERVED_31_26_MASK | DDR_PHY_ZQCR_ZQREFISELRANGE_MASK | DDR_PHY_ZQCR_PGWAIT_FRQB_MASK | DDR_PHY_ZQCR_PGWAIT_FRQA_MASK | DDR_PHY_ZQCR_ZQREFPEN_MASK | DDR_PHY_ZQCR_ZQREFIEN_MASK | DDR_PHY_ZQCR_ODT_MODE_MASK | DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK | DDR_PHY_ZQCR_IODLMT_MASK | DDR_PHY_ZQCR_AVGEN_MASK | DDR_PHY_ZQCR_AVGMAX_MASK | DDR_PHY_ZQCR_ZCALT_MASK | DDR_PHY_ZQCR_ZQPD_MASK | 0 ); + * Pull-down termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PD_ODT_ZDEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQCR_RESERVED_31_26_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT - | 0x00000011U << DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT - | 0x00000011U << DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQREFPEN_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_ZQREFIEN_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_ODT_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT - | 0x00000002U << DDR_PHY_ZQCR_IODLMT_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_AVGEN_SHIFT - | 0x00000002U << DDR_PHY_ZQCR_AVGMAX_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZCALT_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQPD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQCR_OFFSET ,0xFFFFFFFFU ,0x008A2A58U); - /*############################################################################################################################ */ + * Pull-up termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PU_ODT_ZDEN 0x0 - /*Register : ZQ0PR0 @ 0XFD080684

+ * Calibration segment bypass + * PSU_DDR_PHY_ZQ0PR0_ZSEGBYP 0x0 - Pull-down drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PD_DRV_ZDEN 0x0 + * VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB + * PSU_DDR_PHY_ZQ0PR0_ZLE_MODE 0x0 - Pull-up drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PU_DRV_ZDEN 0x0 + * Termination adjustment + * PSU_DDR_PHY_ZQ0PR0_ODT_ADJUST 0x0 - Pull-down termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PD_ODT_ZDEN 0x0 + * Pulldown drive strength adjustment + * PSU_DDR_PHY_ZQ0PR0_PD_DRV_ADJUST 0x0 - Pull-up termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PU_ODT_ZDEN 0x0 + * Pullup drive strength adjustment + * PSU_DDR_PHY_ZQ0PR0_PU_DRV_ADJUST 0x0 - Calibration segment bypass - PSU_DDR_PHY_ZQ0PR0_ZSEGBYP 0x0 + * DRAM Impedance Divide Ratio + * PSU_DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT 0x7 - VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB - PSU_DDR_PHY_ZQ0PR0_ZLE_MODE 0x0 + * HOST Impedance Divide Ratio + * PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x9 - Termination adjustment - PSU_DDR_PHY_ZQ0PR0_ODT_ADJUST 0x0 + * Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) + * PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD 0xd - Pulldown drive strength adjustment - PSU_DDR_PHY_ZQ0PR0_PD_DRV_ADJUST 0x0 + * Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) + * PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU 0xd - Pullup drive strength adjustment - PSU_DDR_PHY_ZQ0PR0_PU_DRV_ADJUST 0x0 + * ZQ n Impedance Control Program Register 0 + * (OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000079DDU) + */ + PSU_Mask_Write(DDR_PHY_ZQ0PR0_OFFSET, 0xFFFFFFFFU, 0x000079DDU); +/*##################################################################### */ - DRAM Impedance Divide Ratio - PSU_DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT 0x7 + /* + * Register : ZQ0OR0 @ 0XFD080694 - HOST Impedance Divide Ratio - PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x7 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR0_RESERVED_31_26 0x0 - Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD 0xd + * Override value for the pull-up output impedance + * PSU_DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD 0x1e1 - Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU 0xd + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR0_RESERVED_15_10 0x0 - ZQ n Impedance Control Program Register 0 - (OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000077DDU) - RegMask = (DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK | DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK | DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK | DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK | DDR_PHY_ZQ0PR0_ZSEGBYP_MASK | DDR_PHY_ZQ0PR0_ZLE_MODE_MASK | DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK | DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK | DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK | DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK | DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK | DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK | DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK | 0 ); + * Override value for the pull-down output impedance + * PSU_DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD 0x210 - RegVal = ((0x00000000U << DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT - | 0x00000007U << DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT - | 0x00000007U << DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT - | 0x0000000DU << DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT - | 0x0000000DU << DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0PR0_OFFSET ,0xFFFFFFFFU ,0x000077DDU); - /*############################################################################################################################ */ + * ZQ n Impedance Control Override Data Register 0 + * (OFFSET, MASK, VALUE) (0XFD080694, 0xFFFFFFFFU ,0x01E10210U) + */ + PSU_Mask_Write(DDR_PHY_ZQ0OR0_OFFSET, 0xFFFFFFFFU, 0x01E10210U); +/*##################################################################### */ - /*Register : ZQ0OR0 @ 0XFD080694

+ /* + * Register : ZQ0OR1 @ 0XFD080698 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR0_RESERVED_31_26 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR1_RESERVED_31_26 0x0 - Override value for the pull-up output impedance - PSU_DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD 0x1e1 + * Override value for the pull-up termination + * PSU_DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD 0x1e1 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR0_RESERVED_15_10 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR1_RESERVED_15_10 0x0 - Override value for the pull-down output impedance - PSU_DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD 0x210 + * Override value for the pull-down termination + * PSU_DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD 0x0 - ZQ n Impedance Control Override Data Register 0 - (OFFSET, MASK, VALUE) (0XFD080694, 0xFFFFFFFFU ,0x01E10210U) - RegMask = (DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK | DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK | DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK | DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT - | 0x000001E1U << DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT - | 0x00000210U << DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0OR0_OFFSET ,0xFFFFFFFFU ,0x01E10210U); - /*############################################################################################################################ */ + * ZQ n Impedance Control Override Data Register 1 + * (OFFSET, MASK, VALUE) (0XFD080698, 0xFFFFFFFFU ,0x01E10000U) + */ + PSU_Mask_Write(DDR_PHY_ZQ0OR1_OFFSET, 0xFFFFFFFFU, 0x01E10000U); +/*##################################################################### */ - /*Register : ZQ0OR1 @ 0XFD080698

+ /* + * Register : ZQ1PR0 @ 0XFD0806A4 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR1_RESERVED_31_26 0x0 + * Pull-down drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PD_DRV_ZDEN 0x0 - Override value for the pull-up termination - PSU_DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD 0x1e1 + * Pull-up drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PU_DRV_ZDEN 0x0 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR1_RESERVED_15_10 0x0 + * Pull-down termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PD_ODT_ZDEN 0x0 - Override value for the pull-down termination - PSU_DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD 0x0 + * Pull-up termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PU_ODT_ZDEN 0x0 - ZQ n Impedance Control Override Data Register 1 - (OFFSET, MASK, VALUE) (0XFD080698, 0xFFFFFFFFU ,0x01E10000U) - RegMask = (DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK | DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK | DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK | DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK | 0 ); + * Calibration segment bypass + * PSU_DDR_PHY_ZQ1PR0_ZSEGBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT - | 0x000001E1U << DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0OR1_OFFSET ,0xFFFFFFFFU ,0x01E10000U); - /*############################################################################################################################ */ + * VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB + * PSU_DDR_PHY_ZQ1PR0_ZLE_MODE 0x0 - /*Register : ZQ1PR0 @ 0XFD0806A4

+ * Termination adjustment + * PSU_DDR_PHY_ZQ1PR0_ODT_ADJUST 0x0 - Pull-down drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PD_DRV_ZDEN 0x0 + * Pulldown drive strength adjustment + * PSU_DDR_PHY_ZQ1PR0_PD_DRV_ADJUST 0x1 - Pull-up drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PU_DRV_ZDEN 0x0 + * Pullup drive strength adjustment + * PSU_DDR_PHY_ZQ1PR0_PU_DRV_ADJUST 0x0 - Pull-down termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PD_ODT_ZDEN 0x0 + * DRAM Impedance Divide Ratio + * PSU_DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT 0x7 - Pull-up termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PU_ODT_ZDEN 0x0 + * HOST Impedance Divide Ratio + * PSU_DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT 0xb - Calibration segment bypass - PSU_DDR_PHY_ZQ1PR0_ZSEGBYP 0x0 + * Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) + * PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD 0xd - VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB - PSU_DDR_PHY_ZQ1PR0_ZLE_MODE 0x0 + * Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) + * PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU 0xb - Termination adjustment - PSU_DDR_PHY_ZQ1PR0_ODT_ADJUST 0x0 + * ZQ n Impedance Control Program Register 0 + * (OFFSET, MASK, VALUE) (0XFD0806A4, 0xFFFFFFFFU ,0x00087BDBU) + */ + PSU_Mask_Write(DDR_PHY_ZQ1PR0_OFFSET, 0xFFFFFFFFU, 0x00087BDBU); +/*##################################################################### */ - Pulldown drive strength adjustment - PSU_DDR_PHY_ZQ1PR0_PD_DRV_ADJUST 0x1 + /* + * Register : DX0GCR0 @ 0XFD080700 - Pullup drive strength adjustment - PSU_DDR_PHY_ZQ1PR0_PU_DRV_ADJUST 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX0GCR0_CALBYP 0x0 - DRAM Impedance Divide Ratio - PSU_DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT 0x7 + * Master Delay Line Enable + * PSU_DDR_PHY_DX0GCR0_MDLEN 0x1 - HOST Impedance Divide Ratio - PSU_DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT 0xb + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX0GCR0_CODTSHFT 0x0 - Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD 0xd + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX0GCR0_DQSDCC 0x0 - Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU 0xb + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX0GCR0_RDDLY 0x8 - ZQ n Impedance Control Program Register 0 - (OFFSET, MASK, VALUE) (0XFD0806A4, 0xFFFFFFFFU ,0x00087BDBU) - RegMask = (DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK | DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK | DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK | DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK | DDR_PHY_ZQ1PR0_ZSEGBYP_MASK | DDR_PHY_ZQ1PR0_ZLE_MODE_MASK | DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK | DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK | DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK | DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK | DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK | DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK | DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_19_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT - | 0x00000001U << DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT - | 0x00000007U << DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT - | 0x0000000BU << DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT - | 0x0000000DU << DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT - | 0x0000000BU << DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ1PR0_OFFSET ,0xFFFFFFFFU ,0x00087BDBU); - /*############################################################################################################################ */ + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSNSEPDR 0x0 - /*Register : DX0GCR0 @ 0XFD080700

+ * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSSEPDR 0x0 - Calibration Bypass - PSU_DDR_PHY_DX0GCR0_CALBYP 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX0GCR0_RTTOAL 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX0GCR0_MDLEN 0x1 + * RTT Output Hold + * PSU_DDR_PHY_DX0GCR0_RTTOH 0x3 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX0GCR0_CODTSHFT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX0GCR0_CPDRSHFT 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX0GCR0_DQSDCC 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX0GCR0_DQSRPD 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX0GCR0_RDDLY 0x8 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSGPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_4 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSNSEPDR 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX0GCR0_DQSGODT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSSEPDR 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX0GCR0_DQSGOE 0x1 - RTT On Additive Latency - PSU_DDR_PHY_DX0GCR0_RTTOAL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_1_0 0x0 - RTT Output Hold - PSU_DDR_PHY_DX0GCR0_RTTOH 0x3 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080700, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Configurable PDR Phase Shift - PSU_DDR_PHY_DX0GCR0_CPDRSHFT 0x0 + /* + * Register : DX0GCR4 @ 0XFD080710 - DQSR Power Down - PSU_DDR_PHY_DX0GCR0_DQSRPD 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX0GCR4_RESERVED_31_29 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSGPDR 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX0GCR4_DXREFPEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_4 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX0GCR4_DXREFEEN 0x3 - DQSG On-Die Termination - PSU_DDR_PHY_DX0GCR0_DQSGODT 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX0GCR4_DXREFSEN 0x1 - DQSG Output Enable - PSU_DDR_PHY_DX0GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR4_RESERVED_24 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_1_0 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX0GCR4_DXREFESELRANGE 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080700, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX0GCR0_CALBYP_MASK | DDR_PHY_DX0GCR0_MDLEN_MASK | DDR_PHY_DX0GCR0_CODTSHFT_MASK | DDR_PHY_DX0GCR0_DQSDCC_MASK | DDR_PHY_DX0GCR0_RDDLY_MASK | DDR_PHY_DX0GCR0_RESERVED_19_14_MASK | DDR_PHY_DX0GCR0_DQSNSEPDR_MASK | DDR_PHY_DX0GCR0_DQSSEPDR_MASK | DDR_PHY_DX0GCR0_RTTOAL_MASK | DDR_PHY_DX0GCR0_RTTOH_MASK | DDR_PHY_DX0GCR0_CPDRSHFT_MASK | DDR_PHY_DX0GCR0_DQSRPD_MASK | DDR_PHY_DX0GCR0_DQSGPDR_MASK | DDR_PHY_DX0GCR0_RESERVED_4_MASK | DDR_PHY_DX0GCR0_DQSGODT_MASK | DDR_PHY_DX0GCR0_DQSGOE_MASK | DDR_PHY_DX0GCR0_RESERVED_1_0_MASK | 0 ); + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX0GCR4_DXREFESEL 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX0GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX0GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ - - /*Register : DX0GCR4 @ 0XFD080710

- - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX0GCR4_RESERVED_31_29 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX0GCR4_DXREFSSELRANGE 0x1 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX0GCR4_DXREFPEN 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX0GCR4_DXREFSSEL 0x30 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX0GCR4_DXREFEEN 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR4_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX0GCR4_DXREFSEN 0x1 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX0GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR4_RESERVED_24 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX0GCR4_DXREFIMON 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX0GCR4_DXREFESELRANGE 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080710, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Byte Lane External VREF Select - PSU_DDR_PHY_DX0GCR4_DXREFESEL 0x0 + /* + * Register : DX0GCR5 @ 0XFD080714 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX0GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_31 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX0GCR4_DXREFSSEL 0x30 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR3 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR4_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_23 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX0GCR4_DXREFIEN 0xf + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR2 0x9 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX0GCR4_DXREFIMON 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_15 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080710, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX0GCR4_RESERVED_31_29_MASK | DDR_PHY_DX0GCR4_DXREFPEN_MASK | DDR_PHY_DX0GCR4_DXREFEEN_MASK | DDR_PHY_DX0GCR4_DXREFSEN_MASK | DDR_PHY_DX0GCR4_RESERVED_24_MASK | DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX0GCR4_DXREFESEL_MASK | DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX0GCR4_DXREFSSEL_MASK | DDR_PHY_DX0GCR4_RESERVED_7_6_MASK | DDR_PHY_DX0GCR4_DXREFIEN_MASK | DDR_PHY_DX0GCR4_DXREFIMON_MASK | 0 ); + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x55 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX0GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX0GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_7 0x0 - /*Register : DX0GCR5 @ 0XFD080714

+ * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x55 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_31 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX0GCR5_DXREFISELR3 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_23 0x0 - - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX0GCR5_DXREFISELR2 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_15 0x0 - - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x4f - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_7 0x0 - - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x4f + /* + * Register : DX0GCR6 @ 0XFD080718 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX0GCR5_RESERVED_31_MASK | DDR_PHY_DX0GCR5_DXREFISELR3_MASK | DDR_PHY_DX0GCR5_RESERVED_23_MASK | DDR_PHY_DX0GCR5_DXREFISELR2_MASK | DDR_PHY_DX0GCR5_RESERVED_15_MASK | DDR_PHY_DX0GCR5_DXREFISELR1_MASK | DDR_PHY_DX0GCR5_RESERVED_7_MASK | DDR_PHY_DX0GCR5_DXREFISELR0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR3 0x9 - /*Register : DX0GCR6 @ 0XFD080718

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_23_22 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_31_30 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR2 0x9 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_15_14 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_23_22 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR1 0x2b - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_7_6 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_15_14 0x0 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR0 0x2b - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR1 0x2b + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080718, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_7_6 0x0 + /* + * Register : DX1GCR0 @ 0XFD080800 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR0 0x2b + * Calibration Bypass + * PSU_DDR_PHY_DX1GCR0_CALBYP 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080718, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX0GCR6_RESERVED_31_30_MASK | DDR_PHY_DX0GCR6_DXDQVREFR3_MASK | DDR_PHY_DX0GCR6_RESERVED_23_22_MASK | DDR_PHY_DX0GCR6_DXDQVREFR2_MASK | DDR_PHY_DX0GCR6_RESERVED_15_14_MASK | DDR_PHY_DX0GCR6_DXDQVREFR1_MASK | DDR_PHY_DX0GCR6_RESERVED_7_6_MASK | DDR_PHY_DX0GCR6_DXDQVREFR0_MASK | 0 ); + * Master Delay Line Enable + * PSU_DDR_PHY_DX1GCR0_MDLEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX1GCR0_CODTSHFT 0x0 - /*Register : DX0LCDLR2 @ 0XFD080788

+ * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX1GCR0_DQSDCC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_31_25 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX1GCR0_RDDLY 0x8 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_24_16 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_19_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_15_9 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSNSEPDR 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX0LCDLR2_DQSGD 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSSEPDR 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080788, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX0LCDLR2_DQSGD_MASK | 0 ); + * RTT On Additive Latency + * PSU_DDR_PHY_DX1GCR0_RTTOAL 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * RTT Output Hold + * PSU_DDR_PHY_DX1GCR0_RTTOH 0x3 - /*Register : DX0GTR0 @ 0XFD0807C0

+ * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX1GCR0_CPDRSHFT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_31_24 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX1GCR0_DQSRPD 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX0GTR0_WDQSL 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSGPDR 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0GTR0_RESERVED_23_20 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_4 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX0GTR0_WLSL 0x2 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX1GCR0_DQSGODT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_15_13 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX1GCR0_DQSGOE 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0GTR0_RESERVED_12_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_1_0 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_7_5 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080800, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DQS Gating System Latency - PSU_DDR_PHY_DX0GTR0_DGSL 0x0 + /* + * Register : DX1GCR4 @ 0XFD080810 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0807C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX0GTR0_RESERVED_31_24_MASK | DDR_PHY_DX0GTR0_WDQSL_MASK | DDR_PHY_DX0GTR0_RESERVED_23_20_MASK | DDR_PHY_DX0GTR0_WLSL_MASK | DDR_PHY_DX0GTR0_RESERVED_15_13_MASK | DDR_PHY_DX0GTR0_RESERVED_12_8_MASK | DDR_PHY_DX0GTR0_RESERVED_7_5_MASK | DDR_PHY_DX0GTR0_DGSL_MASK | 0 ); + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX1GCR4_RESERVED_31_29 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX0GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX1GCR4_DXREFPEN 0x0 - /*Register : DX1GCR0 @ 0XFD080800

+ * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX1GCR4_DXREFEEN 0x3 - Calibration Bypass - PSU_DDR_PHY_DX1GCR0_CALBYP 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX1GCR4_DXREFSEN 0x1 - Master Delay Line Enable - PSU_DDR_PHY_DX1GCR0_MDLEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR4_RESERVED_24 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX1GCR0_CODTSHFT 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX1GCR4_DXREFESELRANGE 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX1GCR0_DQSDCC 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX1GCR4_DXREFESEL 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX1GCR0_RDDLY 0x8 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX1GCR4_DXREFSSELRANGE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_19_14 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX1GCR4_DXREFSSEL 0x30 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSNSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR4_RESERVED_7_6 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSSEPDR 0x0 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX1GCR4_DXREFIEN 0xf - RTT On Additive Latency - PSU_DDR_PHY_DX1GCR0_RTTOAL 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX1GCR4_DXREFIMON 0x0 - RTT Output Hold - PSU_DDR_PHY_DX1GCR0_RTTOH 0x3 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080810, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Configurable PDR Phase Shift - PSU_DDR_PHY_DX1GCR0_CPDRSHFT 0x0 + /* + * Register : DX1GCR5 @ 0XFD080814 - DQSR Power Down - PSU_DDR_PHY_DX1GCR0_DQSRPD 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_31 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSGPDR 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_23 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX1GCR0_DQSGODT 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR2 0x9 - DQSG Output Enable - PSU_DDR_PHY_DX1GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_15 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_1_0 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x55 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080800, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX1GCR0_CALBYP_MASK | DDR_PHY_DX1GCR0_MDLEN_MASK | DDR_PHY_DX1GCR0_CODTSHFT_MASK | DDR_PHY_DX1GCR0_DQSDCC_MASK | DDR_PHY_DX1GCR0_RDDLY_MASK | DDR_PHY_DX1GCR0_RESERVED_19_14_MASK | DDR_PHY_DX1GCR0_DQSNSEPDR_MASK | DDR_PHY_DX1GCR0_DQSSEPDR_MASK | DDR_PHY_DX1GCR0_RTTOAL_MASK | DDR_PHY_DX1GCR0_RTTOH_MASK | DDR_PHY_DX1GCR0_CPDRSHFT_MASK | DDR_PHY_DX1GCR0_DQSRPD_MASK | DDR_PHY_DX1GCR0_DQSGPDR_MASK | DDR_PHY_DX1GCR0_RESERVED_4_MASK | DDR_PHY_DX1GCR0_DQSGODT_MASK | DDR_PHY_DX1GCR0_DQSGOE_MASK | DDR_PHY_DX1GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_7 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX1GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX1GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x55 - /*Register : DX1GCR4 @ 0XFD080810

+ * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX1GCR4_RESERVED_31_29 0x0 + /* + * Register : DX1GCR6 @ 0XFD080818 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX1GCR4_DXREFPEN 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_31_30 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX1GCR4_DXREFEEN 0x3 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR3 0x9 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX1GCR4_DXREFSEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_23_22 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR4_RESERVED_24 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR2 0x9 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX1GCR4_DXREFESELRANGE 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_15_14 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX1GCR4_DXREFESEL 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR1 0x2b - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX1GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX1GCR4_DXREFSSEL 0x30 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR4_RESERVED_7_6 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080818, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX1GCR4_DXREFIEN 0xf + /* + * Register : DX2GCR0 @ 0XFD080900 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX1GCR4_DXREFIMON 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX2GCR0_CALBYP 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080810, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX1GCR4_RESERVED_31_29_MASK | DDR_PHY_DX1GCR4_DXREFPEN_MASK | DDR_PHY_DX1GCR4_DXREFEEN_MASK | DDR_PHY_DX1GCR4_DXREFSEN_MASK | DDR_PHY_DX1GCR4_RESERVED_24_MASK | DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX1GCR4_DXREFESEL_MASK | DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX1GCR4_DXREFSSEL_MASK | DDR_PHY_DX1GCR4_RESERVED_7_6_MASK | DDR_PHY_DX1GCR4_DXREFIEN_MASK | DDR_PHY_DX1GCR4_DXREFIMON_MASK | 0 ); + * Master Delay Line Enable + * PSU_DDR_PHY_DX2GCR0_MDLEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX1GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX1GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX2GCR0_CODTSHFT 0x0 - /*Register : DX1GCR5 @ 0XFD080814

+ * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX2GCR0_DQSDCC 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_31 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX2GCR0_RDDLY 0x8 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX1GCR5_DXREFISELR3 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_23 0x0 - - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX1GCR5_DXREFISELR2 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_15 0x0 - - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x4f - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_7 0x0 - - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x4f + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_19_14 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX1GCR5_RESERVED_31_MASK | DDR_PHY_DX1GCR5_DXREFISELR3_MASK | DDR_PHY_DX1GCR5_RESERVED_23_MASK | DDR_PHY_DX1GCR5_DXREFISELR2_MASK | DDR_PHY_DX1GCR5_RESERVED_15_MASK | DDR_PHY_DX1GCR5_DXREFISELR1_MASK | DDR_PHY_DX1GCR5_RESERVED_7_MASK | DDR_PHY_DX1GCR5_DXREFISELR0_MASK | 0 ); + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSNSEPDR 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSSEPDR 0x0 - /*Register : DX1GCR6 @ 0XFD080818

+ * RTT On Additive Latency + * PSU_DDR_PHY_DX2GCR0_RTTOAL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_31_30 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX2GCR0_RTTOH 0x3 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR3 0x9 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX2GCR0_CPDRSHFT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_23_22 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX2GCR0_DQSRPD 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR2 0x9 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSGPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_4 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR1 0x2b + * DQSG On-Die Termination + * PSU_DDR_PHY_DX2GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_7_6 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX2GCR0_DQSGOE 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR0 0x2b + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_1_0 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080818, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX1GCR6_RESERVED_31_30_MASK | DDR_PHY_DX1GCR6_DXDQVREFR3_MASK | DDR_PHY_DX1GCR6_RESERVED_23_22_MASK | DDR_PHY_DX1GCR6_DXDQVREFR2_MASK | DDR_PHY_DX1GCR6_RESERVED_15_14_MASK | DDR_PHY_DX1GCR6_DXDQVREFR1_MASK | DDR_PHY_DX1GCR6_RESERVED_7_6_MASK | DDR_PHY_DX1GCR6_DXDQVREFR0_MASK | 0 ); + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080900, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + /* + * Register : DX2GCR1 @ 0XFD080904 - /*Register : DX1LCDLR2 @ 0XFD080888

+ * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX2GCR1_DXPDRMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_31_25 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX2GCR1_RESERVED_15 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_24_16 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX2GCR1_QSNSEL 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_15_9 0x0 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX2GCR1_QSSEL 0x1 - Read DQS Gating Delay - PSU_DDR_PHY_DX1LCDLR2_DQSGD 0x0 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX2GCR1_OEEN 0x1 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080888, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX1LCDLR2_DQSGD_MASK | 0 ); + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX2GCR1_PDREN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX2GCR1_TEEN 0x1 - /*Register : DX1GTR0 @ 0XFD0808C0

+ * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX2GCR1_DSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_31_24 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX2GCR1_DMEN 0x1 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX1GTR0_WDQSL 0x0 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX2GCR1_DQEN 0xff - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1GTR0_RESERVED_23_20 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080904, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Write Leveling System Latency - PSU_DDR_PHY_DX1GTR0_WLSL 0x2 + /* + * Register : DX2GCR4 @ 0XFD080910 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_15_13 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX2GCR4_RESERVED_31_29 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1GTR0_RESERVED_12_8 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX2GCR4_DXREFPEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_7_5 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX2GCR4_DXREFEEN 0x3 - DQS Gating System Latency - PSU_DDR_PHY_DX1GTR0_DGSL 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX2GCR4_DXREFSEN 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0808C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX1GTR0_RESERVED_31_24_MASK | DDR_PHY_DX1GTR0_WDQSL_MASK | DDR_PHY_DX1GTR0_RESERVED_23_20_MASK | DDR_PHY_DX1GTR0_WLSL_MASK | DDR_PHY_DX1GTR0_RESERVED_15_13_MASK | DDR_PHY_DX1GTR0_RESERVED_12_8_MASK | DDR_PHY_DX1GTR0_RESERVED_7_5_MASK | DDR_PHY_DX1GTR0_DGSL_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR4_RESERVED_24 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX1GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX2GCR4_DXREFESELRANGE 0x0 - /*Register : DX2GCR0 @ 0XFD080900

+ * Byte Lane External VREF Select + * PSU_DDR_PHY_DX2GCR4_DXREFESEL 0x0 - Calibration Bypass - PSU_DDR_PHY_DX2GCR0_CALBYP 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX2GCR4_DXREFSSELRANGE 0x1 - Master Delay Line Enable - PSU_DDR_PHY_DX2GCR0_MDLEN 0x1 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX2GCR4_DXREFSSEL 0x30 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX2GCR0_CODTSHFT 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR4_RESERVED_7_6 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX2GCR0_DQSDCC 0x0 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX2GCR4_DXREFIEN 0xf - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX2GCR0_RDDLY 0x8 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX2GCR4_DXREFIMON 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_19_14 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080910, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSNSEPDR 0x0 + /* + * Register : DX2GCR5 @ 0XFD080914 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_31 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX2GCR0_RTTOAL 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR3 0x9 - RTT Output Hold - PSU_DDR_PHY_DX2GCR0_RTTOH 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_23 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX2GCR0_CPDRSHFT 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR2 0x9 - DQSR Power Down - PSU_DDR_PHY_DX2GCR0_DQSRPD 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_15 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSGPDR 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x55 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_7 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX2GCR0_DQSGODT 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x55 - DQSG Output Enable - PSU_DDR_PHY_DX2GCR0_DQSGOE 0x1 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_1_0 0x0 + /* + * Register : DX2GCR6 @ 0XFD080918 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080900, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX2GCR0_CALBYP_MASK | DDR_PHY_DX2GCR0_MDLEN_MASK | DDR_PHY_DX2GCR0_CODTSHFT_MASK | DDR_PHY_DX2GCR0_DQSDCC_MASK | DDR_PHY_DX2GCR0_RDDLY_MASK | DDR_PHY_DX2GCR0_RESERVED_19_14_MASK | DDR_PHY_DX2GCR0_DQSNSEPDR_MASK | DDR_PHY_DX2GCR0_DQSSEPDR_MASK | DDR_PHY_DX2GCR0_RTTOAL_MASK | DDR_PHY_DX2GCR0_RTTOH_MASK | DDR_PHY_DX2GCR0_CPDRSHFT_MASK | DDR_PHY_DX2GCR0_DQSRPD_MASK | DDR_PHY_DX2GCR0_DQSGPDR_MASK | DDR_PHY_DX2GCR0_RESERVED_4_MASK | DDR_PHY_DX2GCR0_DQSGODT_MASK | DDR_PHY_DX2GCR0_DQSGOE_MASK | DDR_PHY_DX2GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX2GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX2GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR3 0x9 - /*Register : DX2GCR1 @ 0XFD080904

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_23_22 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX2GCR1_DXPDRMODE 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX2GCR1_RESERVED_15 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_15_14 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX2GCR1_QSNSEL 0x1 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR1 0x2b - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX2GCR1_QSSEL 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_7_6 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX2GCR1_OEEN 0x1 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR0 0x2b - Enables PDR in a byte lane - PSU_DDR_PHY_DX2GCR1_PDREN 0x1 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080918, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX2GCR1_TEEN 0x1 + /* + * Register : DX3GCR0 @ 0XFD080A00 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX2GCR1_DSEN 0x1 + * Calibration Bypass + * PSU_DDR_PHY_DX3GCR0_CALBYP 0x0 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX2GCR1_DMEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX3GCR0_MDLEN 0x1 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX2GCR1_DQEN 0xff + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX3GCR0_CODTSHFT 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080904, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX2GCR1_DXPDRMODE_MASK | DDR_PHY_DX2GCR1_RESERVED_15_MASK | DDR_PHY_DX2GCR1_QSNSEL_MASK | DDR_PHY_DX2GCR1_QSSEL_MASK | DDR_PHY_DX2GCR1_OEEN_MASK | DDR_PHY_DX2GCR1_PDREN_MASK | DDR_PHY_DX2GCR1_TEEN_MASK | DDR_PHY_DX2GCR1_DSEN_MASK | DDR_PHY_DX2GCR1_DMEN_MASK | DDR_PHY_DX2GCR1_DQEN_MASK | 0 ); + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX3GCR0_DQSDCC 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX2GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX3GCR0_RDDLY 0x8 - /*Register : DX2GCR4 @ 0XFD080910

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_19_14 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX2GCR4_RESERVED_31_29 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSNSEPDR 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX2GCR4_DXREFPEN 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSSEPDR 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX2GCR4_DXREFEEN 0x3 + * RTT On Additive Latency + * PSU_DDR_PHY_DX3GCR0_RTTOAL 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX2GCR4_DXREFSEN 0x1 + * RTT Output Hold + * PSU_DDR_PHY_DX3GCR0_RTTOH 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR4_RESERVED_24 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX3GCR0_CPDRSHFT 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX2GCR4_DXREFESELRANGE 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX3GCR0_DQSRPD 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX2GCR4_DXREFESEL 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSGPDR 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX2GCR4_DXREFSSELRANGE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_4 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX2GCR4_DXREFSSEL 0x30 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX3GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR4_RESERVED_7_6 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX3GCR0_DQSGOE 0x1 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX2GCR4_DXREFIEN 0xf + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_1_0 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX2GCR4_DXREFIMON 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080A00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080910, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX2GCR4_RESERVED_31_29_MASK | DDR_PHY_DX2GCR4_DXREFPEN_MASK | DDR_PHY_DX2GCR4_DXREFEEN_MASK | DDR_PHY_DX2GCR4_DXREFSEN_MASK | DDR_PHY_DX2GCR4_RESERVED_24_MASK | DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX2GCR4_DXREFESEL_MASK | DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX2GCR4_DXREFSSEL_MASK | DDR_PHY_DX2GCR4_RESERVED_7_6_MASK | DDR_PHY_DX2GCR4_DXREFIEN_MASK | DDR_PHY_DX2GCR4_DXREFIMON_MASK | 0 ); + /* + * Register : DX3GCR1 @ 0XFD080A04 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX2GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX2GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX3GCR1_DXPDRMODE 0x0 - /*Register : DX2GCR5 @ 0XFD080914

+ * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX3GCR1_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_31 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX3GCR1_QSNSEL 0x1 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX2GCR5_DXREFISELR3 0x9 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX3GCR1_QSSEL 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_23 0x0 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX3GCR1_OEEN 0x1 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX2GCR5_DXREFISELR2 0x9 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX3GCR1_PDREN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_15 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX3GCR1_TEEN 0x1 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x4f + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX3GCR1_DSEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_7 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX3GCR1_DMEN 0x1 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x4f + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX3GCR1_DQEN 0xff - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX2GCR5_RESERVED_31_MASK | DDR_PHY_DX2GCR5_DXREFISELR3_MASK | DDR_PHY_DX2GCR5_RESERVED_23_MASK | DDR_PHY_DX2GCR5_DXREFISELR2_MASK | DDR_PHY_DX2GCR5_RESERVED_15_MASK | DDR_PHY_DX2GCR5_DXREFISELR1_MASK | DDR_PHY_DX2GCR5_RESERVED_7_MASK | DDR_PHY_DX2GCR5_DXREFISELR0_MASK | 0 ); + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080A04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX2GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + /* + * Register : DX3GCR4 @ 0XFD080A10 - /*Register : DX2GCR6 @ 0XFD080918

+ * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX3GCR4_RESERVED_31_29 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_31_30 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX3GCR4_DXREFPEN 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR3 0x9 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX3GCR4_DXREFEEN 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_23_22 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX3GCR4_DXREFSEN 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR4_RESERVED_24 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_15_14 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX3GCR4_DXREFESELRANGE 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR1 0x2b + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX3GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_7_6 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX3GCR4_DXREFSSELRANGE 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR0 0x2b + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX3GCR4_DXREFSSEL 0x30 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080918, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX2GCR6_RESERVED_31_30_MASK | DDR_PHY_DX2GCR6_DXDQVREFR3_MASK | DDR_PHY_DX2GCR6_RESERVED_23_22_MASK | DDR_PHY_DX2GCR6_DXDQVREFR2_MASK | DDR_PHY_DX2GCR6_RESERVED_15_14_MASK | DDR_PHY_DX2GCR6_DXDQVREFR1_MASK | DDR_PHY_DX2GCR6_RESERVED_7_6_MASK | DDR_PHY_DX2GCR6_DXDQVREFR0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR4_RESERVED_7_6 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX3GCR4_DXREFIEN 0xf - /*Register : DX2LCDLR2 @ 0XFD080988

+ * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX3GCR4_DXREFIMON 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_31_25 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080A10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_24_16 0x0 + /* + * Register : DX3GCR5 @ 0XFD080A14 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_15_9 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_31 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX2LCDLR2_DQSGD 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR3 0x9 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080988, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX2LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_23 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR2 0x9 - /*Register : DX2GTR0 @ 0XFD0809C0

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_15 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_31_24 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x55 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX2GTR0_WDQSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_7 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2GTR0_RESERVED_23_20 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x55 - Write Leveling System Latency - PSU_DDR_PHY_DX2GTR0_WLSL 0x2 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_15_13 0x0 + /* + * Register : DX3GCR6 @ 0XFD080A18 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2GTR0_RESERVED_12_8 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_7_5 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR3 0x9 - DQS Gating System Latency - PSU_DDR_PHY_DX2GTR0_DGSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_23_22 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0809C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX2GTR0_RESERVED_31_24_MASK | DDR_PHY_DX2GTR0_WDQSL_MASK | DDR_PHY_DX2GTR0_RESERVED_23_20_MASK | DDR_PHY_DX2GTR0_WLSL_MASK | DDR_PHY_DX2GTR0_RESERVED_15_13_MASK | DDR_PHY_DX2GTR0_RESERVED_12_8_MASK | DDR_PHY_DX2GTR0_RESERVED_7_5_MASK | DDR_PHY_DX2GTR0_DGSL_MASK | 0 ); + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR2 0x9 - RegVal = ((0x00000000U << DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX2GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_15_14 0x0 - /*Register : DX3GCR0 @ 0XFD080A00

+ * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR1 0x2b - Calibration Bypass - PSU_DDR_PHY_DX3GCR0_CALBYP 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_7_6 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX3GCR0_MDLEN 0x1 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR0 0x2b - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX3GCR0_CODTSHFT 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080A18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DQS Duty Cycle Correction - PSU_DDR_PHY_DX3GCR0_DQSDCC 0x0 + /* + * Register : DX4GCR0 @ 0XFD080B00 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX3GCR0_RDDLY 0x8 + * Calibration Bypass + * PSU_DDR_PHY_DX4GCR0_CALBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_19_14 0x0 + * Master Delay Line Enable + * PSU_DDR_PHY_DX4GCR0_MDLEN 0x1 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSNSEPDR 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX4GCR0_CODTSHFT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSSEPDR 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX4GCR0_DQSDCC 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX3GCR0_RTTOAL 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX4GCR0_RDDLY 0x8 - RTT Output Hold - PSU_DDR_PHY_DX3GCR0_RTTOH 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_19_14 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX3GCR0_CPDRSHFT 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSNSEPDR 0x0 - DQSR Power Down - PSU_DDR_PHY_DX3GCR0_DQSRPD 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSSEPDR 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSGPDR 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX4GCR0_RTTOAL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_4 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX4GCR0_RTTOH 0x3 - DQSG On-Die Termination - PSU_DDR_PHY_DX3GCR0_DQSGODT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX4GCR0_CPDRSHFT 0x0 - DQSG Output Enable - PSU_DDR_PHY_DX3GCR0_DQSGOE 0x1 + * DQSR Power Down + * PSU_DDR_PHY_DX4GCR0_DQSRPD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_1_0 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSGPDR 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080A00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX3GCR0_CALBYP_MASK | DDR_PHY_DX3GCR0_MDLEN_MASK | DDR_PHY_DX3GCR0_CODTSHFT_MASK | DDR_PHY_DX3GCR0_DQSDCC_MASK | DDR_PHY_DX3GCR0_RDDLY_MASK | DDR_PHY_DX3GCR0_RESERVED_19_14_MASK | DDR_PHY_DX3GCR0_DQSNSEPDR_MASK | DDR_PHY_DX3GCR0_DQSSEPDR_MASK | DDR_PHY_DX3GCR0_RTTOAL_MASK | DDR_PHY_DX3GCR0_RTTOH_MASK | DDR_PHY_DX3GCR0_CPDRSHFT_MASK | DDR_PHY_DX3GCR0_DQSRPD_MASK | DDR_PHY_DX3GCR0_DQSGPDR_MASK | DDR_PHY_DX3GCR0_RESERVED_4_MASK | DDR_PHY_DX3GCR0_DQSGODT_MASK | DDR_PHY_DX3GCR0_DQSGOE_MASK | DDR_PHY_DX3GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_4 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX3GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX3GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DQSG On-Die Termination + * PSU_DDR_PHY_DX4GCR0_DQSGODT 0x0 - /*Register : DX3GCR1 @ 0XFD080A04

+ * DQSG Output Enable + * PSU_DDR_PHY_DX4GCR0_DQSGOE 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX3GCR1_DXPDRMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_1_0 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX3GCR1_RESERVED_15 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080B00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX3GCR1_QSNSEL 0x1 + /* + * Register : DX4GCR1 @ 0XFD080B04 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX3GCR1_QSSEL 0x1 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX4GCR1_DXPDRMODE 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX3GCR1_OEEN 0x1 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX4GCR1_RESERVED_15 0x0 - Enables PDR in a byte lane - PSU_DDR_PHY_DX3GCR1_PDREN 0x1 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX4GCR1_QSNSEL 0x1 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX3GCR1_TEEN 0x1 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX4GCR1_QSSEL 0x1 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX3GCR1_DSEN 0x1 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX4GCR1_OEEN 0x1 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX3GCR1_DMEN 0x1 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX4GCR1_PDREN 0x1 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX3GCR1_DQEN 0xff + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX4GCR1_TEEN 0x1 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080A04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX3GCR1_DXPDRMODE_MASK | DDR_PHY_DX3GCR1_RESERVED_15_MASK | DDR_PHY_DX3GCR1_QSNSEL_MASK | DDR_PHY_DX3GCR1_QSSEL_MASK | DDR_PHY_DX3GCR1_OEEN_MASK | DDR_PHY_DX3GCR1_PDREN_MASK | DDR_PHY_DX3GCR1_TEEN_MASK | DDR_PHY_DX3GCR1_DSEN_MASK | DDR_PHY_DX3GCR1_DMEN_MASK | DDR_PHY_DX3GCR1_DQEN_MASK | 0 ); + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX4GCR1_DSEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX3GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX4GCR1_DMEN 0x1 - /*Register : DX3GCR4 @ 0XFD080A10

+ * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX4GCR1_DQEN 0xff - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX3GCR4_RESERVED_31_29 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080B04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX3GCR4_DXREFPEN 0x0 + /* + * Register : DX4GCR4 @ 0XFD080B10 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX3GCR4_DXREFEEN 0x3 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX4GCR4_RESERVED_31_29 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX3GCR4_DXREFSEN 0x1 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX4GCR4_DXREFPEN 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR4_RESERVED_24 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX4GCR4_DXREFEEN 0x3 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX3GCR4_DXREFESELRANGE 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX4GCR4_DXREFSEN 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX3GCR4_DXREFESEL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR4_RESERVED_24 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX3GCR4_DXREFSSELRANGE 0x1 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX4GCR4_DXREFESELRANGE 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX3GCR4_DXREFSSEL 0x30 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX4GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR4_RESERVED_7_6 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX4GCR4_DXREFSSELRANGE 0x1 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX3GCR4_DXREFIEN 0xf + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX4GCR4_DXREFSSEL 0x30 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX3GCR4_DXREFIMON 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR4_RESERVED_7_6 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080A10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX3GCR4_RESERVED_31_29_MASK | DDR_PHY_DX3GCR4_DXREFPEN_MASK | DDR_PHY_DX3GCR4_DXREFEEN_MASK | DDR_PHY_DX3GCR4_DXREFSEN_MASK | DDR_PHY_DX3GCR4_RESERVED_24_MASK | DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX3GCR4_DXREFESEL_MASK | DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX3GCR4_DXREFSSEL_MASK | DDR_PHY_DX3GCR4_RESERVED_7_6_MASK | DDR_PHY_DX3GCR4_DXREFIEN_MASK | DDR_PHY_DX3GCR4_DXREFIMON_MASK | 0 ); + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX4GCR4_DXREFIEN 0xf - RegVal = ((0x00000000U << DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX3GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX3GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX4GCR4_DXREFIMON 0x0 - /*Register : DX3GCR5 @ 0XFD080A14

+ * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080B10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_31 0x0 + /* + * Register : DX4GCR5 @ 0XFD080B14 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX3GCR5_DXREFISELR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_31 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_23 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR3 0x9 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX3GCR5_DXREFISELR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_23 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_15 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR2 0x9 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_7 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x55 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_7 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX3GCR5_RESERVED_31_MASK | DDR_PHY_DX3GCR5_DXREFISELR3_MASK | DDR_PHY_DX3GCR5_RESERVED_23_MASK | DDR_PHY_DX3GCR5_DXREFISELR2_MASK | DDR_PHY_DX3GCR5_RESERVED_15_MASK | DDR_PHY_DX3GCR5_DXREFISELR1_MASK | DDR_PHY_DX3GCR5_RESERVED_7_MASK | DDR_PHY_DX3GCR5_DXREFISELR0_MASK | 0 ); + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x55 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - /*Register : DX3GCR6 @ 0XFD080A18

+ /* + * Register : DX4GCR6 @ 0XFD080B18 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_31_30 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_31_30 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR3 0x9 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR3 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_23_22 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_23_22 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR2 0x9 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_15_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_15_14 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR1 0x2b + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR0 0x2b + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR0 0x2b - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080A18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX3GCR6_RESERVED_31_30_MASK | DDR_PHY_DX3GCR6_DXDQVREFR3_MASK | DDR_PHY_DX3GCR6_RESERVED_23_22_MASK | DDR_PHY_DX3GCR6_DXDQVREFR2_MASK | DDR_PHY_DX3GCR6_RESERVED_15_14_MASK | DDR_PHY_DX3GCR6_DXDQVREFR1_MASK | DDR_PHY_DX3GCR6_RESERVED_7_6_MASK | DDR_PHY_DX3GCR6_DXDQVREFR0_MASK | 0 ); + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080B18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + /* + * Register : DX5GCR0 @ 0XFD080C00 - /*Register : DX3LCDLR2 @ 0XFD080A88

+ * Calibration Bypass + * PSU_DDR_PHY_DX5GCR0_CALBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_31_25 0x0 + * Master Delay Line Enable + * PSU_DDR_PHY_DX5GCR0_MDLEN 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_24_16 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX5GCR0_CODTSHFT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_15_9 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX5GCR0_DQSDCC 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX3LCDLR2_DQSGD 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX5GCR0_RDDLY 0x8 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080A88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX3LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_19_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSNSEPDR 0x0 - /*Register : DX3GTR0 @ 0XFD080AC0

+ * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSSEPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_31_24 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX5GCR0_RTTOAL 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX3GTR0_WDQSL 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX5GCR0_RTTOH 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3GTR0_RESERVED_23_20 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX5GCR0_CPDRSHFT 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX3GTR0_WLSL 0x2 + * DQSR Power Down + * PSU_DDR_PHY_DX5GCR0_DQSRPD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_15_13 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSGPDR 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3GTR0_RESERVED_12_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_4 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_7_5 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX5GCR0_DQSGODT 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX3GTR0_DGSL 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX5GCR0_DQSGOE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080AC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX3GTR0_RESERVED_31_24_MASK | DDR_PHY_DX3GTR0_WDQSL_MASK | DDR_PHY_DX3GTR0_RESERVED_23_20_MASK | DDR_PHY_DX3GTR0_WLSL_MASK | DDR_PHY_DX3GTR0_RESERVED_15_13_MASK | DDR_PHY_DX3GTR0_RESERVED_12_8_MASK | DDR_PHY_DX3GTR0_RESERVED_7_5_MASK | DDR_PHY_DX3GTR0_DGSL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_1_0 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX3GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080C00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - /*Register : DX4GCR0 @ 0XFD080B00

+ /* + * Register : DX5GCR1 @ 0XFD080C04 - Calibration Bypass - PSU_DDR_PHY_DX4GCR0_CALBYP 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX5GCR1_DXPDRMODE 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX4GCR0_MDLEN 0x1 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX5GCR1_RESERVED_15 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX4GCR0_CODTSHFT 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX5GCR1_QSNSEL 0x1 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX4GCR0_DQSDCC 0x0 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX5GCR1_QSSEL 0x1 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX4GCR0_RDDLY 0x8 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX5GCR1_OEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_19_14 0x0 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX5GCR1_PDREN 0x1 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSNSEPDR 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX5GCR1_TEEN 0x1 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSSEPDR 0x0 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX5GCR1_DSEN 0x1 - RTT On Additive Latency - PSU_DDR_PHY_DX4GCR0_RTTOAL 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX5GCR1_DMEN 0x1 - RTT Output Hold - PSU_DDR_PHY_DX4GCR0_RTTOH 0x3 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX5GCR1_DQEN 0xff - Configurable PDR Phase Shift - PSU_DDR_PHY_DX4GCR0_CPDRSHFT 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080C04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - DQSR Power Down - PSU_DDR_PHY_DX4GCR0_DQSRPD 0x0 + /* + * Register : DX5GCR4 @ 0XFD080C10 - DQSG Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSGPDR 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX5GCR4_RESERVED_31_29 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_4 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX5GCR4_DXREFPEN 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX4GCR0_DQSGODT 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX5GCR4_DXREFEEN 0x3 - DQSG Output Enable - PSU_DDR_PHY_DX4GCR0_DQSGOE 0x1 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX5GCR4_DXREFSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_1_0 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR4_RESERVED_24 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080B00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX4GCR0_CALBYP_MASK | DDR_PHY_DX4GCR0_MDLEN_MASK | DDR_PHY_DX4GCR0_CODTSHFT_MASK | DDR_PHY_DX4GCR0_DQSDCC_MASK | DDR_PHY_DX4GCR0_RDDLY_MASK | DDR_PHY_DX4GCR0_RESERVED_19_14_MASK | DDR_PHY_DX4GCR0_DQSNSEPDR_MASK | DDR_PHY_DX4GCR0_DQSSEPDR_MASK | DDR_PHY_DX4GCR0_RTTOAL_MASK | DDR_PHY_DX4GCR0_RTTOH_MASK | DDR_PHY_DX4GCR0_CPDRSHFT_MASK | DDR_PHY_DX4GCR0_DQSRPD_MASK | DDR_PHY_DX4GCR0_DQSGPDR_MASK | DDR_PHY_DX4GCR0_RESERVED_4_MASK | DDR_PHY_DX4GCR0_DQSGODT_MASK | DDR_PHY_DX4GCR0_DQSGOE_MASK | DDR_PHY_DX4GCR0_RESERVED_1_0_MASK | 0 ); + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX5GCR4_DXREFESELRANGE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX4GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX4GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX5GCR4_DXREFESEL 0x0 - /*Register : DX4GCR1 @ 0XFD080B04

+ * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX5GCR4_DXREFSSELRANGE 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX4GCR1_DXPDRMODE 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX5GCR4_DXREFSSEL 0x30 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX4GCR1_RESERVED_15 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR4_RESERVED_7_6 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX4GCR1_QSNSEL 0x1 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX5GCR4_DXREFIEN 0xf - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX4GCR1_QSSEL 0x1 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX5GCR4_DXREFIMON 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX4GCR1_OEEN 0x1 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080C10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Enables PDR in a byte lane - PSU_DDR_PHY_DX4GCR1_PDREN 0x1 + /* + * Register : DX5GCR5 @ 0XFD080C14 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX4GCR1_TEEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_31 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX4GCR1_DSEN 0x1 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR3 0x9 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX4GCR1_DMEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_23 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX4GCR1_DQEN 0xff + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR2 0x9 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080B04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX4GCR1_DXPDRMODE_MASK | DDR_PHY_DX4GCR1_RESERVED_15_MASK | DDR_PHY_DX4GCR1_QSNSEL_MASK | DDR_PHY_DX4GCR1_QSSEL_MASK | DDR_PHY_DX4GCR1_OEEN_MASK | DDR_PHY_DX4GCR1_PDREN_MASK | DDR_PHY_DX4GCR1_TEEN_MASK | DDR_PHY_DX4GCR1_DSEN_MASK | DDR_PHY_DX4GCR1_DMEN_MASK | DDR_PHY_DX4GCR1_DQEN_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_15 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX4GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x55 - /*Register : DX4GCR4 @ 0XFD080B10

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_7 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX4GCR4_RESERVED_31_29 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x55 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX4GCR4_DXREFPEN 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX4GCR4_DXREFEEN 0x3 + /* + * Register : DX5GCR6 @ 0XFD080C18 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX4GCR4_DXREFSEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_31_30 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR4_RESERVED_24 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR3 0x9 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX4GCR4_DXREFESELRANGE 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_23_22 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX4GCR4_DXREFESEL 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR2 0x9 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX4GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_15_14 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX4GCR4_DXREFSSEL 0x30 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR4_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_7_6 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX4GCR4_DXREFIEN 0xf + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR0 0x2b - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX4GCR4_DXREFIMON 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080C18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080B10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX4GCR4_RESERVED_31_29_MASK | DDR_PHY_DX4GCR4_DXREFPEN_MASK | DDR_PHY_DX4GCR4_DXREFEEN_MASK | DDR_PHY_DX4GCR4_DXREFSEN_MASK | DDR_PHY_DX4GCR4_RESERVED_24_MASK | DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX4GCR4_DXREFESEL_MASK | DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX4GCR4_DXREFSSEL_MASK | DDR_PHY_DX4GCR4_RESERVED_7_6_MASK | DDR_PHY_DX4GCR4_DXREFIEN_MASK | DDR_PHY_DX4GCR4_DXREFIMON_MASK | 0 ); + /* + * Register : DX6GCR0 @ 0XFD080D00 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX4GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX4GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Calibration Bypass + * PSU_DDR_PHY_DX6GCR0_CALBYP 0x0 - /*Register : DX4GCR5 @ 0XFD080B14

+ * Master Delay Line Enable + * PSU_DDR_PHY_DX6GCR0_MDLEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_31 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX6GCR0_CODTSHFT 0x0 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX4GCR5_DXREFISELR3 0x9 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX6GCR0_DQSDCC 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_23 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX6GCR0_RDDLY 0x8 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX4GCR5_DXREFISELR2 0x9 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_19_14 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_15 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSNSEPDR 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x4f + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSSEPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_7 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX6GCR0_RTTOAL 0x0 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x4f + * RTT Output Hold + * PSU_DDR_PHY_DX6GCR0_RTTOH 0x3 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX4GCR5_RESERVED_31_MASK | DDR_PHY_DX4GCR5_DXREFISELR3_MASK | DDR_PHY_DX4GCR5_RESERVED_23_MASK | DDR_PHY_DX4GCR5_DXREFISELR2_MASK | DDR_PHY_DX4GCR5_RESERVED_15_MASK | DDR_PHY_DX4GCR5_DXREFISELR1_MASK | DDR_PHY_DX4GCR5_RESERVED_7_MASK | DDR_PHY_DX4GCR5_DXREFISELR0_MASK | 0 ); + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX6GCR0_CPDRSHFT 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DQSR Power Down + * PSU_DDR_PHY_DX6GCR0_DQSRPD 0x0 - /*Register : DX4GCR6 @ 0XFD080B18

+ * DQSG Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSGPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_4 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR3 0x9 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX6GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_23_22 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX6GCR0_DQSGOE 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR2 0x9 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_1_0 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_15_14 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080D00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR1 0x2b + /* + * Register : DX6GCR1 @ 0XFD080D04 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_7_6 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX6GCR1_DXPDRMODE 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR0 0x2b + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX6GCR1_RESERVED_15 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080B18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX4GCR6_RESERVED_31_30_MASK | DDR_PHY_DX4GCR6_DXDQVREFR3_MASK | DDR_PHY_DX4GCR6_RESERVED_23_22_MASK | DDR_PHY_DX4GCR6_DXDQVREFR2_MASK | DDR_PHY_DX4GCR6_RESERVED_15_14_MASK | DDR_PHY_DX4GCR6_DXDQVREFR1_MASK | DDR_PHY_DX4GCR6_RESERVED_7_6_MASK | DDR_PHY_DX4GCR6_DXDQVREFR0_MASK | 0 ); + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX6GCR1_QSNSEL 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX6GCR1_QSSEL 0x1 - /*Register : DX4LCDLR2 @ 0XFD080B88

+ * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX6GCR1_OEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_31_25 0x0 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX6GCR1_PDREN 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_24_16 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX6GCR1_TEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_15_9 0x0 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX6GCR1_DSEN 0x1 - Read DQS Gating Delay - PSU_DDR_PHY_DX4LCDLR2_DQSGD 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX6GCR1_DMEN 0x1 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080B88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX4LCDLR2_DQSGD_MASK | 0 ); + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX6GCR1_DQEN 0xff - RegVal = ((0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080D04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - /*Register : DX4GTR0 @ 0XFD080BC0

+ /* + * Register : DX6GCR4 @ 0XFD080D10 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_31_24 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX6GCR4_RESERVED_31_29 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX4GTR0_WDQSL 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX6GCR4_DXREFPEN 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4GTR0_RESERVED_23_20 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX6GCR4_DXREFEEN 0x3 - Write Leveling System Latency - PSU_DDR_PHY_DX4GTR0_WLSL 0x2 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX6GCR4_DXREFSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_15_13 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR4_RESERVED_24 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4GTR0_RESERVED_12_8 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX6GCR4_DXREFESELRANGE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_7_5 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX6GCR4_DXREFESEL 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX4GTR0_DGSL 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX6GCR4_DXREFSSELRANGE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080BC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX4GTR0_RESERVED_31_24_MASK | DDR_PHY_DX4GTR0_WDQSL_MASK | DDR_PHY_DX4GTR0_RESERVED_23_20_MASK | DDR_PHY_DX4GTR0_WLSL_MASK | DDR_PHY_DX4GTR0_RESERVED_15_13_MASK | DDR_PHY_DX4GTR0_RESERVED_12_8_MASK | DDR_PHY_DX4GTR0_RESERVED_7_5_MASK | DDR_PHY_DX4GTR0_DGSL_MASK | 0 ); + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX6GCR4_DXREFSSEL 0x30 - RegVal = ((0x00000000U << DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX4GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR4_RESERVED_7_6 0x0 - /*Register : DX5GCR0 @ 0XFD080C00

+ * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX6GCR4_DXREFIEN 0xf - Calibration Bypass - PSU_DDR_PHY_DX5GCR0_CALBYP 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX6GCR4_DXREFIMON 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX5GCR0_MDLEN 0x1 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080D10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX5GCR0_CODTSHFT 0x0 + /* + * Register : DX6GCR5 @ 0XFD080D14 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX5GCR0_DQSDCC 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_31 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX5GCR0_RDDLY 0x8 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_19_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_23 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSNSEPDR 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR2 0x9 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_15 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX5GCR0_RTTOAL 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x55 - RTT Output Hold - PSU_DDR_PHY_DX5GCR0_RTTOH 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_7 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX5GCR0_CPDRSHFT 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x55 - DQSR Power Down - PSU_DDR_PHY_DX5GCR0_DQSRPD 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - DQSG Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSGPDR 0x0 + /* + * Register : DX6GCR6 @ 0XFD080D18 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_31_30 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX5GCR0_DQSGODT 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR3 0x9 - DQSG Output Enable - PSU_DDR_PHY_DX5GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_1_0 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR2 0x9 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080C00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX5GCR0_CALBYP_MASK | DDR_PHY_DX5GCR0_MDLEN_MASK | DDR_PHY_DX5GCR0_CODTSHFT_MASK | DDR_PHY_DX5GCR0_DQSDCC_MASK | DDR_PHY_DX5GCR0_RDDLY_MASK | DDR_PHY_DX5GCR0_RESERVED_19_14_MASK | DDR_PHY_DX5GCR0_DQSNSEPDR_MASK | DDR_PHY_DX5GCR0_DQSSEPDR_MASK | DDR_PHY_DX5GCR0_RTTOAL_MASK | DDR_PHY_DX5GCR0_RTTOH_MASK | DDR_PHY_DX5GCR0_CPDRSHFT_MASK | DDR_PHY_DX5GCR0_DQSRPD_MASK | DDR_PHY_DX5GCR0_DQSGPDR_MASK | DDR_PHY_DX5GCR0_RESERVED_4_MASK | DDR_PHY_DX5GCR0_DQSGODT_MASK | DDR_PHY_DX5GCR0_DQSGOE_MASK | DDR_PHY_DX5GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_15_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX5GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX5GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR1 0x2b - /*Register : DX5GCR1 @ 0XFD080C04

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_7_6 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX5GCR1_DXPDRMODE 0x0 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX5GCR1_RESERVED_15 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080D18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX5GCR1_QSNSEL 0x1 + /* + * Register : DX7GCR0 @ 0XFD080E00 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX5GCR1_QSSEL 0x1 + * Calibration Bypass + * PSU_DDR_PHY_DX7GCR0_CALBYP 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX5GCR1_OEEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX7GCR0_MDLEN 0x1 - Enables PDR in a byte lane - PSU_DDR_PHY_DX5GCR1_PDREN 0x1 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX7GCR0_CODTSHFT 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX5GCR1_TEEN 0x1 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX7GCR0_DQSDCC 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX5GCR1_DSEN 0x1 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX7GCR0_RDDLY 0x8 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX5GCR1_DMEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_19_14 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX5GCR1_DQEN 0xff + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSNSEPDR 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080C04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX5GCR1_DXPDRMODE_MASK | DDR_PHY_DX5GCR1_RESERVED_15_MASK | DDR_PHY_DX5GCR1_QSNSEL_MASK | DDR_PHY_DX5GCR1_QSSEL_MASK | DDR_PHY_DX5GCR1_OEEN_MASK | DDR_PHY_DX5GCR1_PDREN_MASK | DDR_PHY_DX5GCR1_TEEN_MASK | DDR_PHY_DX5GCR1_DSEN_MASK | DDR_PHY_DX5GCR1_DMEN_MASK | DDR_PHY_DX5GCR1_DQEN_MASK | 0 ); + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSSEPDR 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX5GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * RTT On Additive Latency + * PSU_DDR_PHY_DX7GCR0_RTTOAL 0x0 - /*Register : DX5GCR4 @ 0XFD080C10

+ * RTT Output Hold + * PSU_DDR_PHY_DX7GCR0_RTTOH 0x3 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX5GCR4_RESERVED_31_29 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX7GCR0_CPDRSHFT 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX5GCR4_DXREFPEN 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX7GCR0_DQSRPD 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX5GCR4_DXREFEEN 0x3 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSGPDR 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX5GCR4_DXREFSEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_4 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR4_RESERVED_24 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX7GCR0_DQSGODT 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX5GCR4_DXREFESELRANGE 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX7GCR0_DQSGOE 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX5GCR4_DXREFESEL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_1_0 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX5GCR4_DXREFSSELRANGE 0x1 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080E00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX5GCR4_DXREFSSEL 0x30 + /* + * Register : DX7GCR1 @ 0XFD080E04 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR4_RESERVED_7_6 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX7GCR1_DXPDRMODE 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX5GCR4_DXREFIEN 0xf + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX7GCR1_RESERVED_15 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX5GCR4_DXREFIMON 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX7GCR1_QSNSEL 0x1 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080C10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX5GCR4_RESERVED_31_29_MASK | DDR_PHY_DX5GCR4_DXREFPEN_MASK | DDR_PHY_DX5GCR4_DXREFEEN_MASK | DDR_PHY_DX5GCR4_DXREFSEN_MASK | DDR_PHY_DX5GCR4_RESERVED_24_MASK | DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX5GCR4_DXREFESEL_MASK | DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX5GCR4_DXREFSSEL_MASK | DDR_PHY_DX5GCR4_RESERVED_7_6_MASK | DDR_PHY_DX5GCR4_DXREFIEN_MASK | DDR_PHY_DX5GCR4_DXREFIMON_MASK | 0 ); + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX7GCR1_QSSEL 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX5GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX5GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX7GCR1_OEEN 0x1 - /*Register : DX5GCR5 @ 0XFD080C14

+ * Enables PDR in a byte lane + * PSU_DDR_PHY_DX7GCR1_PDREN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_31 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX7GCR1_TEEN 0x1 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX5GCR5_DXREFISELR3 0x9 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX7GCR1_DSEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_23 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX7GCR1_DMEN 0x1 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX5GCR5_DXREFISELR2 0x9 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX7GCR1_DQEN 0xff - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_15 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080E04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x4f + /* + * Register : DX7GCR4 @ 0XFD080E10 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_7 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX7GCR4_RESERVED_31_29 0x0 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x4f + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX7GCR4_DXREFPEN 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX5GCR5_RESERVED_31_MASK | DDR_PHY_DX5GCR5_DXREFISELR3_MASK | DDR_PHY_DX5GCR5_RESERVED_23_MASK | DDR_PHY_DX5GCR5_DXREFISELR2_MASK | DDR_PHY_DX5GCR5_RESERVED_15_MASK | DDR_PHY_DX5GCR5_DXREFISELR1_MASK | DDR_PHY_DX5GCR5_RESERVED_7_MASK | DDR_PHY_DX5GCR5_DXREFISELR0_MASK | 0 ); + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX7GCR4_DXREFEEN 0x3 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX7GCR4_DXREFSEN 0x1 - /*Register : DX5GCR6 @ 0XFD080C18

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR4_RESERVED_24 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_31_30 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX7GCR4_DXREFESELRANGE 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR3 0x9 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX7GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_23_22 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX7GCR4_DXREFSSELRANGE 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR2 0x9 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX7GCR4_DXREFSSEL 0x30 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_15_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR4_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR1 0x2b + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX7GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_7_6 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX7GCR4_DXREFIMON 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR0 0x2b + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080E10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080C18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX5GCR6_RESERVED_31_30_MASK | DDR_PHY_DX5GCR6_DXDQVREFR3_MASK | DDR_PHY_DX5GCR6_RESERVED_23_22_MASK | DDR_PHY_DX5GCR6_DXDQVREFR2_MASK | DDR_PHY_DX5GCR6_RESERVED_15_14_MASK | DDR_PHY_DX5GCR6_DXDQVREFR1_MASK | DDR_PHY_DX5GCR6_RESERVED_7_6_MASK | DDR_PHY_DX5GCR6_DXDQVREFR0_MASK | 0 ); + /* + * Register : DX7GCR5 @ 0XFD080E14 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_31 0x0 - /*Register : DX5LCDLR2 @ 0XFD080C88

+ * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_31_25 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_23 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_24_16 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR2 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_15_9 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_15 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX5LCDLR2_DQSGD 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x55 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080C88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX5LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_7 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x55 - /*Register : DX5GTR0 @ 0XFD080CC0

+ * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_31_24 0x0 + /* + * Register : DX7GCR6 @ 0XFD080E18 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX5GTR0_WDQSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_31_30 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5GTR0_RESERVED_23_20 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR3 0x9 - Write Leveling System Latency - PSU_DDR_PHY_DX5GTR0_WLSL 0x2 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_15_13 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR2 0x9 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5GTR0_RESERVED_12_8 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_7_5 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR1 0x2b - DQS Gating System Latency - PSU_DDR_PHY_DX5GTR0_DGSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_7_6 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080CC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX5GTR0_RESERVED_31_24_MASK | DDR_PHY_DX5GTR0_WDQSL_MASK | DDR_PHY_DX5GTR0_RESERVED_23_20_MASK | DDR_PHY_DX5GTR0_WLSL_MASK | DDR_PHY_DX5GTR0_RESERVED_15_13_MASK | DDR_PHY_DX5GTR0_RESERVED_12_8_MASK | DDR_PHY_DX5GTR0_RESERVED_7_5_MASK | DDR_PHY_DX5GTR0_DGSL_MASK | 0 ); + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR0 0x2b - RegVal = ((0x00000000U << DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX5GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080E18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - /*Register : DX6GCR0 @ 0XFD080D00

+ /* + * Register : DX8GCR0 @ 0XFD080F00 - Calibration Bypass - PSU_DDR_PHY_DX6GCR0_CALBYP 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX8GCR0_CALBYP 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX6GCR0_MDLEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX8GCR0_MDLEN 0x1 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX6GCR0_CODTSHFT 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX8GCR0_CODTSHFT 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX6GCR0_DQSDCC 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX8GCR0_DQSDCC 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX6GCR0_RDDLY 0x8 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX8GCR0_RDDLY 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_19_14 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSNSEPDR 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSNSEPDR 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSSEPDR 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSSEPDR 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX6GCR0_RTTOAL 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX8GCR0_RTTOAL 0x0 - RTT Output Hold - PSU_DDR_PHY_DX6GCR0_RTTOH 0x3 + * RTT Output Hold + * PSU_DDR_PHY_DX8GCR0_RTTOH 0x3 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX6GCR0_CPDRSHFT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX8GCR0_CPDRSHFT 0x0 - DQSR Power Down - PSU_DDR_PHY_DX6GCR0_DQSRPD 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX8GCR0_DQSRPD 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSGPDR 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSGPDR 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_4 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX6GCR0_DQSGODT 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX8GCR0_DQSGODT 0x0 - DQSG Output Enable - PSU_DDR_PHY_DX6GCR0_DQSGOE 0x1 + * DQSG Output Enable + * PSU_DDR_PHY_DX8GCR0_DQSGOE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_1_0 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_1_0 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080D00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX6GCR0_CALBYP_MASK | DDR_PHY_DX6GCR0_MDLEN_MASK | DDR_PHY_DX6GCR0_CODTSHFT_MASK | DDR_PHY_DX6GCR0_DQSDCC_MASK | DDR_PHY_DX6GCR0_RDDLY_MASK | DDR_PHY_DX6GCR0_RESERVED_19_14_MASK | DDR_PHY_DX6GCR0_DQSNSEPDR_MASK | DDR_PHY_DX6GCR0_DQSSEPDR_MASK | DDR_PHY_DX6GCR0_RTTOAL_MASK | DDR_PHY_DX6GCR0_RTTOH_MASK | DDR_PHY_DX6GCR0_CPDRSHFT_MASK | DDR_PHY_DX6GCR0_DQSRPD_MASK | DDR_PHY_DX6GCR0_DQSGPDR_MASK | DDR_PHY_DX6GCR0_RESERVED_4_MASK | DDR_PHY_DX6GCR0_DQSGODT_MASK | DDR_PHY_DX6GCR0_DQSGOE_MASK | DDR_PHY_DX6GCR0_RESERVED_1_0_MASK | 0 ); + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080F00, 0xFFFFFFFFU ,0x40800624U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR0_OFFSET, 0xFFFFFFFFU, 0x40800624U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX6GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX6GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX6GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + /* + * Register : DX8GCR1 @ 0XFD080F04 - /*Register : DX6GCR1 @ 0XFD080D04

+ * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX8GCR1_DXPDRMODE 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX6GCR1_DXPDRMODE 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX8GCR1_RESERVED_15 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX6GCR1_RESERVED_15 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX8GCR1_QSNSEL 0x1 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX6GCR1_QSNSEL 0x1 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX8GCR1_QSSEL 0x1 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX6GCR1_QSSEL 0x1 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX8GCR1_OEEN 0x1 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX6GCR1_OEEN 0x1 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX8GCR1_PDREN 0x1 - Enables PDR in a byte lane - PSU_DDR_PHY_DX6GCR1_PDREN 0x1 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX8GCR1_TEEN 0x1 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX6GCR1_TEEN 0x1 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX8GCR1_DSEN 0x1 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX6GCR1_DSEN 0x1 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX8GCR1_DMEN 0x1 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX6GCR1_DMEN 0x1 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX8GCR1_DQEN 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX6GCR1_DQEN 0xff + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080F04, 0xFFFFFFFFU ,0x00007F00U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR1_OFFSET, 0xFFFFFFFFU, 0x00007F00U); +/*##################################################################### */ - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080D04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX6GCR1_DXPDRMODE_MASK | DDR_PHY_DX6GCR1_RESERVED_15_MASK | DDR_PHY_DX6GCR1_QSNSEL_MASK | DDR_PHY_DX6GCR1_QSSEL_MASK | DDR_PHY_DX6GCR1_OEEN_MASK | DDR_PHY_DX6GCR1_PDREN_MASK | DDR_PHY_DX6GCR1_TEEN_MASK | DDR_PHY_DX6GCR1_DSEN_MASK | DDR_PHY_DX6GCR1_DMEN_MASK | DDR_PHY_DX6GCR1_DQEN_MASK | 0 ); + /* + * Register : DX8GCR4 @ 0XFD080F10 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX6GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX8GCR4_RESERVED_31_29 0x0 - /*Register : DX6GCR4 @ 0XFD080D10

+ * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX8GCR4_DXREFPEN 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX6GCR4_RESERVED_31_29 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX8GCR4_DXREFEEN 0x3 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX6GCR4_DXREFPEN 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX8GCR4_DXREFSEN 0x1 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX6GCR4_DXREFEEN 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR4_RESERVED_24 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX6GCR4_DXREFSEN 0x1 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX8GCR4_DXREFESELRANGE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR4_RESERVED_24 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX8GCR4_DXREFESEL 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX6GCR4_DXREFESELRANGE 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX8GCR4_DXREFSSELRANGE 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX6GCR4_DXREFESEL 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX8GCR4_DXREFSSEL 0x30 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX6GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR4_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX6GCR4_DXREFSSEL 0x30 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX8GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR4_RESERVED_7_6 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX8GCR4_DXREFIMON 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX6GCR4_DXREFIEN 0xf + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080F10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX6GCR4_DXREFIMON 0x0 + /* + * Register : DX8GCR5 @ 0XFD080F14 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080D10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX6GCR4_RESERVED_31_29_MASK | DDR_PHY_DX6GCR4_DXREFPEN_MASK | DDR_PHY_DX6GCR4_DXREFEEN_MASK | DDR_PHY_DX6GCR4_DXREFSEN_MASK | DDR_PHY_DX6GCR4_RESERVED_24_MASK | DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX6GCR4_DXREFESEL_MASK | DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX6GCR4_DXREFSSEL_MASK | DDR_PHY_DX6GCR4_RESERVED_7_6_MASK | DDR_PHY_DX6GCR4_DXREFIEN_MASK | DDR_PHY_DX6GCR4_DXREFIMON_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_31 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX6GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX6GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR3 0x9 - /*Register : DX6GCR5 @ 0XFD080D14

+ * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_23 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_31 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR2 0x9 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX6GCR5_DXREFISELR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_23 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x55 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX6GCR5_DXREFISELR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_7 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_15 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x55 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x4f + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_7 0x0 + /* + * Register : DX8GCR6 @ 0XFD080F18 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_31_30 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX6GCR5_RESERVED_31_MASK | DDR_PHY_DX6GCR5_DXREFISELR3_MASK | DDR_PHY_DX6GCR5_RESERVED_23_MASK | DDR_PHY_DX6GCR5_DXREFISELR2_MASK | DDR_PHY_DX6GCR5_RESERVED_15_MASK | DDR_PHY_DX6GCR5_DXREFISELR1_MASK | DDR_PHY_DX6GCR5_RESERVED_7_MASK | DDR_PHY_DX6GCR5_DXREFISELR0_MASK | 0 ); + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR3 0x9 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_23_22 0x0 - /*Register : DX6GCR6 @ 0XFD080D18

+ * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_31_30 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_15_14 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR3 0x9 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_23_22 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR2 0x9 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_15_14 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080F18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR1 0x2b + /* + * Register : DX8SL0OSC @ 0XFD081400 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_31_30 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR0 0x2b + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXRDCLK 0x2 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080D18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX6GCR6_RESERVED_31_30_MASK | DDR_PHY_DX6GCR6_DXDQVREFR3_MASK | DDR_PHY_DX6GCR6_RESERVED_23_22_MASK | DDR_PHY_DX6GCR6_DXDQVREFR2_MASK | DDR_PHY_DX6GCR6_RESERVED_15_14_MASK | DDR_PHY_DX6GCR6_DXDQVREFR1_MASK | DDR_PHY_DX6GCR6_RESERVED_7_6_MASK | DDR_PHY_DX6GCR6_DXDQVREFR0_MASK | 0 ); + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXDDRCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXCTLCLK 0x2 - /*Register : DX6LCDLR2 @ 0XFD080D88

+ * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL0OSC_CLKLEVEL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_31_25 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL0OSC_LBMODE 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_24_16 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL0OSC_LBGSDQS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_15_9 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL0OSC_LBGDQS 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX6LCDLR2_DQSGD 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL0OSC_LBDQSS 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080D88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX6LCDLR2_DQSGD_MASK | 0 ); + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL0OSC_PHYHRST 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL0OSC_PHYFRST 0x1 - /*Register : DX6GTR0 @ 0XFD080DC0

+ * Delay Line Test Start + * PSU_DDR_PHY_DX8SL0OSC_DLTST 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_31_24 0x0 + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL0OSC_DLTMODE 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX6GTR0_WDQSL 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_12_11 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6GTR0_RESERVED_23_20 0x0 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL0OSC_OSCWDDL 0x3 - Write Leveling System Latency - PSU_DDR_PHY_DX6GTR0_WLSL 0x2 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_8_7 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_15_13 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL0OSC_OSCWDL 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6GTR0_RESERVED_12_8 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL0OSC_OSCDIV 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_7_5 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL0OSC_OSCEN 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX6GTR0_DGSL 0x0 + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081400, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080DC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX6GTR0_RESERVED_31_24_MASK | DDR_PHY_DX6GTR0_WDQSL_MASK | DDR_PHY_DX6GTR0_RESERVED_23_20_MASK | DDR_PHY_DX6GTR0_WLSL_MASK | DDR_PHY_DX6GTR0_RESERVED_15_13_MASK | DDR_PHY_DX6GTR0_RESERVED_12_8_MASK | DDR_PHY_DX6GTR0_RESERVED_7_5_MASK | DDR_PHY_DX6GTR0_DGSL_MASK | 0 ); + /* + * Register : DX8SL0PLLCR0 @ 0XFD081404 - RegVal = ((0x00000000U << DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX6GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * PLL Bypass + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLBYP 0x0 - /*Register : DX7GCR0 @ 0XFD080E00

+ * PLL Reset + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLRST 0x0 - Calibration Bypass - PSU_DDR_PHY_DX7GCR0_CALBYP 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLPD 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX7GCR0_MDLEN 0x1 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL0PLLCR0_RSTOPM 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX7GCR0_CODTSHFT 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL0PLLCR0_FRQSEL 0x1 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX7GCR0_DQSDCC 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL0PLLCR0_RLOCKM 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX7GCR0_RDDLY 0x8 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL0PLLCR0_CPPC 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_19_14 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL0PLLCR0_CPIC 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSNSEPDR 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL0PLLCR0_GSHIFT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSSEPDR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX7GCR0_RTTOAL 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL0PLLCR0_ATOEN 0x0 - RTT Output Hold - PSU_DDR_PHY_DX7GCR0_RTTOH 0x3 + * Analog Test Control + * PSU_DDR_PHY_DX8SL0PLLCR0_ATC 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX7GCR0_CPDRSHFT 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL0PLLCR0_DTC 0x0 - DQSR Power Down - PSU_DDR_PHY_DX7GCR0_DQSRPD 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081404, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - DQSG Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSGPDR 0x0 + /* + * Register : DX8SL0DQSCTL @ 0XFD08141C - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX7GCR0_DQSGODT 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_RRRMODE 0x1 - DQSG Output Enable - PSU_DDR_PHY_DX7GCR0_DQSGOE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_1_0 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_WRRMODE 0x1 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080E00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX7GCR0_CALBYP_MASK | DDR_PHY_DX7GCR0_MDLEN_MASK | DDR_PHY_DX7GCR0_CODTSHFT_MASK | DDR_PHY_DX7GCR0_DQSDCC_MASK | DDR_PHY_DX7GCR0_RDDLY_MASK | DDR_PHY_DX7GCR0_RESERVED_19_14_MASK | DDR_PHY_DX7GCR0_DQSNSEPDR_MASK | DDR_PHY_DX7GCR0_DQSSEPDR_MASK | DDR_PHY_DX7GCR0_RTTOAL_MASK | DDR_PHY_DX7GCR0_RTTOH_MASK | DDR_PHY_DX7GCR0_CPDRSHFT_MASK | DDR_PHY_DX7GCR0_DQSRPD_MASK | DDR_PHY_DX7GCR0_DQSGPDR_MASK | DDR_PHY_DX7GCR0_RESERVED_4_MASK | DDR_PHY_DX7GCR0_DQSGODT_MASK | DDR_PHY_DX7GCR0_DQSGOE_MASK | DDR_PHY_DX7GCR0_RESERVED_1_0_MASK | 0 ); + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSGX 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX7GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX7GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL0DQSCTL_LPPLLPD 0x1 - /*Register : DX7GCR1 @ 0XFD080E04

+ * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL0DQSCTL_LPIOPD 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX7GCR1_DXPDRMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX7GCR1_RESERVED_15 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL0DQSCTL_QSCNTEN 0x1 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX7GCR1_QSNSEL 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_UDQIOM 0x0 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX7GCR1_QSSEL 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX7GCR1_OEEN 0x1 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL0DQSCTL_DXSR 0x3 - Enables PDR in a byte lane - PSU_DDR_PHY_DX7GCR1_PDREN 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSNRES 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX7GCR1_TEEN 0x1 + * DQS Resistor + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSRES 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX7GCR1_DSEN 0x1 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08141C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Enables DM pin in a byte lane - PSU_DDR_PHY_DX7GCR1_DMEN 0x1 + /* + * Register : DX8SL0DXCTL2 @ 0XFD08142C - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX7GCR1_DQEN 0xff + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080E04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX7GCR1_DXPDRMODE_MASK | DDR_PHY_DX7GCR1_RESERVED_15_MASK | DDR_PHY_DX7GCR1_QSNSEL_MASK | DDR_PHY_DX7GCR1_QSSEL_MASK | DDR_PHY_DX7GCR1_OEEN_MASK | DDR_PHY_DX7GCR1_PDREN_MASK | DDR_PHY_DX7GCR1_TEEN_MASK | DDR_PHY_DX7GCR1_DSEN_MASK | DDR_PHY_DX7GCR1_DMEN_MASK | DDR_PHY_DX7GCR1_DQEN_MASK | 0 ); + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_CRDEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX7GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL0DXCTL2_POSOEX 0x0 - /*Register : DX7GCR4 @ 0XFD080E10

+ * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL0DXCTL2_PREOEX 0x1 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX7GCR4_RESERVED_31_29 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_17 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX7GCR4_DXREFPEN 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL0DXCTL2_IOAG 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX7GCR4_DXREFEEN 0x3 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL0DXCTL2_IOLB 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX7GCR4_DXREFSEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR4_RESERVED_24 0x0 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH 0xc - External VREF generator REFSEL range select - PSU_DDR_PHY_DX7GCR4_DXREFESELRANGE 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_RDBI 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX7GCR4_DXREFESEL 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_WDBI 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX7GCR4_DXREFSSELRANGE 0x1 + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL0DXCTL2_PRFBYP 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX7GCR4_DXREFSSEL 0x30 + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL0DXCTL2_RDMODE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR4_RESERVED_7_6 0x0 + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL0DXCTL2_DISRST 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX7GCR4_DXREFIEN 0xf + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL0DXCTL2_DQSGLB 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX7GCR4_DXREFIMON 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_0 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080E10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX7GCR4_RESERVED_31_29_MASK | DDR_PHY_DX7GCR4_DXREFPEN_MASK | DDR_PHY_DX7GCR4_DXREFEEN_MASK | DDR_PHY_DX7GCR4_DXREFSEN_MASK | DDR_PHY_DX7GCR4_RESERVED_24_MASK | DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX7GCR4_DXREFESEL_MASK | DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX7GCR4_DXREFSSEL_MASK | DDR_PHY_DX7GCR4_RESERVED_7_6_MASK | DDR_PHY_DX7GCR4_DXREFIEN_MASK | DDR_PHY_DX7GCR4_DXREFIMON_MASK | 0 ); + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08142C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX7GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX7GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + /* + * Register : DX8SL0IOCR @ 0XFD081430 - /*Register : DX7GCR5 @ 0XFD080E14

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0IOCR_RESERVED_31 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_31 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL0IOCR_DXDACRANGE 0x7 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX7GCR5_DXREFISELR3 0x9 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL0IOCR_DXVREFIOM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_23 0x0 + * DX IO Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXIOM 0x2 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX7GCR5_DXREFISELR2 0x9 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXTXM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_15 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXRXM 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x4f + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081430, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_7 0x0 + /* + * Register : DX8SL1OSC @ 0XFD081440 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x4f + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_31_30 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX7GCR5_RESERVED_31_MASK | DDR_PHY_DX7GCR5_DXREFISELR3_MASK | DDR_PHY_DX7GCR5_RESERVED_23_MASK | DDR_PHY_DX7GCR5_DXREFISELR2_MASK | DDR_PHY_DX7GCR5_RESERVED_15_MASK | DDR_PHY_DX7GCR5_DXREFISELR1_MASK | DDR_PHY_DX7GCR5_RESERVED_7_MASK | DDR_PHY_DX7GCR5_DXREFISELR0_MASK | 0 ); + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXRDCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXDDRCLK 0x2 - /*Register : DX7GCR6 @ 0XFD080E18

+ * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXCTLCLK 0x2 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_31_30 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL1OSC_CLKLEVEL 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR3 0x9 + * Loopback Mode + * PSU_DDR_PHY_DX8SL1OSC_LBMODE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_23_22 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL1OSC_LBGSDQS 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR2 0x9 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL1OSC_LBGDQS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_15_14 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL1OSC_LBDQSS 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR1 0x2b + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL1OSC_PHYHRST 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_7_6 0x0 + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL1OSC_PHYFRST 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR0 0x2b + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL1OSC_DLTST 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080E18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX7GCR6_RESERVED_31_30_MASK | DDR_PHY_DX7GCR6_DXDQVREFR3_MASK | DDR_PHY_DX7GCR6_RESERVED_23_22_MASK | DDR_PHY_DX7GCR6_DXDQVREFR2_MASK | DDR_PHY_DX7GCR6_RESERVED_15_14_MASK | DDR_PHY_DX7GCR6_DXDQVREFR1_MASK | DDR_PHY_DX7GCR6_RESERVED_7_6_MASK | DDR_PHY_DX7GCR6_DXDQVREFR0_MASK | 0 ); + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL1OSC_DLTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_12_11 0x3 - /*Register : DX7LCDLR2 @ 0XFD080E88

+ * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL1OSC_OSCWDDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_31_25 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_8_7 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_24_16 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL1OSC_OSCWDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_15_9 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL1OSC_OSCDIV 0xf - Read DQS Gating Delay - PSU_DDR_PHY_DX7LCDLR2_DQSGD 0xa + * Oscillator Enable + * PSU_DDR_PHY_DX8SL1OSC_OSCEN 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080E88, 0xFFFFFFFFU ,0x0000000AU) - RegMask = (DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX7LCDLR2_DQSGD_MASK | 0 ); + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081440, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT - | 0x0000000AU << DDR_PHY_DX7LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7LCDLR2_OFFSET ,0xFFFFFFFFU ,0x0000000AU); - /*############################################################################################################################ */ + /* + * Register : DX8SL1PLLCR0 @ 0XFD081444 - /*Register : DX7GTR0 @ 0XFD080EC0

+ * PLL Bypass + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_31_24 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLRST 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX7GTR0_WDQSL 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLPD 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7GTR0_RESERVED_23_20 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL1PLLCR0_RSTOPM 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX7GTR0_WLSL 0x2 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL1PLLCR0_FRQSEL 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_15_13 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL1PLLCR0_RLOCKM 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7GTR0_RESERVED_12_8 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL1PLLCR0_CPPC 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_7_5 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL1PLLCR0_CPIC 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX7GTR0_DGSL 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL1PLLCR0_GSHIFT 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080EC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX7GTR0_RESERVED_31_24_MASK | DDR_PHY_DX7GTR0_WDQSL_MASK | DDR_PHY_DX7GTR0_RESERVED_23_20_MASK | DDR_PHY_DX7GTR0_WLSL_MASK | DDR_PHY_DX7GTR0_RESERVED_15_13_MASK | DDR_PHY_DX7GTR0_RESERVED_12_8_MASK | DDR_PHY_DX7GTR0_RESERVED_7_5_MASK | DDR_PHY_DX7GTR0_DGSL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX7GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL1PLLCR0_ATOEN 0x0 - /*Register : DX8GCR0 @ 0XFD080F00

+ * Analog Test Control + * PSU_DDR_PHY_DX8SL1PLLCR0_ATC 0x0 - Calibration Bypass - PSU_DDR_PHY_DX8GCR0_CALBYP 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL1PLLCR0_DTC 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX8GCR0_MDLEN 0x1 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081444, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX8GCR0_CODTSHFT 0x0 + /* + * Register : DX8SL1DQSCTL @ 0XFD08145C - DQS Duty Cycle Correction - PSU_DDR_PHY_DX8GCR0_DQSDCC 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX8GCR0_RDDLY 0x8 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_RRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSNSEPDR 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_WRRMODE 0x1 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSSEPDR 0x0 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSGX 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX8GCR0_RTTOAL 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL1DQSCTL_LPPLLPD 0x1 - RTT Output Hold - PSU_DDR_PHY_DX8GCR0_RTTOH 0x3 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL1DQSCTL_LPIOPD 0x1 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX8GCR0_CPDRSHFT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15 0x0 - DQSR Power Down - PSU_DDR_PHY_DX8GCR0_DQSRPD 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL1DQSCTL_QSCNTEN 0x1 - DQSG Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSGPDR 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_UDQIOM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX8GCR0_DQSGODT 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL1DQSCTL_DXSR 0x3 - DQSG Output Enable - PSU_DDR_PHY_DX8GCR0_DQSGOE 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSNRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_1_0 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSRES 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080F00, 0xFFFFFFFFU ,0x40800624U) - RegMask = (DDR_PHY_DX8GCR0_CALBYP_MASK | DDR_PHY_DX8GCR0_MDLEN_MASK | DDR_PHY_DX8GCR0_CODTSHFT_MASK | DDR_PHY_DX8GCR0_DQSDCC_MASK | DDR_PHY_DX8GCR0_RDDLY_MASK | DDR_PHY_DX8GCR0_RESERVED_19_14_MASK | DDR_PHY_DX8GCR0_DQSNSEPDR_MASK | DDR_PHY_DX8GCR0_DQSSEPDR_MASK | DDR_PHY_DX8GCR0_RTTOAL_MASK | DDR_PHY_DX8GCR0_RTTOH_MASK | DDR_PHY_DX8GCR0_CPDRSHFT_MASK | DDR_PHY_DX8GCR0_DQSRPD_MASK | DDR_PHY_DX8GCR0_DQSGPDR_MASK | DDR_PHY_DX8GCR0_RESERVED_4_MASK | DDR_PHY_DX8GCR0_DQSGODT_MASK | DDR_PHY_DX8GCR0_DQSGOE_MASK | DDR_PHY_DX8GCR0_RESERVED_1_0_MASK | 0 ); + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08145C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX8GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX8GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSRPD_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR0_OFFSET ,0xFFFFFFFFU ,0x40800624U); - /*############################################################################################################################ */ + /* + * Register : DX8SL1DXCTL2 @ 0XFD08146C - /*Register : DX8GCR1 @ 0XFD080F04

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX8GCR1_DXPDRMODE 0x0 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_CRDEN 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX8GCR1_RESERVED_15 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL1DXCTL2_POSOEX 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX8GCR1_QSNSEL 0x1 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL1DXCTL2_PREOEX 0x1 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX8GCR1_QSSEL 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_17 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX8GCR1_OEEN 0x1 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL1DXCTL2_IOAG 0x0 - Enables PDR in a byte lane - PSU_DDR_PHY_DX8GCR1_PDREN 0x1 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL1DXCTL2_IOLB 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX8GCR1_TEEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX8GCR1_DSEN 0x1 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH 0xc - Enables DM pin in a byte lane - PSU_DDR_PHY_DX8GCR1_DMEN 0x1 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_RDBI 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX8GCR1_DQEN 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_WDBI 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080F04, 0xFFFFFFFFU ,0x00007F00U) - RegMask = (DDR_PHY_DX8GCR1_DXPDRMODE_MASK | DDR_PHY_DX8GCR1_RESERVED_15_MASK | DDR_PHY_DX8GCR1_QSNSEL_MASK | DDR_PHY_DX8GCR1_QSSEL_MASK | DDR_PHY_DX8GCR1_OEEN_MASK | DDR_PHY_DX8GCR1_PDREN_MASK | DDR_PHY_DX8GCR1_TEEN_MASK | DDR_PHY_DX8GCR1_DSEN_MASK | DDR_PHY_DX8GCR1_DMEN_MASK | DDR_PHY_DX8GCR1_DQEN_MASK | 0 ); + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL1DXCTL2_PRFBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_DMEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR1_OFFSET ,0xFFFFFFFFU ,0x00007F00U); - /*############################################################################################################################ */ + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL1DXCTL2_RDMODE 0x0 - /*Register : DX8GCR4 @ 0XFD080F10

+ * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL1DXCTL2_DISRST 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX8GCR4_RESERVED_31_29 0x0 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL1DXCTL2_DQSGLB 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX8GCR4_DXREFPEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_0 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX8GCR4_DXREFEEN 0x3 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08146C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX8GCR4_DXREFSEN 0x1 + /* + * Register : DX8SL1IOCR @ 0XFD081470 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR4_RESERVED_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1IOCR_RESERVED_31 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX8GCR4_DXREFESELRANGE 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL1IOCR_DXDACRANGE 0x7 - Byte Lane External VREF Select - PSU_DDR_PHY_DX8GCR4_DXREFESEL 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL1IOCR_DXVREFIOM 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX8GCR4_DXREFSSELRANGE 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXIOM 0x2 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX8GCR4_DXREFSSEL 0x30 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXTXM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR4_RESERVED_7_6 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXRXM 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX8GCR4_DXREFIEN 0xf + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081470, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX8GCR4_DXREFIMON 0x0 + /* + * Register : DX8SL2OSC @ 0XFD081480 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080F10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX8GCR4_RESERVED_31_29_MASK | DDR_PHY_DX8GCR4_DXREFPEN_MASK | DDR_PHY_DX8GCR4_DXREFEEN_MASK | DDR_PHY_DX8GCR4_DXREFSEN_MASK | DDR_PHY_DX8GCR4_RESERVED_24_MASK | DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX8GCR4_DXREFESEL_MASK | DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX8GCR4_DXREFSSEL_MASK | DDR_PHY_DX8GCR4_RESERVED_7_6_MASK | DDR_PHY_DX8GCR4_DXREFIEN_MASK | DDR_PHY_DX8GCR4_DXREFIMON_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX8GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX8GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXRDCLK 0x2 - /*Register : DX8GCR5 @ 0XFD080F14

+ * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXDDRCLK 0x2 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_31 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXCTLCLK 0x2 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX8GCR5_DXREFISELR3 0x9 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL2OSC_CLKLEVEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_23 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL2OSC_LBMODE 0x0 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX8GCR5_DXREFISELR2 0x9 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL2OSC_LBGSDQS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_15 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL2OSC_LBGDQS 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x4f + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL2OSC_LBDQSS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_7 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL2OSC_PHYHRST 0x1 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x4f + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL2OSC_PHYFRST 0x1 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX8GCR5_RESERVED_31_MASK | DDR_PHY_DX8GCR5_DXREFISELR3_MASK | DDR_PHY_DX8GCR5_RESERVED_23_MASK | DDR_PHY_DX8GCR5_DXREFISELR2_MASK | DDR_PHY_DX8GCR5_RESERVED_15_MASK | DDR_PHY_DX8GCR5_DXREFISELR1_MASK | DDR_PHY_DX8GCR5_RESERVED_7_MASK | DDR_PHY_DX8GCR5_DXREFISELR0_MASK | 0 ); + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL2OSC_DLTST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL2OSC_DLTMODE 0x0 - /*Register : DX8GCR6 @ 0XFD080F18

+ * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_12_11 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_31_30 0x0 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL2OSC_OSCWDDL 0x3 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR3 0x9 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_8_7 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_23_22 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL2OSC_OSCWDL 0x3 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR2 0x9 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL2OSC_OSCDIV 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_15_14 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL2OSC_OSCEN 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR1 0x2b + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081480, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_7_6 0x0 + /* + * Register : DX8SL2PLLCR0 @ 0XFD081484 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR0 0x2b + * PLL Bypass + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLBYP 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080F18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX8GCR6_RESERVED_31_30_MASK | DDR_PHY_DX8GCR6_DXDQVREFR3_MASK | DDR_PHY_DX8GCR6_RESERVED_23_22_MASK | DDR_PHY_DX8GCR6_DXDQVREFR2_MASK | DDR_PHY_DX8GCR6_RESERVED_15_14_MASK | DDR_PHY_DX8GCR6_DXDQVREFR1_MASK | DDR_PHY_DX8GCR6_RESERVED_7_6_MASK | DDR_PHY_DX8GCR6_DXDQVREFR0_MASK | 0 ); + * PLL Reset + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * PLL Power Down + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLPD 0x0 - /*Register : DX8LCDLR2 @ 0XFD080F88

+ * Reference Stop Mode + * PSU_DDR_PHY_DX8SL2PLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_31_25 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL2PLLCR0_FRQSEL 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_24_16 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL2PLLCR0_RLOCKM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_15_9 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL2PLLCR0_CPPC 0x8 - Read DQS Gating Delay - PSU_DDR_PHY_DX8LCDLR2_DQSGD 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL2PLLCR0_CPIC 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080F88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX8LCDLR2_DQSGD_MASK | 0 ); + * Gear Shift + * PSU_DDR_PHY_DX8SL2PLLCR0_GSHIFT 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9 0x0 - /*Register : DX8GTR0 @ 0XFD080FC0

+ * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL2PLLCR0_ATOEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_31_24 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SL2PLLCR0_ATC 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX8GTR0_WDQSL 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL2PLLCR0_DTC 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8GTR0_RESERVED_23_20 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081484, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Write Leveling System Latency - PSU_DDR_PHY_DX8GTR0_WLSL 0x2 + /* + * Register : DX8SL2DQSCTL @ 0XFD08149C - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_15_13 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8GTR0_RESERVED_12_8 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_RRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_7_5 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX8GTR0_DGSL 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_WRRMODE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080FC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX8GTR0_RESERVED_31_24_MASK | DDR_PHY_DX8GTR0_WDQSL_MASK | DDR_PHY_DX8GTR0_RESERVED_23_20_MASK | DDR_PHY_DX8GTR0_WLSL_MASK | DDR_PHY_DX8GTR0_RESERVED_15_13_MASK | DDR_PHY_DX8GTR0_RESERVED_12_8_MASK | DDR_PHY_DX8GTR0_RESERVED_7_5_MASK | DDR_PHY_DX8GTR0_DGSL_MASK | 0 ); + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSGX 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX8GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL2DQSCTL_LPPLLPD 0x1 - /*Register : DX8SL0OSC @ 0XFD081400

+ * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL2DQSCTL_LPIOPD 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXRDCLK 0x2 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL2DQSCTL_QSCNTEN 0x1 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXDDRCLK 0x2 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_UDQIOM 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXCTLCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL0OSC_CLKLEVEL 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL2DQSCTL_DXSR 0x3 - Loopback Mode - PSU_DDR_PHY_DX8SL0OSC_LBMODE 0x0 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSNRES 0x0 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL0OSC_LBGSDQS 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSRES 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL0OSC_LBGDQS 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08149C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Loopback DQS Shift - PSU_DDR_PHY_DX8SL0OSC_LBDQSS 0x0 + /* + * Register : DX8SL2DXCTL2 @ 0XFD0814AC - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL0OSC_PHYHRST 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL0OSC_PHYFRST 0x1 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_CRDEN 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL0OSC_DLTST 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL2DXCTL2_POSOEX 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL0OSC_DLTMODE 0x0 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL2DXCTL2_PREOEX 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_12_11 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_17 0x0 - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL0OSC_OSCWDDL 0x3 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL2DXCTL2_IOAG 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_8_7 0x3 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL2DXCTL2_IOLB 0x0 - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL0OSC_OSCWDL 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13 0x0 - Oscillator Mode Division - PSU_DDR_PHY_DX8SL0OSC_OSCDIV 0xf + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH 0xc - Oscillator Enable - PSU_DDR_PHY_DX8SL0OSC_OSCEN 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_RDBI 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081400, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL0OSC_LBMODE_MASK | DDR_PHY_DX8SL0OSC_LBGSDQS_MASK | DDR_PHY_DX8SL0OSC_LBGDQS_MASK | DDR_PHY_DX8SL0OSC_LBDQSS_MASK | DDR_PHY_DX8SL0OSC_PHYHRST_MASK | DDR_PHY_DX8SL0OSC_PHYFRST_MASK | DDR_PHY_DX8SL0OSC_DLTST_MASK | DDR_PHY_DX8SL0OSC_DLTMODE_MASK | DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL0OSC_OSCWDDL_MASK | DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL0OSC_OSCWDL_MASK | DDR_PHY_DX8SL0OSC_OSCDIV_MASK | DDR_PHY_DX8SL0OSC_OSCEN_MASK | 0 ); + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_WDBI 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL2DXCTL2_PRFBYP 0x0 - /*Register : DX8SL0DQSCTL @ 0XFD08141C

+ * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL2DXCTL2_RDMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25 0x0 + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL2DXCTL2_DISRST 0x0 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL0DQSCTL_RRRMODE 0x1 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL2DXCTL2_DQSGLB 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_0 0x0 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL0DQSCTL_WRRMODE 0x1 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD0814AC, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - DQS Gate Extension - PSU_DDR_PHY_DX8SL0DQSCTL_DQSGX 0x0 + /* + * Register : DX8SL2IOCR @ 0XFD0814B0 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL0DQSCTL_LPPLLPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2IOCR_RESERVED_31 0x0 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL0DQSCTL_LPIOPD 0x1 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL2IOCR_DXDACRANGE 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL2IOCR_DXVREFIOM 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL0DQSCTL_QSCNTEN 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXIOM 0x2 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL0DQSCTL_UDQIOM 0x0 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXRXM 0x0 - Data Slew Rate - PSU_DDR_PHY_DX8SL0DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL0DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL0DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08141C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL0DQSCTL_DXSR_MASK | DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK | 0 ); + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD0814B0, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL0DXCTL2 @ 0XFD08142C

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL0DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL0DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL0DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL0DXCTL2_IOAG 0x0 + /* + * Register : DX8SL3OSC @ 0XFD0814C0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL0DXCTL2_IOLB 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13 0x0 + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXRDCLK 0x2 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH 0xc + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXDDRCLK 0x2 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL0DXCTL2_RDBI 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXCTLCLK 0x2 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL0DXCTL2_WDBI 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL3OSC_CLKLEVEL 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL0DXCTL2_PRFBYP 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL3OSC_LBMODE 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL0DXCTL2_RDMODE 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL3OSC_LBGSDQS 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL0DXCTL2_DISRST 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL3OSC_LBGDQS 0x0 - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL0DXCTL2_DQSGLB 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL3OSC_LBDQSS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_0 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL3OSC_PHYHRST 0x1 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08142C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL0DXCTL2_IOAG_MASK | DDR_PHY_DX8SL0DXCTL2_IOLB_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL0DXCTL2_RDBI_MASK | DDR_PHY_DX8SL0DXCTL2_WDBI_MASK | DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL0DXCTL2_DISRST_MASK | DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK | 0 ); + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL3OSC_PHYFRST 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL3OSC_DLTST 0x0 - /*Register : DX8SL0IOCR @ 0XFD081430

+ * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL3OSC_DLTMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0IOCR_RESERVED_31 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_12_11 0x3 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL0IOCR_DXDACRANGE 0x7 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL3OSC_OSCWDDL 0x3 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL0IOCR_DXVREFIOM 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_8_7 0x3 - DX IO Mode - PSU_DDR_PHY_DX8SL0IOCR_DXIOM 0x2 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL3OSC_OSCWDL 0x3 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL0IOCR_DXTXM 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL3OSC_OSCDIV 0xf - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL0IOCR_DXRXM 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL3OSC_OSCEN 0x0 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081430, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL0IOCR_DXIOM_MASK | DDR_PHY_DX8SL0IOCR_DXTXM_MASK | DDR_PHY_DX8SL0IOCR_DXRXM_MASK | 0 ); + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD0814C0, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + /* + * Register : DX8SL3PLLCR0 @ 0XFD0814C4 - /*Register : DX8SL1OSC @ 0XFD081440

+ * PLL Bypass + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_31_30 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLRST 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXRDCLK 0x2 + * PLL Power Down + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLPD 0x0 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXDDRCLK 0x2 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL3PLLCR0_RSTOPM 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXCTLCLK 0x2 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL3PLLCR0_FRQSEL 0x1 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL1OSC_CLKLEVEL 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL3PLLCR0_RLOCKM 0x0 - Loopback Mode - PSU_DDR_PHY_DX8SL1OSC_LBMODE 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL3PLLCR0_CPPC 0x8 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL1OSC_LBGSDQS 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL3PLLCR0_CPIC 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL1OSC_LBGDQS 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL3PLLCR0_GSHIFT 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL1OSC_LBDQSS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL1OSC_PHYHRST 0x1 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL3PLLCR0_ATOEN 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL1OSC_PHYFRST 0x1 + * Analog Test Control + * PSU_DDR_PHY_DX8SL3PLLCR0_ATC 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL1OSC_DLTST 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL3PLLCR0_DTC 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL1OSC_DLTMODE 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD0814C4, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL1OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL1OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL1OSC_OSCDIV 0xf + /* + * Register : DX8SL3DQSCTL @ 0XFD0814DC - Oscillator Enable - PSU_DDR_PHY_DX8SL1OSC_OSCEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081440, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL1OSC_LBMODE_MASK | DDR_PHY_DX8SL1OSC_LBGSDQS_MASK | DDR_PHY_DX8SL1OSC_LBGDQS_MASK | DDR_PHY_DX8SL1OSC_LBDQSS_MASK | DDR_PHY_DX8SL1OSC_PHYHRST_MASK | DDR_PHY_DX8SL1OSC_PHYFRST_MASK | DDR_PHY_DX8SL1OSC_DLTST_MASK | DDR_PHY_DX8SL1OSC_DLTMODE_MASK | DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL1OSC_OSCWDDL_MASK | DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL1OSC_OSCWDL_MASK | DDR_PHY_DX8SL1OSC_OSCDIV_MASK | DDR_PHY_DX8SL1OSC_OSCEN_MASK | 0 ); + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_RRRMODE 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22 0x0 - /*Register : DX8SL1DQSCTL @ 0XFD08145C

+ * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_WRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25 0x0 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSGX 0x0 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL1DQSCTL_RRRMODE 0x1 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL3DQSCTL_LPPLLPD 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22 0x0 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL3DQSCTL_LPIOPD 0x1 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL1DQSCTL_WRRMODE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15 0x0 - DQS Gate Extension - PSU_DDR_PHY_DX8SL1DQSCTL_DQSGX 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL3DQSCTL_QSCNTEN 0x1 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL1DQSCTL_LPPLLPD 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_UDQIOM 0x0 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL1DQSCTL_LPIOPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL3DQSCTL_DXSR 0x3 - QS Counter Enable - PSU_DDR_PHY_DX8SL1DQSCTL_QSCNTEN 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSNRES 0x0 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL1DQSCTL_UDQIOM 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD0814DC, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Data Slew Rate - PSU_DDR_PHY_DX8SL1DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL1DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL1DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08145C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL1DQSCTL_DXSR_MASK | DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK | 0 ); + /* + * Register : DX8SL3DXCTL2 @ 0XFD0814EC - RegVal = ((0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL1DXCTL2 @ 0XFD08146C

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL1DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL1DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL1DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL1DXCTL2_IOAG 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24 0x0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL1DXCTL2_IOLB 0x0 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_CRDEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL3DXCTL2_POSOEX 0x0 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH 0xc + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL3DXCTL2_PREOEX 0x1 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL1DXCTL2_RDBI 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_17 0x0 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL1DXCTL2_WDBI 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL3DXCTL2_IOAG 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL1DXCTL2_PRFBYP 0x0 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL3DXCTL2_IOLB 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL1DXCTL2_RDMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL1DXCTL2_DISRST 0x0 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH 0xc - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL1DXCTL2_DQSGLB 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_RDBI 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_0 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_WDBI 0x0 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08146C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL1DXCTL2_IOAG_MASK | DDR_PHY_DX8SL1DXCTL2_IOLB_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL1DXCTL2_RDBI_MASK | DDR_PHY_DX8SL1DXCTL2_WDBI_MASK | DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL1DXCTL2_DISRST_MASK | DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK | 0 ); + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL3DXCTL2_PRFBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL3DXCTL2_RDMODE 0x0 - /*Register : DX8SL1IOCR @ 0XFD081470

+ * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL3DXCTL2_DISRST 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1IOCR_RESERVED_31 0x0 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL3DXCTL2_DQSGLB 0x0 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL1IOCR_DXDACRANGE 0x7 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_0 0x0 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL1IOCR_DXVREFIOM 0x0 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD0814EC, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - DX IO Mode - PSU_DDR_PHY_DX8SL1IOCR_DXIOM 0x2 + /* + * Register : DX8SL3IOCR @ 0XFD0814F0 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL1IOCR_DXTXM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3IOCR_RESERVED_31 0x0 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL1IOCR_DXRXM 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL3IOCR_DXDACRANGE 0x7 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081470, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL1IOCR_DXIOM_MASK | DDR_PHY_DX8SL1IOCR_DXTXM_MASK | DDR_PHY_DX8SL1IOCR_DXRXM_MASK | 0 ); + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL3IOCR_DXVREFIOM 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * DX IO Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXIOM 0x2 - /*Register : DX8SL2OSC @ 0XFD081480

+ * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_31_30 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXRXM 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXRDCLK 0x2 + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD0814F0, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXDDRCLK 0x2 + /* + * Register : DX8SL4OSC @ 0XFD081500 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXCTLCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_31_30 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL2OSC_CLKLEVEL 0x0 + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXRDCLK 0x2 - Loopback Mode - PSU_DDR_PHY_DX8SL2OSC_LBMODE 0x0 + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXDDRCLK 0x2 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL2OSC_LBGSDQS 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXCTLCLK 0x2 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL2OSC_LBGDQS 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL4OSC_CLKLEVEL 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL2OSC_LBDQSS 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL4OSC_LBMODE 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL2OSC_PHYHRST 0x1 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL4OSC_LBGSDQS 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL2OSC_PHYFRST 0x1 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL4OSC_LBGDQS 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL2OSC_DLTST 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL4OSC_LBDQSS 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL2OSC_DLTMODE 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL4OSC_PHYHRST 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL2OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL2OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL2OSC_OSCDIV 0xf + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL4OSC_PHYFRST 0x1 - Oscillator Enable - PSU_DDR_PHY_DX8SL2OSC_OSCEN 0x0 + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL4OSC_DLTST 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081480, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL2OSC_LBMODE_MASK | DDR_PHY_DX8SL2OSC_LBGSDQS_MASK | DDR_PHY_DX8SL2OSC_LBGDQS_MASK | DDR_PHY_DX8SL2OSC_LBDQSS_MASK | DDR_PHY_DX8SL2OSC_PHYHRST_MASK | DDR_PHY_DX8SL2OSC_PHYFRST_MASK | DDR_PHY_DX8SL2OSC_DLTST_MASK | DDR_PHY_DX8SL2OSC_DLTMODE_MASK | DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL2OSC_OSCWDDL_MASK | DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL2OSC_OSCWDL_MASK | DDR_PHY_DX8SL2OSC_OSCDIV_MASK | DDR_PHY_DX8SL2OSC_OSCEN_MASK | 0 ); + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL4OSC_DLTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_12_11 0x3 - /*Register : DX8SL2DQSCTL @ 0XFD08149C

+ * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL4OSC_OSCWDDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_8_7 0x3 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL2DQSCTL_RRRMODE 0x1 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL4OSC_OSCWDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL4OSC_OSCDIV 0xf - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL2DQSCTL_WRRMODE 0x1 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL4OSC_OSCEN 0x0 - DQS Gate Extension - PSU_DDR_PHY_DX8SL2DQSCTL_DQSGX 0x0 + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081500, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL2DQSCTL_LPPLLPD 0x1 + /* + * Register : DX8SL4PLLCR0 @ 0XFD081504 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL2DQSCTL_LPIOPD 0x1 + * PLL Bypass + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLRST 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL2DQSCTL_QSCNTEN 0x1 + * PLL Power Down + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLPD 0x0 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL2DQSCTL_UDQIOM 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL4PLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL4PLLCR0_FRQSEL 0x1 - Data Slew Rate - PSU_DDR_PHY_DX8SL2DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL2DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL2DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08149C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL2DQSCTL_DXSR_MASK | DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK | 0 ); + * Relock Mode + * PSU_DDR_PHY_DX8SL4PLLCR0_RLOCKM 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL2DXCTL2 @ 0XFD0814AC

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL2DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL2DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL2DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL2DXCTL2_IOAG 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL4PLLCR0_CPPC 0x8 - I/O Loopback Select - PSU_DDR_PHY_DX8SL2DXCTL2_IOLB 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL4PLLCR0_CPIC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL4PLLCR0_GSHIFT 0x0 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH 0xc + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9 0x0 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL2DXCTL2_RDBI 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL4PLLCR0_ATOEN 0x0 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL2DXCTL2_WDBI 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SL4PLLCR0_ATC 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL2DXCTL2_PRFBYP 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL4PLLCR0_DTC 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL2DXCTL2_RDMODE 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081504, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL2DXCTL2_DISRST 0x0 + /* + * Register : DX8SL4DQSCTL @ 0XFD08151C - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL2DXCTL2_DQSGLB 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_0 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_RRRMODE 0x1 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD0814AC, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL2DXCTL2_IOAG_MASK | DDR_PHY_DX8SL2DXCTL2_IOLB_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL2DXCTL2_RDBI_MASK | DDR_PHY_DX8SL2DXCTL2_WDBI_MASK | DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL2DXCTL2_DISRST_MASK | DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_WRRMODE 0x1 - /*Register : DX8SL2IOCR @ 0XFD0814B0

+ * DQS Gate Extension + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSGX 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2IOCR_RESERVED_31 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL4DQSCTL_LPPLLPD 0x1 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL2IOCR_DXDACRANGE 0x7 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL4DQSCTL_LPIOPD 0x1 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL2IOCR_DXVREFIOM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15 0x0 - DX IO Mode - PSU_DDR_PHY_DX8SL2IOCR_DXIOM 0x2 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL4DQSCTL_QSCNTEN 0x1 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL2IOCR_DXTXM 0x0 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_UDQIOM 0x0 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL2IOCR_DXRXM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10 0x0 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD0814B0, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL2IOCR_DXIOM_MASK | DDR_PHY_DX8SL2IOCR_DXTXM_MASK | DDR_PHY_DX8SL2IOCR_DXRXM_MASK | 0 ); + * Data Slew Rate + * PSU_DDR_PHY_DX8SL4DQSCTL_DXSR 0x3 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSNRES 0x0 - /*Register : DX8SL3OSC @ 0XFD0814C0

+ * DQS Resistor + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_31_30 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08151C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXRDCLK 0x2 + /* + * Register : DX8SL4DXCTL2 @ 0XFD08152C - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXDDRCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXCTLCLK 0x2 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_CRDEN 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL3OSC_CLKLEVEL 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL4DXCTL2_POSOEX 0x0 - Loopback Mode - PSU_DDR_PHY_DX8SL3OSC_LBMODE 0x0 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL4DXCTL2_PREOEX 0x1 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL3OSC_LBGSDQS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_17 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL3OSC_LBGDQS 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL4DXCTL2_IOAG 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL3OSC_LBDQSS 0x0 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL4DXCTL2_IOLB 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL3OSC_PHYHRST 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL3OSC_PHYFRST 0x1 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH 0xc - Delay Line Test Start - PSU_DDR_PHY_DX8SL3OSC_DLTST 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_RDBI 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL3OSC_DLTMODE 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_WDBI 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL3OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL3OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL3OSC_OSCDIV 0xf + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL4DXCTL2_PRFBYP 0x0 - Oscillator Enable - PSU_DDR_PHY_DX8SL3OSC_OSCEN 0x0 + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL4DXCTL2_RDMODE 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD0814C0, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL3OSC_LBMODE_MASK | DDR_PHY_DX8SL3OSC_LBGSDQS_MASK | DDR_PHY_DX8SL3OSC_LBGDQS_MASK | DDR_PHY_DX8SL3OSC_LBDQSS_MASK | DDR_PHY_DX8SL3OSC_PHYHRST_MASK | DDR_PHY_DX8SL3OSC_PHYFRST_MASK | DDR_PHY_DX8SL3OSC_DLTST_MASK | DDR_PHY_DX8SL3OSC_DLTMODE_MASK | DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL3OSC_OSCWDDL_MASK | DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL3OSC_OSCWDL_MASK | DDR_PHY_DX8SL3OSC_OSCDIV_MASK | DDR_PHY_DX8SL3OSC_OSCEN_MASK | 0 ); + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL4DXCTL2_DISRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL4DXCTL2_DQSGLB 0x0 - /*Register : DX8SL3DQSCTL @ 0XFD0814DC

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_0 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25 0x0 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08152C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL3DQSCTL_RRRMODE 0x1 + /* + * Register : DX8SL4IOCR @ 0XFD081530 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4IOCR_RESERVED_31 0x0 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL3DQSCTL_WRRMODE 0x1 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL4IOCR_DXDACRANGE 0x7 - DQS Gate Extension - PSU_DDR_PHY_DX8SL3DQSCTL_DQSGX 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL4IOCR_DXVREFIOM 0x0 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL3DQSCTL_LPPLLPD 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXIOM 0x2 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL3DQSCTL_LPIOPD 0x1 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXRXM 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL3DQSCTL_QSCNTEN 0x1 + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081530, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL3DQSCTL_UDQIOM 0x0 + /* + * Register : DX8SLbPLLCR0 @ 0XFD0817C4 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10 0x0 + * PLL Bypass + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLBYP 0x0 - Data Slew Rate - PSU_DDR_PHY_DX8SL3DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL3DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL3DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD0814DC, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL3DQSCTL_DXSR_MASK | DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK | 0 ); + * PLL Reset + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL3DXCTL2 @ 0XFD0814EC

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL3DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL3DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL3DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL3DXCTL2_IOAG 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLPD 0x0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL3DXCTL2_IOLB 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SLBPLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SLBPLLCR0_FRQSEL 0x1 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH 0xc + * Relock Mode + * PSU_DDR_PHY_DX8SLBPLLCR0_RLOCKM 0x0 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL3DXCTL2_RDBI 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SLBPLLCR0_CPPC 0x8 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL3DXCTL2_WDBI 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SLBPLLCR0_CPIC 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL3DXCTL2_PRFBYP 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SLBPLLCR0_GSHIFT 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL3DXCTL2_RDMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL3DXCTL2_DISRST 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SLBPLLCR0_ATOEN 0x0 - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL3DXCTL2_DQSGLB 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SLBPLLCR0_ATC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_0 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SLBPLLCR0_DTC 0x0 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD0814EC, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL3DXCTL2_IOAG_MASK | DDR_PHY_DX8SL3DXCTL2_IOLB_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL3DXCTL2_RDBI_MASK | DDR_PHY_DX8SL3DXCTL2_WDBI_MASK | DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL3DXCTL2_DISRST_MASK | DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK | 0 ); + * DAXT8 0-8 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD0817C4, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SLBPLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + /* + * Register : DX8SLbDQSCTL @ 0XFD0817DC - /*Register : DX8SL3IOCR @ 0XFD0814F0

+ * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3IOCR_RESERVED_31 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_RRRMODE 0x1 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL3IOCR_DXDACRANGE 0x7 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22 0x0 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL3IOCR_DXVREFIOM 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_WRRMODE 0x1 - DX IO Mode - PSU_DDR_PHY_DX8SL3IOCR_DXIOM 0x2 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSGX 0x0 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL3IOCR_DXTXM 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SLBDQSCTL_LPPLLPD 0x1 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL3IOCR_DXRXM 0x0 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SLBDQSCTL_LPIOPD 0x1 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD0814F0, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL3IOCR_DXIOM_MASK | DDR_PHY_DX8SL3IOCR_DXTXM_MASK | DDR_PHY_DX8SL3IOCR_DXRXM_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * QS Counter Enable + * PSU_DDR_PHY_DX8SLBDQSCTL_QSCNTEN 0x1 - /*Register : DX8SL4OSC @ 0XFD081500

+ * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_UDQIOM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXRDCLK 0x2 + * Data Slew Rate + * PSU_DDR_PHY_DX8SLBDQSCTL_DXSR 0x3 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXDDRCLK 0x2 + * DQS# Resistor + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSNRES 0xc - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXCTLCLK 0x2 + * DQS Resistor + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSRES 0x4 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL4OSC_CLKLEVEL 0x0 + * DATX8 0-8 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD0817DC, 0xFFFFFFFFU ,0x012643C4U) + */ + PSU_Mask_Write(DDR_PHY_DX8SLBDQSCTL_OFFSET, + 0xFFFFFFFFU, 0x012643C4U); +/*##################################################################### */ - Loopback Mode - PSU_DDR_PHY_DX8SL4OSC_LBMODE 0x0 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL4OSC_LBGSDQS 0x0 - - Loopback DQS Gating - PSU_DDR_PHY_DX8SL4OSC_LBGDQS 0x0 - - Loopback DQS Shift - PSU_DDR_PHY_DX8SL4OSC_LBDQSS 0x0 - - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL4OSC_PHYHRST 0x1 - - PHY FIFO Reset - PSU_DDR_PHY_DX8SL4OSC_PHYFRST 0x1 - - Delay Line Test Start - PSU_DDR_PHY_DX8SL4OSC_DLTST 0x0 - - Delay Line Test Mode - PSU_DDR_PHY_DX8SL4OSC_DLTMODE 0x0 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL4OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL4OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL4OSC_OSCDIV 0xf - - Oscillator Enable - PSU_DDR_PHY_DX8SL4OSC_OSCEN 0x0 - - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081500, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL4OSC_LBMODE_MASK | DDR_PHY_DX8SL4OSC_LBGSDQS_MASK | DDR_PHY_DX8SL4OSC_LBGDQS_MASK | DDR_PHY_DX8SL4OSC_LBDQSS_MASK | DDR_PHY_DX8SL4OSC_PHYHRST_MASK | DDR_PHY_DX8SL4OSC_PHYFRST_MASK | DDR_PHY_DX8SL4OSC_DLTST_MASK | DDR_PHY_DX8SL4OSC_DLTMODE_MASK | DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL4OSC_OSCWDDL_MASK | DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL4OSC_OSCWDL_MASK | DDR_PHY_DX8SL4OSC_OSCDIV_MASK | DDR_PHY_DX8SL4OSC_OSCEN_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ - - /*Register : DX8SL4DQSCTL @ 0XFD08151C

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25 0x0 - - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL4DQSCTL_RRRMODE 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22 0x0 - - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL4DQSCTL_WRRMODE 0x1 - - DQS Gate Extension - PSU_DDR_PHY_DX8SL4DQSCTL_DQSGX 0x0 - - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL4DQSCTL_LPPLLPD 0x1 - - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL4DQSCTL_LPIOPD 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15 0x0 - - QS Counter Enable - PSU_DDR_PHY_DX8SL4DQSCTL_QSCNTEN 0x1 - - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL4DQSCTL_UDQIOM 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10 0x0 - - Data Slew Rate - PSU_DDR_PHY_DX8SL4DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL4DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL4DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08151C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL4DQSCTL_DXSR_MASK | DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL4DXCTL2 @ 0XFD08152C

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL4DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL4DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL4DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL4DXCTL2_IOAG 0x0 - - I/O Loopback Select - PSU_DDR_PHY_DX8SL4DXCTL2_IOLB 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13 0x0 - - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH 0xc - - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL4DXCTL2_RDBI 0x0 - - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL4DXCTL2_WDBI 0x0 - - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL4DXCTL2_PRFBYP 0x0 - - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL4DXCTL2_RDMODE 0x0 - - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL4DXCTL2_DISRST 0x0 - - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL4DXCTL2_DQSGLB 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_0 0x0 - - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08152C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL4DXCTL2_IOAG_MASK | DDR_PHY_DX8SL4DXCTL2_IOLB_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL4DXCTL2_RDBI_MASK | DDR_PHY_DX8SL4DXCTL2_WDBI_MASK | DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL4DXCTL2_DISRST_MASK | DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ - - /*Register : DX8SL4IOCR @ 0XFD081530

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4IOCR_RESERVED_31 0x0 - - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL4IOCR_DXDACRANGE 0x7 - - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL4IOCR_DXVREFIOM 0x0 - - DX IO Mode - PSU_DDR_PHY_DX8SL4IOCR_DXIOM 0x2 - - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL4IOCR_DXTXM 0x0 - - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL4IOCR_DXRXM 0x0 - - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081530, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL4IOCR_DXIOM_MASK | DDR_PHY_DX8SL4IOCR_DXTXM_MASK | DDR_PHY_DX8SL4IOCR_DXRXM_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ - - /*Register : DX8SLbDQSCTL @ 0XFD0817DC

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25 0x0 - - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SLBDQSCTL_RRRMODE 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22 0x0 - - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SLBDQSCTL_WRRMODE 0x1 - - DQS Gate Extension - PSU_DDR_PHY_DX8SLBDQSCTL_DQSGX 0x0 - - Low Power PLL Power Down - PSU_DDR_PHY_DX8SLBDQSCTL_LPPLLPD 0x1 - - Low Power I/O Power Down - PSU_DDR_PHY_DX8SLBDQSCTL_LPIOPD 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15 0x0 - - QS Counter Enable - PSU_DDR_PHY_DX8SLBDQSCTL_QSCNTEN 0x1 - - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SLBDQSCTL_UDQIOM 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10 0x0 - - Data Slew Rate - PSU_DDR_PHY_DX8SLBDQSCTL_DXSR 0x3 - - DQS# Resistor - PSU_DDR_PHY_DX8SLBDQSCTL_DQSNRES 0xc - - DQS Resistor - PSU_DDR_PHY_DX8SLBDQSCTL_DQSRES 0x4 - - DATX8 0-8 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD0817DC, 0xFFFFFFFFU ,0x012643C4U) - RegMask = (DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK | DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK | DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SLBDQSCTL_DXSR_MASK | DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK | DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT - | 0x0000000CU << DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT - | 0x00000004U << DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SLBDQSCTL_OFFSET ,0xFFFFFFFFU ,0x012643C4U); - /*############################################################################################################################ */ - - /*Register : PIR @ 0XFD080004

- - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_31 0x0 - - Impedance Calibration Bypass - PSU_DDR_PHY_PIR_ZCALBYP 0x0 - - Digital Delay Line (DDL) Calibration Pause - PSU_DDR_PHY_PIR_DCALPSE 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_28_21 0x0 - - Write DQS2DQ Training - PSU_DDR_PHY_PIR_DQS2DQ 0x0 - - RDIMM Initialization - PSU_DDR_PHY_PIR_RDIMMINIT 0x0 - - Controller DRAM Initialization - PSU_DDR_PHY_PIR_CTLDINIT 0x1 - - VREF Training - PSU_DDR_PHY_PIR_VREF 0x0 - - Static Read Training - PSU_DDR_PHY_PIR_SRD 0x0 - - Write Data Eye Training - PSU_DDR_PHY_PIR_WREYE 0x0 - - Read Data Eye Training - PSU_DDR_PHY_PIR_RDEYE 0x0 - - Write Data Bit Deskew - PSU_DDR_PHY_PIR_WRDSKW 0x0 - - Read Data Bit Deskew - PSU_DDR_PHY_PIR_RDDSKW 0x0 - - Write Leveling Adjust - PSU_DDR_PHY_PIR_WLADJ 0x0 - - Read DQS Gate Training - PSU_DDR_PHY_PIR_QSGATE 0x0 - - Write Leveling - PSU_DDR_PHY_PIR_WL 0x0 - - DRAM Initialization - PSU_DDR_PHY_PIR_DRAMINIT 0x0 - - DRAM Reset (DDR3/DDR4/LPDDR4 Only) - PSU_DDR_PHY_PIR_DRAMRST 0x0 - - PHY Reset - PSU_DDR_PHY_PIR_PHYRST 0x1 - - Digital Delay Line (DDL) Calibration - PSU_DDR_PHY_PIR_DCAL 0x1 - - PLL Initialiazation - PSU_DDR_PHY_PIR_PLLINIT 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_3 0x0 - - CA Training - PSU_DDR_PHY_PIR_CA 0x0 - - Impedance Calibration - PSU_DDR_PHY_PIR_ZCAL 0x1 - - Initialization Trigger - PSU_DDR_PHY_PIR_INIT 0x1 - - PHY Initialization Register - (OFFSET, MASK, VALUE) (0XFD080004, 0xFFFFFFFFU ,0x00040073U) - RegMask = (DDR_PHY_PIR_RESERVED_31_MASK | DDR_PHY_PIR_ZCALBYP_MASK | DDR_PHY_PIR_DCALPSE_MASK | DDR_PHY_PIR_RESERVED_28_21_MASK | DDR_PHY_PIR_DQS2DQ_MASK | DDR_PHY_PIR_RDIMMINIT_MASK | DDR_PHY_PIR_CTLDINIT_MASK | DDR_PHY_PIR_VREF_MASK | DDR_PHY_PIR_SRD_MASK | DDR_PHY_PIR_WREYE_MASK | DDR_PHY_PIR_RDEYE_MASK | DDR_PHY_PIR_WRDSKW_MASK | DDR_PHY_PIR_RDDSKW_MASK | DDR_PHY_PIR_WLADJ_MASK | DDR_PHY_PIR_QSGATE_MASK | DDR_PHY_PIR_WL_MASK | DDR_PHY_PIR_DRAMINIT_MASK | DDR_PHY_PIR_DRAMRST_MASK | DDR_PHY_PIR_PHYRST_MASK | DDR_PHY_PIR_DCAL_MASK | DDR_PHY_PIR_PLLINIT_MASK | DDR_PHY_PIR_RESERVED_3_MASK | DDR_PHY_PIR_CA_MASK | DDR_PHY_PIR_ZCAL_MASK | DDR_PHY_PIR_INIT_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_PIR_RESERVED_31_SHIFT - | 0x00000000U << DDR_PHY_PIR_ZCALBYP_SHIFT - | 0x00000000U << DDR_PHY_PIR_DCALPSE_SHIFT - | 0x00000000U << DDR_PHY_PIR_RESERVED_28_21_SHIFT - | 0x00000000U << DDR_PHY_PIR_DQS2DQ_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDIMMINIT_SHIFT - | 0x00000001U << DDR_PHY_PIR_CTLDINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_VREF_SHIFT - | 0x00000000U << DDR_PHY_PIR_SRD_SHIFT - | 0x00000000U << DDR_PHY_PIR_WREYE_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDEYE_SHIFT - | 0x00000000U << DDR_PHY_PIR_WRDSKW_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDDSKW_SHIFT - | 0x00000000U << DDR_PHY_PIR_WLADJ_SHIFT - | 0x00000000U << DDR_PHY_PIR_QSGATE_SHIFT - | 0x00000000U << DDR_PHY_PIR_WL_SHIFT - | 0x00000000U << DDR_PHY_PIR_DRAMINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_DRAMRST_SHIFT - | 0x00000001U << DDR_PHY_PIR_PHYRST_SHIFT - | 0x00000001U << DDR_PHY_PIR_DCAL_SHIFT - | 0x00000001U << DDR_PHY_PIR_PLLINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_RESERVED_3_SHIFT - | 0x00000000U << DDR_PHY_PIR_CA_SHIFT - | 0x00000001U << DDR_PHY_PIR_ZCAL_SHIFT - | 0x00000001U << DDR_PHY_PIR_INIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PIR_OFFSET ,0xFFFFFFFFU ,0x00040073U); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_mio_init_data() { - // : MIO PROGRAMMING - /*Register : MIO_PIN_0 @ 0XFF180000

+unsigned long psu_ddr_qos_init_data(void) +{ - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) - PSU_IOU_SLCR_MIO_PIN_0_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_0_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[0]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[0]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_0_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_0_L3_SEL 0 - - Configures MIO Pin 0 peripheral interface mapping. S - (OFFSET, MASK, VALUE) (0XFF180000, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_0_L0_SEL_MASK | IOU_SLCR_MIO_PIN_0_L1_SEL_MASK | IOU_SLCR_MIO_PIN_0_L2_SEL_MASK | IOU_SLCR_MIO_PIN_0_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_0_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_1 @ 0XFF180004

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Data - us) - PSU_IOU_SLCR_MIO_PIN_1_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_1_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[1]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[1]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_1_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal) - PSU_IOU_SLCR_MIO_PIN_1_L3_SEL 0 - - Configures MIO Pin 1 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180004, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_1_L0_SEL_MASK | IOU_SLCR_MIO_PIN_1_L1_SEL_MASK | IOU_SLCR_MIO_PIN_1_L2_SEL_MASK | IOU_SLCR_MIO_PIN_1_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_1_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_2 @ 0XFF180008

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) - PSU_IOU_SLCR_MIO_PIN_2_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_2_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[2]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[2]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_2_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, Input, ttc2_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_2_L3_SEL 0 - - Configures MIO Pin 2 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180008, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_2_L0_SEL_MASK | IOU_SLCR_MIO_PIN_2_L1_SEL_MASK | IOU_SLCR_MIO_PIN_2_L2_SEL_MASK | IOU_SLCR_MIO_PIN_2_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_2_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_3 @ 0XFF18000C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) - PSU_IOU_SLCR_MIO_PIN_3_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_3_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[3]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[3]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_3_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_3_L3_SEL 0 - - Configures MIO Pin 3 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18000C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_3_L0_SEL_MASK | IOU_SLCR_MIO_PIN_3_L1_SEL_MASK | IOU_SLCR_MIO_PIN_3_L2_SEL_MASK | IOU_SLCR_MIO_PIN_3_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_3_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_4 @ 0XFF180010

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Data - us) - PSU_IOU_SLCR_MIO_PIN_4_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_4_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[4]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[4]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_4_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_4_L3_SEL 0 - - Configures MIO Pin 4 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180010, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_4_L0_SEL_MASK | IOU_SLCR_MIO_PIN_4_L1_SEL_MASK | IOU_SLCR_MIO_PIN_4_L2_SEL_MASK | IOU_SLCR_MIO_PIN_4_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_4_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_5 @ 0XFF180014

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- (QSPI Slave Select) - PSU_IOU_SLCR_MIO_PIN_5_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_5_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[5]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[5]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_5_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_5_L3_SEL 0 - - Configures MIO Pin 5 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180014, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_5_L0_SEL_MASK | IOU_SLCR_MIO_PIN_5_L1_SEL_MASK | IOU_SLCR_MIO_PIN_5_L2_SEL_MASK | IOU_SLCR_MIO_PIN_5_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_5_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_6 @ 0XFF180018

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) - PSU_IOU_SLCR_MIO_PIN_6_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_6_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[6]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[6]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_6_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1 - sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, - Output, tracedq[4]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_6_L3_SEL 0 - - Configures MIO Pin 6 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180018, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_6_L0_SEL_MASK | IOU_SLCR_MIO_PIN_6_L1_SEL_MASK | IOU_SLCR_MIO_PIN_6_L2_SEL_MASK | IOU_SLCR_MIO_PIN_6_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_6_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_7 @ 0XFF18001C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_upper- (QSPI Slave Select upper) - PSU_IOU_SLCR_MIO_PIN_7_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_7_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[7]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[7]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_7_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - tc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, - racedq[5]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_7_L3_SEL 0 - - Configures MIO Pin 7 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18001C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_7_L0_SEL_MASK | IOU_SLCR_MIO_PIN_7_L1_SEL_MASK | IOU_SLCR_MIO_PIN_7_L2_SEL_MASK | IOU_SLCR_MIO_PIN_7_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_7_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_8 @ 0XFF180020

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [0]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_8_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_8_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[8]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[8]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_8_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc - , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tr - ce Port Databus) - PSU_IOU_SLCR_MIO_PIN_8_L3_SEL 0 - - Configures MIO Pin 8 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180020, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_8_L0_SEL_MASK | IOU_SLCR_MIO_PIN_8_L1_SEL_MASK | IOU_SLCR_MIO_PIN_8_L2_SEL_MASK | IOU_SLCR_MIO_PIN_8_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_8_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_9 @ 0XFF180024

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [1]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_9_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_9_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[9]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[9]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_9_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - utput, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (U - RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_9_L3_SEL 0 - - Configures MIO Pin 9 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180024, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_9_L0_SEL_MASK | IOU_SLCR_MIO_PIN_9_L1_SEL_MASK | IOU_SLCR_MIO_PIN_9_L2_SEL_MASK | IOU_SLCR_MIO_PIN_9_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_9_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_10 @ 0XFF180028

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [2]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_10_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_10_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[10]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[10]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_10_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_10_L3_SEL 0 - - Configures MIO Pin 10 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180028, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_10_L0_SEL_MASK | IOU_SLCR_MIO_PIN_10_L1_SEL_MASK | IOU_SLCR_MIO_PIN_10_L2_SEL_MASK | IOU_SLCR_MIO_PIN_10_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_10_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_11 @ 0XFF18002C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [3]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_11_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_11_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[11]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[11]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_11_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_11_L3_SEL 0 - - Configures MIO Pin 11 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18002C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_11_L0_SEL_MASK | IOU_SLCR_MIO_PIN_11_L1_SEL_MASK | IOU_SLCR_MIO_PIN_11_L2_SEL_MASK | IOU_SLCR_MIO_PIN_11_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_11_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_12 @ 0XFF180030

- - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock) - PSU_IOU_SLCR_MIO_PIN_12_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - - PSU_IOU_SLCR_MIO_PIN_12_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[12]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[12]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_12_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cl - ck) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trac - dq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_12_L3_SEL 0 - - Configures MIO Pin 12 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180030, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_12_L0_SEL_MASK | IOU_SLCR_MIO_PIN_12_L1_SEL_MASK | IOU_SLCR_MIO_PIN_12_L2_SEL_MASK | IOU_SLCR_MIO_PIN_12_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_12_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_13 @ 0XFF180034

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_13_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_13_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, test_scan_out[13]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_13_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave - out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Dat - bus) - PSU_IOU_SLCR_MIO_PIN_13_L3_SEL 0 - - Configures MIO Pin 13 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180034, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_13_L0_SEL_MASK | IOU_SLCR_MIO_PIN_13_L1_SEL_MASK | IOU_SLCR_MIO_PIN_13_L2_SEL_MASK | IOU_SLCR_MIO_PIN_13_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_13_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_14 @ 0XFF180038

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_14_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND Command Latch Enable) - PSU_IOU_SLCR_MIO_PIN_14_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, test_scan_out[14]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_14_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_ - n- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_14_L3_SEL 2 - - Configures MIO Pin 14 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180038, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_14_L0_SEL_MASK | IOU_SLCR_MIO_PIN_14_L1_SEL_MASK | IOU_SLCR_MIO_PIN_14_L2_SEL_MASK | IOU_SLCR_MIO_PIN_14_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_14_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_15 @ 0XFF18003C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_15_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND Address Latch Enable) - PSU_IOU_SLCR_MIO_PIN_15_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, test_scan_out[15]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_15_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out - 0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seri - l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_15_L3_SEL 2 - - Configures MIO Pin 15 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18003C, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_15_L0_SEL_MASK | IOU_SLCR_MIO_PIN_15_L1_SEL_MASK | IOU_SLCR_MIO_PIN_15_L2_SEL_MASK | IOU_SLCR_MIO_PIN_15_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_15_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_16 @ 0XFF180040

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_16_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_16_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, test_scan_out[16]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_16_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_16_L3_SEL 2 - - Configures MIO Pin 16 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180040, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_16_L0_SEL_MASK | IOU_SLCR_MIO_PIN_16_L1_SEL_MASK | IOU_SLCR_MIO_PIN_16_L2_SEL_MASK | IOU_SLCR_MIO_PIN_16_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_16_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_17 @ 0XFF180044

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_17_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_17_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, test_scan_out[17]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_17_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_17_L3_SEL 2 - - Configures MIO Pin 17 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180044, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_17_L0_SEL_MASK | IOU_SLCR_MIO_PIN_17_L1_SEL_MASK | IOU_SLCR_MIO_PIN_17_L2_SEL_MASK | IOU_SLCR_MIO_PIN_17_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_17_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_18 @ 0XFF180048

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_18_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_18_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, test_scan_out[18]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_18_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_18_L3_SEL 6 - - Configures MIO Pin 18 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180048, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_18_L0_SEL_MASK | IOU_SLCR_MIO_PIN_18_L1_SEL_MASK | IOU_SLCR_MIO_PIN_18_L2_SEL_MASK | IOU_SLCR_MIO_PIN_18_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_18_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_19 @ 0XFF18004C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_19_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_19_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, test_scan_out[19]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_19_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_19_L3_SEL 6 - - Configures MIO Pin 19 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18004C, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_19_L0_SEL_MASK | IOU_SLCR_MIO_PIN_19_L1_SEL_MASK | IOU_SLCR_MIO_PIN_19_L2_SEL_MASK | IOU_SLCR_MIO_PIN_19_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_19_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_20 @ 0XFF180050

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_20_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_20_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, test_scan_out[20]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_20_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= t - c1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_20_L3_SEL 6 - - Configures MIO Pin 20 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180050, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_20_L0_SEL_MASK | IOU_SLCR_MIO_PIN_20_L1_SEL_MASK | IOU_SLCR_MIO_PIN_20_L2_SEL_MASK | IOU_SLCR_MIO_PIN_20_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_20_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_21 @ 0XFF180054

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_21_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_21_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= test_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, test_scan_out[21]- (Test Scan Port) - = csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_21_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- - UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_21_L3_SEL 6 - - Configures MIO Pin 21 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180054, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_21_L0_SEL_MASK | IOU_SLCR_MIO_PIN_21_L1_SEL_MASK | IOU_SLCR_MIO_PIN_21_L2_SEL_MASK | IOU_SLCR_MIO_PIN_21_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_21_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_22 @ 0XFF180058

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_22_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAND Write Enable) - PSU_IOU_SLCR_MIO_PIN_22_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- - (Test Scan Port) = test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_22_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed - PSU_IOU_SLCR_MIO_PIN_22_L3_SEL 0 - - Configures MIO Pin 22 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180058, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_22_L0_SEL_MASK | IOU_SLCR_MIO_PIN_22_L1_SEL_MASK | IOU_SLCR_MIO_PIN_22_L2_SEL_MASK | IOU_SLCR_MIO_PIN_22_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_22_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_23 @ 0XFF18005C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_23_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_23_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= test_scan, Input, test_scan_in - 23]- (Test Scan Port) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper - - PSU_IOU_SLCR_MIO_PIN_23_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_23_L3_SEL 0 - - Configures MIO Pin 23 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18005C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_23_L0_SEL_MASK | IOU_SLCR_MIO_PIN_23_L1_SEL_MASK | IOU_SLCR_MIO_PIN_23_L2_SEL_MASK | IOU_SLCR_MIO_PIN_23_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_23_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_24 @ 0XFF180060

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_24_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_24_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= test_scan, Input, test - scan_in[24]- (Test Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ex - Tamper) - PSU_IOU_SLCR_MIO_PIN_24_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, - Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_24_L3_SEL 1 - - Configures MIO Pin 24 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180060, 0x000000FEU ,0x00000020U) - RegMask = (IOU_SLCR_MIO_PIN_24_L0_SEL_MASK | IOU_SLCR_MIO_PIN_24_L1_SEL_MASK | IOU_SLCR_MIO_PIN_24_L2_SEL_MASK | IOU_SLCR_MIO_PIN_24_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_24_OFFSET ,0x000000FEU ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_25 @ 0XFF180064

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_25_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAND Read Enable) - PSU_IOU_SLCR_MIO_PIN_25_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= test_scan, Input, - test_scan_in[25]- (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (C - U Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_25_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_out- (TTC Waveform - lock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_25_L3_SEL 1 - - Configures MIO Pin 25 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180064, 0x000000FEU ,0x00000020U) - RegMask = (IOU_SLCR_MIO_PIN_25_L0_SEL_MASK | IOU_SLCR_MIO_PIN_25_L1_SEL_MASK | IOU_SLCR_MIO_PIN_25_L2_SEL_MASK | IOU_SLCR_MIO_PIN_25_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_25_OFFSET ,0x000000FEU ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_26 @ 0XFF180068

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_26_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_26_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[26]- (Test Sc - n Port) = test_scan, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_26_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_26_L3_SEL 0 - - Configures MIO Pin 26 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180068, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_26_L0_SEL_MASK | IOU_SLCR_MIO_PIN_26_L1_SEL_MASK | IOU_SLCR_MIO_PIN_26_L2_SEL_MASK | IOU_SLCR_MIO_PIN_26_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_26_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_27 @ 0XFF18006C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_27_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_27_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[27]- (Test Sc - n Port) = test_scan, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_27_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus) - PSU_IOU_SLCR_MIO_PIN_27_L3_SEL 0 - - Configures MIO Pin 27 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18006C, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_27_L0_SEL_MASK | IOU_SLCR_MIO_PIN_27_L1_SEL_MASK | IOU_SLCR_MIO_PIN_27_L2_SEL_MASK | IOU_SLCR_MIO_PIN_27_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_27_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_28 @ 0XFF180070

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_28_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_28_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[28]- (Test Sc - n Port) = test_scan, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_28_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_28_L3_SEL 0 - - Configures MIO Pin 28 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180070, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_28_L0_SEL_MASK | IOU_SLCR_MIO_PIN_28_L1_SEL_MASK | IOU_SLCR_MIO_PIN_28_L2_SEL_MASK | IOU_SLCR_MIO_PIN_28_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_28_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_29 @ 0XFF180074

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_29_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_29_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[29]- (Test Sc - n Port) = test_scan, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_29_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_29_L3_SEL 0 - - Configures MIO Pin 29 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180074, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_29_L0_SEL_MASK | IOU_SLCR_MIO_PIN_29_L1_SEL_MASK | IOU_SLCR_MIO_PIN_29_L2_SEL_MASK | IOU_SLCR_MIO_PIN_29_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_29_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_30 @ 0XFF180078

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_30_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_30_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[30]- (Test Sc - n Port) = test_scan, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_30_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_so - (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output - tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_30_L3_SEL 0 - - Configures MIO Pin 30 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180078, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_30_L0_SEL_MASK | IOU_SLCR_MIO_PIN_30_L1_SEL_MASK | IOU_SLCR_MIO_PIN_30_L2_SEL_MASK | IOU_SLCR_MIO_PIN_30_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_30_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_31 @ 0XFF18007C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_31_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_31_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[31]- (Test Sc - n Port) = test_scan, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_31_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi - _si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial out - ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_31_L3_SEL 0 - - Configures MIO Pin 31 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18007C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_31_L0_SEL_MASK | IOU_SLCR_MIO_PIN_31_L1_SEL_MASK | IOU_SLCR_MIO_PIN_31_L2_SEL_MASK | IOU_SLCR_MIO_PIN_31_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_31_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_32 @ 0XFF180080

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_32_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - - PSU_IOU_SLCR_MIO_PIN_32_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[32]- (Test S - an Port) = test_scan, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_32_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi - _sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= - race, Output, tracedq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_32_L3_SEL 0 - - Configures MIO Pin 32 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180080, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_32_L0_SEL_MASK | IOU_SLCR_MIO_PIN_32_L1_SEL_MASK | IOU_SLCR_MIO_PIN_32_L2_SEL_MASK | IOU_SLCR_MIO_PIN_32_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_32_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_33 @ 0XFF180084

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_33_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_33_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[33]- (Test S - an Port) = test_scan, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_33_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= t - c3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, traced - [11]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_33_L3_SEL 0 - - Configures MIO Pin 33 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180084, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_33_L0_SEL_MASK | IOU_SLCR_MIO_PIN_33_L1_SEL_MASK | IOU_SLCR_MIO_PIN_33_L2_SEL_MASK | IOU_SLCR_MIO_PIN_33_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_33_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_34 @ 0XFF180088

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_34_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_34_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[34]- (Test S - an Port) = test_scan, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_34_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc2 - Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace P - rt Databus) - PSU_IOU_SLCR_MIO_PIN_34_L3_SEL 0 - - Configures MIO Pin 34 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180088, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_34_L0_SEL_MASK | IOU_SLCR_MIO_PIN_34_L1_SEL_MASK | IOU_SLCR_MIO_PIN_34_L2_SEL_MASK | IOU_SLCR_MIO_PIN_34_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_34_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_35 @ 0XFF18008C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_35_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_35_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[35]- (Test S - an Port) = test_scan, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_35_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- - UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_35_L3_SEL 0 - - Configures MIO Pin 35 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18008C, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_35_L0_SEL_MASK | IOU_SLCR_MIO_PIN_35_L1_SEL_MASK | IOU_SLCR_MIO_PIN_35_L2_SEL_MASK | IOU_SLCR_MIO_PIN_35_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_35_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_36 @ 0XFF180090

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_36_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_36_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[36]- (Test S - an Port) = test_scan, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_36_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_36_L3_SEL 0 - - Configures MIO Pin 36 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180090, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_36_L0_SEL_MASK | IOU_SLCR_MIO_PIN_36_L1_SEL_MASK | IOU_SLCR_MIO_PIN_36_L2_SEL_MASK | IOU_SLCR_MIO_PIN_36_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_36_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_37 @ 0XFF180094

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_37_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_37_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[37]- (Test S - an Port) = test_scan, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_37_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_37_L3_SEL 0 - - Configures MIO Pin 37 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180094, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_37_L0_SEL_MASK | IOU_SLCR_MIO_PIN_37_L1_SEL_MASK | IOU_SLCR_MIO_PIN_37_L2_SEL_MASK | IOU_SLCR_MIO_PIN_37_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_37_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_38 @ 0XFF180098

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_38_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_38_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_38_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clo - k) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- - (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_38_L3_SEL 0 - - Configures MIO Pin 38 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180098, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_38_L0_SEL_MASK | IOU_SLCR_MIO_PIN_38_L1_SEL_MASK | IOU_SLCR_MIO_PIN_38_L2_SEL_MASK | IOU_SLCR_MIO_PIN_38_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_38_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_39 @ 0XFF18009C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_39_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_39_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= sd1, Input, sd1_data_i - [4]- (8-bit Data bus) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, Output, ttc0_wav - _out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port - Control Signal) - PSU_IOU_SLCR_MIO_PIN_39_L3_SEL 0 - - Configures MIO Pin 39 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_39_L0_SEL_MASK | IOU_SLCR_MIO_PIN_39_L1_SEL_MASK | IOU_SLCR_MIO_PIN_39_L2_SEL_MASK | IOU_SLCR_MIO_PIN_39_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_39_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_40 @ 0XFF1800A0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_40_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_40_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= sd1, Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[5]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3, Input, ttc3_clk - in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_40_L3_SEL 0 - - Configures MIO Pin 40 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_40_L0_SEL_MASK | IOU_SLCR_MIO_PIN_40_L1_SEL_MASK | IOU_SLCR_MIO_PIN_40_L2_SEL_MASK | IOU_SLCR_MIO_PIN_40_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_40_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_41 @ 0XFF1800A4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_41_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_41_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_out[6]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[ - ]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in - ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_41_L3_SEL 0 - - Configures MIO Pin 41 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_41_L0_SEL_MASK | IOU_SLCR_MIO_PIN_41_L1_SEL_MASK | IOU_SLCR_MIO_PIN_41_L2_SEL_MASK | IOU_SLCR_MIO_PIN_41_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_41_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_42 @ 0XFF1800A8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_42_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_42_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_out[7]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_42_L3_SEL 0 - - Configures MIO Pin 42 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_42_L0_SEL_MASK | IOU_SLCR_MIO_PIN_42_L1_SEL_MASK | IOU_SLCR_MIO_PIN_42_L2_SEL_MASK | IOU_SLCR_MIO_PIN_42_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_42_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_43 @ 0XFF1800AC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_43_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_43_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, s - i0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_43_L3_SEL 0 - - Configures MIO Pin 43 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_43_L0_SEL_MASK | IOU_SLCR_MIO_PIN_43_L1_SEL_MASK | IOU_SLCR_MIO_PIN_43_L2_SEL_MASK | IOU_SLCR_MIO_PIN_43_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_43_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_44 @ 0XFF1800B0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_44_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_44_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_44_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, s - i1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - Not Used - PSU_IOU_SLCR_MIO_PIN_44_L3_SEL 0 - - Configures MIO Pin 44 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B0, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_44_L0_SEL_MASK | IOU_SLCR_MIO_PIN_44_L1_SEL_MASK | IOU_SLCR_MIO_PIN_44_L2_SEL_MASK | IOU_SLCR_MIO_PIN_44_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_44_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_45 @ 0XFF1800B4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_45_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L3_SEL 0 - - Configures MIO Pin 45 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B4, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_45_L0_SEL_MASK | IOU_SLCR_MIO_PIN_45_L1_SEL_MASK | IOU_SLCR_MIO_PIN_45_L2_SEL_MASK | IOU_SLCR_MIO_PIN_45_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_45_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_46 @ 0XFF1800B8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_46_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= tt - 0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L3_SEL 0 - - Configures MIO Pin 46 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B8, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_46_L0_SEL_MASK | IOU_SLCR_MIO_PIN_46_L1_SEL_MASK | IOU_SLCR_MIO_PIN_46_L2_SEL_MASK | IOU_SLCR_MIO_PIN_46_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_46_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_47 @ 0XFF1800BC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_47_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L3_SEL 0 - - Configures MIO Pin 47 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800BC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_47_L0_SEL_MASK | IOU_SLCR_MIO_PIN_47_L1_SEL_MASK | IOU_SLCR_MIO_PIN_47_L2_SEL_MASK | IOU_SLCR_MIO_PIN_47_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_47_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_48 @ 0XFF1800C0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_48_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_48_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_48_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not U - ed - PSU_IOU_SLCR_MIO_PIN_48_L3_SEL 0 - - Configures MIO Pin 48 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C0, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_48_L0_SEL_MASK | IOU_SLCR_MIO_PIN_48_L1_SEL_MASK | IOU_SLCR_MIO_PIN_48_L2_SEL_MASK | IOU_SLCR_MIO_PIN_48_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_48_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_49 @ 0XFF1800C4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_49_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8 - bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L3_SEL 0 - - Configures MIO Pin 49 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C4, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_49_L0_SEL_MASK | IOU_SLCR_MIO_PIN_49_L1_SEL_MASK | IOU_SLCR_MIO_PIN_49_L2_SEL_MASK | IOU_SLCR_MIO_PIN_49_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_49_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_50 @ 0XFF1800C8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) - PSU_IOU_SLCR_MIO_PIN_50_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Input, sd1_c - d_in- (Command Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= ttc2, Input, ttc2 - clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L3_SEL 0 - - Configures MIO Pin 50 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C8, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_50_L0_SEL_MASK | IOU_SLCR_MIO_PIN_50_L1_SEL_MASK | IOU_SLCR_MIO_PIN_50_L2_SEL_MASK | IOU_SLCR_MIO_PIN_50_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_50_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_51 @ 0XFF1800CC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) - PSU_IOU_SLCR_MIO_PIN_51_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdio1_clk_out- (SDSDIO clock) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Data) 4= mdio1, Outp - t, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter - serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L3_SEL 0 - - Configures MIO Pin 51 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800CC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_51_L0_SEL_MASK | IOU_SLCR_MIO_PIN_51_L1_SEL_MASK | IOU_SLCR_MIO_PIN_51_L2_SEL_MASK | IOU_SLCR_MIO_PIN_51_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_51_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_52 @ 0XFF1800D0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_52_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_in- (ULPI Clock) - PSU_IOU_SLCR_MIO_PIN_52_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_52_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_52_L3_SEL 0 - - Configures MIO Pin 52 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_52_L0_SEL_MASK | IOU_SLCR_MIO_PIN_52_L1_SEL_MASK | IOU_SLCR_MIO_PIN_52_L2_SEL_MASK | IOU_SLCR_MIO_PIN_52_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_52_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_53 @ 0XFF1800D4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_53_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control) - PSU_IOU_SLCR_MIO_PIN_53_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_53_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal) - PSU_IOU_SLCR_MIO_PIN_53_L3_SEL 0 - - Configures MIO Pin 53 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_53_L0_SEL_MASK | IOU_SLCR_MIO_PIN_53_L1_SEL_MASK | IOU_SLCR_MIO_PIN_53_L2_SEL_MASK | IOU_SLCR_MIO_PIN_53_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_53_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_54 @ 0XFF1800D8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_54_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[2]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_54_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_54_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_54_L3_SEL 0 - - Configures MIO Pin 54 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_54_L0_SEL_MASK | IOU_SLCR_MIO_PIN_54_L1_SEL_MASK | IOU_SLCR_MIO_PIN_54_L2_SEL_MASK | IOU_SLCR_MIO_PIN_54_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_54_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_55 @ 0XFF1800DC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_55_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY) - PSU_IOU_SLCR_MIO_PIN_55_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_55_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_55_L3_SEL 0 - - Configures MIO Pin 55 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800DC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_55_L0_SEL_MASK | IOU_SLCR_MIO_PIN_55_L1_SEL_MASK | IOU_SLCR_MIO_PIN_55_L2_SEL_MASK | IOU_SLCR_MIO_PIN_55_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_55_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_56 @ 0XFF1800E0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_56_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[0]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_56_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_56_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_56_L3_SEL 0 - - Configures MIO Pin 56 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_56_L0_SEL_MASK | IOU_SLCR_MIO_PIN_56_L1_SEL_MASK | IOU_SLCR_MIO_PIN_56_L2_SEL_MASK | IOU_SLCR_MIO_PIN_56_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_56_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_57 @ 0XFF1800E4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_57_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[1]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_57_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_57_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_57_L3_SEL 0 - - Configures MIO Pin 57 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_57_L0_SEL_MASK | IOU_SLCR_MIO_PIN_57_L1_SEL_MASK | IOU_SLCR_MIO_PIN_57_L2_SEL_MASK | IOU_SLCR_MIO_PIN_57_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_57_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_58 @ 0XFF1800E8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_58_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers) - PSU_IOU_SLCR_MIO_PIN_58_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_58_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_58_L3_SEL 0 - - Configures MIO Pin 58 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_58_L0_SEL_MASK | IOU_SLCR_MIO_PIN_58_L1_SEL_MASK | IOU_SLCR_MIO_PIN_58_L2_SEL_MASK | IOU_SLCR_MIO_PIN_58_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_58_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_59 @ 0XFF1800EC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_59_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[3]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_59_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_59_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus) - PSU_IOU_SLCR_MIO_PIN_59_L3_SEL 0 - - Configures MIO Pin 59 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800EC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_59_L0_SEL_MASK | IOU_SLCR_MIO_PIN_59_L1_SEL_MASK | IOU_SLCR_MIO_PIN_59_L2_SEL_MASK | IOU_SLCR_MIO_PIN_59_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_59_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_60 @ 0XFF1800F0

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_60_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[4]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_60_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_60_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_60_L3_SEL 0 - - Configures MIO Pin 60 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_60_L0_SEL_MASK | IOU_SLCR_MIO_PIN_60_L1_SEL_MASK | IOU_SLCR_MIO_PIN_60_L2_SEL_MASK | IOU_SLCR_MIO_PIN_60_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_60_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_61 @ 0XFF1800F4

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_61_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[5]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_61_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_61_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, spi1_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_61_L3_SEL 0 - - Configures MIO Pin 61 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_61_L0_SEL_MASK | IOU_SLCR_MIO_PIN_61_L1_SEL_MASK | IOU_SLCR_MIO_PIN_61_L2_SEL_MASK | IOU_SLCR_MIO_PIN_61_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_61_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_62 @ 0XFF1800F8

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_62_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[6]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_62_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_62_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_62_L3_SEL 0 - - Configures MIO Pin 62 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_62_L0_SEL_MASK | IOU_SLCR_MIO_PIN_62_L1_SEL_MASK | IOU_SLCR_MIO_PIN_62_L2_SEL_MASK | IOU_SLCR_MIO_PIN_62_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_62_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_63 @ 0XFF1800FC

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_63_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[7]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_63_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_63_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_63_L3_SEL 0 - - Configures MIO Pin 63 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800FC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_63_L0_SEL_MASK | IOU_SLCR_MIO_PIN_63_L1_SEL_MASK | IOU_SLCR_MIO_PIN_63_L2_SEL_MASK | IOU_SLCR_MIO_PIN_63_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_63_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_64 @ 0XFF180100

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_64_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_in- (ULPI Clock) - PSU_IOU_SLCR_MIO_PIN_64_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_64_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, s - i0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - trace, Output, tracedq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_64_L3_SEL 0 - - Configures MIO Pin 64 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180100, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_64_L0_SEL_MASK | IOU_SLCR_MIO_PIN_64_L1_SEL_MASK | IOU_SLCR_MIO_PIN_64_L2_SEL_MASK | IOU_SLCR_MIO_PIN_64_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_64_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_65 @ 0XFF180104

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_65_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) - PSU_IOU_SLCR_MIO_PIN_65_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_65_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= - ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trac - dq[11]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_65_L3_SEL 0 - - Configures MIO Pin 65 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180104, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_65_L0_SEL_MASK | IOU_SLCR_MIO_PIN_65_L1_SEL_MASK | IOU_SLCR_MIO_PIN_65_L2_SEL_MASK | IOU_SLCR_MIO_PIN_65_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_65_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_66 @ 0XFF180108

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_66_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[2]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_66_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_66_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= tt - 2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace - Port Databus) - PSU_IOU_SLCR_MIO_PIN_66_L3_SEL 0 - - Configures MIO Pin 66 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180108, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_66_L0_SEL_MASK | IOU_SLCR_MIO_PIN_66_L1_SEL_MASK | IOU_SLCR_MIO_PIN_66_L2_SEL_MASK | IOU_SLCR_MIO_PIN_66_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_66_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_67 @ 0XFF18010C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_67_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) - PSU_IOU_SLCR_MIO_PIN_67_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_67_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_67_L3_SEL 0 - - Configures MIO Pin 67 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18010C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_67_L0_SEL_MASK | IOU_SLCR_MIO_PIN_67_L1_SEL_MASK | IOU_SLCR_MIO_PIN_67_L2_SEL_MASK | IOU_SLCR_MIO_PIN_67_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_67_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_68 @ 0XFF180110

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_68_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[0]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_68_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_68_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_68_L3_SEL 0 - - Configures MIO Pin 68 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180110, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_68_L0_SEL_MASK | IOU_SLCR_MIO_PIN_68_L1_SEL_MASK | IOU_SLCR_MIO_PIN_68_L2_SEL_MASK | IOU_SLCR_MIO_PIN_68_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_68_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_69 @ 0XFF180114

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_69_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[1]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_69_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_69_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_69_L3_SEL 0 - - Configures MIO Pin 69 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180114, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_69_L0_SEL_MASK | IOU_SLCR_MIO_PIN_69_L1_SEL_MASK | IOU_SLCR_MIO_PIN_69_L2_SEL_MASK | IOU_SLCR_MIO_PIN_69_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_69_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_70 @ 0XFF180118

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_70_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) - PSU_IOU_SLCR_MIO_PIN_70_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_70_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed - PSU_IOU_SLCR_MIO_PIN_70_L3_SEL 0 - - Configures MIO Pin 70 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180118, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_70_L0_SEL_MASK | IOU_SLCR_MIO_PIN_70_L1_SEL_MASK | IOU_SLCR_MIO_PIN_70_L2_SEL_MASK | IOU_SLCR_MIO_PIN_70_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_70_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_71 @ 0XFF18011C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_71_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[3]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_71_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_71_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_71_L3_SEL 0 - - Configures MIO Pin 71 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18011C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_71_L0_SEL_MASK | IOU_SLCR_MIO_PIN_71_L1_SEL_MASK | IOU_SLCR_MIO_PIN_71_L2_SEL_MASK | IOU_SLCR_MIO_PIN_71_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_71_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_72 @ 0XFF180120

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_72_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[4]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_72_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_72_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= N - t Used 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_72_L3_SEL 0 - - Configures MIO Pin 72 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180120, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_72_L0_SEL_MASK | IOU_SLCR_MIO_PIN_72_L1_SEL_MASK | IOU_SLCR_MIO_PIN_72_L2_SEL_MASK | IOU_SLCR_MIO_PIN_72_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_72_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_73 @ 0XFF180124

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_73_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[5]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_73_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_73_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_73_L3_SEL 0 - - Configures MIO Pin 73 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180124, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_73_L0_SEL_MASK | IOU_SLCR_MIO_PIN_73_L1_SEL_MASK | IOU_SLCR_MIO_PIN_73_L2_SEL_MASK | IOU_SLCR_MIO_PIN_73_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_73_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_74 @ 0XFF180128

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_74_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[6]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_74_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_74_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_74_L3_SEL 0 - - Configures MIO Pin 74 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180128, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_74_L0_SEL_MASK | IOU_SLCR_MIO_PIN_74_L1_SEL_MASK | IOU_SLCR_MIO_PIN_74_L2_SEL_MASK | IOU_SLCR_MIO_PIN_74_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_74_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_75 @ 0XFF18012C

- - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_75_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[7]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_75_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Comma - d Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_75_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_75_L3_SEL 0 - - Configures MIO Pin 75 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18012C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_75_L0_SEL_MASK | IOU_SLCR_MIO_PIN_75_L1_SEL_MASK | IOU_SLCR_MIO_PIN_75_L2_SEL_MASK | IOU_SLCR_MIO_PIN_75_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_75_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_76 @ 0XFF180130

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Output, sdio - _clk_out- (SDSDIO clock) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= mdio0, Output, gem0_mdc- (MDIO Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2_mdc- (MDIO Clock - 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L3_SEL 6 - - Configures MIO Pin 76 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180130, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_76_L0_SEL_MASK | IOU_SLCR_MIO_PIN_76_L1_SEL_MASK | IOU_SLCR_MIO_PIN_76_L2_SEL_MASK | IOU_SLCR_MIO_PIN_76_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_76_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_77 @ 0XFF180134

- - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= mdio0, Input, gem0_mdio_in- (MDIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, gem1_mdio_in- (MD - O Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_o - t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Output, gem3_mdio_out- (MDIO Data) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L3_SEL 6 - - Configures MIO Pin 77 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180134, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_77_L0_SEL_MASK | IOU_SLCR_MIO_PIN_77_L1_SEL_MASK | IOU_SLCR_MIO_PIN_77_L2_SEL_MASK | IOU_SLCR_MIO_PIN_77_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_77_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI0 @ 0XFF180204

- - Master Tri-state Enable for pin 0, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI 0 - - Master Tri-state Enable for pin 1, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI 0 - - Master Tri-state Enable for pin 2, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI 0 - - Master Tri-state Enable for pin 3, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI 0 - - Master Tri-state Enable for pin 4, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI 0 - - Master Tri-state Enable for pin 5, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI 0 - - Master Tri-state Enable for pin 6, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI 0 - - Master Tri-state Enable for pin 7, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI 0 - - Master Tri-state Enable for pin 8, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI 0 - - Master Tri-state Enable for pin 9, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI 0 - - Master Tri-state Enable for pin 10, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI 0 - - Master Tri-state Enable for pin 11, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI 0 - - Master Tri-state Enable for pin 12, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI 0 - - Master Tri-state Enable for pin 13, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI 0 - - Master Tri-state Enable for pin 14, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI 0 - - Master Tri-state Enable for pin 15, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI 0 - - Master Tri-state Enable for pin 16, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI 0 - - Master Tri-state Enable for pin 17, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI 0 - - Master Tri-state Enable for pin 18, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI 1 - - Master Tri-state Enable for pin 19, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI 0 - - Master Tri-state Enable for pin 20, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI 0 - - Master Tri-state Enable for pin 21, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI 1 - - Master Tri-state Enable for pin 22, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI 0 - - Master Tri-state Enable for pin 23, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI 0 - - Master Tri-state Enable for pin 24, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI 0 - - Master Tri-state Enable for pin 25, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI 1 - - Master Tri-state Enable for pin 26, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI 0 - - Master Tri-state Enable for pin 27, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI 0 - - Master Tri-state Enable for pin 28, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI 1 - - Master Tri-state Enable for pin 29, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI 0 - - Master Tri-state Enable for pin 30, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI 1 - - Master Tri-state Enable for pin 31, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI 0 - - MIO pin Tri-state Enables, 31:0 - (OFFSET, MASK, VALUE) (0XFF180204, 0xFFFFFFFFU ,0x52240000U) - RegMask = (IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI0_OFFSET ,0xFFFFFFFFU ,0x52240000U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI1 @ 0XFF180208

- - Master Tri-state Enable for pin 32, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI 0 - - Master Tri-state Enable for pin 33, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI 0 - - Master Tri-state Enable for pin 34, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI 0 - - Master Tri-state Enable for pin 35, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI 0 - - Master Tri-state Enable for pin 36, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI 0 - - Master Tri-state Enable for pin 37, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI 0 - - Master Tri-state Enable for pin 38, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI 0 - - Master Tri-state Enable for pin 39, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI 0 - - Master Tri-state Enable for pin 40, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI 0 - - Master Tri-state Enable for pin 41, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI 0 - - Master Tri-state Enable for pin 42, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI 0 - - Master Tri-state Enable for pin 43, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI 0 - - Master Tri-state Enable for pin 44, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI 1 - - Master Tri-state Enable for pin 45, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI 1 - - Master Tri-state Enable for pin 46, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI 0 - - Master Tri-state Enable for pin 47, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI 0 - - Master Tri-state Enable for pin 48, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI 0 - - Master Tri-state Enable for pin 49, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI 0 - - Master Tri-state Enable for pin 50, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI 0 - - Master Tri-state Enable for pin 51, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI 0 - - Master Tri-state Enable for pin 52, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI 1 - - Master Tri-state Enable for pin 53, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI 1 - - Master Tri-state Enable for pin 54, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI 0 - - Master Tri-state Enable for pin 55, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI 1 - - Master Tri-state Enable for pin 56, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI 0 - - Master Tri-state Enable for pin 57, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI 0 - - Master Tri-state Enable for pin 58, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI 0 - - Master Tri-state Enable for pin 59, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI 0 - - Master Tri-state Enable for pin 60, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI 0 - - Master Tri-state Enable for pin 61, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI 0 - - Master Tri-state Enable for pin 62, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI 0 - - Master Tri-state Enable for pin 63, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI 0 - - MIO pin Tri-state Enables, 63:32 - (OFFSET, MASK, VALUE) (0XFF180208, 0xFFFFFFFFU ,0x00B03000U) - RegMask = (IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI1_OFFSET ,0xFFFFFFFFU ,0x00B03000U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI2 @ 0XFF18020C

- - Master Tri-state Enable for pin 64, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI 0 - - Master Tri-state Enable for pin 65, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI 0 - - Master Tri-state Enable for pin 66, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI 0 - - Master Tri-state Enable for pin 67, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI 0 - - Master Tri-state Enable for pin 68, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI 0 - - Master Tri-state Enable for pin 69, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI 0 - - Master Tri-state Enable for pin 70, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI 1 - - Master Tri-state Enable for pin 71, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI 1 - - Master Tri-state Enable for pin 72, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI 1 - - Master Tri-state Enable for pin 73, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI 1 - - Master Tri-state Enable for pin 74, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI 1 - - Master Tri-state Enable for pin 75, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI 1 - - Master Tri-state Enable for pin 76, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI 0 - - Master Tri-state Enable for pin 77, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI 0 - - MIO pin Tri-state Enables, 77:64 - (OFFSET, MASK, VALUE) (0XFF18020C, 0x00003FFFU ,0x00000FC0U) - RegMask = (IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI2_OFFSET ,0x00003FFFU ,0x00000FC0U); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl0 @ 0XFF180138

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180138, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl1 @ 0XFF18013C

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF18013C, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl3 @ 0XFF180140

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180140, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl4 @ 0XFF180144

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank0_pull_enable is set, this selects pull up or pull down for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180144, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl5 @ 0XFF180148

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank0_pullupdown to selects pull up or pull down for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180148, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl6 @ 0XFF18014C

- - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF18014C, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl0 @ 0XFF180154

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180154, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl1 @ 0XFF180158

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180158, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl3 @ 0XFF18015C

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF18015C, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl4 @ 0XFF180160

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank1_pull_enable is set, this selects pull up or pull down for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180160, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl5 @ 0XFF180164

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank1_pullupdown to selects pull up or pull down for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180164, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl6 @ 0XFF180168

- - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180168, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl0 @ 0XFF180170

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180170, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl1 @ 0XFF180174

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180174, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl3 @ 0XFF180178

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180178, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl4 @ 0XFF18017C

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank2_pull_enable is set, this selects pull up or pull down for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF18017C, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl5 @ 0XFF180180

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank2_pullupdown to selects pull up or pull down for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180180, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl6 @ 0XFF180184

- - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180184, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : LOOPBACK - /*Register : MIO_LOOPBACK @ 0XFF180200

- - I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outp - ts to I2C 0 inputs. - PSU_IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1 0 - - CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 R - . - PSU_IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1 0 - - UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 - outputs to UART 0 inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD and RI not used. - PSU_IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1 0 - - SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outp - ts to SPI 0 inputs. The other SPI core will appear on the LS Slave Select. - PSU_IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1 0 - - Loopback function within MIO - (OFFSET, MASK, VALUE) (0XFF180200, 0x0000000FU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK | IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK | IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK | IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_LOOPBACK_OFFSET ,0x0000000FU ,0x00000000U); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_peripherals_init_data() { - // : RESET BLOCKS - // : TIMESTAMP - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+unsigned long psu_mio_init_data(void) +{ + /* + * MIO PROGRAMMING + */ + /* + * Register : MIO_PIN_0 @ 0XFF180000 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- + * (QSPI Clock) + * PSU_IOU_SLCR_MIO_PIN_0_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_0_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[0]- (Test Scan Port) = test_scan, Output, test_scan_out[0 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_0_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_0_L3_SEL 0 + + * Configures MIO Pin 0 peripheral interface mapping. S + * (OFFSET, MASK, VALUE) (0XFF180000, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_0_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_1 @ 0XFF180004 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (Q + * SPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_1_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_1_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[1]- (Test Scan Port) = test_scan, Output, test_scan_out[1 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_1_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Ou + * tput, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) + * PSU_IOU_SLCR_MIO_PIN_1_L3_SEL 0 + + * Configures MIO Pin 1 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180004, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_1_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_2 @ 0XFF180008 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI + * Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_2_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_2_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[2]- (Test Scan Port) = test_scan, Output, test_scan_out[2 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_2_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, I + * nput, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_2_L3_SEL 0 + + * Configures MIO Pin 2 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180008, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_2_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_3 @ 0XFF18000C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI + * Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_3_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_3_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[3]- (Test Scan Port) = test_scan, Output, test_scan_out[3 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_3_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_3_L3_SEL 0 + + * Configures MIO Pin 3 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18000C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_3_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_4 @ 0XFF180010 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- ( + * QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_4_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_4_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[4]- (Test Scan Port) = test_scan, Output, test_scan_out[4 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_4_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_4_L3_SEL 0 + + * Configures MIO Pin 4 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180010, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_4_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_5 @ 0XFF180014 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- + * (QSPI Slave Select) + * PSU_IOU_SLCR_MIO_PIN_5_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_5_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[5]- (Test Scan Port) = test_scan, Output, test_scan_out[5 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_5_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_5_L3_SEL 0 + + * Configures MIO Pin 5 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180014, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_5_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_6 @ 0XFF180018 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_l + * pbk- (QSPI Clock to be fed-back) + * PSU_IOU_SLCR_MIO_PIN_6_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_6_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[6]- (Test Scan Port) = test_scan, Output, test_scan_out[6 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_6_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= s + * pi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TT + * C Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, + * Output, tracedq[4]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_6_L3_SEL 0 + + * Configures MIO Pin 6 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180018, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_6_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_7 @ 0XFF18001C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_ + * upper- (QSPI Slave Select upper) + * PSU_IOU_SLCR_MIO_PIN_7_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_7_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[7]- (Test Scan Port) = test_scan, Output, test_scan_out[7 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_7_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Ma + * ster Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua + * 0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, t + * racedq[5]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_7_L3_SEL 0 + + * Configures MIO Pin 7 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18001C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_7_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_8 @ 0XFF180020 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_8_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_8_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[8]- (Test Scan Port) = test_scan, Output, test_scan_out[8 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_8_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Maste + * r Selects) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_ + * txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tra + * ce Port Databus) + * PSU_IOU_SLCR_MIO_PIN_8_L3_SEL 0 + + * Configures MIO Pin 8 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180020, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_8_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_9 @ 0XFF180024 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_9_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_9_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[9]- (Test Scan Port) = test_scan, Output, test_scan_out[9 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_9_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master S + * elects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, + * Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UA + * RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Data + * bus) + * PSU_IOU_SLCR_MIO_PIN_9_L3_SEL 0 + + * Configures MIO Pin 9 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180024, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_9_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_10 @ 0XFF180028 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_10_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_10_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[10]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 10]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_10_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_10_L3_SEL 0 + + * Configures MIO Pin 10 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180028, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_10_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_11 @ 0XFF18002C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_11_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_11_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[11]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 11]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_11_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_11_L3_SEL 0 + + * Configures MIO Pin 11 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18002C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_11_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_12 @ 0XFF180030 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_ + * upper- (QSPI Upper Clock) + * PSU_IOU_SLCR_MIO_PIN_12_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) + * PSU_IOU_SLCR_MIO_PIN_12_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[12]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 12]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_12_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJT + * AG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_ + * sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, O + * utput, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace + * dq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_12_L3_SEL 0 + + * Configures MIO Pin 12 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180030, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_12_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_13 @ 0XFF180034 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_13_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_13_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, + * test_scan_out[13]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_13_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTA + * G TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, + * Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UAR + * T receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Data + * bus) + * PSU_IOU_SLCR_MIO_PIN_13_L3_SEL 0 + + * Configures MIO Pin 13 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180034, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_13_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_14 @ 0XFF180038 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_14_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND + * Command Latch Enable) + * PSU_IOU_SLCR_MIO_PIN_14_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, + * test_scan_out[14]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_14_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJT + * AG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, + * Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver + * serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_14_L3_SEL 2 + + * Configures MIO Pin 14 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180038, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_14_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_15 @ 0XFF18003C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_15_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND + * Address Latch Enable) + * PSU_IOU_SLCR_MIO_PIN_15_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, + * test_scan_out[15]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_15_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJT + * AG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outp + * ut, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_ou + * t- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seria + * l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_15_L3_SEL 2 + + * Configures MIO Pin 15 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18003C, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_15_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_16 @ 0XFF180040 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_16_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_16_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, + * test_scan_out[16]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_16_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_16_L3_SEL 2 + + * Configures MIO Pin 16 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180040, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_16_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_17 @ 0XFF180044 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_17_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_17_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, + * test_scan_out[17]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_17_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_17_L3_SEL 2 + + * Configures MIO Pin 17 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180044, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_17_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_18 @ 0XFF180048 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_18_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_18_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, + * test_scan_out[18]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_18_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_18_L3_SEL 6 + + * Configures MIO Pin 18 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180048, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_18_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_19 @ 0XFF18004C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_19_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_19_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, + * test_scan_out[19]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_19_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_19_L3_SEL 6 + + * Configures MIO Pin 19 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18004C, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_19_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_20 @ 0XFF180050 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_20_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_20_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, + * test_scan_out[20]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_20_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua + * 1_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_20_L3_SEL 6 + + * Configures MIO Pin 20 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180050, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_20_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_21 @ 0XFF180054 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_21_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_21_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= tes + * t_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, t + * est_scan_out[21]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU E + * xt Tamper) + * PSU_IOU_SLCR_MIO_PIN_21_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc + * 1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- ( + * UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_21_L3_SEL 6 + + * Configures MIO Pin 21 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180054, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_21_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_22 @ 0XFF180058 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_22_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAN + * D Write Enable) + * PSU_IOU_SLCR_MIO_PIN_22_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- (Test Scan Port) = + * test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, c + * su_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_22_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed + * PSU_IOU_SLCR_MIO_PIN_22_L3_SEL 0 + + * Configures MIO Pin 22 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180058, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_22_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_23 @ 0XFF18005C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_23_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_23_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= test_scan, Input, test_scan_in[23]- (Test Scan Po + * rt) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Inp + * ut, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_23_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_23_L3_SEL 0 + + * Configures MIO Pin 23 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18005C, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_23_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_24 @ 0XFF180060 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_24_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_24_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= test_scan, Input, test_scan_in[24]- (Test + * Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= + * csu, Input, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_24_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= N + * ot Used + * PSU_IOU_SLCR_MIO_PIN_24_L3_SEL 1 + + * Configures MIO Pin 24 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180060, 0x000000FEU ,0x00000020U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_24_OFFSET, 0x000000FEU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_25 @ 0XFF180064 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_25_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAN + * D Read Enable) + * PSU_IOU_SLCR_MIO_PIN_25_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= test_scan, Input, test_scan_in[25]- + * (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port + * ) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_25_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_ou + * t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in + * put) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_25_L3_SEL 1 + + * Configures MIO Pin 25 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180064, 0x000000FEU ,0x00000020U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_25_OFFSET, 0x000000FEU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_26 @ 0XFF180068 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_26_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_26_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[26]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_26_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_26_L3_SEL 0 + + * Configures MIO Pin 26 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180068, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_26_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_27 @ 0XFF18006C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_27_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_27_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[27]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_27_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_27_L3_SEL 0 + + * Configures MIO Pin 27 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18006C, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_27_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_28 @ 0XFF180070 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_28_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_28_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[28]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_28_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_28_L3_SEL 0 + + * Configures MIO Pin 28 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180070, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_28_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_29 @ 0XFF180074 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_29_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_29_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[29]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_29_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, + * spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_29_L3_SEL 0 + + * Configures MIO Pin 29 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180074, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_29_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_30 @ 0XFF180078 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_30_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_30_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[30]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_30_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0 + * , Output, spi0_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock + * ) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, + * tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_30_L3_SEL 0 + + * Configures MIO Pin 30 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180078, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_30_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_31 @ 0XFF18007C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_31_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_31_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[31]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_31_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TT + * C Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial outp + * ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_31_L3_SEL 0 + + * Configures MIO Pin 31 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18007C, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_31_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_32 @ 0XFF180080 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_32_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) + * PSU_IOU_SLCR_MIO_PIN_32_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[32]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_32_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= t + * race, Output, tracedq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_32_L3_SEL 0 + + * Configures MIO Pin 32 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180080, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_32_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_33 @ 0XFF180084 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_33_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_33_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[33]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_33_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Mas + * ter Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1 + * , Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq + * [11]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_33_L3_SEL 0 + + * Configures MIO Pin 33 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180084, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_33_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_34 @ 0XFF180088 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_34_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_34_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[34]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_34_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master + * Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rx + * d- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Po + * rt Databus) + * PSU_IOU_SLCR_MIO_PIN_34_L3_SEL 0 + + * Configures MIO Pin 34 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180088, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_34_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_35 @ 0XFF18008C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_35_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_35_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[35]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_35_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2 + * , Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- ( + * UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Po + * rt Databus) + * PSU_IOU_SLCR_MIO_PIN_35_L3_SEL 0 + + * Configures MIO Pin 35 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18008C, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_35_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_36 @ 0XFF180090 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_36_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_36_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[36]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_36_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_36_L3_SEL 0 + + * Configures MIO Pin 36 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180090, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_36_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_37 @ 0XFF180094 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_37_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_37_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[37]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_37_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_37_L3_SEL 0 + + * Configures MIO Pin 37 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180094, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_37_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_38 @ 0XFF180098 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_38_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_38_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_38_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTA + * G TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_s + * clk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, In + * put, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- + * (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_38_L3_SEL 0 + + * Configures MIO Pin 38 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180098, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_38_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_39 @ 0XFF18009C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_39_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_39_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= sd1, Input, sd1_data_in[4]- (8-bit Data b + * us) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJT + * AG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, + * Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (U + * ART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port + * Control Signal) + * PSU_IOU_SLCR_MIO_PIN_39_L3_SEL 0 + + * Configures MIO Pin 39 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_39_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_40 @ 0XFF1800A0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_40_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_40_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= sd1 + * , Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[ + * 5]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJ + * TAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3 + * , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmi + * tter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_40_L3_SEL 0 + + * Configures MIO Pin 40 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_40_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_41 @ 0XFF1800A4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_41_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_41_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[6]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTA + * G TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outpu + * t, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out + * - (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inp + * ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_41_L3_SEL 0 + + * Configures MIO Pin 41 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_41_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_42 @ 0XFF1800A8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_42_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_42_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[7]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= sp + * i0, Output, spi0_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_42_L3_SEL 0 + + * Configures MIO Pin 42 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_42_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_43 @ 0XFF1800AC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_43_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_43_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) + * 4= spi0, Input, spi0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_43_L3_SEL 0 + + * Configures MIO Pin 43 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_43_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_44 @ 0XFF1800B0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_44_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4 + * = spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L3_SEL 0 + + * Configures MIO Pin 44 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_44_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_45 @ 0XFF1800B4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_45_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L3_SEL 0 + + * Configures MIO Pin 45 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_45_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_46 @ 0XFF1800B8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_46_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L3_SEL 0 + + * Configures MIO Pin 46 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_46_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_47 @ 0XFF1800BC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_47_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Maste + * r Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= tt + * c0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L3_SEL 0 + + * Configures MIO Pin 47 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800BC, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_47_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_48 @ 0XFF1800C0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_48_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_48_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_48_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Us + * ed + * PSU_IOU_SLCR_MIO_PIN_48_L3_SEL 0 + + * Configures MIO Pin 48 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_48_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_49 @ 0XFF1800C4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_49_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd + * 1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L3_SEL 0 + + * Configures MIO Pin 49 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_49_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_50 @ 0XFF1800C8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) + * PSU_IOU_SLCR_MIO_PIN_50_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Input, sd1_cmd_in- (Command Ind + * icator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= + * ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART rece + * iver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L3_SEL 0 + + * Configures MIO Pin 50 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_50_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_51 @ 0XFF1800CC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) + * PSU_IOU_SLCR_MIO_PIN_51_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdi + * o1_clk_out- (SDSDIO clock) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Dat + * a) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wa + * ve_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter + * serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L3_SEL 0 + + * Configures MIO Pin 51 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800CC, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_51_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_52 @ 0XFF1800D0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_52_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_i + * n- (ULPI Clock) + * PSU_IOU_SLCR_MIO_PIN_52_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_52_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_52_L3_SEL 0 + + * Configures MIO Pin 52 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_52_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_53 @ 0XFF1800D4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_53_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- + * (Data bus direction control) + * PSU_IOU_SLCR_MIO_PIN_53_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_53_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Ou + * tput, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) + * PSU_IOU_SLCR_MIO_PIN_53_L3_SEL 0 + + * Configures MIO Pin 53 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_53_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_54 @ 0XFF1800D8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_54_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_54_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_54_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, I + * nput, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_54_L3_SEL 0 + + * Configures MIO Pin 54 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_54_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_55 @ 0XFF1800DC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_55_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- + * (Data flow control signal from the PHY) + * PSU_IOU_SLCR_MIO_PIN_55_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_55_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_55_L3_SEL 0 + + * Configures MIO Pin 55 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800DC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_55_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_56 @ 0XFF1800E0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_56_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_56_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_56_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_56_L3_SEL 0 + + * Configures MIO Pin 56 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_56_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_57 @ 0XFF1800E4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_57_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_57_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_57_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_57_L3_SEL 0 + + * Configures MIO Pin 57 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_57_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_58 @ 0XFF1800E8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_58_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- + * (Asserted to end or interrupt transfers) + * PSU_IOU_SLCR_MIO_PIN_58_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_58_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_58_L3_SEL 0 + + * Configures MIO Pin 58 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_58_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_59 @ 0XFF1800EC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_59_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_59_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_59_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_59_L3_SEL 0 + + * Configures MIO Pin 59 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800EC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_59_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_60 @ 0XFF1800F0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_60_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_60_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_60_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_60_L3_SEL 0 + + * Configures MIO Pin 60 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_60_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_61 @ 0XFF1800F4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_61_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_61_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_61_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, + * spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_61_L3_SEL 0 + + * Configures MIO Pin 61 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_61_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_62 @ 0XFF1800F8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_62_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_62_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_62_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_62_L3_SEL 0 + + * Configures MIO Pin 62 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_62_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_63 @ 0XFF1800FC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_63_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_63_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_63_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_63_L3_SEL 0 + + * Configures MIO Pin 63 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800FC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_63_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_64 @ 0XFF180100 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_64_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_i + * n- (ULPI Clock) + * PSU_IOU_SLCR_MIO_PIN_64_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_64_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4 + * = spi0, Output, spi0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * trace, Output, tracedq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_64_L3_SEL 0 + + * Configures MIO Pin 64 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180100, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_64_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_65 @ 0XFF180104 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_65_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- + * (Data bus direction control) + * PSU_IOU_SLCR_MIO_PIN_65_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_65_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace + * dq[11]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_65_L3_SEL 0 + + * Configures MIO Pin 65 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180104, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_65_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_66 @ 0XFF180108 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_66_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_66_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= Not + * Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_66_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace + * Port Databus) + * PSU_IOU_SLCR_MIO_PIN_66_L3_SEL 0 + + * Configures MIO Pin 66 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180108, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_66_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_67 @ 0XFF18010C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_67_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- + * (Data flow control signal from the PHY) + * PSU_IOU_SLCR_MIO_PIN_67_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= N + * ot Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_67_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Maste + * r Selects) 4= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= tt + * c2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace + * Port Databus) + * PSU_IOU_SLCR_MIO_PIN_67_L3_SEL 0 + + * Configures MIO Pin 67 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18010C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_67_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_68 @ 0XFF180110 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_68_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_68_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= N + * ot Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_68_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_68_L3_SEL 0 + + * Configures MIO Pin 68 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180110, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_68_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_69 @ 0XFF180114 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_69_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_69_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_69_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_69_L3_SEL 0 + + * Configures MIO Pin 69 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180114, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_69_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_70 @ 0XFF180118 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_70_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- + * (Asserted to end or interrupt transfers) + * PSU_IOU_SLCR_MIO_PIN_70_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_70_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed + * PSU_IOU_SLCR_MIO_PIN_70_L3_SEL 0 + + * Configures MIO Pin 70 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180118, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_70_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_71 @ 0XFF18011C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_71_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_71_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_71_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_71_L3_SEL 0 + + * Configures MIO Pin 71 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18011C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_71_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_72 @ 0XFF180120 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_72_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_72_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_72_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= Not Used 6= ua1, Output, ua1_txd- (UART transmitter seri + * al output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_72_L3_SEL 0 + + * Configures MIO Pin 72 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180120, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_72_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_73 @ 0XFF180124 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_73_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_73_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_73_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not + * Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_73_L3_SEL 0 + + * Configures MIO Pin 73 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180124, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_73_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_74 @ 0XFF180128 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_74_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_74_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[3]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_74_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- ( + * UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_74_L3_SEL 0 + + * Configures MIO Pin 74 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180128, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_74_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_75 @ 0XFF18012C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_75_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_75_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Command Indicator) = sd1 + * , Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_75_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_t + * xd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_75_L3_SEL 0 + + * Configures MIO Pin 75 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18012C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_75_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_76 @ 0XFF180130 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Output, sdio1_clk_out- (SDSDIO + * clock) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= mdio0, Output, gem0_mdc- (MDI + * O Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2 + * _mdc- (MDIO Clock) 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L3_SEL 6 + + * Configures MIO Pin 76 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180130, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_76_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_77 @ 0XFF180134 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L0_SEL 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L1_SEL 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00100000U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK | 0 ); + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio + * 1_cd_n- (SD card detect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L2_SEL 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00100000U ,0x00000000U); - /*############################################################################################################################ */ + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= mdio0, Input, gem0_mdio_in- (M + * DIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, + * gem1_mdio_in- (MDIO Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5 + * = mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_ou + * t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Outp + * ut, gem3_mdio_out- (MDIO Data) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L3_SEL 6 - // : ENET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

+ * Configures MIO Pin 77 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180134, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_77_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 + /* + * Register : MIO_MST_TRI0 @ 0XFF180204 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 0, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 1, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI 0 - // : QSPI - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 2, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 + * Master Tri-state Enable for pin 3, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 4, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 5, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI 0 - // : QSPI TAP DELAY - /*Register : IOU_TAPDLY_BYPASS @ 0XFF180390

+ * Master Tri-state Enable for pin 6, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI 0 - 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypass the Tap delay on the Rx clock signal of LQSPI - PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 + * Master Tri-state Enable for pin 7, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI 0 - IOU tap delay bypass for the LQSPI and NAND controllers - (OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) - RegMask = (IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK | 0 ); + * Master Tri-state Enable for pin 8, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI 0 - RegVal = ((0x00000001U << IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET ,0x00000004U ,0x00000004U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 9, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI 0 - // : NAND - // : USB - /*Register : RST_LPD_TOP @ 0XFF5E023C

+ * Master Tri-state Enable for pin 10, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI 0 - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 + * Master Tri-state Enable for pin 11, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI 0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 + * Master Tri-state Enable for pin 12, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI 0 - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 + * Master Tri-state Enable for pin 13, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI 0 - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * Master Tri-state Enable for pin 14, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000540U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 15, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI 0 - // : FPD RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

+ * Master Tri-state Enable for pin 16, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI 0 - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0 + * Master Tri-state Enable for pin 17, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI 0 - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0 + * Master Tri-state Enable for pin 18, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI 1 - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0 + * Master Tri-state Enable for pin 19, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI 0 - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0 + * Master Tri-state Enable for pin 20, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI 0 - FPD WDT reset - PSU_CRF_APB_RST_FPD_TOP_SWDT_RESET 0 + * Master Tri-state Enable for pin 21, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI 1 - GDMA block level reset - PSU_CRF_APB_RST_FPD_TOP_GDMA_RESET 0 + * Master Tri-state Enable for pin 22, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI 0 - Pixel Processor (submodule of GPU) block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_PP0_RESET 0 + * Master Tri-state Enable for pin 23, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI 0 - Pixel Processor (submodule of GPU) block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_PP1_RESET 0 + * Master Tri-state Enable for pin 24, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI 0 - GPU block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_RESET 0 + * Master Tri-state Enable for pin 25, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI 1 - GT block level reset - PSU_CRF_APB_RST_FPD_TOP_GT_RESET 0 + * Master Tri-state Enable for pin 26, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI 0 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0 + * Master Tri-state Enable for pin 27, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI 0 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000F807EU ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | CRF_APB_RST_FPD_TOP_DP_RESET_MASK | CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK | CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_RESET_MASK | CRF_APB_RST_FPD_TOP_GT_RESET_MASK | CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 28, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI 1 - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000F807EU ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 29, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI 0 - // : SD - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 30, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI 1 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_SDIO1_RESET 0 + * Master Tri-state Enable for pin 31, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000040U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK | 0 ); + * MIO pin Tri-state Enables, 31:0 + * (OFFSET, MASK, VALUE) (0XFF180204, 0xFFFFFFFFU ,0x52240000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI0_OFFSET, + 0xFFFFFFFFU, 0x52240000U); +/*##################################################################### */ - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000040U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : MIO_MST_TRI1 @ 0XFF180208 - /*Register : CTRL_REG_SD @ 0XFF180310

+ * Master Tri-state Enable for pin 32, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI 0 - SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled - PSU_IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL 0 + * Master Tri-state Enable for pin 33, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI 0 - SD eMMC selection - (OFFSET, MASK, VALUE) (0XFF180310, 0x00008000U ,0x00000000U) - RegMask = (IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK | 0 ); + * Master Tri-state Enable for pin 34, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI 0 - RegVal = ((0x00000000U << IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_CTRL_REG_SD_OFFSET ,0x00008000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 35, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI 0 - /*Register : SD_CONFIG_REG2 @ 0XFF180320

+ * Master Tri-state Enable for pin 36, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI 0 - Should be set based on the final product usage 00 - Removable SCard Slot 01 - Embedded Slot for One Device 10 - Shared Bus Sl - t 11 - Reserved - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE 0 + * Master Tri-state Enable for pin 37, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI 0 - 1.8V Support 1: 1.8V supported 0: 1.8V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 0 + * Master Tri-state Enable for pin 38, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI 0 - 3.0V Support 1: 3.0V supported 0: 3.0V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V 0 + * Master Tri-state Enable for pin 39, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI 0 - 3.3V Support 1: 3.3V supported 0: 3.3V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V 1 + * Master Tri-state Enable for pin 40, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI 0 - SD Config Register 2 - (OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x00800000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK | 0 ); + * Master Tri-state Enable for pin 41, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI 0 - RegVal = ((0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT - | 0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT - | 0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT - | 0x00000001U << IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG2_OFFSET ,0x33800000U ,0x00800000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 42, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI 0 - // : SD1 BASE CLOCK - /*Register : SD_CONFIG_REG1 @ 0XFF18031C

+ * Master Tri-state Enable for pin 43, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI 0 - Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. - PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc7 + * Master Tri-state Enable for pin 44, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI 1 - SD Config Register 1 - (OFFSET, MASK, VALUE) (0XFF18031C, 0x7F800000U ,0x63800000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK | 0 ); + * Master Tri-state Enable for pin 45, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI 1 - RegVal = ((0x000000C7U << IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG1_OFFSET ,0x7F800000U ,0x63800000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 46, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI 0 - // : SD1 RETUNER - /*Register : SD_CONFIG_REG3 @ 0XFF180324

+ * Master Tri-state Enable for pin 47, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI 0 - This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. Setting to 4'b0 disables Re-Tuning Timer. 0h - Get inf - rmation via other source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n = 2(n-1) seconds -- Bh = 1024 secon - s Fh - Ch = Reserved - PSU_IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR 0X0 + * Master Tri-state Enable for pin 48, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI 0 - SD Config Register 3 - (OFFSET, MASK, VALUE) (0XFF180324, 0x03C00000U ,0x00000000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG3_OFFSET ,0x03C00000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 49, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI 0 - // : CAN - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 50, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_CAN1_RESET 0 + * Master Tri-state Enable for pin 51, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000100U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 52, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI 1 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000100U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 53, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI 1 - // : I2C - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 54, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_I2C0_RESET 0 + * Master Tri-state Enable for pin 55, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI 1 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_I2C1_RESET 0 + * Master Tri-state Enable for pin 56, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000600U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK | CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 57, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000600U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 58, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI 0 - // : SWDT - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 59, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_SWDT_RESET 0 + * Master Tri-state Enable for pin 60, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00008000U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 61, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00008000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 62, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI 0 - // : SPI - // : TTC - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 63, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC0_RESET 0 + * MIO pin Tri-state Enables, 63:32 + * (OFFSET, MASK, VALUE) (0XFF180208, 0xFFFFFFFFU ,0x00B03000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI1_OFFSET, + 0xFFFFFFFFU, 0x00B03000U); +/*##################################################################### */ - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC1_RESET 0 + /* + * Register : MIO_MST_TRI2 @ 0XFF18020C - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC2_RESET 0 + * Master Tri-state Enable for pin 64, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC3_RESET 0 + * Master Tri-state Enable for pin 65, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00007800U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 66, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00007800U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 67, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI 0 - // : UART - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

+ * Master Tri-state Enable for pin 68, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_UART0_RESET 0 + * Master Tri-state Enable for pin 69, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_UART1_RESET 0 + * Master Tri-state Enable for pin 70, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI 1 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000006U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK | CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 71, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI 1 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000006U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 72, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI 1 - // : UART BAUD RATE - /*Register : Baud_rate_divider_reg0 @ 0XFF000034

+ * Master Tri-state Enable for pin 73, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI 1 - Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate - PSU_UART0_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + * Master Tri-state Enable for pin 74, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI 1 - Baud Rate Divider Register - (OFFSET, MASK, VALUE) (0XFF000034, 0x000000FFU ,0x00000005U) - RegMask = (UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK | 0 ); + * Master Tri-state Enable for pin 75, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI 1 - RegVal = ((0x00000005U << UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_BAUD_RATE_DIVIDER_REG0_OFFSET ,0x000000FFU ,0x00000005U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 76, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI 0 - /*Register : Baud_rate_gen_reg0 @ 0XFF000018

+ * Master Tri-state Enable for pin 77, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI 0 - Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample - PSU_UART0_BAUD_RATE_GEN_REG0_CD 0x8f + * MIO pin Tri-state Enables, 77:64 + * (OFFSET, MASK, VALUE) (0XFF18020C, 0x00003FFFU ,0x00000FC0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI2_OFFSET, + 0x00003FFFU, 0x00000FC0U); +/*##################################################################### */ - Baud Rate Generator Register. - (OFFSET, MASK, VALUE) (0XFF000018, 0x0000FFFFU ,0x0000008FU) - RegMask = (UART0_BAUD_RATE_GEN_REG0_CD_MASK | 0 ); + /* + * Register : bank0_ctrl0 @ 0XFF180138 - RegVal = ((0x0000008FU << UART0_BAUD_RATE_GEN_REG0_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_BAUD_RATE_GEN_REG0_OFFSET ,0x0000FFFFU ,0x0000008FU); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0 1 - /*Register : Control_reg0 @ 0XFF000000

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1 1 - Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK. - PSU_UART0_CONTROL_REG0_STPBRK 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2 1 - Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. - PSU_UART0_CONTROL_REG0_STTBRK 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3 1 - Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted. - PSU_UART0_CONTROL_REG0_RSTTO 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4 1 - Transmit disable: 0: enable transmitter 1: disable transmitter - PSU_UART0_CONTROL_REG0_TXDIS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5 1 - Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. - PSU_UART0_CONTROL_REG0_TXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6 1 - Receive disable: 0: enable 1: disable, regardless of the value of RXEN - PSU_UART0_CONTROL_REG0_RXDIS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7 1 - Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. - PSU_UART0_CONTROL_REG0_RXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8 1 - Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed. - PSU_UART0_CONTROL_REG0_TXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9 1 - Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed. - PSU_UART0_CONTROL_REG0_RXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10 1 - UART Control Register - (OFFSET, MASK, VALUE) (0XFF000000, 0x000001FFU ,0x00000017U) - RegMask = (UART0_CONTROL_REG0_STPBRK_MASK | UART0_CONTROL_REG0_STTBRK_MASK | UART0_CONTROL_REG0_RSTTO_MASK | UART0_CONTROL_REG0_TXDIS_MASK | UART0_CONTROL_REG0_TXEN_MASK | UART0_CONTROL_REG0_RXDIS_MASK | UART0_CONTROL_REG0_RXEN_MASK | UART0_CONTROL_REG0_TXRES_MASK | UART0_CONTROL_REG0_RXRES_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11 1 - RegVal = ((0x00000000U << UART0_CONTROL_REG0_STPBRK_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_STTBRK_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_RSTTO_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_TXDIS_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_TXEN_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_RXDIS_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_RXEN_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_TXRES_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_RXRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_CONTROL_REG0_OFFSET ,0x000001FFU ,0x00000017U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12 1 - /*Register : mode_reg0 @ 0XFF000004

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13 1 - Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback - PSU_UART0_MODE_REG0_CHMODE 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14 1 - Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved - PSU_UART0_MODE_REG0_NBSTOP 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15 1 - Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity - PSU_UART0_MODE_REG0_PAR 0x4 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16 1 - Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits - PSU_UART0_MODE_REG0_CHRL 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17 1 - Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8 - PSU_UART0_MODE_REG0_CLKS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18 1 - UART Mode Register - (OFFSET, MASK, VALUE) (0XFF000004, 0x000003FFU ,0x00000020U) - RegMask = (UART0_MODE_REG0_CHMODE_MASK | UART0_MODE_REG0_NBSTOP_MASK | UART0_MODE_REG0_PAR_MASK | UART0_MODE_REG0_CHRL_MASK | UART0_MODE_REG0_CLKS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19 1 - RegVal = ((0x00000000U << UART0_MODE_REG0_CHMODE_SHIFT - | 0x00000000U << UART0_MODE_REG0_NBSTOP_SHIFT - | 0x00000004U << UART0_MODE_REG0_PAR_SHIFT - | 0x00000000U << UART0_MODE_REG0_CHRL_SHIFT - | 0x00000000U << UART0_MODE_REG0_CLKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_MODE_REG0_OFFSET ,0x000003FFU ,0x00000020U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20 1 - /*Register : Baud_rate_divider_reg0 @ 0XFF010034

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21 1 - Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate - PSU_UART1_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22 1 - Baud Rate Divider Register - (OFFSET, MASK, VALUE) (0XFF010034, 0x000000FFU ,0x00000005U) - RegMask = (UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK | 0 ); - - RegVal = ((0x00000005U << UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_BAUD_RATE_DIVIDER_REG0_OFFSET ,0x000000FFU ,0x00000005U); - /*############################################################################################################################ */ - - /*Register : Baud_rate_gen_reg0 @ 0XFF010018

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23 1 - Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample - PSU_UART1_BAUD_RATE_GEN_REG0_CD 0x8f - - Baud Rate Generator Register. - (OFFSET, MASK, VALUE) (0XFF010018, 0x0000FFFFU ,0x0000008FU) - RegMask = (UART1_BAUD_RATE_GEN_REG0_CD_MASK | 0 ); - - RegVal = ((0x0000008FU << UART1_BAUD_RATE_GEN_REG0_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_BAUD_RATE_GEN_REG0_OFFSET ,0x0000FFFFU ,0x0000008FU); - /*############################################################################################################################ */ - - /*Register : Control_reg0 @ 0XFF010000

- - Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK. - PSU_UART1_CONTROL_REG0_STPBRK 0x0 - - Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. - PSU_UART1_CONTROL_REG0_STTBRK 0x0 - - Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted. - PSU_UART1_CONTROL_REG0_RSTTO 0x0 - - Transmit disable: 0: enable transmitter 1: disable transmitter - PSU_UART1_CONTROL_REG0_TXDIS 0x0 - - Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. - PSU_UART1_CONTROL_REG0_TXEN 0x1 - - Receive disable: 0: enable 1: disable, regardless of the value of RXEN - PSU_UART1_CONTROL_REG0_RXDIS 0x0 - - Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. - PSU_UART1_CONTROL_REG0_RXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24 1 - Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed. - PSU_UART1_CONTROL_REG0_TXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25 1 - Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed. - PSU_UART1_CONTROL_REG0_RXRES 0x1 + * Drive0 control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180138, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ - UART Control Register - (OFFSET, MASK, VALUE) (0XFF010000, 0x000001FFU ,0x00000017U) - RegMask = (UART1_CONTROL_REG0_STPBRK_MASK | UART1_CONTROL_REG0_STTBRK_MASK | UART1_CONTROL_REG0_RSTTO_MASK | UART1_CONTROL_REG0_TXDIS_MASK | UART1_CONTROL_REG0_TXEN_MASK | UART1_CONTROL_REG0_RXDIS_MASK | UART1_CONTROL_REG0_RXEN_MASK | UART1_CONTROL_REG0_TXRES_MASK | UART1_CONTROL_REG0_RXRES_MASK | 0 ); + /* + * Register : bank0_ctrl1 @ 0XFF18013C - RegVal = ((0x00000000U << UART1_CONTROL_REG0_STPBRK_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_STTBRK_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_RSTTO_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_TXDIS_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_TXEN_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_RXDIS_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_RXEN_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_TXRES_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_RXRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_CONTROL_REG0_OFFSET ,0x000001FFU ,0x00000017U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0 1 - /*Register : mode_reg0 @ 0XFF010004

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1 1 - Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback - PSU_UART1_MODE_REG0_CHMODE 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2 1 - Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved - PSU_UART1_MODE_REG0_NBSTOP 0x0 - - Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity - PSU_UART1_MODE_REG0_PAR 0x4 - - Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits - PSU_UART1_MODE_REG0_CHRL 0x0 - - Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8 - PSU_UART1_MODE_REG0_CLKS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3 1 - UART Mode Register - (OFFSET, MASK, VALUE) (0XFF010004, 0x000003FFU ,0x00000020U) - RegMask = (UART1_MODE_REG0_CHMODE_MASK | UART1_MODE_REG0_NBSTOP_MASK | UART1_MODE_REG0_PAR_MASK | UART1_MODE_REG0_CHRL_MASK | UART1_MODE_REG0_CLKS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4 1 - RegVal = ((0x00000000U << UART1_MODE_REG0_CHMODE_SHIFT - | 0x00000000U << UART1_MODE_REG0_NBSTOP_SHIFT - | 0x00000004U << UART1_MODE_REG0_PAR_SHIFT - | 0x00000000U << UART1_MODE_REG0_CHRL_SHIFT - | 0x00000000U << UART1_MODE_REG0_CLKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_MODE_REG0_OFFSET ,0x000003FFU ,0x00000020U); - /*############################################################################################################################ */ - - // : GPIO - // : ADMA TZ - /*Register : slcr_adma @ 0XFF4B0024

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5 1 - TrustZone Classification for ADMA - PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0XFF - - RPU TrustZone settings - (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) - RegMask = (LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK | 0 ); - - RegVal = ((0x000000FFU << LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_SLCR_SECURE_SLCR_ADMA_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - // : CSU TAMPERING - // : CSU TAMPER STATUS - /*Register : tamper_status @ 0XFFCA5000

- - CSU regsiter - PSU_CSU_TAMPER_STATUS_TAMPER_0 0 - - External MIO - PSU_CSU_TAMPER_STATUS_TAMPER_1 0 - - JTAG toggle detect - PSU_CSU_TAMPER_STATUS_TAMPER_2 0 - - PL SEU error - PSU_CSU_TAMPER_STATUS_TAMPER_3 0 - - AMS over temperature alarm for LPD - PSU_CSU_TAMPER_STATUS_TAMPER_4 0 - - AMS over temperature alarm for APU - PSU_CSU_TAMPER_STATUS_TAMPER_5 0 - - AMS voltage alarm for VCCPINT_FPD - PSU_CSU_TAMPER_STATUS_TAMPER_6 0 - - AMS voltage alarm for VCCPINT_LPD - PSU_CSU_TAMPER_STATUS_TAMPER_7 0 - - AMS voltage alarm for VCCPAUX - PSU_CSU_TAMPER_STATUS_TAMPER_8 0 - - AMS voltage alarm for DDRPHY - PSU_CSU_TAMPER_STATUS_TAMPER_9 0 - - AMS voltage alarm for PSIO bank 0/1/2 - PSU_CSU_TAMPER_STATUS_TAMPER_10 0 - - AMS voltage alarm for PSIO bank 3 (dedicated pins) - PSU_CSU_TAMPER_STATUS_TAMPER_11 0 - - AMS voltaage alarm for GT - PSU_CSU_TAMPER_STATUS_TAMPER_12 0 - - Tamper Response Status - (OFFSET, MASK, VALUE) (0XFFCA5000, 0x00001FFFU ,0x00000000U) - RegMask = (CSU_TAMPER_STATUS_TAMPER_0_MASK | CSU_TAMPER_STATUS_TAMPER_1_MASK | CSU_TAMPER_STATUS_TAMPER_2_MASK | CSU_TAMPER_STATUS_TAMPER_3_MASK | CSU_TAMPER_STATUS_TAMPER_4_MASK | CSU_TAMPER_STATUS_TAMPER_5_MASK | CSU_TAMPER_STATUS_TAMPER_6_MASK | CSU_TAMPER_STATUS_TAMPER_7_MASK | CSU_TAMPER_STATUS_TAMPER_8_MASK | CSU_TAMPER_STATUS_TAMPER_9_MASK | CSU_TAMPER_STATUS_TAMPER_10_MASK | CSU_TAMPER_STATUS_TAMPER_11_MASK | CSU_TAMPER_STATUS_TAMPER_12_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6 1 - RegVal = ((0x00000000U << CSU_TAMPER_STATUS_TAMPER_0_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_1_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_2_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_3_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_4_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_5_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_6_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_7_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_8_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_9_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_10_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_11_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_12_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CSU_TAMPER_STATUS_OFFSET ,0x00001FFFU ,0x00000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7 1 - // : CSU TAMPER RESPONSE - // : AFIFM INTERFACE WIDTH - // : CPU QOS DEFAULT - /*Register : ACE_CTRL @ 0XFD5C0060

- - Set ACE outgoing AWQOS value - PSU_APU_ACE_CTRL_AWQOS 0X0 - - Set ACE outgoing ARQOS value - PSU_APU_ACE_CTRL_ARQOS 0X0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8 1 - ACE Control Register - (OFFSET, MASK, VALUE) (0XFD5C0060, 0x000F000FU ,0x00000000U) - RegMask = (APU_ACE_CTRL_AWQOS_MASK | APU_ACE_CTRL_ARQOS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9 1 - RegVal = ((0x00000000U << APU_ACE_CTRL_AWQOS_SHIFT - | 0x00000000U << APU_ACE_CTRL_ARQOS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (APU_ACE_CTRL_OFFSET ,0x000F000FU ,0x00000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10 1 - // : ENABLES RTC SWITCH TO BATTERY WHEN VCC_PSAUX IS NOT AVAILABLE - /*Register : CONTROL @ 0XFFA60040

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11 1 - Enables the RTC. By writing a 0 to this bit, RTC will be powered off and the only module that potentially draws current from - he battery will be BBRAM. The value read through this bit does not necessarily reflect whether RTC is enabled or not. It is e - pected that RTC is enabled every time it is being configured. If RTC is not used in the design, FSBL will disable it by writi - g a 0 to this bit. - PSU_RTC_CONTROL_BATTERY_DISABLE 0X1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12 1 - This register controls various functionalities within the RTC - (OFFSET, MASK, VALUE) (0XFFA60040, 0x80000000U ,0x80000000U) - RegMask = (RTC_CONTROL_BATTERY_DISABLE_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13 1 - RegVal = ((0x00000001U << RTC_CONTROL_BATTERY_DISABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (RTC_CONTROL_OFFSET ,0x80000000U ,0x80000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14 1 - // : TIMESTAMP COUNTER - /*Register : base_frequency_ID_register @ 0XFF260020

+ * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15 1 - Frequency in number of ticks per second. Valid range from 10 MHz to 100 MHz. - PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5e100 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16 1 - Program this register to match the clock frequency of the timestamp generator, in ticks per second. For example, for a 50 MHz - clock, program 0x02FAF080. This register is not accessible to the read-only programming interface. - (OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5E100U) - RegMask = (IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17 1 - RegVal = ((0x05F5E100U << IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET ,0xFFFFFFFFU ,0x05F5E100U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18 1 - /*Register : counter_control_register @ 0XFF260000

- - Enable 0: The counter is disabled and not incrementing. 1: The counter is enabled and is incrementing. - PSU_IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN 0x1 - - Controls the counter increments. This register is not accessible to the read-only programming interface. - (OFFSET, MASK, VALUE) (0XFF260000, 0x00000001U ,0x00000001U) - RegMask = (IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : TTC SRC SELECT - - return 1; + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF18013C, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl3 @ 0XFF180140 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180140, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank0_ctrl4 @ 0XFF180144 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank0_pull_enable is set, this selects pull up or pull down for + * MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180144, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl5 @ 0XFF180148 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank0_pullupdown to selects pull up or pull d + * own for MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180148, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl6 @ 0XFF18014C + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF18014C, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank1_ctrl0 @ 0XFF180154 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25 1 + + * Drive0 control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180154, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl1 @ 0XFF180158 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180158, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl3 @ 0XFF18015C + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF18015C, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank1_ctrl4 @ 0XFF180160 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank1_pull_enable is set, this selects pull up or pull down for + * MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180160, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl5 @ 0XFF180164 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank1_pullupdown to selects pull up or pull d + * own for MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180164, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl6 @ 0XFF180168 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180168, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank2_ctrl0 @ 0XFF180170 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25 1 + + * Drive0 control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180170, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl1 @ 0XFF180174 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180174, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl3 @ 0XFF180178 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180178, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank2_ctrl4 @ 0XFF18017C + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank2_pull_enable is set, this selects pull up or pull down for + * MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF18017C, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl5 @ 0XFF180180 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank2_pullupdown to selects pull up or pull d + * own for MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180180, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl6 @ 0XFF180184 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180184, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * LOOPBACK + */ + /* + * Register : MIO_LOOPBACK @ 0XFF180200 + + * I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 + * = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outputs to I2C 0 inputs + * . + * PSU_IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1 0 + + * CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 + * = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 Rx. + * PSU_IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1 0 + + * UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. + * 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 outputs to UART 0 + * inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD + * and RI not used. + * PSU_IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1 0 + + * SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 + * = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outputs to SPI 0 inputs + * . The other SPI core will appear on the LS Slave Select. + * PSU_IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1 0 + + * Loopback function within MIO + * (OFFSET, MASK, VALUE) (0XFF180200, 0x0000000FU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_LOOPBACK_OFFSET, + 0x0000000FU, 0x00000000U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_post_config_data() { - // : POST_CONFIG +unsigned long psu_peripherals_init_data(void) +{ + /* + * COHERENCY + */ + /* + * FPD RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - return 1; + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0 + + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0 + + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0 + + * FPD WDT reset + * PSU_CRF_APB_RST_FPD_TOP_SWDT_RESET 0 + + * GDMA block level reset + * PSU_CRF_APB_RST_FPD_TOP_GDMA_RESET 0 + + * Pixel Processor (submodule of GPU) block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_PP0_RESET 0 + + * Pixel Processor (submodule of GPU) block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_PP1_RESET 0 + + * GPU block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_RESET 0 + + * GT block level reset + * PSU_CRF_APB_RST_FPD_TOP_GT_RESET 0 + + * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000F807EU ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000F807EU, 0x00000000U); +/*##################################################################### */ + + /* + * RESET BLOCKS + */ + /* + * TIMESTAMP + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_IOU_CC_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_ADMA_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x001A0000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x001A0000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * Reset entire full power domain. + * PSU_CRL_APB_RST_LPD_TOP_FPD_RESET 0 + + * LPD SWDT + * PSU_CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET 0 + + * Sysmonitor reset + * PSU_CRL_APB_RST_LPD_TOP_SYSMON_RESET 0 + + * Real Time Clock reset + * PSU_CRL_APB_RST_LPD_TOP_RTC_RESET 0 + + * APM reset + * PSU_CRL_APB_RST_LPD_TOP_APM_RESET 0 + + * IPI reset + * PSU_CRL_APB_RST_LPD_TOP_IPI_RESET 0 + + * reset entire RPU power island + * PSU_CRL_APB_RST_LPD_TOP_RPU_PGE_RESET 0 + + * reset ocm + * PSU_CRL_APB_RST_LPD_TOP_OCM_RESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x0093C018U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x0093C018U, 0x00000000U); +/*##################################################################### */ + + /* + * ENET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 + + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 + + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * QSPI + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * QSPI TAP DELAY + */ + /* + * Register : IOU_TAPDLY_BYPASS @ 0XFF180390 + + * 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypa + * ss the Tap delay on the Rx clock signal of LQSPI + * PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 + + * IOU tap delay bypass for the LQSPI and NAND controllers + * (OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET, + 0x00000004U, 0x00000004U); +/*##################################################################### */ + + /* + * NAND + */ + /* + * USB + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 + + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 + + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000540U, 0x00000000U); +/*##################################################################### */ + + /* + * USB0 PIPE POWER PRESENT + */ + /* + * Register : fpd_power_prsnt @ 0XFF9D0080 + + * This bit is used to choose between PIPE power present and 1'b1 + * PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 + + * fpd_power_prsnt + * (OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(USB3_0_FPD_POWER_PRSNT_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : fpd_pipe_clk @ 0XFF9D007C + + * This bit is used to choose between PIPE clock coming from SerDes and the + * suspend clk + * PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 + + * fpd_pipe_clk + * (OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(USB3_0_FPD_PIPE_CLK_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * SD + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_SDIO1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000040U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000040U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CTRL_REG_SD @ 0XFF180310 + + * SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled + * PSU_IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL 0 + + * SD eMMC selection + * (OFFSET, MASK, VALUE) (0XFF180310, 0x00008000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_CTRL_REG_SD_OFFSET, + 0x00008000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SD_CONFIG_REG2 @ 0XFF180320 + + * Should be set based on the final product usage 00 - Removable SCard Slot + * 01 - Embedded Slot for One Device 10 - Shared Bus Slot 11 - Reserved + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE 0 + + * 1.8V Support 1: 1.8V supported 0: 1.8V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 1 + + * 3.0V Support 1: 3.0V supported 0: 3.0V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V 0 + + * 3.3V Support 1: 3.3V supported 0: 3.3V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V 1 + + * SD Config Register 2 + * (OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x02800000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG2_OFFSET, + 0x33800000U, 0x02800000U); +/*##################################################################### */ + + /* + * SD1 BASE CLOCK + */ + /* + * Register : SD_CONFIG_REG1 @ 0XFF18031C + + * Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. + * PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc8 + + * Configures the Number of Taps (Phases) of the rxclk_in that is supported + * . + * PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT 0x28 + + * SD Config Register 1 + * (OFFSET, MASK, VALUE) (0XFF18031C, 0x7FFE0000U ,0x64500000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG1_OFFSET, + 0x7FFE0000U, 0x64500000U); +/*##################################################################### */ + + /* + * Register : SD_DLL_CTRL @ 0XFF180358 + + * Reserved. + * PSU_IOU_SLCR_SD_DLL_CTRL_RESERVED 1 + + * SDIO status register + * (OFFSET, MASK, VALUE) (0XFF180358, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_SD_DLL_CTRL_OFFSET, + 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * SD1 RETUNER + */ + /* + * Register : SD_CONFIG_REG3 @ 0XFF180324 + + * This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. S + * etting to 4'b0 disables Re-Tuning Timer. 0h - Get information via other + * source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n + * = 2(n-1) seconds -- Bh = 1024 seconds Fh - Ch = Reserved + * PSU_IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR 0X0 + + * SD Config Register 3 + * (OFFSET, MASK, VALUE) (0XFF180324, 0x03C00000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG3_OFFSET, + 0x03C00000U, 0x00000000U); +/*##################################################################### */ + + /* + * CAN + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_CAN1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000100U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000100U, 0x00000000U); +/*##################################################################### */ + + /* + * I2C + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_I2C0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_I2C1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000600U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000600U, 0x00000000U); +/*##################################################################### */ + + /* + * SWDT + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_SWDT_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00008000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00008000U, 0x00000000U); +/*##################################################################### */ + + /* + * SPI + */ + /* + * TTC + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC1_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC2_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC3_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00007800U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00007800U, 0x00000000U); +/*##################################################################### */ + + /* + * UART + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_UART0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_UART1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000006U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000006U, 0x00000000U); +/*##################################################################### */ + + /* + * UART BAUD RATE + */ + /* + * Register : Baud_rate_divider_reg0 @ 0XFF000034 + + * Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate + * PSU_UART0_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + + * Baud Rate Divider Register + * (OFFSET, MASK, VALUE) (0XFF000034, 0x000000FFU ,0x00000005U) + */ + PSU_Mask_Write(UART0_BAUD_RATE_DIVIDER_REG0_OFFSET, + 0x000000FFU, 0x00000005U); +/*##################################################################### */ + + /* + * Register : Baud_rate_gen_reg0 @ 0XFF000018 + + * Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + * PSU_UART0_BAUD_RATE_GEN_REG0_CD 0x8f + + * Baud Rate Generator Register. + * (OFFSET, MASK, VALUE) (0XFF000018, 0x0000FFFFU ,0x0000008FU) + */ + PSU_Mask_Write(UART0_BAUD_RATE_GEN_REG0_OFFSET, + 0x0000FFFFU, 0x0000008FU); +/*##################################################################### */ + + /* + * Register : Control_reg0 @ 0XFF000000 + + * Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. + * PSU_UART0_CONTROL_REG0_STPBRK 0x0 + + * Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. + * PSU_UART0_CONTROL_REG0_STTBRK 0x0 + + * Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. + * PSU_UART0_CONTROL_REG0_RSTTO 0x0 + + * Transmit disable: 0: enable transmitter 1: disable transmitter + * PSU_UART0_CONTROL_REG0_TXDIS 0x0 + + * Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. + * PSU_UART0_CONTROL_REG0_TXEN 0x1 + + * Receive disable: 0: enable 1: disable, regardless of the value of RXEN + * PSU_UART0_CONTROL_REG0_RXDIS 0x0 + + * Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. + * PSU_UART0_CONTROL_REG0_RXEN 0x1 + + * Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. + * PSU_UART0_CONTROL_REG0_TXRES 0x1 + + * Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. + * PSU_UART0_CONTROL_REG0_RXRES 0x1 + + * UART Control Register + * (OFFSET, MASK, VALUE) (0XFF000000, 0x000001FFU ,0x00000017U) + */ + PSU_Mask_Write(UART0_CONTROL_REG0_OFFSET, 0x000001FFU, 0x00000017U); +/*##################################################################### */ + + /* + * Register : mode_reg0 @ 0XFF000004 + + * Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback + * PSU_UART0_MODE_REG0_CHMODE 0x0 + + * Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved + * PSU_UART0_MODE_REG0_NBSTOP 0x0 + + * Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty + * PSU_UART0_MODE_REG0_PAR 0x4 + + * Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits + * PSU_UART0_MODE_REG0_CHRL 0x0 + + * Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 + * PSU_UART0_MODE_REG0_CLKS 0x0 + + * UART Mode Register + * (OFFSET, MASK, VALUE) (0XFF000004, 0x000003FFU ,0x00000020U) + */ + PSU_Mask_Write(UART0_MODE_REG0_OFFSET, 0x000003FFU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : Baud_rate_divider_reg0 @ 0XFF010034 + + * Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate + * PSU_UART1_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + + * Baud Rate Divider Register + * (OFFSET, MASK, VALUE) (0XFF010034, 0x000000FFU ,0x00000005U) + */ + PSU_Mask_Write(UART1_BAUD_RATE_DIVIDER_REG0_OFFSET, + 0x000000FFU, 0x00000005U); +/*##################################################################### */ + + /* + * Register : Baud_rate_gen_reg0 @ 0XFF010018 + + * Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + * PSU_UART1_BAUD_RATE_GEN_REG0_CD 0x8f + + * Baud Rate Generator Register. + * (OFFSET, MASK, VALUE) (0XFF010018, 0x0000FFFFU ,0x0000008FU) + */ + PSU_Mask_Write(UART1_BAUD_RATE_GEN_REG0_OFFSET, + 0x0000FFFFU, 0x0000008FU); +/*##################################################################### */ + + /* + * Register : Control_reg0 @ 0XFF010000 + + * Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. + * PSU_UART1_CONTROL_REG0_STPBRK 0x0 + + * Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. + * PSU_UART1_CONTROL_REG0_STTBRK 0x0 + + * Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. + * PSU_UART1_CONTROL_REG0_RSTTO 0x0 + + * Transmit disable: 0: enable transmitter 1: disable transmitter + * PSU_UART1_CONTROL_REG0_TXDIS 0x0 + + * Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. + * PSU_UART1_CONTROL_REG0_TXEN 0x1 + + * Receive disable: 0: enable 1: disable, regardless of the value of RXEN + * PSU_UART1_CONTROL_REG0_RXDIS 0x0 + + * Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. + * PSU_UART1_CONTROL_REG0_RXEN 0x1 + + * Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. + * PSU_UART1_CONTROL_REG0_TXRES 0x1 + + * Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. + * PSU_UART1_CONTROL_REG0_RXRES 0x1 + + * UART Control Register + * (OFFSET, MASK, VALUE) (0XFF010000, 0x000001FFU ,0x00000017U) + */ + PSU_Mask_Write(UART1_CONTROL_REG0_OFFSET, 0x000001FFU, 0x00000017U); +/*##################################################################### */ + + /* + * Register : mode_reg0 @ 0XFF010004 + + * Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback + * PSU_UART1_MODE_REG0_CHMODE 0x0 + + * Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved + * PSU_UART1_MODE_REG0_NBSTOP 0x0 + + * Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty + * PSU_UART1_MODE_REG0_PAR 0x4 + + * Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits + * PSU_UART1_MODE_REG0_CHRL 0x0 + + * Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 + * PSU_UART1_MODE_REG0_CLKS 0x0 + + * UART Mode Register + * (OFFSET, MASK, VALUE) (0XFF010004, 0x000003FFU ,0x00000020U) + */ + PSU_Mask_Write(UART1_MODE_REG0_OFFSET, 0x000003FFU, 0x00000020U); +/*##################################################################### */ + + /* + * GPIO + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_GPIO_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00040000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00040000U, 0x00000000U); +/*##################################################################### */ + + /* + * ADMA TZ + */ + /* + * Register : slcr_adma @ 0XFF4B0024 + + * TrustZone Classification for ADMA + * PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0XFF + + * RPU TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_ADMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * CSU TAMPERING + */ + /* + * CSU TAMPER STATUS + */ + /* + * Register : tamper_status @ 0XFFCA5000 + + * CSU regsiter + * PSU_CSU_TAMPER_STATUS_TAMPER_0 0 + + * External MIO + * PSU_CSU_TAMPER_STATUS_TAMPER_1 0 + + * JTAG toggle detect + * PSU_CSU_TAMPER_STATUS_TAMPER_2 0 + + * PL SEU error + * PSU_CSU_TAMPER_STATUS_TAMPER_3 0 + + * AMS over temperature alarm for LPD + * PSU_CSU_TAMPER_STATUS_TAMPER_4 0 + + * AMS over temperature alarm for APU + * PSU_CSU_TAMPER_STATUS_TAMPER_5 0 + + * AMS voltage alarm for VCCPINT_FPD + * PSU_CSU_TAMPER_STATUS_TAMPER_6 0 + + * AMS voltage alarm for VCCPINT_LPD + * PSU_CSU_TAMPER_STATUS_TAMPER_7 0 + + * AMS voltage alarm for VCCPAUX + * PSU_CSU_TAMPER_STATUS_TAMPER_8 0 + + * AMS voltage alarm for DDRPHY + * PSU_CSU_TAMPER_STATUS_TAMPER_9 0 + + * AMS voltage alarm for PSIO bank 0/1/2 + * PSU_CSU_TAMPER_STATUS_TAMPER_10 0 + + * AMS voltage alarm for PSIO bank 3 (dedicated pins) + * PSU_CSU_TAMPER_STATUS_TAMPER_11 0 + + * AMS voltaage alarm for GT + * PSU_CSU_TAMPER_STATUS_TAMPER_12 0 + + * Tamper Response Status + * (OFFSET, MASK, VALUE) (0XFFCA5000, 0x00001FFFU ,0x00000000U) + */ + PSU_Mask_Write(CSU_TAMPER_STATUS_OFFSET, 0x00001FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * CSU TAMPER RESPONSE + */ + /* + * CPU QOS DEFAULT + */ + /* + * Register : ACE_CTRL @ 0XFD5C0060 + + * Set ACE outgoing AWQOS value + * PSU_APU_ACE_CTRL_AWQOS 0X0 + + * Set ACE outgoing ARQOS value + * PSU_APU_ACE_CTRL_ARQOS 0X0 + + * ACE Control Register + * (OFFSET, MASK, VALUE) (0XFD5C0060, 0x000F000FU ,0x00000000U) + */ + PSU_Mask_Write(APU_ACE_CTRL_OFFSET, 0x000F000FU, 0x00000000U); +/*##################################################################### */ + + /* + * ENABLES RTC SWITCH TO BATTERY WHEN VCC_PSAUX IS NOT AVAILABLE + */ + /* + * Register : CONTROL @ 0XFFA60040 + + * Enables the RTC. By writing a 0 to this bit, RTC will be powered off and + * the only module that potentially draws current from the battery will be + * BBRAM. The value read through this bit does not necessarily reflect whe + * ther RTC is enabled or not. It is expected that RTC is enabled every tim + * e it is being configured. If RTC is not used in the design, FSBL will di + * sable it by writing a 0 to this bit. + * PSU_RTC_CONTROL_BATTERY_DISABLE 0X1 + + * This register controls various functionalities within the RTC + * (OFFSET, MASK, VALUE) (0XFFA60040, 0x80000000U ,0x80000000U) + */ + PSU_Mask_Write(RTC_CONTROL_OFFSET, 0x80000000U, 0x80000000U); +/*##################################################################### */ + + /* + * TIMESTAMP COUNTER + */ + /* + * Register : base_frequency_ID_register @ 0XFF260020 + + * Frequency in number of ticks per second. Valid range from 10 MHz to 100 + * MHz. + * PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5b9f0 + + * Program this register to match the clock frequency of the timestamp gene + * rator, in ticks per second. For example, for a 50 MHz clock, program 0x0 + * 2FAF080. This register is not accessible to the read-only programming in + * terface. + * (OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5B9F0U) + */ + PSU_Mask_Write(IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET, + 0xFFFFFFFFU, 0x05F5B9F0U); +/*##################################################################### */ + + /* + * Register : counter_control_register @ 0XFF260000 + + * Enable 0: The counter is disabled and not incrementing. 1: The counter i + * s enabled and is incrementing. + * PSU_IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN 0x1 + + * Controls the counter increments. This register is not accessible to the + * read-only programming interface. + * (OFFSET, MASK, VALUE) (0XFF260000, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * TTC SRC SELECT + */ + /* + * PCIE GPIO RESET + */ + /* + * PCIE RESET + */ + /* + * DIR MODE BANK 0 + */ + /* + * DIR MODE BANK 1 + */ + /* + * Register : DIRM_1 @ 0XFF0A0244 + + * Operation is the same as DIRM_0[DIRECTION_0] + * PSU_GPIO_DIRM_1_DIRECTION_1 0x20 + + * Direction mode (GPIO Bank1, MIO) + * (OFFSET, MASK, VALUE) (0XFF0A0244, 0x03FFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(GPIO_DIRM_1_OFFSET, 0x03FFFFFFU, 0x00000020U); +/*##################################################################### */ + + /* + * DIR MODE BANK 2 + */ + /* + * OUTPUT ENABLE BANK 0 + */ + /* + * OUTPUT ENABLE BANK 1 + */ + /* + * Register : OEN_1 @ 0XFF0A0248 + + * Operation is the same as OEN_0[OP_ENABLE_0] + * PSU_GPIO_OEN_1_OP_ENABLE_1 0x20 + + * Output enable (GPIO Bank1, MIO) + * (OFFSET, MASK, VALUE) (0XFF0A0248, 0x03FFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(GPIO_OEN_1_OFFSET, 0x03FFFFFFU, 0x00000020U); +/*##################################################################### */ + + /* + * OUTPUT ENABLE BANK 2 + */ + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0020U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * ADD 1 MS DELAY + */ + mask_delay(1); + +/*##################################################################### */ + + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x0 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0000U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0000U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * ADD 5 MS DELAY + */ + mask_delay(5); + +/*##################################################################### */ + + + return 1; } -unsigned long psu_peripherals_powerdwn_data() { - // : POWER DOWN REQUEST INTERRUPT ENABLE - // : POWER DOWN TRIGGER +unsigned long psu_post_config_data(void) +{ + /* + * POST_CONFIG + */ - return 1; + return 1; } -unsigned long psu_lpd_xppu_data() { - // : XPPU INTERRUPT ENABLE - /*Register : IEN @ 0XFF980018

+unsigned long psu_peripherals_powerdwn_data(void) +{ + /* + * POWER DOWN REQUEST INTERRUPT ENABLE + */ + /* + * POWER DOWN TRIGGER + */ - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_PARITY 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_TZ 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_PERM 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_PARITY 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_RO 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_MISS 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_INV_APB 0X1 - - Interrupt Enable Register - (OFFSET, MASK, VALUE) (0XFF980018, 0x000000EFU ,0x000000EFU) - RegMask = (LPD_XPPU_CFG_IEN_APER_PARITY_MASK | LPD_XPPU_CFG_IEN_APER_TZ_MASK | LPD_XPPU_CFG_IEN_APER_PERM_MASK | LPD_XPPU_CFG_IEN_MID_PARITY_MASK | LPD_XPPU_CFG_IEN_MID_RO_MASK | LPD_XPPU_CFG_IEN_MID_MISS_MASK | LPD_XPPU_CFG_IEN_INV_APB_MASK | 0 ); - - RegVal = ((0x00000001U << LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_APER_TZ_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_APER_PERM_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_RO_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_MISS_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_INV_APB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_XPPU_CFG_IEN_OFFSET ,0x000000EFU ,0x000000EFU); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_ddr_xmpu0_data() { +unsigned long psu_lpd_xppu_data(void) +{ + /* + * MASTER ID LIST + */ + /* + * APERTURE PERMISIION LIST + */ + /* + * APERTURE NAME: UART0, START ADDRESS: FF000000, END ADDRESS: FF00FFFF + */ + /* + * APERTURE NAME: UART1, START ADDRESS: FF010000, END ADDRESS: FF01FFFF + */ + /* + * APERTURE NAME: I2C0, START ADDRESS: FF020000, END ADDRESS: FF02FFFF + */ + /* + * APERTURE NAME: I2C1, START ADDRESS: FF030000, END ADDRESS: FF03FFFF + */ + /* + * APERTURE NAME: SPI0, START ADDRESS: FF040000, END ADDRESS: FF04FFFF + */ + /* + * APERTURE NAME: SPI1, START ADDRESS: FF050000, END ADDRESS: FF05FFFF + */ + /* + * APERTURE NAME: CAN0, START ADDRESS: FF060000, END ADDRESS: FF06FFFF + */ + /* + * APERTURE NAME: CAN1, START ADDRESS: FF070000, END ADDRESS: FF07FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09 + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09 + * FFFF + */ + /* + * APERTURE NAME: GPIO, START ADDRESS: FF0A0000, END ADDRESS: FF0AFFFF + */ + /* + * APERTURE NAME: GEM0, START ADDRESS: FF0B0000, END ADDRESS: FF0BFFFF + */ + /* + * APERTURE NAME: GEM1, START ADDRESS: FF0C0000, END ADDRESS: FF0CFFFF + */ + /* + * APERTURE NAME: GEM2, START ADDRESS: FF0D0000, END ADDRESS: FF0DFFFF + */ + /* + * APERTURE NAME: GEM3, START ADDRESS: FF0E0000, END ADDRESS: FF0EFFFF + */ + /* + * APERTURE NAME: QSPI, START ADDRESS: FF0F0000, END ADDRESS: FF0FFFFF + */ + /* + * APERTURE NAME: NAND, START ADDRESS: FF100000, END ADDRESS: FF10FFFF + */ + /* + * APERTURE NAME: TTC0, START ADDRESS: FF110000, END ADDRESS: FF11FFFF + */ + /* + * APERTURE NAME: TTC1, START ADDRESS: FF120000, END ADDRESS: FF12FFFF + */ + /* + * APERTURE NAME: TTC2, START ADDRESS: FF130000, END ADDRESS: FF13FFFF + */ + /* + * APERTURE NAME: TTC3, START ADDRESS: FF140000, END ADDRESS: FF14FFFF + */ + /* + * APERTURE NAME: SWDT, START ADDRESS: FF150000, END ADDRESS: FF15FFFF + */ + /* + * APERTURE NAME: SD0, START ADDRESS: FF160000, END ADDRESS: FF16FFFF + */ + /* + * APERTURE NAME: SD1, START ADDRESS: FF170000, END ADDRESS: FF17FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SECURE_SLCR, START ADDRESS: FF240000, END ADDRESS: FF + * 24FFFF + */ + /* + * APERTURE NAME: IOU_SCNTR, START ADDRESS: FF250000, END ADDRESS: FF25FFFF + */ + /* + * APERTURE NAME: IOU_SCNTRS, START ADDRESS: FF260000, END ADDRESS: FF26FFF + * F + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_1, START ADDRESS: FF400000, END ADDRESS: FF40F + * FFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: OCM_SLCR, START ADDRESS: FF960000, END ADDRESS: FF96FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_4, START ADDRESS: FF970000, END ADDRESS: FF97F + * FFF + */ + /* + * APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + */ + /* + * APERTURE NAME: RPU, START ADDRESS: FF9A0000, END ADDRESS: FF9AFFFF + */ + /* + * APERTURE NAME: AFIFM6, START ADDRESS: FF9B0000, END ADDRESS: FF9BFFFF + */ + /* + * APERTURE NAME: LPD_XPPU_SINK, START ADDRESS: FF9C0000, END ADDRESS: FF9C + * FFFF + */ + /* + * APERTURE NAME: USB3_0, START ADDRESS: FF9D0000, END ADDRESS: FF9DFFFF + */ + /* + * APERTURE NAME: USB3_1, START ADDRESS: FF9E0000, END ADDRESS: FF9EFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_5, START ADDRESS: FF9F0000, END ADDRESS: FF9FF + * FFF + */ + /* + * APERTURE NAME: APM0, START ADDRESS: FFA00000, END ADDRESS: FFA0FFFF + */ + /* + * APERTURE NAME: APM1, START ADDRESS: FFA10000, END ADDRESS: FFA1FFFF + */ + /* + * APERTURE NAME: APM_INTC_IOU, START ADDRESS: FFA20000, END ADDRESS: FFA2F + * FFF + */ + /* + * APERTURE NAME: APM_FPD_LPD, START ADDRESS: FFA30000, END ADDRESS: FFA3FF + * FF + */ + /* + * APERTURE NAME: LPD_UNUSED_6, START ADDRESS: FFA40000, END ADDRESS: FFA4F + * FFF + */ + /* + * APERTURE NAME: AMS, START ADDRESS: FFA50000, END ADDRESS: FFA5FFFF + */ + /* + * APERTURE NAME: RTC, START ADDRESS: FFA60000, END ADDRESS: FFA6FFFF + */ + /* + * APERTURE NAME: OCM_XMPU_CFG, START ADDRESS: FFA70000, END ADDRESS: FFA7F + * FFF + */ + /* + * APERTURE NAME: ADMA_0, START ADDRESS: FFA80000, END ADDRESS: FFA8FFFF + */ + /* + * APERTURE NAME: ADMA_1, START ADDRESS: FFA90000, END ADDRESS: FFA9FFFF + */ + /* + * APERTURE NAME: ADMA_2, START ADDRESS: FFAA0000, END ADDRESS: FFAAFFFF + */ + /* + * APERTURE NAME: ADMA_3, START ADDRESS: FFAB0000, END ADDRESS: FFABFFFF + */ + /* + * APERTURE NAME: ADMA_4, START ADDRESS: FFAC0000, END ADDRESS: FFACFFFF + */ + /* + * APERTURE NAME: ADMA_5, START ADDRESS: FFAD0000, END ADDRESS: FFADFFFF + */ + /* + * APERTURE NAME: ADMA_6, START ADDRESS: FFAE0000, END ADDRESS: FFAEFFFF + */ + /* + * APERTURE NAME: ADMA_7, START ADDRESS: FFAF0000, END ADDRESS: FFAFFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + */ + /* + * APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + */ + /* + * APERTURE NAME: CSU_LOCAL, START ADDRESS: FFC20000, END ADDRESS: FFC2FFFF + */ + /* + * APERTURE NAME: PUF, START ADDRESS: FFC30000, END ADDRESS: FFC3FFFF + */ + /* + * APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + */ + /* + * APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + */ + /* + * APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7F + * FFF + */ + /* + * APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7F + * FFF + */ + /* + * APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + */ + /* + * APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + */ + /* + * APERTURE NAME: CSU, START ADDRESS: FFCA0000, END ADDRESS: FFCAFFFF + */ + /* + * APERTURE NAME: CSU_WDT, START ADDRESS: FFCB0000, END ADDRESS: FFCBFFFF + */ + /* + * APERTURE NAME: EFUSE, START ADDRESS: FFCC0000, END ADDRESS: FFCCFFFF + */ + /* + * APERTURE NAME: BBRAM, START ADDRESS: FFCD0000, END ADDRESS: FFCDFFFF + */ + /* + * APERTURE NAME: RSA_CORE, START ADDRESS: FFCE0000, END ADDRESS: FFCEFFFF + */ + /* + * APERTURE NAME: MBISTJTAG, START ADDRESS: FFCF0000, END ADDRESS: FFCFFFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5F + * FFF + */ + /* + * APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5F + * FFF + */ + /* + * APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + */ + /* + * APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: R5_0_ATCM, START ADDRESS: FFE00000, END ADDRESS: FFE0FFFF + */ + /* + * APERTURE NAME: R5_0_ATCM_LOCKSTEP, START ADDRESS: FFE10000, END ADDRESS: + * FFE1FFFF + */ + /* + * APERTURE NAME: R5_0_BTCM, START ADDRESS: FFE20000, END ADDRESS: FFE2FFFF + */ + /* + * APERTURE NAME: R5_0_BTCM_LOCKSTEP, START ADDRESS: FFE30000, END ADDRESS: + * FFE3FFFF + */ + /* + * APERTURE NAME: R5_0_INSTRUCTION_CACHE, START ADDRESS: FFE40000, END ADDR + * ESS: FFE4FFFF + */ + /* + * APERTURE NAME: R5_0_DATA_CACHE, START ADDRESS: FFE50000, END ADDRESS: FF + * E5FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: R5_1_ATCM_, START ADDRESS: FFE90000, END ADDRESS: FFE9FFF + * F + */ + /* + * APERTURE NAME: RPU_UNUSED_10, START ADDRESS: FFEA0000, END ADDRESS: FFEA + * FFFF + */ + /* + * APERTURE NAME: R5_1_BTCM_, START ADDRESS: FFEB0000, END ADDRESS: FFEBFFF + * F + */ + /* + * APERTURE NAME: R5_1_INSTRUCTION_CACHE, START ADDRESS: FFEC0000, END ADDR + * ESS: FFECFFFF + */ + /* + * APERTURE NAME: R5_1_DATA_CACHE, START ADDRESS: FFED0000, END ADDRESS: FF + * EDFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IOU_GPV, START ADDRESS: FE000000, END ADDRESS: FE0FFFFF + */ + /* + * APERTURE NAME: LPD_GPV, START ADDRESS: FE100000, END ADDRESS: FE1FFFFF + */ + /* + * APERTURE NAME: USB3_0_XHCI, START ADDRESS: FE200000, END ADDRESS: FE2FFF + * FF + */ + /* + * APERTURE NAME: USB3_1_XHCI, START ADDRESS: FE300000, END ADDRESS: FE3FFF + * FF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: QSPI_LINEAR_ADDRESS, START ADDRESS: C0000000, END ADDRESS + * : DFFFFFFF + */ + /* + * XPPU CONTROL + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu1_data() { +unsigned long psu_ddr_xmpu0_data(void) +{ + /* + * DDR XMPU0 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu2_data() { +unsigned long psu_ddr_xmpu1_data(void) +{ + /* + * DDR XMPU1 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu3_data() { +unsigned long psu_ddr_xmpu2_data(void) +{ + /* + * DDR XMPU2 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu4_data() { +unsigned long psu_ddr_xmpu3_data(void) +{ + /* + * DDR XMPU3 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu5_data() { +unsigned long psu_ddr_xmpu4_data(void) +{ + /* + * DDR XMPU4 + */ - return 1; + return 1; } -unsigned long psu_ocm_xmpu_data() { +unsigned long psu_ddr_xmpu5_data(void) +{ + /* + * DDR XMPU5 + */ - return 1; + return 1; } -unsigned long psu_fpd_xmpu_data() { +unsigned long psu_ocm_xmpu_data(void) +{ + /* + * OCM XMPU + */ - return 1; + return 1; } -unsigned long psu_protection_lock_data() { +unsigned long psu_fpd_xmpu_data(void) +{ + /* + * FPD XMPU + */ - return 1; + return 1; } -unsigned long psu_apply_master_tz() { - // : RPU - // : DP TZ - // : SATA TZ - // : PCIE TZ - // : USB TZ - // : SD TZ - // : GEM TZ - // : QSPI TZ - // : NAND TZ +unsigned long psu_protection_lock_data(void) +{ + /* + * LOCKING PROTECTION MODULE + */ + /* + * XPPU LOCK + */ + /* + * APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + */ + /* + * XMPU LOCK + */ + /* + * LOCK OCM XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK FPD XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ - return 1; + return 1; } -unsigned long psu_serdes_init_data() { - // : SERDES INITIALIZATION - // : GT REFERENCE CLOCK SOURCE SELECTION - /*Register : PLL_REF_SEL0 @ 0XFD410000

+unsigned long psu_apply_master_tz(void) +{ + /* + * RPU + */ + /* + * DP TZ + */ + /* + * Register : slcr_dpdma @ 0XFD690040 - PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL0_PLLREFSEL0 0xD + * TrustZone classification for DisplayPort DMA + * PSU_FPD_SLCR_SECURE_SLCR_DPDMA_TZ 1 - PLL0 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410000, 0x0000001FU ,0x0000000DU) - RegMask = (SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK | 0 ); + * DPDMA TrustZone Settings + * (OFFSET, MASK, VALUE) (0XFD690040, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ - RegVal = ((0x0000000DU << SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL0_OFFSET ,0x0000001FU ,0x0000000DU); - /*############################################################################################################################ */ + /* + * SATA TZ + */ + /* + * PCIE TZ + */ + /* + * Register : slcr_pcie @ 0XFD690030 - /*Register : PLL_REF_SEL1 @ 0XFD410004

+ * TrustZone classification for DMA Channel 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0 1 - PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL1_PLLREFSEL1 0x9 + * TrustZone classification for DMA Channel 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1 1 - PLL1 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410004, 0x0000001FU ,0x00000009U) - RegMask = (SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK | 0 ); + * TrustZone classification for DMA Channel 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2 1 - RegVal = ((0x00000009U << SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL1_OFFSET ,0x0000001FU ,0x00000009U); - /*############################################################################################################################ */ + * TrustZone classification for DMA Channel 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3 1 - /*Register : PLL_REF_SEL2 @ 0XFD410008

+ * TrustZone classification for Ingress Address Translation 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0 1 - PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL2_PLLREFSEL2 0x8 + * TrustZone classification for Ingress Address Translation 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1 1 - PLL2 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410008, 0x0000001FU ,0x00000008U) - RegMask = (SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK | 0 ); + * TrustZone classification for Ingress Address Translation 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2 1 - RegVal = ((0x00000008U << SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL2_OFFSET ,0x0000001FU ,0x00000008U); - /*############################################################################################################################ */ + * TrustZone classification for Ingress Address Translation 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3 1 + + * TrustZone classification for Ingress Address Translation 4 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4 1 + + * TrustZone classification for Ingress Address Translation 5 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5 1 + + * TrustZone classification for Ingress Address Translation 6 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6 1 - /*Register : PLL_REF_SEL3 @ 0XFD41000C

- - PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL3_PLLREFSEL3 0xF - - PLL3 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD41000C, 0x0000001FU ,0x0000000FU) - RegMask = (SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK | 0 ); - - RegVal = ((0x0000000FU << SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL3_OFFSET ,0x0000001FU ,0x0000000FU); - /*############################################################################################################################ */ - - // : GT REFERENCE CLOCK FREQUENCY SELECTION - /*Register : L0_L0_REF_CLK_SEL @ 0XFD402860

- - Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer output. Set to 0 to select lane0 ref clock mux output. - PSU_SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL 0x1 - - Lane0 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402860, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L0_REF_CLK_SEL_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_L1_REF_CLK_SEL @ 0XFD402864

- - Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane1 ref clock mux output. - PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL 0x0 - - Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 slicer output from ref clock network - PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3 0x1 - - Lane1 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402864, 0x00000088U ,0x00000008U) - RegMask = (SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK | SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT - | 0x00000001U << SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L1_REF_CLK_SEL_OFFSET ,0x00000088U ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : L0_L2_REF_CLK_SEL @ 0XFD402868

- - Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane2 ref clock mux output. - PSU_SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL 0x1 - - Lane2 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402868, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L2_REF_CLK_SEL_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_L3_REF_CLK_SEL @ 0XFD40286C

- - Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer output. Set to 0 to select lane3 ref clock mux output. - PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL 0x0 - - Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 slicer output from ref clock network - PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1 0x1 - - Lane3 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD40286C, 0x00000082U ,0x00000002U) - RegMask = (SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK | SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT - | 0x00000001U << SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L3_REF_CLK_SEL_OFFSET ,0x00000082U ,0x00000002U); - /*############################################################################################################################ */ - - // : ENABLE SPREAD SPECTRUM - /*Register : L2_TM_PLL_DIG_37 @ 0XFD40A094

- - Enable/Disable coarse code satureation limiting logic - PSU_SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION 0x1 - - Test mode register 37 - (OFFSET, MASK, VALUE) (0XFD40A094, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_PLL_DIG_37_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEPS_0_LSB @ 0XFD40A368

- - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x38 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD40A368, 0x000000FFU ,0x00000038U) - RegMask = (SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x00000038U << SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x00000038U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEPS_1_MSB @ 0XFD40A36C

- - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x03 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40A36C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEPS_0_LSB @ 0XFD40E368

- - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0xE0 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD40E368, 0x000000FFU ,0x000000E0U) - RegMask = (SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x000000E0U << SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x000000E0U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEPS_1_MSB @ 0XFD40E36C

- - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40E36C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEPS_0_LSB @ 0XFD406368

- - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x58 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD406368, 0x000000FFU ,0x00000058U) - RegMask = (SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x00000058U << SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x00000058U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEPS_1_MSB @ 0XFD40636C

- - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40636C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_0_LSB @ 0XFD406370

- - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0x7C - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD406370, 0x000000FFU ,0x0000007CU) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x0000007CU << SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x0000007CU); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_1 @ 0XFD406374

- - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x33 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD406374, 0x000000FFU ,0x00000033U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x00000033U << SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x00000033U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_2 @ 0XFD406378

- - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD406378, 0x000000FFU ,0x00000002U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40637C

- - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40637C, 0x00000033U ,0x00000030U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x00000033U ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40A370

- - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xF4 - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD40A370, 0x000000FFU ,0x000000F4U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x000000F4U << SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x000000F4U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_1 @ 0XFD40A374

- - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x31 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD40A374, 0x000000FFU ,0x00000031U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x00000031U << SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x00000031U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_2 @ 0XFD40A378

- - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD40A378, 0x000000FFU ,0x00000002U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40A37C

- - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40A37C, 0x00000033U ,0x00000030U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x00000033U ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40E370

- - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xC9 - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD40E370, 0x000000FFU ,0x000000C9U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x000000C9U << SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x000000C9U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_1 @ 0XFD40E374

- - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0xD2 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD40E374, 0x000000FFU ,0x000000D2U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x000000D2U << SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x000000D2U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_2 @ 0XFD40E378

- - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x1 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD40E378, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40E37C

- - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable test mode forcing on enable Spread Spectrum - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40E37C, 0x000000B3U ,0x000000B0U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x000000B3U ,0x000000B0U); - /*############################################################################################################################ */ - - /*Register : L2_TM_DIG_6 @ 0XFD40906C

- - Bypass Descrambler - PSU_SERDES_L2_TM_DIG_6_BYPASS_DESCRAM 0x1 - - Enable Bypass for <1> TM_DIG_CTRL_6 - PSU_SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - - Data path test modes in decoder and descram - (OFFSET, MASK, VALUE) (0XFD40906C, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK | SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT - | 0x00000001U << SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_DIG_6_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L2_TX_DIG_TM_61 @ 0XFD4080F4

- - Bypass scrambler signal - PSU_SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - - Enable/disable scrambler bypass signal - PSU_SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - - MPHY PLL Gear and bypass scrambler - (OFFSET, MASK, VALUE) (0XFD4080F4, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK | SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT - | 0x00000001U << SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TX_DIG_TM_61_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_FBDIV_FRAC_3_MSB @ 0XFD40E360

- - Enable test mode force on fractional mode enable - PSU_SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC 0x1 - - Fractional feedback division control and fractional value for feedback division bits 26:24 - (OFFSET, MASK, VALUE) (0XFD40E360, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_FBDIV_FRAC_3_MSB_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_DIG_6 @ 0XFD40D06C

- - Bypass 8b10b decoder - PSU_SERDES_L3_TM_DIG_6_BYPASS_DECODER 0x1 - - Enable Bypass for <3> TM_DIG_CTRL_6 - PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC 0x1 - - Bypass Descrambler - PSU_SERDES_L3_TM_DIG_6_BYPASS_DESCRAM 0x1 - - Enable Bypass for <1> TM_DIG_CTRL_6 - PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - - Data path test modes in decoder and descram - (OFFSET, MASK, VALUE) (0XFD40D06C, 0x0000000FU ,0x0000000FU) - RegMask = (SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK | SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK | SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK | SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_DIG_6_OFFSET ,0x0000000FU ,0x0000000FU); - /*############################################################################################################################ */ - - /*Register : L3_TX_DIG_TM_61 @ 0XFD40C0F4

- - Enable/disable encoder bypass signal - PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_ENC 0x1 - - Bypass scrambler signal - PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - - Enable/disable scrambler bypass signal - PSU_SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - - MPHY PLL Gear and bypass scrambler - (OFFSET, MASK, VALUE) (0XFD40C0F4, 0x0000000BU ,0x0000000BU) - RegMask = (SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK | SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK | SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT - | 0x00000001U << SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT - | 0x00000001U << SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_DIG_TM_61_OFFSET ,0x0000000BU ,0x0000000BU); - /*############################################################################################################################ */ - - /*Register : L3_TXPMA_ST_0 @ 0XFD40CB00

- - PHY Mode: 4'b000 - PCIe, 4'b001 - USB3, 4'b0010 - SATA, 4'b0100 - SGMII, 4'b0101 - DP, 4'b1000 - MPHY - PSU_SERDES_L3_TXPMA_ST_0_TX_PHY_MODE 0x21 - - Opmode Info - (OFFSET, MASK, VALUE) (0XFD40CB00, 0x000000F0U ,0x000000F0U) - RegMask = (SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK | 0 ); - - RegVal = ((0x00000021U << SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TXPMA_ST_0_OFFSET ,0x000000F0U ,0x000000F0U); - /*############################################################################################################################ */ - - // : ENABLE CHICKEN BIT FOR PCIE AND USB - /*Register : L0_TM_AUX_0 @ 0XFD4010CC

- - Spare- not used - PSU_SERDES_L0_TM_AUX_0_BIT_2 1 - - Spare registers - (OFFSET, MASK, VALUE) (0XFD4010CC, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L0_TM_AUX_0_BIT_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_AUX_0_BIT_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_AUX_0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L2_TM_AUX_0 @ 0XFD4090CC

- - Spare- not used - PSU_SERDES_L2_TM_AUX_0_BIT_2 1 - - Spare registers - (OFFSET, MASK, VALUE) (0XFD4090CC, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L2_TM_AUX_0_BIT_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_AUX_0_BIT_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_AUX_0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - // : ENABLING EYE SURF - /*Register : L0_TM_DIG_8 @ 0XFD401074

- - Enable Eye Surf - PSU_SERDES_L0_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD401074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L1_TM_DIG_8 @ 0XFD405074

- - Enable Eye Surf - PSU_SERDES_L1_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD405074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_TM_DIG_8 @ 0XFD409074

- - Enable Eye Surf - PSU_SERDES_L2_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD409074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L3_TM_DIG_8 @ 0XFD40D074

- - Enable Eye Surf - PSU_SERDES_L3_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD40D074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - // : ILL SETTINGS FOR GAIN AND LOCK SETTINGS - /*Register : L0_TM_MISC2 @ 0XFD40189C

- - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40189C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL1 @ 0XFD4018F8

- - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4018F8, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL2 @ 0XFD4018FC

- - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4018FC, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ILL12 @ 0XFD401990

- - G1A pll ctr bypass value - PSU_SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x11 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD401990, 0x000000FFU ,0x00000011U) - RegMask = (SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000011U << SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ILL12_OFFSET ,0x000000FFU ,0x00000011U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL1 @ 0XFD401924

- - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x4 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD401924, 0x000000FFU ,0x00000004U) - RegMask = (SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x00000004U << SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL1_OFFSET ,0x000000FFU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL2 @ 0XFD401928

- - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0xFE - - epi cal code - (OFFSET, MASK, VALUE) (0XFD401928, 0x000000FFU ,0x000000FEU) - RegMask = (SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x000000FEU << SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL2_OFFSET ,0x000000FFU ,0x000000FEU); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL3 @ 0XFD401900

- - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD401900, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL3 @ 0XFD40192C

- - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40192C, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ILL8 @ 0XFD401980

- - ILL calibration code change wait time - PSU_SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD401980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL8 @ 0XFD401914

- - IQ ILL polytrim bypass value - PSU_SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD401914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL9 @ 0XFD401918

- - bypass IQ polytrim - PSU_SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD401918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL8 @ 0XFD401940

- - E ILL polytrim bypass value - PSU_SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD401940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL9 @ 0XFD401944

- - bypass E polytrim - PSU_SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD401944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L2_TM_MISC2 @ 0XFD40989C

- - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40989C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL1 @ 0XFD4098F8

- - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4098F8, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL2 @ 0XFD4098FC

- - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4098FC, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_ILL12 @ 0XFD409990

- - G1A pll ctr bypass value - PSU_SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x10 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD409990, 0x000000FFU ,0x00000010U) - RegMask = (SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000010U << SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ILL12_OFFSET ,0x000000FFU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL1 @ 0XFD409924

- - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0xFE - - epi cal code - (OFFSET, MASK, VALUE) (0XFD409924, 0x000000FFU ,0x000000FEU) - RegMask = (SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x000000FEU << SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL1_OFFSET ,0x000000FFU ,0x000000FEU); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL2 @ 0XFD409928

- - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD409928, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL2_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL3 @ 0XFD409900

- - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD409900, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL3 @ 0XFD40992C

- - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40992C, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L2_TM_ILL8 @ 0XFD409980

- - ILL calibration code change wait time - PSU_SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD409980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL8 @ 0XFD409914

- - IQ ILL polytrim bypass value - PSU_SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD409914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL9 @ 0XFD409918

- - bypass IQ polytrim - PSU_SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD409918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL8 @ 0XFD409940

- - E ILL polytrim bypass value - PSU_SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD409940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL9 @ 0XFD409944

- - bypass E polytrim - PSU_SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD409944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_MISC2 @ 0XFD40D89C

- - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40D89C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL1 @ 0XFD40D8F8

- - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D8F8, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL2 @ 0XFD40D8FC

- - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D8FC, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL12 @ 0XFD40D990

- - G1A pll ctr bypass value - PSU_SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x1 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD40D990, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL12_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL1 @ 0XFD40D924

- - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x9C - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D924, 0x000000FFU ,0x0000009CU) - RegMask = (SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000009CU << SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL1_OFFSET ,0x000000FFU ,0x0000009CU); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL2 @ 0XFD40D928

- - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x39 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D928, 0x000000FFU ,0x00000039U) - RegMask = (SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000039U << SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL2_OFFSET ,0x000000FFU ,0x00000039U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL11 @ 0XFD40D98C

- - G2A_PCIe1 PLL ctr bypass value - PSU_SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL 0x2 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD40D98C, 0x000000F0U ,0x00000020U) - RegMask = (SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL11_OFFSET ,0x000000F0U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL3 @ 0XFD40D900

- - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D900, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL3 @ 0XFD40D92C

- - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x64 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D92C, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL8 @ 0XFD40D980

- - ILL calibration code change wait time - PSU_SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD40D980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL8 @ 0XFD40D914

- - IQ ILL polytrim bypass value - PSU_SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD40D914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL9 @ 0XFD40D918

- - bypass IQ polytrim - PSU_SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD40D918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL8 @ 0XFD40D940

- - E ILL polytrim bypass value - PSU_SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD40D940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL9 @ 0XFD40D944

- - bypass E polytrim - PSU_SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD40D944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : SYMBOL LOCK AND WAIT - /*Register : L0_TM_DIG_21 @ 0XFD4010A8

- - pre lock comma count threshold. 2'b 00 : 3, 2'b 01 : 5, 2'b 10 : 10, 2'b 11 : 20 - PSU_SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH 0x11 - - Control symbol alignment locking - wait counts - (OFFSET, MASK, VALUE) (0XFD4010A8, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK | 0 ); - - RegVal = ((0x00000011U << SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_21_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L0_TM_DIG_10 @ 0XFD40107C

- - CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 - PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0xF - - test control for changing cdr lock wait time - (OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x0000000FU) - RegMask = (SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK | 0 ); - - RegVal = ((0x0000000FU << SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_10_OFFSET ,0x0000000FU ,0x0000000FU); - /*############################################################################################################################ */ - - // : SIOU SETTINGS FOR BYPASS CONTROL,HSRX-DIG - /*Register : L0_TM_RST_DLY @ 0XFD4019A4

- - Delay apb reset by specified amount - PSU_SERDES_L0_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4019A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L0_TM_ANA_BYP_15 @ 0XFD401038

- - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD401038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ANA_BYP_12 @ 0XFD40102C

- - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40102C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L1_TM_RST_DLY @ 0XFD4059A4

- - Delay apb reset by specified amount - PSU_SERDES_L1_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4059A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L1_TM_ANA_BYP_15 @ 0XFD405038

- - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD405038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L1_TM_ANA_BYP_12 @ 0XFD40502C

- - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40502C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L2_TM_RST_DLY @ 0XFD4099A4

- - Delay apb reset by specified amount - PSU_SERDES_L2_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4099A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L2_TM_ANA_BYP_15 @ 0XFD409038

- - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD409038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L2_TM_ANA_BYP_12 @ 0XFD40902C

- - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40902C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_RST_DLY @ 0XFD40D9A4

- - Delay apb reset by specified amount - PSU_SERDES_L3_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD40D9A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L3_TM_ANA_BYP_15 @ 0XFD40D038

- - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD40D038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ANA_BYP_12 @ 0XFD40D02C

- - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40D02C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - // : GT LANE SETTINGS - /*Register : ICM_CFG0 @ 0XFD410010

- - Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unuse - , 7 - Unused - PSU_SERDES_ICM_CFG0_L0_ICM_CFG 1 - - Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG0_L1_ICM_CFG 4 - - ICM Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD410010, 0x00000077U ,0x00000041U) - RegMask = (SERDES_ICM_CFG0_L0_ICM_CFG_MASK | SERDES_ICM_CFG0_L1_ICM_CFG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT - | 0x00000004U << SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_ICM_CFG0_OFFSET ,0x00000077U ,0x00000041U); - /*############################################################################################################################ */ - - /*Register : ICM_CFG1 @ 0XFD410014

- - Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG1_L2_ICM_CFG 3 - - Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG1_L3_ICM_CFG 2 - - ICM Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD410014, 0x00000077U ,0x00000023U) - RegMask = (SERDES_ICM_CFG1_L2_ICM_CFG_MASK | SERDES_ICM_CFG1_L3_ICM_CFG_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT - | 0x00000002U << SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_ICM_CFG1_OFFSET ,0x00000077U ,0x00000023U); - /*############################################################################################################################ */ - - // : CHECKING PLL LOCK - // : ENABLE SERIAL DATA MUX DEEMPH - /*Register : L1_TXPMD_TM_45 @ 0XFD404CB4

- - Enable/disable DP post2 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH 0x1 - - Override enable/disable of DP post2 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH 0x1 - - Override enable/disable of DP post1 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH 0x1 - - Enable/disable DP main path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH 0x1 - - Override enable/disable of DP main path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH 0x1 - - Post or pre or main DP path selection - (OFFSET, MASK, VALUE) (0XFD404CB4, 0x00000037U ,0x00000037U) - RegMask = (SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TXPMD_TM_45_OFFSET ,0x00000037U ,0x00000037U); - /*############################################################################################################################ */ - - /*Register : L1_TX_ANA_TM_118 @ 0XFD4041D8

- - Test register force for enabling/disablign TX deemphasis bits <17:0> - PSU_SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 - - Enable Override of TX deemphasis - (OFFSET, MASK, VALUE) (0XFD4041D8, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TX_ANA_TM_118_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TX_ANA_TM_118 @ 0XFD40C1D8

- - Test register force for enabling/disablign TX deemphasis bits <17:0> - PSU_SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 - - Enable Override of TX deemphasis - (OFFSET, MASK, VALUE) (0XFD40C1D8, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_ANA_TM_118_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : CDR AND RX EQUALIZATION SETTINGS - /*Register : L3_TM_CDR5 @ 0XFD40DC14

- - FPHL FSM accumulate cycles - PSU_SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES 0x7 - - FFL Phase0 int gain aka 2ol SD update rate - PSU_SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN 0x6 - - Fast phase lock controls -- FSM accumulator cycle control and phase 0 int gain control. - (OFFSET, MASK, VALUE) (0XFD40DC14, 0x000000FFU ,0x000000E6U) - RegMask = (SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK | SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK | 0 ); - - RegVal = ((0x00000007U << SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT - | 0x00000006U << SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_CDR5_OFFSET ,0x000000FFU ,0x000000E6U); - /*############################################################################################################################ */ - - /*Register : L3_TM_CDR16 @ 0XFD40DC40

- - FFL Phase0 prop gain aka 1ol SD update rate - PSU_SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN 0xC - - Fast phase lock controls -- phase 0 prop gain - (OFFSET, MASK, VALUE) (0XFD40DC40, 0x0000001FU ,0x0000000CU) - RegMask = (SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK | 0 ); - - RegVal = ((0x0000000CU << SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_CDR16_OFFSET ,0x0000001FU ,0x0000000CU); - /*############################################################################################################################ */ - - /*Register : L3_TM_EQ0 @ 0XFD40D94C

- - EQ stg 2 controls BYPASSED - PSU_SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP 1 - - eq stg1 and stg2 controls - (OFFSET, MASK, VALUE) (0XFD40D94C, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_EQ0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L3_TM_EQ1 @ 0XFD40D950

- - EQ STG2 RL PROG - PSU_SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG 0x2 - - EQ stg 2 preamp mode val - PSU_SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL 0x1 - - eq stg1 and stg2 controls - (OFFSET, MASK, VALUE) (0XFD40D950, 0x00000007U ,0x00000006U) - RegMask = (SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK | SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT - | 0x00000001U << SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_EQ1_OFFSET ,0x00000007U ,0x00000006U); - /*############################################################################################################################ */ - - // : GEM SERDES SETTINGS - // : ENABLE PRE EMPHAIS AND VOLTAGE SWING - /*Register : L1_TXPMD_TM_48 @ 0XFD404CC0

- - Margining factor value - PSU_SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR 0 - - Margining factor - (OFFSET, MASK, VALUE) (0XFD404CC0, 0x0000001FU ,0x00000000U) - RegMask = (SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TXPMD_TM_48_OFFSET ,0x0000001FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L1_TX_ANA_TM_18 @ 0XFD404048

- - pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved - PSU_SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0 - - Override for PIPE TX de-emphasis - (OFFSET, MASK, VALUE) (0XFD404048, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TX_ANA_TM_18_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L3_TX_ANA_TM_18 @ 0XFD40C048

- - pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved - PSU_SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0x1 - - Override for PIPE TX de-emphasis - (OFFSET, MASK, VALUE) (0XFD40C048, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_ANA_TM_18_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - - return 1; + * TrustZone classification for Ingress Address Translation 7 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7 1 + + * TrustZone classification for Egress Address Translation 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0 1 + + * TrustZone classification for Egress Address Translation 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1 1 + + * TrustZone classification for Egress Address Translation 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2 1 + + * TrustZone classification for Egress Address Translation 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3 1 + + * TrustZone classification for Egress Address Translation 4 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4 1 + + * TrustZone classification for Egress Address Translation 5 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5 1 + + * TrustZone classification for Egress Address Translation 6 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6 1 + + * TrustZone classification for Egress Address Translation 7 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7 1 + + * TrustZone classification for DMA Registers + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS 1 + + * TrustZone classification for MSIx Table + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE 1 + + * TrustZone classification for MSIx PBA + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA 1 + + * TrustZone classification for ECAM + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM 1 + + * TrustZone classification for Bridge Common Registers + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS 1 + + * PCIe TrustZone settings. This register may only be modified during bootu + * p (while PCIe block is disabled) + * (OFFSET, MASK, VALUE) (0XFD690030, 0x01FFFFFFU ,0x01FFFFFFU) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_PCIE_OFFSET, + 0x01FFFFFFU, 0x01FFFFFFU); +/*##################################################################### */ + + /* + * USB TZ + */ + /* + * Register : slcr_usb @ 0XFF4B0034 + + * TrustZone Classification for USB3_0 + * PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0 1 + + * TrustZone Classification for USB3_1 + * PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1 1 + + * USB3 TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0034, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_USB_OFFSET, + 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * SD TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x003F0000U ,0x00120000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x003F0000U, 0x00120000U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x003F0000U ,0x00120000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x003F0000U, 0x00120000U); +/*##################################################################### */ + + /* + * GEM TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x00000FFFU ,0x00000492U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x00000FFFU, 0x00000492U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x00000FFFU ,0x00000492U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x00000FFFU, 0x00000492U); +/*##################################################################### */ + + /* + * QSPI TZ + */ + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x0E000000U ,0x04000000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x0E000000U, 0x04000000U); +/*##################################################################### */ + + /* + * NAND TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x01C00000U ,0x00800000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x01C00000U, 0x00800000U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x01C00000U ,0x00800000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x01C00000U, 0x00800000U); +/*##################################################################### */ + + /* + * DMA TZ + */ + /* + * Register : slcr_adma @ 0XFF4B0024 + + * TrustZone Classification for ADMA + * PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0xFF + + * RPU TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_ADMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : slcr_gdma @ 0XFD690050 + + * TrustZone Classification for GDMA + * PSU_FPD_SLCR_SECURE_SLCR_GDMA_TZ 0xFF + + * GDMA Trustzone Settings + * (OFFSET, MASK, VALUE) (0XFD690050, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_GDMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + + return 1; } -unsigned long psu_resetout_init_data() { - // : TAKING SERDES PERIPHERAL OUT OF RESET RESET - // : PUTTING USB0 IN RESET - /*Register : RST_LPD_TOP @ 0XFF5E023C

+unsigned long psu_serdes_init_data(void) +{ + /* + * SERDES INITIALIZATION + */ + /* + * GT REFERENCE CLOCK SOURCE SELECTION + */ + /* + * Register : PLL_REF_SEL0 @ 0XFD410000 + + * PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL0_PLLREFSEL0 0xD + + * PLL0 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410000, 0x0000001FU ,0x0000000DU) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL0_OFFSET, 0x0000001FU, 0x0000000DU); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL1 @ 0XFD410004 + + * PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL1_PLLREFSEL1 0x9 + + * PLL1 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410004, 0x0000001FU ,0x00000009U) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL1_OFFSET, 0x0000001FU, 0x00000009U); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL2 @ 0XFD410008 + + * PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL2_PLLREFSEL2 0x8 + + * PLL2 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410008, 0x0000001FU ,0x00000008U) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL2_OFFSET, 0x0000001FU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL3 @ 0XFD41000C + + * PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL3_PLLREFSEL3 0xF + + * PLL3 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD41000C, 0x0000001FU ,0x0000000FU) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL3_OFFSET, 0x0000001FU, 0x0000000FU); +/*##################################################################### */ + + /* + * GT REFERENCE CLOCK FREQUENCY SELECTION + */ + /* + * Register : L0_L0_REF_CLK_SEL @ 0XFD402860 + + * Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer outp + * ut. Set to 0 to select lane0 ref clock mux output. + * PSU_SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL 0x1 + + * Lane0 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402860, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_L0_REF_CLK_SEL_OFFSET, + 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_L1_REF_CLK_SEL @ 0XFD402864 + + * Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane1 ref clock mux output. + * PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL 0x0 + + * Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 sli + * cer output from ref clock network + * PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3 0x1 + + * Lane1 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402864, 0x00000088U ,0x00000008U) + */ + PSU_Mask_Write(SERDES_L0_L1_REF_CLK_SEL_OFFSET, + 0x00000088U, 0x00000008U); +/*##################################################################### */ + + /* + * Register : L0_L2_REF_CLK_SEL @ 0XFD402868 + + * Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane2 ref clock mux output. + * PSU_SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL 0x1 + + * Lane2 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402868, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_L2_REF_CLK_SEL_OFFSET, + 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_L3_REF_CLK_SEL @ 0XFD40286C + + * Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer outp + * ut. Set to 0 to select lane3 ref clock mux output. + * PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL 0x0 + + * Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 sli + * cer output from ref clock network + * PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1 0x1 + + * Lane3 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD40286C, 0x00000082U ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L0_L3_REF_CLK_SEL_OFFSET, + 0x00000082U, 0x00000002U); +/*##################################################################### */ + + /* + * ENABLE SPREAD SPECTRUM + */ + /* + * Register : L2_TM_PLL_DIG_37 @ 0XFD40A094 + + * Enable/Disable coarse code satureation limiting logic + * PSU_SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION 0x1 + + * Test mode register 37 + * (OFFSET, MASK, VALUE) (0XFD40A094, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_PLL_DIG_37_OFFSET, + 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEPS_0_LSB @ 0XFD40A368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x38 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD40A368, 0x000000FFU ,0x00000038U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x00000038U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEPS_1_MSB @ 0XFD40A36C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x03 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40A36C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L3_PLL_SS_STEPS_0_LSB @ 0XFD40E368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0xE0 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD40E368, 0x000000FFU ,0x000000E0U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x000000E0U); +/*##################################################################### */ + + /* + * Register : L3_PLL_SS_STEPS_1_MSB @ 0XFD40E36C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40E36C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEPS_0_LSB @ 0XFD406368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x58 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD406368, 0x000000FFU ,0x00000058U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x00000058U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEPS_1_MSB @ 0XFD40636C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40636C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_0_LSB @ 0XFD406370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0x7C + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD406370, 0x000000FFU ,0x0000007CU) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x0000007CU); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_1 @ 0XFD406374 + + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x33 + + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD406374, 0x000000FFU ,0x00000033U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x00000033U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_2 @ 0XFD406378 + + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 + + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD406378, 0x000000FFU ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40637C + + * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 + + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 + + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40637C, 0x00000033U ,0x00000030U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x00000033U, 0x00000030U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40A370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xF4 + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD40A370, 0x000000FFU ,0x000000F4U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x000000F4U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_1 @ 0XFD40A374 + + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x31 + + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD40A374, 0x000000FFU ,0x00000031U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x00000031U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_2 @ 0XFD40A378 - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X0 + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 + + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD40A378, 0x000000FFU ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40A37C - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000400U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | 0 ); + * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000400U ,0x00000000U); - /*############################################################################################################################ */ + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 + + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40A37C, 0x00000033U ,0x00000030U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x00000033U, 0x00000030U); +/*##################################################################### */ - // : USB0 PIPE POWER PRESENT - /*Register : fpd_power_prsnt @ 0XFF9D0080

+ /* + * Register : L3_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40E370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xC9 + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD40E370, 0x000000FFU ,0x000000C9U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x000000C9U); +/*##################################################################### */ - This bit is used to choose between PIPE power present and 1'b1 - PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 + /* + * Register : L3_PLL_SS_STEP_SIZE_1 @ 0XFD40E374 - fpd_power_prsnt - (OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) - RegMask = (USB3_0_FPD_POWER_PRSNT_OPTION_MASK | 0 ); + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0xD2 - RegVal = ((0x00000001U << USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_FPD_POWER_PRSNT_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD40E374, 0x000000FFU ,0x000000D2U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x000000D2U); +/*##################################################################### */ - /*Register : fpd_pipe_clk @ 0XFF9D007C

+ /* + * Register : L3_PLL_SS_STEP_SIZE_2 @ 0XFD40E378 - This bit is used to choose between PIPE clock coming from SerDes and the suspend clk - PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x1 - fpd_pipe_clk - (OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) - RegMask = (USB3_0_FPD_PIPE_CLK_OPTION_MASK | 0 ); + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD40E378, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000001U); +/*##################################################################### */ - RegVal = ((0x00000000U << USB3_0_FPD_PIPE_CLK_OPTION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_FPD_PIPE_CLK_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : L3_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40E37C - // : - /*Register : RST_LPD_TOP @ 0XFF5E023C

+ * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X0 + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X0 + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable test mode forcing on enable Spread Spectrum + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS 0x1 - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000140U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40E37C, 0x000000B3U ,0x000000B0U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x000000B3U, 0x000000B0U); +/*##################################################################### */ - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000140U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : L2_TM_DIG_6 @ 0XFD40906C - // : PUTTING GEM0 IN RESET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

+ * Bypass Descrambler + * PSU_SERDES_L2_TM_DIG_6_BYPASS_DESCRAM 0x1 - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X0 + * Enable Bypass for <1> TM_DIG_CTRL_6 + * PSU_SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * Data path test modes in decoder and descram + * (OFFSET, MASK, VALUE) (0XFD40906C, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_6_OFFSET, 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L2_TX_DIG_TM_61 @ 0XFD4080F4 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ + * Bypass scrambler signal + * PSU_SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - // : PUTTING SATA IN RESET - /*Register : sata_misc_ctrl @ 0XFD3D0100

+ * Enable/disable scrambler bypass signal + * PSU_SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 + + * MPHY PLL Gear and bypass scrambler + * (OFFSET, MASK, VALUE) (0XFD4080F4, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_TX_DIG_TM_61_OFFSET, + 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L3_PLL_FBDIV_FRAC_3_MSB @ 0XFD40E360 + + * Enable test mode force on fractional mode enable + * PSU_SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC 0x1 + + * Fractional feedback division control and fractional value for feedback d + * ivision bits 26:24 + * (OFFSET, MASK, VALUE) (0XFD40E360, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_PLL_FBDIV_FRAC_3_MSB_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ - Sata PM clock control select - PSU_SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL 0x3 + /* + * Register : L3_TM_DIG_6 @ 0XFD40D06C + + * Bypass 8b10b decoder + * PSU_SERDES_L3_TM_DIG_6_BYPASS_DECODER 0x1 - Misc Contorls for SATA.This register may only be modified during bootup (while SATA block is disabled) - (OFFSET, MASK, VALUE) (0XFD3D0100, 0x00000003U ,0x00000003U) - RegMask = (SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK | 0 ); + * Enable Bypass for <3> TM_DIG_CTRL_6 + * PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC 0x1 - RegVal = ((0x00000003U << SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SIOU_SATA_MISC_CTRL_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ + * Bypass Descrambler + * PSU_SERDES_L3_TM_DIG_6_BYPASS_DESCRAM 0x1 - /*Register : RST_FPD_TOP @ 0XFD1A0100

+ * Enable Bypass for <1> TM_DIG_CTRL_6 + * PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 + + * Data path test modes in decoder and descram + * (OFFSET, MASK, VALUE) (0XFD40D06C, 0x0000000FU ,0x0000000FU) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_6_OFFSET, 0x0000000FU, 0x0000000FU); +/*##################################################################### */ + + /* + * Register : L3_TX_DIG_TM_61 @ 0XFD40C0F4 + + * Enable/disable encoder bypass signal + * PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_ENC 0x1 + + * Bypass scrambler signal + * PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM 0x1 + + * Enable/disable scrambler bypass signal + * PSU_SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING PCIE CFG AND BRIDGE IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

- - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X0 - - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000C0000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000C0000U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING DP IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

- - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_DP_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00010000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DP_PHY_RESET @ 0XFD4A0200

- - Set to '1' to hold the GT in reset. Clear to release. - PSU_DP_DP_PHY_RESET_GT_RESET 0X0 - - Reset the transmitter PHY. - (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000000U) - RegMask = (DP_DP_PHY_RESET_GT_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << DP_DP_PHY_RESET_GT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_PHY_RESET_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

- - Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1 - PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0X0 - - Control PHY Power down - (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x00000000U) - RegMask = (DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK | 0 ); - - RegVal = ((0x00000000U << DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_TX_PHY_POWER_DOWN_OFFSET ,0x0000000FU ,0x00000000U); - /*############################################################################################################################ */ - - // : USB0 GFLADJ - /*Register : GUSB2PHYCFG @ 0XFE20C200

- - USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to - he Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). The following are the required values for the minimum S - C bus frequency of 60 MHz. USB turnaround time is a critical certification criteria when using long cables and five hub level - . The required values for this field: - 4'h5: When the MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit - UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround time is not critical, this field can be set to a larger - alue. Note: This field is valid only in device mode. - PSU_USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM 0x9 - - Transceiver Delay: Enables a delay between the assertion of the UTMI/ULPI Transceiver Select signal (for HS) and the assertio - of the TxValid signal during a HS Chirp. When this bit is set to 1, a delay (of approximately 2.5 us) is introduced from the - time when the Transceiver Select is set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the chirp-K. This de - ay is required for some UTMI/ULPI PHYs. Note: - If you enable the hibernation feature when the device core comes out of power - off, you must re-initialize this bit with the appropriate value because the core does not save and restore this bit value dur - ng hibernation. - This bit is valid only in device mode. - PSU_USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY 0x0 - - Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application uses this bit to control utmi_sleep_n and utmi_l1_suspen - _n assertion to the PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is not transferre - to the external PHY. - 1'b1: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is transferred to the external PHY. - ote: This bit must be set high for Port0 if PHY is used. Note: In Device mode - Before issuing any device endpoint command wh - n operating in 2.0 speeds, disable this bit and enable it after the command completes. Without disabling this bit, if a comma - d is issued when the device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get complet - d. - PSU_USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM 0x0 - - USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select The application uses this bit to select a high-speed P - Y or a full-speed transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is always 0, with Write Only access. - - 'b1: USB 1.1 full-speed serial transceiver. This bit is always 1, with Write Only access. If both interface types are selecte - in coreConsultant (that is, parameters' values are not zero), the application uses this bit to select the active interface i - active, with Read-Write bit access. Note: USB 1.1 full-serial transceiver is not supported. This bit always reads as 1'b0. - PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYSEL 0x0 - - Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select a unidirectional or bidirectional USB 1.1 - full-speed serial transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial interface. This bit is set to 0 with - ead Only access. - 1'b1: 3-pin bidirectional full-speed serial interface. This bit is set to 0 with Read Only access. Note: U - B 1.1 full-speed serial interface is not supported. This bit always reads as 1'b0. - PSU_USB3_0_XHCI_GUSB2PHYCFG_FSINTF 0x0 - - ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interfa - e - 1'b1: ULPI Interface This bit is writable only if UTMI+ and ULPI is specified for High-Speed PHY Interface(s) in coreCons - ltant configuration (DWC_USB3_HSPHY_INTERFACE = 3). Otherwise, this bit is read-only and the value depends on the interface s - lected through DWC_USB3_HSPHY_INTERFACE. - PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL 0x1 - - PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bit to configure the core to support a UTMI+ PHY with a - 8- or 16-bit interface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the enabled 2.0 ports must have the same - lock frequency as Port0 clock frequency (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used together for differen - ports at the same time (that is, all the ports must be in 8-bit mode, or all of them must be in 16-bit mode, at a time). - I - any of the USB 2.0 ports is selected as ULPI port for operation, then all the USB 2.0 ports must be operating at 60 MHz. - PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYIF 0x0 - - HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicated by the application in this field, is multiplied by - a bit-time factor; this factor is added to the high-speed/full-speed interpacket timeout duration in the core to account for - dditional delays introduced by the PHY. This may be required, since the delay introduced by the PHY in generating the linesta - e condition may vary among PHYs. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. - The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this - ield based on the speed of connection. The number of bit times added per PHY clock are: High-speed operation: - One 30-MHz PH - clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One - 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times - PSU_USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL 0x7 - - Global USB2 PHY Configuration Register The application must program this register before starting any transactions on either - he SoC bus or the USB. In Device-only configurations, only one register is needed. In Host mode, per-port registers are imple - ented. - (OFFSET, MASK, VALUE) (0XFE20C200, 0x00003FBFU ,0x00002417U) - RegMask = (USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK | USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK | USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK | USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK | USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK | USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK | USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK | USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK | 0 ); - - RegVal = ((0x00000009U << USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT - | 0x00000001U << USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT - | 0x00000007U << USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_XHCI_GUSB2PHYCFG_OFFSET ,0x00003FBFU ,0x00002417U); - /*############################################################################################################################ */ - - /*Register : GFLADJ @ 0XFE20C630

- - This field indicates the frame length adjustment to be applied when SOF/ITP counter is running on the ref_clk. This register - alue is used to adjust the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP interval when GLADJ.GFLADJ_REFCLK_LP - _SEL is set to '1'. This field must be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set to '1' or GCTL.SOF - TPSYNC is set to '1'. The value is derived as follows: FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_p - riod)) * ref_clk_period where - the ref_clk_period_integer is the integer value of the ref_clk period got by truncating the d - cimal (fractional) value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_clk_period is the ref_clk period inc - uding the fractional value. Examples: If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLADJ_REFCLK_FLADJ = - ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignoring the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_P - RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*20.8333 = 5208 (ignoring the fractional value) - PSU_USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ 0x0 - - Global Frame Length Adjustment Register This register provides options for the software to control the core behavior with res - ect to SOF (Start of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer functionality. It provides an optio - to override the fladj_30mhz_reg sideband signal. In addition, it enables running SOF or ITP frame timer counters completely - rom the ref_clk. This facilitates hardware LPM in host mode with the SOF or ITP counters being run from the ref_clk signal. - (OFFSET, MASK, VALUE) (0XFE20C630, 0x003FFF00U ,0x00000000U) - RegMask = (USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK | 0 ); - - RegVal = ((0x00000000U << USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_XHCI_GFLADJ_OFFSET ,0x003FFF00U ,0x00000000U); - /*############################################################################################################################ */ - - // : UPDATING TWO PCIE REGISTERS DEFAULT VALUES, AS THESE REGISTERS HAVE INCORRECT RESET VALUES IN SILICON. - /*Register : ATTR_25 @ 0XFD480064

- - If TRUE Completion Timeout Disable is supported. This is required to be TRUE for Endpoint and either setting allowed for Root - ports. Drives Device Capability 2 [4]; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED 0X1 - - ATTR_25 - (OFFSET, MASK, VALUE) (0XFD480064, 0x00000200U ,0x00000200U) - RegMask = (PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_25_OFFSET ,0x00000200U ,0x00000200U); - /*############################################################################################################################ */ - - // : PCIE SETTINGS - /*Register : ATTR_7 @ 0XFD48001C

- - Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0x0004; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_7_ATTR_BAR0 0x0 - - ATTR_7 - (OFFSET, MASK, VALUE) (0XFD48001C, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_7_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_8 @ 0XFD480020

- - Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0xFFF0; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_8_ATTR_BAR0 0x0 - - ATTR_8 - (OFFSET, MASK, VALUE) (0XFD480020, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_8_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_9 @ 0XFD480024

- - Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_9_ATTR_BAR1 0x0 - - ATTR_9 - (OFFSET, MASK, VALUE) (0XFD480024, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_9_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_10 @ 0XFD480028

- - Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_10_ATTR_BAR1 0x0 - - ATTR_10 - (OFFSET, MASK, VALUE) (0XFD480028, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_10_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_11 @ 0XFD48002C

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFFF - PSU_PCIE_ATTRIB_ATTR_11_ATTR_BAR2 0xFFFF - - ATTR_11 - (OFFSET, MASK, VALUE) (0XFD48002C, 0x0000FFFFU ,0x0000FFFFU) - RegMask = (PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK | 0 ); - - RegVal = ((0x0000FFFFU << PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_11_OFFSET ,0x0000FFFFU ,0x0000FFFFU); - /*############################################################################################################################ */ - - /*Register : ATTR_12 @ 0XFD480030

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0x00FF - PSU_PCIE_ATTRIB_ATTR_12_ATTR_BAR2 0xFF - - ATTR_12 - (OFFSET, MASK, VALUE) (0XFD480030, 0x0000FFFFU ,0x000000FFU) - RegMask = (PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK | 0 ); - - RegVal = ((0x000000FFU << PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_12_OFFSET ,0x0000FFFFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : ATTR_13 @ 0XFD480034

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_13_ATTR_BAR3 0x0 - - ATTR_13 - (OFFSET, MASK, VALUE) (0XFD480034, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_13_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_14 @ 0XFD480038

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFFF - PSU_PCIE_ATTRIB_ATTR_14_ATTR_BAR3 0xFFFF - - ATTR_14 - (OFFSET, MASK, VALUE) (0XFD480038, 0x0000FFFFU ,0x0000FFFFU) - RegMask = (PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK | 0 ); - - RegVal = ((0x0000FFFFU << PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_14_OFFSET ,0x0000FFFFU ,0x0000FFFFU); - /*############################################################################################################################ */ - - /*Register : ATTR_15 @ 0XFD48003C

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFF0 - PSU_PCIE_ATTRIB_ATTR_15_ATTR_BAR4 0xFFF0 - - ATTR_15 - (OFFSET, MASK, VALUE) (0XFD48003C, 0x0000FFFFU ,0x0000FFF0U) - RegMask = (PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK | 0 ); - - RegVal = ((0x0000FFF0U << PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_15_OFFSET ,0x0000FFFFU ,0x0000FFF0U); - /*############################################################################################################################ */ - - /*Register : ATTR_16 @ 0XFD480040

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0xFFF0 - PSU_PCIE_ATTRIB_ATTR_16_ATTR_BAR4 0xFFF0 - - ATTR_16 - (OFFSET, MASK, VALUE) (0XFD480040, 0x0000FFFFU ,0x0000FFF0U) - RegMask = (PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK | 0 ); - - RegVal = ((0x0000FFF0U << PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_16_OFFSET ,0x0000FFFFU ,0x0000FFF0U); - /*############################################################################################################################ */ - - /*Register : ATTR_17 @ 0XFD480044

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 - PSU_PCIE_ATTRIB_ATTR_17_ATTR_BAR5 0xFFF1 - - ATTR_17 - (OFFSET, MASK, VALUE) (0XFD480044, 0x0000FFFFU ,0x0000FFF1U) - RegMask = (PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK | 0 ); - - RegVal = ((0x0000FFF1U << PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_17_OFFSET ,0x0000FFFFU ,0x0000FFF1U); - /*############################################################################################################################ */ - - /*Register : ATTR_18 @ 0XFD480048

- - For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 - PSU_PCIE_ATTRIB_ATTR_18_ATTR_BAR5 0xFFF1 - - ATTR_18 - (OFFSET, MASK, VALUE) (0XFD480048, 0x0000FFFFU ,0x0000FFF1U) - RegMask = (PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK | 0 ); - - RegVal = ((0x0000FFF1U << PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_18_OFFSET ,0x0000FFFFU ,0x0000FFF1U); - /*############################################################################################################################ */ - - /*Register : ATTR_27 @ 0XFD48006C

- - Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1- 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred - to the Device Capabilities register. The values: 4-2048 bytes, 5- 4096 bytes are not supported; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED 1 - - Endpoint L1 Acceptable Latency. Records the latency that the endpoint can withstand on transitions from L1 state to L0 (if L1 - state supported). Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to 8us, 4h 8 to 16us, 5h 16 to 32us, 6 - 32 to 64us, 7h more than 64us. For Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY 0x0 - - ATTR_27 - (OFFSET, MASK, VALUE) (0XFD48006C, 0x00000738U ,0x00000100U) - RegMask = (PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK | PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_27_OFFSET ,0x00000738U ,0x00000100U); - /*############################################################################################################################ */ - - /*Register : ATTR_50 @ 0XFD4800C8

- - Identifies the type of device/port as follows: 0000b PCI Express Endpoint device, 0001b Legacy PCI Express Endpoint device, 0 - 00b Root Port of PCI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110b Downstream Port of PCI Express Sw - tch, 0111b PCIE Express to PCI/PCI-X Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Express Capabilities r - gister. Must be consistent with IS_SWITCH and UPSTREAM_FACING settings.; EP=0x0000; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE 4 - - PCIe Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capab - lity.; EP=0x009C; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR 0 - - ATTR_50 - (OFFSET, MASK, VALUE) (0XFD4800C8, 0x0000FFF0U ,0x00000040U) - RegMask = (PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK | PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000004U << PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_50_OFFSET ,0x0000FFF0U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : ATTR_105 @ 0XFD4801A4

- - Number of credits that should be advertised for Completion data received on Virtual Channel 0. The bytes advertised must be l - ss than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD - PSU_PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD 0xCD - - ATTR_105 - (OFFSET, MASK, VALUE) (0XFD4801A4, 0x000007FFU ,0x000000CDU) - RegMask = (PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK | 0 ); - - RegVal = ((0x000000CDU << PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_105_OFFSET ,0x000007FFU ,0x000000CDU); - /*############################################################################################################################ */ - - /*Register : ATTR_106 @ 0XFD4801A8

- - Number of credits that should be advertised for Completion headers received on Virtual Channel 0. The sum of the posted, non - osted, and completion header credits must be <= 80; EP=0x0048; RP=0x0024 - PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH 0x24 - - Number of credits that should be advertised for Non-Posted headers received on Virtual Channel 0. The number of non posted da - a credits advertised by the block is equal to the number of non posted header credits. The sum of the posted, non posted, and - completion header credits must be <= 80; EP=0x0004; RP=0x000C - PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH 0xC - - ATTR_106 - (OFFSET, MASK, VALUE) (0XFD4801A8, 0x00003FFFU ,0x00000624U) - RegMask = (PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK | PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK | 0 ); - - RegVal = ((0x00000024U << PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT - | 0x0000000CU << PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_106_OFFSET ,0x00003FFFU ,0x00000624U); - /*############################################################################################################################ */ - - /*Register : ATTR_107 @ 0XFD4801AC

- - Number of credits that should be advertised for Non-Posted data received on Virtual Channel 0. The number of non posted data - redits advertised by the block is equal to two times the number of non posted header credits if atomic operations are support - d or is equal to the number of non posted header credits if atomic operations are not supported. The bytes advertised must be - less than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 - PSU_PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD 0x18 - - ATTR_107 - (OFFSET, MASK, VALUE) (0XFD4801AC, 0x000007FFU ,0x00000018U) - RegMask = (PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK | 0 ); - - RegVal = ((0x00000018U << PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_107_OFFSET ,0x000007FFU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : ATTR_108 @ 0XFD4801B0

- - Number of credits that should be advertised for Posted data received on Virtual Channel 0. The bytes advertised must be less - han or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 - PSU_PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD 0xB5 - - ATTR_108 - (OFFSET, MASK, VALUE) (0XFD4801B0, 0x000007FFU ,0x000000B5U) - RegMask = (PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK | 0 ); - - RegVal = ((0x000000B5U << PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_108_OFFSET ,0x000007FFU ,0x000000B5U); - /*############################################################################################################################ */ - - /*Register : ATTR_109 @ 0XFD4801B4

- - Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x00 - 0 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV 0x0 - - Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim TRUE == trim.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM 0x1 - - Enables ECRC check on received TLP's 0 == don't check 1 == always check 3 == check if enabled by ECRC check enable bit of AER - cap structure; EP=0x0003; RP=0x0003 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK 0x3 - - Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). Calculated from max payload size supported and the n - mber of brams configured for transmit; EP=0x001C; RP=0x001C - PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET 0x1c - - Number of credits that should be advertised for Posted headers received on Virtual Channel 0. The sum of the posted, non post - d, and completion header credits must be <= 80; EP=0x0004; RP=0x0020 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH 0x20 - - ATTR_109 - (OFFSET, MASK, VALUE) (0XFD4801B4, 0x0000FFFFU ,0x00007E20U) - RegMask = (PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK | PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK | PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK | PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK | PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT - | 0x00000003U << PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT - | 0x0000001CU << PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT - | 0x00000020U << PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_109_OFFSET ,0x0000FFFFU ,0x00007E20U); - /*############################################################################################################################ */ - - /*Register : ATTR_34 @ 0XFD480088

- - Specifies values to be transferred to Header Type register. Bit 7 should be set to '0' indicating single-function device. Bit - 0 identifies header as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE 0x1 - - ATTR_34 - (OFFSET, MASK, VALUE) (0XFD480088, 0x000000FFU ,0x00000001U) - RegMask = (PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_34_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : ATTR_53 @ 0XFD4800D4

- - PM Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabil - ty.; EP=0x0048; RP=0x0060 - PSU_PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR 0x60 - - ATTR_53 - (OFFSET, MASK, VALUE) (0XFD4800D4, 0x000000FFU ,0x00000060U) - RegMask = (PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000060U << PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_53_OFFSET ,0x000000FFU ,0x00000060U); - /*############################################################################################################################ */ - - /*Register : ATTR_41 @ 0XFD4800A4

- - MSI Per-Vector Masking Capable. The value is transferred to the MSI Control Register[8]. When set, adds Mask and Pending Dwor - to Cap structure; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE 0x0 - - Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 - - MSI Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabi - ity.; EP=0x0060; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR 0x0 - - Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 - - ATTR_41 - (OFFSET, MASK, VALUE) (0XFD4800A4, 0x000003FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_41_OFFSET ,0x000003FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_97 @ 0XFD480184

- - Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b x4, 001000b x8.; EP=0x0004; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH 0x1 - - Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x00 - 4; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH 0x1 - - ATTR_97 - (OFFSET, MASK, VALUE) (0XFD480184, 0x00000FFFU ,0x00000041U) - RegMask = (PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK | PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_97_OFFSET ,0x00000FFFU ,0x00000041U); - /*############################################################################################################################ */ - - /*Register : ATTR_100 @ 0XFD480190

- - TRUE specifies upstream-facing port. FALSE specifies downstream-facing port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING 0x0 - - ATTR_100 - (OFFSET, MASK, VALUE) (0XFD480190, 0x00000040U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_100_OFFSET ,0x00000040U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_101 @ 0XFD480194

- - Enable the routing of message TLPs to the user through the TRN RX interface. A bit value of 1 enables routing of the message - LP to the user. Messages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 - ERR NONFATAL, Bit 2 - ERR FATAL, - Bit 3 - INTA Bit 4 - INTB, Bit 5 - INTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit 10 PME_Turn_Off; - EP=0x0000; RP=0x07FF - PSU_PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE 0x7FF - - Disable BAR filtering. Does not change the behavior of the bar hit outputs; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING 0x1 - - ATTR_101 - (OFFSET, MASK, VALUE) (0XFD480194, 0x0000FFE2U ,0x0000FFE2U) - RegMask = (PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK | PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK | 0 ); - - RegVal = ((0x000007FFU << PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_101_OFFSET ,0x0000FFE2U ,0x0000FFE2U); - /*############################################################################################################################ */ - - /*Register : ATTR_37 @ 0XFD480094

- - Link Bandwidth notification capability. Indicates support for the link bandwidth notification status and interrupt mechanism. - Required for Root.; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP 0x1 - - Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Optionality ECN. Transferred to the Link Capabilities r - gister.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY 0x1 - - ATTR_37 - (OFFSET, MASK, VALUE) (0XFD480094, 0x00004200U ,0x00004200U) - RegMask = (PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK | PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_37_OFFSET ,0x00004200U ,0x00004200U); - /*############################################################################################################################ */ - - /*Register : ATTR_93 @ 0XFD480174

- - Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value (or combined with the built-in value, depending on L - _REPLAY_TIMEOUT_FUNC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN 0x1 - - Sets a user-defined timeout for the Replay Timer to force cause the retransmission of unacknowledged TLPs; refer to LL_REPLAY - TIMEOUT_EN and LL_REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this attribute is in symbol times, which is - 4ns at GEN1 speeds and 2ns at GEN2.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT 0x1000 - - ATTR_93 - (OFFSET, MASK, VALUE) (0XFD480174, 0x0000FFFFU ,0x00009000U) - RegMask = (PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK | PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT - | 0x00001000U << PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_93_OFFSET ,0x0000FFFFU ,0x00009000U); - /*############################################################################################################################ */ - - /*Register : ID @ 0XFD480200

- - Device ID for the the PCIe Cap Structure Device ID field - PSU_PCIE_ATTRIB_ID_CFG_DEV_ID 0xd021 - - Vendor ID for the PCIe Cap Structure Vendor ID field - PSU_PCIE_ATTRIB_ID_CFG_VEND_ID 0x10ee - - ID - (OFFSET, MASK, VALUE) (0XFD480200, 0xFFFFFFFFU ,0x10EED021U) - RegMask = (PCIE_ATTRIB_ID_CFG_DEV_ID_MASK | PCIE_ATTRIB_ID_CFG_VEND_ID_MASK | 0 ); - - RegVal = ((0x0000D021U << PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT - | 0x000010EEU << PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ID_OFFSET ,0xFFFFFFFFU ,0x10EED021U); - /*############################################################################################################################ */ - - /*Register : SUBSYS_ID @ 0XFD480204

- - Subsystem ID for the the PCIe Cap Structure Subsystem ID field - PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID 0x7 - - Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field - PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID 0x10ee - - SUBSYS_ID - (OFFSET, MASK, VALUE) (0XFD480204, 0xFFFFFFFFU ,0x10EE0007U) - RegMask = (PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK | PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK | 0 ); - - RegVal = ((0x00000007U << PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT - | 0x000010EEU << PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_SUBSYS_ID_OFFSET ,0xFFFFFFFFU ,0x10EE0007U); - /*############################################################################################################################ */ - - /*Register : REV_ID @ 0XFD480208

- - Revision ID for the the PCIe Cap Structure - PSU_PCIE_ATTRIB_REV_ID_CFG_REV_ID 0x0 - - REV_ID - (OFFSET, MASK, VALUE) (0XFD480208, 0x000000FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_REV_ID_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_24 @ 0XFD480060

- - Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 8000; RP=0x8000 - PSU_PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE 0x400 - - ATTR_24 - (OFFSET, MASK, VALUE) (0XFD480060, 0x0000FFFFU ,0x00000400U) - RegMask = (PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK | 0 ); - - RegVal = ((0x00000400U << PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_24_OFFSET ,0x0000FFFFU ,0x00000400U); - /*############################################################################################################################ */ - - /*Register : ATTR_25 @ 0XFD480064

- - Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 0005; RP=0x0006 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE 0x6 - - INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] to be hardwired to 0.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED 0 - - ATTR_25 - (OFFSET, MASK, VALUE) (0XFD480064, 0x000001FFU ,0x00000006U) - RegMask = (PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK | PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK | 0 ); - - RegVal = ((0x00000006U << PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_25_OFFSET ,0x000001FFU ,0x00000006U); - /*############################################################################################################################ */ - - /*Register : ATTR_4 @ 0XFD480010

- - Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 - - Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 - - ATTR_4 - (OFFSET, MASK, VALUE) (0XFD480010, 0x00001000U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK | PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_4_OFFSET ,0x00001000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_89 @ 0XFD480164

- - VSEC's Next Capability Offset pointer to the next item in the capabilities list, or 000h if this is the final capability.; EP - 0x0140; RP=0x0140 - PSU_PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR 0 - - ATTR_89 - (OFFSET, MASK, VALUE) (0XFD480164, 0x00001FFEU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_89_OFFSET ,0x00001FFEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_79 @ 0XFD48013C

- - CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the Root Capabilities register.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY 1 - - ATTR_79 - (OFFSET, MASK, VALUE) (0XFD48013C, 0x00000020U ,0x00000020U) - RegMask = (PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_79_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : ATTR_43 @ 0XFD4800AC

- - Indicates that the MSIX structures exists. If this is FALSE, then the MSIX structure cannot be accessed via either the link o - the management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON 0 - - ATTR_43 - (OFFSET, MASK, VALUE) (0XFD4800AC, 0x00000100U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_43_OFFSET ,0x00000100U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_48 @ 0XFD4800C0

- - MSI-X Table Size. This value is transferred to the MSI-X Message Control[10:0] field. Set to 0 if MSI-X is not enabled. Note - hat the core does not implement the table; that must be implemented in user logic.; EP=0x0003; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE 0 - - ATTR_48 - (OFFSET, MASK, VALUE) (0XFD4800C0, 0x000007FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_48_OFFSET ,0x000007FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_46 @ 0XFD4800B8

- - MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; - P=0x0000 - PSU_PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET 0 - - ATTR_46 - (OFFSET, MASK, VALUE) (0XFD4800B8, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_46_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_47 @ 0XFD4800BC

- - MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0000; - P=0x0000 - PSU_PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET 0 - - ATTR_47 - (OFFSET, MASK, VALUE) (0XFD4800BC, 0x00001FFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_47_OFFSET ,0x00001FFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_44 @ 0XFD4800B0

- - MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET 0 - - ATTR_44 - (OFFSET, MASK, VALUE) (0XFD4800B0, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_44_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_45 @ 0XFD4800B4

- - MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x1000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET 0 - - ATTR_45 - (OFFSET, MASK, VALUE) (0XFD4800B4, 0x0000FFF8U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_45_OFFSET ,0x0000FFF8U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CB @ 0XFD48031C

- - DT837748 Enable - PSU_PCIE_ATTRIB_CB_CB1 0x0 - - ECO Register 1 - (OFFSET, MASK, VALUE) (0XFD48031C, 0x00000002U ,0x00000000U) - RegMask = (PCIE_ATTRIB_CB_CB1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_CB_CB1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_CB_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_35 @ 0XFD48008C

- - Active State PM Support. Indicates the level of active state power management supported by the selected PCI Express Link, enc - ded as follows: 0 Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supported.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT 0x0 - - ATTR_35 - (OFFSET, MASK, VALUE) (0XFD48008C, 0x00003000U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_35_OFFSET ,0x00003000U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING PCIE CONTROL IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

- - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00020000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00020000U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE0 - /*Register : L0_PLL_STATUS_READ_1 @ 0XFD4023E4

- - Status Read value of PLL Lock - PSU_SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD4023E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L0_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE1 - /*Register : L1_PLL_STATUS_READ_1 @ 0XFD4063E4

- - Status Read value of PLL Lock - PSU_SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD4063E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L1_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE2 - /*Register : L2_PLL_STATUS_READ_1 @ 0XFD40A3E4

- - Status Read value of PLL Lock - PSU_SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD40A3E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L2_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE3 - /*Register : L3_PLL_STATUS_READ_1 @ 0XFD40E3E4

- - Status Read value of PLL Lock - PSU_SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD40E3E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L3_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : SATA AHCI VENDOR SETTING - /*Register : PP2C @ 0XFD0C00AC

- - CIBGMN: COMINIT Burst Gap Minimum. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGMN 0x18 - - CIBGMX: COMINIT Burst Gap Maximum. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGMX 0x40 - - CIBGN: COMINIT Burst Gap Nominal. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGN 0x18 - - CINMP: COMINIT Negate Minimum Period. - PSU_SATA_AHCI_VENDOR_PP2C_CINMP 0x28 - - PP2C - Port Phy2Cfg Register. This register controls the configuration of the Phy Control OOB timing for the COMINIT paramete - s for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00AC, 0xFFFFFFFFU ,0x28184018U) - RegMask = (SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK | SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK | SATA_AHCI_VENDOR_PP2C_CIBGN_MASK | SATA_AHCI_VENDOR_PP2C_CINMP_MASK | 0 ); - - RegVal = ((0x00000018U << SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT - | 0x00000040U << SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT - | 0x00000018U << SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT - | 0x00000028U << SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP2C_OFFSET ,0xFFFFFFFFU ,0x28184018U); - /*############################################################################################################################ */ - - /*Register : PP3C @ 0XFD0C00B0

- - CWBGMN: COMWAKE Burst Gap Minimum. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGMN 0x06 - - CWBGMX: COMWAKE Burst Gap Maximum. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGMX 0x14 - - CWBGN: COMWAKE Burst Gap Nominal. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGN 0x08 - - CWNMP: COMWAKE Negate Minimum Period. - PSU_SATA_AHCI_VENDOR_PP3C_CWNMP 0x0E - - PP3C - Port Phy3CfgRegister. This register controls the configuration of the Phy Control OOB timing for the COMWAKE parameter - for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B0, 0xFFFFFFFFU ,0x0E081406U) - RegMask = (SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK | SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK | SATA_AHCI_VENDOR_PP3C_CWBGN_MASK | SATA_AHCI_VENDOR_PP3C_CWNMP_MASK | 0 ); - - RegVal = ((0x00000006U << SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT - | 0x00000014U << SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT - | 0x00000008U << SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT - | 0x0000000EU << SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP3C_OFFSET ,0xFFFFFFFFU ,0x0E081406U); - /*############################################################################################################################ */ - - /*Register : PP4C @ 0XFD0C00B4

- - BMX: COM Burst Maximum. - PSU_SATA_AHCI_VENDOR_PP4C_BMX 0x13 - - BNM: COM Burst Nominal. - PSU_SATA_AHCI_VENDOR_PP4C_BNM 0x08 - - SFD: Signal Failure Detection, if the signal detection de-asserts for a time greater than this then the OOB detector will det - rmine this is a line idle and cause the PhyInit state machine to exit the Phy Ready State. A value of zero disables the Signa - Failure Detector. The value is based on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving a nominal time of - 500ns based on a 150MHz PMCLK. - PSU_SATA_AHCI_VENDOR_PP4C_SFD 0x4A - - PTST: Partial to Slumber timer value, specific delay the controller should apply while in partial before entering slumber. Th - value is bases on the system clock divided by 128, total delay = (Sys Clock Period) * PTST * 128 - PSU_SATA_AHCI_VENDOR_PP4C_PTST 0x06 - - PP4C - Port Phy4Cfg Register. This register controls the configuration of the Phy Control Burst timing for the COM parameters - for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B4, 0xFFFFFFFFU ,0x064A0813U) - RegMask = (SATA_AHCI_VENDOR_PP4C_BMX_MASK | SATA_AHCI_VENDOR_PP4C_BNM_MASK | SATA_AHCI_VENDOR_PP4C_SFD_MASK | SATA_AHCI_VENDOR_PP4C_PTST_MASK | 0 ); - - RegVal = ((0x00000013U << SATA_AHCI_VENDOR_PP4C_BMX_SHIFT - | 0x00000008U << SATA_AHCI_VENDOR_PP4C_BNM_SHIFT - | 0x0000004AU << SATA_AHCI_VENDOR_PP4C_SFD_SHIFT - | 0x00000006U << SATA_AHCI_VENDOR_PP4C_PTST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP4C_OFFSET ,0xFFFFFFFFU ,0x064A0813U); - /*############################################################################################################################ */ - - /*Register : PP5C @ 0XFD0C00B8

- - RIT: Retry Interval Timer. The calculated value divided by two, the lower digit of precision is not needed. - PSU_SATA_AHCI_VENDOR_PP5C_RIT 0xC96A4 - - RCT: Rate Change Timer, a value based on the 54.2us for which a SATA device will transmit at a fixed rate ALIGNp after OOB ha - completed, for a fast SERDES it is suggested that this value be 54.2us / 4 - PSU_SATA_AHCI_VENDOR_PP5C_RCT 0x3FF - - PP5C - Port Phy5Cfg Register. This register controls the configuration of the Phy Control Retry Interval timing for either Po - t 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B8, 0xFFFFFFFFU ,0x3FFC96A4U) - RegMask = (SATA_AHCI_VENDOR_PP5C_RIT_MASK | SATA_AHCI_VENDOR_PP5C_RCT_MASK | 0 ); - - RegVal = ((0x000C96A4U << SATA_AHCI_VENDOR_PP5C_RIT_SHIFT - | 0x000003FFU << SATA_AHCI_VENDOR_PP5C_RCT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP5C_OFFSET ,0xFFFFFFFFU ,0x3FFC96A4U); - /*############################################################################################################################ */ - - - return 1; + * MPHY PLL Gear and bypass scrambler + * (OFFSET, MASK, VALUE) (0XFD40C0F4, 0x0000000BU ,0x0000000BU) + */ + PSU_Mask_Write(SERDES_L3_TX_DIG_TM_61_OFFSET, + 0x0000000BU, 0x0000000BU); +/*##################################################################### */ + + /* + * ENABLE CHICKEN BIT FOR PCIE AND USB + */ + /* + * Register : L0_TM_AUX_0 @ 0XFD4010CC + + * Spare- not used + * PSU_SERDES_L0_TM_AUX_0_BIT_2 1 + + * Spare registers + * (OFFSET, MASK, VALUE) (0XFD4010CC, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L0_TM_AUX_0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L2_TM_AUX_0 @ 0XFD4090CC + + * Spare- not used + * PSU_SERDES_L2_TM_AUX_0_BIT_2 1 + + * Spare registers + * (OFFSET, MASK, VALUE) (0XFD4090CC, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L2_TM_AUX_0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * ENABLING EYE SURF + */ + /* + * Register : L0_TM_DIG_8 @ 0XFD401074 + + * Enable Eye Surf + * PSU_SERDES_L0_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD401074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L0_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L1_TM_DIG_8 @ 0XFD405074 + + * Enable Eye Surf + * PSU_SERDES_L1_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD405074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L1_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_DIG_8 @ 0XFD409074 + + * Enable Eye Surf + * PSU_SERDES_L2_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD409074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L3_TM_DIG_8 @ 0XFD40D074 + + * Enable Eye Surf + * PSU_SERDES_L3_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD40D074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * ILL SETTINGS FOR GAIN AND LOCK SETTINGS + */ + /* + * Register : L0_TM_MISC2 @ 0XFD40189C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40189C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL1 @ 0XFD4018F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4018F8, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL2 @ 0XFD4018FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4018FC, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL12 @ 0XFD401990 + + * G1A pll ctr bypass value + * PSU_SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x11 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD401990, 0x000000FFU ,0x00000011U) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL12_OFFSET, 0x000000FFU, 0x00000011U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL1 @ 0XFD401924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x4 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD401924, 0x000000FFU ,0x00000004U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL1_OFFSET, 0x000000FFU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL2 @ 0XFD401928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0xFE + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD401928, 0x000000FFU ,0x000000FEU) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL2_OFFSET, 0x000000FFU, 0x000000FEU); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL3 @ 0XFD401900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD401900, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL3 @ 0XFD40192C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40192C, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL8 @ 0XFD401980 + + * ILL calibration code change wait time + * PSU_SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD401980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL8 @ 0XFD401914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD401914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL9 @ 0XFD401918 + + * bypass IQ polytrim + * PSU_SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD401918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL8 @ 0XFD401940 + + * E ILL polytrim bypass value + * PSU_SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD401940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL9 @ 0XFD401944 + + * bypass E polytrim + * PSU_SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD401944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL13 @ 0XFD401994 + + * ILL cal idle val refcnt + * PSU_SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD401994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L1_TM_ILL13 @ 0XFD405994 + + * ILL cal idle val refcnt + * PSU_SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD405994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L1_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L2_TM_MISC2 @ 0XFD40989C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40989C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L2_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL1 @ 0XFD4098F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4098F8, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL2 @ 0XFD4098FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4098FC, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL12 @ 0XFD409990 + + * G1A pll ctr bypass value + * PSU_SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x10 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD409990, 0x000000FFU ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL12_OFFSET, 0x000000FFU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL1 @ 0XFD409924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0xFE + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD409924, 0x000000FFU ,0x000000FEU) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL1_OFFSET, 0x000000FFU, 0x000000FEU); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL2 @ 0XFD409928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD409928, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL2_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL3 @ 0XFD409900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD409900, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL3 @ 0XFD40992C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40992C, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL8 @ 0XFD409980 + + * ILL calibration code change wait time + * PSU_SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD409980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL8 @ 0XFD409914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD409914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL9 @ 0XFD409918 + + * bypass IQ polytrim + * PSU_SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD409918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL8 @ 0XFD409940 + + * E ILL polytrim bypass value + * PSU_SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD409940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL9 @ 0XFD409944 + + * bypass E polytrim + * PSU_SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD409944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL13 @ 0XFD409994 + + * ILL cal idle val refcnt + * PSU_SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD409994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L3_TM_MISC2 @ 0XFD40D89C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40D89C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L3_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL1 @ 0XFD40D8F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D8F8, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL2 @ 0XFD40D8FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D8FC, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL12 @ 0XFD40D990 + + * G1A pll ctr bypass value + * PSU_SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x1 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD40D990, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL12_OFFSET, 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL1 @ 0XFD40D924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x9C + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D924, 0x000000FFU ,0x0000009CU) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL1_OFFSET, 0x000000FFU, 0x0000009CU); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL2 @ 0XFD40D928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x39 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D928, 0x000000FFU ,0x00000039U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL2_OFFSET, 0x000000FFU, 0x00000039U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL11 @ 0XFD40D98C + + * G2A_PCIe1 PLL ctr bypass value + * PSU_SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL 0x2 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD40D98C, 0x000000F0U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL11_OFFSET, 0x000000F0U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL3 @ 0XFD40D900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D900, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL3 @ 0XFD40D92C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x64 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D92C, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL8 @ 0XFD40D980 + + * ILL calibration code change wait time + * PSU_SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD40D980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL8 @ 0XFD40D914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD40D914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL9 @ 0XFD40D918 + + * bypass IQ polytrim + * PSU_SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD40D918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL8 @ 0XFD40D940 + + * E ILL polytrim bypass value + * PSU_SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD40D940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL9 @ 0XFD40D944 + + * bypass E polytrim + * PSU_SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD40D944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL13 @ 0XFD40D994 + + * ILL cal idle val refcnt + * PSU_SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD40D994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * SYMBOL LOCK AND WAIT + */ + /* + * Register : L0_TM_DIG_10 @ 0XFD40107C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L1_TM_DIG_10 @ 0XFD40507C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40507C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L1_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_DIG_10 @ 0XFD40907C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40907C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_DIG_10 @ 0XFD40D07C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40D07C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * SIOU SETTINGS FOR BYPASS CONTROL,HSRX-DIG + */ + /* + * Register : L0_TM_RST_DLY @ 0XFD4019A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L0_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4019A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L0_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L0_TM_ANA_BYP_15 @ 0XFD401038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD401038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L0_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L0_TM_ANA_BYP_12 @ 0XFD40102C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40102C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L0_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L1_TM_RST_DLY @ 0XFD4059A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L1_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4059A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L1_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L1_TM_ANA_BYP_15 @ 0XFD405038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD405038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L1_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L1_TM_ANA_BYP_12 @ 0XFD40502C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40502C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L1_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L2_TM_RST_DLY @ 0XFD4099A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L2_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4099A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L2_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L2_TM_ANA_BYP_15 @ 0XFD409038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD409038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L2_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L2_TM_ANA_BYP_12 @ 0XFD40902C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40902C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L2_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L3_TM_RST_DLY @ 0XFD40D9A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L3_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD40D9A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L3_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L3_TM_ANA_BYP_15 @ 0XFD40D038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD40D038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L3_TM_ANA_BYP_12 @ 0XFD40D02C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40D02C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * DISABLE FPL/FFL + */ + /* + * Register : L0_TM_MISC3 @ 0XFD4019AC + + * CDR fast phase lock control + * PSU_SERDES_L0_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L0_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4019AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L0_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L1_TM_MISC3 @ 0XFD4059AC + + * CDR fast phase lock control + * PSU_SERDES_L1_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L1_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4059AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_MISC3 @ 0XFD4099AC + + * CDR fast phase lock control + * PSU_SERDES_L2_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L2_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4099AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L3_TM_MISC3 @ 0XFD40D9AC + + * CDR fast phase lock control + * PSU_SERDES_L3_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L3_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD40D9AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L3_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * DISABLE DYNAMIC OFFSET CALIBRATION + */ + /* + * Register : L0_TM_EQ11 @ 0XFD401978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD401978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L0_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L1_TM_EQ11 @ 0XFD405978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD405978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L1_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_EQ11 @ 0XFD409978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD409978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ11 @ 0XFD40D978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD40D978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * DISABLE ECO FOR PCIE + */ + /* + * Register : eco_0 @ 0XFD3D001C + + * For future use + * PSU_SIOU_ECO_0_FIELD 0x1 + + * ECO Register for future use + * (OFFSET, MASK, VALUE) (0XFD3D001C, 0xFFFFFFFFU ,0x00000001U) + */ + PSU_Mask_Write(SIOU_ECO_0_OFFSET, 0xFFFFFFFFU, 0x00000001U); +/*##################################################################### */ + + /* + * GT LANE SETTINGS + */ + /* + * Register : ICM_CFG0 @ 0XFD410010 + + * Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG0_L0_ICM_CFG 1 + + * Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG0_L1_ICM_CFG 4 + + * ICM Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD410010, 0x00000077U ,0x00000041U) + */ + PSU_Mask_Write(SERDES_ICM_CFG0_OFFSET, 0x00000077U, 0x00000041U); +/*##################################################################### */ + + /* + * Register : ICM_CFG1 @ 0XFD410014 + + * Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG1_L2_ICM_CFG 3 + + * Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, + * 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG1_L3_ICM_CFG 2 + + * ICM Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD410014, 0x00000077U ,0x00000023U) + */ + PSU_Mask_Write(SERDES_ICM_CFG1_OFFSET, 0x00000077U, 0x00000023U); +/*##################################################################### */ + + /* + * CHECKING PLL LOCK + */ + /* + * ENABLE SERIAL DATA MUX DEEMPH + */ + /* + * Register : L1_TXPMD_TM_45 @ 0XFD404CB4 + + * Enable/disable DP post2 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH 0x1 + + * Override enable/disable of DP post2 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH 0x1 + + * Override enable/disable of DP post1 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH 0x1 + + * Enable/disable DP main path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH 0x1 + + * Override enable/disable of DP main path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH 0x1 + + * Post or pre or main DP path selection + * (OFFSET, MASK, VALUE) (0XFD404CB4, 0x00000037U ,0x00000037U) + */ + PSU_Mask_Write(SERDES_L1_TXPMD_TM_45_OFFSET, + 0x00000037U, 0x00000037U); +/*##################################################################### */ + + /* + * Register : L1_TX_ANA_TM_118 @ 0XFD4041D8 + + * Test register force for enabling/disablign TX deemphasis bits <17:0> + * PSU_SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 + + * Enable Override of TX deemphasis + * (OFFSET, MASK, VALUE) (0XFD4041D8, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L1_TX_ANA_TM_118_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TX_ANA_TM_118 @ 0XFD40C1D8 + + * Test register force for enabling/disablign TX deemphasis bits <17:0> + * PSU_SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 + + * Enable Override of TX deemphasis + * (OFFSET, MASK, VALUE) (0XFD40C1D8, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TX_ANA_TM_118_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * CDR AND RX EQUALIZATION SETTINGS + */ + /* + * Register : L3_TM_CDR5 @ 0XFD40DC14 + + * FPHL FSM accumulate cycles + * PSU_SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES 0x7 + + * FFL Phase0 int gain aka 2ol SD update rate + * PSU_SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN 0x6 + + * Fast phase lock controls -- FSM accumulator cycle control and phase 0 in + * t gain control. + * (OFFSET, MASK, VALUE) (0XFD40DC14, 0x000000FFU ,0x000000E6U) + */ + PSU_Mask_Write(SERDES_L3_TM_CDR5_OFFSET, 0x000000FFU, 0x000000E6U); +/*##################################################################### */ + + /* + * Register : L3_TM_CDR16 @ 0XFD40DC40 + + * FFL Phase0 prop gain aka 1ol SD update rate + * PSU_SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN 0xC + + * Fast phase lock controls -- phase 0 prop gain + * (OFFSET, MASK, VALUE) (0XFD40DC40, 0x0000001FU ,0x0000000CU) + */ + PSU_Mask_Write(SERDES_L3_TM_CDR16_OFFSET, 0x0000001FU, 0x0000000CU); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ0 @ 0XFD40D94C + + * EQ stg 2 controls BYPASSED + * PSU_SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP 1 + + * eq stg1 and stg2 controls + * (OFFSET, MASK, VALUE) (0XFD40D94C, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ1 @ 0XFD40D950 + + * EQ STG2 RL PROG + * PSU_SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG 0x2 + + * EQ stg 2 preamp mode val + * PSU_SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL 0x1 + + * eq stg1 and stg2 controls + * (OFFSET, MASK, VALUE) (0XFD40D950, 0x00000007U ,0x00000006U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ1_OFFSET, 0x00000007U, 0x00000006U); +/*##################################################################### */ + + /* + * GEM SERDES SETTINGS + */ + /* + * ENABLE PRE EMPHAIS AND VOLTAGE SWING + */ + /* + * Register : L1_TXPMD_TM_48 @ 0XFD404CC0 + + * Margining factor value + * PSU_SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR 0 + + * Margining factor + * (OFFSET, MASK, VALUE) (0XFD404CC0, 0x0000001FU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TXPMD_TM_48_OFFSET, + 0x0000001FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L1_TX_ANA_TM_18 @ 0XFD404048 + + * pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved + * PSU_SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0 + + * Override for PIPE TX de-emphasis + * (OFFSET, MASK, VALUE) (0XFD404048, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TX_ANA_TM_18_OFFSET, + 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L3_TX_ANA_TM_18 @ 0XFD40C048 + + * pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved + * PSU_SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0x1 + + * Override for PIPE TX de-emphasis + * (OFFSET, MASK, VALUE) (0XFD40C048, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TX_ANA_TM_18_OFFSET, + 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_resetin_init_data() { - // : PUTTING SERDES PERIPHERAL IN RESET - // : PUTTING USB0 IN RESET - /*Register : RST_LPD_TOP @ 0XFF5E023C

+unsigned long psu_resetout_init_data(void) +{ + /* + * TAKING SERDES PERIPHERAL OUT OF RESET RESET + */ + /* + * PUTTING USB0 IN RESET + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X1 + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X1 + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000400U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000400U, 0x00000000U); +/*##################################################################### */ - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X1 + /* + * HIBERREST + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000540U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X0 - RegVal = ((0x00000001U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0x00000001U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000001U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000540U ,0x00000540U); - /*############################################################################################################################ */ + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X0 - // : PUTTING GEM0 IN RESET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

+ * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000140U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000140U, 0x00000000U); +/*##################################################################### */ - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X1 + /* + * PUTTING GEM0 IN RESET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X0 - RegVal = ((0x00000001U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000000U); +/*##################################################################### */ - // : PUTTING SATA IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

+ /* + * PUTTING SATA IN RESET + */ + /* + * Register : sata_misc_ctrl @ 0XFD3D0100 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X1 + * Sata PM clock control select + * PSU_SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL 0x3 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000002U) - RegMask = (CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); + * Misc Contorls for SATA.This register may only be modified during bootup + * (while SATA block is disabled) + * (OFFSET, MASK, VALUE) (0XFD3D0100, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SIOU_SATA_MISC_CTRL_OFFSET, 0x00000003U, 0x00000003U); +/*##################################################################### */ - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00000002U ,0x00000002U); - /*############################################################################################################################ */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - // : PUTTING PCIE IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

+ * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X0 - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X1 + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X1 + /* + * PUTTING PCIE CFG AND BRIDGE IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X1 + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X0 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000E0000U ,0x000E0000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | 0 ); + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X0 - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000E0000U ,0x000E0000U); - /*############################################################################################################################ */ + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000C0000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000C0000U, 0x00000000U); +/*##################################################################### */ - // : PUTTING DP IN RESET - /*Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

+ /* + * PUTTING DP IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1 - PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0XA + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X0 - Control PHY Power down - (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x0000000AU) - RegMask = (DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK | 0 ); + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00010000U, 0x00000000U); +/*##################################################################### */ - RegVal = ((0x0000000AU << DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_TX_PHY_POWER_DOWN_OFFSET ,0x0000000FU ,0x0000000AU); - /*############################################################################################################################ */ + /* + * Register : DP_PHY_RESET @ 0XFD4A0200 - /*Register : DP_PHY_RESET @ 0XFD4A0200

+ * Set to '1' to hold the GT in reset. Clear to release. + * PSU_DP_DP_PHY_RESET_GT_RESET 0X0 - Set to '1' to hold the GT in reset. Clear to release. - PSU_DP_DP_PHY_RESET_GT_RESET 0X1 + * Reset the transmitter PHY. + * (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(DP_DP_PHY_RESET_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ - Reset the transmitter PHY. - (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000002U) - RegMask = (DP_DP_PHY_RESET_GT_RESET_MASK | 0 ); + /* + * Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238 - RegVal = ((0x00000001U << DP_DP_PHY_RESET_GT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_PHY_RESET_OFFSET ,0x00000002U ,0x00000002U); - /*############################################################################################################################ */ + * Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 + * PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0X0 - /*Register : RST_FPD_TOP @ 0XFD1A0100

+ * Control PHY Power down + * (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x00000000U) + */ + PSU_Mask_Write(DP_DP_TX_PHY_POWER_DOWN_OFFSET, + 0x0000000FU, 0x00000000U); +/*##################################################################### */ - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X1 + /* + * USB0 GFLADJ + */ + /* + * Register : GUSB2PHYCFG @ 0XFE20C200 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00010000U) - RegMask = (CRF_APB_RST_FPD_TOP_DP_RESET_MASK | 0 ); + * USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY cloc + * ks. Specifies the response time for a MAC request to the Packet FIFO Con + * troller (PFC) to fetch data from the DFIFO (SPRAM). The following are th + * e required values for the minimum SoC bus frequency of 60 MHz. USB turna + * round time is a critical certification criteria when using long cables a + * nd five hub levels. The required values for this field: - 4'h5: When the + * MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit + * UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround tim + * e is not critical, this field can be set to a larger value. Note: This f + * ield is valid only in device mode. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM 0x9 - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00010000U ,0x00010000U); - /*############################################################################################################################ */ + * Transceiver Delay: Enables a delay between the assertion of the UTMI/ULP + * I Transceiver Select signal (for HS) and the assertion of the TxValid si + * gnal during a HS Chirp. When this bit is set to 1, a delay (of approxima + * tely 2.5 us) is introduced from the time when the Transceiver Select is + * set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the + * chirp-K. This delay is required for some UTMI/ULPI PHYs. Note: - If you + * enable the hibernation feature when the device core comes out of power- + * off, you must re-initialize this bit with the appropriate value because + * the core does not save and restore this bit value during hibernation. - + * This bit is valid only in device mode. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY 0x0 + + * Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application use + * s this bit to control utmi_sleep_n and utmi_l1_suspend_n assertion to th + * e PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assert + * ion from the core is not transferred to the external PHY. - 1'b1: utmi_s + * leep_n and utmi_l1_suspend_n assertion from the core is transferred to t + * he external PHY. Note: This bit must be set high for Port0 if PHY is use + * d. Note: In Device mode - Before issuing any device endpoint command whe + * n operating in 2.0 speeds, disable this bit and enable it after the comm + * and completes. Without disabling this bit, if a command is issued when t + * he device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated of + * f, the command will not get completed. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM 0x0 + + * USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select T + * he application uses this bit to select a high-speed PHY or a full-speed + * transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is a + * lways 0, with Write Only access. - 1'b1: USB 1.1 full-speed serial trans + * ceiver. This bit is always 1, with Write Only access. If both interface + * types are selected in coreConsultant (that is, parameters' values are no + * t zero), the application uses this bit to select the active interface is + * active, with Read-Write bit access. Note: USB 1.1 full-serial transceiv + * er is not supported. This bit always reads as 1'b0. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYSEL 0x0 + + * Suspend USB2.0 HS/FS/LS PHY (SusPHY) When set, USB2.0 PHY enters Suspend + * mode if Suspend conditions are valid. For DRD/OTG configurations, it is + * recommended that this bit is set to 0 during coreConsultant configurati + * on. If it is set to 1, then the application must clear this bit after po + * wer-on reset. Application needs to set it to 1 after the core initializa + * tion completes. For all other configurations, this bit can be set to 1 d + * uring core configuration. Note: - In host mode, on reset, this bit is se + * t to 1. Software can override this bit after reset. - In device mode, be + * fore issuing any device endpoint command when operating in 2.0 speeds, d + * isable this bit and enable it after the command completes. If you issue + * a command without disabling this bit when the device is in L2 state and + * if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get c + * ompleted. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20 0x1 + + * Full-Speed Serial Interface Select (FSIntf) The application uses this bi + * t to select a unidirectional or bidirectional USB 1.1 full-speed serial + * transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial in + * terface. This bit is set to 0 with Read Only access. - 1'b1: 3-pin bidir + * ectional full-speed serial interface. This bit is set to 0 with Read Onl + * y access. Note: USB 1.1 full-speed serial interface is not supported. Th + * is bit always reads as 1'b0. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_FSINTF 0x0 + + * ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to se + * lect a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interface - 1'b1: ULPI Int + * erface This bit is writable only if UTMI+ and ULPI is specified for High + * -Speed PHY Interface(s) in coreConsultant configuration (DWC_USB3_HSPHY_ + * INTERFACE = 3). Otherwise, this bit is read-only and the value depends o + * n the interface selected through DWC_USB3_HSPHY_INTERFACE. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL 0x1 + + * PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bi + * t to configure the core to support a UTMI+ PHY with an 8- or 16-bit inte + * rface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the en + * abled 2.0 ports must have the same clock frequency as Port0 clock freque + * ncy (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used toge + * ther for different ports at the same time (that is, all the ports must b + * e in 8-bit mode, or all of them must be in 16-bit mode, at a time). - If + * any of the USB 2.0 ports is selected as ULPI port for operation, then a + * ll the USB 2.0 ports must be operating at 60 MHz. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYIF 0x0 + + * HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicat + * ed by the application in this field, is multiplied by a bit-time factor; + * this factor is added to the high-speed/full-speed interpacket timeout d + * uration in the core to account for additional delays introduced by the P + * HY. This may be required, since the delay introduced by the PHY in gener + * ating the linestate condition may vary among PHYs. The USB standard time + * out value for high-speed operation is 736 to 816 (inclusive) bit times. + * The USB standard timeout value for full-speed operation is 16 to 18 (inc + * lusive) bit times. The application must program this field based on the + * speed of connection. The number of bit times added per PHY clock are: Hi + * gh-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz P + * HY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0. + * 4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY cloc + * k = 0.25 bit times + * PSU_USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL 0x7 + + * ULPI External VBUS Drive (ULPIExtVbusDrv) Selects supply source to drive + * 5V on VBUS, in the ULPI PHY. - 1'b0: PHY drives VBUS with internal char + * ge pump (default). - 1'b1: PHY drives VBUS with an external supply. (Onl + * y when RTL parameter DWC_USB3_HSPHY_INTERFACE = 2 or 3) + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV 0x1 + + * Global USB2 PHY Configuration Register The application must program this + * register before starting any transactions on either the SoC bus or the + * USB. In Device-only configurations, only one register is needed. In Host + * mode, per-port registers are implemented. + * (OFFSET, MASK, VALUE) (0XFE20C200, 0x00023FFFU ,0x00022457U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUSB2PHYCFG_OFFSET, + 0x00023FFFU, 0x00022457U); +/*##################################################################### */ + + /* + * Register : GFLADJ @ 0XFE20C630 + + * This field indicates the frame length adjustment to be applied when SOF/ + * ITP counter is running on the ref_clk. This register value is used to ad + * just the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP i + * nterval when GLADJ.GFLADJ_REFCLK_LPM_SEL is set to '1'. This field must + * be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set t + * o '1' or GCTL.SOFITPSYNC is set to '1'. The value is derived as follows: + * FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_pe + * riod)) * ref_clk_period where - the ref_clk_period_integer is the intege + * r value of the ref_clk period got by truncating the decimal (fractional) + * value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_c + * lk_period is the ref_clk period including the fractional value. Examples + * : If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLA + * DJ_REFCLK_FLADJ = ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignorin + * g the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_PE + * RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*2 + * 0.8333 = 5208 (ignoring the fractional value) + * PSU_USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ 0x0 + + * Global Frame Length Adjustment Register This register provides options f + * or the software to control the core behavior with respect to SOF (Start + * of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer + * functionality. It provides an option to override the fladj_30mhz_reg sid + * eband signal. In addition, it enables running SOF or ITP frame timer cou + * nters completely from the ref_clk. This facilitates hardware LPM in host + * mode with the SOF or ITP counters being run from the ref_clk signal. + * (OFFSET, MASK, VALUE) (0XFE20C630, 0x003FFF00U ,0x00000000U) + */ + PSU_Mask_Write(USB3_0_XHCI_GFLADJ_OFFSET, 0x003FFF00U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : GUCTL1 @ 0XFE20C11C + + * When this bit is set to '0', termsel, xcvrsel will become 0 during end o + * f resume while the opmode will become 0 once controller completes end of + * resume and enters U0 state (2 separate commandswill be issued). When th + * is bit is set to '1', all the termsel, xcvrsel, opmode becomes 0 during + * end of resume itself (only 1 command will be issued) + * PSU_USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY 0x1 + + * Reserved + * PSU_USB3_0_XHCI_GUCTL1_RESERVED_9 0x1 + + * Global User Control Register 1 + * (OFFSET, MASK, VALUE) (0XFE20C11C, 0x00000600U ,0x00000600U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUCTL1_OFFSET, 0x00000600U, 0x00000600U); +/*##################################################################### */ + + /* + * Register : GUCTL @ 0XFE20C12C + + * Host IN Auto Retry (USBHstInAutoRetryEn) When set, this field enables th + * e Auto Retry feature. For IN transfers (non-isochronous) that encounter + * data packets with CRC errors or internal overrun scenarios, the auto ret + * ry feature causes the Host core to reply to the device with a non-termin + * ating retry ACK (that is, an ACK transaction packet with Retry = 1 and N + * umP != 0). If the Auto Retry feature is disabled (default), the core wil + * l respond with a terminating retry ACK (that is, an ACK transaction pack + * et with Retry = 1 and NumP = 0). - 1'b0: Auto Retry Disabled - 1'b1: Aut + * o Retry Enabled Note: This bit is also applicable to the device mode. + * PSU_USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN 0x1 + + * Global User Control Register: This register provides a few options for t + * he software to control the core behavior in the Host mode. Most of the o + * ptions are used to improve host inter-operability with different devices + * . + * (OFFSET, MASK, VALUE) (0XFE20C12C, 0x00004000U ,0x00004000U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUCTL_OFFSET, 0x00004000U, 0x00004000U); +/*##################################################################### */ + + /* + * UPDATING TWO PCIE REGISTERS DEFAULT VALUES, AS THESE REGISTERS HAVE INCO + * RRECT RESET VALUES IN SILICON. + */ + /* + * Register : ATTR_25 @ 0XFD480064 + + * If TRUE Completion Timeout Disable is supported. This is required to be + * TRUE for Endpoint and either setting allowed for Root ports. Drives Devi + * ce Capability 2 [4]; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED 0X1 + + * ATTR_25 + * (OFFSET, MASK, VALUE) (0XFD480064, 0x00000200U ,0x00000200U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_25_OFFSET, 0x00000200U, 0x00000200U); +/*##################################################################### */ + + /* + * PCIE SETTINGS + */ + /* + * Register : ATTR_7 @ 0XFD48001C + + * Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0x0004; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_7_ATTR_BAR0 0x0 + + * ATTR_7 + * (OFFSET, MASK, VALUE) (0XFD48001C, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_7_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_8 @ 0XFD480020 + + * Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0xFFF0; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_8_ATTR_BAR0 0x0 + + * ATTR_8 + * (OFFSET, MASK, VALUE) (0XFD480020, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_8_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_9 @ 0XFD480024 + + * Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_9_ATTR_BAR1 0x0 + + * ATTR_9 + * (OFFSET, MASK, VALUE) (0XFD480024, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_9_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_10 @ 0XFD480028 + + * Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_10_ATTR_BAR1 0x0 + + * ATTR_10 + * (OFFSET, MASK, VALUE) (0XFD480028, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_10_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_11 @ 0XFD48002C + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFFF + * PSU_PCIE_ATTRIB_ATTR_11_ATTR_BAR2 0xFFFF + + * ATTR_11 + * (OFFSET, MASK, VALUE) (0XFD48002C, 0x0000FFFFU ,0x0000FFFFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_11_OFFSET, 0x0000FFFFU, 0x0000FFFFU); +/*##################################################################### */ + + /* + * Register : ATTR_12 @ 0XFD480030 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0x00FF + * PSU_PCIE_ATTRIB_ATTR_12_ATTR_BAR2 0xFF + + * ATTR_12 + * (OFFSET, MASK, VALUE) (0XFD480030, 0x0000FFFFU ,0x000000FFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_12_OFFSET, 0x0000FFFFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : ATTR_13 @ 0XFD480034 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_13_ATTR_BAR3 0x0 + + * ATTR_13 + * (OFFSET, MASK, VALUE) (0XFD480034, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_13_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_14 @ 0XFD480038 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0xFFFF + * PSU_PCIE_ATTRIB_ATTR_14_ATTR_BAR3 0xFFFF + + * ATTR_14 + * (OFFSET, MASK, VALUE) (0XFD480038, 0x0000FFFFU ,0x0000FFFFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_14_OFFSET, 0x0000FFFFU, 0x0000FFFFU); +/*##################################################################### */ + + /* + * Register : ATTR_15 @ 0XFD48003C + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFF0 + * PSU_PCIE_ATTRIB_ATTR_15_ATTR_BAR4 0xFFF0 + + * ATTR_15 + * (OFFSET, MASK, VALUE) (0XFD48003C, 0x0000FFFFU ,0x0000FFF0U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_15_OFFSET, 0x0000FFFFU, 0x0000FFF0U); +/*##################################################################### */ + + /* + * Register : ATTR_16 @ 0XFD480040 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0xFFF0 + * PSU_PCIE_ATTRIB_ATTR_16_ATTR_BAR4 0xFFF0 + + * ATTR_16 + * (OFFSET, MASK, VALUE) (0XFD480040, 0x0000FFFFU ,0x0000FFF0U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_16_OFFSET, 0x0000FFFFU, 0x0000FFF0U); +/*##################################################################### */ + + /* + * Register : ATTR_17 @ 0XFD480044 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 + * PSU_PCIE_ATTRIB_ATTR_17_ATTR_BAR5 0xFFF1 + + * ATTR_17 + * (OFFSET, MASK, VALUE) (0XFD480044, 0x0000FFFFU ,0x0000FFF1U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_17_OFFSET, 0x0000FFFFU, 0x0000FFF1U); +/*##################################################################### */ + + /* + * Register : ATTR_18 @ 0XFD480048 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 + * PSU_PCIE_ATTRIB_ATTR_18_ATTR_BAR5 0xFFF1 + + * ATTR_18 + * (OFFSET, MASK, VALUE) (0XFD480048, 0x0000FFFFU ,0x0000FFF1U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_18_OFFSET, 0x0000FFFFU, 0x0000FFF1U); +/*##################################################################### */ + + /* + * Register : ATTR_27 @ 0XFD48006C + + * Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1 + * - 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred to the Device Capa + * bilities register. The values: 4-2048 bytes, 5- 4096 bytes are not suppo + * rted; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED 1 + + * Endpoint L1 Acceptable Latency. Records the latency that the endpoint ca + * n withstand on transitions from L1 state to L0 (if L1 state supported). + * Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to + * 8us, 4h 8 to 16us, 5h 16 to 32us, 6h 32 to 64us, 7h more than 64us. For + * Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY 0x0 + + * ATTR_27 + * (OFFSET, MASK, VALUE) (0XFD48006C, 0x00000738U ,0x00000100U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_27_OFFSET, 0x00000738U, 0x00000100U); +/*##################################################################### */ + + /* + * Register : ATTR_50 @ 0XFD4800C8 + + * Identifies the type of device/port as follows: 0000b PCI Express Endpoin + * t device, 0001b Legacy PCI Express Endpoint device, 0100b Root Port of P + * CI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110 + * b Downstream Port of PCI Express Switch, 0111b PCIE Express to PCI/PCI-X + * Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Expre + * ss Capabilities register. Must be consistent with IS_SWITCH and UPSTREAM + * _FACING settings.; EP=0x0000; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE 4 + + * PCIe Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x009C; + * RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR 0 + + * ATTR_50 + * (OFFSET, MASK, VALUE) (0XFD4800C8, 0x0000FFF0U ,0x00000040U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_50_OFFSET, 0x0000FFF0U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : ATTR_105 @ 0XFD4801A4 + + * Number of credits that should be advertised for Completion data received + * on Virtual Channel 0. The bytes advertised must be less than or equal t + * o the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD + * PSU_PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD 0xCD + + * ATTR_105 + * (OFFSET, MASK, VALUE) (0XFD4801A4, 0x000007FFU ,0x000000CDU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_105_OFFSET, + 0x000007FFU, 0x000000CDU); +/*##################################################################### */ + + /* + * Register : ATTR_106 @ 0XFD4801A8 + + * Number of credits that should be advertised for Completion headers recei + * ved on Virtual Channel 0. The sum of the posted, non posted, and complet + * ion header credits must be <= 80; EP=0x0048; RP=0x0024 + * PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH 0x24 + + * Number of credits that should be advertised for Non-Posted headers recei + * ved on Virtual Channel 0. The number of non posted data credits advertis + * ed by the block is equal to the number of non posted header credits. The + * sum of the posted, non posted, and completion header credits must be <= + * 80; EP=0x0004; RP=0x000C + * PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH 0xC + + * ATTR_106 + * (OFFSET, MASK, VALUE) (0XFD4801A8, 0x00003FFFU ,0x00000624U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_106_OFFSET, + 0x00003FFFU, 0x00000624U); +/*##################################################################### */ + + /* + * Register : ATTR_107 @ 0XFD4801AC + + * Number of credits that should be advertised for Non-Posted data received + * on Virtual Channel 0. The number of non posted data credits advertised + * by the block is equal to two times the number of non posted header credi + * ts if atomic operations are supported or is equal to the number of non p + * osted header credits if atomic operations are not supported. The bytes a + * dvertised must be less than or equal to the bram bytes available. See VC + * 0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 + * PSU_PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD 0x18 + + * ATTR_107 + * (OFFSET, MASK, VALUE) (0XFD4801AC, 0x000007FFU ,0x00000018U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_107_OFFSET, + 0x000007FFU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : ATTR_108 @ 0XFD4801B0 + + * Number of credits that should be advertised for Posted data received on + * Virtual Channel 0. The bytes advertised must be less than or equal to th + * e bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 + * PSU_PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD 0xB5 + + * ATTR_108 + * (OFFSET, MASK, VALUE) (0XFD4801B0, 0x000007FFU ,0x000000B5U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_108_OFFSET, + 0x000007FFU, 0x000000B5U); +/*##################################################################### */ + + /* + * Register : ATTR_109 @ 0XFD4801B4 + + * Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_ + * n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV 0x0 + + * Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim + * TRUE == trim.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM 0x1 + + * Enables ECRC check on received TLP's 0 == don't check 1 == always check + * 3 == check if enabled by ECRC check enable bit of AER cap structure; EP= + * 0x0003; RP=0x0003 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK 0x3 + + * Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). + * Calculated from max payload size supported and the number of brams conf + * igured for transmit; EP=0x001C; RP=0x001C + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET 0x1c + + * Number of credits that should be advertised for Posted headers received + * on Virtual Channel 0. The sum of the posted, non posted, and completion + * header credits must be <= 80; EP=0x0004; RP=0x0020 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH 0x20 + + * ATTR_109 + * (OFFSET, MASK, VALUE) (0XFD4801B4, 0x0000FFFFU ,0x00007E20U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_109_OFFSET, + 0x0000FFFFU, 0x00007E20U); +/*##################################################################### */ + + /* + * Register : ATTR_34 @ 0XFD480088 + + * Specifies values to be transferred to Header Type register. Bit 7 should + * be set to '0' indicating single-function device. Bit 0 identifies heade + * r as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; + * RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE 0x1 + + * ATTR_34 + * (OFFSET, MASK, VALUE) (0XFD480088, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_34_OFFSET, 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : ATTR_53 @ 0XFD4800D4 + + * PM Capability's Next Capability Offset pointer to the next item in the c + * apabilities list, or 00h if this is the final capability.; EP=0x0048; RP + * =0x0060 + * PSU_PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR 0x60 + + * ATTR_53 + * (OFFSET, MASK, VALUE) (0XFD4800D4, 0x000000FFU ,0x00000060U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_53_OFFSET, 0x000000FFU, 0x00000060U); +/*##################################################################### */ + + /* + * Register : ATTR_41 @ 0XFD4800A4 + + * MSI Per-Vector Masking Capable. The value is transferred to the MSI Cont + * rol Register[8]. When set, adds Mask and Pending Dword to Cap structure; + * EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE 0x0 + + * Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 + + * MSI Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x0060; R + * P=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR 0x0 + + * Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 + + * ATTR_41 + * (OFFSET, MASK, VALUE) (0XFD4800A4, 0x000003FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_41_OFFSET, 0x000003FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_97 @ 0XFD480184 + + * Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b + * x4, 001000b x8.; EP=0x0004; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH 0x1 + + * Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1 + * ], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x0004; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH 0x1 + + * ATTR_97 + * (OFFSET, MASK, VALUE) (0XFD480184, 0x00000FFFU ,0x00000041U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_97_OFFSET, 0x00000FFFU, 0x00000041U); +/*##################################################################### */ + + /* + * Register : ATTR_100 @ 0XFD480190 + + * TRUE specifies upstream-facing port. FALSE specifies downstream-facing p + * ort.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING 0x0 + + * ATTR_100 + * (OFFSET, MASK, VALUE) (0XFD480190, 0x00000040U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_100_OFFSET, + 0x00000040U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_101 @ 0XFD480194 + + * Enable the routing of message TLPs to the user through the TRN RX interf + * ace. A bit value of 1 enables routing of the message TLP to the user. Me + * ssages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 + * - ERR NONFATAL, Bit 2 - ERR FATAL, Bit 3 - INTA Bit 4 - INTB, Bit 5 - I + * NTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit + * 10 PME_Turn_Off; EP=0x0000; RP=0x07FF + * PSU_PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE 0x7FF + + * Disable BAR filtering. Does not change the behavior of the bar hit outpu + * ts; EP=0x0000; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING 0x1 + + * ATTR_101 + * (OFFSET, MASK, VALUE) (0XFD480194, 0x0000FFE2U ,0x0000FFE2U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_101_OFFSET, + 0x0000FFE2U, 0x0000FFE2U); +/*##################################################################### */ + + /* + * Register : ATTR_37 @ 0XFD480094 + + * Link Bandwidth notification capability. Indicates support for the link b + * andwidth notification status and interrupt mechanism. Required for Root. + * ; EP=0x0000; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP 0x1 + + * Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Op + * tionality ECN. Transferred to the Link Capabilities register.; EP=0x0001 + * ; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY 0x1 + + * ATTR_37 + * (OFFSET, MASK, VALUE) (0XFD480094, 0x00004200U ,0x00004200U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_37_OFFSET, 0x00004200U, 0x00004200U); +/*##################################################################### */ + + /* + * Register : ATTR_93 @ 0XFD480174 + + * Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value + * (or combined with the built-in value, depending on LL_REPLAY_TIMEOUT_FU + * NC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN 0x1 + + * Sets a user-defined timeout for the Replay Timer to force cause the retr + * ansmission of unacknowledged TLPs; refer to LL_REPLAY_TIMEOUT_EN and LL_ + * REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this att + * ribute is in symbol times, which is 4ns at GEN1 speeds and 2ns at GEN2.; + * EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT 0x1000 + + * ATTR_93 + * (OFFSET, MASK, VALUE) (0XFD480174, 0x0000FFFFU ,0x00009000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_93_OFFSET, 0x0000FFFFU, 0x00009000U); +/*##################################################################### */ + + /* + * Register : ID @ 0XFD480200 + + * Device ID for the the PCIe Cap Structure Device ID field + * PSU_PCIE_ATTRIB_ID_CFG_DEV_ID 0xd021 + + * Vendor ID for the PCIe Cap Structure Vendor ID field + * PSU_PCIE_ATTRIB_ID_CFG_VEND_ID 0x10ee + + * ID + * (OFFSET, MASK, VALUE) (0XFD480200, 0xFFFFFFFFU ,0x10EED021U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ID_OFFSET, 0xFFFFFFFFU, 0x10EED021U); +/*##################################################################### */ + + /* + * Register : SUBSYS_ID @ 0XFD480204 + + * Subsystem ID for the the PCIe Cap Structure Subsystem ID field + * PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID 0x7 + + * Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field + * PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID 0x10ee + + * SUBSYS_ID + * (OFFSET, MASK, VALUE) (0XFD480204, 0xFFFFFFFFU ,0x10EE0007U) + */ + PSU_Mask_Write(PCIE_ATTRIB_SUBSYS_ID_OFFSET, + 0xFFFFFFFFU, 0x10EE0007U); +/*##################################################################### */ + + /* + * Register : REV_ID @ 0XFD480208 + + * Revision ID for the the PCIe Cap Structure + * PSU_PCIE_ATTRIB_REV_ID_CFG_REV_ID 0x0 + + * REV_ID + * (OFFSET, MASK, VALUE) (0XFD480208, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_REV_ID_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_24 @ 0XFD480060 + + * Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x8000; RP=0x8000 + * PSU_PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE 0x400 + + * ATTR_24 + * (OFFSET, MASK, VALUE) (0XFD480060, 0x0000FFFFU ,0x00000400U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_24_OFFSET, 0x0000FFFFU, 0x00000400U); +/*##################################################################### */ + + /* + * Register : ATTR_25 @ 0XFD480064 + + * Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x0005; RP=0x0006 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE 0x6 + + * INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] + * to be hardwired to 0.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED 0 + + * ATTR_25 + * (OFFSET, MASK, VALUE) (0XFD480064, 0x000001FFU ,0x00000006U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_25_OFFSET, 0x000001FFU, 0x00000006U); +/*##################################################################### */ + + /* + * Register : ATTR_4 @ 0XFD480010 + + * Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 + + * Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 + + * ATTR_4 + * (OFFSET, MASK, VALUE) (0XFD480010, 0x00001000U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_4_OFFSET, 0x00001000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_89 @ 0XFD480164 + + * VSEC's Next Capability Offset pointer to the next item in the capabiliti + * es list, or 000h if this is the final capability.; EP=0x0140; RP=0x0140 + * PSU_PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR 0 + + * ATTR_89 + * (OFFSET, MASK, VALUE) (0XFD480164, 0x00001FFEU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_89_OFFSET, 0x00001FFEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_79 @ 0XFD48013C + + * CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the + * Root Capabilities register.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY 1 + + * ATTR_79 + * (OFFSET, MASK, VALUE) (0XFD48013C, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_79_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : ATTR_43 @ 0XFD4800AC + + * Indicates that the MSIX structures exists. If this is FALSE, then the MS + * IX structure cannot be accessed via either the link or the management po + * rt.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON 0 + + * ATTR_43 + * (OFFSET, MASK, VALUE) (0XFD4800AC, 0x00000100U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_43_OFFSET, 0x00000100U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_48 @ 0XFD4800C0 + + * MSI-X Table Size. This value is transferred to the MSI-X Message Control + * [10:0] field. Set to 0 if MSI-X is not enabled. Note that the core does + * not implement the table; that must be implemented in user logic.; EP=0x0 + * 003; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE 0 + + * ATTR_48 + * (OFFSET, MASK, VALUE) (0XFD4800C0, 0x000007FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_48_OFFSET, 0x000007FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_46 @ 0XFD4800B8 + + * MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET 0 + + * ATTR_46 + * (OFFSET, MASK, VALUE) (0XFD4800B8, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_46_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_47 @ 0XFD4800BC + + * MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET 0 + + * ATTR_47 + * (OFFSET, MASK, VALUE) (0XFD4800BC, 0x00001FFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_47_OFFSET, 0x00001FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_44 @ 0XFD4800B0 + + * MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET 0 + + * ATTR_44 + * (OFFSET, MASK, VALUE) (0XFD4800B0, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_44_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_45 @ 0XFD4800B4 + + * MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x1000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET 0 + + * ATTR_45 + * (OFFSET, MASK, VALUE) (0XFD4800B4, 0x0000FFF8U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_45_OFFSET, 0x0000FFF8U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CB @ 0XFD48031C + + * DT837748 Enable + * PSU_PCIE_ATTRIB_CB_CB1 0x0 + + * ECO Register 1 + * (OFFSET, MASK, VALUE) (0XFD48031C, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_CB_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_35 @ 0XFD48008C + + * Active State PM Support. Indicates the level of active state power manag + * ement supported by the selected PCI Express Link, encoded as follows: 0 + * Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supporte + * d.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT 0x0 + + * ATTR_35 + * (OFFSET, MASK, VALUE) (0XFD48008C, 0x00003000U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_35_OFFSET, 0x00003000U, 0x00000000U); +/*##################################################################### */ + + /* + * PUTTING PCIE CONTROL IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00020000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00020000U, 0x00000000U); +/*##################################################################### */ + + /* + * PCIE GPIO RESET + */ + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0020U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * CHECK PLL LOCK FOR LANE0 + */ + /* + * Register : L0_PLL_STATUS_READ_1 @ 0XFD4023E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD4023E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L0_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE1 + */ + /* + * Register : L1_PLL_STATUS_READ_1 @ 0XFD4063E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD4063E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L1_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE2 + */ + /* + * Register : L2_PLL_STATUS_READ_1 @ 0XFD40A3E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD40A3E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L2_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE3 + */ + /* + * Register : L3_PLL_STATUS_READ_1 @ 0XFD40E3E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD40E3E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L3_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * SATA AHCI VENDOR SETTING + */ + /* + * Register : PP2C @ 0XFD0C00AC + + * CIBGMN: COMINIT Burst Gap Minimum. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGMN 0x18 + + * CIBGMX: COMINIT Burst Gap Maximum. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGMX 0x40 + + * CIBGN: COMINIT Burst Gap Nominal. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGN 0x18 + + * CINMP: COMINIT Negate Minimum Period. + * PSU_SATA_AHCI_VENDOR_PP2C_CINMP 0x28 + + * PP2C - Port Phy2Cfg Register. This register controls the configuration o + * f the Phy Control OOB timing for the COMINIT parameters for either Port + * 0 or Port 1. The Port configured is controlled by the value programmed i + * nto the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00AC, 0xFFFFFFFFU ,0x28184018U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP2C_OFFSET, + 0xFFFFFFFFU, 0x28184018U); +/*##################################################################### */ + + /* + * Register : PP3C @ 0XFD0C00B0 + + * CWBGMN: COMWAKE Burst Gap Minimum. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGMN 0x06 + + * CWBGMX: COMWAKE Burst Gap Maximum. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGMX 0x14 + + * CWBGN: COMWAKE Burst Gap Nominal. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGN 0x08 + + * CWNMP: COMWAKE Negate Minimum Period. + * PSU_SATA_AHCI_VENDOR_PP3C_CWNMP 0x0E + + * PP3C - Port Phy3CfgRegister. This register controls the configuration of + * the Phy Control OOB timing for the COMWAKE parameters for either Port 0 + * or Port 1. The Port configured is controlled by the value programmed in + * to the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B0, 0xFFFFFFFFU ,0x0E081406U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP3C_OFFSET, + 0xFFFFFFFFU, 0x0E081406U); +/*##################################################################### */ + + /* + * Register : PP4C @ 0XFD0C00B4 + + * BMX: COM Burst Maximum. + * PSU_SATA_AHCI_VENDOR_PP4C_BMX 0x13 + + * BNM: COM Burst Nominal. + * PSU_SATA_AHCI_VENDOR_PP4C_BNM 0x08 + + * SFD: Signal Failure Detection, if the signal detection de-asserts for a + * time greater than this then the OOB detector will determine this is a li + * ne idle and cause the PhyInit state machine to exit the Phy Ready State. + * A value of zero disables the Signal Failure Detector. The value is base + * d on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving + * a nominal time of 500ns based on a 150MHz PMCLK. + * PSU_SATA_AHCI_VENDOR_PP4C_SFD 0x4A + + * PTST: Partial to Slumber timer value, specific delay the controller shou + * ld apply while in partial before entering slumber. The value is bases on + * the system clock divided by 128, total delay = (Sys Clock Period) * PTS + * T * 128 + * PSU_SATA_AHCI_VENDOR_PP4C_PTST 0x06 + + * PP4C - Port Phy4Cfg Register. This register controls the configuration o + * f the Phy Control Burst timing for the COM parameters for either Port 0 + * or Port 1. The Port configured is controlled by the value programmed int + * o the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B4, 0xFFFFFFFFU ,0x064A0813U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP4C_OFFSET, + 0xFFFFFFFFU, 0x064A0813U); +/*##################################################################### */ + + /* + * Register : PP5C @ 0XFD0C00B8 + + * RIT: Retry Interval Timer. The calculated value divided by two, the lowe + * r digit of precision is not needed. + * PSU_SATA_AHCI_VENDOR_PP5C_RIT 0xC96A4 + + * RCT: Rate Change Timer, a value based on the 54.2us for which a SATA dev + * ice will transmit at a fixed rate ALIGNp after OOB has completed, for a + * fast SERDES it is suggested that this value be 54.2us / 4 + * PSU_SATA_AHCI_VENDOR_PP5C_RCT 0x3FF + + * PP5C - Port Phy5Cfg Register. This register controls the configuration o + * f the Phy Control Retry Interval timing for either Port 0 or Port 1. The + * Port configured is controlled by the value programmed into the Port Con + * fig Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B8, 0xFFFFFFFFU ,0x3FFC96A4U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP5C_OFFSET, + 0xFFFFFFFFU, 0x3FFC96A4U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ps_pl_isolation_removal_data() { - // : PS-PL POWER UP REQUEST - /*Register : REQ_PWRUP_INT_EN @ 0XFFD80118

+unsigned long psu_resetin_init_data(void) +{ + /* + * PUTTING SERDES PERIPHERAL IN RESET + */ + /* + * PUTTING USB0 IN RESET + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - Power-up Request Interrupt Enable for PL - PSU_PMU_GLOBAL_REQ_PWRUP_INT_EN_PL 1 + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X1 - Power-up Request Interrupt Enable Register. Writing a 1 to this location will unmask the interrupt. - (OFFSET, MASK, VALUE) (0XFFD80118, 0x00800000U ,0x00800000U) - RegMask = (PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK | 0 ); + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X1 - RegVal = ((0x00000001U << PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET ,0x00800000U ,0x00800000U); - /*############################################################################################################################ */ + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X1 - /*Register : REQ_PWRUP_TRIG @ 0XFFD80120

+ * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000540U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000540U, 0x00000540U); +/*##################################################################### */ - Power-up Request Trigger for PL - PSU_PMU_GLOBAL_REQ_PWRUP_TRIG_PL 1 + /* + * PUTTING GEM0 IN RESET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 - Power-up Request Trigger Register. A write of one to this location will generate a power-up request to the PMU. - (OFFSET, MASK, VALUE) (0XFFD80120, 0x00800000U ,0x00800000U) - RegMask = (PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK | 0 ); + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X1 - RegVal = ((0x00000001U << PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET ,0x00800000U ,0x00800000U); - /*############################################################################################################################ */ + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000008U); +/*##################################################################### */ - // : POLL ON PL POWER STATUS - /*Register : REQ_PWRUP_STATUS @ 0XFFD80110

+ /* + * PUTTING SATA IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - Power-up Request Status for PL - PSU_PMU_GLOBAL_REQ_PWRUP_STATUS_PL 1 - (OFFSET, MASK, VALUE) (0XFFD80110, 0x00800000U ,0x00000000U) */ - mask_pollOnValue(PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET,0x00800000U,0x00000000U); + * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X1 - /*############################################################################################################################ */ + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000002U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00000002U, 0x00000002U); +/*##################################################################### */ + + /* + * PUTTING PCIE IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X1 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X1 + + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X1 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000E0000U ,0x000E0000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000E0000U, 0x000E0000U); +/*##################################################################### */ + + /* + * PUTTING DP IN RESET + */ + /* + * Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238 + + * Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 + * PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0XA + + * Control PHY Power down + * (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x0000000AU) + */ + PSU_Mask_Write(DP_DP_TX_PHY_POWER_DOWN_OFFSET, + 0x0000000FU, 0x0000000AU); +/*##################################################################### */ + + /* + * Register : DP_PHY_RESET @ 0XFD4A0200 + + * Set to '1' to hold the GT in reset. Clear to release. + * PSU_DP_DP_PHY_RESET_GT_RESET 0X1 + + * Reset the transmitter PHY. + * (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000002U) + */ + PSU_Mask_Write(DP_DP_PHY_RESET_OFFSET, 0x00000002U, 0x00000002U); +/*##################################################################### */ + + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X1 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00010000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00010000U, 0x00010000U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ps_pl_reset_config_data() { - // : PS PL RESET SEQUENCE - // : FABRIC RESET USING EMIO - /*Register : MASK_DATA_5_MSW @ 0XFF0A002C

+unsigned long psu_ps_pl_isolation_removal_data(void) +{ + /* + * PS-PL POWER UP REQUEST + */ + /* + * Register : REQ_PWRUP_INT_EN @ 0XFFD80118 - Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] - PSU_GPIO_MASK_DATA_5_MSW_MASK_5_MSW 0x8000 + * Power-up Request Interrupt Enable for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_INT_EN_PL 1 - Maskable Output Data (GPIO Bank5, EMIO, Upper 16bits) - (OFFSET, MASK, VALUE) (0XFF0A002C, 0xFFFF0000U ,0x80000000U) - RegMask = (GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK | 0 ); + * Power-up Request Interrupt Enable Register. Writing a 1 to this location + * will unmask the interrupt. + * (OFFSET, MASK, VALUE) (0XFFD80118, 0x00800000U ,0x00800000U) + */ + PSU_Mask_Write(PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET, + 0x00800000U, 0x00800000U); +/*##################################################################### */ - RegVal = ((0x00008000U << GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_MASK_DATA_5_MSW_OFFSET ,0xFFFF0000U ,0x80000000U); - /*############################################################################################################################ */ + /* + * Register : REQ_PWRUP_TRIG @ 0XFFD80120 - /*Register : DIRM_5 @ 0XFF0A0344

+ * Power-up Request Trigger for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_TRIG_PL 1 - Operation is the same as DIRM_0[DIRECTION_0] - PSU_GPIO_DIRM_5_DIRECTION_5 0x80000000 + * Power-up Request Trigger Register. A write of one to this location will + * generate a power-up request to the PMU. + * (OFFSET, MASK, VALUE) (0XFFD80120, 0x00800000U ,0x00800000U) + */ + PSU_Mask_Write(PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET, + 0x00800000U, 0x00800000U); +/*##################################################################### */ - Direction mode (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0344, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DIRM_5_DIRECTION_5_MASK | 0 ); + /* + * POLL ON PL POWER STATUS + */ + /* + * Register : REQ_PWRUP_STATUS @ 0XFFD80110 - RegVal = ((0x80000000U << GPIO_DIRM_5_DIRECTION_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DIRM_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * Power-up Request Status for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_STATUS_PL 1 + * (OFFSET, MASK, VALUE) (0XFFD80110, 0x00800000U ,0x00000000U) + */ + mask_pollOnValue(PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET, + 0x00800000U, 0x00000000U); - /*Register : OEN_5 @ 0XFF0A0348

+/*##################################################################### */ - Operation is the same as OEN_0[OP_ENABLE_0] - PSU_GPIO_OEN_5_OP_ENABLE_5 0x80000000 - Output enable (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0348, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_OEN_5_OP_ENABLE_5_MASK | 0 ); + return 1; +} +unsigned long psu_afi_config(void) +{ + /* + * AFI RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - RegVal = ((0x80000000U << GPIO_OEN_5_OP_ENABLE_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_OEN_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * AF_FM0 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM0_RESET 0 - /*Register : DATA_5 @ 0XFF0A0054

+ * AF_FM1 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM1_RESET 0 - Output Data - PSU_GPIO_DATA_5_DATA_5 0x80000000 + * AF_FM2 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM2_RESET 0 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); + * AF_FM3 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM3_RESET 0 - RegVal = ((0x80000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * AF_FM4 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM4_RESET 0 + + * AF_FM5 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM5_RESET 0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00001F80U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00001F80U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * AFI FM 6 + * PSU_CRL_APB_RST_LPD_TOP_AFI_FM6_RESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00080000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00080000U, 0x00000000U); +/*##################################################################### */ + + /* + * AFIFM INTERFACE WIDTH + */ + /* + * Register : afi_fs @ 0XFD615000 + + * Select the 32/64/128-bit data width selection for the Slave 0 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved + * PSU_FPD_SLCR_AFI_FS_DW_SS0_SEL 0x2 + + * Select the 32/64/128-bit data width selection for the Slave 1 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved + * PSU_FPD_SLCR_AFI_FS_DW_SS1_SEL 0x2 + + * afi fs SLCR control register. This register is static and should not be + * modified during operation. + * (OFFSET, MASK, VALUE) (0XFD615000, 0x00000F00U ,0x00000A00U) + */ + PSU_Mask_Write(FPD_SLCR_AFI_FS_OFFSET, 0x00000F00U, 0x00000A00U); +/*##################################################################### */ + + + return 1; +} +unsigned long psu_ps_pl_reset_config_data(void) +{ + /* + * PS PL RESET SEQUENCE + */ + /* + * FABRIC RESET USING EMIO + */ + /* + * Register : MASK_DATA_5_MSW @ 0XFF0A002C + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_5_MSW_MASK_5_MSW 0x8000 + + * Maskable Output Data (GPIO Bank5, EMIO, Upper 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A002C, 0xFFFF0000U ,0x80000000U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_5_MSW_OFFSET, + 0xFFFF0000U, 0x80000000U); +/*##################################################################### */ + + /* + * Register : DIRM_5 @ 0XFF0A0344 + + * Operation is the same as DIRM_0[DIRECTION_0] + * PSU_GPIO_DIRM_5_DIRECTION_5 0x80000000 + + * Direction mode (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0344, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DIRM_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ + + /* + * Register : OEN_5 @ 0XFF0A0348 + + * Operation is the same as OEN_0[OP_ENABLE_0] + * PSU_GPIO_OEN_5_OP_ENABLE_5 0x80000000 + + * Output enable (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0348, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_OEN_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ + + /* + * Register : DATA_5 @ 0XFF0A0054 + + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0x80000000 + + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ mask_delay(1); - /*############################################################################################################################ */ +/*##################################################################### */ - // : FABRIC RESET USING DATA_5 TOGGLE - /*Register : DATA_5 @ 0XFF0A0054

+ /* + * FABRIC RESET USING DATA_5 TOGGLE + */ + /* + * Register : DATA_5 @ 0XFF0A0054 - Output Data - PSU_GPIO_DATA_5_DATA_5 0X00000000 + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0X00000000 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x00000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); - - RegVal = ((0x00000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ mask_delay(1); - /*############################################################################################################################ */ +/*##################################################################### */ - // : FABRIC RESET USING DATA_5 TOGGLE - /*Register : DATA_5 @ 0XFF0A0054

+ /* + * FABRIC RESET USING DATA_5 TOGGLE + */ + /* + * Register : DATA_5 @ 0XFF0A0054 - Output Data - PSU_GPIO_DATA_5_DATA_5 0x80000000 + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0x80000000 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); - - RegVal = ((0x80000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ddr_phybringup_data() { +unsigned long psu_ddr_phybringup_data(void) +{ + + + unsigned int regval = 0; + + unsigned int pll_retry = 10; + + unsigned int pll_locked = 0; + + + while ((pll_retry > 0) && (!pll_locked)) { + + Xil_Out32(0xFD080004, 0x00040010);/*PIR*/ + Xil_Out32(0xFD080004, 0x00040011);/*PIR*/ + + while ((Xil_In32(0xFD080030) & 0x1) != 1) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + + pll_locked = (Xil_In32(0xFD080030) & 0x80000000) + >> 31;/*PGSR0*/ + pll_locked &= (Xil_In32(0xFD0807E0) & 0x10000) + >> 16;/*DX0GSR0*/ + pll_locked &= (Xil_In32(0xFD0809E0) & 0x10000) + >> 16;/*DX2GSR0*/ + pll_locked &= (Xil_In32(0xFD080BE0) & 0x10000) + >> 16;/*DX4GSR0*/ + pll_locked &= (Xil_In32(0xFD080DE0) & 0x10000) + >> 16;/*DX6GSR0*/ + pll_retry--; + } + Xil_Out32(0xFD0800C0, Xil_In32(0xFD0800C0) | + (pll_retry << 16));/*GPR0*/ + Xil_Out32(0xFD080004U, 0x00040063U); + /* PHY BRINGUP SEQ */ + while ((Xil_In32(0xFD080030U) & 0x0000000FU) != 0x0000000FU) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + prog_reg(0xFD080004U, 0x00000001U, 0x00000000U, 0x00000001U); + /* poll for PHY initialization to complete */ + while ((Xil_In32(0xFD080030U) & 0x000000FFU) != 0x0000001FU) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } - unsigned int regval = 0; - int dpll_divisor; - dpll_divisor = (Xil_In32(0xFD1A0080U) & 0x00003F00U) >> 0x00000008U; - prog_reg (0xFD1A0080U, 0x00003F00U, 0x00000008U, 0x00000005U); - prog_reg (0xFD080028U, 0x00000001U, 0x00000000U, 0x00000001U); - Xil_Out32(0xFD080004U, 0x00040003U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - prog_reg (0xFD080684U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806A4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806C4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806E4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD1A0080, 0x3F00, 0x8, dpll_divisor); - Xil_Out32(0xFD080004U, 0x40040071U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - Xil_Out32(0xFD080004U, 0x40040001U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - // PHY BRINGUP SEQ - while ((Xil_In32(0xFD080030U) & 0x0000000FU) != 0x0000000FU); - prog_reg (0xFD080004U, 0x00000001U, 0x00000000U, 0x00000001U); - //poll for PHY initialization to complete - while ((Xil_In32(0xFD080030U) & 0x000000FFU) != 0x0000001FU); - Xil_Out32(0xFD0701B0U, 0x00000001U); Xil_Out32(0xFD070320U, 0x00000001U); - while ((Xil_In32(0xFD070004U) & 0x0000000FU) != 0x00000001U); - prog_reg (0xFD080014U, 0x00000040U, 0x00000006U, 0x00000001U); - Xil_Out32(0xFD080004, 0x0004FE01); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while(regval != 0x80000FFF){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } + while ((Xil_In32(0xFD070004U) & 0x0000000FU) != 0x00000001U) { + /*****TODO*****/ - - // Run Vref training in static read mode + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + prog_reg(0xFD080014U, 0x00000040U, 0x00000006U, 0x00000001U); + Xil_Out32(0xFD080004, 0x0004FE01); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while (regval != 0x80000FFF) + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + +/* Run Vref training in static read mode*/ Xil_Out32(0xFD080200U, 0x100091C7U); - Xil_Out32(0xFD080018U, 0x00F01EF2U); - Xil_Out32(0xFD08001CU, 0x55AA5498U); - Xil_Out32(0xFD08142CU, 0x00041830U); - Xil_Out32(0xFD08146CU, 0x00041830U); - Xil_Out32(0xFD0814ACU, 0x00041830U); - Xil_Out32(0xFD0814ECU, 0x00041830U); - Xil_Out32(0xFD08152CU, 0x00041830U); - + Xil_Out32(0xFD080018U, 0x00F01EEFU); + prog_reg(0xFD08001CU, 0x00000018U, 0x00000003U, 0x00000003U); + prog_reg(0xFD08142CU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD08146CU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD0814ACU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD0814ECU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD08152CU, 0x00000030U, 0x00000004U, 0x00000003U); - Xil_Out32(0xFD080004, 0x00060001); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while((regval & 0x80004001) != 0x80004001){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } - // Vref training is complete, disabling static read mode + Xil_Out32(0xFD080004, 0x00060001); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while ((regval & 0x80004001) != 0x80004001) { + /*PUB_PGSR0*/ + regval = Xil_In32(0xFD080030); + } + + prog_reg(0xFD08001CU, 0x00000018U, 0x00000003U, 0x00000000U); + prog_reg(0xFD08142CU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD08146CU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD0814ACU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD0814ECU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD08152CU, 0x00000030U, 0x00000004U, 0x00000000U); +/*Vref training is complete, disabling static read mode*/ Xil_Out32(0xFD080200U, 0x800091C7U); - Xil_Out32(0xFD080018U, 0x00F12302U); - Xil_Out32(0xFD08001CU, 0x55AA5480U); - Xil_Out32(0xFD08142CU, 0x00041800U); - Xil_Out32(0xFD08146CU, 0x00041800U); - Xil_Out32(0xFD0814ACU, 0x00041800U); - Xil_Out32(0xFD0814ECU, 0x00041800U); - Xil_Out32(0xFD08152CU, 0x00041800U); - + Xil_Out32(0xFD080018U, 0x00F122E7U); - Xil_Out32(0xFD080004, 0x0000C001); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while((regval & 0x80000C01) != 0x80000C01){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } + + Xil_Out32(0xFD080004, 0x0000C001); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while ((regval & 0x80000C01) != 0x80000C01) { + /*PUB_PGSR0*/ + regval = Xil_In32(0xFD080030); + } Xil_Out32(0xFD070180U, 0x01000040U); Xil_Out32(0xFD070060U, 0x00000000U); - prog_reg (0xFD080014U, 0x00000040U, 0x00000006U, 0x00000000U); + prog_reg(0xFD080014U, 0x00000040U, 0x00000006U, 0x00000000U); -return 1; +return 1; } /** * CRL_APB Base Address */ #define CRL_APB_BASEADDR 0XFF5E0000U -#define CRL_APB_RST_LPD_IOU0 ( ( CRL_APB_BASEADDR ) + 0X00000230U ) -#define CRL_APB_RST_LPD_IOU1 ( ( CRL_APB_BASEADDR ) + 0X00000234U ) -#define CRL_APB_RST_LPD_IOU2 ( ( CRL_APB_BASEADDR ) + 0X00000238U ) -#define CRL_APB_RST_LPD_TOP ( ( CRL_APB_BASEADDR ) + 0X0000023CU ) -#define CRL_APB_IOU_SWITCH_CTRL ( ( CRL_APB_BASEADDR ) + 0X0000009CU ) +#define CRL_APB_RST_LPD_IOU0 ((CRL_APB_BASEADDR) + 0X00000230U) +#define CRL_APB_RST_LPD_IOU1 ((CRL_APB_BASEADDR) + 0X00000234U) +#define CRL_APB_RST_LPD_IOU2 ((CRL_APB_BASEADDR) + 0X00000238U) +#define CRL_APB_RST_LPD_TOP ((CRL_APB_BASEADDR) + 0X0000023CU) +#define CRL_APB_IOU_SWITCH_CTRL ((CRL_APB_BASEADDR) + 0X0000009CU) /** * CRF_APB Base Address */ #define CRF_APB_BASEADDR 0XFD1A0000U -#define CRF_APB_RST_FPD_TOP ( ( CRF_APB_BASEADDR ) + 0X00000100U ) -#define CRF_APB_GPU_REF_CTRL ( ( CRF_APB_BASEADDR ) + 0X00000084U ) -#define CRF_APB_RST_DDR_SS ( ( CRF_APB_BASEADDR ) + 0X00000108U ) +#define CRF_APB_RST_FPD_TOP ((CRF_APB_BASEADDR) + 0X00000100U) +#define CRF_APB_GPU_REF_CTRL ((CRF_APB_BASEADDR) + 0X00000084U) +#define CRF_APB_RST_DDR_SS ((CRF_APB_BASEADDR) + 0X00000108U) #define PSU_MASK_POLL_TIME 1100000 +/** + * * Register: CRF_APB_DPLL_CTRL + */ +#define CRF_APB_DPLL_CTRL ((CRF_APB_BASEADDR) + 0X0000002C) -int mask_pollOnValue(u32 add , u32 mask, u32 value ) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; + +#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_DPLL_CTRL_DIV2_WIDTH 1 + +#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_DPLL_CTRL_FBDIV_WIDTH 7 + +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_WIDTH 1 + +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_WIDTH 1 + +/** + * * Register: CRF_APB_DPLL_CFG + */ +#define CRF_APB_DPLL_CFG ((CRF_APB_BASEADDR) + 0X00000030) + +#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_DPLL_CFG_LOCK_DLY_WIDTH 7 + +#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_DPLL_CFG_LOCK_CNT_WIDTH 10 + +#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_DPLL_CFG_LFHF_WIDTH 2 + +#define CRF_APB_DPLL_CFG_CP_SHIFT 5 +#define CRF_APB_DPLL_CFG_CP_WIDTH 4 + +#define CRF_APB_DPLL_CFG_RES_SHIFT 0 +#define CRF_APB_DPLL_CFG_RES_WIDTH 4 + +/** + * Register: CRF_APB_PLL_STATUS + */ +#define CRF_APB_PLL_STATUS ((CRF_APB_BASEADDR) + 0X00000044) + + +static int mask_pollOnValue(u32 add, u32 mask, u32 value) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; int i = 0; - while ((*addr & mask)!= value) { - if (i == PSU_MASK_POLL_TIME) { + + while ((*addr & mask) != value) { + if (i == PSU_MASK_POLL_TIME) return 0; - } i++; } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); + return 1; } -int mask_poll(u32 add , u32 mask) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; +static int mask_poll(u32 add, u32 mask) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; int i = 0; + while (!(*addr & mask)) { - if (i == PSU_MASK_POLL_TIME) { + if (i == PSU_MASK_POLL_TIME) return 0; - } i++; } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); + return 1; } -void mask_delay(u32 delay) { - usleep (delay); +static void mask_delay(u32 delay) +{ + usleep(delay); } -u32 mask_read(u32 add , u32 mask ) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; - u32 val = (*addr & mask); - //xil_printf("MaskRead : 0x%x --> 0x%x \n \r" , add, val); - return val; +static u32 mask_read(u32 add, u32 mask) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; + u32 val = (*addr & mask); + return val; } +static void dpll_prog(int ddr_pll_fbdiv, int d_lock_dly, int d_lock_cnt, + int d_lfhf, int d_cp, int d_res) { -//Following SERDES programming sequences that a user need to follow to work around the known limitation with SERDES. -//These sequences should done before STEP 1 and STEP 2 as described in previous section. These programming steps are -//required for current silicon version and are likely to undergo further changes with subsequent silicon versions. + unsigned int pll_ctrl_regval; + unsigned int pll_status_regval; + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_DIV2_MASK); + pll_ctrl_regval = pll_ctrl_regval | (1 << CRF_APB_DPLL_CTRL_DIV2_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LOCK_DLY_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lock_dly << CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LOCK_CNT_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lock_cnt << CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LFHF_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lfhf << CRF_APB_DPLL_CFG_LFHF_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_CP_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_cp << CRF_APB_DPLL_CFG_CP_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_RES_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_res << CRF_APB_DPLL_CFG_RES_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_FBDIV_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (ddr_pll_fbdiv << CRF_APB_DPLL_CTRL_FBDIV_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Setting PLL BYPASS*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_BYPASS_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (1 << CRF_APB_DPLL_CTRL_BYPASS_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Setting PLL RESET*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_RESET_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (1 << CRF_APB_DPLL_CTRL_RESET_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Clearing PLL RESET*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_RESET_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (0 << CRF_APB_DPLL_CTRL_RESET_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Checking PLL lock*/ + pll_status_regval = 0x00000000; + while ((pll_status_regval & CRF_APB_PLL_STATUS_DPLL_LOCK_MASK) != + CRF_APB_PLL_STATUS_DPLL_LOCK_MASK) + pll_status_regval = Xil_In32(CRF_APB_PLL_STATUS); -int serdes_fixcal_code() { + + /*Clearing PLL BYPASS*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_BYPASS_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (0 << CRF_APB_DPLL_CTRL_BYPASS_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + +} + +/*Following SERDES programming sequences that a user need to follow to work + * around the known limitation with SERDES. These sequences should done + * before STEP 1 and STEP 2 as described in previous section. These + * programming steps are *required for current silicon version and are + * likely to undergo further changes with subsequent silicon versions. + */ + + +static int serdes_enb_coarse_saturation(void) +{ + /*Enable PLL Coarse Code saturation Logic*/ + Xil_Out32(0xFD402094, 0x00000010); + Xil_Out32(0xFD406094, 0x00000010); + Xil_Out32(0xFD40A094, 0x00000010); + Xil_Out32(0xFD40E094, 0x00000010); + return 1; +} + +int serdes_fixcal_code(void) +{ int MaskStatus = 1; - // L3_TM_CALIB_DIG19 - Xil_Out32(0xFD40EC4C,0x00000020); - //ICM_CFG0 - Xil_Out32(0xFD410010,0x00000001); + unsigned int rdata = 0; + + /*The valid codes are from 0x26 to 0x3C. + *There are 23 valid codes in total. + */ + /*Each element of array stands for count of occurence of valid code.*/ + unsigned int match_pmos_code[23]; + /*Each element of array stands for count of occurence of valid code.*/ + /*The valid codes are from 0xC to 0x12. + *There are 7 valid codes in total. + */ + unsigned int match_nmos_code[23]; + /*Each element of array stands for count of occurence of valid code.*/ + /*The valid codes are from 0x6 to 0xC. + * There are 7 valid codes in total. + */ + unsigned int match_ical_code[7]; + /*Each element of array stands for count of occurence of valid code.*/ + unsigned int match_rcal_code[7]; - //is calibration done, polling on L3_CALIB_DONE_STATUS - MaskStatus = mask_poll(0xFD40EF14, 0x2); - - if (MaskStatus == 0) - { - xil_printf("SERDES initialization timed out\n\r"); - } - - unsigned int tmp_0_1; - tmp_0_1 = mask_read(0xFD400B0C, 0x3F); - - unsigned int tmp_0_2 = tmp_0_1 & (0x7); - unsigned int tmp_0_3 = tmp_0_1 & (0x38); - //Configure ICM for de-asserting CMN_Resetn - Xil_Out32(0xFD410010,0x00000000); - Xil_Out32(0xFD410014,0x00000000); - - unsigned int tmp_0_2_mod = (tmp_0_2 <<1) | (0x1); - tmp_0_2_mod = (tmp_0_2_mod <<4); - - tmp_0_3 = tmp_0_3 >>3; - Xil_Out32(0xFD40EC4C,tmp_0_3); + unsigned int p_code = 0; + unsigned int n_code = 0; + unsigned int i_code = 0; + unsigned int r_code = 0; + unsigned int repeat_count = 0; + unsigned int L3_TM_CALIB_DIG20 = 0; + unsigned int L3_TM_CALIB_DIG19 = 0; + unsigned int L3_TM_CALIB_DIG18 = 0; + unsigned int L3_TM_CALIB_DIG16 = 0; + unsigned int L3_TM_CALIB_DIG15 = 0; + unsigned int L3_TM_CALIB_DIG14 = 0; - //L3_TM_CALIB_DIG18 - Xil_Out32(0xFD40EC48,tmp_0_2_mod); - return MaskStatus; + int i = 0; + rdata = Xil_In32(0XFD40289C); + rdata = rdata & ~0x03; + rdata = rdata | 0x1; + Xil_Out32(0XFD40289C, rdata); + // check supply good status before starting AFE sequencing + int count = 0; + do + { + if (count == PSU_MASK_POLL_TIME) + break; + rdata = Xil_In32(0xFD402B1C); + count++; + }while((rdata&0x0000000E) !=0x0000000E); + + for (i = 0; i < 23; i++) { + match_pmos_code[i] = 0; + match_nmos_code[i] = 0; + } + for (i = 0; i < 7; i++) { + match_ical_code[i] = 0; + match_rcal_code[i] = 0; + } + + + do { + /*Clear ICM_CFG value*/ + Xil_Out32(0xFD410010, 0x00000000); + Xil_Out32(0xFD410014, 0x00000000); + + /*Set ICM_CFG value*/ + /*This will trigger recalibration of all stages*/ + Xil_Out32(0xFD410010, 0x00000001); + Xil_Out32(0xFD410014, 0x00000000); + + /*is calibration done? polling on L3_CALIB_DONE_STATUS*/ + MaskStatus = mask_poll(0xFD40EF14, 0x2); + if (MaskStatus == 0) { + /*failure here is because of calibration done timeout*/ + xil_printf("#SERDES initialization timed out\n\r"); + return MaskStatus; + } + + p_code = mask_read(0xFD40EF18, 0xFFFFFFFF);/*PMOS code*/ + n_code = mask_read(0xFD40EF1C, 0xFFFFFFFF);/*NMOS code*/ + /*m_code = mask_read(0xFD40EF20, 0xFFFFFFFF)*/;/*MPHY code*/ + i_code = mask_read(0xFD40EF24, 0xFFFFFFFF);/*ICAL code*/ + r_code = mask_read(0xFD40EF28, 0xFFFFFFFF);/*RX code*/ + /*u_code = mask_read(0xFD40EF2C, 0xFFFFFFFF)*/;/*USB2 code*/ + + /*PMOS code in acceptable range*/ + if ((p_code >= 0x26) && (p_code <= 0x3C)) + match_pmos_code[p_code - 0x26] += 1; + + /*NMOS code in acceptable range*/ + if ((n_code >= 0x26) && (n_code <= 0x3C)) + match_nmos_code[n_code - 0x26] += 1; + + /*PMOS code in acceptable range*/ + if ((i_code >= 0xC) && (i_code <= 0x12)) + match_ical_code[i_code - 0xC] += 1; + + /*NMOS code in acceptable range*/ + if ((r_code >= 0x6) && (r_code <= 0xC)) + match_rcal_code[r_code - 0x6] += 1; + + + } while (repeat_count++ < 10); + + /*find the valid code which resulted in maximum times in 10 iterations*/ + for (i = 0; i < 23; i++) { + if (match_pmos_code[i] >= match_pmos_code[0]) { + match_pmos_code[0] = match_pmos_code[i]; + p_code = 0x26 + i; + } + if (match_nmos_code[i] >= match_nmos_code[0]) { + match_nmos_code[0] = match_nmos_code[i]; + n_code = 0x26 + i; + } + } + + for (i = 0; i < 7; i++) { + if (match_ical_code[i] >= match_ical_code[0]) { + match_ical_code[0] = match_ical_code[i]; + i_code = 0xC + i; + } + if (match_rcal_code[i] >= match_rcal_code[0]) { + match_rcal_code[0] = match_rcal_code[i]; + r_code = 0x6 + i; + } + } + /*L3_TM_CALIB_DIG20[3] PSW MSB Override*/ + /*L3_TM_CALIB_DIG20[2:0] PSW Code [4:2]*/ + L3_TM_CALIB_DIG20 = mask_read(0xFD40EC50, 0xFFFFFFF0);/*read DIG20*/ + L3_TM_CALIB_DIG20 = L3_TM_CALIB_DIG20 | 0x8 | ((p_code >> 2) & 0x7); + + + /*L3_TM_CALIB_DIG19[7:6] PSW Code [1:0]*/ + /*L3_TM_CALIB_DIG19[5] PSW Override*/ + /*L3_TM_CALIB_DIG19[2] NSW MSB Override*/ + /*L3_TM_CALIB_DIG19[1:0] NSW Code [4:3]*/ + L3_TM_CALIB_DIG19 = mask_read(0xFD40EC4C, 0xFFFFFF18);/*read DIG19*/ + L3_TM_CALIB_DIG19 = L3_TM_CALIB_DIG19 | ((p_code & 0x3) << 6) + | 0x20 | 0x4 | ((n_code >> 3) & 0x3); + + /*L3_TM_CALIB_DIG18[7:5] NSW Code [2:0]*/ + /*L3_TM_CALIB_DIG18[4] NSW Override*/ + L3_TM_CALIB_DIG18 = mask_read(0xFD40EC48, 0xFFFFFF0F);/*read DIG18*/ + L3_TM_CALIB_DIG18 = L3_TM_CALIB_DIG18 | ((n_code & 0x7) << 5) | 0x10; + + + /*L3_TM_CALIB_DIG16[2:0] RX Code [3:1]*/ + L3_TM_CALIB_DIG16 = mask_read(0xFD40EC40, 0xFFFFFFF8);/*read DIG16*/ + L3_TM_CALIB_DIG16 = L3_TM_CALIB_DIG16 | ((r_code >> 1) & 0x7); + + /*L3_TM_CALIB_DIG15[7] RX Code [0]*/ + /*L3_TM_CALIB_DIG15[6] RX CODE Override*/ + /*L3_TM_CALIB_DIG15[3] ICAL MSB Override*/ + /*L3_TM_CALIB_DIG15[2:0] ICAL Code [3:1]*/ + L3_TM_CALIB_DIG15 = mask_read(0xFD40EC3C, 0xFFFFFF30);/*read DIG15*/ + L3_TM_CALIB_DIG15 = L3_TM_CALIB_DIG15 | ((r_code & 0x1) << 7) + | 0x40 | 0x8 | ((i_code >> 1) & 0x7); + + /*L3_TM_CALIB_DIG14[7] ICAL Code [0]*/ + /*L3_TM_CALIB_DIG14[6] ICAL Override*/ + L3_TM_CALIB_DIG14 = mask_read(0xFD40EC38, 0xFFFFFF3F);/*read DIG14*/ + L3_TM_CALIB_DIG14 = L3_TM_CALIB_DIG14 | ((i_code & 0x1) << 7) | 0x40; + + /*Forces the calibration values*/ + Xil_Out32(0xFD40EC50, L3_TM_CALIB_DIG20); + Xil_Out32(0xFD40EC4C, L3_TM_CALIB_DIG19); + Xil_Out32(0xFD40EC48, L3_TM_CALIB_DIG18); + Xil_Out32(0xFD40EC40, L3_TM_CALIB_DIG16); + Xil_Out32(0xFD40EC3C, L3_TM_CALIB_DIG15); + Xil_Out32(0xFD40EC38, L3_TM_CALIB_DIG14); + return MaskStatus; } - -int serdes_enb_coarse_saturation() { - //Enable PLL Coarse Code saturation Logic - Xil_Out32(0xFD402094,0x00000010); - Xil_Out32(0xFD406094,0x00000010); - Xil_Out32(0xFD40A094,0x00000010); - Xil_Out32(0xFD40E094,0x00000010); - return 1; -} - -int init_serdes() { +static int init_serdes(void) +{ int status = 1; + status &= psu_resetin_init_data(); status &= serdes_fixcal_code(); status &= serdes_enb_coarse_saturation(); - status &= psu_serdes_init_data(); + status &= psu_serdes_init_data(); status &= psu_resetout_init_data(); return status; } - - - - -void init_peripheral() +static void init_peripheral(void) { - unsigned int RegValue; - - /* Turn on IOU Clock */ - //Xil_Out32( CRL_APB_IOU_SWITCH_CTRL, 0x01001500); - - /* Release all resets in the IOU */ - Xil_Out32( CRL_APB_RST_LPD_IOU0, 0x00000000); - Xil_Out32( CRL_APB_RST_LPD_IOU1, 0x00000000); - Xil_Out32( CRL_APB_RST_LPD_IOU2, 0x00000000); - - /* Activate GPU clocks */ - //Xil_Out32(CRF_APB_GPU_REF_CTRL, 0x07001500); - - /* Take LPD out of reset except R5 */ - RegValue = Xil_In32(CRL_APB_RST_LPD_TOP); - RegValue &= 0x7; - Xil_Out32( CRL_APB_RST_LPD_TOP, RegValue); - - /* Take most of FPD out of reset */ - Xil_Out32( CRF_APB_RST_FPD_TOP, 0x00000000); - - /* Making DPDMA as secure */ - unsigned int tmp_regval; - tmp_regval = Xil_In32(0xFD690040); - tmp_regval &= ~0x00000001; - Xil_Out32(0xFD690040, tmp_regval); - - /* Making PCIe as secure */ - tmp_regval = Xil_In32(0xFD690030); - tmp_regval &= ~0x00000001; - Xil_Out32(0xFD690030, tmp_regval); +/*SMMU_REG Interrrupt Enable: Followig register need to be written all the time to properly catch SMMU messages.*/ + PSU_Mask_Write(0xFD5F0018, 0x8000001FU, 0x8000001FU); } -int psu_init_xppu_aper_ram() { - unsigned long APER_OFFSET = 0xFF981000; - int i = 0; - for (; i <= 400; i++) { - PSU_Mask_Write (APER_OFFSET ,0xF80FFFFFU ,0x08080000U); - APER_OFFSET = APER_OFFSET + 0x4; - } +static int psu_init_xppu_aper_ram(void) +{ return 0; } -int psu_lpd_protection() { - psu_init_xppu_aper_ram(); - psu_lpd_xppu_data(); - return 0; +int psu_lpd_protection(void) +{ + psu_init_xppu_aper_ram(); + return 0; } -int psu_ddr_protection() { - psu_ddr_xmpu0_data(); - psu_ddr_xmpu1_data(); - psu_ddr_xmpu2_data(); - psu_ddr_xmpu3_data(); - psu_ddr_xmpu4_data(); - psu_ddr_xmpu5_data(); - return 0; +int psu_ddr_protection(void) +{ + psu_ddr_xmpu0_data(); + psu_ddr_xmpu1_data(); + psu_ddr_xmpu2_data(); + psu_ddr_xmpu3_data(); + psu_ddr_xmpu4_data(); + psu_ddr_xmpu5_data(); + return 0; } -int psu_ocm_protection() { - psu_ocm_xmpu_data(); - return 0; +int psu_ocm_protection(void) +{ + psu_ocm_xmpu_data(); + return 0; } -int psu_fpd_protection() { - psu_fpd_xmpu_data(); - return 0; +int psu_fpd_protection(void) +{ + psu_fpd_xmpu_data(); + return 0; } -int psu_protection_lock() { - psu_protection_lock_data(); - return 0; +int psu_protection_lock(void) +{ + psu_protection_lock_data(); + return 0; } -int psu_protection() { - psu_ddr_protection(); - psu_ocm_protection(); - psu_fpd_protection(); - psu_lpd_protection(); - return 0; +int psu_protection(void) +{ + psu_apply_master_tz(); + psu_ddr_protection(); + psu_ocm_protection(); + psu_fpd_protection(); + psu_lpd_protection(); + return 0; } - - int -psu_init() +psu_init(void) { - int status = 1; - status &= psu_mio_init_data (); - status &= psu_pll_init_data (); - status &= psu_clock_init_data (); - - status &= psu_ddr_init_data (); - status &= psu_ddr_phybringup_data (); - status &= psu_peripherals_init_data (); + int status = 1; + status &= psu_mio_init_data(); + status &= psu_pll_init_data(); + status &= psu_clock_init_data(); + status &= psu_ddr_init_data(); + status &= psu_ddr_phybringup_data(); + status &= psu_peripherals_init_data(); status &= init_serdes(); - init_peripheral (); + init_peripheral(); - status &= psu_peripherals_powerdwn_data (); - - if (status == 0) { + status &= psu_peripherals_powerdwn_data(); + status &= psu_afi_config(); + psu_ddr_qos_init_data(); + + if (status == 0) return 1; - } return 0; } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.h b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.h index 0fb578181..7feed7d35 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.h +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.h @@ -16,13 +16,13 @@ * with this program; if not, see * * -******************************************************************************/ +******************************************************************************/ /****************************************************************************/ /** * * @file psu_init_gpl.h * -* This file is automatically generated +* This file is automatically generated * *****************************************************************************/ @@ -41,8 +41,6 @@ #define CRL_APB_RPLL_CTRL_OFFSET 0XFF5E0030 #undef CRL_APB_RPLL_TO_FPD_CTRL_OFFSET #define CRL_APB_RPLL_TO_FPD_CTRL_OFFSET 0XFF5E0048 -#undef CRL_APB_RPLL_FRAC_CFG_OFFSET -#define CRL_APB_RPLL_FRAC_CFG_OFFSET 0XFF5E0038 #undef CRL_APB_IOPLL_CFG_OFFSET #define CRL_APB_IOPLL_CFG_OFFSET 0XFF5E0024 #undef CRL_APB_IOPLL_CTRL_OFFSET @@ -57,8 +55,6 @@ #define CRL_APB_IOPLL_CTRL_OFFSET 0XFF5E0020 #undef CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET #define CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET 0XFF5E0044 -#undef CRL_APB_IOPLL_FRAC_CFG_OFFSET -#define CRL_APB_IOPLL_FRAC_CFG_OFFSET 0XFF5E0028 #undef CRF_APB_APLL_CFG_OFFSET #define CRF_APB_APLL_CFG_OFFSET 0XFD1A0024 #undef CRF_APB_APLL_CTRL_OFFSET @@ -73,8 +69,6 @@ #define CRF_APB_APLL_CTRL_OFFSET 0XFD1A0020 #undef CRF_APB_APLL_TO_LPD_CTRL_OFFSET #define CRF_APB_APLL_TO_LPD_CTRL_OFFSET 0XFD1A0048 -#undef CRF_APB_APLL_FRAC_CFG_OFFSET -#define CRF_APB_APLL_FRAC_CFG_OFFSET 0XFD1A0028 #undef CRF_APB_DPLL_CFG_OFFSET #define CRF_APB_DPLL_CFG_OFFSET 0XFD1A0030 #undef CRF_APB_DPLL_CTRL_OFFSET @@ -89,8 +83,6 @@ #define CRF_APB_DPLL_CTRL_OFFSET 0XFD1A002C #undef CRF_APB_DPLL_TO_LPD_CTRL_OFFSET #define CRF_APB_DPLL_TO_LPD_CTRL_OFFSET 0XFD1A004C -#undef CRF_APB_DPLL_FRAC_CFG_OFFSET -#define CRF_APB_DPLL_FRAC_CFG_OFFSET 0XFD1A0034 #undef CRF_APB_VPLL_CFG_OFFSET #define CRF_APB_VPLL_CFG_OFFSET 0XFD1A003C #undef CRF_APB_VPLL_CTRL_OFFSET @@ -105,675 +97,770 @@ #define CRF_APB_VPLL_CTRL_OFFSET 0XFD1A0038 #undef CRF_APB_VPLL_TO_LPD_CTRL_OFFSET #define CRF_APB_VPLL_TO_LPD_CTRL_OFFSET 0XFD1A0050 -#undef CRF_APB_VPLL_FRAC_CFG_OFFSET -#define CRF_APB_VPLL_FRAC_CFG_OFFSET 0XFD1A0040 -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRL_APB_RPLL_CFG_RES_DEFVAL #undef CRL_APB_RPLL_CFG_RES_SHIFT #undef CRL_APB_RPLL_CFG_RES_MASK -#define CRL_APB_RPLL_CFG_RES_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_RES_SHIFT 0 -#define CRL_APB_RPLL_CFG_RES_MASK 0x0000000FU +#define CRL_APB_RPLL_CFG_RES_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_RES_SHIFT 0 +#define CRL_APB_RPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRL_APB_RPLL_CFG_CP_DEFVAL #undef CRL_APB_RPLL_CFG_CP_SHIFT #undef CRL_APB_RPLL_CFG_CP_MASK -#define CRL_APB_RPLL_CFG_CP_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_CP_SHIFT 5 -#define CRL_APB_RPLL_CFG_CP_MASK 0x000001E0U +#define CRL_APB_RPLL_CFG_CP_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_CP_SHIFT 5 +#define CRL_APB_RPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRL_APB_RPLL_CFG_LFHF_DEFVAL #undef CRL_APB_RPLL_CFG_LFHF_SHIFT #undef CRL_APB_RPLL_CFG_LFHF_MASK -#define CRL_APB_RPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LFHF_SHIFT 10 -#define CRL_APB_RPLL_CFG_LFHF_MASK 0x00000C00U +#define CRL_APB_RPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LFHF_SHIFT 10 +#define CRL_APB_RPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL #undef CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT #undef CRL_APB_RPLL_CFG_LOCK_CNT_MASK -#define CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRL_APB_RPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRL_APB_RPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL #undef CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT #undef CRL_APB_RPLL_CFG_LOCK_DLY_MASK -#define CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRL_APB_RPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRL_APB_RPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL #undef CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT #undef CRL_APB_RPLL_CTRL_PRE_SRC_MASK -#define CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRL_APB_RPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRL_APB_RPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRL_APB_RPLL_CTRL_FBDIV_DEFVAL #undef CRL_APB_RPLL_CTRL_FBDIV_SHIFT #undef CRL_APB_RPLL_CTRL_FBDIV_MASK -#define CRL_APB_RPLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_FBDIV_SHIFT 8 -#define CRL_APB_RPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRL_APB_RPLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_FBDIV_SHIFT 8 +#define CRL_APB_RPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRL_APB_RPLL_CTRL_DIV2_DEFVAL #undef CRL_APB_RPLL_CTRL_DIV2_SHIFT #undef CRL_APB_RPLL_CTRL_DIV2_MASK -#define CRL_APB_RPLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_DIV2_SHIFT 16 -#define CRL_APB_RPLL_CTRL_DIV2_MASK 0x00010000U +#define CRL_APB_RPLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_DIV2_SHIFT 16 +#define CRL_APB_RPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_RPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_RPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_RPLL_CTRL_BYPASS_MASK -#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_RPLL_CTRL_RESET_DEFVAL #undef CRL_APB_RPLL_CTRL_RESET_SHIFT #undef CRL_APB_RPLL_CTRL_RESET_MASK -#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_RPLL_CTRL_RESET_DEFVAL #undef CRL_APB_RPLL_CTRL_RESET_SHIFT #undef CRL_APB_RPLL_CTRL_RESET_MASK -#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U -/*RPLL is locked*/ +/* +* RPLL is locked +*/ #undef CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL #undef CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT #undef CRL_APB_PLL_STATUS_RPLL_LOCK_MASK -#define CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL 0x00000018 -#define CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT 1 -#define CRL_APB_PLL_STATUS_RPLL_LOCK_MASK 0x00000002U +#define CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL 0x00000018 +#define CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT 1 +#define CRL_APB_PLL_STATUS_RPLL_LOCK_MASK 0x00000002U #define CRL_APB_PLL_STATUS_OFFSET 0XFF5E0040 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_RPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_RPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_RPLL_CTRL_BYPASS_MASK -#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRL_APB_RPLL_FRAC_CFG_DATA_DEFVAL -#undef CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT -#undef CRL_APB_RPLL_FRAC_CFG_DATA_MASK -#define CRL_APB_RPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRL_APB_RPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRL_APB_IOPLL_CFG_RES_DEFVAL #undef CRL_APB_IOPLL_CFG_RES_SHIFT #undef CRL_APB_IOPLL_CFG_RES_MASK -#define CRL_APB_IOPLL_CFG_RES_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_RES_SHIFT 0 -#define CRL_APB_IOPLL_CFG_RES_MASK 0x0000000FU +#define CRL_APB_IOPLL_CFG_RES_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_RES_SHIFT 0 +#define CRL_APB_IOPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRL_APB_IOPLL_CFG_CP_DEFVAL #undef CRL_APB_IOPLL_CFG_CP_SHIFT #undef CRL_APB_IOPLL_CFG_CP_MASK -#define CRL_APB_IOPLL_CFG_CP_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_CP_SHIFT 5 -#define CRL_APB_IOPLL_CFG_CP_MASK 0x000001E0U +#define CRL_APB_IOPLL_CFG_CP_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_CP_SHIFT 5 +#define CRL_APB_IOPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRL_APB_IOPLL_CFG_LFHF_DEFVAL #undef CRL_APB_IOPLL_CFG_LFHF_SHIFT #undef CRL_APB_IOPLL_CFG_LFHF_MASK -#define CRL_APB_IOPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LFHF_SHIFT 10 -#define CRL_APB_IOPLL_CFG_LFHF_MASK 0x00000C00U +#define CRL_APB_IOPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LFHF_SHIFT 10 +#define CRL_APB_IOPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL #undef CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT #undef CRL_APB_IOPLL_CFG_LOCK_CNT_MASK -#define CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRL_APB_IOPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRL_APB_IOPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL #undef CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT #undef CRL_APB_IOPLL_CFG_LOCK_DLY_MASK -#define CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRL_APB_IOPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRL_APB_IOPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL #undef CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT #undef CRL_APB_IOPLL_CTRL_PRE_SRC_MASK -#define CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRL_APB_IOPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRL_APB_IOPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL #undef CRL_APB_IOPLL_CTRL_FBDIV_SHIFT #undef CRL_APB_IOPLL_CTRL_FBDIV_MASK -#define CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_FBDIV_SHIFT 8 -#define CRL_APB_IOPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_FBDIV_SHIFT 8 +#define CRL_APB_IOPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRL_APB_IOPLL_CTRL_DIV2_DEFVAL #undef CRL_APB_IOPLL_CTRL_DIV2_SHIFT #undef CRL_APB_IOPLL_CTRL_DIV2_MASK -#define CRL_APB_IOPLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_DIV2_SHIFT 16 -#define CRL_APB_IOPLL_CTRL_DIV2_MASK 0x00010000U +#define CRL_APB_IOPLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_DIV2_SHIFT 16 +#define CRL_APB_IOPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_IOPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_IOPLL_CTRL_BYPASS_MASK -#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_IOPLL_CTRL_RESET_DEFVAL #undef CRL_APB_IOPLL_CTRL_RESET_SHIFT #undef CRL_APB_IOPLL_CTRL_RESET_MASK -#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_IOPLL_CTRL_RESET_DEFVAL #undef CRL_APB_IOPLL_CTRL_RESET_SHIFT #undef CRL_APB_IOPLL_CTRL_RESET_MASK -#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U -/*IOPLL is locked*/ +/* +* IOPLL is locked +*/ #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL 0x00000018 -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT 0 -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK 0x00000001U +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL 0x00000018 +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT 0 +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK 0x00000001U #define CRL_APB_PLL_STATUS_OFFSET 0XFF5E0040 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_IOPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_IOPLL_CTRL_BYPASS_MASK -#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_DEFVAL -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_MASK -#define CRL_APB_IOPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRL_APB_IOPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_APLL_CFG_RES_DEFVAL #undef CRF_APB_APLL_CFG_RES_SHIFT #undef CRF_APB_APLL_CFG_RES_MASK -#define CRF_APB_APLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_RES_SHIFT 0 -#define CRF_APB_APLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_APLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_RES_SHIFT 0 +#define CRF_APB_APLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_APLL_CFG_CP_DEFVAL #undef CRF_APB_APLL_CFG_CP_SHIFT #undef CRF_APB_APLL_CFG_CP_MASK -#define CRF_APB_APLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_CP_SHIFT 5 -#define CRF_APB_APLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_APLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_CP_SHIFT 5 +#define CRF_APB_APLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_APLL_CFG_LFHF_DEFVAL #undef CRF_APB_APLL_CFG_LFHF_SHIFT #undef CRF_APB_APLL_CFG_LFHF_MASK -#define CRF_APB_APLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_APLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_APLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_APLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_APLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_APLL_CFG_LOCK_CNT_MASK -#define CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_APLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_APLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_APLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_APLL_CFG_LOCK_DLY_MASK -#define CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_APLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_APLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_APLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_APLL_CTRL_PRE_SRC_MASK -#define CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_APLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_APLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_APLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_APLL_CTRL_FBDIV_SHIFT #undef CRF_APB_APLL_CTRL_FBDIV_MASK -#define CRF_APB_APLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_APLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_APLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_APLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_APLL_CTRL_DIV2_DEFVAL #undef CRF_APB_APLL_CTRL_DIV2_SHIFT #undef CRF_APB_APLL_CTRL_DIV2_MASK -#define CRF_APB_APLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_APLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_APLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_APLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_APLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_APLL_CTRL_BYPASS_SHIFT #undef CRF_APB_APLL_CTRL_BYPASS_MASK -#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_APLL_CTRL_RESET_DEFVAL #undef CRF_APB_APLL_CTRL_RESET_SHIFT #undef CRF_APB_APLL_CTRL_RESET_MASK -#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_APLL_CTRL_RESET_DEFVAL #undef CRF_APB_APLL_CTRL_RESET_SHIFT #undef CRF_APB_APLL_CTRL_RESET_MASK -#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U -/*APLL is locked*/ +/* +* APLL is locked +*/ #undef CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_APLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT 0 -#define CRF_APB_PLL_STATUS_APLL_LOCK_MASK 0x00000001U +#define CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT 0 +#define CRF_APB_PLL_STATUS_APLL_LOCK_MASK 0x00000001U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_APLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_APLL_CTRL_BYPASS_SHIFT #undef CRF_APB_APLL_CTRL_BYPASS_MASK -#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_APLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_APLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_APLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_APLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_APLL_FRAC_CFG_DATA_MASK -#define CRF_APB_APLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_APLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_APLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_DPLL_CFG_RES_DEFVAL #undef CRF_APB_DPLL_CFG_RES_SHIFT #undef CRF_APB_DPLL_CFG_RES_MASK -#define CRF_APB_DPLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_RES_SHIFT 0 -#define CRF_APB_DPLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_DPLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_RES_SHIFT 0 +#define CRF_APB_DPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_DPLL_CFG_CP_DEFVAL #undef CRF_APB_DPLL_CFG_CP_SHIFT #undef CRF_APB_DPLL_CFG_CP_MASK -#define CRF_APB_DPLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_CP_SHIFT 5 -#define CRF_APB_DPLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_DPLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_CP_SHIFT 5 +#define CRF_APB_DPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_DPLL_CFG_LFHF_DEFVAL #undef CRF_APB_DPLL_CFG_LFHF_SHIFT #undef CRF_APB_DPLL_CFG_LFHF_MASK -#define CRF_APB_DPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_DPLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_DPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_DPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_DPLL_CFG_LOCK_CNT_MASK -#define CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_DPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_DPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_DPLL_CFG_LOCK_DLY_MASK -#define CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_DPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_DPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_DPLL_CTRL_PRE_SRC_MASK -#define CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_DPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_DPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_DPLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_DPLL_CTRL_FBDIV_SHIFT #undef CRF_APB_DPLL_CTRL_FBDIV_MASK -#define CRF_APB_DPLL_CTRL_FBDIV_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_DPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_DPLL_CTRL_FBDIV_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_DPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_DPLL_CTRL_DIV2_DEFVAL #undef CRF_APB_DPLL_CTRL_DIV2_SHIFT #undef CRF_APB_DPLL_CTRL_DIV2_MASK -#define CRF_APB_DPLL_CTRL_DIV2_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_DPLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_DPLL_CTRL_DIV2_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_DPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_DPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_DPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_DPLL_CTRL_BYPASS_MASK -#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_DPLL_CTRL_RESET_DEFVAL #undef CRF_APB_DPLL_CTRL_RESET_SHIFT #undef CRF_APB_DPLL_CTRL_RESET_MASK -#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_DPLL_CTRL_RESET_DEFVAL #undef CRF_APB_DPLL_CTRL_RESET_SHIFT #undef CRF_APB_DPLL_CTRL_RESET_MASK -#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U -/*DPLL is locked*/ +/* +* DPLL is locked +*/ #undef CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_DPLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT 1 -#define CRF_APB_PLL_STATUS_DPLL_LOCK_MASK 0x00000002U +#define CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT 1 +#define CRF_APB_PLL_STATUS_DPLL_LOCK_MASK 0x00000002U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_DPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_DPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_DPLL_CTRL_BYPASS_MASK -#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_DPLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_DPLL_FRAC_CFG_DATA_MASK -#define CRF_APB_DPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_DPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_VPLL_CFG_RES_DEFVAL #undef CRF_APB_VPLL_CFG_RES_SHIFT #undef CRF_APB_VPLL_CFG_RES_MASK -#define CRF_APB_VPLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_RES_SHIFT 0 -#define CRF_APB_VPLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_VPLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_RES_SHIFT 0 +#define CRF_APB_VPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_VPLL_CFG_CP_DEFVAL #undef CRF_APB_VPLL_CFG_CP_SHIFT #undef CRF_APB_VPLL_CFG_CP_MASK -#define CRF_APB_VPLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_CP_SHIFT 5 -#define CRF_APB_VPLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_VPLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_CP_SHIFT 5 +#define CRF_APB_VPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_VPLL_CFG_LFHF_DEFVAL #undef CRF_APB_VPLL_CFG_LFHF_SHIFT #undef CRF_APB_VPLL_CFG_LFHF_MASK -#define CRF_APB_VPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_VPLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_VPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_VPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_VPLL_CFG_LOCK_CNT_MASK -#define CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_VPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_VPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_VPLL_CFG_LOCK_DLY_MASK -#define CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_VPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_VPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_VPLL_CTRL_PRE_SRC_MASK -#define CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_VPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_VPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_VPLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_VPLL_CTRL_FBDIV_SHIFT #undef CRF_APB_VPLL_CTRL_FBDIV_MASK -#define CRF_APB_VPLL_CTRL_FBDIV_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_VPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_VPLL_CTRL_FBDIV_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_VPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_VPLL_CTRL_DIV2_DEFVAL #undef CRF_APB_VPLL_CTRL_DIV2_SHIFT #undef CRF_APB_VPLL_CTRL_DIV2_MASK -#define CRF_APB_VPLL_CTRL_DIV2_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_VPLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_VPLL_CTRL_DIV2_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_VPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_VPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_VPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_VPLL_CTRL_BYPASS_MASK -#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_VPLL_CTRL_RESET_DEFVAL #undef CRF_APB_VPLL_CTRL_RESET_SHIFT #undef CRF_APB_VPLL_CTRL_RESET_MASK -#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_VPLL_CTRL_RESET_DEFVAL #undef CRF_APB_VPLL_CTRL_RESET_SHIFT #undef CRF_APB_VPLL_CTRL_RESET_MASK -#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U -/*VPLL is locked*/ +/* +* VPLL is locked +*/ #undef CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_VPLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT 2 -#define CRF_APB_PLL_STATUS_VPLL_LOCK_MASK 0x00000004U +#define CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT 2 +#define CRF_APB_PLL_STATUS_VPLL_LOCK_MASK 0x00000004U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_VPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_VPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_VPLL_CTRL_BYPASS_MASK -#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U - -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_VPLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_VPLL_FRAC_CFG_DATA_MASK -#define CRF_APB_VPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_VPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U #undef CRL_APB_GEM3_REF_CTRL_OFFSET #define CRL_APB_GEM3_REF_CTRL_OFFSET 0XFF5E005C +#undef CRL_APB_GEM_TSU_REF_CTRL_OFFSET +#define CRL_APB_GEM_TSU_REF_CTRL_OFFSET 0XFF5E0100 #undef CRL_APB_USB0_BUS_REF_CTRL_OFFSET #define CRL_APB_USB0_BUS_REF_CTRL_OFFSET 0XFF5E0060 #undef CRL_APB_USB3_DUAL_REF_CTRL_OFFSET @@ -810,12 +897,6 @@ #define CRL_APB_ADMA_REF_CTRL_OFFSET 0XFF5E00B8 #undef CRL_APB_PL0_REF_CTRL_OFFSET #define CRL_APB_PL0_REF_CTRL_OFFSET 0XFF5E00C0 -#undef CRL_APB_PL1_REF_CTRL_OFFSET -#define CRL_APB_PL1_REF_CTRL_OFFSET 0XFF5E00C4 -#undef CRL_APB_PL2_REF_CTRL_OFFSET -#define CRL_APB_PL2_REF_CTRL_OFFSET 0XFF5E00C8 -#undef CRL_APB_PL3_REF_CTRL_OFFSET -#define CRL_APB_PL3_REF_CTRL_OFFSET 0XFF5E00CC #undef CRL_APB_AMS_REF_CTRL_OFFSET #define CRL_APB_AMS_REF_CTRL_OFFSET 0XFF5E0108 #undef CRL_APB_DLL_REF_CTRL_OFFSET @@ -834,8 +915,6 @@ #define CRF_APB_DP_STC_REF_CTRL_OFFSET 0XFD1A007C #undef CRF_APB_ACPU_CTRL_OFFSET #define CRF_APB_ACPU_CTRL_OFFSET 0XFD1A0060 -#undef CRF_APB_DBG_TRACE_CTRL_OFFSET -#define CRF_APB_DBG_TRACE_CTRL_OFFSET 0XFD1A0064 #undef CRF_APB_DBG_FPD_CTRL_OFFSET #define CRF_APB_DBG_FPD_CTRL_OFFSET 0XFD1A0068 #undef CRF_APB_DDR_CTRL_OFFSET @@ -861,1195 +940,1418 @@ #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET #define LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET 0XFF410050 -/*Clock active for the RX channel*/ +/* +* Clock active for the RX channel +*/ #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT 26 -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK 0x04000000U +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT 26 +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK 0x04000000U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_GEM3_REF_CTRL_CLKACT_MASK -#define CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_GEM3_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_GEM3_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* 6 bit divider +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_MASK 0x00003F00U + +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_MASK 0x00000007U + +/* +* 6 bit divider +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_MASK 0x003F0000U + +/* +* Clock active signal. Switch to 0 to disable the clock +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_MASK 0x01000000U + +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_QSPI_REF_CTRL_CLKACT_MASK -#define CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_QSPI_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_QSPI_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO [51] 1: MIO [76]*/ +/* +* MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO + * [51] 1: MIO [76] +*/ #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT 17 -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK 0x00020000U +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT 17 +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK 0x00020000U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_UART0_REF_CTRL_CLKACT_MASK -#define CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_UART0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_UART0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_UART0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_UART0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_UART0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_UART1_REF_CTRL_CLKACT_MASK -#define CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_UART1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_UART1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_UART1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_UART1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_UART1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_I2C0_REF_CTRL_CLKACT_MASK -#define CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_I2C0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_I2C0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_I2C1_REF_CTRL_CLKACT_MASK -#define CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_I2C1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_I2C1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_CAN1_REF_CTRL_CLKACT_MASK -#define CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_CAN1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_CAN1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Turing this off will shut down the OCM, some parts of the APM, and prevent transactions going from the FPD to the LPD and cou - d lead to system hang*/ +/* +* Turing this off will shut down the OCM, some parts of the APM, and preve + * nt transactions going from the FPD to the LPD and could lead to system h + * ang +*/ #undef CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL #undef CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT #undef CRL_APB_CPU_R5_CTRL_CLKACT_MASK -#define CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_CPU_R5_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_CPU_R5_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL #undef CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT #undef CRL_APB_CPU_R5_CTRL_SRCSEL_MASK -#define CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_CPU_R5_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_CPU_R5_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_PCAP_CTRL_CLKACT_DEFVAL #undef CRL_APB_PCAP_CTRL_CLKACT_SHIFT #undef CRL_APB_PCAP_CTRL_CLKACT_MASK -#define CRL_APB_PCAP_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PCAP_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_PCAP_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_PCAP_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT #undef CRL_APB_PCAP_CTRL_DIVISOR0_MASK -#define CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PCAP_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_PCAP_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL #undef CRL_APB_PCAP_CTRL_SRCSEL_SHIFT #undef CRL_APB_PCAP_CTRL_SRCSEL_MASK -#define CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PCAP_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_PCAP_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT #undef CRL_APB_DBG_LPD_CTRL_CLKACT_MASK -#define CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_DBG_LPD_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_DBG_LPD_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_ADMA_REF_CTRL_CLKACT_MASK -#define CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_ADMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_ADMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_PL0_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_PL0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_PL0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_PL0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL1_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL1_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL1_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL1_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL1_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL1_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL2_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL2_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL2_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL2_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL2_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL2_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL3_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL3_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL3_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL3_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL3_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL3_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_AMS_REF_CTRL_SRCSEL_MASK -#define CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_AMS_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_AMS_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_AMS_REF_CTRL_CLKACT_MASK -#define CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_AMS_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_AMS_REF_CTRL_CLKACT_MASK 0x01000000U -/*000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an + * issue, but designers must be aware.) +*/ #undef CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_DLL_REF_CTRL_SRCSEL_MASK -#define CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL 0x00000000 -#define CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_DLL_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL 0x00000000 +#define CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_DLL_REF_CTRL_SRCSEL_MASK 0x00000007U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and - cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may + * only be toggled after 4 cycles of the old clock and 4 cycles of the new + * clock. This is not usually an issue, but designers must be aware.) +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK 0x01000000U -/*000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_SATA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_SATA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_SATA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_SATA_REF_CTRL_CLKACT_MASK -#define CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_SATA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_SATA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cyc - es of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only + * be toggled after 4 cycles of the old clock and 4 cycles of the new cloc + * k. This is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_PCIE_REF_CTRL_CLKACT_MASK -#define CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_PCIE_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_PCIE_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of t - e new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be togg + * led after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT #undef CRF_APB_ACPU_CTRL_DIVISOR0_MASK -#define CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_ACPU_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_ACPU_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL #undef CRF_APB_ACPU_CTRL_SRCSEL_SHIFT #undef CRF_APB_ACPU_CTRL_SRCSEL_MASK -#define CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_ACPU_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_ACPU_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock. For the half speed APU Clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock. For the half spee + * d APU Clock +*/ #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT 25 -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK 0x02000000U +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT 25 +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK 0x02000000U -/*Clock active signal. Switch to 0 to disable the clock. For the full speed ACPUX Clock. This will shut off the high speed cloc - to the entire APU*/ +/* +* Clock active signal. Switch to 0 to disable the clock. For the full spee + * d ACPUX Clock. This will shut off the high speed clock to the entire APU +*/ #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT 24 -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK 0x01000000U +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT 24 +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK 0x01000000U -/*6 bit divider*/ -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT #undef CRF_APB_DBG_FPD_CTRL_CLKACT_MASK -#define CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DBG_FPD_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DBG_FPD_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DDR_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DDR_CTRL_DIVISOR0_MASK -#define CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_DDR_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DDR_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_DDR_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DDR_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - s not usually an issue, but designers must be aware.)*/ +/* +* 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an i + * ssue, but designers must be aware.) +*/ #undef CRF_APB_DDR_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DDR_CTRL_SRCSEL_SHIFT #undef CRF_APB_DDR_CTRL_SRCSEL_MASK -#define CRF_APB_DDR_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_DDR_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DDR_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DDR_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_DDR_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DDR_CTRL_SRCSEL_MASK 0x00000007U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_GPU_REF_CTRL_SRCSEL_MASK -#define CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_GPU_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_GPU_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock, which will stop clock for GPU (and both Pixel Processors).*/ +/* +* Clock active signal. Switch to 0 to disable the clock, which will stop c + * lock for GPU (and both Pixel Processors). +*/ #undef CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_GPU_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_GPU_REF_CTRL_CLKACT_MASK 0x01000000U -/*Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor*/ +/* +* Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor +*/ #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT 25 -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK 0x02000000U +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT 25 +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK 0x02000000U -/*Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor*/ +/* +* Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor +*/ #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT 26 -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK 0x04000000U +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT 26 +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK 0x04000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_GDMA_REF_CTRL_CLKACT_MASK -#define CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_GDMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_GDMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL 0x00000A00 -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL 0x00000A00 +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL 0x00000A00 -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL 0x00000A00 +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK 0x00000007U -/*00" = Select the APB switch clock for the APB interface of TTC0'01" = Select the PLL ref clock for the APB interface of TTC0' - 0" = Select the R5 clock for the APB interface of TTC0*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC0'01" = Se + * lect the PLL ref clock for the APB interface of TTC0'10" = Select the R5 + * clock for the APB interface of TTC0 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT 0 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK 0x00000003U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT 0 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK 0x00000003U -/*00" = Select the APB switch clock for the APB interface of TTC1'01" = Select the PLL ref clock for the APB interface of TTC1' - 0" = Select the R5 clock for the APB interface of TTC1*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC1'01" = Se + * lect the PLL ref clock for the APB interface of TTC1'10" = Select the R5 + * clock for the APB interface of TTC1 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT 2 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK 0x0000000CU +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT 2 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK 0x0000000CU -/*00" = Select the APB switch clock for the APB interface of TTC2'01" = Select the PLL ref clock for the APB interface of TTC2' - 0" = Select the R5 clock for the APB interface of TTC2*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC2'01" = Se + * lect the PLL ref clock for the APB interface of TTC2'10" = Select the R5 + * clock for the APB interface of TTC2 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT 4 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK 0x00000030U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT 4 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK 0x00000030U -/*00" = Select the APB switch clock for the APB interface of TTC3'01" = Select the PLL ref clock for the APB interface of TTC3' - 0" = Select the R5 clock for the APB interface of TTC3*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC3'01" = Se + * lect the PLL ref clock for the APB interface of TTC3'10" = Select the R5 + * clock for the APB interface of TTC3 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT 6 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK 0x000000C0U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT 6 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK 0x000000C0U -/*System watchdog timer clock source selection: 0: Internal APB clock 1: External (PL clock via EMIO or Pinout clock via MIO)*/ +/* +* System watchdog timer clock source selection: 0: Internal APB clock 1: E + * xternal (PL clock via EMIO or Pinout clock via MIO) +*/ #undef FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL #undef FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT #undef FPD_SLCR_WDT_CLK_SEL_SELECT_MASK -#define FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 -#define FPD_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 +#define FPD_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U -/*System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock from PL via EMIO, or from pinout - ia MIO*/ +/* +* System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock from PL via EMIO, or from pinout via MIO +*/ #undef IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL #undef IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT #undef IOU_SLCR_WDT_CLK_SEL_SELECT_MASK -#define IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 -#define IOU_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 +#define IOU_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U -/*System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock pss_ref_clk*/ +/* +* System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock pss_ref_clk +*/ #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT 0 -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT 0 +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK 0x00000001U #undef CRF_APB_RST_DDR_SS_OFFSET #define CRF_APB_RST_DDR_SS_OFFSET 0XFD1A0108 #undef DDRC_MSTR_OFFSET @@ -2066,6 +2368,8 @@ #define DDRC_PWRTMG_OFFSET 0XFD070034 #undef DDRC_RFSHCTL0_OFFSET #define DDRC_RFSHCTL0_OFFSET 0XFD070050 +#undef DDRC_RFSHCTL1_OFFSET +#define DDRC_RFSHCTL1_OFFSET 0XFD070054 #undef DDRC_RFSHCTL3_OFFSET #define DDRC_RFSHCTL3_OFFSET 0XFD070060 #undef DDRC_RFSHTMG_OFFSET @@ -2134,6 +2438,8 @@ #define DDRC_DFILPCFG0_OFFSET 0XFD070198 #undef DDRC_DFILPCFG1_OFFSET #define DDRC_DFILPCFG1_OFFSET 0XFD07019C +#undef DDRC_DFIUPD0_OFFSET +#define DDRC_DFIUPD0_OFFSET 0XFD0701A0 #undef DDRC_DFIUPD1_OFFSET #define DDRC_DFIUPD1_OFFSET 0XFD0701A4 #undef DDRC_DFIMISC_OFFSET @@ -2176,6 +2482,16 @@ #define DDRC_PERFLPR1_OFFSET 0XFD070264 #undef DDRC_PERFWR1_OFFSET #define DDRC_PERFWR1_OFFSET 0XFD07026C +#undef DDRC_DQMAP0_OFFSET +#define DDRC_DQMAP0_OFFSET 0XFD070280 +#undef DDRC_DQMAP1_OFFSET +#define DDRC_DQMAP1_OFFSET 0XFD070284 +#undef DDRC_DQMAP2_OFFSET +#define DDRC_DQMAP2_OFFSET 0XFD070288 +#undef DDRC_DQMAP3_OFFSET +#define DDRC_DQMAP3_OFFSET 0XFD07028C +#undef DDRC_DQMAP4_OFFSET +#define DDRC_DQMAP4_OFFSET 0XFD070290 #undef DDRC_DQMAP5_OFFSET #define DDRC_DQMAP5_OFFSET 0XFD070294 #undef DDRC_DBG0_OFFSET @@ -2282,8 +2598,12 @@ #define DDR_PHY_PTR0_OFFSET 0XFD080040 #undef DDR_PHY_PTR1_OFFSET #define DDR_PHY_PTR1_OFFSET 0XFD080044 +#undef DDR_PHY_PLLCR0_OFFSET +#define DDR_PHY_PLLCR0_OFFSET 0XFD080068 #undef DDR_PHY_DSGCR_OFFSET #define DDR_PHY_DSGCR_OFFSET 0XFD080090 +#undef DDR_PHY_GPR0_OFFSET +#define DDR_PHY_GPR0_OFFSET 0XFD0800C0 #undef DDR_PHY_DCR_OFFSET #define DDR_PHY_DCR_OFFSET 0XFD080100 #undef DDR_PHY_DTPR0_OFFSET @@ -2338,6 +2658,8 @@ #define DDR_PHY_DTCR1_OFFSET 0XFD080204 #undef DDR_PHY_CATR0_OFFSET #define DDR_PHY_CATR0_OFFSET 0XFD080240 +#undef DDR_PHY_DQSDR0_OFFSET +#define DDR_PHY_DQSDR0_OFFSET 0XFD080250 #undef DDR_PHY_BISTLSR_OFFSET #define DDR_PHY_BISTLSR_OFFSET 0XFD080414 #undef DDR_PHY_RIOCR5_OFFSET @@ -2386,10 +2708,6 @@ #define DDR_PHY_DX0GCR5_OFFSET 0XFD080714 #undef DDR_PHY_DX0GCR6_OFFSET #define DDR_PHY_DX0GCR6_OFFSET 0XFD080718 -#undef DDR_PHY_DX0LCDLR2_OFFSET -#define DDR_PHY_DX0LCDLR2_OFFSET 0XFD080788 -#undef DDR_PHY_DX0GTR0_OFFSET -#define DDR_PHY_DX0GTR0_OFFSET 0XFD0807C0 #undef DDR_PHY_DX1GCR0_OFFSET #define DDR_PHY_DX1GCR0_OFFSET 0XFD080800 #undef DDR_PHY_DX1GCR4_OFFSET @@ -2398,10 +2716,6 @@ #define DDR_PHY_DX1GCR5_OFFSET 0XFD080814 #undef DDR_PHY_DX1GCR6_OFFSET #define DDR_PHY_DX1GCR6_OFFSET 0XFD080818 -#undef DDR_PHY_DX1LCDLR2_OFFSET -#define DDR_PHY_DX1LCDLR2_OFFSET 0XFD080888 -#undef DDR_PHY_DX1GTR0_OFFSET -#define DDR_PHY_DX1GTR0_OFFSET 0XFD0808C0 #undef DDR_PHY_DX2GCR0_OFFSET #define DDR_PHY_DX2GCR0_OFFSET 0XFD080900 #undef DDR_PHY_DX2GCR1_OFFSET @@ -2412,10 +2726,6 @@ #define DDR_PHY_DX2GCR5_OFFSET 0XFD080914 #undef DDR_PHY_DX2GCR6_OFFSET #define DDR_PHY_DX2GCR6_OFFSET 0XFD080918 -#undef DDR_PHY_DX2LCDLR2_OFFSET -#define DDR_PHY_DX2LCDLR2_OFFSET 0XFD080988 -#undef DDR_PHY_DX2GTR0_OFFSET -#define DDR_PHY_DX2GTR0_OFFSET 0XFD0809C0 #undef DDR_PHY_DX3GCR0_OFFSET #define DDR_PHY_DX3GCR0_OFFSET 0XFD080A00 #undef DDR_PHY_DX3GCR1_OFFSET @@ -2426,10 +2736,6 @@ #define DDR_PHY_DX3GCR5_OFFSET 0XFD080A14 #undef DDR_PHY_DX3GCR6_OFFSET #define DDR_PHY_DX3GCR6_OFFSET 0XFD080A18 -#undef DDR_PHY_DX3LCDLR2_OFFSET -#define DDR_PHY_DX3LCDLR2_OFFSET 0XFD080A88 -#undef DDR_PHY_DX3GTR0_OFFSET -#define DDR_PHY_DX3GTR0_OFFSET 0XFD080AC0 #undef DDR_PHY_DX4GCR0_OFFSET #define DDR_PHY_DX4GCR0_OFFSET 0XFD080B00 #undef DDR_PHY_DX4GCR1_OFFSET @@ -2440,10 +2746,6 @@ #define DDR_PHY_DX4GCR5_OFFSET 0XFD080B14 #undef DDR_PHY_DX4GCR6_OFFSET #define DDR_PHY_DX4GCR6_OFFSET 0XFD080B18 -#undef DDR_PHY_DX4LCDLR2_OFFSET -#define DDR_PHY_DX4LCDLR2_OFFSET 0XFD080B88 -#undef DDR_PHY_DX4GTR0_OFFSET -#define DDR_PHY_DX4GTR0_OFFSET 0XFD080BC0 #undef DDR_PHY_DX5GCR0_OFFSET #define DDR_PHY_DX5GCR0_OFFSET 0XFD080C00 #undef DDR_PHY_DX5GCR1_OFFSET @@ -2454,10 +2756,6 @@ #define DDR_PHY_DX5GCR5_OFFSET 0XFD080C14 #undef DDR_PHY_DX5GCR6_OFFSET #define DDR_PHY_DX5GCR6_OFFSET 0XFD080C18 -#undef DDR_PHY_DX5LCDLR2_OFFSET -#define DDR_PHY_DX5LCDLR2_OFFSET 0XFD080C88 -#undef DDR_PHY_DX5GTR0_OFFSET -#define DDR_PHY_DX5GTR0_OFFSET 0XFD080CC0 #undef DDR_PHY_DX6GCR0_OFFSET #define DDR_PHY_DX6GCR0_OFFSET 0XFD080D00 #undef DDR_PHY_DX6GCR1_OFFSET @@ -2468,10 +2766,6 @@ #define DDR_PHY_DX6GCR5_OFFSET 0XFD080D14 #undef DDR_PHY_DX6GCR6_OFFSET #define DDR_PHY_DX6GCR6_OFFSET 0XFD080D18 -#undef DDR_PHY_DX6LCDLR2_OFFSET -#define DDR_PHY_DX6LCDLR2_OFFSET 0XFD080D88 -#undef DDR_PHY_DX6GTR0_OFFSET -#define DDR_PHY_DX6GTR0_OFFSET 0XFD080DC0 #undef DDR_PHY_DX7GCR0_OFFSET #define DDR_PHY_DX7GCR0_OFFSET 0XFD080E00 #undef DDR_PHY_DX7GCR1_OFFSET @@ -2482,10 +2776,6 @@ #define DDR_PHY_DX7GCR5_OFFSET 0XFD080E14 #undef DDR_PHY_DX7GCR6_OFFSET #define DDR_PHY_DX7GCR6_OFFSET 0XFD080E18 -#undef DDR_PHY_DX7LCDLR2_OFFSET -#define DDR_PHY_DX7LCDLR2_OFFSET 0XFD080E88 -#undef DDR_PHY_DX7GTR0_OFFSET -#define DDR_PHY_DX7GTR0_OFFSET 0XFD080EC0 #undef DDR_PHY_DX8GCR0_OFFSET #define DDR_PHY_DX8GCR0_OFFSET 0XFD080F00 #undef DDR_PHY_DX8GCR1_OFFSET @@ -2496,12 +2786,10 @@ #define DDR_PHY_DX8GCR5_OFFSET 0XFD080F14 #undef DDR_PHY_DX8GCR6_OFFSET #define DDR_PHY_DX8GCR6_OFFSET 0XFD080F18 -#undef DDR_PHY_DX8LCDLR2_OFFSET -#define DDR_PHY_DX8LCDLR2_OFFSET 0XFD080F88 -#undef DDR_PHY_DX8GTR0_OFFSET -#define DDR_PHY_DX8GTR0_OFFSET 0XFD080FC0 #undef DDR_PHY_DX8SL0OSC_OFFSET #define DDR_PHY_DX8SL0OSC_OFFSET 0XFD081400 +#undef DDR_PHY_DX8SL0PLLCR0_OFFSET +#define DDR_PHY_DX8SL0PLLCR0_OFFSET 0XFD081404 #undef DDR_PHY_DX8SL0DQSCTL_OFFSET #define DDR_PHY_DX8SL0DQSCTL_OFFSET 0XFD08141C #undef DDR_PHY_DX8SL0DXCTL2_OFFSET @@ -2510,6 +2798,8 @@ #define DDR_PHY_DX8SL0IOCR_OFFSET 0XFD081430 #undef DDR_PHY_DX8SL1OSC_OFFSET #define DDR_PHY_DX8SL1OSC_OFFSET 0XFD081440 +#undef DDR_PHY_DX8SL1PLLCR0_OFFSET +#define DDR_PHY_DX8SL1PLLCR0_OFFSET 0XFD081444 #undef DDR_PHY_DX8SL1DQSCTL_OFFSET #define DDR_PHY_DX8SL1DQSCTL_OFFSET 0XFD08145C #undef DDR_PHY_DX8SL1DXCTL2_OFFSET @@ -2518,6 +2808,8 @@ #define DDR_PHY_DX8SL1IOCR_OFFSET 0XFD081470 #undef DDR_PHY_DX8SL2OSC_OFFSET #define DDR_PHY_DX8SL2OSC_OFFSET 0XFD081480 +#undef DDR_PHY_DX8SL2PLLCR0_OFFSET +#define DDR_PHY_DX8SL2PLLCR0_OFFSET 0XFD081484 #undef DDR_PHY_DX8SL2DQSCTL_OFFSET #define DDR_PHY_DX8SL2DQSCTL_OFFSET 0XFD08149C #undef DDR_PHY_DX8SL2DXCTL2_OFFSET @@ -2526,6 +2818,8 @@ #define DDR_PHY_DX8SL2IOCR_OFFSET 0XFD0814B0 #undef DDR_PHY_DX8SL3OSC_OFFSET #define DDR_PHY_DX8SL3OSC_OFFSET 0XFD0814C0 +#undef DDR_PHY_DX8SL3PLLCR0_OFFSET +#define DDR_PHY_DX8SL3PLLCR0_OFFSET 0XFD0814C4 #undef DDR_PHY_DX8SL3DQSCTL_OFFSET #define DDR_PHY_DX8SL3DQSCTL_OFFSET 0XFD0814DC #undef DDR_PHY_DX8SL3DXCTL2_OFFSET @@ -2534,14391 +2828,18570 @@ #define DDR_PHY_DX8SL3IOCR_OFFSET 0XFD0814F0 #undef DDR_PHY_DX8SL4OSC_OFFSET #define DDR_PHY_DX8SL4OSC_OFFSET 0XFD081500 +#undef DDR_PHY_DX8SL4PLLCR0_OFFSET +#define DDR_PHY_DX8SL4PLLCR0_OFFSET 0XFD081504 #undef DDR_PHY_DX8SL4DQSCTL_OFFSET #define DDR_PHY_DX8SL4DQSCTL_OFFSET 0XFD08151C #undef DDR_PHY_DX8SL4DXCTL2_OFFSET #define DDR_PHY_DX8SL4DXCTL2_OFFSET 0XFD08152C #undef DDR_PHY_DX8SL4IOCR_OFFSET #define DDR_PHY_DX8SL4IOCR_OFFSET 0XFD081530 +#undef DDR_PHY_DX8SLBPLLCR0_OFFSET +#define DDR_PHY_DX8SLBPLLCR0_OFFSET 0XFD0817C4 #undef DDR_PHY_DX8SLBDQSCTL_OFFSET #define DDR_PHY_DX8SLBDQSCTL_OFFSET 0XFD0817DC -#undef DDR_PHY_PIR_OFFSET -#define DDR_PHY_PIR_OFFSET 0XFD080004 -/*DDR block level reset inside of the DDR Sub System*/ +/* +* DDR block level reset inside of the DDR Sub System +*/ #undef CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL #undef CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT #undef CRF_APB_RST_DDR_SS_DDR_RESET_MASK -#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F -#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 -#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U +#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 +#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U -/*Indicates the configuration of the device used in the system. - 00 - x4 device - 01 - x8 device - 10 - x16 device - 11 - x32 - evice*/ +/* +* Indicates the configuration of the device used in the system. - 00 - x4 + * device - 01 - x8 device - 10 - x16 device - 11 - x32 device +*/ #undef DDRC_MSTR_DEVICE_CONFIG_DEFVAL #undef DDRC_MSTR_DEVICE_CONFIG_SHIFT #undef DDRC_MSTR_DEVICE_CONFIG_MASK -#define DDRC_MSTR_DEVICE_CONFIG_DEFVAL 0x03040001 -#define DDRC_MSTR_DEVICE_CONFIG_SHIFT 30 -#define DDRC_MSTR_DEVICE_CONFIG_MASK 0xC0000000U +#define DDRC_MSTR_DEVICE_CONFIG_DEFVAL 0x03040001 +#define DDRC_MSTR_DEVICE_CONFIG_SHIFT 30 +#define DDRC_MSTR_DEVICE_CONFIG_MASK 0xC0000000U -/*Choose which registers are used. - 0 - Original registers - 1 - Shadow registers*/ +/* +* Choose which registers are used. - 0 - Original registers - 1 - Shadow r + * egisters +*/ #undef DDRC_MSTR_FREQUENCY_MODE_DEFVAL #undef DDRC_MSTR_FREQUENCY_MODE_SHIFT #undef DDRC_MSTR_FREQUENCY_MODE_MASK -#define DDRC_MSTR_FREQUENCY_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_FREQUENCY_MODE_SHIFT 29 -#define DDRC_MSTR_FREQUENCY_MODE_MASK 0x20000000U +#define DDRC_MSTR_FREQUENCY_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_FREQUENCY_MODE_SHIFT 29 +#define DDRC_MSTR_FREQUENCY_MODE_MASK 0x20000000U -/*Only present for multi-rank configurations. Each bit represents one rank. For two-rank configurations, only bits[25:24] are p - esent. - 1 - populated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks following combinations are legal: - 01 - - ne rank - 11 - Two ranks - Others - Reserved. For 4 ranks following combinations are legal: - 0001 - One rank - 0011 - Two ra - ks - 1111 - Four ranks*/ +/* +* Only present for multi-rank configurations. Each bit represents one rank + * . For two-rank configurations, only bits[25:24] are present. - 1 - popul + * ated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks follow + * ing combinations are legal: - 01 - One rank - 11 - Two ranks - Others - + * Reserved. For 4 ranks following combinations are legal: - 0001 - One ran + * k - 0011 - Two ranks - 1111 - Four ranks +*/ #undef DDRC_MSTR_ACTIVE_RANKS_DEFVAL #undef DDRC_MSTR_ACTIVE_RANKS_SHIFT #undef DDRC_MSTR_ACTIVE_RANKS_MASK -#define DDRC_MSTR_ACTIVE_RANKS_DEFVAL 0x03040001 -#define DDRC_MSTR_ACTIVE_RANKS_SHIFT 24 -#define DDRC_MSTR_ACTIVE_RANKS_MASK 0x03000000U +#define DDRC_MSTR_ACTIVE_RANKS_DEFVAL 0x03040001 +#define DDRC_MSTR_ACTIVE_RANKS_SHIFT 24 +#define DDRC_MSTR_ACTIVE_RANKS_MASK 0x03000000U -/*SDRAM burst length used: - 0001 - Burst length of 2 (only supported for mDDR) - 0010 - Burst length of 4 - 0100 - Burst lengt - of 8 - 1000 - Burst length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other values are reserved. This controls - he burst size used to access the SDRAM. This must match the burst length mode register setting in the SDRAM. (For BC4/8 on-th - -fly mode of DDR3 and DDR4, set this field to 0x0100) Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGT - is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1*/ +/* +* SDRAM burst length used: - 0001 - Burst length of 2 (only supported for + * mDDR) - 0010 - Burst length of 4 - 0100 - Burst length of 8 - 1000 - Bur + * st length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other + * values are reserved. This controls the burst size used to access the SDR + * AM. This must match the burst length mode register setting in the SDRAM. + * (For BC4/8 on-the-fly mode of DDR3 and DDR4, set this field to 0x0100) + * Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGTH + * is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 +*/ #undef DDRC_MSTR_BURST_RDWR_DEFVAL #undef DDRC_MSTR_BURST_RDWR_SHIFT #undef DDRC_MSTR_BURST_RDWR_MASK -#define DDRC_MSTR_BURST_RDWR_DEFVAL 0x03040001 -#define DDRC_MSTR_BURST_RDWR_SHIFT 16 -#define DDRC_MSTR_BURST_RDWR_MASK 0x000F0000U +#define DDRC_MSTR_BURST_RDWR_DEFVAL 0x03040001 +#define DDRC_MSTR_BURST_RDWR_SHIFT 16 +#define DDRC_MSTR_BURST_RDWR_MASK 0x000F0000U -/*Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low frequency operation. Set to 0 to put uMCTL2 and DRAM - n DLL-on mode for normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d - l_off_mode is not supported, and this bit must be set to '0'.*/ +/* +* Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low + * frequency operation. Set to 0 to put uMCTL2 and DRAM in DLL-on mode for + * normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARC + * TL1.crc_parity_retry_enable = 1), dll_off_mode is not supported, and thi + * s bit must be set to '0'. +*/ #undef DDRC_MSTR_DLL_OFF_MODE_DEFVAL #undef DDRC_MSTR_DLL_OFF_MODE_SHIFT #undef DDRC_MSTR_DLL_OFF_MODE_MASK -#define DDRC_MSTR_DLL_OFF_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_DLL_OFF_MODE_SHIFT 15 -#define DDRC_MSTR_DLL_OFF_MODE_MASK 0x00008000U +#define DDRC_MSTR_DLL_OFF_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_DLL_OFF_MODE_SHIFT 15 +#define DDRC_MSTR_DLL_OFF_MODE_MASK 0x00008000U -/*Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full DQ bus width to SDRAM - 01 - Half DQ bus width to SD - AM - 10 - Quarter DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is only supported when the SDRAM bus w - dth is a multiple of 16, and quarter bus width mode is only supported when the SDRAM bus width is a multiple of 32 and the co - figuration parameter MEMC_QBUS_SUPPORT is set. Bus width refers to DQ bus width (excluding any ECC width).*/ +/* +* Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full + * DQ bus width to SDRAM - 01 - Half DQ bus width to SDRAM - 10 - Quarter + * DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is + * only supported when the SDRAM bus width is a multiple of 16, and quarter + * bus width mode is only supported when the SDRAM bus width is a multiple + * of 32 and the configuration parameter MEMC_QBUS_SUPPORT is set. Bus wid + * th refers to DQ bus width (excluding any ECC width). +*/ #undef DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL #undef DDRC_MSTR_DATA_BUS_WIDTH_SHIFT #undef DDRC_MSTR_DATA_BUS_WIDTH_MASK -#define DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL 0x03040001 -#define DDRC_MSTR_DATA_BUS_WIDTH_SHIFT 12 -#define DDRC_MSTR_DATA_BUS_WIDTH_MASK 0x00003000U +#define DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL 0x03040001 +#define DDRC_MSTR_DATA_BUS_WIDTH_SHIFT 12 +#define DDRC_MSTR_DATA_BUS_WIDTH_MASK 0x00003000U -/*1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the DRAM in normal mode (1N). This register can be changed - only when the Controller is in self-refresh mode. This signal must be set the same value as MR3 bit A3. Note: Geardown mode - s not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set*/ +/* +* 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the D + * RAM in normal mode (1N). This register can be changed, only when the Con + * troller is in self-refresh mode. This signal must be set the same value + * as MR3 bit A3. Note: Geardown mode is not supported if the configuration + * parameter MEMC_CMD_RTN2IDLE is set +*/ #undef DDRC_MSTR_GEARDOWN_MODE_DEFVAL #undef DDRC_MSTR_GEARDOWN_MODE_SHIFT #undef DDRC_MSTR_GEARDOWN_MODE_MASK -#define DDRC_MSTR_GEARDOWN_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_GEARDOWN_MODE_SHIFT 11 -#define DDRC_MSTR_GEARDOWN_MODE_MASK 0x00000800U +#define DDRC_MSTR_GEARDOWN_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_GEARDOWN_MODE_SHIFT 11 +#define DDRC_MSTR_GEARDOWN_MODE_MASK 0x00000800U -/*If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timing, all command signals (except chip select) are held - or 2 clocks on the SDRAM bus. Chip select is asserted on the second cycle of the command Note: 2T timing is not supported in - PDDR2/LPDDR3/LPDDR4 mode Note: 2T timing is not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set Note: 2T ti - ing is not supported in DDR4 geardown mode.*/ +/* +* If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timin + * g, all command signals (except chip select) are held for 2 clocks on the + * SDRAM bus. Chip select is asserted on the second cycle of the command N + * ote: 2T timing is not supported in LPDDR2/LPDDR3/LPDDR4 mode Note: 2T ti + * ming is not supported if the configuration parameter MEMC_CMD_RTN2IDLE i + * s set Note: 2T timing is not supported in DDR4 geardown mode. +*/ #undef DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL #undef DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT #undef DDRC_MSTR_EN_2T_TIMING_MODE_MASK -#define DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT 10 -#define DDRC_MSTR_EN_2T_TIMING_MODE_MASK 0x00000400U +#define DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT 10 +#define DDRC_MSTR_EN_2T_TIMING_MODE_MASK 0x00000400U -/*When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exercised only in HIF configurations (UMCTL2_INCL_ARB not s - t) and if in full bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exercised only if Partial Writes enable - (UMCTL2_PARTIAL_WR=1) and if CRC is disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabled (CRCPARCTL1.cr - _parity_retry_enable = 1), burst chop is not supported, and this bit must be set to '0'*/ +/* +* When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exerci + * sed only in HIF configurations (UMCTL2_INCL_ARB not set) and if in full + * bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exer + * cised only if Partial Writes enabled (UMCTL2_PARTIAL_WR=1) and if CRC is + * disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabl + * ed (CRCPARCTL1.crc_parity_retry_enable = 1), burst chop is not supported + * , and this bit must be set to '0' +*/ #undef DDRC_MSTR_BURSTCHOP_DEFVAL #undef DDRC_MSTR_BURSTCHOP_SHIFT #undef DDRC_MSTR_BURSTCHOP_MASK -#define DDRC_MSTR_BURSTCHOP_DEFVAL 0x03040001 -#define DDRC_MSTR_BURSTCHOP_SHIFT 9 -#define DDRC_MSTR_BURSTCHOP_MASK 0x00000200U +#define DDRC_MSTR_BURSTCHOP_DEFVAL 0x03040001 +#define DDRC_MSTR_BURSTCHOP_SHIFT 9 +#define DDRC_MSTR_BURSTCHOP_MASK 0x00000200U -/*Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 device in use Present only in designs configured to su - port LPDDR4.*/ +/* +* Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 d + * evice in use Present only in designs configured to support LPDDR4. +*/ #undef DDRC_MSTR_LPDDR4_DEFVAL #undef DDRC_MSTR_LPDDR4_SHIFT #undef DDRC_MSTR_LPDDR4_MASK -#define DDRC_MSTR_LPDDR4_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR4_SHIFT 5 -#define DDRC_MSTR_LPDDR4_MASK 0x00000020U +#define DDRC_MSTR_LPDDR4_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR4_SHIFT 5 +#define DDRC_MSTR_LPDDR4_MASK 0x00000020U -/*Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device in use Present only in designs configured to support - DR4.*/ +/* +* Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device + * in use Present only in designs configured to support DDR4. +*/ #undef DDRC_MSTR_DDR4_DEFVAL #undef DDRC_MSTR_DDR4_SHIFT #undef DDRC_MSTR_DDR4_MASK -#define DDRC_MSTR_DDR4_DEFVAL 0x03040001 -#define DDRC_MSTR_DDR4_SHIFT 4 -#define DDRC_MSTR_DDR4_MASK 0x00000010U +#define DDRC_MSTR_DDR4_DEFVAL 0x03040001 +#define DDRC_MSTR_DDR4_SHIFT 4 +#define DDRC_MSTR_DDR4_MASK 0x00000010U -/*Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 device in use Present only in designs configured to su - port LPDDR3.*/ +/* +* Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 d + * evice in use Present only in designs configured to support LPDDR3. +*/ #undef DDRC_MSTR_LPDDR3_DEFVAL #undef DDRC_MSTR_LPDDR3_SHIFT #undef DDRC_MSTR_LPDDR3_MASK -#define DDRC_MSTR_LPDDR3_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR3_SHIFT 3 -#define DDRC_MSTR_LPDDR3_MASK 0x00000008U +#define DDRC_MSTR_LPDDR3_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR3_SHIFT 3 +#define DDRC_MSTR_LPDDR3_MASK 0x00000008U -/*Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 device in use Present only in designs configured to su - port LPDDR2.*/ +/* +* Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 d + * evice in use Present only in designs configured to support LPDDR2. +*/ #undef DDRC_MSTR_LPDDR2_DEFVAL #undef DDRC_MSTR_LPDDR2_SHIFT #undef DDRC_MSTR_LPDDR2_MASK -#define DDRC_MSTR_LPDDR2_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR2_SHIFT 2 -#define DDRC_MSTR_LPDDR2_MASK 0x00000004U +#define DDRC_MSTR_LPDDR2_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR2_SHIFT 2 +#define DDRC_MSTR_LPDDR2_MASK 0x00000004U -/*Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM device in use Only present in designs that support DDR3 - */ +/* +* Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM de + * vice in use Only present in designs that support DDR3. +*/ #undef DDRC_MSTR_DDR3_DEFVAL #undef DDRC_MSTR_DDR3_SHIFT #undef DDRC_MSTR_DDR3_MASK -#define DDRC_MSTR_DDR3_DEFVAL 0x03040001 -#define DDRC_MSTR_DDR3_SHIFT 0 -#define DDRC_MSTR_DDR3_MASK 0x00000001U +#define DDRC_MSTR_DDR3_DEFVAL 0x03040001 +#define DDRC_MSTR_DDR3_SHIFT 0 +#define DDRC_MSTR_DDR3_MASK 0x00000001U -/*Setting this register bit to 1 triggers a mode register read or write operation. When the MR operation is complete, the uMCTL - automatically clears this bit. The other register fields of this register must be written in a separate APB transaction, bef - re setting this mr_wr bit. It is recommended NOT to set this signal if in Init, Deep power-down or MPSM operating modes.*/ +/* +* Setting this register bit to 1 triggers a mode register read or write op + * eration. When the MR operation is complete, the uMCTL2 automatically cle + * ars this bit. The other register fields of this register must be written + * in a separate APB transaction, before setting this mr_wr bit. It is rec + * ommended NOT to set this signal if in Init, Deep power-down or MPSM oper + * ating modes. +*/ #undef DDRC_MRCTRL0_MR_WR_DEFVAL #undef DDRC_MRCTRL0_MR_WR_SHIFT #undef DDRC_MRCTRL0_MR_WR_MASK -#define DDRC_MRCTRL0_MR_WR_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_WR_SHIFT 31 -#define DDRC_MRCTRL0_MR_WR_MASK 0x80000000U +#define DDRC_MRCTRL0_MR_WR_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_WR_SHIFT 31 +#define DDRC_MRCTRL0_MR_WR_MASK 0x80000000U -/*Address of the mode register that is to be written to. - 0000 - MR0 - 0001 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 010 - - MR5 - 0110 - MR6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data for mode register addressing in LPD - R2/LPDDR3/LPDDR4) This signal is also used for writing to control words of RDIMMs. In that case, it corresponds to the bank a - dress bits sent to the RDIMM In case of DDR4, the bit[3:2] corresponds to the bank group bits. Therefore, the bit[3] as well - s the bit[2:0] must be set to an appropriate value which is considered both the Address Mirroring of UDIMMs/RDIMMs and the Ou - put Inversion of RDIMMs.*/ +/* +* Address of the mode register that is to be written to. - 0000 - MR0 - 00 + * 01 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 0101 - MR5 - 0110 - MR + * 6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data + * for mode register addressing in LPDDR2/LPDDR3/LPDDR4) This signal is als + * o used for writing to control words of RDIMMs. In that case, it correspo + * nds to the bank address bits sent to the RDIMM In case of DDR4, the bit[ + * 3:2] corresponds to the bank group bits. Therefore, the bit[3] as well a + * s the bit[2:0] must be set to an appropriate value which is considered b + * oth the Address Mirroring of UDIMMs/RDIMMs and the Output Inversion of R + * DIMMs. +*/ #undef DDRC_MRCTRL0_MR_ADDR_DEFVAL #undef DDRC_MRCTRL0_MR_ADDR_SHIFT #undef DDRC_MRCTRL0_MR_ADDR_MASK -#define DDRC_MRCTRL0_MR_ADDR_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_ADDR_SHIFT 12 -#define DDRC_MRCTRL0_MR_ADDR_MASK 0x0000F000U +#define DDRC_MRCTRL0_MR_ADDR_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_ADDR_SHIFT 12 +#define DDRC_MRCTRL0_MR_ADDR_MASK 0x0000F000U -/*Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desired to access all ranks, so all bits should be set to 1 - However, for multi-rank UDIMMs/RDIMMs which implement address mirroring, it may be necessary to access ranks individually. E - amples (assume uMCTL2 is configured for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x5 - select ranks - and 2 - 0xA - select ranks 1 and 3 - 0xF - select ranks 0, 1, 2 and 3*/ +/* +* Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desire + * d to access all ranks, so all bits should be set to 1. However, for mult + * i-rank UDIMMs/RDIMMs which implement address mirroring, it may be necess + * ary to access ranks individually. Examples (assume uMCTL2 is configured + * for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x + * 5 - select ranks 0 and 2 - 0xA - select ranks 1 and 3 - 0xF - select ran + * ks 0, 1, 2 and 3 +*/ #undef DDRC_MRCTRL0_MR_RANK_DEFVAL #undef DDRC_MRCTRL0_MR_RANK_SHIFT #undef DDRC_MRCTRL0_MR_RANK_MASK -#define DDRC_MRCTRL0_MR_RANK_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_RANK_SHIFT 4 -#define DDRC_MRCTRL0_MR_RANK_MASK 0x00000030U +#define DDRC_MRCTRL0_MR_RANK_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_RANK_SHIFT 4 +#define DDRC_MRCTRL0_MR_RANK_MASK 0x00000030U -/*Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 before automatic SDRAM initialization routine or not. - or DDR4, this bit can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM initialization. For LPDDR4, this bit ca - be used to program additional mode registers before automatic SDRAM initialization if necessary. Note: This must be cleared - o 0 after completing Software operation. Otherwise, SDRAM initialization routine will not re-start. - 0 - Software interventi - n is not allowed - 1 - Software intervention is allowed*/ +/* +* Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 b + * efore automatic SDRAM initialization routine or not. For DDR4, this bit + * can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM init + * ialization. For LPDDR4, this bit can be used to program additional mode + * registers before automatic SDRAM initialization if necessary. Note: This + * must be cleared to 0 after completing Software operation. Otherwise, SD + * RAM initialization routine will not re-start. - 0 - Software interventio + * n is not allowed - 1 - Software intervention is allowed +*/ #undef DDRC_MRCTRL0_SW_INIT_INT_DEFVAL #undef DDRC_MRCTRL0_SW_INIT_INT_SHIFT #undef DDRC_MRCTRL0_SW_INIT_INT_MASK -#define DDRC_MRCTRL0_SW_INIT_INT_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_SW_INIT_INT_SHIFT 3 -#define DDRC_MRCTRL0_SW_INIT_INT_MASK 0x00000008U +#define DDRC_MRCTRL0_SW_INIT_INT_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_SW_INIT_INT_SHIFT 3 +#define DDRC_MRCTRL0_SW_INIT_INT_MASK 0x00000008U -/*Indicates whether the mode register operation is MRS in PDA mode or not - 0 - MRS - 1 - MRS in Per DRAM Addressability mode*/ +/* +* Indicates whether the mode register operation is MRS in PDA mode or not + * - 0 - MRS - 1 - MRS in Per DRAM Addressability mode +*/ #undef DDRC_MRCTRL0_PDA_EN_DEFVAL #undef DDRC_MRCTRL0_PDA_EN_SHIFT #undef DDRC_MRCTRL0_PDA_EN_MASK -#define DDRC_MRCTRL0_PDA_EN_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_PDA_EN_SHIFT 2 -#define DDRC_MRCTRL0_PDA_EN_MASK 0x00000004U +#define DDRC_MRCTRL0_PDA_EN_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_PDA_EN_SHIFT 2 +#define DDRC_MRCTRL0_PDA_EN_MASK 0x00000004U -/*Indicates whether the mode register operation is MRS or WR/RD for MPR (only supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR*/ +/* +* Indicates whether the mode register operation is MRS or WR/RD for MPR (o + * nly supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR +*/ #undef DDRC_MRCTRL0_MPR_EN_DEFVAL #undef DDRC_MRCTRL0_MPR_EN_SHIFT #undef DDRC_MRCTRL0_MPR_EN_MASK -#define DDRC_MRCTRL0_MPR_EN_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MPR_EN_SHIFT 1 -#define DDRC_MRCTRL0_MPR_EN_MASK 0x00000002U +#define DDRC_MRCTRL0_MPR_EN_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MPR_EN_SHIFT 1 +#define DDRC_MRCTRL0_MPR_EN_MASK 0x00000002U -/*Indicates whether the mode register operation is read or write. Only used for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Re - d*/ +/* +* Indicates whether the mode register operation is read or write. Only use + * d for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Read +*/ #undef DDRC_MRCTRL0_MR_TYPE_DEFVAL #undef DDRC_MRCTRL0_MR_TYPE_SHIFT #undef DDRC_MRCTRL0_MR_TYPE_MASK -#define DDRC_MRCTRL0_MR_TYPE_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_TYPE_SHIFT 0 -#define DDRC_MRCTRL0_MR_TYPE_MASK 0x00000001U +#define DDRC_MRCTRL0_MR_TYPE_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_TYPE_SHIFT 0 +#define DDRC_MRCTRL0_MR_TYPE_MASK 0x00000001U -/*Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating uses +2. - 2 - Derating uses +3. - 3 - Derating uses +4 - Present only in designs configured to support LPDDR4. The required number of cycles for derating can be determined by dividi - g 3.75ns by the core_ddrc_core_clk period, and rounding up the next integer.*/ +/* +* Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating us + * es +2. - 2 - Derating uses +3. - 3 - Derating uses +4. Present only in d + * esigns configured to support LPDDR4. The required number of cycles for d + * erating can be determined by dividing 3.75ns by the core_ddrc_core_clk p + * eriod, and rounding up the next integer. +*/ #undef DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL #undef DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT #undef DDRC_DERATEEN_RC_DERATE_VALUE_MASK -#define DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT 8 -#define DDRC_DERATEEN_RC_DERATE_VALUE_MASK 0x00000300U +#define DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT 8 +#define DDRC_DERATEEN_RC_DERATE_VALUE_MASK 0x00000300U -/*Derate byte Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 Indicates which byte of the MRR data is used f - r derating. The maximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH.*/ +/* +* Derate byte Present only in designs configured to support LPDDR2/LPDDR3/ + * LPDDR4 Indicates which byte of the MRR data is used for derating. The ma + * ximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. +*/ #undef DDRC_DERATEEN_DERATE_BYTE_DEFVAL #undef DDRC_DERATEEN_DERATE_BYTE_SHIFT #undef DDRC_DERATEEN_DERATE_BYTE_MASK -#define DDRC_DERATEEN_DERATE_BYTE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_BYTE_SHIFT 4 -#define DDRC_DERATEEN_DERATE_BYTE_MASK 0x000000F0U +#define DDRC_DERATEEN_DERATE_BYTE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_BYTE_SHIFT 4 +#define DDRC_DERATEEN_DERATE_BYTE_MASK 0x000000F0U -/*Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present only in designs configured to support LPDDR2/LPDDR3/LPDD - 4 Set to 0 for all LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ddrc_core_clk period. Can be 0 or 1 - for LPDDR3/LPDDR4, depending if +1.875 ns is less than a core_ddrc_core_clk period or not.*/ +/* +* Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present onl + * y in designs configured to support LPDDR2/LPDDR3/LPDDR4 Set to 0 for all + * LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ + * ddrc_core_clk period. Can be 0 or 1 for LPDDR3/LPDDR4, depending if +1.8 + * 75 ns is less than a core_ddrc_core_clk period or not. +*/ #undef DDRC_DERATEEN_DERATE_VALUE_DEFVAL #undef DDRC_DERATEEN_DERATE_VALUE_SHIFT #undef DDRC_DERATEEN_DERATE_VALUE_MASK -#define DDRC_DERATEEN_DERATE_VALUE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_VALUE_SHIFT 1 -#define DDRC_DERATEEN_DERATE_VALUE_MASK 0x00000002U +#define DDRC_DERATEEN_DERATE_VALUE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_VALUE_SHIFT 1 +#define DDRC_DERATEEN_DERATE_VALUE_MASK 0x00000002U -/*Enables derating - 0 - Timing parameter derating is disabled - 1 - Timing parameter derating is enabled using MR4 read value. - Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set to '0' for non-LPDDR2/LPDDR3/LPDDR4 - mode.*/ +/* +* Enables derating - 0 - Timing parameter derating is disabled - 1 - Timin + * g parameter derating is enabled using MR4 read value. Present only in de + * signs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set + * to '0' for non-LPDDR2/LPDDR3/LPDDR4 mode. +*/ #undef DDRC_DERATEEN_DERATE_ENABLE_DEFVAL #undef DDRC_DERATEEN_DERATE_ENABLE_SHIFT #undef DDRC_DERATEEN_DERATE_ENABLE_MASK -#define DDRC_DERATEEN_DERATE_ENABLE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_ENABLE_SHIFT 0 -#define DDRC_DERATEEN_DERATE_ENABLE_MASK 0x00000001U +#define DDRC_DERATEEN_DERATE_ENABLE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_ENABLE_SHIFT 0 +#define DDRC_DERATEEN_DERATE_ENABLE_MASK 0x00000001U -/*Interval between two MR4 reads, used to derate the timing parameters. Present only in designs configured to support LPDDR2/LP - DR3/LPDDR4. This register must not be set to zero*/ +/* +* Interval between two MR4 reads, used to derate the timing parameters. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4. This r + * egister must not be set to zero +*/ #undef DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL #undef DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT #undef DDRC_DERATEINT_MR4_READ_INTERVAL_MASK -#define DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL -#define DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT 0 -#define DDRC_DERATEINT_MR4_READ_INTERVAL_MASK 0xFFFFFFFFU +#define DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL +#define DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT 0 +#define DDRC_DERATEINT_MR4_READ_INTERVAL_MASK 0xFFFFFFFFU -/*Self refresh state is an intermediate state to enter to Self refresh power down state or exit Self refresh power down state f - r LPDDR4. This register controls transition from the Self refresh state. - 1 - Prohibit transition from Self refresh state - - - Allow transition from Self refresh state*/ +/* +* Self refresh state is an intermediate state to enter to Self refresh pow + * er down state or exit Self refresh power down state for LPDDR4. This reg + * ister controls transition from the Self refresh state. - 1 - Prohibit tr + * ansition from Self refresh state - 0 - Allow transition from Self refres + * h state +*/ #undef DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL #undef DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT #undef DDRC_PWRCTL_STAY_IN_SELFREF_MASK -#define DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL 0x00000000 -#define DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT 6 -#define DDRC_PWRCTL_STAY_IN_SELFREF_MASK 0x00000040U +#define DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL 0x00000000 +#define DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT 6 +#define DDRC_PWRCTL_STAY_IN_SELFREF_MASK 0x00000040U -/*A value of 1 to this register causes system to move to Self Refresh state immediately, as long as it is not in INIT or DPD/MP - M operating_mode. This is referred to as Software Entry/Exit to Self Refresh. - 1 - Software Entry to Self Refresh - 0 - Soft - are Exit from Self Refresh*/ +/* +* A value of 1 to this register causes system to move to Self Refresh stat + * e immediately, as long as it is not in INIT or DPD/MPSM operating_mode. + * This is referred to as Software Entry/Exit to Self Refresh. - 1 - Softwa + * re Entry to Self Refresh - 0 - Software Exit from Self Refresh +*/ #undef DDRC_PWRCTL_SELFREF_SW_DEFVAL #undef DDRC_PWRCTL_SELFREF_SW_SHIFT #undef DDRC_PWRCTL_SELFREF_SW_MASK -#define DDRC_PWRCTL_SELFREF_SW_DEFVAL 0x00000000 -#define DDRC_PWRCTL_SELFREF_SW_SHIFT 5 -#define DDRC_PWRCTL_SELFREF_SW_MASK 0x00000020U +#define DDRC_PWRCTL_SELFREF_SW_DEFVAL 0x00000000 +#define DDRC_PWRCTL_SELFREF_SW_SHIFT 5 +#define DDRC_PWRCTL_SELFREF_SW_MASK 0x00000020U -/*When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode when the transaction store is empty. This register m - st be reset to '0' to bring uMCTL2 out of maximum power saving mode. Present only in designs configured to support DDR4. For - on-DDR4, this register should not be set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if the PHY parameter - DWC_AC_CS_USE is disabled, as the MPSM exit sequence requires the chip-select signal to toggle. FOR PERFORMANCE ONLY.*/ +/* +* When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode + * when the transaction store is empty. This register must be reset to '0' + * to bring uMCTL2 out of maximum power saving mode. Present only in desig + * ns configured to support DDR4. For non-DDR4, this register should not be + * set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if + * the PHY parameter DWC_AC_CS_USE is disabled, as the MPSM exit sequence r + * equires the chip-select signal to toggle. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRCTL_MPSM_EN_DEFVAL #undef DDRC_PWRCTL_MPSM_EN_SHIFT #undef DDRC_PWRCTL_MPSM_EN_MASK -#define DDRC_PWRCTL_MPSM_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_MPSM_EN_SHIFT 4 -#define DDRC_PWRCTL_MPSM_EN_MASK 0x00000010U +#define DDRC_PWRCTL_MPSM_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_MPSM_EN_SHIFT 4 +#define DDRC_PWRCTL_MPSM_EN_MASK 0x00000010U -/*Enable the assertion of dfi_dram_clk_disable whenever a clock is not required by the SDRAM. If set to 0, dfi_dram_clk_disable - is never asserted. Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only be asserted in Self Refresh. In DD - 4, can be asserted in following: - in Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, can be asserted in - ollowing: - in Self Refresh - in Power Down - in Deep Power Down - during Normal operation (Clock Stop) In LPDDR4, can be ass - rted in following: - in Self Refresh Power Down - in Power Down - during Normal operation (Clock Stop)*/ +/* +* Enable the assertion of dfi_dram_clk_disable whenever a clock is not req + * uired by the SDRAM. If set to 0, dfi_dram_clk_disable is never asserted. + * Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only + * be asserted in Self Refresh. In DDR4, can be asserted in following: - i + * n Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, ca + * n be asserted in following: - in Self Refresh - in Power Down - in Deep + * Power Down - during Normal operation (Clock Stop) In LPDDR4, can be asse + * rted in following: - in Self Refresh Power Down - in Power Down - during + * Normal operation (Clock Stop) +*/ #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL 0x00000000 -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT 3 -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK 0x00000008U +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL 0x00000000 +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT 3 +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK 0x00000008U -/*When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the transaction store is empty. This register must be re - et to '0' to bring uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM initialization on deep power-down - xit. Present only in designs configured to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPDDR3, this registe - should not be set to 1. FOR PERFORMANCE ONLY.*/ +/* +* When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the + * transaction store is empty. This register must be reset to '0' to bring + * uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM + * initialization on deep power-down exit. Present only in designs configu + * red to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPD + * DR3, this register should not be set to 1. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT 2 -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK 0x00000004U +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT 2 +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK 0x00000004U -/*If true then the uMCTL2 goes into power-down after a programmable number of cycles 'maximum idle clocks before power down' (P - RTMG.powerdown_to_x32). This register bit may be re-programmed during the course of normal operation.*/ +/* +* If true then the uMCTL2 goes into power-down after a programmable number + * of cycles 'maximum idle clocks before power down' (PWRTMG.powerdown_to_ + * x32). This register bit may be re-programmed during the course of normal + * operation. +*/ #undef DDRC_PWRCTL_POWERDOWN_EN_DEFVAL #undef DDRC_PWRCTL_POWERDOWN_EN_SHIFT #undef DDRC_PWRCTL_POWERDOWN_EN_MASK -#define DDRC_PWRCTL_POWERDOWN_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_POWERDOWN_EN_SHIFT 1 -#define DDRC_PWRCTL_POWERDOWN_EN_MASK 0x00000002U +#define DDRC_PWRCTL_POWERDOWN_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_POWERDOWN_EN_SHIFT 1 +#define DDRC_PWRCTL_POWERDOWN_EN_MASK 0x00000002U -/*If true then the uMCTL2 puts the SDRAM into Self Refresh after a programmable number of cycles 'maximum idle clocks before Se - f Refresh (PWRTMG.selfref_to_x32)'. This register bit may be re-programmed during the course of normal operation.*/ +/* +* If true then the uMCTL2 puts the SDRAM into Self Refresh after a program + * mable number of cycles 'maximum idle clocks before Self Refresh (PWRTMG. + * selfref_to_x32)'. This register bit may be re-programmed during the cour + * se of normal operation. +*/ #undef DDRC_PWRCTL_SELFREF_EN_DEFVAL #undef DDRC_PWRCTL_SELFREF_EN_SHIFT #undef DDRC_PWRCTL_SELFREF_EN_MASK -#define DDRC_PWRCTL_SELFREF_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_SELFREF_EN_SHIFT 0 -#define DDRC_PWRCTL_SELFREF_EN_MASK 0x00000001U +#define DDRC_PWRCTL_SELFREF_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_SELFREF_EN_SHIFT 0 +#define DDRC_PWRCTL_SELFREF_EN_MASK 0x00000001U -/*After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into Self Refresh. This must be enabled in - he PWRCTL.selfref_en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY.*/ +/* +* After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into Self Refresh. This must be enabled in the PWRCTL.selfref_ + * en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL #undef DDRC_PWRTMG_SELFREF_TO_X32_SHIFT #undef DDRC_PWRTMG_SELFREF_TO_X32_MASK -#define DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL 0x00402010 -#define DDRC_PWRTMG_SELFREF_TO_X32_SHIFT 16 -#define DDRC_PWRTMG_SELFREF_TO_X32_MASK 0x00FF0000U +#define DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL 0x00402010 +#define DDRC_PWRTMG_SELFREF_TO_X32_SHIFT 16 +#define DDRC_PWRTMG_SELFREF_TO_X32_MASK 0x00FF0000U -/*Minimum deep power-down time. For mDDR, value from the JEDEC specification is 0 as mDDR exits from deep power-down mode immed - ately after PWRCTL.deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDEC specification is 500us. Unit: Mul - iples of 4096 clocks. Present only in designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE ONLY.*/ +/* +* Minimum deep power-down time. For mDDR, value from the JEDEC specificati + * on is 0 as mDDR exits from deep power-down mode immediately after PWRCTL + * .deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDE + * C specification is 500us. Unit: Multiples of 4096 clocks. Present only i + * n designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE + * ONLY. +*/ #undef DDRC_PWRTMG_T_DPD_X4096_DEFVAL #undef DDRC_PWRTMG_T_DPD_X4096_SHIFT #undef DDRC_PWRTMG_T_DPD_X4096_MASK -#define DDRC_PWRTMG_T_DPD_X4096_DEFVAL 0x00402010 -#define DDRC_PWRTMG_T_DPD_X4096_SHIFT 8 -#define DDRC_PWRTMG_T_DPD_X4096_MASK 0x0000FF00U +#define DDRC_PWRTMG_T_DPD_X4096_DEFVAL 0x00402010 +#define DDRC_PWRTMG_T_DPD_X4096_SHIFT 8 +#define DDRC_PWRTMG_T_DPD_X4096_MASK 0x0000FF00U -/*After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into power-down. This must be enabled in th - PWRCTL.powerdown_en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY.*/ +/* +* After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into power-down. This must be enabled in the PWRCTL.powerdown_ + * en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL #undef DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT #undef DDRC_PWRTMG_POWERDOWN_TO_X32_MASK -#define DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL 0x00402010 -#define DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT 0 -#define DDRC_PWRTMG_POWERDOWN_TO_X32_MASK 0x0000001FU +#define DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL 0x00402010 +#define DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT 0 +#define DDRC_PWRTMG_POWERDOWN_TO_X32_MASK 0x0000001FU -/*Threshold value in number of clock cycles before the critical refresh or page timer expires. A critical refresh is to be issu - d before this threshold is reached. It is recommended that this not be changed from the default value, currently shown as 0x2 - It must always be less than internally used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally used t_rfc_nom_x32 - may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating is enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_ - om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clocks.*/ +/* +* Threshold value in number of clock cycles before the critical refresh or + * page timer expires. A critical refresh is to be issued before this thre + * shold is reached. It is recommended that this not be changed from the de + * fault value, currently shown as 0x2. It must always be less than interna + * lly used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally u + * sed t_rfc_nom_x32 may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating i + * s enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_n + * om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clo + * cks. +*/ #undef DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT #undef DDRC_RFSHCTL0_REFRESH_MARGIN_MASK -#define DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT 20 -#define DDRC_RFSHCTL0_REFRESH_MARGIN_MASK 0x00F00000U +#define DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT 20 +#define DDRC_RFSHCTL0_REFRESH_MARGIN_MASK 0x00F00000U -/*If the refresh timer (tRFCnom, also known as tREFI) has expired at least once, but it has not expired (RFSHCTL0.refresh_burst - 1) times yet, then a speculative refresh may be performed. A speculative refresh is a refresh performed at a time when refres - would be useful, but before it is absolutely required. When the SDRAM bus is idle for a period of time determined by this RF - HCTL0.refresh_to_x32 and the refresh timer has expired at least once since the last refresh, then a speculative refresh is pe - formed. Speculative refreshes continues successively until there are no refreshes pending or until new reads or writes are is - ued to the uMCTL2. FOR PERFORMANCE ONLY.*/ +/* +* If the refresh timer (tRFCnom, also known as tREFI) has expired at least + * once, but it has not expired (RFSHCTL0.refresh_burst+1) times yet, then + * a speculative refresh may be performed. A speculative refresh is a refr + * esh performed at a time when refresh would be useful, but before it is a + * bsolutely required. When the SDRAM bus is idle for a period of time dete + * rmined by this RFSHCTL0.refresh_to_x32 and the refresh timer has expired + * at least once since the last refresh, then a speculative refresh is per + * formed. Speculative refreshes continues successively until there are no + * refreshes pending or until new reads or writes are issued to the uMCTL2. + * FOR PERFORMANCE ONLY. +*/ #undef DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT #undef DDRC_RFSHCTL0_REFRESH_TO_X32_MASK -#define DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT 12 -#define DDRC_RFSHCTL0_REFRESH_TO_X32_MASK 0x0001F000U +#define DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT 12 +#define DDRC_RFSHCTL0_REFRESH_TO_X32_MASK 0x0001F000U -/*The programmed value + 1 is the number of refresh timeouts that is allowed to accumulate before traffic is blocked and the re - reshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of re - reshes. Therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for - RFSHCTL.refresh_burst slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshe - . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh For information on burst refresh feature refer to se - tion 3.9 of DDR2 JEDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always per-rank and not per-bank. The rank r - fresh can be accumulated over 8*tREFI cycles using the burst refresh feature. In DDR4 mode, according to Fine Granularity fea - ure, 8 refreshes can be postponed in 1X mode, 16 refreshes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upd - tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ensure that tRFCmax is not violated due to a PHY-initiat - d update occurring shortly before a refresh burst was due. In this situation, the refresh burst will be delayed until the PHY - initiated update is complete.*/ +/* +* The programmed value + 1 is the number of refresh timeouts that is allow + * ed to accumulate before traffic is blocked and the refreshes are forced + * to execute. Closing pages to perform a refresh is a one-time penalty tha + * t must be paid for each group of refreshes. Therefore, performing refres + * hes in a burst reduces the per-refresh penalty of these page closings. H + * igher numbers for RFSHCTL.refresh_burst slightly increases utilization; + * lower numbers decreases the worst-case latency associated with refreshes + * . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh + * For information on burst refresh feature refer to section 3.9 of DDR2 J + * EDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always pe + * r-rank and not per-bank. The rank refresh can be accumulated over 8*tREF + * I cycles using the burst refresh feature. In DDR4 mode, according to Fin + * e Granularity feature, 8 refreshes can be postponed in 1X mode, 16 refre + * shes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upda + * tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ens + * ure that tRFCmax is not violated due to a PHY-initiated update occurring + * shortly before a refresh burst was due. In this situation, the refresh + * burst will be delayed until the PHY-initiated update is complete. +*/ #undef DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_BURST_SHIFT #undef DDRC_RFSHCTL0_REFRESH_BURST_MASK -#define DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_BURST_SHIFT 4 -#define DDRC_RFSHCTL0_REFRESH_BURST_MASK 0x000001F0U +#define DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_BURST_SHIFT 4 +#define DDRC_RFSHCTL0_REFRESH_BURST_MASK 0x000001F0U -/*- 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows traffic to flow to other banks. Per bank refresh is n - t supported by all LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Present only in designs configured to - support LPDDR2/LPDDR3/LPDDR4*/ +/* +* - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows + * traffic to flow to other banks. Per bank refresh is not supported by all + * LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4 +*/ #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT 2 -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK 0x00000004U +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT 2 +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK 0x00000004U -/*Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fixed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x ( - ot supported) - 110 - Enable on the fly 4x (not supported) - Everything else - reserved Note: The on-the-fly modes is not sup - orted in this version of the uMCTL2. Note: This must be set up while the Controller is in reset or while the Controller is in - self-refresh mode. Changing this during normal operation is not allowed. Making this a dynamic register will be supported in - uture version of the uMCTL2.*/ +/* +* Refresh timer start for rank 1 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_DEFVAL +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_SHIFT +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_MASK +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_DEFVAL 0x00000000 +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_SHIFT 16 +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_MASK 0x0FFF0000U + +/* +* Refresh timer start for rank 0 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_DEFVAL +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_SHIFT +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_MASK +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_DEFVAL 0x00000000 +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_SHIFT 0 +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_MASK 0x00000FFFU + +/* +* Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fix + * ed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x (not supported) - 11 + * 0 - Enable on the fly 4x (not supported) - Everything else - reserved No + * te: The on-the-fly modes is not supported in this version of the uMCTL2. + * Note: This must be set up while the Controller is in reset or while the + * Controller is in self-refresh mode. Changing this during normal operati + * on is not allowed. Making this a dynamic register will be supported in f + * uture version of the uMCTL2. +*/ #undef DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL #undef DDRC_RFSHCTL3_REFRESH_MODE_SHIFT #undef DDRC_RFSHCTL3_REFRESH_MODE_MASK -#define DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_REFRESH_MODE_SHIFT 4 -#define DDRC_RFSHCTL3_REFRESH_MODE_MASK 0x00000070U +#define DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_REFRESH_MODE_SHIFT 4 +#define DDRC_RFSHCTL3_REFRESH_MODE_MASK 0x00000070U -/*Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that the refresh register(s) have been updated. The value - s automatically updated when exiting reset, so it does not need to be toggled initially.*/ +/* +* Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that + * the refresh register(s) have been updated. The value is automatically up + * dated when exiting reset, so it does not need to be toggled initially. +*/ #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT 1 -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK 0x00000002U +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT 1 +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK 0x00000002U -/*When '1', disable auto-refresh generated by the uMCTL2. When auto-refresh is disabled, the SoC core must generate refreshes u - ing the registers reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh and reg_ddrc_rank3_refresh. When dis - auto_refresh transitions from 0 to 1, any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 CRC/parity retry - is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), disable auto-refresh is not supported, and this bit must be set to '0'. - his register field is changeable on the fly.*/ +/* +* When '1', disable auto-refresh generated by the uMCTL2. When auto-refres + * h is disabled, the SoC core must generate refreshes using the registers + * reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh a + * nd reg_ddrc_rank3_refresh. When dis_auto_refresh transitions from 0 to 1 + * , any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 + * CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d + * isable auto-refresh is not supported, and this bit must be set to '0'. T + * his register field is changeable on the fly. +*/ #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT 0 -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK 0x00000001U +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT 0 +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK 0x00000001U -/*tREFI: Average time interval between refreshes per rank (Specification: 7.8us for DDR2, DDR3 and DDR4. See JEDEC specificatio - for mDDR, LPDDR2, LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refreshes (RFSHCTL0.per_bank_refresh = 0 - , this register should be set to tREFIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this register should - e set to tREFIpb For configurations with MEMC_FREQ_RATIO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI va - ue is different depending on the refresh mode. The user should program the appropriate value from the spec based on the value - programmed in the refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be greater than RFSHTMG.t_rfc_min, and RFS - TMG.t_rfc_nom_x32 must be greater than 0x1. Unit: Multiples of 32 clocks.*/ +/* +* tREFI: Average time interval between refreshes per rank (Specification: + * 7.8us for DDR2, DDR3 and DDR4. See JEDEC specification for mDDR, LPDDR2, + * LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refre + * shes (RFSHCTL0.per_bank_refresh = 0), this register should be set to tRE + * FIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this + * register should be set to tREFIpb For configurations with MEMC_FREQ_RAT + * IO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI val + * ue is different depending on the refresh mode. The user should program t + * he appropriate value from the spec based on the value programmed in the + * refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be grea + * ter than RFSHTMG.t_rfc_min, and RFSHTMG.t_rfc_nom_x32 must be greater th + * an 0x1. Unit: Multiples of 32 clocks. +*/ #undef DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL #undef DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT #undef DDRC_RFSHTMG_T_RFC_NOM_X32_MASK -#define DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT 16 -#define DDRC_RFSHTMG_T_RFC_NOM_X32_MASK 0x0FFF0000U +#define DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT 16 +#define DDRC_RFSHTMG_T_RFC_NOM_X32_MASK 0x0FFF0000U -/*Used only when LPDDR3 memory type is connected. Should only be changed when uMCTL2 is in reset. Specifies whether to use the - REFBW parameter (required by some LPDDR3 devices which comply with earlier versions of the LPDDR3 JEDEC specification) or not - - 0 - tREFBW parameter not used - 1 - tREFBW parameter used*/ +/* +* Used only when LPDDR3 memory type is connected. Should only be changed w + * hen uMCTL2 is in reset. Specifies whether to use the tREFBW parameter (r + * equired by some LPDDR3 devices which comply with earlier versions of the + * LPDDR3 JEDEC specification) or not: - 0 - tREFBW parameter not used - 1 + * - tREFBW parameter used +*/ #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT 15 -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK 0x00008000U +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT 15 +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK 0x00008000U -/*tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_FREQ_RATIO=1 configurations, t_rfc_min should be set t - RoundUp(tRFCmin/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to RoundUp(RoundUp(tRFCmin/tCK)/2). In L - DDR2/LPDDR3/LPDDR4 mode: - if using all-bank refreshes, the tRFCmin value in the above equations is equal to tRFCab - if usin - per-bank refreshes, the tRFCmin value in the above equations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above - equations is different depending on the refresh mode (fixed 1X,2X,4X) and the device density. The user should program the app - opriate value from the spec based on the 'refresh_mode' and the device density that is used. Unit: Clocks.*/ +/* +* tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_F + * REQ_RATIO=1 configurations, t_rfc_min should be set to RoundUp(tRFCmin/t + * CK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to Ro + * undUp(RoundUp(tRFCmin/tCK)/2). In LPDDR2/LPDDR3/LPDDR4 mode: - if using + * all-bank refreshes, the tRFCmin value in the above equations is equal to + * tRFCab - if using per-bank refreshes, the tRFCmin value in the above eq + * uations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above + * equations is different depending on the refresh mode (fixed 1X,2X,4X) an + * d the device density. The user should program the appropriate value from + * the spec based on the 'refresh_mode' and the device density that is use + * d. Unit: Clocks. +*/ #undef DDRC_RFSHTMG_T_RFC_MIN_DEFVAL #undef DDRC_RFSHTMG_T_RFC_MIN_SHIFT #undef DDRC_RFSHTMG_T_RFC_MIN_MASK -#define DDRC_RFSHTMG_T_RFC_MIN_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_T_RFC_MIN_SHIFT 0 -#define DDRC_RFSHTMG_T_RFC_MIN_MASK 0x000003FFU +#define DDRC_RFSHTMG_T_RFC_MIN_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_T_RFC_MIN_SHIFT 0 +#define DDRC_RFSHTMG_T_RFC_MIN_MASK 0x000003FFU -/*Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_USE_RMW is defined*/ +/* +* Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_U + * SE_RMW is defined +*/ #undef DDRC_ECCCFG0_DIS_SCRUB_DEFVAL #undef DDRC_ECCCFG0_DIS_SCRUB_SHIFT #undef DDRC_ECCCFG0_DIS_SCRUB_MASK -#define DDRC_ECCCFG0_DIS_SCRUB_DEFVAL 0x00000000 -#define DDRC_ECCCFG0_DIS_SCRUB_SHIFT 4 -#define DDRC_ECCCFG0_DIS_SCRUB_MASK 0x00000010U +#define DDRC_ECCCFG0_DIS_SCRUB_DEFVAL 0x00000000 +#define DDRC_ECCCFG0_DIS_SCRUB_SHIFT 4 +#define DDRC_ECCCFG0_DIS_SCRUB_MASK 0x00000010U -/*ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED over 1 beat - all other settings are reserved for futur - use*/ +/* +* ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED ov + * er 1 beat - all other settings are reserved for future use +*/ #undef DDRC_ECCCFG0_ECC_MODE_DEFVAL #undef DDRC_ECCCFG0_ECC_MODE_SHIFT #undef DDRC_ECCCFG0_ECC_MODE_MASK -#define DDRC_ECCCFG0_ECC_MODE_DEFVAL 0x00000000 -#define DDRC_ECCCFG0_ECC_MODE_SHIFT 0 -#define DDRC_ECCCFG0_ECC_MODE_MASK 0x00000007U +#define DDRC_ECCCFG0_ECC_MODE_DEFVAL 0x00000000 +#define DDRC_ECCCFG0_ECC_MODE_SHIFT 0 +#define DDRC_ECCCFG0_ECC_MODE_MASK 0x00000007U -/*Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) data poisoning, if 1 -> 1-bit (correctable) data poison - ng, if ECCCFG1.data_poison_en=1*/ +/* +* Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) da + * ta poisoning, if 1 -> 1-bit (correctable) data poisoning, if ECCCFG1.dat + * a_poison_en=1 +*/ #undef DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL #undef DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT #undef DDRC_ECCCFG1_DATA_POISON_BIT_MASK -#define DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL 0x00000000 -#define DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT 1 -#define DDRC_ECCCFG1_DATA_POISON_BIT_MASK 0x00000002U +#define DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL 0x00000000 +#define DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT 1 +#define DDRC_ECCCFG1_DATA_POISON_BIT_MASK 0x00000002U -/*Enable ECC data poisoning - introduces ECC errors on writes to address specified by the ECCPOISONADDR0/1 registers*/ +/* +* Enable ECC data poisoning - introduces ECC errors on writes to address s + * pecified by the ECCPOISONADDR0/1 registers +*/ #undef DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL #undef DDRC_ECCCFG1_DATA_POISON_EN_SHIFT #undef DDRC_ECCCFG1_DATA_POISON_EN_MASK -#define DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL 0x00000000 -#define DDRC_ECCCFG1_DATA_POISON_EN_SHIFT 0 -#define DDRC_ECCCFG1_DATA_POISON_EN_MASK 0x00000001U +#define DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL 0x00000000 +#define DDRC_ECCCFG1_DATA_POISON_EN_SHIFT 0 +#define DDRC_ECCCFG1_DATA_POISON_EN_MASK 0x00000001U -/*The maximum number of DFI PHY clock cycles allowed from the assertion of the dfi_rddata_en signal to the assertion of each of - the corresponding bits of the dfi_rddata_valid signal. This corresponds to the DFI timing parameter tphy_rdlat. Refer to PHY - pecification for correct value. This value it only used for detecting read data timeout when DDR4 retry is enabled by CRCPARC - L1.crc_parity_retry_enable=1. Maximum supported value: - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ - dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mo - e ANDAND DFITMG0.dfi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_rdlat < 'd114 Unit: DFI Clocks*/ +/* +* The maximum number of DFI PHY clock cycles allowed from the assertion of + * the dfi_rddata_en signal to the assertion of each of the corresponding + * bits of the dfi_rddata_valid signal. This corresponds to the DFI timing + * parameter tphy_rdlat. Refer to PHY specification for correct value. This + * value it only used for detecting read data timeout when DDR4 retry is e + * nabled by CRCPARCTL1.crc_parity_retry_enable=1. Maximum supported value: + * - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_r + * dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 + * : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mode ANDAND DFITMG0.d + * fi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ + * rdlat < 'd114 Unit: DFI Clocks +*/ #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT 24 -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK 0x3F000000U +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT 24 +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK 0x3F000000U -/*After a Parity or CRC error is flagged on dfi_alert_n signal, the software has an option to read the mode registers in the DR - M before the hardware begins the retry process - 1: Wait for software to read/write the mode registers before hardware begins - the retry. After software is done with its operations, it will clear the alert interrupt register bit - 0: Hardware can begin - the retry right away after the dfi_alert_n pulse goes away. The value on this register is valid only when retry is enabled (P - RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if the software doesn't clear the interrupt register afte - handling the parity/CRC error, then the hardware will not begin the retry process and the system will hang. In the case of P - rity/CRC error, there are two possibilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persistent parity' mode re - ister bit is NOT set: the commands sent during retry and normal operation are executed without parity checking. The value in - he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent parity' mode register bit is SET: Parity checking is - one for commands sent during retry and normal operation. If multiple errors occur before MR5[4] is cleared, the error log in - PR Page 1 should be treated as 'Don't care'.*/ +/* +* After a Parity or CRC error is flagged on dfi_alert_n signal, the softwa + * re has an option to read the mode registers in the DRAM before the hardw + * are begins the retry process - 1: Wait for software to read/write the mo + * de registers before hardware begins the retry. After software is done wi + * th its operations, it will clear the alert interrupt register bit - 0: H + * ardware can begin the retry right away after the dfi_alert_n pulse goes + * away. The value on this register is valid only when retry is enabled (PA + * RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if t + * he software doesn't clear the interrupt register after handling the pari + * ty/CRC error, then the hardware will not begin the retry process and the + * system will hang. In the case of Parity/CRC error, there are two possib + * ilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persisten + * t parity' mode register bit is NOT set: the commands sent during retry a + * nd normal operation are executed without parity checking. The value in t + * he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent + * parity' mode register bit is SET: Parity checking is done for commands s + * ent during retry and normal operation. If multiple errors occur before M + * R5[4] is cleared, the error log in MPR Page 1 should be treated as 'Don' + * t care'. +*/ #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT 9 -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK 0x00000200U +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT 9 +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK 0x00000200U -/*- 1: Enable command retry mechanism in case of C/A Parity or CRC error - 0: Disable command retry mechanism when C/A Parity o - CRC features are enabled. Note that retry functionality is not supported if burst chop is enabled (MSTR.burstchop = 1) and/o - disable auto-refresh is enabled (RFSHCTL3.dis_auto_refresh = 1)*/ +/* +* - 1: Enable command retry mechanism in case of C/A Parity or CRC error - + * 0: Disable command retry mechanism when C/A Parity or CRC features are + * enabled. Note that retry functionality is not supported if burst chop is + * enabled (MSTR.burstchop = 1) and/or disable auto-refresh is enabled (RF + * SHCTL3.dis_auto_refresh = 1) +*/ #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT 8 -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK 0x00000100U +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT 8 +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK 0x00000100U -/*CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC not includes DM signal Present only in designs configur - d to support DDR4.*/ +/* +* CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC no + * t includes DM signal Present only in designs configured to support DDR4. +*/ #undef DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL #undef DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT #undef DDRC_CRCPARCTL1_CRC_INC_DM_MASK -#define DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT 7 -#define DDRC_CRCPARCTL1_CRC_INC_DM_MASK 0x00000080U +#define DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT 7 +#define DDRC_CRCPARCTL1_CRC_INC_DM_MASK 0x00000080U -/*CRC enable Register - 1: Enable generation of CRC - 0: Disable generation of CRC The setting of this register should match th - CRC mode register setting in the DRAM.*/ +/* +* CRC enable Register - 1: Enable generation of CRC - 0: Disable generatio + * n of CRC The setting of this register should match the CRC mode register + * setting in the DRAM. +*/ #undef DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_CRC_ENABLE_MASK -#define DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT 4 -#define DDRC_CRCPARCTL1_CRC_ENABLE_MASK 0x00000010U +#define DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT 4 +#define DDRC_CRCPARCTL1_CRC_ENABLE_MASK 0x00000010U -/*C/A Parity enable register - 1: Enable generation of C/A parity and detection of C/A parity error - 0: Disable generation of - /A parity and disable detection of C/A parity error If RCD's parity error detection or SDRAM's parity detection is enabled, t - is register should be 1.*/ +/* +* C/A Parity enable register - 1: Enable generation of C/A parity and dete + * ction of C/A parity error - 0: Disable generation of C/A parity and disa + * ble detection of C/A parity error If RCD's parity error detection or SDR + * AM's parity detection is enabled, this register should be 1. +*/ #undef DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_PARITY_ENABLE_MASK -#define DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT 0 -#define DDRC_CRCPARCTL1_PARITY_ENABLE_MASK 0x00000001U +#define DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT 0 +#define DDRC_CRCPARCTL1_PARITY_ENABLE_MASK 0x00000001U -/*Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a parity error occurs. Recommended values - - tPAR_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT_PW.MAX/2 and round up to next inte - er value. Values of 0, 1 and 2 are illegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max.*/ +/* +* Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a parity error occurs. Recommended values: - tPAR_ALERT_PW.M + * AX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT + * _PW.MAX/2 and round up to next integer value. Values of 0, 1 and 2 are i + * llegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. +*/ #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT 16 -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK 0x01FF0000U +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT 16 +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK 0x01FF0000U -/*Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a CRC error occurs. Recommended values: - - tCRC_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW.MAX/2 and round up to next integer - value. Values of 0, 1 and 2 are illegal. This value must be less than CRCPARCTL2.t_par_alert_pw_max.*/ +/* +* Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a CRC error occurs. Recommended values: - tCRC_ALERT_PW.MAX + * For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW + * .MAX/2 and round up to next integer value. Values of 0, 1 and 2 are ille + * gal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. +*/ #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT 8 -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK 0x00001F00U +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT 8 +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK 0x00001F00U -/*Indicates the maximum duration in number of DRAM clock cycles for which a command should be held in the Command Retry FIFO be - ore it is popped out. Every location in the Command Retry FIFO has an associated down counting timer that will use this regis - er as the start value. The down counting starts when a command is loaded into the FIFO. The timer counts down every 4 DRAM cy - les. When the counter reaches zero, the entry is popped from the FIFO. All the counters are frozen, if a C/A Parity or CRC er - or occurs before the counter reaches zero. The counter is reset to 0, after all the commands in the FIFO are retried. Recomme - ded(minimum) values: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + tPAR_ALERT_ON - max + tPAR_UNKNOWN + PHY Alert Latency(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enabled/ Only CRC is en - bled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) - + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be in terms of DRAM Clock and round up Note 2: Board de - ay(Command/Alert_n) should be considered. Note 3: Use the worst case(longer) value for PHY Latencies/Board delay Note 4: The - ecommended values are minimum value to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max value can be set - to this register is defined below: - MEMC_BURST_LENGTH == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH- - Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_D - PTH-4 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CM - _FIFO_DEPTH-8 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 Full bus Mode (C - C=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mo - e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarte - bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEP - H-6 Values of 0, 1 and 2 are illegal.*/ +/* +* Indicates the maximum duration in number of DRAM clock cycles for which + * a command should be held in the Command Retry FIFO before it is popped o + * ut. Every location in the Command Retry FIFO has an associated down coun + * ting timer that will use this register as the start value. The down coun + * ting starts when a command is loaded into the FIFO. The timer counts dow + * n every 4 DRAM cycles. When the counter reaches zero, the entry is poppe + * d from the FIFO. All the counters are frozen, if a C/A Parity or CRC err + * or occurs before the counter reaches zero. The counter is reset to 0, af + * ter all the commands in the FIFO are retried. Recommended(minimum) value + * s: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + * + CAL + RDIMM delay + tPAR_ALERT_ON.max + tPAR_UNKNOWN + PHY Alert Laten + * cy(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enable + * d/ Only CRC is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + R + * DIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) + * + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be + * in terms of DRAM Clock and round up Note 2: Board delay(Command/Alert_n + * ) should be considered. Note 3: Use the worst case(longer) value for PHY + * Latencies/Board delay Note 4: The Recommended values are minimum value + * to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max + * value can be set to this register is defined below: - MEMC_BURST_LENGTH + * == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 + * Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half b + * us Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Half bus Mod + * e (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (C + * RC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-8 Quarter bus Mode (CRC= + * ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 + * Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full + * bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mod + * e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC + * =ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarter bus Mode (CRC=OFF + * ) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Ma + * x value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Values of 0, 1 and 2 are illegal + * . +*/ #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT 0 -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK 0x0000003FU +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT 0 +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK 0x0000003FU -/*If lower bit is enabled the SDRAM initialization routine is skipped. The upper bit decides what state the controller starts u - in when reset is removed - 00 - SDRAM Intialization routine is run after power-up - 01 - SDRAM Intialization routine is skip - ed after power-up. Controller starts up in Normal Mode - 11 - SDRAM Intialization routine is skipped after power-up. Controll - r starts up in Self-refresh Mode - 10 - SDRAM Intialization routine is run after power-up. Note: The only 2'b00 is supported - or LPDDR4 in this version of the uMCTL2.*/ +/* +* If lower bit is enabled the SDRAM initialization routine is skipped. The + * upper bit decides what state the controller starts up in when reset is + * removed - 00 - SDRAM Intialization routine is run after power-up - 01 - + * SDRAM Intialization routine is skipped after power-up. Controller starts + * up in Normal Mode - 11 - SDRAM Intialization routine is skipped after p + * ower-up. Controller starts up in Self-refresh Mode - 10 - SDRAM Intializ + * ation routine is run after power-up. Note: The only 2'b00 is supported f + * or LPDDR4 in this version of the uMCTL2. +*/ #undef DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL #undef DDRC_INIT0_SKIP_DRAM_INIT_SHIFT #undef DDRC_INIT0_SKIP_DRAM_INIT_MASK -#define DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL 0x0002004E -#define DDRC_INIT0_SKIP_DRAM_INIT_SHIFT 30 -#define DDRC_INIT0_SKIP_DRAM_INIT_MASK 0xC0000000U +#define DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL 0x0002004E +#define DDRC_INIT0_SKIP_DRAM_INIT_SHIFT 30 +#define DDRC_INIT0_SKIP_DRAM_INIT_MASK 0xC0000000U -/*Cycles to wait after driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clocks. DDR2 typically requires - 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDDR3 typically requires this to be pr - grammed for a delay of 200 us. LPDDR4 typically requires this to be programmed for a delay of 2 us. For configurations with M - MC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it up to next integer value.*/ +/* +* Cycles to wait after driving CKE high to start the SDRAM initialization + * sequence. Unit: 1024 clocks. DDR2 typically requires a 400 ns delay, req + * uiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDD + * R3 typically requires this to be programmed for a delay of 200 us. LPDDR + * 4 typically requires this to be programmed for a delay of 2 us. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divi + * ded by 2, and round it up to next integer value. +*/ #undef DDRC_INIT0_POST_CKE_X1024_DEFVAL #undef DDRC_INIT0_POST_CKE_X1024_SHIFT #undef DDRC_INIT0_POST_CKE_X1024_MASK -#define DDRC_INIT0_POST_CKE_X1024_DEFVAL 0x0002004E -#define DDRC_INIT0_POST_CKE_X1024_SHIFT 16 -#define DDRC_INIT0_POST_CKE_X1024_MASK 0x03FF0000U +#define DDRC_INIT0_POST_CKE_X1024_DEFVAL 0x0002004E +#define DDRC_INIT0_POST_CKE_X1024_SHIFT 16 +#define DDRC_INIT0_POST_CKE_X1024_MASK 0x03FF0000U -/*Cycles to wait after reset before driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clock cycles. DDR2 - pecifications typically require this to be programmed for a delay of >= 200 us. LPDDR2/LPDDR3: tINIT1 of 100 ns (min) LPDDR4: - tINIT3 of 2 ms (min) For configurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it u - to next integer value.*/ +/* +* Cycles to wait after reset before driving CKE high to start the SDRAM in + * itialization sequence. Unit: 1024 clock cycles. DDR2 specifications typi + * cally require this to be programmed for a delay of >= 200 us. LPDDR2/LPD + * DR3: tINIT1 of 100 ns (min) LPDDR4: tINIT3 of 2 ms (min) For configurati + * ons with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by + * 2, and round it up to next integer value. +*/ #undef DDRC_INIT0_PRE_CKE_X1024_DEFVAL #undef DDRC_INIT0_PRE_CKE_X1024_SHIFT #undef DDRC_INIT0_PRE_CKE_X1024_MASK -#define DDRC_INIT0_PRE_CKE_X1024_DEFVAL 0x0002004E -#define DDRC_INIT0_PRE_CKE_X1024_SHIFT 0 -#define DDRC_INIT0_PRE_CKE_X1024_MASK 0x00000FFFU +#define DDRC_INIT0_PRE_CKE_X1024_DEFVAL 0x0002004E +#define DDRC_INIT0_PRE_CKE_X1024_SHIFT 0 +#define DDRC_INIT0_PRE_CKE_X1024_MASK 0x00000FFFU -/*Number of cycles to assert SDRAM reset signal during init sequence. This is only present for designs supporting DDR3, DDR4 or - LPDDR4 devices. For use with a DDR PHY, this should be set to a minimum of 1*/ +/* +* Number of cycles to assert SDRAM reset signal during init sequence. This + * is only present for designs supporting DDR3, DDR4 or LPDDR4 devices. Fo + * r use with a DDR PHY, this should be set to a minimum of 1 +*/ #undef DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL #undef DDRC_INIT1_DRAM_RSTN_X1024_SHIFT #undef DDRC_INIT1_DRAM_RSTN_X1024_MASK -#define DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL 0x00000000 -#define DDRC_INIT1_DRAM_RSTN_X1024_SHIFT 16 -#define DDRC_INIT1_DRAM_RSTN_X1024_MASK 0x01FF0000U +#define DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL 0x00000000 +#define DDRC_INIT1_DRAM_RSTN_X1024_SHIFT 16 +#define DDRC_INIT1_DRAM_RSTN_X1024_MASK 0x01FF0000U -/*Cycles to wait after completing the SDRAM initialization sequence before starting the dynamic scheduler. Unit: Counts of a gl - bal timer that pulses every 32 clock cycles. There is no known specific requirement for this; it may be set to zero.*/ +/* +* Cycles to wait after completing the SDRAM initialization sequence before + * starting the dynamic scheduler. Unit: Counts of a global timer that pul + * ses every 32 clock cycles. There is no known specific requirement for th + * is; it may be set to zero. +*/ #undef DDRC_INIT1_FINAL_WAIT_X32_DEFVAL #undef DDRC_INIT1_FINAL_WAIT_X32_SHIFT #undef DDRC_INIT1_FINAL_WAIT_X32_MASK -#define DDRC_INIT1_FINAL_WAIT_X32_DEFVAL 0x00000000 -#define DDRC_INIT1_FINAL_WAIT_X32_SHIFT 8 -#define DDRC_INIT1_FINAL_WAIT_X32_MASK 0x00007F00U +#define DDRC_INIT1_FINAL_WAIT_X32_DEFVAL 0x00000000 +#define DDRC_INIT1_FINAL_WAIT_X32_SHIFT 8 +#define DDRC_INIT1_FINAL_WAIT_X32_MASK 0x00007F00U -/*Wait period before driving the OCD complete command to SDRAM. Unit: Counts of a global timer that pulses every 32 clock cycle - . There is no known specific requirement for this; it may be set to zero.*/ +/* +* Wait period before driving the OCD complete command to SDRAM. Unit: Coun + * ts of a global timer that pulses every 32 clock cycles. There is no know + * n specific requirement for this; it may be set to zero. +*/ #undef DDRC_INIT1_PRE_OCD_X32_DEFVAL #undef DDRC_INIT1_PRE_OCD_X32_SHIFT #undef DDRC_INIT1_PRE_OCD_X32_MASK -#define DDRC_INIT1_PRE_OCD_X32_DEFVAL 0x00000000 -#define DDRC_INIT1_PRE_OCD_X32_SHIFT 0 -#define DDRC_INIT1_PRE_OCD_X32_MASK 0x0000000FU +#define DDRC_INIT1_PRE_OCD_X32_DEFVAL 0x00000000 +#define DDRC_INIT1_PRE_OCD_X32_SHIFT 0 +#define DDRC_INIT1_PRE_OCD_X32_MASK 0x0000000FU -/*Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Unit: 32 clock cycles.*/ +/* +* Idle time after the reset command, tINIT4. Present only in designs confi + * gured to support LPDDR2. Unit: 32 clock cycles. +*/ #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL 0x00000D05 -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT 8 -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK 0x0000FF00U +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL 0x00000D05 +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT 8 +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK 0x0000FF00U -/*Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2/LPDDR3. Unit: 1 clock cyc - e. LPDDR2/LPDDR3 typically requires 5 x tCK delay.*/ +/* +* Time to wait after the first CKE high, tINIT2. Present only in designs c + * onfigured to support LPDDR2/LPDDR3. Unit: 1 clock cycle. LPDDR2/LPDDR3 t + * ypically requires 5 x tCK delay. +*/ #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL 0x00000D05 -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT 0 -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK 0x0000000FU +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL 0x00000D05 +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT 0 +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK 0x0000000FU -/*DDR2: Value to write to MR register. Bit 8 is for DLL and the setting here is ignored. The uMCTL2 sets this bit appropriately - DDR3/DDR4: Value loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LPDDR3/LPDDR4 - Value to write to MR1 - register*/ +/* +* DDR2: Value to write to MR register. Bit 8 is for DLL and the setting he + * re is ignored. The uMCTL2 sets this bit appropriately. DDR3/DDR4: Value + * loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LP + * DDR3/LPDDR4 - Value to write to MR1 register +*/ #undef DDRC_INIT3_MR_DEFVAL #undef DDRC_INIT3_MR_SHIFT #undef DDRC_INIT3_MR_MASK -#define DDRC_INIT3_MR_DEFVAL 0x00000510 -#define DDRC_INIT3_MR_SHIFT 16 -#define DDRC_INIT3_MR_MASK 0xFFFF0000U +#define DDRC_INIT3_MR_DEFVAL 0x00000510 +#define DDRC_INIT3_MR_SHIFT 16 +#define DDRC_INIT3_MR_MASK 0xFFFF0000U -/*DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setting in this register is ignored. The uMCTL2 sets those - bits appropriately. DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evaluation mode training is enabled, thi - bit is set appropriately by the uMCTL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/LPDDR3/LPDDR4 - V - lue to write to MR2 register*/ +/* +* DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setti + * ng in this register is ignored. The uMCTL2 sets those bits appropriately + * . DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evalu + * ation mode training is enabled, this bit is set appropriately by the uMC + * TL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/ + * LPDDR3/LPDDR4 - Value to write to MR2 register +*/ #undef DDRC_INIT3_EMR_DEFVAL #undef DDRC_INIT3_EMR_SHIFT #undef DDRC_INIT3_EMR_MASK -#define DDRC_INIT3_EMR_DEFVAL 0x00000510 -#define DDRC_INIT3_EMR_SHIFT 0 -#define DDRC_INIT3_EMR_MASK 0x0000FFFFU +#define DDRC_INIT3_EMR_DEFVAL 0x00000510 +#define DDRC_INIT3_EMR_SHIFT 0 +#define DDRC_INIT3_EMR_MASK 0x0000FFFFU -/*DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 - egister mDDR: Unused*/ +/* +* DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 + * register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 register mDDR: Unus + * ed +*/ #undef DDRC_INIT4_EMR2_DEFVAL #undef DDRC_INIT4_EMR2_SHIFT #undef DDRC_INIT4_EMR2_MASK -#define DDRC_INIT4_EMR2_DEFVAL 0x00000000 -#define DDRC_INIT4_EMR2_SHIFT 16 -#define DDRC_INIT4_EMR2_MASK 0xFFFF0000U +#define DDRC_INIT4_EMR2_DEFVAL 0x00000000 +#define DDRC_INIT4_EMR2_SHIFT 16 +#define DDRC_INIT4_EMR2_MASK 0xFFFF0000U -/*DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to - rite to MR13 register*/ +/* +* DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 + * register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to write to MR13 regis + * ter +*/ #undef DDRC_INIT4_EMR3_DEFVAL #undef DDRC_INIT4_EMR3_SHIFT #undef DDRC_INIT4_EMR3_MASK -#define DDRC_INIT4_EMR3_DEFVAL 0x00000000 -#define DDRC_INIT4_EMR3_SHIFT 0 -#define DDRC_INIT4_EMR3_MASK 0x0000FFFFU +#define DDRC_INIT4_EMR3_DEFVAL 0x00000000 +#define DDRC_INIT4_EMR3_SHIFT 0 +#define DDRC_INIT4_EMR3_MASK 0x0000FFFFU -/*ZQ initial calibration, tZQINIT. Present only in designs configured to support DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock - ycles. DDR3 typically requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requires 1 us.*/ +/* +* ZQ initial calibration, tZQINIT. Present only in designs configured to s + * upport DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock cycles. DDR3 typica + * lly requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requir + * es 1 us. +*/ #undef DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL #undef DDRC_INIT5_DEV_ZQINIT_X32_SHIFT #undef DDRC_INIT5_DEV_ZQINIT_X32_MASK -#define DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL 0x00100004 -#define DDRC_INIT5_DEV_ZQINIT_X32_SHIFT 16 -#define DDRC_INIT5_DEV_ZQINIT_X32_MASK 0x00FF0000U +#define DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL 0x00100004 +#define DDRC_INIT5_DEV_ZQINIT_X32_SHIFT 16 +#define DDRC_INIT5_DEV_ZQINIT_X32_MASK 0x00FF0000U -/*Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2/LPDDR3. LPDDR2/LPDD - 3 typically requires 10 us.*/ +/* +* Maximum duration of the auto initialization, tINIT5. Present only in des + * igns configured to support LPDDR2/LPDDR3. LPDDR2/LPDDR3 typically requir + * es 10 us. +*/ #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL 0x00100004 -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT 0 -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK 0x000003FFU +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL 0x00100004 +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT 0 +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK 0x000003FFU -/*DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT6_MR4_DEFVAL #undef DDRC_INIT6_MR4_SHIFT #undef DDRC_INIT6_MR4_MASK -#define DDRC_INIT6_MR4_DEFVAL 0x00000000 -#define DDRC_INIT6_MR4_SHIFT 16 -#define DDRC_INIT6_MR4_MASK 0xFFFF0000U +#define DDRC_INIT6_MR4_DEFVAL 0x00000000 +#define DDRC_INIT6_MR4_SHIFT 16 +#define DDRC_INIT6_MR4_MASK 0xFFFF0000U -/*DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT6_MR5_DEFVAL #undef DDRC_INIT6_MR5_SHIFT #undef DDRC_INIT6_MR5_MASK -#define DDRC_INIT6_MR5_DEFVAL 0x00000000 -#define DDRC_INIT6_MR5_SHIFT 0 -#define DDRC_INIT6_MR5_MASK 0x0000FFFFU +#define DDRC_INIT6_MR5_DEFVAL 0x00000000 +#define DDRC_INIT6_MR5_SHIFT 0 +#define DDRC_INIT6_MR5_MASK 0x0000FFFFU -/*DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT7_MR6_DEFVAL #undef DDRC_INIT7_MR6_SHIFT #undef DDRC_INIT7_MR6_MASK -#define DDRC_INIT7_MR6_DEFVAL -#define DDRC_INIT7_MR6_SHIFT 16 -#define DDRC_INIT7_MR6_MASK 0xFFFF0000U +#define DDRC_INIT7_MR6_DEFVAL +#define DDRC_INIT7_MR6_SHIFT 16 +#define DDRC_INIT7_MR6_MASK 0xFFFF0000U -/*Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enab - ed. This will be required for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapped. - 0 - BG0 and BG1 are swapped i - address mirroring is enabled.*/ +/* +* Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and + * BG1 are NOT swapped even if Address Mirroring is enabled. This will be r + * equired for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapp + * ed. - 0 - BG0 and BG1 are swapped if address mirroring is enabled. +*/ #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT 5 -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK 0x00000020U +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT 5 +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK 0x00000020U -/*Enable for BG1 bit of MRS command. BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output - nversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit. Note: This has no - effect on the address of any other memory accesses, or of software-driven mode register accesses. If address mirroring is ena - led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - Enabled - 0 - Disabled*/ +/* +* Enable for BG1 bit of MRS command. BG1 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have BG1 are attached and + * both the CA parity and the Output Inversion are enabled, this must be s + * et to 0, so that the calculation of CA parity will not include BG1 bit. + * Note: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. If address mirroring is enab + * led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - En + * abled - 0 - Disabled +*/ #undef DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL #undef DDRC_DIMMCTL_MRS_BG1_EN_SHIFT #undef DDRC_DIMMCTL_MRS_BG1_EN_MASK -#define DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_MRS_BG1_EN_SHIFT 4 -#define DDRC_DIMMCTL_MRS_BG1_EN_MASK 0x00000010U +#define DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_MRS_BG1_EN_SHIFT 4 +#define DDRC_DIMMCTL_MRS_BG1_EN_MASK 0x00000010U -/*Enable for A17 bit of MRS command. A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, - his must be set to 0, so that the calculation of CA parity will not include A17 bit. Note: This has no effect on the address - f any other memory accesses, or of software-driven mode register accesses. - 1 - Enabled - 0 - Disabled*/ +/* +* Enable for A17 bit of MRS command. A17 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have A17 are attached and + * the Output Inversion are enabled, this must be set to 0, so that the ca + * lculation of CA parity will not include A17 bit. Note: This has no effec + * t on the address of any other memory accesses, or of software-driven mod + * e register accesses. - 1 - Enabled - 0 - Disabled +*/ #undef DDRC_DIMMCTL_MRS_A17_EN_DEFVAL #undef DDRC_DIMMCTL_MRS_A17_EN_SHIFT #undef DDRC_DIMMCTL_MRS_A17_EN_MASK -#define DDRC_DIMMCTL_MRS_A17_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_MRS_A17_EN_SHIFT 3 -#define DDRC_DIMMCTL_MRS_A17_EN_MASK 0x00000008U +#define DDRC_DIMMCTL_MRS_A17_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_MRS_A17_EN_SHIFT 3 +#define DDRC_DIMMCTL_MRS_A17_EN_MASK 0x00000008U -/*Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIMM implements the Output Inversion feature by default, - which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, - A0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the uMCTL2 during the automatic initi - lization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. - or B-side mode register accesses, these bits are inverted within the uMCTL2 to compensate for this RDIMM inversion. Note: Thi - has no effect on the address of any other memory accesses, or of software-driven mode register accesses. - 1 - Implement out - ut inversion for B-side DRAMs. - 0 - Do not implement output inversion for B-side DRAMs.*/ +/* +* Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIM + * M implements the Output Inversion feature by default, which means that t + * he following address, bank address and bank group bits of B-side DRAMs a + * re inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit en + * sures that, for mode register accesses generated by the uMCTL2 during th + * e automatic initialization routine and enabling of a particular DDR4 fea + * ture, separate A-side and B-side mode register accesses are generated. F + * or B-side mode register accesses, these bits are inverted within the uMC + * TL2 to compensate for this RDIMM inversion. Note: This has no effect on + * the address of any other memory accesses, or of software-driven mode reg + * ister accesses. - 1 - Implement output inversion for B-side DRAMs. - 0 - + * Do not implement output inversion for B-side DRAMs. +*/ #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT 2 -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK 0x00000004U +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT 2 +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK 0x00000004U -/*Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations). Some UDIMMs and DD - 4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits - re swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures t - at, for mode register accesses during the automatic initialization routine, these bits are swapped within the uMCTL2 to compe - sate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they ar - swapped during the automatic MRS access to enable/disable of a particular DDR4 feature. Note: This has no effect on the addr - ss of any other memory accesses, or of software-driven mode register accesses. This is not supported for mDDR, LPDDR2, LPDDR3 - or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, - hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ranks, implement address mirroring for MRS commands to d - ring initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring) - 0 - Do - not implement address mirroring*/ +/* +* Address Mirroring Enable (for multi-rank UDIMM implementations and multi + * -rank DDR4 RDIMM implementations). Some UDIMMs and DDR4 RDIMMs implement + * address mirroring for odd ranks, which means that the following address + * , bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, + * A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting t + * his bit ensures that, for mode register accesses during the automatic in + * itialization routine, these bits are swapped within the uMCTL2 to compen + * sate for this UDIMM/RDIMM swapping. In addition to the automatic initial + * ization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during th + * e automatic MRS access to enable/disable of a particular DDR4 feature. N + * ote: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. This is not supported for mDD + * R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 + * output of MRS for the odd ranks is same as BG0 because BG1 is invalid, + * hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ran + * ks, implement address mirroring for MRS commands to during initializatio + * n and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM imp + * lements address mirroring) - 0 - Do not implement address mirroring +*/ #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT 1 -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK 0x00000002U +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT 1 +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK 0x00000002U -/*Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only). This is not supported for mD - R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of software driven MR commands (via M - CTRL0/MRCTRL1), where software is responsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Send MRS commands t - each ranks seperately - 1 - (non-DDR4) Send all commands to even and odd ranks seperately - 0 - Do not stagger accesses*/ +/* +* Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIM + * M implementations only). This is not supported for mDDR, LPDDR2, LPDDR3 + * or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of + * software driven MR commands (via MRCTRL0/MRCTRL1), where software is re + * sponsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Se + * nd MRS commands to each ranks seperately - 1 - (non-DDR4) Send all comma + * nds to even and odd ranks seperately - 0 - Do not stagger accesses +*/ #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT 0 -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK 0x00000001U +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT 0 +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK 0x00000001U -/*Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e writes to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should c - nsider both PHY requirement and ODT requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for value of tphy_wrcs - ap) If CRC feature is enabled, should be increased by 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increa - ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be increased by 1. - ODT requirement: The value programmed - n this register takes care of the ODT switch off timing requirement when switching ranks during writes. For LPDDR4, the requi - ement is ODTLoff - ODTLon - BL/2 + 1 For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY requirement - or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and round it u - to the next integer.*/ +/* +* Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive writes to differ + * ent ranks. This is used to switch the delays in the PHY to match the ran + * k requirements. This value should consider both PHY requirement and ODT + * requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for v + * alue of tphy_wrcsgap) If CRC feature is enabled, should be increased by + * 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increas + * ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be inc + * reased by 1. - ODT requirement: The value programmed in this register ta + * kes care of the ODT switch off timing requirement when switching ranks d + * uring writes. For LPDDR4, the requirement is ODTLoff - ODTLon - BL/2 + 1 + * For configurations with MEMC_FREQ_RATIO=1, program this to the larger o + * f PHY requirement or ODT requirement. For configurations with MEMC_FREQ_ + * RATIO=2, program this to the larger value divided by two and round it up + * to the next integer. +*/ #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL 0x0000066F -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT 8 -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK 0x00000F00U +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL 0x0000066F +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT 8 +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK 0x00000F00U -/*Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e reads to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should co - sider both PHY requirement and ODT requirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for value of tphy_rdcsg - p) If read preamble is set to 2tCK(DDR4/LPDDR4 only), should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 onl - ), should be increased by 1. - ODT requirement: The value programmed in this register takes care of the ODT switch off timing - requirement when switching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY r - quirement or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and - ound it up to the next integer.*/ +/* +* Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive reads to differe + * nt ranks. This is used to switch the delays in the PHY to match the rank + * requirements. This value should consider both PHY requirement and ODT r + * equirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for va + * lue of tphy_rdcsgap) If read preamble is set to 2tCK(DDR4/LPDDR4 only), + * should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 only + * ), should be increased by 1. - ODT requirement: The value programmed in + * this register takes care of the ODT switch off timing requirement when s + * witching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, + * program this to the larger of PHY requirement or ODT requirement. For co + * nfigurations with MEMC_FREQ_RATIO=2, program this to the larger value di + * vided by two and round it up to the next integer. +*/ #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL 0x0000066F -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT 4 -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK 0x000000F0U +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL 0x0000066F +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT 4 +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK 0x000000F0U -/*Only present for multi-rank configurations. Background: Reads to the same rank can be performed back-to-back. Reads to differ - nt ranks require additional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is to avoid possible data bus content - on as well as to give PHY enough time to switch the delay when changing ranks. The uMCTL2 arbitrates for bus access on a cycl - -by-cycle basis; therefore after a read is scheduled, there are few clock cycles (determined by the value on RANKCTL.diff_ran - _rd_gap register) in which only reads from the same rank are eligible to be scheduled. This prevents reads from other ranks f - om having fair access to the data bus. This parameter represents the maximum number of reads that can be scheduled consecutiv - ly to the same rank. After this number is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by the scheduler to - llow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fair - ess. This feature can be DISABLED by setting this register to 0. When set to 0, the Controller will stay on the same rank as - ong as commands are available for it. Minimum programmable value is 0 (feature disabled) and maximum programmable value is 0x - . FOR PERFORMANCE ONLY.*/ +/* +* Only present for multi-rank configurations. Background: Reads to the sam + * e rank can be performed back-to-back. Reads to different ranks require a + * dditional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is + * to avoid possible data bus contention as well as to give PHY enough tim + * e to switch the delay when changing ranks. The uMCTL2 arbitrates for bus + * access on a cycle-by-cycle basis; therefore after a read is scheduled, + * there are few clock cycles (determined by the value on RANKCTL.diff_rank + * _rd_gap register) in which only reads from the same rank are eligible to + * be scheduled. This prevents reads from other ranks from having fair acc + * ess to the data bus. This parameter represents the maximum number of rea + * ds that can be scheduled consecutively to the same rank. After this numb + * er is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by + * the scheduler to allow all ranks a fair opportunity to be scheduled. Hig + * her numbers increase bandwidth utilization, lower numbers increase fairn + * ess. This feature can be DISABLED by setting this register to 0. When se + * t to 0, the Controller will stay on the same rank as long as commands ar + * e available for it. Minimum programmable value is 0 (feature disabled) a + * nd maximum programmable value is 0xF. FOR PERFORMANCE ONLY. +*/ #undef DDRC_RANKCTL_MAX_RANK_RD_DEFVAL #undef DDRC_RANKCTL_MAX_RANK_RD_SHIFT #undef DDRC_RANKCTL_MAX_RANK_RD_MASK -#define DDRC_RANKCTL_MAX_RANK_RD_DEFVAL 0x0000066F -#define DDRC_RANKCTL_MAX_RANK_RD_SHIFT 0 -#define DDRC_RANKCTL_MAX_RANK_RD_MASK 0x0000000FU +#define DDRC_RANKCTL_MAX_RANK_RD_DEFVAL 0x0000066F +#define DDRC_RANKCTL_MAX_RANK_RD_SHIFT 0 +#define DDRC_RANKCTL_MAX_RANK_RD_MASK 0x0000000FU -/*Minimum time between write and precharge to same bank. Unit: Clocks Specifications: WL + BL/2 + tWR = approximately 8 cycles - 15 ns = 14 clocks @400MHz and less for lower frequencies where: - WL = write latency - BL = burst length. This must match th - value programmed in the BL bit of the mode register to the SDRAM. BST (burst terminate) is not supported at present. - tWR = - Write recovery time. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this - arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For configurations - with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer value.*/ +/* +* Minimum time between write and precharge to same bank. Unit: Clocks Spec + * ifications: WL + BL/2 + tWR = approximately 8 cycles + 15 ns = 14 clocks + * @400MHz and less for lower frequencies where: - WL = write latency - BL + * = burst length. This must match the value programmed in the BL bit of t + * he mode register to the SDRAM. BST (burst terminate) is not supported at + * present. - tWR = Write recovery time. This comes directly from the SDRA + * M specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this p + * arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the + * above value by 2. No rounding up. For configurations with MEMC_FREQ_RAT + * IO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it u + * p to the next integer value. +*/ #undef DDRC_DRAMTMG0_WR2PRE_DEFVAL #undef DDRC_DRAMTMG0_WR2PRE_SHIFT #undef DDRC_DRAMTMG0_WR2PRE_MASK -#define DDRC_DRAMTMG0_WR2PRE_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_WR2PRE_SHIFT 24 -#define DDRC_DRAMTMG0_WR2PRE_MASK 0x7F000000U +#define DDRC_DRAMTMG0_WR2PRE_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_WR2PRE_SHIFT 24 +#define DDRC_DRAMTMG0_WR2PRE_MASK 0x7F000000U -/*tFAW Valid only when 8 or more banks(or banks x bank groups) are present. In 8-bank design, at most 4 banks must be activated - in a rolling window of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program this to (tFAW/2) and round up to next - nteger value. In a 4-bank design, set this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. Unit: Clocks*/ +/* +* tFAW Valid only when 8 or more banks(or banks x bank groups) are present + * . In 8-bank design, at most 4 banks must be activated in a rolling windo + * w of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tFAW/2) and round up to next integer value. In a 4-bank design, se + * t this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. + * Unit: Clocks +*/ #undef DDRC_DRAMTMG0_T_FAW_DEFVAL #undef DDRC_DRAMTMG0_T_FAW_SHIFT #undef DDRC_DRAMTMG0_T_FAW_MASK -#define DDRC_DRAMTMG0_T_FAW_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_FAW_SHIFT 16 -#define DDRC_DRAMTMG0_T_FAW_MASK 0x003F0000U +#define DDRC_DRAMTMG0_T_FAW_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_FAW_SHIFT 16 +#define DDRC_DRAMTMG0_T_FAW_MASK 0x003F0000U -/*tRAS(max): Maximum time between activate and precharge to same bank. This is the maximum time that a page can be kept open Mi - imum value of this register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO=2, program this to (tRAS(max)-1)/2 - No rounding up. Unit: Multiples of 1024 clocks.*/ +/* +* tRAS(max): Maximum time between activate and precharge to same bank. Thi + * s is the maximum time that a page can be kept open Minimum value of this + * register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO + * =2, program this to (tRAS(max)-1)/2. No rounding up. Unit: Multiples of + * 1024 clocks. +*/ #undef DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL #undef DDRC_DRAMTMG0_T_RAS_MAX_SHIFT #undef DDRC_DRAMTMG0_T_RAS_MAX_MASK -#define DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_RAS_MAX_SHIFT 8 -#define DDRC_DRAMTMG0_T_RAS_MAX_MASK 0x00007F00U +#define DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_RAS_MAX_SHIFT 8 +#define DDRC_DRAMTMG0_T_RAS_MAX_MASK 0x00007F00U -/*tRAS(min): Minimum time between activate and precharge to the same bank. For configurations with MEMC_FREQ_RATIO=2, 1T mode, - rogram this to tRAS(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, program this t - (tRAS(min)/2) and round it up to the next integer value. Unit: Clocks*/ +/* +* tRAS(min): Minimum time between activate and precharge to the same bank. + * For configurations with MEMC_FREQ_RATIO=2, 1T mode, program this to tRA + * S(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T + * mode or LPDDR4 mode, program this to (tRAS(min)/2) and round it up to th + * e next integer value. Unit: Clocks +*/ #undef DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL #undef DDRC_DRAMTMG0_T_RAS_MIN_SHIFT #undef DDRC_DRAMTMG0_T_RAS_MIN_MASK -#define DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_RAS_MIN_SHIFT 0 -#define DDRC_DRAMTMG0_T_RAS_MIN_MASK 0x0000003FU +#define DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_RAS_MIN_SHIFT 0 +#define DDRC_DRAMTMG0_T_RAS_MIN_MASK 0x0000003FU -/*tXP: Minimum time after power-down exit to any operation. For DDR3, this should be programmed to tXPDLL if slow powerdown exi - is selected in MR0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For configurations with MEMC_FREQ_RATIO=2, - rogram this to (tXP/2) and round it up to the next integer value. Units: Clocks*/ +/* +* tXP: Minimum time after power-down exit to any operation. For DDR3, this + * should be programmed to tXPDLL if slow powerdown exit is selected in MR + * 0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to (tXP/2) and round it + * up to the next integer value. Units: Clocks +*/ #undef DDRC_DRAMTMG1_T_XP_DEFVAL #undef DDRC_DRAMTMG1_T_XP_SHIFT #undef DDRC_DRAMTMG1_T_XP_MASK -#define DDRC_DRAMTMG1_T_XP_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_T_XP_SHIFT 16 -#define DDRC_DRAMTMG1_T_XP_MASK 0x001F0000U +#define DDRC_DRAMTMG1_T_XP_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_T_XP_SHIFT 16 +#define DDRC_DRAMTMG1_T_XP_MASK 0x001F0000U -/*tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL/2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - D - R4: Max of following two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 - LPDDR2: Depends on if it's LPDDR2 - S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + tRTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) - 4 - LPDDR4: BL - 2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For conf - gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer val - e. Unit: Clocks.*/ +/* +* tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL + * /2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - DDR4: Max of followi + * ng two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 + * - LPDDR2: Depends on if it's LPDDR2-S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + t + * RTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) + * - 4 - LPDDR4: BL/2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_ + * RATIO=2, 1T mode, divide the above value by 2. No rounding up. For confi + * gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the abo + * ve value by 2 and round it up to the next integer value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG1_RD2PRE_DEFVAL #undef DDRC_DRAMTMG1_RD2PRE_SHIFT #undef DDRC_DRAMTMG1_RD2PRE_MASK -#define DDRC_DRAMTMG1_RD2PRE_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_RD2PRE_SHIFT 8 -#define DDRC_DRAMTMG1_RD2PRE_MASK 0x00001F00U +#define DDRC_DRAMTMG1_RD2PRE_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_RD2PRE_SHIFT 8 +#define DDRC_DRAMTMG1_RD2PRE_MASK 0x00001F00U -/*tRC: Minimum time between activates to same bank. For configurations with MEMC_FREQ_RATIO=2, program this to (tRC/2) and roun - up to next integer value. Unit: Clocks.*/ +/* +* tRC: Minimum time between activates to same bank. For configurations wit + * h MEMC_FREQ_RATIO=2, program this to (tRC/2) and round up to next intege + * r value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG1_T_RC_DEFVAL #undef DDRC_DRAMTMG1_T_RC_SHIFT #undef DDRC_DRAMTMG1_T_RC_MASK -#define DDRC_DRAMTMG1_T_RC_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_T_RC_SHIFT 0 -#define DDRC_DRAMTMG1_T_RC_MASK 0x0000007FU +#define DDRC_DRAMTMG1_T_RC_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_T_RC_SHIFT 0 +#define DDRC_DRAMTMG1_T_RC_MASK 0x0000007FU -/*Set to WL Time from write command to write data on SDRAM interface. This must be set to WL. For mDDR, it should normally be s - t to 1. Note that, depending on the PHY, if using RDIMM, it may be necessary to use a value of WL + 1 to compensate for the e - tra cycle of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above - equation by 2, and round it up to next integer. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAININ - is set), as the DFI read and write latencies defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks*/ +/* +* Set to WL Time from write command to write data on SDRAM interface. This + * must be set to WL. For mDDR, it should normally be set to 1. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use a valu + * e of WL + 1 to compensate for the extra cycle of latency through the RDI + * MM For configurations with MEMC_FREQ_RATIO=2, divide the value calculate + * d using the above equation by 2, and round it up to next integer. This r + * egister field is not required for DDR2 and DDR3 (except if MEMC_TRAINING + * is set), as the DFI read and write latencies defined in DFITMG0 and DFI + * TMG1 are sufficient for those protocols Unit: clocks +*/ #undef DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL #undef DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT #undef DDRC_DRAMTMG2_WRITE_LATENCY_MASK -#define DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT 24 -#define DDRC_DRAMTMG2_WRITE_LATENCY_MASK 0x3F000000U +#define DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT 24 +#define DDRC_DRAMTMG2_WRITE_LATENCY_MASK 0x3F000000U -/*Set to RL Time from read command to read data on SDRAM interface. This must be set to RL. Note that, depending on the PHY, if - using RDIMM, it mat be necessary to use a value of RL + 1 to compensate for the extra cycle of latency through the RDIMM For - onfigurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next inte - er. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAINING is set), as the DFI read and write latenci - s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks*/ +/* +* Set to RL Time from read command to read data on SDRAM interface. This m + * ust be set to RL. Note that, depending on the PHY, if using RDIMM, it ma + * t be necessary to use a value of RL + 1 to compensate for the extra cycl + * e of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2 + * , divide the value calculated using the above equation by 2, and round i + * t up to next integer. This register field is not required for DDR2 and D + * DR3 (except if MEMC_TRAINING is set), as the DFI read and write latencie + * s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit + * : clocks +*/ #undef DDRC_DRAMTMG2_READ_LATENCY_DEFVAL #undef DDRC_DRAMTMG2_READ_LATENCY_SHIFT #undef DDRC_DRAMTMG2_READ_LATENCY_MASK -#define DDRC_DRAMTMG2_READ_LATENCY_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_READ_LATENCY_SHIFT 16 -#define DDRC_DRAMTMG2_READ_LATENCY_MASK 0x003F0000U +#define DDRC_DRAMTMG2_READ_LATENCY_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_READ_LATENCY_SHIFT 16 +#define DDRC_DRAMTMG2_READ_LATENCY_MASK 0x003F0000U -/*DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL LPDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL - PDDR4(DQ ODT is Disabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL LPDDR4(DQ ODT is Enabled) : RL + B - /2 + RU(tDQSCKmax/tCK) + RD_POSTAMBLE - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write command. Include - time for bus turnaround and all per-bank, per-rank, and global constraints. Unit: Clocks. Where: - WL = write latency - BL = - urst length. This must match the value programmed in the BL bit of the mode register to the SDRAM - RL = read latency = CAS l - tency - WR_PREAMBLE = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = read postamble. This is unique to L - DDR4. For LPDDR2/LPDDR3/LPDDR4, if derating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should be used. For conf - gurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer.*/ +/* +* DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL L + * PDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL LPDDR4(DQ ODT is Di + * sabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL + * LPDDR4(DQ ODT is Enabled) : RL + BL/2 + RU(tDQSCKmax/tCK) + RD_POSTAMBL + * E - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write + * command. Include time for bus turnaround and all per-bank, per-rank, an + * d global constraints. Unit: Clocks. Where: - WL = write latency - BL = b + * urst length. This must match the value programmed in the BL bit of the m + * ode register to the SDRAM - RL = read latency = CAS latency - WR_PREAMBL + * E = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = + * read postamble. This is unique to LPDDR4. For LPDDR2/LPDDR3/LPDDR4, if d + * erating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should + * be used. For configurations with MEMC_FREQ_RATIO=2, divide the value cal + * culated using the above equation by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG2_RD2WR_DEFVAL #undef DDRC_DRAMTMG2_RD2WR_SHIFT #undef DDRC_DRAMTMG2_RD2WR_MASK -#define DDRC_DRAMTMG2_RD2WR_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_RD2WR_SHIFT 8 -#define DDRC_DRAMTMG2_RD2WR_MASK 0x00003F00U +#define DDRC_DRAMTMG2_RD2WR_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_RD2WR_SHIFT 8 +#define DDRC_DRAMTMG2_RD2WR_MASK 0x00003F00U -/*DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimum time from write command to read command for same ba - k group. In others, minimum time from write command to read command. Includes time for bus turnaround, recovery times, and al - per-bank, per-rank, and global constraints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burs - length. This must match the value programmed in the BL bit of the mode register to the SDRAM - tWTR_L = internal write to re - d command delay for same bank group. This comes directly from the SDRAM specification. - tWTR = internal write to read comman - delay. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 operation. For configu - ations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer.*/ +/* +* DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimu + * m time from write command to read command for same bank group. In others + * , minimum time from write command to read command. Includes time for bus + * turnaround, recovery times, and all per-bank, per-rank, and global cons + * traints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity la + * tency - BL = burst length. This must match the value programmed in the B + * L bit of the mode register to the SDRAM - tWTR_L = internal write to rea + * d command delay for same bank group. This comes directly from the SDRAM + * specification. - tWTR = internal write to read command delay. This comes + * directly from the SDRAM specification. Add one extra cycle for LPDDR2/L + * PDDR3/LPDDR4 operation. For configurations with MEMC_FREQ_RATIO=2, divid + * e the value calculated using the above equation by 2, and round it up to + * next integer. +*/ #undef DDRC_DRAMTMG2_WR2RD_DEFVAL #undef DDRC_DRAMTMG2_WR2RD_SHIFT #undef DDRC_DRAMTMG2_WR2RD_MASK -#define DDRC_DRAMTMG2_WR2RD_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_WR2RD_SHIFT 0 -#define DDRC_DRAMTMG2_WR2RD_MASK 0x0000003FU +#define DDRC_DRAMTMG2_WR2RD_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_WR2RD_SHIFT 0 +#define DDRC_DRAMTMG2_WR2RD_MASK 0x0000003FU -/*Time to wait after a mode register write or read (MRW or MRR). Present only in designs configured to support LPDDR2, LPDDR3 o - LPDDR4. LPDDR2 typically requires value of 5. LPDDR3 typically requires value of 10. LPDDR4: Set this to the larger of tMRW - nd tMRWCKEL. For LPDDR2, this register is used for the time from a MRW/MRR to all other commands. For LDPDR3, this register i - used for the time from a MRW/MRR to a MRW/MRR.*/ +/* +* Time to wait after a mode register write or read (MRW or MRR). Present o + * nly in designs configured to support LPDDR2, LPDDR3 or LPDDR4. LPDDR2 ty + * pically requires value of 5. LPDDR3 typically requires value of 10. LPDD + * R4: Set this to the larger of tMRW and tMRWCKEL. For LPDDR2, this regist + * er is used for the time from a MRW/MRR to all other commands. For LDPDR3 + * , this register is used for the time from a MRW/MRR to a MRW/MRR. +*/ #undef DDRC_DRAMTMG3_T_MRW_DEFVAL #undef DDRC_DRAMTMG3_T_MRW_SHIFT #undef DDRC_DRAMTMG3_T_MRW_MASK -#define DDRC_DRAMTMG3_T_MRW_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MRW_SHIFT 20 -#define DDRC_DRAMTMG3_T_MRW_MASK 0x3FF00000U +#define DDRC_DRAMTMG3_T_MRW_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MRW_SHIFT 20 +#define DDRC_DRAMTMG3_T_MRW_MASK 0x3FF00000U -/*tMRD: Cycles to wait after a mode register write or read. Depending on the connected SDRAM, tMRD represents: DDR2/mDDR: Time - rom MRS to any command DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Time from MRS to non-MRS command For c - nfigurations with MEMC_FREQ_RATIO=2, program this to (tMRD/2) and round it up to the next integer value. If C/A parity for DD - 4 is used, set to tMRD_PAR(tMOD+PL) instead.*/ +/* +* tMRD: Cycles to wait after a mode register write or read. Depending on t + * he connected SDRAM, tMRD represents: DDR2/mDDR: Time from MRS to any com + * mand DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Tim + * e from MRS to non-MRS command For configurations with MEMC_FREQ_RATIO=2, + * program this to (tMRD/2) and round it up to the next integer value. If + * C/A parity for DDR4 is used, set to tMRD_PAR(tMOD+PL) instead. +*/ #undef DDRC_DRAMTMG3_T_MRD_DEFVAL #undef DDRC_DRAMTMG3_T_MRD_SHIFT #undef DDRC_DRAMTMG3_T_MRD_MASK -#define DDRC_DRAMTMG3_T_MRD_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MRD_SHIFT 12 -#define DDRC_DRAMTMG3_T_MRD_MASK 0x0003F000U +#define DDRC_DRAMTMG3_T_MRD_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MRD_SHIFT 12 +#define DDRC_DRAMTMG3_T_MRD_MASK 0x0003F000U -/*tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode command and following non-load mode command. If C/A pari - y for DDR4 is used, set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or tMOD/2 (rounded up to next integer - if MEMC_FREQ_RATIO=2. Note that if using RDIMM, depending on the PHY, it may be necessary to use a value of tMOD + 1 or (tMO - + 1)/2 to compensate for the extra cycle of latency applied to mode register writes by the RDIMM chip.*/ +/* +* tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode com + * mand and following non-load mode command. If C/A parity for DDR4 is used + * , set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or + * tMOD/2 (rounded up to next integer) if MEMC_FREQ_RATIO=2. Note that if + * using RDIMM, depending on the PHY, it may be necessary to use a value of + * tMOD + 1 or (tMOD + 1)/2 to compensate for the extra cycle of latency a + * pplied to mode register writes by the RDIMM chip. +*/ #undef DDRC_DRAMTMG3_T_MOD_DEFVAL #undef DDRC_DRAMTMG3_T_MOD_SHIFT #undef DDRC_DRAMTMG3_T_MOD_MASK -#define DDRC_DRAMTMG3_T_MOD_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MOD_SHIFT 0 -#define DDRC_DRAMTMG3_T_MOD_MASK 0x000003FFU +#define DDRC_DRAMTMG3_T_MOD_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MOD_SHIFT 0 +#define DDRC_DRAMTMG3_T_MOD_MASK 0x000003FFU -/*tRCD - tAL: Minimum time from activate to read or write command to same bank. For configurations with MEMC_FREQ_RATIO=2, prog - am this to ((tRCD - tAL)/2) and round it up to the next integer value. Minimum value allowed for this register is 1, which im - lies minimum (tRCD - tAL) value to be 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks.*/ +/* +* tRCD - tAL: Minimum time from activate to read or write command to same + * bank. For configurations with MEMC_FREQ_RATIO=2, program this to ((tRCD + * - tAL)/2) and round it up to the next integer value. Minimum value allow + * ed for this register is 1, which implies minimum (tRCD - tAL) value to b + * e 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RCD_DEFVAL #undef DDRC_DRAMTMG4_T_RCD_SHIFT #undef DDRC_DRAMTMG4_T_RCD_MASK -#define DDRC_DRAMTMG4_T_RCD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RCD_SHIFT 24 -#define DDRC_DRAMTMG4_T_RCD_MASK 0x1F000000U +#define DDRC_DRAMTMG4_T_RCD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RCD_SHIFT 24 +#define DDRC_DRAMTMG4_T_RCD_MASK 0x1F000000U -/*DDR4: tCCD_L: This is the minimum time between two reads or two writes for same bank group. Others: tCCD: This is the minimum - time between two reads or two writes. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_L/2 or tCCD/2) and rou - d it up to the next integer value. Unit: clocks.*/ +/* +* DDR4: tCCD_L: This is the minimum time between two reads or two writes f + * or same bank group. Others: tCCD: This is the minimum time between two r + * eads or two writes. For configurations with MEMC_FREQ_RATIO=2, program t + * his to (tCCD_L/2 or tCCD/2) and round it up to the next integer value. U + * nit: clocks. +*/ #undef DDRC_DRAMTMG4_T_CCD_DEFVAL #undef DDRC_DRAMTMG4_T_CCD_SHIFT #undef DDRC_DRAMTMG4_T_CCD_MASK -#define DDRC_DRAMTMG4_T_CCD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_CCD_SHIFT 16 -#define DDRC_DRAMTMG4_T_CCD_MASK 0x000F0000U +#define DDRC_DRAMTMG4_T_CCD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_CCD_SHIFT 16 +#define DDRC_DRAMTMG4_T_CCD_MASK 0x000F0000U -/*DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' for same bank group. Others: tRRD: Minimum time betwee - activates from bank 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program this to (tRRD_L/2 or tRRD/2) and round - it up to the next integer value. Unit: Clocks.*/ +/* +* DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' f + * or same bank group. Others: tRRD: Minimum time between activates from ba + * nk 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tRRD_L/2 or tRRD/2) and round it up to the next integer value. Uni + * t: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RRD_DEFVAL #undef DDRC_DRAMTMG4_T_RRD_SHIFT #undef DDRC_DRAMTMG4_T_RRD_MASK -#define DDRC_DRAMTMG4_T_RRD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RRD_SHIFT 8 -#define DDRC_DRAMTMG4_T_RRD_MASK 0x00000F00U +#define DDRC_DRAMTMG4_T_RRD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RRD_SHIFT 8 +#define DDRC_DRAMTMG4_T_RRD_MASK 0x00000F00U -/*tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ_RATIO=1 configurations, t_rp should be set to RoundU - (tRP/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(tRP/tCK)/2) + 1. For MEMC_FREQ_RATIO - 2 configurations in LPDDR4, t_rp should be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks.*/ +/* +* tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ + * _RATIO=1 configurations, t_rp should be set to RoundUp(tRP/tCK). For MEM + * C_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(t + * RP/tCK)/2) + 1. For MEMC_FREQ_RATIO=2 configurations in LPDDR4, t_rp sho + * uld be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RP_DEFVAL #undef DDRC_DRAMTMG4_T_RP_SHIFT #undef DDRC_DRAMTMG4_T_RP_MASK -#define DDRC_DRAMTMG4_T_RP_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RP_SHIFT 0 -#define DDRC_DRAMTMG4_T_RP_MASK 0x0000001FU +#define DDRC_DRAMTMG4_T_RP_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RP_SHIFT 0 +#define DDRC_DRAMTMG4_T_RP_MASK 0x0000001FU -/*This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stab - e time before SRX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEH - DDR2: 1 - DDR3: tCKSRX - DDR4: - tCKSRX For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next in - eger.*/ +/* +* This is the time before Self Refresh Exit that CK is maintained as a val + * id clock before issuing SRX. Specifies the clock stable time before SRX. + * Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCK + * EH - DDR2: 1 - DDR3: tCKSRX - DDR4: tCKSRX For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKSRX_DEFVAL #undef DDRC_DRAMTMG5_T_CKSRX_SHIFT #undef DDRC_DRAMTMG5_T_CKSRX_MASK -#define DDRC_DRAMTMG5_T_CKSRX_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKSRX_SHIFT 24 -#define DDRC_DRAMTMG5_T_CKSRX_MASK 0x0F000000U +#define DDRC_DRAMTMG5_T_CKSRX_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKSRX_SHIFT 24 +#define DDRC_DRAMTMG5_T_CKSRX_MASK 0x0F000000U -/*This is the time after Self Refresh Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay afte - SRE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 - DDR3: max (10 ns, 5 tCK) - DDR4: - ax (10 ns, 5 tCK) For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up - to next integer.*/ +/* +* This is the time after Self Refresh Down Entry that CK is maintained as + * a valid clock. Specifies the clock disable delay after SRE. Recommended + * settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 + * - DDR3: max (10 ns, 5 tCK) - DDR4: max (10 ns, 5 tCK) For configurations + * with MEMC_FREQ_RATIO=2, program this to recommended value divided by tw + * o and round it up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKSRE_DEFVAL #undef DDRC_DRAMTMG5_T_CKSRE_SHIFT #undef DDRC_DRAMTMG5_T_CKSRE_MASK -#define DDRC_DRAMTMG5_T_CKSRE_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKSRE_SHIFT 16 -#define DDRC_DRAMTMG5_T_CKSRE_MASK 0x000F0000U +#define DDRC_DRAMTMG5_T_CKSRE_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKSRE_SHIFT 16 +#define DDRC_DRAMTMG5_T_CKSRE_MASK 0x000F0000U -/*Minimum CKE low width for Self refresh or Self refresh power down entry to exit timing in memory clock cycles. Recommended se - tings: - mDDR: tRFC - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: tCKE - DDR3: tCKE + 1 - DDR4: tCKE - 1 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next intege - .*/ +/* +* Minimum CKE low width for Self refresh or Self refresh power down entry + * to exit timing in memory clock cycles. Recommended settings: - mDDR: tRF + * C - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: + * tCKE - DDR3: tCKE + 1 - DDR4: tCKE + 1 For configurations with MEMC_FREQ + * _RATIO=2, program this to recommended value divided by two and round it + * up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKESR_DEFVAL #undef DDRC_DRAMTMG5_T_CKESR_SHIFT #undef DDRC_DRAMTMG5_T_CKESR_MASK -#define DDRC_DRAMTMG5_T_CKESR_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKESR_SHIFT 8 -#define DDRC_DRAMTMG5_T_CKESR_MASK 0x00003F00U +#define DDRC_DRAMTMG5_T_CKESR_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKESR_SHIFT 8 +#define DDRC_DRAMTMG5_T_CKESR_MASK 0x00003F00U -/*Minimum number of cycles of CKE HIGH/LOW during power-down and self refresh. - LPDDR2/LPDDR3 mode: Set this to the larger of - CKE or tCKESR - LPDDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/non-LPDDR3/non-LPDDR4 designs: Set - his to tCKE value. For configurations with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and round it up to th - next integer value. Unit: Clocks.*/ +/* +* Minimum number of cycles of CKE HIGH/LOW during power-down and self refr + * esh. - LPDDR2/LPDDR3 mode: Set this to the larger of tCKE or tCKESR - LP + * DDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/ + * non-LPDDR3/non-LPDDR4 designs: Set this to tCKE value. For configuration + * s with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and + * round it up to the next integer value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG5_T_CKE_DEFVAL #undef DDRC_DRAMTMG5_T_CKE_SHIFT #undef DDRC_DRAMTMG5_T_CKE_MASK -#define DDRC_DRAMTMG5_T_CKE_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKE_SHIFT 0 -#define DDRC_DRAMTMG5_T_CKE_MASK 0x0000001FU +#define DDRC_DRAMTMG5_T_CKE_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKE_SHIFT 0 +#define DDRC_DRAMTMG5_T_CKE_MASK 0x0000001FU -/*This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after - PDE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, program this to recom - ended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3 - devices.*/ +/* +* This is the time after Deep Power Down Entry that CK is maintained as a + * valid clock. Specifies the clock disable delay after DPDE. Recommended s + * ettings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. This is only present for designs supporting mDDR + * or LPDDR2/LPDDR3 devices. +*/ #undef DDRC_DRAMTMG6_T_CKDPDE_DEFVAL #undef DDRC_DRAMTMG6_T_CKDPDE_SHIFT #undef DDRC_DRAMTMG6_T_CKDPDE_MASK -#define DDRC_DRAMTMG6_T_CKDPDE_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKDPDE_SHIFT 24 -#define DDRC_DRAMTMG6_T_CKDPDE_MASK 0x0F000000U +#define DDRC_DRAMTMG6_T_CKDPDE_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKDPDE_SHIFT 24 +#define DDRC_DRAMTMG6_T_CKDPDE_MASK 0x0F000000U -/*This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock - table time before DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, pr - gram this to recommended value divided by two and round it up to next integer. This is only present for designs supporting mD - R or LPDDR2 devices.*/ +/* +* This is the time before Deep Power Down Exit that CK is maintained as a + * valid clock before issuing DPDX. Specifies the clock stable time before + * DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For config + * urations with MEMC_FREQ_RATIO=2, program this to recommended value divid + * ed by two and round it up to next integer. This is only present for desi + * gns supporting mDDR or LPDDR2 devices. +*/ #undef DDRC_DRAMTMG6_T_CKDPDX_DEFVAL #undef DDRC_DRAMTMG6_T_CKDPDX_SHIFT #undef DDRC_DRAMTMG6_T_CKDPDX_MASK -#define DDRC_DRAMTMG6_T_CKDPDX_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKDPDX_SHIFT 16 -#define DDRC_DRAMTMG6_T_CKDPDX_MASK 0x000F0000U +#define DDRC_DRAMTMG6_T_CKDPDX_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKDPDX_SHIFT 16 +#define DDRC_DRAMTMG6_T_CKDPDX_MASK 0x000F0000U -/*This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing Clock Stop Exit. Specifies the - lock stable time before next command after Clock Stop Exit. Recommended settings: - mDDR: 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + - 2 - LPDDR4: tXP + 2 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it - p to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time before Clock Stop Exit that CK is maintained as a valid + * clock before issuing Clock Stop Exit. Specifies the clock stable time b + * efore next command after Clock Stop Exit. Recommended settings: - mDDR: + * 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + 2 - LPDDR4: tXP + 2 For configuratio + * ns with MEMC_FREQ_RATIO=2, program this to recommended value divided by + * two and round it up to next integer. This is only present for designs su + * pporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG6_T_CKCSX_DEFVAL #undef DDRC_DRAMTMG6_T_CKCSX_SHIFT #undef DDRC_DRAMTMG6_T_CKCSX_MASK -#define DDRC_DRAMTMG6_T_CKCSX_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKCSX_SHIFT 0 -#define DDRC_DRAMTMG6_T_CKCSX_MASK 0x0000000FU +#define DDRC_DRAMTMG6_T_CKCSX_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKCSX_SHIFT 0 +#define DDRC_DRAMTMG6_T_CKCSX_MASK 0x0000000FU -/*This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. - ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configurations with MEMC_FREQ_RATIO=2, program t - is to recommended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or L - DDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time after Power Down Entry that CK is maintained as a valid + * clock. Specifies the clock disable delay after PDE. Recommended setting + * s: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configuration + * s with MEMC_FREQ_RATIO=2, program this to recommended value divided by t + * wo and round it up to next integer. This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG7_T_CKPDE_DEFVAL #undef DDRC_DRAMTMG7_T_CKPDE_SHIFT #undef DDRC_DRAMTMG7_T_CKPDE_MASK -#define DDRC_DRAMTMG7_T_CKPDE_DEFVAL 0x00000202 -#define DDRC_DRAMTMG7_T_CKPDE_SHIFT 8 -#define DDRC_DRAMTMG7_T_CKPDE_MASK 0x00000F00U +#define DDRC_DRAMTMG7_T_CKPDE_DEFVAL 0x00000202 +#define DDRC_DRAMTMG7_T_CKPDE_SHIFT 8 +#define DDRC_DRAMTMG7_T_CKPDE_MASK 0x00000F00U -/*This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable - time before PDX. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For configurations with MEMC_FREQ_RATIO= - , program this to recommended value divided by two and round it up to next integer. This is only present for designs supporti - g mDDR or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time before Power Down Exit that CK is maintained as a valid + * clock before issuing PDX. Specifies the clock stable time before PDX. R + * ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For c + * onfigurations with MEMC_FREQ_RATIO=2, program this to recommended value + * divided by two and round it up to next integer. This is only present for + * designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG7_T_CKPDX_DEFVAL #undef DDRC_DRAMTMG7_T_CKPDX_SHIFT #undef DDRC_DRAMTMG7_T_CKPDX_MASK -#define DDRC_DRAMTMG7_T_CKPDX_DEFVAL 0x00000202 -#define DDRC_DRAMTMG7_T_CKPDX_SHIFT 0 -#define DDRC_DRAMTMG7_T_CKPDX_MASK 0x0000000FU +#define DDRC_DRAMTMG7_T_CKPDX_DEFVAL 0x00000202 +#define DDRC_DRAMTMG7_T_CKPDX_SHIFT 0 +#define DDRC_DRAMTMG7_T_CKPDX_MASK 0x0000000FU -/*tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and Geardown mode). For configurations with MEMC_FREQ_RAT - O=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Thi - is applicable to only ZQCL/ZQCS commands. Note: Ensure this is less than or equal to t_xs_x32.*/ +/* +* tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and + * Geardown mode). For configurations with MEMC_FREQ_RATIO=2, program this + * to the above value divided by 2 and round up to next integer value. Unit + * : Multiples of 32 clocks. Note: This is applicable to only ZQCL/ZQCS com + * mands. Note: Ensure this is less than or equal to t_xs_x32. +*/ #undef DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_FAST_X32_MASK -#define DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT 24 -#define DDRC_DRAMTMG8_T_XS_FAST_X32_MASK 0x7F000000U +#define DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT 24 +#define DDRC_DRAMTMG8_T_XS_FAST_X32_MASK 0x7F000000U -/*tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in Self Refresh Abort. For configurations with MEMC_FREQ_ - ATIO=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: - nsure this is less than or equal to t_xs_x32.*/ +/* +* tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in S + * elf Refresh Abort. For configurations with MEMC_FREQ_RATIO=2, program th + * is to the above value divided by 2 and round up to next integer value. U + * nit: Multiples of 32 clocks. Note: Ensure this is less than or equal to + * t_xs_x32. +*/ #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT 16 -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK 0x007F0000U +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT 16 +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK 0x007F0000U -/*tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - bove value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DR4 SDRAMs.*/ +/* +* tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For config + * urations with MEMC_FREQ_RATIO=2, program this to the above value divided + * by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. +*/ #undef DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_DLL_X32_MASK -#define DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT 8 -#define DDRC_DRAMTMG8_T_XS_DLL_X32_MASK 0x00007F00U +#define DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT 8 +#define DDRC_DRAMTMG8_T_XS_DLL_X32_MASK 0x00007F00U -/*tXS: Exit Self Refresh to commands not requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DDR4 SDRAMs.*/ +/* +* tXS: Exit Self Refresh to commands not requiring a locked DLL. For confi + * gurations with MEMC_FREQ_RATIO=2, program this to the above value divide + * d by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. +*/ #undef DDRC_DRAMTMG8_T_XS_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_X32_MASK -#define DDRC_DRAMTMG8_T_XS_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_X32_SHIFT 0 -#define DDRC_DRAMTMG8_T_XS_X32_MASK 0x0000007FU +#define DDRC_DRAMTMG8_T_XS_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_X32_SHIFT 0 +#define DDRC_DRAMTMG8_T_XS_X32_MASK 0x0000007FU -/*DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present only with MEMC_FREQ_RATIO=2*/ +/* +* DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present o + * nly with MEMC_FREQ_RATIO=2 +*/ #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT 30 -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK 0x40000000U +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT 30 +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK 0x40000000U -/*tCCD_S: This is the minimum time between two reads or two writes for different bank group. For bank switching (from bank 'a' - o bank 'b'), the minimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_S/2) and ro - nd it up to the next integer value. Present only in designs configured to support DDR4. Unit: clocks.*/ +/* +* tCCD_S: This is the minimum time between two reads or two writes for dif + * ferent bank group. For bank switching (from bank 'a' to bank 'b'), the m + * inimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2 + * , program this to (tCCD_S/2) and round it up to the next integer value. + * Present only in designs configured to support DDR4. Unit: clocks. +*/ #undef DDRC_DRAMTMG9_T_CCD_S_DEFVAL #undef DDRC_DRAMTMG9_T_CCD_S_SHIFT #undef DDRC_DRAMTMG9_T_CCD_S_MASK -#define DDRC_DRAMTMG9_T_CCD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_T_CCD_S_SHIFT 16 -#define DDRC_DRAMTMG9_T_CCD_S_MASK 0x00070000U +#define DDRC_DRAMTMG9_T_CCD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_T_CCD_S_SHIFT 16 +#define DDRC_DRAMTMG9_T_CCD_S_MASK 0x00070000U -/*tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for different bank group. For configurations with MEMC_FREQ_ - ATIO=2, program this to (tRRD_S/2) and round it up to the next integer value. Present only in designs configured to support D - R4. Unit: Clocks.*/ +/* +* tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for dif + * ferent bank group. For configurations with MEMC_FREQ_RATIO=2, program th + * is to (tRRD_S/2) and round it up to the next integer value. Present only + * in designs configured to support DDR4. Unit: Clocks. +*/ #undef DDRC_DRAMTMG9_T_RRD_S_DEFVAL #undef DDRC_DRAMTMG9_T_RRD_S_SHIFT #undef DDRC_DRAMTMG9_T_RRD_S_MASK -#define DDRC_DRAMTMG9_T_RRD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_T_RRD_S_SHIFT 8 -#define DDRC_DRAMTMG9_T_RRD_S_MASK 0x00000F00U +#define DDRC_DRAMTMG9_T_RRD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_T_RRD_S_SHIFT 8 +#define DDRC_DRAMTMG9_T_RRD_S_MASK 0x00000F00U -/*CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command for different bank group. Includes time for bus turn - round, recovery times, and all per-bank, per-rank, and global constraints. Present only in designs configured to support DDR4 - Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burst length. This must match the value programm - d in the BL bit of the mode register to the SDRAM - tWTR_S = internal write to read command delay for different bank group. T - is comes directly from the SDRAM specification. For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using - he above equation by 2, and round it up to next integer.*/ +/* +* CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command + * for different bank group. Includes time for bus turnaround, recovery ti + * mes, and all per-bank, per-rank, and global constraints. Present only in + * designs configured to support DDR4. Unit: Clocks. Where: - CWL = CAS wr + * ite latency - PL = Parity latency - BL = burst length. This must match t + * he value programmed in the BL bit of the mode register to the SDRAM - tW + * TR_S = internal write to read command delay for different bank group. Th + * is comes directly from the SDRAM specification. For configurations with + * MEMC_FREQ_RATIO=2, divide the value calculated using the above equation + * by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG9_WR2RD_S_DEFVAL #undef DDRC_DRAMTMG9_WR2RD_S_SHIFT #undef DDRC_DRAMTMG9_WR2RD_S_MASK -#define DDRC_DRAMTMG9_WR2RD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_WR2RD_S_SHIFT 0 -#define DDRC_DRAMTMG9_WR2RD_S_MASK 0x0000003FU +#define DDRC_DRAMTMG9_WR2RD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_WR2RD_S_SHIFT 0 +#define DDRC_DRAMTMG9_WR2RD_S_MASK 0x0000003FU -/*tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program - this to (tXMPDLL/2) and round it up to the next integer value. Present only in designs configured to support DDR4. Unit: Mult - ples of 32 clocks.*/ +/* +* tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DL + * L. For configurations with MEMC_FREQ_RATIO=2, program this to (tXMPDLL/2 + * ) and round it up to the next integer value. Present only in designs con + * figured to support DDR4. Unit: Multiples of 32 clocks. +*/ #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT 24 -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK 0x7F000000U +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT 24 +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK 0x7F000000U -/*tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For configurations with MEMC_FREQ_RATIO=2, program this t - RoundUp(tMPX_LH/2)+1. Present only in designs configured to support DDR4. Unit: clocks.*/ +/* +* tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For + * configurations with MEMC_FREQ_RATIO=2, program this to RoundUp(tMPX_LH/2 + * )+1. Present only in designs configured to support DDR4. Unit: clocks. +*/ #undef DDRC_DRAMTMG11_T_MPX_LH_DEFVAL #undef DDRC_DRAMTMG11_T_MPX_LH_SHIFT #undef DDRC_DRAMTMG11_T_MPX_LH_MASK -#define DDRC_DRAMTMG11_T_MPX_LH_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_MPX_LH_SHIFT 16 -#define DDRC_DRAMTMG11_T_MPX_LH_MASK 0x001F0000U +#define DDRC_DRAMTMG11_T_MPX_LH_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_MPX_LH_SHIFT 16 +#define DDRC_DRAMTMG11_T_MPX_LH_MASK 0x001F0000U -/*tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_FREQ_RATIO=2, program this to (tMPX_S/2) and round it - up to the next integer value. Present only in designs configured to support DDR4. Unit: Clocks.*/ +/* +* tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_ + * FREQ_RATIO=2, program this to (tMPX_S/2) and round it up to the next int + * eger value. Present only in designs configured to support DDR4. Unit: Cl + * ocks. +*/ #undef DDRC_DRAMTMG11_T_MPX_S_DEFVAL #undef DDRC_DRAMTMG11_T_MPX_S_SHIFT #undef DDRC_DRAMTMG11_T_MPX_S_MASK -#define DDRC_DRAMTMG11_T_MPX_S_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_MPX_S_SHIFT 8 -#define DDRC_DRAMTMG11_T_MPX_S_MASK 0x00000300U +#define DDRC_DRAMTMG11_T_MPX_S_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_MPX_S_SHIFT 8 +#define DDRC_DRAMTMG11_T_MPX_S_MASK 0x00000300U -/*tCKMPE: Minimum valid clock requirement after MPSM entry. Present only in designs configured to support DDR4. Unit: Clocks. F - r configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next i - teger.*/ +/* +* tCKMPE: Minimum valid clock requirement after MPSM entry. Present only i + * n designs configured to support DDR4. Unit: Clocks. For configurations w + * ith MEMC_FREQ_RATIO=2, divide the value calculated using the above equat + * ion by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG11_T_CKMPE_DEFVAL #undef DDRC_DRAMTMG11_T_CKMPE_SHIFT #undef DDRC_DRAMTMG11_T_CKMPE_MASK -#define DDRC_DRAMTMG11_T_CKMPE_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_CKMPE_SHIFT 0 -#define DDRC_DRAMTMG11_T_CKMPE_MASK 0x0000001FU +#define DDRC_DRAMTMG11_T_CKMPE_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_CKMPE_SHIFT 0 +#define DDRC_DRAMTMG11_T_CKMPE_MASK 0x0000001FU -/*tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larger of tESCKE or tCMDCKE For configurations with MEMC_ - REQ_RATIO=2, program this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer value.*/ +/* +* tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larg + * er of tESCKE or tCMDCKE For configurations with MEMC_FREQ_RATIO=2, progr + * am this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer valu + * e. +*/ #undef DDRC_DRAMTMG12_T_CMDCKE_DEFVAL #undef DDRC_DRAMTMG12_T_CMDCKE_SHIFT #undef DDRC_DRAMTMG12_T_CMDCKE_MASK -#define DDRC_DRAMTMG12_T_CMDCKE_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_CMDCKE_SHIFT 16 -#define DDRC_DRAMTMG12_T_CMDCKE_MASK 0x00030000U +#define DDRC_DRAMTMG12_T_CMDCKE_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_CMDCKE_SHIFT 16 +#define DDRC_DRAMTMG12_T_CMDCKE_MASK 0x00030000U -/*tCKEHCMD: Valid command requirement after CKE input HIGH. For configurations with MEMC_FREQ_RATIO=2, program this to (tCKEHCM - /2) and round it up to next integer value.*/ +/* +* tCKEHCMD: Valid command requirement after CKE input HIGH. For configurat + * ions with MEMC_FREQ_RATIO=2, program this to (tCKEHCMD/2) and round it u + * p to next integer value. +*/ #undef DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL #undef DDRC_DRAMTMG12_T_CKEHCMD_SHIFT #undef DDRC_DRAMTMG12_T_CKEHCMD_MASK -#define DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_CKEHCMD_SHIFT 8 -#define DDRC_DRAMTMG12_T_CKEHCMD_MASK 0x00000F00U +#define DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_CKEHCMD_SHIFT 8 +#define DDRC_DRAMTMG12_T_CKEHCMD_MASK 0x00000F00U -/*tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. For configurations with MEMC_FREQ_RATIO=2, program th - s to (tMRD_PDA/2) and round it up to next integer value.*/ +/* +* tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. + * For configurations with MEMC_FREQ_RATIO=2, program this to (tMRD_PDA/2) + * and round it up to next integer value. +*/ #undef DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL #undef DDRC_DRAMTMG12_T_MRD_PDA_SHIFT #undef DDRC_DRAMTMG12_T_MRD_PDA_MASK -#define DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_MRD_PDA_SHIFT 0 -#define DDRC_DRAMTMG12_T_MRD_PDA_MASK 0x0000001FU +#define DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_MRD_PDA_SHIFT 0 +#define DDRC_DRAMTMG12_T_MRD_PDA_MASK 0x0000001FU -/*- 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Register DBGCMD.zq_calib_short can be used instead to is - ue ZQ calibration request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibration) commands based on ZQCTL1.t_zq_s - ort_interval_x1024. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Reg + * ister DBGCMD.zq_calib_short can be used instead to issue ZQ calibration + * request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibrati + * on) commands based on ZQCTL1.t_zq_short_interval_x1024. This is only pre + * sent for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT 31 -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK 0x80000000U +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT 31 +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK 0x80000000U -/*- 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Powerdown exit. Only applicable when run in DDR3 - or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Power - own exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present for designs suppo - ting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refres + * h/SR-Powerdown exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 + * or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibratio + * n) command at Self-Refresh/SR-Powerdown exit. Only applicable when run i + * n DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present + * for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT 30 -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK 0x40000000U +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT 30 +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK 0x40000000U -/*- 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQCL/ZQCS/MPC(ZQ calibration) commands are sent to one r - nk at a time with tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that commands to different ranks do not ov - rlap. - 0 - ZQ resistor is not shared. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQC + * L/ZQCS/MPC(ZQ calibration) commands are sent to one rank at a time with + * tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that co + * mmands to different ranks do not overlap. - 0 - ZQ resistor is not share + * d. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR + * 3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT 29 -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK 0x20000000U +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT 29 +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK 0x20000000U -/*- 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. - 0 - Enable - ssuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. This is only present for des - gns supporting DDR4 devices.*/ +/* +* - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. + * Only applicable when run in DDR4 mode. - 0 - Enable issuing of ZQCL com + * mand at Maximum Power Saving Mode exit. Only applicable when run in DDR4 + * mode. This is only present for designs supporting DDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT 28 -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK 0x10000000U +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT 28 +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK 0x10000000U -/*tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Number of cycles of NOP required after a ZQCL (ZQ calibrat - on long)/MPC(ZQ Start) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2: DDR3/DDR4: program this to tZQo - er/2 and round it up to the next integer value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to the next integer va - ue. LPDDR4: program this to tZQCAL/2 and round it up to the next integer value. Unit: Clock cycles. This is only present for - esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Numbe + * r of cycles of NOP required after a ZQCL (ZQ calibration long)/MPC(ZQ St + * art) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO + * =2: DDR3/DDR4: program this to tZQoper/2 and round it up to the next int + * eger value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to th + * e next integer value. LPDDR4: program this to tZQCAL/2 and round it up t + * o the next integer value. Unit: Clock cycles. This is only present for d + * esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT 16 -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK 0x07FF0000U +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT 16 +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK 0x07FF0000U -/*tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of NOP required after a ZQCS (ZQ calibration short)/MPC - ZQ Latch) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program this to tZQCS/2 and round it up to t - e next integer value. Unit: Clock cycles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devic - s.*/ +/* +* tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of + * NOP required after a ZQCS (ZQ calibration short)/MPC(ZQ Latch) command + * is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program t + * his to tZQCS/2 and round it up to the next integer value. Unit: Clock cy + * cles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LP + * DDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT 0 -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK 0x000003FFU +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT 0 +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK 0x000003FFU -/*tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibration Reset) command is issued to SDRAM. For configurati - ns with MEMC_FREQ_RATIO=2, program this to tZQReset/2 and round it up to the next integer value. Unit: Clock cycles. This is - nly present for designs supporting LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibrati + * on Reset) command is issued to SDRAM. For configurations with MEMC_FREQ_ + * RATIO=2, program this to tZQReset/2 and round it up to the next integer + * value. Unit: Clock cycles. This is only present for designs supporting L + * PDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL 0x02000100 -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT 20 -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK 0x3FF00000U +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL 0x02000100 +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT 20 +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK 0x3FF00000U -/*Average interval to wait between automatically issuing ZQCS (ZQ calibration short)/MPC(ZQ calibration) commands to DDR3/DDR4/ - PDDR2/LPDDR3/LPDDR4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles. This is only present for designs - upporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* Average interval to wait between automatically issuing ZQCS (ZQ calibrat + * ion short)/MPC(ZQ calibration) commands to DDR3/DDR4/LPDDR2/LPDDR3/LPDDR + * 4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles + * . This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3 + * /LPDDR4 devices. +*/ #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL 0x02000100 -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT 0 -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK 0x000FFFFFU +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL 0x02000100 +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT 0 +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK 0x000FFFFFU -/*Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock.*/ +/* +* Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. +*/ #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT 24 -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK 0x1F000000U +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT 24 +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK 0x1F000000U -/*Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value.*/ +/* +* Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. +*/ #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT 23 -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK 0x00800000U +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT 23 +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK 0x00800000U -/*Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks*/ +/* +* Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks +*/ #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT 16 -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK 0x003F0000U +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT 16 +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK 0x003F0000U -/*Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e.*/ +/* +* Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. +*/ #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT 15 -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK 0x00008000U +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT 15 +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK 0x00008000U -/*Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks*/ +/* +* Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks +*/ #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT 8 -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK 0x00003F00U +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT 8 +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK 0x00003F00U -/*Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM.*/ +/* +* Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. +*/ #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT 0 -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK 0x0000003FU +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT 0 +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK 0x0000003FU -/*Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated command is driven. - his field is used for CAL mode, should be set to '0' or the value which matches the CAL mode register setting in the DRAM. If - the PHY can add the latency for CAL mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8*/ +/* +* Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated command is driven. This field is used + * for CAL mode, should be set to '0' or the value which matches the CAL mo + * de register setting in the DRAM. If the PHY can add the latency for CAL + * mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 +*/ #undef DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL #undef DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT #undef DDRC_DFITMG1_DFI_T_CMD_LAT_MASK -#define DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT 28 -#define DDRC_DFITMG1_DFI_T_CMD_LAT_MASK 0xF0000000U +#define DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT 28 +#define DDRC_DFITMG1_DFI_T_CMD_LAT_MASK 0xF0000000U -/*Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated dfi_parity_in signa - is driven.*/ +/* +* Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated dfi_parity_in signal is driven. +*/ #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT 24 -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK 0x03000000U +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT 24 +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK 0x03000000U -/*Specifies the number of DFI clocks between when the dfi_wrdata_en signal is asserted and when the corresponding write data tr - nsfer is completed on the DRAM bus. This corresponds to the DFI timing parameter twrdata_delay. Refer to PHY specification fo - correct value. For DFI 3.0 PHY, set to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI 2.1 PHY, set to - phy_wrdata + (delay of DFI write data to the DRAM). Value to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ - RATIO=2, divide PHY's value by 2 and round up to next integer. If using DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Uni - : Clocks*/ +/* +* Specifies the number of DFI clocks between when the dfi_wrdata_en signal + * is asserted and when the corresponding write data transfer is completed + * on the DRAM bus. This corresponds to the DFI timing parameter twrdata_d + * elay. Refer to PHY specification for correct value. For DFI 3.0 PHY, set + * to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI + * 2.1 PHY, set to tphy_wrdata + (delay of DFI write data to the DRAM). Va + * lue to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ_ + * RATIO=2, divide PHY's value by 2 and round up to next integer. If using + * DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Unit: Clocks +*/ #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT 16 -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK 0x001F0000U +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT 16 +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK 0x001F0000U -/*Specifies the number of DFI clock cycles from the assertion of the dfi_dram_clk_disable signal on the DFI until the clock to - he DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase - ligned, this timing parameter should be rounded up to the next integer value.*/ +/* +* Specifies the number of DFI clock cycles from the assertion of the dfi_d + * ram_clk_disable signal on the DFI until the clock to the DRAM memory dev + * ices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock + * and the memory clock are not phase aligned, this timing parameter should + * be rounded up to the next integer value. +*/ #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT 8 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK 0x00000F00U +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT 8 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK 0x00000F00U -/*Specifies the number of DFI clock cycles from the de-assertion of the dfi_dram_clk_disable signal on the DFI until the first - alid rising edge of the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the DFI clock and the memory clock are - not phase aligned, this timing parameter should be rounded up to the next integer value.*/ +/* +* Specifies the number of DFI clock cycles from the de-assertion of the df + * i_dram_clk_disable signal on the DFI until the first valid rising edge o + * f the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the + * DFI clock and the memory clock are not phase aligned, this timing param + * eter should be rounded up to the next integer value. +*/ #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT 0 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK 0x0000000FU +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT 0 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK 0x0000000FU -/*Setting for DFI's tlp_resp time. Same value is used for both Power Down, Self Refresh, Deep Power Down and Maximum Power Savi - g modes. DFI 2.1 specification onwards, recommends using a fixed value of 7 always.*/ +/* +* Setting for DFI's tlp_resp time. Same value is used for both Power Down, + * Self Refresh, Deep Power Down and Maximum Power Saving modes. DFI 2.1 s + * pecification onwards, recommends using a fixed value of 7 always. +*/ #undef DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL #undef DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT #undef DDRC_DFILPCFG0_DFI_TLP_RESP_MASK -#define DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT 24 -#define DDRC_DFILPCFG0_DFI_TLP_RESP_MASK 0x0F000000U +#define DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT 24 +#define DDRC_DFILPCFG0_DFI_TLP_RESP_MASK 0x0F000000U -/*Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 - cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - - 31072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting mDDR or LPDDR2/LPDDR3 device - .*/ +/* +* Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is ente + * red. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 + * cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 5 + * 12 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - + * 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 6553 + * 6 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited T + * his is only present for designs supporting mDDR or LPDDR2/LPDDR3 devices + * . +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT 20 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK 0x00F00000U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT 20 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK 0x00F00000U -/*Enables DFI Low Power interface handshaking during Deep Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled This is only pres - nt for designs supporting mDDR or LPDDR2/LPDDR3 devices.*/ +/* +* Enables DFI Low Power interface handshaking during Deep Power Down Entry + * /Exit. - 0 - Disabled - 1 - Enabled This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3 devices. +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT 16 -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK 0x00010000U +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT 16 +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK 0x00010000U -/*Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cy - les - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 131 - 72 cycles - 0xE - 262144 cycles - 0xF - Unlimited*/ +/* +* Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered + * . Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cyc + * les - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 + * cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 + * - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 c + * ycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT 12 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK 0x0000F000U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT 12 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK 0x0000F000U -/*Enables DFI Low Power interface handshaking during Self Refresh Entry/Exit. - 0 - Disabled - 1 - Enabled*/ +/* +* Enables DFI Low Power interface handshaking during Self Refresh Entry/Ex + * it. - 0 - Disabled - 1 - Enabled +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT 8 -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK 0x00000100U +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT 8 +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK 0x00000100U -/*Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycl - s - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 20 - 8 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 13107 - cycles - 0xE - 262144 cycles - 0xF - Unlimited*/ +/* +* Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. + * Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cycle + * s - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cy + * cles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - + * 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cyc + * les - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT 4 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK 0x000000F0U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT 4 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK 0x000000F0U -/*Enables DFI Low Power interface handshaking during Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled*/ +/* +* Enables DFI Low Power interface handshaking during Power Down Entry/Exit + * . - 0 - Disabled - 1 - Enabled +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT 0 -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK 0x00000001U +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT 0 +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK 0x00000001U -/*Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - - 16 cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0 - D - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting DDR4 devices.*/ +/* +* Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is + * entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 + * - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x + * 5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycl + * es - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - + * 65536 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimi + * ted This is only present for designs supporting DDR4 devices. +*/ #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL 0x00000000 -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT 4 -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK 0x000000F0U +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL 0x00000000 +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT 4 +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK 0x000000F0U -/*Enables DFI Low Power interface handshaking during Maximum Power Saving Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is - only present for designs supporting DDR4 devices.*/ +/* +* Enables DFI Low Power interface handshaking during Maximum Power Saving + * Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is only present for d + * esigns supporting DDR4 devices. +*/ #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL 0x00000000 -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT 0 -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK 0x00000001U +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL 0x00000000 +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT 0 +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK 0x00000001U -/*This is the minimum amount of time between uMCTL2 initiated DFI update requests (which is executed whenever the uMCTL2 is idl - ). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the fir - t read request when the uMCTL2 is idle. Unit: 1024 clocks*/ +/* +* When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * . The core must issue the dfi_ctrlupd_req signal using register reg_ddrc + * _ctrlupd. When '0', uMCTL2 issues dfi_ctrlupd_req periodically. +*/ +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_DEFVAL +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SHIFT +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_MASK +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SHIFT 31 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_MASK 0x80000000U + +/* +* When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * following a self-refresh exit. The core must issue the dfi_ctrlupd_req + * signal using register reg_ddrc_ctrlupd. When '0', uMCTL2 issues a dfi_ct + * rlupd_req after exiting self-refresh. +*/ +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_DEFVAL +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_SHIFT +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_MASK +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_SHIFT 30 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_MASK 0x40000000U + +/* +* Specifies the maximum number of clock cycles that the dfi_ctrlupd_req si + * gnal can assert. Lowest value to assign to this variable is 0x40. Unit: + * Clocks +*/ +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_DEFVAL +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_SHIFT +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_MASK +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_SHIFT 16 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_MASK 0x03FF0000U + +/* +* Specifies the minimum number of clock cycles that the dfi_ctrlupd_req si + * gnal must be asserted. The uMCTL2 expects the PHY to respond within this + * time. If the PHY does not respond, the uMCTL2 will de-assert dfi_ctrlup + * d_req after dfi_t_ctrlup_min + 2 cycles. Lowest value to assign to this + * variable is 0x3. Unit: Clocks +*/ +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_DEFVAL +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_SHIFT +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_MASK +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_SHIFT 0 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_MASK 0x000003FFU + +/* +* This is the minimum amount of time between uMCTL2 initiated DFI update r + * equests (which is executed whenever the uMCTL2 is idle). Set this number + * higher to reduce the frequency of update requests, which can have a sma + * ll impact on the latency of the first read request when the uMCTL2 is id + * le. Unit: 1024 clocks +*/ #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL 0x00000000 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT 16 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK 0x00FF0000U +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL 0x00000000 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT 16 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK 0x00FF0000U -/*This is the maximum amount of time between uMCTL2 initiated DFI update requests. This timer resets with each update request; - hen the timer expires dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd_ackx is received. PHY can use this - idle time to recalibrate the delay lines to the DLLs. The DFI controller update is also used to reset PHY FIFO pointers in ca - e of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. - Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x - 024. Unit: 1024 clocks*/ +/* +* This is the maximum amount of time between uMCTL2 initiated DFI update r + * equests. This timer resets with each update request; when the timer expi + * res dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd + * _ackx is received. PHY can use this idle time to recalibrate the delay l + * ines to the DLLs. The DFI controller update is also used to reset PHY FI + * FO pointers in case of data capture errors. Updates are required to main + * tain calibration over PVT, but frequent updates may impact performance. + * Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must + * be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x1024. Unit: 1024 cl + * ocks +*/ #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL 0x00000000 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT 0 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK 0x000000FFU +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL 0x00000000 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT 0 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK 0x000000FFU -/*Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signals are active low - 1: Signals are active high*/ +/* +* Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signal + * s are active low - 1: Signals are active high +*/ #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL 0x00000001 -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT 2 -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK 0x00000004U +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL 0x00000001 +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT 2 +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK 0x00000004U -/*DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. - 1 - PHY implements DBI functionality. Present only - in designs configured to support DDR4 and LPDDR4.*/ +/* +* DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. + * - 1 - PHY implements DBI functionality. Present only in designs configu + * red to support DDR4 and LPDDR4. +*/ #undef DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL #undef DDRC_DFIMISC_PHY_DBI_MODE_SHIFT #undef DDRC_DFIMISC_PHY_DBI_MODE_MASK -#define DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL 0x00000001 -#define DDRC_DFIMISC_PHY_DBI_MODE_SHIFT 1 -#define DDRC_DFIMISC_PHY_DBI_MODE_MASK 0x00000002U +#define DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL 0x00000001 +#define DDRC_DFIMISC_PHY_DBI_MODE_SHIFT 1 +#define DDRC_DFIMISC_PHY_DBI_MODE_MASK 0x00000002U -/*PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialisa - ion*/ +/* +* PHY initialization complete enable signal. When asserted the dfi_init_co + * mplete signal can be used to trigger SDRAM initialisation +*/ #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL 0x00000001 -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT 0 -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK 0x00000001U +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL 0x00000001 +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT 0 +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK 0x00000001U -/*>Number of clocks between when a read command is sent on the DFI control interface and when the associated dfi_rddata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY specification for correct value.*/ +/* +* >Number of clocks between when a read command is sent on the DFI control + * interface and when the associated dfi_rddata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY spe + * cification for correct value. +*/ #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL 0x00000202 -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT 8 -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK 0x00003F00U +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL 0x00000202 +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT 8 +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK 0x00003F00U -/*Number of clocks between when a write command is sent on the DFI control interface and when the associated dfi_wrdata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY specification for correct value.*/ +/* +* Number of clocks between when a write command is sent on the DFI control + * interface and when the associated dfi_wrdata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY spe + * cification for correct value. +*/ #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL 0x00000202 -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT 0 -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK 0x0000003FU +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL 0x00000202 +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT 0 +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK 0x0000003FU -/*Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read DBI is enabled. This signal must be set the same value - as DRAM's mode register. - DDR4: MR5 bit A12. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[6]*/ +/* +* Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read D + * BI is enabled. This signal must be set the same value as DRAM's mode reg + * ister. - DDR4: MR5 bit A12. When x4 devices are used, this signal must b + * e set to 0. - LPDDR4: MR3[6] +*/ #undef DDRC_DBICTL_RD_DBI_EN_DEFVAL #undef DDRC_DBICTL_RD_DBI_EN_SHIFT #undef DDRC_DBICTL_RD_DBI_EN_MASK -#define DDRC_DBICTL_RD_DBI_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_RD_DBI_EN_SHIFT 2 -#define DDRC_DBICTL_RD_DBI_EN_MASK 0x00000004U +#define DDRC_DBICTL_RD_DBI_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_RD_DBI_EN_SHIFT 2 +#define DDRC_DBICTL_RD_DBI_EN_MASK 0x00000004U -/*Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Write DBI is enabled. This signal must be set the same va - ue as DRAM's mode register. - DDR4: MR5 bit A11. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[7]*/ +/* +* Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Writ + * e DBI is enabled. This signal must be set the same value as DRAM's mode + * register. - DDR4: MR5 bit A11. When x4 devices are used, this signal mus + * t be set to 0. - LPDDR4: MR3[7] +*/ #undef DDRC_DBICTL_WR_DBI_EN_DEFVAL #undef DDRC_DBICTL_WR_DBI_EN_SHIFT #undef DDRC_DBICTL_WR_DBI_EN_MASK -#define DDRC_DBICTL_WR_DBI_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_WR_DBI_EN_SHIFT 1 -#define DDRC_DBICTL_WR_DBI_EN_MASK 0x00000002U +#define DDRC_DBICTL_WR_DBI_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_WR_DBI_EN_SHIFT 1 +#define DDRC_DBICTL_WR_DBI_EN_MASK 0x00000002U -/*DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. This signal must be set the same logical value as DRAM's - mode register. - DDR4: Set this to same value as MR5 bit A10. When x4 devices are used, this signal must be set to 0. - LPDDR - : Set this to inverted value of MR13[5] which is opposite polarity from this signal*/ +/* +* DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. Thi + * s signal must be set the same logical value as DRAM's mode register. - D + * DR4: Set this to same value as MR5 bit A10. When x4 devices are used, th + * is signal must be set to 0. - LPDDR4: Set this to inverted value of MR13 + * [5] which is opposite polarity from this signal +*/ #undef DDRC_DBICTL_DM_EN_DEFVAL #undef DDRC_DBICTL_DM_EN_SHIFT #undef DDRC_DBICTL_DM_EN_MASK -#define DDRC_DBICTL_DM_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_DM_EN_SHIFT 0 -#define DDRC_DBICTL_DM_EN_MASK 0x00000001U +#define DDRC_DBICTL_DM_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_DM_EN_SHIFT 0 +#define DDRC_DBICTL_DM_EN_MASK 0x00000001U -/*Selects the HIF address bit used as rank address bit 0. Valid Range: 0 to 27, and 31 Internal Base: 6 The selected HIF addres - bit is determined by adding the internal base to the value of this field. If set to 31, rank address bit 0 is set to 0.*/ +/* +* Selects the HIF address bit used as rank address bit 0. Valid Range: 0 t + * o 27, and 31 Internal Base: 6 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, r + * ank address bit 0 is set to 0. +*/ #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT 0 -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK 0x0000001FU +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT 0 +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK 0x0000001FU -/*Selects the HIF address bit used as bank address bit 2. Valid Range: 0 to 29 and 31 Internal Base: 4 The selected HIF address - bit is determined by adding the internal base to the value of this field. If set to 31, bank address bit 2 is set to 0.*/ +/* +* Selects the HIF address bit used as bank address bit 2. Valid Range: 0 t + * o 29 and 31 Internal Base: 4 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, ba + * nk address bit 2 is set to 0. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT 16 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK 0x001F0000U +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT 16 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK 0x001F0000U -/*Selects the HIF address bits used as bank address bit 1. Valid Range: 0 to 30 Internal Base: 3 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank address bit 1. Valid Range: 0 + * to 30 Internal Base: 3 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT 8 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK 0x00001F00U +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT 8 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK 0x00001F00U -/*Selects the HIF address bits used as bank address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank address bit 0. Valid Range: 0 + * to 30 Internal Base: 2 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT 0 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK 0x0000001FU +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT 0 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK 0x0000001FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 5. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 6. - Quarter bus width mode: Selects the HIF address bit used as column address bit 7 . Vali - Range: 0 to 7, and 15 Internal Base: 5 The selected HIF address bit is determined by adding the internal base to the value o - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 5. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 6. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 7 . Valid Range: 0 to 7, and 15 Internal Base + * : 5 The selected HIF address bit is determined by adding the internal ba + * se to the value of this field. If set to 15, this column address bit is + * set to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT 24 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK 0x0F000000U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT 24 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK 0x0F000000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 4. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 5. - Quarter bus width mode: Selects the HIF address bit used as column address bit 6. Valid - Range: 0 to 7, and 15 Internal Base: 4 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 4. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 5. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 6. Valid Range: 0 to 7, and 15 Internal Base: + * 4 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT 16 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK 0x000F0000U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT 16 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK 0x000F0000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 3. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 4. - Quarter bus width mode: Selects the HIF address bit used as column address bit 5. Valid - Range: 0 to 7 Internal Base: 3 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=16, it is required to program this to 0, hence register does not exist i - this case.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 3. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 4. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 5. Valid Range: 0 to 7 Internal Base: 3 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=1 + * 6, it is required to program this to 0, hence register does not exist in + * this case. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT 8 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK 0x00000F00U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT 8 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 2. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 3. - Quarter bus width mode: Selects the HIF address bit used as column address bit 4. Valid - Range: 0 to 7 Internal Base: 2 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 or 16, it is required to program this to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 2. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 3. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 4. Valid Range: 0 to 7 Internal Base: 2 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 + * or 16, it is required to program this to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT 0 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK 0x0000000FU +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT 0 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK 0x0000000FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 9. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: Selects the HIF address bit used as - column address bit 13 (11 in LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected HIF address bit i - determined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: - er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source addr - ss bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus an - hence column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 9. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: + * Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/ + * LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected + * HIF address bit is determined by adding the internal base to the value o + * f this field. If set to 15, this column address bit is set to 0. Note: P + * er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved fo + * r indicating auto-precharge, and hence no source address bit can be mapp + * ed to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit + * for auto-precharge in the CA bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT 24 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK 0x0F000000U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT 24 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK 0x0F000000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 8. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 9. - Quarter bus width mode: Selects the HIF address bit used as column address bit 11 (10 i - LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 8 The selected HIF address bit is determined by adding the i - ternal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specif - cation, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to col - mn address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is use - .*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 8. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 9. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). Valid Range: 0 + * to 7, and 15 Internal Base: 8 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specifi + * cation, column address bit 10 is reserved for indicating auto-precharge, + * and hence no source address bit can be mapped to column address bit 10. + * In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA + * bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT 16 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK 0x000F0000U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT 16 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK 0x000F0000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 7. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 8. - Quarter bus width mode: Selects the HIF address bit used as column address bit 9. Valid - Range: 0 to 7, and 15 Internal Base: 7 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 7. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 8. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 9. Valid Range: 0 to 7, and 15 Internal Base: + * 7 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT 8 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK 0x00000F00U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT 8 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 6. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 7. - Quarter bus width mode: Selects the HIF address bit used as column address bit 8. Valid - Range: 0 to 7, and 15 Internal Base: 6 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 6. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 7. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 8. Valid Range: 0 to 7, and 15 Internal Base: + * 6 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT 0 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK 0x0000000FU +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT 0 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK 0x0000000FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Unused. To make it unused, this should be tied to 4'hF. - Quarter bus width mode: Unused. To make it unused, this must - e tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 11 The selected HIF address bit is determined by adding the intern - l base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificati - n, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column a - dress bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width mode: Unused. To m + * ake it unused, this should be tied to 4'hF. - Quarter bus width mode: Un + * used. To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, + * and 15 Internal Base: 11 The selected HIF address bit is determined by + * adding the internal base to the value of this field. If set to 15, this + * column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificatio + * n, column address bit 10 is reserved for indicating auto-precharge, and + * hence no source address bit can be mapped to column address bit 10. In L + * PDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus + * and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL 0x00000000 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT 8 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK 0x00000F00U +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL 0x00000000 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT 8 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: UNUSED. - To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF address bit is d - termined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per - JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source address - bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and h - nce column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width mode: Selects the + * HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode) + * . - Quarter bus width mode: UNUSED. To make it unused, this must be tied + * to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF + * address bit is determined by adding the internal base to the value of t + * his field. If set to 15, this column address bit is set to 0. Note: Per + * JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for i + * ndicating auto-precharge, and hence no source address bit can be mapped + * to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for + * auto-precharge in the CA bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL 0x00000000 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT 0 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK 0x0000000FU +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL 0x00000000 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT 0 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK 0x0000000FU -/*Selects the HIF address bit used as row address bit 11. Valid Range: 0 to 11, and 15 Internal Base: 17 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 11 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 11. Valid Range: 0 t + * o 11, and 15 Internal Base: 17 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 11 is set to 0. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT 24 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK 0x0F000000U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT 24 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bits 2 to 10. Valid Range: 0 to 11, and 15 Internal Base: 8 (for row address - bit 2), 9 (for row address bit 3), 10 (for row address bit 4) etc increasing to 16 (for row address bit 10) The selected HIF - ddress bit for each of the row address bits is determined by adding the internal base to the value of this field. When value - 5 is used the values of row address bits 2 to 10 are defined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11.*/ +/* +* Selects the HIF address bits used as row address bits 2 to 10. Valid Ran + * ge: 0 to 11, and 15 Internal Base: 8 (for row address bit 2), 9 (for row + * address bit 3), 10 (for row address bit 4) etc increasing to 16 (for ro + * w address bit 10) The selected HIF address bit for each of the row addre + * ss bits is determined by adding the internal base to the value of this f + * ield. When value 15 is used the values of row address bits 2 to 10 are d + * efined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT 16 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK 0x000F0000U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT 16 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 1. Valid Range: 0 to 11 Internal Base: 7 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as row address bit 1. Valid Range: 0 t + * o 11 Internal Base: 7 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT 8 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK 0x00000F00U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT 8 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 0. Valid Range: 0 to 11 Internal Base: 6 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as row address bit 0. Valid Range: 0 t + * o 11 Internal Base: 6 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT 0 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK 0x0000000FU +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT 0 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK 0x0000000FU -/*Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address - having row[14:13]==2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. All addresses are valid Present on - y in designs configured to support LPDDR3.*/ +/* +* Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 + * - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address having row[14:13]= + * =2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. + * All addresses are valid Present only in designs configured to support L + * PDDR3. +*/ #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT 31 -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK 0x80000000U +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT 31 +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK 0x80000000U -/*Selects the HIF address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 15 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 15. Valid Range: 0 t + * o 11, and 15 Internal Base: 21 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 15 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT 24 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK 0x0F000000U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT 24 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK 0x0F000000U -/*Selects the HIF address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 20 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 14 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 14. Valid Range: 0 t + * o 11, and 15 Internal Base: 20 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 14 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT 16 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK 0x000F0000U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT 16 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK 0x000F0000U -/*Selects the HIF address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 19 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 13 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 13. Valid Range: 0 t + * o 11, and 15 Internal Base: 19 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 13 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT 8 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK 0x00000F00U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT 8 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK 0x00000F00U -/*Selects the HIF address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 18 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 12 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 12. Valid Range: 0 t + * o 11, and 15 Internal Base: 18 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 12 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT 0 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK 0x0000000FU +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT 0 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK 0x0000000FU -/*Selects the HIF address bit used as row address bit 17. Valid Range: 0 to 10, and 15 Internal Base: 23 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 17 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 17. Valid Range: 0 t + * o 10, and 15 Internal Base: 23 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 17 is set to 0. +*/ #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL 0x00000000 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT 8 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK 0x00000F00U +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL 0x00000000 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT 8 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK 0x00000F00U -/*Selects the HIF address bit used as row address bit 16. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 16 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 16. Valid Range: 0 t + * o 11, and 15 Internal Base: 22 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 16 is set to 0. +*/ #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL 0x00000000 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT 0 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK 0x0000000FU +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL 0x00000000 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT 0 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK 0x0000000FU -/*Selects the HIF address bits used as bank group address bit 1. Valid Range: 0 to 30, and 31 Internal Base: 3 The selected HIF - address bit for each of the bank group address bits is determined by adding the internal base to the value of this field. If - et to 31, bank group address bit 1 is set to 0.*/ +/* +* Selects the HIF address bits used as bank group address bit 1. Valid Ran + * ge: 0 to 30, and 31 Internal Base: 3 The selected HIF address bit for ea + * ch of the bank group address bits is determined by adding the internal b + * ase to the value of this field. If set to 31, bank group address bit 1 i + * s set to 0. +*/ #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT 8 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK 0x00001F00U +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT 8 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK 0x00001F00U -/*Selects the HIF address bits used as bank group address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address - bit for each of the bank group address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank group address bit 0. Valid Ran + * ge: 0 to 30 Internal Base: 2 The selected HIF address bit for each of th + * e bank group address bits is determined by adding the internal base to t + * he value of this field. +*/ #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT 0 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK 0x0000001FU +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT 0 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK 0x0000001FU -/*Selects the HIF address bits used as row address bit 5. Valid Range: 0 to 11 Internal Base: 11 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 5. Valid Range: 0 t + * o 11 Internal Base: 11 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT 24 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK 0x0F000000U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT 24 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bit 4. Valid Range: 0 to 11 Internal Base: 10 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 4. Valid Range: 0 t + * o 11 Internal Base: 10 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT 16 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK 0x000F0000U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT 16 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 3. Valid Range: 0 to 11 Internal Base: 9 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 3. Valid Range: 0 t + * o 11 Internal Base: 9 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT 8 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK 0x00000F00U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT 8 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 2. Valid Range: 0 to 11 Internal Base: 8 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 2. Valid Range: 0 t + * o 11 Internal Base: 8 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT 0 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK 0x0000000FU +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT 0 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK 0x0000000FU -/*Selects the HIF address bits used as row address bit 9. Valid Range: 0 to 11 Internal Base: 15 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 9. Valid Range: 0 t + * o 11 Internal Base: 15 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT 24 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK 0x0F000000U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT 24 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bit 8. Valid Range: 0 to 11 Internal Base: 14 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 8. Valid Range: 0 t + * o 11 Internal Base: 14 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT 16 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK 0x000F0000U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT 16 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 7. Valid Range: 0 to 11 Internal Base: 13 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 7. Valid Range: 0 t + * o 11 Internal Base: 13 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT 8 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK 0x00000F00U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT 8 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 6. Valid Range: 0 to 11 Internal Base: 12 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 6. Valid Range: 0 t + * o 11 Internal Base: 12 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT 0 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK 0x0000000FU +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT 0 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK 0x0000000FU -/*Selects the HIF address bits used as row address bit 10. Valid Range: 0 to 11 Internal Base: 16 The selected HIF address bit - or each of the row address bits is determined by adding the internal base to the value of this field. This register field is - sed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 10. Valid Range: 0 + * to 11 Internal Base: 16 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of + * this field. This register field is used only when ADDRMAP5.addrmap_row_b + * 2_10 is set to value 15. +*/ #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT 0 -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK 0x0000000FU +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT 0 +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK 0x0000000FU -/*Cycles to hold ODT for a write command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/ - 67), 0x6 (DDR2-800), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (DDR2-1066) DDR3: - BL8: 0x6 DDR4: - - L8: 5 + WR_PREAMBLE + CRC_MODE WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 (not CRC mode), 1 - CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK)*/ +/* +* Cycles to hold ODT for a write command. The minimum supported value is 2 + * . Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/667), 0x6 (DDR2-800 + * ), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (D + * DR2-1066) DDR3: - BL8: 0x6 DDR4: - BL8: 5 + WR_PREAMBLE + CRC_MODE WR_PR + * EAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 ( + * not CRC mode), 1 (CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL #undef DDRC_ODTCFG_WR_ODT_HOLD_SHIFT #undef DDRC_ODTCFG_WR_ODT_HOLD_MASK -#define DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL 0x04000400 -#define DDRC_ODTCFG_WR_ODT_HOLD_SHIFT 24 -#define DDRC_ODTCFG_WR_ODT_HOLD_MASK 0x0F000000U +#define DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL 0x04000400 +#define DDRC_ODTCFG_WR_ODT_HOLD_SHIFT 24 +#define DDRC_ODTCFG_WR_ODT_HOLD_MASK 0x0F000000U -/*The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting must - remain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CWL + AL - 3 (DDR2-400/533/ - 67), CWL + AL - 4 (DDR2-800), CWL + AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT for write operation - DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK))*/ +/* +* The delay, in clock cycles, from issuing a write command to setting ODT + * values associated with that command. ODT setting must remain constant fo + * r the entire time that DQS is driven by the uMCTL2. Recommended values: + * DDR2: - CWL + AL - 3 (DDR2-400/533/667), CWL + AL - 4 (DDR2-800), CWL + + * AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT fo + * r write operation. DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust + * for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) +*/ #undef DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL #undef DDRC_ODTCFG_WR_ODT_DELAY_SHIFT #undef DDRC_ODTCFG_WR_ODT_DELAY_MASK -#define DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL 0x04000400 -#define DDRC_ODTCFG_WR_ODT_DELAY_SHIFT 16 -#define DDRC_ODTCFG_WR_ODT_DELAY_MASK 0x001F0000U +#define DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL 0x04000400 +#define DDRC_ODTCFG_WR_ODT_DELAY_SHIFT 16 +#define DDRC_ODTCFG_WR_ODT_DELAY_MASK 0x001F0000U -/*Cycles to hold ODT for a read command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066) - 0x7 (DDR2-1066) - BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8: 5 + RD_PREAMBLE RD_PREAMBLE = 1 ( - tCK write preamble), 2 (2tCK write preamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + RU(tODTon(max)/tC - )*/ +/* +* Cycles to hold ODT for a read command. The minimum supported value is 2. + * Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066), 0x7 (DDR2-1066) - + * BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8 + * : 5 + RD_PREAMBLE RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write p + * reamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + + * RU(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL #undef DDRC_ODTCFG_RD_ODT_HOLD_SHIFT #undef DDRC_ODTCFG_RD_ODT_HOLD_MASK -#define DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL 0x04000400 -#define DDRC_ODTCFG_RD_ODT_HOLD_SHIFT 8 -#define DDRC_ODTCFG_RD_ODT_HOLD_MASK 0x00000F00U +#define DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL 0x04000400 +#define DDRC_ODTCFG_RD_ODT_HOLD_SHIFT 8 +#define DDRC_ODTCFG_RD_ODT_HOLD_MASK 0x00000F00U -/*The delay, in clock cycles, from issuing a read command to setting ODT values associated with that command. ODT setting must - emain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CL + AL - 4 (not DDR2-1066), - CL + AL - 5 (DDR2-1066) If (CL + AL - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - CWL DDR4: - CL - C - L - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK - write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, - uMCTL2 does not support ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - RU(tODTon(max)/tCK)*/ +/* +* The delay, in clock cycles, from issuing a read command to setting ODT v + * alues associated with that command. ODT setting must remain constant for + * the entire time that DQS is driven by the uMCTL2. Recommended values: D + * DR2: - CL + AL - 4 (not DDR2-1066), CL + AL - 5 (DDR2-1066) If (CL + AL + * - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - C + * WL DDR4: - CL - CWL - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat + * (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK + * write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write pre + * amble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, uMCTL2 does not su + * pport ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - R + * U(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL #undef DDRC_ODTCFG_RD_ODT_DELAY_SHIFT #undef DDRC_ODTCFG_RD_ODT_DELAY_MASK -#define DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL 0x04000400 -#define DDRC_ODTCFG_RD_ODT_DELAY_SHIFT 2 -#define DDRC_ODTCFG_RD_ODT_DELAY_MASK 0x0000007CU +#define DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL 0x04000400 +#define DDRC_ODTCFG_RD_ODT_DELAY_SHIFT 2 +#define DDRC_ODTCFG_RD_ODT_DELAY_MASK 0x0000007CU -/*Indicates which remote ODTs must be turned on during a read from rank 1. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks*/ +/* +* Indicates which remote ODTs must be turned on during a read from rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. Present only in configurations that have 2 or more + * ranks +*/ #undef DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL #undef DDRC_ODTMAP_RANK1_RD_ODT_SHIFT #undef DDRC_ODTMAP_RANK1_RD_ODT_MASK -#define DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK1_RD_ODT_SHIFT 12 -#define DDRC_ODTMAP_RANK1_RD_ODT_MASK 0x00003000U +#define DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK1_RD_ODT_SHIFT 12 +#define DDRC_ODTMAP_RANK1_RD_ODT_MASK 0x00003000U -/*Indicates which remote ODTs must be turned on during a write to rank 1. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks*/ +/* +* Indicates which remote ODTs must be turned on during a write to rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. Present only in configurations that have 2 or more r + * anks +*/ #undef DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL #undef DDRC_ODTMAP_RANK1_WR_ODT_SHIFT #undef DDRC_ODTMAP_RANK1_WR_ODT_MASK -#define DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK1_WR_ODT_SHIFT 8 -#define DDRC_ODTMAP_RANK1_WR_ODT_MASK 0x00000300U +#define DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK1_WR_ODT_SHIFT 8 +#define DDRC_ODTMAP_RANK1_WR_ODT_MASK 0x00000300U -/*Indicates which remote ODTs must be turned on during a read from rank 0. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT.*/ +/* +* Indicates which remote ODTs must be turned on during a read from rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. +*/ #undef DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL #undef DDRC_ODTMAP_RANK0_RD_ODT_SHIFT #undef DDRC_ODTMAP_RANK0_RD_ODT_MASK -#define DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK0_RD_ODT_SHIFT 4 -#define DDRC_ODTMAP_RANK0_RD_ODT_MASK 0x00000030U +#define DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK0_RD_ODT_SHIFT 4 +#define DDRC_ODTMAP_RANK0_RD_ODT_MASK 0x00000030U -/*Indicates which remote ODTs must be turned on during a write to rank 0. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT.*/ +/* +* Indicates which remote ODTs must be turned on during a write to rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. +*/ #undef DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL #undef DDRC_ODTMAP_RANK0_WR_ODT_SHIFT #undef DDRC_ODTMAP_RANK0_WR_ODT_MASK -#define DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK0_WR_ODT_SHIFT 0 -#define DDRC_ODTMAP_RANK0_WR_ODT_MASK 0x00000003U +#define DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK0_WR_ODT_SHIFT 0 +#define DDRC_ODTMAP_RANK0_WR_ODT_MASK 0x00000003U -/*When the preferred transaction store is empty for these many clock cycles, switch to the alternate transaction store if it is - non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write t - ansaction store is the alternative store. When prefer write over read is set this is reversed. 0x0 is a legal value for this - egister. When set to 0x0, the transaction store switching will happen immediately when the switching conditions become true. - OR PERFORMANCE ONLY*/ +/* +* When the preferred transaction store is empty for these many clock cycle + * s, switch to the alternate transaction store if it is non-empty. The rea + * d transaction store (both high and low priority) is the default preferre + * d transaction store and the write transaction store is the alternative s + * tore. When prefer write over read is set this is reversed. 0x0 is a lega + * l value for this register. When set to 0x0, the transaction store switch + * ing will happen immediately when the switching conditions become true. F + * OR PERFORMANCE ONLY +*/ #undef DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL #undef DDRC_SCHED_RDWR_IDLE_GAP_SHIFT #undef DDRC_SCHED_RDWR_IDLE_GAP_MASK -#define DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL 0x00002005 -#define DDRC_SCHED_RDWR_IDLE_GAP_SHIFT 24 -#define DDRC_SCHED_RDWR_IDLE_GAP_MASK 0x7F000000U +#define DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL 0x00002005 +#define DDRC_SCHED_RDWR_IDLE_GAP_SHIFT 24 +#define DDRC_SCHED_RDWR_IDLE_GAP_MASK 0x7F000000U -/*UNUSED*/ +/* +* UNUSED +*/ #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL 0x00002005 -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT 16 -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK 0x00FF0000U +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL 0x00002005 +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT 16 +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK 0x00FF0000U -/*Number of entries in the low priority transaction store is this value + 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) i - the number of entries available for the high priority transaction store. Setting this to maximum value allocates all entries - to low priority transaction store. Setting this to 0 allocates 1 entry to low priority transaction store and the rest to high - priority transaction store. Note: In ECC configurations, the numbers of write and low priority read credits issued is one les - than in the non-ECC case. One entry each is reserved in the write and low-priority read CAMs for storing the RMW requests ar - sing out of single bit error correction RMW operation.*/ +/* +* Number of entries in the low priority transaction store is this value + + * 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) is the number of ent + * ries available for the high priority transaction store. Setting this to + * maximum value allocates all entries to low priority transaction store. S + * etting this to 0 allocates 1 entry to low priority transaction store and + * the rest to high priority transaction store. Note: In ECC configuration + * s, the numbers of write and low priority read credits issued is one less + * than in the non-ECC case. One entry each is reserved in the write and l + * ow-priority read CAMs for storing the RMW requests arising out of single + * bit error correction RMW operation. +*/ #undef DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL #undef DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT #undef DDRC_SCHED_LPR_NUM_ENTRIES_MASK -#define DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL 0x00002005 -#define DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT 8 -#define DDRC_SCHED_LPR_NUM_ENTRIES_MASK 0x00003F00U +#define DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL 0x00002005 +#define DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT 8 +#define DDRC_SCHED_LPR_NUM_ENTRIES_MASK 0x00003F00U -/*If true, bank is kept open only while there are page hit transactions available in the CAM to that bank. The last read or wri - e command in the CAM with a bank and page hit will be executed with auto-precharge if SCHED1.pageclose_timer=0. Even if this - egister set to 1 and SCHED1.pageclose_timer is set to 0, explicit precharge (and not auto-precharge) may be issued in some ca - es where there is a mode switch between Write and Read or between LPR and HPR. The Read and Write commands that are executed - s part of the ECC scrub requests are also executed without auto-precharge. If false, the bank remains open until there is a n - ed to close it (to open a different page, or for page timeout or refresh timeout) - also known as open page policy. The open - age policy can be overridden by setting the per-command-autopre bit on the HIF interface (hif_cmd_autopre). The pageclose fea - ure provids a midway between Open and Close page policies. FOR PERFORMANCE ONLY.*/ +/* +* If true, bank is kept open only while there are page hit transactions av + * ailable in the CAM to that bank. The last read or write command in the C + * AM with a bank and page hit will be executed with auto-precharge if SCHE + * D1.pageclose_timer=0. Even if this register set to 1 and SCHED1.pageclos + * e_timer is set to 0, explicit precharge (and not auto-precharge) may be + * issued in some cases where there is a mode switch between Write and Read + * or between LPR and HPR. The Read and Write commands that are executed a + * s part of the ECC scrub requests are also executed without auto-precharg + * e. If false, the bank remains open until there is a need to close it (to + * open a different page, or for page timeout or refresh timeout) - also k + * nown as open page policy. The open page policy can be overridden by sett + * ing the per-command-autopre bit on the HIF interface (hif_cmd_autopre). + * The pageclose feature provids a midway between Open and Close page polic + * ies. FOR PERFORMANCE ONLY. +*/ #undef DDRC_SCHED_PAGECLOSE_DEFVAL #undef DDRC_SCHED_PAGECLOSE_SHIFT #undef DDRC_SCHED_PAGECLOSE_MASK -#define DDRC_SCHED_PAGECLOSE_DEFVAL 0x00002005 -#define DDRC_SCHED_PAGECLOSE_SHIFT 2 -#define DDRC_SCHED_PAGECLOSE_MASK 0x00000004U +#define DDRC_SCHED_PAGECLOSE_DEFVAL 0x00002005 +#define DDRC_SCHED_PAGECLOSE_SHIFT 2 +#define DDRC_SCHED_PAGECLOSE_MASK 0x00000004U -/*If set then the bank selector prefers writes over reads. FOR DEBUG ONLY.*/ +/* +* If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. +*/ #undef DDRC_SCHED_PREFER_WRITE_DEFVAL #undef DDRC_SCHED_PREFER_WRITE_SHIFT #undef DDRC_SCHED_PREFER_WRITE_MASK -#define DDRC_SCHED_PREFER_WRITE_DEFVAL 0x00002005 -#define DDRC_SCHED_PREFER_WRITE_SHIFT 1 -#define DDRC_SCHED_PREFER_WRITE_MASK 0x00000002U +#define DDRC_SCHED_PREFER_WRITE_DEFVAL 0x00002005 +#define DDRC_SCHED_PREFER_WRITE_SHIFT 1 +#define DDRC_SCHED_PREFER_WRITE_MASK 0x00000002U -/*Active low signal. When asserted ('0'), all incoming transactions are forced to low priority. This implies that all High Prio - ity Read (HPR) and Variable Priority Read commands (VPR) will be treated as Low Priority Read (LPR) commands. On the write si - e, all Variable Priority Write (VPW) commands will be treated as Normal Priority Write (NPW) commands. Forcing the incoming t - ansactions to low priority implicitly turns off Bypass path for read commands. FOR PERFORMANCE ONLY.*/ +/* +* Active low signal. When asserted ('0'), all incoming transactions are fo + * rced to low priority. This implies that all High Priority Read (HPR) and + * Variable Priority Read commands (VPR) will be treated as Low Priority R + * ead (LPR) commands. On the write side, all Variable Priority Write (VPW) + * commands will be treated as Normal Priority Write (NPW) commands. Forci + * ng the incoming transactions to low priority implicitly turns off Bypass + * path for read commands. FOR PERFORMANCE ONLY. +*/ #undef DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL #undef DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT #undef DDRC_SCHED_FORCE_LOW_PRI_N_MASK -#define DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL 0x00002005 -#define DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT 0 -#define DDRC_SCHED_FORCE_LOW_PRI_N_MASK 0x00000001U +#define DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL 0x00002005 +#define DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT 0 +#define DDRC_SCHED_FORCE_LOW_PRI_N_MASK 0x00000001U -/*Number of transactions that are serviced once the LPR queue goes critical is the smaller of: - (a) This number - (b) Number o - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY.*/ +/* +* Number of transactions that are serviced once the LPR queue goes critica + * l is the smaller of: - (a) This number - (b) Number of transactions avai + * lable. Unit: Transaction. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL 0x0F00007F -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT 24 -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK 0xFF000000U +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL 0x0F00007F +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT 24 +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK 0xFF000000U -/*Number of clocks that the LPR queue can be starved before it goes critical. The minimum valid functional value for this regis - er is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - be disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY.*/ +/* +* Number of clocks that the LPR queue can be starved before it goes critic + * al. The minimum valid functional value for this register is 0x1. Program + * ming it to 0x0 will disable the starvation functionality; during normal + * operation, this function should not be disabled as it will cause excessi + * ve latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL #undef DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT #undef DDRC_PERFLPR1_LPR_MAX_STARVE_MASK -#define DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL 0x0F00007F -#define DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT 0 -#define DDRC_PERFLPR1_LPR_MAX_STARVE_MASK 0x0000FFFFU +#define DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL 0x0F00007F +#define DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT 0 +#define DDRC_PERFLPR1_LPR_MAX_STARVE_MASK 0x0000FFFFU -/*Number of transactions that are serviced once the WR queue goes critical is the smaller of: - (a) This number - (b) Number of - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY.*/ +/* +* Number of transactions that are serviced once the WR queue goes critical + * is the smaller of: - (a) This number - (b) Number of transactions avail + * able. Unit: Transaction. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL 0x0F00007F -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT 24 -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK 0xFF000000U +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL 0x0F00007F +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT 24 +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK 0xFF000000U -/*Number of clocks that the WR queue can be starved before it goes critical. The minimum valid functional value for this regist - r is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - e disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY.*/ +/* +* Number of clocks that the WR queue can be starved before it goes critica + * l. The minimum valid functional value for this register is 0x1. Programm + * ing it to 0x0 will disable the starvation functionality; during normal o + * peration, this function should not be disabled as it will cause excessiv + * e latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFWR1_W_MAX_STARVE_DEFVAL #undef DDRC_PERFWR1_W_MAX_STARVE_SHIFT #undef DDRC_PERFWR1_W_MAX_STARVE_MASK -#define DDRC_PERFWR1_W_MAX_STARVE_DEFVAL 0x0F00007F -#define DDRC_PERFWR1_W_MAX_STARVE_SHIFT 0 -#define DDRC_PERFWR1_W_MAX_STARVE_MASK 0x0000FFFFU +#define DDRC_PERFWR1_W_MAX_STARVE_DEFVAL 0x0F00007F +#define DDRC_PERFWR1_W_MAX_STARVE_SHIFT 0 +#define DDRC_PERFWR1_W_MAX_STARVE_MASK 0x0000FFFFU -/*All even ranks have the same DQ mapping controled by DQMAP0-4 register as rank 0. This register provides DQ swap function for - all odd ranks to support CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap bit 2 with 3, swap bit 4 with 5 and - wap bit 6 with 7. 1: Disable rank based DQ swapping 0: Enable rank based DQ swapping Present only in designs configured to su - port DDR4.*/ +/* +* DQ nibble map for DQ bits [12-15] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_SHIFT 24 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [8-11] Present only in designs configured to s + * upport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_SHIFT 16 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [4-7] Present only in designs configured to su + * pport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_SHIFT 8 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [0-3] Present only in designs configured to su + * pport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_SHIFT 0 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [28-31] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_SHIFT 24 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [24-27] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_SHIFT 16 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [20-23] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_SHIFT 8 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [16-19] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_SHIFT 0 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [44-47] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_SHIFT 24 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [40-43] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_SHIFT 16 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [36-39] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_SHIFT 8 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [32-35] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_SHIFT 0 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [60-63] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_SHIFT 24 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [56-59] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_SHIFT 16 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [52-55] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_SHIFT 8 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [48-51] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_SHIFT 0 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_MASK 0x000000FFU + +/* +* DQ nibble map for DIMM ECC check bits [4-7] Present only in designs conf + * igured to support DDR4. +*/ +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_DEFVAL +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_SHIFT +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_MASK +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_DEFVAL 0x00000000 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_SHIFT 8 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_MASK 0x0000FF00U + +/* +* DQ nibble map for DIMM ECC check bits [0-3] Present only in designs conf + * igured to support DDR4. +*/ +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_DEFVAL +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_SHIFT +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_MASK +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_DEFVAL 0x00000000 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_SHIFT 0 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_MASK 0x000000FFU + +/* +* All even ranks have the same DQ mapping controled by DQMAP0-4 register a + * s rank 0. This register provides DQ swap function for all odd ranks to s + * upport CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap b + * it 2 with 3, swap bit 4 with 5 and swap bit 6 with 7. 1: Disable rank ba + * sed DQ swapping 0: Enable rank based DQ swapping Present only in designs + * configured to support DDR4. +*/ #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT 0 -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK 0x00000001U +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT 0 +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK 0x00000001U -/*When this is set to '0', auto-precharge is disabled for the flushed command in a collision case. Collision cases are write fo - lowed by read to same address, read followed by write to same address, or write followed by write to same address with DBG0.d - s_wc bit = 1 (where same address comparisons exclude the two address bits representing critical word). FOR DEBUG ONLY.*/ +/* +* When this is set to '0', auto-precharge is disabled for the flushed comm + * and in a collision case. Collision cases are write followed by read to s + * ame address, read followed by write to same address, or write followed b + * y write to same address with DBG0.dis_wc bit = 1 (where same address com + * parisons exclude the two address bits representing critical word). FOR D + * EBUG ONLY. +*/ #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL 0x00000000 -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT 4 -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK 0x00000010U +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL 0x00000000 +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT 4 +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK 0x00000010U -/*When 1, disable write combine. FOR DEBUG ONLY*/ +/* +* When 1, disable write combine. FOR DEBUG ONLY +*/ #undef DDRC_DBG0_DIS_WC_DEFVAL #undef DDRC_DBG0_DIS_WC_SHIFT #undef DDRC_DBG0_DIS_WC_MASK -#define DDRC_DBG0_DIS_WC_DEFVAL 0x00000000 -#define DDRC_DBG0_DIS_WC_SHIFT 0 -#define DDRC_DBG0_DIS_WC_MASK 0x00000001U +#define DDRC_DBG0_DIS_WC_DEFVAL 0x00000000 +#define DDRC_DBG0_DIS_WC_SHIFT 0 +#define DDRC_DBG0_DIS_WC_MASK 0x00000001U -/*Setting this register bit to 1 allows refresh and ZQCS commands to be triggered from hardware via the IOs ext_*. If set to 1, - the fields DBGCMD.zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignored by the uMCTL2 logic. Setting this - register bit to 0 allows refresh and ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_short and DBGCMD.rank - _refresh. If set to 0, the hardware pins ext_* have no function, and are ignored by the uMCTL2 logic. This register is static - and may only be changed when the DDRC reset signal, core_ddrc_rstn, is asserted (0).*/ +/* +* Setting this register bit to 1 allows refresh and ZQCS commands to be tr + * iggered from hardware via the IOs ext_*. If set to 1, the fields DBGCMD. + * zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignore + * d by the uMCTL2 logic. Setting this register bit to 0 allows refresh and + * ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_shor + * t and DBGCMD.rank*_refresh. If set to 0, the hardware pins ext_* have no + * function, and are ignored by the uMCTL2 logic. This register is static, + * and may only be changed when the DDRC reset signal, core_ddrc_rstn, is + * asserted (0). +*/ #undef DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL #undef DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT #undef DDRC_DBGCMD_HW_REF_ZQ_EN_MASK -#define DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL 0x00000000 -#define DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT 31 -#define DDRC_DBGCMD_HW_REF_ZQ_EN_MASK 0x80000000U +#define DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL 0x00000000 +#define DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT 31 +#define DDRC_DBGCMD_HW_REF_ZQ_EN_MASK 0x80000000U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ctrlupd_req to the PHY. When this request is stored in - he uMCTL2, the bit is automatically cleared. This operation must only be performed when DFIUPD0.dis_auto_ctrlupd=1.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ct + * rlupd_req to the PHY. When this request is stored in the uMCTL2, the bit + * is automatically cleared. This operation must only be performed when DF + * IUPD0.dis_auto_ctrlupd=1. +*/ #undef DDRC_DBGCMD_CTRLUPD_DEFVAL #undef DDRC_DBGCMD_CTRLUPD_SHIFT #undef DDRC_DBGCMD_CTRLUPD_MASK -#define DDRC_DBGCMD_CTRLUPD_DEFVAL 0x00000000 -#define DDRC_DBGCMD_CTRLUPD_SHIFT 5 -#define DDRC_DBGCMD_CTRLUPD_MASK 0x00000020U +#define DDRC_DBGCMD_CTRLUPD_DEFVAL 0x00000000 +#define DDRC_DBGCMD_CTRLUPD_SHIFT 5 +#define DDRC_DBGCMD_CTRLUPD_MASK 0x00000020U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS (ZQ calibration short)/MPC(ZQ calibration) command to - he SDRAM. When this request is stored in the uMCTL2, the bit is automatically cleared. This operation can be performed only w - en ZQCTL0.dis_auto_zq=1. It is recommended NOT to set this register bit if in Init operating mode. This register bit is ignor - d when in Self-Refresh(except LPDDR4) and SR-Powerdown(LPDDR4) and Deep power-down operating modes and Maximum Power Saving M - de.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS ( + * ZQ calibration short)/MPC(ZQ calibration) command to the SDRAM. When thi + * s request is stored in the uMCTL2, the bit is automatically cleared. Thi + * s operation can be performed only when ZQCTL0.dis_auto_zq=1. It is recom + * mended NOT to set this register bit if in Init operating mode. This regi + * ster bit is ignored when in Self-Refresh(except LPDDR4) and SR-Powerdown + * (LPDDR4) and Deep power-down operating modes and Maximum Power Saving Mo + * de. +*/ #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL 0x00000000 -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT 4 -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK 0x00000010U +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL 0x00000000 +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT 4 +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK 0x00000010U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 1. Writing to this bit causes DBGSTAT.rank1 - refresh_busy to be set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 1. Writing to this bit causes DBGSTAT.rank1_refresh_busy to be + * set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. +*/ #undef DDRC_DBGCMD_RANK1_REFRESH_DEFVAL #undef DDRC_DBGCMD_RANK1_REFRESH_SHIFT #undef DDRC_DBGCMD_RANK1_REFRESH_MASK -#define DDRC_DBGCMD_RANK1_REFRESH_DEFVAL 0x00000000 -#define DDRC_DBGCMD_RANK1_REFRESH_SHIFT 1 -#define DDRC_DBGCMD_RANK1_REFRESH_MASK 0x00000002U +#define DDRC_DBGCMD_RANK1_REFRESH_DEFVAL 0x00000000 +#define DDRC_DBGCMD_RANK1_REFRESH_SHIFT 1 +#define DDRC_DBGCMD_RANK1_REFRESH_MASK 0x00000002U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 0. Writing to this bit causes DBGSTAT.rank0 - refresh_busy to be set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 0. Writing to this bit causes DBGSTAT.rank0_refresh_busy to be + * set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. +*/ #undef DDRC_DBGCMD_RANK0_REFRESH_DEFVAL #undef DDRC_DBGCMD_RANK0_REFRESH_SHIFT #undef DDRC_DBGCMD_RANK0_REFRESH_MASK -#define DDRC_DBGCMD_RANK0_REFRESH_DEFVAL 0x00000000 -#define DDRC_DBGCMD_RANK0_REFRESH_SHIFT 0 -#define DDRC_DBGCMD_RANK0_REFRESH_MASK 0x00000001U +#define DDRC_DBGCMD_RANK0_REFRESH_DEFVAL 0x00000000 +#define DDRC_DBGCMD_RANK0_REFRESH_SHIFT 0 +#define DDRC_DBGCMD_RANK0_REFRESH_MASK 0x00000001U -/*Enable quasi-dynamic register programming outside reset. Program register to 0 to enable quasi-dynamic programming. Set back - egister to 1 once programming is done.*/ +/* +* Enable quasi-dynamic register programming outside reset. Program registe + * r to 0 to enable quasi-dynamic programming. Set back register to 1 once + * programming is done. +*/ #undef DDRC_SWCTL_SW_DONE_DEFVAL #undef DDRC_SWCTL_SW_DONE_SHIFT #undef DDRC_SWCTL_SW_DONE_MASK -#define DDRC_SWCTL_SW_DONE_DEFVAL -#define DDRC_SWCTL_SW_DONE_SHIFT 0 -#define DDRC_SWCTL_SW_DONE_MASK 0x00000001U +#define DDRC_SWCTL_SW_DONE_DEFVAL +#define DDRC_SWCTL_SW_DONE_SHIFT 0 +#define DDRC_SWCTL_SW_DONE_MASK 0x00000001U -/*Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expands every AXI burst into multiple HIF commands, using t - e memory burst length as a unit. If set to 1, then XPI will use half of the memory burst length as a unit. This applies to bo - h reads and writes. When MSTR.data_bus_width==00, setting bl_exp_mode to 1 has no effect. This can be used in cases where Par - ial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.dis_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_cc - _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionality is not supported in the following cases: - UMCTL2_ - ARTIAL_WR=0 - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 and MSTR.reg_ddrc_burst_rdwr=1000 (LP - DR4 only) - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burst_rdwr=0100 (DDR4 - only), with either MSTR.reg_ddrc_burstchop=0 or CRCPARCTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Share - -AC is enabled*/ +/* +* Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expand + * s every AXI burst into multiple HIF commands, using the memory burst len + * gth as a unit. If set to 1, then XPI will use half of the memory burst l + * ength as a unit. This applies to both reads and writes. When MSTR.data_b + * us_width==00, setting bl_exp_mode to 1 has no effect. This can be used i + * n cases where Partial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.d + * is_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_ccd + * _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionali + * ty is not supported in the following cases: - UMCTL2_PARTIAL_WR=0 - UMCT + * L2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 an + * d MSTR.reg_ddrc_burst_rdwr=1000 (LPDDR4 only) - UMCTL2_PARTIAL_WR=1, MST + * R.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burs + * t_rdwr=0100 (DDR4 only), with either MSTR.reg_ddrc_burstchop=0 or CRCPAR + * CTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Shared + * -AC is enabled +*/ #undef DDRC_PCCFG_BL_EXP_MODE_DEFVAL #undef DDRC_PCCFG_BL_EXP_MODE_SHIFT #undef DDRC_PCCFG_BL_EXP_MODE_MASK -#define DDRC_PCCFG_BL_EXP_MODE_DEFVAL 0x00000000 -#define DDRC_PCCFG_BL_EXP_MODE_SHIFT 8 -#define DDRC_PCCFG_BL_EXP_MODE_MASK 0x00000100U +#define DDRC_PCCFG_BL_EXP_MODE_DEFVAL 0x00000000 +#define DDRC_PCCFG_BL_EXP_MODE_SHIFT 8 +#define DDRC_PCCFG_BL_EXP_MODE_MASK 0x00000100U -/*Page match four limit. If set to 1, limits the number of consecutive same page DDRC transactions that can be granted by the P - rt Arbiter to four when Page Match feature is enabled. If set to 0, there is no limit imposed on number of consecutive same p - ge DDRC transactions.*/ +/* +* Page match four limit. If set to 1, limits the number of consecutive sam + * e page DDRC transactions that can be granted by the Port Arbiter to four + * when Page Match feature is enabled. If set to 0, there is no limit impo + * sed on number of consecutive same page DDRC transactions. +*/ #undef DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL #undef DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT #undef DDRC_PCCFG_PAGEMATCH_LIMIT_MASK -#define DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL 0x00000000 -#define DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT 4 -#define DDRC_PCCFG_PAGEMATCH_LIMIT_MASK 0x00000010U +#define DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL 0x00000000 +#define DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT 4 +#define DDRC_PCCFG_PAGEMATCH_LIMIT_MASK 0x00000010U -/*If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals going to DDRC based - n urgent input (awurgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_go2critical_wr and co_gs_go2critica - _lpr/co_gs_go2critical_hpr signals at DDRC are driven to 1b'0.*/ +/* +* If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_l + * pr/co_gs_go2critical_hpr signals going to DDRC based on urgent input (aw + * urgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_ + * go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals a + * t DDRC are driven to 1b'0. +*/ #undef DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL #undef DDRC_PCCFG_GO2CRITICAL_EN_SHIFT #undef DDRC_PCCFG_GO2CRITICAL_EN_MASK -#define DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL 0x00000000 -#define DDRC_PCCFG_GO2CRITICAL_EN_SHIFT 0 -#define DDRC_PCCFG_GO2CRITICAL_EN_MASK 0x00000001U +#define DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL 0x00000000 +#define DDRC_PCCFG_GO2CRITICAL_EN_SHIFT 0 +#define DDRC_PCCFG_GO2CRITICAL_EN_MASK 0x00000001U -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_0_PORT_EN_DEFVAL #undef DDRC_PCTRL_0_PORT_EN_SHIFT #undef DDRC_PCTRL_0_PORT_EN_MASK -#define DDRC_PCTRL_0_PORT_EN_DEFVAL -#define DDRC_PCTRL_0_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_0_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_0_PORT_EN_DEFVAL +#define DDRC_PCTRL_0_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_0_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_1_PORT_EN_DEFVAL #undef DDRC_PCTRL_1_PORT_EN_SHIFT #undef DDRC_PCTRL_1_PORT_EN_MASK -#define DDRC_PCTRL_1_PORT_EN_DEFVAL -#define DDRC_PCTRL_1_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_1_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_1_PORT_EN_DEFVAL +#define DDRC_PCTRL_1_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_1_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT 24 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK 0x03000000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT 24 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK 0x03000000U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values.*/ +/* +* Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT 8 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK 0x00000F00U +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT 8 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK 0x00000F00U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_2_PORT_EN_DEFVAL #undef DDRC_PCTRL_2_PORT_EN_SHIFT #undef DDRC_PCTRL_2_PORT_EN_MASK -#define DDRC_PCTRL_2_PORT_EN_DEFVAL -#define DDRC_PCTRL_2_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_2_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_2_PORT_EN_DEFVAL +#define DDRC_PCTRL_2_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_2_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT 24 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK 0x03000000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT 24 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK 0x03000000U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values.*/ +/* +* Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT 8 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK 0x00000F00U +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT 8 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK 0x00000F00U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_3_PORT_EN_DEFVAL #undef DDRC_PCTRL_3_PORT_EN_SHIFT #undef DDRC_PCTRL_3_PORT_EN_MASK -#define DDRC_PCTRL_3_PORT_EN_DEFVAL -#define DDRC_PCTRL_3_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_3_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_3_PORT_EN_DEFVAL +#define DDRC_PCTRL_3_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_3_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_4_PORT_EN_DEFVAL #undef DDRC_PCTRL_4_PORT_EN_SHIFT #undef DDRC_PCTRL_4_PORT_EN_MASK -#define DDRC_PCTRL_4_PORT_EN_DEFVAL -#define DDRC_PCTRL_4_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_4_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_4_PORT_EN_DEFVAL +#define DDRC_PCTRL_4_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_4_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_5_PORT_EN_DEFVAL #undef DDRC_PCTRL_5_PORT_EN_SHIFT #undef DDRC_PCTRL_5_PORT_EN_MASK -#define DDRC_PCTRL_5_PORT_EN_DEFVAL -#define DDRC_PCTRL_5_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_5_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_5_PORT_EN_DEFVAL +#define DDRC_PCTRL_5_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_5_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)).*/ +/* +* Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). +*/ #undef DDRC_SARBASE0_BASE_ADDR_DEFVAL #undef DDRC_SARBASE0_BASE_ADDR_SHIFT #undef DDRC_SARBASE0_BASE_ADDR_MASK -#define DDRC_SARBASE0_BASE_ADDR_DEFVAL -#define DDRC_SARBASE0_BASE_ADDR_SHIFT 0 -#define DDRC_SARBASE0_BASE_ADDR_MASK 0x000001FFU +#define DDRC_SARBASE0_BASE_ADDR_DEFVAL +#define DDRC_SARBASE0_BASE_ADDR_SHIFT 0 +#define DDRC_SARBASE0_BASE_ADDR_MASK 0x000001FFU -/*Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block.*/ +/* +* Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. +*/ #undef DDRC_SARSIZE0_NBLOCKS_DEFVAL #undef DDRC_SARSIZE0_NBLOCKS_SHIFT #undef DDRC_SARSIZE0_NBLOCKS_MASK -#define DDRC_SARSIZE0_NBLOCKS_DEFVAL -#define DDRC_SARSIZE0_NBLOCKS_SHIFT 0 -#define DDRC_SARSIZE0_NBLOCKS_MASK 0x000000FFU +#define DDRC_SARSIZE0_NBLOCKS_DEFVAL +#define DDRC_SARSIZE0_NBLOCKS_SHIFT 0 +#define DDRC_SARSIZE0_NBLOCKS_MASK 0x000000FFU -/*Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)).*/ +/* +* Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). +*/ #undef DDRC_SARBASE1_BASE_ADDR_DEFVAL #undef DDRC_SARBASE1_BASE_ADDR_SHIFT #undef DDRC_SARBASE1_BASE_ADDR_MASK -#define DDRC_SARBASE1_BASE_ADDR_DEFVAL -#define DDRC_SARBASE1_BASE_ADDR_SHIFT 0 -#define DDRC_SARBASE1_BASE_ADDR_MASK 0x000001FFU +#define DDRC_SARBASE1_BASE_ADDR_DEFVAL +#define DDRC_SARBASE1_BASE_ADDR_SHIFT 0 +#define DDRC_SARBASE1_BASE_ADDR_MASK 0x000001FFU -/*Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block.*/ +/* +* Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. +*/ #undef DDRC_SARSIZE1_NBLOCKS_DEFVAL #undef DDRC_SARSIZE1_NBLOCKS_SHIFT #undef DDRC_SARSIZE1_NBLOCKS_MASK -#define DDRC_SARSIZE1_NBLOCKS_DEFVAL -#define DDRC_SARSIZE1_NBLOCKS_SHIFT 0 -#define DDRC_SARSIZE1_NBLOCKS_MASK 0x000000FFU +#define DDRC_SARSIZE1_NBLOCKS_DEFVAL +#define DDRC_SARSIZE1_NBLOCKS_SHIFT 0 +#define DDRC_SARSIZE1_NBLOCKS_MASK 0x000000FFU -/*Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock.*/ +/* +* Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT 24 -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK 0x1F000000U +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT 24 +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK 0x1F000000U -/*Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value.*/ +/* +* Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT 23 -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK 0x00800000U +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT 23 +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK 0x00800000U -/*Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks*/ +/* +* Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks +*/ #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT 16 -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK 0x003F0000U +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT 16 +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK 0x003F0000U -/*Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e.*/ +/* +* Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT 15 -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK 0x00008000U +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT 15 +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK 0x00008000U -/*Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks*/ +/* +* Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks +*/ #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT 8 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK 0x00003F00U +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT 8 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK 0x00003F00U -/*Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM.*/ +/* +* Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT 0 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK 0x0000003FU +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT 0 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK 0x0000003FU -/*DDR block level reset inside of the DDR Sub System*/ +/* +* DDR block level reset inside of the DDR Sub System +*/ #undef CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL #undef CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT #undef CRF_APB_RST_DDR_SS_DDR_RESET_MASK -#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F -#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 -#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U +#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 +#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U -/*Address Copy*/ +/* +* APM block level reset inside of the DDR Sub System +*/ +#undef CRF_APB_RST_DDR_SS_APM_RESET_DEFVAL +#undef CRF_APB_RST_DDR_SS_APM_RESET_SHIFT +#undef CRF_APB_RST_DDR_SS_APM_RESET_MASK +#define CRF_APB_RST_DDR_SS_APM_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_APM_RESET_SHIFT 2 +#define CRF_APB_RST_DDR_SS_APM_RESET_MASK 0x00000004U + +/* +* Address Copy +*/ #undef DDR_PHY_PGCR0_ADCP_DEFVAL #undef DDR_PHY_PGCR0_ADCP_SHIFT #undef DDR_PHY_PGCR0_ADCP_MASK -#define DDR_PHY_PGCR0_ADCP_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_ADCP_SHIFT 31 -#define DDR_PHY_PGCR0_ADCP_MASK 0x80000000U +#define DDR_PHY_PGCR0_ADCP_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_ADCP_SHIFT 31 +#define DDR_PHY_PGCR0_ADCP_MASK 0x80000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_30_27_SHIFT #undef DDR_PHY_PGCR0_RESERVED_30_27_MASK -#define DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_30_27_SHIFT 27 -#define DDR_PHY_PGCR0_RESERVED_30_27_MASK 0x78000000U +#define DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_30_27_SHIFT 27 +#define DDR_PHY_PGCR0_RESERVED_30_27_MASK 0x78000000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_PGCR0_PHYFRST_DEFVAL #undef DDR_PHY_PGCR0_PHYFRST_SHIFT #undef DDR_PHY_PGCR0_PHYFRST_MASK -#define DDR_PHY_PGCR0_PHYFRST_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_PHYFRST_SHIFT 26 -#define DDR_PHY_PGCR0_PHYFRST_MASK 0x04000000U +#define DDR_PHY_PGCR0_PHYFRST_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_PHYFRST_SHIFT 26 +#define DDR_PHY_PGCR0_PHYFRST_MASK 0x04000000U -/*Oscillator Mode Address/Command Delay Line Select*/ +/* +* Oscillator Mode Address/Command Delay Line Select +*/ #undef DDR_PHY_PGCR0_OSCACDL_DEFVAL #undef DDR_PHY_PGCR0_OSCACDL_SHIFT #undef DDR_PHY_PGCR0_OSCACDL_MASK -#define DDR_PHY_PGCR0_OSCACDL_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCACDL_SHIFT 24 -#define DDR_PHY_PGCR0_OSCACDL_MASK 0x03000000U +#define DDR_PHY_PGCR0_OSCACDL_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCACDL_SHIFT 24 +#define DDR_PHY_PGCR0_OSCACDL_MASK 0x03000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_23_19_SHIFT #undef DDR_PHY_PGCR0_RESERVED_23_19_MASK -#define DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_23_19_SHIFT 19 -#define DDR_PHY_PGCR0_RESERVED_23_19_MASK 0x00F80000U +#define DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_23_19_SHIFT 19 +#define DDR_PHY_PGCR0_RESERVED_23_19_MASK 0x00F80000U -/*Digital Test Output Select*/ +/* +* Digital Test Output Select +*/ #undef DDR_PHY_PGCR0_DTOSEL_DEFVAL #undef DDR_PHY_PGCR0_DTOSEL_SHIFT #undef DDR_PHY_PGCR0_DTOSEL_MASK -#define DDR_PHY_PGCR0_DTOSEL_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_DTOSEL_SHIFT 14 -#define DDR_PHY_PGCR0_DTOSEL_MASK 0x0007C000U +#define DDR_PHY_PGCR0_DTOSEL_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_DTOSEL_SHIFT 14 +#define DDR_PHY_PGCR0_DTOSEL_MASK 0x0007C000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_13_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_13_SHIFT #undef DDR_PHY_PGCR0_RESERVED_13_MASK -#define DDR_PHY_PGCR0_RESERVED_13_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_13_SHIFT 13 -#define DDR_PHY_PGCR0_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_PGCR0_RESERVED_13_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_13_SHIFT 13 +#define DDR_PHY_PGCR0_RESERVED_13_MASK 0x00002000U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_PGCR0_OSCDIV_DEFVAL #undef DDR_PHY_PGCR0_OSCDIV_SHIFT #undef DDR_PHY_PGCR0_OSCDIV_MASK -#define DDR_PHY_PGCR0_OSCDIV_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCDIV_SHIFT 9 -#define DDR_PHY_PGCR0_OSCDIV_MASK 0x00001E00U +#define DDR_PHY_PGCR0_OSCDIV_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCDIV_SHIFT 9 +#define DDR_PHY_PGCR0_OSCDIV_MASK 0x00001E00U -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_PGCR0_OSCEN_DEFVAL #undef DDR_PHY_PGCR0_OSCEN_SHIFT #undef DDR_PHY_PGCR0_OSCEN_MASK -#define DDR_PHY_PGCR0_OSCEN_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCEN_SHIFT 8 -#define DDR_PHY_PGCR0_OSCEN_MASK 0x00000100U +#define DDR_PHY_PGCR0_OSCEN_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCEN_SHIFT 8 +#define DDR_PHY_PGCR0_OSCEN_MASK 0x00000100U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_7_0_SHIFT #undef DDR_PHY_PGCR0_RESERVED_7_0_MASK -#define DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_7_0_SHIFT 0 -#define DDR_PHY_PGCR0_RESERVED_7_0_MASK 0x000000FFU +#define DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_7_0_SHIFT 0 +#define DDR_PHY_PGCR0_RESERVED_7_0_MASK 0x000000FFU -/*Clear Training Status Registers*/ +/* +* Clear Training Status Registers +*/ #undef DDR_PHY_PGCR2_CLRTSTAT_DEFVAL #undef DDR_PHY_PGCR2_CLRTSTAT_SHIFT #undef DDR_PHY_PGCR2_CLRTSTAT_MASK -#define DDR_PHY_PGCR2_CLRTSTAT_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRTSTAT_SHIFT 31 -#define DDR_PHY_PGCR2_CLRTSTAT_MASK 0x80000000U +#define DDR_PHY_PGCR2_CLRTSTAT_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRTSTAT_SHIFT 31 +#define DDR_PHY_PGCR2_CLRTSTAT_MASK 0x80000000U -/*Clear Impedance Calibration*/ +/* +* Clear Impedance Calibration +*/ #undef DDR_PHY_PGCR2_CLRZCAL_DEFVAL #undef DDR_PHY_PGCR2_CLRZCAL_SHIFT #undef DDR_PHY_PGCR2_CLRZCAL_MASK -#define DDR_PHY_PGCR2_CLRZCAL_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRZCAL_SHIFT 30 -#define DDR_PHY_PGCR2_CLRZCAL_MASK 0x40000000U +#define DDR_PHY_PGCR2_CLRZCAL_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRZCAL_SHIFT 30 +#define DDR_PHY_PGCR2_CLRZCAL_MASK 0x40000000U -/*Clear Parity Error*/ +/* +* Clear Parity Error +*/ #undef DDR_PHY_PGCR2_CLRPERR_DEFVAL #undef DDR_PHY_PGCR2_CLRPERR_SHIFT #undef DDR_PHY_PGCR2_CLRPERR_MASK -#define DDR_PHY_PGCR2_CLRPERR_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRPERR_SHIFT 29 -#define DDR_PHY_PGCR2_CLRPERR_MASK 0x20000000U +#define DDR_PHY_PGCR2_CLRPERR_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRPERR_SHIFT 29 +#define DDR_PHY_PGCR2_CLRPERR_MASK 0x20000000U -/*Initialization Complete Pin Configuration*/ +/* +* Initialization Complete Pin Configuration +*/ #undef DDR_PHY_PGCR2_ICPC_DEFVAL #undef DDR_PHY_PGCR2_ICPC_SHIFT #undef DDR_PHY_PGCR2_ICPC_MASK -#define DDR_PHY_PGCR2_ICPC_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_ICPC_SHIFT 28 -#define DDR_PHY_PGCR2_ICPC_MASK 0x10000000U +#define DDR_PHY_PGCR2_ICPC_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_ICPC_SHIFT 28 +#define DDR_PHY_PGCR2_ICPC_MASK 0x10000000U -/*Data Training PUB Mode Exit Timer*/ +/* +* Data Training PUB Mode Exit Timer +*/ #undef DDR_PHY_PGCR2_DTPMXTMR_DEFVAL #undef DDR_PHY_PGCR2_DTPMXTMR_SHIFT #undef DDR_PHY_PGCR2_DTPMXTMR_MASK -#define DDR_PHY_PGCR2_DTPMXTMR_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_DTPMXTMR_SHIFT 20 -#define DDR_PHY_PGCR2_DTPMXTMR_MASK 0x0FF00000U +#define DDR_PHY_PGCR2_DTPMXTMR_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_DTPMXTMR_SHIFT 20 +#define DDR_PHY_PGCR2_DTPMXTMR_MASK 0x0FF00000U -/*Initialization Bypass*/ +/* +* Initialization Bypass +*/ #undef DDR_PHY_PGCR2_INITFSMBYP_DEFVAL #undef DDR_PHY_PGCR2_INITFSMBYP_SHIFT #undef DDR_PHY_PGCR2_INITFSMBYP_MASK -#define DDR_PHY_PGCR2_INITFSMBYP_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_INITFSMBYP_SHIFT 19 -#define DDR_PHY_PGCR2_INITFSMBYP_MASK 0x00080000U +#define DDR_PHY_PGCR2_INITFSMBYP_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_INITFSMBYP_SHIFT 19 +#define DDR_PHY_PGCR2_INITFSMBYP_MASK 0x00080000U -/*PLL FSM Bypass*/ +/* +* PLL FSM Bypass +*/ #undef DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL #undef DDR_PHY_PGCR2_PLLFSMBYP_SHIFT #undef DDR_PHY_PGCR2_PLLFSMBYP_MASK -#define DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_PLLFSMBYP_SHIFT 18 -#define DDR_PHY_PGCR2_PLLFSMBYP_MASK 0x00040000U +#define DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_PLLFSMBYP_SHIFT 18 +#define DDR_PHY_PGCR2_PLLFSMBYP_MASK 0x00040000U -/*Refresh Period*/ +/* +* Refresh Period +*/ #undef DDR_PHY_PGCR2_TREFPRD_DEFVAL #undef DDR_PHY_PGCR2_TREFPRD_SHIFT #undef DDR_PHY_PGCR2_TREFPRD_MASK -#define DDR_PHY_PGCR2_TREFPRD_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_TREFPRD_SHIFT 0 -#define DDR_PHY_PGCR2_TREFPRD_MASK 0x0003FFFFU +#define DDR_PHY_PGCR2_TREFPRD_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_TREFPRD_SHIFT 0 +#define DDR_PHY_PGCR2_TREFPRD_MASK 0x0003FFFFU -/*CKN Enable*/ +/* +* CKN Enable +*/ #undef DDR_PHY_PGCR3_CKNEN_DEFVAL #undef DDR_PHY_PGCR3_CKNEN_SHIFT #undef DDR_PHY_PGCR3_CKNEN_MASK -#define DDR_PHY_PGCR3_CKNEN_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CKNEN_SHIFT 24 -#define DDR_PHY_PGCR3_CKNEN_MASK 0xFF000000U +#define DDR_PHY_PGCR3_CKNEN_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CKNEN_SHIFT 24 +#define DDR_PHY_PGCR3_CKNEN_MASK 0xFF000000U -/*CK Enable*/ +/* +* CK Enable +*/ #undef DDR_PHY_PGCR3_CKEN_DEFVAL #undef DDR_PHY_PGCR3_CKEN_SHIFT #undef DDR_PHY_PGCR3_CKEN_MASK -#define DDR_PHY_PGCR3_CKEN_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CKEN_SHIFT 16 -#define DDR_PHY_PGCR3_CKEN_MASK 0x00FF0000U +#define DDR_PHY_PGCR3_CKEN_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CKEN_SHIFT 16 +#define DDR_PHY_PGCR3_CKEN_MASK 0x00FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR3_RESERVED_15_DEFVAL #undef DDR_PHY_PGCR3_RESERVED_15_SHIFT #undef DDR_PHY_PGCR3_RESERVED_15_MASK -#define DDR_PHY_PGCR3_RESERVED_15_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RESERVED_15_SHIFT 15 -#define DDR_PHY_PGCR3_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_PGCR3_RESERVED_15_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RESERVED_15_SHIFT 15 +#define DDR_PHY_PGCR3_RESERVED_15_MASK 0x00008000U -/*Enable Clock Gating for AC [0] ctl_rd_clk*/ +/* +* Enable Clock Gating for AC [0] ctl_rd_clk +*/ #undef DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACRDCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACRDCLK_MASK -#define DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACRDCLK_SHIFT 13 -#define DDR_PHY_PGCR3_GATEACRDCLK_MASK 0x00006000U +#define DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACRDCLK_SHIFT 13 +#define DDR_PHY_PGCR3_GATEACRDCLK_MASK 0x00006000U -/*Enable Clock Gating for AC [0] ddr_clk*/ +/* +* Enable Clock Gating for AC [0] ddr_clk +*/ #undef DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACDDRCLK_MASK -#define DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT 11 -#define DDR_PHY_PGCR3_GATEACDDRCLK_MASK 0x00001800U +#define DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT 11 +#define DDR_PHY_PGCR3_GATEACDDRCLK_MASK 0x00001800U -/*Enable Clock Gating for AC [0] ctl_clk*/ +/* +* Enable Clock Gating for AC [0] ctl_clk +*/ #undef DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACCTLCLK_MASK -#define DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT 9 -#define DDR_PHY_PGCR3_GATEACCTLCLK_MASK 0x00000600U +#define DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT 9 +#define DDR_PHY_PGCR3_GATEACCTLCLK_MASK 0x00000600U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR3_RESERVED_8_DEFVAL #undef DDR_PHY_PGCR3_RESERVED_8_SHIFT #undef DDR_PHY_PGCR3_RESERVED_8_MASK -#define DDR_PHY_PGCR3_RESERVED_8_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RESERVED_8_SHIFT 8 -#define DDR_PHY_PGCR3_RESERVED_8_MASK 0x00000100U +#define DDR_PHY_PGCR3_RESERVED_8_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RESERVED_8_SHIFT 8 +#define DDR_PHY_PGCR3_RESERVED_8_MASK 0x00000100U -/*Controls DDL Bypass Modes*/ +/* +* Controls DDL Bypass Modes +*/ #undef DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL #undef DDR_PHY_PGCR3_DDLBYPMODE_SHIFT #undef DDR_PHY_PGCR3_DDLBYPMODE_MASK -#define DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_DDLBYPMODE_SHIFT 6 -#define DDR_PHY_PGCR3_DDLBYPMODE_MASK 0x000000C0U +#define DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_DDLBYPMODE_SHIFT 6 +#define DDR_PHY_PGCR3_DDLBYPMODE_MASK 0x000000C0U -/*IO Loop-Back Select*/ +/* +* IO Loop-Back Select +*/ #undef DDR_PHY_PGCR3_IOLB_DEFVAL #undef DDR_PHY_PGCR3_IOLB_SHIFT #undef DDR_PHY_PGCR3_IOLB_MASK -#define DDR_PHY_PGCR3_IOLB_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_IOLB_SHIFT 5 -#define DDR_PHY_PGCR3_IOLB_MASK 0x00000020U +#define DDR_PHY_PGCR3_IOLB_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_IOLB_SHIFT 5 +#define DDR_PHY_PGCR3_IOLB_MASK 0x00000020U -/*AC Receive FIFO Read Mode*/ +/* +* AC Receive FIFO Read Mode +*/ #undef DDR_PHY_PGCR3_RDMODE_DEFVAL #undef DDR_PHY_PGCR3_RDMODE_SHIFT #undef DDR_PHY_PGCR3_RDMODE_MASK -#define DDR_PHY_PGCR3_RDMODE_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RDMODE_SHIFT 3 -#define DDR_PHY_PGCR3_RDMODE_MASK 0x00000018U +#define DDR_PHY_PGCR3_RDMODE_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RDMODE_SHIFT 3 +#define DDR_PHY_PGCR3_RDMODE_MASK 0x00000018U -/*Read FIFO Reset Disable*/ +/* +* Read FIFO Reset Disable +*/ #undef DDR_PHY_PGCR3_DISRST_DEFVAL #undef DDR_PHY_PGCR3_DISRST_SHIFT #undef DDR_PHY_PGCR3_DISRST_MASK -#define DDR_PHY_PGCR3_DISRST_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_DISRST_SHIFT 2 -#define DDR_PHY_PGCR3_DISRST_MASK 0x00000004U +#define DDR_PHY_PGCR3_DISRST_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_DISRST_SHIFT 2 +#define DDR_PHY_PGCR3_DISRST_MASK 0x00000004U -/*Clock Level when Clock Gating*/ +/* +* Clock Level when Clock Gating +*/ #undef DDR_PHY_PGCR3_CLKLEVEL_DEFVAL #undef DDR_PHY_PGCR3_CLKLEVEL_SHIFT #undef DDR_PHY_PGCR3_CLKLEVEL_MASK -#define DDR_PHY_PGCR3_CLKLEVEL_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CLKLEVEL_SHIFT 0 -#define DDR_PHY_PGCR3_CLKLEVEL_MASK 0x00000003U +#define DDR_PHY_PGCR3_CLKLEVEL_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CLKLEVEL_SHIFT 0 +#define DDR_PHY_PGCR3_CLKLEVEL_MASK 0x00000003U -/*Frequency B Ratio Term*/ +/* +* Frequency B Ratio Term +*/ #undef DDR_PHY_PGCR5_FRQBT_DEFVAL #undef DDR_PHY_PGCR5_FRQBT_SHIFT #undef DDR_PHY_PGCR5_FRQBT_MASK -#define DDR_PHY_PGCR5_FRQBT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_FRQBT_SHIFT 24 -#define DDR_PHY_PGCR5_FRQBT_MASK 0xFF000000U +#define DDR_PHY_PGCR5_FRQBT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_FRQBT_SHIFT 24 +#define DDR_PHY_PGCR5_FRQBT_MASK 0xFF000000U -/*Frequency A Ratio Term*/ +/* +* Frequency A Ratio Term +*/ #undef DDR_PHY_PGCR5_FRQAT_DEFVAL #undef DDR_PHY_PGCR5_FRQAT_SHIFT #undef DDR_PHY_PGCR5_FRQAT_MASK -#define DDR_PHY_PGCR5_FRQAT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_FRQAT_SHIFT 16 -#define DDR_PHY_PGCR5_FRQAT_MASK 0x00FF0000U +#define DDR_PHY_PGCR5_FRQAT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_FRQAT_SHIFT 16 +#define DDR_PHY_PGCR5_FRQAT_MASK 0x00FF0000U -/*DFI Disconnect Time Period*/ +/* +* DFI Disconnect Time Period +*/ #undef DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL #undef DDR_PHY_PGCR5_DISCNPERIOD_SHIFT #undef DDR_PHY_PGCR5_DISCNPERIOD_MASK -#define DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DISCNPERIOD_SHIFT 8 -#define DDR_PHY_PGCR5_DISCNPERIOD_MASK 0x0000FF00U +#define DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DISCNPERIOD_SHIFT 8 +#define DDR_PHY_PGCR5_DISCNPERIOD_MASK 0x0000FF00U -/*Receiver bias core side control*/ +/* +* Receiver bias core side control +*/ #undef DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL #undef DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT #undef DDR_PHY_PGCR5_VREF_RBCTRL_MASK -#define DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT 4 -#define DDR_PHY_PGCR5_VREF_RBCTRL_MASK 0x000000F0U +#define DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT 4 +#define DDR_PHY_PGCR5_VREF_RBCTRL_MASK 0x000000F0U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR5_RESERVED_3_DEFVAL #undef DDR_PHY_PGCR5_RESERVED_3_SHIFT #undef DDR_PHY_PGCR5_RESERVED_3_MASK -#define DDR_PHY_PGCR5_RESERVED_3_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_RESERVED_3_SHIFT 3 -#define DDR_PHY_PGCR5_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_PGCR5_RESERVED_3_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_RESERVED_3_SHIFT 3 +#define DDR_PHY_PGCR5_RESERVED_3_MASK 0x00000008U -/*Internal VREF generator REFSEL ragne select*/ +/* +* Internal VREF generator REFSEL ragne select +*/ #undef DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL #undef DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT #undef DDR_PHY_PGCR5_DXREFISELRANGE_MASK -#define DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT 2 -#define DDR_PHY_PGCR5_DXREFISELRANGE_MASK 0x00000004U +#define DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT 2 +#define DDR_PHY_PGCR5_DXREFISELRANGE_MASK 0x00000004U -/*DDL Page Read Write select*/ +/* +* DDL Page Read Write select +*/ #undef DDR_PHY_PGCR5_DDLPGACT_DEFVAL #undef DDR_PHY_PGCR5_DDLPGACT_SHIFT #undef DDR_PHY_PGCR5_DDLPGACT_MASK -#define DDR_PHY_PGCR5_DDLPGACT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DDLPGACT_SHIFT 1 -#define DDR_PHY_PGCR5_DDLPGACT_MASK 0x00000002U +#define DDR_PHY_PGCR5_DDLPGACT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DDLPGACT_SHIFT 1 +#define DDR_PHY_PGCR5_DDLPGACT_MASK 0x00000002U -/*DDL Page Read Write select*/ +/* +* DDL Page Read Write select +*/ #undef DDR_PHY_PGCR5_DDLPGRW_DEFVAL #undef DDR_PHY_PGCR5_DDLPGRW_SHIFT #undef DDR_PHY_PGCR5_DDLPGRW_MASK -#define DDR_PHY_PGCR5_DDLPGRW_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DDLPGRW_SHIFT 0 -#define DDR_PHY_PGCR5_DDLPGRW_MASK 0x00000001U +#define DDR_PHY_PGCR5_DDLPGRW_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DDLPGRW_SHIFT 0 +#define DDR_PHY_PGCR5_DDLPGRW_MASK 0x00000001U -/*PLL Power-Down Time*/ +/* +* PLL Power-Down Time +*/ #undef DDR_PHY_PTR0_TPLLPD_DEFVAL #undef DDR_PHY_PTR0_TPLLPD_SHIFT #undef DDR_PHY_PTR0_TPLLPD_MASK -#define DDR_PHY_PTR0_TPLLPD_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPLLPD_SHIFT 21 -#define DDR_PHY_PTR0_TPLLPD_MASK 0xFFE00000U +#define DDR_PHY_PTR0_TPLLPD_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPLLPD_SHIFT 21 +#define DDR_PHY_PTR0_TPLLPD_MASK 0xFFE00000U -/*PLL Gear Shift Time*/ +/* +* PLL Gear Shift Time +*/ #undef DDR_PHY_PTR0_TPLLGS_DEFVAL #undef DDR_PHY_PTR0_TPLLGS_SHIFT #undef DDR_PHY_PTR0_TPLLGS_MASK -#define DDR_PHY_PTR0_TPLLGS_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPLLGS_SHIFT 6 -#define DDR_PHY_PTR0_TPLLGS_MASK 0x001FFFC0U +#define DDR_PHY_PTR0_TPLLGS_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPLLGS_SHIFT 6 +#define DDR_PHY_PTR0_TPLLGS_MASK 0x001FFFC0U -/*PHY Reset Time*/ +/* +* PHY Reset Time +*/ #undef DDR_PHY_PTR0_TPHYRST_DEFVAL #undef DDR_PHY_PTR0_TPHYRST_SHIFT #undef DDR_PHY_PTR0_TPHYRST_MASK -#define DDR_PHY_PTR0_TPHYRST_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPHYRST_SHIFT 0 -#define DDR_PHY_PTR0_TPHYRST_MASK 0x0000003FU +#define DDR_PHY_PTR0_TPHYRST_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPHYRST_SHIFT 0 +#define DDR_PHY_PTR0_TPHYRST_MASK 0x0000003FU -/*PLL Lock Time*/ +/* +* PLL Lock Time +*/ #undef DDR_PHY_PTR1_TPLLLOCK_DEFVAL #undef DDR_PHY_PTR1_TPLLLOCK_SHIFT #undef DDR_PHY_PTR1_TPLLLOCK_MASK -#define DDR_PHY_PTR1_TPLLLOCK_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_TPLLLOCK_SHIFT 16 -#define DDR_PHY_PTR1_TPLLLOCK_MASK 0xFFFF0000U +#define DDR_PHY_PTR1_TPLLLOCK_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_TPLLLOCK_SHIFT 16 +#define DDR_PHY_PTR1_TPLLLOCK_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PTR1_RESERVED_15_13_DEFVAL #undef DDR_PHY_PTR1_RESERVED_15_13_SHIFT #undef DDR_PHY_PTR1_RESERVED_15_13_MASK -#define DDR_PHY_PTR1_RESERVED_15_13_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_PTR1_RESERVED_15_13_MASK 0x0000E000U +#define DDR_PHY_PTR1_RESERVED_15_13_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_RESERVED_15_13_SHIFT 13 +#define DDR_PHY_PTR1_RESERVED_15_13_MASK 0x0000E000U -/*PLL Reset Time*/ +/* +* PLL Reset Time +*/ #undef DDR_PHY_PTR1_TPLLRST_DEFVAL #undef DDR_PHY_PTR1_TPLLRST_SHIFT #undef DDR_PHY_PTR1_TPLLRST_MASK -#define DDR_PHY_PTR1_TPLLRST_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_TPLLRST_SHIFT 0 -#define DDR_PHY_PTR1_TPLLRST_MASK 0x00001FFFU +#define DDR_PHY_PTR1_TPLLRST_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_TPLLRST_SHIFT 0 +#define DDR_PHY_PTR1_TPLLRST_MASK 0x00001FFFU -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_PLLCR0_PLLBYP_MASK +#define DDR_PHY_PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_PLLCR0_PLLRST_MASK +#define DDR_PHY_PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_PLLCR0_PLLPD_MASK +#define DDR_PHY_PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_PLLCR0_RSTOPM_MASK +#define DDR_PHY_PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_PLLCR0_FRQSEL_MASK +#define DDR_PHY_PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_PLLCR0_RLOCKM_MASK +#define DDR_PHY_PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_PLLCR0_CPPC_SHIFT +#undef DDR_PHY_PLLCR0_CPPC_MASK +#define DDR_PHY_PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_PLLCR0_CPIC_SHIFT +#undef DDR_PHY_PLLCR0_CPIC_MASK +#define DDR_PHY_PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_PLLCR0_GSHIFT_MASK +#define DDR_PHY_PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable +*/ +#undef DDR_PHY_PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_PLLCR0_ATOEN_MASK +#define DDR_PHY_PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_PLLCR0_ATC_DEFVAL +#undef DDR_PHY_PLLCR0_ATC_SHIFT +#undef DDR_PHY_PLLCR0_ATC_MASK +#define DDR_PHY_PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_PLLCR0_DTC_DEFVAL +#undef DDR_PHY_PLLCR0_DTC_SHIFT +#undef DDR_PHY_PLLCR0_DTC_MASK +#define DDR_PHY_PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_31_28_SHIFT #undef DDR_PHY_DSGCR_RESERVED_31_28_MASK -#define DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_31_28_SHIFT 28 -#define DDR_PHY_DSGCR_RESERVED_31_28_MASK 0xF0000000U +#define DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_31_28_SHIFT 28 +#define DDR_PHY_DSGCR_RESERVED_31_28_MASK 0xF0000000U -/*When RDBI enabled, this bit is used to select RDBI CL calculation, if it is 1b1, calculation will use RDBICL, otherwise use d - fault calculation.*/ +/* +* When RDBI enabled, this bit is used to select RDBI CL calculation, if it + * is 1b1, calculation will use RDBICL, otherwise use default calculation. +*/ #undef DDR_PHY_DSGCR_RDBICLSEL_DEFVAL #undef DDR_PHY_DSGCR_RDBICLSEL_SHIFT #undef DDR_PHY_DSGCR_RDBICLSEL_MASK -#define DDR_PHY_DSGCR_RDBICLSEL_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RDBICLSEL_SHIFT 27 -#define DDR_PHY_DSGCR_RDBICLSEL_MASK 0x08000000U +#define DDR_PHY_DSGCR_RDBICLSEL_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RDBICLSEL_SHIFT 27 +#define DDR_PHY_DSGCR_RDBICLSEL_MASK 0x08000000U -/*When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this value.*/ +/* +* When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this v + * alue. +*/ #undef DDR_PHY_DSGCR_RDBICL_DEFVAL #undef DDR_PHY_DSGCR_RDBICL_SHIFT #undef DDR_PHY_DSGCR_RDBICL_MASK -#define DDR_PHY_DSGCR_RDBICL_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RDBICL_SHIFT 24 -#define DDR_PHY_DSGCR_RDBICL_MASK 0x07000000U +#define DDR_PHY_DSGCR_RDBICL_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RDBICL_SHIFT 24 +#define DDR_PHY_DSGCR_RDBICL_MASK 0x07000000U -/*PHY Impedance Update Enable*/ +/* +* PHY Impedance Update Enable +*/ #undef DDR_PHY_DSGCR_PHYZUEN_DEFVAL #undef DDR_PHY_DSGCR_PHYZUEN_SHIFT #undef DDR_PHY_DSGCR_PHYZUEN_MASK -#define DDR_PHY_DSGCR_PHYZUEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PHYZUEN_SHIFT 23 -#define DDR_PHY_DSGCR_PHYZUEN_MASK 0x00800000U +#define DDR_PHY_DSGCR_PHYZUEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PHYZUEN_SHIFT 23 +#define DDR_PHY_DSGCR_PHYZUEN_MASK 0x00800000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_22_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_22_SHIFT #undef DDR_PHY_DSGCR_RESERVED_22_MASK -#define DDR_PHY_DSGCR_RESERVED_22_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_22_SHIFT 22 -#define DDR_PHY_DSGCR_RESERVED_22_MASK 0x00400000U +#define DDR_PHY_DSGCR_RESERVED_22_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_22_SHIFT 22 +#define DDR_PHY_DSGCR_RESERVED_22_MASK 0x00400000U -/*SDRAM Reset Output Enable*/ +/* +* SDRAM Reset Output Enable +*/ #undef DDR_PHY_DSGCR_RSTOE_DEFVAL #undef DDR_PHY_DSGCR_RSTOE_SHIFT #undef DDR_PHY_DSGCR_RSTOE_MASK -#define DDR_PHY_DSGCR_RSTOE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RSTOE_SHIFT 21 -#define DDR_PHY_DSGCR_RSTOE_MASK 0x00200000U +#define DDR_PHY_DSGCR_RSTOE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RSTOE_SHIFT 21 +#define DDR_PHY_DSGCR_RSTOE_MASK 0x00200000U -/*Single Data Rate Mode*/ +/* +* Single Data Rate Mode +*/ #undef DDR_PHY_DSGCR_SDRMODE_DEFVAL #undef DDR_PHY_DSGCR_SDRMODE_SHIFT #undef DDR_PHY_DSGCR_SDRMODE_MASK -#define DDR_PHY_DSGCR_SDRMODE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_SDRMODE_SHIFT 19 -#define DDR_PHY_DSGCR_SDRMODE_MASK 0x00180000U +#define DDR_PHY_DSGCR_SDRMODE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_SDRMODE_SHIFT 19 +#define DDR_PHY_DSGCR_SDRMODE_MASK 0x00180000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_18_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_18_SHIFT #undef DDR_PHY_DSGCR_RESERVED_18_MASK -#define DDR_PHY_DSGCR_RESERVED_18_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_18_SHIFT 18 -#define DDR_PHY_DSGCR_RESERVED_18_MASK 0x00040000U +#define DDR_PHY_DSGCR_RESERVED_18_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_18_SHIFT 18 +#define DDR_PHY_DSGCR_RESERVED_18_MASK 0x00040000U -/*ATO Analog Test Enable*/ +/* +* ATO Analog Test Enable +*/ #undef DDR_PHY_DSGCR_ATOAE_DEFVAL #undef DDR_PHY_DSGCR_ATOAE_SHIFT #undef DDR_PHY_DSGCR_ATOAE_MASK -#define DDR_PHY_DSGCR_ATOAE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_ATOAE_SHIFT 17 -#define DDR_PHY_DSGCR_ATOAE_MASK 0x00020000U +#define DDR_PHY_DSGCR_ATOAE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_ATOAE_SHIFT 17 +#define DDR_PHY_DSGCR_ATOAE_MASK 0x00020000U -/*DTO Output Enable*/ +/* +* DTO Output Enable +*/ #undef DDR_PHY_DSGCR_DTOOE_DEFVAL #undef DDR_PHY_DSGCR_DTOOE_SHIFT #undef DDR_PHY_DSGCR_DTOOE_MASK -#define DDR_PHY_DSGCR_DTOOE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOOE_SHIFT 16 -#define DDR_PHY_DSGCR_DTOOE_MASK 0x00010000U +#define DDR_PHY_DSGCR_DTOOE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOOE_SHIFT 16 +#define DDR_PHY_DSGCR_DTOOE_MASK 0x00010000U -/*DTO I/O Mode*/ +/* +* DTO I/O Mode +*/ #undef DDR_PHY_DSGCR_DTOIOM_DEFVAL #undef DDR_PHY_DSGCR_DTOIOM_SHIFT #undef DDR_PHY_DSGCR_DTOIOM_MASK -#define DDR_PHY_DSGCR_DTOIOM_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOIOM_SHIFT 15 -#define DDR_PHY_DSGCR_DTOIOM_MASK 0x00008000U +#define DDR_PHY_DSGCR_DTOIOM_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOIOM_SHIFT 15 +#define DDR_PHY_DSGCR_DTOIOM_MASK 0x00008000U -/*DTO Power Down Receiver*/ +/* +* DTO Power Down Receiver +*/ #undef DDR_PHY_DSGCR_DTOPDR_DEFVAL #undef DDR_PHY_DSGCR_DTOPDR_SHIFT #undef DDR_PHY_DSGCR_DTOPDR_MASK -#define DDR_PHY_DSGCR_DTOPDR_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOPDR_SHIFT 14 -#define DDR_PHY_DSGCR_DTOPDR_MASK 0x00004000U +#define DDR_PHY_DSGCR_DTOPDR_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOPDR_SHIFT 14 +#define DDR_PHY_DSGCR_DTOPDR_MASK 0x00004000U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_13_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_13_SHIFT #undef DDR_PHY_DSGCR_RESERVED_13_MASK -#define DDR_PHY_DSGCR_RESERVED_13_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_13_SHIFT 13 -#define DDR_PHY_DSGCR_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_DSGCR_RESERVED_13_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_13_SHIFT 13 +#define DDR_PHY_DSGCR_RESERVED_13_MASK 0x00002000U -/*DTO On-Die Termination*/ +/* +* DTO On-Die Termination +*/ #undef DDR_PHY_DSGCR_DTOODT_DEFVAL #undef DDR_PHY_DSGCR_DTOODT_SHIFT #undef DDR_PHY_DSGCR_DTOODT_MASK -#define DDR_PHY_DSGCR_DTOODT_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOODT_SHIFT 12 -#define DDR_PHY_DSGCR_DTOODT_MASK 0x00001000U +#define DDR_PHY_DSGCR_DTOODT_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOODT_SHIFT 12 +#define DDR_PHY_DSGCR_DTOODT_MASK 0x00001000U -/*PHY Update Acknowledge Delay*/ +/* +* PHY Update Acknowledge Delay +*/ #undef DDR_PHY_DSGCR_PUAD_DEFVAL #undef DDR_PHY_DSGCR_PUAD_SHIFT #undef DDR_PHY_DSGCR_PUAD_MASK -#define DDR_PHY_DSGCR_PUAD_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PUAD_SHIFT 6 -#define DDR_PHY_DSGCR_PUAD_MASK 0x00000FC0U +#define DDR_PHY_DSGCR_PUAD_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PUAD_SHIFT 6 +#define DDR_PHY_DSGCR_PUAD_MASK 0x00000FC0U -/*Controller Update Acknowledge Enable*/ +/* +* Controller Update Acknowledge Enable +*/ #undef DDR_PHY_DSGCR_CUAEN_DEFVAL #undef DDR_PHY_DSGCR_CUAEN_SHIFT #undef DDR_PHY_DSGCR_CUAEN_MASK -#define DDR_PHY_DSGCR_CUAEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_CUAEN_SHIFT 5 -#define DDR_PHY_DSGCR_CUAEN_MASK 0x00000020U +#define DDR_PHY_DSGCR_CUAEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_CUAEN_SHIFT 5 +#define DDR_PHY_DSGCR_CUAEN_MASK 0x00000020U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_4_3_SHIFT #undef DDR_PHY_DSGCR_RESERVED_4_3_MASK -#define DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_4_3_SHIFT 3 -#define DDR_PHY_DSGCR_RESERVED_4_3_MASK 0x00000018U +#define DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_4_3_SHIFT 3 +#define DDR_PHY_DSGCR_RESERVED_4_3_MASK 0x00000018U -/*Controller Impedance Update Enable*/ +/* +* Controller Impedance Update Enable +*/ #undef DDR_PHY_DSGCR_CTLZUEN_DEFVAL #undef DDR_PHY_DSGCR_CTLZUEN_SHIFT #undef DDR_PHY_DSGCR_CTLZUEN_MASK -#define DDR_PHY_DSGCR_CTLZUEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_CTLZUEN_SHIFT 2 -#define DDR_PHY_DSGCR_CTLZUEN_MASK 0x00000004U +#define DDR_PHY_DSGCR_CTLZUEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_CTLZUEN_SHIFT 2 +#define DDR_PHY_DSGCR_CTLZUEN_MASK 0x00000004U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_1_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_1_SHIFT #undef DDR_PHY_DSGCR_RESERVED_1_MASK -#define DDR_PHY_DSGCR_RESERVED_1_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_1_SHIFT 1 -#define DDR_PHY_DSGCR_RESERVED_1_MASK 0x00000002U +#define DDR_PHY_DSGCR_RESERVED_1_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_1_SHIFT 1 +#define DDR_PHY_DSGCR_RESERVED_1_MASK 0x00000002U -/*PHY Update Request Enable*/ +/* +* PHY Update Request Enable +*/ #undef DDR_PHY_DSGCR_PUREN_DEFVAL #undef DDR_PHY_DSGCR_PUREN_SHIFT #undef DDR_PHY_DSGCR_PUREN_MASK -#define DDR_PHY_DSGCR_PUREN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PUREN_SHIFT 0 -#define DDR_PHY_DSGCR_PUREN_MASK 0x00000001U +#define DDR_PHY_DSGCR_PUREN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PUREN_SHIFT 0 +#define DDR_PHY_DSGCR_PUREN_MASK 0x00000001U -/*DDR4 Gear Down Timing.*/ +/* +* General Purpose Register 0 +*/ +#undef DDR_PHY_GPR0_GPR0_DEFVAL +#undef DDR_PHY_GPR0_GPR0_SHIFT +#undef DDR_PHY_GPR0_GPR0_MASK +#define DDR_PHY_GPR0_GPR0_DEFVAL +#define DDR_PHY_GPR0_GPR0_SHIFT 0 +#define DDR_PHY_GPR0_GPR0_MASK 0xFFFFFFFFU + +/* +* DDR4 Gear Down Timing. +*/ #undef DDR_PHY_DCR_GEARDN_DEFVAL #undef DDR_PHY_DCR_GEARDN_SHIFT #undef DDR_PHY_DCR_GEARDN_MASK -#define DDR_PHY_DCR_GEARDN_DEFVAL 0x0000040D -#define DDR_PHY_DCR_GEARDN_SHIFT 31 -#define DDR_PHY_DCR_GEARDN_MASK 0x80000000U +#define DDR_PHY_DCR_GEARDN_DEFVAL 0x0000040D +#define DDR_PHY_DCR_GEARDN_SHIFT 31 +#define DDR_PHY_DCR_GEARDN_MASK 0x80000000U -/*Un-used Bank Group*/ +/* +* Un-used Bank Group +*/ #undef DDR_PHY_DCR_UBG_DEFVAL #undef DDR_PHY_DCR_UBG_SHIFT #undef DDR_PHY_DCR_UBG_MASK -#define DDR_PHY_DCR_UBG_DEFVAL 0x0000040D -#define DDR_PHY_DCR_UBG_SHIFT 30 -#define DDR_PHY_DCR_UBG_MASK 0x40000000U +#define DDR_PHY_DCR_UBG_DEFVAL 0x0000040D +#define DDR_PHY_DCR_UBG_SHIFT 30 +#define DDR_PHY_DCR_UBG_MASK 0x40000000U -/*Un-buffered DIMM Address Mirroring*/ +/* +* Un-buffered DIMM Address Mirroring +*/ #undef DDR_PHY_DCR_UDIMM_DEFVAL #undef DDR_PHY_DCR_UDIMM_SHIFT #undef DDR_PHY_DCR_UDIMM_MASK -#define DDR_PHY_DCR_UDIMM_DEFVAL 0x0000040D -#define DDR_PHY_DCR_UDIMM_SHIFT 29 -#define DDR_PHY_DCR_UDIMM_MASK 0x20000000U +#define DDR_PHY_DCR_UDIMM_DEFVAL 0x0000040D +#define DDR_PHY_DCR_UDIMM_SHIFT 29 +#define DDR_PHY_DCR_UDIMM_MASK 0x20000000U -/*DDR 2T Timing*/ +/* +* DDR 2T Timing +*/ #undef DDR_PHY_DCR_DDR2T_DEFVAL #undef DDR_PHY_DCR_DDR2T_SHIFT #undef DDR_PHY_DCR_DDR2T_MASK -#define DDR_PHY_DCR_DDR2T_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDR2T_SHIFT 28 -#define DDR_PHY_DCR_DDR2T_MASK 0x10000000U +#define DDR_PHY_DCR_DDR2T_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDR2T_SHIFT 28 +#define DDR_PHY_DCR_DDR2T_MASK 0x10000000U -/*No Simultaneous Rank Access*/ +/* +* No Simultaneous Rank Access +*/ #undef DDR_PHY_DCR_NOSRA_DEFVAL #undef DDR_PHY_DCR_NOSRA_SHIFT #undef DDR_PHY_DCR_NOSRA_MASK -#define DDR_PHY_DCR_NOSRA_DEFVAL 0x0000040D -#define DDR_PHY_DCR_NOSRA_SHIFT 27 -#define DDR_PHY_DCR_NOSRA_MASK 0x08000000U +#define DDR_PHY_DCR_NOSRA_DEFVAL 0x0000040D +#define DDR_PHY_DCR_NOSRA_SHIFT 27 +#define DDR_PHY_DCR_NOSRA_MASK 0x08000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DCR_RESERVED_26_18_DEFVAL #undef DDR_PHY_DCR_RESERVED_26_18_SHIFT #undef DDR_PHY_DCR_RESERVED_26_18_MASK -#define DDR_PHY_DCR_RESERVED_26_18_DEFVAL 0x0000040D -#define DDR_PHY_DCR_RESERVED_26_18_SHIFT 18 -#define DDR_PHY_DCR_RESERVED_26_18_MASK 0x07FC0000U +#define DDR_PHY_DCR_RESERVED_26_18_DEFVAL 0x0000040D +#define DDR_PHY_DCR_RESERVED_26_18_SHIFT 18 +#define DDR_PHY_DCR_RESERVED_26_18_MASK 0x07FC0000U -/*Byte Mask*/ +/* +* Byte Mask +*/ #undef DDR_PHY_DCR_BYTEMASK_DEFVAL #undef DDR_PHY_DCR_BYTEMASK_SHIFT #undef DDR_PHY_DCR_BYTEMASK_MASK -#define DDR_PHY_DCR_BYTEMASK_DEFVAL 0x0000040D -#define DDR_PHY_DCR_BYTEMASK_SHIFT 10 -#define DDR_PHY_DCR_BYTEMASK_MASK 0x0003FC00U +#define DDR_PHY_DCR_BYTEMASK_DEFVAL 0x0000040D +#define DDR_PHY_DCR_BYTEMASK_SHIFT 10 +#define DDR_PHY_DCR_BYTEMASK_MASK 0x0003FC00U -/*DDR Type*/ +/* +* DDR Type +*/ #undef DDR_PHY_DCR_DDRTYPE_DEFVAL #undef DDR_PHY_DCR_DDRTYPE_SHIFT #undef DDR_PHY_DCR_DDRTYPE_MASK -#define DDR_PHY_DCR_DDRTYPE_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDRTYPE_SHIFT 8 -#define DDR_PHY_DCR_DDRTYPE_MASK 0x00000300U +#define DDR_PHY_DCR_DDRTYPE_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDRTYPE_SHIFT 8 +#define DDR_PHY_DCR_DDRTYPE_MASK 0x00000300U -/*Multi-Purpose Register (MPR) DQ (DDR3 Only)*/ +/* +* Multi-Purpose Register (MPR) DQ (DDR3 Only) +*/ #undef DDR_PHY_DCR_MPRDQ_DEFVAL #undef DDR_PHY_DCR_MPRDQ_SHIFT #undef DDR_PHY_DCR_MPRDQ_MASK -#define DDR_PHY_DCR_MPRDQ_DEFVAL 0x0000040D -#define DDR_PHY_DCR_MPRDQ_SHIFT 7 -#define DDR_PHY_DCR_MPRDQ_MASK 0x00000080U +#define DDR_PHY_DCR_MPRDQ_DEFVAL 0x0000040D +#define DDR_PHY_DCR_MPRDQ_SHIFT 7 +#define DDR_PHY_DCR_MPRDQ_MASK 0x00000080U -/*Primary DQ (DDR3 Only)*/ +/* +* Primary DQ (DDR3 Only) +*/ #undef DDR_PHY_DCR_PDQ_DEFVAL #undef DDR_PHY_DCR_PDQ_SHIFT #undef DDR_PHY_DCR_PDQ_MASK -#define DDR_PHY_DCR_PDQ_DEFVAL 0x0000040D -#define DDR_PHY_DCR_PDQ_SHIFT 4 -#define DDR_PHY_DCR_PDQ_MASK 0x00000070U +#define DDR_PHY_DCR_PDQ_DEFVAL 0x0000040D +#define DDR_PHY_DCR_PDQ_SHIFT 4 +#define DDR_PHY_DCR_PDQ_MASK 0x00000070U -/*DDR 8-Bank*/ +/* +* DDR 8-Bank +*/ #undef DDR_PHY_DCR_DDR8BNK_DEFVAL #undef DDR_PHY_DCR_DDR8BNK_SHIFT #undef DDR_PHY_DCR_DDR8BNK_MASK -#define DDR_PHY_DCR_DDR8BNK_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDR8BNK_SHIFT 3 -#define DDR_PHY_DCR_DDR8BNK_MASK 0x00000008U +#define DDR_PHY_DCR_DDR8BNK_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDR8BNK_SHIFT 3 +#define DDR_PHY_DCR_DDR8BNK_MASK 0x00000008U -/*DDR Mode*/ +/* +* DDR Mode +*/ #undef DDR_PHY_DCR_DDRMD_DEFVAL #undef DDR_PHY_DCR_DDRMD_SHIFT #undef DDR_PHY_DCR_DDRMD_MASK -#define DDR_PHY_DCR_DDRMD_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDRMD_SHIFT 0 -#define DDR_PHY_DCR_DDRMD_MASK 0x00000007U +#define DDR_PHY_DCR_DDRMD_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDRMD_SHIFT 0 +#define DDR_PHY_DCR_DDRMD_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_31_29_SHIFT #undef DDR_PHY_DTPR0_RESERVED_31_29_MASK -#define DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DTPR0_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DTPR0_RESERVED_31_29_MASK 0xE0000000U -/*Activate to activate command delay (different banks)*/ +/* +* Activate to activate command delay (different banks) +*/ #undef DDR_PHY_DTPR0_TRRD_DEFVAL #undef DDR_PHY_DTPR0_TRRD_SHIFT #undef DDR_PHY_DTPR0_TRRD_MASK -#define DDR_PHY_DTPR0_TRRD_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRRD_SHIFT 24 -#define DDR_PHY_DTPR0_TRRD_MASK 0x1F000000U +#define DDR_PHY_DTPR0_TRRD_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRRD_SHIFT 24 +#define DDR_PHY_DTPR0_TRRD_MASK 0x1F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_23_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_23_SHIFT #undef DDR_PHY_DTPR0_RESERVED_23_MASK -#define DDR_PHY_DTPR0_RESERVED_23_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_23_SHIFT 23 -#define DDR_PHY_DTPR0_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DTPR0_RESERVED_23_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_23_SHIFT 23 +#define DDR_PHY_DTPR0_RESERVED_23_MASK 0x00800000U -/*Activate to precharge command delay*/ +/* +* Activate to precharge command delay +*/ #undef DDR_PHY_DTPR0_TRAS_DEFVAL #undef DDR_PHY_DTPR0_TRAS_SHIFT #undef DDR_PHY_DTPR0_TRAS_MASK -#define DDR_PHY_DTPR0_TRAS_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRAS_SHIFT 16 -#define DDR_PHY_DTPR0_TRAS_MASK 0x007F0000U +#define DDR_PHY_DTPR0_TRAS_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRAS_SHIFT 16 +#define DDR_PHY_DTPR0_TRAS_MASK 0x007F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_15_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_15_SHIFT #undef DDR_PHY_DTPR0_RESERVED_15_MASK -#define DDR_PHY_DTPR0_RESERVED_15_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_15_SHIFT 15 -#define DDR_PHY_DTPR0_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DTPR0_RESERVED_15_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_15_SHIFT 15 +#define DDR_PHY_DTPR0_RESERVED_15_MASK 0x00008000U -/*Precharge command period*/ +/* +* Precharge command period +*/ #undef DDR_PHY_DTPR0_TRP_DEFVAL #undef DDR_PHY_DTPR0_TRP_SHIFT #undef DDR_PHY_DTPR0_TRP_MASK -#define DDR_PHY_DTPR0_TRP_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRP_SHIFT 8 -#define DDR_PHY_DTPR0_TRP_MASK 0x00007F00U +#define DDR_PHY_DTPR0_TRP_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRP_SHIFT 8 +#define DDR_PHY_DTPR0_TRP_MASK 0x00007F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR0_RESERVED_7_5_MASK -#define DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR0_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR0_RESERVED_7_5_MASK 0x000000E0U -/*Internal read to precharge command delay*/ +/* +* Internal read to precharge command delay +*/ #undef DDR_PHY_DTPR0_TRTP_DEFVAL #undef DDR_PHY_DTPR0_TRTP_SHIFT #undef DDR_PHY_DTPR0_TRTP_MASK -#define DDR_PHY_DTPR0_TRTP_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRTP_SHIFT 0 -#define DDR_PHY_DTPR0_TRTP_MASK 0x0000001FU +#define DDR_PHY_DTPR0_TRTP_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRTP_SHIFT 0 +#define DDR_PHY_DTPR0_TRTP_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_31_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_31_SHIFT #undef DDR_PHY_DTPR1_RESERVED_31_MASK -#define DDR_PHY_DTPR1_RESERVED_31_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_31_SHIFT 31 -#define DDR_PHY_DTPR1_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DTPR1_RESERVED_31_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_31_SHIFT 31 +#define DDR_PHY_DTPR1_RESERVED_31_MASK 0x80000000U -/*Minimum delay from when write leveling mode is programmed to the first DQS/DQS# rising edge.*/ +/* +* Minimum delay from when write leveling mode is programmed to the first D + * QS/DQS# rising edge. +*/ #undef DDR_PHY_DTPR1_TWLMRD_DEFVAL #undef DDR_PHY_DTPR1_TWLMRD_SHIFT #undef DDR_PHY_DTPR1_TWLMRD_MASK -#define DDR_PHY_DTPR1_TWLMRD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TWLMRD_SHIFT 24 -#define DDR_PHY_DTPR1_TWLMRD_MASK 0x7F000000U +#define DDR_PHY_DTPR1_TWLMRD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TWLMRD_SHIFT 24 +#define DDR_PHY_DTPR1_TWLMRD_MASK 0x7F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_23_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_23_SHIFT #undef DDR_PHY_DTPR1_RESERVED_23_MASK -#define DDR_PHY_DTPR1_RESERVED_23_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_23_SHIFT 23 -#define DDR_PHY_DTPR1_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DTPR1_RESERVED_23_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_23_SHIFT 23 +#define DDR_PHY_DTPR1_RESERVED_23_MASK 0x00800000U -/*4-bank activate period*/ +/* +* 4-bank activate period +*/ #undef DDR_PHY_DTPR1_TFAW_DEFVAL #undef DDR_PHY_DTPR1_TFAW_SHIFT #undef DDR_PHY_DTPR1_TFAW_MASK -#define DDR_PHY_DTPR1_TFAW_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TFAW_SHIFT 16 -#define DDR_PHY_DTPR1_TFAW_MASK 0x007F0000U +#define DDR_PHY_DTPR1_TFAW_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TFAW_SHIFT 16 +#define DDR_PHY_DTPR1_TFAW_MASK 0x007F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_15_11_SHIFT #undef DDR_PHY_DTPR1_RESERVED_15_11_MASK -#define DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_15_11_SHIFT 11 -#define DDR_PHY_DTPR1_RESERVED_15_11_MASK 0x0000F800U +#define DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_15_11_SHIFT 11 +#define DDR_PHY_DTPR1_RESERVED_15_11_MASK 0x0000F800U -/*Load mode update delay (DDR4 and DDR3 only)*/ +/* +* Load mode update delay (DDR4 and DDR3 only) +*/ #undef DDR_PHY_DTPR1_TMOD_DEFVAL #undef DDR_PHY_DTPR1_TMOD_SHIFT #undef DDR_PHY_DTPR1_TMOD_MASK -#define DDR_PHY_DTPR1_TMOD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TMOD_SHIFT 8 -#define DDR_PHY_DTPR1_TMOD_MASK 0x00000700U +#define DDR_PHY_DTPR1_TMOD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TMOD_SHIFT 8 +#define DDR_PHY_DTPR1_TMOD_MASK 0x00000700U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR1_RESERVED_7_5_MASK -#define DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR1_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR1_RESERVED_7_5_MASK 0x000000E0U -/*Load mode cycle time*/ +/* +* Load mode cycle time +*/ #undef DDR_PHY_DTPR1_TMRD_DEFVAL #undef DDR_PHY_DTPR1_TMRD_SHIFT #undef DDR_PHY_DTPR1_TMRD_MASK -#define DDR_PHY_DTPR1_TMRD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TMRD_SHIFT 0 -#define DDR_PHY_DTPR1_TMRD_MASK 0x0000001FU +#define DDR_PHY_DTPR1_TMRD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TMRD_SHIFT 0 +#define DDR_PHY_DTPR1_TMRD_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_31_29_SHIFT #undef DDR_PHY_DTPR2_RESERVED_31_29_MASK -#define DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DTPR2_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DTPR2_RESERVED_31_29_MASK 0xE0000000U -/*Read to Write command delay. Valid values are*/ +/* +* Read to Write command delay. Valid values are +*/ #undef DDR_PHY_DTPR2_TRTW_DEFVAL #undef DDR_PHY_DTPR2_TRTW_SHIFT #undef DDR_PHY_DTPR2_TRTW_MASK -#define DDR_PHY_DTPR2_TRTW_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TRTW_SHIFT 28 -#define DDR_PHY_DTPR2_TRTW_MASK 0x10000000U +#define DDR_PHY_DTPR2_TRTW_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TRTW_SHIFT 28 +#define DDR_PHY_DTPR2_TRTW_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_27_25_SHIFT #undef DDR_PHY_DTPR2_RESERVED_27_25_MASK -#define DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_27_25_SHIFT 25 -#define DDR_PHY_DTPR2_RESERVED_27_25_MASK 0x0E000000U +#define DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_27_25_SHIFT 25 +#define DDR_PHY_DTPR2_RESERVED_27_25_MASK 0x0E000000U -/*Read to ODT delay (DDR3 only)*/ +/* +* Read to ODT delay (DDR3 only) +*/ #undef DDR_PHY_DTPR2_TRTODT_DEFVAL #undef DDR_PHY_DTPR2_TRTODT_SHIFT #undef DDR_PHY_DTPR2_TRTODT_MASK -#define DDR_PHY_DTPR2_TRTODT_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TRTODT_SHIFT 24 -#define DDR_PHY_DTPR2_TRTODT_MASK 0x01000000U +#define DDR_PHY_DTPR2_TRTODT_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TRTODT_SHIFT 24 +#define DDR_PHY_DTPR2_TRTODT_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_23_20_SHIFT #undef DDR_PHY_DTPR2_RESERVED_23_20_MASK -#define DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DTPR2_RESERVED_23_20_MASK 0x00F00000U +#define DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_23_20_SHIFT 20 +#define DDR_PHY_DTPR2_RESERVED_23_20_MASK 0x00F00000U -/*CKE minimum pulse width*/ +/* +* CKE minimum pulse width +*/ #undef DDR_PHY_DTPR2_TCKE_DEFVAL #undef DDR_PHY_DTPR2_TCKE_SHIFT #undef DDR_PHY_DTPR2_TCKE_MASK -#define DDR_PHY_DTPR2_TCKE_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TCKE_SHIFT 16 -#define DDR_PHY_DTPR2_TCKE_MASK 0x000F0000U +#define DDR_PHY_DTPR2_TCKE_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TCKE_SHIFT 16 +#define DDR_PHY_DTPR2_TCKE_MASK 0x000F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_15_10_SHIFT #undef DDR_PHY_DTPR2_RESERVED_15_10_MASK -#define DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_DTPR2_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_DTPR2_RESERVED_15_10_MASK 0x0000FC00U -/*Self refresh exit delay*/ +/* +* Self refresh exit delay +*/ #undef DDR_PHY_DTPR2_TXS_DEFVAL #undef DDR_PHY_DTPR2_TXS_SHIFT #undef DDR_PHY_DTPR2_TXS_MASK -#define DDR_PHY_DTPR2_TXS_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TXS_SHIFT 0 -#define DDR_PHY_DTPR2_TXS_MASK 0x000003FFU +#define DDR_PHY_DTPR2_TXS_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TXS_SHIFT 0 +#define DDR_PHY_DTPR2_TXS_MASK 0x000003FFU -/*ODT turn-off delay extension*/ +/* +* ODT turn-off delay extension +*/ #undef DDR_PHY_DTPR3_TOFDX_DEFVAL #undef DDR_PHY_DTPR3_TOFDX_SHIFT #undef DDR_PHY_DTPR3_TOFDX_MASK -#define DDR_PHY_DTPR3_TOFDX_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TOFDX_SHIFT 29 -#define DDR_PHY_DTPR3_TOFDX_MASK 0xE0000000U +#define DDR_PHY_DTPR3_TOFDX_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TOFDX_SHIFT 29 +#define DDR_PHY_DTPR3_TOFDX_MASK 0xE0000000U -/*Read to read and write to write command delay*/ +/* +* Read to read and write to write command delay +*/ #undef DDR_PHY_DTPR3_TCCD_DEFVAL #undef DDR_PHY_DTPR3_TCCD_SHIFT #undef DDR_PHY_DTPR3_TCCD_MASK -#define DDR_PHY_DTPR3_TCCD_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TCCD_SHIFT 26 -#define DDR_PHY_DTPR3_TCCD_MASK 0x1C000000U +#define DDR_PHY_DTPR3_TCCD_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TCCD_SHIFT 26 +#define DDR_PHY_DTPR3_TCCD_MASK 0x1C000000U -/*DLL locking time*/ +/* +* DLL locking time +*/ #undef DDR_PHY_DTPR3_TDLLK_DEFVAL #undef DDR_PHY_DTPR3_TDLLK_SHIFT #undef DDR_PHY_DTPR3_TDLLK_MASK -#define DDR_PHY_DTPR3_TDLLK_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDLLK_SHIFT 16 -#define DDR_PHY_DTPR3_TDLLK_MASK 0x03FF0000U +#define DDR_PHY_DTPR3_TDLLK_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDLLK_SHIFT 16 +#define DDR_PHY_DTPR3_TDLLK_MASK 0x03FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL #undef DDR_PHY_DTPR3_RESERVED_15_12_SHIFT #undef DDR_PHY_DTPR3_RESERVED_15_12_MASK -#define DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_RESERVED_15_12_SHIFT 12 -#define DDR_PHY_DTPR3_RESERVED_15_12_MASK 0x0000F000U +#define DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_RESERVED_15_12_SHIFT 12 +#define DDR_PHY_DTPR3_RESERVED_15_12_MASK 0x0000F000U -/*Maximum DQS output access time from CK/CK# (LPDDR2/3 only)*/ +/* +* Maximum DQS output access time from CK/CK# (LPDDR2/3 only) +*/ #undef DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL #undef DDR_PHY_DTPR3_TDQSCKMAX_SHIFT #undef DDR_PHY_DTPR3_TDQSCKMAX_MASK -#define DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDQSCKMAX_SHIFT 8 -#define DDR_PHY_DTPR3_TDQSCKMAX_MASK 0x00000F00U +#define DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDQSCKMAX_SHIFT 8 +#define DDR_PHY_DTPR3_TDQSCKMAX_MASK 0x00000F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL #undef DDR_PHY_DTPR3_RESERVED_7_3_SHIFT #undef DDR_PHY_DTPR3_RESERVED_7_3_MASK -#define DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_RESERVED_7_3_SHIFT 3 -#define DDR_PHY_DTPR3_RESERVED_7_3_MASK 0x000000F8U +#define DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_RESERVED_7_3_SHIFT 3 +#define DDR_PHY_DTPR3_RESERVED_7_3_MASK 0x000000F8U -/*DQS output access time from CK/CK# (LPDDR2/3 only)*/ +/* +* DQS output access time from CK/CK# (LPDDR2/3 only) +*/ #undef DDR_PHY_DTPR3_TDQSCK_DEFVAL #undef DDR_PHY_DTPR3_TDQSCK_SHIFT #undef DDR_PHY_DTPR3_TDQSCK_MASK -#define DDR_PHY_DTPR3_TDQSCK_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDQSCK_SHIFT 0 -#define DDR_PHY_DTPR3_TDQSCK_MASK 0x00000007U +#define DDR_PHY_DTPR3_TDQSCK_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDQSCK_SHIFT 0 +#define DDR_PHY_DTPR3_TDQSCK_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_31_30_SHIFT #undef DDR_PHY_DTPR4_RESERVED_31_30_MASK -#define DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DTPR4_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DTPR4_RESERVED_31_30_MASK 0xC0000000U -/*ODT turn-on/turn-off delays (DDR2 only)*/ +/* +* ODT turn-on/turn-off delays (DDR2 only) +*/ #undef DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL #undef DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT #undef DDR_PHY_DTPR4_TAOND_TAOFD_MASK -#define DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT 28 -#define DDR_PHY_DTPR4_TAOND_TAOFD_MASK 0x30000000U +#define DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT 28 +#define DDR_PHY_DTPR4_TAOND_TAOFD_MASK 0x30000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_27_26_SHIFT #undef DDR_PHY_DTPR4_RESERVED_27_26_MASK -#define DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_27_26_SHIFT 26 -#define DDR_PHY_DTPR4_RESERVED_27_26_MASK 0x0C000000U +#define DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_27_26_SHIFT 26 +#define DDR_PHY_DTPR4_RESERVED_27_26_MASK 0x0C000000U -/*Refresh-to-Refresh*/ +/* +* Refresh-to-Refresh +*/ #undef DDR_PHY_DTPR4_TRFC_DEFVAL #undef DDR_PHY_DTPR4_TRFC_SHIFT #undef DDR_PHY_DTPR4_TRFC_MASK -#define DDR_PHY_DTPR4_TRFC_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TRFC_SHIFT 16 -#define DDR_PHY_DTPR4_TRFC_MASK 0x03FF0000U +#define DDR_PHY_DTPR4_TRFC_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TRFC_SHIFT 16 +#define DDR_PHY_DTPR4_TRFC_MASK 0x03FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_15_14_SHIFT #undef DDR_PHY_DTPR4_RESERVED_15_14_MASK -#define DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DTPR4_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DTPR4_RESERVED_15_14_MASK 0x0000C000U -/*Write leveling output delay*/ +/* +* Write leveling output delay +*/ #undef DDR_PHY_DTPR4_TWLO_DEFVAL #undef DDR_PHY_DTPR4_TWLO_SHIFT #undef DDR_PHY_DTPR4_TWLO_MASK -#define DDR_PHY_DTPR4_TWLO_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TWLO_SHIFT 8 -#define DDR_PHY_DTPR4_TWLO_MASK 0x00003F00U +#define DDR_PHY_DTPR4_TWLO_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TWLO_SHIFT 8 +#define DDR_PHY_DTPR4_TWLO_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR4_RESERVED_7_5_MASK -#define DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR4_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR4_RESERVED_7_5_MASK 0x000000E0U -/*Power down exit delay*/ +/* +* Power down exit delay +*/ #undef DDR_PHY_DTPR4_TXP_DEFVAL #undef DDR_PHY_DTPR4_TXP_SHIFT #undef DDR_PHY_DTPR4_TXP_MASK -#define DDR_PHY_DTPR4_TXP_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TXP_SHIFT 0 -#define DDR_PHY_DTPR4_TXP_MASK 0x0000001FU +#define DDR_PHY_DTPR4_TXP_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TXP_SHIFT 0 +#define DDR_PHY_DTPR4_TXP_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_31_24_SHIFT #undef DDR_PHY_DTPR5_RESERVED_31_24_MASK -#define DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DTPR5_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DTPR5_RESERVED_31_24_MASK 0xFF000000U -/*Activate to activate command delay (same bank)*/ +/* +* Activate to activate command delay (same bank) +*/ #undef DDR_PHY_DTPR5_TRC_DEFVAL #undef DDR_PHY_DTPR5_TRC_SHIFT #undef DDR_PHY_DTPR5_TRC_MASK -#define DDR_PHY_DTPR5_TRC_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TRC_SHIFT 16 -#define DDR_PHY_DTPR5_TRC_MASK 0x00FF0000U +#define DDR_PHY_DTPR5_TRC_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TRC_SHIFT 16 +#define DDR_PHY_DTPR5_TRC_MASK 0x00FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_15_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_15_SHIFT #undef DDR_PHY_DTPR5_RESERVED_15_MASK -#define DDR_PHY_DTPR5_RESERVED_15_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DTPR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DTPR5_RESERVED_15_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DTPR5_RESERVED_15_MASK 0x00008000U -/*Activate to read or write delay*/ +/* +* Activate to read or write delay +*/ #undef DDR_PHY_DTPR5_TRCD_DEFVAL #undef DDR_PHY_DTPR5_TRCD_SHIFT #undef DDR_PHY_DTPR5_TRCD_MASK -#define DDR_PHY_DTPR5_TRCD_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TRCD_SHIFT 8 -#define DDR_PHY_DTPR5_TRCD_MASK 0x00007F00U +#define DDR_PHY_DTPR5_TRCD_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TRCD_SHIFT 8 +#define DDR_PHY_DTPR5_TRCD_MASK 0x00007F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR5_RESERVED_7_5_MASK -#define DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR5_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR5_RESERVED_7_5_MASK 0x000000E0U -/*Internal write to read command delay*/ +/* +* Internal write to read command delay +*/ #undef DDR_PHY_DTPR5_TWTR_DEFVAL #undef DDR_PHY_DTPR5_TWTR_SHIFT #undef DDR_PHY_DTPR5_TWTR_MASK -#define DDR_PHY_DTPR5_TWTR_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TWTR_SHIFT 0 -#define DDR_PHY_DTPR5_TWTR_MASK 0x0000001FU +#define DDR_PHY_DTPR5_TWTR_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TWTR_SHIFT 0 +#define DDR_PHY_DTPR5_TWTR_MASK 0x0000001FU -/*PUB Write Latency Enable*/ +/* +* PUB Write Latency Enable +*/ #undef DDR_PHY_DTPR6_PUBWLEN_DEFVAL #undef DDR_PHY_DTPR6_PUBWLEN_SHIFT #undef DDR_PHY_DTPR6_PUBWLEN_MASK -#define DDR_PHY_DTPR6_PUBWLEN_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBWLEN_SHIFT 31 -#define DDR_PHY_DTPR6_PUBWLEN_MASK 0x80000000U +#define DDR_PHY_DTPR6_PUBWLEN_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBWLEN_SHIFT 31 +#define DDR_PHY_DTPR6_PUBWLEN_MASK 0x80000000U -/*PUB Read Latency Enable*/ +/* +* PUB Read Latency Enable +*/ #undef DDR_PHY_DTPR6_PUBRLEN_DEFVAL #undef DDR_PHY_DTPR6_PUBRLEN_SHIFT #undef DDR_PHY_DTPR6_PUBRLEN_MASK -#define DDR_PHY_DTPR6_PUBRLEN_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBRLEN_SHIFT 30 -#define DDR_PHY_DTPR6_PUBRLEN_MASK 0x40000000U +#define DDR_PHY_DTPR6_PUBRLEN_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBRLEN_SHIFT 30 +#define DDR_PHY_DTPR6_PUBRLEN_MASK 0x40000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL #undef DDR_PHY_DTPR6_RESERVED_29_14_SHIFT #undef DDR_PHY_DTPR6_RESERVED_29_14_MASK -#define DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_RESERVED_29_14_SHIFT 14 -#define DDR_PHY_DTPR6_RESERVED_29_14_MASK 0x3FFFC000U +#define DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_RESERVED_29_14_SHIFT 14 +#define DDR_PHY_DTPR6_RESERVED_29_14_MASK 0x3FFFC000U -/*Write Latency*/ +/* +* Write Latency +*/ #undef DDR_PHY_DTPR6_PUBWL_DEFVAL #undef DDR_PHY_DTPR6_PUBWL_SHIFT #undef DDR_PHY_DTPR6_PUBWL_MASK -#define DDR_PHY_DTPR6_PUBWL_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBWL_SHIFT 8 -#define DDR_PHY_DTPR6_PUBWL_MASK 0x00003F00U +#define DDR_PHY_DTPR6_PUBWL_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBWL_SHIFT 8 +#define DDR_PHY_DTPR6_PUBWL_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DTPR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DTPR6_RESERVED_7_6_MASK -#define DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DTPR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DTPR6_RESERVED_7_6_MASK 0x000000C0U -/*Read Latency*/ +/* +* Read Latency +*/ #undef DDR_PHY_DTPR6_PUBRL_DEFVAL #undef DDR_PHY_DTPR6_PUBRL_SHIFT #undef DDR_PHY_DTPR6_PUBRL_MASK -#define DDR_PHY_DTPR6_PUBRL_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBRL_SHIFT 0 -#define DDR_PHY_DTPR6_PUBRL_MASK 0x0000003FU +#define DDR_PHY_DTPR6_PUBRL_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBRL_SHIFT 0 +#define DDR_PHY_DTPR6_PUBRL_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_31_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT 31 -#define DDR_PHY_RDIMMGCR0_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT 31 +#define DDR_PHY_RDIMMGCR0_RESERVED_31_MASK 0x80000000U -/*RDMIMM Quad CS Enable*/ +/* +* RDMIMM Quad CS Enable +*/ #undef DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL #undef DDR_PHY_RDIMMGCR0_QCSEN_SHIFT #undef DDR_PHY_RDIMMGCR0_QCSEN_MASK -#define DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_QCSEN_SHIFT 30 -#define DDR_PHY_RDIMMGCR0_QCSEN_MASK 0x40000000U +#define DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_QCSEN_SHIFT 30 +#define DDR_PHY_RDIMMGCR0_QCSEN_MASK 0x40000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT 28 -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK 0x30000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT 28 +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK 0x30000000U -/*RDIMM Outputs I/O Mode*/ +/* +* RDIMM Outputs I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT 27 -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK 0x08000000U +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT 27 +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK 0x08000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT 24 -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK 0x07000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT 24 +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK 0x07000000U -/*ERROUT# Output Enable*/ +/* +* ERROUT# Output Enable +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTOE_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT 23 -#define DDR_PHY_RDIMMGCR0_ERROUTOE_MASK 0x00800000U +#define DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT 23 +#define DDR_PHY_RDIMMGCR0_ERROUTOE_MASK 0x00800000U -/*ERROUT# I/O Mode*/ +/* +* ERROUT# I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT 22 -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK 0x00400000U +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT 22 +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK 0x00400000U -/*ERROUT# Power Down Receiver*/ +/* +* ERROUT# Power Down Receiver +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT 21 -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK 0x00200000U +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT 21 +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK 0x00200000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_20_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT 20 -#define DDR_PHY_RDIMMGCR0_RESERVED_20_MASK 0x00100000U +#define DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT 20 +#define DDR_PHY_RDIMMGCR0_RESERVED_20_MASK 0x00100000U -/*ERROUT# On-Die Termination*/ +/* +* ERROUT# On-Die Termination +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTODT_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT 19 -#define DDR_PHY_RDIMMGCR0_ERROUTODT_MASK 0x00080000U +#define DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT 19 +#define DDR_PHY_RDIMMGCR0_ERROUTODT_MASK 0x00080000U -/*Load Reduced DIMM*/ +/* +* Load Reduced DIMM +*/ #undef DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL #undef DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT #undef DDR_PHY_RDIMMGCR0_LRDIMM_MASK -#define DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT 18 -#define DDR_PHY_RDIMMGCR0_LRDIMM_MASK 0x00040000U +#define DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT 18 +#define DDR_PHY_RDIMMGCR0_LRDIMM_MASK 0x00040000U -/*PAR_IN I/O Mode*/ +/* +* PAR_IN I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_PARINIOM_MASK -#define DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT 17 -#define DDR_PHY_RDIMMGCR0_PARINIOM_MASK 0x00020000U +#define DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT 17 +#define DDR_PHY_RDIMMGCR0_PARINIOM_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT 8 -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK 0x0001FF00U +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT 8 +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK 0x0001FF00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT 6 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK 0x000000C0U +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT 6 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK 0x000000C0U -/*Rank Mirror Enable.*/ +/* +* Rank Mirror Enable. +*/ #undef DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL #undef DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT #undef DDR_PHY_RDIMMGCR0_RNKMRREN_MASK -#define DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT 4 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_MASK 0x00000030U +#define DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT 4 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_MASK 0x00000030U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_3_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT 3 -#define DDR_PHY_RDIMMGCR0_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT 3 +#define DDR_PHY_RDIMMGCR0_RESERVED_3_MASK 0x00000008U -/*Stop on Parity Error*/ +/* +* Stop on Parity Error +*/ #undef DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL #undef DDR_PHY_RDIMMGCR0_SOPERR_SHIFT #undef DDR_PHY_RDIMMGCR0_SOPERR_MASK -#define DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_SOPERR_SHIFT 2 -#define DDR_PHY_RDIMMGCR0_SOPERR_MASK 0x00000004U +#define DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_SOPERR_SHIFT 2 +#define DDR_PHY_RDIMMGCR0_SOPERR_MASK 0x00000004U -/*Parity Error No Registering*/ +/* +* Parity Error No Registering +*/ #undef DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT #undef DDR_PHY_RDIMMGCR0_ERRNOREG_MASK -#define DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT 1 -#define DDR_PHY_RDIMMGCR0_ERRNOREG_MASK 0x00000002U +#define DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT 1 +#define DDR_PHY_RDIMMGCR0_ERRNOREG_MASK 0x00000002U -/*Registered DIMM*/ +/* +* Registered DIMM +*/ #undef DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL #undef DDR_PHY_RDIMMGCR0_RDIMM_SHIFT #undef DDR_PHY_RDIMMGCR0_RDIMM_MASK -#define DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RDIMM_SHIFT 0 -#define DDR_PHY_RDIMMGCR0_RDIMM_MASK 0x00000001U +#define DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RDIMM_SHIFT 0 +#define DDR_PHY_RDIMMGCR0_RDIMM_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK 0xE0000000U -/*Address [17] B-side Inversion Disable*/ +/* +* Address [17] B-side Inversion Disable +*/ #undef DDR_PHY_RDIMMGCR1_A17BID_DEFVAL #undef DDR_PHY_RDIMMGCR1_A17BID_SHIFT #undef DDR_PHY_RDIMMGCR1_A17BID_MASK -#define DDR_PHY_RDIMMGCR1_A17BID_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_A17BID_SHIFT 28 -#define DDR_PHY_RDIMMGCR1_A17BID_MASK 0x10000000U +#define DDR_PHY_RDIMMGCR1_A17BID_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_A17BID_SHIFT 28 +#define DDR_PHY_RDIMMGCR1_A17BID_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_27_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT 27 -#define DDR_PHY_RDIMMGCR1_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT 27 +#define DDR_PHY_RDIMMGCR1_RESERVED_27_MASK 0x08000000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT 24 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK 0x07000000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT 24 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK 0x07000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_23_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT 23 -#define DDR_PHY_RDIMMGCR1_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT 23 +#define DDR_PHY_RDIMMGCR1_RESERVED_23_MASK 0x00800000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT 20 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK 0x00700000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT 20 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK 0x00700000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_19_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT 19 -#define DDR_PHY_RDIMMGCR1_RESERVED_19_MASK 0x00080000U +#define DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT 19 +#define DDR_PHY_RDIMMGCR1_RESERVED_19_MASK 0x00080000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT 16 -#define DDR_PHY_RDIMMGCR1_TBCMRD_MASK 0x00070000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT 16 +#define DDR_PHY_RDIMMGCR1_TBCMRD_MASK 0x00070000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK 0x0000C000U -/*Stabilization time*/ +/* +* Stabilization time +*/ #undef DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCSTAB_MASK -#define DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT 0 -#define DDR_PHY_RDIMMGCR1_TBCSTAB_MASK 0x00003FFFU +#define DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT 0 +#define DDR_PHY_RDIMMGCR1_TBCSTAB_MASK 0x00003FFFU -/*DDR4/DDR3 Control Word 7*/ +/* +* DDR4/DDR3 Control Word 7 +*/ #undef DDR_PHY_RDIMMCR0_RC7_DEFVAL #undef DDR_PHY_RDIMMCR0_RC7_SHIFT #undef DDR_PHY_RDIMMCR0_RC7_MASK -#define DDR_PHY_RDIMMCR0_RC7_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC7_SHIFT 28 -#define DDR_PHY_RDIMMCR0_RC7_MASK 0xF0000000U +#define DDR_PHY_RDIMMCR0_RC7_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC7_SHIFT 28 +#define DDR_PHY_RDIMMCR0_RC7_MASK 0xF0000000U -/*DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR0_RC6_DEFVAL #undef DDR_PHY_RDIMMCR0_RC6_SHIFT #undef DDR_PHY_RDIMMCR0_RC6_MASK -#define DDR_PHY_RDIMMCR0_RC6_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC6_SHIFT 24 -#define DDR_PHY_RDIMMCR0_RC6_MASK 0x0F000000U +#define DDR_PHY_RDIMMCR0_RC6_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC6_SHIFT 24 +#define DDR_PHY_RDIMMCR0_RC6_MASK 0x0F000000U -/*DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word)*/ +/* +* DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC5_DEFVAL #undef DDR_PHY_RDIMMCR0_RC5_SHIFT #undef DDR_PHY_RDIMMCR0_RC5_MASK -#define DDR_PHY_RDIMMCR0_RC5_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC5_SHIFT 20 -#define DDR_PHY_RDIMMCR0_RC5_MASK 0x00F00000U +#define DDR_PHY_RDIMMCR0_RC5_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC5_SHIFT 20 +#define DDR_PHY_RDIMMCR0_RC5_MASK 0x00F00000U -/*DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control Word) / DDR3 Control Word 4 (Control Signals Driver C - aracteristics Control Word)*/ +/* +* DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control + * Word) / DDR3 Control Word 4 (Control Signals Driver Characteristics Cont + * rol Word) +*/ #undef DDR_PHY_RDIMMCR0_RC4_DEFVAL #undef DDR_PHY_RDIMMCR0_RC4_SHIFT #undef DDR_PHY_RDIMMCR0_RC4_MASK -#define DDR_PHY_RDIMMCR0_RC4_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC4_SHIFT 16 -#define DDR_PHY_RDIMMCR0_RC4_MASK 0x000F0000U +#define DDR_PHY_RDIMMCR0_RC4_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC4_SHIFT 16 +#define DDR_PHY_RDIMMCR0_RC4_MASK 0x000F0000U -/*DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Word) / DDR3 Control Word 3 (Command/Address Signals Dr - ver Characteristrics Control Word)*/ +/* +* DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Wo + * rd) / DDR3 Control Word 3 (Command/Address Signals Driver Characteristri + * cs Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC3_DEFVAL #undef DDR_PHY_RDIMMCR0_RC3_SHIFT #undef DDR_PHY_RDIMMCR0_RC3_MASK -#define DDR_PHY_RDIMMCR0_RC3_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC3_SHIFT 12 -#define DDR_PHY_RDIMMCR0_RC3_MASK 0x0000F000U +#define DDR_PHY_RDIMMCR0_RC3_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC3_SHIFT 12 +#define DDR_PHY_RDIMMCR0_RC3_MASK 0x0000F000U -/*DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 (Timing Control Word)*/ +/* +* DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 + * (Timing Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC2_DEFVAL #undef DDR_PHY_RDIMMCR0_RC2_SHIFT #undef DDR_PHY_RDIMMCR0_RC2_MASK -#define DDR_PHY_RDIMMCR0_RC2_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC2_SHIFT 8 -#define DDR_PHY_RDIMMCR0_RC2_MASK 0x00000F00U +#define DDR_PHY_RDIMMCR0_RC2_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC2_SHIFT 8 +#define DDR_PHY_RDIMMCR0_RC2_MASK 0x00000F00U -/*DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word)*/ +/* +* DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC1_DEFVAL #undef DDR_PHY_RDIMMCR0_RC1_SHIFT #undef DDR_PHY_RDIMMCR0_RC1_MASK -#define DDR_PHY_RDIMMCR0_RC1_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC1_SHIFT 4 -#define DDR_PHY_RDIMMCR0_RC1_MASK 0x000000F0U +#define DDR_PHY_RDIMMCR0_RC1_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC1_SHIFT 4 +#define DDR_PHY_RDIMMCR0_RC1_MASK 0x000000F0U -/*DDR4/DDR3 Control Word 0 (Global Features Control Word)*/ +/* +* DDR4/DDR3 Control Word 0 (Global Features Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC0_DEFVAL #undef DDR_PHY_RDIMMCR0_RC0_SHIFT #undef DDR_PHY_RDIMMCR0_RC0_MASK -#define DDR_PHY_RDIMMCR0_RC0_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC0_SHIFT 0 -#define DDR_PHY_RDIMMCR0_RC0_MASK 0x0000000FU +#define DDR_PHY_RDIMMCR0_RC0_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC0_SHIFT 0 +#define DDR_PHY_RDIMMCR0_RC0_MASK 0x0000000FU -/*Control Word 15*/ +/* +* Control Word 15 +*/ #undef DDR_PHY_RDIMMCR1_RC15_DEFVAL #undef DDR_PHY_RDIMMCR1_RC15_SHIFT #undef DDR_PHY_RDIMMCR1_RC15_MASK -#define DDR_PHY_RDIMMCR1_RC15_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC15_SHIFT 28 -#define DDR_PHY_RDIMMCR1_RC15_MASK 0xF0000000U +#define DDR_PHY_RDIMMCR1_RC15_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC15_SHIFT 28 +#define DDR_PHY_RDIMMCR1_RC15_MASK 0xF0000000U -/*DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC14_DEFVAL #undef DDR_PHY_RDIMMCR1_RC14_SHIFT #undef DDR_PHY_RDIMMCR1_RC14_MASK -#define DDR_PHY_RDIMMCR1_RC14_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC14_SHIFT 24 -#define DDR_PHY_RDIMMCR1_RC14_MASK 0x0F000000U +#define DDR_PHY_RDIMMCR1_RC14_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC14_SHIFT 24 +#define DDR_PHY_RDIMMCR1_RC14_MASK 0x0F000000U -/*DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC13_DEFVAL #undef DDR_PHY_RDIMMCR1_RC13_SHIFT #undef DDR_PHY_RDIMMCR1_RC13_MASK -#define DDR_PHY_RDIMMCR1_RC13_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC13_SHIFT 20 -#define DDR_PHY_RDIMMCR1_RC13_MASK 0x00F00000U +#define DDR_PHY_RDIMMCR1_RC13_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC13_SHIFT 20 +#define DDR_PHY_RDIMMCR1_RC13_MASK 0x00F00000U -/*DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC12_DEFVAL #undef DDR_PHY_RDIMMCR1_RC12_SHIFT #undef DDR_PHY_RDIMMCR1_RC12_MASK -#define DDR_PHY_RDIMMCR1_RC12_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC12_SHIFT 16 -#define DDR_PHY_RDIMMCR1_RC12_MASK 0x000F0000U +#define DDR_PHY_RDIMMCR1_RC12_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC12_SHIFT 16 +#define DDR_PHY_RDIMMCR1_RC12_MASK 0x000F0000U -/*DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Word) / DDR3 Control Word 11 (Operation Voltage VDD Con - rol Word)*/ +/* +* DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Wo + * rd) / DDR3 Control Word 11 (Operation Voltage VDD Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC11_DEFVAL #undef DDR_PHY_RDIMMCR1_RC11_SHIFT #undef DDR_PHY_RDIMMCR1_RC11_MASK -#define DDR_PHY_RDIMMCR1_RC11_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC11_SHIFT 12 -#define DDR_PHY_RDIMMCR1_RC11_MASK 0x0000F000U +#define DDR_PHY_RDIMMCR1_RC11_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC11_SHIFT 12 +#define DDR_PHY_RDIMMCR1_RC11_MASK 0x0000F000U -/*DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word)*/ +/* +* DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC10_DEFVAL #undef DDR_PHY_RDIMMCR1_RC10_SHIFT #undef DDR_PHY_RDIMMCR1_RC10_MASK -#define DDR_PHY_RDIMMCR1_RC10_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC10_SHIFT 8 -#define DDR_PHY_RDIMMCR1_RC10_MASK 0x00000F00U +#define DDR_PHY_RDIMMCR1_RC10_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC10_SHIFT 8 +#define DDR_PHY_RDIMMCR1_RC10_MASK 0x00000F00U -/*DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word)*/ +/* +* DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC9_DEFVAL #undef DDR_PHY_RDIMMCR1_RC9_SHIFT #undef DDR_PHY_RDIMMCR1_RC9_MASK -#define DDR_PHY_RDIMMCR1_RC9_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC9_SHIFT 4 -#define DDR_PHY_RDIMMCR1_RC9_MASK 0x000000F0U +#define DDR_PHY_RDIMMCR1_RC9_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC9_SHIFT 4 +#define DDR_PHY_RDIMMCR1_RC9_MASK 0x000000F0U -/*DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Control Word 8 (Additional Input Bus Termination Setting - Control Word)*/ +/* +* DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Con + * trol Word 8 (Additional Input Bus Termination Setting Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC8_DEFVAL #undef DDR_PHY_RDIMMCR1_RC8_SHIFT #undef DDR_PHY_RDIMMCR1_RC8_MASK -#define DDR_PHY_RDIMMCR1_RC8_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC8_SHIFT 0 -#define DDR_PHY_RDIMMCR1_RC8_MASK 0x0000000FU +#define DDR_PHY_RDIMMCR1_RC8_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC8_SHIFT 0 +#define DDR_PHY_RDIMMCR1_RC8_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR0_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR0_RESERVED_31_8_SHIFT #undef DDR_PHY_MR0_RESERVED_31_8_MASK -#define DDR_PHY_MR0_RESERVED_31_8_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR0_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR0_RESERVED_31_8_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR0_RESERVED_31_8_MASK 0xFFFFFF00U -/*CA Terminating Rank*/ +/* +* CA Terminating Rank +*/ #undef DDR_PHY_MR0_CATR_DEFVAL #undef DDR_PHY_MR0_CATR_SHIFT #undef DDR_PHY_MR0_CATR_MASK -#define DDR_PHY_MR0_CATR_DEFVAL 0x00000052 -#define DDR_PHY_MR0_CATR_SHIFT 7 -#define DDR_PHY_MR0_CATR_MASK 0x00000080U +#define DDR_PHY_MR0_CATR_DEFVAL 0x00000052 +#define DDR_PHY_MR0_CATR_SHIFT 7 +#define DDR_PHY_MR0_CATR_MASK 0x00000080U -/*Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. +*/ #undef DDR_PHY_MR0_RSVD_6_5_DEFVAL #undef DDR_PHY_MR0_RSVD_6_5_SHIFT #undef DDR_PHY_MR0_RSVD_6_5_MASK -#define DDR_PHY_MR0_RSVD_6_5_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RSVD_6_5_SHIFT 5 -#define DDR_PHY_MR0_RSVD_6_5_MASK 0x00000060U +#define DDR_PHY_MR0_RSVD_6_5_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RSVD_6_5_SHIFT 5 +#define DDR_PHY_MR0_RSVD_6_5_MASK 0x00000060U -/*Built-in Self-Test for RZQ*/ +/* +* Built-in Self-Test for RZQ +*/ #undef DDR_PHY_MR0_RZQI_DEFVAL #undef DDR_PHY_MR0_RZQI_SHIFT #undef DDR_PHY_MR0_RZQI_MASK -#define DDR_PHY_MR0_RZQI_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RZQI_SHIFT 3 -#define DDR_PHY_MR0_RZQI_MASK 0x00000018U +#define DDR_PHY_MR0_RZQI_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RZQI_SHIFT 3 +#define DDR_PHY_MR0_RZQI_MASK 0x00000018U -/*Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. +*/ #undef DDR_PHY_MR0_RSVD_2_0_DEFVAL #undef DDR_PHY_MR0_RSVD_2_0_SHIFT #undef DDR_PHY_MR0_RSVD_2_0_MASK -#define DDR_PHY_MR0_RSVD_2_0_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RSVD_2_0_SHIFT 0 -#define DDR_PHY_MR0_RSVD_2_0_MASK 0x00000007U +#define DDR_PHY_MR0_RSVD_2_0_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RSVD_2_0_SHIFT 0 +#define DDR_PHY_MR0_RSVD_2_0_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR1_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR1_RESERVED_31_8_SHIFT #undef DDR_PHY_MR1_RESERVED_31_8_MASK -#define DDR_PHY_MR1_RESERVED_31_8_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR1_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR1_RESERVED_31_8_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR1_RESERVED_31_8_MASK 0xFFFFFF00U -/*Read Postamble Length*/ +/* +* Read Postamble Length +*/ #undef DDR_PHY_MR1_RDPST_DEFVAL #undef DDR_PHY_MR1_RDPST_SHIFT #undef DDR_PHY_MR1_RDPST_MASK -#define DDR_PHY_MR1_RDPST_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RDPST_SHIFT 7 -#define DDR_PHY_MR1_RDPST_MASK 0x00000080U +#define DDR_PHY_MR1_RDPST_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RDPST_SHIFT 7 +#define DDR_PHY_MR1_RDPST_MASK 0x00000080U -/*Write-recovery for auto-precharge command*/ +/* +* Write-recovery for auto-precharge command +*/ #undef DDR_PHY_MR1_NWR_DEFVAL #undef DDR_PHY_MR1_NWR_SHIFT #undef DDR_PHY_MR1_NWR_MASK -#define DDR_PHY_MR1_NWR_DEFVAL 0x00000004 -#define DDR_PHY_MR1_NWR_SHIFT 4 -#define DDR_PHY_MR1_NWR_MASK 0x00000070U +#define DDR_PHY_MR1_NWR_DEFVAL 0x00000004 +#define DDR_PHY_MR1_NWR_SHIFT 4 +#define DDR_PHY_MR1_NWR_MASK 0x00000070U -/*Read Preamble Length*/ +/* +* Read Preamble Length +*/ #undef DDR_PHY_MR1_RDPRE_DEFVAL #undef DDR_PHY_MR1_RDPRE_SHIFT #undef DDR_PHY_MR1_RDPRE_MASK -#define DDR_PHY_MR1_RDPRE_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RDPRE_SHIFT 3 -#define DDR_PHY_MR1_RDPRE_MASK 0x00000008U +#define DDR_PHY_MR1_RDPRE_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RDPRE_SHIFT 3 +#define DDR_PHY_MR1_RDPRE_MASK 0x00000008U -/*Write Preamble Length*/ +/* +* Write Preamble Length +*/ #undef DDR_PHY_MR1_WRPRE_DEFVAL #undef DDR_PHY_MR1_WRPRE_SHIFT #undef DDR_PHY_MR1_WRPRE_MASK -#define DDR_PHY_MR1_WRPRE_DEFVAL 0x00000004 -#define DDR_PHY_MR1_WRPRE_SHIFT 2 -#define DDR_PHY_MR1_WRPRE_MASK 0x00000004U +#define DDR_PHY_MR1_WRPRE_DEFVAL 0x00000004 +#define DDR_PHY_MR1_WRPRE_SHIFT 2 +#define DDR_PHY_MR1_WRPRE_MASK 0x00000004U -/*Burst Length*/ +/* +* Burst Length +*/ #undef DDR_PHY_MR1_BL_DEFVAL #undef DDR_PHY_MR1_BL_SHIFT #undef DDR_PHY_MR1_BL_MASK -#define DDR_PHY_MR1_BL_DEFVAL 0x00000004 -#define DDR_PHY_MR1_BL_SHIFT 0 -#define DDR_PHY_MR1_BL_MASK 0x00000003U +#define DDR_PHY_MR1_BL_DEFVAL 0x00000004 +#define DDR_PHY_MR1_BL_SHIFT 0 +#define DDR_PHY_MR1_BL_MASK 0x00000003U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR2_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR2_RESERVED_31_8_SHIFT #undef DDR_PHY_MR2_RESERVED_31_8_MASK -#define DDR_PHY_MR2_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR2_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR2_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR2_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR2_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR2_RESERVED_31_8_MASK 0xFFFFFF00U -/*Write Leveling*/ +/* +* Write Leveling +*/ #undef DDR_PHY_MR2_WRL_DEFVAL #undef DDR_PHY_MR2_WRL_SHIFT #undef DDR_PHY_MR2_WRL_MASK -#define DDR_PHY_MR2_WRL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WRL_SHIFT 7 -#define DDR_PHY_MR2_WRL_MASK 0x00000080U +#define DDR_PHY_MR2_WRL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WRL_SHIFT 7 +#define DDR_PHY_MR2_WRL_MASK 0x00000080U -/*Write Latency Set*/ +/* +* Write Latency Set +*/ #undef DDR_PHY_MR2_WLS_DEFVAL #undef DDR_PHY_MR2_WLS_SHIFT #undef DDR_PHY_MR2_WLS_MASK -#define DDR_PHY_MR2_WLS_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WLS_SHIFT 6 -#define DDR_PHY_MR2_WLS_MASK 0x00000040U +#define DDR_PHY_MR2_WLS_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WLS_SHIFT 6 +#define DDR_PHY_MR2_WLS_MASK 0x00000040U -/*Write Latency*/ +/* +* Write Latency +*/ #undef DDR_PHY_MR2_WL_DEFVAL #undef DDR_PHY_MR2_WL_SHIFT #undef DDR_PHY_MR2_WL_MASK -#define DDR_PHY_MR2_WL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WL_SHIFT 3 -#define DDR_PHY_MR2_WL_MASK 0x00000038U +#define DDR_PHY_MR2_WL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WL_SHIFT 3 +#define DDR_PHY_MR2_WL_MASK 0x00000038U -/*Read Latency*/ +/* +* Read Latency +*/ #undef DDR_PHY_MR2_RL_DEFVAL #undef DDR_PHY_MR2_RL_SHIFT #undef DDR_PHY_MR2_RL_MASK -#define DDR_PHY_MR2_RL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_RL_SHIFT 0 -#define DDR_PHY_MR2_RL_MASK 0x00000007U +#define DDR_PHY_MR2_RL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_RL_SHIFT 0 +#define DDR_PHY_MR2_RL_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR3_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR3_RESERVED_31_8_SHIFT #undef DDR_PHY_MR3_RESERVED_31_8_MASK -#define DDR_PHY_MR3_RESERVED_31_8_DEFVAL 0x00000031 -#define DDR_PHY_MR3_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR3_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR3_RESERVED_31_8_DEFVAL 0x00000031 +#define DDR_PHY_MR3_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR3_RESERVED_31_8_MASK 0xFFFFFF00U -/*DBI-Write Enable*/ +/* +* DBI-Write Enable +*/ #undef DDR_PHY_MR3_DBIWR_DEFVAL #undef DDR_PHY_MR3_DBIWR_SHIFT #undef DDR_PHY_MR3_DBIWR_MASK -#define DDR_PHY_MR3_DBIWR_DEFVAL 0x00000031 -#define DDR_PHY_MR3_DBIWR_SHIFT 7 -#define DDR_PHY_MR3_DBIWR_MASK 0x00000080U +#define DDR_PHY_MR3_DBIWR_DEFVAL 0x00000031 +#define DDR_PHY_MR3_DBIWR_SHIFT 7 +#define DDR_PHY_MR3_DBIWR_MASK 0x00000080U -/*DBI-Read Enable*/ +/* +* DBI-Read Enable +*/ #undef DDR_PHY_MR3_DBIRD_DEFVAL #undef DDR_PHY_MR3_DBIRD_SHIFT #undef DDR_PHY_MR3_DBIRD_MASK -#define DDR_PHY_MR3_DBIRD_DEFVAL 0x00000031 -#define DDR_PHY_MR3_DBIRD_SHIFT 6 -#define DDR_PHY_MR3_DBIRD_MASK 0x00000040U +#define DDR_PHY_MR3_DBIRD_DEFVAL 0x00000031 +#define DDR_PHY_MR3_DBIRD_SHIFT 6 +#define DDR_PHY_MR3_DBIRD_MASK 0x00000040U -/*Pull-down Drive Strength*/ +/* +* Pull-down Drive Strength +*/ #undef DDR_PHY_MR3_PDDS_DEFVAL #undef DDR_PHY_MR3_PDDS_SHIFT #undef DDR_PHY_MR3_PDDS_MASK -#define DDR_PHY_MR3_PDDS_DEFVAL 0x00000031 -#define DDR_PHY_MR3_PDDS_SHIFT 3 -#define DDR_PHY_MR3_PDDS_MASK 0x00000038U +#define DDR_PHY_MR3_PDDS_DEFVAL 0x00000031 +#define DDR_PHY_MR3_PDDS_SHIFT 3 +#define DDR_PHY_MR3_PDDS_MASK 0x00000038U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR3_RSVD_DEFVAL #undef DDR_PHY_MR3_RSVD_SHIFT #undef DDR_PHY_MR3_RSVD_MASK -#define DDR_PHY_MR3_RSVD_DEFVAL 0x00000031 -#define DDR_PHY_MR3_RSVD_SHIFT 2 -#define DDR_PHY_MR3_RSVD_MASK 0x00000004U +#define DDR_PHY_MR3_RSVD_DEFVAL 0x00000031 +#define DDR_PHY_MR3_RSVD_SHIFT 2 +#define DDR_PHY_MR3_RSVD_MASK 0x00000004U -/*Write Postamble Length*/ +/* +* Write Postamble Length +*/ #undef DDR_PHY_MR3_WRPST_DEFVAL #undef DDR_PHY_MR3_WRPST_SHIFT #undef DDR_PHY_MR3_WRPST_MASK -#define DDR_PHY_MR3_WRPST_DEFVAL 0x00000031 -#define DDR_PHY_MR3_WRPST_SHIFT 1 -#define DDR_PHY_MR3_WRPST_MASK 0x00000002U +#define DDR_PHY_MR3_WRPST_DEFVAL 0x00000031 +#define DDR_PHY_MR3_WRPST_SHIFT 1 +#define DDR_PHY_MR3_WRPST_MASK 0x00000002U -/*Pull-up Calibration Point*/ +/* +* Pull-up Calibration Point +*/ #undef DDR_PHY_MR3_PUCAL_DEFVAL #undef DDR_PHY_MR3_PUCAL_SHIFT #undef DDR_PHY_MR3_PUCAL_MASK -#define DDR_PHY_MR3_PUCAL_DEFVAL 0x00000031 -#define DDR_PHY_MR3_PUCAL_SHIFT 0 -#define DDR_PHY_MR3_PUCAL_MASK 0x00000001U +#define DDR_PHY_MR3_PUCAL_DEFVAL 0x00000031 +#define DDR_PHY_MR3_PUCAL_SHIFT 0 +#define DDR_PHY_MR3_PUCAL_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR4_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR4_RESERVED_31_16_SHIFT #undef DDR_PHY_MR4_RESERVED_31_16_MASK -#define DDR_PHY_MR4_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR4_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR4_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR4_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR4_RSVD_15_13_DEFVAL #undef DDR_PHY_MR4_RSVD_15_13_SHIFT #undef DDR_PHY_MR4_RSVD_15_13_MASK -#define DDR_PHY_MR4_RSVD_15_13_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD_15_13_SHIFT 13 -#define DDR_PHY_MR4_RSVD_15_13_MASK 0x0000E000U +#define DDR_PHY_MR4_RSVD_15_13_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD_15_13_SHIFT 13 +#define DDR_PHY_MR4_RSVD_15_13_MASK 0x0000E000U -/*Write Preamble*/ +/* +* Write Preamble +*/ #undef DDR_PHY_MR4_WRP_DEFVAL #undef DDR_PHY_MR4_WRP_SHIFT #undef DDR_PHY_MR4_WRP_MASK -#define DDR_PHY_MR4_WRP_DEFVAL 0x00000000 -#define DDR_PHY_MR4_WRP_SHIFT 12 -#define DDR_PHY_MR4_WRP_MASK 0x00001000U +#define DDR_PHY_MR4_WRP_DEFVAL 0x00000000 +#define DDR_PHY_MR4_WRP_SHIFT 12 +#define DDR_PHY_MR4_WRP_MASK 0x00001000U -/*Read Preamble*/ +/* +* Read Preamble +*/ #undef DDR_PHY_MR4_RDP_DEFVAL #undef DDR_PHY_MR4_RDP_SHIFT #undef DDR_PHY_MR4_RDP_MASK -#define DDR_PHY_MR4_RDP_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RDP_SHIFT 11 -#define DDR_PHY_MR4_RDP_MASK 0x00000800U +#define DDR_PHY_MR4_RDP_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RDP_SHIFT 11 +#define DDR_PHY_MR4_RDP_MASK 0x00000800U -/*Read Preamble Training Mode*/ +/* +* Read Preamble Training Mode +*/ #undef DDR_PHY_MR4_RPTM_DEFVAL #undef DDR_PHY_MR4_RPTM_SHIFT #undef DDR_PHY_MR4_RPTM_MASK -#define DDR_PHY_MR4_RPTM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RPTM_SHIFT 10 -#define DDR_PHY_MR4_RPTM_MASK 0x00000400U +#define DDR_PHY_MR4_RPTM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RPTM_SHIFT 10 +#define DDR_PHY_MR4_RPTM_MASK 0x00000400U -/*Self Refresh Abort*/ +/* +* Self Refresh Abort +*/ #undef DDR_PHY_MR4_SRA_DEFVAL #undef DDR_PHY_MR4_SRA_SHIFT #undef DDR_PHY_MR4_SRA_MASK -#define DDR_PHY_MR4_SRA_DEFVAL 0x00000000 -#define DDR_PHY_MR4_SRA_SHIFT 9 -#define DDR_PHY_MR4_SRA_MASK 0x00000200U +#define DDR_PHY_MR4_SRA_DEFVAL 0x00000000 +#define DDR_PHY_MR4_SRA_SHIFT 9 +#define DDR_PHY_MR4_SRA_MASK 0x00000200U -/*CS to Command Latency Mode*/ +/* +* CS to Command Latency Mode +*/ #undef DDR_PHY_MR4_CS2CMDL_DEFVAL #undef DDR_PHY_MR4_CS2CMDL_SHIFT #undef DDR_PHY_MR4_CS2CMDL_MASK -#define DDR_PHY_MR4_CS2CMDL_DEFVAL 0x00000000 -#define DDR_PHY_MR4_CS2CMDL_SHIFT 6 -#define DDR_PHY_MR4_CS2CMDL_MASK 0x000001C0U +#define DDR_PHY_MR4_CS2CMDL_DEFVAL 0x00000000 +#define DDR_PHY_MR4_CS2CMDL_SHIFT 6 +#define DDR_PHY_MR4_CS2CMDL_MASK 0x000001C0U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR4_RSVD1_DEFVAL #undef DDR_PHY_MR4_RSVD1_SHIFT #undef DDR_PHY_MR4_RSVD1_MASK -#define DDR_PHY_MR4_RSVD1_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD1_SHIFT 5 -#define DDR_PHY_MR4_RSVD1_MASK 0x00000020U +#define DDR_PHY_MR4_RSVD1_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD1_SHIFT 5 +#define DDR_PHY_MR4_RSVD1_MASK 0x00000020U -/*Internal VREF Monitor*/ +/* +* Internal VREF Monitor +*/ #undef DDR_PHY_MR4_IVM_DEFVAL #undef DDR_PHY_MR4_IVM_SHIFT #undef DDR_PHY_MR4_IVM_MASK -#define DDR_PHY_MR4_IVM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_IVM_SHIFT 4 -#define DDR_PHY_MR4_IVM_MASK 0x00000010U +#define DDR_PHY_MR4_IVM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_IVM_SHIFT 4 +#define DDR_PHY_MR4_IVM_MASK 0x00000010U -/*Temperature Controlled Refresh Mode*/ +/* +* Temperature Controlled Refresh Mode +*/ #undef DDR_PHY_MR4_TCRM_DEFVAL #undef DDR_PHY_MR4_TCRM_SHIFT #undef DDR_PHY_MR4_TCRM_MASK -#define DDR_PHY_MR4_TCRM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_TCRM_SHIFT 3 -#define DDR_PHY_MR4_TCRM_MASK 0x00000008U +#define DDR_PHY_MR4_TCRM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_TCRM_SHIFT 3 +#define DDR_PHY_MR4_TCRM_MASK 0x00000008U -/*Temperature Controlled Refresh Range*/ +/* +* Temperature Controlled Refresh Range +*/ #undef DDR_PHY_MR4_TCRR_DEFVAL #undef DDR_PHY_MR4_TCRR_SHIFT #undef DDR_PHY_MR4_TCRR_MASK -#define DDR_PHY_MR4_TCRR_DEFVAL 0x00000000 -#define DDR_PHY_MR4_TCRR_SHIFT 2 -#define DDR_PHY_MR4_TCRR_MASK 0x00000004U +#define DDR_PHY_MR4_TCRR_DEFVAL 0x00000000 +#define DDR_PHY_MR4_TCRR_SHIFT 2 +#define DDR_PHY_MR4_TCRR_MASK 0x00000004U -/*Maximum Power Down Mode*/ +/* +* Maximum Power Down Mode +*/ #undef DDR_PHY_MR4_MPDM_DEFVAL #undef DDR_PHY_MR4_MPDM_SHIFT #undef DDR_PHY_MR4_MPDM_MASK -#define DDR_PHY_MR4_MPDM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_MPDM_SHIFT 1 -#define DDR_PHY_MR4_MPDM_MASK 0x00000002U +#define DDR_PHY_MR4_MPDM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_MPDM_SHIFT 1 +#define DDR_PHY_MR4_MPDM_MASK 0x00000002U -/*This is a JEDEC reserved bit and is recommended by JEDEC to be programmed to 0x0.*/ +/* +* This is a JEDEC reserved bit and is recommended by JEDEC to be programme + * d to 0x0. +*/ #undef DDR_PHY_MR4_RSVD_0_DEFVAL #undef DDR_PHY_MR4_RSVD_0_SHIFT #undef DDR_PHY_MR4_RSVD_0_MASK -#define DDR_PHY_MR4_RSVD_0_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD_0_SHIFT 0 -#define DDR_PHY_MR4_RSVD_0_MASK 0x00000001U +#define DDR_PHY_MR4_RSVD_0_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD_0_SHIFT 0 +#define DDR_PHY_MR4_RSVD_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR5_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR5_RESERVED_31_16_SHIFT #undef DDR_PHY_MR5_RESERVED_31_16_MASK -#define DDR_PHY_MR5_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR5_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR5_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR5_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR5_RSVD_DEFVAL #undef DDR_PHY_MR5_RSVD_SHIFT #undef DDR_PHY_MR5_RSVD_MASK -#define DDR_PHY_MR5_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RSVD_SHIFT 13 -#define DDR_PHY_MR5_RSVD_MASK 0x0000E000U +#define DDR_PHY_MR5_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RSVD_SHIFT 13 +#define DDR_PHY_MR5_RSVD_MASK 0x0000E000U -/*Read DBI*/ +/* +* Read DBI +*/ #undef DDR_PHY_MR5_RDBI_DEFVAL #undef DDR_PHY_MR5_RDBI_SHIFT #undef DDR_PHY_MR5_RDBI_MASK -#define DDR_PHY_MR5_RDBI_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RDBI_SHIFT 12 -#define DDR_PHY_MR5_RDBI_MASK 0x00001000U +#define DDR_PHY_MR5_RDBI_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RDBI_SHIFT 12 +#define DDR_PHY_MR5_RDBI_MASK 0x00001000U -/*Write DBI*/ +/* +* Write DBI +*/ #undef DDR_PHY_MR5_WDBI_DEFVAL #undef DDR_PHY_MR5_WDBI_SHIFT #undef DDR_PHY_MR5_WDBI_MASK -#define DDR_PHY_MR5_WDBI_DEFVAL 0x00000000 -#define DDR_PHY_MR5_WDBI_SHIFT 11 -#define DDR_PHY_MR5_WDBI_MASK 0x00000800U +#define DDR_PHY_MR5_WDBI_DEFVAL 0x00000000 +#define DDR_PHY_MR5_WDBI_SHIFT 11 +#define DDR_PHY_MR5_WDBI_MASK 0x00000800U -/*Data Mask*/ +/* +* Data Mask +*/ #undef DDR_PHY_MR5_DM_DEFVAL #undef DDR_PHY_MR5_DM_SHIFT #undef DDR_PHY_MR5_DM_MASK -#define DDR_PHY_MR5_DM_DEFVAL 0x00000000 -#define DDR_PHY_MR5_DM_SHIFT 10 -#define DDR_PHY_MR5_DM_MASK 0x00000400U +#define DDR_PHY_MR5_DM_DEFVAL 0x00000000 +#define DDR_PHY_MR5_DM_SHIFT 10 +#define DDR_PHY_MR5_DM_MASK 0x00000400U -/*CA Parity Persistent Error*/ +/* +* CA Parity Persistent Error +*/ #undef DDR_PHY_MR5_CAPPE_DEFVAL #undef DDR_PHY_MR5_CAPPE_SHIFT #undef DDR_PHY_MR5_CAPPE_MASK -#define DDR_PHY_MR5_CAPPE_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPPE_SHIFT 9 -#define DDR_PHY_MR5_CAPPE_MASK 0x00000200U +#define DDR_PHY_MR5_CAPPE_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPPE_SHIFT 9 +#define DDR_PHY_MR5_CAPPE_MASK 0x00000200U -/*RTT_PARK*/ +/* +* RTT_PARK +*/ #undef DDR_PHY_MR5_RTTPARK_DEFVAL #undef DDR_PHY_MR5_RTTPARK_SHIFT #undef DDR_PHY_MR5_RTTPARK_MASK -#define DDR_PHY_MR5_RTTPARK_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RTTPARK_SHIFT 6 -#define DDR_PHY_MR5_RTTPARK_MASK 0x000001C0U +#define DDR_PHY_MR5_RTTPARK_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RTTPARK_SHIFT 6 +#define DDR_PHY_MR5_RTTPARK_MASK 0x000001C0U -/*ODT Input Buffer during Power Down mode*/ +/* +* ODT Input Buffer during Power Down mode +*/ #undef DDR_PHY_MR5_ODTIBPD_DEFVAL #undef DDR_PHY_MR5_ODTIBPD_SHIFT #undef DDR_PHY_MR5_ODTIBPD_MASK -#define DDR_PHY_MR5_ODTIBPD_DEFVAL 0x00000000 -#define DDR_PHY_MR5_ODTIBPD_SHIFT 5 -#define DDR_PHY_MR5_ODTIBPD_MASK 0x00000020U +#define DDR_PHY_MR5_ODTIBPD_DEFVAL 0x00000000 +#define DDR_PHY_MR5_ODTIBPD_SHIFT 5 +#define DDR_PHY_MR5_ODTIBPD_MASK 0x00000020U -/*C/A Parity Error Status*/ +/* +* C/A Parity Error Status +*/ #undef DDR_PHY_MR5_CAPES_DEFVAL #undef DDR_PHY_MR5_CAPES_SHIFT #undef DDR_PHY_MR5_CAPES_MASK -#define DDR_PHY_MR5_CAPES_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPES_SHIFT 4 -#define DDR_PHY_MR5_CAPES_MASK 0x00000010U +#define DDR_PHY_MR5_CAPES_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPES_SHIFT 4 +#define DDR_PHY_MR5_CAPES_MASK 0x00000010U -/*CRC Error Clear*/ +/* +* CRC Error Clear +*/ #undef DDR_PHY_MR5_CRCEC_DEFVAL #undef DDR_PHY_MR5_CRCEC_SHIFT #undef DDR_PHY_MR5_CRCEC_MASK -#define DDR_PHY_MR5_CRCEC_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CRCEC_SHIFT 3 -#define DDR_PHY_MR5_CRCEC_MASK 0x00000008U +#define DDR_PHY_MR5_CRCEC_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CRCEC_SHIFT 3 +#define DDR_PHY_MR5_CRCEC_MASK 0x00000008U -/*C/A Parity Latency Mode*/ +/* +* C/A Parity Latency Mode +*/ #undef DDR_PHY_MR5_CAPM_DEFVAL #undef DDR_PHY_MR5_CAPM_SHIFT #undef DDR_PHY_MR5_CAPM_MASK -#define DDR_PHY_MR5_CAPM_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPM_SHIFT 0 -#define DDR_PHY_MR5_CAPM_MASK 0x00000007U +#define DDR_PHY_MR5_CAPM_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPM_SHIFT 0 +#define DDR_PHY_MR5_CAPM_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR6_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR6_RESERVED_31_16_SHIFT #undef DDR_PHY_MR6_RESERVED_31_16_MASK -#define DDR_PHY_MR6_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR6_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR6_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR6_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR6_RSVD_15_13_DEFVAL #undef DDR_PHY_MR6_RSVD_15_13_SHIFT #undef DDR_PHY_MR6_RSVD_15_13_MASK -#define DDR_PHY_MR6_RSVD_15_13_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RSVD_15_13_SHIFT 13 -#define DDR_PHY_MR6_RSVD_15_13_MASK 0x0000E000U +#define DDR_PHY_MR6_RSVD_15_13_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RSVD_15_13_SHIFT 13 +#define DDR_PHY_MR6_RSVD_15_13_MASK 0x0000E000U -/*CAS_n to CAS_n command delay for same bank group (tCCD_L)*/ +/* +* CAS_n to CAS_n command delay for same bank group (tCCD_L) +*/ #undef DDR_PHY_MR6_TCCDL_DEFVAL #undef DDR_PHY_MR6_TCCDL_SHIFT #undef DDR_PHY_MR6_TCCDL_MASK -#define DDR_PHY_MR6_TCCDL_DEFVAL 0x00000000 -#define DDR_PHY_MR6_TCCDL_SHIFT 10 -#define DDR_PHY_MR6_TCCDL_MASK 0x00001C00U +#define DDR_PHY_MR6_TCCDL_DEFVAL 0x00000000 +#define DDR_PHY_MR6_TCCDL_SHIFT 10 +#define DDR_PHY_MR6_TCCDL_MASK 0x00001C00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR6_RSVD_9_8_DEFVAL #undef DDR_PHY_MR6_RSVD_9_8_SHIFT #undef DDR_PHY_MR6_RSVD_9_8_MASK -#define DDR_PHY_MR6_RSVD_9_8_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RSVD_9_8_SHIFT 8 -#define DDR_PHY_MR6_RSVD_9_8_MASK 0x00000300U +#define DDR_PHY_MR6_RSVD_9_8_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RSVD_9_8_SHIFT 8 +#define DDR_PHY_MR6_RSVD_9_8_MASK 0x00000300U -/*VrefDQ Training Enable*/ +/* +* VrefDQ Training Enable +*/ #undef DDR_PHY_MR6_VDDQTEN_DEFVAL #undef DDR_PHY_MR6_VDDQTEN_SHIFT #undef DDR_PHY_MR6_VDDQTEN_MASK -#define DDR_PHY_MR6_VDDQTEN_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDDQTEN_SHIFT 7 -#define DDR_PHY_MR6_VDDQTEN_MASK 0x00000080U +#define DDR_PHY_MR6_VDDQTEN_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDDQTEN_SHIFT 7 +#define DDR_PHY_MR6_VDDQTEN_MASK 0x00000080U -/*VrefDQ Training Range*/ +/* +* VrefDQ Training Range +*/ #undef DDR_PHY_MR6_VDQTRG_DEFVAL #undef DDR_PHY_MR6_VDQTRG_SHIFT #undef DDR_PHY_MR6_VDQTRG_MASK -#define DDR_PHY_MR6_VDQTRG_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDQTRG_SHIFT 6 -#define DDR_PHY_MR6_VDQTRG_MASK 0x00000040U +#define DDR_PHY_MR6_VDQTRG_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDQTRG_SHIFT 6 +#define DDR_PHY_MR6_VDQTRG_MASK 0x00000040U -/*VrefDQ Training Values*/ +/* +* VrefDQ Training Values +*/ #undef DDR_PHY_MR6_VDQTVAL_DEFVAL #undef DDR_PHY_MR6_VDQTVAL_SHIFT #undef DDR_PHY_MR6_VDQTVAL_MASK -#define DDR_PHY_MR6_VDQTVAL_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDQTVAL_SHIFT 0 -#define DDR_PHY_MR6_VDQTVAL_MASK 0x0000003FU +#define DDR_PHY_MR6_VDQTVAL_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDQTVAL_SHIFT 0 +#define DDR_PHY_MR6_VDQTVAL_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR11_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR11_RESERVED_31_8_SHIFT #undef DDR_PHY_MR11_RESERVED_31_8_MASK -#define DDR_PHY_MR11_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR11_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR11_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR11_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR11_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR11_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR11_RSVD_DEFVAL #undef DDR_PHY_MR11_RSVD_SHIFT #undef DDR_PHY_MR11_RSVD_MASK -#define DDR_PHY_MR11_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR11_RSVD_SHIFT 3 -#define DDR_PHY_MR11_RSVD_MASK 0x000000F8U +#define DDR_PHY_MR11_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR11_RSVD_SHIFT 3 +#define DDR_PHY_MR11_RSVD_MASK 0x000000F8U -/*Power Down Control*/ +/* +* Power Down Control +*/ #undef DDR_PHY_MR11_PDCTL_DEFVAL #undef DDR_PHY_MR11_PDCTL_SHIFT #undef DDR_PHY_MR11_PDCTL_MASK -#define DDR_PHY_MR11_PDCTL_DEFVAL 0x00000000 -#define DDR_PHY_MR11_PDCTL_SHIFT 2 -#define DDR_PHY_MR11_PDCTL_MASK 0x00000004U +#define DDR_PHY_MR11_PDCTL_DEFVAL 0x00000000 +#define DDR_PHY_MR11_PDCTL_SHIFT 2 +#define DDR_PHY_MR11_PDCTL_MASK 0x00000004U -/*DQ Bus Receiver On-Die-Termination*/ +/* +* DQ Bus Receiver On-Die-Termination +*/ #undef DDR_PHY_MR11_DQODT_DEFVAL #undef DDR_PHY_MR11_DQODT_SHIFT #undef DDR_PHY_MR11_DQODT_MASK -#define DDR_PHY_MR11_DQODT_DEFVAL 0x00000000 -#define DDR_PHY_MR11_DQODT_SHIFT 0 -#define DDR_PHY_MR11_DQODT_MASK 0x00000003U +#define DDR_PHY_MR11_DQODT_DEFVAL 0x00000000 +#define DDR_PHY_MR11_DQODT_SHIFT 0 +#define DDR_PHY_MR11_DQODT_MASK 0x00000003U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR12_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR12_RESERVED_31_8_SHIFT #undef DDR_PHY_MR12_RESERVED_31_8_MASK -#define DDR_PHY_MR12_RESERVED_31_8_DEFVAL 0x0000004D -#define DDR_PHY_MR12_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR12_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR12_RESERVED_31_8_DEFVAL 0x0000004D +#define DDR_PHY_MR12_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR12_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR12_RSVD_DEFVAL #undef DDR_PHY_MR12_RSVD_SHIFT #undef DDR_PHY_MR12_RSVD_MASK -#define DDR_PHY_MR12_RSVD_DEFVAL 0x0000004D -#define DDR_PHY_MR12_RSVD_SHIFT 7 -#define DDR_PHY_MR12_RSVD_MASK 0x00000080U +#define DDR_PHY_MR12_RSVD_DEFVAL 0x0000004D +#define DDR_PHY_MR12_RSVD_SHIFT 7 +#define DDR_PHY_MR12_RSVD_MASK 0x00000080U -/*VREF_CA Range Select.*/ +/* +* VREF_CA Range Select. +*/ #undef DDR_PHY_MR12_VR_CA_DEFVAL #undef DDR_PHY_MR12_VR_CA_SHIFT #undef DDR_PHY_MR12_VR_CA_MASK -#define DDR_PHY_MR12_VR_CA_DEFVAL 0x0000004D -#define DDR_PHY_MR12_VR_CA_SHIFT 6 -#define DDR_PHY_MR12_VR_CA_MASK 0x00000040U +#define DDR_PHY_MR12_VR_CA_DEFVAL 0x0000004D +#define DDR_PHY_MR12_VR_CA_SHIFT 6 +#define DDR_PHY_MR12_VR_CA_MASK 0x00000040U -/*Controls the VREF(ca) levels for Frequency-Set-Point[1:0].*/ +/* +* Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. +*/ #undef DDR_PHY_MR12_VREF_CA_DEFVAL #undef DDR_PHY_MR12_VREF_CA_SHIFT #undef DDR_PHY_MR12_VREF_CA_MASK -#define DDR_PHY_MR12_VREF_CA_DEFVAL 0x0000004D -#define DDR_PHY_MR12_VREF_CA_SHIFT 0 -#define DDR_PHY_MR12_VREF_CA_MASK 0x0000003FU +#define DDR_PHY_MR12_VREF_CA_DEFVAL 0x0000004D +#define DDR_PHY_MR12_VREF_CA_SHIFT 0 +#define DDR_PHY_MR12_VREF_CA_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR13_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR13_RESERVED_31_8_SHIFT #undef DDR_PHY_MR13_RESERVED_31_8_MASK -#define DDR_PHY_MR13_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR13_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR13_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR13_RESERVED_31_8_MASK 0xFFFFFF00U -/*Frequency Set Point Operation Mode*/ +/* +* Frequency Set Point Operation Mode +*/ #undef DDR_PHY_MR13_FSPOP_DEFVAL #undef DDR_PHY_MR13_FSPOP_SHIFT #undef DDR_PHY_MR13_FSPOP_MASK -#define DDR_PHY_MR13_FSPOP_DEFVAL 0x00000000 -#define DDR_PHY_MR13_FSPOP_SHIFT 7 -#define DDR_PHY_MR13_FSPOP_MASK 0x00000080U +#define DDR_PHY_MR13_FSPOP_DEFVAL 0x00000000 +#define DDR_PHY_MR13_FSPOP_SHIFT 7 +#define DDR_PHY_MR13_FSPOP_MASK 0x00000080U -/*Frequency Set Point Write Enable*/ +/* +* Frequency Set Point Write Enable +*/ #undef DDR_PHY_MR13_FSPWR_DEFVAL #undef DDR_PHY_MR13_FSPWR_SHIFT #undef DDR_PHY_MR13_FSPWR_MASK -#define DDR_PHY_MR13_FSPWR_DEFVAL 0x00000000 -#define DDR_PHY_MR13_FSPWR_SHIFT 6 -#define DDR_PHY_MR13_FSPWR_MASK 0x00000040U +#define DDR_PHY_MR13_FSPWR_DEFVAL 0x00000000 +#define DDR_PHY_MR13_FSPWR_SHIFT 6 +#define DDR_PHY_MR13_FSPWR_MASK 0x00000040U -/*Data Mask Enable*/ +/* +* Data Mask Enable +*/ #undef DDR_PHY_MR13_DMD_DEFVAL #undef DDR_PHY_MR13_DMD_SHIFT #undef DDR_PHY_MR13_DMD_MASK -#define DDR_PHY_MR13_DMD_DEFVAL 0x00000000 -#define DDR_PHY_MR13_DMD_SHIFT 5 -#define DDR_PHY_MR13_DMD_MASK 0x00000020U +#define DDR_PHY_MR13_DMD_DEFVAL 0x00000000 +#define DDR_PHY_MR13_DMD_SHIFT 5 +#define DDR_PHY_MR13_DMD_MASK 0x00000020U -/*Refresh Rate Option*/ +/* +* Refresh Rate Option +*/ #undef DDR_PHY_MR13_RRO_DEFVAL #undef DDR_PHY_MR13_RRO_SHIFT #undef DDR_PHY_MR13_RRO_MASK -#define DDR_PHY_MR13_RRO_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RRO_SHIFT 4 -#define DDR_PHY_MR13_RRO_MASK 0x00000010U +#define DDR_PHY_MR13_RRO_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RRO_SHIFT 4 +#define DDR_PHY_MR13_RRO_MASK 0x00000010U -/*VREF Current Generator*/ +/* +* VREF Current Generator +*/ #undef DDR_PHY_MR13_VRCG_DEFVAL #undef DDR_PHY_MR13_VRCG_SHIFT #undef DDR_PHY_MR13_VRCG_MASK -#define DDR_PHY_MR13_VRCG_DEFVAL 0x00000000 -#define DDR_PHY_MR13_VRCG_SHIFT 3 -#define DDR_PHY_MR13_VRCG_MASK 0x00000008U +#define DDR_PHY_MR13_VRCG_DEFVAL 0x00000000 +#define DDR_PHY_MR13_VRCG_SHIFT 3 +#define DDR_PHY_MR13_VRCG_MASK 0x00000008U -/*VREF Output*/ +/* +* VREF Output +*/ #undef DDR_PHY_MR13_VRO_DEFVAL #undef DDR_PHY_MR13_VRO_SHIFT #undef DDR_PHY_MR13_VRO_MASK -#define DDR_PHY_MR13_VRO_DEFVAL 0x00000000 -#define DDR_PHY_MR13_VRO_SHIFT 2 -#define DDR_PHY_MR13_VRO_MASK 0x00000004U +#define DDR_PHY_MR13_VRO_DEFVAL 0x00000000 +#define DDR_PHY_MR13_VRO_SHIFT 2 +#define DDR_PHY_MR13_VRO_MASK 0x00000004U -/*Read Preamble Training Mode*/ +/* +* Read Preamble Training Mode +*/ #undef DDR_PHY_MR13_RPT_DEFVAL #undef DDR_PHY_MR13_RPT_SHIFT #undef DDR_PHY_MR13_RPT_MASK -#define DDR_PHY_MR13_RPT_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RPT_SHIFT 1 -#define DDR_PHY_MR13_RPT_MASK 0x00000002U +#define DDR_PHY_MR13_RPT_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RPT_SHIFT 1 +#define DDR_PHY_MR13_RPT_MASK 0x00000002U -/*Command Bus Training*/ +/* +* Command Bus Training +*/ #undef DDR_PHY_MR13_CBT_DEFVAL #undef DDR_PHY_MR13_CBT_SHIFT #undef DDR_PHY_MR13_CBT_MASK -#define DDR_PHY_MR13_CBT_DEFVAL 0x00000000 -#define DDR_PHY_MR13_CBT_SHIFT 0 -#define DDR_PHY_MR13_CBT_MASK 0x00000001U +#define DDR_PHY_MR13_CBT_DEFVAL 0x00000000 +#define DDR_PHY_MR13_CBT_SHIFT 0 +#define DDR_PHY_MR13_CBT_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR14_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR14_RESERVED_31_8_SHIFT #undef DDR_PHY_MR14_RESERVED_31_8_MASK -#define DDR_PHY_MR14_RESERVED_31_8_DEFVAL 0x0000004D -#define DDR_PHY_MR14_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR14_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR14_RESERVED_31_8_DEFVAL 0x0000004D +#define DDR_PHY_MR14_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR14_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR14_RSVD_DEFVAL #undef DDR_PHY_MR14_RSVD_SHIFT #undef DDR_PHY_MR14_RSVD_MASK -#define DDR_PHY_MR14_RSVD_DEFVAL 0x0000004D -#define DDR_PHY_MR14_RSVD_SHIFT 7 -#define DDR_PHY_MR14_RSVD_MASK 0x00000080U +#define DDR_PHY_MR14_RSVD_DEFVAL 0x0000004D +#define DDR_PHY_MR14_RSVD_SHIFT 7 +#define DDR_PHY_MR14_RSVD_MASK 0x00000080U -/*VREFDQ Range Selects.*/ +/* +* VREFDQ Range Selects. +*/ #undef DDR_PHY_MR14_VR_DQ_DEFVAL #undef DDR_PHY_MR14_VR_DQ_SHIFT #undef DDR_PHY_MR14_VR_DQ_MASK -#define DDR_PHY_MR14_VR_DQ_DEFVAL 0x0000004D -#define DDR_PHY_MR14_VR_DQ_SHIFT 6 -#define DDR_PHY_MR14_VR_DQ_MASK 0x00000040U +#define DDR_PHY_MR14_VR_DQ_DEFVAL 0x0000004D +#define DDR_PHY_MR14_VR_DQ_SHIFT 6 +#define DDR_PHY_MR14_VR_DQ_MASK 0x00000040U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR14_VREF_DQ_DEFVAL #undef DDR_PHY_MR14_VREF_DQ_SHIFT #undef DDR_PHY_MR14_VREF_DQ_MASK -#define DDR_PHY_MR14_VREF_DQ_DEFVAL 0x0000004D -#define DDR_PHY_MR14_VREF_DQ_SHIFT 0 -#define DDR_PHY_MR14_VREF_DQ_MASK 0x0000003FU +#define DDR_PHY_MR14_VREF_DQ_DEFVAL 0x0000004D +#define DDR_PHY_MR14_VREF_DQ_SHIFT 0 +#define DDR_PHY_MR14_VREF_DQ_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR22_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR22_RESERVED_31_8_SHIFT #undef DDR_PHY_MR22_RESERVED_31_8_MASK -#define DDR_PHY_MR22_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR22_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR22_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR22_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR22_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR22_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR22_RSVD_DEFVAL #undef DDR_PHY_MR22_RSVD_SHIFT #undef DDR_PHY_MR22_RSVD_MASK -#define DDR_PHY_MR22_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR22_RSVD_SHIFT 6 -#define DDR_PHY_MR22_RSVD_MASK 0x000000C0U +#define DDR_PHY_MR22_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR22_RSVD_SHIFT 6 +#define DDR_PHY_MR22_RSVD_MASK 0x000000C0U -/*CA ODT termination disable.*/ +/* +* CA ODT termination disable. +*/ #undef DDR_PHY_MR22_ODTD_CA_DEFVAL #undef DDR_PHY_MR22_ODTD_CA_SHIFT #undef DDR_PHY_MR22_ODTD_CA_MASK -#define DDR_PHY_MR22_ODTD_CA_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTD_CA_SHIFT 5 -#define DDR_PHY_MR22_ODTD_CA_MASK 0x00000020U +#define DDR_PHY_MR22_ODTD_CA_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTD_CA_SHIFT 5 +#define DDR_PHY_MR22_ODTD_CA_MASK 0x00000020U -/*ODT CS override.*/ +/* +* ODT CS override. +*/ #undef DDR_PHY_MR22_ODTE_CS_DEFVAL #undef DDR_PHY_MR22_ODTE_CS_SHIFT #undef DDR_PHY_MR22_ODTE_CS_MASK -#define DDR_PHY_MR22_ODTE_CS_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTE_CS_SHIFT 4 -#define DDR_PHY_MR22_ODTE_CS_MASK 0x00000010U +#define DDR_PHY_MR22_ODTE_CS_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTE_CS_SHIFT 4 +#define DDR_PHY_MR22_ODTE_CS_MASK 0x00000010U -/*ODT CK override.*/ +/* +* ODT CK override. +*/ #undef DDR_PHY_MR22_ODTE_CK_DEFVAL #undef DDR_PHY_MR22_ODTE_CK_SHIFT #undef DDR_PHY_MR22_ODTE_CK_MASK -#define DDR_PHY_MR22_ODTE_CK_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTE_CK_SHIFT 3 -#define DDR_PHY_MR22_ODTE_CK_MASK 0x00000008U +#define DDR_PHY_MR22_ODTE_CK_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTE_CK_SHIFT 3 +#define DDR_PHY_MR22_ODTE_CK_MASK 0x00000008U -/*Controller ODT value for VOH calibration.*/ +/* +* Controller ODT value for VOH calibration. +*/ #undef DDR_PHY_MR22_CODT_DEFVAL #undef DDR_PHY_MR22_CODT_SHIFT #undef DDR_PHY_MR22_CODT_MASK -#define DDR_PHY_MR22_CODT_DEFVAL 0x00000000 -#define DDR_PHY_MR22_CODT_SHIFT 0 -#define DDR_PHY_MR22_CODT_MASK 0x00000007U +#define DDR_PHY_MR22_CODT_DEFVAL 0x00000000 +#define DDR_PHY_MR22_CODT_SHIFT 0 +#define DDR_PHY_MR22_CODT_MASK 0x00000007U -/*Refresh During Training*/ +/* +* Refresh During Training +*/ #undef DDR_PHY_DTCR0_RFSHDT_DEFVAL #undef DDR_PHY_DTCR0_RFSHDT_SHIFT #undef DDR_PHY_DTCR0_RFSHDT_MASK -#define DDR_PHY_DTCR0_RFSHDT_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RFSHDT_SHIFT 28 -#define DDR_PHY_DTCR0_RFSHDT_MASK 0xF0000000U +#define DDR_PHY_DTCR0_RFSHDT_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RFSHDT_SHIFT 28 +#define DDR_PHY_DTCR0_RFSHDT_MASK 0xF0000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_27_26_SHIFT #undef DDR_PHY_DTCR0_RESERVED_27_26_MASK -#define DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_27_26_SHIFT 26 -#define DDR_PHY_DTCR0_RESERVED_27_26_MASK 0x0C000000U +#define DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_27_26_SHIFT 26 +#define DDR_PHY_DTCR0_RESERVED_27_26_MASK 0x0C000000U -/*Data Training Debug Rank Select*/ +/* +* Data Training Debug Rank Select +*/ #undef DDR_PHY_DTCR0_DTDRS_DEFVAL #undef DDR_PHY_DTCR0_DTDRS_SHIFT #undef DDR_PHY_DTCR0_DTDRS_MASK -#define DDR_PHY_DTCR0_DTDRS_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDRS_SHIFT 24 -#define DDR_PHY_DTCR0_DTDRS_MASK 0x03000000U +#define DDR_PHY_DTCR0_DTDRS_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDRS_SHIFT 24 +#define DDR_PHY_DTCR0_DTDRS_MASK 0x03000000U -/*Data Training with Early/Extended Gate*/ +/* +* Data Training with Early/Extended Gate +*/ #undef DDR_PHY_DTCR0_DTEXG_DEFVAL #undef DDR_PHY_DTCR0_DTEXG_SHIFT #undef DDR_PHY_DTCR0_DTEXG_MASK -#define DDR_PHY_DTCR0_DTEXG_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTEXG_SHIFT 23 -#define DDR_PHY_DTCR0_DTEXG_MASK 0x00800000U +#define DDR_PHY_DTCR0_DTEXG_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTEXG_SHIFT 23 +#define DDR_PHY_DTCR0_DTEXG_MASK 0x00800000U -/*Data Training Extended Write DQS*/ +/* +* Data Training Extended Write DQS +*/ #undef DDR_PHY_DTCR0_DTEXD_DEFVAL #undef DDR_PHY_DTCR0_DTEXD_SHIFT #undef DDR_PHY_DTCR0_DTEXD_MASK -#define DDR_PHY_DTCR0_DTEXD_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTEXD_SHIFT 22 -#define DDR_PHY_DTCR0_DTEXD_MASK 0x00400000U +#define DDR_PHY_DTCR0_DTEXD_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTEXD_SHIFT 22 +#define DDR_PHY_DTCR0_DTEXD_MASK 0x00400000U -/*Data Training Debug Step*/ +/* +* Data Training Debug Step +*/ #undef DDR_PHY_DTCR0_DTDSTP_DEFVAL #undef DDR_PHY_DTCR0_DTDSTP_SHIFT #undef DDR_PHY_DTCR0_DTDSTP_MASK -#define DDR_PHY_DTCR0_DTDSTP_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDSTP_SHIFT 21 -#define DDR_PHY_DTCR0_DTDSTP_MASK 0x00200000U +#define DDR_PHY_DTCR0_DTDSTP_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDSTP_SHIFT 21 +#define DDR_PHY_DTCR0_DTDSTP_MASK 0x00200000U -/*Data Training Debug Enable*/ +/* +* Data Training Debug Enable +*/ #undef DDR_PHY_DTCR0_DTDEN_DEFVAL #undef DDR_PHY_DTCR0_DTDEN_SHIFT #undef DDR_PHY_DTCR0_DTDEN_MASK -#define DDR_PHY_DTCR0_DTDEN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDEN_SHIFT 20 -#define DDR_PHY_DTCR0_DTDEN_MASK 0x00100000U +#define DDR_PHY_DTCR0_DTDEN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDEN_SHIFT 20 +#define DDR_PHY_DTCR0_DTDEN_MASK 0x00100000U -/*Data Training Debug Byte Select*/ +/* +* Data Training Debug Byte Select +*/ #undef DDR_PHY_DTCR0_DTDBS_DEFVAL #undef DDR_PHY_DTCR0_DTDBS_SHIFT #undef DDR_PHY_DTCR0_DTDBS_MASK -#define DDR_PHY_DTCR0_DTDBS_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDBS_SHIFT 16 -#define DDR_PHY_DTCR0_DTDBS_MASK 0x000F0000U +#define DDR_PHY_DTCR0_DTDBS_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDBS_SHIFT 16 +#define DDR_PHY_DTCR0_DTDBS_MASK 0x000F0000U -/*Data Training read DBI deskewing configuration*/ +/* +* Data Training read DBI deskewing configuration +*/ #undef DDR_PHY_DTCR0_DTRDBITR_DEFVAL #undef DDR_PHY_DTCR0_DTRDBITR_SHIFT #undef DDR_PHY_DTCR0_DTRDBITR_MASK -#define DDR_PHY_DTCR0_DTRDBITR_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTRDBITR_SHIFT 14 -#define DDR_PHY_DTCR0_DTRDBITR_MASK 0x0000C000U +#define DDR_PHY_DTCR0_DTRDBITR_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTRDBITR_SHIFT 14 +#define DDR_PHY_DTCR0_DTRDBITR_MASK 0x0000C000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_13_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_13_SHIFT #undef DDR_PHY_DTCR0_RESERVED_13_MASK -#define DDR_PHY_DTCR0_RESERVED_13_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_13_SHIFT 13 -#define DDR_PHY_DTCR0_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_DTCR0_RESERVED_13_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_13_SHIFT 13 +#define DDR_PHY_DTCR0_RESERVED_13_MASK 0x00002000U -/*Data Training Write Bit Deskew Data Mask*/ +/* +* Data Training Write Bit Deskew Data Mask +*/ #undef DDR_PHY_DTCR0_DTWBDDM_DEFVAL #undef DDR_PHY_DTCR0_DTWBDDM_SHIFT #undef DDR_PHY_DTCR0_DTWBDDM_MASK -#define DDR_PHY_DTCR0_DTWBDDM_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTWBDDM_SHIFT 12 -#define DDR_PHY_DTCR0_DTWBDDM_MASK 0x00001000U +#define DDR_PHY_DTCR0_DTWBDDM_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTWBDDM_SHIFT 12 +#define DDR_PHY_DTCR0_DTWBDDM_MASK 0x00001000U -/*Refreshes Issued During Entry to Training*/ +/* +* Refreshes Issued During Entry to Training +*/ #undef DDR_PHY_DTCR0_RFSHEN_DEFVAL #undef DDR_PHY_DTCR0_RFSHEN_SHIFT #undef DDR_PHY_DTCR0_RFSHEN_MASK -#define DDR_PHY_DTCR0_RFSHEN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RFSHEN_SHIFT 8 -#define DDR_PHY_DTCR0_RFSHEN_MASK 0x00000F00U +#define DDR_PHY_DTCR0_RFSHEN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RFSHEN_SHIFT 8 +#define DDR_PHY_DTCR0_RFSHEN_MASK 0x00000F00U -/*Data Training Compare Data*/ +/* +* Data Training Compare Data +*/ #undef DDR_PHY_DTCR0_DTCMPD_DEFVAL #undef DDR_PHY_DTCR0_DTCMPD_SHIFT #undef DDR_PHY_DTCR0_DTCMPD_MASK -#define DDR_PHY_DTCR0_DTCMPD_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTCMPD_SHIFT 7 -#define DDR_PHY_DTCR0_DTCMPD_MASK 0x00000080U +#define DDR_PHY_DTCR0_DTCMPD_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTCMPD_SHIFT 7 +#define DDR_PHY_DTCR0_DTCMPD_MASK 0x00000080U -/*Data Training Using MPR*/ +/* +* Data Training Using MPR +*/ #undef DDR_PHY_DTCR0_DTMPR_DEFVAL #undef DDR_PHY_DTCR0_DTMPR_SHIFT #undef DDR_PHY_DTCR0_DTMPR_MASK -#define DDR_PHY_DTCR0_DTMPR_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTMPR_SHIFT 6 -#define DDR_PHY_DTCR0_DTMPR_MASK 0x00000040U +#define DDR_PHY_DTCR0_DTMPR_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTMPR_SHIFT 6 +#define DDR_PHY_DTCR0_DTMPR_MASK 0x00000040U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_5_4_SHIFT #undef DDR_PHY_DTCR0_RESERVED_5_4_MASK -#define DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_5_4_SHIFT 4 -#define DDR_PHY_DTCR0_RESERVED_5_4_MASK 0x00000030U +#define DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_5_4_SHIFT 4 +#define DDR_PHY_DTCR0_RESERVED_5_4_MASK 0x00000030U -/*Data Training Repeat Number*/ +/* +* Data Training Repeat Number +*/ #undef DDR_PHY_DTCR0_DTRPTN_DEFVAL #undef DDR_PHY_DTCR0_DTRPTN_SHIFT #undef DDR_PHY_DTCR0_DTRPTN_MASK -#define DDR_PHY_DTCR0_DTRPTN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTRPTN_SHIFT 0 -#define DDR_PHY_DTCR0_DTRPTN_MASK 0x0000000FU +#define DDR_PHY_DTCR0_DTRPTN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTRPTN_SHIFT 0 +#define DDR_PHY_DTCR0_DTRPTN_MASK 0x0000000FU -/*Rank Enable.*/ +/* +* Rank Enable. +*/ #undef DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL #undef DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT #undef DDR_PHY_DTCR1_RANKEN_RSVD_MASK -#define DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT 18 -#define DDR_PHY_DTCR1_RANKEN_RSVD_MASK 0xFFFC0000U +#define DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT 18 +#define DDR_PHY_DTCR1_RANKEN_RSVD_MASK 0xFFFC0000U -/*Rank Enable.*/ +/* +* Rank Enable. +*/ #undef DDR_PHY_DTCR1_RANKEN_DEFVAL #undef DDR_PHY_DTCR1_RANKEN_SHIFT #undef DDR_PHY_DTCR1_RANKEN_MASK -#define DDR_PHY_DTCR1_RANKEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RANKEN_SHIFT 16 -#define DDR_PHY_DTCR1_RANKEN_MASK 0x00030000U +#define DDR_PHY_DTCR1_RANKEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RANKEN_SHIFT 16 +#define DDR_PHY_DTCR1_RANKEN_MASK 0x00030000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_15_14_SHIFT #undef DDR_PHY_DTCR1_RESERVED_15_14_MASK -#define DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DTCR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DTCR1_RESERVED_15_14_MASK 0x0000C000U -/*Data Training Rank*/ +/* +* Data Training Rank +*/ #undef DDR_PHY_DTCR1_DTRANK_DEFVAL #undef DDR_PHY_DTCR1_DTRANK_SHIFT #undef DDR_PHY_DTCR1_DTRANK_MASK -#define DDR_PHY_DTCR1_DTRANK_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_DTRANK_SHIFT 12 -#define DDR_PHY_DTCR1_DTRANK_MASK 0x00003000U +#define DDR_PHY_DTCR1_DTRANK_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_DTRANK_SHIFT 12 +#define DDR_PHY_DTCR1_DTRANK_MASK 0x00003000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_11_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_11_SHIFT #undef DDR_PHY_DTCR1_RESERVED_11_MASK -#define DDR_PHY_DTCR1_RESERVED_11_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_11_SHIFT 11 -#define DDR_PHY_DTCR1_RESERVED_11_MASK 0x00000800U +#define DDR_PHY_DTCR1_RESERVED_11_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_11_SHIFT 11 +#define DDR_PHY_DTCR1_RESERVED_11_MASK 0x00000800U -/*Read Leveling Gate Sampling Difference*/ +/* +* Read Leveling Gate Sampling Difference +*/ #undef DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL #undef DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT #undef DDR_PHY_DTCR1_RDLVLGDIFF_MASK -#define DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT 8 -#define DDR_PHY_DTCR1_RDLVLGDIFF_MASK 0x00000700U +#define DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT 8 +#define DDR_PHY_DTCR1_RDLVLGDIFF_MASK 0x00000700U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_7_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_7_SHIFT #undef DDR_PHY_DTCR1_RESERVED_7_MASK -#define DDR_PHY_DTCR1_RESERVED_7_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_7_SHIFT 7 -#define DDR_PHY_DTCR1_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DTCR1_RESERVED_7_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_7_SHIFT 7 +#define DDR_PHY_DTCR1_RESERVED_7_MASK 0x00000080U -/*Read Leveling Gate Shift*/ +/* +* Read Leveling Gate Shift +*/ #undef DDR_PHY_DTCR1_RDLVLGS_DEFVAL #undef DDR_PHY_DTCR1_RDLVLGS_SHIFT #undef DDR_PHY_DTCR1_RDLVLGS_MASK -#define DDR_PHY_DTCR1_RDLVLGS_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLGS_SHIFT 4 -#define DDR_PHY_DTCR1_RDLVLGS_MASK 0x00000070U +#define DDR_PHY_DTCR1_RDLVLGS_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLGS_SHIFT 4 +#define DDR_PHY_DTCR1_RDLVLGS_MASK 0x00000070U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_3_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_3_SHIFT #undef DDR_PHY_DTCR1_RESERVED_3_MASK -#define DDR_PHY_DTCR1_RESERVED_3_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_3_SHIFT 3 -#define DDR_PHY_DTCR1_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_DTCR1_RESERVED_3_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_3_SHIFT 3 +#define DDR_PHY_DTCR1_RESERVED_3_MASK 0x00000008U -/*Read Preamble Training enable*/ +/* +* Read Preamble Training enable +*/ #undef DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL #undef DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT #undef DDR_PHY_DTCR1_RDPRMVL_TRN_MASK -#define DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT 2 -#define DDR_PHY_DTCR1_RDPRMVL_TRN_MASK 0x00000004U +#define DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT 2 +#define DDR_PHY_DTCR1_RDPRMVL_TRN_MASK 0x00000004U -/*Read Leveling Enable*/ +/* +* Read Leveling Enable +*/ #undef DDR_PHY_DTCR1_RDLVLEN_DEFVAL #undef DDR_PHY_DTCR1_RDLVLEN_SHIFT #undef DDR_PHY_DTCR1_RDLVLEN_MASK -#define DDR_PHY_DTCR1_RDLVLEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLEN_SHIFT 1 -#define DDR_PHY_DTCR1_RDLVLEN_MASK 0x00000002U +#define DDR_PHY_DTCR1_RDLVLEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLEN_SHIFT 1 +#define DDR_PHY_DTCR1_RDLVLEN_MASK 0x00000002U -/*Basic Gate Training Enable*/ +/* +* Basic Gate Training Enable +*/ #undef DDR_PHY_DTCR1_BSTEN_DEFVAL #undef DDR_PHY_DTCR1_BSTEN_SHIFT #undef DDR_PHY_DTCR1_BSTEN_MASK -#define DDR_PHY_DTCR1_BSTEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_BSTEN_SHIFT 0 -#define DDR_PHY_DTCR1_BSTEN_MASK 0x00000001U +#define DDR_PHY_DTCR1_BSTEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_BSTEN_SHIFT 0 +#define DDR_PHY_DTCR1_BSTEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_CATR0_RESERVED_31_21_DEFVAL #undef DDR_PHY_CATR0_RESERVED_31_21_SHIFT #undef DDR_PHY_CATR0_RESERVED_31_21_MASK -#define DDR_PHY_CATR0_RESERVED_31_21_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_RESERVED_31_21_SHIFT 21 -#define DDR_PHY_CATR0_RESERVED_31_21_MASK 0xFFE00000U +#define DDR_PHY_CATR0_RESERVED_31_21_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_RESERVED_31_21_SHIFT 21 +#define DDR_PHY_CATR0_RESERVED_31_21_MASK 0xFFE00000U -/*Minimum time (in terms of number of dram clocks) between two consectuve CA calibration command*/ +/* +* Minimum time (in terms of number of dram clocks) between two consectuve + * CA calibration command +*/ #undef DDR_PHY_CATR0_CACD_DEFVAL #undef DDR_PHY_CATR0_CACD_SHIFT #undef DDR_PHY_CATR0_CACD_MASK -#define DDR_PHY_CATR0_CACD_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CACD_SHIFT 16 -#define DDR_PHY_CATR0_CACD_MASK 0x001F0000U +#define DDR_PHY_CATR0_CACD_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CACD_SHIFT 16 +#define DDR_PHY_CATR0_CACD_MASK 0x001F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_CATR0_RESERVED_15_13_DEFVAL #undef DDR_PHY_CATR0_RESERVED_15_13_SHIFT #undef DDR_PHY_CATR0_RESERVED_15_13_MASK -#define DDR_PHY_CATR0_RESERVED_15_13_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_CATR0_RESERVED_15_13_MASK 0x0000E000U +#define DDR_PHY_CATR0_RESERVED_15_13_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_RESERVED_15_13_SHIFT 13 +#define DDR_PHY_CATR0_RESERVED_15_13_MASK 0x0000E000U -/*Minimum time (in terms of number of dram clocks) PUB should wait before sampling the CA response after Calibration command ha - been sent to the memory*/ +/* +* Minimum time (in terms of number of dram clocks) PUB should wait before + * sampling the CA response after Calibration command has been sent to the + * memory +*/ #undef DDR_PHY_CATR0_CAADR_DEFVAL #undef DDR_PHY_CATR0_CAADR_SHIFT #undef DDR_PHY_CATR0_CAADR_MASK -#define DDR_PHY_CATR0_CAADR_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CAADR_SHIFT 8 -#define DDR_PHY_CATR0_CAADR_MASK 0x00001F00U +#define DDR_PHY_CATR0_CAADR_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CAADR_SHIFT 8 +#define DDR_PHY_CATR0_CAADR_MASK 0x00001F00U -/*CA_1 Response Byte Lane 1*/ +/* +* CA_1 Response Byte Lane 1 +*/ #undef DDR_PHY_CATR0_CA1BYTE1_DEFVAL #undef DDR_PHY_CATR0_CA1BYTE1_SHIFT #undef DDR_PHY_CATR0_CA1BYTE1_MASK -#define DDR_PHY_CATR0_CA1BYTE1_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CA1BYTE1_SHIFT 4 -#define DDR_PHY_CATR0_CA1BYTE1_MASK 0x000000F0U +#define DDR_PHY_CATR0_CA1BYTE1_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CA1BYTE1_SHIFT 4 +#define DDR_PHY_CATR0_CA1BYTE1_MASK 0x000000F0U -/*CA_1 Response Byte Lane 0*/ +/* +* CA_1 Response Byte Lane 0 +*/ #undef DDR_PHY_CATR0_CA1BYTE0_DEFVAL #undef DDR_PHY_CATR0_CA1BYTE0_SHIFT #undef DDR_PHY_CATR0_CA1BYTE0_MASK -#define DDR_PHY_CATR0_CA1BYTE0_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CA1BYTE0_SHIFT 0 -#define DDR_PHY_CATR0_CA1BYTE0_MASK 0x0000000FU +#define DDR_PHY_CATR0_CA1BYTE0_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CA1BYTE0_SHIFT 0 +#define DDR_PHY_CATR0_CA1BYTE0_MASK 0x0000000FU -/*LFSR seed for pseudo-random BIST patterns*/ +/* +* Number of delay taps by which the DQS gate LCDL will be updated when DQS + * drift is detected +*/ +#undef DDR_PHY_DQSDR0_DFTDLY_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDLY_SHIFT +#undef DDR_PHY_DQSDR0_DFTDLY_MASK +#define DDR_PHY_DQSDR0_DFTDLY_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDLY_SHIFT 28 +#define DDR_PHY_DQSDR0_DFTDLY_MASK 0xF0000000U + +/* +* Drift Impedance Update +*/ +#undef DDR_PHY_DQSDR0_DFTZQUP_DEFVAL +#undef DDR_PHY_DQSDR0_DFTZQUP_SHIFT +#undef DDR_PHY_DQSDR0_DFTZQUP_MASK +#define DDR_PHY_DQSDR0_DFTZQUP_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTZQUP_SHIFT 27 +#define DDR_PHY_DQSDR0_DFTZQUP_MASK 0x08000000U + +/* +* Drift DDL Update +*/ +#undef DDR_PHY_DQSDR0_DFTDDLUP_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDDLUP_SHIFT +#undef DDR_PHY_DQSDR0_DFTDDLUP_MASK +#define DDR_PHY_DQSDR0_DFTDDLUP_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDDLUP_SHIFT 26 +#define DDR_PHY_DQSDR0_DFTDDLUP_MASK 0x04000000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DQSDR0_RESERVED_25_22_DEFVAL +#undef DDR_PHY_DQSDR0_RESERVED_25_22_SHIFT +#undef DDR_PHY_DQSDR0_RESERVED_25_22_MASK +#define DDR_PHY_DQSDR0_RESERVED_25_22_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_RESERVED_25_22_SHIFT 22 +#define DDR_PHY_DQSDR0_RESERVED_25_22_MASK 0x03C00000U + +/* +* Drift Read Spacing +*/ +#undef DDR_PHY_DQSDR0_DFTRDSPC_DEFVAL +#undef DDR_PHY_DQSDR0_DFTRDSPC_SHIFT +#undef DDR_PHY_DQSDR0_DFTRDSPC_MASK +#define DDR_PHY_DQSDR0_DFTRDSPC_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTRDSPC_SHIFT 20 +#define DDR_PHY_DQSDR0_DFTRDSPC_MASK 0x00300000U + +/* +* Drift Back-to-Back Reads +*/ +#undef DDR_PHY_DQSDR0_DFTB2BRD_DEFVAL +#undef DDR_PHY_DQSDR0_DFTB2BRD_SHIFT +#undef DDR_PHY_DQSDR0_DFTB2BRD_MASK +#define DDR_PHY_DQSDR0_DFTB2BRD_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTB2BRD_SHIFT 16 +#define DDR_PHY_DQSDR0_DFTB2BRD_MASK 0x000F0000U + +/* +* Drift Idle Reads +*/ +#undef DDR_PHY_DQSDR0_DFTIDLRD_DEFVAL +#undef DDR_PHY_DQSDR0_DFTIDLRD_SHIFT +#undef DDR_PHY_DQSDR0_DFTIDLRD_MASK +#define DDR_PHY_DQSDR0_DFTIDLRD_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTIDLRD_SHIFT 12 +#define DDR_PHY_DQSDR0_DFTIDLRD_MASK 0x0000F000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DQSDR0_RESERVED_11_8_DEFVAL +#undef DDR_PHY_DQSDR0_RESERVED_11_8_SHIFT +#undef DDR_PHY_DQSDR0_RESERVED_11_8_MASK +#define DDR_PHY_DQSDR0_RESERVED_11_8_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_RESERVED_11_8_SHIFT 8 +#define DDR_PHY_DQSDR0_RESERVED_11_8_MASK 0x00000F00U + +/* +* Gate Pulse Enable +*/ +#undef DDR_PHY_DQSDR0_DFTGPULSE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTGPULSE_SHIFT +#undef DDR_PHY_DQSDR0_DFTGPULSE_MASK +#define DDR_PHY_DQSDR0_DFTGPULSE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTGPULSE_SHIFT 4 +#define DDR_PHY_DQSDR0_DFTGPULSE_MASK 0x000000F0U + +/* +* DQS Drift Update Mode +*/ +#undef DDR_PHY_DQSDR0_DFTUPMODE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTUPMODE_SHIFT +#undef DDR_PHY_DQSDR0_DFTUPMODE_MASK +#define DDR_PHY_DQSDR0_DFTUPMODE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTUPMODE_SHIFT 2 +#define DDR_PHY_DQSDR0_DFTUPMODE_MASK 0x0000000CU + +/* +* DQS Drift Detection Mode +*/ +#undef DDR_PHY_DQSDR0_DFTDTMODE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDTMODE_SHIFT +#undef DDR_PHY_DQSDR0_DFTDTMODE_MASK +#define DDR_PHY_DQSDR0_DFTDTMODE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDTMODE_SHIFT 1 +#define DDR_PHY_DQSDR0_DFTDTMODE_MASK 0x00000002U + +/* +* DQS Drift Detection Enable +*/ +#undef DDR_PHY_DQSDR0_DFTDTEN_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDTEN_SHIFT +#undef DDR_PHY_DQSDR0_DFTDTEN_MASK +#define DDR_PHY_DQSDR0_DFTDTEN_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDTEN_SHIFT 0 +#define DDR_PHY_DQSDR0_DFTDTEN_MASK 0x00000001U + +/* +* LFSR seed for pseudo-random BIST patterns +*/ #undef DDR_PHY_BISTLSR_SEED_DEFVAL #undef DDR_PHY_BISTLSR_SEED_SHIFT #undef DDR_PHY_BISTLSR_SEED_MASK -#define DDR_PHY_BISTLSR_SEED_DEFVAL -#define DDR_PHY_BISTLSR_SEED_SHIFT 0 -#define DDR_PHY_BISTLSR_SEED_MASK 0xFFFFFFFFU +#define DDR_PHY_BISTLSR_SEED_DEFVAL +#define DDR_PHY_BISTLSR_SEED_SHIFT 0 +#define DDR_PHY_BISTLSR_SEED_MASK 0xFFFFFFFFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL #undef DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT #undef DDR_PHY_RIOCR5_RESERVED_31_16_MASK -#define DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_RIOCR5_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_RIOCR5_RESERVED_31_16_MASK 0xFFFF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT 4 -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK 0x0000FFF0U +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT 4 +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK 0x0000FFF0U -/*SDRAM On-die Termination Output Enable (OE) Mode Selection.*/ +/* +* SDRAM On-die Termination Output Enable (OE) Mode Selection. +*/ #undef DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL #undef DDR_PHY_RIOCR5_ODTOEMODE_SHIFT #undef DDR_PHY_RIOCR5_ODTOEMODE_MASK -#define DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_ODTOEMODE_SHIFT 0 -#define DDR_PHY_RIOCR5_ODTOEMODE_MASK 0x0000000FU +#define DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_ODTOEMODE_SHIFT 0 +#define DDR_PHY_RIOCR5_ODTOEMODE_MASK 0x0000000FU -/*Address/Command Slew Rate (D3F I/O Only)*/ +/* +* Address/Command Slew Rate (D3F I/O Only) +*/ #undef DDR_PHY_ACIOCR0_ACSR_DEFVAL #undef DDR_PHY_ACIOCR0_ACSR_SHIFT #undef DDR_PHY_ACIOCR0_ACSR_MASK -#define DDR_PHY_ACIOCR0_ACSR_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACSR_SHIFT 30 -#define DDR_PHY_ACIOCR0_ACSR_MASK 0xC0000000U +#define DDR_PHY_ACIOCR0_ACSR_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACSR_SHIFT 30 +#define DDR_PHY_ACIOCR0_ACSR_MASK 0xC0000000U -/*SDRAM Reset I/O Mode*/ +/* +* SDRAM Reset I/O Mode +*/ #undef DDR_PHY_ACIOCR0_RSTIOM_DEFVAL #undef DDR_PHY_ACIOCR0_RSTIOM_SHIFT #undef DDR_PHY_ACIOCR0_RSTIOM_MASK -#define DDR_PHY_ACIOCR0_RSTIOM_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTIOM_SHIFT 29 -#define DDR_PHY_ACIOCR0_RSTIOM_MASK 0x20000000U +#define DDR_PHY_ACIOCR0_RSTIOM_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTIOM_SHIFT 29 +#define DDR_PHY_ACIOCR0_RSTIOM_MASK 0x20000000U -/*SDRAM Reset Power Down Receiver*/ +/* +* SDRAM Reset Power Down Receiver +*/ #undef DDR_PHY_ACIOCR0_RSTPDR_DEFVAL #undef DDR_PHY_ACIOCR0_RSTPDR_SHIFT #undef DDR_PHY_ACIOCR0_RSTPDR_MASK -#define DDR_PHY_ACIOCR0_RSTPDR_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTPDR_SHIFT 28 -#define DDR_PHY_ACIOCR0_RSTPDR_MASK 0x10000000U +#define DDR_PHY_ACIOCR0_RSTPDR_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTPDR_SHIFT 28 +#define DDR_PHY_ACIOCR0_RSTPDR_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_27_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_27_MASK -#define DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_27_SHIFT 27 -#define DDR_PHY_ACIOCR0_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_27_SHIFT 27 +#define DDR_PHY_ACIOCR0_RESERVED_27_MASK 0x08000000U -/*SDRAM Reset On-Die Termination*/ +/* +* SDRAM Reset On-Die Termination +*/ #undef DDR_PHY_ACIOCR0_RSTODT_DEFVAL #undef DDR_PHY_ACIOCR0_RSTODT_SHIFT #undef DDR_PHY_ACIOCR0_RSTODT_MASK -#define DDR_PHY_ACIOCR0_RSTODT_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTODT_SHIFT 26 -#define DDR_PHY_ACIOCR0_RSTODT_MASK 0x04000000U +#define DDR_PHY_ACIOCR0_RSTODT_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTODT_SHIFT 26 +#define DDR_PHY_ACIOCR0_RSTODT_MASK 0x04000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_25_10_MASK -#define DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT 10 -#define DDR_PHY_ACIOCR0_RESERVED_25_10_MASK 0x03FFFC00U +#define DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT 10 +#define DDR_PHY_ACIOCR0_RESERVED_25_10_MASK 0x03FFFC00U -/*CK Duty Cycle Correction*/ +/* +* CK Duty Cycle Correction +*/ #undef DDR_PHY_ACIOCR0_CKDCC_DEFVAL #undef DDR_PHY_ACIOCR0_CKDCC_SHIFT #undef DDR_PHY_ACIOCR0_CKDCC_MASK -#define DDR_PHY_ACIOCR0_CKDCC_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_CKDCC_SHIFT 6 -#define DDR_PHY_ACIOCR0_CKDCC_MASK 0x000003C0U +#define DDR_PHY_ACIOCR0_CKDCC_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_CKDCC_SHIFT 6 +#define DDR_PHY_ACIOCR0_CKDCC_MASK 0x000003C0U -/*AC Power Down Receiver Mode*/ +/* +* AC Power Down Receiver Mode +*/ #undef DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL #undef DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT #undef DDR_PHY_ACIOCR0_ACPDRMODE_MASK -#define DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT 4 -#define DDR_PHY_ACIOCR0_ACPDRMODE_MASK 0x00000030U +#define DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT 4 +#define DDR_PHY_ACIOCR0_ACPDRMODE_MASK 0x00000030U -/*AC On-die Termination Mode*/ +/* +* AC On-die Termination Mode +*/ #undef DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL #undef DDR_PHY_ACIOCR0_ACODTMODE_SHIFT #undef DDR_PHY_ACIOCR0_ACODTMODE_MASK -#define DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACODTMODE_SHIFT 2 -#define DDR_PHY_ACIOCR0_ACODTMODE_MASK 0x0000000CU +#define DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACODTMODE_SHIFT 2 +#define DDR_PHY_ACIOCR0_ACODTMODE_MASK 0x0000000CU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_1_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_1_MASK -#define DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_1_SHIFT 1 -#define DDR_PHY_ACIOCR0_RESERVED_1_MASK 0x00000002U +#define DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_1_SHIFT 1 +#define DDR_PHY_ACIOCR0_RESERVED_1_MASK 0x00000002U -/*Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices.*/ +/* +* Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. +*/ #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT 0 -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK 0x00000001U +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT 0 +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK 0x00000001U -/*Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL slice*/ +/* +* Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL + * slice +*/ #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT 31 -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK 0x80000000U +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT 31 +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK 0x80000000U -/*Clock gating for Output Enable D slices [0]*/ +/* +* Clock gating for Output Enable D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT 30 -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK 0x40000000U +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT 30 +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK 0x40000000U -/*Clock gating for Power Down Receiver D slices [0]*/ +/* +* Clock gating for Power Down Receiver D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT 29 -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK 0x20000000U +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT 29 +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK 0x20000000U -/*Clock gating for Termination Enable D slices [0]*/ +/* +* Clock gating for Termination Enable D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT 28 -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK 0x10000000U +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT 28 +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK 0x10000000U -/*Clock gating for CK# D slices [1:0]*/ +/* +* Clock gating for CK# D slices [1:0] +*/ #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT 26 -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK 0x0C000000U +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT 26 +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK 0x0C000000U -/*Clock gating for CK D slices [1:0]*/ +/* +* Clock gating for CK D slices [1:0] +*/ #undef DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_CKCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT 24 -#define DDR_PHY_ACIOCR2_CKCLKGATE0_MASK 0x03000000U +#define DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT 24 +#define DDR_PHY_ACIOCR2_CKCLKGATE0_MASK 0x03000000U -/*Clock gating for AC D slices [23:0]*/ +/* +* Clock gating for AC D slices [23:0] +*/ #undef DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT 0 -#define DDR_PHY_ACIOCR2_ACCLKGATE0_MASK 0x00FFFFFFU +#define DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT 0 +#define DDR_PHY_ACIOCR2_ACCLKGATE0_MASK 0x00FFFFFFU -/*SDRAM Parity Output Enable (OE) Mode Selection*/ +/* +* SDRAM Parity Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_PAROEMODE_SHIFT #undef DDR_PHY_ACIOCR3_PAROEMODE_MASK -#define DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_PAROEMODE_SHIFT 30 -#define DDR_PHY_ACIOCR3_PAROEMODE_MASK 0xC0000000U +#define DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_PAROEMODE_SHIFT 30 +#define DDR_PHY_ACIOCR3_PAROEMODE_MASK 0xC0000000U -/*SDRAM Bank Group Output Enable (OE) Mode Selection*/ +/* +* SDRAM Bank Group Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_BGOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_BGOEMODE_MASK -#define DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_BGOEMODE_SHIFT 26 -#define DDR_PHY_ACIOCR3_BGOEMODE_MASK 0x3C000000U +#define DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_BGOEMODE_SHIFT 26 +#define DDR_PHY_ACIOCR3_BGOEMODE_MASK 0x3C000000U -/*SDRAM Bank Address Output Enable (OE) Mode Selection*/ +/* +* SDRAM Bank Address Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_BAOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_BAOEMODE_MASK -#define DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_BAOEMODE_SHIFT 22 -#define DDR_PHY_ACIOCR3_BAOEMODE_MASK 0x03C00000U +#define DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_BAOEMODE_SHIFT 22 +#define DDR_PHY_ACIOCR3_BAOEMODE_MASK 0x03C00000U -/*SDRAM A[17] Output Enable (OE) Mode Selection*/ +/* +* SDRAM A[17] Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_A17OEMODE_SHIFT #undef DDR_PHY_ACIOCR3_A17OEMODE_MASK -#define DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_A17OEMODE_SHIFT 20 -#define DDR_PHY_ACIOCR3_A17OEMODE_MASK 0x00300000U +#define DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_A17OEMODE_SHIFT 20 +#define DDR_PHY_ACIOCR3_A17OEMODE_MASK 0x00300000U -/*SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection*/ +/* +* SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_A16OEMODE_SHIFT #undef DDR_PHY_ACIOCR3_A16OEMODE_MASK -#define DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_A16OEMODE_SHIFT 18 -#define DDR_PHY_ACIOCR3_A16OEMODE_MASK 0x000C0000U +#define DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_A16OEMODE_SHIFT 18 +#define DDR_PHY_ACIOCR3_A16OEMODE_MASK 0x000C0000U -/*SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only)*/ +/* +* SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) +*/ #undef DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_ACTOEMODE_MASK -#define DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT 16 -#define DDR_PHY_ACIOCR3_ACTOEMODE_MASK 0x00030000U +#define DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT 16 +#define DDR_PHY_ACIOCR3_ACTOEMODE_MASK 0x00030000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL #undef DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT #undef DDR_PHY_ACIOCR3_RESERVED_15_8_MASK -#define DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT 8 -#define DDR_PHY_ACIOCR3_RESERVED_15_8_MASK 0x0000FF00U +#define DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT 8 +#define DDR_PHY_ACIOCR3_RESERVED_15_8_MASK 0x0000FF00U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT 4 -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK 0x000000F0U +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT 4 +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK 0x000000F0U -/*SDRAM CK Output Enable (OE) Mode Selection.*/ +/* +* SDRAM CK Output Enable (OE) Mode Selection. +*/ #undef DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_CKOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_CKOEMODE_MASK -#define DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_CKOEMODE_SHIFT 0 -#define DDR_PHY_ACIOCR3_CKOEMODE_MASK 0x0000000FU +#define DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_CKOEMODE_SHIFT 0 +#define DDR_PHY_ACIOCR3_CKOEMODE_MASK 0x0000000FU -/*Clock gating for AC LB slices and loopback read valid slices*/ +/* +* Clock gating for AC LB slices and loopback read valid slices +*/ #undef DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL #undef DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT #undef DDR_PHY_ACIOCR4_LBCLKGATE_MASK -#define DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT 31 -#define DDR_PHY_ACIOCR4_LBCLKGATE_MASK 0x80000000U +#define DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT 31 +#define DDR_PHY_ACIOCR4_LBCLKGATE_MASK 0x80000000U -/*Clock gating for Output Enable D slices [1]*/ +/* +* Clock gating for Output Enable D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT 30 -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK 0x40000000U +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT 30 +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK 0x40000000U -/*Clock gating for Power Down Receiver D slices [1]*/ +/* +* Clock gating for Power Down Receiver D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT 29 -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK 0x20000000U +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT 29 +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK 0x20000000U -/*Clock gating for Termination Enable D slices [1]*/ +/* +* Clock gating for Termination Enable D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT 28 -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK 0x10000000U +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT 28 +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK 0x10000000U -/*Clock gating for CK# D slices [3:2]*/ +/* +* Clock gating for CK# D slices [3:2] +*/ #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT 26 -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK 0x0C000000U +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT 26 +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK 0x0C000000U -/*Clock gating for CK D slices [3:2]*/ +/* +* Clock gating for CK D slices [3:2] +*/ #undef DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_CKCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT 24 -#define DDR_PHY_ACIOCR4_CKCLKGATE1_MASK 0x03000000U +#define DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT 24 +#define DDR_PHY_ACIOCR4_CKCLKGATE1_MASK 0x03000000U -/*Clock gating for AC D slices [47:24]*/ +/* +* Clock gating for AC D slices [47:24] +*/ #undef DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT 0 -#define DDR_PHY_ACIOCR4_ACCLKGATE1_MASK 0x00FFFFFFU +#define DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT 0 +#define DDR_PHY_ACIOCR4_ACCLKGATE1_MASK 0x00FFFFFFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL #undef DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT #undef DDR_PHY_IOVCR0_RESERVED_31_29_MASK -#define DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_IOVCR0_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_IOVCR0_RESERVED_31_29_MASK 0xE0000000U -/*Address/command lane VREF Pad Enable*/ +/* +* Address/command lane VREF Pad Enable +*/ #undef DDR_PHY_IOVCR0_ACREFPEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFPEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFPEN_MASK -#define DDR_PHY_IOVCR0_ACREFPEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFPEN_SHIFT 28 -#define DDR_PHY_IOVCR0_ACREFPEN_MASK 0x10000000U +#define DDR_PHY_IOVCR0_ACREFPEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFPEN_SHIFT 28 +#define DDR_PHY_IOVCR0_ACREFPEN_MASK 0x10000000U -/*Address/command lane Internal VREF Enable*/ +/* +* Address/command lane Internal VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFEEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFEEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFEEN_MASK -#define DDR_PHY_IOVCR0_ACREFEEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFEEN_SHIFT 26 -#define DDR_PHY_IOVCR0_ACREFEEN_MASK 0x0C000000U +#define DDR_PHY_IOVCR0_ACREFEEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFEEN_SHIFT 26 +#define DDR_PHY_IOVCR0_ACREFEEN_MASK 0x0C000000U -/*Address/command lane Single-End VREF Enable*/ +/* +* Address/command lane Single-End VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFSEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFSEN_MASK -#define DDR_PHY_IOVCR0_ACREFSEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSEN_SHIFT 25 -#define DDR_PHY_IOVCR0_ACREFSEN_MASK 0x02000000U +#define DDR_PHY_IOVCR0_ACREFSEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSEN_SHIFT 25 +#define DDR_PHY_IOVCR0_ACREFSEN_MASK 0x02000000U -/*Address/command lane Internal VREF Enable*/ +/* +* Address/command lane Internal VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFIEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFIEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFIEN_MASK -#define DDR_PHY_IOVCR0_ACREFIEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFIEN_SHIFT 24 -#define DDR_PHY_IOVCR0_ACREFIEN_MASK 0x01000000U +#define DDR_PHY_IOVCR0_ACREFIEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFIEN_SHIFT 24 +#define DDR_PHY_IOVCR0_ACREFIEN_MASK 0x01000000U -/*External VREF generato REFSEL range select*/ +/* +* External VREF generato REFSEL range select +*/ #undef DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACREFESELRANGE_MASK -#define DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT 23 -#define DDR_PHY_IOVCR0_ACREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT 23 +#define DDR_PHY_IOVCR0_ACREFESELRANGE_MASK 0x00800000U -/*Address/command lane External VREF Select*/ +/* +* Address/command lane External VREF Select +*/ #undef DDR_PHY_IOVCR0_ACREFESEL_DEFVAL #undef DDR_PHY_IOVCR0_ACREFESEL_SHIFT #undef DDR_PHY_IOVCR0_ACREFESEL_MASK -#define DDR_PHY_IOVCR0_ACREFESEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFESEL_SHIFT 16 -#define DDR_PHY_IOVCR0_ACREFESEL_MASK 0x007F0000U +#define DDR_PHY_IOVCR0_ACREFESEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFESEL_SHIFT 16 +#define DDR_PHY_IOVCR0_ACREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT 15 -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT 15 +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK 0x00008000U -/*Address/command lane Single-End VREF Select*/ +/* +* Address/command lane Single-End VREF Select +*/ #undef DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSSEL_SHIFT #undef DDR_PHY_IOVCR0_ACREFSSEL_MASK -#define DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSSEL_SHIFT 8 -#define DDR_PHY_IOVCR0_ACREFSSEL_MASK 0x00007F00U +#define DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSSEL_SHIFT 8 +#define DDR_PHY_IOVCR0_ACREFSSEL_MASK 0x00007F00U -/*Internal VREF generator REFSEL ragne select*/ +/* +* Internal VREF generator REFSEL ragne select +*/ #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT 7 -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK 0x00000080U +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT 7 +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK 0x00000080U -/*REFSEL Control for internal AC IOs*/ +/* +* REFSEL Control for internal AC IOs +*/ #undef DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL #undef DDR_PHY_IOVCR0_ACVREFISEL_SHIFT #undef DDR_PHY_IOVCR0_ACVREFISEL_MASK -#define DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACVREFISEL_SHIFT 0 -#define DDR_PHY_IOVCR0_ACVREFISEL_MASK 0x0000007FU +#define DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACVREFISEL_SHIFT 0 +#define DDR_PHY_IOVCR0_ACVREFISEL_MASK 0x0000007FU -/*Number of ctl_clk required to meet (> 150ns) timing requirements during DRAM DQ VREF training*/ +/* +* Number of ctl_clk required to meet (> 150ns) timing requirements during + * DRAM DQ VREF training +*/ #undef DDR_PHY_VTCR0_TVREF_DEFVAL #undef DDR_PHY_VTCR0_TVREF_SHIFT #undef DDR_PHY_VTCR0_TVREF_MASK -#define DDR_PHY_VTCR0_TVREF_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_TVREF_SHIFT 29 -#define DDR_PHY_VTCR0_TVREF_MASK 0xE0000000U +#define DDR_PHY_VTCR0_TVREF_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_TVREF_SHIFT 29 +#define DDR_PHY_VTCR0_TVREF_MASK 0xE0000000U -/*DRM DQ VREF training Enable*/ +/* +* DRM DQ VREF training Enable +*/ #undef DDR_PHY_VTCR0_DVEN_DEFVAL #undef DDR_PHY_VTCR0_DVEN_SHIFT #undef DDR_PHY_VTCR0_DVEN_MASK -#define DDR_PHY_VTCR0_DVEN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVEN_SHIFT 28 -#define DDR_PHY_VTCR0_DVEN_MASK 0x10000000U +#define DDR_PHY_VTCR0_DVEN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVEN_SHIFT 28 +#define DDR_PHY_VTCR0_DVEN_MASK 0x10000000U -/*Per Device Addressability Enable*/ +/* +* Per Device Addressability Enable +*/ #undef DDR_PHY_VTCR0_PDAEN_DEFVAL #undef DDR_PHY_VTCR0_PDAEN_SHIFT #undef DDR_PHY_VTCR0_PDAEN_MASK -#define DDR_PHY_VTCR0_PDAEN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_PDAEN_SHIFT 27 -#define DDR_PHY_VTCR0_PDAEN_MASK 0x08000000U +#define DDR_PHY_VTCR0_PDAEN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_PDAEN_SHIFT 27 +#define DDR_PHY_VTCR0_PDAEN_MASK 0x08000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR0_RESERVED_26_DEFVAL #undef DDR_PHY_VTCR0_RESERVED_26_SHIFT #undef DDR_PHY_VTCR0_RESERVED_26_MASK -#define DDR_PHY_VTCR0_RESERVED_26_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_RESERVED_26_SHIFT 26 -#define DDR_PHY_VTCR0_RESERVED_26_MASK 0x04000000U +#define DDR_PHY_VTCR0_RESERVED_26_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_RESERVED_26_SHIFT 26 +#define DDR_PHY_VTCR0_RESERVED_26_MASK 0x04000000U -/*VREF Word Count*/ +/* +* VREF Word Count +*/ #undef DDR_PHY_VTCR0_VWCR_DEFVAL #undef DDR_PHY_VTCR0_VWCR_SHIFT #undef DDR_PHY_VTCR0_VWCR_MASK -#define DDR_PHY_VTCR0_VWCR_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_VWCR_SHIFT 22 -#define DDR_PHY_VTCR0_VWCR_MASK 0x03C00000U +#define DDR_PHY_VTCR0_VWCR_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_VWCR_SHIFT 22 +#define DDR_PHY_VTCR0_VWCR_MASK 0x03C00000U -/*DRAM DQ VREF step size used during DRAM VREF training*/ +/* +* DRAM DQ VREF step size used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVSS_DEFVAL #undef DDR_PHY_VTCR0_DVSS_SHIFT #undef DDR_PHY_VTCR0_DVSS_MASK -#define DDR_PHY_VTCR0_DVSS_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVSS_SHIFT 18 -#define DDR_PHY_VTCR0_DVSS_MASK 0x003C0000U +#define DDR_PHY_VTCR0_DVSS_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVSS_SHIFT 18 +#define DDR_PHY_VTCR0_DVSS_MASK 0x003C0000U -/*Maximum VREF limit value used during DRAM VREF training*/ +/* +* Maximum VREF limit value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVMAX_DEFVAL #undef DDR_PHY_VTCR0_DVMAX_SHIFT #undef DDR_PHY_VTCR0_DVMAX_MASK -#define DDR_PHY_VTCR0_DVMAX_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVMAX_SHIFT 12 -#define DDR_PHY_VTCR0_DVMAX_MASK 0x0003F000U +#define DDR_PHY_VTCR0_DVMAX_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVMAX_SHIFT 12 +#define DDR_PHY_VTCR0_DVMAX_MASK 0x0003F000U -/*Minimum VREF limit value used during DRAM VREF training*/ +/* +* Minimum VREF limit value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVMIN_DEFVAL #undef DDR_PHY_VTCR0_DVMIN_SHIFT #undef DDR_PHY_VTCR0_DVMIN_MASK -#define DDR_PHY_VTCR0_DVMIN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVMIN_SHIFT 6 -#define DDR_PHY_VTCR0_DVMIN_MASK 0x00000FC0U +#define DDR_PHY_VTCR0_DVMIN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVMIN_SHIFT 6 +#define DDR_PHY_VTCR0_DVMIN_MASK 0x00000FC0U -/*Initial DRAM DQ VREF value used during DRAM VREF training*/ +/* +* Initial DRAM DQ VREF value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVINIT_DEFVAL #undef DDR_PHY_VTCR0_DVINIT_SHIFT #undef DDR_PHY_VTCR0_DVINIT_MASK -#define DDR_PHY_VTCR0_DVINIT_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVINIT_SHIFT 0 -#define DDR_PHY_VTCR0_DVINIT_MASK 0x0000003FU +#define DDR_PHY_VTCR0_DVINIT_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVINIT_SHIFT 0 +#define DDR_PHY_VTCR0_DVINIT_MASK 0x0000003FU -/*Host VREF step size used during VREF training. The register value of N indicates step size of (N+1)*/ +/* +* Host VREF step size used during VREF training. The register value of N i + * ndicates step size of (N+1) +*/ #undef DDR_PHY_VTCR1_HVSS_DEFVAL #undef DDR_PHY_VTCR1_HVSS_SHIFT #undef DDR_PHY_VTCR1_HVSS_MASK -#define DDR_PHY_VTCR1_HVSS_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVSS_SHIFT 28 -#define DDR_PHY_VTCR1_HVSS_MASK 0xF0000000U +#define DDR_PHY_VTCR1_HVSS_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVSS_SHIFT 28 +#define DDR_PHY_VTCR1_HVSS_MASK 0xF0000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_27_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_27_SHIFT #undef DDR_PHY_VTCR1_RESERVED_27_MASK -#define DDR_PHY_VTCR1_RESERVED_27_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_27_SHIFT 27 -#define DDR_PHY_VTCR1_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_VTCR1_RESERVED_27_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_27_SHIFT 27 +#define DDR_PHY_VTCR1_RESERVED_27_MASK 0x08000000U -/*Maximum VREF limit value used during DRAM VREF training.*/ +/* +* Maximum VREF limit value used during DRAM VREF training. +*/ #undef DDR_PHY_VTCR1_HVMAX_DEFVAL #undef DDR_PHY_VTCR1_HVMAX_SHIFT #undef DDR_PHY_VTCR1_HVMAX_MASK -#define DDR_PHY_VTCR1_HVMAX_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVMAX_SHIFT 20 -#define DDR_PHY_VTCR1_HVMAX_MASK 0x07F00000U +#define DDR_PHY_VTCR1_HVMAX_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVMAX_SHIFT 20 +#define DDR_PHY_VTCR1_HVMAX_MASK 0x07F00000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_19_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_19_SHIFT #undef DDR_PHY_VTCR1_RESERVED_19_MASK -#define DDR_PHY_VTCR1_RESERVED_19_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_19_SHIFT 19 -#define DDR_PHY_VTCR1_RESERVED_19_MASK 0x00080000U +#define DDR_PHY_VTCR1_RESERVED_19_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_19_SHIFT 19 +#define DDR_PHY_VTCR1_RESERVED_19_MASK 0x00080000U -/*Minimum VREF limit value used during DRAM VREF training.*/ +/* +* Minimum VREF limit value used during DRAM VREF training. +*/ #undef DDR_PHY_VTCR1_HVMIN_DEFVAL #undef DDR_PHY_VTCR1_HVMIN_SHIFT #undef DDR_PHY_VTCR1_HVMIN_MASK -#define DDR_PHY_VTCR1_HVMIN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVMIN_SHIFT 12 -#define DDR_PHY_VTCR1_HVMIN_MASK 0x0007F000U +#define DDR_PHY_VTCR1_HVMIN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVMIN_SHIFT 12 +#define DDR_PHY_VTCR1_HVMIN_MASK 0x0007F000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_11_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_11_SHIFT #undef DDR_PHY_VTCR1_RESERVED_11_MASK -#define DDR_PHY_VTCR1_RESERVED_11_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_11_SHIFT 11 -#define DDR_PHY_VTCR1_RESERVED_11_MASK 0x00000800U +#define DDR_PHY_VTCR1_RESERVED_11_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_11_SHIFT 11 +#define DDR_PHY_VTCR1_RESERVED_11_MASK 0x00000800U -/*Static Host Vref Rank Value*/ +/* +* Static Host Vref Rank Value +*/ #undef DDR_PHY_VTCR1_SHRNK_DEFVAL #undef DDR_PHY_VTCR1_SHRNK_SHIFT #undef DDR_PHY_VTCR1_SHRNK_MASK -#define DDR_PHY_VTCR1_SHRNK_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_SHRNK_SHIFT 9 -#define DDR_PHY_VTCR1_SHRNK_MASK 0x00000600U +#define DDR_PHY_VTCR1_SHRNK_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_SHRNK_SHIFT 9 +#define DDR_PHY_VTCR1_SHRNK_MASK 0x00000600U -/*Static Host Vref Rank Enable*/ +/* +* Static Host Vref Rank Enable +*/ #undef DDR_PHY_VTCR1_SHREN_DEFVAL #undef DDR_PHY_VTCR1_SHREN_SHIFT #undef DDR_PHY_VTCR1_SHREN_MASK -#define DDR_PHY_VTCR1_SHREN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_SHREN_SHIFT 8 -#define DDR_PHY_VTCR1_SHREN_MASK 0x00000100U +#define DDR_PHY_VTCR1_SHREN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_SHREN_SHIFT 8 +#define DDR_PHY_VTCR1_SHREN_MASK 0x00000100U -/*Number of ctl_clk required to meet (> 200ns) VREF Settling timing requirements during Host IO VREF training*/ +/* +* Number of ctl_clk required to meet (> 200ns) VREF Settling timing requir + * ements during Host IO VREF training +*/ #undef DDR_PHY_VTCR1_TVREFIO_DEFVAL #undef DDR_PHY_VTCR1_TVREFIO_SHIFT #undef DDR_PHY_VTCR1_TVREFIO_MASK -#define DDR_PHY_VTCR1_TVREFIO_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_TVREFIO_SHIFT 5 -#define DDR_PHY_VTCR1_TVREFIO_MASK 0x000000E0U +#define DDR_PHY_VTCR1_TVREFIO_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_TVREFIO_SHIFT 5 +#define DDR_PHY_VTCR1_TVREFIO_MASK 0x000000E0U -/*Eye LCDL Offset value for VREF training*/ +/* +* Eye LCDL Offset value for VREF training +*/ #undef DDR_PHY_VTCR1_EOFF_DEFVAL #undef DDR_PHY_VTCR1_EOFF_SHIFT #undef DDR_PHY_VTCR1_EOFF_MASK -#define DDR_PHY_VTCR1_EOFF_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_EOFF_SHIFT 3 -#define DDR_PHY_VTCR1_EOFF_MASK 0x00000018U +#define DDR_PHY_VTCR1_EOFF_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_EOFF_SHIFT 3 +#define DDR_PHY_VTCR1_EOFF_MASK 0x00000018U -/*Number of LCDL Eye points for which VREF training is repeated*/ +/* +* Number of LCDL Eye points for which VREF training is repeated +*/ #undef DDR_PHY_VTCR1_ENUM_DEFVAL #undef DDR_PHY_VTCR1_ENUM_SHIFT #undef DDR_PHY_VTCR1_ENUM_MASK -#define DDR_PHY_VTCR1_ENUM_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_ENUM_SHIFT 2 -#define DDR_PHY_VTCR1_ENUM_MASK 0x00000004U +#define DDR_PHY_VTCR1_ENUM_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_ENUM_SHIFT 2 +#define DDR_PHY_VTCR1_ENUM_MASK 0x00000004U -/*HOST (IO) internal VREF training Enable*/ +/* +* HOST (IO) internal VREF training Enable +*/ #undef DDR_PHY_VTCR1_HVEN_DEFVAL #undef DDR_PHY_VTCR1_HVEN_SHIFT #undef DDR_PHY_VTCR1_HVEN_MASK -#define DDR_PHY_VTCR1_HVEN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVEN_SHIFT 1 -#define DDR_PHY_VTCR1_HVEN_MASK 0x00000002U +#define DDR_PHY_VTCR1_HVEN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVEN_SHIFT 1 +#define DDR_PHY_VTCR1_HVEN_MASK 0x00000002U -/*Host IO Type Control*/ +/* +* Host IO Type Control +*/ #undef DDR_PHY_VTCR1_HVIO_DEFVAL #undef DDR_PHY_VTCR1_HVIO_SHIFT #undef DDR_PHY_VTCR1_HVIO_MASK -#define DDR_PHY_VTCR1_HVIO_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVIO_SHIFT 0 -#define DDR_PHY_VTCR1_HVIO_MASK 0x00000001U +#define DDR_PHY_VTCR1_HVIO_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVIO_SHIFT 0 +#define DDR_PHY_VTCR1_HVIO_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR1_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR1_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Parity.*/ +/* +* Delay select for the BDL on Parity. +*/ #undef DDR_PHY_ACBDLR1_PARBD_DEFVAL #undef DDR_PHY_ACBDLR1_PARBD_SHIFT #undef DDR_PHY_ACBDLR1_PARBD_MASK -#define DDR_PHY_ACBDLR1_PARBD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_PARBD_SHIFT 24 -#define DDR_PHY_ACBDLR1_PARBD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR1_PARBD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_PARBD_SHIFT 24 +#define DDR_PHY_ACBDLR1_PARBD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR1_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR1_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[16]. In DDR3 mode this pin is connected to WE.*/ +/* +* Delay select for the BDL on Address A[16]. In DDR3 mode this pin is conn + * ected to WE. +*/ #undef DDR_PHY_ACBDLR1_A16BD_DEFVAL #undef DDR_PHY_ACBDLR1_A16BD_SHIFT #undef DDR_PHY_ACBDLR1_A16BD_MASK -#define DDR_PHY_ACBDLR1_A16BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_A16BD_SHIFT 16 -#define DDR_PHY_ACBDLR1_A16BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR1_A16BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_A16BD_SHIFT 16 +#define DDR_PHY_ACBDLR1_A16BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR1_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[17]. When not in DDR4 modemode this pin is connected to CAS.*/ +/* +* Delay select for the BDL on Address A[17]. When not in DDR4 modemode thi + * s pin is connected to CAS. +*/ #undef DDR_PHY_ACBDLR1_A17BD_DEFVAL #undef DDR_PHY_ACBDLR1_A17BD_SHIFT #undef DDR_PHY_ACBDLR1_A17BD_MASK -#define DDR_PHY_ACBDLR1_A17BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_A17BD_SHIFT 8 -#define DDR_PHY_ACBDLR1_A17BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR1_A17BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_A17BD_SHIFT 8 +#define DDR_PHY_ACBDLR1_A17BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR1_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR1_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on ACTN.*/ +/* +* Delay select for the BDL on ACTN. +*/ #undef DDR_PHY_ACBDLR1_ACTBD_DEFVAL #undef DDR_PHY_ACBDLR1_ACTBD_SHIFT #undef DDR_PHY_ACBDLR1_ACTBD_MASK -#define DDR_PHY_ACBDLR1_ACTBD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_ACTBD_SHIFT 0 -#define DDR_PHY_ACBDLR1_ACTBD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR1_ACTBD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_ACTBD_SHIFT 0 +#define DDR_PHY_ACBDLR1_ACTBD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR2_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR2_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on BG[1].*/ +/* +* Delay select for the BDL on BG[1]. +*/ #undef DDR_PHY_ACBDLR2_BG1BD_DEFVAL #undef DDR_PHY_ACBDLR2_BG1BD_SHIFT #undef DDR_PHY_ACBDLR2_BG1BD_MASK -#define DDR_PHY_ACBDLR2_BG1BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BG1BD_SHIFT 24 -#define DDR_PHY_ACBDLR2_BG1BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR2_BG1BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BG1BD_SHIFT 24 +#define DDR_PHY_ACBDLR2_BG1BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR2_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR2_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on BG[0].*/ +/* +* Delay select for the BDL on BG[0]. +*/ #undef DDR_PHY_ACBDLR2_BG0BD_DEFVAL #undef DDR_PHY_ACBDLR2_BG0BD_SHIFT #undef DDR_PHY_ACBDLR2_BG0BD_MASK -#define DDR_PHY_ACBDLR2_BG0BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BG0BD_SHIFT 16 -#define DDR_PHY_ACBDLR2_BG0BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR2_BG0BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BG0BD_SHIFT 16 +#define DDR_PHY_ACBDLR2_BG0BD_MASK 0x003F0000U -/*Reser.ved Return zeroes on reads.*/ +/* +* Reser.ved Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR2_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR2_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on BA[1].*/ +/* +* Delay select for the BDL on BA[1]. +*/ #undef DDR_PHY_ACBDLR2_BA1BD_DEFVAL #undef DDR_PHY_ACBDLR2_BA1BD_SHIFT #undef DDR_PHY_ACBDLR2_BA1BD_MASK -#define DDR_PHY_ACBDLR2_BA1BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BA1BD_SHIFT 8 -#define DDR_PHY_ACBDLR2_BA1BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR2_BA1BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BA1BD_SHIFT 8 +#define DDR_PHY_ACBDLR2_BA1BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR2_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR2_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on BA[0].*/ +/* +* Delay select for the BDL on BA[0]. +*/ #undef DDR_PHY_ACBDLR2_BA0BD_DEFVAL #undef DDR_PHY_ACBDLR2_BA0BD_SHIFT #undef DDR_PHY_ACBDLR2_BA0BD_MASK -#define DDR_PHY_ACBDLR2_BA0BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BA0BD_SHIFT 0 -#define DDR_PHY_ACBDLR2_BA0BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR2_BA0BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BA0BD_SHIFT 0 +#define DDR_PHY_ACBDLR2_BA0BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR6_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[3].*/ +/* +* Delay select for the BDL on Address A[3]. +*/ #undef DDR_PHY_ACBDLR6_A03BD_DEFVAL #undef DDR_PHY_ACBDLR6_A03BD_SHIFT #undef DDR_PHY_ACBDLR6_A03BD_MASK -#define DDR_PHY_ACBDLR6_A03BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A03BD_SHIFT 24 -#define DDR_PHY_ACBDLR6_A03BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR6_A03BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A03BD_SHIFT 24 +#define DDR_PHY_ACBDLR6_A03BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR6_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[2].*/ +/* +* Delay select for the BDL on Address A[2]. +*/ #undef DDR_PHY_ACBDLR6_A02BD_DEFVAL #undef DDR_PHY_ACBDLR6_A02BD_SHIFT #undef DDR_PHY_ACBDLR6_A02BD_MASK -#define DDR_PHY_ACBDLR6_A02BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A02BD_SHIFT 16 -#define DDR_PHY_ACBDLR6_A02BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR6_A02BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A02BD_SHIFT 16 +#define DDR_PHY_ACBDLR6_A02BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR6_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[1].*/ +/* +* Delay select for the BDL on Address A[1]. +*/ #undef DDR_PHY_ACBDLR6_A01BD_DEFVAL #undef DDR_PHY_ACBDLR6_A01BD_SHIFT #undef DDR_PHY_ACBDLR6_A01BD_MASK -#define DDR_PHY_ACBDLR6_A01BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A01BD_SHIFT 8 -#define DDR_PHY_ACBDLR6_A01BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR6_A01BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A01BD_SHIFT 8 +#define DDR_PHY_ACBDLR6_A01BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR6_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[0].*/ +/* +* Delay select for the BDL on Address A[0]. +*/ #undef DDR_PHY_ACBDLR6_A00BD_DEFVAL #undef DDR_PHY_ACBDLR6_A00BD_SHIFT #undef DDR_PHY_ACBDLR6_A00BD_MASK -#define DDR_PHY_ACBDLR6_A00BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A00BD_SHIFT 0 -#define DDR_PHY_ACBDLR6_A00BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR6_A00BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A00BD_SHIFT 0 +#define DDR_PHY_ACBDLR6_A00BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR7_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR7_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[7].*/ +/* +* Delay select for the BDL on Address A[7]. +*/ #undef DDR_PHY_ACBDLR7_A07BD_DEFVAL #undef DDR_PHY_ACBDLR7_A07BD_SHIFT #undef DDR_PHY_ACBDLR7_A07BD_MASK -#define DDR_PHY_ACBDLR7_A07BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A07BD_SHIFT 24 -#define DDR_PHY_ACBDLR7_A07BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR7_A07BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A07BD_SHIFT 24 +#define DDR_PHY_ACBDLR7_A07BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR7_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR7_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[6].*/ +/* +* Delay select for the BDL on Address A[6]. +*/ #undef DDR_PHY_ACBDLR7_A06BD_DEFVAL #undef DDR_PHY_ACBDLR7_A06BD_SHIFT #undef DDR_PHY_ACBDLR7_A06BD_MASK -#define DDR_PHY_ACBDLR7_A06BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A06BD_SHIFT 16 -#define DDR_PHY_ACBDLR7_A06BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR7_A06BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A06BD_SHIFT 16 +#define DDR_PHY_ACBDLR7_A06BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR7_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR7_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[5].*/ +/* +* Delay select for the BDL on Address A[5]. +*/ #undef DDR_PHY_ACBDLR7_A05BD_DEFVAL #undef DDR_PHY_ACBDLR7_A05BD_SHIFT #undef DDR_PHY_ACBDLR7_A05BD_MASK -#define DDR_PHY_ACBDLR7_A05BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A05BD_SHIFT 8 -#define DDR_PHY_ACBDLR7_A05BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR7_A05BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A05BD_SHIFT 8 +#define DDR_PHY_ACBDLR7_A05BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR7_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR7_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[4].*/ +/* +* Delay select for the BDL on Address A[4]. +*/ #undef DDR_PHY_ACBDLR7_A04BD_DEFVAL #undef DDR_PHY_ACBDLR7_A04BD_SHIFT #undef DDR_PHY_ACBDLR7_A04BD_MASK -#define DDR_PHY_ACBDLR7_A04BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A04BD_SHIFT 0 -#define DDR_PHY_ACBDLR7_A04BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR7_A04BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A04BD_SHIFT 0 +#define DDR_PHY_ACBDLR7_A04BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR8_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR8_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[11].*/ +/* +* Delay select for the BDL on Address A[11]. +*/ #undef DDR_PHY_ACBDLR8_A11BD_DEFVAL #undef DDR_PHY_ACBDLR8_A11BD_SHIFT #undef DDR_PHY_ACBDLR8_A11BD_MASK -#define DDR_PHY_ACBDLR8_A11BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A11BD_SHIFT 24 -#define DDR_PHY_ACBDLR8_A11BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR8_A11BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A11BD_SHIFT 24 +#define DDR_PHY_ACBDLR8_A11BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR8_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR8_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[10].*/ +/* +* Delay select for the BDL on Address A[10]. +*/ #undef DDR_PHY_ACBDLR8_A10BD_DEFVAL #undef DDR_PHY_ACBDLR8_A10BD_SHIFT #undef DDR_PHY_ACBDLR8_A10BD_MASK -#define DDR_PHY_ACBDLR8_A10BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A10BD_SHIFT 16 -#define DDR_PHY_ACBDLR8_A10BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR8_A10BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A10BD_SHIFT 16 +#define DDR_PHY_ACBDLR8_A10BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR8_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR8_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[9].*/ +/* +* Delay select for the BDL on Address A[9]. +*/ #undef DDR_PHY_ACBDLR8_A09BD_DEFVAL #undef DDR_PHY_ACBDLR8_A09BD_SHIFT #undef DDR_PHY_ACBDLR8_A09BD_MASK -#define DDR_PHY_ACBDLR8_A09BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A09BD_SHIFT 8 -#define DDR_PHY_ACBDLR8_A09BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR8_A09BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A09BD_SHIFT 8 +#define DDR_PHY_ACBDLR8_A09BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR8_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR8_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[8].*/ +/* +* Delay select for the BDL on Address A[8]. +*/ #undef DDR_PHY_ACBDLR8_A08BD_DEFVAL #undef DDR_PHY_ACBDLR8_A08BD_SHIFT #undef DDR_PHY_ACBDLR8_A08BD_MASK -#define DDR_PHY_ACBDLR8_A08BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A08BD_SHIFT 0 -#define DDR_PHY_ACBDLR8_A08BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR8_A08BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A08BD_SHIFT 0 +#define DDR_PHY_ACBDLR8_A08BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR9_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR9_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[15].*/ +/* +* Delay select for the BDL on Address A[15]. +*/ #undef DDR_PHY_ACBDLR9_A15BD_DEFVAL #undef DDR_PHY_ACBDLR9_A15BD_SHIFT #undef DDR_PHY_ACBDLR9_A15BD_MASK -#define DDR_PHY_ACBDLR9_A15BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A15BD_SHIFT 24 -#define DDR_PHY_ACBDLR9_A15BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR9_A15BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A15BD_SHIFT 24 +#define DDR_PHY_ACBDLR9_A15BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR9_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR9_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[14].*/ +/* +* Delay select for the BDL on Address A[14]. +*/ #undef DDR_PHY_ACBDLR9_A14BD_DEFVAL #undef DDR_PHY_ACBDLR9_A14BD_SHIFT #undef DDR_PHY_ACBDLR9_A14BD_MASK -#define DDR_PHY_ACBDLR9_A14BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A14BD_SHIFT 16 -#define DDR_PHY_ACBDLR9_A14BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR9_A14BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A14BD_SHIFT 16 +#define DDR_PHY_ACBDLR9_A14BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR9_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR9_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[13].*/ +/* +* Delay select for the BDL on Address A[13]. +*/ #undef DDR_PHY_ACBDLR9_A13BD_DEFVAL #undef DDR_PHY_ACBDLR9_A13BD_SHIFT #undef DDR_PHY_ACBDLR9_A13BD_MASK -#define DDR_PHY_ACBDLR9_A13BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A13BD_SHIFT 8 -#define DDR_PHY_ACBDLR9_A13BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR9_A13BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A13BD_SHIFT 8 +#define DDR_PHY_ACBDLR9_A13BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR9_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR9_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[12].*/ +/* +* Delay select for the BDL on Address A[12]. +*/ #undef DDR_PHY_ACBDLR9_A12BD_DEFVAL #undef DDR_PHY_ACBDLR9_A12BD_SHIFT #undef DDR_PHY_ACBDLR9_A12BD_MASK -#define DDR_PHY_ACBDLR9_A12BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A12BD_SHIFT 0 -#define DDR_PHY_ACBDLR9_A12BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR9_A12BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A12BD_SHIFT 0 +#define DDR_PHY_ACBDLR9_A12BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQCR_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQCR_RESERVED_31_26_MASK -#define DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQCR_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQCR_RESERVED_31_26_MASK 0xFC000000U -/*ZQ VREF Range*/ +/* +* ZQ VREF Range +*/ #undef DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL #undef DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT #undef DDR_PHY_ZQCR_ZQREFISELRANGE_MASK -#define DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT 25 -#define DDR_PHY_ZQCR_ZQREFISELRANGE_MASK 0x02000000U +#define DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT 25 +#define DDR_PHY_ZQCR_ZQREFISELRANGE_MASK 0x02000000U -/*Programmable Wait for Frequency B*/ +/* +* Programmable Wait for Frequency B +*/ #undef DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL #undef DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT #undef DDR_PHY_ZQCR_PGWAIT_FRQB_MASK -#define DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT 19 -#define DDR_PHY_ZQCR_PGWAIT_FRQB_MASK 0x01F80000U +#define DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT 19 +#define DDR_PHY_ZQCR_PGWAIT_FRQB_MASK 0x01F80000U -/*Programmable Wait for Frequency A*/ +/* +* Programmable Wait for Frequency A +*/ #undef DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL #undef DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT #undef DDR_PHY_ZQCR_PGWAIT_FRQA_MASK -#define DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT 13 -#define DDR_PHY_ZQCR_PGWAIT_FRQA_MASK 0x0007E000U +#define DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT 13 +#define DDR_PHY_ZQCR_PGWAIT_FRQA_MASK 0x0007E000U -/*ZQ VREF Pad Enable*/ +/* +* ZQ VREF Pad Enable +*/ #undef DDR_PHY_ZQCR_ZQREFPEN_DEFVAL #undef DDR_PHY_ZQCR_ZQREFPEN_SHIFT #undef DDR_PHY_ZQCR_ZQREFPEN_MASK -#define DDR_PHY_ZQCR_ZQREFPEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFPEN_SHIFT 12 -#define DDR_PHY_ZQCR_ZQREFPEN_MASK 0x00001000U +#define DDR_PHY_ZQCR_ZQREFPEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFPEN_SHIFT 12 +#define DDR_PHY_ZQCR_ZQREFPEN_MASK 0x00001000U -/*ZQ Internal VREF Enable*/ +/* +* ZQ Internal VREF Enable +*/ #undef DDR_PHY_ZQCR_ZQREFIEN_DEFVAL #undef DDR_PHY_ZQCR_ZQREFIEN_SHIFT #undef DDR_PHY_ZQCR_ZQREFIEN_MASK -#define DDR_PHY_ZQCR_ZQREFIEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFIEN_SHIFT 11 -#define DDR_PHY_ZQCR_ZQREFIEN_MASK 0x00000800U +#define DDR_PHY_ZQCR_ZQREFIEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFIEN_SHIFT 11 +#define DDR_PHY_ZQCR_ZQREFIEN_MASK 0x00000800U -/*Choice of termination mode*/ +/* +* Choice of termination mode +*/ #undef DDR_PHY_ZQCR_ODT_MODE_DEFVAL #undef DDR_PHY_ZQCR_ODT_MODE_SHIFT #undef DDR_PHY_ZQCR_ODT_MODE_MASK -#define DDR_PHY_ZQCR_ODT_MODE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ODT_MODE_SHIFT 9 -#define DDR_PHY_ZQCR_ODT_MODE_MASK 0x00000600U +#define DDR_PHY_ZQCR_ODT_MODE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ODT_MODE_SHIFT 9 +#define DDR_PHY_ZQCR_ODT_MODE_MASK 0x00000600U -/*Force ZCAL VT update*/ +/* +* Force ZCAL VT update +*/ #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT 8 -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK 0x00000100U +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT 8 +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK 0x00000100U -/*IO VT Drift Limit*/ +/* +* IO VT Drift Limit +*/ #undef DDR_PHY_ZQCR_IODLMT_DEFVAL #undef DDR_PHY_ZQCR_IODLMT_SHIFT #undef DDR_PHY_ZQCR_IODLMT_MASK -#define DDR_PHY_ZQCR_IODLMT_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_IODLMT_SHIFT 5 -#define DDR_PHY_ZQCR_IODLMT_MASK 0x000000E0U +#define DDR_PHY_ZQCR_IODLMT_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_IODLMT_SHIFT 5 +#define DDR_PHY_ZQCR_IODLMT_MASK 0x000000E0U -/*Averaging algorithm enable, if set, enables averaging algorithm*/ +/* +* Averaging algorithm enable, if set, enables averaging algorithm +*/ #undef DDR_PHY_ZQCR_AVGEN_DEFVAL #undef DDR_PHY_ZQCR_AVGEN_SHIFT #undef DDR_PHY_ZQCR_AVGEN_MASK -#define DDR_PHY_ZQCR_AVGEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_AVGEN_SHIFT 4 -#define DDR_PHY_ZQCR_AVGEN_MASK 0x00000010U +#define DDR_PHY_ZQCR_AVGEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_AVGEN_SHIFT 4 +#define DDR_PHY_ZQCR_AVGEN_MASK 0x00000010U -/*Maximum number of averaging rounds to be used by averaging algorithm*/ +/* +* Maximum number of averaging rounds to be used by averaging algorithm +*/ #undef DDR_PHY_ZQCR_AVGMAX_DEFVAL #undef DDR_PHY_ZQCR_AVGMAX_SHIFT #undef DDR_PHY_ZQCR_AVGMAX_MASK -#define DDR_PHY_ZQCR_AVGMAX_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_AVGMAX_SHIFT 2 -#define DDR_PHY_ZQCR_AVGMAX_MASK 0x0000000CU +#define DDR_PHY_ZQCR_AVGMAX_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_AVGMAX_SHIFT 2 +#define DDR_PHY_ZQCR_AVGMAX_MASK 0x0000000CU -/*ZQ Calibration Type*/ +/* +* ZQ Calibration Type +*/ #undef DDR_PHY_ZQCR_ZCALT_DEFVAL #undef DDR_PHY_ZQCR_ZCALT_SHIFT #undef DDR_PHY_ZQCR_ZCALT_MASK -#define DDR_PHY_ZQCR_ZCALT_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZCALT_SHIFT 1 -#define DDR_PHY_ZQCR_ZCALT_MASK 0x00000002U +#define DDR_PHY_ZQCR_ZCALT_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZCALT_SHIFT 1 +#define DDR_PHY_ZQCR_ZCALT_MASK 0x00000002U -/*ZQ Power Down*/ +/* +* ZQ Power Down +*/ #undef DDR_PHY_ZQCR_ZQPD_DEFVAL #undef DDR_PHY_ZQCR_ZQPD_SHIFT #undef DDR_PHY_ZQCR_ZQPD_MASK -#define DDR_PHY_ZQCR_ZQPD_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQPD_SHIFT 0 -#define DDR_PHY_ZQCR_ZQPD_MASK 0x00000001U +#define DDR_PHY_ZQCR_ZQPD_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQPD_SHIFT 0 +#define DDR_PHY_ZQCR_ZQPD_MASK 0x00000001U -/*Pull-down drive strength ZCTRL over-ride enable*/ +/* +* Pull-down drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT 31 -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK 0x80000000U +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT 31 +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK 0x80000000U -/*Pull-up drive strength ZCTRL over-ride enable*/ +/* +* Pull-up drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT 30 -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK 0x40000000U +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT 30 +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK 0x40000000U -/*Pull-down termination ZCTRL over-ride enable*/ +/* +* Pull-down termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT 29 -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK 0x20000000U +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT 29 +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK 0x20000000U -/*Pull-up termination ZCTRL over-ride enable*/ +/* +* Pull-up termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT 28 -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK 0x10000000U +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT 28 +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK 0x10000000U -/*Calibration segment bypass*/ +/* +* Calibration segment bypass +*/ #undef DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL #undef DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT #undef DDR_PHY_ZQ0PR0_ZSEGBYP_MASK -#define DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT 27 -#define DDR_PHY_ZQ0PR0_ZSEGBYP_MASK 0x08000000U +#define DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT 27 +#define DDR_PHY_ZQ0PR0_ZSEGBYP_MASK 0x08000000U -/*VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB*/ +/* +* VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB +*/ #undef DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL #undef DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT #undef DDR_PHY_ZQ0PR0_ZLE_MODE_MASK -#define DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT 25 -#define DDR_PHY_ZQ0PR0_ZLE_MODE_MASK 0x06000000U +#define DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT 25 +#define DDR_PHY_ZQ0PR0_ZLE_MODE_MASK 0x06000000U -/*Termination adjustment*/ +/* +* Termination adjustment +*/ #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT 22 -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK 0x01C00000U +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT 22 +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK 0x01C00000U -/*Pulldown drive strength adjustment*/ +/* +* Pulldown drive strength adjustment +*/ #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT 19 -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK 0x00380000U +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT 19 +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK 0x00380000U -/*Pullup drive strength adjustment*/ +/* +* Pullup drive strength adjustment +*/ #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT 16 -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK 0x00070000U +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT 16 +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK 0x00070000U -/*DRAM Impedance Divide Ratio*/ +/* +* DRAM Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT 12 -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT 12 +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U -/*HOST Impedance Divide Ratio*/ +/* +* HOST Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT 8 -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK 0x00000F00U +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT 8 +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK 0x00000F00U -/*Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U -/*Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK 0xFC000000U -/*Override value for the pull-up output impedance*/ +/* +* Override value for the pull-up output impedance +*/ #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT 16 -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK 0x03FF0000U +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT 16 +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK 0x03FF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK 0x0000FC00U -/*Override value for the pull-down output impedance*/ +/* +* Override value for the pull-down output impedance +*/ #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT 0 -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK 0x000003FFU +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT 0 +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK 0x000003FFU -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK 0xFC000000U -/*Override value for the pull-up termination*/ +/* +* Override value for the pull-up termination +*/ #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT 16 -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK 0x03FF0000U +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT 16 +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK 0x03FF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK 0x0000FC00U -/*Override value for the pull-down termination*/ +/* +* Override value for the pull-down termination +*/ #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT 0 -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK 0x000003FFU +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT 0 +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK 0x000003FFU -/*Pull-down drive strength ZCTRL over-ride enable*/ +/* +* Pull-down drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT 31 -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK 0x80000000U +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT 31 +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK 0x80000000U -/*Pull-up drive strength ZCTRL over-ride enable*/ +/* +* Pull-up drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT 30 -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK 0x40000000U +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT 30 +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK 0x40000000U -/*Pull-down termination ZCTRL over-ride enable*/ +/* +* Pull-down termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT 29 -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK 0x20000000U +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT 29 +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK 0x20000000U -/*Pull-up termination ZCTRL over-ride enable*/ +/* +* Pull-up termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT 28 -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK 0x10000000U +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT 28 +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK 0x10000000U -/*Calibration segment bypass*/ +/* +* Calibration segment bypass +*/ #undef DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL #undef DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT #undef DDR_PHY_ZQ1PR0_ZSEGBYP_MASK -#define DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT 27 -#define DDR_PHY_ZQ1PR0_ZSEGBYP_MASK 0x08000000U +#define DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT 27 +#define DDR_PHY_ZQ1PR0_ZSEGBYP_MASK 0x08000000U -/*VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB*/ +/* +* VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB +*/ #undef DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL #undef DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT #undef DDR_PHY_ZQ1PR0_ZLE_MODE_MASK -#define DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT 25 -#define DDR_PHY_ZQ1PR0_ZLE_MODE_MASK 0x06000000U +#define DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT 25 +#define DDR_PHY_ZQ1PR0_ZLE_MODE_MASK 0x06000000U -/*Termination adjustment*/ +/* +* Termination adjustment +*/ #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT 22 -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK 0x01C00000U +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT 22 +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK 0x01C00000U -/*Pulldown drive strength adjustment*/ +/* +* Pulldown drive strength adjustment +*/ #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT 19 -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK 0x00380000U +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT 19 +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK 0x00380000U -/*Pullup drive strength adjustment*/ +/* +* Pullup drive strength adjustment +*/ #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT 16 -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK 0x00070000U +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT 16 +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK 0x00070000U -/*DRAM Impedance Divide Ratio*/ +/* +* DRAM Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT 12 -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT 12 +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U -/*HOST Impedance Divide Ratio*/ +/* +* HOST Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT 8 -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK 0x00000F00U +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT 8 +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK 0x00000F00U -/*Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U -/*Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX0GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX0GCR0_CALBYP_SHIFT #undef DDR_PHY_DX0GCR0_CALBYP_MASK -#define DDR_PHY_DX0GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX0GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX0GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX0GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX0GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX0GCR0_MDLEN_SHIFT #undef DDR_PHY_DX0GCR0_MDLEN_MASK -#define DDR_PHY_DX0GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX0GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX0GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX0GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX0GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX0GCR0_CODTSHFT_MASK -#define DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX0GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX0GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX0GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX0GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX0GCR0_DQSDCC_MASK -#define DDR_PHY_DX0GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX0GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX0GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX0GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX0GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX0GCR0_RDDLY_SHIFT #undef DDR_PHY_DX0GCR0_RDDLY_MASK -#define DDR_PHY_DX0GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX0GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX0GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX0GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX0GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX0GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX0GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX0GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX0GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX0GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX0GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX0GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX0GCR0_RTTOAL_MASK -#define DDR_PHY_DX0GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX0GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX0GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX0GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX0GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX0GCR0_RTTOH_SHIFT #undef DDR_PHY_DX0GCR0_RTTOH_MASK -#define DDR_PHY_DX0GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX0GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX0GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX0GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX0GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX0GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX0GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX0GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX0GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX0GCR0_DQSRPD_MASK -#define DDR_PHY_DX0GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX0GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX0GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX0GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSGPDR_MASK -#define DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX0GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX0GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_4_MASK -#define DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX0GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX0GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX0GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX0GCR0_DQSGODT_MASK -#define DDR_PHY_DX0GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX0GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX0GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX0GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX0GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX0GCR0_DQSGOE_MASK -#define DDR_PHY_DX0GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX0GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX0GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX0GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX0GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX0GCR0_RESERVED_1_0_MASK 0x00000003U -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX0GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX0GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFPEN_MASK -#define DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX0GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX0GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFEEN_MASK -#define DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX0GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX0GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSEN_MASK -#define DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX0GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX0GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_24_MASK -#define DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX0GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX0GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX0GCR4_DXREFESEL_MASK -#define DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX0GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX0GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX0GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX0GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX0GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX0GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFIEN_MASK -#define DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX0GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX0GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX0GCR4_DXREFIMON_MASK -#define DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX0GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX0GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_31_MASK -#define DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX0GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX0GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX0GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX0GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_23_MASK -#define DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX0GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX0GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX0GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX0GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_15_MASK -#define DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX0GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX0GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX0GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX0GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_7_MASK -#define DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX0GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX0GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX0GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX0GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX0GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX0GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX0GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX0GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX0GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX0GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX0GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX0GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX0GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX0GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX0GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX0GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX0GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX0GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX0GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX0GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX0LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX0LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX0LCDLR2_DQSGD_MASK -#define DDR_PHY_DX0LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX0LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX0GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX0GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX0GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX0GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX0GTR0_WDQSL_MASK -#define DDR_PHY_DX0GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX0GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX0GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX0GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX0GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX0GTR0_WLSL_SHIFT -#undef DDR_PHY_DX0GTR0_WLSL_MASK -#define DDR_PHY_DX0GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX0GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX0GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX0GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX0GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX0GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX0GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX0GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX0GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX0GTR0_DGSL_SHIFT -#undef DDR_PHY_DX0GTR0_DGSL_MASK -#define DDR_PHY_DX0GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX0GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX1GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX1GCR0_CALBYP_SHIFT #undef DDR_PHY_DX1GCR0_CALBYP_MASK -#define DDR_PHY_DX1GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX1GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX1GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX1GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX1GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX1GCR0_MDLEN_SHIFT #undef DDR_PHY_DX1GCR0_MDLEN_MASK -#define DDR_PHY_DX1GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX1GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX1GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX1GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX1GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX1GCR0_CODTSHFT_MASK -#define DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX1GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX1GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX1GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX1GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX1GCR0_DQSDCC_MASK -#define DDR_PHY_DX1GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX1GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX1GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX1GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX1GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX1GCR0_RDDLY_SHIFT #undef DDR_PHY_DX1GCR0_RDDLY_MASK -#define DDR_PHY_DX1GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX1GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX1GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX1GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX1GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX1GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX1GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX1GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX1GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX1GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX1GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX1GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX1GCR0_RTTOAL_MASK -#define DDR_PHY_DX1GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX1GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX1GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX1GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX1GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX1GCR0_RTTOH_SHIFT #undef DDR_PHY_DX1GCR0_RTTOH_MASK -#define DDR_PHY_DX1GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX1GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX1GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX1GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX1GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX1GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX1GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX1GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX1GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX1GCR0_DQSRPD_MASK -#define DDR_PHY_DX1GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX1GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX1GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX1GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSGPDR_MASK -#define DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX1GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX1GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_4_MASK -#define DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX1GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX1GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX1GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX1GCR0_DQSGODT_MASK -#define DDR_PHY_DX1GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX1GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX1GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX1GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX1GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX1GCR0_DQSGOE_MASK -#define DDR_PHY_DX1GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX1GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX1GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX1GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX1GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX1GCR0_RESERVED_1_0_MASK 0x00000003U -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX1GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX1GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFPEN_MASK -#define DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX1GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX1GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFEEN_MASK -#define DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX1GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX1GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSEN_MASK -#define DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX1GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX1GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_24_MASK -#define DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX1GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX1GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX1GCR4_DXREFESEL_MASK -#define DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX1GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX1GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX1GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX1GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX1GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX1GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFIEN_MASK -#define DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX1GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX1GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX1GCR4_DXREFIMON_MASK -#define DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX1GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX1GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_31_MASK -#define DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX1GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX1GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX1GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX1GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_23_MASK -#define DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX1GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX1GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX1GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX1GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_15_MASK -#define DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX1GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX1GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX1GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX1GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_7_MASK -#define DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX1GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX1GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX1GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX1GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX1GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX1GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX1GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX1GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX1GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX1GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX1GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX1GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX1GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX1GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX1GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX1GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX1GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX1GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX1GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX1GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX1LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX1LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX1LCDLR2_DQSGD_MASK -#define DDR_PHY_DX1LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX1LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX1GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX1GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX1GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX1GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX1GTR0_WDQSL_MASK -#define DDR_PHY_DX1GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX1GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX1GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX1GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX1GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX1GTR0_WLSL_SHIFT -#undef DDR_PHY_DX1GTR0_WLSL_MASK -#define DDR_PHY_DX1GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX1GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX1GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX1GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX1GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX1GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX1GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX1GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX1GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX1GTR0_DGSL_SHIFT -#undef DDR_PHY_DX1GTR0_DGSL_MASK -#define DDR_PHY_DX1GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX1GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX2GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX2GCR0_CALBYP_SHIFT #undef DDR_PHY_DX2GCR0_CALBYP_MASK -#define DDR_PHY_DX2GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX2GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX2GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX2GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX2GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX2GCR0_MDLEN_SHIFT #undef DDR_PHY_DX2GCR0_MDLEN_MASK -#define DDR_PHY_DX2GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX2GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX2GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX2GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX2GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX2GCR0_CODTSHFT_MASK -#define DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX2GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX2GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX2GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX2GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX2GCR0_DQSDCC_MASK -#define DDR_PHY_DX2GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX2GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX2GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX2GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX2GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX2GCR0_RDDLY_SHIFT #undef DDR_PHY_DX2GCR0_RDDLY_MASK -#define DDR_PHY_DX2GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX2GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX2GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX2GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX2GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX2GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX2GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX2GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX2GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX2GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX2GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX2GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX2GCR0_RTTOAL_MASK -#define DDR_PHY_DX2GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX2GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX2GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX2GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX2GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX2GCR0_RTTOH_SHIFT #undef DDR_PHY_DX2GCR0_RTTOH_MASK -#define DDR_PHY_DX2GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX2GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX2GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX2GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX2GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX2GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX2GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX2GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX2GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX2GCR0_DQSRPD_MASK -#define DDR_PHY_DX2GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX2GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX2GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX2GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSGPDR_MASK -#define DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX2GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX2GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_4_MASK -#define DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX2GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX2GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX2GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX2GCR0_DQSGODT_MASK -#define DDR_PHY_DX2GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX2GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX2GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX2GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX2GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX2GCR0_DQSGOE_MASK -#define DDR_PHY_DX2GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX2GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX2GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX2GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX2GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX2GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX2GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX2GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX2GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX2GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX2GCR1_RESERVED_15_MASK -#define DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX2GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX2GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX2GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX2GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX2GCR1_QSNSEL_MASK -#define DDR_PHY_DX2GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX2GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX2GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX2GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX2GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX2GCR1_QSSEL_SHIFT #undef DDR_PHY_DX2GCR1_QSSEL_MASK -#define DDR_PHY_DX2GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX2GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX2GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX2GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX2GCR1_OEEN_DEFVAL #undef DDR_PHY_DX2GCR1_OEEN_SHIFT #undef DDR_PHY_DX2GCR1_OEEN_MASK -#define DDR_PHY_DX2GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX2GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX2GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX2GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX2GCR1_PDREN_DEFVAL #undef DDR_PHY_DX2GCR1_PDREN_SHIFT #undef DDR_PHY_DX2GCR1_PDREN_MASK -#define DDR_PHY_DX2GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX2GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX2GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX2GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX2GCR1_TEEN_DEFVAL #undef DDR_PHY_DX2GCR1_TEEN_SHIFT #undef DDR_PHY_DX2GCR1_TEEN_MASK -#define DDR_PHY_DX2GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX2GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX2GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX2GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX2GCR1_DSEN_DEFVAL #undef DDR_PHY_DX2GCR1_DSEN_SHIFT #undef DDR_PHY_DX2GCR1_DSEN_MASK -#define DDR_PHY_DX2GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX2GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX2GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX2GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX2GCR1_DMEN_DEFVAL #undef DDR_PHY_DX2GCR1_DMEN_SHIFT #undef DDR_PHY_DX2GCR1_DMEN_MASK -#define DDR_PHY_DX2GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX2GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX2GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX2GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX2GCR1_DQEN_DEFVAL #undef DDR_PHY_DX2GCR1_DQEN_SHIFT #undef DDR_PHY_DX2GCR1_DQEN_MASK -#define DDR_PHY_DX2GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX2GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX2GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX2GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX2GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX2GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFPEN_MASK -#define DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX2GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX2GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFEEN_MASK -#define DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX2GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX2GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSEN_MASK -#define DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX2GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX2GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_24_MASK -#define DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX2GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX2GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX2GCR4_DXREFESEL_MASK -#define DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX2GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX2GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX2GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX2GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX2GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX2GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFIEN_MASK -#define DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX2GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX2GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX2GCR4_DXREFIMON_MASK -#define DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX2GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX2GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_31_MASK -#define DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX2GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX2GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX2GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX2GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_23_MASK -#define DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX2GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX2GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX2GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX2GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_15_MASK -#define DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX2GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX2GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX2GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX2GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_7_MASK -#define DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX2GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX2GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX2GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX2GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX2GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX2GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX2GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX2GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX2GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX2GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX2GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX2GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX2GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX2GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX2GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX2GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX2GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX2GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX2GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX2GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX2LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX2LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX2LCDLR2_DQSGD_MASK -#define DDR_PHY_DX2LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX2LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX2GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX2GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX2GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX2GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX2GTR0_WDQSL_MASK -#define DDR_PHY_DX2GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX2GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX2GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX2GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX2GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX2GTR0_WLSL_SHIFT -#undef DDR_PHY_DX2GTR0_WLSL_MASK -#define DDR_PHY_DX2GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX2GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX2GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX2GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX2GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX2GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX2GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX2GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX2GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX2GTR0_DGSL_SHIFT -#undef DDR_PHY_DX2GTR0_DGSL_MASK -#define DDR_PHY_DX2GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX2GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX3GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX3GCR0_CALBYP_SHIFT #undef DDR_PHY_DX3GCR0_CALBYP_MASK -#define DDR_PHY_DX3GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX3GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX3GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX3GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX3GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX3GCR0_MDLEN_SHIFT #undef DDR_PHY_DX3GCR0_MDLEN_MASK -#define DDR_PHY_DX3GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX3GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX3GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX3GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX3GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX3GCR0_CODTSHFT_MASK -#define DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX3GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX3GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX3GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX3GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX3GCR0_DQSDCC_MASK -#define DDR_PHY_DX3GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX3GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX3GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX3GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX3GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX3GCR0_RDDLY_SHIFT #undef DDR_PHY_DX3GCR0_RDDLY_MASK -#define DDR_PHY_DX3GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX3GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX3GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX3GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX3GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX3GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX3GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX3GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX3GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX3GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX3GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX3GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX3GCR0_RTTOAL_MASK -#define DDR_PHY_DX3GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX3GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX3GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX3GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX3GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX3GCR0_RTTOH_SHIFT #undef DDR_PHY_DX3GCR0_RTTOH_MASK -#define DDR_PHY_DX3GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX3GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX3GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX3GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX3GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX3GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX3GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX3GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX3GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX3GCR0_DQSRPD_MASK -#define DDR_PHY_DX3GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX3GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX3GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX3GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSGPDR_MASK -#define DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX3GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX3GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_4_MASK -#define DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX3GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX3GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX3GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX3GCR0_DQSGODT_MASK -#define DDR_PHY_DX3GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX3GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX3GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX3GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX3GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX3GCR0_DQSGOE_MASK -#define DDR_PHY_DX3GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX3GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX3GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX3GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX3GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX3GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX3GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX3GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX3GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX3GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX3GCR1_RESERVED_15_MASK -#define DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX3GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX3GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX3GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX3GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX3GCR1_QSNSEL_MASK -#define DDR_PHY_DX3GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX3GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX3GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX3GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX3GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX3GCR1_QSSEL_SHIFT #undef DDR_PHY_DX3GCR1_QSSEL_MASK -#define DDR_PHY_DX3GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX3GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX3GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX3GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX3GCR1_OEEN_DEFVAL #undef DDR_PHY_DX3GCR1_OEEN_SHIFT #undef DDR_PHY_DX3GCR1_OEEN_MASK -#define DDR_PHY_DX3GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX3GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX3GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX3GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX3GCR1_PDREN_DEFVAL #undef DDR_PHY_DX3GCR1_PDREN_SHIFT #undef DDR_PHY_DX3GCR1_PDREN_MASK -#define DDR_PHY_DX3GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX3GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX3GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX3GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX3GCR1_TEEN_DEFVAL #undef DDR_PHY_DX3GCR1_TEEN_SHIFT #undef DDR_PHY_DX3GCR1_TEEN_MASK -#define DDR_PHY_DX3GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX3GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX3GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX3GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX3GCR1_DSEN_DEFVAL #undef DDR_PHY_DX3GCR1_DSEN_SHIFT #undef DDR_PHY_DX3GCR1_DSEN_MASK -#define DDR_PHY_DX3GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX3GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX3GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX3GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX3GCR1_DMEN_DEFVAL #undef DDR_PHY_DX3GCR1_DMEN_SHIFT #undef DDR_PHY_DX3GCR1_DMEN_MASK -#define DDR_PHY_DX3GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX3GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX3GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX3GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX3GCR1_DQEN_DEFVAL #undef DDR_PHY_DX3GCR1_DQEN_SHIFT #undef DDR_PHY_DX3GCR1_DQEN_MASK -#define DDR_PHY_DX3GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX3GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX3GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX3GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX3GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX3GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFPEN_MASK -#define DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX3GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX3GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFEEN_MASK -#define DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX3GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX3GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSEN_MASK -#define DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX3GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX3GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_24_MASK -#define DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX3GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX3GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX3GCR4_DXREFESEL_MASK -#define DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX3GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX3GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX3GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX3GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX3GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX3GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFIEN_MASK -#define DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX3GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX3GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX3GCR4_DXREFIMON_MASK -#define DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX3GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX3GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_31_MASK -#define DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX3GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX3GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX3GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX3GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_23_MASK -#define DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX3GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX3GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX3GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX3GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_15_MASK -#define DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX3GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX3GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX3GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX3GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_7_MASK -#define DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX3GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX3GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX3GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX3GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX3GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX3GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX3GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX3GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX3GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX3GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX3GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX3GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX3GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX3GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX3GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX3GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX3GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX3GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX3GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX3GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX3LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX3LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX3LCDLR2_DQSGD_MASK -#define DDR_PHY_DX3LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX3LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX3GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX3GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX3GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX3GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX3GTR0_WDQSL_MASK -#define DDR_PHY_DX3GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX3GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX3GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX3GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX3GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX3GTR0_WLSL_SHIFT -#undef DDR_PHY_DX3GTR0_WLSL_MASK -#define DDR_PHY_DX3GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX3GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX3GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX3GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX3GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX3GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX3GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX3GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX3GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX3GTR0_DGSL_SHIFT -#undef DDR_PHY_DX3GTR0_DGSL_MASK -#define DDR_PHY_DX3GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX3GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX4GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX4GCR0_CALBYP_SHIFT #undef DDR_PHY_DX4GCR0_CALBYP_MASK -#define DDR_PHY_DX4GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX4GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX4GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX4GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX4GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX4GCR0_MDLEN_SHIFT #undef DDR_PHY_DX4GCR0_MDLEN_MASK -#define DDR_PHY_DX4GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX4GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX4GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX4GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX4GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX4GCR0_CODTSHFT_MASK -#define DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX4GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX4GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX4GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX4GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX4GCR0_DQSDCC_MASK -#define DDR_PHY_DX4GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX4GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX4GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX4GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX4GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX4GCR0_RDDLY_SHIFT #undef DDR_PHY_DX4GCR0_RDDLY_MASK -#define DDR_PHY_DX4GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX4GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX4GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX4GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX4GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX4GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX4GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX4GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX4GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX4GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX4GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX4GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX4GCR0_RTTOAL_MASK -#define DDR_PHY_DX4GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX4GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX4GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX4GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX4GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX4GCR0_RTTOH_SHIFT #undef DDR_PHY_DX4GCR0_RTTOH_MASK -#define DDR_PHY_DX4GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX4GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX4GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX4GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX4GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX4GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX4GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX4GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX4GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX4GCR0_DQSRPD_MASK -#define DDR_PHY_DX4GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX4GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX4GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX4GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSGPDR_MASK -#define DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX4GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX4GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_4_MASK -#define DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX4GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX4GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX4GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX4GCR0_DQSGODT_MASK -#define DDR_PHY_DX4GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX4GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX4GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX4GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX4GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX4GCR0_DQSGOE_MASK -#define DDR_PHY_DX4GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX4GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX4GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX4GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX4GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX4GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX4GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX4GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX4GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX4GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX4GCR1_RESERVED_15_MASK -#define DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX4GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX4GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX4GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX4GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX4GCR1_QSNSEL_MASK -#define DDR_PHY_DX4GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX4GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX4GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX4GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX4GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX4GCR1_QSSEL_SHIFT #undef DDR_PHY_DX4GCR1_QSSEL_MASK -#define DDR_PHY_DX4GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX4GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX4GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX4GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX4GCR1_OEEN_DEFVAL #undef DDR_PHY_DX4GCR1_OEEN_SHIFT #undef DDR_PHY_DX4GCR1_OEEN_MASK -#define DDR_PHY_DX4GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX4GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX4GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX4GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX4GCR1_PDREN_DEFVAL #undef DDR_PHY_DX4GCR1_PDREN_SHIFT #undef DDR_PHY_DX4GCR1_PDREN_MASK -#define DDR_PHY_DX4GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX4GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX4GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX4GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX4GCR1_TEEN_DEFVAL #undef DDR_PHY_DX4GCR1_TEEN_SHIFT #undef DDR_PHY_DX4GCR1_TEEN_MASK -#define DDR_PHY_DX4GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX4GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX4GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX4GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX4GCR1_DSEN_DEFVAL #undef DDR_PHY_DX4GCR1_DSEN_SHIFT #undef DDR_PHY_DX4GCR1_DSEN_MASK -#define DDR_PHY_DX4GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX4GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX4GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX4GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX4GCR1_DMEN_DEFVAL #undef DDR_PHY_DX4GCR1_DMEN_SHIFT #undef DDR_PHY_DX4GCR1_DMEN_MASK -#define DDR_PHY_DX4GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX4GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX4GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX4GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX4GCR1_DQEN_DEFVAL #undef DDR_PHY_DX4GCR1_DQEN_SHIFT #undef DDR_PHY_DX4GCR1_DQEN_MASK -#define DDR_PHY_DX4GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX4GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX4GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX4GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX4GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX4GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFPEN_MASK -#define DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX4GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX4GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFEEN_MASK -#define DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX4GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX4GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSEN_MASK -#define DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX4GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX4GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_24_MASK -#define DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX4GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX4GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX4GCR4_DXREFESEL_MASK -#define DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX4GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX4GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX4GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX4GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX4GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX4GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFIEN_MASK -#define DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX4GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX4GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX4GCR4_DXREFIMON_MASK -#define DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX4GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX4GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_31_MASK -#define DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX4GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX4GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX4GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX4GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_23_MASK -#define DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX4GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX4GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX4GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX4GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_15_MASK -#define DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX4GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX4GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX4GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX4GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_7_MASK -#define DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX4GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX4GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX4GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX4GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX4GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX4GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX4GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX4GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX4GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX4GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX4GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX4GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX4GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX4GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX4GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX4GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX4GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX4GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX4GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX4GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX4LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX4LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX4LCDLR2_DQSGD_MASK -#define DDR_PHY_DX4LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX4LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX4GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX4GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX4GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX4GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX4GTR0_WDQSL_MASK -#define DDR_PHY_DX4GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX4GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX4GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX4GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX4GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX4GTR0_WLSL_SHIFT -#undef DDR_PHY_DX4GTR0_WLSL_MASK -#define DDR_PHY_DX4GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX4GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX4GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX4GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX4GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX4GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX4GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX4GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX4GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX4GTR0_DGSL_SHIFT -#undef DDR_PHY_DX4GTR0_DGSL_MASK -#define DDR_PHY_DX4GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX4GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX5GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX5GCR0_CALBYP_SHIFT #undef DDR_PHY_DX5GCR0_CALBYP_MASK -#define DDR_PHY_DX5GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX5GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX5GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX5GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX5GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX5GCR0_MDLEN_SHIFT #undef DDR_PHY_DX5GCR0_MDLEN_MASK -#define DDR_PHY_DX5GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX5GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX5GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX5GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX5GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX5GCR0_CODTSHFT_MASK -#define DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX5GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX5GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX5GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX5GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX5GCR0_DQSDCC_MASK -#define DDR_PHY_DX5GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX5GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX5GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX5GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX5GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX5GCR0_RDDLY_SHIFT #undef DDR_PHY_DX5GCR0_RDDLY_MASK -#define DDR_PHY_DX5GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX5GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX5GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX5GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX5GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX5GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX5GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX5GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX5GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX5GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX5GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX5GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX5GCR0_RTTOAL_MASK -#define DDR_PHY_DX5GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX5GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX5GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX5GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX5GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX5GCR0_RTTOH_SHIFT #undef DDR_PHY_DX5GCR0_RTTOH_MASK -#define DDR_PHY_DX5GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX5GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX5GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX5GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX5GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX5GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX5GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX5GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX5GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX5GCR0_DQSRPD_MASK -#define DDR_PHY_DX5GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX5GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX5GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX5GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSGPDR_MASK -#define DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX5GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX5GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_4_MASK -#define DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX5GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX5GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX5GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX5GCR0_DQSGODT_MASK -#define DDR_PHY_DX5GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX5GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX5GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX5GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX5GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX5GCR0_DQSGOE_MASK -#define DDR_PHY_DX5GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX5GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX5GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX5GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX5GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX5GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX5GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX5GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX5GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX5GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX5GCR1_RESERVED_15_MASK -#define DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX5GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX5GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX5GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX5GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX5GCR1_QSNSEL_MASK -#define DDR_PHY_DX5GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX5GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX5GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX5GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX5GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX5GCR1_QSSEL_SHIFT #undef DDR_PHY_DX5GCR1_QSSEL_MASK -#define DDR_PHY_DX5GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX5GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX5GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX5GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX5GCR1_OEEN_DEFVAL #undef DDR_PHY_DX5GCR1_OEEN_SHIFT #undef DDR_PHY_DX5GCR1_OEEN_MASK -#define DDR_PHY_DX5GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX5GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX5GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX5GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX5GCR1_PDREN_DEFVAL #undef DDR_PHY_DX5GCR1_PDREN_SHIFT #undef DDR_PHY_DX5GCR1_PDREN_MASK -#define DDR_PHY_DX5GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX5GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX5GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX5GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX5GCR1_TEEN_DEFVAL #undef DDR_PHY_DX5GCR1_TEEN_SHIFT #undef DDR_PHY_DX5GCR1_TEEN_MASK -#define DDR_PHY_DX5GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX5GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX5GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX5GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX5GCR1_DSEN_DEFVAL #undef DDR_PHY_DX5GCR1_DSEN_SHIFT #undef DDR_PHY_DX5GCR1_DSEN_MASK -#define DDR_PHY_DX5GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX5GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX5GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX5GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX5GCR1_DMEN_DEFVAL #undef DDR_PHY_DX5GCR1_DMEN_SHIFT #undef DDR_PHY_DX5GCR1_DMEN_MASK -#define DDR_PHY_DX5GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX5GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX5GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX5GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX5GCR1_DQEN_DEFVAL #undef DDR_PHY_DX5GCR1_DQEN_SHIFT #undef DDR_PHY_DX5GCR1_DQEN_MASK -#define DDR_PHY_DX5GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX5GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX5GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX5GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX5GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX5GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFPEN_MASK -#define DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX5GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX5GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFEEN_MASK -#define DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX5GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX5GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSEN_MASK -#define DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX5GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX5GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_24_MASK -#define DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX5GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX5GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX5GCR4_DXREFESEL_MASK -#define DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX5GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX5GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX5GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX5GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX5GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX5GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFIEN_MASK -#define DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX5GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX5GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX5GCR4_DXREFIMON_MASK -#define DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX5GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX5GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_31_MASK -#define DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX5GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX5GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX5GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX5GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_23_MASK -#define DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX5GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX5GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX5GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX5GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_15_MASK -#define DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX5GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX5GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX5GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX5GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_7_MASK -#define DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX5GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX5GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX5GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX5GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX5GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX5GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX5GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX5GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX5GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX5GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX5GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX5GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX5GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX5GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX5GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX5GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX5GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX5GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX5GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX5GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX5LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX5LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX5LCDLR2_DQSGD_MASK -#define DDR_PHY_DX5LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX5LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX5GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX5GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX5GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX5GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX5GTR0_WDQSL_MASK -#define DDR_PHY_DX5GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX5GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX5GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX5GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX5GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX5GTR0_WLSL_SHIFT -#undef DDR_PHY_DX5GTR0_WLSL_MASK -#define DDR_PHY_DX5GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX5GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX5GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX5GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX5GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX5GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX5GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX5GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX5GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX5GTR0_DGSL_SHIFT -#undef DDR_PHY_DX5GTR0_DGSL_MASK -#define DDR_PHY_DX5GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX5GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX6GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX6GCR0_CALBYP_SHIFT #undef DDR_PHY_DX6GCR0_CALBYP_MASK -#define DDR_PHY_DX6GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX6GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX6GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX6GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX6GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX6GCR0_MDLEN_SHIFT #undef DDR_PHY_DX6GCR0_MDLEN_MASK -#define DDR_PHY_DX6GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX6GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX6GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX6GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX6GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX6GCR0_CODTSHFT_MASK -#define DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX6GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX6GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX6GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX6GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX6GCR0_DQSDCC_MASK -#define DDR_PHY_DX6GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX6GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX6GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX6GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX6GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX6GCR0_RDDLY_SHIFT #undef DDR_PHY_DX6GCR0_RDDLY_MASK -#define DDR_PHY_DX6GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX6GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX6GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX6GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX6GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX6GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX6GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX6GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX6GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX6GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX6GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX6GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX6GCR0_RTTOAL_MASK -#define DDR_PHY_DX6GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX6GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX6GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX6GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX6GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX6GCR0_RTTOH_SHIFT #undef DDR_PHY_DX6GCR0_RTTOH_MASK -#define DDR_PHY_DX6GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX6GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX6GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX6GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX6GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX6GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX6GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX6GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX6GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX6GCR0_DQSRPD_MASK -#define DDR_PHY_DX6GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX6GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX6GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX6GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSGPDR_MASK -#define DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX6GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX6GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_4_MASK -#define DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX6GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX6GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX6GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX6GCR0_DQSGODT_MASK -#define DDR_PHY_DX6GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX6GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX6GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX6GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX6GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX6GCR0_DQSGOE_MASK -#define DDR_PHY_DX6GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX6GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX6GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX6GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX6GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX6GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX6GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX6GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX6GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX6GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX6GCR1_RESERVED_15_MASK -#define DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX6GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX6GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX6GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX6GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX6GCR1_QSNSEL_MASK -#define DDR_PHY_DX6GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX6GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX6GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX6GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX6GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX6GCR1_QSSEL_SHIFT #undef DDR_PHY_DX6GCR1_QSSEL_MASK -#define DDR_PHY_DX6GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX6GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX6GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX6GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX6GCR1_OEEN_DEFVAL #undef DDR_PHY_DX6GCR1_OEEN_SHIFT #undef DDR_PHY_DX6GCR1_OEEN_MASK -#define DDR_PHY_DX6GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX6GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX6GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX6GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX6GCR1_PDREN_DEFVAL #undef DDR_PHY_DX6GCR1_PDREN_SHIFT #undef DDR_PHY_DX6GCR1_PDREN_MASK -#define DDR_PHY_DX6GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX6GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX6GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX6GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX6GCR1_TEEN_DEFVAL #undef DDR_PHY_DX6GCR1_TEEN_SHIFT #undef DDR_PHY_DX6GCR1_TEEN_MASK -#define DDR_PHY_DX6GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX6GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX6GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX6GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX6GCR1_DSEN_DEFVAL #undef DDR_PHY_DX6GCR1_DSEN_SHIFT #undef DDR_PHY_DX6GCR1_DSEN_MASK -#define DDR_PHY_DX6GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX6GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX6GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX6GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX6GCR1_DMEN_DEFVAL #undef DDR_PHY_DX6GCR1_DMEN_SHIFT #undef DDR_PHY_DX6GCR1_DMEN_MASK -#define DDR_PHY_DX6GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX6GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX6GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX6GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX6GCR1_DQEN_DEFVAL #undef DDR_PHY_DX6GCR1_DQEN_SHIFT #undef DDR_PHY_DX6GCR1_DQEN_MASK -#define DDR_PHY_DX6GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX6GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX6GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX6GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX6GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX6GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFPEN_MASK -#define DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX6GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX6GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFEEN_MASK -#define DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX6GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX6GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSEN_MASK -#define DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX6GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX6GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_24_MASK -#define DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX6GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX6GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX6GCR4_DXREFESEL_MASK -#define DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX6GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX6GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX6GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX6GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX6GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX6GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFIEN_MASK -#define DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX6GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX6GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX6GCR4_DXREFIMON_MASK -#define DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX6GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX6GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_31_MASK -#define DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX6GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX6GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX6GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX6GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_23_MASK -#define DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX6GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX6GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX6GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX6GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_15_MASK -#define DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX6GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX6GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX6GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX6GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_7_MASK -#define DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX6GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX6GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX6GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX6GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX6GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX6GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX6GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX6GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX6GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX6GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX6GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX6GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX6GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX6GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX6GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX6GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX6GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX6GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX6GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX6GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX6LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX6LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX6LCDLR2_DQSGD_MASK -#define DDR_PHY_DX6LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX6LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX6GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX6GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX6GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX6GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX6GTR0_WDQSL_MASK -#define DDR_PHY_DX6GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX6GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX6GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX6GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX6GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX6GTR0_WLSL_SHIFT -#undef DDR_PHY_DX6GTR0_WLSL_MASK -#define DDR_PHY_DX6GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX6GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX6GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX6GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX6GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX6GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX6GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX6GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX6GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX6GTR0_DGSL_SHIFT -#undef DDR_PHY_DX6GTR0_DGSL_MASK -#define DDR_PHY_DX6GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX6GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX7GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX7GCR0_CALBYP_SHIFT #undef DDR_PHY_DX7GCR0_CALBYP_MASK -#define DDR_PHY_DX7GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX7GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX7GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX7GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX7GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX7GCR0_MDLEN_SHIFT #undef DDR_PHY_DX7GCR0_MDLEN_MASK -#define DDR_PHY_DX7GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX7GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX7GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX7GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX7GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX7GCR0_CODTSHFT_MASK -#define DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX7GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX7GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX7GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX7GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX7GCR0_DQSDCC_MASK -#define DDR_PHY_DX7GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX7GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX7GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX7GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX7GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX7GCR0_RDDLY_SHIFT #undef DDR_PHY_DX7GCR0_RDDLY_MASK -#define DDR_PHY_DX7GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX7GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX7GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX7GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX7GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX7GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX7GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX7GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX7GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX7GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX7GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX7GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX7GCR0_RTTOAL_MASK -#define DDR_PHY_DX7GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX7GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX7GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX7GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX7GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX7GCR0_RTTOH_SHIFT #undef DDR_PHY_DX7GCR0_RTTOH_MASK -#define DDR_PHY_DX7GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX7GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX7GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX7GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX7GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX7GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX7GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX7GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX7GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX7GCR0_DQSRPD_MASK -#define DDR_PHY_DX7GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX7GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX7GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX7GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSGPDR_MASK -#define DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX7GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX7GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_4_MASK -#define DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX7GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX7GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX7GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX7GCR0_DQSGODT_MASK -#define DDR_PHY_DX7GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX7GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX7GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX7GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX7GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX7GCR0_DQSGOE_MASK -#define DDR_PHY_DX7GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX7GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX7GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX7GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX7GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX7GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX7GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX7GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX7GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX7GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX7GCR1_RESERVED_15_MASK -#define DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX7GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX7GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX7GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX7GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX7GCR1_QSNSEL_MASK -#define DDR_PHY_DX7GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX7GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX7GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX7GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX7GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX7GCR1_QSSEL_SHIFT #undef DDR_PHY_DX7GCR1_QSSEL_MASK -#define DDR_PHY_DX7GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX7GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX7GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX7GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX7GCR1_OEEN_DEFVAL #undef DDR_PHY_DX7GCR1_OEEN_SHIFT #undef DDR_PHY_DX7GCR1_OEEN_MASK -#define DDR_PHY_DX7GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX7GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX7GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX7GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX7GCR1_PDREN_DEFVAL #undef DDR_PHY_DX7GCR1_PDREN_SHIFT #undef DDR_PHY_DX7GCR1_PDREN_MASK -#define DDR_PHY_DX7GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX7GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX7GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX7GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX7GCR1_TEEN_DEFVAL #undef DDR_PHY_DX7GCR1_TEEN_SHIFT #undef DDR_PHY_DX7GCR1_TEEN_MASK -#define DDR_PHY_DX7GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX7GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX7GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX7GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX7GCR1_DSEN_DEFVAL #undef DDR_PHY_DX7GCR1_DSEN_SHIFT #undef DDR_PHY_DX7GCR1_DSEN_MASK -#define DDR_PHY_DX7GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX7GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX7GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX7GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX7GCR1_DMEN_DEFVAL #undef DDR_PHY_DX7GCR1_DMEN_SHIFT #undef DDR_PHY_DX7GCR1_DMEN_MASK -#define DDR_PHY_DX7GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX7GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX7GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX7GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX7GCR1_DQEN_DEFVAL #undef DDR_PHY_DX7GCR1_DQEN_SHIFT #undef DDR_PHY_DX7GCR1_DQEN_MASK -#define DDR_PHY_DX7GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX7GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX7GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX7GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX7GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX7GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFPEN_MASK -#define DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX7GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX7GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFEEN_MASK -#define DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX7GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX7GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSEN_MASK -#define DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX7GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX7GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_24_MASK -#define DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX7GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX7GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX7GCR4_DXREFESEL_MASK -#define DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX7GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX7GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX7GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX7GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX7GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX7GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFIEN_MASK -#define DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX7GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX7GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX7GCR4_DXREFIMON_MASK -#define DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX7GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX7GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_31_MASK -#define DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX7GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX7GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX7GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX7GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_23_MASK -#define DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX7GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX7GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX7GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX7GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_15_MASK -#define DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX7GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX7GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX7GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX7GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_7_MASK -#define DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX7GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX7GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX7GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX7GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX7GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX7GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX7GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX7GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX7GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX7GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX7GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX7GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX7GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX7GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX7GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX7GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX7GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX7GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX7GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX7GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX7LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX7LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX7LCDLR2_DQSGD_MASK -#define DDR_PHY_DX7LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX7LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX7GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX7GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX7GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX7GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX7GTR0_WDQSL_MASK -#define DDR_PHY_DX7GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX7GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX7GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX7GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX7GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX7GTR0_WLSL_SHIFT -#undef DDR_PHY_DX7GTR0_WLSL_MASK -#define DDR_PHY_DX7GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX7GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX7GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX7GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX7GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX7GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX7GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX7GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX7GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX7GTR0_DGSL_SHIFT -#undef DDR_PHY_DX7GTR0_DGSL_MASK -#define DDR_PHY_DX7GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX7GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX8GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX8GCR0_CALBYP_SHIFT #undef DDR_PHY_DX8GCR0_CALBYP_MASK -#define DDR_PHY_DX8GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX8GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX8GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX8GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX8GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX8GCR0_MDLEN_SHIFT #undef DDR_PHY_DX8GCR0_MDLEN_MASK -#define DDR_PHY_DX8GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX8GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX8GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX8GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX8GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX8GCR0_CODTSHFT_MASK -#define DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX8GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX8GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX8GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX8GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX8GCR0_DQSDCC_MASK -#define DDR_PHY_DX8GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX8GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX8GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX8GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX8GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX8GCR0_RDDLY_SHIFT #undef DDR_PHY_DX8GCR0_RDDLY_MASK -#define DDR_PHY_DX8GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX8GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX8GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX8GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX8GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX8GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX8GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX8GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX8GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX8GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX8GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX8GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX8GCR0_RTTOAL_MASK -#define DDR_PHY_DX8GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX8GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX8GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX8GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX8GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX8GCR0_RTTOH_SHIFT #undef DDR_PHY_DX8GCR0_RTTOH_MASK -#define DDR_PHY_DX8GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX8GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX8GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX8GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX8GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX8GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX8GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX8GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX8GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX8GCR0_DQSRPD_MASK -#define DDR_PHY_DX8GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX8GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX8GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX8GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSGPDR_MASK -#define DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX8GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX8GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_4_MASK -#define DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX8GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX8GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX8GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX8GCR0_DQSGODT_MASK -#define DDR_PHY_DX8GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX8GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX8GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX8GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX8GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX8GCR0_DQSGOE_MASK -#define DDR_PHY_DX8GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX8GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX8GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX8GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX8GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX8GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX8GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX8GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX8GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX8GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX8GCR1_RESERVED_15_MASK -#define DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX8GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX8GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX8GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX8GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX8GCR1_QSNSEL_MASK -#define DDR_PHY_DX8GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX8GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX8GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX8GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX8GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX8GCR1_QSSEL_SHIFT #undef DDR_PHY_DX8GCR1_QSSEL_MASK -#define DDR_PHY_DX8GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX8GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX8GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX8GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX8GCR1_OEEN_DEFVAL #undef DDR_PHY_DX8GCR1_OEEN_SHIFT #undef DDR_PHY_DX8GCR1_OEEN_MASK -#define DDR_PHY_DX8GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX8GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX8GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX8GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX8GCR1_PDREN_DEFVAL #undef DDR_PHY_DX8GCR1_PDREN_SHIFT #undef DDR_PHY_DX8GCR1_PDREN_MASK -#define DDR_PHY_DX8GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX8GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX8GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX8GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX8GCR1_TEEN_DEFVAL #undef DDR_PHY_DX8GCR1_TEEN_SHIFT #undef DDR_PHY_DX8GCR1_TEEN_MASK -#define DDR_PHY_DX8GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX8GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX8GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX8GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX8GCR1_DSEN_DEFVAL #undef DDR_PHY_DX8GCR1_DSEN_SHIFT #undef DDR_PHY_DX8GCR1_DSEN_MASK -#define DDR_PHY_DX8GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX8GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX8GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX8GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX8GCR1_DMEN_DEFVAL #undef DDR_PHY_DX8GCR1_DMEN_SHIFT #undef DDR_PHY_DX8GCR1_DMEN_MASK -#define DDR_PHY_DX8GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX8GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX8GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX8GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX8GCR1_DQEN_DEFVAL #undef DDR_PHY_DX8GCR1_DQEN_SHIFT #undef DDR_PHY_DX8GCR1_DQEN_MASK -#define DDR_PHY_DX8GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX8GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX8GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX8GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX8GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX8GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFPEN_MASK -#define DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX8GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX8GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFEEN_MASK -#define DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX8GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX8GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSEN_MASK -#define DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX8GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX8GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_24_MASK -#define DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX8GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX8GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX8GCR4_DXREFESEL_MASK -#define DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX8GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX8GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX8GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX8GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX8GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX8GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFIEN_MASK -#define DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX8GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX8GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX8GCR4_DXREFIMON_MASK -#define DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX8GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX8GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_31_MASK -#define DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX8GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX8GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_23_MASK -#define DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX8GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX8GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX8GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX8GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_15_MASK -#define DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX8GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX8GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX8GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX8GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_7_MASK -#define DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX8GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX8GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX8GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX8GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX8GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX8GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX8GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX8GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX8GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX8GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX8GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX8GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX8GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX8GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX8GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX8GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX8LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX8LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX8LCDLR2_DQSGD_MASK -#define DDR_PHY_DX8LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX8LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX8GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX8GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX8GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX8GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX8GTR0_WDQSL_MASK -#define DDR_PHY_DX8GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX8GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX8GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX8GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX8GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX8GTR0_WLSL_SHIFT -#undef DDR_PHY_DX8GTR0_WLSL_MASK -#define DDR_PHY_DX8GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX8GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX8GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX8GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX8GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX8GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX8GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX8GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX8GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX8GTR0_DGSL_SHIFT -#undef DDR_PHY_DX8GTR0_DGSL_MASK -#define DDR_PHY_DX8GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX8GTR0_DGSL_MASK 0x0000001FU - -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL0OSC_LBMODE_MASK -#define DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL0OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL0OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL0OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL0OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL0OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL0OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL0OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL0OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL0OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL0OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL0OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL0OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL0OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL0OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL0OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL0OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL0OSC_DLTST_MASK -#define DDR_PHY_DX8SL0OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL0OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL0OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL0OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL0OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL0OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL0OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL0OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL0OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL0OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL0OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL0OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL0OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCEN_MASK -#define DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL0OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL0OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL0PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL0PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL0PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL0PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL0PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL0PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL0PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL0PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL0DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL0DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL0DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL0DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL0DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL0DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL0DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL0DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL0DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL0DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL0DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL0DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL0IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL0IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL0IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL0IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL0IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL0IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL1OSC_LBMODE_MASK -#define DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL1OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL1OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL1OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL1OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL1OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL1OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL1OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL1OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL1OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL1OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL1OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL1OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL1OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL1OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL1OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL1OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL1OSC_DLTST_MASK -#define DDR_PHY_DX8SL1OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL1OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL1OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL1OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL1OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL1OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL1OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL1OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL1OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL1OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL1OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL1OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL1OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCEN_MASK -#define DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL1OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL1OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL1PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL1PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL1PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL1PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL1PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL1PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL1PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL1PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL1DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL1DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL1DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL1DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL1DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL1DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL1DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL1DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL1DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL1DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL1DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL1DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL1IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL1IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL1IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL1IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL1IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL1IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL2OSC_LBMODE_MASK -#define DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL2OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL2OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL2OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL2OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL2OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL2OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL2OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL2OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL2OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL2OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL2OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL2OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL2OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL2OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL2OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL2OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL2OSC_DLTST_MASK -#define DDR_PHY_DX8SL2OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL2OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL2OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL2OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL2OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL2OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL2OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL2OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL2OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL2OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL2OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL2OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL2OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCEN_MASK -#define DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL2OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL2OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL2PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL2PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL2PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL2PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL2PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL2PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL2PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL2PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL2DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL2DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL2DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL2DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL2DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL2DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL2DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL2DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL2DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL2DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL2DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL2DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL2IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL2IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL2IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL2IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL2IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL2IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL3OSC_LBMODE_MASK -#define DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL3OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL3OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL3OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL3OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL3OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL3OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL3OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL3OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL3OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL3OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL3OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL3OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL3OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL3OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL3OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL3OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL3OSC_DLTST_MASK -#define DDR_PHY_DX8SL3OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL3OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL3OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL3OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL3OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL3OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL3OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL3OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL3OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL3OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL3OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL3OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL3OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCEN_MASK -#define DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL3OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL3OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL3PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL3PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL3PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL3PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL3PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL3PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL3PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL3PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL3DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL3DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL3DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL3DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL3DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL3DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL3DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL3DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL3DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL3DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL3DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL3DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL3IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL3IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL3IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL3IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL3IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL3IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL4OSC_LBMODE_MASK -#define DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL4OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL4OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL4OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL4OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL4OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL4OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL4OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL4OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL4OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL4OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL4OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL4OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL4OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL4OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL4OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL4OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL4OSC_DLTST_MASK -#define DDR_PHY_DX8SL4OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL4OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL4OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL4OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL4OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL4OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL4OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL4OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL4OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL4OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL4OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL4OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL4OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCEN_MASK -#define DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL4OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL4OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL4PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL4PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL4PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL4PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL4PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL4PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL4PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL4PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL4DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL4DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL4DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL4DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL4DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL4DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL4DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL4DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL4DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL4DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL4DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL4DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL4IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL4IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL4IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL4IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL4IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL4IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_MASK +#define DDR_PHY_DX8SLBPLLCR0_CPPC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SLBPLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_MASK +#define DDR_PHY_DX8SLBPLLCR0_CPIC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SLBPLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_ATC_MASK +#define DDR_PHY_DX8SLBPLLCR0_ATC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SLBPLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_DTC_MASK +#define DDR_PHY_DX8SLBPLLCR0_DTC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SLBPLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DXSR_MASK -#define DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SLBDQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SLBDQSCTL_DXSR_MASK 0x00000300U -/*DQS# Resistor*/ +/* +* DQS# Resistor +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK 0x0000000FU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_31_DEFVAL -#undef DDR_PHY_PIR_RESERVED_31_SHIFT -#undef DDR_PHY_PIR_RESERVED_31_MASK -#define DDR_PHY_PIR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_31_SHIFT 31 -#define DDR_PHY_PIR_RESERVED_31_MASK 0x80000000U - -/*Impedance Calibration Bypass*/ -#undef DDR_PHY_PIR_ZCALBYP_DEFVAL -#undef DDR_PHY_PIR_ZCALBYP_SHIFT -#undef DDR_PHY_PIR_ZCALBYP_MASK -#define DDR_PHY_PIR_ZCALBYP_DEFVAL 0x00000000 -#define DDR_PHY_PIR_ZCALBYP_SHIFT 30 -#define DDR_PHY_PIR_ZCALBYP_MASK 0x40000000U - -/*Digital Delay Line (DDL) Calibration Pause*/ -#undef DDR_PHY_PIR_DCALPSE_DEFVAL -#undef DDR_PHY_PIR_DCALPSE_SHIFT -#undef DDR_PHY_PIR_DCALPSE_MASK -#define DDR_PHY_PIR_DCALPSE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DCALPSE_SHIFT 29 -#define DDR_PHY_PIR_DCALPSE_MASK 0x20000000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_28_21_DEFVAL -#undef DDR_PHY_PIR_RESERVED_28_21_SHIFT -#undef DDR_PHY_PIR_RESERVED_28_21_MASK -#define DDR_PHY_PIR_RESERVED_28_21_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_28_21_SHIFT 21 -#define DDR_PHY_PIR_RESERVED_28_21_MASK 0x1FE00000U - -/*Write DQS2DQ Training*/ -#undef DDR_PHY_PIR_DQS2DQ_DEFVAL -#undef DDR_PHY_PIR_DQS2DQ_SHIFT -#undef DDR_PHY_PIR_DQS2DQ_MASK -#define DDR_PHY_PIR_DQS2DQ_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DQS2DQ_SHIFT 20 -#define DDR_PHY_PIR_DQS2DQ_MASK 0x00100000U - -/*RDIMM Initialization*/ -#undef DDR_PHY_PIR_RDIMMINIT_DEFVAL -#undef DDR_PHY_PIR_RDIMMINIT_SHIFT -#undef DDR_PHY_PIR_RDIMMINIT_MASK -#define DDR_PHY_PIR_RDIMMINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDIMMINIT_SHIFT 19 -#define DDR_PHY_PIR_RDIMMINIT_MASK 0x00080000U - -/*Controller DRAM Initialization*/ -#undef DDR_PHY_PIR_CTLDINIT_DEFVAL -#undef DDR_PHY_PIR_CTLDINIT_SHIFT -#undef DDR_PHY_PIR_CTLDINIT_MASK -#define DDR_PHY_PIR_CTLDINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_CTLDINIT_SHIFT 18 -#define DDR_PHY_PIR_CTLDINIT_MASK 0x00040000U - -/*VREF Training*/ -#undef DDR_PHY_PIR_VREF_DEFVAL -#undef DDR_PHY_PIR_VREF_SHIFT -#undef DDR_PHY_PIR_VREF_MASK -#define DDR_PHY_PIR_VREF_DEFVAL 0x00000000 -#define DDR_PHY_PIR_VREF_SHIFT 17 -#define DDR_PHY_PIR_VREF_MASK 0x00020000U - -/*Static Read Training*/ -#undef DDR_PHY_PIR_SRD_DEFVAL -#undef DDR_PHY_PIR_SRD_SHIFT -#undef DDR_PHY_PIR_SRD_MASK -#define DDR_PHY_PIR_SRD_DEFVAL 0x00000000 -#define DDR_PHY_PIR_SRD_SHIFT 16 -#define DDR_PHY_PIR_SRD_MASK 0x00010000U - -/*Write Data Eye Training*/ -#undef DDR_PHY_PIR_WREYE_DEFVAL -#undef DDR_PHY_PIR_WREYE_SHIFT -#undef DDR_PHY_PIR_WREYE_MASK -#define DDR_PHY_PIR_WREYE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WREYE_SHIFT 15 -#define DDR_PHY_PIR_WREYE_MASK 0x00008000U - -/*Read Data Eye Training*/ -#undef DDR_PHY_PIR_RDEYE_DEFVAL -#undef DDR_PHY_PIR_RDEYE_SHIFT -#undef DDR_PHY_PIR_RDEYE_MASK -#define DDR_PHY_PIR_RDEYE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDEYE_SHIFT 14 -#define DDR_PHY_PIR_RDEYE_MASK 0x00004000U - -/*Write Data Bit Deskew*/ -#undef DDR_PHY_PIR_WRDSKW_DEFVAL -#undef DDR_PHY_PIR_WRDSKW_SHIFT -#undef DDR_PHY_PIR_WRDSKW_MASK -#define DDR_PHY_PIR_WRDSKW_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WRDSKW_SHIFT 13 -#define DDR_PHY_PIR_WRDSKW_MASK 0x00002000U - -/*Read Data Bit Deskew*/ -#undef DDR_PHY_PIR_RDDSKW_DEFVAL -#undef DDR_PHY_PIR_RDDSKW_SHIFT -#undef DDR_PHY_PIR_RDDSKW_MASK -#define DDR_PHY_PIR_RDDSKW_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDDSKW_SHIFT 12 -#define DDR_PHY_PIR_RDDSKW_MASK 0x00001000U - -/*Write Leveling Adjust*/ -#undef DDR_PHY_PIR_WLADJ_DEFVAL -#undef DDR_PHY_PIR_WLADJ_SHIFT -#undef DDR_PHY_PIR_WLADJ_MASK -#define DDR_PHY_PIR_WLADJ_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WLADJ_SHIFT 11 -#define DDR_PHY_PIR_WLADJ_MASK 0x00000800U - -/*Read DQS Gate Training*/ -#undef DDR_PHY_PIR_QSGATE_DEFVAL -#undef DDR_PHY_PIR_QSGATE_SHIFT -#undef DDR_PHY_PIR_QSGATE_MASK -#define DDR_PHY_PIR_QSGATE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_QSGATE_SHIFT 10 -#define DDR_PHY_PIR_QSGATE_MASK 0x00000400U - -/*Write Leveling*/ -#undef DDR_PHY_PIR_WL_DEFVAL -#undef DDR_PHY_PIR_WL_SHIFT -#undef DDR_PHY_PIR_WL_MASK -#define DDR_PHY_PIR_WL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WL_SHIFT 9 -#define DDR_PHY_PIR_WL_MASK 0x00000200U - -/*DRAM Initialization*/ -#undef DDR_PHY_PIR_DRAMINIT_DEFVAL -#undef DDR_PHY_PIR_DRAMINIT_SHIFT -#undef DDR_PHY_PIR_DRAMINIT_MASK -#define DDR_PHY_PIR_DRAMINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DRAMINIT_SHIFT 8 -#define DDR_PHY_PIR_DRAMINIT_MASK 0x00000100U - -/*DRAM Reset (DDR3/DDR4/LPDDR4 Only)*/ -#undef DDR_PHY_PIR_DRAMRST_DEFVAL -#undef DDR_PHY_PIR_DRAMRST_SHIFT -#undef DDR_PHY_PIR_DRAMRST_MASK -#define DDR_PHY_PIR_DRAMRST_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DRAMRST_SHIFT 7 -#define DDR_PHY_PIR_DRAMRST_MASK 0x00000080U - -/*PHY Reset*/ -#undef DDR_PHY_PIR_PHYRST_DEFVAL -#undef DDR_PHY_PIR_PHYRST_SHIFT -#undef DDR_PHY_PIR_PHYRST_MASK -#define DDR_PHY_PIR_PHYRST_DEFVAL 0x00000000 -#define DDR_PHY_PIR_PHYRST_SHIFT 6 -#define DDR_PHY_PIR_PHYRST_MASK 0x00000040U - -/*Digital Delay Line (DDL) Calibration*/ -#undef DDR_PHY_PIR_DCAL_DEFVAL -#undef DDR_PHY_PIR_DCAL_SHIFT -#undef DDR_PHY_PIR_DCAL_MASK -#define DDR_PHY_PIR_DCAL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DCAL_SHIFT 5 -#define DDR_PHY_PIR_DCAL_MASK 0x00000020U - -/*PLL Initialiazation*/ -#undef DDR_PHY_PIR_PLLINIT_DEFVAL -#undef DDR_PHY_PIR_PLLINIT_SHIFT -#undef DDR_PHY_PIR_PLLINIT_MASK -#define DDR_PHY_PIR_PLLINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_PLLINIT_SHIFT 4 -#define DDR_PHY_PIR_PLLINIT_MASK 0x00000010U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_3_DEFVAL -#undef DDR_PHY_PIR_RESERVED_3_SHIFT -#undef DDR_PHY_PIR_RESERVED_3_MASK -#define DDR_PHY_PIR_RESERVED_3_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_3_SHIFT 3 -#define DDR_PHY_PIR_RESERVED_3_MASK 0x00000008U - -/*CA Training*/ -#undef DDR_PHY_PIR_CA_DEFVAL -#undef DDR_PHY_PIR_CA_SHIFT -#undef DDR_PHY_PIR_CA_MASK -#define DDR_PHY_PIR_CA_DEFVAL 0x00000000 -#define DDR_PHY_PIR_CA_SHIFT 2 -#define DDR_PHY_PIR_CA_MASK 0x00000004U - -/*Impedance Calibration*/ -#undef DDR_PHY_PIR_ZCAL_DEFVAL -#undef DDR_PHY_PIR_ZCAL_SHIFT -#undef DDR_PHY_PIR_ZCAL_MASK -#define DDR_PHY_PIR_ZCAL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_ZCAL_SHIFT 1 -#define DDR_PHY_PIR_ZCAL_MASK 0x00000002U - -/*Initialization Trigger*/ -#undef DDR_PHY_PIR_INIT_DEFVAL -#undef DDR_PHY_PIR_INIT_SHIFT -#undef DDR_PHY_PIR_INIT_MASK -#define DDR_PHY_PIR_INIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_INIT_SHIFT 0 -#define DDR_PHY_PIR_INIT_MASK 0x00000001U +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK 0x0000000FU #undef IOU_SLCR_MIO_PIN_0_OFFSET #define IOU_SLCR_MIO_PIN_0_OFFSET 0XFF180000 #undef IOU_SLCR_MIO_PIN_1_OFFSET @@ -17120,7308 +21593,9482 @@ #undef IOU_SLCR_MIO_LOOPBACK_OFFSET #define IOU_SLCR_MIO_LOOPBACK_OFFSET 0XFF180200 -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- + * (QSPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_0_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_0_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_0_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_0_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[0]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[0]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[0]- (Test Scan Port) = test_scan, Output, test_scan_out[0 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_0_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_0_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_0_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_0_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Data - us)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (Q + * SPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_1_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_1_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_1_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_1_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[1]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[1]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[1]- (Test Scan Port) = test_scan, Output, test_scan_out[1 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_1_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_1_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Ou + * tput, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) +*/ #undef IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_1_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_1_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI + * Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_2_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_2_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_2_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_2_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[2]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[2]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[2]- (Test Scan Port) = test_scan, Output, test_scan_out[2 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_2_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_2_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, Input, ttc2_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, I + * nput, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_2_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_2_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI + * Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_3_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_3_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_3_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_3_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[3]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[3]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[3]- (Test Scan Port) = test_scan, Output, test_scan_out[3 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_3_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_3_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_3_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_3_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Data - us)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- ( + * QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_4_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_4_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_4_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_4_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[4]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[4]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[4]- (Test Scan Port) = test_scan, Output, test_scan_out[4 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_4_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_4_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_4_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_4_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- (QSPI Slave Select)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- + * (QSPI Slave Select) +*/ #undef IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_5_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_5_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_5_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_5_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[5]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[5]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[5]- (Test Scan Port) = test_scan, Output, test_scan_out[5 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_5_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_5_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_5_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_5_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_l + * pbk- (QSPI Clock to be fed-back) +*/ #undef IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_6_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_6_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_6_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_6_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[6]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[6]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[6]- (Test Scan Port) = test_scan, Output, test_scan_out[6 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_6_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_6_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1 - sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, - Output, tracedq[4]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= s + * pi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TT + * C Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, + * Output, tracedq[4]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_6_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_6_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_upper- (QSPI Slave Select upper)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_ + * upper- (QSPI Slave Select upper) +*/ #undef IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_7_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_7_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_7_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_7_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[7]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[7]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[7]- (Test Scan Port) = test_scan, Output, test_scan_out[7 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_7_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_7_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - tc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, - racedq[5]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Ma + * ster Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua + * 0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, t + * racedq[5]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_7_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_7_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [0]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_8_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_8_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_8_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_8_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[8]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[8]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[8]- (Test Scan Port) = test_scan, Output, test_scan_out[8 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_8_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_8_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc - , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tr - ce Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Maste + * r Selects) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_ + * txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tra + * ce Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_8_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_8_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [1]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_9_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_9_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_9_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_9_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[9]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[9]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[9]- (Test Scan Port) = test_scan, Output, test_scan_out[9 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_9_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_9_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - utput, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (U - RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master S + * elects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, + * Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UA + * RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_9_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_9_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [2]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_10_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_10_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_10_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_10_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[10]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[10]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[10]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 10]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_10_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_10_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_10_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_10_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [3]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_11_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_11_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_11_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_11_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[11]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[11]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[11]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 11]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_11_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_11_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_11_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_11_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_ + * upper- (QSPI Upper Clock) +*/ #undef IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_12_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_12_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - */ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) +*/ #undef IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_12_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_12_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[12]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[12]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[12]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 12]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_12_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_12_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cl - ck) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trac - dq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJT + * AG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_ + * sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, O + * utput, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace + * dq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_12_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_12_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_13_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_13_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_13_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_13_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, test_scan_out[13]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, + * test_scan_out[13]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_13_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_13_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave - out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Dat - bus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTA + * G TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, + * Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UAR + * T receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_13_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_13_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_14_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_14_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND Command Latch Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND + * Command Latch Enable) +*/ #undef IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_14_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_14_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, test_scan_out[14]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, + * test_scan_out[14]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_14_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_14_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_ - n- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJT + * AG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, + * Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver + * serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_14_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_14_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_15_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_15_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND Address Latch Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND + * Address Latch Enable) +*/ #undef IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_15_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_15_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, test_scan_out[15]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, + * test_scan_out[15]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_15_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_15_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out - 0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seri - l output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJT + * AG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outp + * ut, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_ou + * t- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seria + * l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_15_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_15_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_16_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_16_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_16_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_16_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, test_scan_out[16]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, + * test_scan_out[16]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_16_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_16_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_16_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_16_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_17_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_17_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_17_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_17_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, test_scan_out[17]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, + * test_scan_out[17]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_17_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_17_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_17_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_17_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_18_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_18_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_18_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_18_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, test_scan_out[18]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, + * test_scan_out[18]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_18_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_18_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_18_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_18_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_19_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_19_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_19_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_19_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, test_scan_out[19]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, + * test_scan_out[19]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_19_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_19_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_19_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_19_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_20_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_20_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_20_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_20_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, test_scan_out[20]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, + * test_scan_out[20]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_20_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_20_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= t - c1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua + * 1_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_20_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_20_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_21_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_21_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_21_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_21_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= test_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, test_scan_out[21]- (Test Scan Port) - = csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= tes + * t_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, t + * est_scan_out[21]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU E + * xt Tamper) +*/ #undef IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_21_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_21_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- - UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc + * 1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- ( + * UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_21_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_21_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_22_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_22_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAND Write Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAN + * D Write Enable) +*/ #undef IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_22_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_22_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- - (Test Scan Port) = test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- (Test Scan Port) = + * test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, c + * su_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_22_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_22_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed +*/ #undef IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_22_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_22_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_23_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_23_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_23_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_23_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= test_scan, Input, test_scan_in - 23]- (Test Scan Port) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper - */ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= test_scan, Input, test_scan_in[23]- (Test Scan Po + * rt) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Inp + * ut, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_23_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_23_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_23_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_23_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_24_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_24_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_24_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_24_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= test_scan, Input, test - scan_in[24]- (Test Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ex - Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= test_scan, Input, test_scan_in[24]- (Test + * Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= + * csu, Input, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_24_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_24_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, - Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= N + * ot Used +*/ #undef IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_24_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_24_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_25_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_25_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAND Read Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAN + * D Read Enable) +*/ #undef IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_25_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_25_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= test_scan, Input, - test_scan_in[25]- (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (C - U Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= test_scan, Input, test_scan_in[25]- + * (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port + * ) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_25_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_25_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_out- (TTC Waveform - lock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_ou + * t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in + * put) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_25_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_25_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_26_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_26_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_26_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_26_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[26]- (Test Sc - n Port) = test_scan, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[26]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_26_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_26_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_26_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_26_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_27_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_27_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_27_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_27_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[27]- (Test Sc - n Port) = test_scan, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[27]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_27_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_27_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_27_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_27_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_28_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_28_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_28_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_28_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[28]- (Test Sc - n Port) = test_scan, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[28]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_28_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_28_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_28_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_28_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_29_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_29_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_29_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_29_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[29]- (Test Sc - n Port) = test_scan, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[29]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_29_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_29_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, + * spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_29_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_29_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_30_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_30_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_30_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_30_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[30]- (Test Sc - n Port) = test_scan, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[30]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_30_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_30_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_so - (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output - tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0 + * , Output, spi0_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock + * ) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, + * tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_30_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_30_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_31_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_31_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_31_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_31_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[31]- (Test Sc - n Port) = test_scan, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[31]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_31_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_31_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi - _si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial out - ut) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TT + * C Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial outp + * ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_31_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_31_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_32_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_32_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - */ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) +*/ #undef IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_32_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_32_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[32]- (Test S - an Port) = test_scan, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[32]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_32_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_32_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi - _sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= - race, Output, tracedq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= t + * race, Output, tracedq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_32_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_32_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_33_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_33_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_33_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_33_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[33]- (Test S - an Port) = test_scan, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[33]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_33_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_33_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= t - c3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, traced - [11]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Mas + * ter Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1 + * , Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq + * [11]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_33_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_33_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_34_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_34_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_34_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_34_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[34]- (Test S - an Port) = test_scan, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[34]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_34_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_34_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc2 - Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace P - rt Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master + * Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rx + * d- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Po + * rt Databus) +*/ #undef IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_34_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_34_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_35_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_35_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_35_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_35_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[35]- (Test S - an Port) = test_scan, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[35]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_35_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_35_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- - UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2 + * , Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- ( + * UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Po + * rt Databus) +*/ #undef IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_35_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_35_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_36_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_36_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_36_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_36_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[36]- (Test S - an Port) = test_scan, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[36]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_36_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_36_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_36_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_36_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_37_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_37_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_37_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_37_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[37]- (Test S - an Port) = test_scan, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[37]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_37_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_37_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_37_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_37_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_38_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_38_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_38_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_38_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_38_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_38_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clo - k) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- - (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTA + * G TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_s + * clk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, In + * put, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- + * (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_38_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_38_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_39_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_39_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_39_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_39_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= sd1, Input, sd1_data_i - [4]- (8-bit Data bus) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= sd1, Input, sd1_data_in[4]- (8-bit Data b + * us) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_39_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_39_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, Output, ttc0_wav - _out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port - Control Signal)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJT + * AG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, + * Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (U + * ART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port + * Control Signal) +*/ #undef IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_39_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_39_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_40_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_40_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_40_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_40_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= sd1, Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[5]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= sd1 + * , Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[ + * 5]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_40_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_40_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3, Input, ttc3_clk - in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJ + * TAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3 + * , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmi + * tter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_40_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_40_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_41_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_41_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_41_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_41_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_out[6]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[6]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_41_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_41_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[ - ]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in - ut) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTA + * G TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outpu + * t, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out + * - (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inp + * ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_41_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_41_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_42_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_42_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_42_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_42_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_out[7]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[7]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_42_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_42_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= sp + * i0, Output, spi0_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_42_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_42_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_43_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_43_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_43_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_43_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_43_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_43_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, s - i0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) + * 4= spi0, Input, spi0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_43_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_43_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_44_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_44_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_44_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_44_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_44_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_44_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, s - i1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4 + * = spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_44_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_44_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_45_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_45_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_45_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_45_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_45_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_45_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_45_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_45_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_46_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_46_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_46_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_46_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_46_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_46_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= tt - 0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_46_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_46_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_47_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_47_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_47_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_47_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_47_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_47_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Maste + * r Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= tt + * c0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_47_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_47_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_48_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_48_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_48_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_48_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_48_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_48_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not U - ed*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Us + * ed +*/ #undef IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_48_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_48_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_49_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_49_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_49_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_49_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8 - bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd + * 1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_49_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_49_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_49_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_49_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) +*/ #undef IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_50_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_50_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_50_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_50_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Input, sd1_c - d_in- (Command Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Input, sd1_cmd_in- (Command Ind + * icator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_50_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_50_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= ttc2, Input, ttc2 - clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= + * ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART rece + * iver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_50_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_50_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) +*/ #undef IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_51_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_51_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_51_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_51_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdio1_clk_out- (SDSDIO clock) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdi + * o1_clk_out- (SDSDIO clock) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_51_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_51_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Data) 4= mdio1, Outp - t, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter - serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Dat + * a) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wa + * ve_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter + * serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_51_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_51_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_52_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_52_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_in- (ULPI Clock)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_i + * n- (ULPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_52_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_52_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_52_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_52_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_52_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_52_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_53_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_53_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- + * (Data bus direction control) +*/ #undef IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_53_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_53_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_53_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_53_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Ou + * tput, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) +*/ #undef IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_53_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_53_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_54_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_54_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[2]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_54_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_54_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_54_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_54_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, I + * nput, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_54_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_54_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_55_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_55_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- + * (Data flow control signal from the PHY) +*/ #undef IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_55_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_55_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_55_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_55_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_55_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_55_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_56_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_56_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[0]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_56_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_56_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_56_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_56_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_56_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_56_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_57_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_57_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[1]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_57_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_57_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_57_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_57_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_57_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_57_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_58_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_58_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- + * (Asserted to end or interrupt transfers) +*/ #undef IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_58_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_58_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_58_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_58_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_58_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_58_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_59_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_59_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[3]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_59_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_59_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_59_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_59_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_59_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_59_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_60_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_60_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[4]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_60_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_60_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_60_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_60_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_60_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_60_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_61_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_61_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[5]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_61_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_61_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_61_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_61_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, spi1_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, + * spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_61_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_61_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_62_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_62_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[6]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_62_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_62_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_62_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_62_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_62_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_62_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_63_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_63_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[7]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_63_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_63_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_63_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_63_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_63_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_63_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_64_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_64_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_in- (ULPI Clock)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_i + * n- (ULPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_64_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_64_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_64_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_64_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, s - i0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - trace, Output, tracedq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4 + * = spi0, Output, spi0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * trace, Output, tracedq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_64_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_64_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_65_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_65_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- + * (Data bus direction control) +*/ #undef IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_65_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_65_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_65_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_65_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= - ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trac - dq[11]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace + * dq[11]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_65_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_65_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_66_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_66_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[2]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_66_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_66_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= Not + * Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_66_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_66_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= tt - 2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace - Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace + * Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_66_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_66_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_67_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_67_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- + * (Data flow control signal from the PHY) +*/ #undef IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_67_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_67_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= N + * ot Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_67_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_67_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Maste + * r Selects) 4= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= tt + * c2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace + * Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_67_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_67_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_68_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_68_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[0]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_68_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_68_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= N + * ot Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_68_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_68_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_68_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_68_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_69_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_69_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[1]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_69_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_69_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_69_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_69_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_69_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_69_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_70_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_70_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- + * (Asserted to end or interrupt transfers) +*/ #undef IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_70_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_70_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_70_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_70_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed +*/ #undef IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_70_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_70_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_71_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_71_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[3]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_71_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_71_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_71_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_71_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_71_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_71_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_72_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_72_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[4]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_72_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_72_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_72_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_72_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= N - t Used 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= Not Used 6= ua1, Output, ua1_txd- (UART transmitter seri + * al output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_72_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_72_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_73_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_73_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[5]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_73_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_73_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_73_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_73_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not + * Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_73_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_73_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_74_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_74_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[6]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_74_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_74_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[3]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_74_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_74_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- ( + * UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_74_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_74_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_75_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_75_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[7]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_75_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_75_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Comma - d Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Command Indicator) = sd1 + * , Output, sdio1_cmd_out- (Command Indicator) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_75_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_75_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_t + * xd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_75_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_75_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_76_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_76_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_76_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_76_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Output, sdio - _clk_out- (SDSDIO clock) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Output, sdio1_clk_out- (SDSDIO + * clock) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_76_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_76_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= mdio0, Output, gem0_mdc- (MDIO Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2_mdc- (MDIO Clock - 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= mdio0, Output, gem0_mdc- (MDI + * O Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2 + * _mdc- (MDIO Clock) 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_76_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_76_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_77_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_77_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_77_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_77_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio + * 1_cd_n- (SD card detect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_77_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_77_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= mdio0, Input, gem0_mdio_in- (MDIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, gem1_mdio_in- (MD - O Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_o - t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Output, gem3_mdio_out- (MDIO Data) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= mdio0, Input, gem0_mdio_in- (M + * DIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, + * gem1_mdio_in- (MDIO Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5 + * = mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_ou + * t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Outp + * ut, gem3_mdio_out- (MDIO Data) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_77_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_77_L3_SEL_MASK 0x000000E0U -/*Master Tri-state Enable for pin 0, active high*/ +/* +* Master Tri-state Enable for pin 0, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 1, active high*/ +/* +* Master Tri-state Enable for pin 1, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 2, active high*/ +/* +* Master Tri-state Enable for pin 2, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 3, active high*/ +/* +* Master Tri-state Enable for pin 3, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 4, active high*/ +/* +* Master Tri-state Enable for pin 4, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 5, active high*/ +/* +* Master Tri-state Enable for pin 5, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 6, active high*/ +/* +* Master Tri-state Enable for pin 6, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 7, active high*/ +/* +* Master Tri-state Enable for pin 7, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 8, active high*/ +/* +* Master Tri-state Enable for pin 8, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 9, active high*/ +/* +* Master Tri-state Enable for pin 9, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 10, active high*/ +/* +* Master Tri-state Enable for pin 10, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 11, active high*/ +/* +* Master Tri-state Enable for pin 11, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 12, active high*/ +/* +* Master Tri-state Enable for pin 12, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 13, active high*/ +/* +* Master Tri-state Enable for pin 13, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK 0x00002000U -/*Master Tri-state Enable for pin 14, active high*/ +/* +* Master Tri-state Enable for pin 14, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT 14 -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK 0x00004000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT 14 +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK 0x00004000U -/*Master Tri-state Enable for pin 15, active high*/ +/* +* Master Tri-state Enable for pin 15, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT 15 -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK 0x00008000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT 15 +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK 0x00008000U -/*Master Tri-state Enable for pin 16, active high*/ +/* +* Master Tri-state Enable for pin 16, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT 16 -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK 0x00010000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT 16 +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK 0x00010000U -/*Master Tri-state Enable for pin 17, active high*/ +/* +* Master Tri-state Enable for pin 17, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT 17 -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK 0x00020000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT 17 +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK 0x00020000U -/*Master Tri-state Enable for pin 18, active high*/ +/* +* Master Tri-state Enable for pin 18, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT 18 -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK 0x00040000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT 18 +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK 0x00040000U -/*Master Tri-state Enable for pin 19, active high*/ +/* +* Master Tri-state Enable for pin 19, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT 19 -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK 0x00080000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT 19 +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK 0x00080000U -/*Master Tri-state Enable for pin 20, active high*/ +/* +* Master Tri-state Enable for pin 20, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT 20 -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK 0x00100000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT 20 +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK 0x00100000U -/*Master Tri-state Enable for pin 21, active high*/ +/* +* Master Tri-state Enable for pin 21, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT 21 -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK 0x00200000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT 21 +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK 0x00200000U -/*Master Tri-state Enable for pin 22, active high*/ +/* +* Master Tri-state Enable for pin 22, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT 22 -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK 0x00400000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT 22 +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK 0x00400000U -/*Master Tri-state Enable for pin 23, active high*/ +/* +* Master Tri-state Enable for pin 23, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT 23 -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK 0x00800000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT 23 +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK 0x00800000U -/*Master Tri-state Enable for pin 24, active high*/ +/* +* Master Tri-state Enable for pin 24, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT 24 -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK 0x01000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT 24 +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK 0x01000000U -/*Master Tri-state Enable for pin 25, active high*/ +/* +* Master Tri-state Enable for pin 25, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT 25 -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK 0x02000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT 25 +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK 0x02000000U -/*Master Tri-state Enable for pin 26, active high*/ +/* +* Master Tri-state Enable for pin 26, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT 26 -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK 0x04000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT 26 +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK 0x04000000U -/*Master Tri-state Enable for pin 27, active high*/ +/* +* Master Tri-state Enable for pin 27, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT 27 -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK 0x08000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT 27 +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK 0x08000000U -/*Master Tri-state Enable for pin 28, active high*/ +/* +* Master Tri-state Enable for pin 28, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT 28 -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK 0x10000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT 28 +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK 0x10000000U -/*Master Tri-state Enable for pin 29, active high*/ +/* +* Master Tri-state Enable for pin 29, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT 29 -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK 0x20000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT 29 +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK 0x20000000U -/*Master Tri-state Enable for pin 30, active high*/ +/* +* Master Tri-state Enable for pin 30, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT 30 -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK 0x40000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT 30 +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK 0x40000000U -/*Master Tri-state Enable for pin 31, active high*/ +/* +* Master Tri-state Enable for pin 31, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT 31 -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK 0x80000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT 31 +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK 0x80000000U -/*Master Tri-state Enable for pin 32, active high*/ +/* +* Master Tri-state Enable for pin 32, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 33, active high*/ +/* +* Master Tri-state Enable for pin 33, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 34, active high*/ +/* +* Master Tri-state Enable for pin 34, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 35, active high*/ +/* +* Master Tri-state Enable for pin 35, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 36, active high*/ +/* +* Master Tri-state Enable for pin 36, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 37, active high*/ +/* +* Master Tri-state Enable for pin 37, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 38, active high*/ +/* +* Master Tri-state Enable for pin 38, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 39, active high*/ +/* +* Master Tri-state Enable for pin 39, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 40, active high*/ +/* +* Master Tri-state Enable for pin 40, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 41, active high*/ +/* +* Master Tri-state Enable for pin 41, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 42, active high*/ +/* +* Master Tri-state Enable for pin 42, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 43, active high*/ +/* +* Master Tri-state Enable for pin 43, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 44, active high*/ +/* +* Master Tri-state Enable for pin 44, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 45, active high*/ +/* +* Master Tri-state Enable for pin 45, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK 0x00002000U -/*Master Tri-state Enable for pin 46, active high*/ +/* +* Master Tri-state Enable for pin 46, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT 14 -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK 0x00004000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT 14 +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK 0x00004000U -/*Master Tri-state Enable for pin 47, active high*/ +/* +* Master Tri-state Enable for pin 47, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT 15 -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK 0x00008000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT 15 +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK 0x00008000U -/*Master Tri-state Enable for pin 48, active high*/ +/* +* Master Tri-state Enable for pin 48, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT 16 -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK 0x00010000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT 16 +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK 0x00010000U -/*Master Tri-state Enable for pin 49, active high*/ +/* +* Master Tri-state Enable for pin 49, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT 17 -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK 0x00020000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT 17 +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK 0x00020000U -/*Master Tri-state Enable for pin 50, active high*/ +/* +* Master Tri-state Enable for pin 50, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT 18 -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK 0x00040000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT 18 +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK 0x00040000U -/*Master Tri-state Enable for pin 51, active high*/ +/* +* Master Tri-state Enable for pin 51, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT 19 -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK 0x00080000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT 19 +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK 0x00080000U -/*Master Tri-state Enable for pin 52, active high*/ +/* +* Master Tri-state Enable for pin 52, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT 20 -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK 0x00100000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT 20 +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK 0x00100000U -/*Master Tri-state Enable for pin 53, active high*/ +/* +* Master Tri-state Enable for pin 53, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT 21 -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK 0x00200000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT 21 +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK 0x00200000U -/*Master Tri-state Enable for pin 54, active high*/ +/* +* Master Tri-state Enable for pin 54, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT 22 -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK 0x00400000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT 22 +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK 0x00400000U -/*Master Tri-state Enable for pin 55, active high*/ +/* +* Master Tri-state Enable for pin 55, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT 23 -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK 0x00800000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT 23 +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK 0x00800000U -/*Master Tri-state Enable for pin 56, active high*/ +/* +* Master Tri-state Enable for pin 56, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT 24 -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK 0x01000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT 24 +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK 0x01000000U -/*Master Tri-state Enable for pin 57, active high*/ +/* +* Master Tri-state Enable for pin 57, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT 25 -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK 0x02000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT 25 +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK 0x02000000U -/*Master Tri-state Enable for pin 58, active high*/ +/* +* Master Tri-state Enable for pin 58, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT 26 -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK 0x04000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT 26 +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK 0x04000000U -/*Master Tri-state Enable for pin 59, active high*/ +/* +* Master Tri-state Enable for pin 59, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT 27 -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK 0x08000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT 27 +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK 0x08000000U -/*Master Tri-state Enable for pin 60, active high*/ +/* +* Master Tri-state Enable for pin 60, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT 28 -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK 0x10000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT 28 +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK 0x10000000U -/*Master Tri-state Enable for pin 61, active high*/ +/* +* Master Tri-state Enable for pin 61, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT 29 -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK 0x20000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT 29 +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK 0x20000000U -/*Master Tri-state Enable for pin 62, active high*/ +/* +* Master Tri-state Enable for pin 62, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT 30 -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK 0x40000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT 30 +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK 0x40000000U -/*Master Tri-state Enable for pin 63, active high*/ +/* +* Master Tri-state Enable for pin 63, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT 31 -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK 0x80000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT 31 +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK 0x80000000U -/*Master Tri-state Enable for pin 64, active high*/ +/* +* Master Tri-state Enable for pin 64, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 65, active high*/ +/* +* Master Tri-state Enable for pin 65, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 66, active high*/ +/* +* Master Tri-state Enable for pin 66, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 67, active high*/ +/* +* Master Tri-state Enable for pin 67, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 68, active high*/ +/* +* Master Tri-state Enable for pin 68, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 69, active high*/ +/* +* Master Tri-state Enable for pin 69, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 70, active high*/ +/* +* Master Tri-state Enable for pin 70, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 71, active high*/ +/* +* Master Tri-state Enable for pin 71, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 72, active high*/ +/* +* Master Tri-state Enable for pin 72, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 73, active high*/ +/* +* Master Tri-state Enable for pin 73, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 74, active high*/ +/* +* Master Tri-state Enable for pin 74, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 75, active high*/ +/* +* Master Tri-state Enable for pin 75, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 76, active high*/ +/* +* Master Tri-state Enable for pin 76, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 77, active high*/ +/* +* Master Tri-state Enable for pin 77, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outp - ts to I2C 0 inputs.*/ +/* +* I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 + * = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outputs to I2C 0 inputs + * . +*/ #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT 3 -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK 0x00000008U +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT 3 +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK 0x00000008U -/*CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 R - .*/ +/* +* CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 + * = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 Rx. +*/ #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT 2 -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK 0x00000004U +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT 2 +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK 0x00000004U -/*UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 - outputs to UART 0 inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD and RI not used.*/ +/* +* UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. + * 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 outputs to UART 0 + * inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD + * and RI not used. +*/ #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT 1 -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK 0x00000002U +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT 1 +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK 0x00000002U -/*SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outp - ts to SPI 0 inputs. The other SPI core will appear on the LS Slave Select.*/ +/* +* SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 + * = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outputs to SPI 0 inputs + * . The other SPI core will appear on the LS Slave Select. +*/ #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT 0 -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK 0x00000001U +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT 0 +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK 0x00000001U +#undef CRF_APB_RST_FPD_TOP_OFFSET +#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 #undef CRL_APB_RST_LPD_IOU2_OFFSET #define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 +#undef CRL_APB_RST_LPD_TOP_OFFSET +#define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET #define CRL_APB_RST_LPD_IOU0_OFFSET 0XFF5E0230 #undef CRL_APB_RST_LPD_IOU2_OFFSET @@ -24430,8 +31077,10 @@ #define IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET 0XFF180390 #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C -#undef CRF_APB_RST_FPD_TOP_OFFSET -#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef USB3_0_FPD_POWER_PRSNT_OFFSET +#define USB3_0_FPD_POWER_PRSNT_OFFSET 0XFF9D0080 +#undef USB3_0_FPD_PIPE_CLK_OFFSET +#define USB3_0_FPD_PIPE_CLK_OFFSET 0XFF9D007C #undef CRL_APB_RST_LPD_IOU2_OFFSET #define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 #undef IOU_SLCR_CTRL_REG_SD_OFFSET @@ -24440,6 +31089,8 @@ #define IOU_SLCR_SD_CONFIG_REG2_OFFSET 0XFF180320 #undef IOU_SLCR_SD_CONFIG_REG1_OFFSET #define IOU_SLCR_SD_CONFIG_REG1_OFFSET 0XFF18031C +#undef IOU_SLCR_SD_DLL_CTRL_OFFSET +#define IOU_SLCR_SD_DLL_CTRL_OFFSET 0XFF180358 #undef IOU_SLCR_SD_CONFIG_REG3_OFFSET #define IOU_SLCR_SD_CONFIG_REG3_OFFSET 0XFF180324 #undef CRL_APB_RST_LPD_IOU2_OFFSET @@ -24468,6 +31119,8 @@ #define UART1_CONTROL_REG0_OFFSET 0XFF010000 #undef UART1_MODE_REG0_OFFSET #define UART1_MODE_REG0_OFFSET 0XFF010004 +#undef CRL_APB_RST_LPD_IOU2_OFFSET +#define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 #undef LPD_SLCR_SECURE_SLCR_ADMA_OFFSET #define LPD_SLCR_SECURE_SLCR_ADMA_OFFSET 0XFF4B0024 #undef CSU_TAMPER_STATUS_OFFSET @@ -24480,782 +31133,1656 @@ #define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET 0XFF260020 #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET #define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET 0XFF260000 +#undef GPIO_DIRM_1_OFFSET +#define GPIO_DIRM_1_OFFSET 0XFF0A0244 +#undef GPIO_OEN_1_OFFSET +#define GPIO_OEN_1_OFFSET 0XFF0A0248 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 -/*Block level reset*/ -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT 20 -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK 0x00100000U - -/*GEM 3 reset*/ -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U - -/*Block level reset*/ -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT 0 -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK 0x00000001U - -/*0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypass the Tap delay on the Rx clock signal of LQSPI*/ -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL 0x00000007 -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT 2 -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK 0x00000004U - -/*USB 0 reset for control registers*/ -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U - -/*USB 0 sleep circuit reset*/ -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U - -/*USB 0 reset*/ -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U - -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U -/*FPD WDT reset*/ +/* +* FPD WDT reset +*/ #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT 15 -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK 0x00008000U +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT 15 +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK 0x00008000U -/*GDMA block level reset*/ +/* +* GDMA block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT 6 -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK 0x00000040U +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT 6 +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK 0x00000040U -/*Pixel Processor (submodule of GPU) block level reset*/ +/* +* Pixel Processor (submodule of GPU) block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT 4 -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK 0x00000010U +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT 4 +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK 0x00000010U -/*Pixel Processor (submodule of GPU) block level reset*/ +/* +* Pixel Processor (submodule of GPU) block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT 5 -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK 0x00000020U +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT 5 +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK 0x00000020U -/*GPU block level reset*/ +/* +* GPU block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT 3 -#define CRF_APB_RST_FPD_TOP_GPU_RESET_MASK 0x00000008U +#define CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT 3 +#define CRF_APB_RST_FPD_TOP_GPU_RESET_MASK 0x00000008U -/*GT block level reset*/ +/* +* GT block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GT_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT 2 -#define CRF_APB_RST_FPD_TOP_GT_RESET_MASK 0x00000004U +#define CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT 2 +#define CRF_APB_RST_FPD_TOP_GT_RESET_MASK 0x00000004U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*Block level reset*/ +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT 20 +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK 0x00100000U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_SHIFT 19 +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_MASK 0x00080000U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_SHIFT 17 +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_MASK 0x00020000U + +/* +* Reset entire full power domain. +*/ +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_MASK +#define CRL_APB_RST_LPD_TOP_FPD_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_FPD_RESET_SHIFT 23 +#define CRL_APB_RST_LPD_TOP_FPD_RESET_MASK 0x00800000U + +/* +* LPD SWDT +*/ +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_MASK +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_SHIFT 20 +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_MASK 0x00100000U + +/* +* Sysmonitor reset +*/ +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_MASK +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_SHIFT 17 +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_MASK 0x00020000U + +/* +* Real Time Clock reset +*/ +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_MASK +#define CRL_APB_RST_LPD_TOP_RTC_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_RTC_RESET_SHIFT 16 +#define CRL_APB_RST_LPD_TOP_RTC_RESET_MASK 0x00010000U + +/* +* APM reset +*/ +#undef CRL_APB_RST_LPD_TOP_APM_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_APM_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_APM_RESET_MASK +#define CRL_APB_RST_LPD_TOP_APM_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_APM_RESET_SHIFT 15 +#define CRL_APB_RST_LPD_TOP_APM_RESET_MASK 0x00008000U + +/* +* IPI reset +*/ +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_MASK +#define CRL_APB_RST_LPD_TOP_IPI_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_IPI_RESET_SHIFT 14 +#define CRL_APB_RST_LPD_TOP_IPI_RESET_MASK 0x00004000U + +/* +* reset entire RPU power island +*/ +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_MASK +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_SHIFT 4 +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_MASK 0x00000010U + +/* +* reset ocm +*/ +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_MASK +#define CRL_APB_RST_LPD_TOP_OCM_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_OCM_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_TOP_OCM_RESET_MASK 0x00000008U + +/* +* GEM 3 reset +*/ +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT 0 +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK 0x00000001U + +/* +* 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypa + * ss the Tap delay on the Rx clock signal of LQSPI +*/ +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL 0x00000007 +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT 2 +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK 0x00000004U + +/* +* USB 0 reset for control registers +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U + +/* +* USB 0 sleep circuit reset +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U + +/* +* USB 0 reset +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U + +/* +* This bit is used to choose between PIPE power present and 1'b1 +*/ +#undef USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL +#undef USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT +#undef USB3_0_FPD_POWER_PRSNT_OPTION_MASK +#define USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL +#define USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT 0 +#define USB3_0_FPD_POWER_PRSNT_OPTION_MASK 0x00000001U + +/* +* This bit is used to choose between PIPE clock coming from SerDes and the + * suspend clk +*/ +#undef USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL +#undef USB3_0_FPD_PIPE_CLK_OPTION_SHIFT +#undef USB3_0_FPD_PIPE_CLK_OPTION_MASK +#define USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL +#define USB3_0_FPD_PIPE_CLK_OPTION_SHIFT 0 +#define USB3_0_FPD_PIPE_CLK_OPTION_MASK 0x00000001U + +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT 6 -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT 6 +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK 0x00000040U -/*SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled*/ +/* +* SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled +*/ #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT 15 -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK 0x00008000U +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT 15 +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK 0x00008000U -/*Should be set based on the final product usage 00 - Removable SCard Slot 01 - Embedded Slot for One Device 10 - Shared Bus Sl - t 11 - Reserved*/ +/* +* Should be set based on the final product usage 00 - Removable SCard Slot + * 01 - Embedded Slot for One Device 10 - Shared Bus Slot 11 - Reserved +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT 28 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK 0x30000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT 28 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK 0x30000000U -/*1.8V Support 1: 1.8V supported 0: 1.8V not supported support*/ +/* +* 1.8V Support 1: 1.8V supported 0: 1.8V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT 25 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK 0x02000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT 25 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK 0x02000000U -/*3.0V Support 1: 3.0V supported 0: 3.0V not supported support*/ +/* +* 3.0V Support 1: 3.0V supported 0: 3.0V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT 24 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK 0x01000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT 24 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK 0x01000000U -/*3.3V Support 1: 3.3V supported 0: 3.3V not supported support*/ +/* +* 3.3V Support 1: 3.3V supported 0: 3.3V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT 23 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK 0x00800000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT 23 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK 0x00800000U -/*Base Clock Frequency for SD Clock. This is the frequency of the xin_clk.*/ +/* +* Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. +*/ #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL 0x32403240 -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT 23 -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK 0x7F800000U +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL 0x32403240 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT 23 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK 0x7F800000U -/*This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. Setting to 4'b0 disables Re-Tuning Timer. 0h - Get inf - rmation via other source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n = 2(n-1) seconds -- Bh = 1024 secon - s Fh - Ch = Reserved*/ +/* +* Configures the Number of Taps (Phases) of the rxclk_in that is supported + * . +*/ +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_DEFVAL +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_SHIFT +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_MASK +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_DEFVAL 0x32403240 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_SHIFT 17 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_MASK 0x007E0000U + +/* +* Reserved. +*/ +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_DEFVAL +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_SHIFT +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_MASK +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_DEFVAL 0x00080008 +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_SHIFT 3 +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_MASK 0x00000008U + +/* +* This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. S + * etting to 4'b0 disables Re-Tuning Timer. 0h - Get information via other + * source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n + * = 2(n-1) seconds -- Bh = 1024 seconds Fh - Ch = Reserved +*/ #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL 0x06070607 -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT 22 -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK 0x03C00000U +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL 0x06070607 +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT 22 +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK 0x03C00000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT 8 -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT 8 +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK 0x00000100U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT 9 -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK 0x00000200U +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT 9 +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK 0x00000200U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK 0x00000400U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT 15 -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK 0x00008000U +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT 15 +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK 0x00008000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT 11 -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK 0x00000800U +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT 11 +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK 0x00000800U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT 12 -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK 0x00001000U +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT 12 +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK 0x00001000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT 13 -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK 0x00002000U +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT 13 +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK 0x00002000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT 14 -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK 0x00004000U +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT 14 +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK 0x00004000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT 1 -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK 0x00000002U +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT 1 +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK 0x00000002U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT 2 -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK 0x00000004U +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT 2 +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK 0x00000004U -/*Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate*/ +/* +* Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +*/ #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU -/*Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample*/ +/* +* Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +*/ #undef UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL #undef UART0_BAUD_RATE_GEN_REG0_CD_SHIFT #undef UART0_BAUD_RATE_GEN_REG0_CD_MASK -#define UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B -#define UART0_BAUD_RATE_GEN_REG0_CD_SHIFT 0 -#define UART0_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU +#define UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B +#define UART0_BAUD_RATE_GEN_REG0_CD_SHIFT 0 +#define UART0_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU -/*Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK.*/ +/* +* Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. +*/ #undef UART0_CONTROL_REG0_STPBRK_DEFVAL #undef UART0_CONTROL_REG0_STPBRK_SHIFT #undef UART0_CONTROL_REG0_STPBRK_MASK -#define UART0_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_STPBRK_SHIFT 8 -#define UART0_CONTROL_REG0_STPBRK_MASK 0x00000100U +#define UART0_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_STPBRK_SHIFT 8 +#define UART0_CONTROL_REG0_STPBRK_MASK 0x00000100U -/*Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high.*/ +/* +* Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. +*/ #undef UART0_CONTROL_REG0_STTBRK_DEFVAL #undef UART0_CONTROL_REG0_STTBRK_SHIFT #undef UART0_CONTROL_REG0_STTBRK_MASK -#define UART0_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_STTBRK_SHIFT 7 -#define UART0_CONTROL_REG0_STTBRK_MASK 0x00000080U +#define UART0_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_STTBRK_SHIFT 7 +#define UART0_CONTROL_REG0_STTBRK_MASK 0x00000080U -/*Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted.*/ +/* +* Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. +*/ #undef UART0_CONTROL_REG0_RSTTO_DEFVAL #undef UART0_CONTROL_REG0_RSTTO_SHIFT #undef UART0_CONTROL_REG0_RSTTO_MASK -#define UART0_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RSTTO_SHIFT 6 -#define UART0_CONTROL_REG0_RSTTO_MASK 0x00000040U +#define UART0_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RSTTO_SHIFT 6 +#define UART0_CONTROL_REG0_RSTTO_MASK 0x00000040U -/*Transmit disable: 0: enable transmitter 1: disable transmitter*/ +/* +* Transmit disable: 0: enable transmitter 1: disable transmitter +*/ #undef UART0_CONTROL_REG0_TXDIS_DEFVAL #undef UART0_CONTROL_REG0_TXDIS_SHIFT #undef UART0_CONTROL_REG0_TXDIS_MASK -#define UART0_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXDIS_SHIFT 5 -#define UART0_CONTROL_REG0_TXDIS_MASK 0x00000020U +#define UART0_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXDIS_SHIFT 5 +#define UART0_CONTROL_REG0_TXDIS_MASK 0x00000020U -/*Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0.*/ +/* +* Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. +*/ #undef UART0_CONTROL_REG0_TXEN_DEFVAL #undef UART0_CONTROL_REG0_TXEN_SHIFT #undef UART0_CONTROL_REG0_TXEN_MASK -#define UART0_CONTROL_REG0_TXEN_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXEN_SHIFT 4 -#define UART0_CONTROL_REG0_TXEN_MASK 0x00000010U +#define UART0_CONTROL_REG0_TXEN_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXEN_SHIFT 4 +#define UART0_CONTROL_REG0_TXEN_MASK 0x00000010U -/*Receive disable: 0: enable 1: disable, regardless of the value of RXEN*/ +/* +* Receive disable: 0: enable 1: disable, regardless of the value of RXEN +*/ #undef UART0_CONTROL_REG0_RXDIS_DEFVAL #undef UART0_CONTROL_REG0_RXDIS_SHIFT #undef UART0_CONTROL_REG0_RXDIS_MASK -#define UART0_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXDIS_SHIFT 3 -#define UART0_CONTROL_REG0_RXDIS_MASK 0x00000008U +#define UART0_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXDIS_SHIFT 3 +#define UART0_CONTROL_REG0_RXDIS_MASK 0x00000008U -/*Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero.*/ +/* +* Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. +*/ #undef UART0_CONTROL_REG0_RXEN_DEFVAL #undef UART0_CONTROL_REG0_RXEN_SHIFT #undef UART0_CONTROL_REG0_RXEN_MASK -#define UART0_CONTROL_REG0_RXEN_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXEN_SHIFT 2 -#define UART0_CONTROL_REG0_RXEN_MASK 0x00000004U +#define UART0_CONTROL_REG0_RXEN_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXEN_SHIFT 2 +#define UART0_CONTROL_REG0_RXEN_MASK 0x00000004U -/*Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed.*/ +/* +* Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. +*/ #undef UART0_CONTROL_REG0_TXRES_DEFVAL #undef UART0_CONTROL_REG0_TXRES_SHIFT #undef UART0_CONTROL_REG0_TXRES_MASK -#define UART0_CONTROL_REG0_TXRES_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXRES_SHIFT 1 -#define UART0_CONTROL_REG0_TXRES_MASK 0x00000002U +#define UART0_CONTROL_REG0_TXRES_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXRES_SHIFT 1 +#define UART0_CONTROL_REG0_TXRES_MASK 0x00000002U -/*Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed.*/ +/* +* Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. +*/ #undef UART0_CONTROL_REG0_RXRES_DEFVAL #undef UART0_CONTROL_REG0_RXRES_SHIFT #undef UART0_CONTROL_REG0_RXRES_MASK -#define UART0_CONTROL_REG0_RXRES_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXRES_SHIFT 0 -#define UART0_CONTROL_REG0_RXRES_MASK 0x00000001U +#define UART0_CONTROL_REG0_RXRES_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXRES_SHIFT 0 +#define UART0_CONTROL_REG0_RXRES_MASK 0x00000001U -/*Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback*/ +/* +* Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback +*/ #undef UART0_MODE_REG0_CHMODE_DEFVAL #undef UART0_MODE_REG0_CHMODE_SHIFT #undef UART0_MODE_REG0_CHMODE_MASK -#define UART0_MODE_REG0_CHMODE_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CHMODE_SHIFT 8 -#define UART0_MODE_REG0_CHMODE_MASK 0x00000300U +#define UART0_MODE_REG0_CHMODE_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CHMODE_SHIFT 8 +#define UART0_MODE_REG0_CHMODE_MASK 0x00000300U -/*Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved*/ +/* +* Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved +*/ #undef UART0_MODE_REG0_NBSTOP_DEFVAL #undef UART0_MODE_REG0_NBSTOP_SHIFT #undef UART0_MODE_REG0_NBSTOP_MASK -#define UART0_MODE_REG0_NBSTOP_DEFVAL 0x00000000 -#define UART0_MODE_REG0_NBSTOP_SHIFT 6 -#define UART0_MODE_REG0_NBSTOP_MASK 0x000000C0U +#define UART0_MODE_REG0_NBSTOP_DEFVAL 0x00000000 +#define UART0_MODE_REG0_NBSTOP_SHIFT 6 +#define UART0_MODE_REG0_NBSTOP_MASK 0x000000C0U -/*Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity*/ +/* +* Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty +*/ #undef UART0_MODE_REG0_PAR_DEFVAL #undef UART0_MODE_REG0_PAR_SHIFT #undef UART0_MODE_REG0_PAR_MASK -#define UART0_MODE_REG0_PAR_DEFVAL 0x00000000 -#define UART0_MODE_REG0_PAR_SHIFT 3 -#define UART0_MODE_REG0_PAR_MASK 0x00000038U +#define UART0_MODE_REG0_PAR_DEFVAL 0x00000000 +#define UART0_MODE_REG0_PAR_SHIFT 3 +#define UART0_MODE_REG0_PAR_MASK 0x00000038U -/*Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits*/ +/* +* Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits +*/ #undef UART0_MODE_REG0_CHRL_DEFVAL #undef UART0_MODE_REG0_CHRL_SHIFT #undef UART0_MODE_REG0_CHRL_MASK -#define UART0_MODE_REG0_CHRL_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CHRL_SHIFT 1 -#define UART0_MODE_REG0_CHRL_MASK 0x00000006U +#define UART0_MODE_REG0_CHRL_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CHRL_SHIFT 1 +#define UART0_MODE_REG0_CHRL_MASK 0x00000006U -/*Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8*/ +/* +* Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 +*/ #undef UART0_MODE_REG0_CLKS_DEFVAL #undef UART0_MODE_REG0_CLKS_SHIFT #undef UART0_MODE_REG0_CLKS_MASK -#define UART0_MODE_REG0_CLKS_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CLKS_SHIFT 0 -#define UART0_MODE_REG0_CLKS_MASK 0x00000001U +#define UART0_MODE_REG0_CLKS_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CLKS_SHIFT 0 +#define UART0_MODE_REG0_CLKS_MASK 0x00000001U -/*Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate*/ +/* +* Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +*/ #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU -/*Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample*/ +/* +* Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +*/ #undef UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL #undef UART1_BAUD_RATE_GEN_REG0_CD_SHIFT #undef UART1_BAUD_RATE_GEN_REG0_CD_MASK -#define UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B -#define UART1_BAUD_RATE_GEN_REG0_CD_SHIFT 0 -#define UART1_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU +#define UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B +#define UART1_BAUD_RATE_GEN_REG0_CD_SHIFT 0 +#define UART1_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU -/*Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK.*/ +/* +* Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. +*/ #undef UART1_CONTROL_REG0_STPBRK_DEFVAL #undef UART1_CONTROL_REG0_STPBRK_SHIFT #undef UART1_CONTROL_REG0_STPBRK_MASK -#define UART1_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_STPBRK_SHIFT 8 -#define UART1_CONTROL_REG0_STPBRK_MASK 0x00000100U +#define UART1_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_STPBRK_SHIFT 8 +#define UART1_CONTROL_REG0_STPBRK_MASK 0x00000100U -/*Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high.*/ +/* +* Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. +*/ #undef UART1_CONTROL_REG0_STTBRK_DEFVAL #undef UART1_CONTROL_REG0_STTBRK_SHIFT #undef UART1_CONTROL_REG0_STTBRK_MASK -#define UART1_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_STTBRK_SHIFT 7 -#define UART1_CONTROL_REG0_STTBRK_MASK 0x00000080U +#define UART1_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_STTBRK_SHIFT 7 +#define UART1_CONTROL_REG0_STTBRK_MASK 0x00000080U -/*Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted.*/ +/* +* Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. +*/ #undef UART1_CONTROL_REG0_RSTTO_DEFVAL #undef UART1_CONTROL_REG0_RSTTO_SHIFT #undef UART1_CONTROL_REG0_RSTTO_MASK -#define UART1_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RSTTO_SHIFT 6 -#define UART1_CONTROL_REG0_RSTTO_MASK 0x00000040U +#define UART1_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RSTTO_SHIFT 6 +#define UART1_CONTROL_REG0_RSTTO_MASK 0x00000040U -/*Transmit disable: 0: enable transmitter 1: disable transmitter*/ +/* +* Transmit disable: 0: enable transmitter 1: disable transmitter +*/ #undef UART1_CONTROL_REG0_TXDIS_DEFVAL #undef UART1_CONTROL_REG0_TXDIS_SHIFT #undef UART1_CONTROL_REG0_TXDIS_MASK -#define UART1_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXDIS_SHIFT 5 -#define UART1_CONTROL_REG0_TXDIS_MASK 0x00000020U +#define UART1_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXDIS_SHIFT 5 +#define UART1_CONTROL_REG0_TXDIS_MASK 0x00000020U -/*Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0.*/ +/* +* Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. +*/ #undef UART1_CONTROL_REG0_TXEN_DEFVAL #undef UART1_CONTROL_REG0_TXEN_SHIFT #undef UART1_CONTROL_REG0_TXEN_MASK -#define UART1_CONTROL_REG0_TXEN_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXEN_SHIFT 4 -#define UART1_CONTROL_REG0_TXEN_MASK 0x00000010U +#define UART1_CONTROL_REG0_TXEN_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXEN_SHIFT 4 +#define UART1_CONTROL_REG0_TXEN_MASK 0x00000010U -/*Receive disable: 0: enable 1: disable, regardless of the value of RXEN*/ +/* +* Receive disable: 0: enable 1: disable, regardless of the value of RXEN +*/ #undef UART1_CONTROL_REG0_RXDIS_DEFVAL #undef UART1_CONTROL_REG0_RXDIS_SHIFT #undef UART1_CONTROL_REG0_RXDIS_MASK -#define UART1_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXDIS_SHIFT 3 -#define UART1_CONTROL_REG0_RXDIS_MASK 0x00000008U +#define UART1_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXDIS_SHIFT 3 +#define UART1_CONTROL_REG0_RXDIS_MASK 0x00000008U -/*Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero.*/ +/* +* Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. +*/ #undef UART1_CONTROL_REG0_RXEN_DEFVAL #undef UART1_CONTROL_REG0_RXEN_SHIFT #undef UART1_CONTROL_REG0_RXEN_MASK -#define UART1_CONTROL_REG0_RXEN_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXEN_SHIFT 2 -#define UART1_CONTROL_REG0_RXEN_MASK 0x00000004U +#define UART1_CONTROL_REG0_RXEN_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXEN_SHIFT 2 +#define UART1_CONTROL_REG0_RXEN_MASK 0x00000004U -/*Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed.*/ +/* +* Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. +*/ #undef UART1_CONTROL_REG0_TXRES_DEFVAL #undef UART1_CONTROL_REG0_TXRES_SHIFT #undef UART1_CONTROL_REG0_TXRES_MASK -#define UART1_CONTROL_REG0_TXRES_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXRES_SHIFT 1 -#define UART1_CONTROL_REG0_TXRES_MASK 0x00000002U +#define UART1_CONTROL_REG0_TXRES_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXRES_SHIFT 1 +#define UART1_CONTROL_REG0_TXRES_MASK 0x00000002U -/*Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed.*/ +/* +* Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. +*/ #undef UART1_CONTROL_REG0_RXRES_DEFVAL #undef UART1_CONTROL_REG0_RXRES_SHIFT #undef UART1_CONTROL_REG0_RXRES_MASK -#define UART1_CONTROL_REG0_RXRES_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXRES_SHIFT 0 -#define UART1_CONTROL_REG0_RXRES_MASK 0x00000001U +#define UART1_CONTROL_REG0_RXRES_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXRES_SHIFT 0 +#define UART1_CONTROL_REG0_RXRES_MASK 0x00000001U -/*Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback*/ +/* +* Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback +*/ #undef UART1_MODE_REG0_CHMODE_DEFVAL #undef UART1_MODE_REG0_CHMODE_SHIFT #undef UART1_MODE_REG0_CHMODE_MASK -#define UART1_MODE_REG0_CHMODE_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CHMODE_SHIFT 8 -#define UART1_MODE_REG0_CHMODE_MASK 0x00000300U +#define UART1_MODE_REG0_CHMODE_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CHMODE_SHIFT 8 +#define UART1_MODE_REG0_CHMODE_MASK 0x00000300U -/*Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved*/ +/* +* Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved +*/ #undef UART1_MODE_REG0_NBSTOP_DEFVAL #undef UART1_MODE_REG0_NBSTOP_SHIFT #undef UART1_MODE_REG0_NBSTOP_MASK -#define UART1_MODE_REG0_NBSTOP_DEFVAL 0x00000000 -#define UART1_MODE_REG0_NBSTOP_SHIFT 6 -#define UART1_MODE_REG0_NBSTOP_MASK 0x000000C0U +#define UART1_MODE_REG0_NBSTOP_DEFVAL 0x00000000 +#define UART1_MODE_REG0_NBSTOP_SHIFT 6 +#define UART1_MODE_REG0_NBSTOP_MASK 0x000000C0U -/*Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity*/ +/* +* Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty +*/ #undef UART1_MODE_REG0_PAR_DEFVAL #undef UART1_MODE_REG0_PAR_SHIFT #undef UART1_MODE_REG0_PAR_MASK -#define UART1_MODE_REG0_PAR_DEFVAL 0x00000000 -#define UART1_MODE_REG0_PAR_SHIFT 3 -#define UART1_MODE_REG0_PAR_MASK 0x00000038U +#define UART1_MODE_REG0_PAR_DEFVAL 0x00000000 +#define UART1_MODE_REG0_PAR_SHIFT 3 +#define UART1_MODE_REG0_PAR_MASK 0x00000038U -/*Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits*/ +/* +* Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits +*/ #undef UART1_MODE_REG0_CHRL_DEFVAL #undef UART1_MODE_REG0_CHRL_SHIFT #undef UART1_MODE_REG0_CHRL_MASK -#define UART1_MODE_REG0_CHRL_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CHRL_SHIFT 1 -#define UART1_MODE_REG0_CHRL_MASK 0x00000006U +#define UART1_MODE_REG0_CHRL_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CHRL_SHIFT 1 +#define UART1_MODE_REG0_CHRL_MASK 0x00000006U -/*Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8*/ +/* +* Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 +*/ #undef UART1_MODE_REG0_CLKS_DEFVAL #undef UART1_MODE_REG0_CLKS_SHIFT #undef UART1_MODE_REG0_CLKS_MASK -#define UART1_MODE_REG0_CLKS_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CLKS_SHIFT 0 -#define UART1_MODE_REG0_CLKS_MASK 0x00000001U +#define UART1_MODE_REG0_CLKS_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CLKS_SHIFT 0 +#define UART1_MODE_REG0_CLKS_MASK 0x00000001U -/*TrustZone Classification for ADMA*/ +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_SHIFT 18 +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_MASK 0x00040000U + +/* +* TrustZone Classification for ADMA +*/ #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU -/*CSU regsiter*/ +/* +* CSU regsiter +*/ #undef CSU_TAMPER_STATUS_TAMPER_0_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_0_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_0_MASK -#define CSU_TAMPER_STATUS_TAMPER_0_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_0_SHIFT 0 -#define CSU_TAMPER_STATUS_TAMPER_0_MASK 0x00000001U +#define CSU_TAMPER_STATUS_TAMPER_0_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_0_SHIFT 0 +#define CSU_TAMPER_STATUS_TAMPER_0_MASK 0x00000001U -/*External MIO*/ +/* +* External MIO +*/ #undef CSU_TAMPER_STATUS_TAMPER_1_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_1_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_1_MASK -#define CSU_TAMPER_STATUS_TAMPER_1_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_1_SHIFT 1 -#define CSU_TAMPER_STATUS_TAMPER_1_MASK 0x00000002U +#define CSU_TAMPER_STATUS_TAMPER_1_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_1_SHIFT 1 +#define CSU_TAMPER_STATUS_TAMPER_1_MASK 0x00000002U -/*JTAG toggle detect*/ +/* +* JTAG toggle detect +*/ #undef CSU_TAMPER_STATUS_TAMPER_2_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_2_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_2_MASK -#define CSU_TAMPER_STATUS_TAMPER_2_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_2_SHIFT 2 -#define CSU_TAMPER_STATUS_TAMPER_2_MASK 0x00000004U +#define CSU_TAMPER_STATUS_TAMPER_2_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_2_SHIFT 2 +#define CSU_TAMPER_STATUS_TAMPER_2_MASK 0x00000004U -/*PL SEU error*/ +/* +* PL SEU error +*/ #undef CSU_TAMPER_STATUS_TAMPER_3_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_3_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_3_MASK -#define CSU_TAMPER_STATUS_TAMPER_3_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_3_SHIFT 3 -#define CSU_TAMPER_STATUS_TAMPER_3_MASK 0x00000008U +#define CSU_TAMPER_STATUS_TAMPER_3_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_3_SHIFT 3 +#define CSU_TAMPER_STATUS_TAMPER_3_MASK 0x00000008U -/*AMS over temperature alarm for LPD*/ +/* +* AMS over temperature alarm for LPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_4_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_4_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_4_MASK -#define CSU_TAMPER_STATUS_TAMPER_4_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_4_SHIFT 4 -#define CSU_TAMPER_STATUS_TAMPER_4_MASK 0x00000010U +#define CSU_TAMPER_STATUS_TAMPER_4_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_4_SHIFT 4 +#define CSU_TAMPER_STATUS_TAMPER_4_MASK 0x00000010U -/*AMS over temperature alarm for APU*/ +/* +* AMS over temperature alarm for APU +*/ #undef CSU_TAMPER_STATUS_TAMPER_5_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_5_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_5_MASK -#define CSU_TAMPER_STATUS_TAMPER_5_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_5_SHIFT 5 -#define CSU_TAMPER_STATUS_TAMPER_5_MASK 0x00000020U +#define CSU_TAMPER_STATUS_TAMPER_5_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_5_SHIFT 5 +#define CSU_TAMPER_STATUS_TAMPER_5_MASK 0x00000020U -/*AMS voltage alarm for VCCPINT_FPD*/ +/* +* AMS voltage alarm for VCCPINT_FPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_6_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_6_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_6_MASK -#define CSU_TAMPER_STATUS_TAMPER_6_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_6_SHIFT 6 -#define CSU_TAMPER_STATUS_TAMPER_6_MASK 0x00000040U +#define CSU_TAMPER_STATUS_TAMPER_6_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_6_SHIFT 6 +#define CSU_TAMPER_STATUS_TAMPER_6_MASK 0x00000040U -/*AMS voltage alarm for VCCPINT_LPD*/ +/* +* AMS voltage alarm for VCCPINT_LPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_7_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_7_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_7_MASK -#define CSU_TAMPER_STATUS_TAMPER_7_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_7_SHIFT 7 -#define CSU_TAMPER_STATUS_TAMPER_7_MASK 0x00000080U +#define CSU_TAMPER_STATUS_TAMPER_7_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_7_SHIFT 7 +#define CSU_TAMPER_STATUS_TAMPER_7_MASK 0x00000080U -/*AMS voltage alarm for VCCPAUX*/ +/* +* AMS voltage alarm for VCCPAUX +*/ #undef CSU_TAMPER_STATUS_TAMPER_8_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_8_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_8_MASK -#define CSU_TAMPER_STATUS_TAMPER_8_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_8_SHIFT 8 -#define CSU_TAMPER_STATUS_TAMPER_8_MASK 0x00000100U +#define CSU_TAMPER_STATUS_TAMPER_8_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_8_SHIFT 8 +#define CSU_TAMPER_STATUS_TAMPER_8_MASK 0x00000100U -/*AMS voltage alarm for DDRPHY*/ +/* +* AMS voltage alarm for DDRPHY +*/ #undef CSU_TAMPER_STATUS_TAMPER_9_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_9_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_9_MASK -#define CSU_TAMPER_STATUS_TAMPER_9_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_9_SHIFT 9 -#define CSU_TAMPER_STATUS_TAMPER_9_MASK 0x00000200U +#define CSU_TAMPER_STATUS_TAMPER_9_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_9_SHIFT 9 +#define CSU_TAMPER_STATUS_TAMPER_9_MASK 0x00000200U -/*AMS voltage alarm for PSIO bank 0/1/2*/ +/* +* AMS voltage alarm for PSIO bank 0/1/2 +*/ #undef CSU_TAMPER_STATUS_TAMPER_10_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_10_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_10_MASK -#define CSU_TAMPER_STATUS_TAMPER_10_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_10_SHIFT 10 -#define CSU_TAMPER_STATUS_TAMPER_10_MASK 0x00000400U +#define CSU_TAMPER_STATUS_TAMPER_10_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_10_SHIFT 10 +#define CSU_TAMPER_STATUS_TAMPER_10_MASK 0x00000400U -/*AMS voltage alarm for PSIO bank 3 (dedicated pins)*/ +/* +* AMS voltage alarm for PSIO bank 3 (dedicated pins) +*/ #undef CSU_TAMPER_STATUS_TAMPER_11_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_11_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_11_MASK -#define CSU_TAMPER_STATUS_TAMPER_11_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_11_SHIFT 11 -#define CSU_TAMPER_STATUS_TAMPER_11_MASK 0x00000800U +#define CSU_TAMPER_STATUS_TAMPER_11_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_11_SHIFT 11 +#define CSU_TAMPER_STATUS_TAMPER_11_MASK 0x00000800U -/*AMS voltaage alarm for GT*/ +/* +* AMS voltaage alarm for GT +*/ #undef CSU_TAMPER_STATUS_TAMPER_12_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_12_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_12_MASK -#define CSU_TAMPER_STATUS_TAMPER_12_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_12_SHIFT 12 -#define CSU_TAMPER_STATUS_TAMPER_12_MASK 0x00001000U +#define CSU_TAMPER_STATUS_TAMPER_12_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_12_SHIFT 12 +#define CSU_TAMPER_STATUS_TAMPER_12_MASK 0x00001000U -/*Set ACE outgoing AWQOS value*/ +/* +* Set ACE outgoing AWQOS value +*/ #undef APU_ACE_CTRL_AWQOS_DEFVAL #undef APU_ACE_CTRL_AWQOS_SHIFT #undef APU_ACE_CTRL_AWQOS_MASK -#define APU_ACE_CTRL_AWQOS_DEFVAL 0x000F000F -#define APU_ACE_CTRL_AWQOS_SHIFT 16 -#define APU_ACE_CTRL_AWQOS_MASK 0x000F0000U +#define APU_ACE_CTRL_AWQOS_DEFVAL 0x000F000F +#define APU_ACE_CTRL_AWQOS_SHIFT 16 +#define APU_ACE_CTRL_AWQOS_MASK 0x000F0000U -/*Set ACE outgoing ARQOS value*/ +/* +* Set ACE outgoing ARQOS value +*/ #undef APU_ACE_CTRL_ARQOS_DEFVAL #undef APU_ACE_CTRL_ARQOS_SHIFT #undef APU_ACE_CTRL_ARQOS_MASK -#define APU_ACE_CTRL_ARQOS_DEFVAL 0x000F000F -#define APU_ACE_CTRL_ARQOS_SHIFT 0 -#define APU_ACE_CTRL_ARQOS_MASK 0x0000000FU +#define APU_ACE_CTRL_ARQOS_DEFVAL 0x000F000F +#define APU_ACE_CTRL_ARQOS_SHIFT 0 +#define APU_ACE_CTRL_ARQOS_MASK 0x0000000FU -/*Enables the RTC. By writing a 0 to this bit, RTC will be powered off and the only module that potentially draws current from - he battery will be BBRAM. The value read through this bit does not necessarily reflect whether RTC is enabled or not. It is e - pected that RTC is enabled every time it is being configured. If RTC is not used in the design, FSBL will disable it by writi - g a 0 to this bit.*/ +/* +* Enables the RTC. By writing a 0 to this bit, RTC will be powered off and + * the only module that potentially draws current from the battery will be + * BBRAM. The value read through this bit does not necessarily reflect whe + * ther RTC is enabled or not. It is expected that RTC is enabled every tim + * e it is being configured. If RTC is not used in the design, FSBL will di + * sable it by writing a 0 to this bit. +*/ #undef RTC_CONTROL_BATTERY_DISABLE_DEFVAL #undef RTC_CONTROL_BATTERY_DISABLE_SHIFT #undef RTC_CONTROL_BATTERY_DISABLE_MASK -#define RTC_CONTROL_BATTERY_DISABLE_DEFVAL 0x01000000 -#define RTC_CONTROL_BATTERY_DISABLE_SHIFT 31 -#define RTC_CONTROL_BATTERY_DISABLE_MASK 0x80000000U +#define RTC_CONTROL_BATTERY_DISABLE_DEFVAL 0x01000000 +#define RTC_CONTROL_BATTERY_DISABLE_SHIFT 31 +#define RTC_CONTROL_BATTERY_DISABLE_MASK 0x80000000U -/*Frequency in number of ticks per second. Valid range from 10 MHz to 100 MHz.*/ +/* +* Frequency in number of ticks per second. Valid range from 10 MHz to 100 + * MHz. +*/ #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT 0 -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK 0xFFFFFFFFU +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT 0 +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK 0xFFFFFFFFU -/*Enable 0: The counter is disabled and not incrementing. 1: The counter is enabled and is incrementing.*/ +/* +* Enable 0: The counter is disabled and not incrementing. 1: The counter i + * s enabled and is incrementing. +*/ #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL 0x00000000 -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT 0 -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK 0x00000001U -#undef LPD_XPPU_CFG_IEN_OFFSET -#define LPD_XPPU_CFG_IEN_OFFSET 0XFF980018 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL 0x00000000 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT 0 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK 0x00000001U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_PARITY_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_PARITY_MASK -#define LPD_XPPU_CFG_IEN_APER_PARITY_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT 7 -#define LPD_XPPU_CFG_IEN_APER_PARITY_MASK 0x00000080U +/* +* Operation is the same as DIRM_0[DIRECTION_0] +*/ +#undef GPIO_DIRM_1_DIRECTION_1_DEFVAL +#undef GPIO_DIRM_1_DIRECTION_1_SHIFT +#undef GPIO_DIRM_1_DIRECTION_1_MASK +#define GPIO_DIRM_1_DIRECTION_1_DEFVAL 0x00000000 +#define GPIO_DIRM_1_DIRECTION_1_SHIFT 0 +#define GPIO_DIRM_1_DIRECTION_1_MASK 0x03FFFFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_TZ_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_TZ_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_TZ_MASK -#define LPD_XPPU_CFG_IEN_APER_TZ_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_TZ_SHIFT 6 -#define LPD_XPPU_CFG_IEN_APER_TZ_MASK 0x00000040U +/* +* Operation is the same as OEN_0[OP_ENABLE_0] +*/ +#undef GPIO_OEN_1_OP_ENABLE_1_DEFVAL +#undef GPIO_OEN_1_OP_ENABLE_1_SHIFT +#undef GPIO_OEN_1_OP_ENABLE_1_MASK +#define GPIO_OEN_1_OP_ENABLE_1_DEFVAL 0x00000000 +#define GPIO_OEN_1_OP_ENABLE_1_SHIFT 0 +#define GPIO_OEN_1_OP_ENABLE_1_MASK 0x03FFFFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_PERM_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_PERM_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_PERM_MASK -#define LPD_XPPU_CFG_IEN_APER_PERM_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_PERM_SHIFT 5 -#define LPD_XPPU_CFG_IEN_APER_PERM_MASK 0x00000020U +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_PARITY_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_PARITY_MASK -#define LPD_XPPU_CFG_IEN_MID_PARITY_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT 3 -#define LPD_XPPU_CFG_IEN_MID_PARITY_MASK 0x00000008U +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_RO_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_RO_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_RO_MASK -#define LPD_XPPU_CFG_IEN_MID_RO_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_RO_SHIFT 2 -#define LPD_XPPU_CFG_IEN_MID_RO_MASK 0x00000004U +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_MISS_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_MISS_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_MISS_MASK -#define LPD_XPPU_CFG_IEN_MID_MISS_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_MISS_SHIFT 1 -#define LPD_XPPU_CFG_IEN_MID_MISS_MASK 0x00000002U +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU +#undef FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET +#define FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET 0XFD690040 +#undef FPD_SLCR_SECURE_SLCR_PCIE_OFFSET +#define FPD_SLCR_SECURE_SLCR_PCIE_OFFSET 0XFD690030 +#undef LPD_SLCR_SECURE_SLCR_USB_OFFSET +#define LPD_SLCR_SECURE_SLCR_USB_OFFSET 0XFF4B0034 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef LPD_SLCR_SECURE_SLCR_ADMA_OFFSET +#define LPD_SLCR_SECURE_SLCR_ADMA_OFFSET 0XFF4B0024 +#undef FPD_SLCR_SECURE_SLCR_GDMA_OFFSET +#define FPD_SLCR_SECURE_SLCR_GDMA_OFFSET 0XFD690050 -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_INV_APB_DEFVAL -#undef LPD_XPPU_CFG_IEN_INV_APB_SHIFT -#undef LPD_XPPU_CFG_IEN_INV_APB_MASK -#define LPD_XPPU_CFG_IEN_INV_APB_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_INV_APB_SHIFT 0 -#define LPD_XPPU_CFG_IEN_INV_APB_MASK 0x00000001U +/* +* TrustZone classification for DisplayPort DMA +*/ +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_SHIFT +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_MASK +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_DEFVAL 0x00000001 +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_MASK 0x00000001U + +/* +* TrustZone classification for DMA Channel 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_SHIFT 21 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_MASK 0x00200000U + +/* +* TrustZone classification for DMA Channel 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_SHIFT 22 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_MASK 0x00400000U + +/* +* TrustZone classification for DMA Channel 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_SHIFT 23 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_MASK 0x00800000U + +/* +* TrustZone classification for DMA Channel 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_SHIFT 24 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_MASK 0x01000000U + +/* +* TrustZone classification for Ingress Address Translation 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_SHIFT 13 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_MASK 0x00002000U + +/* +* TrustZone classification for Ingress Address Translation 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_SHIFT 14 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_MASK 0x00004000U + +/* +* TrustZone classification for Ingress Address Translation 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_SHIFT 15 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_MASK 0x00008000U + +/* +* TrustZone classification for Ingress Address Translation 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_SHIFT 16 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_MASK 0x00010000U + +/* +* TrustZone classification for Ingress Address Translation 4 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_SHIFT 17 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_MASK 0x00020000U + +/* +* TrustZone classification for Ingress Address Translation 5 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_SHIFT 18 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_MASK 0x00040000U + +/* +* TrustZone classification for Ingress Address Translation 6 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_SHIFT 19 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_MASK 0x00080000U + +/* +* TrustZone classification for Ingress Address Translation 7 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_SHIFT 20 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_MASK 0x00100000U + +/* +* TrustZone classification for Egress Address Translation 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_SHIFT 5 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_MASK 0x00000020U + +/* +* TrustZone classification for Egress Address Translation 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_SHIFT 6 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_MASK 0x00000040U + +/* +* TrustZone classification for Egress Address Translation 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_SHIFT 7 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_MASK 0x00000080U + +/* +* TrustZone classification for Egress Address Translation 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_SHIFT 8 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_MASK 0x00000100U + +/* +* TrustZone classification for Egress Address Translation 4 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_SHIFT 9 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_MASK 0x00000200U + +/* +* TrustZone classification for Egress Address Translation 5 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_SHIFT 10 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_MASK 0x00000400U + +/* +* TrustZone classification for Egress Address Translation 6 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_SHIFT 11 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_MASK 0x00000800U + +/* +* TrustZone classification for Egress Address Translation 7 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_SHIFT 12 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_MASK 0x00001000U + +/* +* TrustZone classification for DMA Registers +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_SHIFT 4 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_MASK 0x00000010U + +/* +* TrustZone classification for MSIx Table +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_SHIFT 2 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_MASK 0x00000004U + +/* +* TrustZone classification for MSIx PBA +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_SHIFT 3 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_MASK 0x00000008U + +/* +* TrustZone classification for ECAM +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_SHIFT 1 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_MASK 0x00000002U + +/* +* TrustZone classification for Bridge Common Registers +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_MASK 0x00000001U + +/* +* TrustZone Classification for USB3_0 +*/ +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_SHIFT +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_MASK +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_DEFVAL 0x00000003 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_MASK 0x00000001U + +/* +* TrustZone Classification for USB3_1 +*/ +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_SHIFT +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_MASK +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_DEFVAL 0x00000003 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_SHIFT 1 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_MASK 0x00000002U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_SHIFT 16 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_MASK 0x00070000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_SHIFT 19 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_MASK 0x00380000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_SHIFT 16 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_MASK 0x00070000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_SHIFT 19 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_MASK 0x00380000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_SHIFT 0 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_MASK 0x00000007U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_SHIFT 3 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_MASK 0x00000038U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_SHIFT 6 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_MASK 0x000001C0U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_SHIFT 9 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_MASK 0x00000E00U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_SHIFT 0 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_MASK 0x00000007U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_SHIFT 3 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_MASK 0x00000038U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_SHIFT 6 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_MASK 0x000001C0U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_SHIFT 9 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_MASK 0x00000E00U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_SHIFT 25 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_MASK 0x0E000000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_SHIFT 22 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_MASK 0x01C00000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_SHIFT 22 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_MASK 0x01C00000U + +/* +* TrustZone Classification for ADMA +*/ +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU + +/* +* TrustZone Classification for GDMA +*/ +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_SHIFT +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_MASK +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_DEFVAL +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_MASK 0x000000FFU #undef SERDES_PLL_REF_SEL0_OFFSET #define SERDES_PLL_REF_SEL0_OFFSET 0XFD410000 #undef SERDES_PLL_REF_SEL1_OFFSET @@ -25320,8 +32847,6 @@ #define SERDES_L3_TM_DIG_6_OFFSET 0XFD40D06C #undef SERDES_L3_TX_DIG_TM_61_OFFSET #define SERDES_L3_TX_DIG_TM_61_OFFSET 0XFD40C0F4 -#undef SERDES_L3_TXPMA_ST_0_OFFSET -#define SERDES_L3_TXPMA_ST_0_OFFSET 0XFD40CB00 #undef SERDES_L0_TM_AUX_0_OFFSET #define SERDES_L0_TM_AUX_0_OFFSET 0XFD4010CC #undef SERDES_L2_TM_AUX_0_OFFSET @@ -25360,6 +32885,10 @@ #define SERDES_L0_TM_E_ILL8_OFFSET 0XFD401940 #undef SERDES_L0_TM_E_ILL9_OFFSET #define SERDES_L0_TM_E_ILL9_OFFSET 0XFD401944 +#undef SERDES_L0_TM_ILL13_OFFSET +#define SERDES_L0_TM_ILL13_OFFSET 0XFD401994 +#undef SERDES_L1_TM_ILL13_OFFSET +#define SERDES_L1_TM_ILL13_OFFSET 0XFD405994 #undef SERDES_L2_TM_MISC2_OFFSET #define SERDES_L2_TM_MISC2_OFFSET 0XFD40989C #undef SERDES_L2_TM_IQ_ILL1_OFFSET @@ -25386,6 +32915,8 @@ #define SERDES_L2_TM_E_ILL8_OFFSET 0XFD409940 #undef SERDES_L2_TM_E_ILL9_OFFSET #define SERDES_L2_TM_E_ILL9_OFFSET 0XFD409944 +#undef SERDES_L2_TM_ILL13_OFFSET +#define SERDES_L2_TM_ILL13_OFFSET 0XFD409994 #undef SERDES_L3_TM_MISC2_OFFSET #define SERDES_L3_TM_MISC2_OFFSET 0XFD40D89C #undef SERDES_L3_TM_IQ_ILL1_OFFSET @@ -25414,10 +32945,16 @@ #define SERDES_L3_TM_E_ILL8_OFFSET 0XFD40D940 #undef SERDES_L3_TM_E_ILL9_OFFSET #define SERDES_L3_TM_E_ILL9_OFFSET 0XFD40D944 -#undef SERDES_L0_TM_DIG_21_OFFSET -#define SERDES_L0_TM_DIG_21_OFFSET 0XFD4010A8 +#undef SERDES_L3_TM_ILL13_OFFSET +#define SERDES_L3_TM_ILL13_OFFSET 0XFD40D994 #undef SERDES_L0_TM_DIG_10_OFFSET #define SERDES_L0_TM_DIG_10_OFFSET 0XFD40107C +#undef SERDES_L1_TM_DIG_10_OFFSET +#define SERDES_L1_TM_DIG_10_OFFSET 0XFD40507C +#undef SERDES_L2_TM_DIG_10_OFFSET +#define SERDES_L2_TM_DIG_10_OFFSET 0XFD40907C +#undef SERDES_L3_TM_DIG_10_OFFSET +#define SERDES_L3_TM_DIG_10_OFFSET 0XFD40D07C #undef SERDES_L0_TM_RST_DLY_OFFSET #define SERDES_L0_TM_RST_DLY_OFFSET 0XFD4019A4 #undef SERDES_L0_TM_ANA_BYP_15_OFFSET @@ -25442,6 +32979,24 @@ #define SERDES_L3_TM_ANA_BYP_15_OFFSET 0XFD40D038 #undef SERDES_L3_TM_ANA_BYP_12_OFFSET #define SERDES_L3_TM_ANA_BYP_12_OFFSET 0XFD40D02C +#undef SERDES_L0_TM_MISC3_OFFSET +#define SERDES_L0_TM_MISC3_OFFSET 0XFD4019AC +#undef SERDES_L1_TM_MISC3_OFFSET +#define SERDES_L1_TM_MISC3_OFFSET 0XFD4059AC +#undef SERDES_L2_TM_MISC3_OFFSET +#define SERDES_L2_TM_MISC3_OFFSET 0XFD4099AC +#undef SERDES_L3_TM_MISC3_OFFSET +#define SERDES_L3_TM_MISC3_OFFSET 0XFD40D9AC +#undef SERDES_L0_TM_EQ11_OFFSET +#define SERDES_L0_TM_EQ11_OFFSET 0XFD401978 +#undef SERDES_L1_TM_EQ11_OFFSET +#define SERDES_L1_TM_EQ11_OFFSET 0XFD405978 +#undef SERDES_L2_TM_EQ11_OFFSET +#define SERDES_L2_TM_EQ11_OFFSET 0XFD409978 +#undef SERDES_L3_TM_EQ11_OFFSET +#define SERDES_L3_TM_EQ11_OFFSET 0XFD40D978 +#undef SIOU_ECO_0_OFFSET +#define SIOU_ECO_0_OFFSET 0XFD3D001C #undef SERDES_ICM_CFG0_OFFSET #define SERDES_ICM_CFG0_OFFSET 0XFD410010 #undef SERDES_ICM_CFG1_OFFSET @@ -25467,1055 +33022,1511 @@ #undef SERDES_L3_TX_ANA_TM_18_OFFSET #define SERDES_L3_TX_ANA_TM_18_OFFSET 0XFD40C048 -/*PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL 0x0000000D -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT 0 -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL 0x0000000D +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT 0 +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK 0x0000001FU -/*PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL 0x00000008 -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT 0 -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL 0x00000008 +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT 0 +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK 0x0000001FU -/*PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL 0x0000000F -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT 0 -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL 0x0000000F +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT 0 +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK 0x0000001FU -/*PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL 0x0000000E -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT 0 -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL 0x0000000E +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT 0 +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK 0x0000001FU -/*Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer output. Set to 0 to select lane0 ref clock mux output.*/ +/* +* Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer outp + * ut. Set to 0 to select lane0 ref clock mux output. +*/ #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane1 ref clock mux output.*/ +/* +* Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane1 ref clock mux output. +*/ #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 slicer output from ref clock network*/ +/* +* Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 sli + * cer output from ref clock network +*/ #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL 0x00000080 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT 3 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK 0x00000008U +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL 0x00000080 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT 3 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK 0x00000008U -/*Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane2 ref clock mux output.*/ +/* +* Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane2 ref clock mux output. +*/ #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer output. Set to 0 to select lane3 ref clock mux output.*/ +/* +* Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer outp + * ut. Set to 0 to select lane3 ref clock mux output. +*/ #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 slicer output from ref clock network*/ +/* +* Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 sli + * cer output from ref clock network +*/ #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL 0x00000080 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT 1 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK 0x00000002U +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL 0x00000080 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT 1 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK 0x00000002U -/*Enable/Disable coarse code satureation limiting logic*/ +/* +* Enable/Disable coarse code satureation limiting logic +*/ #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL 0x00000000 -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT 4 -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK 0x00000010U +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL 0x00000000 +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT 4 +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK 0x00000010U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Enable test mode forcing on enable Spread Spectrum*/ +/* +* Enable test mode forcing on enable Spread Spectrum +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT 7 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK 0x00000080U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT 7 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK 0x00000080U -/*Bypass Descrambler*/ +/* +* Bypass Descrambler +*/ #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U -/*Enable Bypass for <1> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <1> TM_DIG_CTRL_6 +*/ #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U -/*Bypass scrambler signal*/ +/* +* Bypass scrambler signal +*/ #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U -/*Enable/disable scrambler bypass signal*/ +/* +* Enable/disable scrambler bypass signal +*/ #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U -/*Enable test mode force on fractional mode enable*/ +/* +* Enable test mode force on fractional mode enable +*/ #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL 0x00000000 -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT 6 -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK 0x00000040U +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL 0x00000000 +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT 6 +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK 0x00000040U -/*Bypass 8b10b decoder*/ +/* +* Bypass 8b10b decoder +*/ #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT 3 -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK 0x00000008U +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT 3 +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK 0x00000008U -/*Enable Bypass for <3> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <3> TM_DIG_CTRL_6 +*/ #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT 2 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK 0x00000004U +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT 2 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK 0x00000004U -/*Bypass Descrambler*/ +/* +* Bypass Descrambler +*/ #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U -/*Enable Bypass for <1> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <1> TM_DIG_CTRL_6 +*/ #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U -/*Enable/disable encoder bypass signal*/ +/* +* Enable/disable encoder bypass signal +*/ #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT 3 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK 0x00000008U +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT 3 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK 0x00000008U -/*Bypass scrambler signal*/ +/* +* Bypass scrambler signal +*/ #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U -/*Enable/disable scrambler bypass signal*/ +/* +* Enable/disable scrambler bypass signal +*/ #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U -/*PHY Mode: 4'b000 - PCIe, 4'b001 - USB3, 4'b0010 - SATA, 4'b0100 - SGMII, 4'b0101 - DP, 4'b1000 - MPHY*/ -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_DEFVAL -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_DEFVAL 0x00000001 -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT 4 -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK 0x000000F0U - -/*Spare- not used*/ +/* +* Spare- not used +*/ #undef SERDES_L0_TM_AUX_0_BIT_2_DEFVAL #undef SERDES_L0_TM_AUX_0_BIT_2_SHIFT #undef SERDES_L0_TM_AUX_0_BIT_2_MASK -#define SERDES_L0_TM_AUX_0_BIT_2_DEFVAL 0x00000000 -#define SERDES_L0_TM_AUX_0_BIT_2_SHIFT 5 -#define SERDES_L0_TM_AUX_0_BIT_2_MASK 0x00000020U +#define SERDES_L0_TM_AUX_0_BIT_2_DEFVAL 0x00000000 +#define SERDES_L0_TM_AUX_0_BIT_2_SHIFT 5 +#define SERDES_L0_TM_AUX_0_BIT_2_MASK 0x00000020U -/*Spare- not used*/ +/* +* Spare- not used +*/ #undef SERDES_L2_TM_AUX_0_BIT_2_DEFVAL #undef SERDES_L2_TM_AUX_0_BIT_2_SHIFT #undef SERDES_L2_TM_AUX_0_BIT_2_MASK -#define SERDES_L2_TM_AUX_0_BIT_2_DEFVAL 0x00000000 -#define SERDES_L2_TM_AUX_0_BIT_2_SHIFT 5 -#define SERDES_L2_TM_AUX_0_BIT_2_MASK 0x00000020U +#define SERDES_L2_TM_AUX_0_BIT_2_DEFVAL 0x00000000 +#define SERDES_L2_TM_AUX_0_BIT_2_SHIFT 5 +#define SERDES_L2_TM_AUX_0_BIT_2_MASK 0x00000020U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*G2A_PCIe1 PLL ctr bypass value*/ +/* +* G2A_PCIe1 PLL ctr bypass value +*/ #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT 4 -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK 0x000000F0U +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT 4 +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK 0x000000F0U -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*pre lock comma count threshold. 2'b 00 : 3, 2'b 01 : 5, 2'b 10 : 10, 2'b 11 : 20*/ -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_DEFVAL -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_DEFVAL 0x00000000 -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT 0 -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK 0x00000003U +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U -/*CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001*/ +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU -/*Delay apb reset by specified amount*/ +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unuse - , 7 - Unused*/ +/* +* CDR fast phase lock control +*/ +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* For future use +*/ +#undef SIOU_ECO_0_FIELD_DEFVAL +#undef SIOU_ECO_0_FIELD_SHIFT +#undef SIOU_ECO_0_FIELD_MASK +#define SIOU_ECO_0_FIELD_DEFVAL +#define SIOU_ECO_0_FIELD_SHIFT 0 +#define SIOU_ECO_0_FIELD_MASK 0xFFFFFFFFU + +/* +* Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT #undef SERDES_ICM_CFG0_L0_ICM_CFG_MASK -#define SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT 0 -#define SERDES_ICM_CFG0_L0_ICM_CFG_MASK 0x00000007U +#define SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT 0 +#define SERDES_ICM_CFG0_L0_ICM_CFG_MASK 0x00000007U -/*Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT #undef SERDES_ICM_CFG0_L1_ICM_CFG_MASK -#define SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT 4 -#define SERDES_ICM_CFG0_L1_ICM_CFG_MASK 0x00000070U +#define SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT 4 +#define SERDES_ICM_CFG0_L1_ICM_CFG_MASK 0x00000070U -/*Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT #undef SERDES_ICM_CFG1_L2_ICM_CFG_MASK -#define SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT 0 -#define SERDES_ICM_CFG1_L2_ICM_CFG_MASK 0x00000007U +#define SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT 0 +#define SERDES_ICM_CFG1_L2_ICM_CFG_MASK 0x00000007U -/*Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, + * 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT #undef SERDES_ICM_CFG1_L3_ICM_CFG_MASK -#define SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT 4 -#define SERDES_ICM_CFG1_L3_ICM_CFG_MASK 0x00000070U +#define SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT 4 +#define SERDES_ICM_CFG1_L3_ICM_CFG_MASK 0x00000070U -/*Enable/disable DP post2 path*/ +/* +* Enable/disable DP post2 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT 5 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK 0x00000020U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT 5 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK 0x00000020U -/*Override enable/disable of DP post2 path*/ +/* +* Override enable/disable of DP post2 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT 4 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK 0x00000010U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT 4 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK 0x00000010U -/*Override enable/disable of DP post1 path*/ +/* +* Override enable/disable of DP post1 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT 2 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK 0x00000004U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT 2 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK 0x00000004U -/*Enable/disable DP main path*/ +/* +* Enable/disable DP main path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT 1 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK 0x00000002U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT 1 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK 0x00000002U -/*Override enable/disable of DP main path*/ +/* +* Override enable/disable of DP main path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT 0 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK 0x00000001U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT 0 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK 0x00000001U -/*Test register force for enabling/disablign TX deemphasis bits <17:0>*/ +/* +* Test register force for enabling/disablign TX deemphasis bits <17:0> +*/ #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U -/*Test register force for enabling/disablign TX deemphasis bits <17:0>*/ +/* +* Test register force for enabling/disablign TX deemphasis bits <17:0> +*/ #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U -/*FPHL FSM accumulate cycles*/ +/* +* FPHL FSM accumulate cycles +*/ #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT 5 -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK 0x000000E0U +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT 5 +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK 0x000000E0U -/*FFL Phase0 int gain aka 2ol SD update rate*/ +/* +* FFL Phase0 int gain aka 2ol SD update rate +*/ #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT 0 -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK 0x0000001FU +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT 0 +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK 0x0000001FU -/*FFL Phase0 prop gain aka 1ol SD update rate*/ +/* +* FFL Phase0 prop gain aka 1ol SD update rate +*/ #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT 0 -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK 0x0000001FU +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT 0 +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK 0x0000001FU -/*EQ stg 2 controls BYPASSED*/ +/* +* EQ stg 2 controls BYPASSED +*/ #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT 5 -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK 0x00000020U +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT 5 +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK 0x00000020U -/*EQ STG2 RL PROG*/ +/* +* EQ STG2 RL PROG +*/ #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT 0 -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK 0x00000003U +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT 0 +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK 0x00000003U -/*EQ stg 2 preamp mode val*/ +/* +* EQ stg 2 preamp mode val +*/ #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT 2 -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK 0x00000004U +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT 2 +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK 0x00000004U -/*Margining factor value*/ +/* +* Margining factor value +*/ #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT 0 -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK 0x0000001FU +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT 0 +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK 0x0000001FU -/*pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved*/ +/* +* pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved +*/ #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU -/*pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved*/ +/* +* pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved +*/ #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C -#undef USB3_0_FPD_POWER_PRSNT_OFFSET -#define USB3_0_FPD_POWER_PRSNT_OFFSET 0XFF9D0080 -#undef USB3_0_FPD_PIPE_CLK_OFFSET -#define USB3_0_FPD_PIPE_CLK_OFFSET 0XFF9D007C #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET @@ -26536,6 +34547,10 @@ #define USB3_0_XHCI_GUSB2PHYCFG_OFFSET 0XFE20C200 #undef USB3_0_XHCI_GFLADJ_OFFSET #define USB3_0_XHCI_GFLADJ_OFFSET 0XFE20C630 +#undef USB3_0_XHCI_GUCTL1_OFFSET +#define USB3_0_XHCI_GUCTL1_OFFSET 0XFE20C11C +#undef USB3_0_XHCI_GUCTL_OFFSET +#define USB3_0_XHCI_GUCTL_OFFSET 0XFE20C12C #undef PCIE_ATTRIB_ATTR_25_OFFSET #define PCIE_ATTRIB_ATTR_25_OFFSET 0XFD480064 #undef PCIE_ATTRIB_ATTR_7_OFFSET @@ -26626,6 +34641,8 @@ #define PCIE_ATTRIB_ATTR_35_OFFSET 0XFD48008C #undef CRF_APB_RST_FPD_TOP_OFFSET #define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 #undef SATA_AHCI_VENDOR_PP2C_OFFSET #define SATA_AHCI_VENDOR_PP2C_OFFSET 0XFD0C00AC #undef SATA_AHCI_VENDOR_PP3C_OFFSET @@ -26635,1015 +34652,1462 @@ #undef SATA_AHCI_VENDOR_PP5C_OFFSET #define SATA_AHCI_VENDOR_PP5C_OFFSET 0XFD0C00B8 -/*USB 0 reset for control registers*/ +/* +* USB 0 reset for control registers +*/ #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U -/*This bit is used to choose between PIPE power present and 1'b1*/ -#undef USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL -#undef USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT -#undef USB3_0_FPD_POWER_PRSNT_OPTION_MASK -#define USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL -#define USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT 0 -#define USB3_0_FPD_POWER_PRSNT_OPTION_MASK 0x00000001U - -/*This bit is used to choose between PIPE clock coming from SerDes and the suspend clk*/ -#undef USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL -#undef USB3_0_FPD_PIPE_CLK_OPTION_SHIFT -#undef USB3_0_FPD_PIPE_CLK_OPTION_MASK -#define USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL -#define USB3_0_FPD_PIPE_CLK_OPTION_SHIFT 0 -#define USB3_0_FPD_PIPE_CLK_OPTION_MASK 0x00000001U - -/*USB 0 sleep circuit reset*/ +/* +* USB 0 sleep circuit reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U -/*USB 0 reset*/ +/* +* USB 0 reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U -/*GEM 3 reset*/ +/* +* GEM 3 reset +*/ #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U -/*Sata PM clock control select*/ +/* +* Sata PM clock control select +*/ #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT 0 -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK 0x00000003U +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT 0 +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK 0x00000003U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U -/*Set to '1' to hold the GT in reset. Clear to release.*/ +/* +* Set to '1' to hold the GT in reset. Clear to release. +*/ #undef DP_DP_PHY_RESET_GT_RESET_DEFVAL #undef DP_DP_PHY_RESET_GT_RESET_SHIFT #undef DP_DP_PHY_RESET_GT_RESET_MASK -#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 -#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 -#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U +#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 +#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 +#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U -/*Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1*/ +/* +* Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 +*/ #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU -/*USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to - he Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). The following are the required values for the minimum S - C bus frequency of 60 MHz. USB turnaround time is a critical certification criteria when using long cables and five hub level - . The required values for this field: - 4'h5: When the MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit - UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround time is not critical, this field can be set to a larger - alue. Note: This field is valid only in device mode.*/ +/* +* USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY cloc + * ks. Specifies the response time for a MAC request to the Packet FIFO Con + * troller (PFC) to fetch data from the DFIFO (SPRAM). The following are th + * e required values for the minimum SoC bus frequency of 60 MHz. USB turna + * round time is a critical certification criteria when using long cables a + * nd five hub levels. The required values for this field: - 4'h5: When the + * MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit + * UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround tim + * e is not critical, this field can be set to a larger value. Note: This f + * ield is valid only in device mode. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT 10 -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK 0x00003C00U +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT 10 +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK 0x00003C00U -/*Transceiver Delay: Enables a delay between the assertion of the UTMI/ULPI Transceiver Select signal (for HS) and the assertio - of the TxValid signal during a HS Chirp. When this bit is set to 1, a delay (of approximately 2.5 us) is introduced from the - time when the Transceiver Select is set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the chirp-K. This de - ay is required for some UTMI/ULPI PHYs. Note: - If you enable the hibernation feature when the device core comes out of power - off, you must re-initialize this bit with the appropriate value because the core does not save and restore this bit value dur - ng hibernation. - This bit is valid only in device mode.*/ +/* +* Transceiver Delay: Enables a delay between the assertion of the UTMI/ULP + * I Transceiver Select signal (for HS) and the assertion of the TxValid si + * gnal during a HS Chirp. When this bit is set to 1, a delay (of approxima + * tely 2.5 us) is introduced from the time when the Transceiver Select is + * set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the + * chirp-K. This delay is required for some UTMI/ULPI PHYs. Note: - If you + * enable the hibernation feature when the device core comes out of power- + * off, you must re-initialize this bit with the appropriate value because + * the core does not save and restore this bit value during hibernation. - + * This bit is valid only in device mode. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT 9 -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK 0x00000200U +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT 9 +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK 0x00000200U -/*Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application uses this bit to control utmi_sleep_n and utmi_l1_suspen - _n assertion to the PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is not transferre - to the external PHY. - 1'b1: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is transferred to the external PHY. - ote: This bit must be set high for Port0 if PHY is used. Note: In Device mode - Before issuing any device endpoint command wh - n operating in 2.0 speeds, disable this bit and enable it after the command completes. Without disabling this bit, if a comma - d is issued when the device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get complet - d.*/ +/* +* Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application use + * s this bit to control utmi_sleep_n and utmi_l1_suspend_n assertion to th + * e PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assert + * ion from the core is not transferred to the external PHY. - 1'b1: utmi_s + * leep_n and utmi_l1_suspend_n assertion from the core is transferred to t + * he external PHY. Note: This bit must be set high for Port0 if PHY is use + * d. Note: In Device mode - Before issuing any device endpoint command whe + * n operating in 2.0 speeds, disable this bit and enable it after the comm + * and completes. Without disabling this bit, if a command is issued when t + * he device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated of + * f, the command will not get completed. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT 8 -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK 0x00000100U +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT 8 +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK 0x00000100U -/*USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select The application uses this bit to select a high-speed P - Y or a full-speed transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is always 0, with Write Only access. - - 'b1: USB 1.1 full-speed serial transceiver. This bit is always 1, with Write Only access. If both interface types are selecte - in coreConsultant (that is, parameters' values are not zero), the application uses this bit to select the active interface i - active, with Read-Write bit access. Note: USB 1.1 full-serial transceiver is not supported. This bit always reads as 1'b0.*/ +/* +* USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select T + * he application uses this bit to select a high-speed PHY or a full-speed + * transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is a + * lways 0, with Write Only access. - 1'b1: USB 1.1 full-speed serial trans + * ceiver. This bit is always 1, with Write Only access. If both interface + * types are selected in coreConsultant (that is, parameters' values are no + * t zero), the application uses this bit to select the active interface is + * active, with Read-Write bit access. Note: USB 1.1 full-serial transceiv + * er is not supported. This bit always reads as 1'b0. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT 7 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK 0x00000080U +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT 7 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK 0x00000080U -/*Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select a unidirectional or bidirectional USB 1.1 - full-speed serial transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial interface. This bit is set to 0 with - ead Only access. - 1'b1: 3-pin bidirectional full-speed serial interface. This bit is set to 0 with Read Only access. Note: U - B 1.1 full-speed serial interface is not supported. This bit always reads as 1'b0.*/ +/* +* Suspend USB2.0 HS/FS/LS PHY (SusPHY) When set, USB2.0 PHY enters Suspend + * mode if Suspend conditions are valid. For DRD/OTG configurations, it is + * recommended that this bit is set to 0 during coreConsultant configurati + * on. If it is set to 1, then the application must clear this bit after po + * wer-on reset. Application needs to set it to 1 after the core initializa + * tion completes. For all other configurations, this bit can be set to 1 d + * uring core configuration. Note: - In host mode, on reset, this bit is se + * t to 1. Software can override this bit after reset. - In device mode, be + * fore issuing any device endpoint command when operating in 2.0 speeds, d + * isable this bit and enable it after the command completes. If you issue + * a command without disabling this bit when the device is in L2 state and + * if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get c + * ompleted. +*/ +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_DEFVAL +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_SHIFT +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_MASK +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_SHIFT 6 +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_MASK 0x00000040U + +/* +* Full-Speed Serial Interface Select (FSIntf) The application uses this bi + * t to select a unidirectional or bidirectional USB 1.1 full-speed serial + * transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial in + * terface. This bit is set to 0 with Read Only access. - 1'b1: 3-pin bidir + * ectional full-speed serial interface. This bit is set to 0 with Read Onl + * y access. Note: USB 1.1 full-speed serial interface is not supported. Th + * is bit always reads as 1'b0. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT 5 -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK 0x00000020U +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT 5 +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK 0x00000020U -/*ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interfa - e - 1'b1: ULPI Interface This bit is writable only if UTMI+ and ULPI is specified for High-Speed PHY Interface(s) in coreCons - ltant configuration (DWC_USB3_HSPHY_INTERFACE = 3). Otherwise, this bit is read-only and the value depends on the interface s - lected through DWC_USB3_HSPHY_INTERFACE.*/ +/* +* ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to se + * lect a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interface - 1'b1: ULPI Int + * erface This bit is writable only if UTMI+ and ULPI is specified for High + * -Speed PHY Interface(s) in coreConsultant configuration (DWC_USB3_HSPHY_ + * INTERFACE = 3). Otherwise, this bit is read-only and the value depends o + * n the interface selected through DWC_USB3_HSPHY_INTERFACE. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT 4 -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK 0x00000010U +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT 4 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK 0x00000010U -/*PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bit to configure the core to support a UTMI+ PHY with a - 8- or 16-bit interface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the enabled 2.0 ports must have the same - lock frequency as Port0 clock frequency (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used together for differen - ports at the same time (that is, all the ports must be in 8-bit mode, or all of them must be in 16-bit mode, at a time). - I - any of the USB 2.0 ports is selected as ULPI port for operation, then all the USB 2.0 ports must be operating at 60 MHz.*/ +/* +* PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bi + * t to configure the core to support a UTMI+ PHY with an 8- or 16-bit inte + * rface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the en + * abled 2.0 ports must have the same clock frequency as Port0 clock freque + * ncy (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used toge + * ther for different ports at the same time (that is, all the ports must b + * e in 8-bit mode, or all of them must be in 16-bit mode, at a time). - If + * any of the USB 2.0 ports is selected as ULPI port for operation, then a + * ll the USB 2.0 ports must be operating at 60 MHz. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT 3 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK 0x00000008U +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT 3 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK 0x00000008U -/*HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicated by the application in this field, is multiplied by - a bit-time factor; this factor is added to the high-speed/full-speed interpacket timeout duration in the core to account for - dditional delays introduced by the PHY. This may be required, since the delay introduced by the PHY in generating the linesta - e condition may vary among PHYs. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. - The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this - ield based on the speed of connection. The number of bit times added per PHY clock are: High-speed operation: - One 30-MHz PH - clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One - 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times*/ +/* +* HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicat + * ed by the application in this field, is multiplied by a bit-time factor; + * this factor is added to the high-speed/full-speed interpacket timeout d + * uration in the core to account for additional delays introduced by the P + * HY. This may be required, since the delay introduced by the PHY in gener + * ating the linestate condition may vary among PHYs. The USB standard time + * out value for high-speed operation is 736 to 816 (inclusive) bit times. + * The USB standard timeout value for full-speed operation is 16 to 18 (inc + * lusive) bit times. The application must program this field based on the + * speed of connection. The number of bit times added per PHY clock are: Hi + * gh-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz P + * HY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0. + * 4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY cloc + * k = 0.25 bit times +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT 0 -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK 0x00000007U +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT 0 +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK 0x00000007U -/*This field indicates the frame length adjustment to be applied when SOF/ITP counter is running on the ref_clk. This register - alue is used to adjust the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP interval when GLADJ.GFLADJ_REFCLK_LP - _SEL is set to '1'. This field must be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set to '1' or GCTL.SOF - TPSYNC is set to '1'. The value is derived as follows: FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_p - riod)) * ref_clk_period where - the ref_clk_period_integer is the integer value of the ref_clk period got by truncating the d - cimal (fractional) value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_clk_period is the ref_clk period inc - uding the fractional value. Examples: If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLADJ_REFCLK_FLADJ = - ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignoring the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_P - RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*20.8333 = 5208 (ignoring the fractional value)*/ +/* +* ULPI External VBUS Drive (ULPIExtVbusDrv) Selects supply source to drive + * 5V on VBUS, in the ULPI PHY. - 1'b0: PHY drives VBUS with internal char + * ge pump (default). - 1'b1: PHY drives VBUS with an external supply. (Onl + * y when RTL parameter DWC_USB3_HSPHY_INTERFACE = 2 or 3) +*/ +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_DEFVAL +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_SHIFT +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_MASK +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_SHIFT 17 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_MASK 0x00020000U + +/* +* This field indicates the frame length adjustment to be applied when SOF/ + * ITP counter is running on the ref_clk. This register value is used to ad + * just the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP i + * nterval when GLADJ.GFLADJ_REFCLK_LPM_SEL is set to '1'. This field must + * be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set t + * o '1' or GCTL.SOFITPSYNC is set to '1'. The value is derived as follows: + * FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_pe + * riod)) * ref_clk_period where - the ref_clk_period_integer is the intege + * r value of the ref_clk period got by truncating the decimal (fractional) + * value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_c + * lk_period is the ref_clk period including the fractional value. Examples + * : If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLA + * DJ_REFCLK_FLADJ = ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignorin + * g the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_PE + * RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*2 + * 0.8333 = 5208 (ignoring the fractional value) +*/ #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL 0x00000000 -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT 8 -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK 0x003FFF00U +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL 0x00000000 +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT 8 +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK 0x003FFF00U -/*If TRUE Completion Timeout Disable is supported. This is required to be TRUE for Endpoint and either setting allowed for Root - ports. Drives Device Capability 2 [4]; EP=0x0001; RP=0x0001*/ +/* +* When this bit is set to '0', termsel, xcvrsel will become 0 during end o + * f resume while the opmode will become 0 once controller completes end of + * resume and enters U0 state (2 separate commandswill be issued). When th + * is bit is set to '1', all the termsel, xcvrsel, opmode becomes 0 during + * end of resume itself (only 1 command will be issued) +*/ +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_DEFVAL +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_SHIFT +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_MASK +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_SHIFT 10 +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_MASK 0x00000400U + +/* +* Reserved +*/ +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_DEFVAL +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_SHIFT +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_MASK +#define USB3_0_XHCI_GUCTL1_RESERVED_9_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL1_RESERVED_9_SHIFT 9 +#define USB3_0_XHCI_GUCTL1_RESERVED_9_MASK 0x00000200U + +/* +* Host IN Auto Retry (USBHstInAutoRetryEn) When set, this field enables th + * e Auto Retry feature. For IN transfers (non-isochronous) that encounter + * data packets with CRC errors or internal overrun scenarios, the auto ret + * ry feature causes the Host core to reply to the device with a non-termin + * ating retry ACK (that is, an ACK transaction packet with Retry = 1 and N + * umP != 0). If the Auto Retry feature is disabled (default), the core wil + * l respond with a terminating retry ACK (that is, an ACK transaction pack + * et with Retry = 1 and NumP = 0). - 1'b0: Auto Retry Disabled - 1'b1: Aut + * o Retry Enabled Note: This bit is also applicable to the device mode. +*/ +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_DEFVAL +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_SHIFT +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_MASK +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_SHIFT 14 +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_MASK 0x00004000U + +/* +* If TRUE Completion Timeout Disable is supported. This is required to be + * TRUE for Endpoint and either setting allowed for Root ports. Drives Devi + * ce Capability 2 [4]; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT 9 -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT 9 +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK 0x00000200U -/*Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0x0004; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0x0004; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT 0 -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT 0 +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0xFFF0; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0xFFF0; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT 0 -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT 0 +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT 0 -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT 0 +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT 0 -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT 0 +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFFF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFFF +*/ #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT 0 -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT 0 +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0x00FF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0x00FF +*/ #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT 0 -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT 0 +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT 0 -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT 0 +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFFF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0xFFFF +*/ #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT 0 -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT 0 +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFF0*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFF0 +*/ #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT 0 -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT 0 +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0xFFF0*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0xFFF0 +*/ #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT 0 -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT 0 +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 +*/ #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT 0 -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT 0 +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 +*/ #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT 0 -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT 0 +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK 0x0000FFFFU -/*Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1- 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred - to the Device Capabilities register. The values: 4-2048 bytes, 5- 4096 bytes are not supported; EP=0x0001; RP=0x0001*/ +/* +* Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1 + * - 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred to the Device Capa + * bilities register. The values: 4-2048 bytes, 5- 4096 bytes are not suppo + * rted; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL 0x00002138 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT 8 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK 0x00000700U +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL 0x00002138 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT 8 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK 0x00000700U -/*Endpoint L1 Acceptable Latency. Records the latency that the endpoint can withstand on transitions from L1 state to L0 (if L1 - state supported). Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to 8us, 4h 8 to 16us, 5h 16 to 32us, 6 - 32 to 64us, 7h more than 64us. For Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000*/ +/* +* Endpoint L1 Acceptable Latency. Records the latency that the endpoint ca + * n withstand on transitions from L1 state to L0 (if L1 state supported). + * Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to + * 8us, 4h 8 to 16us, 5h 16 to 32us, 6h 32 to 64us, 7h more than 64us. For + * Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL 0x00002138 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT 3 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK 0x00000038U +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL 0x00002138 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT 3 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK 0x00000038U -/*Identifies the type of device/port as follows: 0000b PCI Express Endpoint device, 0001b Legacy PCI Express Endpoint device, 0 - 00b Root Port of PCI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110b Downstream Port of PCI Express Sw - tch, 0111b PCIE Express to PCI/PCI-X Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Express Capabilities r - gister. Must be consistent with IS_SWITCH and UPSTREAM_FACING settings.; EP=0x0000; RP=0x0004*/ +/* +* Identifies the type of device/port as follows: 0000b PCI Express Endpoin + * t device, 0001b Legacy PCI Express Endpoint device, 0100b Root Port of P + * CI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110 + * b Downstream Port of PCI Express Switch, 0111b PCIE Express to PCI/PCI-X + * Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Expre + * ss Capabilities register. Must be consistent with IS_SWITCH and UPSTREAM + * _FACING settings.; EP=0x0000; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL 0x00009C02 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT 4 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK 0x000000F0U +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL 0x00009C02 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT 4 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK 0x000000F0U -/*PCIe Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capab - lity.; EP=0x009C; RP=0x0000*/ +/* +* PCIe Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x009C; + * RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL 0x00009C02 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT 8 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK 0x0000FF00U +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL 0x00009C02 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT 8 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK 0x0000FF00U -/*Number of credits that should be advertised for Completion data received on Virtual Channel 0. The bytes advertised must be l - ss than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD*/ +/* +* Number of credits that should be advertised for Completion data received + * on Virtual Channel 0. The bytes advertised must be less than or equal t + * o the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD +*/ #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK 0x000007FFU -/*Number of credits that should be advertised for Completion headers received on Virtual Channel 0. The sum of the posted, non - osted, and completion header credits must be <= 80; EP=0x0048; RP=0x0024*/ +/* +* Number of credits that should be advertised for Completion headers recei + * ved on Virtual Channel 0. The sum of the posted, non posted, and complet + * ion header credits must be <= 80; EP=0x0048; RP=0x0024 +*/ #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL 0x00000248 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK 0x0000007FU +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL 0x00000248 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK 0x0000007FU -/*Number of credits that should be advertised for Non-Posted headers received on Virtual Channel 0. The number of non posted da - a credits advertised by the block is equal to the number of non posted header credits. The sum of the posted, non posted, and - completion header credits must be <= 80; EP=0x0004; RP=0x000C*/ +/* +* Number of credits that should be advertised for Non-Posted headers recei + * ved on Virtual Channel 0. The number of non posted data credits advertis + * ed by the block is equal to the number of non posted header credits. The + * sum of the posted, non posted, and completion header credits must be <= + * 80; EP=0x0004; RP=0x000C +*/ #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL 0x00000248 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT 7 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK 0x00003F80U +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL 0x00000248 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT 7 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK 0x00003F80U -/*Number of credits that should be advertised for Non-Posted data received on Virtual Channel 0. The number of non posted data - redits advertised by the block is equal to two times the number of non posted header credits if atomic operations are support - d or is equal to the number of non posted header credits if atomic operations are not supported. The bytes advertised must be - less than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018*/ +/* +* Number of credits that should be advertised for Non-Posted data received + * on Virtual Channel 0. The number of non posted data credits advertised + * by the block is equal to two times the number of non posted header credi + * ts if atomic operations are supported or is equal to the number of non p + * osted header credits if atomic operations are not supported. The bytes a + * dvertised must be less than or equal to the bram bytes available. See VC + * 0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 +*/ #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK 0x000007FFU -/*Number of credits that should be advertised for Posted data received on Virtual Channel 0. The bytes advertised must be less - han or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5*/ +/* +* Number of credits that should be advertised for Posted data received on + * Virtual Channel 0. The bytes advertised must be less than or equal to th + * e bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 +*/ #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK 0x000007FFU -/*Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x00 - 0*/ +/* +* Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_ + * n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT 15 -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK 0x00008000U +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT 15 +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK 0x00008000U -/*Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim TRUE == trim.; EP=0x0001; RP=0x0001*/ +/* +* Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim + * TRUE == trim.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT 14 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK 0x00004000U +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT 14 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK 0x00004000U -/*Enables ECRC check on received TLP's 0 == don't check 1 == always check 3 == check if enabled by ECRC check enable bit of AER - cap structure; EP=0x0003; RP=0x0003*/ +/* +* Enables ECRC check on received TLP's 0 == don't check 1 == always check + * 3 == check if enabled by ECRC check enable bit of AER cap structure; EP= + * 0x0003; RP=0x0003 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT 12 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK 0x00003000U +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT 12 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK 0x00003000U -/*Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). Calculated from max payload size supported and the n - mber of brams configured for transmit; EP=0x001C; RP=0x001C*/ +/* +* Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). + * Calculated from max payload size supported and the number of brams conf + * igured for transmit; EP=0x001C; RP=0x001C +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT 7 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK 0x00000F80U +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT 7 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK 0x00000F80U -/*Number of credits that should be advertised for Posted headers received on Virtual Channel 0. The sum of the posted, non post - d, and completion header credits must be <= 80; EP=0x0004; RP=0x0020*/ +/* +* Number of credits that should be advertised for Posted headers received + * on Virtual Channel 0. The sum of the posted, non posted, and completion + * header credits must be <= 80; EP=0x0004; RP=0x0020 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK 0x0000007FU +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK 0x0000007FU -/*Specifies values to be transferred to Header Type register. Bit 7 should be set to '0' indicating single-function device. Bit - 0 identifies header as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; RP=0x0001*/ +/* +* Specifies values to be transferred to Header Type register. Bit 7 should + * be set to '0' indicating single-function device. Bit 0 identifies heade + * r as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; + * RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL 0x00000100 -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL 0x00000100 +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK 0x000000FFU -/*PM Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabil - ty.; EP=0x0048; RP=0x0060*/ +/* +* PM Capability's Next Capability Offset pointer to the next item in the c + * apabilities list, or 00h if this is the final capability.; EP=0x0048; RP + * =0x0060 +*/ #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL 0x00003D48 -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT 0 -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL 0x00003D48 +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT 0 +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK 0x000000FFU -/*MSI Per-Vector Masking Capable. The value is transferred to the MSI Control Register[8]. When set, adds Mask and Pending Dwor - to Cap structure; EP=0x0000; RP=0x0000*/ +/* +* MSI Per-Vector Masking Capable. The value is transferred to the MSI Cont + * rol Register[8]. When set, adds Mask and Pending Dword to Cap structure; + * EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT 9 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT 9 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK 0x00000200U -/*Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U -/*MSI Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabi - ity.; EP=0x0060; RP=0x0000*/ +/* +* MSI Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x0060; R + * P=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT 0 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT 0 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK 0x000000FFU -/*Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U -/*Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b x4, 001000b x8.; EP=0x0004; RP=0x0004*/ +/* +* Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b + * x4, 001000b x8.; EP=0x0004; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL 0x00000104 -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK 0x0000003FU +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL 0x00000104 +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK 0x0000003FU -/*Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x00 - 4; RP=0x0004*/ +/* +* Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1 + * ], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x0004; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL 0x00000104 -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT 6 -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK 0x00000FC0U +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL 0x00000104 +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT 6 +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK 0x00000FC0U -/*TRUE specifies upstream-facing port. FALSE specifies downstream-facing port.; EP=0x0001; RP=0x0000*/ +/* +* TRUE specifies upstream-facing port. FALSE specifies downstream-facing p + * ort.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL 0x000000F0 -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT 6 -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK 0x00000040U +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL 0x000000F0 +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT 6 +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK 0x00000040U -/*Enable the routing of message TLPs to the user through the TRN RX interface. A bit value of 1 enables routing of the message - LP to the user. Messages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 - ERR NONFATAL, Bit 2 - ERR FATAL, - Bit 3 - INTA Bit 4 - INTB, Bit 5 - INTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit 10 PME_Turn_Off; - EP=0x0000; RP=0x07FF*/ +/* +* Enable the routing of message TLPs to the user through the TRN RX interf + * ace. A bit value of 1 enables routing of the message TLP to the user. Me + * ssages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 + * - ERR NONFATAL, Bit 2 - ERR FATAL, Bit 3 - INTA Bit 4 - INTB, Bit 5 - I + * NTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit + * 10 PME_Turn_Off; EP=0x0000; RP=0x07FF +*/ #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT 5 -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK 0x0000FFE0U +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT 5 +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK 0x0000FFE0U -/*Disable BAR filtering. Does not change the behavior of the bar hit outputs; EP=0x0000; RP=0x0001*/ +/* +* Disable BAR filtering. Does not change the behavior of the bar hit outpu + * ts; EP=0x0000; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT 1 -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK 0x00000002U +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT 1 +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK 0x00000002U -/*Link Bandwidth notification capability. Indicates support for the link bandwidth notification status and interrupt mechanism. - Required for Root.; EP=0x0000; RP=0x0001*/ +/* +* Link Bandwidth notification capability. Indicates support for the link b + * andwidth notification status and interrupt mechanism. Required for Root. + * ; EP=0x0000; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL 0x000009FF -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT 9 -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL 0x000009FF +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT 9 +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK 0x00000200U -/*Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Optionality ECN. Transferred to the Link Capabilities r - gister.; EP=0x0001; RP=0x0001*/ +/* +* Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Op + * tionality ECN. Transferred to the Link Capabilities register.; EP=0x0001 + * ; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL 0x000009FF -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT 14 -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK 0x00004000U +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL 0x000009FF +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT 14 +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK 0x00004000U -/*Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value (or combined with the built-in value, depending on L - _REPLAY_TIMEOUT_FUNC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000*/ +/* +* Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value + * (or combined with the built-in value, depending on LL_REPLAY_TIMEOUT_FU + * NC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT 15 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK 0x00008000U +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT 15 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK 0x00008000U -/*Sets a user-defined timeout for the Replay Timer to force cause the retransmission of unacknowledged TLPs; refer to LL_REPLAY - TIMEOUT_EN and LL_REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this attribute is in symbol times, which is - 4ns at GEN1 speeds and 2ns at GEN2.; EP=0x0000; RP=0x0000*/ +/* +* Sets a user-defined timeout for the Replay Timer to force cause the retr + * ansmission of unacknowledged TLPs; refer to LL_REPLAY_TIMEOUT_EN and LL_ + * REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this att + * ribute is in symbol times, which is 4ns at GEN1 speeds and 2ns at GEN2.; + * EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT 0 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK 0x00007FFFU +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT 0 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK 0x00007FFFU -/*Device ID for the the PCIe Cap Structure Device ID field*/ +/* +* Device ID for the the PCIe Cap Structure Device ID field +*/ #undef PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL #undef PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT #undef PCIE_ATTRIB_ID_CFG_DEV_ID_MASK -#define PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL 0x10EE7024 -#define PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT 0 -#define PCIE_ATTRIB_ID_CFG_DEV_ID_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL 0x10EE7024 +#define PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT 0 +#define PCIE_ATTRIB_ID_CFG_DEV_ID_MASK 0x0000FFFFU -/*Vendor ID for the PCIe Cap Structure Vendor ID field*/ +/* +* Vendor ID for the PCIe Cap Structure Vendor ID field +*/ #undef PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL #undef PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT #undef PCIE_ATTRIB_ID_CFG_VEND_ID_MASK -#define PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL 0x10EE7024 -#define PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT 16 -#define PCIE_ATTRIB_ID_CFG_VEND_ID_MASK 0xFFFF0000U +#define PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL 0x10EE7024 +#define PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT 16 +#define PCIE_ATTRIB_ID_CFG_VEND_ID_MASK 0xFFFF0000U -/*Subsystem ID for the the PCIe Cap Structure Subsystem ID field*/ +/* +* Subsystem ID for the the PCIe Cap Structure Subsystem ID field +*/ #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL 0x10EE0007 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT 0 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK 0x0000FFFFU +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL 0x10EE0007 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT 0 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK 0x0000FFFFU -/*Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field*/ +/* +* Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field +*/ #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL 0x10EE0007 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT 16 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK 0xFFFF0000U +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL 0x10EE0007 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT 16 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK 0xFFFF0000U -/*Revision ID for the the PCIe Cap Structure*/ +/* +* Revision ID for the the PCIe Cap Structure +*/ #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT 0 -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK 0x000000FFU +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT 0 +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK 0x000000FFU -/*Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 8000; RP=0x8000*/ +/* +* Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x8000; RP=0x8000 +*/ #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK 0x0000FFFFU -/*Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 0005; RP=0x0006*/ +/* +* Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x0005; RP=0x0006 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK 0x000000FFU -/*INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] to be hardwired to 0.; EP=0x0001; RP=0x0001*/ +/* +* INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] + * to be hardwired to 0.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT 8 -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT 8 +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK 0x00000100U -/*Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001*/ +/* +* Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U -/*Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001*/ +/* +* Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U -/*VSEC's Next Capability Offset pointer to the next item in the capabilities list, or 000h if this is the final capability.; EP - 0x0140; RP=0x0140*/ +/* +* VSEC's Next Capability Offset pointer to the next item in the capabiliti + * es list, or 000h if this is the final capability.; EP=0x0140; RP=0x0140 +*/ #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL 0x00002281 -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT 1 -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK 0x00001FFEU +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL 0x00002281 +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT 1 +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK 0x00001FFEU -/*CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the Root Capabilities register.; EP=0x0000; RP=0x0000*/ +/* +* CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the + * Root Capabilities register.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT 5 -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK 0x00000020U +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT 5 +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK 0x00000020U -/*Indicates that the MSIX structures exists. If this is FALSE, then the MSIX structure cannot be accessed via either the link o - the management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSIX structures exists. If this is FALSE, then the MS + * IX structure cannot be accessed via either the link or the management po + * rt.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL 0x00000100 -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL 0x00000100 +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK 0x00000100U -/*MSI-X Table Size. This value is transferred to the MSI-X Message Control[10:0] field. Set to 0 if MSI-X is not enabled. Note - hat the core does not implement the table; that must be implemented in user logic.; EP=0x0003; RP=0x0000*/ +/* +* MSI-X Table Size. This value is transferred to the MSI-X Message Control + * [10:0] field. Set to 0 if MSI-X is not enabled. Note that the core does + * not implement the table; that must be implemented in user logic.; EP=0x0 + * 003; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK 0x000007FFU -/*MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; - P=0x0000*/ +/* +* MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x0000FFFFU -/*MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0000; - P=0x0000*/ +/* +* MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x00001FFFU +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x00001FFFU -/*MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x0001; RP=0x0000*/ +/* +* MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFFFU -/*MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x1000; RP=0x0000*/ +/* +* MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x1000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL 0x00008000 -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 3 -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFF8U +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL 0x00008000 +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 3 +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFF8U -/*DT837748 Enable*/ +/* +* DT837748 Enable +*/ #undef PCIE_ATTRIB_CB_CB1_DEFVAL #undef PCIE_ATTRIB_CB_CB1_SHIFT #undef PCIE_ATTRIB_CB_CB1_MASK -#define PCIE_ATTRIB_CB_CB1_DEFVAL 0x00000001 -#define PCIE_ATTRIB_CB_CB1_SHIFT 1 -#define PCIE_ATTRIB_CB_CB1_MASK 0x00000002U +#define PCIE_ATTRIB_CB_CB1_DEFVAL 0x00000001 +#define PCIE_ATTRIB_CB_CB1_SHIFT 1 +#define PCIE_ATTRIB_CB_CB1_MASK 0x00000002U -/*Active State PM Support. Indicates the level of active state power management supported by the selected PCI Express Link, enc - ded as follows: 0 Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supported.; EP=0x0001; RP=0x0001*/ +/* +* Active State PM Support. Indicates the level of active state power manag + * ement supported by the selected PCI Express Link, encoded as follows: 0 + * Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supporte + * d.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL 0x00001FFD -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT 12 -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK 0x00003000U +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL 0x00001FFD +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT 12 +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK 0x00003000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*Status Read value of PLL Lock*/ +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U + +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU + +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L0_PLL_STATUS_READ_1_OFFSET 0XFD4023E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L1_PLL_STATUS_READ_1_OFFSET 0XFD4063E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L2_PLL_STATUS_READ_1_OFFSET 0XFD40A3E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L3_PLL_STATUS_READ_1_OFFSET 0XFD40E3E4 -/*CIBGMN: COMINIT Burst Gap Minimum.*/ +/* +* CIBGMN: COMINIT Burst Gap Minimum. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT 0 -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT 0 +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK 0x000000FFU -/*CIBGMX: COMINIT Burst Gap Maximum.*/ +/* +* CIBGMX: COMINIT Burst Gap Maximum. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT 8 -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT 8 +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK 0x0000FF00U -/*CIBGN: COMINIT Burst Gap Nominal.*/ +/* +* CIBGN: COMINIT Burst Gap Nominal. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGN_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT 16 -#define SATA_AHCI_VENDOR_PP2C_CIBGN_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT 16 +#define SATA_AHCI_VENDOR_PP2C_CIBGN_MASK 0x00FF0000U -/*CINMP: COMINIT Negate Minimum Period.*/ +/* +* CINMP: COMINIT Negate Minimum Period. +*/ #undef SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CINMP_MASK -#define SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT 24 -#define SATA_AHCI_VENDOR_PP2C_CINMP_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT 24 +#define SATA_AHCI_VENDOR_PP2C_CINMP_MASK 0xFF000000U -/*CWBGMN: COMWAKE Burst Gap Minimum.*/ +/* +* CWBGMN: COMWAKE Burst Gap Minimum. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT 0 -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT 0 +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK 0x000000FFU -/*CWBGMX: COMWAKE Burst Gap Maximum.*/ +/* +* CWBGMX: COMWAKE Burst Gap Maximum. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT 8 -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT 8 +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK 0x0000FF00U -/*CWBGN: COMWAKE Burst Gap Nominal.*/ +/* +* CWBGN: COMWAKE Burst Gap Nominal. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGN_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT 16 -#define SATA_AHCI_VENDOR_PP3C_CWBGN_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT 16 +#define SATA_AHCI_VENDOR_PP3C_CWBGN_MASK 0x00FF0000U -/*CWNMP: COMWAKE Negate Minimum Period.*/ +/* +* CWNMP: COMWAKE Negate Minimum Period. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWNMP_MASK -#define SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT 24 -#define SATA_AHCI_VENDOR_PP3C_CWNMP_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT 24 +#define SATA_AHCI_VENDOR_PP3C_CWNMP_MASK 0xFF000000U -/*BMX: COM Burst Maximum.*/ +/* +* BMX: COM Burst Maximum. +*/ #undef SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_BMX_SHIFT #undef SATA_AHCI_VENDOR_PP4C_BMX_MASK -#define SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_BMX_SHIFT 0 -#define SATA_AHCI_VENDOR_PP4C_BMX_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_BMX_SHIFT 0 +#define SATA_AHCI_VENDOR_PP4C_BMX_MASK 0x000000FFU -/*BNM: COM Burst Nominal.*/ +/* +* BNM: COM Burst Nominal. +*/ #undef SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_BNM_SHIFT #undef SATA_AHCI_VENDOR_PP4C_BNM_MASK -#define SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_BNM_SHIFT 8 -#define SATA_AHCI_VENDOR_PP4C_BNM_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_BNM_SHIFT 8 +#define SATA_AHCI_VENDOR_PP4C_BNM_MASK 0x0000FF00U -/*SFD: Signal Failure Detection, if the signal detection de-asserts for a time greater than this then the OOB detector will det - rmine this is a line idle and cause the PhyInit state machine to exit the Phy Ready State. A value of zero disables the Signa - Failure Detector. The value is based on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving a nominal time of - 500ns based on a 150MHz PMCLK.*/ +/* +* SFD: Signal Failure Detection, if the signal detection de-asserts for a + * time greater than this then the OOB detector will determine this is a li + * ne idle and cause the PhyInit state machine to exit the Phy Ready State. + * A value of zero disables the Signal Failure Detector. The value is base + * d on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving + * a nominal time of 500ns based on a 150MHz PMCLK. +*/ #undef SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_SFD_SHIFT #undef SATA_AHCI_VENDOR_PP4C_SFD_MASK -#define SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_SFD_SHIFT 16 -#define SATA_AHCI_VENDOR_PP4C_SFD_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_SFD_SHIFT 16 +#define SATA_AHCI_VENDOR_PP4C_SFD_MASK 0x00FF0000U -/*PTST: Partial to Slumber timer value, specific delay the controller should apply while in partial before entering slumber. Th - value is bases on the system clock divided by 128, total delay = (Sys Clock Period) * PTST * 128*/ +/* +* PTST: Partial to Slumber timer value, specific delay the controller shou + * ld apply while in partial before entering slumber. The value is bases on + * the system clock divided by 128, total delay = (Sys Clock Period) * PTS + * T * 128 +*/ #undef SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_PTST_SHIFT #undef SATA_AHCI_VENDOR_PP4C_PTST_MASK -#define SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_PTST_SHIFT 24 -#define SATA_AHCI_VENDOR_PP4C_PTST_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_PTST_SHIFT 24 +#define SATA_AHCI_VENDOR_PP4C_PTST_MASK 0xFF000000U -/*RIT: Retry Interval Timer. The calculated value divided by two, the lower digit of precision is not needed.*/ +/* +* RIT: Retry Interval Timer. The calculated value divided by two, the lowe + * r digit of precision is not needed. +*/ #undef SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL #undef SATA_AHCI_VENDOR_PP5C_RIT_SHIFT #undef SATA_AHCI_VENDOR_PP5C_RIT_MASK -#define SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL 0x3FFC96A4 -#define SATA_AHCI_VENDOR_PP5C_RIT_SHIFT 0 -#define SATA_AHCI_VENDOR_PP5C_RIT_MASK 0x000FFFFFU +#define SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL 0x3FFC96A4 +#define SATA_AHCI_VENDOR_PP5C_RIT_SHIFT 0 +#define SATA_AHCI_VENDOR_PP5C_RIT_MASK 0x000FFFFFU -/*RCT: Rate Change Timer, a value based on the 54.2us for which a SATA device will transmit at a fixed rate ALIGNp after OOB ha - completed, for a fast SERDES it is suggested that this value be 54.2us / 4*/ +/* +* RCT: Rate Change Timer, a value based on the 54.2us for which a SATA dev + * ice will transmit at a fixed rate ALIGNp after OOB has completed, for a + * fast SERDES it is suggested that this value be 54.2us / 4 +*/ #undef SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL #undef SATA_AHCI_VENDOR_PP5C_RCT_SHIFT #undef SATA_AHCI_VENDOR_PP5C_RCT_MASK -#define SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL 0x3FFC96A4 -#define SATA_AHCI_VENDOR_PP5C_RCT_SHIFT 20 -#define SATA_AHCI_VENDOR_PP5C_RCT_MASK 0xFFF00000U +#define SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL 0x3FFC96A4 +#define SATA_AHCI_VENDOR_PP5C_RCT_SHIFT 20 +#define SATA_AHCI_VENDOR_PP5C_RCT_MASK 0xFFF00000U #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET @@ -27659,123 +36123,252 @@ #undef CRF_APB_RST_FPD_TOP_OFFSET #define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 -/*USB 0 reset for control registers*/ +/* +* USB 0 reset for control registers +*/ #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U -/*USB 0 sleep circuit reset*/ +/* +* USB 0 sleep circuit reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U -/*USB 0 reset*/ +/* +* USB 0 reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U -/*GEM 3 reset*/ +/* +* GEM 3 reset +*/ #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1*/ +/* +* Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 +*/ #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU -/*Set to '1' to hold the GT in reset. Clear to release.*/ +/* +* Set to '1' to hold the GT in reset. Clear to release. +*/ #undef DP_DP_PHY_RESET_GT_RESET_DEFVAL #undef DP_DP_PHY_RESET_GT_RESET_SHIFT #undef DP_DP_PHY_RESET_GT_RESET_MASK -#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 -#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 -#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U +#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 +#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 +#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET #define PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET 0XFFD80118 #undef PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET #define PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET 0XFFD80120 -/*Power-up Request Interrupt Enable for PL*/ +/* +* Power-up Request Interrupt Enable for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK 0x00800000U -/*Power-up Request Trigger for PL*/ +/* +* Power-up Request Trigger for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK 0x00800000U -/*Power-up Request Status for PL*/ +/* +* Power-up Request Status for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK 0x00800000U #define PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET 0XFFD80110 +#undef CRF_APB_RST_FPD_TOP_OFFSET +#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef CRL_APB_RST_LPD_TOP_OFFSET +#define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C +#undef FPD_SLCR_AFI_FS_OFFSET +#define FPD_SLCR_AFI_FS_OFFSET 0XFD615000 + +/* +* AF_FM0 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_SHIFT 7 +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_MASK 0x00000080U + +/* +* AF_FM1 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_SHIFT 8 +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_MASK 0x00000100U + +/* +* AF_FM2 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_SHIFT 9 +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_MASK 0x00000200U + +/* +* AF_FM3 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_SHIFT 10 +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_MASK 0x00000400U + +/* +* AF_FM4 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_SHIFT 11 +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_MASK 0x00000800U + +/* +* AF_FM5 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_SHIFT 12 +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_MASK 0x00001000U + +/* +* AFI FM 6 +*/ +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_MASK +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_SHIFT 19 +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_MASK 0x00080000U + +/* +* Select the 32/64/128-bit data width selection for the Slave 0 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved +*/ +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_DEFVAL +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_SHIFT +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_MASK +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_DEFVAL 0x00000A00 +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_SHIFT 8 +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_MASK 0x00000300U + +/* +* Select the 32/64/128-bit data width selection for the Slave 1 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved +*/ +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_DEFVAL +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_SHIFT +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_MASK +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_DEFVAL 0x00000A00 +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_SHIFT 10 +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_MASK 0x00000C00U #undef GPIO_MASK_DATA_5_MSW_OFFSET #define GPIO_MASK_DATA_5_MSW_OFFSET 0XFF0A002C #undef GPIO_DIRM_5_OFFSET @@ -27789,53 +36382,65 @@ #undef GPIO_DATA_5_OFFSET #define GPIO_DATA_5_OFFSET 0XFF0A0054 -/*Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW]*/ +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL 0x00000000 -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT 16 -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK 0xFFFF0000U +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT 16 +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK 0xFFFF0000U -/*Operation is the same as DIRM_0[DIRECTION_0]*/ +/* +* Operation is the same as DIRM_0[DIRECTION_0] +*/ #undef GPIO_DIRM_5_DIRECTION_5_DEFVAL #undef GPIO_DIRM_5_DIRECTION_5_SHIFT #undef GPIO_DIRM_5_DIRECTION_5_MASK -#define GPIO_DIRM_5_DIRECTION_5_DEFVAL -#define GPIO_DIRM_5_DIRECTION_5_SHIFT 0 -#define GPIO_DIRM_5_DIRECTION_5_MASK 0xFFFFFFFFU +#define GPIO_DIRM_5_DIRECTION_5_DEFVAL +#define GPIO_DIRM_5_DIRECTION_5_SHIFT 0 +#define GPIO_DIRM_5_DIRECTION_5_MASK 0xFFFFFFFFU -/*Operation is the same as OEN_0[OP_ENABLE_0]*/ +/* +* Operation is the same as OEN_0[OP_ENABLE_0] +*/ #undef GPIO_OEN_5_OP_ENABLE_5_DEFVAL #undef GPIO_OEN_5_OP_ENABLE_5_SHIFT #undef GPIO_OEN_5_OP_ENABLE_5_MASK -#define GPIO_OEN_5_OP_ENABLE_5_DEFVAL -#define GPIO_OEN_5_OP_ENABLE_5_SHIFT 0 -#define GPIO_OEN_5_OP_ENABLE_5_MASK 0xFFFFFFFFU +#define GPIO_OEN_5_OP_ENABLE_5_DEFVAL +#define GPIO_OEN_5_OP_ENABLE_5_SHIFT 0 +#define GPIO_OEN_5_OP_ENABLE_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU #ifdef __cplusplus extern "C" { #endif @@ -27848,6 +36453,7 @@ extern "C" { int psu_ddr_protection(); int psu_lpd_protection(); int psu_protection_lock(); + unsigned long psu_ddr_qos_init_data(void); unsigned long psu_apply_master_tz(); #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/system.hdf b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/system.hdf index 01f63760595e17790977e02fadedd4c4d2167ed7..8502f0d4b18de1b29ef091e250216543653894f9 100644 GIT binary patch literal 830291 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%0Al8wBX00PBk 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

ReT>y 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

    6?3LU){3`F^KFzFITt@_I%h%B%qe*6jc-dTjf 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 literal 867807 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

    eCnNYl-(#_p+&en(p~OjZwt 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 z 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%0AhF4Y=It@bznDpN?4!Ls+ZWoydw_~cEBe0 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

    qd_5(4u>@QqLvNNxB)bLoKd@6W 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 !I(c^>*5^d76y1@t-K>Ta$ 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

    t|(W{zsO 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

    dKO%pEJ9(tzt!8r_{~MP; z-ev!fHNYqTbL{v($8KvoQ|cOk0)7zy-8c@?UlT!eML&)mo}j%2E!hd0iV;{OD7+Mi(m0YKa zgx^HG>R^W0aMB11IqL#D|5Oh`aN1hwf>s+17T z)XJv{wkwoVq*D?@cUWmRC!>=`AC7Kv(=jM=Z9kolULnk(G6`^W%>y16*{mFLZ5to6 z;pnyFVhGs=65*6a_dYw$v(3hM*V0?i4$^Y1`Au)U>vk67;m9AdwB7 zu6MR8{6(uc6cz9t$tS)FGL9ym;fR{2B&`%z?K{K~<>VhjcvH3hP-!Poqg;umKi3!V z*WABed6;DV4|ayT-{I{8G~wRi^I7|CQ7?-AtT#uLCn#`9Ivc&}mTa7C;7zX(eAHJc z24EmP8LiJ%*5gfeEkFf&@}tnyXM{@pFB|z^M)AL_^k2pm%F@mwCjv?`is1M!G)2Id zss@R@{uQ*yN6c^zf-|Y>v724W2g^`B)cnf;QPQ?^ge;QOyafE(EX*dG?yTPdoO#%~R=Ok9mKQ5%TgSXls{qN*H$sNEs_GHF|v zgcH{yW8`MsF~2b+yG4A)nC$nvS`8il>qdYH7Xnqw8_a5MKpnk(dWK27L7cVABFD^R z$p?@MTQ9LRX<1xsCKg%iv!lruQjqs+s6E;TYrH*L>IOz_aAcZiT;N!i&?EP0ZwlQq z2HvAv5XwSLU1cGgd#Su=x+;W5P-|H?s%-Uhg7eh8_?g-=h&MF(kBp_#S86xgKyIAW z+K`lz8Cc2C?=0qOR38>-)JvyJI~~;iO2Kxo=B+AN$fr}1J`EXoLwtP08qHQie7$^L zElJ7~#1&%Jk|Q?d_ihrGk+UBetQrx0ISqzeK1JXh7y$b7a2Jz^8OIFO&CW6xcG&!M z_E)}KR>3+8|Jl8cn>TLR1HZ;5mREZwPGfDXI^K(B4)1IoKgg+{>pS5KY1&X3xJ@;A z_Ky=&)@UE_S-dUr&MV7S@-<-7aXNgkuc$hl8LSQQB0SOXLp*(3kpbE>0KCSD1RlD}$PGxFI659l=qnra=NHHWVHobBcTmn$(b_D-utSwPa z&w~ENPM9$VZ$eD-=@!MU_UxW+O1Pom3W(2C$7YtRTJ>r^CbEkp5BjR+v=EJ=_b}XmB?z`ZsO`M&7h^L+2D=`c=xNWxLSIW!DI(p$MCSReY>d-tvdWBSMS{r1o^uizOeg5 zXs`r1Qr;+8H*aYbP_c0d$X>k0$)WGHCeR-&DAB@b&O*JxNvjE0Tl^#LQC6VMvRFF5 zZfKnnf>0XHy=Hi}#EL8TljArj%4>$FryywkESy90G+JXsHmfPsmdOn;4!K!mSt_BQ z>YR|9X*>??-z2#rW3|~t=2zHaF2LrTMsMeHCOX)pzU^gmD+*>htz)S*@>>S~+u!se zPlO3)Pc_ga{fDSBc??TDyO^qJjO+PF;6k}J{>QVxQt|4Rfh-PyS+{#=2D{MraG|A; z0XZ@Hq)D;G!8)9rl6Po3MM0yeQb}%h`xW&d4lR!1GKL}`T>5SIC7s{C+sZ3Mt3 zDTgc*y;v!8Qw>=DWr2Cj3ikQ})&_wWVc25JrZj`0CR93UOioSL0{U>Iyc zR2L`94x!mtSMHa2N(@YCSZRi(j$?EbhH?AQQ__S&XGc%mc(qL!E~?7+gAuVoKw*o- zG=hrOJBifYyGi>vwR-}WkwSoYe`z$Pal!fi9CTQFqkq1&#=TXDJbv?1+S)v34ocw= zOI-UU)X*vR2k3!Xls|~mMlii$i-1CCkkzUk!PK$yrDu25n)!BacpAjbvco$gfE-|5~L^Rm-$Wx6K>D z(WxZa?58>Z&T+o@(O8i${yUk*DNRC96N2#Pulo@W-p*8M2!V`F{?(t_qVnrUbn~Hw zEd6I1%FUG>gtqx_^Rtt80cz-b2ocSKyOy-Rz!?lS?_u1BSk5a{q@TduGTl?3?(dII zPfr~!4WHu>@3C*R`<5To|GHfnpCG{8Kb+37ZmF3GJhvSuX zhOI*rTx@F>_ijKX$c8>(8Ox3_@a$a=c)=qeRLUMb2X(dHZ^q^qu;(VToVj%Cht&&+ z`#ibUYTPjYLAPY7gGr-9DwHc{H*zt4@WVSEd_8%8F8+d;93O7&uwY%}^oqNWfmlx5 zfHM=(Zc1RO6wC+Aej47LSW!X2AYP)b47Dg#wS;OTIaF^>Bbp*?D~tX@q;-Q{+yut0 zNEI{xCro;2>GZVQzBg$RK?x+EsrgD^1l<(Q^$$C*LUPYIkUa6Xg&o5M^65nN^95$J zRTyh_0eYKCliOO<&FFfLfK`YSGF?B4Iyfv*wV1O7i@Q$b?t%9R(V}qi3H43*c?jF( zYO3}Kxk(7k?6dQjT8=-fnAIFFs}Q^_cV99M)~JELLUt(iaL5hNaPrH?AYA~xvu+oW zdN@4Wnv=?=U_DRwTp4Zojdw%L+5$;+&}giLPS75>g$hMG1q}E84Q6!;_^!Sj9BRL- zdbl<53Z3Lgy*>rlxg3RyV7E#-JL3kp)ft_Zj$sC&wp&hf>@Guo-WKZ_Hg^z(?sUqc zo13wb*RE2$u6n%`*=(PS;1*Qj)q4}nN=oCr$d8QX4VGpVDBAA@Ck^OHSnsrwtY?nl zq7zA)taRgpl_rTih^&YegT(Ka#NJ}i4|_$3mdA@yiKkE}EpyerM>JFAgPx*QTHjeI z%0uwKpJK_$Zd0#;Hj$JZfOPNYr6~Jd5N@^%RX7TC%;Vw}tdFp9dGna!%X)XtEE?X&G)+a)YHUptZ!2fv8XY0PTo=#5`T?@ zt7L#Y3$}D%#gnlw)L0G2A6Z&-18T{~=Ewaj-rVxVOd7_nPB;T0UWSccWTdEcc-YfW zhfNNuse0~M#S>^X1kmbA)tJDWKAuB;{2vkok`=^pq6Dthr)!q{GB70&ojQi@SyhC0 z`Gav&kdKWSac0*%D?`y)D9Z~$e6%XwR8?W-;#KH<3;P$=P1r394Hw?D^lBv`>zOGS zr3?LZvg?uZr&`tRDTo{`+~N(iSS4UO(KTKJRfr=$lt)n-q}xj3;iNgGA4G{xk0D|h8$f{-P*4RF^go7>Rku=>e>Ur`IS5u84q2s;pQ~#a z5SV+6sdcGdVj@#)GZN8t83xX_7g74@TPHGc)X(XtOeW|HHwciPND>H-KFoZu0$ zsdBx3SSBkR9&Ddgndh@O&?e+0Vvei+dWOV@9sL%c|@q*l?)U0QGVr+s>- zlAh+Vxb^=MmL0RHezCjRzZCC85aN}%kqS&vUJYw~%Q7+B+&N2w??qn(K6QFs98PP5 zaK?#|O_93ThBN>$Z;a4hZd9o0E|u%Urme5vJ1Yw)E~~#tn}7ToQuEpj4cXsO4e6#t z`yrWc$*mh+M8tF!Bs34;Lcwx@iF|mOr;%H!H&#wm&`Su^c5pOLu@T*%I9Mv=hy*T> zHV-P>GJX~0dfMKWWY#-fYgf_HSv%X}m>R128Q&40V+<`RYPEWC>WQSwx1Z%Za*jFV zePMRILjxBm&h`{CJ7b27l|w@(`;CiLsOSfVU9jxAm?WB0FeVAVx26K1L@WNXQoQ*o zT&uklQ}a)w4qzkTAj`)ojAt~E+l-PBQT8#-tn8pr2-Nt{J~SnF!$}h)`h8W_LopYC zK^p&wB61INbC;qX&6d^GRzlXJo!f^P+}F(li?&d1d#XfPMK9-+f;Om5919G+rm10x zJWYol_FTm87nF5UB0c_2(seP5s{4l)K04A@?od9(VP0AY?+Q@D|$ypMuj*tZw zK4hvMi}sqFG#n57P{urYq`i*74a{$NKPS6f;C)GGR4kTTMRZ?5_N8i1=W}NjirytbT|n1#_j_-^&L{7e``x`` z;;!H^uiV7tXw1M9bg!KN<%6!kvGBofyei@pn*@K~)Mu>*)B?8&|JO~S_m{*I&0R>a z8$aZc)2^at%ld)Mzwzz{b$@TSFR!d}1pQ_SZ>wU;V&3=9W{ZR|W)Cm6=i4@`w$n?i z19kGN^F+PcS!BNGV!m{@ba6%L3fGUf=f_=i%f%!^*mCm@>DyHykG#`X54ZV|3`Ze7 zJ@=UNUwxmQU7nzjjwh$vMt40%+?Hx=(>>Z0kvuphIUrU9dTkRx-%J+TRhu6x#a|O zd^$_IyL;U+YDxMBB!9hL#$An;IZd&oH1zd6lJ)Hh?mTpp>!AFr^Xfs*(DEMXbB5KZ7m8p zAfo8<1h8SmWvoi1nNTM>pqg_QGZ2k#-SB-5GJ|c-w!p0cRU>&+LJx>+$O&jA(Ss>+hQ4Vdp?eD`5LB?}X~-qWTkRy+V)RKmFa0ER^Ldf% zJMa^uLU9LgWVY`nAV)6hs*e>CM6)ad(6KzngG70nAgwGU_t$*HX4fW#e%c5xbo>x1 zb?XB;+3t6Tw9B404-RXuO&t6&7B((LpO5W6o}|Gd#u;%SoP&+b!|gAjzrIBj2dcN( zasE6GQI|;82b2hHaqz}gdCo%>EGiyYmuq+GAHy(o)V)}P`P!-3!~W6+OJiua8Y{&8 z?qn;sCwN@Yd!s%fa|hEI5Gl1`6cPw6a6Hem9w8>sh)o&W@Ce#p#txQ6--<2a;1+gL zLi?`5%G9Z41&mhSiqQ0$H2<;gAEm4{fGk!1AYg8$)enDlsQ*G5>Vgbe8s3k(F(%4U zz};QiC&4lA{wTkvTJ2z9x8OFIggy*%Cdy#qZyx9qE0-UomBy`>8=jX}aSp2>);mp< z*Y-Wg+_bIyZ;JWy(|n;;3U-n9J2mWGSOWUT&sJK`We{RfC2M%gD>EchY(x$)xhG?z z+dg>U5y(Pli{;;t4;Wut{f=1ez`?iN(XZ^T!Mk`69W>UEK1p_HTa9OmLCghOt>Qgt zFb_t}nsv+an0YE41F9|Z8gEAl4d_?*-M`HXN&7<%?fUzMjaOZ;y64abyl#F${r^{% zIg!BOu!;Zx_Cp{5r2o&#G6Q2%23Hf?X+OKU>pCH)~zMZELN= zIlcFzlkn>}hjC`d9=Bpkw55}|&VTm`mI()g?{-lKc>couj`GIViHooY0Pm-qRd~Pq zo!Rp0>QR6FWpjRL-nDK($l12CZyxaE*t}yvcx~3!V$T`Tm9UvU-z)q!&I+-`@BeO! zFKG9Odyez9z3bP*t55jX{kx@4uMgisOU}w)kdj?NgI&9th|!P1tNI3a!fV`EPrjY) zUHkw_pLpKLchH*b^N&aSw{J|VOO)x`?qWZ3F@7h1EtO`0!H&zcGV?oe+ zwhQ<-?)bHL?P_gqf8ITOYzJ_xbah=u=#kyr&0>oc(++LzT#kdDca;;VlmXtRZ=8DL z0+56iKZm~jyLWc=dL_N6H*>K#PEp1((-~dt-`{`VxAQkid-oDsEkQ01?aEwy2I&};-%Q=kUCc4Sh{Ulsf}CuS5cjmW zBR$6i8qEq1kMtdse>j@g5Y9C^a8g`-{B=V7I6t*+>k`xo`0CfOCs5KJp>%~8@Xj3_ zTwh=B&GlErX`Oi7ee@WWzy8!{F}|nbd_&;j3LW->e?-jKK#5M^ncQh;Jct|i`f1+CRf9EPw=_7 zH<|{&ESKaJT?ORPr+XWp%_nkf{tWZ~`&GWK5@v5t-T16$@q3%!dylFxP@-}7```J8 zs-CxNXz|{^1oX|%msgg4ouBFu0e44Nj$}Th(0u{CZ|8q@PtOgCc7q?+(<45RQg~9N zlvlKRFCTl6SuPf4a?4lzkla9k2Ve1?ZIhrwoxk)F{^hV-sZV}XqV{p>v)+x96mn0Ln8F|+qHj!n&n;mll>=Kl=o}~=Bs|)1hQs)?$;X2vmaUSVUF-xW78rnh_rPy`^!ViaYmwA)iL1iiN{s@7(-Nms#_bT{4W}|xw@_I? zd9*Ysa6`NJmUmF$2n9x|MSNA6aC7?D-K8pL4aDfR*2@kG^`Ns*;?zdELA4NVr9dlI`NYCQ?^p|Nau}lMXMoCXgH@4 zYq(-2IC{BM@`LBTA;XaI?6O7qvp?uv&2st31%>*wtPP8ex^ZBV`N_eWnjdj95!9;#Opd?DeP11#5) z>&-4CLj6+$iDA1QEoIqw7JlVzUcHtxIUys2OH(hbUNT=aepY(7!?ODttRLTNI3SHZ z1hn_^=F846C1p(1UD)(X&ov)916XC1-D)Mas1gF|nVgH>!i>bET-{E1pqoHAltr*Q zP@im!kcxO9a7IaMqKQAH?KR&Pn0-Oy1+NGlRHmKb;xDbURm@FH{U&6l$ynoj<>^W& zEFh&cMU4*6ze-5#1cQ+KHzT$&ocPM+N}CZ_vA{&p#I{8SHQ*mj#L&U1hL>Svw zy?J1-BdW88*o7W@5=>)KwZ>HF~YH z=pAL%WFtNwZCCI+mcrylir~?^BTp3{qVjG$`RwE#6;;CAbt2s4%=POdQd(f-D1e`x zH#~s9WQPGyWU2n$AfQdBv+6+Za04yg66Z;84Wi;od-g#3v@OGwuP8MmlG=N6_{8zn z77Pa+?xFsmp@SSWZz_9kerG?T-q=7J`Q-r-we|dCbaa+2LpaG(P)@`FrQj)h6s$%e zXMPFvH>NY`9Gfw|BD4Bi9L2W;w&ktMc#C}=*_7z}81n!Fd8&sPOIqe}*gvH6S@3!= zv@=w6!*>Jy%k5bdu>mFhYVuHd+UZzf9)FkNPr%Z0P~gQZ<)8z!etq@ApT09BlG&B= zlf^;=n?44Wj%s6ClEXZ>cB`NBLqA3EPF)WU&>eJHzDUmtzGIfQShjoXXFrEwL`(Cl z+aG|?{6<}wtA2XwE&lcW<1-MV+ENF7Az}IZY(ru2p5lsl7*V6l>wz}LqGI89?~g&% zQf0mDB&!iGint7GkUpZ|GEHZ~dt^hZoARhnbG7|*zVTQk%^-qGd|`+t6BW)U z#wVVI8zD!3303`QUUHJsoBS$V?r#3PdwbmNKm2eCz~{pYmY;jouK}shMJOxt$QJ#r zp|Ij@5erI_ol978`m6ALO;GIoe)bSdWB9kdSp->TGj13~#g9%JTFnO2 zKHW}?V4mBYPm;YRGZWF`&{3f7YJWQrr+rTrp4!u-#p;r^Xm-YQIj7YaixE$|vVkJj z;<=k#PJL+Erbcu5v*V3kUV8oDcn4$iclhkrgKOvGNDL>{?f%W@=S_jqPeHdGEdwMi zDVp{z1#JH|dXAsPT&<$<7JT5^E26a<@2%KRDtE-gEQDU8(SBXiY`uCW{-bQYWRE|L zuoKeySbGN9dQ?q(SJ`^l9)B2T?jB|Bnq}?QF!zqK5USAK`RLyH$ldv{A3tdyi$z|k(C zzxhKv?h>=~lH8BNRBOb*F|OATCqUWcmz9rI`Z!yz4e#Q;^&~HKp%R{Z(taqu^REKf zV7e?ohfLPo_*`hPFXgwiOWk-t7~iH1mk8zXw+ZL)Vy$BrZBVq^sX8MVd<a-W# zG@!67rmT#U;O-T7C!=#OO$VomG^`)GW$HuWSU?Aa11r7_l?Z~|A= z`}`qK^9dnL)>}DeplOMUi6JP5nM?VTC6LI!#e2eWT(Oq|O|`5BOCbNNg5#>Xluvdm zXAjVuYBq8PqpDWOM&qPn&K-yE)HMeP>;JaN5KixhmkLki0G7k}4uNIPL3kPCSu&`( z5ji{xZeVYQq!U9LJJiypk%&gw@}!aS>o(B9T-arQm>(Bh3MvnP_)p1$x<$yk0 zE>LU;Rk_RLD;Pb30bH!~}TXv@<8E zKh27d^Cq)Yv&=7V7*#47)pP7dhaOxzC_>k)>axsJ#A!=9+>9@s9N5G&PTJgTeP}Q_ zaCgA@&Kf8+}Pk6c(HdCR)e(PjeaWdA)kX|9eEhHRkmrz}eT z4+|dz>60cYQ0a!LKS|(JzcUR)QC{hig#O_}_8&e!Lj9x3Qts2_qJh4u&6WO^U*B0} zp&TlZOd=F-_3vub@^Y*qB7Kr+HQ17q$+ql{qy-*S%tZ}EeGQ1Z*O+>^-wzUKv*z4? z{HFeo-v!Vi@ZwYoc>nru_P_p9?d7Q=us$O9Sv z$j)Z;qY#FCgw+ewm6>$*H;j@N{tKGoKiZ%`0td=J+Gq_B0S8K~g){hxvBbaOQqOY> zAJ1gy4F1oZ&i`}gHyM&yQ)n;-QDCcf)>xpFN0}ddoELI~RU!VlM$iz8S}6PQNS-JbU(@}+fq_eW;?B&c0C&5=0?K^`~ z{l+#Jgqcyz$+smC`G3L?JuAZvvQo~>6weqka zY52;wZ?PuC54Fw06h}&LFD^H0r$YR%S8J;VA}WtcV6DouvQ~lRw*s4+ztQv5yxmu! zay>4ray=hz1gh#F9_W*MMv3U~dceB<===}r6UX#>RF9QCp1zOT$$jK0csVi_EGJ&?*mb{-`EZ4<9>dbV}H<|jUr>zMB% z6*DjVBmPb0@M=5X>3JF9_sN2=N9TR#CFpS>F`UV>+$U{)5+n>}T-WC95ndJU^aL zFpAivkc(8aXYg|s>?V>bl^v9kuv@6KICP0c)g82+MUO?})0d~2nR{a4ovr+uvBk%U z_l(d+?ZtSqJ-w&j5D;gL0y7VMZ!H{c#Um-#kL9YOdj|h503sVBQ%4Rzp6)+>Y1>fA zVy||-*mn}n!f-m7WYw)tKs7UHj#R`(bpHn9aYJ=<}H-swaqhnho~&DHwVw+Fho|6U%ZJT^kC zP#>6;14=0}ve+nJ8D!7|C8P|a7ILXvHis+0O0T%>v2!j1d)~QS=mnB45z} zg$8(y`W4c@dGs+_w`P4YMu0oPPFvip`VZoWGp~x`4+;bez8L*(JA+PJD69exok&~U z&hifmuq(b818%~DKQ^y8fjfh&Tim4j4+@AYuc!mAUw8g!XvFt6e~tzkn=iRgnT!ut zZ1tHBCn**&^v66=^hGjKflKI3MjI-8>|L{~-|}V8t})PBUw3o$`)D=0r0zp@7jYWSJdi5SPb#D0)d4Uy9 zi~;v)NVv@#E%v(K0+|OLR=aDLxHvuD(BUUURO(PMcQ(_DeGyKF)$t{!qzQ+r421j( z4jN8-5}o&j3Ar)d*ON^6p3fC-chA)>r`bb|`r}Es{9I+nDUDDzS9H{XZ|~F2<0eC> zO9Qe`gJS?oWO`iKCw=}Z9GnX#D{U2)xw-<>eG`jwsCzuSG>emklkB^h7iK<81=3nl znY>HMlSg%BmtZ?Bl`wGaEN@J;bMUm9n3ZJ0t}t;zsp7eloI8H(i<^p; zeAo}I~s+Y>Xk&Vr}#{ZS)3}|@keaL=XXDlwd zZ~ocuyGVU(Byp<89B$p|syHO3~ZV;o~Q^jup zRsP?TAHv}KNS33=*+v?%?=VKxjDWTENe%Z zJtZ;GT}K#2^_Espa$gKE=;n>jOut+--Y9w~58A``Mf}bVyljA1mG6Q_lNp46&K84Y zHatx!=y*s+kuZrRNKWpfWVOZyz9pxPlbAZb2OK@5S7oAltrhT{{9+nOt+o_abfddZ0g0H*qc*tzc-TEoTc z^jmSWOuDR*wxmIF`?=oDFb?zTrgYu|@~kohk0td7#_sv$!0-E>qwn|1B;$rLjU@GsB6vq3V+FWwbCL3P5$ z1sPzaQhHqDMvxp;%~wP>SquSp{hNxuO{HANbKgjkIT32;P2&z%2X&|WC!Tp#w@N)N zR7BX}=R}AhB25KpSDGA}W7IJIpvZdA-iH(^oU#Qg^-Zc6gkP-}^+nF+@qY5nrp3rv{qOC;iyk}I*&WrHcpSYBnH2H;4LgN{B9 zGO+hAejFUEBR387M7tg*E;s`SBH}cQ1C1>e>%moE%VWgx`VqwO2BHIT+tqa!CHe+g z3za{Vg9739KK2dP71X&{Asbf52tHEECEm#?Nzx^}2YOj0Gd{Oo`c)2F)?H2HcI=73 z9;Vi8cx8(Kt+nG5couX z1_n0~1zr%K!jl_p@YxB>BHyhJ4mef zs!_5J->~kW{-=iYA6Yg61DQ^|HE6{De7EK_ipTHQG?_J{1MF zMaJ`!_W~Y%HogW-+mN!a*7150k?> zrsM@L&t@D}e5x}pBP1Oy9P(+_PtvNK=WG1(bNfA7n_u*E8GLMlA!#!8c;q|_o{OBf zADk-p&c(Y2N$>Z9*IU8w)P0_4!V!egnCty1eI1oyNOIyiNax8+{*f`8!zz`D9`_Se zn2koMOL(jPJ6&uDyHI($@}_$JOvyX+=JW>Jbf|-TJ72 z`c@o)HJt-@FE3N}^>pEoZ`SQZDWOIW_`Isb&;#i(gqw3C%ZI8+i4&Bb-Y=!52-c?P zgsLleh|@pWr|PoaC#~qTdD&}g+)F$MH>Fx{pS)heDb_0VX_>sfPhw59_MKLT6^XHG z%5?VY_?I1ZSb~=?b?wu1&Z1MPp`$TLYl}^-% zmNc4YQ2cVh#tW>m4AWm0eiom+O-V)ex_=KS`~1ZjX*awr;uP$B51e`_$vQ4YN*`iioAV|0dnIML{4}cXo<+%l~+ZG(QMe zGHu8ASR-%7Qom!|YnPimh$C2VVdfN4`&5WCKoAIv=Z+Fx%mWQ1?AF$~*k#jISzB6} z_UY1wPMTU?8G;X^d>JYZp6NhYNrY2f_xK%goYZ!U*KSAheJ1<6FqB*x-Th@*Ok!6};K`;hoJEboT8f>zAE;j+wbC;G-&K&euzn9Q*fCVo5 zYSX=0<{F;ldj-bHv|JWv>V+;RvnruOv@)T(3-HvB7RfX_XcJ z%FYA@va2?fd1h;Ey;Vq-C3?+Gg4=dY!x{)7r%$ysMR?d8$nNQLNUDLYQ$!_FjXxdym!M9N?8k zQIn&;BZg8QOs0VZkg|ngx>w9U%UKf&b(L**<2q~tFlO1+^HPl!yF{#_!#Jl#kcR8x z54u!qrbgyjvvw`!$>VC`;HqlhnMs>a#*l_Au`+64A~NVW57xz~(|&YJ{eU(!TG3gf zdA+uH`ihocw6>S*9&?I`Vlzd!baa2iDaM?ST5(BHA%{V1OI}X~x_N?l>Q$-dk?d(O zppcYMd-1^TPOZ*$T?>;M5k#3PI4%3k2Rn9Soma~f`-YAI_8sj9DpCm(RfH{-rEfPL zldHSv`?GzlHs1}P7FHJWv{;Bq1Zzv_1q%I}^Vvx6x{~=E4Fx4Mw)bd6ITsf?ko0OQ zu*8xj-LmASy2>1=>^b|7sI~L?B@}EgB$tL9=T7-Lc3ElU=u6TQtqX%9N@b-ROwtVF2;;zOj-IQTxI@c~R3qr^tm)k@z zVLdbzQ#PS>7zvY+>vviyqUbH6G#UJ)if&wx&>J;(Q!Gn&*e=5vQr1R76gU)BU!99} zW9wyhr>w%#;d0^**3Dm7P)iqAZTmaFO?TvHJ(qBmR(3+Qmi;}pm&goKY(8d*b+@Um zy0=_r%=Yrf0YJ5?JPIFcg*a#lF;*9`I^PzsWGa0qTfZ{x5@E&yp?z!?pt>bSrwvdm zy(b;;&7y2iGi6LPq)bHcqzDP&?m%D#mYxbpq_5htx=I0SPgNNkkxnj?)qv-oW$xC@ zdVP7^KoFKWQv5uS#k?1m3OPrb@v~VJ>B)gRAO&>-CzG~(84ovbZ=G2DN3#NVb5GJB z%C+^%2zmO8X8GPQL=Xi#QQWtoLc*=%vS=y(_iw2X(U|;K0U}R(dUj!!NA?3S8AAcS zO;6zI!CZB$R6~sl5lR<)3NA_GZW7MN5P|Rsjul_~;We zrpQ%+)5plVsyn5q-m~gHr;P-aJl0T=wDY=X`vK{vDaWrZHc!<-<$5lAv)%6=tCZG_ zqn6`fFT!Tp!*N{93qcl%iY{fox=XFol1BZ>(~Ob?6V5i}gt^@$<2xRK^nG`qChF3L z64k(MmwMgV<)Vr*{eUd;>Jrd|G1$H=yetHu^+PvhaYwr7FX~srAv%}JZ*`@WHEYXT zok%w%2?cB7z=alb0F|gbqHUW!g$5_C%=i#wU_P>{fLoe1%c5vx{&ahjl;c3>=|ppw zUw+5sBxUcL&P0dL@0HEv!db_2a967{oi=NnYAZiln}@g|_n_7VD0iJ;GnG=|y6xY7 zn@P09P;&%S+6wi_`9*YAJuetmensE9@(JI)I=S~%>L&;F%kbj~OoT!SkHXq|&WYfrerED2}ltAc@Zt}+Y2m2My=B~(^LprsQArer`siU9m4t`qF<96GMWdMp+-Z3TD{UUGbX7)(DqW%(FU%fx~ zX4bUfi0nZuOgNx=E#UkJwh^`%b{+$nadK*YU3zZ^^V$E|w>YQL0Y=y$dQ%GnMv8O~ z#W!u1SlyTG#+I$!sej@zu6uKy&S_MktN^3Jnwl=p(}i`JZdg_lh>Ksf(Y6krSorgr z)K%kE8hZd`SYy-U5`1oWJg#H)vY6TZxWGl;SK6pZY-8N~j?_0k($)^NzE0NUuO)OL z>%)orK<4!$z{(crby61j@M1?ZPOB3U(z#e|S&H8oHwYVhVD1GNpoe)plK-#h_ zG7P5qz-m)*H#%O+PJg57sC+(RLUx^G{bA)TeS)R_M3Ls>YNV2Um2))R0p(Mpppz|k z*KU;a4ZT~_FfF>2I6q7ahGK@02=hH_dRccL7Qp8-xSD9-1W`E?J^1`=^!m_UeNCxy zv$J4~&#Ixcrc{n@a7OA}eo@j_75IH|a}kDsp((i_>3d8 zfBp+lhg)ysQwzs9j9^Dqc9WXoyagWU(?w=AJDsLtVSKeWBmW_8etBlI8$|0Abj^6l zbA2J87p4%)2Aj283m4pg5fy3QL~owopJa9!oUn0<226vWFO{$3>^RLJECGLSPYV${ zF-Ea9Mv?m`2No&ZRxNPSFNC7sRy`Z?7d$_lfl`w&%5I9oR&`P_kA5!GX-ru$KbbA_ zuF;}E0bVZ*xpdP?ia*~QBm3Ln(s99iRD$Y6sWxfOm3f;v_yw|06ocR1rIFT2AZ9u< zH`yk!p#E!>ZYdxz#E0;qun&`%3^a!S3;P!bNN=UB^aWOf98jIKXk9QGK(znD_qkcQ z0xkwdr63xH52V1m$`PKi>zSvffKb+fPoKEA#dE&Y#F;c&NZ-`pEG&!S!;%dTH9I~0 zO2hwyl-WOp>r#q09OX0E;z}EFF|5!xC}pbyza*;1IBb#b=$G}09+~U#zyXAxifcH2 z;T+1cJQxgL^4Fz0)}<@~*G1O@uXk6cp@izU1xW)i1F(0xjvaXAy)ZX))0lZ3BcL|* z<`!TT*)YzsAQ85@svu)A#4;O1NpXj+tQ4bzwtAy(MPV`USd~#;uDLlW#z=l$!GMtw zvmWf5FTq++F}g!VVXu80*CJTLV7k8BjtnI!1C*d z5K{Eh7(-U2bvKMbm{nLx^_gpV1Yh+s7~;_o3Gh;sfS+ni$C^THorHYnaNLR~UVz{+ z>Cz0kfExN1wt2xzX>J%_!i`0M0^y0GV^O1yTpL1`QC&_&(qi{d=?BVqRF{mZ+1KCF zQoJ4VE5IEdcnr?-!GZ^lJuf4VSmve>z|fqF*hW6uK#SsS%-TcLN1#yMX(rjPw%QSc zkdeDOIo#tj2w#IW%NY%nN@|koB%^!%ySnug&DE7)L5A-Gb?>vY+D6spd^#$Bx0qxV-Tb^0%u>7g|dp#~Q33o)O$RJumfzuLzoM|pg#A2L6W+LFJ+*{**-0;Dz<&W=%Fl)HFP;gPJY>R@^Ovj zo20u9>rIU%lUyB5q=gCJ0@xAPq%U78NtEZBATLzj(Wj3G-%3P;Qi?R?G=^0XOv!nq za?#CbeGZ&&3OZ=r*OICl@TBFe!A37;6NJnRd{D<(6B?b_;H$Nr#sJ+KtKQGWX@AC_<*s{i@|P zwSqkMi#ftAd`}Sa)|A-Z!#|3^guwEmCreX1NaZy4U##`?+s7$5)LlTK1X{(;wYBq^ z8J*2^Vj&MhvQ3tD4NcT)U{;a^6r5~Lw zgFh>iU7L;Rj&=;KQ9FGrdB)&^&!;d4-%2{>vXN9-kFmv8*n&~+0YW@PV8rt!Iz?C5f>kdP&pFz`zHbi4*mGuj*(&R~5WXuvXbtqMuA z5iM@U)v>py7OV zxp3OW;+|AtEYB=^{C@I%x!S#cYx{~!gxp7EE%@0~XQt}O($$X8W7*HOt7k*^tKp8Y zL*T&M@ValE12=I^0FTIzI$mg$m#qQIFTb|D{JcF}o3?cxJi-d^YN^9rfOzCn3jLo4#TQE}yb8wKXV2MO|-%1edjcN#XCgkMt6;bz~Z zSfI_3bKZ&Ax~*m(%rAtkZjC`RT>C?jwF1AVR?;(#XM2SOkkb}jMT%-5$bJy&jhMS_Ll;C`Su^$PO39e+IO9Nk-R3vl39#Ph z&*)zC$eJXP|J-#dxyx@DPEqASlJU5m{1T&vQ`B=12j$oOFxUezH~5gV>58Gn74F|7*X| zsP7ljhu4t72ZZ`75svFuvCEf`%?E^tE7O(C&rBZrm#w`QF=^B21)|9iRK=YB(w&|n zj|M(c@>XzjgC4xulJ5#o0$a#S8iTF(JF}(>DC)1!`8LoNbi_EW4HT_Z5>`FnvM<6< z7)Uc7nMxaJWX?N-r`-pEDX0oQsS7$u6!!*VR{W-Xa^X}x6DJI^=r2t9jfAY(l<&Pi z1Y%J}_@>UT{oR9zD;GXc!eEcw@uxrNHHEskZ}b&Uzxg517-;>~wY+h##CaW&A`N8N z+-dirf3tP&`%wS0^_su*`$y}4x9|_;=>Jd-^AF`B|4{Bvx<8crNm`SBX>hV?7m-I`3-upt7=N%uZ1DZll=pv_()$lK!9Pry^M|rZfBchw(9>Ui ze;)_bZZ2P;l4_X$>YDPQzsv~($vhoQu#(lwA8fvVu=V`GX0$nj_D@qA{lWe>!#~Cm z_8-cF{%z{}KTLgSV8A|eSfqH_>OYV4mtl}92v}&dp(Jz<{ePUCi~O6-o#fx9=12WE z8{r?L7J1ND;Gd>P{=@Vze;5Pe4`T%U+Za_{?f)6ITkU`C`}-Vg^p~zAKo!as{6qKu z|Ls`Ef1ab>O#jxN-lIGH=x3k7Wvj6@cH*NYfuZ8wA)=w!?$EDpT;J4258ltIP99l| z-*HNrp1Z`m0plLbNB2nq+MPMo+mpwWgnV4=KUNykyM6SGH2qtLYEG1Uhw!^DNOrTb zN=Sgaxu{}CHSnZB%W~KT_+v<3z7FR1wLysoZ_lNhXCHA`vZ@HO)nk=_SqGa$inyhH zQ1CcC^2X0*u34SCcs4~jZEd%-(Ou|hh<6o`5p>VoFj%ojEi(K!xS`Dg@$CQ~Rs0RL&gD98rbk1v&%@ zNYVQ^bk6~8H00~ zisU^keVw$&1}X)lOi0vMLr!$5+t=l|xCfKpNlfTHxyia)+IW}3F*zz;akh%~&FZ?Q zM+W5XG{+Ksl;~}C!DwN3Qd}AcOEOAQ9xHLTg*;@rXu=RV6&ND6VK#WkZRWA~=8Ax^ zhWtKkU|P&rT#FnH-->c9d~|0DcB$_e%$R#Y+)fG4+_094YK5Nr*7tMV^;FfR>5Rki zzo|KSm`81Gjbpu#p2zNz=H>^HyBu$U?5eVO+I!LZM?iKqUA)zNLoP2Dp1*4K|FcA8 z&$}Q0Ve+$NbandL<*%lEI*#Glh2E4EB>pwp?kao}0sAW2Win@RyR^0-4D=ptP&hJH zCC?Tn7%PWDoIE6l!}l*is3l1pPDa(R+*fR5Mr^tnYbG^1GO4N<{PK(n=Xv#cJ9UM# znrVC)tNz$$6t5Bs%0)>Wb%ANThClsuY35}!wD%BKQq{@tBe(0fKh>ZuO|(gCB^s70 z&$YTJZbL-(y(l^K+fXWG$>@+i?9ZoXyO5Jt97Lr+`-udtg>iiH!)2U0XVJ>d+%U1V zu?%bX+So)^lVj%(#N=yEWGB=}R9WoBYYo!s%K0Sw@m<~{+S31i00uwSSU9EbO4NFF zW?v#)Rmc>eXYE=H!2Fg2mKv$6bTXGLwZRro_a|e4SV_?>N1a8C z7Glo!@!zJznF2Q>TCJ0tw6+nGV53v?kQDmlP2PEe?vzv%8VZfbYUwyte^2=k6x0g};+0s3erIjrwgp z*>5CWZB2zB=>+)30FKG3stl?WPwI>I$Y(){GTc>5cOQ_yXH9u=03p4{_ubd8ZP=b{ zndy#+tqPO0@0H5O*k*}IS$xqQ~V_mwf^jww%?C~~cBY~>Br*uB?xCUdGvEbn)9 zN}6Ahu+)B}JY>-YNTwY^lmC)bfPX2d7tQ!O(E6dX$(I@jxn44p9rz8CfpAA}(svp9 z01>ZN&B37)Jl9;nhG)oYZu_+A3{q&y%ldue(`UylZcpN$<;&s&w9C1szs6c}&7WzV zg?Z0QB?)5%I23XFbCRx*6EVqk$qPNwk^G5D=AF&2I|J{8J%V*e?KH-0ABkU1#wEb8- z6?i>s0pc%I*^Ny(BPH(h#bLVLes?-o(H(qe>kR&H?{aK(?@fFq?@@mHER`-B-n)Z1 zHy2#tbcWb8w7v_d`AOK2|K{2hH;&&Yir*b8?MQ(tZT#_4n0Em-m{eJ%<$CP;b=T$M zX9QgS_3Yiaj^cSd25in4K7XwNiKe4qO7h>%*KN~w`1c!p4~oQWXRx#tIrD%78QB_j zf1Tp}xoynN!Z3QPCaF{-eBPoWfkqUIhaQy(suTmN{kho@fU0VaP3fpqlC|lYg=ysM zza%;qipQD$eUCco}k8|06Ak=LuZr=ZOev?_K>1H?aKlvW8K` zkEL1A*F<$1nL2oY;8nY`RjB-a&d{rPFjMRz%gp&%ToQNDfOY%+D;AqCvalu=FO)b@ zAa8@?Y^#=7(b!~2($M9RZ+Xx->TzuZgSt_D0{T&XklImwlWI|YNlHwkbZ zw@2-~(&mxTaMXW_GAov_#)~I))+yV;8KDQYgwSe=;SXwhHbfDfkfewhIq{I6RUtID zSE(b!@cx3)9KC`s3RgwnTMa`!;a6BsW4|t&;8A*}xLb+%I z%EJ`quzUrOy3*F^Q{C=$gZssZ+w@VgyqBLM5BQLH z)Hd9R9LS3)(0HgOc`y4S4_+SkEfgWgM&)TRPv^_Vn4@yY|3RNm74C;M#LUBg>G+Wj^D z-`<2h>bd2ScKzU$7gnt)G61w$M?cwvxe$#bM{~-p<~LYv6J)SqYg9p<(g<2gYCNGv{59$E#g^8O4(8-9xzFv8$S+v# z9;QrMCKySrdHB%%`pk=@qdpj4^%*p658^jNbwrF$$Ag-~G{l9Ndr>dij>9DfL=e$E z_T`-{s>G{EF`YK8?;B6;4dcbz-_Q=YYXu{5! zr^q96=*zj@x5bEr606zA`L=G7xXYi#7H7SUoWq|wNMrSG66Q8~W!xdWg4yj7wD65% z(}>=KD3uMQ^0=8A_rIcMZ8Z(5xyigO`d!qCq$#hriN>@ycg#`X;510Ty)rT*SV+1= zOu-dEs+5XGdbE}(GYtGSe8X9wbEdsz=~=G{9QjGP zz;*}tx(>hpGHUDxS>6jd0?G}ru_brfZ=hI^Vkg>!GY@B7kiq$gF@A>}kT=Xw!-+x7 zB&TiXtn*0nUuB>!#4uua(K4HIj>jHR9NHF73P&?QUNxZ&8%{3L_&fm>L?uMYA|s>V zBPN5Mt68WskurxExa)5=h6OFM{!?{*Ue&1qZrNN^0N=vvF(t$?)ItNOPUW%1zR5$a z&BkfDQ~v21QZr}k1I3_`^;97%!8y;&h~w&9T!Jrqln@Me6VGeUm%?8ie-jF96F;o< z4Un!vR#Pi6oTYQFJJ!VFpP94@>vDHqxVyS`ZP=rfgH~EwU#9kq3Au=c9b2UI)n^aC zJ8fQYFHar##pYIbUhH{xcdzZ5-m3k086Ctr{$>|GOjqtTl6BYvdwP zI9H%C>!P~(#dwP*G4R#FBdX?Y#z^^FW8&{TSU&otg3i_*v8}|e;^l=>mb>3z%5q@f z00_W)ED6{T#c&zhIT`g_EnBk&S~5kjdaE8G9 z1Lyi4DEB`&>pyXEE^-VbcHkdGsL($k{}|e1s{_OFeNumE2i8g@vuN2XL zBL58f@xMsBr~gI%cL)$=IVkAA4uE}s&%T>}f*yI3oVwyHutkRzJHlkL7{}0g=TBZO1 diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project index d5d0e78c2..5dcf587a9 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project @@ -57,7 +57,7 @@ - 1461592609781 + 1525142482332 src/FreeRTOS_Source 5 @@ -66,7 +66,7 @@ - 1461592609791 + 1525142482336 src/FreeRTOS_Source 5 @@ -75,7 +75,7 @@ - 1461592609811 + 1525142482342 src/FreeRTOS_Source 5 @@ -84,7 +84,7 @@ - 1461592609821 + 1525142482346 src/FreeRTOS_Source 5 @@ -93,7 +93,7 @@ - 1461592609921 + 1525142482352 src/FreeRTOS_Source 5 @@ -102,7 +102,7 @@ - 1461592609921 + 1525142482356 src/FreeRTOS_Source 5 @@ -111,7 +111,7 @@ - 1461592609931 + 1525142482360 src/FreeRTOS_Source 9 @@ -120,7 +120,7 @@ - 1461592609941 + 1525142482364 src/FreeRTOS_Source 9 @@ -128,6 +128,15 @@ 1.0-name-matches-false-false-portable + + 1525142482368 + src/FreeRTOS_Source + 5 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-stream_buffer.c + + 1461592643370 src/FreeRTOS_Source/portable diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h index 5f417f026..12b5f4af8 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h @@ -127,6 +127,7 @@ to exclude the API function. */ #define INCLUDE_xTaskAbortDelay 1 #define INCLUDE_xTaskGetTaskHandle 1 #define INCLUDE_xTaskGetHandle 1 +#define INCLUDE_xSemaphoreGetMutexHolder 1 /* This demo makes use of one or more example stats formatting functions. These format the raw data provided by the uxTaskGetSystemState() function in to human diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwipopts.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwipopts.h index 82f31f8d9..bcfe0f8b8 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwipopts.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwipopts.h @@ -309,4 +309,7 @@ a lot of data that needs to be copied, this should be set high. */ #define LWIP_NETIF_STATUS_CALLBACK 1 +/* Prevent conflict with struct timeval from compiler's library. */ +#define LWIP_TIMEVAL_PRIVATE 0 + #endif /* __LWIPOPTS_H__ */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.cproject b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.cproject index ed7e1b590..b4f281cf8 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.cproject +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.cproject @@ -1,8 +1,8 @@ - - + + diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.project b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.project index 4ff920168..07b59e59a 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.project +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.project @@ -1,7 +1,7 @@ RTOSDemo_bsp - Created by SDK v2016.1 + Created by SDK v2018.1 diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/Makefile index 368665eb9..db5fc27bd 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/Makefile +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/Makefile @@ -16,16 +16,20 @@ include: $(addsuffix /make.include,$(SUBDIRS)) libs: $(addsuffix /make.libs,$(SUBDIRS)) +clean: $(addsuffix /make.clean,$(SUBDIRS)) + $(PROCESSOR)/lib/libxil.a: $(PROCESSOR)/lib/libxil_init.a cp -f $< $@ %/make.include: $(if $(wildcard $(PROCESSOR)/lib/libxil_init.a),$(PROCESSOR)/lib/libxil.a,) @echo "Running Make include in $(subst /make.include,,$@)" - $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=arm-none-eabi-gcc" "ARCHIVER=arm-none-eabi-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -nostartfiles" + $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=arm-none-eabi-gcc" "ARCHIVER=arm-none-eabi-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -nostartfiles -g -Wall -Wextra" %/make.libs: include @echo "Running Make libs in $(subst /make.libs,,$@)" - $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=arm-none-eabi-gcc" "ARCHIVER=arm-none-eabi-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -nostartfiles" + $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=arm-none-eabi-gcc" "ARCHIVER=arm-none-eabi-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -nostartfiles -g -Wall -Wextra" +%/make.clean: + $(MAKE) -C $(subst /make.clean,,$@) -s clean clean: rm -f ${PROCESSOR}/lib/libxil.a diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/include/xparameters.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/include/xparameters.h index 06f110000..cfa88870e 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/include/xparameters.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/include/xparameters.h @@ -1,5 +1,8 @@ +#ifndef XPARAMETERS_H /* prevent circular inclusions */ +#define XPARAMETERS_H /* by using protection macros */ + /* Definition for CPU ID */ -#define XPAR_CPU_ID 0 +#define XPAR_CPU_ID 0U /* Definitions for peripheral PS7_CORTEXA9_0 */ #define XPAR_PS7_CORTEXA9_0_CPU_CLK_FREQ_HZ 666666687 @@ -20,6 +23,14 @@ /******************************************************************/ +/* Platform specific definitions */ +#define PLATFORM_ZYNQ + +/* Definitions for sleep timer configuration */ +#define XSLEEP_TIMER_IS_DEFAULT_TIMER + + +/******************************************************************/ /* Definitions for driver CANPS */ #define XPAR_XCANPS_NUM_INSTANCES 1 @@ -50,20 +61,20 @@ /******************************************************************/ /* Definitions for driver DEVCFG */ -#define XPAR_XDCFG_NUM_INSTANCES 1 +#define XPAR_XDCFG_NUM_INSTANCES 1U /* Definitions for peripheral PS7_DEV_CFG_0 */ -#define XPAR_PS7_DEV_CFG_0_DEVICE_ID 0 -#define XPAR_PS7_DEV_CFG_0_BASEADDR 0xF8007000 -#define XPAR_PS7_DEV_CFG_0_HIGHADDR 0xF80070FF +#define XPAR_PS7_DEV_CFG_0_DEVICE_ID 0U +#define XPAR_PS7_DEV_CFG_0_BASEADDR 0xF8007000U +#define XPAR_PS7_DEV_CFG_0_HIGHADDR 0xF80070FFU /******************************************************************/ /* Canonical definitions for peripheral PS7_DEV_CFG_0 */ #define XPAR_XDCFG_0_DEVICE_ID XPAR_PS7_DEV_CFG_0_DEVICE_ID -#define XPAR_XDCFG_0_BASEADDR 0xF8007000 -#define XPAR_XDCFG_0_HIGHADDR 0xF80070FF +#define XPAR_XDCFG_0_BASEADDR 0xF8007000U +#define XPAR_XDCFG_0_HIGHADDR 0xF80070FFU /******************************************************************/ @@ -112,10 +123,12 @@ #define XPAR_PS7_ETHERNET_0_ENET_SLCR_100MBPS_DIV1 5 #define XPAR_PS7_ETHERNET_0_ENET_SLCR_10MBPS_DIV0 8 #define XPAR_PS7_ETHERNET_0_ENET_SLCR_10MBPS_DIV1 50 +#define XPAR_PS7_ETHERNET_0_ENET_TSU_CLK_FREQ_HZ 0 /******************************************************************/ +#define XPAR_PS7_ETHERNET_0_IS_CACHE_COHERENT 0 /* Canonical definitions for peripheral PS7_ETHERNET_0 */ #define XPAR_XEMACPS_0_DEVICE_ID XPAR_PS7_ETHERNET_0_DEVICE_ID #define XPAR_XEMACPS_0_BASEADDR 0xE000B000 @@ -127,6 +140,7 @@ #define XPAR_XEMACPS_0_ENET_SLCR_100Mbps_DIV1 5 #define XPAR_XEMACPS_0_ENET_SLCR_10Mbps_DIV0 8 #define XPAR_XEMACPS_0_ENET_SLCR_10Mbps_DIV1 50 +#define XPAR_XEMACPS_0_ENET_TSU_CLK_FREQ_HZ 0 /******************************************************************/ @@ -275,6 +289,7 @@ #define XPAR_PS7_QSPI_0_HIGHADDR 0xE000DFFF #define XPAR_PS7_QSPI_0_QSPI_CLK_FREQ_HZ 200000000 #define XPAR_PS7_QSPI_0_QSPI_MODE 0 +#define XPAR_PS7_QSPI_0_QSPI_BUS_WIDTH 2 /******************************************************************/ @@ -285,27 +300,28 @@ #define XPAR_XQSPIPS_0_HIGHADDR 0xE000DFFF #define XPAR_XQSPIPS_0_QSPI_CLK_FREQ_HZ 200000000 #define XPAR_XQSPIPS_0_QSPI_MODE 0 +#define XPAR_XQSPIPS_0_QSPI_BUS_WIDTH 2 /******************************************************************/ /* Definitions for driver SCUGIC */ -#define XPAR_XSCUGIC_NUM_INSTANCES 1 +#define XPAR_XSCUGIC_NUM_INSTANCES 1U /* Definitions for peripheral PS7_SCUGIC_0 */ -#define XPAR_PS7_SCUGIC_0_DEVICE_ID 0 -#define XPAR_PS7_SCUGIC_0_BASEADDR 0xF8F00100 -#define XPAR_PS7_SCUGIC_0_HIGHADDR 0xF8F001FF -#define XPAR_PS7_SCUGIC_0_DIST_BASEADDR 0xF8F01000 +#define XPAR_PS7_SCUGIC_0_DEVICE_ID 0U +#define XPAR_PS7_SCUGIC_0_BASEADDR 0xF8F00100U +#define XPAR_PS7_SCUGIC_0_HIGHADDR 0xF8F001FFU +#define XPAR_PS7_SCUGIC_0_DIST_BASEADDR 0xF8F01000U /******************************************************************/ /* Canonical definitions for peripheral PS7_SCUGIC_0 */ -#define XPAR_SCUGIC_0_DEVICE_ID 0 -#define XPAR_SCUGIC_0_CPU_BASEADDR 0xF8F00100 -#define XPAR_SCUGIC_0_CPU_HIGHADDR 0xF8F001FF -#define XPAR_SCUGIC_0_DIST_BASEADDR 0xF8F01000 +#define XPAR_SCUGIC_0_DEVICE_ID 0U +#define XPAR_SCUGIC_0_CPU_BASEADDR 0xF8F00100U +#define XPAR_SCUGIC_0_CPU_HIGHADDR 0xF8F001FFU +#define XPAR_SCUGIC_0_DIST_BASEADDR 0xF8F01000U /******************************************************************/ @@ -358,10 +374,14 @@ #define XPAR_PS7_SD_0_SDIO_CLK_FREQ_HZ 50000000 #define XPAR_PS7_SD_0_HAS_CD 1 #define XPAR_PS7_SD_0_HAS_WP 1 +#define XPAR_PS7_SD_0_BUS_WIDTH 0 +#define XPAR_PS7_SD_0_MIO_BANK 0 +#define XPAR_PS7_SD_0_HAS_EMIO 0 /******************************************************************/ +#define XPAR_PS7_SD_0_IS_CACHE_COHERENT 0 /* Canonical definitions for peripheral PS7_SD_0 */ #define XPAR_XSDPS_0_DEVICE_ID XPAR_PS7_SD_0_DEVICE_ID #define XPAR_XSDPS_0_BASEADDR 0xE0100000 @@ -369,45 +389,48 @@ #define XPAR_XSDPS_0_SDIO_CLK_FREQ_HZ 50000000 #define XPAR_XSDPS_0_HAS_CD 1 #define XPAR_XSDPS_0_HAS_WP 1 +#define XPAR_XSDPS_0_BUS_WIDTH 0 +#define XPAR_XSDPS_0_MIO_BANK 0 +#define XPAR_XSDPS_0_HAS_EMIO 0 /******************************************************************/ /* Definitions for driver TTCPS */ -#define XPAR_XTTCPS_NUM_INSTANCES 3 +#define XPAR_XTTCPS_NUM_INSTANCES 3U /* Definitions for peripheral PS7_TTC_0 */ -#define XPAR_PS7_TTC_0_DEVICE_ID 0 -#define XPAR_PS7_TTC_0_BASEADDR 0XF8001000 -#define XPAR_PS7_TTC_0_TTC_CLK_FREQ_HZ 111111115 -#define XPAR_PS7_TTC_0_TTC_CLK_CLKSRC 0 -#define XPAR_PS7_TTC_1_DEVICE_ID 1 -#define XPAR_PS7_TTC_1_BASEADDR 0XF8001004 -#define XPAR_PS7_TTC_1_TTC_CLK_FREQ_HZ 111111115 -#define XPAR_PS7_TTC_1_TTC_CLK_CLKSRC 0 -#define XPAR_PS7_TTC_2_DEVICE_ID 2 -#define XPAR_PS7_TTC_2_BASEADDR 0XF8001008 -#define XPAR_PS7_TTC_2_TTC_CLK_FREQ_HZ 111111115 -#define XPAR_PS7_TTC_2_TTC_CLK_CLKSRC 0 +#define XPAR_PS7_TTC_0_DEVICE_ID 0U +#define XPAR_PS7_TTC_0_BASEADDR 0XF8001000U +#define XPAR_PS7_TTC_0_TTC_CLK_FREQ_HZ 111111115U +#define XPAR_PS7_TTC_0_TTC_CLK_CLKSRC 0U +#define XPAR_PS7_TTC_1_DEVICE_ID 1U +#define XPAR_PS7_TTC_1_BASEADDR 0XF8001004U +#define XPAR_PS7_TTC_1_TTC_CLK_FREQ_HZ 111111115U +#define XPAR_PS7_TTC_1_TTC_CLK_CLKSRC 0U +#define XPAR_PS7_TTC_2_DEVICE_ID 2U +#define XPAR_PS7_TTC_2_BASEADDR 0XF8001008U +#define XPAR_PS7_TTC_2_TTC_CLK_FREQ_HZ 111111115U +#define XPAR_PS7_TTC_2_TTC_CLK_CLKSRC 0U /******************************************************************/ /* Canonical definitions for peripheral PS7_TTC_0 */ #define XPAR_XTTCPS_0_DEVICE_ID XPAR_PS7_TTC_0_DEVICE_ID -#define XPAR_XTTCPS_0_BASEADDR 0xF8001000 -#define XPAR_XTTCPS_0_TTC_CLK_FREQ_HZ 111111115 -#define XPAR_XTTCPS_0_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_0_BASEADDR 0xF8001000U +#define XPAR_XTTCPS_0_TTC_CLK_FREQ_HZ 111111115U +#define XPAR_XTTCPS_0_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_1_DEVICE_ID XPAR_PS7_TTC_1_DEVICE_ID -#define XPAR_XTTCPS_1_BASEADDR 0xF8001004 -#define XPAR_XTTCPS_1_TTC_CLK_FREQ_HZ 111111115 -#define XPAR_XTTCPS_1_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_1_BASEADDR 0xF8001004U +#define XPAR_XTTCPS_1_TTC_CLK_FREQ_HZ 111111115U +#define XPAR_XTTCPS_1_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_2_DEVICE_ID XPAR_PS7_TTC_2_DEVICE_ID -#define XPAR_XTTCPS_2_BASEADDR 0xF8001008 -#define XPAR_XTTCPS_2_TTC_CLK_FREQ_HZ 111111115 -#define XPAR_XTTCPS_2_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_2_BASEADDR 0xF8001008U +#define XPAR_XTTCPS_2_TTC_CLK_FREQ_HZ 111111115U +#define XPAR_XTTCPS_2_TTC_CLK_CLKSRC 0U /******************************************************************/ @@ -473,3 +496,4 @@ /******************************************************************/ +#endif /* end of protection macro */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps.c index 243b3a81b..f852de4e6 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps.c @@ -33,7 +33,7 @@ /** * * @file xcanps.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * Functions in this file are the minimum required functions for the XCanPs diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps.h index b180e37ec..9feb45eea 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps.h @@ -33,7 +33,7 @@ /** * * @file xcanps.h -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * @details * @@ -204,6 +204,8 @@ * Data mismatch while sending data less than 8 bytes. * 3.1 nsk 12/21/15 Updated XCanPs_IntrHandler in xcanps_intr.c to handle * error interrupts correctly. CR#925615 +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_g.c similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_g.c index ba95a60f4..bd2b19708 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XCanPs_Config XCanPs_ConfigTable[] = +XCanPs_Config XCanPs_ConfigTable[XPAR_XCANPS_NUM_INSTANCES] = { { XPAR_PS7_CAN_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_hw.c index bbb96120a..7ca2f81eb 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_hw.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_hw.c @@ -33,7 +33,7 @@ /** * * @file xcanps_hw.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains the implementation of the canps interface reset sequence diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_hw.h index 9fe681aaf..30ec68ab9 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_hw.h @@ -33,7 +33,7 @@ /** * * @file xcanps_hw.h -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This header file contains the identifiers and basic driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_intr.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_intr.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_intr.c index f6721ca75..715b35eb2 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_intr.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_intr.c @@ -33,7 +33,7 @@ /** * * @file xcanps_intr.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains functions related to CAN interrupt handling. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_selftest.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_selftest.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_selftest.c index 8bc77d7f4..26c9fcb68 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xcanps_selftest.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains a diagnostic self-test function for the XCanPs driver. @@ -166,7 +166,7 @@ s32 XCanPs_SelfTest(XCanPs *InstancePtr) for (Index = 0U; Index < 8U; Index++) { if(*FramePtr != 0U) { *FramePtr = (u8)Index; - *FramePtr++; + FramePtr++; } } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_sinit.c index 230c429b3..5321669d7 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_1/src/xcanps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/canps_v3_2/src/xcanps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xcanps_sinit.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains the implementation of the XCanPs driver's static diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_2/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_4/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_2/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_4/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.c index 4bad57094..fca26ca2e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.c @@ -33,7 +33,7 @@ /** * * @file xcoresightpsdcc.c -* @addtogroup coresightps_dcc_v1_1 +* @addtogroup coresightps_dcc_v1_4 * @{ * * Functions in this file are the minimum required functions for the @@ -132,7 +132,7 @@ void XCoresightPs_DccSendByte(u32 BaseAddress, u8 Data) ******************************************************************************/ u8 XCoresightPs_DccRecvByte(u32 BaseAddress) { - u8 Data; + u8 Data = 0U; (void) BaseAddress; while (!(XCoresightPs_DccGetStatus() & XCORESIGHTPS_DCC_STATUS_RX)) @@ -169,7 +169,7 @@ u8 XCoresightPs_DccRecvByte(u32 BaseAddress) ******************************************************************************/ static INLINE u32 XCoresightPs_DccGetStatus(void) { - u32 Status; + u32 Status = 0U; #ifdef __aarch64__ asm volatile ("mrs %0, mdccsr_el0" : "=r" (Status)); diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.h index a732b235d..67959e327 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/coresightps_dcc_v1_3/src/xcoresightpsdcc.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.h @@ -33,7 +33,7 @@ /** * * @file xcoresightpsdcc.h -* @addtogroup coresightps_dcc_v1_1 +* @addtogroup coresightps_dcc_v1_4 * @{ * @details * diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_2/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_6/src/Makefile similarity index 78% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_2/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_6/src/Makefile index 77363c67c..7ea505c10 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_2/src/Makefile +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_6/src/Makefile @@ -10,7 +10,7 @@ INCLUDEDIR=../../../include INCLUDES=-I${INCLUDEDIR} OUTS = *.o - +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) LIBSOURCES=*.c INCLUDEFILES=*.h @@ -21,3 +21,5 @@ libs: include: ${CP} $(INCLUDEFILES) $(INCLUDEDIR) +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_2/src/xcpu_cortexa9.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_6/src/xcpu_cortexa9.h similarity index 86% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_2/src/xcpu_cortexa9.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_6/src/xcpu_cortexa9.h index 4d441e53e..95c8ba536 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_2/src/xcpu_cortexa9.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/cpu_cortexa9_v2_6/src/xcpu_cortexa9.h @@ -33,11 +33,16 @@ /** * * @file xcpu_cortexa9.h -* @addtogroup cpu_cortexa9_v2_1 +* @addtogroup cpu_cortexa9_v2_5 * @{ * @details * * dummy file +* MODIFICATION HISTORY: * +* Ver Who Date Changes +* ----- ---- -------- --------------------------------------------------------- +* 2.5 ms 04/18/17 Modified tcl file to add suffix U for XPAR_CPU_ID +* parameter of cpu_cortexa9 in xparameters.h ******************************************************************************/ /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ddrps_v1_0/src/xddrps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ddrps_v1_0/src/xddrps.h index fe7adb066..c8804d2ed 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ddrps_v1_0/src/xddrps.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ddrps_v1_0/src/xddrps.h @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg.c index dcb80303d..e9447e7e3 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg.c @@ -33,7 +33,7 @@ /** * * @file xdevcfg.c -* @addtogroup devcfg_v3_3 +* @addtogroup devcfg_v3_5 * @{ * * This file contains the implementation of the interface functions for XDcfg diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg.h similarity index 96% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg.h index 144c9e1f9..b9a0111d6 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xdevcfg.h -* @addtogroup devcfg_v3_3 +* @addtogroup devcfg_v3_5 * @{ * @details * @@ -152,7 +152,13 @@ * configuration registers from the PL region. * xdevcfg_reg_readback_example.c * 3.3 sk 04/06/15 Modified XDcfg_ReadMultiBootConfig Macro CR# 851335. -* +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/10/17 Modified filename tag in interrupt and polled examples +* to include them in doxygen examples. +* 3.5 ms 04/18/17 Modified tcl file to add suffix U for all macros +* definitions of devcfg in xparameters.h +* ms 08/07/17 Fixed compilation warnings in xdevcfg_sinit.c * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_g.c similarity index 94% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_g.c index 5e02d6dcd..e96911d51 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_hw.c index 8a3095de3..bcb238f06 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_hw.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_hw.c @@ -33,7 +33,7 @@ /** * * @file xdevcfg_hw.c -* @addtogroup devcfg_v3_3 +* @addtogroup devcfg_v3_5 * @{ * * This file contains the implementation of the interface reset functionality diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_hw.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_hw.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_intr.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_intr.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_intr.c index 55bbde2f0..b41b7ea37 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_intr.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_intr.c @@ -33,7 +33,7 @@ /** * * @file xdevcfg_intr.c -* @addtogroup devcfg_v3_3 +* @addtogroup devcfg_v3_5 * @{ * * Contains the implementation of interrupt related functions of the XDcfg diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_selftest.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_selftest.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_selftest.c index 7159782e1..40cf1de6a 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_selftest.c @@ -33,7 +33,7 @@ /** * * @file xdevcfg_selftest.c -* @addtogroup devcfg_v3_3 +* @addtogroup devcfg_v3_5 * @{ * * Contains diagnostic self-test functions for the XDcfg driver. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_sinit.c similarity index 93% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_sinit.c index d0d0e6d99..bbc96a0c6 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_4/src/xdevcfg_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/devcfg_v3_5/src/xdevcfg_sinit.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xdevcfg_sinit.c -* @addtogroup devcfg_v3_3 +* @addtogroup devcfg_v3_5 * @{ * * This file contains method for static initialization (compile-time) of the @@ -45,6 +45,7 @@ * Ver Who Date Changes * ----- --- -------- --------------------------------------------- * 1.00a hvm 02/07/11 First release +* 3.5 ms 08/07/17 Fixed compilation warnings. * * ******************************************************************************/ @@ -79,9 +80,9 @@ XDcfg_Config *XDcfg_LookupConfig(u16 DeviceId) { extern XDcfg_Config XDcfg_ConfigTable[]; XDcfg_Config *CfgPtr = NULL; - int Index; + u32 Index; - for (Index = 0; Index < XPAR_XDCFG_NUM_INSTANCES; Index++) { + for (Index = 0U; Index < XPAR_XDCFG_NUM_INSTANCES; Index++) { if (XDcfg_ConfigTable[Index].DeviceId == DeviceId) { CfgPtr = &XDcfg_ConfigTable[Index]; break; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps.c index 1b6174256..9db769284 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xdmaps.c -* @addtogroup dmaps_v2_1 +* @addtogroup dmaps_v2_3 * @{ * * This file contains the implementation of the interface functions for XDmaPs @@ -67,6 +67,9 @@ * the IARCC compiler around PDBG, it is better to remove it. * Users can always use xil_printfs if they want to debug. * 2.01 kpc 08/23/14 Fixed the IAR compiler reported errors +* 2.2 mus 12/08/16 Remove definition of INLINE macro to avoid re-definition, +* since it is being defined in xil_io.h +* 2.3 kpc 14/10/16 Fixed the compiler error when optimization O0 is used. * * *****************************************************************************/ @@ -93,11 +96,6 @@ /**************************** Type Definitions ******************************/ -#ifdef __ICCARM__ -#define INLINE -#else -#define INLINE __inline -#endif /***************** Macros (Inline Functions) Definitions ********************/ @@ -418,7 +416,7 @@ int XDmaPs_SetFaultHandler(XDmaPs *InstPtr, * @note None. * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMAEND(char *DmaProg) +static INLINE int XDmaPs_Instr_DMAEND(char *DmaProg) { /* * DMAEND encoding: @@ -430,7 +428,7 @@ INLINE int XDmaPs_Instr_DMAEND(char *DmaProg) return 1; } -INLINE void XDmaPs_Memcpy4(char *Dst, char *Src) +static INLINE void XDmaPs_Memcpy4(char *Dst, char *Src) { *Dst = *Src; *(Dst + 1) = *(Src + 1); @@ -461,7 +459,7 @@ INLINE void XDmaPs_Memcpy4(char *Dst, char *Src) * @note None * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMAGO(char *DmaProg, unsigned int Cn, +static INLINE int XDmaPs_Instr_DMAGO(char *DmaProg, unsigned int Cn, u32 Imm, unsigned int Ns) { /* @@ -497,7 +495,7 @@ INLINE int XDmaPs_Instr_DMAGO(char *DmaProg, unsigned int Cn, * @note None. * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMALD(char *DmaProg) +static INLINE int XDmaPs_Instr_DMALD(char *DmaProg) { /* * DMALD encoding @@ -528,7 +526,7 @@ INLINE int XDmaPs_Instr_DMALD(char *DmaProg) * @note None. * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMALP(char *DmaProg, unsigned Lc, +static INLINE int XDmaPs_Instr_DMALP(char *DmaProg, unsigned Lc, unsigned LoopIterations) { /* @@ -558,7 +556,7 @@ INLINE int XDmaPs_Instr_DMALP(char *DmaProg, unsigned Lc, * @note None. * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMALPEND(char *DmaProg, char *BodyStart, unsigned Lc) +static INLINE int XDmaPs_Instr_DMALPEND(char *DmaProg, char *BodyStart, unsigned Lc) { /* * DMALPEND encoding @@ -599,7 +597,7 @@ INLINE int XDmaPs_Instr_DMALPEND(char *DmaProg, char *BodyStart, unsigned Lc) * @note None. * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMAMOV(char *DmaProg, unsigned Rd, u32 Imm) +static INLINE int XDmaPs_Instr_DMAMOV(char *DmaProg, unsigned Rd, u32 Imm) { /* * DMAMOV encoding @@ -632,7 +630,7 @@ INLINE int XDmaPs_Instr_DMAMOV(char *DmaProg, unsigned Rd, u32 Imm) * @note None. * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMANOP(char *DmaProg) +static INLINE int XDmaPs_Instr_DMANOP(char *DmaProg) { /* * DMANOP encoding @@ -657,7 +655,7 @@ INLINE int XDmaPs_Instr_DMANOP(char *DmaProg) * @note None. * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMARMB(char *DmaProg) +static INLINE int XDmaPs_Instr_DMARMB(char *DmaProg) { /* * DMARMB encoding @@ -683,7 +681,7 @@ INLINE int XDmaPs_Instr_DMARMB(char *DmaProg) * @note None. * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMASEV(char *DmaProg, unsigned int EventNumber) +static INLINE int XDmaPs_Instr_DMASEV(char *DmaProg, unsigned int EventNumber) { /* * DMASEV encoding @@ -711,7 +709,7 @@ INLINE int XDmaPs_Instr_DMASEV(char *DmaProg, unsigned int EventNumber) * @note None. * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMAST(char *DmaProg) +static INLINE int XDmaPs_Instr_DMAST(char *DmaProg) { /* * DMAST encoding @@ -740,7 +738,7 @@ INLINE int XDmaPs_Instr_DMAST(char *DmaProg) * @note None. * *****************************************************************************/ -INLINE int XDmaPs_Instr_DMAWMB(char *DmaProg) +static INLINE int XDmaPs_Instr_DMAWMB(char *DmaProg) { /* * DMAWMB encoding @@ -764,7 +762,7 @@ INLINE int XDmaPs_Instr_DMAWMB(char *DmaProg) * @note None. * *****************************************************************************/ -INLINE unsigned XDmaPs_ToEndianSwapSizeBits(unsigned int EndianSwapSize) +static INLINE unsigned XDmaPs_ToEndianSwapSizeBits(unsigned int EndianSwapSize) { switch (EndianSwapSize) { case 0: @@ -797,7 +795,7 @@ INLINE unsigned XDmaPs_ToEndianSwapSizeBits(unsigned int EndianSwapSize) * @note None. * *****************************************************************************/ -INLINE unsigned XDmaPs_ToBurstSizeBits(unsigned BurstSize) +static INLINE unsigned XDmaPs_ToBurstSizeBits(unsigned BurstSize) { switch (BurstSize) { case 1: diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps.h similarity index 86% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps.h index cc415c811..5a0c1a28e 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xdmaps.h -* @addtogroup dmaps_v2_1 +* @addtogroup dmaps_v2_3 * @{ * @details * @@ -75,6 +75,14 @@ * Users can always use xil_printfs if they want to debug. * 2.0 adk 10/12/13 Updated as per the New Tcl API's * 2.01 kpc 08/23/14 Fixed the IAR compiler reported errors +* 2.2 mus 08/12/16 Declared all inline functions in xdmaps.c as extern, to avoid +* linker error for IAR compiler +* 2.3 ms 01/23/17 Modified xil_printf statement in main function for all +* examples to ensure that "Successfully ran" and "Failed" +* strings are available in all examples. This is a fix +* for CR-965028. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * *****************************************************************************/ @@ -281,6 +289,29 @@ int XDmaPs_SetFaultHandler(XDmaPs *InstPtr, void XDmaPs_Print_DmaProg(XDmaPs_Cmd *Cmd); +/** + * To avoid linking error,Declare all inline functions as extern for + * IAR compiler + */ +#ifdef __ICCARM__ +extern INLINE int XDmaPs_Instr_DMAEND(char *DmaProg); +extern INLINE void XDmaPs_Memcpy4(char *Dst, char *Src); +extern INLINE int XDmaPs_Instr_DMAGO(char *DmaProg, unsigned int Cn, + u32 Imm, unsigned int Ns); +extern INLINE int XDmaPs_Instr_DMALD(char *DmaProg); +extern INLINE int XDmaPs_Instr_DMALP(char *DmaProg, unsigned Lc, + unsigned LoopIterations); +extern INLINE int XDmaPs_Instr_DMALPEND(char *DmaProg, char *BodyStart, unsigned Lc); +extern INLINE int XDmaPs_Instr_DMAMOV(char *DmaProg, unsigned Rd, u32 Imm); +extern INLINE int XDmaPs_Instr_DMANOP(char *DmaProg); +extern INLINE int XDmaPs_Instr_DMARMB(char *DmaProg); +extern INLINE int XDmaPs_Instr_DMASEV(char *DmaProg, unsigned int EventNumber); +extern INLINE int XDmaPs_Instr_DMAST(char *DmaProg); +extern INLINE int XDmaPs_Instr_DMAWMB(char *DmaProg); +extern INLINE unsigned XDmaPs_ToEndianSwapSizeBits(unsigned int EndianSwapSize); +extern INLINE unsigned XDmaPs_ToBurstSizeBits(unsigned BurstSize); +#endif + /** * Driver done interrupt service routines for the channels. * We need this done ISR mainly because the driver needs to release the diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_g.c similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_g.c index 3529895f9..bab15561f 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XDmaPs_Config XDmaPs_ConfigTable[] = +XDmaPs_Config XDmaPs_ConfigTable[XPAR_XDMAPS_NUM_INSTANCES] = { { XPAR_PS7_DMA_NS_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_hw.c index 9fc3dd898..4c0cfbfd2 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_hw.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_hw.c @@ -33,7 +33,7 @@ /** * * @file xdmaps_hw.c -* @addtogroup dmaps_v2_1 +* @addtogroup dmaps_v2_3 * @{ * * This file contains the implementation of the interface reset functionality diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_hw.h index 1186107ac..628f1ec4f 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_hw.h @@ -33,7 +33,7 @@ /** * * @file xdmaps_hw.h -* @addtogroup dmaps_v2_1 +* @addtogroup dmaps_v2_3 * @{ * * This header file contains the hardware interface of an XDmaPs device. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_selftest.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_selftest.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_selftest.c index eae0846b5..daebd9903 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xdmaps_selftest.c -* @addtogroup dmaps_v2_1 +* @addtogroup dmaps_v2_3 * @{ * * This file contains the self-test functions for the XDmaPs driver. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_sinit.c index 20866cf57..b92ee5311 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_1/src/xdmaps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/dmaps_v2_3/src/xdmaps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xdmaps_sinit.c -* @addtogroup dmaps_v2_1 +* @addtogroup dmaps_v2_3 * @{ * * The implementation of the XDmaPs driver's static initialzation diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps.c index 26df03c3d..c013c4946 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps.c @@ -33,7 +33,7 @@ /** * * @file xemacps.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * The XEmacPs driver. Functions in this file are the minimum required functions @@ -52,6 +52,8 @@ * Disable extended mode. Perform all 64 bit changes under * check for arch64. * 3.1 hk 08/10/15 Update upper 32 bit tx and rx queue ptr registers +* 3.5 hk 08/14/17 Update cache coherency information of the interface in +* its config structure. * * ******************************************************************************/ @@ -107,6 +109,7 @@ LONG XEmacPs_CfgInitialize(XEmacPs *InstancePtr, XEmacPs_Config * CfgPtr, /* Set device base address and ID */ InstancePtr->Config.DeviceId = CfgPtr->DeviceId; InstancePtr->Config.BaseAddress = EffectiveAddress; + InstancePtr->Config.IsCacheCoherent = CfgPtr->IsCacheCoherent; /* Set callbacks to an initial stub routine */ InstancePtr->SendHandler = ((XEmacPs_Handler)((void*)XEmacPs_StubHandler)); diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps.h similarity index 97% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps.h index f12092bec..6d4b15b24 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps.h @@ -33,7 +33,7 @@ /** * * @file xemacps.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * @details * @@ -316,6 +316,21 @@ * there is no error. CR# 869403 * 08/10/15 Update upper 32 bit tx and rx queue ptr registers. * 3.2 hk 02/22/16 Added SGMII support for Zynq Ultrascale+ MPSoC. + * 3.4 ms 01/23/17 Modified xil_printf statement in main function for all + * examples to ensure that "Successfully ran" and "Failed" + * strings are available in all examples. This is a fix + * for CR-965028. + * ms 03/17/17 Modified text file in examples folder for doxygen + * generation. + * ms 04/05/17 Added tabspace for return statements in functions of + * xemacps_ieee1588_example.c for proper documentation + * while generating doxygen. + * 3.5 hk 08/14/17 Update cache coherency information of the interface in + * its config structure. + * 3.6 rb 09/08/17 HwCnt variable (in XEmacPs_BdRing structure) is + * changed to volatile. + * Add API XEmacPs_BdRingPtrReset() to reset pointers + * * * ****************************************************************************/ @@ -513,6 +528,8 @@ typedef void (*XEmacPs_ErrHandler) (void *CallBackRef, u8 Direction, typedef struct { u16 DeviceId; /**< Unique ID of device */ UINTPTR BaseAddress;/**< Physical base address of IPIF registers */ + u8 IsCacheCoherent; /**< Applicable only to A53 in EL1 mode; + * describes whether Cache Coherent or not */ } XEmacPs_Config; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_bd.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_bd.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_bd.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_bd.h index 52c5f7e7e..83f9a87fc 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_bd.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_bd.h @@ -33,7 +33,7 @@ /** * * @file xemacps_bd.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This header provides operations to manage buffer descriptors in support diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_bdring.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_bdring.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_bdring.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_bdring.c index d837e1df1..3536873dc 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_bdring.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_bdring.c @@ -33,7 +33,7 @@ /** * * @file xemacps_bdring.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This file implements buffer descriptor ring related functions. @@ -57,6 +57,8 @@ * from uncached area. Fix for CR #663885. * 2.1 srt 07/15/14 Add support for Zynq Ultrascale Mp architecture. * 3.0 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. +* 3.6 rb 09/08/17 Add XEmacPs_BdRingPtrReset() API to reset BD ring +* pointers * * ******************************************************************************/ @@ -505,7 +507,7 @@ LONG XEmacPs_BdRingUnAlloc(XEmacPs_BdRing * RingPtr, u32 NumBd, XEmacPs_Bd * BdSetPtr) { LONG Status; - (void *)BdSetPtr; + (void) BdSetPtr; Xil_AssertNonvoid(RingPtr != NULL); Xil_AssertNonvoid(BdSetPtr != NULL); @@ -1072,4 +1074,29 @@ static void XEmacPs_BdSetTxWrap(UINTPTR BdPtr) *TempPtr = DataValueTx; } } + +/*****************************************************************************/ +/** + * Reset BD ring head and tail pointers. + * + * @param RingPtr is the instance to be worked on. + * @param VirtAddr is the virtual base address of the user memory region. + * + * @note + * Should be called after XEmacPs_Stop() + * + * @note + * C-style signature: + * void XEmacPs_BdRingPtrReset(XEmacPs_BdRing * RingPtr, void *virtaddrloc) + * + *****************************************************************************/ +void XEmacPs_BdRingPtrReset(XEmacPs_BdRing * RingPtr, void *virtaddrloc) +{ + RingPtr->FreeHead = virtaddrloc; + RingPtr->PreHead = virtaddrloc; + RingPtr->HwHead = virtaddrloc; + RingPtr->HwTail = virtaddrloc; + RingPtr->PostHead = virtaddrloc; +} + /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_bdring.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_bdring.h similarity index 97% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_bdring.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_bdring.h index de78cf28f..b89e89885 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_bdring.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_bdring.h @@ -33,7 +33,7 @@ /** * * @file xemacps_bdring.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * The Xiline EmacPs Buffer Descriptor ring driver. This is part of EmacPs @@ -47,6 +47,8 @@ * 1.00a wsy 01/10/10 First release * 2.1 srt 07/15/14 Add support for Zynq Ultrascale Mp architecture. * 3.0 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. +* 3.6 rb 09/08/17 HwCnt variable (in XEmacPs_BdRing structure) is +* changed to volatile. * * * @@ -81,7 +83,7 @@ typedef struct { XEmacPs_Bd *BdaRestart; /**< BDA to load when channel is started */ - u32 HwCnt; /**< Number of BDs in work group */ + volatile u32 HwCnt; /**< Number of BDs in work group */ u32 PreCnt; /**< Number of BDs in pre-work group */ u32 FreeCnt; /**< Number of allocatable BDs in the free group */ u32 PostCnt; /**< Number of BDs in post-work group */ @@ -228,6 +230,7 @@ u32 XEmacPs_BdRingFromHwRx(XEmacPs_BdRing * RingPtr, u32 BdLimit, XEmacPs_Bd ** BdSetPtr); LONG XEmacPs_BdRingCheck(XEmacPs_BdRing * RingPtr, u8 Direction); +void XEmacPs_BdRingPtrReset(XEmacPs_BdRing * RingPtr, void *virtaddrloc); #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_control.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_control.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_control.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_control.c index f52451a8c..8217a4521 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_control.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_control.c @@ -33,7 +33,7 @@ /** * * @file xemacps_control.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * Functions in this file implement general purpose command and control related diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_g.c similarity index 87% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_g.c index 201e23d8f..2554f27ba 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,11 +44,12 @@ * The configuration table for devices */ -XEmacPs_Config XEmacPs_ConfigTable[] = +XEmacPs_Config XEmacPs_ConfigTable[XPAR_XEMACPS_NUM_INSTANCES] = { { XPAR_PS7_ETHERNET_0_DEVICE_ID, - XPAR_PS7_ETHERNET_0_BASEADDR + XPAR_PS7_ETHERNET_0_BASEADDR, + XPAR_PS7_ETHERNET_0_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_hw.c index daba38397..00e79a58d 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_hw.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_hw.c @@ -33,7 +33,7 @@ /** * * @file xemacps_hw.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This file contains the implementation of the ethernet interface reset sequence diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_hw.h index 953cc6265..e535470c2 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_hw.h @@ -33,7 +33,7 @@ /** * * @file xemacps_hw.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This header file contains identifiers and low-level driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_intr.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_intr.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_intr.c index 59636c4ef..9c355a163 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_intr.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_intr.c @@ -33,7 +33,7 @@ /** * * @file xemacps_intr.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * Functions in this file implement general purpose interrupt processing related diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_sinit.c index 1bc5b3b19..e2d2078af 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_7/src/xemacps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xemacps_sinit.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This file contains lookup method by device ID when success, it returns diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops.c index 90eedb87d..7b6fe2e46 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops.c @@ -33,7 +33,7 @@ /** * * @file xgpiops.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * The XGpioPs driver. Functions in this file are the minimum required functions diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops.h similarity index 94% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops.h index 102615572..fda562d91 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops.h @@ -1,3 +1,4 @@ + /****************************************************************************** * * Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. @@ -33,7 +34,7 @@ /** * * @file xgpiops.h -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * @details * @@ -97,7 +98,15 @@ * passed to APIs. CR# 822636 * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. * 3.1 kvn 04/13/15 Add support for Zynq Ultrascale+ MP. CR# 856980. -* +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Added tabspace for return statements in functions of +* gpiops examples for proper documentation while +* generating doxygen. +* 3.3 ms 04/17/17 Added notes about gpio input and output pin description +* for zcu102 and zc702 boards in polled and interrupt +* example, configured Interrupt pin to input pin for +* proper functioning of interrupt example. * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_g.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_g.c index eac708037..76e6947a8 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XGpioPs_Config XGpioPs_ConfigTable[] = +XGpioPs_Config XGpioPs_ConfigTable[XPAR_XGPIOPS_NUM_INSTANCES] = { { XPAR_PS7_GPIO_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_hw.c index d7a5e00f0..8961c4287 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_hw.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_hw.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_hw.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains low level GPIO functions. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_hw.h index 81e8d6a9f..ff0190675 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_hw.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_hw.h @@ -33,7 +33,7 @@ /** * * @file xgpiops_hw.h -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This header file contains the identifiers and basic driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_intr.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_intr.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_intr.c index c07381be6..a8b0a5626 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_intr.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_intr.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_intr.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains functions related to GPIO interrupt handling. @@ -722,7 +722,7 @@ void XGpioPs_IntrHandler(XGpioPs *InstancePtr) ******************************************************************************/ void StubHandler(void *CallBackRef, u32 Bank, u32 Status) { - (void*) CallBackRef; + (void) CallBackRef; (void) Bank; (void) Status; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_selftest.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_selftest.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_selftest.c index da1973a2d..378524c14 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_selftest.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_selftest.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains a diagnostic self-test function for the XGpioPs driver. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_sinit.c index 2ca008373..4cc0c390f 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_3/src/xgpiops_sinit.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_sinit.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains the implementation of the XGpioPs driver's static diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps.c index 1c6819152..4f2b592e7 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps.c @@ -33,7 +33,7 @@ /** * * @file xiicps.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains implementation of required functions for the XIicPs driver. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps.h index b26193486..cc837a14c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps.h @@ -33,7 +33,7 @@ /** * * @file xiicps.h -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * @details * @@ -184,6 +184,8 @@ * 02/18/15 Implemented larger data transfer using repeated start * in Zynq UltraScale MP. * 3.3 kvn 05/05/16 Modified latest code for MISRA-C:2012 Compliance. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * * diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_g.c similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_g.c index 1f5d00c45..64ac64811 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XIicPs_Config XIicPs_ConfigTable[] = +XIicPs_Config XIicPs_ConfigTable[XPAR_XIICPS_NUM_INSTANCES] = { { XPAR_PS7_I2C_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_hw.c index a1dba8e62..2d85e1436 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_hw.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_hw.c @@ -33,7 +33,7 @@ /** * * @file xiicps_hw.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains implementation of required functions for providing the reset sequence diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_hw.h index 3b00cf8b1..d1eee82f2 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_hw.h @@ -33,7 +33,7 @@ /** * * @file xiicps_hw.h -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * This header file contains the hardware definition for an IIC device. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_intr.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_intr.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_intr.c index 5231049c7..7f385918f 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_intr.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_intr.c @@ -33,7 +33,7 @@ /** * * @file xiicps_intr.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains functions of the XIicPs driver for interrupt-driven transfers. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_master.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_master.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_master.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_master.c index 7824d86b6..faa852826 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_master.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_master.c @@ -33,7 +33,7 @@ /** * * @file xiicps_master.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Handles master mode transfers. @@ -63,7 +63,8 @@ * 02/18/15 Implemented larger data transfer using repeated start * in Zynq UltraScale MP. * 3.3 kvn 05/05/16 Modified latest code for MISRA-C:2012 Compliance. -* +* 3.6 ask 09/03/18 In XIicPs_MasterRecvPolled, set transfer size register +* before slave address. Fix for CR996440. * * ******************************************************************************/ @@ -424,7 +425,6 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, IntrStatusReg = XIicPs_ReadReg(BaseAddr, XIICPS_ISR_OFFSET); XIicPs_WriteReg(BaseAddr, XIICPS_ISR_OFFSET, IntrStatusReg); - XIicPs_WriteReg(BaseAddr, XIICPS_ADDR_OFFSET, SlaveAddr); /* * Set up the transfer size register so the slave knows how much @@ -440,6 +440,9 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, ByteCountVar); } + + XIicPs_WriteReg(BaseAddr, XIICPS_ADDR_OFFSET, SlaveAddr); + /* * Intrs keeps all the error-related interrupts. */ @@ -632,6 +635,11 @@ void XIicPs_DisableSlaveMonitor(XIicPs *InstancePtr) XIicPs_ReadReg(BaseAddr, XIICPS_CR_OFFSET) & (~XIICPS_CR_SLVMON_MASK)); + /* + * wait for slv monitor control bit to be clear + */ + while (XIicPs_ReadReg(BaseAddr, XIICPS_CR_OFFSET) + & XIICPS_CR_SLVMON_MASK); /* * Clear interrupt flag for slave monitor interrupt. */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_options.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_options.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_options.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_options.c index 1ebd78673..c9237dbb0 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_options.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_options.c @@ -33,7 +33,7 @@ /** * * @file xiicps_options.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains functions for the configuration of the XIccPs driver. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_selftest.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_selftest.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_selftest.c index dd57a1a51..31e02b56f 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xiicps_selftest.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * This component contains the implementation of selftest functions for the diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_sinit.c index 7d7dadaa8..d8fbc4cd5 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xiicps_sinit.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * The implementation of the XIicPs component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_slave.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_slave.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_slave.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_slave.c index fef640b77..adc40a435 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/iicps_v3_4/src/xiicps_slave.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_6/src/xiicps_slave.c @@ -32,7 +32,7 @@ /*****************************************************************************/ /** * @file xiicps_slave.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Handles slave transfers diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips.c index 086b9887e..c33322c73 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips.c @@ -33,7 +33,7 @@ /** * * @file xqspips.c -* @addtogroup qspips_v3_2 +* @addtogroup qspips_v3_4 * @{ * * Contains implements the interface functions of the XQspiPs driver. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips.h index c97e5fa27..139ce4d38 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips.h @@ -33,7 +33,7 @@ /** * * @file xqspips.h -* @addtogroup qspips_v3_2 +* @addtogroup qspips_v3_4 * @{ * @details * @@ -273,6 +273,14 @@ * when thresholds are used. * 3.3 sk 11/07/15 Modified the API prototypes according to MISRAC standards * to remove compilation warnings. CR# 868893. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Modified Comment lines in functions of qspips +* examples to recognize it as documentation block +* and modified filename tag in +* xqspips_dual_flash_stack_lqspi_example.c to include it in +* doxygen examples. +* 3.4 nsk 31/07/17 Added QSPI_BUS_WIDTH parameter in xparameters.h file * * * diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_g.c similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_g.c index d9453c49c..d739e6218 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XQspiPs_Config XQspiPs_ConfigTable[] = +XQspiPs_Config XQspiPs_ConfigTable[XPAR_XQSPIPS_NUM_INSTANCES] = { { XPAR_PS7_QSPI_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_hw.c index 47cf6d4c9..1817b0780 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_hw.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_hw.c @@ -33,7 +33,7 @@ /** * * @file xqspips_hw.c -* @addtogroup qspips_v3_2 +* @addtogroup qspips_v3_4 * @{ * * Contains low level functions, primarily reset related. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_hw.h index 404afed94..96c867ad3 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_hw.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_hw.h @@ -33,7 +33,7 @@ /** * * @file xqspips_hw.h -* @addtogroup qspips_v3_2 +* @addtogroup qspips_v3_4 * @{ * * This header file contains the identifiers and basic HW access driver diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_options.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_options.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_options.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_options.c index 911391ccd..1cd43f48c 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_options.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_options.c @@ -33,7 +33,7 @@ /** * * @file xqspips_options.c -* @addtogroup qspips_v3_2 +* @addtogroup qspips_v3_4 * @{ * * Contains functions for the configuration of the XQspiPs driver component. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_selftest.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_selftest.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_selftest.c index 309b36e2b..4c44cdff2 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_selftest.c @@ -33,7 +33,7 @@ /** * * @file xqspips_selftest.c -* @addtogroup qspips_v3_2 +* @addtogroup qspips_v3_4 * @{ * * This file contains the implementation of selftest function for the QSPI diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_sinit.c index be154be99..929ecd832 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_3/src/xqspips_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/qspips_v3_4/src/xqspips_sinit.c @@ -33,7 +33,7 @@ /** * * @file xqspips_sinit.c -* @addtogroup qspips_v3_2 +* @addtogroup qspips_v3_4 * @{ * * The implementation of the XQspiPs component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic.c similarity index 82% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic.c index bf7ac12e8..f6afc0e5a 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xscugic.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * Contains required functions for the XScuGic driver for the Interrupt @@ -107,7 +107,17 @@ * and properly mask interrupt target processor value to modify * interrupt target processor register for a given interrupt ID * and cpu ID -* +* 3.6 pkp 20/01/17 Added new API XScuGic_Stop to Disable distributor and +* interrupts in case they are being used only by current cpu. +* It also removes current cpu from interrupt target registers +* for all interrupts. +* kvn 02/17/17 Add support for changing GIC CPU master at run time. +* kvn 02/28/17 Make the CpuId as static variable and Added new +* XScugiC_GetCpuId to access CpuId. +* 3.9 mus 02/21/18 Added new API's XScuGic_UnmapAllInterruptsFromCpu and +* XScuGic_InterruptUnmapFromCpu, These API's can be used +* by applications to unmap specific/all interrupts from +* target CPU. It fixes CR#992490. * * * @@ -127,6 +137,7 @@ /***************** Macros (Inline Functions) Definitions *********************/ /************************** Variable Definitions *****************************/ +static u32 CpuId = XPAR_CPU_ID; /**< CPU Core identifier */ /************************** Function Prototypes ******************************/ @@ -254,7 +265,7 @@ static void DistributorInit(XScuGic *InstancePtr, u32 CpuID) #endif RegValue = XScuGic_DistReadReg(InstancePtr, XSCUGIC_DIST_EN_OFFSET); - if (!(RegValue & XSCUGIC_EN_INT_MASK)) { + if ((RegValue & XSCUGIC_EN_INT_MASK) == 0U) { Xil_AssertVoid(InstancePtr != NULL); DoDistributorInit(InstancePtr, CpuID); return; @@ -353,7 +364,7 @@ s32 XScuGic_CfgInitialize(XScuGic *InstancePtr, u32 EffectiveAddr) { u32 Int_Id; - u32 Cpu_Id = (u32)XPAR_CPU_ID + (u32)1; + u32 Cpu_Id = CpuId + (u32)1; (void) EffectiveAddr; Xil_AssertNonvoid(InstancePtr != NULL); @@ -392,7 +403,7 @@ s32 XScuGic_CfgInitialize(XScuGic *InstancePtr, InstancePtr->Config->HandlerTable[Int_Id].CallBackRef = InstancePtr; } - + XScuGic_Stop(InstancePtr); DistributorInit(InstancePtr, Cpu_Id); CPUInitialize(InstancePtr); @@ -827,4 +838,183 @@ void XScuGic_InterruptMaptoCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id) XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id), RegValue); } +/****************************************************************************/ +/** +* Unmaps specific SPI interrupt from the target CPU +* +* @param InstancePtr is a pointer to the instance to be worked on. +* @param Cpu_Id is a CPU number from which the interrupt has to be +* unmapped +* @param Int_Id is the IRQ source number to modify +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_InterruptUnmapFromCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id) +{ + u32 RegValue; + u8 BitPos; + + Xil_AssertVoid(InstancePtr != NULL); + + RegValue = XScuGic_DistReadReg(InstancePtr, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id)); + + /* + * Identify bit position corresponding to Int_Id and Cpu_Id, + * in interrupt target register and clear it + */ + BitPos = ((Int_Id % 4U) * 8U) + Cpu_Id; + RegValue &= (~ ( 1U << BitPos )); + XScuGic_DistWriteReg(InstancePtr, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id), + RegValue); +} +/****************************************************************************/ +/** +* Unmaps all SPI interrupts from the target CPU +* +* @param InstancePtr is a pointer to the instance to be worked on. +* @param Cpu_Id is a CPU number from which the interrupts has to be +* unmapped +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_UnmapAllInterruptsFromCpu(XScuGic *InstancePtr, u8 Cpu_Id) +{ + u32 Int_Id; + u32 Target_Cpu; + u32 LocalCpuID = (1U << Cpu_Id); + + Xil_AssertVoid(InstancePtr != NULL); + + LocalCpuID |= LocalCpuID << 8U; + LocalCpuID |= LocalCpuID << 16U; + + for (Int_Id = 32U; Int_Id * @@ -322,6 +344,11 @@ void XScuGic_GetPriorityTriggerType(XScuGic *InstancePtr, u32 Int_Id, void XScuGic_SetPriorityTriggerType(XScuGic *InstancePtr, u32 Int_Id, u8 Priority, u8 Trigger); void XScuGic_InterruptMaptoCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id); +void XScuGic_InterruptUnmapFromCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id); +void XScuGic_UnmapAllInterruptsFromCpu(XScuGic *InstancePtr, u8 Cpu_Id); +void XScuGic_Stop(XScuGic *InstancePtr); +void XScuGic_SetCpuID(u32 CpuCoreId); +u32 XScuGic_GetCpuID(void); /* * Initialization functions in xscugic_sinit.c */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_g.c similarity index 87% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_g.c index 50888df78..6765fd57e 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,12 +44,13 @@ * The configuration table for devices */ -XScuGic_Config XScuGic_ConfigTable[] = +XScuGic_Config XScuGic_ConfigTable[XPAR_XSCUGIC_NUM_INSTANCES] = { { XPAR_PS7_SCUGIC_0_DEVICE_ID, XPAR_PS7_SCUGIC_0_BASEADDR, - XPAR_PS7_SCUGIC_0_DIST_BASEADDR + XPAR_PS7_SCUGIC_0_DIST_BASEADDR, + {{0}} /**< Initialize the HandlerTable to 0 */ } }; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_hw.c similarity index 88% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_hw.c index 626779720..6604e3a55 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_hw.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_hw.c @@ -33,7 +33,7 @@ /** * * @file xscugic_hw.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * This file contains low-level driver functions that can be used to access the @@ -62,6 +62,13 @@ * XScuGic_SetPriTrigTypeByDistAddr and * XScuGic_GetPriTrigTypeByDistAddr here from xscugic.c * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. +* 3.6 kvn 02/17/17 Add support for changing GIC CPU master at run time. +* kvn 02/28/17 Make the CpuId as static variable and Added new +* XScugiC_GetCpuId to access CpuId. +* 3.9 mus 02/21/18 Added new API's XScuGic_InterruptUnmapFromCpuByDistAddr +* and XScuGic_UnmapAllInterruptsFromCpuByDistAddr, These +* API's can be used by applications to unmap specific/all +* interrupts from target CPU. It fixes CR#992490. * * * @@ -90,6 +97,7 @@ static XScuGic_Config *LookupConfigByBaseAddress(u32 CpuBaseAddress); /************************** Variable Definitions *****************************/ extern XScuGic_Config XScuGic_ConfigTable[XPAR_XSCUGIC_NUM_INSTANCES]; +extern u32 CpuId; /*****************************************************************************/ /** @@ -274,7 +282,7 @@ static void CPUInit(XScuGic_Config *Config) s32 XScuGic_DeviceInitialize(u32 DeviceId) { XScuGic_Config *Config; - u32 Cpu_Id = (u32)XPAR_CPU_ID + (u32)1; + u32 Cpu_Id = XScuGic_GetCpuID() + (u32)1; Config = &XScuGic_ConfigTable[(u32 )DeviceId]; @@ -567,4 +575,75 @@ void XScuGic_GetPriTrigTypeByDistAddr(u32 DistBaseAddress, u32 Int_Id, *Trigger = (u8)(RegValue & XSCUGIC_INT_CFG_MASK); } + +/****************************************************************************/ +/** +* Unmaps specific SPI interrupt from the target CPU +* +* @param DistBaseAddress is the device base address +* @param Cpu_Id is a CPU number from which the interrupt has to be +* unmapped +* @param Int_Id is the IRQ source number to modify +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_InterruptUnmapFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id, u32 Int_Id) +{ + u32 RegValue; + u8 BitPos; + + Xil_AssertVoid(Int_Id < XSCUGIC_MAX_NUM_INTR_INPUTS); + + RegValue = XScuGic_ReadReg(DistBaseAddress, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id)); + + /* + * Identify bit position corresponding to Int_Id and Cpu_Id, + * in interrupt target register and clear it + */ + BitPos = ((Int_Id % 4U) * 8U) + Cpu_Id; + RegValue &= (~ ( 1U << BitPos )); + XScuGic_WriteReg(DistBaseAddress, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id), RegValue); +} + +/****************************************************************************/ +/** +* Unmaps all SPI interrupts from the target CPU +* +* @param DistBaseAddress is the device base address +* @param Cpu_Id is a CPU number from which the interrupts has to be +* unmapped +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_UnmapAllInterruptsFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id) +{ + u32 Int_Id; + u32 Target_Cpu; + u32 LocalCpuID = (1U << Cpu_Id); + + LocalCpuID |= LocalCpuID << 8U; + LocalCpuID |= LocalCpuID << 16U; + + for (Int_Id = 32U; Int_Id * ******************************************************************************/ @@ -633,6 +637,10 @@ void XScuGic_SetPriTrigTypeByDistAddr(u32 DistBaseAddress, u32 Int_Id, u8 Priority, u8 Trigger); void XScuGic_GetPriTrigTypeByDistAddr(u32 DistBaseAddress, u32 Int_Id, u8 *Priority, u8 *Trigger); +void XScuGic_InterruptUnmapFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id, u32 Int_Id); +void XScuGic_UnmapAllInterruptsFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id); /************************** Variable Definitions *****************************/ #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_intr.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_intr.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_intr.c index d05a51c5e..d82a60b9e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_intr.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_intr.c @@ -33,7 +33,7 @@ /** * * @file xscugic_intr.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * This file contains the interrupt processing for the driver for the Xilinx diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_selftest.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_selftest.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_selftest.c index 47620d644..7b1028f9f 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_selftest.c @@ -33,7 +33,7 @@ /** * * @file xscugic_selftest.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * Contains diagnostic self-test functions for the XScuGic driver. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_sinit.c index d30390ab8..842f31812 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_9/src/xscugic_sinit.c @@ -33,7 +33,7 @@ /** * * @file xscugic_sinit.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * Contains static init functions for the XScuGic driver for the Interrupt diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scutimer_v2_1/src/xscutimer.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scutimer_v2_1/src/xscutimer.h index 5a35f6210..ea4ba79de 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scutimer_v2_1/src/xscutimer.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scutimer_v2_1/src/xscutimer.h @@ -103,6 +103,8 @@ * the xstatus.h of the standalone BSP during the * libgen. * 2.1 sk 02/26/15 Modified the code for MISRA-C:2012 compliance. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scutimer_v2_1/src/xscutimer_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scutimer_v2_1/src/xscutimer_g.c index 8126d2402..6ccfa915b 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scutimer_v2_1/src/xscutimer_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scutimer_v2_1/src/xscutimer_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XScuTimer_Config XScuTimer_ConfigTable[] = +XScuTimer_Config XScuTimer_ConfigTable[XPAR_XSCUTIMER_NUM_INSTANCES] = { { XPAR_PS7_SCUTIMER_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt.c index 8e9788551..cd9e15d2c 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt.c @@ -1,4 +1,3 @@ -/* $Id: xscuwdt.c,v 1.1.2.1 2011/01/20 04:04:40 sadanan Exp $ */ /****************************************************************************** * * Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt.h index 5d3b92bae..372bbc343 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt.h @@ -125,6 +125,8 @@ * the xstatus.h of the standalone BSP during the * libgen. * 2.1 sk 02/26/15 Modified the code for MISRA-C:2012 compliance. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt_g.c index 9824a3647..5d6307d34 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scuwdt_v2_1/src/xscuwdt_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XScuWdt_Config XScuWdt_ConfigTable[] = +XScuWdt_Config XScuWdt_ConfigTable[XPAR_XSCUWDT_NUM_INSTANCES] = { { XPAR_PS7_SCUWDT_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps.c similarity index 81% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps.c index ac3f9469e..65f1b2237 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps.c @@ -33,7 +33,7 @@ /** * * @file xsdps.c -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * Contains the interface functions of the XSdPs driver. @@ -74,6 +74,22 @@ * sk 10/13/16 Reduced the delay during power cycle to 1ms as per spec * sk 10/19/16 Used emmc_hwreset pin to reset eMMC. * sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. +* 3.2 sk 11/30/16 Modified the voltage switching sequence as per spec. +* sk 02/01/17 Added HSD and DDR mode support for eMMC. +* vns 02/09/17 Added ARMA53_32 support for ZynqMP CR#968397 +* sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 05/17/17 Add support for 64bit DMA addressing +* mn 07/17/17 Add support for running SD at 200MHz +* mn 07/26/17 Fixed compilation warnings +* mn 08/07/17 Modify driver to support 64-bit DMA in arm64 only +* mn 08/17/17 Added CCI support for A53 and disabled data cache +* operations when it is enabled. +* mn 08/22/17 Updated for Word Access System support +* mn 09/06/17 Resolved compilation errors with IAR toolchain +* mn 09/26/17 Added UHS_MODE_ENABLE macro to enable UHS mode +* 3.4 mn 10/17/17 Use different commands for single and multi block +* transfers +* mn 03/02/18 Move UHS macro check to SD card initialization routine * * ******************************************************************************/ @@ -90,21 +106,23 @@ #define XSDPS_CMD1_HIGH_VOL 0x00FF8000U #define XSDPS_CMD1_DUAL_VOL 0x00FF8010U #define HIGH_SPEED_SUPPORT 0x2U +#define UHS_SDR50_SUPPORT 0x4U #define WIDTH_4_BIT_SUPPORT 0x4U #define SD_CLK_25_MHZ 25000000U #define SD_CLK_19_MHZ 19000000U #define SD_CLK_26_MHZ 26000000U #define EXT_CSD_DEVICE_TYPE_BYTE 196U -#define EXT_CSD_SEC_COUNT 212U +#define EXT_CSD_SEC_COUNT_BYTE1 212U +#define EXT_CSD_SEC_COUNT_BYTE2 213U +#define EXT_CSD_SEC_COUNT_BYTE3 214U +#define EXT_CSD_SEC_COUNT_BYTE4 215U #define EXT_CSD_DEVICE_TYPE_HIGH_SPEED 0x2U #define EXT_CSD_DEVICE_TYPE_DDR_1V8_HIGH_SPEED 0x4U #define EXT_CSD_DEVICE_TYPE_DDR_1V2_HIGH_SPEED 0x8U #define EXT_CSD_DEVICE_TYPE_SDR_1V8_HS200 0x10U #define EXT_CSD_DEVICE_TYPE_SDR_1V2_HS200 0x20U #define CSD_SPEC_VER_3 0x3U - -/* Note: Remove this once fixed */ -#define UHS_BROKEN +#define SCR_SPEC_VER_3 0x80U /**************************** Type Definitions *******************************/ @@ -116,10 +134,9 @@ s32 XSdPs_CmdTransfer(XSdPs *InstancePtr, u32 Cmd, u32 Arg, u32 BlkCnt); void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff); extern s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode); static s32 XSdPs_IdentifyCard(XSdPs *InstancePtr); -#ifndef UHS_BROKEN static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr); -#endif +u16 TransferMode; /*****************************************************************************/ /** * @@ -172,6 +189,7 @@ s32 XSdPs_CfgInitialize(XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, InstancePtr->Config.BusWidth = ConfigPtr->BusWidth; InstancePtr->Config.BankNumber = ConfigPtr->BankNumber; InstancePtr->Config.HasEMIO = ConfigPtr->HasEMIO; + InstancePtr->Config.IsCacheCoherent = ConfigPtr->IsCacheCoherent; InstancePtr->SectorCount = 0; InstancePtr->Mode = XSDPS_DEFAULT_SPEED_MODE; InstancePtr->Config_TapDelay = NULL; @@ -250,10 +268,18 @@ s32 XSdPs_CfgInitialize(XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, XSDPS_POWER_CTRL_OFFSET, PowerLevel | XSDPS_PC_BUS_PWR_MASK); + +#ifdef __aarch64__ /* Enable ADMA2 in 64bit mode. */ + XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL1_OFFSET, + XSDPS_HC_DMA_ADMA2_64_MASK); +#else + /* Enable ADMA2 in 32bit mode. */ XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL1_OFFSET, XSDPS_HC_DMA_ADMA2_32_MASK); +#endif /* Enable all interrupt status except card interrupt initially */ XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, @@ -274,10 +300,8 @@ s32 XSdPs_CfgInitialize(XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, * Transfer mode register - default value * DMA enabled, block count enabled, data direction card to host(read) */ - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DMA_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | - XSDPS_TM_DAT_DIR_SEL_MASK); + TransferMode = XSDPS_TM_DMA_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | + XSDPS_TM_DAT_DIR_SEL_MASK; /* Set block size to 512 by default */ XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, @@ -328,6 +352,10 @@ s32 XSdPs_SdCardInitialize(XSdPs *InstancePtr) Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); +#ifndef UHS_MODE_ENABLE + InstancePtr->Config.BusWidth = XSDPS_WIDTH_4; +#endif + if ((InstancePtr->HC_Version != XSDPS_HC_SPEC_V3) || ((InstancePtr->Host_Caps & XSDPS_CAPS_SLOT_TYPE_MASK) != XSDPS_CAPS_EMB_SLOT)) { @@ -395,9 +423,17 @@ s32 XSdPs_SdCardInitialize(XSdPs *InstancePtr) goto RETURN_PATH; } - Arg = XSDPS_ACMD41_HCS | XSDPS_ACMD41_3V3 | (0x1FFU << 15U); - if (InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) { - Arg |= XSDPS_OCR_S18; + Arg = XSDPS_ACMD41_HCS | XSDPS_ACMD41_3V3 | (0x1FFU << 15U); + /* + * There is no support to switch to 1.8V and use UHS mode on + * 1.0 silicon + */ + if ((InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) && +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) + (XGetPSVersion_Info() > XPS_VERSION_1) && +#endif + (InstancePtr->Config.BusWidth == XSDPS_WIDTH_8)) { + Arg |= XSDPS_OCR_S18; } /* 0x40300000 - Host High Capacity support & 3.3V window */ @@ -419,18 +455,14 @@ s32 XSdPs_SdCardInitialize(XSdPs *InstancePtr) InstancePtr->HCS = 1U; } - /* There is no support to switch to 1.8V and use UHS mode on 1.0 silicon */ -#ifndef UHS_BROKEN - if ((RespOCR & XSDPS_OCR_S18) != 0U) { + if ((RespOCR & XSDPS_OCR_S18) != 0U) { InstancePtr->Switch1v8 = 1U; Status = XSdPs_Switch_Voltage(InstancePtr); if (Status != XST_SUCCESS) { Status = XST_FAILURE; goto RETURN_PATH; } - } -#endif /* CMD2 for Card ID */ Status = XSdPs_CmdTransfer(InstancePtr, CMD2, 0U, 0U); @@ -528,12 +560,13 @@ s32 XSdPs_CardInitialize(XSdPs *InstancePtr) { #ifdef __ICCARM__ #pragma data_alignment = 32 -static u8 ExtCsd[512]; + static u8 ExtCsd[512]; + u8 SCR[8] = { 0U }; #pragma data_alignment = 4 #else -static u8 ExtCsd[512] __attribute__ ((aligned(32))); + static u8 ExtCsd[512] __attribute__ ((aligned(32))); + u8 SCR[8] __attribute__ ((aligned(32))) = { 0U }; #endif - u8 SCR[8] = { 0U }; u8 ReadBuff[64] = { 0U }; s32 Status; u32 Arg; @@ -641,9 +674,68 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } -#if defined (ARMR5) || defined (__aarch64__) - if ((InstancePtr->Switch1v8 != 0U) && - (InstancePtr->BusWidth == XSDPS_4_BIT_WIDTH)) { + if (((SCR[2] & SCR_SPEC_VER_3) != 0U) && + (ReadBuff[13] >= UHS_SDR50_SUPPORT) && + (InstancePtr->Config.BusWidth == XSDPS_WIDTH_8) && +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) + (XGetPSVersion_Info() > XPS_VERSION_1) && +#endif + (InstancePtr->Switch1v8 == 0U)) { + u16 CtrlReg, ClockReg; + + /* Stop the clock */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + CtrlReg &= ~(XSDPS_CC_SD_CLK_EN_MASK | XSDPS_CC_INT_CLK_EN_MASK); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_CLK_CTRL_OFFSET, + CtrlReg); + + /* Enabling 1.8V in controller */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + CtrlReg |= XSDPS_HC2_1V8_EN_MASK; + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET, + CtrlReg); + + /* Wait minimum 5mSec */ + (void)usleep(5000U); + + /* Check for 1.8V signal enable bit is cleared by Host */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + if ((CtrlReg & XSDPS_HC2_1V8_EN_MASK) == 0U) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + + /* Wait for internal clock to stabilize */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_INT_CLK_EN_MASK); + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + while((ClockReg & XSDPS_CC_INT_CLK_STABLE_MASK) == 0U) { + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + } + + /* Enable SD clock */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_SD_CLK_EN_MASK); + + /* Wait for 1mSec */ + (void)usleep(1000U); + + InstancePtr->Switch1v8 = 1U; + } + +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + if (InstancePtr->Switch1v8 != 0U) { /* Identify the UHS mode supported by card */ XSdPs_Identify_UhsMode(InstancePtr, ReadBuff); @@ -663,9 +755,10 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); */ if (SCR[0] != 0U) { /* Check for high speed support */ - if ((ReadBuff[13] & HIGH_SPEED_SUPPORT) != 0U) { + if (((ReadBuff[13] & HIGH_SPEED_SUPPORT) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { InstancePtr->Mode = XSDPS_HIGH_SPEED_MODE; -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) InstancePtr->Config_TapDelay = XSdPs_hsd_sdr25_tapdelay; #endif Status = XSdPs_Change_BusSpeed(InstancePtr); @@ -675,7 +768,7 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); } } } -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) } #endif @@ -695,10 +788,14 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } - InstancePtr->SectorCount = *(u32 *)&ExtCsd[EXT_CSD_SEC_COUNT]; + InstancePtr->SectorCount = ((u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE4]) << 24; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE3] << 16; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE2] << 8; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE1]; - if ((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & - EXT_CSD_DEVICE_TYPE_HIGH_SPEED) != 0U) { + if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + EXT_CSD_DEVICE_TYPE_HIGH_SPEED) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { InstancePtr->Mode = XSDPS_HIGH_SPEED_MODE; Status = XSdPs_Change_BusSpeed(InstancePtr); if (Status != XST_SUCCESS) { @@ -732,15 +829,39 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } - InstancePtr->SectorCount = *(u32 *)&ExtCsd[EXT_CSD_SEC_COUNT]; + InstancePtr->SectorCount = ((u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE4]) << 24; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE3] << 16; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE2] << 8; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE1]; - if ((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + /* Check for card supported speed */ + if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & (EXT_CSD_DEVICE_TYPE_SDR_1V8_HS200 | - EXT_CSD_DEVICE_TYPE_SDR_1V2_HS200)) != 0U) { + EXT_CSD_DEVICE_TYPE_SDR_1V2_HS200)) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { InstancePtr->Mode = XSDPS_HS200_MODE; -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) InstancePtr->Config_TapDelay = XSdPs_sdr104_hs200_tapdelay; #endif + } else if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + (EXT_CSD_DEVICE_TYPE_DDR_1V8_HIGH_SPEED | + EXT_CSD_DEVICE_TYPE_DDR_1V2_HIGH_SPEED)) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { + InstancePtr->Mode = XSDPS_DDR52_MODE; +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + InstancePtr->Config_TapDelay = XSdPs_ddr50_tapdelay; +#endif + } else if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + EXT_CSD_DEVICE_TYPE_HIGH_SPEED) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { + InstancePtr->Mode = XSDPS_HIGH_SPEED_MODE; +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + InstancePtr->Config_TapDelay = XSdPs_hsd_sdr25_tapdelay; +#endif + } else + InstancePtr->Mode = XSDPS_DEFAULT_SPEED_MODE; + + if (InstancePtr->Mode != XSDPS_DEFAULT_SPEED_MODE) { Status = XSdPs_Change_BusSpeed(InstancePtr); if (Status != XST_SUCCESS) { Status = XST_FAILURE; @@ -753,9 +874,27 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } - if (ExtCsd[EXT_CSD_HS_TIMING_BYTE] != EXT_CSD_HS_TIMING_HS200) { - Status = XST_FAILURE; - goto RETURN_PATH; + if (InstancePtr->Mode == XSDPS_HS200_MODE) { + if (ExtCsd[EXT_CSD_HS_TIMING_BYTE] != EXT_CSD_HS_TIMING_HS200) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } + + if ((InstancePtr->Mode == XSDPS_HIGH_SPEED_MODE) || + InstancePtr->Mode == XSDPS_DDR52_MODE) { + if (ExtCsd[EXT_CSD_HS_TIMING_BYTE] != EXT_CSD_HS_TIMING_HIGH) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + + if (InstancePtr->Mode == XSDPS_DDR52_MODE) { + Status = XSdPs_Change_BusWidth(InstancePtr); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } } } @@ -769,11 +908,13 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); } } } - - Status = XSdPs_SetBlkSize(InstancePtr, XSDPS_BLK_SIZE_512_MASK); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + if ((InstancePtr->Mode != XSDPS_DDR52_MODE) || + (InstancePtr->CardType == XSDPS_CARD_SD)) { + Status = XSdPs_SetBlkSize(InstancePtr, XSDPS_BLK_SIZE_512_MASK); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } RETURN_PATH: @@ -839,7 +980,6 @@ RETURN_PATH: return Status; } -#ifndef UHS_BROKEN /*****************************************************************************/ /** * @@ -853,7 +993,7 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) { s32 Status; u16 CtrlReg; - u32 ReadReg; + u32 ReadReg, ClockReg; /* Send switch voltage command */ Status = XSdPs_CmdTransfer(InstancePtr, CMD11, 0U, 0U); @@ -877,9 +1017,6 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_CLK_CTRL_OFFSET, CtrlReg); - /* Wait minimum 5mSec */ - (void)usleep(5000U); - /* Enabling 1.8V in controller */ CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET); @@ -887,13 +1024,40 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET, CtrlReg); - /* Start clock */ - Status = XSdPs_Change_ClkFreq(InstancePtr, XSDPS_CLK_400_KHZ); - if (Status != XST_SUCCESS) { + /* Wait minimum 5mSec */ + (void)usleep(5000U); + + /* Check for 1.8V signal enable bit is cleared by Host */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + if ((CtrlReg & XSDPS_HC2_1V8_EN_MASK) == 0U) { Status = XST_FAILURE; goto RETURN_PATH; } + /* Wait for internal clock to stabilize */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_INT_CLK_EN_MASK); + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + while((ClockReg & XSDPS_CC_INT_CLK_STABLE_MASK) == 0U) { + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + } + + /* Enable SD clock */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_SD_CLK_EN_MASK); + + /* Wait for 1mSec */ + (void)usleep(1000U); + /* Wait for CMD and DATA line to go high */ ReadReg = XSdPs_ReadReg(InstancePtr->Config.BaseAddress, XSDPS_PRES_STATE_OFFSET); @@ -906,7 +1070,6 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) RETURN_PATH: return Status; } -#endif /*****************************************************************************/ /** @@ -986,8 +1149,8 @@ s32 XSdPs_CmdTransfer(XSdPs *InstancePtr, u32 Cmd, u32 Arg, u32 BlkCnt) } } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_CMD_OFFSET, - (u16)CommandReg); + XSdPs_WriteReg(InstancePtr->Config.BaseAddress, XSDPS_XFER_MODE_OFFSET, + (CommandReg << 16) | TransferMode); /* Polling for response for now */ do { @@ -1178,20 +1341,32 @@ s32 XSdPs_ReadPolled(XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, u8 *Buff) } XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, Buff); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)Buff, + BlkCnt * XSDPS_BLK_SIZE_512_MASK); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_AUTO_CMD12_EN_MASK | + if (BlkCnt == 1U) { + TransferMode = XSDPS_TM_BLK_CNT_EN_MASK | + XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; + + /* Send single block read command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD17, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } else { + TransferMode = XSDPS_TM_AUTO_CMD12_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | XSDPS_TM_DAT_DIR_SEL_MASK | - XSDPS_TM_DMA_EN_MASK | XSDPS_TM_MUL_SIN_BLK_SEL_MASK); + XSDPS_TM_DMA_EN_MASK | XSDPS_TM_MUL_SIN_BLK_SEL_MASK; - Xil_DCacheInvalidateRange((INTPTR)Buff, BlkCnt * XSDPS_BLK_SIZE_512_MASK); - - /* Send block read command */ - Status = XSdPs_CmdTransfer(InstancePtr, CMD18, Arg, BlkCnt); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + /* Send multiple blocks read command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD18, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } /* Check for transfer complete */ @@ -1269,19 +1444,31 @@ s32 XSdPs_WritePolled(XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, const u8 *Buff) } XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, Buff); - Xil_DCacheFlushRange((INTPTR)Buff, BlkCnt * XSDPS_BLK_SIZE_512_MASK); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)Buff, + BlkCnt * XSDPS_BLK_SIZE_512_MASK); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_AUTO_CMD12_EN_MASK | + if (BlkCnt == 1U) { + TransferMode = XSDPS_TM_BLK_CNT_EN_MASK | XSDPS_TM_DMA_EN_MASK; + + /* Send single block write command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD24, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } else { + TransferMode = XSDPS_TM_AUTO_CMD12_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | - XSDPS_TM_MUL_SIN_BLK_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + XSDPS_TM_MUL_SIN_BLK_SEL_MASK | XSDPS_TM_DMA_EN_MASK; - /* Send block write command */ - Status = XSdPs_CmdTransfer(InstancePtr, CMD25, Arg, BlkCnt); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + /* Send multiple blocks write command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD25, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } /* @@ -1383,8 +1570,13 @@ void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff) } for (DescNum = 0U; DescNum < (TotalDescLines-1); DescNum++) { +#ifdef __aarch64__ + InstancePtr->Adma2_DescrTbl[DescNum].Address = + (u64)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#else InstancePtr->Adma2_DescrTbl[DescNum].Address = (u32)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#endif InstancePtr->Adma2_DescrTbl[DescNum].Attribute = XSDPS_DESC_TRAN | XSDPS_DESC_VALID; /* This will write '0' to length field which indicates 65536 */ @@ -1392,8 +1584,13 @@ void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff) (u16)XSDPS_DESC_MAX_LENGTH; } +#ifdef __aarch64__ + InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Address = + (u64)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#else InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Address = (u32)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#endif InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Attribute = XSDPS_DESC_TRAN | XSDPS_DESC_END | XSDPS_DESC_VALID; @@ -1401,13 +1598,18 @@ void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff) InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Length = (u16)((BlkCnt*BlkSize) - (DescNum*XSDPS_DESC_MAX_LENGTH)); +#ifdef __aarch64__ + XSdPs_WriteReg(InstancePtr->Config.BaseAddress, XSDPS_ADMA_SAR_EXT_OFFSET, + (u32)(((u64)&(InstancePtr->Adma2_DescrTbl[0]))>>32)); +#endif XSdPs_WriteReg(InstancePtr->Config.BaseAddress, XSDPS_ADMA_SAR_OFFSET, (u32)(UINTPTR)&(InstancePtr->Adma2_DescrTbl[0])); - Xil_DCacheFlushRange((INTPTR)&(InstancePtr->Adma2_DescrTbl[0]), + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)&(InstancePtr->Adma2_DescrTbl[0]), sizeof(XSdPs_Adma2Descriptor) * 32U); - + } } /*****************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps.h similarity index 90% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps.h index 46fe545d9..3f9ffd202 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps.h @@ -33,7 +33,7 @@ /** * * @file xsdps.h -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * @details * @@ -139,6 +139,16 @@ * sk 10/19/16 Used emmc_hwreset pin to reset eMMC. * sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. * sk 11/16/16 Issue DLL reset at 31 iteration to load new zero value. +* 3.2 sk 11/30/16 Modified the voltage switching sequence as per spec. +* sk 02/01/17 Added HSD and DDR mode support for eMMC. +* sk 02/01/17 Consider bus width parameter from design for switching +* vns 02/09/17 Added ARMA53_32 support for ZynqMP CR#968397 +* sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 05/17/17 Add support for 64bit DMA addressing +* mn 08/07/17 Modify driver to support 64-bit DMA in arm64 only +* mn 08/17/17 Enabled CCI support for A53 by adding cache coherency +* information. +* mn 09/06/17 Resolved compilation errors with IAR toolchain * * * @@ -156,6 +166,7 @@ extern "C" { #include "xil_cache.h" #include "xstatus.h" #include "xsdps_hw.h" +#include "xplatform_info.h" #include /************************** Constant Definitions *****************************/ @@ -179,14 +190,25 @@ typedef struct { u32 BusWidth; /**< Bus Width */ u32 BankNumber; /**< MIO Bank selection for SD */ u32 HasEMIO; /**< If SD is connected to EMIO */ + u8 IsCacheCoherent; /**< If SD is Cache Coherent or not */ } XSdPs_Config; /* ADMA2 descriptor table */ typedef struct { u16 Attribute; /**< Attributes of descriptor */ u16 Length; /**< Length of current dma transfer */ +#ifdef __aarch64__ + u64 Address; /**< Address of current dma transfer */ +#else u32 Address; /**< Address of current dma transfer */ +#endif +#ifdef __ICCARM__ +#pragma data_alignment = 32 } XSdPs_Adma2Descriptor; +#pragma data_alignment = 4 +#else +} __attribute__((__packed__))XSdPs_Adma2Descriptor; +#endif /** * The XSdPs driver instance data. The user is required to allocate a @@ -243,8 +265,9 @@ s32 XSdPs_MmcCardInitialize(XSdPs *InstancePtr); s32 XSdPs_CardInitialize(XSdPs *InstancePtr); s32 XSdPs_Get_Mmc_ExtCsd(XSdPs *InstancePtr, u8 *ReadBuff); s32 XSdPs_Set_Mmc_ExtCsd(XSdPs *InstancePtr, u32 Arg); -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) void XSdPs_Identify_UhsMode(XSdPs *InstancePtr, u8 *ReadBuff); +void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); void XSdPs_hsd_sdr25_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); void XSdPs_sdr104_hs200_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); #endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_g.c similarity index 85% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_g.c index caab9c3f1..c427bed19 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,14 +44,18 @@ * The configuration table for devices */ -XSdPs_Config XSdPs_ConfigTable[] = +XSdPs_Config XSdPs_ConfigTable[XPAR_XSDPS_NUM_INSTANCES] = { { XPAR_PS7_SD_0_DEVICE_ID, XPAR_PS7_SD_0_BASEADDR, XPAR_PS7_SD_0_SDIO_CLK_FREQ_HZ, XPAR_PS7_SD_0_HAS_CD, - XPAR_PS7_SD_0_HAS_WP + XPAR_PS7_SD_0_HAS_WP, + XPAR_PS7_SD_0_BUS_WIDTH, + XPAR_PS7_SD_0_MIO_BANK, + XPAR_PS7_SD_0_HAS_EMIO, + XPAR_PS7_SD_0_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_hw.h similarity index 95% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_hw.h index 2c5d712d2..8d190efa0 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_hw.h @@ -33,7 +33,7 @@ /** * * @file xsdps_hw.h -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * This header file contains the identifiers and basic HW access driver @@ -56,6 +56,11 @@ * sk 07/16/16 Added Tap delays accordingly to different SD/eMMC * operating modes. * 3.1 sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. +* 3.2 sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 08/22/17 Updated for Word Access System support +* mn 09/06/17 Added support for ARMCC toolchain +* 3.4 mn 01/22/18 Separated out SDR104 and HS200 clock defines +* * * ******************************************************************************/ @@ -953,6 +958,7 @@ extern "C" { #define XSDPS_HIGH_SPEED_MODE 0x5U #define XSDPS_DEFAULT_SPEED_MODE 0x6U #define XSDPS_HS200_MODE 0x7U +#define XSDPS_DDR52_MODE 0x4U #define XSDPS_SWITCH_CMD_BLKCNT 1U #define XSDPS_SWITCH_CMD_BLKSIZE 64U #define XSDPS_SWITCH_CMD_HS_GET 0x00FFFFF0U @@ -993,7 +999,16 @@ extern "C" { #define XSDPS_SD_SDR50_MAX_CLK 100000000U #define XSDPS_SD_DDR50_MAX_CLK 50000000U #define XSDPS_SD_SDR104_MAX_CLK 208000000U +/* + * XSDPS_SD_INPUT_MAX_CLK is set to 175000000 in order to keep it smaller + * than the clock value coming from the core. This value is kept to safely + * switch to SDR104 mode if the SD card supports it. + */ +#define XSDPS_SD_INPUT_MAX_CLK 175000000U + #define XSDPS_MMC_HS200_MAX_CLK 200000000U +#define XSDPS_MMC_HSD_MAX_CLK 52000000U +#define XSDPS_MMC_DDR_MAX_CLK 52000000U #define XSDPS_CARD_STATE_IDLE 0U #define XSDPS_CARD_STATE_RDY 1U @@ -1010,7 +1025,15 @@ extern "C" { #define XSDPS_SLOT_REM 0U #define XSDPS_SLOT_EMB 1U -#if defined (ARMR5) || defined (__aarch64__) +#define XSDPS_WIDTH_8 8U +#define XSDPS_WIDTH_4 4U + + +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) +#define SD0_ITAPDLY_SEL_MASK 0x000000FFU +#define SD0_OTAPDLY_SEL_MASK 0x0000003FU +#define SD1_ITAPDLY_SEL_MASK 0x00FF0000U +#define SD1_OTAPDLY_SEL_MASK 0x003F0000U #define SD_DLL_CTRL 0x00000358U #define SD_ITAPDLY 0x00000314U #define SD_OTAPDLY 0x00000318U @@ -1151,8 +1174,18 @@ extern "C" { * u16 XSdPs_ReadReg(u32 BaseAddress. int RegOffset) * ******************************************************************************/ -#define XSdPs_ReadReg16(BaseAddress, RegOffset) \ - XSdPs_In16((BaseAddress) + (RegOffset)) +static INLINE u16 XSdPs_ReadReg16(u32 BaseAddress, u8 RegOffset) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg >>= ((RegOffset & 0x3)*8); + return (u16)Reg; +#else + return XSdPs_In16((BaseAddress) + (RegOffset)); +#endif +} /***************************************************************************/ /** @@ -1170,8 +1203,20 @@ extern "C" { * u16 RegisterValue) * ******************************************************************************/ -#define XSdPs_WriteReg16(BaseAddress, RegOffset, RegisterValue) \ - XSdPs_Out16((BaseAddress) + (RegOffset), (RegisterValue)) + +static INLINE void XSdPs_WriteReg16(u32 BaseAddress, u8 RegOffset, u16 RegisterValue) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg &= ~(0xFFFF<<((RegOffset & 0x3)*8)); + Reg |= RegisterValue <<((RegOffset & 0x3)*8); + XSdPs_Out32(BaseAddress, Reg); +#else + XSdPs_Out16((BaseAddress) + (RegOffset), (RegisterValue)); +#endif +} /****************************************************************************/ /** @@ -1187,9 +1232,18 @@ extern "C" { * u8 XSdPs_ReadReg(u32 BaseAddress. int RegOffset) * ******************************************************************************/ -#define XSdPs_ReadReg8(BaseAddress, RegOffset) \ - XSdPs_In8((BaseAddress) + (RegOffset)) - +static INLINE u8 XSdPs_ReadReg8(u32 BaseAddress, u8 RegOffset) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg >>= ((RegOffset & 0x3)*8); + return (u8)Reg; +#else + return XSdPs_In8((BaseAddress) + (RegOffset)); +#endif +} /***************************************************************************/ /** * Write to a register. @@ -1206,9 +1260,19 @@ extern "C" { * u8 RegisterValue) * ******************************************************************************/ -#define XSdPs_WriteReg8(BaseAddress, RegOffset, RegisterValue) \ - XSdPs_Out8((BaseAddress) + (RegOffset), (RegisterValue)) - +static INLINE void XSdPs_WriteReg8(u32 BaseAddress, u8 RegOffset, u8 RegisterValue) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg &= ~(0xFF<<((RegOffset & 0x3)*8)); + Reg |= RegisterValue <<((RegOffset & 0x3)*8); + XSdPs_Out32(BaseAddress, Reg); +#else + XSdPs_Out8((BaseAddress) + (RegOffset), (RegisterValue)); +#endif +} /***************************************************************************/ /** * Macro to get present status register diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_options.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_options.c similarity index 77% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_options.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_options.c index 7dbc772f3..bcd7c689b 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_options.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_options.c @@ -33,7 +33,7 @@ /** * * @file xsdps_options.c -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * Contains API's for changing the various options in host and card. @@ -63,6 +63,18 @@ * 3.1 mi 09/07/16 Removed compilation warnings with extra compiler flags. * sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. * sk 11/16/16 Issue DLL reset at 31 iteration to load new zero value. +* 3.2 sk 02/01/17 Added HSD and DDR mode support for eMMC. +* sk 02/01/17 Consider bus width parameter from design for switching +* vns 02/09/17 Added ARMA53_32 support for ZynqMP CR#968397 +* vns 03/13/17 Fixed MISRAC mandatory violation +* sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 07/25/17 Removed SD0_OTAPDLYENA and SD1_OTAPDLYENA bits +* mn 08/07/17 Properly set OTAPDLY value by clearing previous bit +* settings +* mn 08/17/17 Added CCI support for A53 and disabled data cache +* operations when it is enabled. +* mn 08/22/17 Updated for Word Access System support +* 3.4 mn 01/22/18 Separated out SDR104 and HS200 clock defines * * * @@ -71,7 +83,9 @@ /***************************** Include Files *********************************/ #include "xsdps.h" #include "sleep.h" - +#if defined (__aarch64__) +#include "xil_smc.h" +#endif /************************** Constant Definitions *****************************/ #define UHS_SDR12_SUPPORT 0x1U #define UHS_SDR25_SUPPORT 0x2U @@ -86,14 +100,14 @@ s32 XSdPs_CmdTransfer(XSdPs *InstancePtr, u32 Cmd, u32 Arg, u32 BlkCnt); void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff); static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr); -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode); static void XSdPs_sdr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); -static void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); void XSdPs_SetTapDelay(XSdPs *InstancePtr); static void XSdPs_DllReset(XSdPs *InstancePtr); #endif +extern u16 TransferMode; /*****************************************************************************/ /** * Update Block size for read/write operations. @@ -193,11 +207,11 @@ s32 XSdPs_Get_BusWidth(XSdPs *InstancePtr, u8 *SCR) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, SCR); - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; - Xil_DCacheInvalidateRange((INTPTR)SCR, 8); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)SCR, 8); + } Status = XSdPs_CmdTransfer(InstancePtr, ACMD51, 0U, BlkCnt); if (Status != XST_SUCCESS) { @@ -261,6 +275,16 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); + /* + * check for bus width for 3.0 controller and return if + * bus width is <4 + */ + if ((InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) && + (InstancePtr->Config.BusWidth < XSDPS_WIDTH_4)) { + Status = XST_SUCCESS; + goto RETURN_PATH; + } + if (InstancePtr->CardType == XSDPS_CARD_SD) { Status = XSdPs_CmdTransfer(InstancePtr, CMD55, InstancePtr->RelCardAddr, @@ -282,7 +306,8 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) } else { if ((InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) - && (InstancePtr->CardType == XSDPS_CHIP_EMMC)) { + && (InstancePtr->CardType == XSDPS_CHIP_EMMC) && + (InstancePtr->Config.BusWidth == XSDPS_WIDTH_8)) { /* in case of eMMC data width 8-bit */ InstancePtr->BusWidth = XSDPS_8_BIT_WIDTH; } else { @@ -290,9 +315,15 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) } if (InstancePtr->BusWidth == XSDPS_8_BIT_WIDTH) { - Arg = XSDPS_MMC_8_BIT_BUS_ARG; + if (InstancePtr->Mode == XSDPS_DDR52_MODE) + Arg = XSDPS_MMC_DDR_8_BIT_BUS_ARG; + else + Arg = XSDPS_MMC_8_BIT_BUS_ARG; } else { - Arg = XSDPS_MMC_4_BIT_BUS_ARG; + if (InstancePtr->Mode == XSDPS_DDR52_MODE) + Arg = XSDPS_MMC_DDR_4_BIT_BUS_ARG; + else + Arg = XSDPS_MMC_4_BIT_BUS_ARG; } Status = XSdPs_CmdTransfer(InstancePtr, CMD6, Arg, 0U); @@ -336,6 +367,15 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) XSDPS_HOST_CTRL1_OFFSET, (u8)StatusReg); + if (InstancePtr->Mode == XSDPS_DDR52_MODE) { + StatusReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + StatusReg &= (u16)(~XSDPS_HC2_UHS_MODE_MASK); + StatusReg |= InstancePtr->Mode; + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET, StatusReg); + } + Status = (s32)XSdPs_ReadReg(InstancePtr->Config.BaseAddress, XSDPS_RESP0_OFFSET); @@ -387,13 +427,13 @@ s32 XSdPs_Get_BusSpeed(XSdPs *InstancePtr, u8 *ReadBuff) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; Arg = XSDPS_SWITCH_CMD_HS_GET; - Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 64); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 64); + } Status = XSdPs_CmdTransfer(InstancePtr, CMD6, Arg, 1U); if (Status != XST_SUCCESS) { @@ -454,7 +494,7 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) u32 Arg; u16 BlkCnt; u16 BlkSize; - u8 ReadBuff[64]; + u8 ReadBuff[64] = {0U}; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); @@ -469,11 +509,11 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; Arg = XSDPS_SWITCH_CMD_HS_SET; @@ -553,7 +593,16 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) goto RETURN_PATH; } } else { - Arg = XSDPS_MMC_HS200_ARG; + if (InstancePtr->Mode == XSDPS_HS200_MODE) { + Arg = XSDPS_MMC_HS200_ARG; + InstancePtr->BusSpeed = XSDPS_MMC_HS200_MAX_CLK; + } else if (InstancePtr->Mode == XSDPS_DDR52_MODE) { + Arg = XSDPS_MMC_HIGH_SPEED_ARG; + InstancePtr->BusSpeed = XSDPS_MMC_DDR_MAX_CLK; + } else { + Arg = XSDPS_MMC_HIGH_SPEED_ARG; + InstancePtr->BusSpeed = XSDPS_MMC_HSD_MAX_CLK; + } Status = XSdPs_CmdTransfer(InstancePtr, CMD6, Arg, 0U); if (Status != XST_SUCCESS) { @@ -585,18 +634,18 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_NORM_INTR_STS_OFFSET, XSDPS_INTR_TC_MASK); - /* Change the clock frequency to 200 MHz */ - InstancePtr->BusSpeed = XSDPS_MMC_HS200_MAX_CLK; - Status = XSdPs_Change_ClkFreq(InstancePtr, InstancePtr->BusSpeed); if (Status != XST_SUCCESS) { Status = XST_FAILURE; goto RETURN_PATH; } - Status = XSdPs_Execute_Tuning(InstancePtr); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + + if (InstancePtr->Mode == XSDPS_HS200_MODE) { + Status = XSdPs_Execute_Tuning(InstancePtr); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } } @@ -654,7 +703,7 @@ s32 XSdPs_Change_ClkFreq(XSdPs *InstancePtr, u32 SelFreq) XSDPS_CLK_CTRL_OFFSET, ClockReg); if (InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) { -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) if ((InstancePtr->Mode != XSDPS_DEFAULT_SPEED_MODE) && (InstancePtr->Mode != XSDPS_UHS_SPEED_MODE_SDR12)) /* Program the Tap delays */ @@ -823,12 +872,11 @@ s32 XSdPs_Get_Mmc_ExtCsd(XSdPs *InstancePtr, u8 *ReadBuff) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 512U); - - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 512U); + } + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; /* Send SEND_EXT_CSD command */ Status = XSdPs_CmdTransfer(InstancePtr, CMD8, Arg, 1U); @@ -927,7 +975,7 @@ s32 XSdPs_Set_Mmc_ExtCsd(XSdPs *InstancePtr, u32 Arg) } -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) /*****************************************************************************/ /** * @@ -950,7 +998,7 @@ void XSdPs_Identify_UhsMode(XSdPs *InstancePtr, u8 *ReadBuff) Xil_AssertVoid(InstancePtr != NULL); if (((ReadBuff[13] & UHS_SDR104_SUPPORT) != 0U) && - (InstancePtr->Config.InputClockHz >= XSDPS_MMC_HS200_MAX_CLK)) { + (InstancePtr->Config.InputClockHz >= XSDPS_SD_INPUT_MAX_CLK)) { InstancePtr->Mode = XSDPS_UHS_SPEED_MODE_SDR104; InstancePtr->Config_TapDelay = XSdPs_sdr104_hs200_tapdelay; } @@ -997,7 +1045,7 @@ s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode) u32 Arg; u16 BlkCnt; u16 BlkSize; - u8 ReadBuff[64]; + u8 ReadBuff[64] = {0U}; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); @@ -1013,10 +1061,11 @@ s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; switch (Mode) { case 0U: @@ -1125,8 +1174,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_BLK_SIZE_OFFSET, BlkSize); - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK; CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET); @@ -1141,7 +1189,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) /* Wait for ~60 clock cycles to reset the tap values */ (void)usleep(1U); -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) /* Issue DLL Reset to load new SDHC tuned tap values */ XSdPs_DllReset(InstancePtr); #endif @@ -1165,7 +1213,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) } if (TuningCount == 31) { -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) /* Issue DLL Reset to load new SDHC tuned tap values */ XSdPs_DllReset(InstancePtr); #endif @@ -1181,7 +1229,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) /* Wait for ~12 clock cycles to synchronize the new tap values */ (void)usleep(1U); -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) /* Issue DLL Reset to load new SDHC tuned tap values */ XSdPs_DllReset(InstancePtr); #endif @@ -1192,7 +1240,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) } -#if defined (ARMR5) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) /*****************************************************************************/ /** * @@ -1213,25 +1261,48 @@ void XSdPs_sdr104_hs200_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) #ifdef XPAR_PSU_SD_0_DEVICE_ID if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + if (Bank == 2) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_HS200_B2, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_HS200_B0, 0, 0, 0, 0, 0); +#else /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD0_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; if (Bank == 2) TapDelay |= SD0_OTAPDLYSEL_HS200_B2; else TapDelay |= SD0_OTAPDLYSEL_HS200_B0; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif } else { #endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + if (Bank == 2) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_HS200_B2, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_HS200_B0, 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD1_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; if (Bank == 2) TapDelay |= SD1_OTAPDLYSEL_HS200_B2; else TapDelay |= SD1_OTAPDLYSEL_HS200_B0; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif #ifdef XPAR_PSU_SD_0_DEVICE_ID } #endif @@ -1258,19 +1329,32 @@ void XSdPs_sdr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) #ifdef XPAR_PSU_SD_0_DEVICE_ID if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_OTAPDLY) | + ((u64)SD0_OTAPDLY_SEL_MASK << 32), (u64)SD0_OTAPDLYSEL_SD50, + 0, 0, 0, 0, 0); +#else /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD0_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; TapDelay |= SD0_OTAPDLYSEL_SD50; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif } else { #endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_OTAPDLY) | + ((u64)SD1_OTAPDLY_SEL_MASK << 32), (u64)SD1_OTAPDLYSEL_SD50, + 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD1_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; TapDelay |= SD1_OTAPDLYSEL_SD50; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif #ifdef XPAR_PSU_SD_0_DEVICE_ID } #endif @@ -1296,6 +1380,33 @@ void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) #ifdef XPAR_PSU_SD_0_DEVICE_ID if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)SD0_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPDLYENA << 32), (u64)SD0_ITAPDLYENA, + 0, 0, 0, 0, 0); + if (CardType== XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD0_ITAPDLY_SEL_MASK << 32), + (u64)SD0_ITAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD0_ITAPDLY_SEL_MASK << 32), + (u64)SD0_ITAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); TapDelay |= SD0_ITAPCHGWIN; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); @@ -1311,15 +1422,44 @@ void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD0_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; if (CardType == XSDPS_CARD_SD) TapDelay |= SD0_OTAPDLYSEL_SD_DDR50; else TapDelay |= SD0_OTAPDLYSEL_EMMC_DDR50; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif } else { #endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPCHGWIN << 32), (u64)SD1_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPDLYENA << 32), (u64)SD1_ITAPDLYENA, + 0, 0, 0, 0, 0); + if (CardType== XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD1_ITAPDLY_SEL_MASK << 32), + (u64)SD1_ITAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD1_ITAPDLY_SEL_MASK << 32), + (u64)SD1_ITAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD1_ITAPCHGWIN << 32), + (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID,(u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID,(u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); TapDelay |= SD1_ITAPCHGWIN; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); @@ -1335,13 +1475,13 @@ void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD1_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; if (CardType == XSDPS_CARD_SD) TapDelay |= SD1_OTAPDLYSEL_SD_DDR50; else TapDelay |= SD1_OTAPDLYSEL_EMMC_DDR50; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif #ifdef XPAR_PSU_SD_0_DEVICE_ID } #endif @@ -1367,6 +1507,28 @@ void XSdPs_hsd_sdr25_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) #ifdef XPAR_PSU_SD_0_DEVICE_ID if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)SD0_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPDLYENA << 32), (u64)SD0_ITAPDLYENA, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPDLY_SEL_MASK << 32), (u64)SD0_ITAPDLYSEL_HSD, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_SD_HSD, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_EMMC_HSD, 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); TapDelay |= SD0_ITAPCHGWIN; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); @@ -1379,15 +1541,38 @@ void XSdPs_hsd_sdr25_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD0_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; if (CardType == XSDPS_CARD_SD) TapDelay |= SD0_OTAPDLYSEL_SD_HSD; else TapDelay |= SD0_OTAPDLYSEL_EMMC_HSD; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif } else { #endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPCHGWIN << 32), (u64)SD1_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPDLYENA << 32), (u64)SD1_ITAPDLYENA, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPDLY_SEL_MASK << 32), (u64)SD1_ITAPDLYSEL_HSD, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPCHGWIN << 32), (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_SD_HSD, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_EMMC_HSD, 0, 0, 0, 0, 0); +#else TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); TapDelay |= SD1_ITAPCHGWIN; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); @@ -1400,13 +1585,13 @@ void XSdPs_hsd_sdr25_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); /* Program the OTAPDLY */ TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); - TapDelay |= SD1_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; if (CardType == XSDPS_CARD_SD) TapDelay |= SD1_OTAPDLYSEL_SD_HSD; else TapDelay |= SD1_OTAPDLYSEL_EMMC_HSD; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif #ifdef XPAR_PSU_SD_0_DEVICE_ID } #endif @@ -1434,20 +1619,48 @@ void XSdPs_SetTapDelay(XSdPs *InstancePtr) CardType = InstancePtr->CardType ; #ifdef XPAR_PSU_SD_0_DEVICE_ID if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)SD0_DLL_RST, 0, 0, 0, 0, 0); +#else DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); DllCtrl |= SD0_DLL_RST; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif InstancePtr->Config_TapDelay(BankNum, DeviceId, CardType); +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else DllCtrl &= ~SD0_DLL_RST; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif } else { #endif +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)SD1_DLL_RST, 0, 0, 0, 0, 0); +#else DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); DllCtrl |= SD1_DLL_RST; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif InstancePtr->Config_TapDelay(BankNum, DeviceId, CardType); +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else DllCtrl &= ~SD1_DLL_RST; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif #ifdef XPAR_PSU_SD_0_DEVICE_ID } #endif @@ -1480,11 +1693,26 @@ static void XSdPs_DllReset(XSdPs *InstancePtr) /* Issue DLL Reset to load zero tap values */ DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); if (InstancePtr->Config.DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)SD0_DLL_RST, 0, 0, 0, 0, 0); +#else DllCtrl |= SD0_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif } else { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)SD1_DLL_RST, 0, 0, 0, 0, 0); +#else DllCtrl |= SD1_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif } - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); /* Wait for 2 micro seconds */ (void)usleep(2U); @@ -1492,11 +1720,26 @@ static void XSdPs_DllReset(XSdPs *InstancePtr) /* Release the DLL out of reset */ DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); if (InstancePtr->Config.DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else DllCtrl &= ~SD0_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif } else { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else DllCtrl &= ~SD1_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif } - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); /* Wait for internal clock to stabilize */ ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_sinit.c index e0936b308..b49a0064c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sdps_v3_1/src/xsdps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v3_4/src/xsdps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xsdps_sinit.c -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * The implementation of the XSdPs component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/sleep.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/sleep.h deleted file mode 100644 index 9d0f0ffbf..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/sleep.h +++ /dev/null @@ -1,49 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ - -#ifndef SLEEP_H -#define SLEEP_H - -#include "xil_types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -s32 usleep(u32 useconds); -s32 sleep(u32 seconds); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_io.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_io.c deleted file mode 100644 index de77d6817..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_io.c +++ /dev/null @@ -1,344 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ -/*****************************************************************************/ -/** -* -* @file xil_io.c -* -* Contains I/O functions for memory-mapped or non-memory-mapped I/O -* architectures. These functions encapsulate Cortex A9 architecture-specific -* I/O requirements. -* -* @note -* -* This file contains architecture-dependent code. -* -*

    -* MODIFICATION HISTORY:
    -*
    -* Ver   Who      Date     Changes
    -* ----- -------- -------- -----------------------------------------------
    -* 1.00a ecm/sdm  10/24/09 First release
    -* 3.06a sgd      05/15/12 Pointer volatile used for the all read functions
    -* 3.07a sgd      08/17/12 Removed barriers (SYNCHRONIZE_IO) calls.
    -* 3.09a sgd      02/05/13 Comments cleanup
    -* 
    -******************************************************************************/ - - -/***************************** Include Files *********************************/ -#include "xil_io.h" -#include "xil_types.h" -#include "xil_assert.h" -#include "xpseudo_asm.h" -#include "xreg_cortexa9.h" - -/************************** Constant Definitions *****************************/ - -/**************************** Type Definitions *******************************/ - -/***************** Macros (Inline Functions) Definitions *********************/ - -/************************** Function Prototypes ******************************/ - -/*****************************************************************************/ -/** -* -* Performs an input operation for an 8-bit memory location by reading from the -* specified address and returning the Value read from that address. -* -* @param Addr contains the address to perform the input operation -* at. -* -* @return The Value read from the specified input address. -* -* @note None. -* -******************************************************************************/ -u8 Xil_In8(INTPTR Addr) -{ - return *(volatile u8 *) Addr; -} - -/*****************************************************************************/ -/** -* -* Performs an input operation for a 16-bit memory location by reading from the -* specified address and returning the Value read from that address. -* -* @param Addr contains the address to perform the input operation -* at. -* -* @return The Value read from the specified input address. -* -* @note None. -* -******************************************************************************/ -u16 Xil_In16(INTPTR Addr) -{ - return *(volatile u16 *) Addr; -} - -/*****************************************************************************/ -/** -* -* Performs an input operation for a 32-bit memory location by reading from the -* specified address and returning the Value read from that address. -* -* @param Addr contains the address to perform the input operation -* at. -* -* @return The Value read from the specified input address. -* -* @note None. -* -******************************************************************************/ -u32 Xil_In32(UINTPTR Addr) -{ - return *(volatile u32 *) Addr; -} - -/*****************************************************************************/ -/** -* -* Performs an output operation for an 8-bit memory location by writing the -* specified Value to the the specified address. -* -* @param Addr contains the address to perform the output operation -* at. -* @param Value contains the Value to be output at the specified address. -* -* @return None. -* -* @note None. -* -******************************************************************************/ -void Xil_Out8(INTPTR Addr, u8 Value) -{ - volatile u8 *LocalAddr = (u8 *)Addr; - *LocalAddr = Value; -} - -/*****************************************************************************/ -/** -* -* Performs an output operation for a 16-bit memory location by writing the -* specified Value to the the specified address. -* -* @param Addr contains the address to perform the output operation -* at. -* @param Value contains the Value to be output at the specified address. -* -* @return None. -* -* @note None. -* -******************************************************************************/ -void Xil_Out16(INTPTR Addr, u16 Value) -{ - volatile u16 *LocalAddr = (u16 *)Addr; - *LocalAddr = Value; -} - -/*****************************************************************************/ -/** -* -* Performs an output operation for a 32-bit memory location by writing the -* specified Value to the the specified address. -* -* @param Addr contains the address to perform the output operation -* at. -* @param Value contains the Value to be output at the specified address. -* -* @return None. -* -* @note None. -* -******************************************************************************/ -void Xil_Out32(UINTPTR Addr, u32 Value) -{ - volatile u32 *LocalAddr = (u32 *)Addr; - *LocalAddr = Value; -} - -/*****************************************************************************/ -/** -* -* Performs an input operation for a 16-bit memory location by reading from the -* specified address and returning the byte-swapped Value read from that -* address. -* -* @param Addr contains the address to perform the input operation -* at. -* -* @return The byte-swapped Value read from the specified input address. -* -* @note None. -* -******************************************************************************/ -u16 Xil_In16BE(INTPTR Addr) -{ - u16 temp; - u16 result; - - temp = Xil_In16(Addr); - - result = Xil_EndianSwap16(temp); - - return result; -} - -/*****************************************************************************/ -/** -* -* Performs an input operation for a 32-bit memory location by reading from the -* specified address and returning the byte-swapped Value read from that -* address. -* -* @param Addr contains the address to perform the input operation -* at. -* -* @return The byte-swapped Value read from the specified input address. -* -* @note None. -* -******************************************************************************/ -u32 Xil_In32BE(INTPTR Addr) -{ - u32 temp; - u32 result; - - temp = Xil_In32(Addr); - - result = Xil_EndianSwap32(temp); - - return result; -} - -/*****************************************************************************/ -/** -* -* Performs an output operation for a 16-bit memory location by writing the -* specified Value to the the specified address. The Value is byte-swapped -* before being written. -* -* @param Addr contains the address to perform the output operation -* at. -* @param Value contains the Value to be output at the specified address. -* -* @return None. -* -* @note None. -* -******************************************************************************/ -void Xil_Out16BE(INTPTR Addr, u16 Value) -{ - u16 temp; - - temp = Xil_EndianSwap16(Value); - - Xil_Out16(Addr, temp); -} - -/*****************************************************************************/ -/** -* -* Performs an output operation for a 32-bit memory location by writing the -* specified Value to the the specified address. The Value is byte-swapped -* before being written. -* -* @param Addr contains the address to perform the output operation -* at. -* @param Value contains the Value to be output at the specified address. -* -* @return None. -* -* @note None. -* -******************************************************************************/ -void Xil_Out32BE(INTPTR Addr, u32 Value) -{ - u32 temp; - - temp = Xil_EndianSwap32(Value); - - Xil_Out32(Addr, temp); -} - -/*****************************************************************************/ -/** -* -* Perform a 16-bit endian converion. -* -* @param Data contains the value to be converted. -* -* @return converted value. -* -* @note None. -* -******************************************************************************/ -u16 Xil_EndianSwap16(u16 Data) -{ - return (u16) (((Data & 0xFF00U) >> 8U) | ((Data & 0x00FFU) << 8U)); -} - -/*****************************************************************************/ -/** -* -* Perform a 32-bit endian converion. -* -* @param Data contains the value to be converted. -* -* @return converted value. -* -* @note None. -* -******************************************************************************/ -u32 Xil_EndianSwap32(u32 Data) -{ - u16 LoWord; - u16 HiWord; - - /* get each of the half words from the 32 bit word */ - - LoWord = (u16) (Data & 0x0000FFFFU); - HiWord = (u16) ((Data & 0xFFFF0000U) >> 16U); - - /* byte swap each of the 16 bit half words */ - - LoWord = (((LoWord & 0xFF00U) >> 8U) | ((LoWord & 0x00FFU) << 8U)); - HiWord = (((HiWord & 0xFF00U) >> 8U) | ((HiWord & 0x00FFU) << 8U)); - - /* swap the half words before returning the value */ - - return ((((u32)LoWord) << (u32)16U) | (u32)HiWord); -} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_io.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_io.h deleted file mode 100644 index 9d4f3b3ee..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_io.h +++ /dev/null @@ -1,246 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ -/*****************************************************************************/ -/** -* -* @file xil_io.h -* -* This file contains the interface for the general IO component, which -* encapsulates the Input/Output functions for processors that do not -* require any special I/O handling. -* -* -*
    -* MODIFICATION HISTORY:
    -*
    -* Ver   Who      Date     Changes
    -* ----- -------- -------- -----------------------------------------------
    -* 1.00a ecm/sdm  10/24/09 First release
    -* 1.00a sdm      07/21/10 Added Xil_Htonl/s, Xil_Ntohl/s
    -* 3.07a asa	     08/31/12 Added xil_printf.h include
    -* 3.08a sgd	     11/05/12 Reverted SYNC macros definitions
    -* 
    -******************************************************************************/ - -#ifndef XIL_IO_H /* prevent circular inclusions */ -#define XIL_IO_H /* by using protection macros */ - -#ifdef __cplusplus -extern "C" { -#endif - -/***************************** Include Files *********************************/ - -#include "xil_types.h" -#include "xpseudo_asm.h" -#include "xil_printf.h" - -/************************** Constant Definitions *****************************/ - -/**************************** Type Definitions *******************************/ - -/***************** Macros (Inline Functions) Definitions *********************/ - -#if defined __GNUC__ -# define SYNCHRONIZE_IO dmb() -# define INST_SYNC isb() -# define DATA_SYNC dsb() -#else -# define SYNCHRONIZE_IO -# define INST_SYNC -# define DATA_SYNC -#endif /* __GNUC__ */ - -/*****************************************************************************/ -/** -* -* Perform an big-endian input operation for a 16-bit memory location -* by reading from the specified address and returning the Value read from -* that address. -* -* @param Addr contains the address to perform the input operation at. -* -* @return The Value read from the specified input address with the -* proper endianness. The return Value has the same endianness -* as that of the processor, i.e. if the processor is -* little-engian, the return Value is the byte-swapped Value read -* from the address. -* -* @note None. -* -******************************************************************************/ -#define Xil_In16LE(Addr) Xil_In16((Addr)) - -/*****************************************************************************/ -/** -* -* Perform a big-endian input operation for a 32-bit memory location -* by reading from the specified address and returning the Value read from -* that address. -* -* @param Addr contains the address to perform the input operation at. -* -* @return The Value read from the specified input address with the -* proper endianness. The return Value has the same endianness -* as that of the processor, i.e. if the processor is -* little-engian, the return Value is the byte-swapped Value read -* from the address. -* -* -* @note None. -* -******************************************************************************/ -#define Xil_In32LE(Addr) Xil_In32((Addr)) - -/*****************************************************************************/ -/** -* -* Perform a big-endian output operation for a 16-bit memory location -* by writing the specified Value to the specified address. -* -* @param Addr contains the address to perform the output operation at. -* @param Value contains the Value to be output at the specified address. -* The Value has the same endianness as that of the processor. -* If the processor is little-endian, the byte-swapped Value is -* written to the address. -* -* -* @return None -* -* @note None. -* -******************************************************************************/ -#define Xil_Out16LE(Addr, Value) Xil_Out16((Addr), (Value)) - -/*****************************************************************************/ -/** -* -* Perform a big-endian output operation for a 32-bit memory location -* by writing the specified Value to the specified address. -* -* @param Addr contains the address to perform the output operation at. -* @param Value contains the Value to be output at the specified address. -* The Value has the same endianness as that of the processor. -* If the processor is little-endian, the byte-swapped Value is -* written to the address. -* -* @return None -* -* @note None. -* -******************************************************************************/ -#define Xil_Out32LE(Addr, Value) Xil_Out32((Addr), (Value)) - -/*****************************************************************************/ -/** -* -* Convert a 32-bit number from host byte order to network byte order. -* -* @param Data the 32-bit number to be converted. -* -* @return The converted 32-bit number in network byte order. -* -* @note None. -* -******************************************************************************/ -#define Xil_Htonl(Data) Xil_EndianSwap32((Data)) - -/*****************************************************************************/ -/** -* -* Convert a 16-bit number from host byte order to network byte order. -* -* @param Data the 16-bit number to be converted. -* -* @return The converted 16-bit number in network byte order. -* -* @note None. -* -******************************************************************************/ -#define Xil_Htons(Data) Xil_EndianSwap16((Data)) - -/*****************************************************************************/ -/** -* -* Convert a 32-bit number from network byte order to host byte order. -* -* @param Data the 32-bit number to be converted. -* -* @return The converted 32-bit number in host byte order. -* -* @note None. -* -******************************************************************************/ -#define Xil_Ntohl(Data) Xil_EndianSwap32((Data)) - -/*****************************************************************************/ -/** -* -* Convert a 16-bit number from network byte order to host byte order. -* -* @param Data the 16-bit number to be converted. -* -* @return The converted 16-bit number in host byte order. -* -* @note None. -* -******************************************************************************/ -#define Xil_Ntohs(Data) Xil_EndianSwap16((Data)) - -/************************** Function Prototypes ******************************/ - -/* The following functions allow the software to be transportable across - * processors which may use memory mapped I/O or I/O which is mapped into a - * seperate address space. - */ -u8 Xil_In8(INTPTR Addr); -u16 Xil_In16(INTPTR Addr); -u32 Xil_In32(UINTPTR Addr); - -void Xil_Out8(INTPTR Addr, u8 Value); -void Xil_Out16(INTPTR Addr, u16 Value); -void Xil_Out32(UINTPTR Addr, u32 Value); - - -u16 Xil_In16BE(INTPTR Addr); -u32 Xil_In32BE(INTPTR Addr); -void Xil_Out16BE(INTPTR Addr, u16 Value); -void Xil_Out32BE(INTPTR Addr, u32 Value); - -u16 Xil_EndianSwap16(u16 Data); -u32 Xil_EndianSwap32(u32 Data); - -#ifdef __cplusplus -} -#endif - -#endif /* end of protection macro */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xstatus.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xstatus.h deleted file mode 100644 index 3c8670cb3..000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xstatus.h +++ /dev/null @@ -1,430 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2002 - 2015 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ -/*****************************************************************************/ -/** -* -* @file xstatus.h -* -* This file contains Xilinx software status codes. Status codes have their -* own data type called int. These codes are used throughout the Xilinx -* device drivers. -* -******************************************************************************/ - -#ifndef XSTATUS_H /* prevent circular inclusions */ -#define XSTATUS_H /* by using protection macros */ - -#ifdef __cplusplus -extern "C" { -#endif - -/***************************** Include Files *********************************/ - -#include "xil_types.h" -#include "xil_assert.h" - -/************************** Constant Definitions *****************************/ - -/*********************** Common statuses 0 - 500 *****************************/ - -#define XST_SUCCESS 0L -#define XST_FAILURE 1L -#define XST_DEVICE_NOT_FOUND 2L -#define XST_DEVICE_BLOCK_NOT_FOUND 3L -#define XST_INVALID_VERSION 4L -#define XST_DEVICE_IS_STARTED 5L -#define XST_DEVICE_IS_STOPPED 6L -#define XST_FIFO_ERROR 7L /* an error occurred during an - operation with a FIFO such as - an underrun or overrun, this - error requires the device to - be reset */ -#define XST_RESET_ERROR 8L /* an error occurred which requires - the device to be reset */ -#define XST_DMA_ERROR 9L /* a DMA error occurred, this error - typically requires the device - using the DMA to be reset */ -#define XST_NOT_POLLED 10L /* the device is not configured for - polled mode operation */ -#define XST_FIFO_NO_ROOM 11L /* a FIFO did not have room to put - the specified data into */ -#define XST_BUFFER_TOO_SMALL 12L /* the buffer is not large enough - to hold the expected data */ -#define XST_NO_DATA 13L /* there was no data available */ -#define XST_REGISTER_ERROR 14L /* a register did not contain the - expected value */ -#define XST_INVALID_PARAM 15L /* an invalid parameter was passed - into the function */ -#define XST_NOT_SGDMA 16L /* the device is not configured for - scatter-gather DMA operation */ -#define XST_LOOPBACK_ERROR 17L /* a loopback test failed */ -#define XST_NO_CALLBACK 18L /* a callback has not yet been - registered */ -#define XST_NO_FEATURE 19L /* device is not configured with - the requested feature */ -#define XST_NOT_INTERRUPT 20L /* device is not configured for - interrupt mode operation */ -#define XST_DEVICE_BUSY 21L /* device is busy */ -#define XST_ERROR_COUNT_MAX 22L /* the error counters of a device - have maxed out */ -#define XST_IS_STARTED 23L /* used when part of device is - already started i.e. - sub channel */ -#define XST_IS_STOPPED 24L /* used when part of device is - already stopped i.e. - sub channel */ -#define XST_DATA_LOST 26L /* driver defined error */ -#define XST_RECV_ERROR 27L /* generic receive error */ -#define XST_SEND_ERROR 28L /* generic transmit error */ -#define XST_NOT_ENABLED 29L /* a requested service is not - available because it has not - been enabled */ - -/***************** Utility Component statuses 401 - 500 *********************/ - -#define XST_MEMTEST_FAILED 401L /* memory test failed */ - - -/***************** Common Components statuses 501 - 1000 *********************/ - -/********************* Packet Fifo statuses 501 - 510 ************************/ - -#define XST_PFIFO_LACK_OF_DATA 501L /* not enough data in FIFO */ -#define XST_PFIFO_NO_ROOM 502L /* not enough room in FIFO */ -#define XST_PFIFO_BAD_REG_VALUE 503L /* self test, a register value - was invalid after reset */ -#define XST_PFIFO_ERROR 504L /* generic packet FIFO error */ -#define XST_PFIFO_DEADLOCK 505L /* packet FIFO is reporting - * empty and full simultaneously - */ - -/************************** DMA statuses 511 - 530 ***************************/ - -#define XST_DMA_TRANSFER_ERROR 511L /* self test, DMA transfer - failed */ -#define XST_DMA_RESET_REGISTER_ERROR 512L /* self test, a register value - was invalid after reset */ -#define XST_DMA_SG_LIST_EMPTY 513L /* scatter gather list contains - no buffer descriptors ready - to be processed */ -#define XST_DMA_SG_IS_STARTED 514L /* scatter gather not stopped */ -#define XST_DMA_SG_IS_STOPPED 515L /* scatter gather not running */ -#define XST_DMA_SG_LIST_FULL 517L /* all the buffer desciptors of - the scatter gather list are - being used */ -#define XST_DMA_SG_BD_LOCKED 518L /* the scatter gather buffer - descriptor which is to be - copied over in the scatter - list is locked */ -#define XST_DMA_SG_NOTHING_TO_COMMIT 519L /* no buffer descriptors have been - put into the scatter gather - list to be commited */ -#define XST_DMA_SG_COUNT_EXCEEDED 521L /* the packet count threshold - specified was larger than the - total # of buffer descriptors - in the scatter gather list */ -#define XST_DMA_SG_LIST_EXISTS 522L /* the scatter gather list has - already been created */ -#define XST_DMA_SG_NO_LIST 523L /* no scatter gather list has - been created */ -#define XST_DMA_SG_BD_NOT_COMMITTED 524L /* the buffer descriptor which was - being started was not committed - to the list */ -#define XST_DMA_SG_NO_DATA 525L /* the buffer descriptor to start - has already been used by the - hardware so it can't be reused - */ -#define XST_DMA_SG_LIST_ERROR 526L /* general purpose list access - error */ -#define XST_DMA_BD_ERROR 527L /* general buffer descriptor - error */ - -/************************** IPIF statuses 531 - 550 ***************************/ - -#define XST_IPIF_REG_WIDTH_ERROR 531L /* an invalid register width - was passed into the function */ -#define XST_IPIF_RESET_REGISTER_ERROR 532L /* the value of a register at - reset was not valid */ -#define XST_IPIF_DEVICE_STATUS_ERROR 533L /* a write to the device interrupt - status register did not read - back correctly */ -#define XST_IPIF_DEVICE_ACK_ERROR 534L /* the device interrupt status - register did not reset when - acked */ -#define XST_IPIF_DEVICE_ENABLE_ERROR 535L /* the device interrupt enable - register was not updated when - other registers changed */ -#define XST_IPIF_IP_STATUS_ERROR 536L /* a write to the IP interrupt - status register did not read - back correctly */ -#define XST_IPIF_IP_ACK_ERROR 537L /* the IP interrupt status register - did not reset when acked */ -#define XST_IPIF_IP_ENABLE_ERROR 538L /* IP interrupt enable register was - not updated correctly when other - registers changed */ -#define XST_IPIF_DEVICE_PENDING_ERROR 539L /* The device interrupt pending - register did not indicate the - expected value */ -#define XST_IPIF_DEVICE_ID_ERROR 540L /* The device interrupt ID register - did not indicate the expected - value */ -#define XST_IPIF_ERROR 541L /* generic ipif error */ - -/****************** Device specific statuses 1001 - 4095 *********************/ - -/********************* Ethernet statuses 1001 - 1050 *************************/ - -#define XST_EMAC_MEMORY_SIZE_ERROR 1001L /* Memory space is not big enough - * to hold the minimum number of - * buffers or descriptors */ -#define XST_EMAC_MEMORY_ALLOC_ERROR 1002L /* Memory allocation failed */ -#define XST_EMAC_MII_READ_ERROR 1003L /* MII read error */ -#define XST_EMAC_MII_BUSY 1004L /* An MII operation is in progress */ -#define XST_EMAC_OUT_OF_BUFFERS 1005L /* Driver is out of buffers */ -#define XST_EMAC_PARSE_ERROR 1006L /* Invalid driver init string */ -#define XST_EMAC_COLLISION_ERROR 1007L /* Excess deferral or late - * collision on polled send */ - -/*********************** UART statuses 1051 - 1075 ***************************/ -#define XST_UART - -#define XST_UART_INIT_ERROR 1051L -#define XST_UART_START_ERROR 1052L -#define XST_UART_CONFIG_ERROR 1053L -#define XST_UART_TEST_FAIL 1054L -#define XST_UART_BAUD_ERROR 1055L -#define XST_UART_BAUD_RANGE 1056L - - -/************************ IIC statuses 1076 - 1100 ***************************/ - -#define XST_IIC_SELFTEST_FAILED 1076 /* self test failed */ -#define XST_IIC_BUS_BUSY 1077 /* bus found busy */ -#define XST_IIC_GENERAL_CALL_ADDRESS 1078 /* mastersend attempted with */ - /* general call address */ -#define XST_IIC_STAND_REG_RESET_ERROR 1079 /* A non parameterizable reg */ - /* value after reset not valid */ -#define XST_IIC_TX_FIFO_REG_RESET_ERROR 1080 /* Tx fifo included in design */ - /* value after reset not valid */ -#define XST_IIC_RX_FIFO_REG_RESET_ERROR 1081 /* Rx fifo included in design */ - /* value after reset not valid */ -#define XST_IIC_TBA_REG_RESET_ERROR 1082 /* 10 bit addr incl in design */ - /* value after reset not valid */ -#define XST_IIC_CR_READBACK_ERROR 1083 /* Read of the control register */ - /* didn't return value written */ -#define XST_IIC_DTR_READBACK_ERROR 1084 /* Read of the data Tx reg */ - /* didn't return value written */ -#define XST_IIC_DRR_READBACK_ERROR 1085 /* Read of the data Receive reg */ - /* didn't return value written */ -#define XST_IIC_ADR_READBACK_ERROR 1086 /* Read of the data Tx reg */ - /* didn't return value written */ -#define XST_IIC_TBA_READBACK_ERROR 1087 /* Read of the 10 bit addr reg */ - /* didn't return written value */ -#define XST_IIC_NOT_SLAVE 1088 /* The device isn't a slave */ - -/*********************** ATMC statuses 1101 - 1125 ***************************/ - -#define XST_ATMC_ERROR_COUNT_MAX 1101L /* the error counters in the ATM - controller hit the max value - which requires the statistics - to be cleared */ - -/*********************** Flash statuses 1126 - 1150 **************************/ - -#define XST_FLASH_BUSY 1126L /* Flash is erasing or programming - */ -#define XST_FLASH_READY 1127L /* Flash is ready for commands */ -#define XST_FLASH_ERROR 1128L /* Flash had detected an internal - error. Use XFlash_DeviceControl - to retrieve device specific codes - */ -#define XST_FLASH_ERASE_SUSPENDED 1129L /* Flash is in suspended erase state - */ -#define XST_FLASH_WRITE_SUSPENDED 1130L /* Flash is in suspended write state - */ -#define XST_FLASH_PART_NOT_SUPPORTED 1131L /* Flash type not supported by - driver */ -#define XST_FLASH_NOT_SUPPORTED 1132L /* Operation not supported */ -#define XST_FLASH_TOO_MANY_REGIONS 1133L /* Too many erase regions */ -#define XST_FLASH_TIMEOUT_ERROR 1134L /* Programming or erase operation - aborted due to a timeout */ -#define XST_FLASH_ADDRESS_ERROR 1135L /* Accessed flash outside its - addressible range */ -#define XST_FLASH_ALIGNMENT_ERROR 1136L /* Write alignment error */ -#define XST_FLASH_BLOCKING_CALL_ERROR 1137L /* Couldn't return immediately from - write/erase function with - XFL_NON_BLOCKING_WRITE/ERASE - option cleared */ -#define XST_FLASH_CFI_QUERY_ERROR 1138L /* Failed to query the device */ - -/*********************** SPI statuses 1151 - 1175 ****************************/ - -#define XST_SPI_MODE_FAULT 1151 /* master was selected as slave */ -#define XST_SPI_TRANSFER_DONE 1152 /* data transfer is complete */ -#define XST_SPI_TRANSMIT_UNDERRUN 1153 /* slave underruns transmit register */ -#define XST_SPI_RECEIVE_OVERRUN 1154 /* device overruns receive register */ -#define XST_SPI_NO_SLAVE 1155 /* no slave has been selected yet */ -#define XST_SPI_TOO_MANY_SLAVES 1156 /* more than one slave is being - * selected */ -#define XST_SPI_NOT_MASTER 1157 /* operation is valid only as master */ -#define XST_SPI_SLAVE_ONLY 1158 /* device is configured as slave-only - */ -#define XST_SPI_SLAVE_MODE_FAULT 1159 /* slave was selected while disabled */ -#define XST_SPI_SLAVE_MODE 1160 /* device has been addressed as slave */ -#define XST_SPI_RECEIVE_NOT_EMPTY 1161 /* device received data in slave mode */ - -#define XST_SPI_COMMAND_ERROR 1162 /* unrecognised command - qspi only */ - -/********************** OPB Arbiter statuses 1176 - 1200 *********************/ - -#define XST_OPBARB_INVALID_PRIORITY 1176 /* the priority registers have either - * one master assigned to two or more - * priorities, or one master not - * assigned to any priority - */ -#define XST_OPBARB_NOT_SUSPENDED 1177 /* an attempt was made to modify the - * priority levels without first - * suspending the use of priority - * levels - */ -#define XST_OPBARB_PARK_NOT_ENABLED 1178 /* bus parking by id was enabled but - * bus parking was not enabled - */ -#define XST_OPBARB_NOT_FIXED_PRIORITY 1179 /* the arbiter must be in fixed - * priority mode to allow the - * priorities to be changed - */ - -/************************ Intc statuses 1201 - 1225 **************************/ - -#define XST_INTC_FAIL_SELFTEST 1201 /* self test failed */ -#define XST_INTC_CONNECT_ERROR 1202 /* interrupt already in use */ - -/********************** TmrCtr statuses 1226 - 1250 **************************/ - -#define XST_TMRCTR_TIMER_FAILED 1226 /* self test failed */ - -/********************** WdtTb statuses 1251 - 1275 ***************************/ - -#define XST_WDTTB_TIMER_FAILED 1251L - -/********************** PlbArb statuses 1276 - 1300 **************************/ - -#define XST_PLBARB_FAIL_SELFTEST 1276L - -/********************** Plb2Opb statuses 1301 - 1325 *************************/ - -#define XST_PLB2OPB_FAIL_SELFTEST 1301L - -/********************** Opb2Plb statuses 1326 - 1350 *************************/ - -#define XST_OPB2PLB_FAIL_SELFTEST 1326L - -/********************** SysAce statuses 1351 - 1360 **************************/ - -#define XST_SYSACE_NO_LOCK 1351L /* No MPU lock has been granted */ - -/********************** PCI Bridge statuses 1361 - 1375 **********************/ - -#define XST_PCI_INVALID_ADDRESS 1361L - -/********************** FlexRay constants 1400 - 1409 *************************/ - -#define XST_FR_TX_ERROR 1400 -#define XST_FR_TX_BUSY 1401 -#define XST_FR_BUF_LOCKED 1402 -#define XST_FR_NO_BUF 1403 - -/****************** USB constants 1410 - 1420 *******************************/ - -#define XST_USB_ALREADY_CONFIGURED 1410 -#define XST_USB_BUF_ALIGN_ERROR 1411 -#define XST_USB_NO_DESC_AVAILABLE 1412 -#define XST_USB_BUF_TOO_BIG 1413 -#define XST_USB_NO_BUF 1414 - -/****************** HWICAP constants 1421 - 1429 *****************************/ - -#define XST_HWICAP_WRITE_DONE 1421 - - -/****************** AXI VDMA constants 1430 - 1440 *****************************/ - -#define XST_VDMA_MISMATCH_ERROR 1430 - -/*********************** NAND Flash statuses 1441 - 1459 *********************/ - -#define XST_NAND_BUSY 1441L /* Flash is erasing or - * programming - */ -#define XST_NAND_READY 1442L /* Flash is ready for commands - */ -#define XST_NAND_ERROR 1443L /* Flash had detected an - * internal error. - */ -#define XST_NAND_PART_NOT_SUPPORTED 1444L /* Flash type not supported by - * driver - */ -#define XST_NAND_OPT_NOT_SUPPORTED 1445L /* Operation not supported - */ -#define XST_NAND_TIMEOUT_ERROR 1446L /* Programming or erase - * operation aborted due to a - * timeout - */ -#define XST_NAND_ADDRESS_ERROR 1447L /* Accessed flash outside its - * addressible range - */ -#define XST_NAND_ALIGNMENT_ERROR 1448L /* Write alignment error - */ -#define XST_NAND_PARAM_PAGE_ERROR 1449L /* Failed to read parameter - * page of the device - */ -#define XST_NAND_CACHE_ERROR 1450L /* Flash page buffer error - */ - -#define XST_NAND_WRITE_PROTECTED 1451L /* Flash is write protected - */ - -/**************************** Type Definitions *******************************/ - -typedef s32 XStatus; - -/***************** Macros (Inline Functions) Definitions *********************/ - - -/************************** Function Prototypes ******************************/ - -#ifdef __cplusplus -} -#endif - -#endif /* end of protection macro */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/Makefile similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/Makefile index 1536e1d85..8c079ab32 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/Makefile +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/Makefile @@ -43,10 +43,15 @@ CC_FLAGS = $(subst -pg, -DPROFILING, $(COMPILER_FLAGS)) ECC_FLAGS = $(subst -pg, -DPROFILING, $(EXTRA_COMPILER_FLAGS)) ifeq (($(notdir $(CC))) , arm-xilinx-eabi-gcc) +#ECC_FLAGS += -nostartfiles\ +# -march=armv7-a \ +# -mfloat-abi=soft \ +# -mfpu=neon ECC_FLAGS += -nostartfiles\ -march=armv7-a \ -mfloat-abi=soft \ - -mfpu=neon + -mfpu=neongoat + endif ifeq (($(notdir $(CC))) , arm-none-eabi-gcc) @@ -58,7 +63,8 @@ INCLUDEDIR=../../../include INCLUDES=-I./. -I${INCLUDEDIR} OUTS = *.o - +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) +ASSEMBLY_OBJECTS = $(addsuffix .o, $(basename $(wildcard *.S))) INCLUDEFILES=*.h libs: $(LIBS) @@ -81,5 +87,6 @@ profile_includes: $(MAKE) -C profile COMPILER_FLAGS="$(COMPILER_FLAGS)" EXTRA_COMPILER_FLAGS="$(EXTRA_COMPILER_FLAGS)" COMPILER="$(CC)" ARCHIVER="$(AR)" include clean: - rm -rf ${OUTS} + rm -rf ${OBJECTS} + rm -rf ${ASSEMBLY_OBJECTS} $(MAKE) -C profile COMPILER_FLAGS="$(COMPILER_FLAGS)" EXTRA_COMPILER_FLAGS="$(EXTRA_COMPILER_FLAGS)" COMPILER="$(CC)" ARCHIVER="$(AR)" clean diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/_exit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/_exit.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/_exit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/_exit.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/_open.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/_open.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/_open.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/_open.c index 9b5a23adf..a108b7716 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/_open.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/_open.c @@ -45,7 +45,7 @@ extern "C" { */ __attribute__((weak)) s32 _open(const char8 *buf, s32 flags, s32 mode) { - (void *)buf; + (void)buf; (void)flags; (void)mode; errno = EIO; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/_sbrk.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/_sbrk.c similarity index 95% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/_sbrk.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/_sbrk.c index 2a069ec06..967bdfc5b 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/_sbrk.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/_sbrk.c @@ -54,15 +54,10 @@ __attribute__((weak)) caddr_t _sbrk ( s32 incr ) } prev_heap = heap; + if (((heap + incr) <= HeapEndPtr) && (prev_heap != NULL)) { heap += incr; - - if (heap > HeapEndPtr){ - Status = (caddr_t) -1; - } - else if (prev_heap != NULL) { Status = (caddr_t) ((void *)prev_heap); - } - else { + } else { Status = (caddr_t) -1; } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/abort.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/abort.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/abort.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/abort.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/asm_vectors.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/asm_vectors.S similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/asm_vectors.S rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/asm_vectors.S diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/boot.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/boot.S similarity index 84% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/boot.S rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/boot.S index 4dafca8b1..5dfe5c2e7 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/boot.S +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/boot.S @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,25 @@ /** * @file boot.S * -* This file contains the initial startup code for the Cortex A9 processor +* @addtogroup a9_boot_code Cortex A9 Processor Boot Code +* @{ +*

    boot.S

    +* The boot code performs minimum configuration which is required for an +* application to run starting from processor's reset state. Below is a +* sequence illustrating what all configuration is performed before control +* reaches to main function. +* +* 1. Program vector table base for exception handling +* 2. Invalidate instruction cache, data cache and TLBs +* 3. Program stack pointer for various modes (IRQ, FIQ, supervisor, undefine, +* abort, system) +* 4. Configure MMU with short descriptor translation table format and program +* base address of translation table +* 5. Enable data cache, instruction cache and MMU +* 6. Enable Floating point unit +* 7. Transfer control to _start which clears BSS sections, initializes +* global timer and runs global constructor before jumping to main +* application * *
     * MODIFICATION HISTORY:
    @@ -62,6 +80,12 @@
     *			 bit in ACTLR. L2Cache invalidation and enabling of L2Cache
     *			 is done later.
     * 5.4   asa     12/6/15  Added code to initialize SPSR for all relevant modes.
    +* 6.0   mus     08/04/16 Added code to detect zynq-7000 base silicon configuration and
    +*                        attempt to enable dual core behavior on single cpu zynq-7000s
    +*                        devices is prevented from corrupting system behavior.
    +* 6.0   mus     08/24/16 Check CPU core before putting cpu1 to reset for single core
    +*                        zynq-7000s devices
    +*
     * 
    * * @note @@ -102,6 +126,8 @@ .set SLCRlockReg, (PSS_SLCR_BASE_ADDR + 0x04) /*(PSS_SLCR_BASE_ADDR + XPSS_SLCR_LOCK_OFFSET)*/ .set SLCRUnlockReg, (PSS_SLCR_BASE_ADDR + 0x08) /*(PSS_SLCR_BASE_ADDR + XPSS_SLCR_UNLOCK_OFFSET)*/ .set SLCRL2cRamReg, (PSS_SLCR_BASE_ADDR + 0xA1C) /*(PSS_SLCR_BASE_ADDR + XPSS_SLCR_L2C_RAM_OFFSET)*/ +.set SLCRCPURSTReg, (0xF8000000 + 0x244) /*(XPS_SYS_CTRL_BASEADDR + A9_CPU_RST_CTRL_OFFSET)*/ +.set EFUSEStaus, (0xF800D000 + 0x10) /*(XPS_EFUSE_BASEADDR + EFUSE_STATUS_OFFSET)*/ /* workaround for simulation not working when L1 D and I caches,MMU and L2 cache enabled - DT568997 */ .if SIM_MODE == 1 @@ -143,23 +169,50 @@ _prestart: _boot: #if XPAR_CPU_ID==0 -/* only allow cpu0 through */ + /* only allow cpu0 through */ mrc p15,0,r1,c0,c0,5 and r1, r1, #0xf - cmp r1, #0 - beq OKToRun -EndlessLoop0: - wfe + cmp r1, #0 + beq CheckEFUSE + EndlessLoop0: + wfe b EndlessLoop0 +CheckEFUSE: + ldr r0,=EFUSEStaus + ldr r1,[r0] /* Read eFuse setting */ + ands r1,r1,#0x80 /* Check whether device is having single core */ + beq OKToRun + + /* single core device, reset cpu1 */ + ldr r0,=SLCRUnlockReg /* Load SLCR base address base + unlock register */ + ldr r1,=SLCRUnlockKey /* set unlock key */ + str r1, [r0] /* Unlock SLCR */ + + ldr r0,=SLCRCPURSTReg + ldr r1,[r0] /* Read CPU Software Reset Control register */ + orr r1,r1,#0x22 + str r1,[r0] /* Reset CPU1 */ + + ldr r0,=SLCRlockReg /* Load SLCR base address base + lock register */ + ldr r1,=SLCRlockKey /* set lock key */ + str r1, [r0] /* lock SLCR */ + #elif XPAR_CPU_ID==1 -/* only allow cpu1 through */ - mrc p15,0,r1,c0,c0,5 - and r1, r1, #0xf - cmp r1, #1 - beq OKToRun -EndlessLoop1: - wfe + /* only allow cpu1 through */ + mrc p15,0,r1,c0,c0,5 + and r1, r1, #0xf + cmp r1, #1 + beq CheckEFUSE1 + b EndlessLoop1 + +CheckEFUSE1: + ldr r0,=EFUSEStaus + ldr r1,[r0] /* Read eFuse setting */ + ands r1,r1,#0x80 /* Check whether device is having single core */ + beq OKToRun + EndlessLoop1: + wfe b EndlessLoop1 #endif @@ -438,3 +491,6 @@ finished: bx lr .end +/** +* @} End of "addtogroup a9_boot_code". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/bspconfig.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/bspconfig.h similarity index 87% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/bspconfig.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/bspconfig.h index 8671e3fbe..9427ad054 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/bspconfig.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/bspconfig.h @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -37,4 +37,9 @@ * *******************************************************************/ +#ifndef BSPCONFIG_H /* prevent circular inclusions */ +#define BSPCONFIG_H /* by using protection macros */ + #define MICROBLAZE_PVR_NONE + +#endif /*end of __BSPCONFIG_H_*/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/changelog.txt b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/changelog.txt similarity index 71% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/changelog.txt rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/changelog.txt index f663af134..64144403a 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/changelog.txt +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/changelog.txt @@ -399,4 +399,141 @@ * ::hsi::utils::handle_stdin and ::hsi::utils::handle_stdout are taken as a base for * these APIs and modifications are done on top of it to handle stdout/stdin * parameters for design which doesnt have UART.It fixes CR#953681 + * 6.1 nsk 11/07/16 Added two new files xil_mem.c and xil_mem.h for xil_memcpy + * 6.2 pkp 12/14/16 Updated cortexa53/64bit/translation_table.S for upper ps DDR. The 0x800000000 - + * 0xFFFFFFFFF range is marked normal memory for the DDR size defined in hdf + * and rest of the memory in that 32GB region is marked as reserved to avoid + * any speculative access + * 6.2 pkp 12/23/16 Added support for floating point operation to Cortex-A53 64bit mode. It modified + * asm_vectors.S to implement lazy floating point context saving i.e. floating point + * access is enabled if there is any floating point operation, it is disabled by + * default. Also FPU is initally disabled for IRQ and none of the floating point + * registers are saved during normal context saving. If IRQ handler does not require + * floating point operation, the floating point registers are untouched and no need + * for saving/restoring. If IRQ handler uses any floating point operation, then floating + * point registers are saved and FPU is enabled for IRQ handler. Then floating point + * registers are restored back after servicing IRQ during normal context restoring. + * 6.2 mus 01/01/17 Updated makefiles of R5 and a53 64 bit/32 bit processors to fix error in clean + * target.It fixes the CR#966900 + * 6.2 pkp 01/22/17 Added support for EL1 non-secure execution and Hypervisor Baremetal for Cortex-A53 + * 64bit Mode. If Hypervisor_guest is selected as true in BSP settings, BSP will be built + * for EL1 Non-secure, else BSP will be built for EL3. By default hypervisor_guest is + * as false i.e. default bsp is EL3. + * 6.2 pkp 01/24/17 Updated cortexa53/64bit/boot.S to clear FPUStatus variable to make sure that it + * contains initial status of FPU i.e. disabled. In case of a warm restart execution + * when bss sections are not cleared, it may contain previously updated value which + * does not hold true once processor resumes. This fixes CR#966826. + * 6.2 asa 01/31/17 The existing Xil_DCacheDisable API first flushes the + * D caches and then disables it. The problem with that is, + * potentially there will be a small window after the cache + * flush operation and before the we disable D caches where + * we might have valid data in cache lines. In such a + * scenario disabling the D cache can lead to unknown behavior. + * The ideal solution to this is to use assembly code for + * the complete API and avoid any memory accesses. But with + * that we will end up having a huge amount on assembly code + * which is not maintainable. Changes are done to use a mix + * of assembly and C code. All local variables are put in + * registers. Also function calls are avoided in the API to + * avoid using stack memory. + * 6.2 mus 02/13/17 A53 CPU cache system can pre-fetch catch lines.So there are + * scenarios when an invalidated cache line can get pre fetched to cache. + * If that happens, the coherency between cache and memory is lost + * resulting in lost data. To avoid this kind of issue either + * user has to use dsb() or disable pre-fetching for L1 cache + * or else reduce maximum number of outstanding data prefetches allowed. + * Using dsb() while comparing data costing more performance compared to + * disabling pre-fetching/reducing maximum number of outstanding data + * prefetches for L1 Cache.The new api Xil_ConfigureL1Prefetch is added + * to disable pre-fetching/configure maximum number of outstanding data + * prefetches allowed in L1 cache system.This fixes CR#967864. + * 6.2 pkp 02/16/17 Added xil_smc.c file to provide a C wrapper for smc calling which can be + * used by cortex-A53 64bit EL1 Non-secure application. + * 6.2 kvn 03/03/17 Added support thumb mode + * 6.2 mus 03/13/17 Fixed MISRA C mandatory standard violations in ARM cortexr5 and cortexa53 BSP. + * It fixes CR#970543 + * 6.2 asa 03/16/17 Fix for CR#970859. For Mcroblaze BSP, when we enable intrusive + * profiling we see a crash. That is because the the tcl uses invalid + * HSI command. This change fixes it. + * 6.2 mus 03/22/17 Updated standalone tcl to generate xparameter XPAR_FPD_IS_CACHE_COHERENT, if + * any FPD peripheral is configured to use CCI.It fixes CR#972638 + * 6.3 mus 03/20/17 Updated cortex-r5 BSP, to add hard floating point support. + * 6.3 mus 04/17/17 Updated Cortex-a53 32 bit BSP boot code to fix bug in + * the HW coherency enablement. It fixes the CR#973287 + * 6.3 mus 04/20/17 Updated Cortex-A53 64 bit BSP boot code, to remove redundant write to the + * L2CTLR_EL1 register. It fixes the CR#974698 + * 6.4 mus 06/08/17 Updated arm/common/xil_exception.c to fix warnings in C level exception handlers + * of ARM 32 bit processor's. + * 6.4 mus 06/14/17 Updated cortexa53/64bit/gcc/asm_vectors.S to fix bug in IRQInterruptHandler code + * snippet, which checks for the FPEN bit of CPACR_EL1 register. + * 6.4 ms 05/23/17 Added PSU_PMU macro in xplatform_info.c, xparameters.h to support + * XGetPSVersion_Info function for PMUFW. + * ms 06/13/17 Added PSU_PMU macro in xplatform_info.c to support XGetPlatform_Info + * function for PMUFW. + * 6.4 mus 07/05/17 Updated Xil_In32BE function in xil_io.h to fix bug.It fixes CR#979740. + * 6.4 mus 07/25/17 Updated a53 32 bit boot code and vectors to support hard floating point + * operations.Now,VFP is being enabled in FPEXC register, through boot code + * and FPU registers are being saved/restored when irq/fiq vector is invoked. + * 6.4 adk 08/01/17 Updated standalone tcl to generate xparameter XPAR_PL_IS_CACHE_COHERENT, + * if h/w design configured with HPC port. + * 6.4 mus 08/10/17 Updated a53 64 bit translation table to mark memory as a outer shareable for + * EL1 NS execution. This change has been done to support CCI enabled IP's. + * 6.4 mus 08/11/17 Updated a53 64 bit boot code to implement ARM erratum 855873.This fixes + * CR#982209. + * 6.4 asa 08/16/17 Made several changes in the R5 MPU handling logic. Added new APIs to + * make RPU MPU handling user-friendly. This also fixes the CR-981028. + * 6.4 mus 08/17/17 Updated XGet_Zynq_UltraMp_Platform_info and XGetPSVersion_Info APIs to read + * version register through SMC call, over EL1 NS mode. This change has been done to + * support these APIs over EL1 NS mode. + * 6.5 mus 10/20/17 Updated standalone.tcl to fix bug in mb_can_handle_exceptions_in_delay_slots proc, + * it fixes CR#987464. + * 6.6 mus 12/07/17 Updated cortexa9/xil_errata.h and cortexa9/xil_cache.c to remove Errata 753970. + * It fixes CR#989132. + * srm 10/18/17 Updated all the sleep routines in a9,a53,R5,microblaze. Now the sleep routines + * will use the timer specified by the user to provide delay. A9 and A53 can use + * Global timer or TTC. R5 can use TTC or the machine cycles. Microblaze can use + * machine cycles or Axi timer. Updated standalone.tcl and standalone.mld files + * to support the sleep configuration Added new API's for the Axi timer in + * microblaze and TTC in ARM. Added two new files, xil_sleeptimer.c and + * xil_sleeptimer.h in ARM for the common sleep routines and 1 new file, + * xil_sleepcommon.c in Standalone-common for sleep/usleep API's. + * 6.6 hk 12/15/17 Export platform macros to bspconfig.h based on the processor. + * 6.6 asa 1/16/18 Ensure C stack information for A9 are flushed out from L1 D cache + * or L2 cache only when the respective caches are enabled. This fixes CR-922023. + * 6.6 mus 01/19/18 Updated asm_vectors.S and boot.S in Cortexa53 64 bit BSP, to add isb + * after writing to cpacr_el1/cptr_el3 registers. It would ensure + * disabling/enabling of floating-point unit, before any subsequent + * instruction. + * 6.6 mus 01/30/18 Updated hypervisor enabled Cortexa53 64 bit BSP, to add xen PV console + * support. Now, xil_printf would use PV console instead of UART in case of + * hypervisor enabled BSP. + * 6.6 mus 02/02/18 Updated get_connected_if proc in standalone tcl to detect the HPC port + * configured with smart interconnect.It fixes CR#990318. + * 6.6 srm 02/10/18 Updated csu_wdt interrupt to the correct value. Fixes CR#992229 + * 6.6 asa 02/12/18 Fix for heap handling for ARM platforms. CR#993932. + * 6.6 mus 02/19/18 Updated standalone.tcl to fix bug in handle_profile_opbtimer proc, + * CR#995014. + * 6.6 mus 02/23/18 Presently Cortex R5 BSP boot code is disabling the debug logic in +* non-JTAG boot mode, when processor is in lockstep configuration. +* This behavior is restricting application debugging in non-JTAG boot +* mode. To get rid of this restriction, added new mld parameter +* "lockstep_mode_debug", to enable/disable debug logic from BSP +* settings. Now, debug logic can be enabled through BSP settings, +* by modifying value of parameter "lockstep_mode_debug" as "true". +* It fixes CR#993896. + * 6.6.mus 02/27/18 Updated Xil_DCacheInvalidateRange and +* Xil_ICacheInvalidateRange APIs in Cortexa53 64 bit BSP, to fix bug +* in handling upper DDR addresses.It fixes CR#995581. +* 6.6 mus 03/12/18 Updated makefile of Cortexa53 32bit BSP to add includes_ps directory +* in the list of include paths. This change allows applications/BSP +* files to include .h files in include_ps directory. +* 6.6 mus 03/16/18 By default CPUACTLR_EL1 is accessible only from EL3, it +* results into abort if accessed from EL1 non secure privilege +* level. Updated Xil_ConfigureL1Prefetch function in Cortexa53 64 bit BSP +* to avoid CPUACTLR_EL1 access from privile levels other than EL3. +* 6.6 mus 03/16/18 Updated hypervisor enabled BSP to use PV console, based on the +* XEN_USE_PV_CONSOLE flag. By deafault hypervisor enabled BSP would +* use UART console, PV console can be enabled by appending + "-DXEN_USE_PV_CONSOLE" to the BSP extra compiler flags. + * *****************************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/close.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/close.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/close.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/close.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/config.make b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/config.make similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/config.make rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/config.make diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/cpu_init.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/cpu_init.S similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/cpu_init.S rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/cpu_init.S diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/errno.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/errno.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/errno.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/errno.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/fcntl.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/fcntl.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/fcntl.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/fcntl.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/fstat.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/fstat.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/fstat.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/fstat.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/getpid.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/getpid.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/getpid.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/getpid.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/inbyte.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/inbyte.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/inbyte.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/inbyte.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/isatty.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/isatty.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/isatty.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/isatty.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/kill.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/kill.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/kill.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/kill.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/lseek.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/lseek.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/lseek.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/lseek.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/open.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/open.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/open.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/open.c index 4b51839fd..85e9ce402 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/open.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/open.c @@ -44,7 +44,7 @@ extern "C" { */ __attribute__((weak)) s32 open(char8 *buf, s32 flags, s32 mode) { - (void *)buf; + (void)buf; (void)flags; (void)mode; errno = EIO; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/outbyte.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/outbyte.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/outbyte.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/outbyte.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/print.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/print.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/print.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/print.c index 74d70ee4a..da7e768d0 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/print.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/print.c @@ -21,6 +21,9 @@ void print(const char8 *ptr) { +#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE + XPVXenConsole_Write(ptr); +#else #ifdef STDOUT_BASEADDRESS while (*ptr != (char8)0) { outbyte (*ptr); @@ -29,4 +32,5 @@ void print(const char8 *ptr) #else (void)ptr; #endif +#endif } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/_profile_clean.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/_profile_clean.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/_profile_clean.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/_profile_clean.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/_profile_init.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/_profile_init.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/_profile_init.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/_profile_init.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/_profile_timer_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/_profile_timer_hw.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/_profile_timer_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/_profile_timer_hw.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/_profile_timer_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/_profile_timer_hw.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/_profile_timer_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/_profile_timer_hw.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/dummy.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/dummy.S similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/dummy.S rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/dummy.S diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/mblaze_nt_types.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/mblaze_nt_types.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/mblaze_nt_types.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/mblaze_nt_types.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_cg.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_cg.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_cg.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_cg.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_config.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_config.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_config.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_config.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_hist.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_hist.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_hist.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_hist.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_mcount_arm.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_mcount_arm.S similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_mcount_arm.S rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_mcount_arm.S diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_mcount_mb.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_mcount_mb.S similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_mcount_mb.S rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_mcount_mb.S diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_mcount_ppc.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_mcount_ppc.S similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/profile/profile_mcount_ppc.S rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/profile/profile_mcount_ppc.S diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/putnum.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/putnum.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/putnum.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/putnum.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/read.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/read.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/read.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/read.c diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/sbrk.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/sbrk.c similarity index 94% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/sbrk.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/sbrk.c index 64d5156af..87a753d49 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/sbrk.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/sbrk.c @@ -51,12 +51,8 @@ __attribute__((weak)) char8 *sbrk (s32 nbytes) static char8 *heap_ptr = HeapBase; base = heap_ptr; - if(heap_ptr != NULL) { + if((heap_ptr != NULL) && (heap_ptr + nbytes <= (char8 *)&HeapLimit + 1)) { heap_ptr += nbytes; - } - -/* if (heap_ptr <= ((char8 *)&_heap_end + 1)) */ - if (heap_ptr <= ((char8 *)&HeapLimit + 1)) { return base; } else { errno = ENOMEM; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/sleep.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/sleep.c similarity index 78% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/sleep.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/sleep.c index fe4707af3..f85743b47 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/sleep.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/sleep.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -42,7 +42,12 @@ * Ver Who Date Changes * ----- -------- -------- ----------------------------------------------- * 1.00a ecm/sdm 11/11/09 First release -* 3.07a sgd 07/05/12 Updated sleep function to make use Global Timer +* 3.07a sgd 07/05/12 Updated sleep function to make use Global +* 6.0 asa 08/15/16 Updated the sleep signature. Fix for CR#956899. +* 6.6 srm 10/18/17 Updated sleep routines to support user configurable +* implementation. Now sleep routines will use Timer +* specified by the user (i.e. Global timer/TTC timer) +* * * ******************************************************************************/ @@ -52,6 +57,10 @@ #include "xtime_l.h" #include "xparameters.h" +#if defined (SLEEP_TIMER_BASEADDR) +#include "xil_sleeptimer.h" +#endif + /*****************************************************************************/ /* * @@ -64,16 +73,20 @@ * @note None. * ****************************************************************************/ -s32 sleep(u32 seconds) +unsigned sleep_A9(unsigned int seconds) { - XTime tEnd, tCur; +#if defined (SLEEP_TIMER_BASEADDR) + Xil_SleepTTCCommon(seconds, COUNTS_PER_SECOND); +#else + XTime tEnd, tCur; - XTime_GetTime(&tCur); - tEnd = tCur + (((XTime) seconds) * COUNTS_PER_SECOND); - do - { - XTime_GetTime(&tCur); - } while (tCur < tEnd); + XTime_GetTime(&tCur); + tEnd = tCur + (((XTime) seconds) * COUNTS_PER_SECOND); + do + { + XTime_GetTime(&tCur); + } while (tCur < tEnd); +#endif return 0; } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/sleep.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/sleep.h new file mode 100644 index 000000000..f53b2d8c8 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/sleep.h @@ -0,0 +1,119 @@ +/****************************************************************************** +* +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ + +/*****************************************************************************/ +/** +* @file sleep.h +* +* This header file contains ARM Cortex A53,A9,R5,Microblaze specific sleep +* related APIs. +* +*
    +* MODIFICATION HISTORY :
    +*
    +* Ver   Who  Date	 Changes
    +* ----- ---- -------- -------------------------------------------------------
    +* 6.6   srm  11/02/17 Added processor specific sleep rountines
    +*								 function prototypes.
    +*
    +* 
    +* +******************************************************************************/ + +#ifndef SLEEP_H +#define SLEEP_H + +#include "xil_types.h" +#include "xil_io.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*****************************************************************************/ +/** +* +* This macro polls an address periodically until a condition is met or till the +* timeout occurs. +* The minimum timeout for calling this macro is 100us. If the timeout is less +* than 100us, it still waits for 100us. Also the unit for the timeout is 100us. +* If the timeout is not a multiple of 100us, it waits for a timeout of +* the next usec value which is a multiple of 100us. +* +* @param IO_func - accessor function to read the register contents. +* Depends on the register width. +* @param ADDR - Address to be polled +* @param VALUE - variable to read the value +* @param COND - Condition to checked (usually involves VALUE) +* @param TIMEOUT_US - timeout in micro seconds +* +* @return 0 - when the condition is met +* -1 - when the condition is not met till the timeout period +* +* @note none +* +*****************************************************************************/ +#define Xil_poll_timeout(IO_func, ADDR, VALUE, COND, TIMEOUT_US) \ + ( { \ + u64 timeout = TIMEOUT_US/100; \ + if(TIMEOUT_US%100!=0) \ + timeout++; \ + for(;;) { \ + VALUE = IO_func(ADDR); \ + if(COND) \ + break; \ + else { \ + usleep(100); \ + timeout--; \ + if(timeout==0) \ + break; \ + } \ + } \ + (timeout>0) ? 0 : -1; \ + } ) + +void usleep(unsigned long useconds); +void sleep(unsigned int seconds); +int usleep_R5(unsigned long useconds); +unsigned sleep_R5(unsigned int seconds); +int usleep_MB(unsigned long useconds); +unsigned sleep_MB(unsigned int seconds); +int usleep_A53(unsigned long useconds); +unsigned sleep_A53(unsigned int seconds); +int usleep_A9(unsigned long useconds); +unsigned sleep_A9(unsigned int seconds); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/smc.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/smc.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/smc.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/smc.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/translation_table.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/translation_table.S similarity index 72% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/translation_table.S rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/translation_table.S index 6aeca4cf9..ade44de2b 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/translation_table.S +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/translation_table.S @@ -33,8 +33,42 @@ /** * @file translation_table.s * -* This file contains the initialization for the MMU table in RAM -* needed by the Cortex A9 processor +* @addtogroup a9_boot_code +* @{ +*

    translation_table.S

    +* translation_table.S contains a static page table required by MMU for +* cortex-A9. This translation table is flat mapped (input address = output +* address) with default memory attributes defined for zynq architecture. It +* utilizes short descriptor translation table format with each section defining +* 1MB of memory. +* +* The overview of translation table memory attributes is described below. +* +*| | Memory Range | Definition in Translation Table | +*|-----------------------|-------------------------|-----------------------------------| +*| DDR | 0x00000000 - 0x3FFFFFFF | Normal write-back Cacheable | +*| PL | 0x40000000 - 0xBFFFFFFF | Strongly Ordered | +*| Reserved | 0xC0000000 - 0xDFFFFFFF | Unassigned | +*| Memory mapped devices | 0xE0000000 - 0xE02FFFFF | Device Memory | +*| Reserved | 0xE0300000 - 0xE0FFFFFF | Unassigned | +*| NAND, NOR | 0xE1000000 - 0xE3FFFFFF | Device memory | +*| SRAM | 0xE4000000 - 0xE5FFFFFF | Normal write-back Cacheable | +*| Reserved | 0xE6000000 - 0xF7FFFFFF | Unassigned | +*| AMBA APB Peripherals | 0xF8000000 - 0xF8FFFFFF | Device Memory | +*| Reserved | 0xF9000000 - 0xFBFFFFFF | Unassigned | +*| Linear QSPI - XIP | 0xFC000000 - 0xFDFFFFFF | Normal write-through cacheable | +*| Reserved | 0xFE000000 - 0xFFEFFFFF | Unassigned | +*| OCM | 0xFFF00000 - 0xFFFFFFFF | Normal inner write-back cacheable | +* +* @note +* +* For region 0x00000000 - 0x3FFFFFFF, a system where DDR is less than 1GB, +* region after DDR and before PL is marked as undefined/reserved in translation +* table. In 0xF8000000 - 0xF8FFFFFF, 0xF8000C00 - 0xF8000FFF, 0xF8010000 - +* 0xF88FFFFF and 0xF8F03000 to 0xF8FFFFFF are reserved but due to granual size +* of 1MB, it is not possible to define separate regions for them. For region +* 0xFFF00000 - 0xFFFFFFFF, 0xFFF00000 to 0xFFFB0000 is reserved but due to 1MB +* granual size, it is not possible to define separate region for it * *
     * MODIFICATION HISTORY:
    @@ -54,11 +88,9 @@
     * 5.2	pkp  06/08/2015 put a check for XPAR_PS7_DDR_0_S_AXI_BASEADDR to confirm
     *			if DDR is present or not and accordingly generate the
     *			translation table
    +* 6.1	pkp  07/11/2016 Corrected comments for memory attributes
     * 
    * -* @note -* -* None. * ******************************************************************************/ #include "xparameters.h" @@ -101,12 +133,12 @@ MMUTable: .rept 0x0400 /* 0x40000000 - 0x7fffffff (FPGA slave0) */ -.word SECT + 0xc02 /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b0, B=b1 */ +.word SECT + 0xc02 /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b0, B=b0 */ .set SECT, SECT+0x100000 .endr .rept 0x0400 /* 0x80000000 - 0xbfffffff (FPGA slave1) */ -.word SECT + 0xc02 /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b0, B=b1 */ +.word SECT + 0xc02 /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b0, B=b0 */ .set SECT, SECT+0x100000 .endr @@ -166,7 +198,7 @@ MMUTable: .endr .rept 0x0020 /* 0xfc000000 - 0xfdffffff (Linear QSPI - XIP) */ -.word SECT + 0xc0a /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b1, B=b1 */ +.word SECT + 0xc0a /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b1, B=b0 */ .set SECT, SECT+0x100000 .endr @@ -179,10 +211,13 @@ MMUTable: /* 0xfff00000 to 0xfffb0000 is reserved but due to granual size of 1MB, it is not possible to define separate region for it -/* 0xfff00000 - 0xffffffff + 0xfff00000 - 0xffffffff 256K OCM when mapped to high address space inner-cacheable */ .word SECT + 0x4c0e /* S=b0 TEX=b100 AP=b11, Domain=b0, C=b1, B=b1 */ .set SECT, SECT+0x100000 .end +/** +* @} End of "addtogroup a9_boot_code". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/unlink.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/unlink.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/unlink.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/unlink.c index 84e44a47c..d0cc6807b 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/unlink.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/unlink.c @@ -44,7 +44,7 @@ extern "C" { */ __attribute__((weak)) sint32 unlink(char8 *path) { - (void *)path; + (void) path; errno = EIO; return (-1); } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/usleep.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/usleep.c similarity index 81% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/usleep.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/usleep.c index a4b23f2f3..65eea28cf 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/usleep.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/usleep.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -47,6 +47,10 @@ * 4.2 pkp 08/04/14 Removed unimplemented nanosleep routine as it is not * possible to generate timer in nanosecond due to * limited cpu frequency +* 6.0 asa 08/15/16 Updated the usleep signature. Fix for CR#956899. +* 6.6 srm 10/18/17 Updated sleep routines to support user configurable +* implementation. Now sleep routines will use Timer +* specified by the user (i.e. Global timer/TTC timer) * * ******************************************************************************/ @@ -59,8 +63,17 @@ #include "xpseudo_asm.h" #include "xreg_cortexa9.h" +#if defined (SLEEP_TIMER_BASEADDR) +#include "xil_sleeptimer.h" +#endif + +/**************************** Constant Definitions ************************/ +#if defined (SLEEP_TIMER_BASEADDR) +#define COUNTS_PER_USECOND (SLEEP_TIMER_FREQUENCY / 1000000) +#else /* Global Timer is always clocked at half of the CPU frequency */ #define COUNTS_PER_USECOND (XPAR_CPU_CORTEXA9_CORE_CLOCK_FREQ_HZ / (2U*1000000U)) +#endif /*****************************************************************************/ /** @@ -75,8 +88,11 @@ * @note None. * ****************************************************************************/ -s32 usleep(u32 useconds) +int usleep_A9(unsigned long useconds) { +#if defined (SLEEP_TIMER_BASEADDR) + Xil_SleepTTCCommon(useconds, COUNTS_PER_USECOND); +#else XTime tEnd, tCur; XTime_GetTime(&tCur); @@ -85,6 +101,7 @@ s32 usleep(u32 useconds) { XTime_GetTime(&tCur); } while (tCur < tEnd); +#endif return 0; } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/vectors.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/vectors.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/vectors.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/vectors.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/vectors.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/vectors.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/vectors.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/vectors.h diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/write.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/write.c similarity index 93% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/write.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/write.c index aaa879e73..9389f610a 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/write.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/write.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -82,6 +82,14 @@ write (sint32 fd, char8* buf, sint32 nbytes) __attribute__((weak)) sint32 _write (sint32 fd, char8* buf, sint32 nbytes) { +#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE + sint32 length; + + (void)fd; + (void)nbytes; + length = XPVXenConsole_Write(buf); + return length; +#else #ifdef STDOUT_BASEADDRESS s32 i; char8* LocalBuf = buf; @@ -108,5 +116,6 @@ _write (sint32 fd, char8* buf, sint32 nbytes) (void)nbytes; return 0; #endif +#endif } #endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xbasic_types.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xbasic_types.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xbasic_types.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xbasic_types.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xdebug.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xdebug.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xdebug.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xdebug.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xenv.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xenv.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xenv.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xenv.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xenv_standalone.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xenv_standalone.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xenv_standalone.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xenv_standalone.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil-crt0.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil-crt0.S similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil-crt0.S rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil-crt0.S index 64175fef9..6beb6fd15 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil-crt0.S +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil-crt0.S @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -48,6 +48,9 @@ * initialization of uart smc nor and sram * 5.3 pkp 10/07/15 Added support for OpenAMP by not initializing global * timer when USE_AMP flag is defined +* 6.6 srm 10/18/17 Added timer configuration using XTime_StartTTCTimer API. +* Now the TTC instance as specified by the user will be +* started. * * * @note @@ -55,6 +58,7 @@ * None. * ******************************************************************************/ +#include "bspconfig.h" .file "xil-crt0.S" .section ".got2","aw" @@ -113,6 +117,11 @@ _start: mov r0, #0x0 mov r1, #0x0 + /* Reset and start Triple Timer Counter */ + #if defined SLEEP_TIMER_BASEADDR + bl XTime_StartTTCTimer + #endif + #if USE_AMP != 1 bl XTime_SetTime #endif diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_assert.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_assert.c similarity index 83% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_assert.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_assert.c index 3087fe80f..59b3c1c98 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_assert.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_assert.c @@ -82,12 +82,13 @@ static Xil_AssertCallback Xil_AssertCallbackRoutine = NULL; /*****************************************************************************/ /** * -* Implement assert. Currently, it calls a user-defined callback function -* if one has been set. Then, it potentially enters an infinite loop depending -* on the value of the Xil_AssertWait variable. +* @brief Implement assert. Currently, it calls a user-defined callback +* function if one has been set. Then, it potentially enters an +* infinite loop depending on the value of the Xil_AssertWait +* variable. * -* @param file is the name of the filename of the source -* @param line is the linenumber within File +* @param file: filename of the source +* @param line: linenumber within File * * @return None. * @@ -111,10 +112,10 @@ void Xil_Assert(const char8 *File, s32 Line) /*****************************************************************************/ /** * -* Set up a callback function to be invoked when an assert occurs. If there -* was already a callback installed, then it is replaced. +* @brief Set up a callback function to be invoked when an assert occurs. +* If a callback is already installed, then it will be replaced. * -* @param routine is the callback to be invoked when an assert is taken +* @param routine: callback to be invoked when an assert is taken * * @return None. * @@ -129,11 +130,11 @@ void Xil_AssertSetCallback(Xil_AssertCallback Routine) /*****************************************************************************/ /** * -* Null handler function. This follows the XInterruptHandler signature for -* interrupt handlers. It can be used to assign a null handler (a stub) to an -* interrupt controller vector table. +* @brief Null handler function. This follows the XInterruptHandler +* signature for interrupt handlers. It can be used to assign a null +* handler (a stub) to an interrupt controller vector table. * -* @param NullParameter is an arbitrary void pointer and not used. +* @param NullParameter: arbitrary void pointer and not used. * * @return None. * @@ -142,5 +143,5 @@ void Xil_AssertSetCallback(Xil_AssertCallback Routine) ******************************************************************************/ void XNullHandler(void *NullParameter) { - (void *) NullParameter; + (void) NullParameter; } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_assert.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_assert.h similarity index 77% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_assert.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_assert.h index 1e3c17b50..add4124e2 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_assert.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_assert.h @@ -34,8 +34,15 @@ * * @file xil_assert.h * -* This file contains assert related functions. +* @addtogroup common_assert_apis Assert APIs and Macros * +* The xil_assert.h file contains assert related functions and macros. +* Assert APIs/Macros specifies that a application program satisfies certain +* conditions at particular points in its execution. These function can be +* used by application programs to ensure that, application code is satisfying +* certain conditions. +* +* @{ *
     * MODIFICATION HISTORY:
     *
    @@ -83,18 +90,17 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line);
     
     /*****************************************************************************/
     /**
    -* This assert macro is to be used for functions that do not return anything
    -* (void). This in conjunction with the Xil_AssertWait boolean can be used to
    -* accomodate tests so that asserts which fail allow execution to continue.
    +* @brief    This assert macro is to be used for void functions. This in
    +*           conjunction with the Xil_AssertWait boolean can be used to
    +*           accomodate tests so that asserts which fail allow execution to
    +*           continue.
     *
    -* @param    Expression is the expression to evaluate. If it evaluates to
    +* @param    Expression: expression to be evaluated. If it evaluates to
     *           false, the assert occurs.
     *
     * @return   Returns void unless the Xil_AssertWait variable is true, in which
     *           case no return is made and an infinite loop is entered.
     *
    -* @note     None.
    -*
     ******************************************************************************/
     #define Xil_AssertVoid(Expression)                \
     {                                                  \
    @@ -109,17 +115,16 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line);
     
     /*****************************************************************************/
     /**
    -* This assert macro is to be used for functions that do return a value. This in
    -* conjunction with the Xil_AssertWait boolean can be used to accomodate tests
    -* so that asserts which fail allow execution to continue.
    +* @brief    This assert macro is to be used for functions that do return a
    +*           value. This in conjunction with the Xil_AssertWait boolean can be
    +*           used to accomodate tests so that asserts which fail allow execution
    +*           to continue.
     *
    -* @param    Expression is the expression to evaluate. If it evaluates to false,
    +* @param    Expression: expression to be evaluated. If it evaluates to false,
     *           the assert occurs.
     *
     * @return   Returns 0 unless the Xil_AssertWait variable is true, in which
    -* 	    case no return is made and an infinite loop is entered.
    -*
    -* @note     None.
    +* 	        case no return is made and an infinite loop is entered.
     *
     ******************************************************************************/
     #define Xil_AssertNonvoid(Expression)             \
    @@ -135,14 +140,11 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line);
     
     /*****************************************************************************/
     /**
    -* Always assert. This assert macro is to be used for functions that do not
    -* return anything (void). Use for instances where an assert should always
    -* occur.
    +* @brief     Always assert. This assert macro is to be used for void functions.
    +*            Use for instances where an assert should always occur.
     *
    -* @return Returns void unless the Xil_AssertWait variable is true, in which
    -*	  case no return is made and an infinite loop is entered.
    -*
    -* @note   None.
    +* @return    Returns void unless the Xil_AssertWait variable is true, in which
    +*	         case no return is made and an infinite loop is entered.
     *
     ******************************************************************************/
     #define Xil_AssertVoidAlways()                   \
    @@ -154,13 +156,12 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line);
     
     /*****************************************************************************/
     /**
    -* Always assert. This assert macro is to be used for functions that do return
    -* a value. Use for instances where an assert should always occur.
    +* @brief   Always assert. This assert macro is to be used for functions that
    +*          do return a value. Use for instances where an assert should always
    +*          occur.
     *
     * @return Returns void unless the Xil_AssertWait variable is true, in which
    -*	  case no return is made and an infinite loop is entered.
    -*
    -* @note   None.
    +*	      case no return is made and an infinite loop is entered.
     *
     ******************************************************************************/
     #define Xil_AssertNonvoidAlways()                \
    @@ -189,3 +190,6 @@ void Xil_AssertSetCallback(Xil_AssertCallback Routine);
     #endif
     
     #endif	/* end of protection macro */
    +/**
    +* @} End of "addtogroup common_assert_apis".
    +*/
    \ No newline at end of file
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache.c
    similarity index 72%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache.c
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache.c
    index 217767e34..259c3b1f1 100644
    --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache.c
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache.c
    @@ -92,6 +92,12 @@
     * 5.03	 pkp 10/07/15 L2 Cache functionalities are avoided for the OpenAMP slave
     *					  application(when USE_AMP flag is defined for BSP) as master CPU
     *					  would be utilizing L2 cache for its operation
    +* 6.6    mus 12/07/17 Errata 753970 is not applicable for the PL130 cache controller
    +*                     version r0p2, which is present in zynq. So,removed the handling
    +*                     related to same.It fixes CR#989132.
    +* 6.6    asa 16/01/18 Changes made in Xil_L1DCacheInvalidate and Xil_L2CacheInvalidate
    +*					  routines to ensure the stack data flushed only when the respective
    +*					  caches are enabled. This fixes CR-992023.
     *
     * 
    * @@ -162,16 +168,12 @@ static inline void Xil_L2CacheSync(void) static void Xil_L2CacheSync(void) #endif { -#ifdef CONFIG_PL310_ERRATA_753970 - Xil_Out32(XPS_L2CC_BASEADDR + XPS_L2CC_DUMMY_CACHE_SYNC_OFFSET, 0x0U); -#else Xil_Out32(XPS_L2CC_BASEADDR + XPS_L2CC_CACHE_SYNC_OFFSET, 0x0U); -#endif } #endif -/**************************************************************************** -* -* Enable the Data cache. +/****************************************************************************/ +/** +* @brief Enable the Data cache. * * @param None. * @@ -188,9 +190,9 @@ void Xil_DCacheEnable(void) #endif } -/**************************************************************************** -* -* Disable the Data cache. +/****************************************************************************/ +/** +* @brief Disable the Data cache. * * @param None. * @@ -207,9 +209,9 @@ void Xil_DCacheDisable(void) Xil_L1DCacheDisable(); } -/**************************************************************************** -* -* Invalidate the entire Data cache. +/****************************************************************************/ +/** +* @brief Invalidate the entire Data cache. * * @param None. * @@ -232,15 +234,15 @@ void Xil_DCacheInvalidate(void) mtcpsr(currmask); } -/**************************************************************************** +/*****************************************************************************/ +/** +* @brief Invalidate a Data cache line. If the byte specified by the address +* (adr) is cached by the Data cache, the cacheline containing that +* byte is invalidated. If the cacheline is modified (dirty), the +* modified contents are lost and are NOT written to the system memory +* before the line is invalidated. * -* Invalidate a Data cache line. If the byte specified by the address (adr) -* is cached by the Data cache, the cacheline containing that byte is -* invalidated. If the cacheline is modified (dirty), the modified contents -* are lost and are NOT written to system memory before the line is -* invalidated. -* -* @param Address to be flushed. +* @param adr: 32bit address of the data to be flushed. * * @return None. * @@ -261,61 +263,67 @@ void Xil_DCacheInvalidateLine(u32 adr) mtcpsr(currmask); } -/**************************************************************************** + +/*****************************************************************************/ +/** +* @brief Invalidate the Data cache for the given address range. +* If the bytes specified by the address range are cached by the Data +* cache, the cachelines containing those bytes are invalidated. If +* the cachelines are modified (dirty), the modified contents are lost +* and NOT written to the system memory before the lines are +* invalidated. * -* Invalidate the Data cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the modified contents are lost and are NOT -* written to system memory before the line is invalidated. +* In this function, if start address or end address is not aligned to +* cache-line, particular cache-line containing unaligned start or end +* address is flush first and then invalidated the others as +* invalidating the same unaligned cache line may result into loss of +* data. This issue raises few possibilities. * -* In this function, if start address or end address is not aligned to cache-line, -* particular cache-line containing unaligned start or end address is flush first -* and then invalidated the others as invalidating the same unaligned cache line -* may result into loss of data. This issue raises few possibilities. +* If the address to be invalidated is not cache-line aligned, the +* following choices are available: +* 1. Invalidate the cache line when required and do not bother much +* for the side effects. Though it sounds good, it can result in +* hard-to-debug issues. The problem is, if some other variable are +* allocated in the same cache line and had been recently updated +* (in cache), the invalidation would result in loss of data. +* 2. Flush the cache line first. This will ensure that if any other +* variable present in the same cache line and updated recently are +* flushed out to memory. Then it can safely be invalidated. Again it +* sounds good, but this can result in issues. For example, when the +* invalidation happens in a typical ISR (after a DMA transfer has +* updated the memory), then flushing the cache line means, loosing +* data that were updated recently before the ISR got invoked. +* +* Linux prefers the second one. To have uniform implementation +* (across standalone and Linux), the second option is implemented. +* This being the case, follwoing needs to be taken care of: +* 1. Whenever possible, the addresses must be cache line aligned. +* Please nore that, not just start address, even the end address must +* be cache line aligned. If that is taken care of, this will always +* work. +* 2. Avoid situations where invalidation has to be done after the +* data is updated by peripheral/DMA directly into the memory. It is +* not tough to achieve (may be a bit risky). The common use case to +* do invalidation is when a DMA happens. Generally for such use +* cases, buffers can be allocated first and then start the DMA. The +* practice that needs to be followed here is, immediately after +* buffer allocation and before starting the DMA, do the invalidation. +* With this approach, invalidation need not to be done after the DMA +* transfer is over. +* +* This is going to always work if done carefully. +* However, the concern is, there is no guarantee that invalidate has +* not needed to be done after DMA is complete. For example, because +* of some reasons if the first cache line or last cache line +* (assuming the buffer in question comprises of multiple cache lines) +* are brought into cache (between the time it is invalidated and DMA +* completes) because of some speculative prefetching or reading data +* for a variable present in the same cache line, then we will have to +* invalidate the cache after DMA is complete. * * -* If the address to be invalidated is not cache-line aligned, the -* following choices are available: -* 1) Invalidate the cache line when required and do not bother much for the -* side effects. Though it sounds good, it can result in hard-to-debug issues. -* The problem is, if some other variable are allocated in the -* same cache line and had been recently updated (in cache), the invalidation -* would result in loss of data. -* -* 2) Flush the cache line first. This will ensure that if any other variable -* present in the same cache line and updated recently are flushed out to memory. -* Then it can safely be invalidated. Again it sounds good, but this can result -* in issues. For example, when the invalidation happens -* in a typical ISR (after a DMA transfer has updated the memory), then flushing -* the cache line means, loosing data that were updated recently before the ISR -* got invoked. -* -* Linux prefers the second one. To have uniform implementation (across standalone -* and Linux), the second option is implemented. -* This being the case, follwoing needs to be taken care of: -* 1) Whenever possible, the addresses must be cache line aligned. Please nore that, -* not just start address, even the end address must be cache line aligned. If that -* is taken care of, this will always work. -* 2) Avoid situations where invalidation has to be done after the data is updated by -* peripheral/DMA directly into the memory. It is not tough to achieve (may be a bit -* risky). The common use case to do invalidation is when a DMA happens. Generally -* for such use cases, buffers can be allocated first and then start the DMA. The -* practice that needs to be followed here is, immediately after buffer allocation -* and before starting the DMA, do the invalidation. With this approach, invalidation -* need not to be done after the DMA transfer is over. -* -* This is going to always work if done carefully. -* However, the concern is, there is no guarantee that invalidate has not needed to be -* done after DMA is complete. For example, because of some reasons if the first cache -* line or last cache line (assuming the buffer in question comprises of multiple cache -* lines) are brought into cache (between the time it is invalidated and DMA completes) -* because of some speculative prefetching or reading data for a variable present -* in the same cache line, then we will have to invalidate the cache after DMA is complete. -* -* -* @param Start address of range to be invalidated. -* @param Length of range to be invalidated in bytes. +* @param adr: 32bit start address of the range to be invalidated. +* @param len: Length of the range to be invalidated in bytes. * * @return None. * @@ -392,9 +400,9 @@ void Xil_DCacheInvalidateRange(INTPTR adr, u32 len) mtcpsr(currmask); } -/**************************************************************************** -* -* Flush the entire Data cache. +/****************************************************************************/ +/** +* @brief Flush the entire Data cache. * * @param None. * @@ -416,15 +424,16 @@ void Xil_DCacheFlush(void) mtcpsr(currmask); } -/**************************************************************************** + +/****************************************************************************/ +/** +* @brief Flush a Data cache line. If the byte specified by the address (adr) +* is cached by the Data cache, the cacheline containing that byte is +* invalidated. If the cacheline is modified (dirty), the entire +* contents of the cacheline are written to system memory before the +* line is invalidated. * -* Flush a Data cache line. If the byte specified by the address (adr) -* is cached by the Data cache, the cacheline containing that byte is -* invalidated. If the cacheline is modified (dirty), the entire -* contents of the cacheline are written to system memory before the -* line is invalidated. -* -* @param Address to be flushed. +* @param adr: 32bit address of the data to be flushed. * * @return None. * @@ -451,15 +460,16 @@ void Xil_DCacheFlushLine(u32 adr) mtcpsr(currmask); } -/**************************************************************************** -* Flush the Data cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the written to system memory first before the -* before the line is invalidated. +/****************************************************************************/ +/** +* @brief Flush the Data cache for the given address range. +* If the bytes specified by the address range are cached by the +* data cache, the cachelines containing those bytes are invalidated. +* If the cachelines are modified (dirty), they are written to the +* system memory before the lines are invalidated. * -* @param Start address of range to be flushed. -* @param Length of range to be flushed in bytes. +* @param adr: 32bit start address of the range to be flushed. +* @param len: Length of the range to be flushed in bytes. * * @return None. * @@ -506,15 +516,15 @@ void Xil_DCacheFlushRange(INTPTR adr, u32 len) dsb(); mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Store a Data cache line. If the byte specified by the address (adr) +* is cached by the Data cache and the cacheline is modified (dirty), +* the entire contents of the cacheline are written to system memory. +* After the store completes, the cacheline is marked as unmodified +* (not dirty). * -* Store a Data cache line. If the byte specified by the address (adr) -* is cached by the Data cache and the cacheline is modified (dirty), -* the entire contents of the cacheline are written to system memory. -* After the store completes, the cacheline is marked as unmodified -* (not dirty). -* -* @param Address to be stored. +* @param adr: 32bit address of the data to be stored. * * @return None. * @@ -535,9 +545,9 @@ void Xil_DCacheStoreLine(u32 adr) mtcpsr(currmask); } -/**************************************************************************** -* -* Enable the instruction cache. +/***************************************************************************/ +/** +* @brief Enable the instruction cache. * * @param None. * @@ -554,9 +564,9 @@ void Xil_ICacheEnable(void) #endif } -/**************************************************************************** -* -* Disable the instruction cache. +/***************************************************************************/ +/** +* @brief Disable the instruction cache. * * @param None. * @@ -573,9 +583,10 @@ void Xil_ICacheDisable(void) Xil_L1ICacheDisable(); } -/**************************************************************************** -* -* Invalidate the entire instruction cache. + +/****************************************************************************/ +/** +* @brief Invalidate the entire instruction cache. * * @param None. * @@ -598,13 +609,13 @@ void Xil_ICacheInvalidate(void) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate an instruction cache line. If the instruction specified +* by the address is cached by the instruction cache, the cacheline +* containing that instruction is invalidated. * -* Invalidate an instruction cache line. If the instruction specified by the -* parameter adr is cached by the instruction cache, the cacheline containing -* that instruction is invalidated. -* -* @param None. +* @param adr: 32bit address of the instruction to be invalidated. * * @return None. * @@ -624,16 +635,15 @@ void Xil_ICacheInvalidateLine(u32 adr) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate the instruction cache for the given address range. +* If the instructions specified by the address range are cached by +* the instrunction cache, the cachelines containing those +* instructions are invalidated. * -* Invalidate the instruction cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the modified contents are lost and are NOT -* written to system memory before the line is invalidated. -* -* @param Start address of range to be invalidated. -* @param Length of range to be invalidated in bytes. +* @param adr: 32bit start address of the range to be invalidated. +* @param len: Length of the range to be invalidated in bytes. * * @return None. * @@ -687,9 +697,9 @@ void Xil_ICacheInvalidateRange(INTPTR adr, u32 len) mtcpsr(currmask); } -/**************************************************************************** -* -* Enable the level 1 Data cache. +/****************************************************************************/ +/** +* @brief Enable the level 1 Data cache. * * @param None. * @@ -724,9 +734,9 @@ void Xil_L1DCacheEnable(void) mtcp(XREG_CP15_SYS_CONTROL, CtrlReg); } -/**************************************************************************** -* -* Disable the level 1 Data cache. +/***************************************************************************/ +/** +* @brief Disable the level 1 Data cache. * * @param None. * @@ -757,17 +767,17 @@ void Xil_L1DCacheDisable(void) mtcp(XREG_CP15_SYS_CONTROL, CtrlReg); } -/**************************************************************************** -* -* Invalidate the level 1 Data cache. +/****************************************************************************/ +/** +* @brief Invalidate the level 1 Data cache. * * @param None. * * @return None. * * @note In Cortex A9, there is no cp instruction for invalidating -* the whole D-cache. This function invalidates each line by -* set/way. +* the whole D-cache. This function invalidates each line by +* set/way. * ****************************************************************************/ void Xil_L1DCacheInvalidate(void) @@ -779,6 +789,7 @@ void Xil_L1DCacheInvalidate(void) #ifdef __GNUC__ u32 stack_start,stack_end,stack_size; + register u32 CtrlReg; #endif currmask = mfcpsr(); @@ -789,8 +800,15 @@ void Xil_L1DCacheInvalidate(void) stack_start = (u32)&__undef_stack; stack_size=stack_start-stack_end; - /*Flush stack memory to save return address*/ - Xil_DCacheFlushRange(stack_end, stack_size); + /* Check for the cache status. If cache is enabled, then only + * flush stack memory to save return address. If cache is disabled, + * dont flush anything as it might result in flushing stale date into + * memory which is undesirable. + * */ + CtrlReg = mfcp(XREG_CP15_SYS_CONTROL); + if ((CtrlReg & (XREG_CP15_CONTROL_C_BIT)) != 0U) { + Xil_DCacheFlushRange(stack_end, stack_size); + } #endif /* Select cache level 0 and D cache in CSSR */ @@ -847,15 +865,15 @@ void Xil_L1DCacheInvalidate(void) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate a level 1 Data cache line. If the byte specified by the +* address (Addr) is cached by the Data cache, the cacheline +* containing that byte is invalidated. If the cacheline is modified +* (dirty), the modified contents are lost and are NOT written to +* system memory before the line is invalidated. * -* Invalidate a level 1 Data cache line. If the byte specified by the address -* (Addr) is cached by the Data cache, the cacheline containing that byte is -* invalidated. If the cacheline is modified (dirty), the modified contents -* are lost and are NOT written to system memory before the line is -* invalidated. -* -* @param Address to be flushed. +* @param adr: 32bit address of the data to be invalidated. * * @return None. * @@ -871,16 +889,16 @@ void Xil_L1DCacheInvalidateLine(u32 adr) dsb(); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate the level 1 Data cache for the given address range. +* If the bytes specified by the address range are cached by the Data +* cache, the cachelines containing those bytes are invalidated. If the +* cachelines are modified (dirty), the modified contents are lost and +* NOT written to the system memory before the lines are invalidated. * -* Invalidate the level 1 Data cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the modified contents are lost and are NOT -* written to system memory before the line is invalidated. -* -* @param Start address of range to be invalidated. -* @param Length of range to be invalidated in bytes. +* @param adr: 32bit start address of the range to be invalidated. +* @param len: Length of the range to be invalidated in bytes. * * @return None. * @@ -925,16 +943,16 @@ void Xil_L1DCacheInvalidateRange(u32 adr, u32 len) mtcpsr(currmask); } -/**************************************************************************** -* -* Flush the level 1 Data cache. +/****************************************************************************/ +/** +* @brief Flush the level 1 Data cache. * * @param None. * * @return None. * * @note In Cortex A9, there is no cp instruction for flushing -* the whole D-cache. Need to flush each line. +* the whole D-cache. Need to flush each line. * ****************************************************************************/ void Xil_L1DCacheFlush(void) @@ -1003,15 +1021,15 @@ void Xil_L1DCacheFlush(void) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Flush a level 1 Data cache line. If the byte specified by the +* address (adr) is cached by the Data cache, the cacheline containing +* that byte is invalidated. If the cacheline is modified (dirty), the +* entire contents of the cacheline are written to system memory +* before the line is invalidated. * -* Flush a level 1 Data cache line. If the byte specified by the address (adr) -* is cached by the Data cache, the cacheline containing that byte is -* invalidated. If the cacheline is modified (dirty), the entire -* contents of the cacheline are written to system memory before the -* line is invalidated. -* -* @param Address to be flushed. +* @param adr: 32bit address of the data to be flushed. * * @return None. * @@ -1027,15 +1045,16 @@ void Xil_L1DCacheFlushLine(u32 adr) dsb(); } -/**************************************************************************** -* Flush the level 1 Data cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the written to system memory first before the -* before the line is invalidated. +/****************************************************************************/ +/** +* @brief Flush the level 1 Data cache for the given address range. +* If the bytes specified by the address range are cached by the Data +* cache, the cacheline containing those bytes are invalidated. If the +* cachelines are modified (dirty), they are written to system memory +* before the lines are invalidated. * -* @param Start address of range to be flushed. -* @param Length of range to be flushed in bytes. +* @param adr: 32bit start address of the range to be flushed. +* @param len: Length of the range to be flushed in bytes. * * @return None. * @@ -1080,13 +1099,13 @@ void Xil_L1DCacheFlushRange(u32 adr, u32 len) mtcpsr(currmask); } -/**************************************************************************** -* -* Store a level 1 Data cache line. If the byte specified by the address (adr) -* is cached by the Data cache and the cacheline is modified (dirty), -* the entire contents of the cacheline are written to system memory. -* After the store completes, the cacheline is marked as unmodified -* (not dirty). +/****************************************************************************/ +/** +* @brief Store a level 1 Data cache line. If the byte specified by the +* address (adr) is cached by the Data cache and the cacheline is +* modified (dirty), the entire contents of the cacheline are written +* to system memory. After the store completes, the cacheline is +* marked as unmodified (not dirty). * * @param Address to be stored. * @@ -1104,9 +1123,10 @@ void Xil_L1DCacheStoreLine(u32 adr) dsb(); } -/**************************************************************************** -* -* Enable the level 1 instruction cache. + +/****************************************************************************/ +/** +* @brief Enable the level 1 instruction cache. * * @param None. * @@ -1141,9 +1161,9 @@ void Xil_L1ICacheEnable(void) mtcp(XREG_CP15_SYS_CONTROL, CtrlReg); } -/**************************************************************************** -* -* Disable level 1 the instruction cache. +/****************************************************************************/ +/** +* @brief Disable level 1 the instruction cache. * * @param None. * @@ -1175,9 +1195,9 @@ void Xil_L1ICacheDisable(void) mtcp(XREG_CP15_SYS_CONTROL, CtrlReg); } -/**************************************************************************** -* -* Invalidate the entire level 1 instruction cache. +/****************************************************************************/ +/** +* @brief Invalidate the entire level 1 instruction cache. * * @param None. * @@ -1196,13 +1216,13 @@ void Xil_L1ICacheInvalidate(void) dsb(); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate a level 1 instruction cache line. If the instruction +* specified by the address is cached by the instruction cache, the +* cacheline containing that instruction is invalidated. * -* Invalidate a level 1 instruction cache line. If the instruction specified by -* the parameter adr is cached by the instruction cache, the cacheline containing -* that instruction is invalidated. -* -* @param None. +* @param adr: 32bit address of the instruction to be invalidated. * * @return None. * @@ -1218,16 +1238,15 @@ void Xil_L1ICacheInvalidateLine(u32 adr) dsb(); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate the level 1 instruction cache for the given address +* range. If the instrucions specified by the address range are cached +* by the instruction cache, the cacheline containing those bytes are +* invalidated. * -* Invalidate the level 1 instruction cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the modified contents are lost and are NOT -* written to system memory before the line is invalidated. -* -* @param Start address of range to be invalidated. -* @param Length of range to be invalidated in bytes. +* @param adr: 32bit start address of the range to be invalidated. +* @param len: Length of the range to be invalidated in bytes. * * @return None. * @@ -1273,9 +1292,9 @@ void Xil_L1ICacheInvalidateRange(u32 adr, u32 len) } #ifndef USE_AMP -/**************************************************************************** -* -* Enable the L2 cache. +/****************************************************************************/ +/** +* @brief Enable the L2 cache. * * @param None. * @@ -1323,9 +1342,9 @@ void Xil_L2CacheEnable(void) } } -/**************************************************************************** -* -* Disable the L2 cache. +/****************************************************************************/ +/** +* @brief Disable the L2 cache. * * @param None. * @@ -1355,31 +1374,37 @@ void Xil_L2CacheDisable(void) } } -/**************************************************************************** +/*****************************************************************************/ +/** +* @brief Invalidate the entire level 2 cache. * -* Invalidate the L2 cache. If the byte specified by the address (adr) -* is cached by the Data cache, the cacheline containing that byte is -* invalidated. If the cacheline is modified (dirty), the modified contents -* are lost and are NOT written to system memory before the line is -* invalidated. -* -* @param Address to be flushed. +* @param None. * * @return None. * -* @note The bottom 4 bits are set to 0, forced by architecture. +* @note None. * ****************************************************************************/ void Xil_L2CacheInvalidate(void) { #ifdef __GNUC__ u32 stack_start,stack_end,stack_size; + register u32 L2CCReg; stack_end = (u32)&_stack_end; stack_start = (u32)&__undef_stack; stack_size=stack_start-stack_end; + /* Check for the cache status. If cache is enabled, then only + * flush stack memory to save return address. If cache is disabled, + * dont flush anything as it might result in flushing stale date into + * memory which is undesirable. + */ + L2CCReg = Xil_In32(XPS_L2CC_BASEADDR + XPS_L2CC_CNTRL_OFFSET); + if ((L2CCReg & 0x01U) != 0U) { /*Flush stack memory to save return address*/ - Xil_DCacheFlushRange(stack_end, stack_size); + Xil_DCacheFlushRange(stack_end, stack_size); + } + #endif u32 ResultDCache; /* Invalidate the caches */ @@ -1399,15 +1424,15 @@ void Xil_L2CacheInvalidate(void) dsb(); } -/**************************************************************************** +/*****************************************************************************/ +/** +* @brief Invalidate a level 2 cache line. If the byte specified by the +* address (adr) is cached by the Data cache, the cacheline containing +* that byte is invalidated. If the cacheline is modified (dirty), +* the modified contents are lost and are NOT written to system memory +* before the line is invalidated. * -* Invalidate a level 2 cache line. If the byte specified by the address (adr) -* is cached by the Data cache, the cacheline containing that byte is -* invalidated. If the cacheline is modified (dirty), the modified contents -* are lost and are NOT written to system memory before the line is -* invalidated. -* -* @param Address to be flushed. +* @param adr: 32bit address of the data/instruction to be invalidated. * * @return None. * @@ -1421,16 +1446,16 @@ void Xil_L2CacheInvalidateLine(u32 adr) dsb(); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate the level 2 cache for the given address range. +* If the bytes specified by the address range are cached by the L2 +* cache, the cacheline containing those bytes are invalidated. If the +* cachelines are modified (dirty), the modified contents are lost and +* are NOT written to system memory before the lines are invalidated. * -* Invalidate the level 2 cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the modified contents are lost and are NOT -* written to system memory before the line is invalidated. -* -* @param Start address of range to be invalidated. -* @param Length of range to be invalidated in bytes. +* @param adr: 32bit start address of the range to be invalidated. +* @param len: Length of the range to be invalidated in bytes. * * @return None. * @@ -1475,24 +1500,19 @@ void Xil_L2CacheInvalidateRange(u32 adr, u32 len) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Flush the entire level 2 cache. * -* Flush the L2 cache. If the byte specified by the address (adr) -* is cached by the Data cache, the cacheline containing that byte is -* invalidated. If the cacheline is modified (dirty), the entire -* contents of the cacheline are written to system memory before the -* line is invalidated. -* -* @param Address to be flushed. +* @param None. * * @return None. * -* @note The bottom 4 bits are set to 0, forced by architecture. +* @note None. * ****************************************************************************/ void Xil_L2CacheFlush(void) { - u16 L2CCReg; u32 ResultL2Cache; /* Flush the caches */ @@ -1518,15 +1538,15 @@ void Xil_L2CacheFlush(void) dsb(); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Flush a level 2 cache line. If the byte specified by the address +* (adr) is cached by the L2 cache, the cacheline containing that +* byte is invalidated. If the cacheline is modified (dirty), the +* entire contents of the cacheline are written to system memory +* before the line is invalidated. * -* Flush a level 2 cache line. If the byte specified by the address (adr) -* is cached by the Data cache, the cacheline containing that byte is -* invalidated. If the cacheline is modified (dirty), the entire -* contents of the cacheline are written to system memory before the -* line is invalidated. -* -* @param Address to be flushed. +* @param adr: 32bit address of the data/instruction to be flushed. * * @return None. * @@ -1545,15 +1565,16 @@ void Xil_L2CacheFlushLine(u32 adr) dsb(); } -/**************************************************************************** -* Flush the level 2 cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the written to system memory first before the -* before the line is invalidated. +/****************************************************************************/ +/** +* @brief Flush the level 2 cache for the given address range. +* If the bytes specified by the address range are cached by the L2 +* cache, the cacheline containing those bytes are invalidated. If the +* cachelines are modified (dirty), they are written to the system +* memory before the lines are invalidated. * -* @param Start address of range to be flushed. -* @param Length of range to be flushed in bytes. +* @param adr: 32bit start address of the range to be flushed. +* @param len: Length of the range to be flushed in bytes. * * @return None. * @@ -1596,15 +1617,15 @@ void Xil_L2CacheFlushRange(u32 adr, u32 len) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Store a level 2 cache line. If the byte specified by the address +* (adr) is cached by the L2 cache and the cacheline is modified +* (dirty), the entire contents of the cacheline are written to +* system memory. After the store completes, the cacheline is marked +* as unmodified (not dirty). * -* Store a level 2 cache line. If the byte specified by the address (adr) -* is cached by the Data cache and the cacheline is modified (dirty), -* the entire contents of the cacheline are written to system memory. -* After the store completes, the cacheline is marked as unmodified -* (not dirty). -* -* @param Address to be stored. +* @param adr: 32bit address of the data/instruction to be stored. * * @return None. * @@ -1617,4 +1638,4 @@ void Xil_L2CacheStoreLine(u32 adr) /* synchronize the processor */ dsb(); } -#endif \ No newline at end of file +#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache.h similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache.h index 2d9e7fff1..b6614d5f9 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache.h @@ -34,7 +34,14 @@ * * @file xil_cache.h * -* Contains required functions for the ARM cache functionality +* @addtogroup a9_cache_apis Cortex A9 Processor Cache Functions +* +* Cache functions provide access to cache related operations such as flush +* and invalidate for instruction and data caches. It gives option to perform +* the cache operations on a single cacheline, a range of memory and an entire +* cache. +* +* @{ * *
     * MODIFICATION HISTORY:
    @@ -109,3 +116,6 @@ void Xil_ICacheInvalidateRange(INTPTR adr, u32 len);
     #endif
     
     #endif
    +/**
    +* @} End of "addtogroup a9_cache_apis".
    +*/
    \ No newline at end of file
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache_l.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache_l.h
    similarity index 97%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache_l.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache_l.h
    index b291896aa..fa92c6b1c 100644
    --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache_l.h
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache_l.h
    @@ -38,6 +38,8 @@
     * used by xcache.c. This functionality is being made available here for
     * more sophisticated users.
     *
    +* @addtogroup a9_cache_apis
    +* @{
     * 
     * MODIFICATION HISTORY:
     *
    @@ -93,3 +95,6 @@ void Xil_L2CacheStoreLine(u32 adr);
     #endif
     
     #endif
    +/**
    +* @} End of "addtogroup a9_cache_apis".
    +*/
    \ No newline at end of file
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache_vxworks.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache_vxworks.h
    similarity index 100%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_cache_vxworks.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_cache_vxworks.h
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_errata.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_errata.h
    similarity index 77%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_errata.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_errata.h
    index c3870869d..490aebeab 100644
    --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_errata.h
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_errata.h
    @@ -34,8 +34,17 @@
     *
     * @file xil_errata.h
     *
    -* This header file contains Cortex A9 and PL310 Errata definitions.
    +* @addtogroup a9_errata Cortex A9 Processor and pl310 Errata Support
    +* @{
    +* Various ARM errata are handled in the standalone BSP. The implementation for
    +* errata handling follows ARM guidelines and is based on the open source Linux
    +* support for these errata.
     *
    +* @note
    +* The errata handling is enabled by default. To disable handling of all the
    +* errata globally, un-define the macro ENABLE_ARM_ERRATA in xil_errata.h. To
    +* disable errata on a per-erratum basis, un-define relevant macros in
    +* xil_errata.h.
     *
     * 
     * MODIFICATION HISTORY:
    @@ -43,38 +52,45 @@
     * Ver   Who  Date     Changes
     * ----- ---- -------- -----------------------------------------------
     * 1.00a srt  04/18/13 First release
    +* 6.6   mus  12/07/17 Removed errata 753970, It fixes CR#989132.
     * 
    * ******************************************************************************/ #ifndef XIL_ERRATA_H #define XIL_ERRATA_H +/** + * @name errata_definitions + * + * The errata conditions handled in the standalone BSP are listed below + * @{ + */ + #define ENABLE_ARM_ERRATA 1 #ifdef ENABLE_ARM_ERRATA -/* Cortex A9 ARM Errata */ -/* +/** * Errata No: 742230 * Description: DMB operation may be faulty */ #define CONFIG_ARM_ERRATA_742230 1 -/* +/** * Errata No: 743622 * Description: Faulty hazard checking in the Store Buffer may lead - * to data corruption. + * to data corruption. */ #define CONFIG_ARM_ERRATA_743622 1 -/* +/** * Errata No: 775420 * Description: A data cache maintenance operation which aborts, - * might lead to deadlock + * might lead to deadlock */ #define CONFIG_ARM_ERRATA_775420 1 -/* +/** * Errata No: 794073 * Description: Speculative instruction fetches with MMU disabled * might not comply with architectural requirements @@ -82,28 +98,26 @@ #define CONFIG_ARM_ERRATA_794073 1 -/* PL310 L2 Cache Errata */ +/** PL310 L2 Cache Errata */ -/* +/** * Errata No: 588369 * Description: Clean & Invalidate maintenance operations do not - * invalidate clean lines + * invalidate clean lines */ #define CONFIG_PL310_ERRATA_588369 1 -/* +/** * Errata No: 727915 * Description: Background Clean and Invalidate by Way operation * can cause data corruption */ #define CONFIG_PL310_ERRATA_727915 1 -/* - * Errata No: 753970 - * Description: Cache sync operation may be faulty - */ -#define CONFIG_PL310_ERRATA_753970 1 - +/*@}*/ #endif /* ENABLE_ARM_ERRATA */ #endif /* XIL_ERRATA_H */ +/** +* @} End of "addtogroup a9_errata". +*/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_exception.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_exception.c similarity index 85% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_exception.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_exception.c index 66f722d92..4a2f2cfdf 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_exception.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_exception.c @@ -46,6 +46,8 @@ * 6.0 mus 27/07/16 Consolidated exceptions for a53,a9 and r5 * processors and added Xil_UndefinedExceptionHandler * for a53 32 bit and r5 as well. +* 6.4 mus 08/06/17 Updated debug prints to replace %x with the %lx, to +* fix the warnings. *
    * *****************************************************************************/ @@ -122,19 +124,19 @@ u32 UndefinedExceptionAddr; /* Address of instruction causing Undefined *****************************************************************************/ static void Xil_ExceptionNullHandler(void *Data) { - (void *)Data; + (void) Data; DieLoop: goto DieLoop; } /****************************************************************************/ /** -* The function is a common API used to initialize exception handlers across all -* processors supported. For ARM CortexA53,R5,A9, the exception handlers are being -* initialized statically and hence this function does not do anything. -* However, it is still present to avoid any compilation issues in case an -* application uses this API and also to take care of backward compatibility -* issues (in earlier versions of BSPs, this API was being used to initialize -* exception handlers). +* @brief The function is a common API used to initialize exception handlers +* across all supported arm processors. For ARM Cortex-A53, Cortex-R5, +* and Cortex-A9, the exception handlers are being initialized +* statically and this function does not do anything. +* However, it is still present to take care of backward compatibility +* issues (in earlier versions of BSPs, this API was being used to +* initialize exception handlers). * * @param None. * @@ -150,18 +152,15 @@ void Xil_ExceptionInit(void) /*****************************************************************************/ /** -* -* Makes the connection between the Id of the exception source and the -* associated Handler that is to run when the exception is recognized. The -* argument provided in this call as the Data is used as the argument -* for the Handler when it is called. +* @brief Register a handler for a specific exception. This handler is being +* called when the processor encounters the specified exception. * * @param exception_id contains the ID of the exception source and should -* be in the range of 0 to XIL_EXCEPTION_ID_LAST. - See xil_exception_l.h for further information. +* be in the range of 0 to XIL_EXCEPTION_ID_LAST. +* See xil_exception.h for further information. * @param Handler to the Handler for that exception. * @param Data is a reference to Data that will be passed to the -* Handler when it gets called. +* Handler when it gets called. * * @return None. * @@ -179,13 +178,13 @@ void Xil_ExceptionRegisterHandler(u32 Exception_id, /*****************************************************************************/ /** * -* Removes the Handler for a specific exception Id. The stub Handler is then -* registered for this exception Id. +* @brief Removes the Handler for a specific exception Id. The stub Handler +* is then registered for this exception Id. * * @param exception_id contains the ID of the exception source and should -* be in the range of 0 to XIL_EXCEPTION_ID_LAST. -* See xil_exception_l.h for further information. - +* be in the range of 0 to XIL_EXCEPTION_ID_LAST. +* See xil_exception.h for further information. +* * @return None. * * @note None. @@ -214,6 +213,7 @@ void Xil_ExceptionRemoveHandler(u32 Exception_id) ****************************************************************************/ void Xil_SyncAbortHandler(void *CallBackRef){ + (void) CallBackRef; xdbg_printf(XDBG_DEBUG_ERROR, "Synchronous abort \n"); while(1) { ; @@ -234,6 +234,7 @@ void Xil_SyncAbortHandler(void *CallBackRef){ * ****************************************************************************/ void Xil_SErrorAbortHandler(void *CallBackRef){ + (void) CallBackRef; xdbg_printf(XDBG_DEBUG_ERROR, "Synchronous abort \n"); while(1) { ; @@ -241,7 +242,7 @@ void Xil_SErrorAbortHandler(void *CallBackRef){ } #else /*****************************************************************************/ -/** +/* * * Default Data abort handler which prints data fault status register through * which information about data fault can be acquired @@ -255,6 +256,7 @@ void Xil_SErrorAbortHandler(void *CallBackRef){ ****************************************************************************/ void Xil_DataAbortHandler(void *CallBackRef){ + (void) CallBackRef; #ifdef DEBUG u32 FaultStatus; @@ -267,8 +269,8 @@ void Xil_DataAbortHandler(void *CallBackRef){ { volatile register u32 Reg __asm(XREG_CP15_DATA_FAULT_STATUS); FaultStatus = Reg; } #endif - xdbg_printf(XDBG_DEBUG_GENERAL, "Data abort with Data Fault Status Register %x\n",FaultStatus); - xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instrcution causing Data abort %x\n",DataAbortAddr); + xdbg_printf(XDBG_DEBUG_GENERAL, "Data abort with Data Fault Status Register %lx\n",FaultStatus); + xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instruction causing Data abort %lx\n",DataAbortAddr); #endif while(1) { ; @@ -276,7 +278,7 @@ void Xil_DataAbortHandler(void *CallBackRef){ } /*****************************************************************************/ -/** +/* * * Default Prefetch abort handler which prints prefetch fault status register through * which information about instruction prefetch fault can be acquired @@ -289,6 +291,7 @@ void Xil_DataAbortHandler(void *CallBackRef){ * ****************************************************************************/ void Xil_PrefetchAbortHandler(void *CallBackRef){ + (void) CallBackRef; #ifdef DEBUG u32 FaultStatus; @@ -301,15 +304,15 @@ void Xil_PrefetchAbortHandler(void *CallBackRef){ { volatile register u32 Reg __asm(XREG_CP15_INST_FAULT_STATUS); FaultStatus = Reg; } #endif - xdbg_printf(XDBG_DEBUG_GENERAL, "Prefetch abort with Instruction Fault Status Register %x\n",FaultStatus); - xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instrcution causing Prefetch abort %x\n",PrefetchAbortAddr); + xdbg_printf(XDBG_DEBUG_GENERAL, "Prefetch abort with Instruction Fault Status Register %lx\n",FaultStatus); + xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instruction causing Prefetch abort %lx\n",PrefetchAbortAddr); #endif while(1) { ; } } /*****************************************************************************/ -/** +/* * * Default undefined exception handler which prints address of the undefined * instruction if debug prints are enabled @@ -322,8 +325,8 @@ void Xil_PrefetchAbortHandler(void *CallBackRef){ * ****************************************************************************/ void Xil_UndefinedExceptionHandler(void *CallBackRef){ - - xdbg_printf(XDBG_DEBUG_GENERAL, "Address of the undefined instruction %x\n",UndefinedExceptionAddr); + (void) CallBackRef; + xdbg_printf(XDBG_DEBUG_GENERAL, "Address of the undefined instruction %lx\n",UndefinedExceptionAddr); while(1) { ; } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_exception.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_exception.h similarity index 90% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_exception.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_exception.h index 434ef2a6a..ad4822205 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_exception.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_exception.h @@ -38,6 +38,12 @@ * For exception related functions that can be used across all Xilinx supported * processors, please use xil_exception.h. * +* @addtogroup arm_exception_apis ARM Processor Exception Handling +* @{ +* ARM processors specific exception related APIs for cortex A53,A9 and R5 can +* utilized for enabling/disabling IRQ, registering/removing handler for +* exceptions or initializing exception vector table with null handler. +* *
     * MODIFICATION HISTORY:
     *
    @@ -102,14 +108,14 @@ typedef void (*Xil_InterruptHandler)(void *data);
     
     /****************************************************************************/
     /**
    -* Enable Exceptions.
    +* @brief	Enable Exceptions.
     *
    -* @param	Mask for exceptions to be enabled.
    +* @param	Mask: Value for enabling the exceptions.
     *
     * @return	None.
     *
     * @note		If bit is 0, exception is enabled.
    -*		C-Style signature: void Xil_ExceptionEnableMask(Mask)
    +*			C-Style signature: void Xil_ExceptionEnableMask(Mask)
     *
     ******************************************************************************/
     #if defined (__GNUC__) || defined (__ICCARM__)
    @@ -124,7 +130,7 @@ typedef void (*Xil_InterruptHandler)(void *data);
     #endif
     /****************************************************************************/
     /**
    -* Enable the IRQ exception.
    +* @brief	Enable the IRQ exception.
     *
     * @return   None.
     *
    @@ -136,14 +142,14 @@ typedef void (*Xil_InterruptHandler)(void *data);
     
     /****************************************************************************/
     /**
    -* Disable Exceptions.
    +* @brief	Disable Exceptions.
     *
    -* @param	Mask for exceptions to be enabled.
    +* @param	Mask: Value for disabling the exceptions.
     *
     * @return	None.
     *
     * @note		If bit is 1, exception is disabled.
    -*		C-Style signature: Xil_ExceptionDisableMask(Mask)
    +*			C-Style signature: Xil_ExceptionDisableMask(Mask)
     *
     ******************************************************************************/
     #if defined (__GNUC__) || defined (__ICCARM__)
    @@ -171,7 +177,8 @@ typedef void (*Xil_InterruptHandler)(void *data);
     #if !defined (__aarch64__) && !defined (ARMA53_32)
     /****************************************************************************/
     /**
    -* Enable nested interrupts by clearing the I and F bits it CPSR
    +* @brief	Enable nested interrupts by clearing the I and F bits in CPSR. This
    +* 			API is defined for cortex-a9 and cortex-r5.
     *
     * @return   None.
     *
    @@ -197,7 +204,8 @@ typedef void (*Xil_InterruptHandler)(void *data);
     
     /****************************************************************************/
     /**
    -* Disable the nested interrupts by setting the I and F bits.
    +* @brief	Disable the nested interrupts by setting the I and F bits. This API
    +*			is defined for cortex-a9 and cortex-r5.
     *
     * @return   None.
     *
    @@ -243,3 +251,6 @@ extern void Xil_UndefinedExceptionHandler(void *CallBackRef);
     #endif /* __cplusplus */
     
     #endif /* XIL_EXCEPTION_H */
    +/**
    +* @} End of "addtogroup arm_exception_apis".
    +*/
    \ No newline at end of file
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_hal.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_hal.h
    similarity index 100%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_hal.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_hal.h
    diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_io.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_io.c
    similarity index 90%
    rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_io.c
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_io.c
    index 31de05581..90bfc81dc 100644
    --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_io.c
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_io.c
    @@ -35,8 +35,7 @@
     * @file xil_io.c
     *
     * Contains I/O functions for memory-mapped or non-memory-mapped I/O
    -* architectures.  These functions encapsulate Cortex A53 architecture-specific
    -* I/O requirements.
    +* architectures.
     *
     * @note
     *
    @@ -60,13 +59,11 @@
     /*****************************************************************************/
     /**
     *
    -* Perform a 16-bit endian converion.
    +* @brief    Perform a 16-bit endian converion.
     *
    -* @param	Data contains the value to be converted.
    +* @param	Data: 16 bit value to be converted
     *
    -* @return	converted value.
    -*
    -* @note		None.
    +* @return	16 bit Data with converted endianess
     *
     ******************************************************************************/
     u16 Xil_EndianSwap16(u16 Data)
    @@ -77,13 +74,11 @@ u16 Xil_EndianSwap16(u16 Data)
     /*****************************************************************************/
     /**
     *
    -* Perform a 32-bit endian converion.
    +* @brief    Perform a 32-bit endian converion.
     *
    -* @param	Data contains the value to be converted.
    +* @param	Data: 32 bit value to be converted
     *
    -* @return	converted value.
    -*
    -* @note		None.
    +* @return	32 bit data with converted endianess
     *
     ******************************************************************************/
     u32 Xil_EndianSwap32(u32 Data)
    diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_io.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_io.h
    similarity index 74%
    rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_io.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_io.h
    index 06d89dcc3..9c5aa43c7 100644
    --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_io.h
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_io.h
    @@ -34,11 +34,13 @@
     *
     * @file xil_io.h
     *
    -* This file contains the interface for the general IO component, which
    -* encapsulates the Input/Output functions for processors that do not
    +* @addtogroup common_io_interfacing_apis Register IO interfacing APIs
    +*
    +* The xil_io.h file contains the interface for the general I/O component, which
    +* encapsulates the Input/Output functions for the processors that do not
     * require any special I/O handling.
     *
    -*
    +* @{
     * 
     * MODIFICATION HISTORY:
     *
    @@ -71,6 +73,9 @@ extern "C" {
     /************************** Function Prototypes ******************************/
     u16 Xil_EndianSwap16(u16 Data);
     u32 Xil_EndianSwap32(u32 Data);
    +#ifdef ENABLE_SAFETY
    +extern u32 XStl_RegUpdate(u32 RegAddr, u32 RegVal);
    +#endif
     
     /***************** Macros (Inline Functions) Definitions *********************/
     #if defined __GNUC__
    @@ -99,15 +104,14 @@ u32 Xil_EndianSwap32(u32 Data);
     /*****************************************************************************/
     /**
     *
    -* Performs an input operation for an 8-bit memory location by reading from the
    -* specified address and returning the Value read from that address.
    +* @brief    Performs an input operation for a memory location by reading
    +*           from the specified address and returning the 8 bit Value read from
    +*            that address.
     *
    -* @param	Addr contains the address to perform the input operation
    -*		at.
    +* @param	Addr: contains the address to perform the input operation
     *
    -* @return	The Value read from the specified input address.
    -*
    -* @note		None.
    +* @return	The 8 bit Value read from the specified input address.
    +
     *
     ******************************************************************************/
     static INLINE u8 Xil_In8(UINTPTR Addr)
    @@ -118,15 +122,13 @@ static INLINE u8 Xil_In8(UINTPTR Addr)
     /*****************************************************************************/
     /**
     *
    -* Performs an input operation for a 16-bit memory location by reading from the
    -* specified address and returning the Value read from that address.
    +* @brief    Performs an input operation for a memory location by reading from
    +*           the specified address and returning the 16 bit Value read from that
    +*           address.
     *
    -* @param	Addr contains the address to perform the input operation
    -*		at.
    +* @param	Addr: contains the address to perform the input operation
     *
    -* @return	The Value read from the specified input address.
    -*
    -* @note		None.
    +* @return	The 16 bit Value read from the specified input address.
     *
     ******************************************************************************/
     static INLINE u16 Xil_In16(UINTPTR Addr)
    @@ -137,15 +139,13 @@ static INLINE u16 Xil_In16(UINTPTR Addr)
     /*****************************************************************************/
     /**
     *
    -* Performs an input operation for a 32-bit memory location by reading from the
    -* specified address and returning the Value read from that address.
    +* @brief    Performs an input operation for a memory location by
    +*           reading from the specified address and returning the 32 bit Value
    +*           read  from that address.
     *
    -* @param	Addr contains the address to perform the input operation
    -*		at.
    +* @param	Addr: contains the address to perform the input operation
     *
    -* @return	The Value read from the specified input address.
    -*
    -* @note		None.
    +* @return	The 32 bit Value read from the specified input address.
     *
     ******************************************************************************/
     static INLINE u32 Xil_In32(UINTPTR Addr)
    @@ -156,16 +156,13 @@ static INLINE u32 Xil_In32(UINTPTR Addr)
     /*****************************************************************************/
     /**
     *
    -* Performs an input operation for a 64-bit memory location by reading the
    -* specified Value to the the specified address.
    +* @brief     Performs an input operation for a memory location by reading the
    +*            64 bit Value read  from that address.
     *
    -* @param	OutAddress contains the address to perform the output operation
    -*		at.
    -* @param	Value contains the Value to be output at the specified address.
     *
    -* @return	None.
    +* @param	Addr: contains the address to perform the input operation
     *
    -* @note		None.
    +* @return	The 64 bit Value read from the specified input address.
     *
     ******************************************************************************/
     static INLINE u64 Xil_In64(UINTPTR Addr)
    @@ -176,17 +173,15 @@ static INLINE u64 Xil_In64(UINTPTR Addr)
     /*****************************************************************************/
     /**
     *
    -* Performs an output operation for an 8-bit memory location by writing the
    -* specified Value to the the specified address.
    +* @brief    Performs an output operation for an memory location by
    +*           writing the 8 bit Value to the the specified address.
     *
    -* @param	Addr contains the address to perform the output operation
    -*		at.
    -* @param	Value contains the Value to be output at the specified address.
    +* @param	Addr: contains the address to perform the output operation
    +* @param	Value: contains the 8 bit Value to be written at the specified
    +*           address.
     *
     * @return	None.
     *
    -* @note		None.
    -*
     ******************************************************************************/
     static INLINE void Xil_Out8(UINTPTR Addr, u8 Value)
     {
    @@ -197,17 +192,14 @@ static INLINE void Xil_Out8(UINTPTR Addr, u8 Value)
     /*****************************************************************************/
     /**
     *
    -* Performs an output operation for a 16-bit memory location by writing the
    -* specified Value to the the specified address.
    +* @brief    Performs an output operation for a memory location by writing the
    +*            16 bit Value to the the specified address.
     *
     * @param	Addr contains the address to perform the output operation
    -*		at.
    -* @param	Value contains the Value to be output at the specified address.
    +* @param	Value contains the Value to be written at the specified address.
     *
     * @return	None.
     *
    -* @note		None.
    -*
     ******************************************************************************/
     static INLINE void Xil_Out16(UINTPTR Addr, u16 Value)
     {
    @@ -218,38 +210,37 @@ static INLINE void Xil_Out16(UINTPTR Addr, u16 Value)
     /*****************************************************************************/
     /**
     *
    -* Performs an output operation for a 32-bit memory location by writing the
    -* specified Value to the the specified address.
    +* @brief    Performs an output operation for a memory location by writing the
    +*           32 bit Value to the the specified address.
     *
     * @param	Addr contains the address to perform the output operation
    -*		at.
    -* @param	Value contains the Value to be output at the specified address.
    +* @param	Value contains the 32 bit Value to be written at the specified
    +*           address.
     *
     * @return	None.
     *
    -* @note		None.
    -*
     ******************************************************************************/
     static INLINE void Xil_Out32(UINTPTR Addr, u32 Value)
     {
    +#ifndef ENABLE_SAFETY
     	volatile u32 *LocalAddr = (volatile u32 *)Addr;
     	*LocalAddr = Value;
    +#else
    +	XStl_RegUpdate(Addr, Value);
    +#endif
     }
     
     /*****************************************************************************/
     /**
     *
    -* Performs an output operation for a 64-bit memory location by writing the
    -* specified Value to the the specified address.
    +* @brief    Performs an output operation for a memory location by writing the
    +*           64 bit Value to the the specified address.
     *
     * @param	Addr contains the address to perform the output operation
    -*		at.
    -* @param	Value contains the Value to be output at the specified address.
    +* @param	Value contains 64 bit Value to be written at the specified address.
     *
     * @return	None.
     *
    -* @note		None.
    -*
     ******************************************************************************/
     static INLINE void Xil_Out64(UINTPTR Addr, u64 Value)
     {
    @@ -312,7 +303,7 @@ static INLINE u32 Xil_In32LE(UINTPTR Addr)
     static INLINE u32 Xil_In32BE(UINTPTR Addr)
     #endif
     {
    -	u16 value = Xil_In32(Addr);
    +	u32 value = Xil_In32(Addr);
     	return Xil_EndianSwap32(value);
     }
     
    @@ -349,3 +340,6 @@ static INLINE void Xil_Out32BE(UINTPTR Addr, u32 Value)
     #endif
     
     #endif /* end of protection macro */
    +/**
    +* @} End of "addtogroup common_io_interfacing_apis".
    +*/
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_macroback.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_macroback.h
    similarity index 100%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_macroback.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_macroback.h
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mem.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mem.c
    new file mode 100644
    index 000000000..0929a6878
    --- /dev/null
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mem.c
    @@ -0,0 +1,83 @@
    +/******************************************************************************/
    +/**
    +* Copyright (C) 2015 - 2016 Xilinx, Inc.  All rights reserved.
    +*
    +* Permission is hereby granted, free of charge, to any person obtaining a copy
    +* of this software and associated documentation files (the "Software"), to deal
    +* in the Software without restriction, including without limitation the rights
    +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +* copies of the Software, and to permit persons to whom the Software is
    +* furnished to do so, subject to the following conditions:
    +*
    +* The above copyright notice and this permission notice shall be included in
    +* all copies or substantial portions of the Software.
    +*
    +* Use of the Software is limited solely to applications:
    +* (a) running on a Xilinx device, or
    +* (b) that interact with a Xilinx device through a bus or interconnect.
    +*
    +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    +* XILINX  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
    +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
    +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +* SOFTWARE.
    +*
    +* Except as contained in this notice, the name of the Xilinx shall not be used
    +* in advertising or otherwise to promote the sale, use or other dealings in
    +* this Software without prior written authorization from Xilinx.
    +*
    +******************************************************************************/
    +/****************************************************************************/
    +/**
    +* @file xil_mem.c
    +*
    +* This file contains xil mem copy function to use in case of word aligned
    +* data copies.
    +*
    +* 
    +* MODIFICATION HISTORY:
    +*
    +* Ver   Who      Date     Changes
    +* ----- -------- -------- -----------------------------------------------
    +* 6.1   nsk      11/07/16 First release.
    +*
    +* 
    +* +*****************************************************************************/ + +/***************************** Include Files ********************************/ + +#include "xil_types.h" + +/***************** Inline Functions Definitions ********************/ +/*****************************************************************************/ +/** +* @brief This function copies memory from once location to other. +* +* @param dst: pointer pointing to destination memory +* +* @param src: pointer pointing to source memory +* +* @param cnt: 32 bit length of bytes to be copied +* +*****************************************************************************/ +void Xil_MemCpy(void* dst, const void* src, u32 cnt) +{ + char *d = (char*)(void *)dst; + const char *s = src; + + while (cnt >= sizeof (int)) { + *(int*)d = *(int*)s; + d += sizeof (int); + s += sizeof (int); + cnt -= sizeof (int); + } + while ((cnt) > 0U){ + *d = *s; + d += 1U; + s += 1U; + cnt -= 1U; + } +} diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mem.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mem.h new file mode 100644 index 000000000..a2d5e6681 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mem.h @@ -0,0 +1,59 @@ +/******************************************************************************/ +/** +* Copyright (C) 2015 - 2016 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* @file xil_mem.h +* +* @addtogroup common_mem_operation_api Customized APIs for Memory Operations +* +* The xil_mem.h file contains prototype for functions related +* to memory operations. These APIs are applicable for all processors supported +* by Xilinx. +* +* @{ +*
    +* MODIFICATION HISTORY:
    +*
    +* Ver   Who      Date     Changes
    +* ----- -------- -------- -----------------------------------------------
    +* 6.1   nsk      11/07/16 First release.
    +*
    +* 
    +* +*****************************************************************************/ + +/************************** Function Prototypes *****************************/ + +void Xil_MemCpy(void* dst, const void* src, u32 cnt); +/** +* @} End of "addtogroup common_mem_operation_api". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_misc_psreset_api.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_misc_psreset_api.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_misc_psreset_api.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_misc_psreset_api.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_misc_psreset_api.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_misc_psreset_api.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_misc_psreset_api.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_misc_psreset_api.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_mmu.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mmu.c similarity index 85% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_mmu.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mmu.c index 6f743bd2b..1f58d906b 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_mmu.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mmu.c @@ -83,18 +83,21 @@ extern u32 MMUTable; /************************** Function Prototypes ******************************/ -/***************************************************************************** +/*****************************************************************************/ +/** +* @brief This function sets the memory attributes for a section covering 1MB +* of memory in the translation table. * -* Set the memory attributes for a section, in the translation table. Each -* section covers 1MB of memory. +* @param Addr: 32-bit address for which memory attributes need to be set. +* @param attrib: Attribute for the given memory region. xil_mmu.h contains +* definitions of commonly used memory attributes which can be +* utilized for this function. * -* @param Addr is the address for which attributes are to be set. -* @param attrib specifies the attributes for that memory region. * * @return None. * -* @note The MMU and D-cache need not be disabled before changing an -* translation table attribute. +* @note The MMU or D-cache does not need to be disabled before changing a +* translation table entry. * ******************************************************************************/ void Xil_SetTlbAttributes(INTPTR Addr, u32 attrib) @@ -119,9 +122,10 @@ void Xil_SetTlbAttributes(INTPTR Addr, u32 attrib) isb(); /* synchronize context on this processor */ } -/***************************************************************************** -* -* Invalidate the caches, enable MMU and D Caches for Cortex A9 processor. +/*****************************************************************************/ +/** +* @brief Enable MMU for cortex A9 processor. This function invalidates the +* instruction and data caches, and then enables MMU. * * @param None. * @return None. @@ -148,16 +152,18 @@ void Xil_EnableMMU(void) isb(); } -/***************************************************************************** -* -* Disable MMU for Cortex A9 processors. This function invalidates the TLBs, -* Branch Predictor Array and flushed the D Caches before disabling -* the MMU and D cache. +/*****************************************************************************/ +/** +* @brief Disable MMU for Cortex A9 processors. This function invalidates +* the TLBs, Branch Predictor Array and flushed the D Caches before +* disabling the MMU. * * @param None. * * @return None. * +* @note When the MMU is disabled, all the memory accesses are treated as +* strongly ordered. ******************************************************************************/ void Xil_DisableMMU(void) { diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_mmu.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mmu.h similarity index 93% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_mmu.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mmu.h index a41fae3cf..dd14b63b7 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_mmu.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_mmu.h @@ -33,7 +33,12 @@ /** * @file xil_mmu.h * +* @addtogroup a9_mmu_apis Cortex A9 Processor MMU Functions * +* MMU functions equip users to enable MMU, disable MMU and modify default +* memory attributes of MMU table as per the need. +* +* @{ * *
     * MODIFICATION HISTORY:
    @@ -46,9 +51,6 @@
     * 5.4	pkp	 23/11/15 Added attribute definitions for Xil_SetTlbAttributes API
     * 
    * -* @note -* -* None. * ******************************************************************************/ @@ -101,3 +103,6 @@ void Xil_DisableMMU(void); #endif /* __cplusplus */ #endif /* XIL_MMU_H */ +/** +* @} End of "addtogroup a9_mmu_apis". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_printf.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_printf.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_printf.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_printf.c index 9dffed148..dc0897f0d 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_printf.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_printf.c @@ -75,8 +75,8 @@ static void outs(const charptr lp, struct params_s *par) (par->num2)--; #ifdef STDOUT_BASEADDRESS outbyte(*LocalPtr); - LocalPtr += 1; #endif + LocalPtr += 1; } /* Pad on right if needed */ @@ -135,8 +135,8 @@ static void outnum( const s32 n, const s32 base, struct params_s *par) while (&outbuf[i] >= outbuf) { #ifdef STDOUT_BASEADDRESS outbyte( outbuf[i] ); - i--; #endif + i--; } padding( par->left_flag, par); } @@ -239,6 +239,11 @@ static s32 getnum( charptr* linep) /* void esp_printf( const func_ptr f_ptr, const charptr ctrl1, ...) */ +#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE +void xil_printf( const char8 *ctrl1, ...){ + XPVXenConsole_Printf(ctrl1); +} +#else void xil_printf( const char8 *ctrl1, ...) { s32 Check; @@ -262,8 +267,8 @@ void xil_printf( const char8 *ctrl1, ...) if (*ctrl != '%') { #ifdef STDOUT_BASEADDRESS outbyte(*ctrl); - ctrl += 1; #endif + ctrl += 1; continue; } @@ -434,5 +439,5 @@ void xil_printf( const char8 *ctrl1, ...) } va_end( argp); } - +#endif /*---------------------------------------------------*/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_printf.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_printf.h similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_printf.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_printf.h index 2be5c5734..016ae3b2f 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_printf.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_printf.h @@ -10,6 +10,10 @@ extern "C" { #include #include "xil_types.h" #include "xparameters.h" +#include "bspconfig.h" +#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE +#include "xen_console.h" +#endif /*----------------------------------------------------*/ /* Use the following parameter passing structure to */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c new file mode 100644 index 000000000..972a310a8 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +*@file xil_sleepcommon.c +* +* This file contains the sleep API's +* +*
    +* MODIFICATION HISTORY:
    +*
    +* Ver   Who      Date     Changes
    +* ----- -------- -------- -----------------------------------------------
    +* 6.6 	srm  	 11/02/17 First release
    +* 
    +******************************************************************************/ + + +/***************************** Include Files *********************************/ +#include "xil_io.h" +#include "sleep.h" + +/**************************** Constant Definitions *************************/ + + +/*****************************************************************************/ +/** +* +* This API gives delay in sec +* +* @param seconds - delay time in seconds +* +* @return none +* +* @note none +* +*****************************************************************************/ + void sleep(unsigned int seconds) + { +#if defined (ARMR5) + sleep_R5(seconds); +#elif defined (__aarch64__) || defined (ARMA53_32) + sleep_A53(seconds); +#elif defined (__MICROBLAZE__) + sleep_MB(seconds); +#else + sleep_A9(seconds); +#endif + + } + +/****************************************************************************/ +/** +* +* This API gives delay in usec +* +* @param useconds - delay time in useconds +* +* @return none +* +* @note none +* +*****************************************************************************/ + void usleep(unsigned long useconds) + { +#if defined (ARMR5) + usleep_R5(useconds); +#elif defined (__aarch64__) || defined (ARMA53_32) + usleep_A53(useconds); +#elif defined (__MICROBLAZE__) + usleep_MB(useconds); +#else + usleep_A9(useconds); +#endif + + } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c new file mode 100644 index 000000000..477260676 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ + +/*****************************************************************************/ +/** +* +* @file xil_sleeptimer.c +* +* This file provides the common helper routines for the sleep API's +* +*
    +* MODIFICATION HISTORY :
    +*
    +* Ver   Who  Date	 Changes
    +* ----- ---- -------- -------------------------------------------------------
    +* 6.6	srm  10/18/17 First Release.
    +*
    +* 
    +*****************************************************************************/ + +/**************************** Include Files ********************************/ + +#include "xil_io.h" +#include "xil_sleeptimer.h" +#include "xtime_l.h" + +/**************************** Constant Definitions *************************/ + + +/* Function definitions are applicable only when TTC3 is present*/ +#if defined (SLEEP_TIMER_BASEADDR) +/****************************************************************************/ +/** +* +* This is a helper function used by sleep/usleep APIs to +* have delay in sec/usec +* +* @param delay - delay time in seconds/micro seconds +* +* @param frequency - Number of counts per second/micro second +* +* @return none +* +* @note none +* +*****************************************************************************/ +void Xil_SleepTTCCommon(u32 delay, u64 frequency) +{ + INTPTR tEnd = 0U; + INTPTR tCur = 0U; + XCntrVal TimeHighVal = 0U; + XCntrVal TimeLowVal1 = 0U; + XCntrVal TimeLowVal2 = 0U; + + TimeLowVal1 = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_COUNT_VALUE_OFFSET); + tEnd = (INTPTR)TimeLowVal1 + ((INTPTR)(delay) * frequency); + do + { + TimeLowVal2 = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_COUNT_VALUE_OFFSET); + if (TimeLowVal2 < TimeLowVal1) { + TimeHighVal++; + } + TimeLowVal1 = TimeLowVal2; + tCur = (((INTPTR) TimeHighVal) << XSLEEP_TIMER_REG_SHIFT) | + (INTPTR)TimeLowVal2; + }while (tCur < tEnd); +} + + +/*****************************************************************************/ +/** +* +* This API starts the Triple Timer Counter +* +* @param none +* +* @return none +* +* @note none +* +*****************************************************************************/ +void XTime_StartTTCTimer() +{ + u32 TimerPrescalar; + u32 TimerCntrl; + +#if (defined (__aarch64__) && EL3==1) || defined (ARMR5) || defined (ARMA53_32) + u32 LpdRst; + + LpdRst = XSleep_ReadCounterVal(RST_LPD_IOU2); + + /* check if the timer is reset */ + if (((LpdRst & (RST_LPD_IOU2_TTC_BASE_RESET_MASK << + XSLEEP_TTC_INSTANCE)) != 0 )) { + LpdRst = LpdRst & (~(RST_LPD_IOU2_TTC_BASE_RESET_MASK << + XSLEEP_TTC_INSTANCE)); + Xil_Out32(RST_LPD_IOU2, LpdRst); + } else { +#endif + TimerCntrl = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET); + /* check if Timer is disabled */ + if ((TimerCntrl & XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK) == 0) { + TimerPrescalar = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET); + /* check if Timer is configured with proper functionalty for sleep */ + if ((TimerPrescalar & XSLEEP_TIMER_TTC_CLK_CNTRL_PS_EN_MASK) == 0) + return; + } +#if (defined (__aarch64__) && EL3==1) || defined (ARMR5) || defined (ARMA53_32) + } +#endif + /* Disable the timer to configure */ + TimerCntrl = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET); + TimerCntrl = TimerCntrl | XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK; + Xil_Out32(SLEEP_TIMER_BASEADDR + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET, + TimerCntrl); + /* Disable the prescalar */ + TimerPrescalar = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET); + TimerPrescalar = TimerPrescalar & (~XSLEEP_TIMER_TTC_CLK_CNTRL_PS_EN_MASK); + Xil_Out32(SLEEP_TIMER_BASEADDR + XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET, + TimerPrescalar); + /* Enable the Timer */ + TimerCntrl = TimerCntrl & (~XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK); + Xil_Out32(SLEEP_TIMER_BASEADDR + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET, + TimerCntrl); +} +#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h new file mode 100644 index 000000000..4bfac0ac4 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h @@ -0,0 +1,116 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xil_sleeptimer.h +* +* This header file contains ARM Cortex A53,A9,R5 specific sleep related APIs. +* For sleep related functions that can be used across all Xilinx supported +* processors, please use xil_sleeptimer.h. +* +* +*
    +* MODIFICATION HISTORY :
    +*
    +* Ver   Who  Date	 Changes
    +* ----- ---- -------- -------------------------------------------------------
    +* 6.6	srm  10/18/17 First Release.
    +*
    +* 
    +*****************************************************************************/ + +#ifndef XIL_SLEEPTIMER_H /* prevent circular inclusions */ +#define XIL_SLEEPTIMER_H /* by using protection macros */ +/**************************** Include Files ********************************/ + +#include "xil_io.h" +#include "xparameters.h" +#include "bspconfig.h" + +/************************** Constant Definitions *****************************/ + +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#define XSLEEP_TIMER_REG_SHIFT 32U +#define XSleep_ReadCounterVal Xil_In32 +#define XCntrVal u32 +#else +#define XSLEEP_TIMER_REG_SHIFT 16U +#define XSleep_ReadCounterVal Xil_In16 +#define XCntrVal u16 +#endif + +#if defined(ARMR5) || (defined (__aarch64__) && EL3==1) || defined (ARMA53_32) +#define RST_LPD_IOU2 0xFF5E0238U +#define RST_LPD_IOU2_TTC_BASE_RESET_MASK 0x00000800U +#endif + +#if defined (SLEEP_TIMER_BASEADDR) +/** @name Register Map +* +* Register offsets from the base address of the TTC device +* +* @{ +*/ + #define XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET 0x00000000U + /**< Clock Control Register */ + #define XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET 0x0000000CU + /**< Counter Control Register*/ + #define XSLEEP_TIMER_TTC_COUNT_VALUE_OFFSET 0x00000018U + /**< Current Counter Value */ +/* @} */ +/** @name Clock Control Register +* Clock Control Register definitions of TTC +* @{ +*/ + #define XSLEEP_TIMER_TTC_CLK_CNTRL_PS_EN_MASK 0x00000001U + /**< Prescale enable */ +/* @} */ +/** @name Counter Control Register +* Counter Control Register definitions of TTC +* @{ +*/ +#define XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK 0x00000001U + /**< Disable the counter */ +#define XSLEEP_TIMER_TTC_CNT_CNTRL_RST_MASK 0x00000010U + /**< Reset counter */ +/* @} */ + +/**************************** Type Definitions *******************************/ + +/************************** Function Prototypes ******************************/ + +void Xil_SleepTTCCommon(u32 delay, u64 frequency); +void XTime_StartTTCTimer(); + +#endif +#endif /* XIL_SLEEPTIMER_H */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testcache.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testcache.c similarity index 83% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testcache.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testcache.c index a2c4b0bbf..157ad0836 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testcache.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testcache.c @@ -47,7 +47,6 @@ *
    * * @note -* * This file contain functions that all operate on HAL. * ******************************************************************************/ @@ -74,17 +73,21 @@ static INTPTR Data[DATA_LENGTH] __attribute__ ((aligned(64))); static INTPTR Data[DATA_LENGTH] __attribute__ ((aligned(32))); #endif + +/*****************************************************************************/ /** -* Perform DCache range related API test such as Xil_DCacheFlushRange and -* Xil_DCacheInvalidateRange. This test function writes a constant value -* to the Data array, flushes the range, writes a new value, then invalidates -* the corresponding range. +* +* @brief Perform DCache range related API test such as Xil_DCacheFlushRange +* and Xil_DCacheInvalidateRange. This test function writes a constant +* value to the Data array, flushes the range, writes a new value, then +* invalidates the corresponding range. +* @param None * * @return +* - -1 is returned for a failure +* - 0 is returned for a pass * -* - 0 is returned for a pass -* - -1 is returned for a failure -*/ +*****************************************************************************/ s32 Xil_TestDCacheRange(void) { s32 Index; @@ -204,16 +207,17 @@ s32 Xil_TestDCacheRange(void) } +/*****************************************************************************/ /** -* Perform DCache all related API test such as Xil_DCacheFlush and -* Xil_DCacheInvalidate. This test function writes a constant value -* to the Data array, flushes the DCache, writes a new value, then invalidates -* the DCache. +* @brief Perform DCache all related API test such as Xil_DCacheFlush and +* Xil_DCacheInvalidate. This test function writes a constant value +* to the Data array, flushes the DCache, writes a new value, +* then invalidates the DCache. * * @return -* - 0 is returned for a pass -* - -1 is returned for a failure -*/ +* - 0 is returned for a pass +* - -1 is returned for a failure +*****************************************************************************/ s32 Xil_TestDCacheAll(void) { s32 Index; @@ -328,15 +332,15 @@ s32 Xil_TestDCacheAll(void) return Status; } - +/*****************************************************************************/ /** -* Perform Xil_ICacheInvalidateRange() on a few function pointers. +* @brief Perform Xil_ICacheInvalidateRange() on a few function pointers. * * @return -* * - 0 is returned for a pass +* @note * The function will hang if it fails. -*/ +*****************************************************************************/ s32 Xil_TestICacheRange(void) { @@ -349,14 +353,15 @@ s32 Xil_TestICacheRange(void) return 0; } +/*****************************************************************************/ /** -* Perform Xil_ICacheInvalidate(). +* @brief Perform Xil_ICacheInvalidate() on a few function pointers. * * @return -* -* - 0 is returned for a pass -* The function will hang if it fails. -*/ +* - 0 is returned for a pass +* @note +* The function will hang if it fails. +*****************************************************************************/ s32 Xil_TestICacheAll(void) { Xil_ICacheInvalidate(); diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testcache.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testcache.h similarity index 92% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testcache.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testcache.h index b3c416cd0..c35e9a463 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testcache.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testcache.h @@ -34,11 +34,16 @@ * * @file xil_testcache.h * -* This file contains utility functions to test cache. +* @addtogroup common_test_utils +*

    Cache test

    +* The xil_testcache.h file contains utility functions to test cache. * +* @{ +*
     * Ver    Who    Date    Changes
     * ----- ---- -------- -----------------------------------------------
     * 1.00a hbm  07/29/09 First release
    +* 
    * ******************************************************************************/ @@ -61,3 +66,6 @@ extern s32 Xil_TestICacheAll(void); #endif #endif /* end of protection macro */ +/** +* @} End of "addtogroup common_test_utils". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testio.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testio.c similarity index 70% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testio.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testio.c index a68d7652f..e6a36807b 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testio.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testio.c @@ -32,7 +32,7 @@ /*****************************************************************************/ /** * -* @file xil_testmemend.c +* @file xil_testio.c * * Contains the memory test utility functions. * @@ -95,18 +95,17 @@ static u32 Swap32(u32 Data) /*****************************************************************************/ /** * -* Perform a destructive 8-bit wide register IO test where the register is -* accessed using Xil_Out8 and Xil_In8, and comparing the reading and writing -* values. +* @brief Perform a destructive 8-bit wide register IO test where the +* register is accessed using Xil_Out8 and Xil_In8, and comparing +* the written values by reading them back. * -* @param Addr is a pointer to the region of memory to be tested. -* @param Length is the Length of the block. -* @param Value is the constant used for writting the memory. +* @param Addr: a pointer to the region of memory to be tested. +* @param Length: Length of the block. +* @param Value: constant used for writting the memory. * * @return -* -* - -1 is returned for a failure -* - 0 is returned for a pass +* - -1 is returned for a failure +* - 0 is returned for a pass * *****************************************************************************/ @@ -133,24 +132,24 @@ s32 Xil_TestIO8(u8 *Addr, s32 Length, u8 Value) /*****************************************************************************/ /** * -* Perform a destructive 16-bit wide register IO test. Each location is tested -* by sequentially writing a 16-bit wide register, reading the register, and -* comparing value. This function tests three kinds of register IO functions, -* normal register IO, little-endian register IO, and big-endian register IO. -* When testing little/big-endian IO, the function performs the following -* sequence, Xil_Out16LE/Xil_Out16BE, Xil_In16, Compare In-Out values, -* Xil_Out16, Xil_In16LE/Xil_In16BE, Compare In-Out values. Whether to swap the -* read-in value before comparing is controlled by the 5th argument. +* @brief Perform a destructive 16-bit wide register IO test. Each location +* is tested by sequentially writing a 16-bit wide register, reading +* the register, and comparing value. This function tests three kinds +* of register IO functions, normal register IO, little-endian register +* IO, and big-endian register IO. When testing little/big-endian IO, +* the function performs the following sequence, Xil_Out16LE/Xil_Out16BE, +* Xil_In16, Compare In-Out values, Xil_Out16, Xil_In16LE/Xil_In16BE, +* Compare In-Out values. Whether to swap the read-in value before +* comparing is controlled by the 5th argument. * -* @param Addr is a pointer to the region of memory to be tested. -* @param Length is the Length of the block. -* @param Value is the constant used for writting the memory. -* @param Kind is the test kind. Acceptable values are: -* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. -* @param Swap indicates whether to byte swap the read-in value. +* @param Addr: a pointer to the region of memory to be tested. +* @param Length: Length of the block. +* @param Value: constant used for writting the memory. +* @param Kind: Type of test. Acceptable values are: +* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. +* @param Swap: indicates whether to byte swap the read-in value. * * @return -* * - -1 is returned for a failure * - 0 is returned for a pass * @@ -219,26 +218,25 @@ s32 Xil_TestIO16(u16 *Addr, s32 Length, u16 Value, s32 Kind, s32 Swap) /*****************************************************************************/ /** * -* Perform a destructive 32-bit wide register IO test. Each location is tested -* by sequentially writing a 32-bit wide regsiter, reading the register, and -* comparing value. This function tests three kinds of register IO functions, -* normal register IO, little-endian register IO, and big-endian register IO. -* When testing little/big-endian IO, the function perform the following -* sequence, Xil_Out32LE/Xil_Out32BE, Xil_In32, Compare, -* Xil_Out32, Xil_In32LE/Xil_In32BE, Compare. Whether to swap the read-in value -* before comparing is controlled by the 5th argument. -* -* @param Addr is a pointer to the region of memory to be tested. -* @param Length is the Length of the block. -* @param Value is the constant used for writting the memory. -* @param Kind is the test kind. Acceptable values are: -* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. -* @param Swap indicates whether to byte swap the read-in value. +* @brief Perform a destructive 32-bit wide register IO test. Each location +* is tested by sequentially writing a 32-bit wide regsiter, reading +* the register, and comparing value. This function tests three kinds +* of register IO functions, normal register IO, little-endian register IO, +* and big-endian register IO. When testing little/big-endian IO, +* the function perform the following sequence, Xil_Out32LE/ +* Xil_Out32BE, Xil_In32, Compare, Xil_Out32, Xil_In32LE/Xil_In32BE, Compare. +* Whether to swap the read-in value *before comparing is controlled +* by the 5th argument. +* @param Addr: a pointer to the region of memory to be tested. +* @param Length: Length of the block. +* @param Value: constant used for writting the memory. +* @param Kind: type of test. Acceptable values are: +* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. +* @param Swap: indicates whether to byte swap the read-in value. * * @return -* -* - -1 is returned for a failure -* - 0 is returned for a pass +* - -1 is returned for a failure +* - 0 is returned for a pass * *****************************************************************************/ s32 Xil_TestIO32(u32 *Addr, s32 Length, u32 Value, s32 Kind, s32 Swap) diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testio.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testio.h similarity index 93% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testio.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testio.h index fba0c1060..ad68ead64 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testio.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testio.h @@ -32,19 +32,19 @@ /*****************************************************************************/ /** * -* @file xil_testmemend.h +* @file xil_testio.h * -* This file contains utility functions to teach endian related memory +* @addtogroup common_test_utils Test Utilities +*

    I/O test

    +* The xil_testio.h file contains utility functions to test endian related memory * IO functions. * -* Memory test description -* * A subset of the memory tests can be selected or all of the tests can be run * in order. If there is an error detected by a subtest, the test stops and the * failure code is returned. Further tests are not run even if all of the tests * are selected. * -* +* @{ *
     * MODIFICATION HISTORY:
     *
    @@ -89,3 +89,6 @@ extern s32 Xil_TestIO32(u32 *Addr, s32 Length, u32 Value, s32 Kind, s32 Swap);
     #endif
     
     #endif /* end of protection macro */
    +/**
    +* @} End of "addtogroup common_test_utils".
    +*/
    diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testmem.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testmem.c
    similarity index 92%
    rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testmem.c
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testmem.c
    index 19a3b6608..87426d17a 100644
    --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testmem.c
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testmem.c
    @@ -66,22 +66,20 @@ static u32 RotateRight(u32 Input, u8 Width);
     /*****************************************************************************/
     /**
     *
    -* Perform a destructive 32-bit wide memory test.
    +* @brief    Perform a destructive 32-bit wide memory test.
     *
    -* @param    Addr is a pointer to the region of memory to be tested.
    -* @param    Words is the length of the block.
    -* @param    Pattern is the constant used for the constant pattern test, if 0,
    +* @param    Addr: pointer to the region of memory to be tested.
    +* @param    Words: length of the block.
    +* @param    Pattern: constant used for the constant pattern test, if 0,
     *           0xDEADBEEF is used.
    -* @param    Subtest is the test selected. See xil_testmem.h for possible
    -*	    values.
    +* @param    Subtest: test type selected. See xil_testmem.h for possible
    +*	        values.
     *
     * @return
    -*
    -* - 0 is returned for a pass
    -* - -1 is returned for a failure
    +*           - 0 is returned for a pass
    +*           - 1 is returned for a failure
     *
     * @note
    -*
     * Used for spaces where the address range of the region is smaller than
     * the data width. If the memory range is greater than 2 ** Width,
     * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will
    @@ -315,22 +313,21 @@ End_Label:
     /*****************************************************************************/
     /**
     *
    -* Perform a destructive 16-bit wide memory test.
    +* @brief    Perform a destructive 16-bit wide memory test.
     *
    -* @param    Addr is a pointer to the region of memory to be tested.
    -* @param    Words is the length of the block.
    -* @param    Pattern is the constant used for the constant Pattern test, if 0,
    +* @param    Addr: pointer to the region of memory to be tested.
    +* @param    Words: length of the block.
    +* @param    Pattern: constant used for the constant Pattern test, if 0,
     *           0xDEADBEEF is used.
    -* @param    Subtest is the test selected. See xil_testmem.h for possible
    -*	    values.
    +* @param    Subtest: type of test selected. See xil_testmem.h for possible
    +*	        values.
     *
     * @return
     *
    -* - -1 is returned for a failure
    -* - 0 is returned for a pass
    +*           - -1 is returned for a failure
    +*           - 0 is returned for a pass
     *
     * @note
    -*
     * Used for spaces where the address range of the region is smaller than
     * the data width. If the memory range is greater than 2 ** Width,
     * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will
    @@ -549,22 +546,20 @@ End_Label:
     /*****************************************************************************/
     /**
     *
    -* Perform a destructive 8-bit wide memory test.
    +* @brief    Perform a destructive 8-bit wide memory test.
     *
    -* @param    Addr is a pointer to the region of memory to be tested.
    -* @param    Words is the length of the block.
    -* @param    Pattern is the constant used for the constant pattern test, if 0,
    +* @param    Addr: pointer to the region of memory to be tested.
    +* @param    Words: length of the block.
    +* @param    Pattern: constant used for the constant pattern test, if 0,
     *           0xDEADBEEF is used.
    -* @param    Subtest is the test selected. See xil_testmem.h for possible
    -*	    values.
    +* @param    Subtest: type of test selected. See xil_testmem.h for possible
    +*	        values.
     *
     * @return
    -*
    -* - -1 is returned for a failure
    -* - 0 is returned for a pass
    +*           - -1 is returned for a failure
    +*           - 0 is returned for a pass
     *
     * @note
    -*
     * Used for spaces where the address range of the region is smaller than
     * the data width. If the memory range is greater than 2 ** Width,
     * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will
    @@ -777,18 +772,14 @@ End_Label:
     /*****************************************************************************/
     /**
     *
    -* Rotates the provided value to the left one bit position
    +* @brief   Rotates the provided value to the left one bit position
     *
     * @param    Input is value to be rotated to the left
     * @param    Width is the number of bits in the input data
     *
     * @return
    +*           The resulting unsigned long value of the rotate left
     *
    -* The resulting unsigned long value of the rotate left
    -*
    -* @note
    -*
    -* None.
     *
     *****************************************************************************/
     static u32 RotateLeft(u32 Input, u8 Width)
    @@ -831,18 +822,13 @@ static u32 RotateLeft(u32 Input, u8 Width)
     /*****************************************************************************/
     /**
     *
    -* Rotates the provided value to the right one bit position
    +* @brief    Rotates the provided value to the right one bit position
     *
    -* @param    Input is value to be rotated to the right
    -* @param    Width is the number of bits in the input data
    +* @param    Input: value to be rotated to the right
    +* @param    Width: number of bits in the input data
     *
     * @return
    -*
    -* The resulting u32 value of the rotate right
    -*
    -* @note
    -*
    -* None.
    +*           The resulting u32 value of the rotate right
     *
     *****************************************************************************/
     static u32 RotateRight(u32 Input, u8 Width)
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testmem.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testmem.h
    similarity index 79%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testmem.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testmem.h
    index 4cbfd878b..c20472822 100644
    --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testmem.h
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_testmem.h
    @@ -33,64 +33,57 @@
     /**
     *
     * @file xil_testmem.h
    +* @addtogroup common_test_utils
     *
    -* This file contains utility functions to test memory.
    -*
    -* Memory test description
    +* 

    Memory test

    * +* The xil_testmem.h file contains utility functions to test memory. * A subset of the memory tests can be selected or all of the tests can be run * in order. If there is an error detected by a subtest, the test stops and the * failure code is returned. Further tests are not run even if all of the tests * are selected. +* Following list describes the supported memory tests: * -* Subtest descriptions: -*
    -* XIL_TESTMEM_ALLMEMTESTS:
    -*       Runs all of the following tests
    +*  - XIL_TESTMEM_ALLMEMTESTS: This test runs all of the subtests.
     *
    -* XIL_TESTMEM_INCREMENT:
    -*       Incrementing Value Test.
    -*       This test starts at 'XIL_TESTMEM_INIT_VALUE' and uses the
    -*	incrementing value as the test value for memory.
    +*  - XIL_TESTMEM_INCREMENT: This test
    +* starts at 'XIL_TESTMEM_INIT_VALUE' and uses the incrementing value as the
    +* test value for memory.
     *
    -* XIL_TESTMEM_WALKONES:
    -*       Walking Ones Test.
    -*       This test uses a walking '1' as the test value for memory.
    -*       location 1 = 0x00000001
    -*       location 2 = 0x00000002
    -*       ...
    +*  - XIL_TESTMEM_WALKONES: Also known as the Walking ones test. This test
    +* uses a walking '1' as the test value for memory.
    +* @code
    +*          location 1 = 0x00000001
    +*          location 2 = 0x00000002
    +*          ...
    +* @endcode
     *
    -* XIL_TESTMEM_WALKZEROS:
    -*       Walking Zero's Test.
    -*       This test uses the inverse value of the walking ones test
    -*       as the test value for memory.
    +*  - XIL_TESTMEM_WALKZEROS: Also known as the Walking zero's test.
    +* This test uses the inverse value of the walking ones test
    +* as the test value for memory.
    +* @code
     *       location 1 = 0xFFFFFFFE
     *       location 2 = 0xFFFFFFFD
     *       ...
    +*@endcode
     *
    -* XIL_TESTMEM_INVERSEADDR:
    -*       Inverse Address Test.
    -*       This test uses the inverse of the address of the location under test
    -*       as the test value for memory.
    +*  - XIL_TESTMEM_INVERSEADDR: Also known as the inverse address test.
    +* This test uses the inverse of the address of the location under test
    +* as the test value for memory.
     *
    -* XIL_TESTMEM_FIXEDPATTERN:
    -*       Fixed Pattern Test.
    -*       This test uses the provided patters as the test value for memory.
    -*       If zero is provided as the pattern the test uses '0xDEADBEEF".
    -* 
    -* -* WARNING +* - XIL_TESTMEM_FIXEDPATTERN: Also known as the fixed pattern test. +* This test uses the provided patters as the test value for memory. +* If zero is provided as the pattern the test uses '0xDEADBEEF". * +* @warning * The tests are DESTRUCTIVE. Run before any initialized memory spaces * have been set up. -* * The address provided to the memory tests is not checked for * validity except for the NULL case. It is possible to provide a code-space * pointer for this test to start with and ultimately destroy executable code * causing random failures. * * @note -* * Used for spaces where the address range of the region is smaller than * the data width. If the memory range is greater than 2 ** width, * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will @@ -160,3 +153,6 @@ extern s32 Xil_TestMem8(u8 *Addr, u32 Words, u8 Pattern, u8 Subtest); #endif #endif /* end of protection macro */ +/** +* @} End of "addtogroup common_test_utils". +*/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_types.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_types.h similarity index 76% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_types.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_types.h index e8b78b7c6..8143aff1e 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_types.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xil_types.h @@ -34,9 +34,11 @@ * * @file xil_types.h * -* This file contains basic types for Xilinx software IP. - +* @addtogroup common_types Basic Data types for Xilinx® Software IP * +* The xil_types.h file contains basic types for Xilinx software IP. These data types +* are applicable for all processors supported by Xilinx. +* @{ *
     * MODIFICATION HISTORY:
     *
    @@ -71,22 +73,28 @@
     #define NULL		0U
     #endif
     
    -#define XIL_COMPONENT_IS_READY     0x11111111U  /**< component has been initialized */
    -#define XIL_COMPONENT_IS_STARTED   0x22222222U  /**< component has been started */
    +#define XIL_COMPONENT_IS_READY     0x11111111U  /**< In device drivers, This macro will be
    +                                                 assigend to "IsReady" member of driver
    +												 instance to indicate that driver
    +												 instance is initialized and ready to use. */
    +#define XIL_COMPONENT_IS_STARTED   0x22222222U  /**< In device drivers, This macro will be assigend to
    +                                                 "IsStarted" member of driver instance
    +												 to indicate that driver instance is
    +												 started and it can be enabled. */
     
    -/** @name New types
    +/* @name New types
      * New simple types.
      * @{
      */
     #ifndef __KERNEL__
     #ifndef XBASIC_TYPES_H
    -/**
    +/*
      * guarded against xbasic_types.h.
      */
     typedef uint8_t u8;
     typedef uint16_t u16;
     typedef uint32_t u32;
    -
    +/** @}*/
     #define __XUINT64__
     typedef struct
     {
    @@ -97,36 +105,32 @@ typedef struct
     
     /*****************************************************************************/
     /**
    -* Return the most significant half of the 64 bit data type.
    +* @brief    Return the most significant half of the 64 bit data type.
     *
     * @param    x is the 64 bit word.
     *
     * @return   The upper 32 bits of the 64 bit word.
     *
    -* @note     None.
    -*
     ******************************************************************************/
     #define XUINT64_MSW(x) ((x).Upper)
     
     /*****************************************************************************/
     /**
    -* Return the least significant half of the 64 bit data type.
    +* @brief    Return the least significant half of the 64 bit data type.
     *
     * @param    x is the 64 bit word.
     *
     * @return   The lower 32 bits of the 64 bit word.
     *
    -* @note     None.
    -*
     ******************************************************************************/
     #define XUINT64_LSW(x) ((x).Lower)
     
     #endif /* XBASIC_TYPES_H */
     
    -/**
    +/*
      * xbasic_types.h does not typedef s* or u64
      */
    -
    +/** @{ */
     typedef char char8;
     typedef int8_t s8;
     typedef int16_t s16;
    @@ -138,7 +142,7 @@ typedef int sint32;
     typedef intptr_t INTPTR;
     typedef uintptr_t UINTPTR;
     typedef ptrdiff_t PTRDIFF;
    -
    +/** @}*/
     #if !defined(LONG) || !defined(ULONG)
     typedef long LONG;
     typedef unsigned long ULONG;
    @@ -151,7 +155,7 @@ typedef unsigned long ULONG;
     #include 
     #endif
     
    -
    +/** @{ */
     /**
      * This data type defines an interrupt handler for a device.
      * The argument points to the instance of the component
    @@ -165,22 +169,24 @@ typedef void (*XInterruptHandler) (void *InstancePtr);
     typedef void (*XExceptionHandler) (void *InstancePtr);
     
     /**
    - * UPPER_32_BITS - return bits 32-63 of a number
    - * @n: the number we're accessing
    + * @brief  Returns 32-63 bits of a number.
    + * @param  n : Number being accessed.
    + * @return Bits 32-63 of number.
      *
    - * A basic shift-right of a 64- or 32-bit quantity.  Use this to suppress
    - * the "right shift count >= width of type" warning when that quantity is
    - * 32-bits.
    + * @note    A basic shift-right of a 64- or 32-bit quantity.
    + *          Use this to suppress the "right shift count >= width of type"
    + *          warning when that quantity is 32-bits.
      */
     #define UPPER_32_BITS(n) ((u32)(((n) >> 16) >> 16))
     
     /**
    - * LOWER_32_BITS - return bits 0-31 of a number
    - * @n: the number we're accessing
    + * @brief  Returns 0-31 bits of a number
    + * @param  n : Number being accessed.
    + * @return Bits 0-31 of number
      */
     #define LOWER_32_BITS(n) ((u32)(n))
     
    -/*@}*/
    +
     
     
     /************************** Constant Definitions *****************************/
    @@ -198,3 +204,6 @@ typedef void (*XExceptionHandler) (void *InstancePtr);
     #endif
     
     #endif	/* end of protection macro */
    +/**
    +* @} End of "addtogroup common_types".
    +*/
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xl2cc.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xl2cc.h
    similarity index 100%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xl2cc.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xl2cc.h
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xl2cc_counter.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xl2cc_counter.c
    similarity index 86%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xl2cc_counter.c
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xl2cc_counter.c
    index c9993950a..d6b88cb39 100644
    --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xl2cc_counter.c
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xl2cc_counter.c
    @@ -74,16 +74,16 @@ void XL2cc_EventCtrReset(void);
     /****************************************************************************/
     /**
     *
    -* This function initializes the event counters in L2 Cache controller with a
    -* set of event codes specified by the user.
    +* @brief	This function initializes the event counters in L2 Cache controller
    +*			with a set of event codes specified by the user.
     *
    -* @param	Event0 is the event code for counter 0.
    -* @param	Event1 is the event code for counter 1.
    -*		Use the event codes defined by XL2CC_* in xl2cc_counter.h.
    +* @param	Event0: Event code for counter 0.
    +* @param	Event1: Event code for counter 1.
     *
     * @return	None.
     *
    -* @note		None.
    +* @note		The definitions for event codes XL2CC_* can be found in
    +*			xl2cc_counter.h.
     *
     *****************************************************************************/
     void XL2cc_EventCtrInit(s32 Event0, s32 Event1)
    @@ -99,10 +99,11 @@ void XL2cc_EventCtrInit(s32 Event0, s32 Event1)
     	XL2cc_EventCtrReset();
     }
     
    +
     /****************************************************************************/
     /**
     *
    -* This function starts the event counters in L2 Cache controller.
    +* @brief	This function starts the event counters in L2 Cache controller.
     *
     * @param	None.
     *
    @@ -125,13 +126,13 @@ void XL2cc_EventCtrStart(void)
     /****************************************************************************/
     /**
     *
    -* This function disables the event counters in L2 Cache controller, saves the
    -* counter values and resets the counters.
    +* @brief	This function disables the event counters in L2 Cache controller,
    +*			saves the counter values and resets the counters.
     *
    -* @param	EveCtr0 is an output parameter which is used to return the value
    -*		in event counter 0.
    -*		EveCtr1 is an output parameter which is used to return the value
    -*		in event counter 1.
    +* @param	EveCtr0: Output parameter which is used to return the value
    +*			in event counter 0.
    +*			EveCtr1: Output parameter which is used to return the value
    +*			in event counter 1.
     *
     * @return	None.
     *
    @@ -153,7 +154,7 @@ void XL2cc_EventCtrStop(u32 *EveCtr0, u32 *EveCtr1)
     /****************************************************************************/
     /**
     *
    -* This function resets the event counters in L2 Cache controller.
    +* @brief	This function resets the event counters in L2 Cache controller.
     *
     * @param	None.
     *
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xl2cc_counter.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xl2cc_counter.h
    similarity index 87%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xl2cc_counter.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xl2cc_counter.h
    index e1557acfc..8d0a61f07 100644
    --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xl2cc_counter.h
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xl2cc_counter.h
    @@ -34,15 +34,17 @@
     *
     * @file xl2cc_counter.h
     *
    -* This header file contains APIs for configuring and controlling the event
    -* counters in PL310 L2 cache controller.
    -* PL310 has 2 event counters which can be used to count a variety of events
    -* like DRHIT, DRREQ, DWHIT, DWREQ, etc. This file defines configurations,
    -* where value configures the event counters to count a set of events.
    +* @addtogroup l2_event_counter_apis PL310 L2 Event Counters Functions
     *
    -* XL2cc_EventCtrInit API can be used to select a set of events and
    -* XL2cc_EventCtrStart configures the event counters and starts the counters.
    -* XL2cc_EventCtrStop diables the event counters and returns the counter values.
    +* xl2cc_counter.h contains APIs for configuring and controlling the event
    +* counters in PL310 L2 cache controller.
    +* PL310 has two event counters which can be used to count variety of events
    +* like DRHIT, DRREQ, DWHIT, DWREQ, etc. xl2cc_counter.h contains definitions
    +* for different configurations which can be used for the event counters to
    +* count a set of events.
    +*
    +*
    +* @{
     *
     * 
     * MODIFICATION HISTORY:
    @@ -106,3 +108,6 @@ void XL2cc_EventCtrStop(u32 *EveCtr0, u32 *EveCtr1);
     #endif /* __cplusplus */
     
     #endif /* L2CCCOUNTER_H */
    +/**
    +* @} End of "addtogroup l2_event_counter_apis".
    +*/
    \ No newline at end of file
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xparameters_ps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xparameters_ps.h
    similarity index 98%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xparameters_ps.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xparameters_ps.h
    index ea0d2bcde..0fa77710d 100644
    --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xparameters_ps.h
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xparameters_ps.h
    @@ -1,6 +1,6 @@
     /******************************************************************************
     *
    -* Copyright (C) 2010 - 2015 Xilinx, Inc.  All rights reserved.
    +* Copyright (C) 2010 - 2017 Xilinx, Inc.  All rights reserved.
     *
     * Permission is hereby granted, free of charge, to any person obtaining a copy
     * of this software and associated documentation files (the "Software"), to deal
    @@ -45,6 +45,8 @@
     * 3.04a sdm     02/02/12 Removed some of the defines as they are being generated through
     *                        driver tcl
     * 5.0	pkp		01/16/15 Added interrupt ID definition of ttc for TEST APP
    +* 6.6   srm     10/18/17 Added ARMA9 macro to identify CortexA9
    +*
     * 
    * * @note @@ -60,6 +62,9 @@ extern "C" { #endif +/**************************** Include Files *******************************/ + + /************************** Constant Definitions *****************************/ /* diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xplatform_info.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xplatform_info.c similarity index 73% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xplatform_info.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xplatform_info.c index 9d4560a98..2c08e5f2e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xplatform_info.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xplatform_info.c @@ -45,6 +45,13 @@ * 5.04 pkp 01/12/16 Added platform information support for Cortex-A53 32bit * mode * 6.00 mus 17/08/16 Removed unused variable from XGetPlatform_Info +* 6.4 ms 05/23/17 Added PSU_PMU macro to support XGetPSVersion_Info +* function for PMUFW. +* ms 06/13/17 Added PSU_PMU macro to provide support of +* XGetPlatform_Info function for PMUFW. +* mus 08/17/17 Add EL1 NS mode support for +* XGet_Zynq_UltraMp_Platform_info and XGetPSVersion_Info +* APIs. *
    * ******************************************************************************/ @@ -54,7 +61,10 @@ #include "xil_types.h" #include "xil_io.h" #include "xplatform_info.h" - +#if defined (__aarch64__) +#include "bspconfig.h" +#include "xil_smc.h" +#endif /************************** Constant Definitions *****************************/ /**************************** Type Definitions *******************************/ @@ -69,19 +79,17 @@ /*****************************************************************************/ /** * -* This API is used to provide information about platform +* @brief This API is used to provide information about platform * * @param None. * * @return The information about platform defined in xplatform_info.h * -* @note None. -* ******************************************************************************/ u32 XGetPlatform_Info() { -#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) return XPLAT_ZYNQ_ULTRA_MP; #elif (__microblaze__) return XPLAT_MICROBLAZE; @@ -93,43 +101,61 @@ u32 XGetPlatform_Info() /*****************************************************************************/ /** * -* This API is used to provide information about zynq ultrascale MP platform +* @brief This API is used to provide information about zynq ultrascale MP platform * * @param None. * * @return The information about zynq ultrascale MP platform defined in * xplatform_info.h * -* @note None. -* ******************************************************************************/ #if defined (ARMR5) || (__aarch64__) || (ARMA53_32) u32 XGet_Zynq_UltraMp_Platform_info() { +#if EL1_NONSECURE + XSmc_OutVar reg; + /* + * This SMC call will return, + * idcode - upper 32 bits of reg.Arg0 + * version - lower 32 bits of reg.Arg1 + */ + reg = Xil_Smc(GET_CHIPID_SMC_FID,0,0, 0, 0, 0, 0, 0); + return (u32)((reg.Arg1 >> XPLAT_INFO_SHIFT) & XPLAT_INFO_MASK); +#else u32 reg; reg = ((Xil_In32(XPAR_CSU_BASEADDR + XPAR_CSU_VER_OFFSET) >> 12U )& XPLAT_INFO_MASK); return reg; +#endif } #endif /*****************************************************************************/ /** * -* This API is used to provide information about PS Silicon version +* @brief This API is used to provide information about PS Silicon version * * @param None. * * @return The information about PS Silicon version. * -* @note None. -* ******************************************************************************/ -#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) u32 XGetPSVersion_Info() { +#if EL1_NONSECURE + /* + * This SMC call will return, + * idcode - upper 32 bits of reg.Arg0 + * version - lower 32 bits of reg.Arg1 + */ + XSmc_OutVar reg; + reg = Xil_Smc(GET_CHIPID_SMC_FID,0,0, 0, 0, 0, 0, 0); + return (u32)(reg.Arg1 & XPS_VERSION_INFO_MASK); +#else u32 reg; reg = (Xil_In32(XPAR_CSU_BASEADDR + XPAR_CSU_VER_OFFSET) & XPS_VERSION_INFO_MASK); return reg; +#endif } #endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xplatform_info.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xplatform_info.h similarity index 80% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xplatform_info.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xplatform_info.h index 7028a83af..0582222bc 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xplatform_info.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xplatform_info.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,7 +34,21 @@ * * @file xplatform_info.h * -* This file contains definitions for various platforms available +* @addtogroup common_platform_info APIs to Get Platform Information +* +* The xplatform_info.h file contains definitions for various available Xilinx® +* platforms. Also, it contains prototype of APIs, which can be used to get the +* platform information. +* +* @{ +*
    +* MODIFICATION HISTORY:
    +*
    +* Ver   Who    Date    Changes
    +* ----- ---- --------- -------------------------------------------------------
    +* 6.4    ms   05/23/17 Added PSU_PMU macro to support XGetPSVersion_Info
    +*                      function for PMUFW.
    +* 
    * ******************************************************************************/ @@ -65,6 +79,7 @@ extern "C" { #define XPS_VERSION_2 0x1 #define XPLAT_INFO_MASK (0xF) +#define XPLAT_INFO_SHIFT (0xC) #define XPS_VERSION_INFO_MASK (0xF) /**************************** Type Definitions *******************************/ @@ -74,7 +89,7 @@ extern "C" { u32 XGetPlatform_Info(); -#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) u32 XGetPSVersion_Info(); #endif @@ -89,3 +104,6 @@ u32 XGet_Zynq_UltraMp_Platform_info(); #endif #endif /* end of protection macro */ +/** +* @} End of "addtogroup common_platform_info". +*/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpm_counter.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpm_counter.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpm_counter.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpm_counter.c index 75c9b4943..d0765b600 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpm_counter.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpm_counter.c @@ -75,7 +75,7 @@ void Xpm_ResetEventCounters (void); /****************************************************************************/ /** * -* This function disables the Cortex A9 event counters. +* @brief This function disables the Cortex A9 event counters. * * @param None. * @@ -93,7 +93,7 @@ void Xpm_DisableEventCounters(void) /****************************************************************************/ /** * -* This function enables the Cortex A9 event counters. +* @brief This function enables the Cortex A9 event counters. * * @param None. * @@ -111,7 +111,7 @@ void Xpm_EnableEventCounters(void) /****************************************************************************/ /** * -* This function resets the Cortex A9 event counters. +* @brief This function resets the Cortex A9 event counters. * * @param None. * @@ -138,13 +138,13 @@ void Xpm_ResetEventCounters(void) /****************************************************************************/ /** +* @brief This function configures the Cortex A9 event counters controller, +* with the event codes, in a configuration selected by the user and +* enables the counters. * -* This function configures the Cortex A9 event counters controller, with the -* event codes, in a configuration selected by the user and enables the counters. -* -* @param PmcrCfg is configuration value based on which the event counters -* are configured. -* Use XPM_CNTRCFG* values defined in xpm_counter.h. +* @param PmcrCfg: Configuration value based on which the event counters +* are configured. XPM_CNTRCFG* values defined in xpm_counter.h can +* be utilized for setting configuration. * * @return None. * @@ -264,11 +264,12 @@ void Xpm_SetEvents(s32 PmcrCfg) /****************************************************************************/ /** * -* This function disables the event counters and returns the counter values. +* @brief This function disables the event counters and returns the counter +* values. * -* @param PmCtrValue is a pointer to an array of type u32 PmCtrValue[6]. -* It is an output parameter which is used to return the PM -* counter values. +* @param PmCtrValue: Pointer to an array of type u32 PmCtrValue[6]. +* It is an output parameter which is used to return the PM +* counter values. * * @return None. * diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpm_counter.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpm_counter.h similarity index 96% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpm_counter.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpm_counter.h index af7fac9ea..45f091982 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpm_counter.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpm_counter.h @@ -34,21 +34,22 @@ * * @file xpm_counter.h * -* This header file contains APIs for configuring and controlling the Cortex-A9 -* Performance Monitor Events. -* Cortex-A9 Performance Monitor has 6 event counters which can be used to -* count a variety of events described in Coretx-A9 TRM. This file defines -* configurations, where value configures the event counters to count a -* set of events. +* @addtogroup a9_event_counter_apis Cortex A9 Event Counters Functions * -* Xpm_SetEvents can be used to set the event counters to count a set of events -* and Xpm_GetEventCounters can be used to read the counter values. +* Cortex A9 event counter functions can be utilized to configure and control +* the Cortex-A9 performance monitor events. +* +* Cortex-A9 performance monitor has six event counters which can be used to +* count a variety of events described in Coretx-A9 TRM. xpm_counter.h defines +* configurations XPM_CNTRCFGx which can be used to program the event counters +* to count a set of events. * * @note -* -* This file doesn't handle the Cortex-A9 cycle counter, as the cycle counter is +* It doesn't handle the Cortex-A9 cycle counter, as the cycle counter is * being used for time keeping. * +* @{ +* *
     * MODIFICATION HISTORY:
     *
    @@ -569,3 +570,6 @@ void Xpm_GetEventCounters(u32 *PmCtrValue);
     #endif
     
     #endif
    +/**
    +* @} End of "addtogroup a9_event_counter_apis".
    +*/
    \ No newline at end of file
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpseudo_asm.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpseudo_asm.h
    similarity index 75%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpseudo_asm.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpseudo_asm.h
    index 29298617c..4ad9e5d73 100644
    --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpseudo_asm.h
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpseudo_asm.h
    @@ -34,8 +34,21 @@
     *
     * @file xpseudo_asm.h
     *
    -* This header file contains macros for using inline assembler code.
    +* @addtogroup a9_specific Cortex A9 Processor Specific Include Files
     *
    +* The xpseudo_asm.h includes xreg_cortexa9.h and xpseudo_asm_gcc.h.
    +*
    +* The xreg_cortexa9.h file contains definitions for inline assembler code.
    +* It provides inline definitions for Cortex A9 GPRs, SPRs, MPE registers,
    +* co-processor registers and Debug registers.
    +*
    +* The xpseudo_asm_gcc.h contains the definitions for the most often used inline
    +* assembler instructions, available as macros. These can be very useful for
    +* tasks such as setting or getting special purpose registers, synchronization,
    +* or cache manipulation etc. These inline assembler instructions can be used
    +* from drivers and user applications written in C.
    +*
    +* @{
     * 
     * MODIFICATION HISTORY:
     *
    @@ -59,3 +72,6 @@
     #endif
     
     #endif /* XPSEUDO_ASM_H */
    +/**
    +* @} End of "addtogroup a9_specific".
    +*/
    \ No newline at end of file
    diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpseudo_asm_gcc.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpseudo_asm_gcc.h
    similarity index 97%
    rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpseudo_asm_gcc.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpseudo_asm_gcc.h
    index b475c90e7..1b6726394 100644
    --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpseudo_asm_gcc.h
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xpseudo_asm_gcc.h
    @@ -71,7 +71,7 @@ extern "C" {
     
     #if defined (__aarch64__)
     /* pseudo assembler instructions */
    -#define mfcpsr()	({u32 rval; \
    +#define mfcpsr()	({u32 rval = 0U; \
     			   asm volatile("mrs %0,  DAIF" : "=r" (rval));\
     			  rval;\
     			 })
    @@ -123,7 +123,7 @@ extern "C" {
     #else
     
     /* pseudo assembler instructions */
    -#define mfcpsr()	({u32 rval; \
    +#define mfcpsr()	({u32 rval = 0U; \
     			  __asm__ __volatile__(\
     			    "mrs	%0, cpsr\n"\
     			    : "=r" (rval)\
    @@ -215,7 +215,7 @@ extern "C" {
     #define mtcptlbi(reg)	__asm__ __volatile__("tlbi " #reg)
     #define mtcpat(reg,val)	__asm__ __volatile__("at " #reg ",%0"  : : "r" (val))
     /* CP15 operations */
    -#define mfcp(reg)	({u64 rval;\
    +#define mfcp(reg)	({u64 rval = 0U;\
     			__asm__ __volatile__("mrs	%0, " #reg : "=r" (rval));\
     			rval;\
     			})
    @@ -229,7 +229,7 @@ extern "C" {
     			 : : "r" (v)\
     			);
     
    -#define mfcp(rn)	({u32 rval; \
    +#define mfcp(rn)	({u32 rval = 0U; \
     			 __asm__ __volatile__(\
     			   "mrc " rn "\n"\
     			   : "=r" (rval)\
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xreg_cortexa9.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xreg_cortexa9.h
    similarity index 100%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xreg_cortexa9.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xreg_cortexa9.h
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xstatus.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xstatus.h
    new file mode 100644
    index 000000000..993747588
    --- /dev/null
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xstatus.h
    @@ -0,0 +1,535 @@
    +/******************************************************************************
    +*
    +* Copyright (C) 2002 - 2015 Xilinx, Inc. All rights reserved.
    +*
    +* Permission is hereby granted, free of charge, to any person obtaining a copy
    +* of this software and associated documentation files (the "Software"), to deal
    +* in the Software without restriction, including without limitation the rights
    +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +* copies of the Software, and to permit persons to whom the Software is
    +* furnished to do so, subject to the following conditions:
    +*
    +* The above copyright notice and this permission notice shall be included in
    +* all copies or substantial portions of the Software.
    +*
    +* Use of the Software is limited solely to applications:
    +* (a) running on a Xilinx device, or
    +* (b) that interact with a Xilinx device through a bus or interconnect.
    +*
    +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    +* XILINX  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
    +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
    +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +* SOFTWARE.
    +*
    +* Except as contained in this notice, the name of the Xilinx shall not be used
    +* in advertising or otherwise to promote the sale, use or other dealings in
    +* this Software without prior written authorization from Xilinx.
    +*
    +******************************************************************************/
    +/*****************************************************************************/
    +/**
    +*
    +* @file xstatus.h
    +*
    +* @addtogroup common_status_codes Xilinx® software status codes
    +*
    +* The xstatus.h file contains the Xilinx® software status codes.These codes are
    +* used throughout the Xilinx device drivers.
    +*
    +* @{
    +******************************************************************************/
    +
    +#ifndef XSTATUS_H		/* prevent circular inclusions */
    +#define XSTATUS_H		/* by using protection macros */
    +
    +#ifdef __cplusplus
    +extern "C" {
    +#endif
    +
    +/***************************** Include Files *********************************/
    +
    +#include "xil_types.h"
    +#include "xil_assert.h"
    +
    +/************************** Constant Definitions *****************************/
    +
    +/*********************** Common statuses 0 - 500 *****************************/
    +/**
    +@name Common Status Codes for All Device Drivers
    +@{
    +*/
    +#define XST_SUCCESS                     0L
    +#define XST_FAILURE                     1L
    +#define XST_DEVICE_NOT_FOUND            2L
    +#define XST_DEVICE_BLOCK_NOT_FOUND      3L
    +#define XST_INVALID_VERSION             4L
    +#define XST_DEVICE_IS_STARTED           5L
    +#define XST_DEVICE_IS_STOPPED           6L
    +#define XST_FIFO_ERROR                  7L	/*!< An error occurred during an
    +						   operation with a FIFO such as
    +						   an underrun or overrun, this
    +						   error requires the device to
    +						   be reset */
    +#define XST_RESET_ERROR                 8L	/*!< An error occurred which requires
    +						   the device to be reset */
    +#define XST_DMA_ERROR                   9L	/*!< A DMA error occurred, this error
    +						   typically requires the device
    +						   using the DMA to be reset */
    +#define XST_NOT_POLLED                  10L	/*!< The device is not configured for
    +						   polled mode operation */
    +#define XST_FIFO_NO_ROOM                11L	/*!< A FIFO did not have room to put
    +						   the specified data into */
    +#define XST_BUFFER_TOO_SMALL            12L	/*!< The buffer is not large enough
    +						   to hold the expected data */
    +#define XST_NO_DATA                     13L	/*!< There was no data available */
    +#define XST_REGISTER_ERROR              14L	/*!< A register did not contain the
    +						   expected value */
    +#define XST_INVALID_PARAM               15L	/*!< An invalid parameter was passed
    +						   into the function */
    +#define XST_NOT_SGDMA                   16L	/*!< The device is not configured for
    +						   scatter-gather DMA operation */
    +#define XST_LOOPBACK_ERROR              17L	/*!< A loopback test failed */
    +#define XST_NO_CALLBACK                 18L	/*!< A callback has not yet been
    +						   registered */
    +#define XST_NO_FEATURE                  19L	/*!< Device is not configured with
    +						   the requested feature */
    +#define XST_NOT_INTERRUPT               20L	/*!< Device is not configured for
    +						   interrupt mode operation */
    +#define XST_DEVICE_BUSY                 21L	/*!< Device is busy */
    +#define XST_ERROR_COUNT_MAX             22L	/*!< The error counters of a device
    +						   have maxed out */
    +#define XST_IS_STARTED                  23L	/*!< Used when part of device is
    +						   already started i.e.
    +						   sub channel */
    +#define XST_IS_STOPPED                  24L	/*!< Used when part of device is
    +						   already stopped i.e.
    +						   sub channel */
    +#define XST_DATA_LOST                   26L	/*!< Driver defined error */
    +#define XST_RECV_ERROR                  27L	/*!< Generic receive error */
    +#define XST_SEND_ERROR                  28L	/*!< Generic transmit error */
    +#define XST_NOT_ENABLED                 29L	/*!< A requested service is not
    +						   available because it has not
    +						   been enabled */
    +/** @} */
    +/***************** Utility Component statuses 401 - 500  *********************/
    +/**
    +@name Utility Component Status Codes 401 - 500
    +@{
    +*/
    +#define XST_MEMTEST_FAILED              401L	/*!< Memory test failed */
    +
    +/** @} */
    +/***************** Common Components statuses 501 - 1000 *********************/
    +/**
    +@name Packet Fifo Status Codes 501 - 510
    +@{
    +*/
    +/********************* Packet Fifo statuses 501 - 510 ************************/
    +
    +#define XST_PFIFO_LACK_OF_DATA          501L	/*!< Not enough data in FIFO   */
    +#define XST_PFIFO_NO_ROOM               502L	/*!< Not enough room in FIFO   */
    +#define XST_PFIFO_BAD_REG_VALUE         503L	/*!< Self test, a register value
    +						   was invalid after reset */
    +#define XST_PFIFO_ERROR                 504L	/*!< Generic packet FIFO error */
    +#define XST_PFIFO_DEADLOCK              505L	/*!< Packet FIFO is reporting
    +						 * empty and full simultaneously
    +						 */
    +/** @} */
    +/**
    +@name DMA Status Codes 511 - 530
    +@{
    +*/
    +/************************** DMA statuses 511 - 530 ***************************/
    +
    +#define XST_DMA_TRANSFER_ERROR          511L	/*!< Self test, DMA transfer
    +						   failed */
    +#define XST_DMA_RESET_REGISTER_ERROR    512L	/*!< Self test, a register value
    +						   was invalid after reset */
    +#define XST_DMA_SG_LIST_EMPTY           513L	/*!< Scatter gather list contains
    +						   no buffer descriptors ready
    +						   to be processed */
    +#define XST_DMA_SG_IS_STARTED           514L	/*!< Scatter gather not stopped */
    +#define XST_DMA_SG_IS_STOPPED           515L	/*!< Scatter gather not running */
    +#define XST_DMA_SG_LIST_FULL            517L	/*!< All the buffer desciptors of
    +						   the scatter gather list are
    +						   being used */
    +#define XST_DMA_SG_BD_LOCKED            518L	/*!< The scatter gather buffer
    +						   descriptor which is to be
    +						   copied over in the scatter
    +						   list is locked */
    +#define XST_DMA_SG_NOTHING_TO_COMMIT    519L	/*!< No buffer descriptors have been
    +						   put into the scatter gather
    +						   list to be commited */
    +#define XST_DMA_SG_COUNT_EXCEEDED       521L	/*!< The packet count threshold
    +						   specified was larger than the
    +						   total # of buffer descriptors
    +						   in the scatter gather list */
    +#define XST_DMA_SG_LIST_EXISTS          522L	/*!< The scatter gather list has
    +						   already been created */
    +#define XST_DMA_SG_NO_LIST              523L	/*!< No scatter gather list has
    +						   been created */
    +#define XST_DMA_SG_BD_NOT_COMMITTED     524L	/*!< The buffer descriptor which was
    +						   being started was not committed
    +						   to the list */
    +#define XST_DMA_SG_NO_DATA              525L	/*!< The buffer descriptor to start
    +						   has already been used by the
    +						   hardware so it can't be reused
    +						 */
    +#define XST_DMA_SG_LIST_ERROR           526L	/*!< General purpose list access
    +						   error */
    +#define XST_DMA_BD_ERROR                527L	/*!< General buffer descriptor
    +						   error */
    +/** @} */
    +/**
    +@name IPIF Status Codes Codes 531 - 550
    +@{
    +*/
    +/************************** IPIF statuses 531 - 550 ***************************/
    +
    +#define XST_IPIF_REG_WIDTH_ERROR        531L	/*!< An invalid register width
    +						   was passed into the function */
    +#define XST_IPIF_RESET_REGISTER_ERROR   532L	/*!< The value of a register at
    +						   reset was not valid */
    +#define XST_IPIF_DEVICE_STATUS_ERROR    533L	/*!< A write to the device interrupt
    +						   status register did not read
    +						   back correctly */
    +#define XST_IPIF_DEVICE_ACK_ERROR       534L	/*!< The device interrupt status
    +						   register did not reset when
    +						   acked */
    +#define XST_IPIF_DEVICE_ENABLE_ERROR    535L	/*!< The device interrupt enable
    +						   register was not updated when
    +						   other registers changed */
    +#define XST_IPIF_IP_STATUS_ERROR        536L	/*!< A write to the IP interrupt
    +						   status register did not read
    +						   back correctly */
    +#define XST_IPIF_IP_ACK_ERROR           537L	/*!< The IP interrupt status register
    +						   did not reset when acked */
    +#define XST_IPIF_IP_ENABLE_ERROR        538L	/*!< IP interrupt enable register was
    +						   not updated correctly when other
    +						   registers changed */
    +#define XST_IPIF_DEVICE_PENDING_ERROR   539L	/*!< The device interrupt pending
    +						   register did not indicate the
    +						   expected value */
    +#define XST_IPIF_DEVICE_ID_ERROR        540L	/*!< The device interrupt ID register
    +						   did not indicate the expected
    +						   value */
    +#define XST_IPIF_ERROR                  541L	/*!< Generic ipif error */
    +/** @} */
    +
    +/****************** Device specific statuses 1001 - 4095 *********************/
    +/**
    +@name Ethernet Status Codes 1001 - 1050
    +@{
    +*/
    +/********************* Ethernet statuses 1001 - 1050 *************************/
    +
    +#define XST_EMAC_MEMORY_SIZE_ERROR  1001L	/*!< Memory space is not big enough
    +						 * to hold the minimum number of
    +						 * buffers or descriptors */
    +#define XST_EMAC_MEMORY_ALLOC_ERROR 1002L	/*!< Memory allocation failed */
    +#define XST_EMAC_MII_READ_ERROR     1003L	/*!< MII read error */
    +#define XST_EMAC_MII_BUSY           1004L	/*!< An MII operation is in progress */
    +#define XST_EMAC_OUT_OF_BUFFERS     1005L	/*!< Driver is out of buffers */
    +#define XST_EMAC_PARSE_ERROR        1006L	/*!< Invalid driver init string */
    +#define XST_EMAC_COLLISION_ERROR    1007L	/*!< Excess deferral or late
    +						 * collision on polled send */
    +/** @} */
    +/**
    +@name UART Status Codes 1051 - 1075
    +@{
    +*/
    +/*********************** UART statuses 1051 - 1075 ***************************/
    +#define XST_UART
    +
    +#define XST_UART_INIT_ERROR         1051L
    +#define XST_UART_START_ERROR        1052L
    +#define XST_UART_CONFIG_ERROR       1053L
    +#define XST_UART_TEST_FAIL          1054L
    +#define XST_UART_BAUD_ERROR         1055L
    +#define XST_UART_BAUD_RANGE         1056L
    +
    +/** @} */
    +/**
    +@name IIC Status Codes 1076 - 1100
    +@{
    +*/
    +/************************ IIC statuses 1076 - 1100 ***************************/
    +
    +#define XST_IIC_SELFTEST_FAILED         1076	/*!< self test failed            */
    +#define XST_IIC_BUS_BUSY                1077	/*!< bus found busy              */
    +#define XST_IIC_GENERAL_CALL_ADDRESS    1078	/*!< mastersend attempted with   */
    +					     /* general call address        */
    +#define XST_IIC_STAND_REG_RESET_ERROR   1079	/*!< A non parameterizable reg   */
    +					     /* value after reset not valid */
    +#define XST_IIC_TX_FIFO_REG_RESET_ERROR 1080	/*!< Tx fifo included in design  */
    +					     /* value after reset not valid */
    +#define XST_IIC_RX_FIFO_REG_RESET_ERROR 1081	/*!< Rx fifo included in design  */
    +					     /* value after reset not valid */
    +#define XST_IIC_TBA_REG_RESET_ERROR     1082	/*!< 10 bit addr incl in design  */
    +					     /* value after reset not valid */
    +#define XST_IIC_CR_READBACK_ERROR       1083	/*!< Read of the control register */
    +					     /* didn't return value written */
    +#define XST_IIC_DTR_READBACK_ERROR      1084	/*!< Read of the data Tx reg     */
    +					     /* didn't return value written */
    +#define XST_IIC_DRR_READBACK_ERROR      1085	/*!< Read of the data Receive reg */
    +					     /* didn't return value written */
    +#define XST_IIC_ADR_READBACK_ERROR      1086	/*!< Read of the data Tx reg     */
    +					     /* didn't return value written */
    +#define XST_IIC_TBA_READBACK_ERROR      1087	/*!< Read of the 10 bit addr reg */
    +					     /* didn't return written value */
    +#define XST_IIC_NOT_SLAVE               1088	/*!< The device isn't a slave    */
    +/** @} */
    +/**
    +@name ATMC Status Codes 1101 - 1125
    +@{
    +*/
    +/*********************** ATMC statuses 1101 - 1125 ***************************/
    +
    +#define XST_ATMC_ERROR_COUNT_MAX    1101L	/*!< the error counters in the ATM
    +						   controller hit the max value
    +						   which requires the statistics
    +						   to be cleared */
    +/** @} */
    +/**
    +@name Flash Status Codes 1126 - 1150
    +@{
    +*/
    +/*********************** Flash statuses 1126 - 1150 **************************/
    +
    +#define XST_FLASH_BUSY                1126L	/*!< Flash is erasing or programming
    +						 */
    +#define XST_FLASH_READY               1127L	/*!< Flash is ready for commands */
    +#define XST_FLASH_ERROR               1128L	/*!< Flash had detected an internal
    +						   error. Use XFlash_DeviceControl
    +						   to retrieve device specific codes
    +						 */
    +#define XST_FLASH_ERASE_SUSPENDED     1129L	/*!< Flash is in suspended erase state
    +						 */
    +#define XST_FLASH_WRITE_SUSPENDED     1130L	/*!< Flash is in suspended write state
    +						 */
    +#define XST_FLASH_PART_NOT_SUPPORTED  1131L	/*!< Flash type not supported by
    +						   driver */
    +#define XST_FLASH_NOT_SUPPORTED       1132L	/*!< Operation not supported */
    +#define XST_FLASH_TOO_MANY_REGIONS    1133L	/*!< Too many erase regions */
    +#define XST_FLASH_TIMEOUT_ERROR       1134L	/*!< Programming or erase operation
    +						   aborted due to a timeout */
    +#define XST_FLASH_ADDRESS_ERROR       1135L	/*!< Accessed flash outside its
    +						   addressible range */
    +#define XST_FLASH_ALIGNMENT_ERROR     1136L	/*!< Write alignment error */
    +#define XST_FLASH_BLOCKING_CALL_ERROR 1137L	/*!< Couldn't return immediately from
    +						   write/erase function with
    +						   XFL_NON_BLOCKING_WRITE/ERASE
    +						   option cleared */
    +#define XST_FLASH_CFI_QUERY_ERROR     1138L	/*!< Failed to query the device */
    +/** @} */
    +/**
    +@name SPI Status Codes 1151 - 1175
    +@{
    +*/
    +/*********************** SPI statuses 1151 - 1175 ****************************/
    +
    +#define XST_SPI_MODE_FAULT          1151	/*!< master was selected as slave */
    +#define XST_SPI_TRANSFER_DONE       1152	/*!< data transfer is complete */
    +#define XST_SPI_TRANSMIT_UNDERRUN   1153	/*!< slave underruns transmit register */
    +#define XST_SPI_RECEIVE_OVERRUN     1154	/*!< device overruns receive register */
    +#define XST_SPI_NO_SLAVE            1155	/*!< no slave has been selected yet */
    +#define XST_SPI_TOO_MANY_SLAVES     1156	/*!< more than one slave is being
    +						 * selected */
    +#define XST_SPI_NOT_MASTER          1157	/*!< operation is valid only as master */
    +#define XST_SPI_SLAVE_ONLY          1158	/*!< device is configured as slave-only
    +						 */
    +#define XST_SPI_SLAVE_MODE_FAULT    1159	/*!< slave was selected while disabled */
    +#define XST_SPI_SLAVE_MODE          1160	/*!< device has been addressed as slave */
    +#define XST_SPI_RECEIVE_NOT_EMPTY   1161	/*!< device received data in slave mode */
    +
    +#define XST_SPI_COMMAND_ERROR       1162	/*!< unrecognised command - qspi only */
    +#define XST_SPI_POLL_DONE           1163        /*!< controller completed polling the
    +						   device for status */
    +/** @} */
    +/**
    +@name OPB Arbiter Status Codes 1176 - 1200
    +@{
    +*/
    +/********************** OPB Arbiter statuses 1176 - 1200 *********************/
    +
    +#define XST_OPBARB_INVALID_PRIORITY  1176	/*!< the priority registers have either
    +						 * one master assigned to two or more
    +						 * priorities, or one master not
    +						 * assigned to any priority
    +						 */
    +#define XST_OPBARB_NOT_SUSPENDED     1177	/*!< an attempt was made to modify the
    +						 * priority levels without first
    +						 * suspending the use of priority
    +						 * levels
    +						 */
    +#define XST_OPBARB_PARK_NOT_ENABLED  1178	/*!< bus parking by id was enabled but
    +						 * bus parking was not enabled
    +						 */
    +#define XST_OPBARB_NOT_FIXED_PRIORITY 1179	/*!< the arbiter must be in fixed
    +						 * priority mode to allow the
    +						 * priorities to be changed
    +						 */
    +/** @} */
    +/**
    +@name INTC Status Codes 1201 - 1225
    +@{
    +*/
    +/************************ Intc statuses 1201 - 1225 **************************/
    +
    +#define XST_INTC_FAIL_SELFTEST      1201	/*!< self test failed */
    +#define XST_INTC_CONNECT_ERROR      1202	/*!< interrupt already in use */
    +/** @} */
    +/**
    +@name TmrCtr Status Codes 1226 - 1250
    +@{
    +*/
    +/********************** TmrCtr statuses 1226 - 1250 **************************/
    +
    +#define XST_TMRCTR_TIMER_FAILED     1226	/*!< self test failed */
    +/** @} */
    +/**
    +@name WdtTb Status Codes 1251 - 1275
    +@{
    +*/
    +/********************** WdtTb statuses 1251 - 1275 ***************************/
    +
    +#define XST_WDTTB_TIMER_FAILED      1251L
    +/** @} */
    +/**
    +@name PlbArb status Codes 1276 - 1300
    +@{
    +*/
    +/********************** PlbArb statuses 1276 - 1300 **************************/
    +
    +#define XST_PLBARB_FAIL_SELFTEST    1276L
    +/** @} */
    +/**
    +@name Plb2Opb Status Codes 1301 - 1325
    +@{
    +*/
    +/********************** Plb2Opb statuses 1301 - 1325 *************************/
    +
    +#define XST_PLB2OPB_FAIL_SELFTEST   1301L
    +/** @} */
    +/**
    +@name Opb2Plb Status 1326 - 1350
    +@{
    +*/
    +/********************** Opb2Plb statuses 1326 - 1350 *************************/
    +
    +#define XST_OPB2PLB_FAIL_SELFTEST   1326L
    +/** @} */
    +/**
    +@name SysAce Status Codes 1351 - 1360
    +@{
    +*/
    +/********************** SysAce statuses 1351 - 1360 **************************/
    +
    +#define XST_SYSACE_NO_LOCK          1351L	/*!< No MPU lock has been granted */
    +/** @} */
    +/**
    +@name PCI Bridge Status Codes 1361 - 1375
    +@{
    +*/
    +/********************** PCI Bridge statuses 1361 - 1375 **********************/
    +
    +#define XST_PCI_INVALID_ADDRESS     1361L
    +/** @} */
    +/**
    +@name FlexRay Constants 1400 - 1409
    +@{
    +*/
    +/********************** FlexRay constants 1400 - 1409 *************************/
    +
    +#define XST_FR_TX_ERROR			1400
    +#define XST_FR_TX_BUSY			1401
    +#define XST_FR_BUF_LOCKED		1402
    +#define XST_FR_NO_BUF			1403
    +/** @} */
    +/**
    +@name USB constants 1410 - 1420
    +@{
    +*/
    +/****************** USB constants 1410 - 1420  *******************************/
    +
    +#define XST_USB_ALREADY_CONFIGURED	1410
    +#define XST_USB_BUF_ALIGN_ERROR		1411
    +#define XST_USB_NO_DESC_AVAILABLE	1412
    +#define XST_USB_BUF_TOO_BIG		1413
    +#define XST_USB_NO_BUF			1414
    +/** @} */
    +/**
    +@name HWICAP constants 1421 - 1429
    +@{
    +*/
    +/****************** HWICAP constants 1421 - 1429  *****************************/
    +
    +#define XST_HWICAP_WRITE_DONE		1421
    +
    +/** @} */
    +/**
    +@name AXI VDMA constants 1430 - 1440
    +@{
    +*/
    +/****************** AXI VDMA constants 1430 - 1440  *****************************/
    +
    +#define XST_VDMA_MISMATCH_ERROR		1430
    +/** @} */
    +/**
    +@name NAND Flash Status Codes 1441 - 1459
    +@{
    +*/
    +/*********************** NAND Flash statuses 1441 - 1459  *********************/
    +
    +#define XST_NAND_BUSY			1441L	/*!< Flash is erasing or
    +						 * programming
    +						 */
    +#define XST_NAND_READY			1442L	/*!< Flash is ready for commands
    +						 */
    +#define XST_NAND_ERROR			1443L	/*!< Flash had detected an
    +						 * internal error.
    +						 */
    +#define XST_NAND_PART_NOT_SUPPORTED	1444L	/*!< Flash type not supported by
    +						 * driver
    +						 */
    +#define XST_NAND_OPT_NOT_SUPPORTED	1445L	/*!< Operation not supported
    +						 */
    +#define XST_NAND_TIMEOUT_ERROR		1446L	/*!< Programming or erase
    +						 * operation aborted due to a
    +						 * timeout
    +						 */
    +#define XST_NAND_ADDRESS_ERROR		1447L	/*!< Accessed flash outside its
    +						 * addressible range
    +						 */
    +#define XST_NAND_ALIGNMENT_ERROR	1448L	/*!< Write alignment error
    +						 */
    +#define XST_NAND_PARAM_PAGE_ERROR	1449L	/*!< Failed to read parameter
    +						 * page of the device
    +						 */
    +#define XST_NAND_CACHE_ERROR		1450L	/*!< Flash page buffer error
    +						 */
    +
    +#define XST_NAND_WRITE_PROTECTED	1451L	/*!< Flash is write protected
    +						 */
    +/** @} */
    +
    +/**************************** Type Definitions *******************************/
    +
    +typedef s32 XStatus;
    +
    +/***************** Macros (Inline Functions) Definitions *********************/
    +
    +
    +/************************** Function Prototypes ******************************/
    +
    +#ifdef __cplusplus
    +}
    +#endif
    +
    +#endif /* end of protection macro */
    +/**
    +* @} End of "addtogroup common_status_codes".
    +*/
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xtime_l.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xtime_l.c
    similarity index 88%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xtime_l.c
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xtime_l.c
    index d24f41d1a..e81643f90 100644
    --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xtime_l.c
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xtime_l.c
    @@ -66,16 +66,18 @@
     
     /************************** Function Prototypes ******************************/
     
    -/****************************************************************************
    +/****************************************************************************/
    +/**
    +* @brief	Set the time in the Global Timer Counter Register.
     *
    -* Set the time in the Global Timer Counter Register.
    -*
    -* @param	Value to be written to the Global Timer Counter Register.
    +* @param	Xtime_Global: 64-bit Value to be written to the Global Timer
    +*			Counter Register.
     *
     * @return	None.
     *
    -* @note		In multiprocessor environment reference time will reset/lost for
    -*		all processors, when this function called by any one processor.
    +* @note		When this function is called by any one processor in a multi-
    +*			processor environment, reference time will reset/lost for all
    +*			processors.
     *
     ****************************************************************************/
     void XTime_SetTime(XTime Xtime_Global)
    @@ -92,11 +94,12 @@ void XTime_SetTime(XTime Xtime_Global)
     	Xil_Out32((u32)GLOBAL_TMR_BASEADDR + (u32)GTIMER_CONTROL_OFFSET, (u32)0x1);
     }
     
    -/****************************************************************************
    +/****************************************************************************/
    +/**
    +* @brief	Get the time from the Global Timer Counter Register.
     *
    -* Get the time from the Global Timer Counter Register.
    -*
    -* @param	Pointer to the location to be updated with the time.
    +* @param	Xtime_Global: Pointer to the 64-bit location which will be
    +*			updated with the current timer value.
     *
     * @return	None.
     *
    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xtime_l.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xtime_l.h
    similarity index 83%
    rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xtime_l.h
    rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xtime_l.h
    index e5f43b846..9b872b6cb 100644
    --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xtime_l.h
    +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v6_6/src/xtime_l.h
    @@ -1,6 +1,6 @@
     /******************************************************************************
     *
    -* Copyright (C) 2009 - 2015 Xilinx, Inc.  All rights reserved.
    +* Copyright (C) 2009 - 2017 Xilinx, Inc.  All rights reserved.
     *
     * Permission is hereby granted, free of charge, to any person obtaining a copy
     * of this software and associated documentation files (the "Software"), to deal
    @@ -32,7 +32,13 @@
     /*****************************************************************************/
     /**
     * @file xtime_l.h
    +* @addtogroup a9_time_apis Cortex A9 Time Functions
     *
    +* xtime_l.h provides access to the 64-bit Global Counter in the PMU. This
    +* counter increases by one at every two processor cycles. These functions can
    +* be used to get/set time in the global timer.
    +*
    +* @{
     * 
     * MODIFICATION HISTORY:
     *
    @@ -42,10 +48,10 @@
     * 3.06a sgd    05/15/12 Upadted get/set time functions to make use Global Timer
     * 3.06a asa    06/17/12 Reverted back the changes to make use Global Timer.
     * 3.07a sgd    07/05/12 Upadted get/set time functions to make use Global Timer
    +* 6.6   srm    10/23/17 Updated the macros to support user configurable sleep
    +*						implementation
     * 
    * -* @note None. -* ******************************************************************************/ #ifndef XTIME_H /* prevent circular inclusions */ @@ -72,9 +78,16 @@ typedef u64 XTime; #define GTIMER_COUNTER_UPPER_OFFSET 0x04U #define GTIMER_CONTROL_OFFSET 0x08U - +#if defined (SLEEP_TIMER_BASEADDR) +#define COUNTS_PER_SECOND (SLEEP_TIMER_FREQUENCY) +#else /* Global Timer is always clocked at half of the CPU frequency */ #define COUNTS_PER_SECOND (XPAR_CPU_CORTEXA9_CORE_CLOCK_FREQ_HZ /2) +#endif + +#if defined (XSLEEP_TIMER_IS_DEFAULT_TIMER) +#pragma message ("For the sleep routines, Global timer is being used") +#endif /************************** Variable Definitions *****************************/ /************************** Function Prototypes ******************************/ @@ -87,3 +100,6 @@ void XTime_GetTime(XTime *Xtime_Global); #endif /* __cplusplus */ #endif /* XTIME_H */ +/** +* @} End of "addtogroup a9_time_apis". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps.c similarity index 95% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps.c index 394262868..b2382f1b2 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xttcps.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file contains the implementation of the XTtcPs driver. This driver @@ -52,7 +52,10 @@ * to stop the timer before configuring * 3.2 mus 10/28/16 Modified XTtcPs_CalcIntervalFromFreq to calculate * 32 bit interval count for zynq ultrascale+mpsoc -* +* 3.5 srm 10/06/17 Updated XTtcPs_GetMatchValue and XTtcPs_SetMatchValue +* APIs to use correct match register width for zynq +* (i.e. 16 bit) and zynq ultrascale+mpsoc (i.e. 32 bit). +* It fixes CR# 986617 *
    * ******************************************************************************/ @@ -196,7 +199,7 @@ s32 XTtcPs_CfgInitialize(XTtcPs *InstancePtr, XTtcPs_Config *ConfigPtr, * @note None * ****************************************************************************/ -void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, u16 Value) +void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, XMatchRegValue Value) { /* * Assert to validate input arguments. @@ -222,12 +225,12 @@ void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, u16 Value) * @param MatchIndex is the index to the match register to be set. * Valid values are 0, 1, or 2. * -* @return None +* @return The match register value * * @note None * ****************************************************************************/ -u16 XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex) +XMatchRegValue XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex) { u32 MatchReg; @@ -241,7 +244,7 @@ u16 XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex) MatchReg = XTtcPs_ReadReg(InstancePtr->Config.BaseAddress, XTtcPs_Match_N_Offset(MatchIndex)); - return (u16) MatchReg; + return (XMatchRegValue) MatchReg; } /*****************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps.h similarity index 93% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps.h index be266d9b3..b7b4e1950 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xttcps.h -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * @details * @@ -93,6 +93,16 @@ * modified for MISRA-C:2012 compliance. * 3.2 mus 10/28/16 Modified XTtcPs_GetCounterValue and XTtcPs_SetInterval * macros to return 32 bit values for zynq ultrascale+mpsoc +* ms 01/23/17 Modified xil_printf statement in main function for all +* examples to ensure that "Successfully ran" and "Failed" +* strings are available in all examples. This is a fix +* for CR-965028. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* 3.4 ms 04/18/17 Modified tcl file to add suffix U for all macros +* definitions of ttcps in xparameters.h +* 3.5 srm 10/06/17 Added new typedef XMatchRegValue for match register width +* *
    * ******************************************************************************/ @@ -110,12 +120,7 @@ extern "C" { #include "xstatus.h" /************************** Constant Definitions *****************************/ -/* - * Flag for a9 processor - */ - #if !defined (ARMR5) && !defined (__aarch64__) && !defined (ARMA53_32) - #define ARMA9 - #endif + /* * Maximum Value for interval counter @@ -165,12 +170,14 @@ typedef struct { } XTtcPs; /** - * This typedef contains interval count + * This typedef contains interval count and Match register value */ #if defined(ARMA9) typedef u16 XInterval; +typedef u16 XMatchRegValue; #else typedef u32 XInterval; +typedef u32 XMatchRegValue; #endif /***************** Macros (Inline Functions) Definitions *********************/ @@ -279,7 +286,7 @@ typedef u32 XInterval; * @return None * * @note C-style signature: -* void XTtcPs_SetInterval(XTtcPs *InstancePtr, u16 Value) +* void XTtcPs_SetInterval(XTtcPs *InstancePtr, XInterval Value) * ****************************************************************************/ #define XTtcPs_SetInterval(InstancePtr, Value) \ @@ -432,8 +439,8 @@ XTtcPs_Config *XTtcPs_LookupConfig(u16 DeviceId); s32 XTtcPs_CfgInitialize(XTtcPs *InstancePtr, XTtcPs_Config * ConfigPtr, u32 EffectiveAddr); -void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, u16 Value); -u16 XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex); +void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, XMatchRegValue Value); +XMatchRegValue XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex); void XTtcPs_SetPrescaler(XTtcPs *InstancePtr, u8 PrescalerValue); u8 XTtcPs_GetPrescaler(XTtcPs *InstancePtr); diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_g.c similarity index 94% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_g.c index 2729f41f5..f88e5efbb 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_hw.h similarity index 90% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_hw.h index af78bcd67..b1fa545bd 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_hw.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xttcps_hw.h -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file defines the hardware interface to one of the three timer counters @@ -47,7 +47,10 @@ * ----- ------ -------- ------------------------------------------------- * 1.00a drg/jz 01/21/10 First release * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. -* +* 3.5 srm 10/06/17 Updated XTTCPS_COUNT_VALUE_MASK, +* XTTCPS_INTERVAL_VAL_MASK, XTTCPS_MATCH_MASK macros to +* mask 16 bit values for zynq and 32 bit values for +* zynq ultrascale+mpsoc " *
    * ******************************************************************************/ @@ -66,6 +69,12 @@ extern "C" { #include "xil_io.h" /************************** Constant Definitions *****************************/ +/* + * Flag for a9 processor + */ + #if !defined (ARMR5) && !defined (__aarch64__) && !defined (ARMA53_32) + #define ARMA9 + #endif /** @name Register Map * @@ -114,7 +123,11 @@ extern "C" { * Current Counter Value Register definitions * @{ */ +#if defined(ARMA9) #define XTTCPS_COUNT_VALUE_MASK 0x0000FFFFU /**< 16-bit counter value */ +#else +#define XTTCPS_COUNT_VALUE_MASK 0xFFFFFFFFU /**< 32-bit counter value */ +#endif /* @} */ /** @name Interval Value Register @@ -122,7 +135,11 @@ extern "C" { * down to. * @{ */ +#if defined(ARMA9) #define XTTCPS_INTERVAL_VAL_MASK 0x0000FFFFU /**< 16-bit Interval value*/ +#else +#define XTTCPS_INTERVAL_VAL_MASK 0xFFFFFFFFU /**< 32-bit Interval value*/ +#endif /* @} */ /** @name Match Registers @@ -130,7 +147,11 @@ extern "C" { * registers. * @{ */ +#if defined(ARMA9) #define XTTCPS_MATCH_MASK 0x0000FFFFU /**< 16-bit Match value */ +#else +#define XTTCPS_MATCH_MASK 0xFFFFFFFFU /**< 32-bit Match value */ +#endif #define XTTCPS_NUM_MATCH_REG 3U /**< Num of Match reg */ /* @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_options.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_options.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_options.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_options.c index 532b235c5..01dd9efb3 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_options.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_options.c @@ -33,7 +33,7 @@ /** * * @file xttcps_options.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file contains functions to get or set option features for the device. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_selftest.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_selftest.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_selftest.c index 4923df667..b1dd7d0a2 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xttcps_selftest.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file contains the implementation of self test function for the diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_sinit.c index ef3c6ea6b..4684c8a9c 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_5/src/xttcps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xttcps_sinit.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * The implementation of the XTtcPs driver's static initialization functionality. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps.c index a338d1f09..c33ec5481 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps.c @@ -33,7 +33,7 @@ /** * * @file xuartps.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This file contains the implementation of the interface functions for XUartPs @@ -49,6 +49,7 @@ * baud rate. CR# 804281. * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. * 3.1 kvn 04/10/15 Modified code for latest RTL changes. +* 3.5 NK 09/26/17 Fix the RX Buffer Overflow issue. *
    * *****************************************************************************/ @@ -463,7 +464,7 @@ u32 XUartPs_ReceiveBuffer(XUartPs *InstancePtr) * Loop until there is no more data in RX FIFO or the specified * number of bytes has been received */ - while((ReceivedCount <= InstancePtr->ReceiveBuffer.RemainingBytes)&& + while((ReceivedCount < InstancePtr->ReceiveBuffer.RemainingBytes)&& (((CsrRegister & XUARTPS_SR_RXEMPTY) == (u32)0))){ if (InstancePtr->is_rxbs_error) { @@ -635,7 +636,7 @@ s32 XUartPs_SetBaudRate(XUartPs *InstancePtr, u32 BaudRate) static void XUartPs_StubHandler(void *CallBackRef, u32 Event, u32 ByteCount) { - (void *) CallBackRef; + (void) CallBackRef; (void) Event; (void) ByteCount; /* Assert occurs always since this is a stub and should never be called */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps.h similarity index 96% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps.h index d915917bb..33758c23b 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xuartps.h -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * @details * @@ -162,6 +162,14 @@ * 3.1 adk 14/03/16 Include interrupt examples in the peripheral test when * uart is connected to a valid interrupt controller CR#946803. * 3.2 rk 07/20/16 Modified the logic for transmission break bit set +* 3.4 ms 01/23/17 Added xil_printf statement in main function for all +* examples to ensure that "Successfully ran" and "Failed" +* strings are available in all examples. This is a fix +* for CR-965028. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* 3.6 ms 02/16/18 Updates the flow control mode offset value in modem +* control register. * *
    * diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_g.c similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_g.c index d0ed617c4..295662046 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XUartPs_Config XUartPs_ConfigTable[] = +XUartPs_Config XUartPs_ConfigTable[XPAR_XUARTPS_NUM_INSTANCES] = { { XPAR_PS7_UART_1_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_hw.c index 299dd35ae..724c3cb40 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_hw.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_hw.c @@ -33,7 +33,7 @@ /** * * @file xuartps_hw.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_hw.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_hw.h index 9f5f0b700..9a2bc4305 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/xuartps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_hw.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xuartps_hw.h -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This header file contains the hardware interface of an XUartPs device. @@ -55,6 +55,8 @@ * constant definitions. * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. * 3.1 kvn 04/10/15 Modified code for latest RTL changes. +* 3.6 ms 02/16/18 Updates flow control mode offset value in +* modem control register. * * * @@ -256,7 +258,7 @@ extern "C" { * * @{ */ -#define XUARTPS_MODEMCR_FCM 0x00000010U /**< Flow control mode */ +#define XUARTPS_MODEMCR_FCM 0x00000020U /**< Flow control mode */ #define XUARTPS_MODEMCR_RTS 0x00000002U /**< Request to send */ #define XUARTPS_MODEMCR_DTR 0x00000001U /**< Data terminal ready */ /* @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_intr.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_intr.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_intr.c index 3068ee795..dff02fd63 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_intr.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_intr.c @@ -33,7 +33,7 @@ /** * * @file xuartps_intr.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This file contains the functions for interrupt handling diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_options.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_options.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_options.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_options.c index 9a699afa1..5d8d3017c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_options.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_options.c @@ -33,7 +33,7 @@ /** * * @file xuartps_options.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * The implementation of the options functions for the XUartPs driver. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_selftest.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_selftest.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_selftest.c index a1a7dd366..de58201a1 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xuartps_selftest.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This file contains the self-test functions for the XUartPs driver. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_sinit.c index 8dc87dae3..22e2f7a83 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_6/src/xuartps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xuartps_sinit.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * The implementation of the XUartPs driver's static initialzation diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/Makefile b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps.c index 897c09497..b76c94a46 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps.c @@ -32,7 +32,7 @@ /******************************************************************************/ /** * @file xusbps.c -* @addtogroup usbps_v2_2 +* @addtogroup usbps_v2_4 * @{ * * The XUsbPs driver. Functions in this file are the minimum required diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps.h index 4b5d0d47d..b5c472ef9 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps.h @@ -33,7 +33,7 @@ /** * * @file xusbps.h -* @addtogroup usbps_v2_2 +* @addtogroup usbps_v2_4 * @{ * @details * @@ -182,6 +182,11 @@ * 2.3 kpc 02/19/14 Fixed CR#873972, CR#873974. Corrected the logic for proper * moving of dTD Head/Tail Pointers. Invalidate the cache * after buffer receive in Endpoint Buffer Handler. + * 2.4 sg 04/26/16 Fixed CR#949693, Corrected the logic for EP flush + * ms 03/17/17 Added readme.txt file in examples folder for doxygen + * generation. + * ms 04/10/17 Modified filename tag to include the file in doxygen + * examples. * * ******************************************************************************/ @@ -801,8 +806,8 @@ typedef struct { ******************************************************************************/ #define XUsbPs_EpFlush(InstancePtr, EpNum, Dir) \ XUsbPs_SetBits(InstancePtr, XUSBPS_EPFLUSH_OFFSET, \ - EpNum << ((Dir) & XUSBPS_EP_DIRECTION_OUT ? \ - XUSBPS_EPFLUSH_RX_SHIFT:XUSBPS_EPFLUSH_TX_SHIFT)) \ + 1 << (EpNum + ((Dir) & XUSBPS_EP_DIRECTION_OUT ? \ + XUSBPS_EPFLUSH_RX_SHIFT:XUSBPS_EPFLUSH_TX_SHIFT))) \ /*****************************************************************************/ /** diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_endpoint.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_endpoint.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_endpoint.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_endpoint.c index f93c4b800..7b16d22b5 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_endpoint.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_endpoint.c @@ -32,7 +32,7 @@ /******************************************************************************/ /** * @file xusbps_endpoint.c -* @addtogroup usbps_v2_2 +* @addtogroup usbps_v2_4 * @{ * * Endpoint specific function implementations. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_endpoint.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_endpoint.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_endpoint.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_endpoint.h index b8b9ad685..1cb0cfcd3 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_endpoint.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_endpoint.h @@ -33,7 +33,7 @@ /** * * @file xusbps_endpoint.h -* @addtogroup usbps_v2_2 +* @addtogroup usbps_v2_4 * @{ * * This is an internal file containung the definitions for endpoints. It is diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_g.c similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_g.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_g.c index a2486d88e..9f20ba868 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XUsbPs_Config XUsbPs_ConfigTable[] = +XUsbPs_Config XUsbPs_ConfigTable[XPAR_XUSBPS_NUM_INSTANCES] = { { XPAR_PS7_USB_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_hw.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_hw.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_hw.c index 105ad9321..04963b288 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_hw.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_hw.c @@ -33,7 +33,7 @@ /** * * @file xusbps_hw.c -* @addtogroup usbps_v2_2 +* @addtogroup usbps_v2_4 * @{ * * The implementation of the XUsbPs interface reset functionality diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_hw.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_hw.h rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_hw.h index 792fbdde5..69f3ebffb 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_hw.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_hw.h @@ -33,7 +33,7 @@ /** * * @file xusbps_hw.h -* @addtogroup usbps_v2_2 +* @addtogroup usbps_v2_4 * @{ * * This header file contains identifiers and low-level driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_intr.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_intr.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_intr.c index 94fd3dee6..83463bdfe 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_intr.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_intr.c @@ -32,7 +32,7 @@ /******************************************************************************/ /** * @file xusbps_intr.c -* @addtogroup usbps_v2_2 +* @addtogroup usbps_v2_4 * @{ * * This file contains the functions that are related to interrupt processing diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_sinit.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_sinit.c rename to FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_sinit.c index 1da441db5..a2070a76e 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_3/src/xusbps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/usbps_v2_4/src/xusbps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xusbps_sinit.c -* @addtogroup usbps_v2_2 +* @addtogroup usbps_v2_4 * @{ * * The implementation of the XUsbPs driver's static initialzation diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/xadcps_v2_2/src/xadcps.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/xadcps_v2_2/src/xadcps.h index 489a1ee86..549bfff29 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/xadcps_v2_2/src/xadcps.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/xadcps_v2_2/src/xadcps.h @@ -170,7 +170,15 @@ * xadcps.c to fix CR #807563. * 2.2 bss 04/27/14 Modified to use correct Device Config base address in * xadcps.c (CR#854437). -* +* ms 01/23/17 Added xil_printf statement in main function for all +* examples to ensure that "Successfully ran" and "Failed" +* strings are available in all examples. This is a fix +* for CR-965028. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Modified Comment lines in functions of xadcps +* examples to recognize it as documentation block +* for doxygen generation. * * * diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/xadcps_v2_2/src/xadcps_g.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/xadcps_v2_2/src/xadcps_g.c index 4668ee8c5..22757f39b 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/xadcps_v2_2/src/xadcps_g.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/xadcps_v2_2/src/xadcps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XAdcPs_Config XAdcPs_ConfigTable[] = +XAdcPs_Config XAdcPs_ConfigTable[XPAR_XADCPS_NUM_INSTANCES] = { { XPAR_PS7_XADC_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/system.mss b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/system.mss index f5e391f05..9708c1c47 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/system.mss +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/system.mss @@ -4,7 +4,7 @@ BEGIN OS PARAMETER OS_NAME = standalone - PARAMETER OS_VER = 5.4 + PARAMETER OS_VER = 6.6 PARAMETER PROC_INSTANCE = ps7_cortexa9_0 PARAMETER stdin = ps7_uart_1 PARAMETER stdout = ps7_uart_1 @@ -13,7 +13,7 @@ END BEGIN PROCESSOR PARAMETER DRIVER_NAME = cpu_cortexa9 - PARAMETER DRIVER_VER = 2.2 + PARAMETER DRIVER_VER = 2.6 PARAMETER HW_INSTANCE = ps7_cortexa9_0 END @@ -44,13 +44,13 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = canps - PARAMETER DRIVER_VER = 3.1 + PARAMETER DRIVER_VER = 3.2 PARAMETER HW_INSTANCE = ps7_can_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = coresightps_dcc - PARAMETER DRIVER_VER = 1.2 + PARAMETER DRIVER_VER = 1.4 PARAMETER HW_INSTANCE = ps7_coresight_comp_0 END @@ -68,25 +68,25 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = devcfg - PARAMETER DRIVER_VER = 3.4 + PARAMETER DRIVER_VER = 3.5 PARAMETER HW_INSTANCE = ps7_dev_cfg_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = dmaps - PARAMETER DRIVER_VER = 2.1 + PARAMETER DRIVER_VER = 2.3 PARAMETER HW_INSTANCE = ps7_dma_ns END BEGIN DRIVER PARAMETER DRIVER_NAME = dmaps - PARAMETER DRIVER_VER = 2.1 + PARAMETER DRIVER_VER = 2.3 PARAMETER HW_INSTANCE = ps7_dma_s END BEGIN DRIVER PARAMETER DRIVER_NAME = emacps - PARAMETER DRIVER_VER = 3.2 + PARAMETER DRIVER_VER = 3.7 PARAMETER HW_INSTANCE = ps7_ethernet_0 END @@ -98,7 +98,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = gpiops - PARAMETER DRIVER_VER = 3.1 + PARAMETER DRIVER_VER = 3.3 PARAMETER HW_INSTANCE = ps7_gpio_0 END @@ -110,7 +110,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = iicps - PARAMETER DRIVER_VER = 3.1 + PARAMETER DRIVER_VER = 3.6 PARAMETER HW_INSTANCE = ps7_i2c_0 END @@ -152,7 +152,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = qspips - PARAMETER DRIVER_VER = 3.3 + PARAMETER DRIVER_VER = 3.4 PARAMETER HW_INSTANCE = ps7_qspi_0 END @@ -182,7 +182,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = scugic - PARAMETER DRIVER_VER = 3.2 + PARAMETER DRIVER_VER = 3.9 PARAMETER HW_INSTANCE = ps7_scugic_0 END @@ -200,7 +200,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = sdps - PARAMETER DRIVER_VER = 2.7 + PARAMETER DRIVER_VER = 3.4 PARAMETER HW_INSTANCE = ps7_sd_0 END @@ -212,19 +212,19 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = ttcps - PARAMETER DRIVER_VER = 3.1 + PARAMETER DRIVER_VER = 3.5 PARAMETER HW_INSTANCE = ps7_ttc_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = uartps - PARAMETER DRIVER_VER = 3.1 + PARAMETER DRIVER_VER = 3.6 PARAMETER HW_INSTANCE = ps7_uart_1 END BEGIN DRIVER PARAMETER DRIVER_NAME = usbps - PARAMETER DRIVER_VER = 2.3 + PARAMETER DRIVER_VER = 2.4 PARAMETER HW_INSTANCE = ps7_usb_0 END diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.c index 29450b5f7..a06e30659 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.c @@ -400,39 +400,6 @@ unsigned long ps7_clock_init_data_3_0[] = { // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U // .. .. EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00400500U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000180[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000180[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000180[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000190[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000190[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000190[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF80001A0[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00100100U), // .. .. CLK_621_TRUE = 0x1 // .. .. ==> 0XF80001C4[0:0] = 0x00000001U // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U @@ -1040,16 +1007,6 @@ unsigned long ps7_ddr_init_data_3_0[] = { // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U // .. .. EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 // .. .. ==> 0XF80060C4[0:0] = 0x00000000U // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U @@ -4654,39 +4611,6 @@ unsigned long ps7_clock_init_data_2_0[] = { // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U // .. .. EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00400500U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000180[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000180[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000180[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000190[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000190[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000190[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF80001A0[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00100100U), // .. .. CLK_621_TRUE = 0x1 // .. .. ==> 0XF80001C4[0:0] = 0x00000001U // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U @@ -5368,16 +5292,6 @@ unsigned long ps7_ddr_init_data_2_0[] = { // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U // .. .. EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 // .. .. ==> 0XF80060C4[0:0] = 0x00000000U // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U @@ -9067,39 +8981,6 @@ unsigned long ps7_clock_init_data_1_0[] = { // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U // .. .. EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00400500U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000180[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000180[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000180[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000190[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000190[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000190[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF80001A0[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00100100U), // .. .. CLK_621_TRUE = 0x1 // .. .. ==> 0XF80001C4[0:0] = 0x00000001U // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U @@ -9744,16 +9625,6 @@ unsigned long ps7_ddr_init_data_1_0[] = { // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U // .. .. EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 // .. .. ==> 0XF80060C4[0:0] = 0x00000000U // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U @@ -13229,6 +13100,7 @@ ps7_debug() return PS7_INIT_SUCCESS; } + int ps7_init() { @@ -13236,7 +13108,7 @@ ps7_init() unsigned long si_ver = ps7GetSiliconVersion (); int ret; //int pcw_ver = 0; - + if (si_ver == PCW_SILICON_VERSION_1) { ps7_mio_init_data = ps7_mio_init_data_1_0; ps7_pll_init_data = ps7_pll_init_data_1_0; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.html b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.html index fa76c4919..ecd91ec0b 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.html +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.html @@ -5734,72 +5734,6 @@ FPGA0_CLK_CTRL -
    -FPGA1_CLK_CTRL - - - -0XF8000180 - - -32 - - -RW - - -0x000000 - - -PL Clock 1 Output control - - - - - -FPGA2_CLK_CTRL - - - -0XF8000190 - - -32 - - -RW - - -0x000000 - - -PL Clock 2 output control - - - - - -FPGA3_CLK_CTRL - - - -0XF80001A0 - - -32 - - -RW - - -0x000000 - - -PL Clock 3 output control - - - - CLK_621_TRUE @@ -7568,447 +7502,6 @@ SLCR_LOCK

    -

    Register ( slcr )FPGA1_CLK_CTRL

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -FPGA1_CLK_CTRL - -0XF8000180 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
    -DIVISOR0 - -13:8 - -3f00 - -1 - -100 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
    -DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
    -FPGA1_CLK_CTRL@0XF8000180 - -31:0 - -3f03f30 - - - -100100 - -PL Clock 1 Output control -
    -

    -

    Register ( slcr )FPGA2_CLK_CTRL

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -FPGA2_CLK_CTRL - -0XF8000190 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
    -DIVISOR0 - -13:8 - -3f00 - -1 - -100 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
    -DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
    -FPGA2_CLK_CTRL@0XF8000190 - -31:0 - -3f03f30 - - - -100100 - -PL Clock 2 output control -
    -

    -

    Register ( slcr )FPGA3_CLK_CTRL

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -FPGA3_CLK_CTRL - -0XF80001A0 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
    -DIVISOR0 - -13:8 - -3f00 - -1 - -100 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
    -DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
    -FPGA3_CLK_CTRL@0XF80001A0 - -31:0 - -3f03f30 - - - -100100 - -PL Clock 3 output control -
    -

    Register ( slcr )CLK_621_TRUE

    @@ -9468,28 +8961,6 @@ CHE_ECC_CONTROL_REG_OFFSET - - - - - - - -
    - -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear -
    CHE_CORR_ECC_LOG_REG_OFFSET @@ -16502,134 +15973,6 @@ ddrc_ctrl

    -

    RESET ECC ERROR

    -

    Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -1 - -1 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
    -Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -1 - -2 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
    -CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -3 - -ECC error clear -
    -

    Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

    @@ -53700,72 +53043,6 @@ FPGA0_CLK_CTRL - - - - - - - - - - - - - - - - - - - - - - - -
    - -FPGA1_CLK_CTRL - - -0XF8000180 - -32 - -RW - -0x000000 - -PL Clock 1 Output control -
    - -FPGA2_CLK_CTRL - - -0XF8000190 - -32 - -RW - -0x000000 - -PL Clock 2 output control -
    - -FPGA3_CLK_CTRL - - -0XF80001A0 - -32 - -RW - -0x000000 - -PL Clock 3 output control -
    CLK_621_TRUE @@ -55534,447 +54811,6 @@ SLCR_LOCK

    -

    Register ( slcr )FPGA1_CLK_CTRL

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -FPGA1_CLK_CTRL - -0XF8000180 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
    -DIVISOR0 - -13:8 - -3f00 - -1 - -100 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
    -DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
    -FPGA1_CLK_CTRL@0XF8000180 - -31:0 - -3f03f30 - - - -100100 - -PL Clock 1 Output control -
    -

    -

    Register ( slcr )FPGA2_CLK_CTRL

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -FPGA2_CLK_CTRL - -0XF8000190 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
    -DIVISOR0 - -13:8 - -3f00 - -1 - -100 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
    -DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
    -FPGA2_CLK_CTRL@0XF8000190 - -31:0 - -3f03f30 - - - -100100 - -PL Clock 2 output control -
    -

    -

    Register ( slcr )FPGA3_CLK_CTRL

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -FPGA3_CLK_CTRL - -0XF80001A0 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -SRCSEL - -5:4 - -30 - -0 - -0 - -Select the source used to generate the clock: 0x: Source for generated clock is IO PLL. 10: Source for generated clock is ARM PLL. 11: Source for generated clock is DDR PLL. -
    -DIVISOR0 - -13:8 - -3f00 - -1 - -100 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider. -
    -DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divide -
    -FPGA3_CLK_CTRL@0XF80001A0 - -31:0 - -3f03f30 - - - -100100 - -PL Clock 3 output control -
    -

    Register ( slcr )CLK_621_TRUE

    @@ -57456,28 +56292,6 @@ CHE_ECC_CONTROL_REG_OFFSET - - - - - - - -
    - -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear -
    CHE_CORR_ECC_LOG_REG_OFFSET @@ -65057,134 +63871,6 @@ ddrc_ctrl

    -

    RESET ECC ERROR

    -

    Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -1 - -1 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
    -Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -1 - -2 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
    -CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -3 - -ECC error clear -
    -

    Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

    @@ -102834,72 +101520,6 @@ FPGA0_CLK_CTRL - - - - - - - - - - - - - - - - - - - - - - - -
    - -FPGA1_CLK_CTRL - - -0XF8000180 - -32 - -RW - -0x000000 - -FPGA 1 Output Clock Control -
    - -FPGA2_CLK_CTRL - - -0XF8000190 - -32 - -RW - -0x000000 - -FPGA 2 Output Clock Control -
    - -FPGA3_CLK_CTRL - - -0XF80001A0 - -32 - -RW - -0x000000 - -FPGA 3 Output Clock Control -
    CLK_621_TRUE @@ -104668,447 +103288,6 @@ SLCR_LOCK

    -

    Register ( slcr )FPGA1_CLK_CTRL

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -FPGA1_CLK_CTRL - -0XF8000180 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
    -DIVISOR0 - -13:8 - -3f00 - -1 - -100 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
    -DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
    -FPGA1_CLK_CTRL@0XF8000180 - -31:0 - -3f03f30 - - - -100100 - -FPGA 1 Output Clock Control -
    -

    -

    Register ( slcr )FPGA2_CLK_CTRL

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -FPGA2_CLK_CTRL - -0XF8000190 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
    -DIVISOR0 - -13:8 - -3f00 - -1 - -100 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
    -DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
    -FPGA2_CLK_CTRL@0XF8000190 - -31:0 - -3f03f30 - - - -100100 - -FPGA 2 Output Clock Control -
    -

    -

    Register ( slcr )FPGA3_CLK_CTRL

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -FPGA3_CLK_CTRL - -0XF80001A0 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -SRCSEL - -5:4 - -30 - -0 - -0 - -Selects the source used to generate the clock. 0x - Source for generated clock is IO PLL. 10 - Source for generated clock is ARM PLL. 11 - Source for generated clock is DDR PLL. -
    -DIVISOR0 - -13:8 - -3f00 - -1 - -100 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. First cascade divider -
    -DIVISOR1 - -25:20 - -3f00000 - -1 - -100000 - -Provides the divisor used to divide the source clock to generate the required generated clock frequency. Second cascade divider -
    -FPGA3_CLK_CTRL@0XF80001A0 - -31:0 - -3f03f30 - - - -100100 - -FPGA 3 Output Clock Control -
    -

    Register ( slcr )CLK_621_TRUE

    @@ -106546,28 +104725,6 @@ CHE_ECC_CONTROL_REG_OFFSET - - - - - - - -
    - -CHE_ECC_CONTROL_REG_OFFSET - - -0XF80060C4 - -32 - -RW - -0x000000 - -ECC error clear register -
    CHE_CORR_ECC_LOG_REG_OFFSET @@ -113753,134 +111910,6 @@ ddrc_ctrl

    -

    RESET ECC ERROR

    -

    Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

    - - - - - - - - - - - - - - - - - -
    -Register Name - -Address - -Width - -Type - -Reset Value - -Description -
    -CHE_ECC_CONTROL_REG_OFFSET - -0XF80060C4 - -32 - -rw - -0x00000000 - --- -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Name - -Bits - -Mask - -Value - -Shifted Value - -Description -
    -Clear_Uncorrectable_DRAM_ECC_error - -0:0 - -1 - -1 - -1 - -Writing 1 to this bit will clear the uncorrectable log valid bit and the uncorrectable error counters. -
    -Clear_Correctable_DRAM_ECC_error - -1:1 - -2 - -1 - -2 - -Writing 1 to this bit will clear the correctable log valid bit and the correctable error counters. -
    -CHE_ECC_CONTROL_REG_OFFSET@0XF80060C4 - -31:0 - -3 - - - -3 - -ECC error clear register -
    -

    Register ( slcr )CHE_ECC_CONTROL_REG_OFFSET

    diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.tcl b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.tcl index 057dca0b3..05a88d2a8 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.tcl +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init.tcl @@ -37,9 +37,6 @@ proc ps7_clock_init_data_3_0 {} { mask_write 0XF8000160 0x007F007F 0x00000000 mask_write 0XF8000168 0x00003F31 0x00000501 mask_write 0XF8000170 0x03F03F30 0x00400500 - mask_write 0XF8000180 0x03F03F30 0x00100100 - mask_write 0XF8000190 0x03F03F30 0x00100100 - mask_write 0XF80001A0 0x03F03F30 0x00100100 mask_write 0XF80001C4 0x00000001 0x00000001 mask_write 0XF800012C 0x01FFCCCD 0x01ED044D mask_write 0XF8000004 0x0000FFFF 0x0000767B @@ -79,7 +76,6 @@ proc ps7_ddr_init_data_3_0 {} { mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF mask_write 0XF80060B4 0x00000200 0x00000200 mask_write 0XF80060B8 0x01FFFFFF 0x00200066 - mask_write 0XF80060C4 0x00000003 0x00000003 mask_write 0XF80060C4 0x00000003 0x00000000 mask_write 0XF80060C8 0x000000FF 0x00000000 mask_write 0XF80060DC 0x00000001 0x00000000 @@ -289,9 +285,6 @@ proc ps7_clock_init_data_2_0 {} { mask_write 0XF8000160 0x007F007F 0x00000000 mask_write 0XF8000168 0x00003F31 0x00000501 mask_write 0XF8000170 0x03F03F30 0x00400500 - mask_write 0XF8000180 0x03F03F30 0x00100100 - mask_write 0XF8000190 0x03F03F30 0x00100100 - mask_write 0XF80001A0 0x03F03F30 0x00100100 mask_write 0XF80001C4 0x00000001 0x00000001 mask_write 0XF800012C 0x01FFCCCD 0x01ED044D mask_write 0XF8000004 0x0000FFFF 0x0000767B @@ -332,7 +325,6 @@ proc ps7_ddr_init_data_2_0 {} { mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF mask_write 0XF80060B4 0x000007FF 0x00000200 mask_write 0XF80060B8 0x01FFFFFF 0x00200066 - mask_write 0XF80060C4 0x00000003 0x00000003 mask_write 0XF80060C4 0x00000003 0x00000000 mask_write 0XF80060C8 0x000000FF 0x00000000 mask_write 0XF80060DC 0x00000001 0x00000000 @@ -542,9 +534,6 @@ proc ps7_clock_init_data_1_0 {} { mask_write 0XF8000160 0x007F007F 0x00000000 mask_write 0XF8000168 0x00003F31 0x00000501 mask_write 0XF8000170 0x03F03F30 0x00400500 - mask_write 0XF8000180 0x03F03F30 0x00100100 - mask_write 0XF8000190 0x03F03F30 0x00100100 - mask_write 0XF80001A0 0x03F03F30 0x00100100 mask_write 0XF80001C4 0x00000001 0x00000001 mask_write 0XF800012C 0x01FFCCCD 0x01ED044D mask_write 0XF8000004 0x0000FFFF 0x0000767B @@ -583,7 +572,6 @@ proc ps7_ddr_init_data_1_0 {} { mask_write 0XF80060B0 0x1FFFFFFF 0x1CFFFFFF mask_write 0XF80060B4 0x000007FF 0x00000200 mask_write 0XF80060B8 0x01FFFFFF 0x00200066 - mask_write 0XF80060C4 0x00000003 0x00000003 mask_write 0XF80060C4 0x00000003 0x00000000 mask_write 0XF80060C8 0x000000FF 0x00000000 mask_write 0XF80060DC 0x00000001 0x00000000 @@ -825,13 +813,11 @@ proc ps7_debug {} { ps7_debug_3_0 } } - proc ps7_init {} { variable PCW_SILICON_VER_1_0 variable PCW_SILICON_VER_2_0 variable PCW_SILICON_VER_3_0 set sil_ver [ps_version] - if { $sil_ver == $PCW_SILICON_VER_1_0} { ps7_mio_init_data_1_0 ps7_pll_init_data_1_0 diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init_gpl.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init_gpl.c index 0a07f4f50..2000dd46f 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init_gpl.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/ps7_init_gpl.c @@ -391,39 +391,6 @@ unsigned long ps7_clock_init_data_3_0[] = { // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U // .. .. EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00400500U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000180[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000180[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000180[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000190[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000190[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000190[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF80001A0[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00100100U), // .. .. CLK_621_TRUE = 0x1 // .. .. ==> 0XF80001C4[0:0] = 0x00000001U // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U @@ -1031,16 +998,6 @@ unsigned long ps7_ddr_init_data_3_0[] = { // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U // .. .. EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 // .. .. ==> 0XF80060C4[0:0] = 0x00000000U // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U @@ -4645,39 +4602,6 @@ unsigned long ps7_clock_init_data_2_0[] = { // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U // .. .. EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00400500U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000180[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000180[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000180[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000190[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000190[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000190[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF80001A0[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00100100U), // .. .. CLK_621_TRUE = 0x1 // .. .. ==> 0XF80001C4[0:0] = 0x00000001U // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U @@ -5359,16 +5283,6 @@ unsigned long ps7_ddr_init_data_2_0[] = { // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U // .. .. EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 // .. .. ==> 0XF80060C4[0:0] = 0x00000000U // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U @@ -9058,39 +8972,6 @@ unsigned long ps7_clock_init_data_1_0[] = { // .. .. ==> MASK : 0x03F00000U VAL : 0x00400000U // .. .. EMIT_MASKWRITE(0XF8000170, 0x03F03F30U ,0x00400500U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000180[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000180[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000180[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000180, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF8000190[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF8000190[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF8000190[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF8000190, 0x03F03F30U ,0x00100100U), - // .. .. SRCSEL = 0x0 - // .. .. ==> 0XF80001A0[5:4] = 0x00000000U - // .. .. ==> MASK : 0x00000030U VAL : 0x00000000U - // .. .. DIVISOR0 = 0x1 - // .. .. ==> 0XF80001A0[13:8] = 0x00000001U - // .. .. ==> MASK : 0x00003F00U VAL : 0x00000100U - // .. .. DIVISOR1 = 0x1 - // .. .. ==> 0XF80001A0[25:20] = 0x00000001U - // .. .. ==> MASK : 0x03F00000U VAL : 0x00100000U - // .. .. - EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U ,0x00100100U), // .. .. CLK_621_TRUE = 0x1 // .. .. ==> 0XF80001C4[0:0] = 0x00000001U // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U @@ -9735,16 +9616,6 @@ unsigned long ps7_ddr_init_data_1_0[] = { // .. .. ==> MASK : 0x01FF8000U VAL : 0x00200000U // .. .. EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U), - // .. .. START: RESET ECC ERROR - // .. .. Clear_Uncorrectable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[0:0] = 0x00000001U - // .. .. ==> MASK : 0x00000001U VAL : 0x00000001U - // .. .. Clear_Correctable_DRAM_ECC_error = 1 - // .. .. ==> 0XF80060C4[1:1] = 0x00000001U - // .. .. ==> MASK : 0x00000002U VAL : 0x00000002U - // .. .. - EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000003U), - // .. .. FINISH: RESET ECC ERROR // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0 // .. .. ==> 0XF80060C4[0:0] = 0x00000000U // .. .. ==> MASK : 0x00000001U VAL : 0x00000000U @@ -13220,6 +13091,7 @@ ps7_debug() return PS7_INIT_SUCCESS; } + int ps7_init() { @@ -13227,7 +13099,7 @@ ps7_init() unsigned long si_ver = ps7GetSiliconVersion (); int ret; //int pcw_ver = 0; - + if (si_ver == PCW_SILICON_VERSION_1) { ps7_mio_init_data = ps7_mio_init_data_1_0; ps7_pll_init_data = ps7_pll_init_data_1_0; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/system.hdf b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/ZC702_hw_platform/system.hdf index 82ed8788fd22e6c4e83ff6698a0f3f06bc33a14d..b4e47c29501ae0655a0928154c1aa7cb0dc0d197 100644 GIT binary patch delta 365484 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 WGfq@%1crM_nX>0eXl~!5%OgD4k7|c^^XpWF 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≻!{SScm-Yb&+HXN{T7{ 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 oy&gIG_{ObsRO67;0&e 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

    IrQ_OP)o|Oh5Os_x(gf zl4!gTLqLa%0F~WHku)VPN%O6kbfOzk`Z@?-!KuZ9O_YFHygCMEfA3Jy zqf6&9NhNJ9g|#l<;emF0i!?!Gou|I5`ouh$f3bNtXwS!;arBW6?|D6q7o{Y{>P^)rLQvdyA;;=3GRuc$Yn;uw~3I&}jvasghj_`=wBF^+BK z@o?qJCR`;|NYl+m%^ni%3APn(kkK1U?|T!OtD=p?2exZcCKm>?m9Y>2O)x|-iJ!g3 z%4;?RIs0q6wyP;Hj1Xi4JRP&oRdCrniZ{#T8HW9(^8HFxNiLaAkyjcq$`OrkVwDwA zTcFfh{{1(9$K5GHA(<#iTJ=*GzS&P>`ab)=5K?~h&>a94vx)=3hgKYE%X;NLz;e|} zpjoAcTUxp?)VfAOiKs>$%3zlfdvUfcFr1|!_<~Xo6a1F-<)7XbfP@~5w9qP4&fn7i zWvYg|bGv2n^gi5aB}$s8JAt3ksm`C$NVqlMI`DVD6ED(+VcdoA9@wnZaeU~aR{+$) z6&(?6e_ZhNci%(zE;v|Sg^po#&$!S{fhMUc7}mBesfQ12w8@$!9pSIR70wNAequ~T zIoyR~KfmBEny_DC0(Wj4KnElYiuxCPFXNfw@|7?p!V!5;JQq>A@76iw$N^?81^D4X zsgbhVc;m~8TfUw&G9RqeG_G3N7XLea6W=|xkw8(p{K@)_LYYb7EQMHPzVVO>^Fvhi zxOo5zeJ;d;^ev&Wu$9oj*)Sek52~&*iXaZ2!G{ii?RO0#vg?fWkl zQS6FA!{j7S`FW{y7Lg%q)2qL#1)mK>4>PVj)qEfcK|g#FnBl-Zphi?8lwI!WaQH>g z`;+tioQ0$ic*eXR_{RqOizfw8wJz3@dr!g_tKWEUFr50GvDj=mPrhDIT);CP`8`bb zrmy6Cd*FJ=+Osh)jT0k`l%Zq5K3Bqd zw|%toUjF z>vO1Cj)7jLSv}{#k_WXR91KtA`Yc{3eudD9JpAn;ahTNw+W^fMN}I=ZO|)M~GspAP zW0VsNpyAej7H_Nx#R^#S_3Hvh+8~8sP8ZH2E9HQ4P! zR}BU_Vy{A)6Ay4$?=o39;u2hm=^ot6m$MIe*SN%d?8941Fx1fDg?EI1E=d%7?t6KM5 zj4kK(t=)7331c4}qgTkaGZq;-xFCH2m>WkYQTv3f(O5G)Crw3$kXc1i6OGWLMY*y; zTd4(z7>jh>qYr?^3qNA%KweMyB2mH*q?(N8@Afl^_|QC2zXf$Udc%QLpyT~J)WZ9Q zZOR)H12`)rv`;NY&;R9Dg^);)gB@Ya7Zz9EVxKXP2G(2Eu9hLvnLi_}0Y|<-0GQ$1 z#B_nUUFq1BZB7!>@7IKDh%MMst}}*Fxt^#ci3KZ1sI=g=>-cx6-TfvwzF%qB(`_vs zEiYu>ioEy#7}^*}L+#MCqc?NSt40;}wSF_ufX+|)+x^Y$=H2w~?-Pjv%|Ok?w6rM- z#Ujl89W4Xk42r zYWb_a3OB--5y!?q*^qb+%U}_dD50f?CjNm0R-|t19SN=0XV1`%u2p3tt~_S^DILw z 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

    C9!y%5lxrxK{w%GX6-Cv%_X3 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%0Dvq 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
      ID~i=6Y&gUl$xQ=(koafhOGKhI#y*5 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�|i=e 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%0DnS|=;_V_{{0ua4Vu%DmBj|;Iz{w%2{ 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 z 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 diff --git a/FreeRTOS/Demo/CORTEX_MPU_Simulator_Keil_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_MPU_Simulator_Keil_GCC/FreeRTOSConfig.h index cdee232d7..d74c384e0 100644 --- a/FreeRTOS/Demo/CORTEX_MPU_Simulator_Keil_GCC/FreeRTOSConfig.h +++ b/FreeRTOS/Demo/CORTEX_MPU_Simulator_Keil_GCC/FreeRTOSConfig.h @@ -120,7 +120,7 @@ to exclude the API function. */ /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ #define configPRIO_BITS __NVIC_PRIO_BITS #else - #define configPRIO_BITS 8 /* 15 priority levels */ + #define configPRIO_BITS 4 /* 15 priority levels */ #endif /* The lowest interrupt priority that can be used in a call to a "set priority" diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/.cproject b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/.cproject index e67ed8330..de9ad404c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/.cproject +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/.cproject @@ -18,18 +18,18 @@ - + - - - - - - - - - @@ -82,77 +88,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/.project b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/.project index 19cf84fa4..99270506b 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/.project +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/.project @@ -42,7 +42,7 @@ - 1462455164616 + 1525195743708 src/FreeRTOS_Source 5 @@ -51,7 +51,7 @@ - 1462455164616 + 1525195743711 src/FreeRTOS_Source 5 @@ -60,7 +60,7 @@ - 1462455164726 + 1525195743715 src/FreeRTOS_Source 5 @@ -69,7 +69,7 @@ - 1462455164766 + 1525195743718 src/FreeRTOS_Source 5 @@ -78,7 +78,7 @@ - 1462455164786 + 1525195743721 src/FreeRTOS_Source 5 @@ -86,6 +86,15 @@ 1.0-name-matches-false-false-timers.c + + 1525195743725 + src/FreeRTOS_Source + 5 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-stream_buffer.c + + 1462455201203 src/FreeRTOS_Source/portable diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/src/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/src/FreeRTOSConfig.h index 7fc52c077..6bca21bad 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/src/FreeRTOSConfig.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5/src/FreeRTOSConfig.h @@ -120,6 +120,7 @@ to exclude the API function. */ #define INCLUDE_eTaskGetState 1 #define INCLUDE_xTaskAbortDelay 1 #define INCLUDE_xTaskGetHandle 1 +#define INCLUDE_xSemaphoreGetMutexHolder 1 /* This demo makes use of one or more example stats formatting functions. These format the raw data provided by the uxTaskGetSystemState() function in to human diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/.cproject b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/.cproject index 805e98fca..fc930db6c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/.cproject +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/.cproject @@ -1,8 +1,8 @@ - - + + diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/.project b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/.project index ed0ff0ff0..7960aa322 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/.project +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/.project @@ -1,7 +1,7 @@ RTOSDemo_R5_bsp - Created by SDK v2016.4 + Created by SDK v2018.1 diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/Makefile index 071f646d1..610ec1a4e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/Makefile +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/Makefile @@ -16,16 +16,20 @@ include: $(addsuffix /make.include,$(SUBDIRS)) libs: $(addsuffix /make.libs,$(SUBDIRS)) +clean: $(addsuffix /make.clean,$(SUBDIRS)) + $(PROCESSOR)/lib/libxil.a: $(PROCESSOR)/lib/libxil_init.a cp -f $< $@ %/make.include: $(if $(wildcard $(PROCESSOR)/lib/libxil_init.a),$(PROCESSOR)/lib/libxil.a,) @echo "Running Make include in $(subst /make.include,,$@)" - $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=armr5-none-eabi-gcc" "ARCHIVER=armr5-none-eabi-ar" "COMPILER_FLAGS= -O2 -c -mcpu=cortex-r5" "EXTRA_COMPILER_FLAGS=-g -DARMR5" + $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=armr5-none-eabi-gcc" "ARCHIVER=armr5-none-eabi-ar" "COMPILER_FLAGS= -O2 -c -mcpu=cortex-r5" "EXTRA_COMPILER_FLAGS=-g -DARMR5 -Wall -Wextra -mfloat-abi=hard -mfpu=vfpv3-d16" %/make.libs: include @echo "Running Make libs in $(subst /make.libs,,$@)" - $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=armr5-none-eabi-gcc" "ARCHIVER=armr5-none-eabi-ar" "COMPILER_FLAGS= -O2 -c -mcpu=cortex-r5" "EXTRA_COMPILER_FLAGS=-g -DARMR5" + $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=armr5-none-eabi-gcc" "ARCHIVER=armr5-none-eabi-ar" "COMPILER_FLAGS= -O2 -c -mcpu=cortex-r5" "EXTRA_COMPILER_FLAGS=-g -DARMR5 -Wall -Wextra -mfloat-abi=hard -mfpu=vfpv3-d16" +%/make.clean: + $(MAKE) -C $(subst /make.clean,,$@) -s clean clean: rm -f ${PROCESSOR}/lib/libxil.a diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/include/xparameters.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/include/xparameters.h index c85fe0a27..38c98f940 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/include/xparameters.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/include/xparameters.h @@ -1,20 +1,23 @@ +#ifndef XPARAMETERS_H /* prevent circular inclusions */ +#define XPARAMETERS_H /* by using protection macros */ + /* Definition for CPU ID */ -#define XPAR_CPU_ID 0 +#define XPAR_CPU_ID 0U /* Definitions for peripheral PSU_CORTEXR5_0 */ -#define XPAR_PSU_CORTEXR5_0_CPU_CLK_FREQ_HZ 499994995 +#define XPAR_PSU_CORTEXR5_0_CPU_CLK_FREQ_HZ 499950000 /******************************************************************/ /* Canonical definitions for peripheral PSU_CORTEXR5_0 */ -#define XPAR_CPU_CORTEXR5_0_CPU_CLK_FREQ_HZ 499994995 +#define XPAR_CPU_CORTEXR5_0_CPU_CLK_FREQ_HZ 499950000 /******************************************************************/ /* Definition for PSS REF CLK FREQUENCY */ -#define XPAR_PSU_PSS_REF_CLK_FREQ_HZ 33333000U +#define XPAR_PSU_PSS_REF_CLK_FREQ_HZ 33330000U #include "xparameters_ps.h" @@ -22,15 +25,9 @@ /******************************************************************/ -/* - * Definitions of PSU_TTC_3 counter 0 base address and frequency used - * by sleep and usleep APIs - */ - -#define SLEEP_TIMER_BASEADDR 0xFF140000 -#define SLEEP_TIMER_FREQUENCY 100000000 - -/******************************************************************/ + /*Definitions for peripheral PSU_R5_DDR_1 */ +#define XPAR_PSU_R5_DDR_1_S_AXI_BASEADDR 0x0 +#define XPAR_PSU_R5_DDR_1_S_AXI_HIGHADDR 0x7fffffff /* Number of Fabric Resets */ @@ -39,192 +36,225 @@ #define STDIN_BASEADDRESS 0xFF000000 #define STDOUT_BASEADDRESS 0xFF000000 +/******************************************************************/ + +/* Platform specific definitions */ +#define PLATFORM_ZYNQMP + +/* Definitions for debug logic configuration in lockstep mode */ +#define LOCKSTEP_MODE_DEBUG 0U + +/* Definitions for sleep timer configuration */ +#define SLEEP_TIMER_BASEADDR XPAR_PSU_TTC_9_BASEADDR +#define SLEEP_TIMER_FREQUENCY XPAR_PSU_TTC_9_TTC_CLK_FREQ_HZ +#define XSLEEP_TTC_INSTANCE 3 +#define XSLEEP_TIMER_IS_DEFAULT_TIMER + + +/******************************************************************/ +/* Definitions for driver AVBUF */ +#define XPAR_XAVBUF_NUM_INSTANCES 1 + +/* Definitions for peripheral PSU_DP */ +#define XPAR_PSU_DP_DEVICE_ID 0 +#define XPAR_PSU_DP_BASEADDR 0xFD4A0000 +#define XPAR_PSU_DP_HIGHADDR 0xFD4AFFFF + + +/******************************************************************/ + +/* Canonical definitions for peripheral PSU_DP */ +#define XPAR_XAVBUF_0_DEVICE_ID XPAR_PSU_DP_DEVICE_ID +#define XPAR_XAVBUF_0_BASEADDR 0xFD4A0000 +#define XPAR_XAVBUF_0_HIGHADDR 0xFD4AFFFF + + /******************************************************************/ /* Definitions for driver AXIPMON */ -#define XPAR_XAXIPMON_NUM_INSTANCES 4 +#define XPAR_XAXIPMON_NUM_INSTANCES 4U /* Definitions for peripheral PSU_APM_0 */ -#define XPAR_PSU_APM_0_DEVICE_ID 0 -#define XPAR_PSU_APM_0_BASEADDR 0xFD0B0000 -#define XPAR_PSU_APM_0_HIGHADDR 0xFD0BFFFF -#define XPAR_PSU_APM_0_GLOBAL_COUNT_WIDTH 32 -#define XPAR_PSU_APM_0_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_PSU_APM_0_ENABLE_EVENT_COUNT 1 -#define XPAR_PSU_APM_0_NUM_MONITOR_SLOTS 6 -#define XPAR_PSU_APM_0_NUM_OF_COUNTERS 10 -#define XPAR_PSU_APM_0_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_PSU_APM_0_ENABLE_EVENT_LOG 0 -#define XPAR_PSU_APM_0_FIFO_AXIS_DEPTH 32 -#define XPAR_PSU_APM_0_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_PSU_APM_0_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_PSU_APM_0_METRIC_COUNT_SCALE 1 -#define XPAR_PSU_APM_0_ENABLE_ADVANCED 1 -#define XPAR_PSU_APM_0_ENABLE_PROFILE 0 -#define XPAR_PSU_APM_0_ENABLE_TRACE 0 -#define XPAR_PSU_APM_0_S_AXI4_BASEADDR 0x00000000 -#define XPAR_PSU_APM_0_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_PSU_APM_0_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_PSU_APM_0_DEVICE_ID 0U +#define XPAR_PSU_APM_0_BASEADDR 0xFD0B0000U +#define XPAR_PSU_APM_0_HIGHADDR 0xFD0BFFFFU +#define XPAR_PSU_APM_0_GLOBAL_COUNT_WIDTH 32U +#define XPAR_PSU_APM_0_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_PSU_APM_0_ENABLE_EVENT_COUNT 1U +#define XPAR_PSU_APM_0_NUM_MONITOR_SLOTS 6U +#define XPAR_PSU_APM_0_NUM_OF_COUNTERS 10U +#define XPAR_PSU_APM_0_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_PSU_APM_0_ENABLE_EVENT_LOG 0U +#define XPAR_PSU_APM_0_FIFO_AXIS_DEPTH 32U +#define XPAR_PSU_APM_0_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_PSU_APM_0_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_PSU_APM_0_METRIC_COUNT_SCALE 1U +#define XPAR_PSU_APM_0_ENABLE_ADVANCED 1U +#define XPAR_PSU_APM_0_ENABLE_PROFILE 0U +#define XPAR_PSU_APM_0_ENABLE_TRACE 0U +#define XPAR_PSU_APM_0_S_AXI4_BASEADDR 0x00000000U +#define XPAR_PSU_APM_0_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_PSU_APM_0_ENABLE_32BIT_FILTER_ID 1U /* Definitions for peripheral PSU_APM_1 */ -#define XPAR_PSU_APM_1_DEVICE_ID 1 -#define XPAR_PSU_APM_1_BASEADDR 0xFFA00000 -#define XPAR_PSU_APM_1_HIGHADDR 0xFFA0FFFF -#define XPAR_PSU_APM_1_GLOBAL_COUNT_WIDTH 32 -#define XPAR_PSU_APM_1_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_PSU_APM_1_ENABLE_EVENT_COUNT 1 -#define XPAR_PSU_APM_1_NUM_MONITOR_SLOTS 1 -#define XPAR_PSU_APM_1_NUM_OF_COUNTERS 3 -#define XPAR_PSU_APM_1_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_PSU_APM_1_ENABLE_EVENT_LOG 0 -#define XPAR_PSU_APM_1_FIFO_AXIS_DEPTH 32 -#define XPAR_PSU_APM_1_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_PSU_APM_1_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_PSU_APM_1_METRIC_COUNT_SCALE 1 -#define XPAR_PSU_APM_1_ENABLE_ADVANCED 1 -#define XPAR_PSU_APM_1_ENABLE_PROFILE 0 -#define XPAR_PSU_APM_1_ENABLE_TRACE 0 -#define XPAR_PSU_APM_1_S_AXI4_BASEADDR 0x00000000 -#define XPAR_PSU_APM_1_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_PSU_APM_1_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_PSU_APM_1_DEVICE_ID 1U +#define XPAR_PSU_APM_1_BASEADDR 0xFFA00000U +#define XPAR_PSU_APM_1_HIGHADDR 0xFFA0FFFFU +#define XPAR_PSU_APM_1_GLOBAL_COUNT_WIDTH 32U +#define XPAR_PSU_APM_1_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_PSU_APM_1_ENABLE_EVENT_COUNT 1U +#define XPAR_PSU_APM_1_NUM_MONITOR_SLOTS 1U +#define XPAR_PSU_APM_1_NUM_OF_COUNTERS 3U +#define XPAR_PSU_APM_1_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_PSU_APM_1_ENABLE_EVENT_LOG 0U +#define XPAR_PSU_APM_1_FIFO_AXIS_DEPTH 32U +#define XPAR_PSU_APM_1_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_PSU_APM_1_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_PSU_APM_1_METRIC_COUNT_SCALE 1U +#define XPAR_PSU_APM_1_ENABLE_ADVANCED 1U +#define XPAR_PSU_APM_1_ENABLE_PROFILE 0U +#define XPAR_PSU_APM_1_ENABLE_TRACE 0U +#define XPAR_PSU_APM_1_S_AXI4_BASEADDR 0x00000000U +#define XPAR_PSU_APM_1_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_PSU_APM_1_ENABLE_32BIT_FILTER_ID 1U /* Definitions for peripheral PSU_APM_2 */ -#define XPAR_PSU_APM_2_DEVICE_ID 2 -#define XPAR_PSU_APM_2_BASEADDR 0xFFA10000 -#define XPAR_PSU_APM_2_HIGHADDR 0xFFA1FFFF -#define XPAR_PSU_APM_2_GLOBAL_COUNT_WIDTH 32 -#define XPAR_PSU_APM_2_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_PSU_APM_2_ENABLE_EVENT_COUNT 1 -#define XPAR_PSU_APM_2_NUM_MONITOR_SLOTS 1 -#define XPAR_PSU_APM_2_NUM_OF_COUNTERS 3 -#define XPAR_PSU_APM_2_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_PSU_APM_2_ENABLE_EVENT_LOG 0 -#define XPAR_PSU_APM_2_FIFO_AXIS_DEPTH 32 -#define XPAR_PSU_APM_2_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_PSU_APM_2_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_PSU_APM_2_METRIC_COUNT_SCALE 1 -#define XPAR_PSU_APM_2_ENABLE_ADVANCED 1 -#define XPAR_PSU_APM_2_ENABLE_PROFILE 0 -#define XPAR_PSU_APM_2_ENABLE_TRACE 0 -#define XPAR_PSU_APM_2_S_AXI4_BASEADDR 0x00000000 -#define XPAR_PSU_APM_2_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_PSU_APM_2_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_PSU_APM_2_DEVICE_ID 2U +#define XPAR_PSU_APM_2_BASEADDR 0xFFA10000U +#define XPAR_PSU_APM_2_HIGHADDR 0xFFA1FFFFU +#define XPAR_PSU_APM_2_GLOBAL_COUNT_WIDTH 32U +#define XPAR_PSU_APM_2_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_PSU_APM_2_ENABLE_EVENT_COUNT 1U +#define XPAR_PSU_APM_2_NUM_MONITOR_SLOTS 1U +#define XPAR_PSU_APM_2_NUM_OF_COUNTERS 3U +#define XPAR_PSU_APM_2_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_PSU_APM_2_ENABLE_EVENT_LOG 0U +#define XPAR_PSU_APM_2_FIFO_AXIS_DEPTH 32U +#define XPAR_PSU_APM_2_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_PSU_APM_2_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_PSU_APM_2_METRIC_COUNT_SCALE 1U +#define XPAR_PSU_APM_2_ENABLE_ADVANCED 1U +#define XPAR_PSU_APM_2_ENABLE_PROFILE 0U +#define XPAR_PSU_APM_2_ENABLE_TRACE 0U +#define XPAR_PSU_APM_2_S_AXI4_BASEADDR 0x00000000U +#define XPAR_PSU_APM_2_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_PSU_APM_2_ENABLE_32BIT_FILTER_ID 1U /* Definitions for peripheral PSU_APM_5 */ -#define XPAR_PSU_APM_5_DEVICE_ID 3 -#define XPAR_PSU_APM_5_BASEADDR 0xFD490000 -#define XPAR_PSU_APM_5_HIGHADDR 0xFD49FFFF -#define XPAR_PSU_APM_5_GLOBAL_COUNT_WIDTH 32 -#define XPAR_PSU_APM_5_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_PSU_APM_5_ENABLE_EVENT_COUNT 1 -#define XPAR_PSU_APM_5_NUM_MONITOR_SLOTS 1 -#define XPAR_PSU_APM_5_NUM_OF_COUNTERS 3 -#define XPAR_PSU_APM_5_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_PSU_APM_5_ENABLE_EVENT_LOG 0 -#define XPAR_PSU_APM_5_FIFO_AXIS_DEPTH 32 -#define XPAR_PSU_APM_5_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_PSU_APM_5_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_PSU_APM_5_METRIC_COUNT_SCALE 1 -#define XPAR_PSU_APM_5_ENABLE_ADVANCED 1 -#define XPAR_PSU_APM_5_ENABLE_PROFILE 0 -#define XPAR_PSU_APM_5_ENABLE_TRACE 0 -#define XPAR_PSU_APM_5_S_AXI4_BASEADDR 0x00000000 -#define XPAR_PSU_APM_5_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_PSU_APM_5_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_PSU_APM_5_DEVICE_ID 3U +#define XPAR_PSU_APM_5_BASEADDR 0xFD490000U +#define XPAR_PSU_APM_5_HIGHADDR 0xFD49FFFFU +#define XPAR_PSU_APM_5_GLOBAL_COUNT_WIDTH 32U +#define XPAR_PSU_APM_5_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_PSU_APM_5_ENABLE_EVENT_COUNT 1U +#define XPAR_PSU_APM_5_NUM_MONITOR_SLOTS 1U +#define XPAR_PSU_APM_5_NUM_OF_COUNTERS 3U +#define XPAR_PSU_APM_5_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_PSU_APM_5_ENABLE_EVENT_LOG 0U +#define XPAR_PSU_APM_5_FIFO_AXIS_DEPTH 32U +#define XPAR_PSU_APM_5_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_PSU_APM_5_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_PSU_APM_5_METRIC_COUNT_SCALE 1U +#define XPAR_PSU_APM_5_ENABLE_ADVANCED 1U +#define XPAR_PSU_APM_5_ENABLE_PROFILE 0U +#define XPAR_PSU_APM_5_ENABLE_TRACE 0U +#define XPAR_PSU_APM_5_S_AXI4_BASEADDR 0x00000000U +#define XPAR_PSU_APM_5_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_PSU_APM_5_ENABLE_32BIT_FILTER_ID 1U /******************************************************************/ /* Canonical definitions for peripheral PSU_APM_0 */ #define XPAR_AXIPMON_0_DEVICE_ID XPAR_PSU_APM_0_DEVICE_ID -#define XPAR_AXIPMON_0_BASEADDR 0xFD0B0000 -#define XPAR_AXIPMON_0_HIGHADDR 0xFD0BFFFF -#define XPAR_AXIPMON_0_GLOBAL_COUNT_WIDTH 32 -#define XPAR_AXIPMON_0_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_AXIPMON_0_ENABLE_EVENT_COUNT 1 -#define XPAR_AXIPMON_0_NUM_MONITOR_SLOTS 6 -#define XPAR_AXIPMON_0_NUM_OF_COUNTERS 10 -#define XPAR_AXIPMON_0_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_AXIPMON_0_ENABLE_EVENT_LOG 0 -#define XPAR_AXIPMON_0_FIFO_AXIS_DEPTH 32 -#define XPAR_AXIPMON_0_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_AXIPMON_0_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_AXIPMON_0_METRIC_COUNT_SCALE 1 -#define XPAR_AXIPMON_0_ENABLE_ADVANCED 1 -#define XPAR_AXIPMON_0_ENABLE_PROFILE 0 -#define XPAR_AXIPMON_0_ENABLE_TRACE 0 -#define XPAR_AXIPMON_0_S_AXI4_BASEADDR 0x00000000 -#define XPAR_AXIPMON_0_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_AXIPMON_0_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_AXIPMON_0_BASEADDR 0xFD0B0000U +#define XPAR_AXIPMON_0_HIGHADDR 0xFD0BFFFFU +#define XPAR_AXIPMON_0_GLOBAL_COUNT_WIDTH 32U +#define XPAR_AXIPMON_0_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_AXIPMON_0_ENABLE_EVENT_COUNT 1U +#define XPAR_AXIPMON_0_NUM_MONITOR_SLOTS 6U +#define XPAR_AXIPMON_0_NUM_OF_COUNTERS 10U +#define XPAR_AXIPMON_0_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_AXIPMON_0_ENABLE_EVENT_LOG 0U +#define XPAR_AXIPMON_0_FIFO_AXIS_DEPTH 32U +#define XPAR_AXIPMON_0_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_AXIPMON_0_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_AXIPMON_0_METRIC_COUNT_SCALE 1U +#define XPAR_AXIPMON_0_ENABLE_ADVANCED 1U +#define XPAR_AXIPMON_0_ENABLE_PROFILE 0U +#define XPAR_AXIPMON_0_ENABLE_TRACE 0U +#define XPAR_AXIPMON_0_S_AXI4_BASEADDR 0x00000000U +#define XPAR_AXIPMON_0_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_AXIPMON_0_ENABLE_32BIT_FILTER_ID 1U /* Canonical definitions for peripheral PSU_APM_1 */ #define XPAR_AXIPMON_1_DEVICE_ID XPAR_PSU_APM_1_DEVICE_ID -#define XPAR_AXIPMON_1_BASEADDR 0xFFA00000 -#define XPAR_AXIPMON_1_HIGHADDR 0xFFA0FFFF -#define XPAR_AXIPMON_1_GLOBAL_COUNT_WIDTH 32 -#define XPAR_AXIPMON_1_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_AXIPMON_1_ENABLE_EVENT_COUNT 1 -#define XPAR_AXIPMON_1_NUM_MONITOR_SLOTS 1 -#define XPAR_AXIPMON_1_NUM_OF_COUNTERS 3 -#define XPAR_AXIPMON_1_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_AXIPMON_1_ENABLE_EVENT_LOG 0 -#define XPAR_AXIPMON_1_FIFO_AXIS_DEPTH 32 -#define XPAR_AXIPMON_1_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_AXIPMON_1_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_AXIPMON_1_METRIC_COUNT_SCALE 1 -#define XPAR_AXIPMON_1_ENABLE_ADVANCED 1 -#define XPAR_AXIPMON_1_ENABLE_PROFILE 0 -#define XPAR_AXIPMON_1_ENABLE_TRACE 0 -#define XPAR_AXIPMON_1_S_AXI4_BASEADDR 0x00000000 -#define XPAR_AXIPMON_1_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_AXIPMON_1_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_AXIPMON_1_BASEADDR 0xFFA00000U +#define XPAR_AXIPMON_1_HIGHADDR 0xFFA0FFFFU +#define XPAR_AXIPMON_1_GLOBAL_COUNT_WIDTH 32U +#define XPAR_AXIPMON_1_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_AXIPMON_1_ENABLE_EVENT_COUNT 1U +#define XPAR_AXIPMON_1_NUM_MONITOR_SLOTS 1U +#define XPAR_AXIPMON_1_NUM_OF_COUNTERS 3U +#define XPAR_AXIPMON_1_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_AXIPMON_1_ENABLE_EVENT_LOG 0U +#define XPAR_AXIPMON_1_FIFO_AXIS_DEPTH 32U +#define XPAR_AXIPMON_1_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_AXIPMON_1_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_AXIPMON_1_METRIC_COUNT_SCALE 1U +#define XPAR_AXIPMON_1_ENABLE_ADVANCED 1U +#define XPAR_AXIPMON_1_ENABLE_PROFILE 0U +#define XPAR_AXIPMON_1_ENABLE_TRACE 0U +#define XPAR_AXIPMON_1_S_AXI4_BASEADDR 0x00000000U +#define XPAR_AXIPMON_1_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_AXIPMON_1_ENABLE_32BIT_FILTER_ID 1U /* Canonical definitions for peripheral PSU_APM_2 */ #define XPAR_AXIPMON_2_DEVICE_ID XPAR_PSU_APM_2_DEVICE_ID -#define XPAR_AXIPMON_2_BASEADDR 0xFFA10000 -#define XPAR_AXIPMON_2_HIGHADDR 0xFFA1FFFF -#define XPAR_AXIPMON_2_GLOBAL_COUNT_WIDTH 32 -#define XPAR_AXIPMON_2_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_AXIPMON_2_ENABLE_EVENT_COUNT 1 -#define XPAR_AXIPMON_2_NUM_MONITOR_SLOTS 1 -#define XPAR_AXIPMON_2_NUM_OF_COUNTERS 3 -#define XPAR_AXIPMON_2_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_AXIPMON_2_ENABLE_EVENT_LOG 0 -#define XPAR_AXIPMON_2_FIFO_AXIS_DEPTH 32 -#define XPAR_AXIPMON_2_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_AXIPMON_2_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_AXIPMON_2_METRIC_COUNT_SCALE 1 -#define XPAR_AXIPMON_2_ENABLE_ADVANCED 1 -#define XPAR_AXIPMON_2_ENABLE_PROFILE 0 -#define XPAR_AXIPMON_2_ENABLE_TRACE 0 -#define XPAR_AXIPMON_2_S_AXI4_BASEADDR 0x00000000 -#define XPAR_AXIPMON_2_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_AXIPMON_2_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_AXIPMON_2_BASEADDR 0xFFA10000U +#define XPAR_AXIPMON_2_HIGHADDR 0xFFA1FFFFU +#define XPAR_AXIPMON_2_GLOBAL_COUNT_WIDTH 32U +#define XPAR_AXIPMON_2_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_AXIPMON_2_ENABLE_EVENT_COUNT 1U +#define XPAR_AXIPMON_2_NUM_MONITOR_SLOTS 1U +#define XPAR_AXIPMON_2_NUM_OF_COUNTERS 3U +#define XPAR_AXIPMON_2_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_AXIPMON_2_ENABLE_EVENT_LOG 0U +#define XPAR_AXIPMON_2_FIFO_AXIS_DEPTH 32U +#define XPAR_AXIPMON_2_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_AXIPMON_2_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_AXIPMON_2_METRIC_COUNT_SCALE 1U +#define XPAR_AXIPMON_2_ENABLE_ADVANCED 1U +#define XPAR_AXIPMON_2_ENABLE_PROFILE 0U +#define XPAR_AXIPMON_2_ENABLE_TRACE 0U +#define XPAR_AXIPMON_2_S_AXI4_BASEADDR 0x00000000U +#define XPAR_AXIPMON_2_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_AXIPMON_2_ENABLE_32BIT_FILTER_ID 1U /* Canonical definitions for peripheral PSU_APM_5 */ #define XPAR_AXIPMON_3_DEVICE_ID XPAR_PSU_APM_5_DEVICE_ID -#define XPAR_AXIPMON_3_BASEADDR 0xFD490000 -#define XPAR_AXIPMON_3_HIGHADDR 0xFD49FFFF -#define XPAR_AXIPMON_3_GLOBAL_COUNT_WIDTH 32 -#define XPAR_AXIPMON_3_METRICS_SAMPLE_COUNT_WIDTH 32 -#define XPAR_AXIPMON_3_ENABLE_EVENT_COUNT 1 -#define XPAR_AXIPMON_3_NUM_MONITOR_SLOTS 1 -#define XPAR_AXIPMON_3_NUM_OF_COUNTERS 3 -#define XPAR_AXIPMON_3_HAVE_SAMPLED_METRIC_CNT 1 -#define XPAR_AXIPMON_3_ENABLE_EVENT_LOG 0 -#define XPAR_AXIPMON_3_FIFO_AXIS_DEPTH 32 -#define XPAR_AXIPMON_3_FIFO_AXIS_TDATA_WIDTH 56 -#define XPAR_AXIPMON_3_FIFO_AXIS_TID_WIDTH 1 -#define XPAR_AXIPMON_3_METRIC_COUNT_SCALE 1 -#define XPAR_AXIPMON_3_ENABLE_ADVANCED 1 -#define XPAR_AXIPMON_3_ENABLE_PROFILE 0 -#define XPAR_AXIPMON_3_ENABLE_TRACE 0 -#define XPAR_AXIPMON_3_S_AXI4_BASEADDR 0x00000000 -#define XPAR_AXIPMON_3_S_AXI4_HIGHADDR 0x00000000 -#define XPAR_AXIPMON_3_ENABLE_32BIT_FILTER_ID 1 +#define XPAR_AXIPMON_3_BASEADDR 0xFD490000U +#define XPAR_AXIPMON_3_HIGHADDR 0xFD49FFFFU +#define XPAR_AXIPMON_3_GLOBAL_COUNT_WIDTH 32U +#define XPAR_AXIPMON_3_METRICS_SAMPLE_COUNT_WIDTH 32U +#define XPAR_AXIPMON_3_ENABLE_EVENT_COUNT 1U +#define XPAR_AXIPMON_3_NUM_MONITOR_SLOTS 1U +#define XPAR_AXIPMON_3_NUM_OF_COUNTERS 3U +#define XPAR_AXIPMON_3_HAVE_SAMPLED_METRIC_CNT 1U +#define XPAR_AXIPMON_3_ENABLE_EVENT_LOG 0U +#define XPAR_AXIPMON_3_FIFO_AXIS_DEPTH 32U +#define XPAR_AXIPMON_3_FIFO_AXIS_TDATA_WIDTH 56U +#define XPAR_AXIPMON_3_FIFO_AXIS_TID_WIDTH 1U +#define XPAR_AXIPMON_3_METRIC_COUNT_SCALE 1U +#define XPAR_AXIPMON_3_ENABLE_ADVANCED 1U +#define XPAR_AXIPMON_3_ENABLE_PROFILE 0U +#define XPAR_AXIPMON_3_ENABLE_TRACE 0U +#define XPAR_AXIPMON_3_S_AXI4_BASEADDR 0x00000000U +#define XPAR_AXIPMON_3_S_AXI4_HIGHADDR 0x00000000U +#define XPAR_AXIPMON_3_ENABLE_32BIT_FILTER_ID 1U /******************************************************************/ @@ -236,7 +266,7 @@ #define XPAR_PSU_CAN_1_DEVICE_ID 0 #define XPAR_PSU_CAN_1_BASEADDR 0xFF070000 #define XPAR_PSU_CAN_1_HIGHADDR 0xFF07FFFF -#define XPAR_PSU_CAN_1_CAN_CLK_FREQ_HZ 99998999 +#define XPAR_PSU_CAN_1_CAN_CLK_FREQ_HZ 99990000 /******************************************************************/ @@ -245,7 +275,7 @@ #define XPAR_XCANPS_0_DEVICE_ID XPAR_PSU_CAN_1_DEVICE_ID #define XPAR_XCANPS_0_BASEADDR 0xFF070000 #define XPAR_XCANPS_0_HIGHADDR 0xFF07FFFF -#define XPAR_XCANPS_0_CAN_CLK_FREQ_HZ 99998999 +#define XPAR_XCANPS_0_CAN_CLK_FREQ_HZ 99990000 /******************************************************************/ @@ -279,7 +309,7 @@ #define XPAR_PSU_DDRC_0_BASEADDR 0xFD070000 #define XPAR_PSU_DDRC_0_HIGHADDR 0xFD070FFF #define XPAR_PSU_DDRC_0_HAS_ECC 0 -#define XPAR_PSU_DDRC_0_DDRC_CLK_FREQ_HZ 533328002 +#define XPAR_PSU_DDRC_0_DDRC_CLK_FREQ_HZ 533280000 /******************************************************************/ @@ -288,7 +318,26 @@ #define XPAR_DDRCPSU_0_DEVICE_ID XPAR_PSU_DDRC_0_DEVICE_ID #define XPAR_DDRCPSU_0_BASEADDR 0xFD070000 #define XPAR_DDRCPSU_0_HIGHADDR 0xFD070FFF -#define XPAR_DDRCPSU_0_DDRC_CLK_FREQ_HZ 533328002 +#define XPAR_DDRCPSU_0_DDRC_CLK_FREQ_HZ 533280000 + + +/******************************************************************/ + +/* Definitions for driver DPDMA */ +#define XPAR_XDPDMA_NUM_INSTANCES 1 + +/* Definitions for peripheral PSU_DPDMA */ +#define XPAR_PSU_DPDMA_DEVICE_ID 0 +#define XPAR_PSU_DPDMA_BASEADDR 0xFD4C0000 +#define XPAR_PSU_DPDMA_HIGHADDR 0xFD4CFFFF + + +/******************************************************************/ + +/* Canonical definitions for peripheral PSU_DPDMA */ +#define XPAR_XDPDMA_0_DEVICE_ID XPAR_PSU_DPDMA_DEVICE_ID +#define XPAR_XDPDMA_0_BASEADDR 0xFD4C0000 +#define XPAR_XDPDMA_0_HIGHADDR 0xFD4CFFFF /******************************************************************/ @@ -300,28 +349,31 @@ #define XPAR_PSU_ETHERNET_3_DEVICE_ID 0 #define XPAR_PSU_ETHERNET_3_BASEADDR 0xFF0E0000 #define XPAR_PSU_ETHERNET_3_HIGHADDR 0xFF0EFFFF -#define XPAR_PSU_ETHERNET_3_ENET_CLK_FREQ_HZ 124998749 +#define XPAR_PSU_ETHERNET_3_ENET_CLK_FREQ_HZ 124987500 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_1000MBPS_DIV0 12 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_1000MBPS_DIV1 1 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_100MBPS_DIV0 60 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_100MBPS_DIV1 1 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_10MBPS_DIV0 60 #define XPAR_PSU_ETHERNET_3_ENET_SLCR_10MBPS_DIV1 10 +#define XPAR_PSU_ETHERNET_3_ENET_TSU_CLK_FREQ_HZ 249975000 /******************************************************************/ +#define XPAR_PSU_ETHERNET_3_IS_CACHE_COHERENT 0 /* Canonical definitions for peripheral PSU_ETHERNET_3 */ #define XPAR_XEMACPS_0_DEVICE_ID XPAR_PSU_ETHERNET_3_DEVICE_ID #define XPAR_XEMACPS_0_BASEADDR 0xFF0E0000 #define XPAR_XEMACPS_0_HIGHADDR 0xFF0EFFFF -#define XPAR_XEMACPS_0_ENET_CLK_FREQ_HZ 124998749 +#define XPAR_XEMACPS_0_ENET_CLK_FREQ_HZ 124987500 #define XPAR_XEMACPS_0_ENET_SLCR_1000Mbps_DIV0 12 #define XPAR_XEMACPS_0_ENET_SLCR_1000Mbps_DIV1 1 #define XPAR_XEMACPS_0_ENET_SLCR_100Mbps_DIV0 60 #define XPAR_XEMACPS_0_ENET_SLCR_100Mbps_DIV1 1 #define XPAR_XEMACPS_0_ENET_SLCR_10Mbps_DIV0 60 #define XPAR_XEMACPS_0_ENET_SLCR_10Mbps_DIV1 10 +#define XPAR_XEMACPS_0_ENET_TSU_CLK_FREQ_HZ 249975000 /******************************************************************/ @@ -377,16 +429,16 @@ #define XPAR_PSU_CCI_REG_S_AXI_HIGHADDR 0xFD5EFFFF -/* Definitions for peripheral PSU_CRF_APB */ -#define XPAR_PSU_CRF_APB_S_AXI_BASEADDR 0xFD1A0000 -#define XPAR_PSU_CRF_APB_S_AXI_HIGHADDR 0xFD2DFFFF - - /* Definitions for peripheral PSU_CRL_APB */ #define XPAR_PSU_CRL_APB_S_AXI_BASEADDR 0xFF5E0000 #define XPAR_PSU_CRL_APB_S_AXI_HIGHADDR 0xFF85FFFF +/* Definitions for peripheral PSU_CTRL_IPI */ +#define XPAR_PSU_CTRL_IPI_S_AXI_BASEADDR 0xFF380000 +#define XPAR_PSU_CTRL_IPI_S_AXI_HIGHADDR 0xFF3FFFFF + + /* Definitions for peripheral PSU_DDR_PHY */ #define XPAR_PSU_DDR_PHY_S_AXI_BASEADDR 0xFD080000 #define XPAR_PSU_DDR_PHY_S_AXI_HIGHADDR 0xFD08FFFF @@ -427,16 +479,6 @@ #define XPAR_PSU_DDR_XMPU5_CFG_S_AXI_HIGHADDR 0xFD05FFFF -/* Definitions for peripheral PSU_DP */ -#define XPAR_PSU_DP_S_AXI_BASEADDR 0xFD4A0000 -#define XPAR_PSU_DP_S_AXI_HIGHADDR 0xFD4AFFFF - - -/* Definitions for peripheral PSU_DPDMA */ -#define XPAR_PSU_DPDMA_S_AXI_BASEADDR 0xFD4C0000 -#define XPAR_PSU_DPDMA_S_AXI_HIGHADDR 0xFD4CFFFF - - /* Definitions for peripheral PSU_EFUSE */ #define XPAR_PSU_EFUSE_S_AXI_BASEADDR 0xFFCC0000 #define XPAR_PSU_EFUSE_S_AXI_HIGHADDR 0xFFCCFFFF @@ -517,6 +559,11 @@ #define XPAR_PSU_MBISTJTAG_S_AXI_HIGHADDR 0xFFCFFFFF +/* Definitions for peripheral PSU_MESSAGE_BUFFERS */ +#define XPAR_PSU_MESSAGE_BUFFERS_S_AXI_BASEADDR 0xFF990000 +#define XPAR_PSU_MESSAGE_BUFFERS_S_AXI_HIGHADDR 0xFF99FFFF + + /* Definitions for peripheral PSU_OCM */ #define XPAR_PSU_OCM_S_AXI_BASEADDR 0xFF960000 #define XPAR_PSU_OCM_S_AXI_HIGHADDR 0xFF96FFFF @@ -524,7 +571,7 @@ /* Definitions for peripheral PSU_OCM_RAM_0 */ #define XPAR_PSU_OCM_RAM_0_S_AXI_BASEADDR 0xFFFC0000 -#define XPAR_PSU_OCM_RAM_0_S_AXI_HIGHADDR 0xFFFEFFFF +#define XPAR_PSU_OCM_RAM_0_S_AXI_HIGHADDR 0xFFFFFFFF /* Definitions for peripheral PSU_OCM_XMPU_CFG */ @@ -547,6 +594,16 @@ #define XPAR_PSU_PCIE_DMA_S_AXI_HIGHADDR 0xFD0FFFFF +/* Definitions for peripheral PSU_PCIE_HIGH1 */ +#define XPAR_PSU_PCIE_HIGH1_S_AXI_BASEADDR 0x600000000 +#define XPAR_PSU_PCIE_HIGH1_S_AXI_HIGHADDR 0x7FFFFFFFF + + +/* Definitions for peripheral PSU_PCIE_HIGH2 */ +#define XPAR_PSU_PCIE_HIGH2_S_AXI_BASEADDR 0x8000000000 +#define XPAR_PSU_PCIE_HIGH2_S_AXI_HIGHADDR 0xBFFFFFFFFF + + /* Definitions for peripheral PSU_PCIE_LOW */ #define XPAR_PSU_PCIE_LOW_S_AXI_BASEADDR 0xE0000000 #define XPAR_PSU_PCIE_LOW_S_AXI_HIGHADDR 0xEFFFFFFF @@ -557,11 +614,6 @@ #define XPAR_PSU_PMU_GLOBAL_0_S_AXI_HIGHADDR 0xFFDBFFFF -/* Definitions for peripheral PSU_PMU_IOMODULE */ -#define XPAR_PSU_PMU_IOMODULE_S_AXI_BASEADDR 0xFFD40000 -#define XPAR_PSU_PMU_IOMODULE_S_AXI_HIGHADDR 0xFFD5FFFF - - /* Definitions for peripheral PSU_QSPI_LINEAR_0 */ #define XPAR_PSU_QSPI_LINEAR_0_S_AXI_BASEADDR 0xC0000000 #define XPAR_PSU_QSPI_LINEAR_0_S_AXI_HIGHADDR 0xDFFFFFFF @@ -579,7 +631,7 @@ /* Definitions for peripheral PSU_R5_DDR_0 */ #define XPAR_PSU_R5_DDR_0_S_AXI_BASEADDR 0x00100000 -#define XPAR_PSU_R5_DDR_0_S_AXI_HIGHADDR 0xFFFFFFFF +#define XPAR_PSU_R5_DDR_0_S_AXI_HIGHADDR 0x7FFFFFFF /* Definitions for peripheral PSU_R5_TCM_RAM_0 */ @@ -622,6 +674,11 @@ #define XPAR_PSU_SMMU_REG_S_AXI_HIGHADDR 0xFD5FFFFF +/* Definitions for peripheral PSU_USB_0 */ +#define XPAR_PSU_USB_0_S_AXI_BASEADDR 0xFF9D0000 +#define XPAR_PSU_USB_0_S_AXI_HIGHADDR 0xFF9DFFFF + + /******************************************************************/ /* Definitions for driver GPIOPS */ @@ -650,14 +707,14 @@ #define XPAR_PSU_I2C_0_DEVICE_ID 0 #define XPAR_PSU_I2C_0_BASEADDR 0xFF020000 #define XPAR_PSU_I2C_0_HIGHADDR 0xFF02FFFF -#define XPAR_PSU_I2C_0_I2C_CLK_FREQ_HZ 99998999 +#define XPAR_PSU_I2C_0_I2C_CLK_FREQ_HZ 99990000 /* Definitions for peripheral PSU_I2C_1 */ #define XPAR_PSU_I2C_1_DEVICE_ID 1 #define XPAR_PSU_I2C_1_BASEADDR 0xFF030000 #define XPAR_PSU_I2C_1_HIGHADDR 0xFF03FFFF -#define XPAR_PSU_I2C_1_I2C_CLK_FREQ_HZ 99998999 +#define XPAR_PSU_I2C_1_I2C_CLK_FREQ_HZ 99990000 /******************************************************************/ @@ -666,25 +723,25 @@ #define XPAR_XIICPS_0_DEVICE_ID XPAR_PSU_I2C_0_DEVICE_ID #define XPAR_XIICPS_0_BASEADDR 0xFF020000 #define XPAR_XIICPS_0_HIGHADDR 0xFF02FFFF -#define XPAR_XIICPS_0_I2C_CLK_FREQ_HZ 99998999 +#define XPAR_XIICPS_0_I2C_CLK_FREQ_HZ 99990000 /* Canonical definitions for peripheral PSU_I2C_1 */ #define XPAR_XIICPS_1_DEVICE_ID XPAR_PSU_I2C_1_DEVICE_ID #define XPAR_XIICPS_1_BASEADDR 0xFF030000 #define XPAR_XIICPS_1_HIGHADDR 0xFF03FFFF -#define XPAR_XIICPS_1_I2C_CLK_FREQ_HZ 99998999 +#define XPAR_XIICPS_1_I2C_CLK_FREQ_HZ 99990000 /******************************************************************/ -#define XPAR_XIPIPSU_NUM_INSTANCES 1 +#define XPAR_XIPIPSU_NUM_INSTANCES 1U /* Parameter definitions for peripheral psu_ipi_1 */ -#define XPAR_PSU_IPI_1_DEVICE_ID 0 -#define XPAR_PSU_IPI_1_BASE_ADDRESS 0xFF310000 -#define XPAR_PSU_IPI_1_BIT_MASK 0x00000100 -#define XPAR_PSU_IPI_1_BUFFER_INDEX 0 -#define XPAR_PSU_IPI_1_INT_ID 65 +#define XPAR_PSU_IPI_1_DEVICE_ID 0U +#define XPAR_PSU_IPI_1_BASE_ADDRESS 0xFF310000U +#define XPAR_PSU_IPI_1_BIT_MASK 0x00000100U +#define XPAR_PSU_IPI_1_BUFFER_INDEX 0U +#define XPAR_PSU_IPI_1_INT_ID 65U /* Canonical definitions for peripheral psu_ipi_1 */ #define XPAR_XIPIPSU_0_DEVICE_ID XPAR_PSU_IPI_1_DEVICE_ID @@ -693,58 +750,50 @@ #define XPAR_XIPIPSU_0_BUFFER_INDEX XPAR_PSU_IPI_1_BUFFER_INDEX #define XPAR_XIPIPSU_0_INT_ID XPAR_PSU_IPI_1_INT_ID -#define XPAR_XIPIPSU_NUM_TARGETS 11 +#define XPAR_XIPIPSU_NUM_TARGETS 7U -#define XPAR_PSU_IPI_0_BIT_MASK 0x00000001 -#define XPAR_PSU_IPI_0_BUFFER_INDEX 2 -#define XPAR_PSU_IPI_1_BIT_MASK 0x00000100 -#define XPAR_PSU_IPI_1_BUFFER_INDEX 0 -#define XPAR_PSU_IPI_2_BIT_MASK 0x00000200 -#define XPAR_PSU_IPI_2_BUFFER_INDEX 1 -#define XPAR_PSU_IPI_3_BIT_MASK 0x00010000 -#define XPAR_PSU_IPI_3_BUFFER_INDEX 7 -#define XPAR_PSU_IPI_4_BIT_MASK 0x00020000 -#define XPAR_PSU_IPI_4_BUFFER_INDEX 7 -#define XPAR_PSU_IPI_5_BIT_MASK 0x00040000 -#define XPAR_PSU_IPI_5_BUFFER_INDEX 7 -#define XPAR_PSU_IPI_6_BIT_MASK 0x00080000 -#define XPAR_PSU_IPI_6_BUFFER_INDEX 7 -#define XPAR_PSU_IPI_7_BIT_MASK 0x01000000 -#define XPAR_PSU_IPI_7_BUFFER_INDEX 3 -#define XPAR_PSU_IPI_8_BIT_MASK 0x02000000 -#define XPAR_PSU_IPI_8_BUFFER_INDEX 4 -#define XPAR_PSU_IPI_9_BIT_MASK 0x04000000 -#define XPAR_PSU_IPI_9_BUFFER_INDEX 5 -#define XPAR_PSU_IPI_10_BIT_MASK 0x08000000 -#define XPAR_PSU_IPI_10_BUFFER_INDEX 6 +#define XPAR_PSU_IPI_0_BIT_MASK 0x00000001U +#define XPAR_PSU_IPI_0_BUFFER_INDEX 2U +#define XPAR_PSU_IPI_1_BIT_MASK 0x00000100U +#define XPAR_PSU_IPI_1_BUFFER_INDEX 0U +#define XPAR_PSU_IPI_2_BIT_MASK 0x00000200U +#define XPAR_PSU_IPI_2_BUFFER_INDEX 1U +#define XPAR_PSU_IPI_3_BIT_MASK 0x00010000U +#define XPAR_PSU_IPI_3_BUFFER_INDEX 7U +#define XPAR_PSU_IPI_4_BIT_MASK 0x00020000U +#define XPAR_PSU_IPI_4_BUFFER_INDEX 7U +#define XPAR_PSU_IPI_5_BIT_MASK 0x00040000U +#define XPAR_PSU_IPI_5_BUFFER_INDEX 7U +#define XPAR_PSU_IPI_6_BIT_MASK 0x00080000U +#define XPAR_PSU_IPI_6_BUFFER_INDEX 7U /* Target List for referring to processor IPI Targets */ #define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_0_CH0_MASK XPAR_PSU_IPI_0_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_0_CH0_INDEX 0 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_0_CH0_INDEX 0U #define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_1_CH0_MASK XPAR_PSU_IPI_0_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_1_CH0_INDEX 0 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_1_CH0_INDEX 0U #define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_2_CH0_MASK XPAR_PSU_IPI_0_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_2_CH0_INDEX 0 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_2_CH0_INDEX 0U #define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_3_CH0_MASK XPAR_PSU_IPI_0_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_3_CH0_INDEX 0 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXA53_3_CH0_INDEX 0U #define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_0_CH0_MASK XPAR_PSU_IPI_1_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_0_CH0_INDEX 1 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_0_CH0_INDEX 1U #define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_1_CH0_MASK XPAR_PSU_IPI_2_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_1_CH0_INDEX 2 +#define XPAR_XIPIPS_TARGET_PSU_CORTEXR5_1_CH0_INDEX 2U #define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH0_MASK XPAR_PSU_IPI_3_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH0_INDEX 3 +#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH0_INDEX 3U #define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH1_MASK XPAR_PSU_IPI_4_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH1_INDEX 4 +#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH1_INDEX 4U #define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH2_MASK XPAR_PSU_IPI_5_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH2_INDEX 5 +#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH2_INDEX 5U #define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH3_MASK XPAR_PSU_IPI_6_BIT_MASK -#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH3_INDEX 6 +#define XPAR_XIPIPS_TARGET_PSU_PMU_0_CH3_INDEX 6U /* Definitions for driver QSPIPSU */ #define XPAR_XQSPIPSU_NUM_INSTANCES 1 @@ -753,22 +802,31 @@ #define XPAR_PSU_QSPI_0_DEVICE_ID 0 #define XPAR_PSU_QSPI_0_BASEADDR 0xFF0F0000 #define XPAR_PSU_QSPI_0_HIGHADDR 0xFF0FFFFF -#define XPAR_PSU_QSPI_0_QSPI_CLK_FREQ_HZ 124998749 +#define XPAR_PSU_QSPI_0_QSPI_CLK_FREQ_HZ 124987500 #define XPAR_PSU_QSPI_0_QSPI_MODE 2 #define XPAR_PSU_QSPI_0_QSPI_BUS_WIDTH 2 /******************************************************************/ +#define XPAR_PSU_QSPI_0_IS_CACHE_COHERENT 0 /* Canonical definitions for peripheral PSU_QSPI_0 */ #define XPAR_XQSPIPSU_0_DEVICE_ID XPAR_PSU_QSPI_0_DEVICE_ID #define XPAR_XQSPIPSU_0_BASEADDR 0xFF0F0000 #define XPAR_XQSPIPSU_0_HIGHADDR 0xFF0FFFFF -#define XPAR_XQSPIPSU_0_QSPI_CLK_FREQ_HZ 124998749 +#define XPAR_XQSPIPSU_0_QSPI_CLK_FREQ_HZ 124987500 #define XPAR_XQSPIPSU_0_QSPI_MODE 2 #define XPAR_XQSPIPSU_0_QSPI_BUS_WIDTH 2 +/******************************************************************/ + +/* Definitions for driver RESETPS */ +#define XPAR_XRESETPS_NUM_INSTANCES 1U +/* Definitions for peripheral RESETPS */ +#define XPAR_XRESETPS_DEVICE_ID 0 +#define XPAR_XRESETPS_BASEADDR 0xFFFFFFFFU + /******************************************************************/ /* Definitions for driver RTCPSU */ @@ -791,22 +849,22 @@ /******************************************************************/ /* Definitions for driver SCUGIC */ -#define XPAR_XSCUGIC_NUM_INSTANCES 1 +#define XPAR_XSCUGIC_NUM_INSTANCES 1U /* Definitions for peripheral PSU_RCPU_GIC */ -#define XPAR_PSU_RCPU_GIC_DEVICE_ID 0 -#define XPAR_PSU_RCPU_GIC_BASEADDR 0xF9001000 -#define XPAR_PSU_RCPU_GIC_HIGHADDR 0xF9001FFF -#define XPAR_PSU_RCPU_GIC_DIST_BASEADDR 0xF9000000 +#define XPAR_PSU_RCPU_GIC_DEVICE_ID 0U +#define XPAR_PSU_RCPU_GIC_BASEADDR 0xF9001000U +#define XPAR_PSU_RCPU_GIC_HIGHADDR 0xF9001FFFU +#define XPAR_PSU_RCPU_GIC_DIST_BASEADDR 0xF9000000U /******************************************************************/ /* Canonical definitions for peripheral PSU_RCPU_GIC */ -#define XPAR_SCUGIC_0_DEVICE_ID 0 -#define XPAR_SCUGIC_0_CPU_BASEADDR 0xF9001000 -#define XPAR_SCUGIC_0_CPU_HIGHADDR 0xF9001FFF -#define XPAR_SCUGIC_0_DIST_BASEADDR 0xF9000000 +#define XPAR_SCUGIC_0_DEVICE_ID 0U +#define XPAR_SCUGIC_0_CPU_BASEADDR 0xF9001000U +#define XPAR_SCUGIC_0_CPU_HIGHADDR 0xF9001FFFU +#define XPAR_SCUGIC_0_DIST_BASEADDR 0xF9000000U /******************************************************************/ @@ -818,24 +876,25 @@ #define XPAR_PSU_SD_1_DEVICE_ID 0 #define XPAR_PSU_SD_1_BASEADDR 0xFF170000 #define XPAR_PSU_SD_1_HIGHADDR 0xFF17FFFF -#define XPAR_PSU_SD_1_SDIO_CLK_FREQ_HZ 199998006 +#define XPAR_PSU_SD_1_SDIO_CLK_FREQ_HZ 187481250 #define XPAR_PSU_SD_1_HAS_CD 1 #define XPAR_PSU_SD_1_HAS_WP 1 -#define XPAR_PSU_SD_1_BUS_WIDTH 4 +#define XPAR_PSU_SD_1_BUS_WIDTH 8 #define XPAR_PSU_SD_1_MIO_BANK 1 #define XPAR_PSU_SD_1_HAS_EMIO 0 /******************************************************************/ +#define XPAR_PSU_SD_1_IS_CACHE_COHERENT 0 /* Canonical definitions for peripheral PSU_SD_1 */ #define XPAR_XSDPS_0_DEVICE_ID XPAR_PSU_SD_1_DEVICE_ID #define XPAR_XSDPS_0_BASEADDR 0xFF170000 #define XPAR_XSDPS_0_HIGHADDR 0xFF17FFFF -#define XPAR_XSDPS_0_SDIO_CLK_FREQ_HZ 199998006 +#define XPAR_XSDPS_0_SDIO_CLK_FREQ_HZ 187481250 #define XPAR_XSDPS_0_HAS_CD 1 #define XPAR_XSDPS_0_HAS_WP 1 -#define XPAR_XSDPS_0_BUS_WIDTH 4 +#define XPAR_XSDPS_0_BUS_WIDTH 8 #define XPAR_XSDPS_0_MIO_BANK 1 #define XPAR_XSDPS_0_HAS_EMIO 0 @@ -853,6 +912,7 @@ /******************************************************************/ +#define XPAR_PSU_AMS_REF_FREQMHZ 49.995 /* Canonical definitions for peripheral PSU_AMS */ #define XPAR_XSYSMONPSU_0_DEVICE_ID XPAR_PSU_AMS_DEVICE_ID #define XPAR_XSYSMONPSU_0_BASEADDR 0xFFA50000 @@ -862,133 +922,133 @@ /******************************************************************/ /* Definitions for driver TTCPS */ -#define XPAR_XTTCPS_NUM_INSTANCES 12 +#define XPAR_XTTCPS_NUM_INSTANCES 12U /* Definitions for peripheral PSU_TTC_0 */ -#define XPAR_PSU_TTC_0_DEVICE_ID 0 -#define XPAR_PSU_TTC_0_BASEADDR 0XFF110000 -#define XPAR_PSU_TTC_0_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_0_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_1_DEVICE_ID 1 -#define XPAR_PSU_TTC_1_BASEADDR 0XFF110004 -#define XPAR_PSU_TTC_1_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_1_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_2_DEVICE_ID 2 -#define XPAR_PSU_TTC_2_BASEADDR 0XFF110008 -#define XPAR_PSU_TTC_2_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_2_TTC_CLK_CLKSRC 0 +#define XPAR_PSU_TTC_0_DEVICE_ID 0U +#define XPAR_PSU_TTC_0_BASEADDR 0XFF110000U +#define XPAR_PSU_TTC_0_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_0_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_1_DEVICE_ID 1U +#define XPAR_PSU_TTC_1_BASEADDR 0XFF110004U +#define XPAR_PSU_TTC_1_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_1_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_2_DEVICE_ID 2U +#define XPAR_PSU_TTC_2_BASEADDR 0XFF110008U +#define XPAR_PSU_TTC_2_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_2_TTC_CLK_CLKSRC 0U /* Definitions for peripheral PSU_TTC_1 */ -#define XPAR_PSU_TTC_3_DEVICE_ID 3 -#define XPAR_PSU_TTC_3_BASEADDR 0XFF120000 -#define XPAR_PSU_TTC_3_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_3_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_4_DEVICE_ID 4 -#define XPAR_PSU_TTC_4_BASEADDR 0XFF120004 -#define XPAR_PSU_TTC_4_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_4_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_5_DEVICE_ID 5 -#define XPAR_PSU_TTC_5_BASEADDR 0XFF120008 -#define XPAR_PSU_TTC_5_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_5_TTC_CLK_CLKSRC 0 +#define XPAR_PSU_TTC_3_DEVICE_ID 3U +#define XPAR_PSU_TTC_3_BASEADDR 0XFF120000U +#define XPAR_PSU_TTC_3_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_3_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_4_DEVICE_ID 4U +#define XPAR_PSU_TTC_4_BASEADDR 0XFF120004U +#define XPAR_PSU_TTC_4_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_4_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_5_DEVICE_ID 5U +#define XPAR_PSU_TTC_5_BASEADDR 0XFF120008U +#define XPAR_PSU_TTC_5_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_5_TTC_CLK_CLKSRC 0U /* Definitions for peripheral PSU_TTC_2 */ -#define XPAR_PSU_TTC_6_DEVICE_ID 6 -#define XPAR_PSU_TTC_6_BASEADDR 0XFF130000 -#define XPAR_PSU_TTC_6_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_6_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_7_DEVICE_ID 7 -#define XPAR_PSU_TTC_7_BASEADDR 0XFF130004 -#define XPAR_PSU_TTC_7_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_7_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_8_DEVICE_ID 8 -#define XPAR_PSU_TTC_8_BASEADDR 0XFF130008 -#define XPAR_PSU_TTC_8_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_8_TTC_CLK_CLKSRC 0 +#define XPAR_PSU_TTC_6_DEVICE_ID 6U +#define XPAR_PSU_TTC_6_BASEADDR 0XFF130000U +#define XPAR_PSU_TTC_6_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_6_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_7_DEVICE_ID 7U +#define XPAR_PSU_TTC_7_BASEADDR 0XFF130004U +#define XPAR_PSU_TTC_7_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_7_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_8_DEVICE_ID 8U +#define XPAR_PSU_TTC_8_BASEADDR 0XFF130008U +#define XPAR_PSU_TTC_8_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_8_TTC_CLK_CLKSRC 0U /* Definitions for peripheral PSU_TTC_3 */ -#define XPAR_PSU_TTC_9_DEVICE_ID 9 -#define XPAR_PSU_TTC_9_BASEADDR 0XFF140000 -#define XPAR_PSU_TTC_9_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_9_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_10_DEVICE_ID 10 -#define XPAR_PSU_TTC_10_BASEADDR 0XFF140004 -#define XPAR_PSU_TTC_10_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_10_TTC_CLK_CLKSRC 0 -#define XPAR_PSU_TTC_11_DEVICE_ID 11 -#define XPAR_PSU_TTC_11_BASEADDR 0XFF140008 -#define XPAR_PSU_TTC_11_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_PSU_TTC_11_TTC_CLK_CLKSRC 0 +#define XPAR_PSU_TTC_9_DEVICE_ID 9U +#define XPAR_PSU_TTC_9_BASEADDR 0XFF140000U +#define XPAR_PSU_TTC_9_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_9_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_10_DEVICE_ID 10U +#define XPAR_PSU_TTC_10_BASEADDR 0XFF140004U +#define XPAR_PSU_TTC_10_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_10_TTC_CLK_CLKSRC 0U +#define XPAR_PSU_TTC_11_DEVICE_ID 11U +#define XPAR_PSU_TTC_11_BASEADDR 0XFF140008U +#define XPAR_PSU_TTC_11_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_PSU_TTC_11_TTC_CLK_CLKSRC 0U /******************************************************************/ /* Canonical definitions for peripheral PSU_TTC_0 */ #define XPAR_XTTCPS_0_DEVICE_ID XPAR_PSU_TTC_0_DEVICE_ID -#define XPAR_XTTCPS_0_BASEADDR 0xFF110000 -#define XPAR_XTTCPS_0_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_0_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_0_BASEADDR 0xFF110000U +#define XPAR_XTTCPS_0_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_0_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_1_DEVICE_ID XPAR_PSU_TTC_1_DEVICE_ID -#define XPAR_XTTCPS_1_BASEADDR 0xFF110004 -#define XPAR_XTTCPS_1_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_1_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_1_BASEADDR 0xFF110004U +#define XPAR_XTTCPS_1_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_1_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_2_DEVICE_ID XPAR_PSU_TTC_2_DEVICE_ID -#define XPAR_XTTCPS_2_BASEADDR 0xFF110008 -#define XPAR_XTTCPS_2_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_2_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_2_BASEADDR 0xFF110008U +#define XPAR_XTTCPS_2_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_2_TTC_CLK_CLKSRC 0U /* Canonical definitions for peripheral PSU_TTC_1 */ #define XPAR_XTTCPS_3_DEVICE_ID XPAR_PSU_TTC_3_DEVICE_ID -#define XPAR_XTTCPS_3_BASEADDR 0xFF120000 -#define XPAR_XTTCPS_3_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_3_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_3_BASEADDR 0xFF120000U +#define XPAR_XTTCPS_3_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_3_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_4_DEVICE_ID XPAR_PSU_TTC_4_DEVICE_ID -#define XPAR_XTTCPS_4_BASEADDR 0xFF120004 -#define XPAR_XTTCPS_4_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_4_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_4_BASEADDR 0xFF120004U +#define XPAR_XTTCPS_4_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_4_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_5_DEVICE_ID XPAR_PSU_TTC_5_DEVICE_ID -#define XPAR_XTTCPS_5_BASEADDR 0xFF120008 -#define XPAR_XTTCPS_5_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_5_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_5_BASEADDR 0xFF120008U +#define XPAR_XTTCPS_5_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_5_TTC_CLK_CLKSRC 0U /* Canonical definitions for peripheral PSU_TTC_2 */ #define XPAR_XTTCPS_6_DEVICE_ID XPAR_PSU_TTC_6_DEVICE_ID -#define XPAR_XTTCPS_6_BASEADDR 0xFF130000 -#define XPAR_XTTCPS_6_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_6_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_6_BASEADDR 0xFF130000U +#define XPAR_XTTCPS_6_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_6_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_7_DEVICE_ID XPAR_PSU_TTC_7_DEVICE_ID -#define XPAR_XTTCPS_7_BASEADDR 0xFF130004 -#define XPAR_XTTCPS_7_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_7_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_7_BASEADDR 0xFF130004U +#define XPAR_XTTCPS_7_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_7_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_8_DEVICE_ID XPAR_PSU_TTC_8_DEVICE_ID -#define XPAR_XTTCPS_8_BASEADDR 0xFF130008 -#define XPAR_XTTCPS_8_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_8_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_8_BASEADDR 0xFF130008U +#define XPAR_XTTCPS_8_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_8_TTC_CLK_CLKSRC 0U /* Canonical definitions for peripheral PSU_TTC_3 */ #define XPAR_XTTCPS_9_DEVICE_ID XPAR_PSU_TTC_9_DEVICE_ID -#define XPAR_XTTCPS_9_BASEADDR 0xFF140000 -#define XPAR_XTTCPS_9_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_9_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_9_BASEADDR 0xFF140000U +#define XPAR_XTTCPS_9_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_9_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_10_DEVICE_ID XPAR_PSU_TTC_10_DEVICE_ID -#define XPAR_XTTCPS_10_BASEADDR 0xFF140004 -#define XPAR_XTTCPS_10_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_10_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_10_BASEADDR 0xFF140004U +#define XPAR_XTTCPS_10_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_10_TTC_CLK_CLKSRC 0U #define XPAR_XTTCPS_11_DEVICE_ID XPAR_PSU_TTC_11_DEVICE_ID -#define XPAR_XTTCPS_11_BASEADDR 0xFF140008 -#define XPAR_XTTCPS_11_TTC_CLK_FREQ_HZ 100000000 -#define XPAR_XTTCPS_11_TTC_CLK_CLKSRC 0 +#define XPAR_XTTCPS_11_BASEADDR 0xFF140008U +#define XPAR_XTTCPS_11_TTC_CLK_FREQ_HZ 100000000U +#define XPAR_XTTCPS_11_TTC_CLK_CLKSRC 0U /******************************************************************/ @@ -1000,7 +1060,7 @@ #define XPAR_PSU_UART_0_DEVICE_ID 0 #define XPAR_PSU_UART_0_BASEADDR 0xFF000000 #define XPAR_PSU_UART_0_HIGHADDR 0xFF00FFFF -#define XPAR_PSU_UART_0_UART_CLK_FREQ_HZ 99998999 +#define XPAR_PSU_UART_0_UART_CLK_FREQ_HZ 99990000 #define XPAR_PSU_UART_0_HAS_MODEM 0 @@ -1008,7 +1068,7 @@ #define XPAR_PSU_UART_1_DEVICE_ID 1 #define XPAR_PSU_UART_1_BASEADDR 0xFF010000 #define XPAR_PSU_UART_1_HIGHADDR 0xFF01FFFF -#define XPAR_PSU_UART_1_UART_CLK_FREQ_HZ 99998999 +#define XPAR_PSU_UART_1_UART_CLK_FREQ_HZ 99990000 #define XPAR_PSU_UART_1_HAS_MODEM 0 @@ -1018,14 +1078,14 @@ #define XPAR_XUARTPS_0_DEVICE_ID XPAR_PSU_UART_0_DEVICE_ID #define XPAR_XUARTPS_0_BASEADDR 0xFF000000 #define XPAR_XUARTPS_0_HIGHADDR 0xFF00FFFF -#define XPAR_XUARTPS_0_UART_CLK_FREQ_HZ 99998999 +#define XPAR_XUARTPS_0_UART_CLK_FREQ_HZ 99990000 #define XPAR_XUARTPS_0_HAS_MODEM 0 /* Canonical definitions for peripheral PSU_UART_1 */ #define XPAR_XUARTPS_1_DEVICE_ID XPAR_PSU_UART_1_DEVICE_ID #define XPAR_XUARTPS_1_BASEADDR 0xFF010000 #define XPAR_XUARTPS_1_HIGHADDR 0xFF01FFFF -#define XPAR_XUARTPS_1_UART_CLK_FREQ_HZ 99998999 +#define XPAR_XUARTPS_1_UART_CLK_FREQ_HZ 99990000 #define XPAR_XUARTPS_1_HAS_MODEM 0 @@ -1034,16 +1094,17 @@ /* Definitions for driver USBPSU */ #define XPAR_XUSBPSU_NUM_INSTANCES 1 -/* Definitions for peripheral PSU_USB_0 */ -#define XPAR_PSU_USB_0_DEVICE_ID 0 -#define XPAR_PSU_USB_0_BASEADDR 0xFE200000 -#define XPAR_PSU_USB_0_HIGHADDR 0xFE20FFFF +/* Definitions for peripheral PSU_USB_XHCI_0 */ +#define XPAR_PSU_USB_XHCI_0_DEVICE_ID 0 +#define XPAR_PSU_USB_XHCI_0_BASEADDR 0xFE200000 +#define XPAR_PSU_USB_XHCI_0_HIGHADDR 0xFE20FFFF /******************************************************************/ -/* Canonical definitions for peripheral PSU_USB_0 */ -#define XPAR_XUSBPSU_0_DEVICE_ID XPAR_PSU_USB_0_DEVICE_ID +#define XPAR_PSU_USB_XHCI_0_IS_CACHE_COHERENT 0 +/* Canonical definitions for peripheral PSU_USB_XHCI_0 */ +#define XPAR_XUSBPSU_0_DEVICE_ID XPAR_PSU_USB_XHCI_0_DEVICE_ID #define XPAR_XUSBPSU_0_BASEADDR 0xFE200000 #define XPAR_XUSBPSU_0_HIGHADDR 0xFE20FFFF @@ -1051,35 +1112,48 @@ /******************************************************************/ /* Definitions for driver WDTPS */ -#define XPAR_XWDTPS_NUM_INSTANCES 2 +#define XPAR_XWDTPS_NUM_INSTANCES 3 + +/* Definitions for peripheral PSU_CSU_WDT */ +#define XPAR_PSU_CSU_WDT_DEVICE_ID 0 +#define XPAR_PSU_CSU_WDT_BASEADDR 0xFFCB0000 +#define XPAR_PSU_CSU_WDT_HIGHADDR 0xFFCBFFFF +#define XPAR_PSU_CSU_WDT_WDT_CLK_FREQ_HZ 100000000 + /* Definitions for peripheral PSU_WDT_0 */ -#define XPAR_PSU_WDT_0_DEVICE_ID 0 +#define XPAR_PSU_WDT_0_DEVICE_ID 1 #define XPAR_PSU_WDT_0_BASEADDR 0xFF150000 #define XPAR_PSU_WDT_0_HIGHADDR 0xFF15FFFF -#define XPAR_PSU_WDT_0_WDT_CLK_FREQ_HZ 99999001 +#define XPAR_PSU_WDT_0_WDT_CLK_FREQ_HZ 99989998 /* Definitions for peripheral PSU_WDT_1 */ -#define XPAR_PSU_WDT_1_DEVICE_ID 1 +#define XPAR_PSU_WDT_1_DEVICE_ID 2 #define XPAR_PSU_WDT_1_BASEADDR 0xFD4D0000 #define XPAR_PSU_WDT_1_HIGHADDR 0xFD4DFFFF -#define XPAR_PSU_WDT_1_WDT_CLK_FREQ_HZ 99999001 +#define XPAR_PSU_WDT_1_WDT_CLK_FREQ_HZ 99989998 /******************************************************************/ +/* Canonical definitions for peripheral PSU_CSU_WDT */ +#define XPAR_XWDTPS_0_DEVICE_ID XPAR_PSU_CSU_WDT_DEVICE_ID +#define XPAR_XWDTPS_0_BASEADDR 0xFFCB0000 +#define XPAR_XWDTPS_0_HIGHADDR 0xFFCBFFFF +#define XPAR_XWDTPS_0_WDT_CLK_FREQ_HZ 100000000 + /* Canonical definitions for peripheral PSU_WDT_0 */ -#define XPAR_XWDTPS_0_DEVICE_ID XPAR_PSU_WDT_0_DEVICE_ID -#define XPAR_XWDTPS_0_BASEADDR 0xFF150000 -#define XPAR_XWDTPS_0_HIGHADDR 0xFF15FFFF -#define XPAR_XWDTPS_0_WDT_CLK_FREQ_HZ 99999001 +#define XPAR_XWDTPS_1_DEVICE_ID XPAR_PSU_WDT_0_DEVICE_ID +#define XPAR_XWDTPS_1_BASEADDR 0xFF150000 +#define XPAR_XWDTPS_1_HIGHADDR 0xFF15FFFF +#define XPAR_XWDTPS_1_WDT_CLK_FREQ_HZ 99989998 /* Canonical definitions for peripheral PSU_WDT_1 */ -#define XPAR_XWDTPS_1_DEVICE_ID XPAR_PSU_WDT_1_DEVICE_ID -#define XPAR_XWDTPS_1_BASEADDR 0xFD4D0000 -#define XPAR_XWDTPS_1_HIGHADDR 0xFD4DFFFF -#define XPAR_XWDTPS_1_WDT_CLK_FREQ_HZ 99999001 +#define XPAR_XWDTPS_2_DEVICE_ID XPAR_PSU_WDT_1_DEVICE_ID +#define XPAR_XWDTPS_2_BASEADDR 0xFD4D0000 +#define XPAR_XWDTPS_2_HIGHADDR 0xFD4DFFFF +#define XPAR_XWDTPS_2_WDT_CLK_FREQ_HZ 99989998 /******************************************************************/ @@ -1217,6 +1291,22 @@ /******************************************************************/ +#define XPAR_PSU_ADMA_0_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_1_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_2_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_3_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_4_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_5_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_6_IS_CACHE_COHERENT 0 +#define XPAR_PSU_ADMA_7_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_0_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_1_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_2_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_3_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_4_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_5_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_6_IS_CACHE_COHERENT 0 +#define XPAR_PSU_GDMA_7_IS_CACHE_COHERENT 0 /* Canonical definitions for peripheral PSU_ADMA_0 */ #define XPAR_XZDMA_0_DEVICE_ID XPAR_PSU_ADMA_0_DEVICE_ID #define XPAR_XZDMA_0_BASEADDR 0xFFA80000 @@ -1332,3 +1422,4 @@ /******************************************************************/ +#endif /* end of protection macro */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/Makefile new file mode 100644 index 000000000..2a2195c4d --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/Makefile @@ -0,0 +1,40 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +CC_FLAGS = $(COMPILER_FLAGS) +ECC_FLAGS = $(EXTRA_COMPILER_FLAGS) + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +OUTS = *.o + +LIBSOURCES:=*.c +INCLUDEFILES:=*.h + +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) + +libs: banner avbuf_libs clean + +%.o: %.c + ${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) -o $@ $< + +banner: + echo "Compiling avbuf" + +avbuf_libs: ${OBJECTS} + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} + +.PHONY: include +include: avbuf_includes + +avbuf_includes: + ${CP} ${INCLUDEFILES} ${INCLUDEDIR} + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf.c new file mode 100644 index 000000000..34e841ff5 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf.c @@ -0,0 +1,1092 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf.c + * + * This file implements all the functions related to the Video Pipeline of the + * DisplayPort Subsystem. See xavbuf.h for the detailed description of the + * driver. + * + * @note None. + * + *

      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   aad  06/24/17 Initial release.
      + * 2.0   aad  10/08/17 Some APIs to use enums instead of Macros.
      + *		       Some bug fixes.
      + * 
      + * +*******************************************************************************/ +/******************************* Include Files ********************************/ +#include "xavbuf.h" +#include "xstatus.h" + +/**************************** Constant Definitions ****************************/ +const XAVBuf_VideoAttribute XAVBuf_SupportedFormats[XAVBUF_NUM_SUPPORTED]; + +/******************************************************************************/ +/** + * This function sets the scaling factors depending on the source video stream. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param RegOffset is the register offset of the SF0 register from the + * DP BaseAddress. + * @param Scaling Factors is a pointer to the scaling factors needed for + * scaling colors to 12 BPC. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +static void XAVBuf_SetScalingFactors(XAVBuf *InstancePtr, u32 RegOffset, + u32 *ScalingFactors) +{ + u32 Index = 0; + for (Index = 0; Index < 3; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + RegOffset + (Index * 4), ScalingFactors[Index]); + } + +} + +/******************************************************************************/ +/** + * This function sets the Layer Control for Video and Graphics layers. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param RegOffset is the register offset of Video Layer or Graphics + * Layer from the base address + * @param Video is a pointer to the XAVBuf_VideoAttribute struct which + * has been configured for the particular layer + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +static void XAVBuf_SetLayerControl(XAVBuf *InstancePtr, u32 RegOffset, + XAVBuf_VideoAttribute *Video) +{ + u32 RegVal = 0; + + RegVal = (Video->IsRGB << + XAVBUF_V_BLEND_LAYER0_CONTROL_RGB_MODE_SHIFT) | + Video->SamplingEn; + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, RegOffset, RegVal); +} + +/******************************************************************************/ +/** + * This function applies Attributes for Live source(Video/Graphics). + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param RegConfig is a register offset for Video or Graphics config + * register + * @param Video is a pointer to the attributes of the video to be applied + * + * @return None. + * + * @note Live source can be live Video or Live Graphics. +******************************************************************************/ +static void XAVBuf_SetLiveVideoAttributes(XAVBuf *InstancePtr, u32 RegConfig, + XAVBuf_VideoAttribute *Video) +{ + u32 RegVal = 0; + + RegVal |= Video->Value << XAVBUF_BUF_LIVE_VID_CFG_FORMAT_SHIFT; + RegVal |= Video->BPP/6 - 3; + RegVal |= Video->Swap << XAVBUF_BUF_LIVE_VID_CFG_CB_FIRST_SHIFT; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, RegConfig, RegVal); +} + +/******************************************************************************/ +/** + * This function applies Attributes for Non - Live source(Video/Graphics). + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param VideoSrc is the source of the Non-Live Video + * @param Video is a pointer to the attributes of the video to be applied + * + * @return None. + * + * @note Non Live source can be Non Live Video or Non Live Graphics. +******************************************************************************/ +static void XAVBuf_SetNonLiveVideoAttributes(XAVBuf *InstancePtr, u32 VideoSrc, + XAVBuf_VideoAttribute *Video) +{ + u32 RegVal = 0; + + RegVal = XAVBuf_ReadReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_FORMAT); + if(VideoSrc == XAVBUF_VIDSTREAM1_NONLIVE) { + RegVal &= ~XAVBUF_BUF_FORMAT_NL_VID_FORMAT_MASK; + RegVal |= Video->Value; + } + else if (VideoSrc == XAVBUF_VIDSTREAM2_NONLIVE_GFX) { + RegVal &= ~XAVBUF_BUF_FORMAT_NL_GRAPHX_FORMAT_MASK; + RegVal |= (Video->Value) << + XAVBUF_BUF_FORMAT_NL_GRAPHX_FORMAT_SHIFT; + } + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_BUF_FORMAT, + RegVal); +} + +/******************************************************************************/ +/** + * This function programs the coeffitients for Color Space Conversion. + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param RegOffset is a register offset for Video or Graphics config + * register + * @param Video is a pointer to the XAVBuf_Attribute structure + * + * @return None. + * + * @note None. +******************************************************************************/ +static void XAVBuf_InConvertToRGB(XAVBuf *InstancePtr, u32 RegOffset, + XAVBuf_VideoAttribute *Video) +{ + u16 Index; + u16 *CSCMatrix; + u16 *OffsetMatrix; + + /* SDTV Coefficients */ + u16 CSCCoeffs[] = { 0x1000, 0x0000, 0x166F, + 0x1000, 0x7A7F, 0x7493, + 0x1000, 0x1C5A, 0x0000 }; + u16 CSCOffset[] = { 0x0000, 0x1800, 0x1800 }; + u16 RGBCoeffs[] = { 0x1000, 0x0000, 0x0000, + 0x0000, 0x1000, 0x0000, + 0x0000, 0x0000, 0x1000 }; + u16 RGBOffset[] = { 0x0000, 0x0000, 0x0000 }; + if(Video->IsRGB) { + CSCMatrix = RGBCoeffs; + OffsetMatrix = RGBOffset; + } + else { + CSCMatrix = CSCCoeffs; + OffsetMatrix = CSCOffset; + } + /* Program Colorspace conversion coefficients */ + for (Index = 9; Index < 12; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + RegOffset + (Index * 4), + OffsetMatrix[Index - 9]); + } + + /* Program Colorspace conversion matrix */ + for (Index = 0; Index < 9; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + RegOffset + (Index * 4), CSCMatrix[Index]); + } + +} + +/******************************************************************************/ +/** + * This function converts the Blender output to the desired output format. + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param RegConfig is a register offset for Video or Graphics config + * register + * @param Video is a pointer to the XAVBuf_Attribute structure + * + * @return None. + * + * @note None. +******************************************************************************/ +static void XAVBuf_InConvertToOutputFormat(XAVBuf *InstancePtr, + XAVBuf_VideoAttribute *Video) + +{ u32 Index = 0; + u32 RegOffset = XAVBUF_V_BLEND_RGB2YCBCR_COEFF0; + u32 ColorOffset = XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET; + u8 Value = Video->Value; + u16 *MatrixCoeff; + u16 *MatrixOffset; + + /* SDTV Coeffitients */ + u16 CSCCoeffs[] = { 0x04C8, 0x0964, 0x01D3, + 0x7D4C, 0x7AB4, 0x0800, + 0x0800, 0x7945, 0x7EB5 }; + u16 CSCOffset[] = { 0x0000, 0x800, 0x800 }; + u16 RGBCoeffs[] = { 0x1000, 0x0000, 0x0000, + 0x0000, 0x1000, 0x0000, + 0x0000, 0x0000, 0x1000 }; + u16 RGBOffset[] = { 0x0000, 0x0000, 0x0000 }; + + + if(Value) { + MatrixCoeff = CSCCoeffs; + MatrixOffset = CSCOffset; + + } + else { + MatrixCoeff = RGBCoeffs; + MatrixOffset = RGBOffset; + } + + for (Index = 0; Index < 9; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + RegOffset + (Index * 4), MatrixCoeff[Index]); + } + for (Index = 0; Index < 3; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + ColorOffset + (Index * 4), + (MatrixOffset[Index] << + XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_POST_OFFSET_SHIFT)); + } +} +/******************************************************************************/ +/** + * This function configures the Video Pipeline for the selected source + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param VideoSrc is a parameter which indicates which Video Source + * selected + * + * @return None. + * + * @note None. +******************************************************************************/ +static int XAVBuf_ConfigureVideo(XAVBuf *InstancePtr, u8 VideoSrc) +{ + + u32 RegConfig = 0; + u32 ScalingOffset = 0; + u32 LayerOffset = 0; + u32 CSCOffset = 0; + XAVBuf_VideoAttribute *Video = NULL; + u32 *ScalingFactors = NULL; + + Xil_AssertNonvoid(InstancePtr != NULL); + switch(VideoSrc) { + case XAVBUF_VIDSTREAM1_LIVE: + RegConfig = XAVBUF_BUF_LIVE_VID_CFG; + ScalingOffset = XAVBUF_BUF_LIVE_VID_COMP0_SF; + LayerOffset = XAVBUF_V_BLEND_LAYER0_CONTROL; + CSCOffset = XAVBUF_V_BLEND_IN1CSC_COEFF0; + Video = InstancePtr->AVMode.LiveVideo; + ScalingFactors = Video->SF; + + /* Set the Video Attributes */ + XAVBuf_SetLiveVideoAttributes(InstancePtr, RegConfig, + Video); + break; + + case XAVBUF_VIDSTREAM2_LIVE_GFX: + RegConfig = XAVBUF_BUF_LIVE_GFX_CFG; + ScalingOffset = XAVBUF_BUF_LIVE_GFX_COMP0_SF; + LayerOffset = XAVBUF_V_BLEND_LAYER1_CONTROL; + CSCOffset = XAVBUF_V_BLEND_IN2CSC_COEFF0; + Video = InstancePtr->AVMode.LiveGraphics; + ScalingFactors = Video->SF; + + /* Set the Video Attributes */ + XAVBuf_SetLiveVideoAttributes(InstancePtr, RegConfig, + Video); + break; + + case XAVBUF_VIDSTREAM1_NONLIVE: + RegConfig = XAVBUF_BUF_LIVE_GFX_CFG; + ScalingOffset = XAVBUF_BUF_VID_COMP0_SCALE_FACTOR; + LayerOffset = XAVBUF_V_BLEND_LAYER0_CONTROL; + CSCOffset = XAVBUF_V_BLEND_IN1CSC_COEFF0; + Video = InstancePtr->AVMode.NonLiveVideo; + ScalingFactors = Video->SF; + + /* Set the Video Attributes */ + XAVBuf_SetNonLiveVideoAttributes(InstancePtr, VideoSrc, + Video); + break; + + case XAVBUF_VIDSTREAM2_NONLIVE_GFX: + RegConfig = XAVBUF_BUF_LIVE_GFX_CFG; + ScalingOffset = XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR; + LayerOffset = XAVBUF_V_BLEND_LAYER1_CONTROL; + CSCOffset = XAVBUF_V_BLEND_IN2CSC_COEFF0; + Video = InstancePtr->AVMode.NonLiveGraphics; + ScalingFactors = Video->SF; + + /* Set the Video Attributes */ + XAVBuf_SetNonLiveVideoAttributes(InstancePtr, VideoSrc, + Video); + break; + case XAVBUF_VIDSTREAM1_TPG: + RegConfig |= 1 << + XAVBUF_V_BLEND_LAYER0_CONTROL_RGB_MODE_SHIFT; + RegConfig |= 1 << + XAVBUF_V_BLEND_LAYER0_CONTROL_BYPASS_SHIFT; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_V_BLEND_LAYER0_CONTROL, + RegConfig); + break; + default: + return XST_FAILURE; + } + /* Setting the scaling factors */ + XAVBuf_SetScalingFactors(InstancePtr, ScalingOffset, ScalingFactors); + /* Layer Control */ + XAVBuf_SetLayerControl(InstancePtr, LayerOffset, Video); + /* Colorspace conversion */ + XAVBuf_InConvertToRGB(InstancePtr, CSCOffset, Video); + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function intializes the configuration for the AVBuf Instance. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param BaseAddr sets the base address of the AVBuf instance + * @param Deviceid is the id of the device from the design. + * + * @return None. + * + * @note Base address and DeviceId is same as the DP Core driver. + * +*******************************************************************************/ +void XAVBuf_CfgInitialize(XAVBuf *InstancePtr, u32 BaseAddr, u16 DeviceId) +{ + Xil_AssertVoid(InstancePtr != NULL); + + InstancePtr->Config.DeviceId = DeviceId; + InstancePtr->Config.BaseAddr = BaseAddr; +} + +/******************************************************************************/ +/** + * This function initializes all the data structures of the XAVBuf Instance. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XAVBuf_Initialize(XAVBuf *InstancePtr) +{ + Xil_AssertVoid(InstancePtr != NULL); + + InstancePtr->AVMode.NonLiveVideo = NULL; + InstancePtr->AVMode.LiveVideo = NULL; + InstancePtr->AVMode.LiveGraphics = NULL; + InstancePtr->AVMode.NonLiveGraphics = NULL; + InstancePtr->AVMode.VideoSrc = XAVBUF_VIDSTREAM1_NONE; + InstancePtr->AVMode.GraphicsSrc = XAVBUF_VIDSTREAM2_NONE; + InstancePtr->AVMode.Audio = NULL; + InstancePtr->AVMode.GraphicsAudio = NULL; + InstancePtr->AVMode.AudioSrc1 = XAVBUF_AUDSTREAM1_NO_AUDIO; + InstancePtr->AVMode.AudioSrc2 = XAVBUF_AUDSTREAM2_NO_AUDIO; + + InstancePtr->Blender.GlobalAlphaEn = 0; + InstancePtr->Blender.Alpha = 0; + InstancePtr->Blender.OutputVideo = NULL; + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_AUD_SOFT_RST, 0); +} + +/******************************************************************************/ +/** + * This function selects the source for the Video and Graphics streams that are + * passed on to the blender block. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param VidStream selects the stream coming from the video sources + * @param GfxStream selects the stream coming from the graphics sources + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XAVBuf_InputVideoSelect(XAVBuf *InstancePtr, XAVBuf_VideoStream VidStream, + XAVBuf_GfxStream GfxStream) +{ + + + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid((VidStream != XAVBUF_VIDSTREAM1_LIVE) | + (VidStream != XAVBUF_VIDSTREAM1_NONLIVE) | + (VidStream != XAVBUF_VIDSTREAM1_TPG) | + (VidStream != XAVBUF_VIDSTREAM1_NONE)); + Xil_AssertVoid((GfxStream != XAVBUF_VIDSTREAM2_DISABLEGFX) | + (GfxStream != XAVBUF_VIDSTREAM2_NONLIVE_GFX) | + (GfxStream != XAVBUF_VIDSTREAM2_LIVE_GFX) | + (GfxStream != XAVBUF_VIDSTREAM2_NONE)); + + InstancePtr->AVMode.VideoSrc = VidStream; + InstancePtr->AVMode.GraphicsSrc = GfxStream; + u32 RegVal; + RegVal = XAVBuf_ReadReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT); + RegVal &= ~(XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM2_SEL_MASK | + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM1_SEL_MASK); + RegVal |= VidStream | GfxStream; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT, RegVal); +} + +/******************************************************************************/ +/** + * This function sets the video format for the non-live video + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Format is the enum for the non-live video format + * + * @return XST_SUCCESS if the correct format has been set. + * XST_FAILURE if the format is invalid. + * + * @note None. +*******************************************************************************/ +int XAVBuf_SetInputNonLiveVideoFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format) +{ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((Format >= CbY0CrY1) | (Format <= YV16Ci2_420_10BPC)); + + InstancePtr->AVMode.NonLiveVideo = + XAVBuf_GetNLiveVideoAttribute(Format); + if(InstancePtr->AVMode.NonLiveVideo == NULL) + return XST_FAILURE; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the graphics format for the non-live video + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Format is the enum for the non-live video format + * + * @return XST_SUCCESS if the correct format has been set. + * XST_FAILURE if the format is invalid. + * + * @note None. +*******************************************************************************/ +int XAVBuf_SetInputNonLiveGraphicsFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format) +{ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((Format >= RGBA8888) |( Format <= YOnly)); + + InstancePtr->AVMode.NonLiveGraphics = + XAVBuf_GetNLGraphicsAttribute(Format); + if(InstancePtr->AVMode.NonLiveGraphics == NULL) + return XST_FAILURE; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the video format for the live video + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Format is the enum for the non-live video format + * + * @return XST_SUCCESS if the correct format has been set. + * XST_FAILURE if the format is invalid. + * + * @note None. +*******************************************************************************/ +int XAVBuf_SetInputLiveVideoFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format) +{ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((Format >= RGB_6BPC) | (Format <= YOnly_12BPC)); + + InstancePtr->AVMode.LiveVideo = XAVBuf_GetLiveVideoAttribute(Format); + if(InstancePtr->AVMode.LiveVideo == NULL) + return XST_FAILURE; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the graphics format for the live video + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Format is the enum for the non-live video format + * + * @return XST_SUCCESS if the correct format has been set. + * XST_FAILURE if the format is invalid. + * + * @note None. +*******************************************************************************/ +int XAVBuf_SetInputLiveGraphicsFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format) +{ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((Format >= RGB_6BPC) | (Format <= YOnly_12BPC)); + + InstancePtr->AVMode.LiveGraphics = + XAVBuf_GetLiveVideoAttribute(Format); + if(InstancePtr->AVMode.LiveGraphics == NULL) + return XST_FAILURE; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the Output Video Format + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Format is the enum for the non-live video format + * + * @return XST_SUCCESS if the correct format has been set. + * XST_FAILURE if the format is invalid. + * + * @note None. +*******************************************************************************/ +int XAVBuf_SetOutputVideoFormat(XAVBuf *InstancePtr, XAVBuf_VideoFormat Format) +{ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((Format >= RGB_6BPC) | (Format <= YOnly_12BPC)); + + InstancePtr->Blender.OutputVideo = + XAVBuf_GetLiveVideoAttribute(Format); + if(InstancePtr->Blender.OutputVideo == NULL) + return XST_FAILURE; + else + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the Audio and Video Clock Source and the video timing + * source. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param VideoClk selects the Video Clock Source + * @param AudioClk selects the Audio Clock Source + * + * @return None. + * + * @note System uses PL Clock for Video when Live source is in use. + * +*******************************************************************************/ +void XAVBuf_SetAudioVideoClkSrc(XAVBuf *InstancePtr, u8 VideoClk, u8 AudioClk) +{ + + u32 RegVal = 0; + + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid((VideoClk != XAVBUF_PS_CLK) | + (VideoClk!= XAVBUF_PL_CLK)); + Xil_AssertVoid((AudioClk != XAVBUF_PS_CLK) | + (AudioClk!= XAVBUF_PL_CLK)); + + if((InstancePtr->AVMode.VideoSrc != XAVBUF_VIDSTREAM1_LIVE) && + (InstancePtr->AVMode.GraphicsSrc != XAVBUF_VIDSTREAM2_LIVE_GFX)) { + RegVal = 1 << + XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_TIMING_SRC_SHIFT; + } + else if((InstancePtr->AVMode.VideoSrc == XAVBUF_VIDSTREAM1_LIVE) || + (InstancePtr->AVMode.GraphicsSrc == + XAVBUF_VIDSTREAM2_LIVE_GFX)) { + VideoClk = XAVBUF_PL_CLK; + } + + RegVal |= (VideoClk << + XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_CLK_SRC_SHIFT) | + (AudioClk << + XAVBUF_BUF_AUD_VID_CLK_SOURCE_AUD_CLK_SRC_SHIFT); + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_AUD_VID_CLK_SOURCE, RegVal); + /*Soft Reset VideoPipeline when changing the clock source*/ + XAVBuf_SoftReset(InstancePtr); +} + +/******************************************************************************/ +/** + * This function applies a soft reset to the Audio Video pipeline. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XAVBuf_SoftReset(XAVBuf *InstancePtr) +{ + Xil_AssertVoid(InstancePtr != NULL); + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_BUF_SRST_REG, + XAVBUF_BUF_SRST_REG_VID_RST_MASK); + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_BUF_SRST_REG, 0); +} + +/******************************************************************************/ +/** + * This function looks up if the video format is valid or not for the non-live + * video datapath and returns a pointer to the attributes of the video. + * + * @param Format takes in the video format for which attributes are being + * requested. + * + * @return A pointer to the structure XAVBuf_VideoAttribute if the video + * format is valid, else returns NULL. + * @note None. +*******************************************************************************/ +XAVBuf_VideoAttribute *XAVBuf_GetLiveVideoAttribute(XAVBuf_VideoFormat Format) +{ + u8 Index = 0; + XAVBuf_VideoAttribute *VideoAttribute; + Xil_AssertNonvoid((Format >= RGB_6BPC) | (Format <= YOnly_12BPC)); + + for (Index = RGB_6BPC; Index <= YOnly_12BPC; Index++) { + VideoAttribute = (XAVBuf_VideoAttribute *) + &XAVBuf_SupportedFormats[Index]; + if(Format == VideoAttribute->VideoFormat) { + return VideoAttribute; + } + } + return NULL; +} + +/******************************************************************************/ +/** + * This function looks up if the video format is valid or not and returns a + * pointer to the attributes of the video. + * + * @param Format takes in the video format for which attributes are being + * requested. + * + * @return A pointer to the structure XAVBuf_VideoAttribute if the video + * format is valid, else returns NULL. + * @note None. +*******************************************************************************/ +XAVBuf_VideoAttribute *XAVBuf_GetNLiveVideoAttribute(XAVBuf_VideoFormat Format) +{ + u8 Index = 0; + XAVBuf_VideoAttribute *VideoAttribute; + + Xil_AssertNonvoid((Format >= CbY0CrY1) | (Format <= YV16Ci2_420_10BPC)); + + for (Index = CbY0CrY1; Index <= YV16Ci2_420_10BPC; Index++) { + VideoAttribute = (XAVBuf_VideoAttribute *) + &XAVBuf_SupportedFormats[Index]; + if(Format == VideoAttribute->VideoFormat) { + return VideoAttribute; + } + } + return NULL; +} + +/******************************************************************************/ +/** + * This function looks up if the video format is valid or not and returns a + * pointer to the attributes of the video. + * + * @param Format takes in the video format for which attributes are being + * requested. + * + * @return A pointer to the structure XAVBuf_VideoAttribute if the video + * format is valid, else returns NULL. + * @note None. +*******************************************************************************/ +XAVBuf_VideoAttribute *XAVBuf_GetNLGraphicsAttribute(XAVBuf_VideoFormat Format) +{ + u32 Index = 0; + XAVBuf_VideoAttribute *VideoAttribute; + + Xil_AssertNonvoid((Format >= RGBA8888) | (Format <= YOnly)); + + for(Index = RGBA8888; Index <= YOnly; Index++) { + VideoAttribute = (XAVBuf_VideoAttribute *) + &XAVBuf_SupportedFormats[Index]; + if(Format == VideoAttribute->VideoFormat) { + return VideoAttribute; + } + } + return NULL; +} + +/******************************************************************************/ +/** + * This function configures the Video Pipeline + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * + * @return None. + * + * @note None. +******************************************************************************/ +void XAVBuf_ConfigureVideoPipeline(XAVBuf *InstancePtr) +{ + Xil_AssertVoid(InstancePtr != NULL); + + XAVBuf_ConfigureVideo(InstancePtr, InstancePtr->AVMode.VideoSrc); +} + +/******************************************************************************/ +/** + * This function configures the Graphics Pipeline + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * + * @return None. + * + * @note None. +******************************************************************************/ +void XAVBuf_ConfigureGraphicsPipeline(XAVBuf *InstancePtr) +{ + Xil_AssertVoid(InstancePtr != NULL); + XAVBuf_ConfigureVideo(InstancePtr, InstancePtr->AVMode.GraphicsSrc); +} + +/******************************************************************************/ +/** + * This function sets the blender background color + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param Color is a pointer to the structure XAVBuf_BlenderBgClr + * + * @return None. + * + * @note None. +******************************************************************************/ +void XAVBuf_BlendSetBgColor(XAVBuf *InstancePtr, XAVBuf_BlenderBgClr *Color) +{ + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid(Color != NULL); + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_V_BLEND_BG_CLR_0, + Color->RCr); + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_V_BLEND_BG_CLR_1, + Color->GY); + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_V_BLEND_BG_CLR_2, + Color->BCb); +} + +/******************************************************************************/ +/** + * This function enables or disables global alpha + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param Enable sets a software flag for global alpha + * @param Alpha sets the value for the global alpha blending + * + * @return None. + * + * @note GlobalAlphaEn = 1, enables the global alpha. + * GlobalAlphaEn = 0, disables the global alpha. + * Alpha = 0, passes stream2 + * Alpha = 255, passes stream1 +******************************************************************************/ +void XAVBuf_SetBlenderAlpha(XAVBuf *InstancePtr, u8 Alpha, u8 Enable) +{ + u32 RegVal; + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid((Enable !=0) | (Enable != 1)); + + InstancePtr->Blender.GlobalAlphaEn = Enable; + InstancePtr->Blender.Alpha = Alpha; + + RegVal = Enable; + RegVal |= Alpha << XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_VALUE_SHIFT; + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG, RegVal); +} + +/******************************************************************************/ +/** + * This function configures the Output of the Video Pipeline + * + * @param InstancePtr is an pointer to the XAVBuf Instance. + * @param OutputVideo is a pointer to the XAVBuf_VideoAttribute. + * + * @return None. + * + * @note None. +******************************************************************************/ +void XAVBuf_ConfigureOutputVideo(XAVBuf *InstancePtr) +{ + u32 RegVal = 0; + XAVBuf_VideoAttribute *OutputVideo = InstancePtr->Blender.OutputVideo; + + RegVal |= OutputVideo->SamplingEn << + XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_EN_DOWNSAMPLE_SHIFT; + RegVal |= OutputVideo->Value; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_V_BLEND_OUTPUT_VID_FORMAT, RegVal); + + XAVBuf_InConvertToOutputFormat(InstancePtr, OutputVideo); +} + +/******************************************************************************/ +/** + * This function selects the source for audio streams corresponding to the + * Video and Graphics streams that are passed on to the blender + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param AudStream1 selects the audio stream source corresponding to + * the video source selected + * @param AudStream2 selects the audio stream source corresponding to + * the graphics source selected. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XAVBuf_InputAudioSelect(XAVBuf *InstancePtr, XAVBuf_AudioStream1 AudStream1, + XAVBuf_AudioStream2 AudStream2) +{ + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid((AudStream1 != XAVBUF_AUDSTREAM1_NONLIVE) | + (AudStream1 != XAVBUF_AUDSTREAM1_LIVE) | + (AudStream1 != XAVBUF_AUDSTREAM1_TPG)); + Xil_AssertVoid((AudStream2 != XAVBUF_AUDSTREAM2_NO_AUDIO) | + (AudStream2 != XAVBUF_AUDSTREAM2_AUDIOGFX)); + + u32 RegVal; + RegVal = XAVBuf_ReadReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT); + RegVal &= ~(XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM2_SEL_MASK | + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM1_SEL_MASK); + RegVal |= AudStream1 | AudStream2; + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_BUF_OUTPUT_AUD_VID_SELECT, RegVal); +} + +/******************************************************************************/ +/** + * This function sets up the scaling factor for Audio Mixer Volume Control. + * + * @param InstancePtr is a pointer to the XAVBuf instance. + * @param Channel0Volume is the volume to be set for Audio from Channel0 + * @param Channel1Volume is the volume to be set for Audio from Channel1 + * + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XAVBuf_AudioMixerVolumeControl(XAVBuf *InstancePtr, u8 Channel0Volume, + u8 Channel1Volume) +{ + u32 Val; + Xil_AssertVoid(InstancePtr != NULL); + Val = Channel1Volume << + XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH1_SHIFT; + Val |= Channel0Volume; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_AUD_MIXER_VOLUME_CONTROL, Val); +} + +/******************************************************************************/ +/** + * This function resets the Audio Pipe. + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * + * @returns None. + * + * @note Needed when non-live audio is disabled. + * + * + ******************************************************************************/ +void XAVBuf_AudioSoftReset(XAVBuf *InstancePtr) +{ + u32 RegVal = 0; + Xil_AssertVoid(InstancePtr != NULL); + RegVal = XAVBuf_ReadReg(InstancePtr->Config.BaseAddr, + XAVBUF_AUD_SOFT_RST); + RegVal |= XAVBUF_AUD_SOFT_RST_AUD_SRST_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_AUD_SOFT_RST, + RegVal); + RegVal &= ~XAVBUF_AUD_SOFT_RST_AUD_SRST_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_AUD_SOFT_RST, 0); + +} + +/******************************************************************************/ +/** + * This function enables End of Line Reset for reduced blanking resolutions. + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * @param Disable is to be set while using Reduced Blanking Resolutions. + * + * @returns None. + * + * @note None. + * + ******************************************************************************/ +void XABuf_LineResetDisable(XAVBuf *InstancePtr, u8 Disable) +{ + u32 RegVal = 0; + Xil_AssertVoid(InstancePtr != NULL); + RegVal = XAVBuf_ReadReg(InstancePtr->Config.BaseAddr, + XAVBUF_AUD_SOFT_RST); + if(Disable) + RegVal |= XAVBUF_AUD_SOFT_RST_LINE_RST_DISABLE_MASK; + else + RegVal &= ~XAVBUF_AUD_SOFT_RST_LINE_RST_DISABLE_MASK; + + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_AUD_SOFT_RST, + RegVal); +} + +/******************************************************************************/ +/** + * This function enables the video channel interface between the DPDMA and the + * AVBuf + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * @param Enable sets the corresponding buffers. + * + * @returns None. + * + * @note None. + * + ******************************************************************************/ +void XAVBuf_EnableVideoBuffers(XAVBuf *InstancePtr, u8 Enable) +{ + u8 Index; + u32 RegVal = 0; + u8 NumPlanes = InstancePtr->AVMode.NonLiveVideo->Mode; + + RegVal = (0xF << XAVBUF_CHBUF0_BURST_LEN_SHIFT) | + (XAVBUF_CHBUF0_FLUSH_MASK); + + for (Index = 0; Index <= NumPlanes; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_CHBUF0 + (Index * 4), RegVal); + } + if(Enable) { + RegVal = (0xF << XAVBUF_CHBUF0_BURST_LEN_SHIFT) | + XAVBUF_CHBUF0_EN_MASK; + for (Index = 0; Index <= NumPlanes; Index++) { + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, + XAVBUF_CHBUF0 + (Index * 4), RegVal); + } + } +} +/******************************************************************************/ +/** + * This function enables the graphics interface between the DPDMA and the AVBuf. + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * @param Enable sets the corresponding buffers. + * + * @returns None. + * + * @note None. + * + ******************************************************************************/ +void XAVBuf_EnableGraphicsBuffers(XAVBuf *InstancePtr, u8 Enable) +{ + u32 RegVal = 0; + + RegVal = (0xF << XAVBUF_CHBUF3_BURST_LEN_SHIFT) | + XAVBUF_CHBUF3_FLUSH_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF3, RegVal); + if(Enable) { + RegVal = (0xF << XAVBUF_CHBUF3_BURST_LEN_SHIFT) | + XAVBUF_CHBUF0_EN_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF3, + RegVal); + } +} + +/******************************************************************************/ +/** + * This function enables the audio interface between the DPDMA and the AVBuf + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * @param Enable sets the corresponding buffers. + * + * @returns None. + * + * @note None. + * + ******************************************************************************/ +void XAVBuf_EnableAudio0Buffers(XAVBuf *InstancePtr, u8 Enable) +{ + u32 RegVal = 0; + + RegVal = (0x3 << XAVBUF_CHBUF4_BURST_LEN_SHIFT) | + XAVBUF_CHBUF4_FLUSH_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF4, RegVal); + if(Enable) { + RegVal = (0x3 << XAVBUF_CHBUF4_BURST_LEN_SHIFT) | + XAVBUF_CHBUF4_EN_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF4, + RegVal); + } +} + +/******************************************************************************/ +/** + * This function enables the audio interface between the DPDMA and the AVBuf + * + * @param InstancePtr is a pointer to the XAVBuf Instance. + * @param Enable sets the corresponding buffers. + * + * @returns None. + * + * @note None. + * + ******************************************************************************/ +void XAVBuf_EnableAudio1Buffers(XAVBuf *InstancePtr, u8 Enable) +{ + u32 RegVal = 0; + + RegVal = (0x3 << XAVBUF_CHBUF5_BURST_LEN_SHIFT) | + XAVBUF_CHBUF5_FLUSH_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF5, RegVal); + if(Enable) { + RegVal = (0x3 << XAVBUF_CHBUF5_BURST_LEN_SHIFT) | + XAVBUF_CHBUF5_EN_MASK; + XAVBuf_WriteReg(InstancePtr->Config.BaseAddr, XAVBUF_CHBUF5, + RegVal); + } +} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf.h new file mode 100644 index 000000000..386bfbaa9 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf.h @@ -0,0 +1,302 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf.h + * + * This file implements all the functions related to the Video Pipeline of the + * DisplayPort Subsystem. + * + * Features supported by this driver + * - Live Video and Graphics input. + * - Non-Live Video Graphics input. + * - Output Formats Supported - RGB, YUV444, YUV4222. + * + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   aad  06/24/17 Initial release.
      + * 2.0   aad  10/07/17 Added Enums for Video and Audio sources.
      + * 
      + * +*******************************************************************************/ +#ifndef XAVBUF_H_ +/* Prevent circular inclusions by using protection macros. */ +#define XAVBUF_H_ + + +/******************************* Include Files ********************************/ +#include "xavbuf_hw.h" +#include "sleep.h" +/****************************** Type Definitions ******************************/ +/** + * This typedef describes all the Video Formats supported by the driver + */ +typedef enum { + //Non-Live Video Formats + CbY0CrY1, + CrY0CbY1, + Y0CrY1Cb, + Y0CbY1Cr, + YV16, + YV24, + YV16Ci, + MONOCHROME, + YV16Ci2, + YUV444, + RGB888, + RGBA8880, + RGB888_10BPC, + YUV444_10BPC, + YV16Ci2_10BPC, + YV16Ci_10BPC, + YV16_10BPC, + YV24_10BPC, + MONOCHROME_10BPC, + YV16_420, + YV16Ci_420, + YV16Ci2_420, + YV16_420_10BPC, + YV16Ci_420_10BPC, + YV16Ci2_420_10BPC, + + // Non-Live Graphics formats + RGBA8888, + ABGR8888, + RGB888_GFX, + BGR888, + RGBA5551, + RGBA4444, + RGB565, + BPP8, + BPP4, + BPP2, + BPP1, + YUV422, + YOnly, + + //Live Input/Output Video/Graphics Formats + RGB_6BPC, + RGB_8BPC, + RGB_10BPC, + RGB_12BPC, + YCbCr444_6BPC, + YCbCr444_8BPC, + YCbCr444_10BPC, + YCbCr444_12BPC, + YCbCr422_8BPC, + YCbCr422_10BPC, + YCbCr422_12BPC, + YOnly_8BPC, + YOnly_10BPC, + YOnly_12BPC, +} XAVBuf_VideoFormat; + +/** + * This data structure describes video planes. + */ +typedef enum { + Interleaved, + SemiPlanar, + Planar +} XAVBuf_VideoModes; + +/** + * This typedef describes the video source list + */ +typedef enum { + XAVBUF_VIDSTREAM1_LIVE, + XAVBUF_VIDSTREAM1_NONLIVE, + XAVBUF_VIDSTREAM1_TPG, + XAVBUF_VIDSTREAM1_NONE, +} XAVBuf_VideoStream; + +/** + * This typedef describes the graphics source list + */ +typedef enum { + XAVBUF_VIDSTREAM2_DISABLEGFX = 0x0, + XAVBUF_VIDSTREAM2_NONLIVE_GFX = 0x4, + XAVBUF_VIDSTREAM2_LIVE_GFX = 0x8, + XAVBUF_VIDSTREAM2_NONE = 0xC0, +} XAVBuf_GfxStream; + +/** + * This typedef describes the audio stream 1 source list + */ +typedef enum { + XAVBUF_AUDSTREAM1_LIVE = 0x00, + XAVBUF_AUDSTREAM1_NONLIVE = 0x10, + XAVBUF_AUDSTREAM1_TPG = 0x20, + XAVBUF_AUDSTREAM1_NO_AUDIO = 0x30, +} XAVBuf_AudioStream1; + +/** + * This typedef describes the audio stream 2 source list + */ +typedef enum { + XAVBUF_AUDSTREAM2_NO_AUDIO = 0X00, + XAVBUF_AUDSTREAM2_AUDIOGFX = 0X40, +} XAVBuf_AudioStream2; + +/** + * This typedef describes the attributes associated with the video formats. + */ +typedef struct { + XAVBuf_VideoFormat VideoFormat; + u8 Value; + XAVBuf_VideoModes Mode; + u32 SF[3]; + u8 SamplingEn; + u8 IsRGB; + u8 Swap; + u8 BPP; +} XAVBuf_VideoAttribute; + +/** + * This typedef stores the attributes of an audio stream + */ +typedef struct { + u32 Volume; + u8 SwapLR; +} XAVBuf_AudioAttribute; + +/** + * This typedef stores the data associated with the Audio Video input modes. + */ +typedef struct { + XAVBuf_VideoAttribute *NonLiveVideo, *NonLiveGraphics; + XAVBuf_VideoAttribute *LiveVideo, *LiveGraphics; + XAVBuf_AudioAttribute *Audio, *GraphicsAudio; + XAVBuf_VideoStream VideoSrc; + XAVBuf_GfxStream GraphicsSrc; + XAVBuf_AudioStream1 AudioSrc1; + XAVBuf_AudioStream2 AudioSrc2; + u8 AudioClk, VideoClk; +} XAVBuf_AVModes; + +/** + * This structure stores the background color information. + */ +typedef struct { + u16 RCr; + u16 GY; + u16 BCb; +} XAVBuf_BlenderBgClr; + +/** + * This typedef stores the AVBuf Configuration information. + */ +typedef struct { + u16 DeviceId; + u32 BaseAddr; +} XAVBuf_Config; + +/** + * This typedef stores all the attributes associated to the Blender block of the + * DisplayPort Subsystem + */ +typedef struct { + u8 GlobalAlphaEn; + u8 Alpha; + XAVBuf_VideoAttribute *OutputVideo; +} XAVBuf_Blender; + +/** + * The XAVBuf driver instance data. The user is required to allocate a variable + * of this type for every XAVBUF instance in the system. A pointer to this type + * is then passed to the driver API functions + */ +typedef struct { + XAVBuf_Config Config; + XAVBuf_AVModes AVMode; + XAVBuf_Blender Blender; +} XAVBuf; + + +/**************************** Function Prototypes *****************************/ + +/* xavbuf.c: Setup and initialization functions. */ +void XAVBuf_CfgInitialize(XAVBuf *InstancePtr, u32 BaseAddr, u16 DeviceId); + +/* xavbuf.c: Functions to setup the Input Video and Audio sources */ +void XAVBuf_InputVideoSelect(XAVBuf *InstancePtr, XAVBuf_VideoStream VidStream, + XAVBuf_GfxStream GfxStream); +void XAVBuf_InputAudioSelect(XAVBuf *InstancePtr, XAVBuf_AudioStream1 AudStream, + XAVBuf_AudioStream2 AudioStream2); + +/* xavbuf.c: Functions to setup the Video Format attributes */ +int XAVBuf_SetInputNonLiveVideoFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format); +int XAVBuf_SetInputNonLiveGraphicsFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format); +int XAVBuf_SetInputLiveVideoFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format); +int XAVBuf_SetInputLiveGraphicsFormat(XAVBuf *InstancePtr, + XAVBuf_VideoFormat Format); +int XAVBuf_SetOutputVideoFormat(XAVBuf *InstancePtr, XAVBuf_VideoFormat Format); +XAVBuf_VideoAttribute *XAVBuf_GetLiveVideoAttribute(XAVBuf_VideoFormat Format); +XAVBuf_VideoAttribute *XAVBuf_GetNLiveVideoAttribute(XAVBuf_VideoFormat Format); +XAVBuf_VideoAttribute *XAVBuf_GetNLGraphicsAttribute(XAVBuf_VideoFormat Format); + +/* xavbuf.c: Functions to setup the clock sources for video and audio */ +void XAVBuf_SetAudioVideoClkSrc(XAVBuf *InstancePtr, u8 VideoClk, u8 AudioClk); + +/* xavbuf.c: Functions that setup Video and Graphics pipeline depending on the + * sources and format selected. + */ +void XAVBuf_ConfigureVideoPipeline(XAVBuf *InstancePtr); +void XAVBuf_ConfigureGraphicsPipeline(XAVBuf *InstancePtr); + +/* Functions to setup Blender Properties */ +void XAVBuf_BlendSetBgColor(XAVBuf *InstancePtr, XAVBuf_BlenderBgClr *Color); +void XAVBuf_SetBlenderAlpha(XAVBuf *InstancePtr, u8 Alpha, u8 Enable); +void XAVBuf_SoftReset(XAVBuf *InstancePtr); +void XABuf_LineResetDisable(XAVBuf *InstancePtr, u8 Disable); +void XAVBuf_ConfigureOutputVideo(XAVBuf *InstancePtr); + +/* Audio Configuration functions */ +void XAVBuf_AudioSoftReset(XAVBuf *InstancePtr); +void XAVBuf_AudioMixerVolumeControl(XAVBuf *InstancePtr, u8 Channel0Volume, + u8 Channel1Volume); + +/* DPDMA Interface functions */ +void XAVBuf_EnableGraphicsBuffers(XAVBuf *InstancePtr, u8 Enable); +void XAVBuf_EnableVideoBuffers(XAVBuf *InstancePtr, u8 Enable); +void XAVBuf_EnableAudio0Buffers(XAVBuf *InstancePtr, u8 Enable); +void XAVBuf_EnableAudio1Buffers(XAVBuf *InstancePtr, u8 Enable); + +#endif //XAVBUF_H_ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_clk.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_clk.c new file mode 100644 index 000000000..6ef5d7089 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_clk.c @@ -0,0 +1,561 @@ +/****************************************************************************** +* +* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf.c + * + * This header file contains PLL configuring functions. These Functions + * calculates and configures the PLL depending on desired frequency. + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   mh  06/24/17 Initial release.
      + * 2.1   tu  12/29/17 LPD and FPD offsets adjusted
      + * 
      + * +*******************************************************************************/ +/******************************* Include Files ********************************/ +#include "xavbuf_clk.h" + +/**************************** Constant Definitions ****************************/ +/*Input Frequency for the PLL with precision upto two decimals*/ +#define XAVBUF_INPUT_REF_CLK 3333333333 + +/*Frequency of VCO before divider to meet jitter requirement*/ +#define XAVBUF_PLL_OUT_FREQ 1450000000 + +/* Precision of Input Ref Frequency for PLL*/ +#define XAVBUF_INPUT_FREQ_PRECISION 100 + +/* 16 bit fractional shift to get Integer */ +#define XAVBUF_PRECISION 16 +#define XAVBUF_SHIFT_DECIMAL (1 << XAVBUF_PRECISION) +#define XAVBUF_DECIMAL (XAVBUF_SHIFT_DECIMAL - 1) +#define XDPSSU_MAX_VIDEO_FREQ 300000000 + +#define XAVBUF_AUDIO_SAMPLES 512 +#define XAVBUF_AUDIO_SAMPLE_RATE_44_1 44100 +#define XAVBUF_AUDIO_SAMPLE_RATE_48_0 48000 +#define XAVBUF_EXTERNAL_DIVIDER 2 + +/* Register offsets for address manipulation */ +#define XAVBUF_REG_OFFSET 4 +#define XAVBUF_FPD_CTRL_OFFSET 12 +#define XAVBUF_LPD_CTRL_OFFSET 16 +#define MOD_3(a) ((a) % (3)) + +/*************************** Constant Variable Definitions ********************/ +/** + * This typedef enumerates capacitor resistor and lock values to be programmed. + */ +typedef struct{ + u16 cp; + u16 res; + u16 lfhf; + u16 lock_dly; + u16 lock_cnt; +}PllConfig; + +/* PLL fractional divide programming table*/ +static const PllConfig PllFracDivideTable[] = { + {3, 5, 3, 63, 1000}, + {3, 5, 3, 63, 1000}, + {3, 9, 3, 63, 1000}, + {3, 9, 3, 63, 1000}, + {3, 9, 3, 63, 1000}, + {3, 9, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 1000}, + {3, 14, 3, 63, 975}, + {3, 14, 3, 63, 950}, + {3, 14, 3, 63, 925}, + {3, 1, 3, 63, 900}, + {3, 1, 3, 63, 875}, + {3, 1, 3, 63, 850}, + {3, 1, 3, 63, 850}, + {3, 1, 3, 63, 825}, + {3, 1, 3, 63, 800}, + {3, 1, 3, 63, 775}, + {3, 6, 3, 63, 775}, + {3, 6, 3, 63, 750}, + {3, 6, 3, 63, 725}, + {3, 6, 3, 63, 700}, + {3, 6, 3, 63, 700}, + {3, 6, 3, 63, 675}, + {3, 6, 3, 63, 675}, + {3, 6, 3, 63, 650}, + {3, 6, 3, 63, 650}, + {3, 6, 3, 63, 625}, + {3, 6, 3, 63, 625}, + {3, 6, 3, 63, 625}, + {3, 6, 3, 63, 600}, + {3, 6, 3, 63, 600}, + {3, 6, 3, 63, 600}, + {3, 6, 3, 63, 600}, + {3, 6, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {3, 10, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {4, 6, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600}, + {3, 12, 3, 63, 600} +}; + +/******************************************************************************/ +/** + * This function initializes the parameters required to configure PLL. + * + * @param PllInstancePtr is pointer to the XAVBuf_Pll instance. + * @param Pll is the PLL chosen to be configured. + * @param Pll is the PLL chosen to be configured. + * @param CrossDomain is the bool which is used to mention if the PLL + * outputs in other domain. + * @param ExtDividerCnt is number of external divider out of VCO. + * + * @return XST_SUCCESS if PLL is configured without an error. + * XST_FAILURE otherwise. + * + * @note In order to avoid floating point usage we have a 16bit + * fractional fixed point arithmetic implementation + * +*******************************************************************************/ +static void XAVBuf_PllInitialize(XAVBuf_Pll *PllInstancePtr, + u8 Pll, u8 CrossDomain , u8 ExtDividerCnt) +{ + /* Instantiate input frequency. */ + PllInstancePtr->InputRefClk = XAVBUF_Pss_Ref_Clk; + PllInstancePtr->RefClkFreqhz = XAVBUF_INPUT_REF_CLK; + /* Turn on internal Divider*/ + PllInstancePtr->Divider = 1; + PllInstancePtr->Pll = Pll; + PllInstancePtr->ExtDividerCnt = ExtDividerCnt; + + //Check if CrossDomain is requested + if(CrossDomain) + PllInstancePtr->DomainSwitchDiv = 6; + else + PllInstancePtr->DomainSwitchDiv = 1; + //Check where PLL falls + if (Pll>2){ + PllInstancePtr->Fpd = 0; + PllInstancePtr->BaseAddress = XAVBUF_CLK_LPD_BASEADDR; + PllInstancePtr->Offset = XAVBUF_LPD_CTRL_OFFSET; + } + else{ + PllInstancePtr->Fpd = 1; + PllInstancePtr->BaseAddress = XAVBUF_CLK_FPD_BASEADDR; + PllInstancePtr->Offset = XAVBUF_FPD_CTRL_OFFSET; + } + +} + +/******************************************************************************/ +/** + * This function calculates the parameters which are required to configure PLL + * depending upon the requested frequency. + * + * @param PllInstancePtr is pointer to the XAVBuf_Pll instance + * @param FreqHz is the requested frequency to DP in Hz + * + * @return XST_SUCCESS if parameters are calculated + * XST_FAILURE otherwise. + * + * @note In order to avoid floating point usage we have a 16bit + * fractional fixed point arithmetic implementation + * +*******************************************************************************/ +static int XAVBuf_PllCalcParameterValues(XAVBuf_Pll *PllInstancePtr, + u64 FreqHz) +{ + u64 ExtDivider, Vco, VcoIntFrac; + + /* Instantiate input frequency. */ + PllInstancePtr->InputRefClk = XAVBUF_Pss_Ref_Clk; + PllInstancePtr->RefClkFreqhz = XAVBUF_INPUT_REF_CLK ; + /* Turn on internal Divider*/ + PllInstancePtr->Divider = 1; + PllInstancePtr->DomainSwitchDiv = 1; + + /* Estimate the total divider. */ + ExtDivider = (XAVBUF_PLL_OUT_FREQ / FreqHz) / + PllInstancePtr->DomainSwitchDiv; + if(ExtDivider > 63 && PllInstancePtr->ExtDividerCnt == 2){ + PllInstancePtr->ExtDivider0 = 63; + PllInstancePtr->ExtDivider1 = ExtDivider / 63; + } + else if(ExtDivider < 63){ + PllInstancePtr->ExtDivider0 = ExtDivider; + PllInstancePtr->ExtDivider1 = 1; + } + else + return XST_FAILURE; + + Vco = FreqHz *(PllInstancePtr->ExtDivider1 * + PllInstancePtr->ExtDivider0 * 2) * + PllInstancePtr->DomainSwitchDiv; + /* Calculate integer and fractional part. */ + VcoIntFrac = (Vco * XAVBUF_INPUT_FREQ_PRECISION * + XAVBUF_SHIFT_DECIMAL) / + PllInstancePtr->RefClkFreqhz ; + PllInstancePtr->Fractional = VcoIntFrac & XAVBUF_DECIMAL; + PllInstancePtr->FracIntegerFBDIV = VcoIntFrac >> XAVBUF_PRECISION; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function will Read modify and write into corresponding registers. + * + * @param BaseAddress is the base address to which the value has to be + * written. + * @param RegOffset is the relative offset from Base address. + * @param Mask is used to select the number of bits to be modified. + * @param Shift is the number bits to be shifted from LSB. + * @param Data is the Data to be written. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +static void XAVBuf_ReadModifyWriteReg(u32 BaseAddress, u32 RegOffset, u32 Mask, + u32 Shift, u32 Data) +{ + u32 RegValue; + + RegValue = XAVBuf_ReadReg(BaseAddress, RegOffset); + RegValue = (RegValue & ~Mask) | (Data << Shift); + XAVBuf_WriteReg(BaseAddress, RegOffset, RegValue); +} + +/******************************************************************************/ +/** + * This function configures PLL. + * + * @param PllInstancePtr is pointer to the XAVBuf_Pll instance. + * + * @return XST_SUCCESS if PLL is configured without an error. + * XST_FAILURE otherwise. + * + * @note None. + * +*******************************************************************************/ +static int XAVBuf_ConfigurePll(XAVBuf_Pll *PllInstancePtr) +{ + u64 BaseAddress = PllInstancePtr->BaseAddress; + u64 timer = 0; + u32 RegPll = 0; + u8 Pll = PllInstancePtr->Pll; + + RegPll |= XAVBUF_ENABLE_BIT << XAVBUF_PLL_CTRL_BYPASS_SHIFT; + RegPll |= PllInstancePtr->FracIntegerFBDIV << + XAVBUF_PLL_CTRL_FBDIV_SHIFT; + RegPll |= PllInstancePtr->Divider << XAVBUF_PLL_CTRL_DIV2_SHIFT; + RegPll |= PllInstancePtr->InputRefClk << XAVBUF_PLL_CTRL_PRE_SRC_SHIFT; + XAVBuf_WriteReg(BaseAddress, XAVBUF_PLL_CTRL + (MOD_3(Pll) * + PllInstancePtr->Offset), RegPll); + RegPll = 0; + /* Set the values for lock dly, lock counter, capacitor and resistor. */ + RegPll |= + PllFracDivideTable[PllInstancePtr->FracIntegerFBDIV -25].cp + << XAVBUF_PLL_CFG_CP_SHIFT; + RegPll |= + PllFracDivideTable[PllInstancePtr->FracIntegerFBDIV -25].res + << XAVBUF_PLL_CFG_RES_SHIFT; + RegPll |= + PllFracDivideTable[PllInstancePtr->FracIntegerFBDIV -25].lfhf + << XAVBUF_PLL_CFG_LFHF_SHIFT; + RegPll |= + PllFracDivideTable[PllInstancePtr->FracIntegerFBDIV -25].lock_dly + << XAVBUF_PLL_CFG_LOCK_DLY_SHIFT; + RegPll |= + PllFracDivideTable[PllInstancePtr->FracIntegerFBDIV -25].lock_cnt + << XAVBUF_PLL_CFG_LOCK_CNT_SHIFT; + XAVBuf_WriteReg(BaseAddress, XAVBUF_PLL_CFG + (MOD_3(Pll) * + PllInstancePtr->Offset), RegPll); + /* Enable and set Fractional Data. */ + XAVBuf_WriteReg(BaseAddress, XAVBUF_PLL_FRAC_CFG + (MOD_3(Pll) * + PllInstancePtr->Offset), (1 << XAVBUF_PLL_FRAC_CFG_ENABLED_SHIFT) | + (PllInstancePtr->Fractional << + XAVBUF_PLL_FRAC_CFG_DATA_SHIFT)); + /* Assert reset to the PLL. */ + XAVBuf_ReadModifyWriteReg(BaseAddress, XAVBUF_PLL_CTRL + (MOD_3(Pll) * + PllInstancePtr->Offset), + XAVBUF_PLL_CTRL_RESET_MASK, XAVBUF_PLL_CTRL_RESET_SHIFT, + XAVBUF_ENABLE_BIT); + + /* Deassert reset to the PLL. */ + XAVBuf_ReadModifyWriteReg(BaseAddress, XAVBUF_PLL_CTRL + (MOD_3(Pll) * + PllInstancePtr->Offset), + XAVBUF_PLL_CTRL_RESET_MASK, XAVBUF_PLL_CTRL_RESET_SHIFT, + XAVBUF_DISABLE_BIT); + + while(!(XAVBuf_ReadReg(BaseAddress, XAVBUF_PLL_STATUS - + ((1 - PllInstancePtr->Fpd) * XAVBUF_REG_OFFSET)) & + (1 << MOD_3(Pll)))) + if(++timer > 1000) + return XST_FAILURE; + + /* Deassert Bypass. */ + XAVBuf_ReadModifyWriteReg(BaseAddress, XAVBUF_PLL_CTRL + (MOD_3(Pll) * + PllInstancePtr->Offset), + XAVBUF_PLL_CTRL_BYPASS_MASK, XAVBUF_PLL_CTRL_BYPASS_SHIFT, + XAVBUF_DISABLE_BIT); + + if(PllInstancePtr->DomainSwitchDiv != 1) + XAVBuf_ReadModifyWriteReg(BaseAddress, (XAVBUF_DOMAIN_SWITCH_CTRL + + (MOD_3(Pll) * XAVBUF_REG_OFFSET) - ((1 - PllInstancePtr->Fpd) + * XAVBUF_REG_OFFSET)), + XAVBUF_DOMAIN_SWITCH_DIVISOR0_MASK, + XAVBUF_DOMAIN_SWITCH_DIVISOR0_SHIFT, + PllInstancePtr->DomainSwitchDiv); + usleep(1); + + return XST_SUCCESS; + +} + +/******************************************************************************/ +/** + * This function configures Configures external divider. + * + * @param PllInstancePtr is pointer to the XAVBuf_Pll instance. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +static void XAVBuf_ConfigureExtDivider(XAVBuf_Pll *PllInstancePtr, + u64 BaseAddress, u32 Offset) +{ + XAVBuf_ReadModifyWriteReg(BaseAddress, Offset, + XAVBUF_VIDEO_REF_CTRL_CLKACT_MASK, + XAVBUF_VIDEO_REF_CTRL_CLKACT_SHIFT, XAVBUF_DISABLE_BIT); + XAVBuf_ReadModifyWriteReg(BaseAddress, Offset, + XAVBUF_VIDEO_REF_CTRL_DIVISOR1_MASK, + XAVBUF_VIDEO_REF_CTRL_DIVISOR1_SHIFT, + PllInstancePtr->ExtDivider1); + XAVBuf_ReadModifyWriteReg(BaseAddress, Offset, + XAVBUF_VIDEO_REF_CTRL_DIVISOR0_MASK, + XAVBUF_VIDEO_REF_CTRL_DIVISOR0_SHIFT, + PllInstancePtr->ExtDivider0); + XAVBuf_ReadModifyWriteReg(BaseAddress, Offset, + XAVBUF_VIDEO_REF_CTRL_CLKACT_MASK, + XAVBUF_VIDEO_REF_CTRL_CLKACT_SHIFT, XAVBUF_ENABLE_BIT); + XAVBuf_WriteReg(BaseAddress, Offset, 0x1011003); +} + +/******************************************************************************/ +/** + * This function calls API to calculate and configure PLL with desired frequency + * for Video. + * + * @param FreqHz is the desired frequency in Hz. + * + * @return XST_SUCCESS if PLL is configured without an error. + * XST_FAILURE otherwise. + * + * @note The Pll used is design specific. + * +*******************************************************************************/ +int XAVBuf_SetPixelClock(u64 FreqHz) +{ + u32 PllAssigned; + XAVBuf_Pll PllInstancePtr; + u8 Pll, CrossDomain, Flag; + + /*Verify Input Arguments*/ + Xil_AssertNonvoid(FreqHz < XDPSSU_MAX_VIDEO_FREQ); + + PllAssigned = XAVBuf_ReadReg(XAVBUF_CLK_FPD_BASEADDR, + XAVBUF_VIDEO_REF_CTRL) & XAVBUF_VIDEO_REF_CTRL_SRCSEL_MASK; + + switch (PllAssigned) { + case XAVBUF_VPLL_SRC_SEL: + Pll = VPLL; + CrossDomain = 0; + break; + case XAVBUF_DPLL_SRC_SEL: + Pll = DPLL; + CrossDomain = 0; + break; + case XAVBUF_RPLL_TO_FPD_SRC_SEL: + Pll = RPLL; + CrossDomain = 1; + break; + default: + return XST_FAILURE; + } + + /*Calculate configure PLL and External Divider*/ + XAVBuf_PllInitialize(&PllInstancePtr, Pll, CrossDomain, + XAVBUF_EXTERNAL_DIVIDER); + Flag = XAVBuf_PllCalcParameterValues(&PllInstancePtr, FreqHz); + if(Flag != 0) + return XST_FAILURE; + Flag = XAVBuf_ConfigurePll(&PllInstancePtr); + if(Flag != 0) + return XST_FAILURE; + XAVBuf_ConfigureExtDivider(&PllInstancePtr, XAVBUF_CLK_FPD_BASEADDR, + XAVBUF_VIDEO_REF_CTRL); + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function calls API to calculate and configure PLL with desired + * frequency for Audio. + * + * @param FreqHz is the desired frequency in Hz. + * + * @return XST_SUCCESS if PLL is configured without an error. + * XST_FAILURE otherwise. + * + * @note The Pll used is design specific. + * +*******************************************************************************/ +int XAVBuf_SetAudioClock(u64 FreqHz) +{ + u32 Flag, PllAssigned; + u8 Pll, CrossDomain; + XAVBuf_Pll XAVBuf_RPllInstancePtr; + + /*Verify Input Arguments*/ + Flag = (FreqHz == (XAVBUF_AUDIO_SAMPLE_RATE_44_1 * + XAVBUF_AUDIO_SAMPLES)) || + (FreqHz == (XAVBUF_AUDIO_SAMPLE_RATE_48_0 * + XAVBUF_AUDIO_SAMPLES)); + Xil_AssertNonvoid(Flag); + + PllAssigned = XAVBuf_ReadReg(XAVBUF_CLK_FPD_BASEADDR, + XAVBUF_AUDIO_REF_CTRL) & + XAVBUF_AUDIO_REF_CTRL_SRCSEL_MASK; + + switch (PllAssigned) { + case XAVBUF_VPLL_SRC_SEL: + Pll = VPLL; + CrossDomain = 0; + break; + case XAVBUF_DPLL_SRC_SEL: + Pll = DPLL; + CrossDomain = 0; + break; + case XAVBUF_RPLL_TO_FPD_SRC_SEL: + Pll = RPLL; + CrossDomain = 1; + break; + default: + return XST_FAILURE; + } + + /*Calculate configure PLL and External Divider*/ + XAVBuf_PllInitialize(&XAVBuf_RPllInstancePtr, Pll, CrossDomain, + XAVBUF_EXTERNAL_DIVIDER); + Flag = XAVBuf_PllCalcParameterValues(&XAVBuf_RPllInstancePtr, FreqHz); + if(Flag != 0) + return XST_FAILURE; + Flag = XAVBuf_ConfigurePll(&XAVBuf_RPllInstancePtr); + if(Flag != 0) + return XST_FAILURE; + XAVBuf_ConfigureExtDivider(&XAVBuf_RPllInstancePtr, + XAVBUF_CLK_FPD_BASEADDR, XAVBUF_AUDIO_REF_CTRL); + + return XST_SUCCESS; +} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_clk.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_clk.h new file mode 100644 index 000000000..91ca3b5ed --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_clk.h @@ -0,0 +1,97 @@ +/****************************************************************************** +* +* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf_clk.h + * + * This header file contains the identifiers and low-level driver functions (or + * macros) that can be used to configure PLL to generate required frequency. + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   mh  06/24/17 Initial release.
      + * 2.1   tu  12/29/17 LPD and FPD offsets adjusted
      + * 
      + * +*******************************************************************************/ + +#ifndef XAVBUF_CLK_H_ +#define XAVBUF_CLK_H_ + +/******************************* Include Files ********************************/ +#include "xavbuf_hw.h" +#include "xstatus.h" +#include "sleep.h" + +/****************************** Type Definitions ******************************/ +/** + * This enum enumerates various PLL + */ +enum PLL{ + APLL = 0, + DPLL = 1, + VPLL = 2, + IOPLL = 3, + RPLL = 4 +}; + +/** + * This typedef enumerates various variables used to configure Pll + */ +typedef struct { + u64 BaseAddress; + u64 Fractional; + u64 RefClkFreqhz; + u32 Divider; + u8 Offset; + u8 ClkDividBy2; + u8 ExtDivider0; + u8 ExtDivider1; + u8 ExtDividerCnt; + u8 DomainSwitchDiv; + u8 FracIntegerFBDIV; + u8 IntegerFBDIV; + u8 InputRefClk; + u8 Fpd; + u8 Pll; +}XAVBuf_Pll; + +/**************************** Function Prototypes *****************************/ +int XAVBuf_SetPixelClock(u64 FreqHz); +int XAVBuf_SetAudioClock(u64 FreqHz); +#endif /* XAVBUF_CLK_H_ */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_g.c new file mode 100644 index 000000000..325e01b47 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_g.c @@ -0,0 +1,55 @@ + +/******************************************************************* +* +* CAUTION: This file is automatically generated by HSI. +* Version: +* DO NOT EDIT. +* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* +*Permission is hereby granted, free of charge, to any person obtaining a copy +*of this software and associated documentation files (the Software), to deal +*in the Software without restriction, including without limitation the rights +*to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +*copies of the Software, and to permit persons to whom the Software is +*furnished to do so, subject to the following conditions: +* +*The above copyright notice and this permission notice shall be included in +*all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +*(a) running on a Xilinx device, or +*(b) that interact with a Xilinx device through a bus or interconnect. +* +*THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +*IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +*FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +*XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +*WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT +*OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* +*Except as contained in this notice, the name of the Xilinx shall not be used +*in advertising or otherwise to promote the sale, use or other dealings in +*this Software without prior written authorization from Xilinx. +* + +* +* Description: Driver configuration +* +*******************************************************************/ + +#include "xparameters.h" +#include "xavbuf.h" + +/* +* The configuration table for devices +*/ + +XAVBuf_Config XAVBuf_ConfigTable[XPAR_XAVBUF_NUM_INSTANCES] = +{ + { + XPAR_PSU_DP_DEVICE_ID, + XPAR_PSU_DP_BASEADDR + } +}; + + diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_hw.h new file mode 100644 index 000000000..3454fa071 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_hw.h @@ -0,0 +1,1675 @@ +/******************************************************************************* + * + * Copyright C 2014 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf_hw.h + * + * This header file contains macros that can be used to access the device + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0	 aad 02/24/17	Initial Release
      + * 1.0   mh  06/24/17	Added Clock related register information
      + * 2.0   aad 10/07/17   Removed Macros related to Video and Audio Src
      + * 
      + * +*******************************************************************************/ +#ifndef XAVBUF_HW_H_ +/* Prevent circular inclusions by using protection macros. */ +#define XAVBUF_HW_H_ + +#ifdef __cplusplus +extern "C" { +#endif +/***************************** Include Files **********************************/ + +#include "xil_io.h" +#include "xil_types.h" + +/************************** Constant Definitions ******************************/ + +/******************************************************************************/ +/** + * Address mapping for the DisplayPort TX core. + * +*******************************************************************************/ + +#define XAVBUF_BASEADDR 0xFD4A0000 +/** + * * Register: XAVBUF_V_BLEND_BG_CLR_0 + * */ +#define XAVBUF_V_BLEND_BG_CLR_0 0X0000A000 + +#define XAVBUF_V_BLEND_BG_CLR_0_CLR0_SHIFT 0 +#define XAVBUF_V_BLEND_BG_CLR_0_CLR0_WIDTH 12 +#define XAVBUF_V_BLEND_BG_CLR_0_CLR0_MASK 0X00000FFF + +/** + * * Register: XAVBUF_V_BLEND_BG_CLR_1 + * */ +#define XAVBUF_V_BLEND_BG_CLR_1 0X0000A004 + +#define XAVBUF_V_BLEND_BG_CLR_1_CLR1_SHIFT 0 +#define XAVBUF_V_BLEND_BG_CLR_1_CLR1_WIDTH 12 +#define XAVBUF_V_BLEND_BG_CLR_1_CLR1_MASK 0X00000FFF + +/** + * * Register: XAVBUF_V_BLEND_BG_CLR_2 + * */ +#define XAVBUF_V_BLEND_BG_CLR_2 0X0000A008 + +#define XAVBUF_V_BLEND_BG_CLR_2_CLR2_SHIFT 0 +#define XAVBUF_V_BLEND_BG_CLR_2_CLR2_WIDTH 12 +#define XAVBUF_V_BLEND_BG_CLR_2_CLR2_MASK 0X00000FFF + +/** + * * Register: XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG + * */ +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG 0X0000A00C + +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_VALUE_SHIFT 1 +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_VALUE_WIDTH 8 +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_VALUE_MASK 0X000001FE + +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_EN_SHIFT 0 +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_EN_WIDTH 1 +#define XAVBUF_V_BLEND_SET_GLOBAL_ALPHA_REG_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_V_BLEND_OUTPUT_VID_FORMAT + * */ +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT 0X0000A014 + +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_EN_DOWNSAMPLE_SHIFT 4 +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_EN_DOWNSAMPLE_WIDTH 1 +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_EN_DOWNSAMPLE_MASK 0X00000010 + +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_VID_FORMAT_SHIFT 0 +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_VID_FORMAT_WIDTH 3 +#define XAVBUF_V_BLEND_OUTPUT_VID_FORMAT_VID_FORMAT_MASK 0X00000007 + +/** + * * Register: XAVBUF_V_BLEND_LAYER0_CONTROL + * */ +#define XAVBUF_V_BLEND_LAYER0_CONTROL 0X0000A018 + +#define XAVBUF_V_BLEND_LAYER0_CONTROL_BYPASS_SHIFT 8 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_BYPASS_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_BYPASS_MASK 0X00000100 + +#define XAVBUF_V_BLEND_LAYER0_CONTROL_RGB_MODE_SHIFT 1 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_RGB_MODE_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_RGB_MODE_MASK 0X00000002 + +#define XAVBUF_V_BLEND_LAYER0_CONTROL_EN_US_SHIFT 0 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_EN_US_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER0_CONTROL_EN_US_MASK 0X00000001 + +/** + * * Register: XAVBUF_V_BLEND_LAYER1_CONTROL + * */ +#define XAVBUF_V_BLEND_LAYER1_CONTROL 0X0000A01C + +#define XAVBUF_V_BLEND_LAYER1_CONTROL_BYPASS_SHIFT 8 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_BYPASS_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_BYPASS_MASK 0X00000100 + +#define XAVBUF_V_BLEND_LAYER1_CONTROL_RGB_MODE_SHIFT 1 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_RGB_MODE_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_RGB_MODE_MASK 0X00000002 + +#define XAVBUF_V_BLEND_LAYER1_CONTROL_EN_US_SHIFT 0 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_EN_US_WIDTH 1 +#define XAVBUF_V_BLEND_LAYER1_CONTROL_EN_US_MASK 0X00000001 + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF0 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF0 0X0000A020 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF0_RGB2Y_C0_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF0_RGB2Y_C0_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF0_RGB2Y_C0_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF1 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF1 0X0000A024 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF1_RGB2Y_C1_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF1_RGB2Y_C1_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF1_RGB2Y_C1_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF2 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF2 0X0000A028 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF2_RGB2Y_C2_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF2_RGB2Y_C2_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF2_RGB2Y_C2_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF3 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF3 0X0000A02C + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF3_RGB2Y_C3_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF3_RGB2Y_C3_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF3_RGB2Y_C3_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF4 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF4 0X0000A030 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF4_RGB2Y_C4_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF4_RGB2Y_C4_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF4_RGB2Y_C4_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF5 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF5 0X0000A034 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF5_RGB2Y_C5_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF5_RGB2Y_C5_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF5_RGB2Y_C5_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF6 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF6 0X0000A038 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF6_RGB2Y_C6_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF6_RGB2Y_C6_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF6_RGB2Y_C6_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF7 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF7 0X0000A03C + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF7_RGB2Y_C7_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF7_RGB2Y_C7_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF7_RGB2Y_C7_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_RGB2YCBCR_COEFF8 + * */ +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF8 0X0000A040 + +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF8_RGB2Y_C8_SHIFT 0 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF8_RGB2Y_C8_WIDTH 15 +#define XAVBUF_V_BLEND_RGB2YCBCR_COEFF8_RGB2Y_C8_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF0 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF0 0X0000A044 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF0_Y2R_C0_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF0_Y2R_C0_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF0_Y2R_C0_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF1 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF1 0X0000A048 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF1_Y2R_C1_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF1_Y2R_C1_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF1_Y2R_C1_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF2 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF2 0X0000A04C + +#define XAVBUF_V_BLEND_IN1CSC_COEFF2_Y2R_C2_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF2_Y2R_C2_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF2_Y2R_C2_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF3 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF3 0X0000A050 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF3_Y2R_C3_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF3_Y2R_C3_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF3_Y2R_C3_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF4 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF4 0X0000A054 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF4_Y2R_C4_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF4_Y2R_C4_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF4_Y2R_C4_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF5 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF5 0X0000A058 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF5_Y2R_C5_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF5_Y2R_C5_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF5_Y2R_C5_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF6 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF6 0X0000A05C + +#define XAVBUF_V_BLEND_IN1CSC_COEFF6_Y2R_C6_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF6_Y2R_C6_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF6_Y2R_C6_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF7 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF7 0X0000A060 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF7_Y2R_C7_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF7_Y2R_C7_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF7_Y2R_C7_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN1CSC_COEFF8 + * */ +#define XAVBUF_V_BLEND_IN1CSC_COEFF8 0X0000A064 + +#define XAVBUF_V_BLEND_IN1CSC_COEFF8_Y2R_C8_SHIFT 0 +#define XAVBUF_V_BLEND_IN1CSC_COEFF8_Y2R_C8_WIDTH 15 +#define XAVBUF_V_BLEND_IN1CSC_COEFF8_Y2R_C8_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET 0X0000A068 + +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_IN1CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CR_IN1CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET 0X0000A06C + +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_IN1CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CB_IN1CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET 0X0000A070 + +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_IN1CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET + * */ +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET 0X0000A074 + +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_OUTCSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CR_OUTCSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET 0X0000A078 + +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_OUTCSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CB_OUTCSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET 0X0000A07C + +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_OUTCSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF0 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF0 0X0000A080 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF0_Y2R_C0_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF0_Y2R_C0_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF0_Y2R_C0_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF1 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF1 0X0000A084 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF1_Y2R_C1_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF1_Y2R_C1_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF1_Y2R_C1_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF2 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF2 0X0000A088 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF2_Y2R_C2_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF2_Y2R_C2_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF2_Y2R_C2_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF3 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF3 0X0000A08C + +#define XAVBUF_V_BLEND_IN2CSC_COEFF3_Y2R_C3_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF3_Y2R_C3_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF3_Y2R_C3_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF4 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF4 0X0000A090 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF4_Y2R_C4_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF4_Y2R_C4_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF4_Y2R_C4_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF5 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF5 0X0000A094 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF5_Y2R_C5_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF5_Y2R_C5_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF5_Y2R_C5_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF6 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF6 0X0000A098 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF6_Y2R_C6_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF6_Y2R_C6_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF6_Y2R_C6_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF7 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF7 0X0000A09C + +#define XAVBUF_V_BLEND_IN2CSC_COEFF7_Y2R_C7_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF7_Y2R_C7_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF7_Y2R_C7_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_IN2CSC_COEFF8 + * */ +#define XAVBUF_V_BLEND_IN2CSC_COEFF8 0X0000A0A0 + +#define XAVBUF_V_BLEND_IN2CSC_COEFF8_Y2R_C8_SHIFT 0 +#define XAVBUF_V_BLEND_IN2CSC_COEFF8_Y2R_C8_WIDTH 15 +#define XAVBUF_V_BLEND_IN2CSC_COEFF8_Y2R_C8_MASK 0X00007FFF + +/** + * * Register: XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET 0X0000A0A4 + +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_LUMA_IN2CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CR_IN2CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET 0X0000A0A8 + +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CR_IN2CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CB_IN2CSC_OFFSET + * */ +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET 0X0000A0AC + +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_POST_OFFSET_SHIFT 16 +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_POST_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_POST_OFFSET_MASK 0X1FFF0000 + +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_PRE_OFFSET_SHIFT 0 +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_PRE_OFFSET_WIDTH 13 +#define XAVBUF_V_BLEND_CB_IN2CSC_OFFSET_PRE_OFFSET_MASK 0X00001FFF + +/** + * * Register: XAVBUF_V_BLEND_CHROMA_KEY_ENABLE + * */ +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE 0X0000A1D0 + +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_M_SEL_SHIFT 1 +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_M_SEL_WIDTH 1 +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_M_SEL_MASK 0X00000002 + +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_EN_SHIFT 0 +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_EN_WIDTH 1 +#define XAVBUF_V_BLEND_CHROMA_KEY_ENABLE_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_V_BLEND_CHROMA_KEY_COMP1 + * */ +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1 0X0000A1D4 + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MAX_SHIFT 16 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MAX_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MAX_MASK 0X0FFF0000 + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MIN_SHIFT 0 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MIN_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP1_MIN_MASK 0X00000FFF + +/** + * * Register: XAVBUF_V_BLEND_CHROMA_KEY_COMP2 + * */ +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2 0X0000A1D8 + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MAX_SHIFT 16 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MAX_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MAX_MASK 0X0FFF0000 + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MIN_SHIFT 0 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MIN_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP2_MIN_MASK 0X00000FFF + +/** + * * Register: XAVBUF_V_BLEND_CHROMA_KEY_COMP3 + * */ +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3 0X0000A1DC + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MAX_SHIFT 16 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MAX_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MAX_MASK 0X0FFF0000 + +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MIN_SHIFT 0 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MIN_WIDTH 12 +#define XAVBUF_V_BLEND_CHROMA_KEY_COMP3_MIN_MASK 0X00000FFF + +/** + * * Register: XAVBUF_BUF_FORMAT + * */ +#define XAVBUF_BUF_FORMAT 0X0000B000 + +#define XAVBUF_BUF_FORMAT_NL_GRAPHX_FORMAT_SHIFT 8 +#define XAVBUF_BUF_FORMAT_NL_GRAPHX_FORMAT_WIDTH 4 +#define XAVBUF_BUF_FORMAT_NL_GRAPHX_FORMAT_MASK 0X00000F00 + +#define XAVBUF_BUF_FORMAT_NL_VID_FORMAT_SHIFT 0 +#define XAVBUF_BUF_FORMAT_NL_VID_FORMAT_WIDTH 5 +#define XAVBUF_BUF_FORMAT_NL_VID_FORMAT_MASK 0X0000001F + +/** + * * Register: XAVBUF_BUF_NON_LIVE_LATENCY + * */ +#define XAVBUF_BUF_NON_LIVE_LATENCY 0X0000B008 + +#define XAVBUF_BUF_NON_LIVE_LATENCY_NL_LATENCY_SHIFT 0 +#define XAVBUF_BUF_NON_LIVE_LATENCY_NL_LATENCY_WIDTH 10 +#define XAVBUF_BUF_NON_LIVE_LATENCY_NL_LATENCY_MASK 0X000003FF + +/** + * * Register: XAVBUF_CHBUF0 + * */ +#define XAVBUF_CHBUF0 0X0000B010 + +#define XAVBUF_CHBUF0_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF0_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF0_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF0_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF0_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF0_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF0_EN_SHIFT 0 +#define XAVBUF_CHBUF0_EN_WIDTH 1 +#define XAVBUF_CHBUF0_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_CHBUF1 + * */ +#define XAVBUF_CHBUF1 0X0000B014 + +#define XAVBUF_CHBUF1_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF1_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF1_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF1_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF1_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF1_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF1_EN_SHIFT 0 +#define XAVBUF_CHBUF1_EN_WIDTH 1 +#define XAVBUF_CHBUF1_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_CHBUF2 + * */ +#define XAVBUF_CHBUF2 0X0000B018 + +#define XAVBUF_CHBUF2_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF2_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF2_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF2_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF2_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF2_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF2_EN_SHIFT 0 +#define XAVBUF_CHBUF2_EN_WIDTH 1 +#define XAVBUF_CHBUF2_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_CHBUF3 + * */ +#define XAVBUF_CHBUF3 0X0000B01C + +#define XAVBUF_CHBUF3_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF3_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF3_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF3_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF3_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF3_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF3_EN_SHIFT 0 +#define XAVBUF_CHBUF3_EN_WIDTH 1 +#define XAVBUF_CHBUF3_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_CHBUF4 + * */ +#define XAVBUF_CHBUF4 0X0000B020 + +#define XAVBUF_CHBUF4_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF4_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF4_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF4_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF4_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF4_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF4_EN_SHIFT 0 +#define XAVBUF_CHBUF4_EN_WIDTH 1 +#define XAVBUF_CHBUF4_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_CHBUF5 + * */ +#define XAVBUF_CHBUF5 0X0000B024 + +#define XAVBUF_CHBUF5_BURST_LEN_SHIFT 2 +#define XAVBUF_CHBUF5_BURST_LEN_WIDTH 5 +#define XAVBUF_CHBUF5_BURST_LEN_MASK 0X0000007C + +#define XAVBUF_CHBUF5_FLUSH_SHIFT 1 +#define XAVBUF_CHBUF5_FLUSH_WIDTH 1 +#define XAVBUF_CHBUF5_FLUSH_MASK 0X00000002 + +#define XAVBUF_CHBUF5_EN_SHIFT 0 +#define XAVBUF_CHBUF5_EN_WIDTH 1 +#define XAVBUF_CHBUF5_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_BUF_STC_CONTROL + * */ +#define XAVBUF_BUF_STC_CONTROL 0X0000B02C + +#define XAVBUF_BUF_STC_CONTROL_EN_SHIFT 0 +#define XAVBUF_BUF_STC_CONTROL_EN_WIDTH 1 +#define XAVBUF_BUF_STC_CONTROL_EN_MASK 0X00000001 + +/** + * * Register: XAVBUF_BUF_STC_INIT_VALUE0 + * */ +#define XAVBUF_BUF_STC_INIT_VALUE0 0X0000B030 + +#define XAVBUF_BUF_STC_INIT_VALUE0_INIT_VALUE0_SHIFT 0 +#define XAVBUF_BUF_STC_INIT_VALUE0_INIT_VALUE0_WIDTH 32 +#define XAVBUF_BUF_STC_INIT_VALUE0_INIT_VALUE0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_INIT_VALUE1 + * */ +#define XAVBUF_BUF_STC_INIT_VALUE1 0X0000B034 + +#define XAVBUF_BUF_STC_INIT_VALUE1_INIT_VALUE1_SHIFT 0 +#define XAVBUF_BUF_STC_INIT_VALUE1_INIT_VALUE1_WIDTH 10 +#define XAVBUF_BUF_STC_INIT_VALUE1_INIT_VALUE1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_STC_ADJ + * */ +#define XAVBUF_BUF_STC_ADJ 0X0000B038 + +#define XAVBUF_BUF_STC_ADJ_SIGN_SHIFT 31 +#define XAVBUF_BUF_STC_ADJ_SIGN_WIDTH 1 +#define XAVBUF_BUF_STC_ADJ_SIGN_MASK 0X80000000 + +#define XAVBUF_BUF_STC_ADJ_VALUE_SHIFT 0 +#define XAVBUF_BUF_STC_ADJ_VALUE_WIDTH 31 +#define XAVBUF_BUF_STC_ADJ_VALUE_MASK 0X7FFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_VID_VSYNC_TS_REG0 + * */ +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG0 0X0000B03C + +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG0_VSYNC_TS0_SHIFT 0 +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG0_VSYNC_TS0_WIDTH 32 +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG0_VSYNC_TS0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_VID_VSYNC_TS_REG1 + * */ +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG1 0X0000B040 + +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG1_VSYNC_TS1_SHIFT 0 +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG1_VSYNC_TS1_WIDTH 10 +#define XAVBUF_BUF_STC_VID_VSYNC_TS_REG1_VSYNC_TS1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_STC_EXT_VSYNC_TS_REG0 + * */ +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG0 0X0000B044 + +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG0_EXT_VSYNC_TS0_SHIFT 0 +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG0_EXT_VSYNC_TS0_WIDTH 32 +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG0_EXT_VSYNC_TS0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_EXT_VSYNC_TS_REG1 + * */ +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG1 0X0000B048 + +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG1_EXT_VSYNC_TS1_SHIFT 0 +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG1_EXT_VSYNC_TS1_WIDTH 10 +#define XAVBUF_BUF_STC_EXT_VSYNC_TS_REG1_EXT_VSYNC_TS1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG0 + * */ +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG0 0X0000B04C + +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG0_CUST_EVENT_TS0_SHIFT 0 +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG0_CUST_EVENT_TS0_WIDTH 32 +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG0_CUST_EVENT_TS0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG1 + * */ +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG1 0X0000B050 + +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG1_CUST_EVENT_TS1_SHIFT 0 +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG1_CUST_EVENT_TS1_WIDTH 10 +#define XAVBUF_BUF_STC_CUSTOM_EVENT_TS_REG1_CUST_EVENT_TS1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG0 + * */ +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG0 0X0000B054 + +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG0_CUST_EVENT2_TS0_SHIFT 0 +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG0_CUST_EVENT2_TS0_WIDTH 32 +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG0_CUST_EVENT2_TS0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG1 + * */ +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG1 0X0000B058 + +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG1_CUST_EVENT2_TS1_SHIFT 0 +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG1_CUST_EVENT2_TS1_WIDTH 10 +#define XAVBUF_BUF_STC_CUSTOM_EVENT2_TS_REG1_CUST_EVENT2_TS1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_STC_SNAPSHOT0 + * */ +#define XAVBUF_BUF_STC_SNAPSHOT0 0X0000B060 + +#define XAVBUF_BUF_STC_SNAPSHOT0_STC0_SHIFT 0 +#define XAVBUF_BUF_STC_SNAPSHOT0_STC0_WIDTH 32 +#define XAVBUF_BUF_STC_SNAPSHOT0_STC0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_BUF_STC_SNAPSHOT1 + * */ +#define XAVBUF_BUF_STC_SNAPSHOT1 0X0000B064 + +#define XAVBUF_BUF_STC_SNAPSHOT1_STC1_SHIFT 0 +#define XAVBUF_BUF_STC_SNAPSHOT1_STC1_WIDTH 10 +#define XAVBUF_BUF_STC_SNAPSHOT1_STC1_MASK 0X000003FF + +/** + * * Register: XAVBUF_BUF_OUTPUT_AUD_VID_SELECT + * */ +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT 0X0000B070 + +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM2_SEL_SHIFT 6 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM2_SEL_WIDTH 1 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM2_SEL_MASK 0X00000040 + +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM1_SEL_SHIFT 4 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM1_SEL_WIDTH 2 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_AUD_STREAM1_SEL_MASK 0X00000030 + +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM2_SEL_SHIFT 2 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM2_SEL_WIDTH 2 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM2_SEL_MASK 0X0000000C + +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM1_SEL_SHIFT 0 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM1_SEL_WIDTH 2 +#define XAVBUF_BUF_OUTPUT_AUD_VID_SELECT_VID_STREAM1_SEL_MASK 0X00000003 + +/** + * * Register: XAVBUF_BUF_HCOUNT_VCOUNT_INT0 + * */ +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0 0X0000B074 + +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_HCOUNT_SHIFT 16 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_HCOUNT_WIDTH 14 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_HCOUNT_MASK 0X3FFF0000 + +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_VCOUNT_SHIFT 0 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_VCOUNT_WIDTH 14 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT0_VCOUNT_MASK 0X00003FFF + +/** + * * Register: XAVBUF_BUF_HCOUNT_VCOUNT_INT1 + * */ +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1 0X0000B078 + +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_HCOUNT_SHIFT 16 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_HCOUNT_WIDTH 14 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_HCOUNT_MASK 0X3FFF0000 + +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_VCOUNT_SHIFT 0 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_VCOUNT_WIDTH 14 +#define XAVBUF_BUF_HCOUNT_VCOUNT_INT1_VCOUNT_MASK 0X00003FFF + +/** + * * Register: XAVBUF_BUF_DITHER_CFG + * */ +#define XAVBUF_BUF_DITHER_CFG 0X0000B07C + +#define XAVBUF_BUF_DITHER_CFG_TAP_MSB_SHIFT 10 +#define XAVBUF_BUF_DITHER_CFG_TAP_MSB_WIDTH 1 +#define XAVBUF_BUF_DITHER_CFG_TAP_MSB_MASK 0X00000400 + +#define XAVBUF_BUF_DITHER_CFG_DW_SEL_SHIFT 9 +#define XAVBUF_BUF_DITHER_CFG_DW_SEL_WIDTH 1 +#define XAVBUF_BUF_DITHER_CFG_DW_SEL_MASK 0X00000200 + +#define XAVBUF_BUF_DITHER_CFG_LD_SHIFT 8 +#define XAVBUF_BUF_DITHER_CFG_LD_WIDTH 1 +#define XAVBUF_BUF_DITHER_CFG_LD_MASK 0X00000100 + +#define XAVBUF_BUF_DITHER_CFG_TRUNC_PT_SHIFT 5 +#define XAVBUF_BUF_DITHER_CFG_TRUNC_PT_WIDTH 3 +#define XAVBUF_BUF_DITHER_CFG_TRUNC_PT_MASK 0X000000E0 + +#define XAVBUF_BUF_DITHER_CFG_MODE_SHIFT 3 +#define XAVBUF_BUF_DITHER_CFG_MODE_WIDTH 2 +#define XAVBUF_BUF_DITHER_CFG_MODE_MASK 0X00000018 + +#define XAVBUF_BUF_DITHER_CFG_SIZE_SHIFT 0 +#define XAVBUF_BUF_DITHER_CFG_SIZE_WIDTH 3 +#define XAVBUF_BUF_DITHER_CFG_SIZE_MASK 0X00000007 + +/** + * * Register: XAVBUF_DITHER_CFG_SEED0 + * */ +#define XAVBUF_DITHER_CFG_SEED0 0X0000B080 + +#define XAVBUF_DITHER_CFG_SEED0_COLR0_SHIFT 0 +#define XAVBUF_DITHER_CFG_SEED0_COLR0_WIDTH 16 +#define XAVBUF_DITHER_CFG_SEED0_COLR0_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_DITHER_CFG_SEED1 + * */ +#define XAVBUF_DITHER_CFG_SEED1 0X0000B084 + +#define XAVBUF_DITHER_CFG_SEED1_COLR1_SHIFT 0 +#define XAVBUF_DITHER_CFG_SEED1_COLR1_WIDTH 16 +#define XAVBUF_DITHER_CFG_SEED1_COLR1_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_DITHER_CFG_SEED2 + * */ +#define XAVBUF_DITHER_CFG_SEED2 0X0000B088 + +#define XAVBUF_DITHER_CFG_SEED2_COLR2_SHIFT 0 +#define XAVBUF_DITHER_CFG_SEED2_COLR2_WIDTH 16 +#define XAVBUF_DITHER_CFG_SEED2_COLR2_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_DITHER_CFG_MAX + * */ +#define XAVBUF_DITHER_CFG_MAX 0X0000B08C + +#define XAVBUF_DITHER_CFG_MAX_COLR_MAX_SHIFT 0 +#define XAVBUF_DITHER_CFG_MAX_COLR_MAX_WIDTH 12 +#define XAVBUF_DITHER_CFG_MAX_COLR_MAX_MASK 0X00000FFF + +/** + * * Register: XAVBUF_DITHER_CFG_MIN + * */ +#define XAVBUF_DITHER_CFG_MIN 0X0000B090 + +#define XAVBUF_DITHER_CFG_MIN_COLR_MIN_SHIFT 0 +#define XAVBUF_DITHER_CFG_MIN_COLR_MIN_WIDTH 12 +#define XAVBUF_DITHER_CFG_MIN_COLR_MIN_MASK 0X00000FFF + +/** + * * Register: XAVBUF_PATTERN_GEN_SELECT + * */ +#define XAVBUF_PATTERN_GEN_SELECT 0X0000B100 + +#define XAVBUF_PATTERN_GEN_SELECT_OFFSET_EQ_SHIFT 8 +#define XAVBUF_PATTERN_GEN_SELECT_OFFSET_EQ_WIDTH 24 +#define XAVBUF_PATTERN_GEN_SELECT_OFFSET_EQ_MASK 0XFFFFFF00 + +#define XAVBUF_PATTERN_GEN_SELECT_AUD_RATE_SEL_SHIFT 0 +#define XAVBUF_PATTERN_GEN_SELECT_AUD_RATE_SEL_WIDTH 2 +#define XAVBUF_PATTERN_GEN_SELECT_AUD_RATE_SEL_MASK 0X00000003 + +/** + * * Register: XAVBUF_AUD_PATTERN_SELECT1 + * */ +#define XAVBUF_AUD_PATTERN_SELECT1 0X0000B104 + +#define XAVBUF_AUD_PATTERN_SELECT1_PATTERN_SHIFT 0 +#define XAVBUF_AUD_PATTERN_SELECT1_PATTERN_WIDTH 2 +#define XAVBUF_AUD_PATTERN_SELECT1_PATTERN_MASK 0X00000003 + +/** + * * Register: XAVBUF_AUD_PATTERN_SELECT2 + * */ +#define XAVBUF_AUD_PATTERN_SELECT2 0X0000B108 + +#define XAVBUF_AUD_PATTERN_SELECT2_PATTERN_SHIFT 0 +#define XAVBUF_AUD_PATTERN_SELECT2_PATTERN_WIDTH 2 +#define XAVBUF_AUD_PATTERN_SELECT2_PATTERN_MASK 0X00000003 + +/** + * * Register: XAVBUF_BUF_AUD_VID_CLK_SOURCE + * */ +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE 0X0000B120 + +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_TIMING_SRC_SHIFT 2 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_TIMING_SRC_WIDTH 1 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_TIMING_SRC_MASK 0X00000004 + +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_AUD_CLK_SRC_SHIFT 1 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_AUD_CLK_SRC_WIDTH 1 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_AUD_CLK_SRC_MASK 0X00000002 + +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_CLK_SRC_SHIFT 0 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_CLK_SRC_WIDTH 1 +#define XAVBUF_BUF_AUD_VID_CLK_SOURCE_VID_CLK_SRC_MASK 0X00000001 + +/** + * * Register: XAVBUF_BUF_SRST_REG + * */ +#define XAVBUF_BUF_SRST_REG 0X0000B124 + +#define XAVBUF_BUF_SRST_REG_VID_RST_SHIFT 1 +#define XAVBUF_BUF_SRST_REG_VID_RST_WIDTH 1 +#define XAVBUF_BUF_SRST_REG_VID_RST_MASK 0X00000002 + +/** + * * Register: XAVBUF_BUF_AUD_RDY_INTERVAL + * */ +#define XAVBUF_BUF_AUD_RDY_INTERVAL 0X0000B128 + +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH1_INT_SHIFT 16 +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH1_INT_WIDTH 16 +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH1_INT_MASK 0XFFFF0000 + +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH0_INT_SHIFT 0 +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH0_INT_WIDTH 16 +#define XAVBUF_BUF_AUD_RDY_INTERVAL_CH0_INT_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_BUF_AUD_CH_CFG + * */ +#define XAVBUF_BUF_AUD_CH_CFG 0X0000B12C + +#define XAVBUF_BUF_AUD_CH_CFG_AUD_CH_ID_SHIFT 0 +#define XAVBUF_BUF_AUD_CH_CFG_AUD_CH_ID_WIDTH 2 +#define XAVBUF_BUF_AUD_CH_CFG_AUD_CH_ID_MASK 0X00000003 + +/** + * * Register: XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR + * */ +#define XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR 0X0000B200 + +#define XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR0_SHIFT 0 +#define XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR0_WIDTH 17 +#define XAVBUF_BUF_GRAPHICS_COMP0_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR0_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_GRAPHICS_COMP1_SCALE_FACTOR + * */ +#define XAVBUF_BUF_GRAPHICS_COMP1_SCALE_FACTOR 0X0000B204 + +#define XAVBUF_BUF_GRAPHICS_COMP1_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR1_SHIFT 0 +#define XAVBUF_BUF_GRAPHICS_COMP1_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR1_WIDTH 17 +#define XAVBUF_BUF_GRAPHICS_COMP1_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR1_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_GRAPHICS_COMP2_SCALE_FACTOR + * */ +#define XAVBUF_BUF_GRAPHICS_COMP2_SCALE_FACTOR 0X0000B208 + +#define XAVBUF_BUF_GRAPHICS_COMP2_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR2_SHIFT 0 +#define XAVBUF_BUF_GRAPHICS_COMP2_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR2_WIDTH 17 +#define XAVBUF_BUF_GRAPHICS_COMP2_SCALE_FACTOR_GRAPHICS_SCALE_FACTOR2_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_VID_COMP0_SCALE_FACTOR + * */ +#define XAVBUF_BUF_VID_COMP0_SCALE_FACTOR 0X0000B20C + +#define XAVBUF_BUF_VID_COMP0_SCALE_FACTOR_VID_SCA_FACT0_SHIFT 0 +#define XAVBUF_BUF_VID_COMP0_SCALE_FACTOR_VID_SCA_FACT0_WIDTH 17 +#define XAVBUF_BUF_VID_COMP0_SCALE_FACTOR_VID_SCA_FACT0_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_VID_COMP1_SCALE_FACTOR + * */ +#define XAVBUF_BUF_VID_COMP1_SCALE_FACTOR 0X0000B210 + +#define XAVBUF_BUF_VID_COMP1_SCALE_FACTOR_VID_SCA_FACT1_SHIFT 0 +#define XAVBUF_BUF_VID_COMP1_SCALE_FACTOR_VID_SCA_FACT1_WIDTH 17 +#define XAVBUF_BUF_VID_COMP1_SCALE_FACTOR_VID_SCA_FACT1_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_VID_COMP2_SCALE_FACTOR + * */ +#define XAVBUF_BUF_VID_COMP2_SCALE_FACTOR 0X0000B214 + +#define XAVBUF_BUF_VID_COMP2_SCALE_FACTOR_VID_SCA_FACT2_SHIFT 0 +#define XAVBUF_BUF_VID_COMP2_SCALE_FACTOR_VID_SCA_FACT2_WIDTH 17 +#define XAVBUF_BUF_VID_COMP2_SCALE_FACTOR_VID_SCA_FACT2_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_VID_COMP0_SF + * */ +#define XAVBUF_BUF_LIVE_VID_COMP0_SF 0X0000B218 + +#define XAVBUF_BUF_LIVE_VID_COMP0_SF_LIV_VID_SCA_FACT0_SHIFT 0 +#define XAVBUF_BUF_LIVE_VID_COMP0_SF_LIV_VID_SCA_FACT0_WIDTH 17 +#define XAVBUF_BUF_LIVE_VID_COMP0_SF_LIV_VID_SCA_FACT0_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_VID_COMP1_SF + * */ +#define XAVBUF_BUF_LIVE_VID_COMP1_SF 0X0000B21C + +#define XAVBUF_BUF_LIVE_VID_COMP1_SF_LIV_VID_SCA_FACT1_SHIFT 0 +#define XAVBUF_BUF_LIVE_VID_COMP1_SF_LIV_VID_SCA_FACT1_WIDTH 17 +#define XAVBUF_BUF_LIVE_VID_COMP1_SF_LIV_VID_SCA_FACT1_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_VID_COMP2_SF + * */ +#define XAVBUF_BUF_LIVE_VID_COMP2_SF 0X0000B220 + +#define XAVBUF_BUF_LIVE_VID_COMP2_SF_LIV_VID_SCA_FACT2_SHIFT 0 +#define XAVBUF_BUF_LIVE_VID_COMP2_SF_LIV_VID_SCA_FACT2_WIDTH 17 +#define XAVBUF_BUF_LIVE_VID_COMP2_SF_LIV_VID_SCA_FACT2_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_VID_CFG + * */ +#define XAVBUF_BUF_LIVE_VID_CFG 0X0000B224 + +#define XAVBUF_BUF_LIVE_VID_CFG_CB_FIRST_SHIFT 8 +#define XAVBUF_BUF_LIVE_VID_CFG_CB_FIRST_WIDTH 1 +#define XAVBUF_BUF_LIVE_VID_CFG_CB_FIRST_MASK 0X00000100 + +#define XAVBUF_BUF_LIVE_VID_CFG_FORMAT_SHIFT 4 +#define XAVBUF_BUF_LIVE_VID_CFG_FORMAT_WIDTH 2 +#define XAVBUF_BUF_LIVE_VID_CFG_FORMAT_MASK 0X00000030 + +#define XAVBUF_BUF_LIVE_VID_CFG_BPC_SHIFT 0 +#define XAVBUF_BUF_LIVE_VID_CFG_BPC_WIDTH 3 +#define XAVBUF_BUF_LIVE_VID_CFG_BPC_MASK 0X00000007 + +/** + * * Register: XAVBUF_BUF_LIVE_GFX_COMP0_SF + * */ +#define XAVBUF_BUF_LIVE_GFX_COMP0_SF 0X0000B228 + +#define XAVBUF_BUF_LIVE_GFX_COMP0_SF_LIV_VID_SCA_FACT0_SHIFT 0 +#define XAVBUF_BUF_LIVE_GFX_COMP0_SF_LIV_VID_SCA_FACT0_WIDTH 17 +#define XAVBUF_BUF_LIVE_GFX_COMP0_SF_LIV_VID_SCA_FACT0_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_GFX_COMP1_SF + * */ +#define XAVBUF_BUF_LIVE_GFX_COMP1_SF 0X0000B22C + +#define XAVBUF_BUF_LIVE_GFX_COMP1_SF_LIV_VID_SCA_FACT1_SHIFT 0 +#define XAVBUF_BUF_LIVE_GFX_COMP1_SF_LIV_VID_SCA_FACT1_WIDTH 17 +#define XAVBUF_BUF_LIVE_GFX_COMP1_SF_LIV_VID_SCA_FACT1_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_GFX_COMP2_SF + * */ +#define XAVBUF_BUF_LIVE_GFX_COMP2_SF 0X0000B230 + +#define XAVBUF_BUF_LIVE_GFX_COMP2_SF_LIV_VID_SCA_FACT2_SHIFT 0 +#define XAVBUF_BUF_LIVE_GFX_COMP2_SF_LIV_VID_SCA_FACT2_WIDTH 17 +#define XAVBUF_BUF_LIVE_GFX_COMP2_SF_LIV_VID_SCA_FACT2_MASK 0X0001FFFF + +/** + * * Register: XAVBUF_BUF_LIVE_GFX_CFG + * */ +#define XAVBUF_BUF_LIVE_GFX_CFG 0X0000B234 + +#define XAVBUF_BUF_LIVE_GFX_CFG_CB_FIRST_SHIFT 8 +#define XAVBUF_BUF_LIVE_GFX_CFG_CB_FIRST_WIDTH 1 +#define XAVBUF_BUF_LIVE_GFX_CFG_CB_FIRST_MASK 0X00000100 + +#define XAVBUF_BUF_LIVE_GFX_CFG_FORMAT_SHIFT 4 +#define XAVBUF_BUF_LIVE_GFX_CFG_FORMAT_WIDTH 2 +#define XAVBUF_BUF_LIVE_GFX_CFG_FORMAT_MASK 0X00000030 + +#define XAVBUF_BUF_LIVE_GFX_CFG_BPC_SHIFT 0 +#define XAVBUF_BUF_LIVE_GFX_CFG_BPC_WIDTH 3 +#define XAVBUF_BUF_LIVE_GFX_CFG_BPC_MASK 0X00000007 + +/** + * * Register: XAVBUF_AUD_MIXER_VOLUME_CONTROL + * */ +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL 0X0000C000 + +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH1_SHIFT 16 +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH1_WIDTH 16 +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH1_MASK 0XFFFF0000 + +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH0_SHIFT 0 +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH0_WIDTH 16 +#define XAVBUF_AUD_MIXER_VOLUME_CONTROL_VOL_CTRL_CH0_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_AUD_MIXER_META_DATA + * */ +#define XAVBUF_AUD_MIXER_META_DATA 0X0000C004 + +#define XAVBUF_AUD_MIXER_META_DATA_AUD_META_DATA_SEL_SHIFT 0 +#define XAVBUF_AUD_MIXER_META_DATA_AUD_META_DATA_SEL_WIDTH 1 +#define XAVBUF_AUD_MIXER_META_DATA_AUD_META_DATA_SEL_MASK 0X00000001 + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG0 + * */ +#define XAVBUF_AUD_CH_STATUS_REG0 0X0000C008 + +#define XAVBUF_AUD_CH_STATUS_REG0_STATUS0_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG0_STATUS0_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG0_STATUS0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG1 + * */ +#define XAVBUF_AUD_CH_STATUS_REG1 0X0000C00C + +#define XAVBUF_AUD_CH_STATUS_REG1_STATUS1_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG1_STATUS1_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG1_STATUS1_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG2 + * */ +#define XAVBUF_AUD_CH_STATUS_REG2 0X0000C010 + +#define XAVBUF_AUD_CH_STATUS_REG2_STATUS2_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG2_STATUS2_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG2_STATUS2_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG3 + * */ +#define XAVBUF_AUD_CH_STATUS_REG3 0X0000C014 + +#define XAVBUF_AUD_CH_STATUS_REG3_STATUS3_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG3_STATUS3_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG3_STATUS3_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG4 + * */ +#define XAVBUF_AUD_CH_STATUS_REG4 0X0000C018 + +#define XAVBUF_AUD_CH_STATUS_REG4_STATUS4_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG4_STATUS4_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG4_STATUS4_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_STATUS_REG5 + * */ +#define XAVBUF_AUD_CH_STATUS_REG5 0X0000C01C + +#define XAVBUF_AUD_CH_STATUS_REG5_STATUS5_SHIFT 0 +#define XAVBUF_AUD_CH_STATUS_REG5_STATUS5_WIDTH 32 +#define XAVBUF_AUD_CH_STATUS_REG5_STATUS5_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG0 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG0 0X0000C020 + +#define XAVBUF_AUD_CH_A_DATA_REG0_USER_DATA0_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG0_USER_DATA0_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG0_USER_DATA0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG1 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG1 0X0000C024 + +#define XAVBUF_AUD_CH_A_DATA_REG1_USER_DATA1_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG1_USER_DATA1_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG1_USER_DATA1_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG2 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG2 0X0000C028 + +#define XAVBUF_AUD_CH_A_DATA_REG2_USER_DATA2_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG2_USER_DATA2_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG2_USER_DATA2_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG3 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG3 0X0000C02C + +#define XAVBUF_AUD_CH_A_DATA_REG3_USER_DATA3_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG3_USER_DATA3_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG3_USER_DATA3_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG4 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG4 0X0000C030 + +#define XAVBUF_AUD_CH_A_DATA_REG4_USER_DATA4_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG4_USER_DATA4_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG4_USER_DATA4_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_A_DATA_REG5 + * */ +#define XAVBUF_AUD_CH_A_DATA_REG5 0X0000C034 + +#define XAVBUF_AUD_CH_A_DATA_REG5_USER_DATA5_SHIFT 0 +#define XAVBUF_AUD_CH_A_DATA_REG5_USER_DATA5_WIDTH 32 +#define XAVBUF_AUD_CH_A_DATA_REG5_USER_DATA5_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG0 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG0 0X0000C038 + +#define XAVBUF_AUD_CH_B_DATA_REG0_USER_DATA0_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG0_USER_DATA0_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG0_USER_DATA0_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG1 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG1 0X0000C03C + +#define XAVBUF_AUD_CH_B_DATA_REG1_USER_DATA1_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG1_USER_DATA1_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG1_USER_DATA1_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG2 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG2 0X0000C040 + +#define XAVBUF_AUD_CH_B_DATA_REG2_USER_DATA2_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG2_USER_DATA2_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG2_USER_DATA2_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG3 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG3 0X0000C044 + +#define XAVBUF_AUD_CH_B_DATA_REG3_USER_DATA3_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG3_USER_DATA3_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG3_USER_DATA3_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG4 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG4 0X0000C048 + +#define XAVBUF_AUD_CH_B_DATA_REG4_USER_DATA4_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG4_USER_DATA4_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG4_USER_DATA4_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_CH_B_DATA_REG5 + * */ +#define XAVBUF_AUD_CH_B_DATA_REG5 0X0000C04C + +#define XAVBUF_AUD_CH_B_DATA_REG5_USER_DATA5_SHIFT 0 +#define XAVBUF_AUD_CH_B_DATA_REG5_USER_DATA5_WIDTH 32 +#define XAVBUF_AUD_CH_B_DATA_REG5_USER_DATA5_MASK 0XFFFFFFFF + +/** + * * Register: XAVBUF_AUD_SOFT_RST + * */ +#define XAVBUF_AUD_SOFT_RST 0X0000CC00 + +#define XAVBUF_AUD_SOFT_RST_EXTRA_BS_CONTROL_SHIFT 2 +#define XAVBUF_AUD_SOFT_RST_EXTRA_BS_CONTROL_WIDTH 1 +#define XAVBUF_AUD_SOFT_RST_EXTRA_BS_CONTROL_MASK 0X00000004 + +#define XAVBUF_AUD_SOFT_RST_LINE_RST_DISABLE_SHIFT 1 +#define XAVBUF_AUD_SOFT_RST_LINE_RST_DISABLE_WIDTH 1 +#define XAVBUF_AUD_SOFT_RST_LINE_RST_DISABLE_MASK 0X00000002 + +#define XAVBUF_AUD_SOFT_RST_AUD_SRST_SHIFT 0 +#define XAVBUF_AUD_SOFT_RST_AUD_SRST_WIDTH 1 +#define XAVBUF_AUD_SOFT_RST_AUD_SRST_MASK 0X00000001 + +/** + * * Register: XAVBUF_PATGEN_CRC_R + * */ +#define XAVBUF_PATGEN_CRC_R 0X0000CC10 + +#define XAVBUF_PATGEN_CRC_R_CRC_R_SHIFT 0 +#define XAVBUF_PATGEN_CRC_R_CRC_R_WIDTH 16 +#define XAVBUF_PATGEN_CRC_R_CRC_R_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_PATGEN_CRC_G + * */ +#define XAVBUF_PATGEN_CRC_G 0X0000CC14 + +#define XAVBUF_PATGEN_CRC_G_CRC_G_SHIFT 0 +#define XAVBUF_PATGEN_CRC_G_CRC_G_WIDTH 16 +#define XAVBUF_PATGEN_CRC_G_CRC_G_MASK 0X0000FFFF + +/** + * * Register: XAVBUF_PATGEN_CRC_B + * */ +#define XAVBUF_PATGEN_CRC_B 0X0000CC18 + +#define XAVBUF_PATGEN_CRC_B_CRC_B_SHIFT 0 +#define XAVBUF_PATGEN_CRC_B_CRC_B_WIDTH 16 +#define XAVBUF_PATGEN_CRC_B_CRC_B_MASK 0X0000FFFF + +#define XAVBUF_NUM_SUPPORTED 52 + +#define XAVBUF_BUF_4BIT_SF 0x11111 +#define XAVBUF_BUF_5BIT_SF 0x10842 +#define XAVBUF_BUF_6BIT_SF 0x10410 +#define XAVBUF_BUF_8BIT_SF 0x10101 +#define XAVBUF_BUF_10BIT_SF 0x10040 +#define XAVBUF_BUF_12BIT_SF 0x10000 + +#define XAVBUF_BUF_6BPC 0x000 +#define XAVBUF_BUF_8BPC 0x001 +#define XAVBUF_BUF_10BPC 0x010 +#define XAVBUF_BUF_12BPC 0x011 + +#define XAVBUF_CHBUF_V_BURST_LEN 0xF +#define XAVBUF_CHBUF_A_BURST_LEN 0x3 + +#define XAVBUF_PL_CLK 0x0 +#define XAVBUF_PS_CLK 0x1 + +#define XAVBUF_NUM_SUPPORTED_NLVID 25 +#define XAVBUF_NUM_SUPPORTED_NLGFX 14 +#define XAVBUF_NUM_SUPPORTED_LIVE 14 +#define XAVBUF_NUM_OUTPUT_FORMATS 14 + +/** + * Address mapping for PLL (CRF and CRL) + */ + +/* Base Address for CLOCK in FPD. */ +#define XAVBUF_CLK_FPD_BASEADDR 0XFD1A0000 + +/* Base Address for CLOCK in LPD. */ +#define XAVBUF_CLK_LPD_BASEADDR 0XFF5E0000 + +/** + * The following constants define values to manipulate + * the bits of the VPLL control register. + */ +#define XAVBUF_PLL_CTRL 0X00000020 + +#define XAVBUF_PLL_CTRL_POST_SRC_SHIFT 24 +#define XAVBUF_PLL_CTRL_POST_SRC_WIDTH 3 +#define XAVBUF_PLL_CTRL_POST_SRC_MASK 0X07000000 + +#define XAVBUF_PLL_CTRL_PRE_SRC_SHIFT 20 +#define XAVBUF_VPLL_CTRL_PRE_SRC_WIDTH 3 +#define XAVBUF_VPLL_CTRL_PRE_SRC_MASK 0X00700000 + +#define XAVBUF_PLL_CTRL_CLKOUTDIV_SHIFT 17 +#define XAVBUF_PLL_CTRL_CLKOUTDIV_WIDTH 1 +#define XAVBUF_PLL_CTRL_CLKOUTDIV_MASK 0X00020000 + +#define XAVBUF_PLL_CTRL_DIV2_SHIFT 16 +#define XAVBUF_PLL_CTRL_DIV2_WIDTH 1 +#define XAVBUF_PLL_CTRL_DIV2_MASK 0X00010000 + +#define XAVBUF_PLL_CTRL_FBDIV_SHIFT 8 +#define XAVBUF_PLL_CTRL_FBDIV_WIDTH 7 +#define XAVBUF_PLL_CTRL_FBDIV_MASK 0X00007F00 + +#define XAVBUF_PLL_CTRL_BYPASS_SHIFT 3 +#define XAVBUF_PLL_CTRL_BYPASS_WIDTH 1 +#define XAVBUF_PLL_CTRL_BYPASS_MASK 0X00000008 + +#define XAVBUF_PLL_CTRL_RESET_SHIFT 0 +#define XAVBUF_PLL_CTRL_RESET_WIDTH 1 +#define XAVBUF_PLL_CTRL_RESET_MASK 0X00000001 + +/** + * The following constants define values to manipulate + * the bits of the PLL config register. + */ +#define XAVBUF_PLL_CFG 0X00000024 + +#define XAVBUF_PLL_CFG_LOCK_DLY_SHIFT 25 +#define XAVBUF_PLL_CFG_LOCK_DLY_WIDTH 7 +#define XAVBUF_PLL_CFG_LOCK_DLY_MASK 0XFE000000 + +#define XAVBUF_PLL_CFG_LOCK_CNT_SHIFT 13 +#define XAVBUF_PLL_CFG_LOCK_CNT_WIDTH 10 +#define XAVBUF_PLL_CFG_LOCK_CNT_MASK 0X007FE000 + +#define XAVBUF_PLL_CFG_LFHF_SHIFT 10 +#define XAVBUF_PLL_CFG_LFHF_WIDTH 2 +#define XAVBUF_PLL_CFG_LFHF_MASK 0X00000C00 + +#define XAVBUF_PLL_CFG_CP_SHIFT 5 +#define XAVBUF_PLL_CFG_CP_WIDTH 4 +#define XAVBUF_PLL_CFG_CP_MASK 0X000001E0 + +#define XAVBUF_PLL_CFG_RES_SHIFT 0 +#define XAVBUF_PLL_CFG_RES_WIDTH 4 +#define XAVBUF_PLL_CFG_RES_MASK 0X0000000F + +/** + * The following constants define values to manipulate + * the bits of the VPLL fractional config register. + */ +#define XAVBUF_PLL_FRAC_CFG 0X00000028 + +#define XAVBUF_PLL_FRAC_CFG_ENABLED_SHIFT 31 +#define XAVBUF_PLL_FRAC_CFG_ENABLED_WIDTH 1 +#define XAVBUF_PLL_FRAC_CFG_ENABLED_MASK 0X80000000 + +#define XAVBUF_PLL_FRAC_CFG_SEED_SHIFT 22 +#define XAVBUF_PLL_FRAC_CFG_SEED_WIDTH 3 +#define XAVBUF_PLL_FRAC_CFG_SEED_MASK 0X01C00000 + +#define XAVBUF_PLL_FRAC_CFG_ALGRTHM_SHIFT 19 +#define XAVBUF_PLL_FRAC_CFG_ALGRTHM_WIDTH 1 +#define XAVBUF_PLL_FRAC_CFG_ALGRTHM_MASK 0X00080000 + +#define XAVBUF_PLL_FRAC_CFG_ORDER_SHIFT 18 +#define XAVBUF_PLL_FRAC_CFG_ORDER_WIDTH 1 +#define XAVBUF_PLL_FRAC_CFG_ORDER_MASK 0X00040000 + +#define XAVBUF_PLL_FRAC_CFG_DATA_SHIFT 0 +#define XAVBUF_PLL_FRAC_CFG_DATA_WIDTH 16 +#define XAVBUF_PLL_FRAC_CFG_DATA_MASK 0X0000FFFF + +/** + * The following constants define values to manipulate + * the bits of the PLL STATUS register. + */ +#define XAVBUF_PLL_STATUS 0X00000044 + +#define XAVBUF_PLL_STATUS_VPLL_STABLE_SHIFT 5 +#define XAVBUF_PLL_STATUS_VPLL_STABLE_WIDTH 1 +#define XAVBUF_PLL_STATUS_VPLL_STABLE_MASK 0X00000020 + +#define XAVBUF_PLL_STATUS_DPLL_STABLE_SHIFT 4 +#define XAVBUF_PLL_STATUS_DPLL_STABLE_WIDTH 1 +#define XAVBUF_PLL_STATUS_DPLL_STABLE_MASK 0X00000010 + +#define XAVBUF_PLL_STATUS_APLL_STABLE_SHIFT 3 +#define XAVBUF_PLL_STATUS_APLL_STABLE_WIDTH 1 +#define XAVBUF_PLL_STATUS_APLL_STABLE_MASK 0X00000008 + +#define XAVBUF_PLL_STATUS_VPLL_LOCK_SHIFT 2 +#define XAVBUF_PLL_STATUS_VPLL_LOCK_WIDTH 1 +#define XAVBUF_PLL_STATUS_VPLL_LOCK_MASK 0X00000004 + +#define XAVBUF_PLL_STATUS_DPLL_LOCK_SHIFT 1 +#define XAVBUF_PLL_STATUS_DPLL_LOCK_WIDTH 1 +#define XAVBUF_PLL_STATUS_DPLL_LOCK_MASK 0X00000002 + +#define XAVBUF_PLL_STATUS_APLL_LOCK_SHIFT 0 +#define XAVBUF_PLL_STATUS_APLL_LOCK_WIDTH 1 +#define XAVBUF_PLL_STATUS_APLL_LOCK_MASK 0X00000001 + +/** + * The following constants define values to manipulate + * the bits of the VIDEO reference control register. + */ +#define XAVBUF_VIDEO_REF_CTRL 0X00000070 + +#define XAVBUF_VIDEO_REF_CTRL_CLKACT_SHIFT 24 +#define XAVBUF_VIDEO_REF_CTRL_CLKACT_WIDTH 1 +#define XAVBUF_VIDEO_REF_CTRL_CLKACT_MASK 0X01000000 + +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR1_SHIFT 16 +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR1_WIDTH 6 +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR1_MASK 0X003F0000 + +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR0_SHIFT 8 +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR0_WIDTH 6 +#define XAVBUF_VIDEO_REF_CTRL_DIVISOR0_MASK 0X00003F00 + +#define XAVBUF_VIDEO_REF_CTRL_SRCSEL_SHIFT 0 +#define XAVBUF_VIDEO_REF_CTRL_SRCSEL_WIDTH 3 +#define XAVBUF_VIDEO_REF_CTRL_SRCSEL_MASK 0X00000007 + +/** + * The following constants define values to manipulate + * the bits of the AUDIO reference control register. + */ +#define XAVBUF_AUDIO_REF_CTRL 0X00000074 + +#define XAVBUF_AUDIO_REF_CTRL_CLKACT_SHIFT 24 +#define XAVBUF_AUDIO_REF_CTRL_CLKACT_WIDTH 1 +#define XAVBUF_AUDIO_REF_CTRL_CLKACT_MASK 0X01000000 + +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR1_SHIFT 16 +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR1_WIDTH 6 +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR1_MASK 0X003F0000 + +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR0_SHIFT 8 +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR0_WIDTH 6 +#define XAVBUF_AUDIO_REF_CTRL_DIVISOR0_MASK 0X00003F00 + +#define XAVBUF_AUDIO_REF_CTRL_SRCSEL_SHIFT 0 +#define XAVBUF_AUDIO_REF_CTRL_SRCSEL_WIDTH 3 +#define XAVBUF_AUDIO_REF_CTRL_SRCSEL_MASK 0X00000007 + +/** + * The following constants define values to manipulate + * the bits of the Domain Switch register. + * For eg. FPD to LPD. + */ +#define XAVBUF_DOMAIN_SWITCH_CTRL 0X00000044 + +#define XAVBUF_DOMAIN_SWITCH_DIVISOR0_SHIFT 8 +#define XAVBUF_DOMAIN_SWITCH_DIVISOR0_WIDTH 6 +#define XAVBUF_DOMAIN_SWITCH_DIVISOR0_MASK 0X00003F00 + +/** + * The following constants define values to Reference + * clock. + */ +#define XAVBUF_Pss_Ref_Clk 0 +#define XAVBUF_Video_Clk 4 +#define XAVBUF_Pss_alt_Ref_Clk 5 +#define XAVBUF_Aux_Ref_clk 6 +#define XAVBUF_Gt_Crx_Ref_Clk 7 + +/** + * The following constants define values to manipulate + * the bits of any register. + */ +#define XAVBUF_ENABLE_BIT 1 +#define XAVBUF_DISABLE_BIT 0 + +/** + * The following constants define values available + * PLL source to Audio and Video. + */ +#define XAVBUF_VPLL_SRC_SEL 0 +#define XAVBUF_DPLL_SRC_SEL 2 +#define XAVBUF_RPLL_TO_FPD_SRC_SEL 3 + +/******************* Macros (Inline Functions) Definitions ********************/ + +/** @name Register access macro definitions. + * @{ + */ +#define XAVBuf_In32 Xil_In32 +#define XAVBuf_Out32 Xil_Out32 +/* @} */ + +/******************************************************************************/ +/** + * This is a low-level function that reads from the specified register. + * + * @param BaseAddress is the base address of the device. + * @param RegOffset is the register offset to be read from. + * + * @return The 32-bit value of the specified register. + * + * @note C-style signature: + * u32 XAVBuf_ReadReg(u32 BaseAddress, u32 RegOffset) + * +*******************************************************************************/ +#define XAVBuf_ReadReg(BaseAddress, RegOffset) \ + XAVBuf_In32((BaseAddress) + (RegOffset)) + +/******************************************************************************/ +/** + * This is a low-level function that writes to the specified register. + * + * @param BaseAddress is the base address of the device. + * @param RegOffset is the register offset to write to. + * @param Data is the 32-bit data to write to the specified register. + * + * @return None. + * + * @note C-style signature: + * void XAVBuf_WriteReg(u32 BaseAddress, u32 RegOffset, u32 Data) + * +*******************************************************************************/ +#define XAVBuf_WriteReg(BaseAddress, RegOffset, Data) \ + XAVBuf_Out32((BaseAddress) + (RegOffset), (Data)) + + +#ifdef __cplusplus +} +#endif + + +#endif //XAVBUF_H_ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_videoformats.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_videoformats.c new file mode 100644 index 000000000..4651cd8d4 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/avbuf_v2_1/src/xavbuf_videoformats.c @@ -0,0 +1,227 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xavbuf_videoformats.c + * @addtogroup xavbuf_v2_1 + * @{ + * + * Contains attributes of the video formats mapped to the hardware + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   aad  03/10/17 Initial release.
      + * 2.0   aad  02/22/18 Fixed scaling factors and bits per pixel
      + * 
      + * +*******************************************************************************/ + +/******************************* Include Files ********************************/ + +#include "xavbuf.h" + + +/**************************** Variable Definitions ****************************/ +#ifdef __cplusplus +extern "C" +#endif + +const XAVBuf_VideoAttribute XAVBuf_SupportedFormats[XAVBUF_NUM_SUPPORTED] = +{ + /* Non - Live Video Formats */ + { CbY0CrY1, 0, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { CrY0CbY1, 1, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { Y0CrY1Cb, 2, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { Y0CbY1Cr, 3, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { YV16, 4, Planar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { YV24, 5, Planar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, FALSE, FALSE, 24}, + { YV16Ci, 6, SemiPlanar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { MONOCHROME, 7, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 8}, + { YV16Ci2, 8, SemiPlanar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, TRUE, 16}, + { YUV444, 9, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, FALSE, FALSE, 24}, + { RGB888, 10, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 24}, + { RGBA8880, 11, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 32}, + { RGB888_10BPC, 12, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + FALSE, TRUE, FALSE, 30}, + { YUV444_10BPC, 13, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + FALSE, FALSE, FALSE, 30}, + { YV16Ci2_10BPC, 14, SemiPlanar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, TRUE, 20}, + { YV16Ci_10BPC, 15, SemiPlanar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 20}, + { YV16_10BPC, 16, Planar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 20}, + { YV24_10BPC, 17, Planar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + FALSE, FALSE, FALSE, 30}, + { MONOCHROME_10BPC, 18, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 10}, + { YV16_420, 19, Planar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { YV16Ci_420, 20, SemiPlanar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 16}, + { YV16Ci2_420, 21, SemiPlanar, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, TRUE, 16}, + { YV16_420_10BPC, 22, Planar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 20}, + { YV16Ci_420_10BPC, 23, SemiPlanar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 20}, + { YV16Ci2_420_10BPC, 24, SemiPlanar, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, TRUE, 20}, + + /* Non-Live Graphics formats */ + { RGBA8888, 0, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 32}, + { ABGR8888, 1, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 32}, + { RGB888_GFX, 2, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 24}, + { BGR888, 3, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 24}, + { RGBA5551, 4, Interleaved, + {XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_5BIT_SF}, + FALSE, TRUE, FALSE, 16}, + { RGBA4444, 5, Interleaved, + {XAVBUF_BUF_4BIT_SF, XAVBUF_BUF_4BIT_SF, XAVBUF_BUF_4BIT_SF}, + FALSE, TRUE, FALSE, 16}, + { RGB565, 6, Interleaved, + {XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_5BIT_SF}, + FALSE, TRUE, FALSE, 16}, + { BPP8, 7, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 8}, + { BPP4, 8, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 4}, + { BPP2, 9, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 2}, + { BPP1, 10, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 1}, + { YUV422, 11, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, FALSE, FALSE, 24}, + + /* Video Formats for Live Video/Graphics input and output sources */ + { RGB_6BPC, 0, Interleaved, + {XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF}, + FALSE, TRUE, FALSE, 18}, + { RGB_8BPC, 0, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, TRUE, FALSE, 24}, + { RGB_10BPC, 0, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + FALSE, TRUE, FALSE, 30}, + { RGB_12BPC, 0, Interleaved, + {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF}, + FALSE, TRUE, FALSE, 36}, + { YCbCr444_6BPC, 1, Interleaved, + {XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF}, + FALSE, FALSE, FALSE, 18}, + { YCbCr444_8BPC, 1, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + FALSE, FALSE, FALSE, 24}, + { YCbCr444_10BPC, 1, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + FALSE, FALSE, FALSE, 30}, + { YCbCr444_12BPC, 1, Interleaved, + {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF}, + FALSE, FALSE, FALSE, 36}, + { YCbCr422_8BPC, 2, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 24}, + { YCbCr422_10BPC, 2, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 30}, + { YCbCr422_12BPC, 2, Interleaved, + {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF}, + TRUE, FALSE, FALSE, 36}, + { YOnly_8BPC, 3, Interleaved, + {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF}, + TRUE, FALSE, FALSE, 24}, + { YOnly_10BPC, 3, Interleaved, + {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF}, + TRUE, FALSE, FALSE, 30}, + { YOnly_12BPC, 3, Interleaved, + {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF}, + TRUE, FALSE, FALSE, 36}, + +}; + +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/Makefile deleted file mode 100644 index 926b20c4e..000000000 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -COMPILER= -ARCHIVER= -CP=cp -COMPILER_FLAGS= -EXTRA_COMPILER_FLAGS= -LIB=libxil.a - -RELEASEDIR=../../../lib -INCLUDEDIR=../../../include -INCLUDES=-I./. -I${INCLUDEDIR} - -INCLUDEFILES=*.h -LIBSOURCES=*.c -OUTS = *.o - - -libs: - echo "Compiling axipmon" - $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) - $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} - make clean - -include: - ${CP} ${INCLUDEFILES} ${INCLUDEDIR} - -clean: - rm -rf ${OUTS} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/Makefile new file mode 100644 index 000000000..8c401268f --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/Makefile @@ -0,0 +1,40 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +CC_FLAGS = $(COMPILER_FLAGS) +ECC_FLAGS = $(EXTRA_COMPILER_FLAGS) + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +OUTS = *.o + +LIBSOURCES:=*.c +INCLUDEFILES:=*.h + +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) + +libs: banner xaxipmon_libs clean + +%.o: %.c + ${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) -o $@ $< + +banner: + echo "Compiling axipmon" + +xaxipmon_libs: ${OBJECTS} + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} + +.PHONY: include +include: xaxipmon_includes + +xaxipmon_includes: + ${CP} ${INCLUDEFILES} ${INCLUDEDIR} + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon.c index fbb867839..fc5d99fd2 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon.c @@ -33,7 +33,7 @@ /** * * @file xaxipmon.c -* @addtogroup axipmon_v6_3 +* @addtogroup axipmon_v6_6 * @{ * * This file contains the driver API functions that can be used to access diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon.h index f8d4d6467..ea347e07c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon.h @@ -33,7 +33,7 @@ /** * * @file xaxipmon.h -* @addtogroup axipmon_v6_3 +* @addtogroup axipmon_v6_6 * @{ * @details * @@ -253,6 +253,14 @@ * 6.3 kvn 07/02/15 Modified code according to MISRA-C:2012 guidelines. * 6.4 sk 11/10/15 Used UINTPTR instead of u32 for Baseaddress CR# 867425. * Changed the prototype of XAxiPmon_CfgInitialize API. +* 6.5 ms 01/23/17 Modified xil_printf statement in main function for all +* examples to ensure that "Successfully ran" and "Failed" +* strings are available in all examples. This is a fix +* for CR-965028. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* 6.6 ms 04/18/17 Modified tcl file to add suffix U for all macro +* definitions of axipmon in xparameters.h * * *****************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_g.c similarity index 94% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_g.c index 2bd473dd5..b54becbef 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/axipmon_v6_5/src/xaxipmon_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XAxiPmon_Config XAxiPmon_ConfigTable[] = +XAxiPmon_Config XAxiPmon_ConfigTable[XPAR_XAXIPMON_NUM_INSTANCES] = { { XPAR_PSU_APM_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_hw.h index 68ed57aaf..b5d20f57f 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_hw.h @@ -33,7 +33,7 @@ /** * * @file xaxipmon_hw.h -* @addtogroup axipmon_v6_3 +* @addtogroup axipmon_v6_6 * @{ * * This header file contains identifiers and basic driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_selftest.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_selftest.c index df2a9da66..7a6679140 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_selftest.c @@ -33,7 +33,7 @@ /** * * @file xaxipmon_selftest.c -* @addtogroup axipmon_v6_3 +* @addtogroup axipmon_v6_6 * @{ * * This file contains a diagnostic self test function for the XAxiPmon driver. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_sinit.c index 737d80b48..2494aea8c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_5/src/xaxipmon_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/axipmon_v6_6/src/xaxipmon_sinit.c @@ -33,7 +33,7 @@ /** * * @file xaxipmon_sinit.c -* @addtogroup axipmon_v6_3 +* @addtogroup axipmon_v6_6 * @{ * * This file contains the implementation of the XAxiPmon driver's static diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps.c index 243b3a81b..f852de4e6 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps.c @@ -33,7 +33,7 @@ /** * * @file xcanps.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * Functions in this file are the minimum required functions for the XCanPs diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps.h index b180e37ec..9feb45eea 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps.h @@ -33,7 +33,7 @@ /** * * @file xcanps.h -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * @details * @@ -204,6 +204,8 @@ * Data mismatch while sending data less than 8 bytes. * 3.1 nsk 12/21/15 Updated XCanPs_IntrHandler in xcanps_intr.c to handle * error interrupts correctly. CR#925615 +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_g.c index 4063a44eb..0ed8cd17c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XCanPs_Config XCanPs_ConfigTable[] = +XCanPs_Config XCanPs_ConfigTable[XPAR_XCANPS_NUM_INSTANCES] = { { XPAR_PSU_CAN_1_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_hw.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_hw.c index bbb96120a..7ca2f81eb 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_hw.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_hw.c @@ -33,7 +33,7 @@ /** * * @file xcanps_hw.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains the implementation of the canps interface reset sequence diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_hw.h index 9fe681aaf..30ec68ab9 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_hw.h @@ -33,7 +33,7 @@ /** * * @file xcanps_hw.h -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This header file contains the identifiers and basic driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_intr.c index f6721ca75..715b35eb2 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_intr.c @@ -33,7 +33,7 @@ /** * * @file xcanps_intr.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains functions related to CAN interrupt handling. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_selftest.c index 48a6f4031..26c9fcb68 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xcanps_selftest.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains a diagnostic self-test function for the XCanPs driver. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_sinit.c index 230c429b3..5321669d7 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/canps_v3_2/src/xcanps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xcanps_sinit.c -* @addtogroup canps_v3_0 +* @addtogroup canps_v3_2 * @{ * * This file contains the implementation of the XCanPs driver's static diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_3/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_4/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_4/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_2/src/xcoresightpsdcc.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.c similarity index 92% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_2/src/xcoresightpsdcc.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.c index e999f6f5d..fca26ca2e 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_2/src/xcoresightpsdcc.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2015-2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xcoresightpsdcc.c -* @addtogroup coresightps_dcc_v1_1 +* @addtogroup coresightps_dcc_v1_4 * @{ * * Functions in this file are the minimum required functions for the @@ -51,12 +51,18 @@ * 1.1 kvn 06/12/15 Add support for Zynq Ultrascale+ MP. * kvn 08/18/15 Modified Makefile according to compiler changes. * 1.2 kvn 10/09/15 Add support for IAR Compiler. +* 1.3 asa 07/01/16 Made changes to ensure that the file does not compile +* for MB BSPs. Instead it throws up a warning. This +* fixes the CR#953056. * * * ******************************************************************************/ /***************************** Include Files *********************************/ +#ifdef __MICROBLAZE__ +#warning "The driver is supported only for ARM architecture" +#else #include #include @@ -126,7 +132,7 @@ void XCoresightPs_DccSendByte(u32 BaseAddress, u8 Data) ******************************************************************************/ u8 XCoresightPs_DccRecvByte(u32 BaseAddress) { - u8 Data; + u8 Data = 0U; (void) BaseAddress; while (!(XCoresightPs_DccGetStatus() & XCORESIGHTPS_DCC_STATUS_RX)) @@ -163,7 +169,7 @@ u8 XCoresightPs_DccRecvByte(u32 BaseAddress) ******************************************************************************/ static INLINE u32 XCoresightPs_DccGetStatus(void) { - u32 Status; + u32 Status = 0U; #ifdef __aarch64__ asm volatile ("mrs %0, mdccsr_el0" : "=r" (Status)); @@ -177,5 +183,6 @@ static INLINE u32 XCoresightPs_DccGetStatus(void) } #endif return Status; +#endif } /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_2/src/xcoresightpsdcc.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.h similarity index 91% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_2/src/xcoresightpsdcc.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.h index 6bab7ae09..67959e327 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/coresightps_dcc_v1_2/src/xcoresightpsdcc.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/coresightps_dcc_v1_4/src/xcoresightpsdcc.h @@ -33,7 +33,7 @@ /** * * @file xcoresightpsdcc.h -* @addtogroup coresightps_dcc_v1_1 +* @addtogroup coresightps_dcc_v1_4 * @{ * @details * @@ -55,16 +55,20 @@ * 1.00 kvn 02/14/15 First release * 1.1 kvn 06/12/15 Add support for Zynq Ultrascale+ MP. * kvn 08/18/15 Modified Makefile according to compiler changes. +* 1.3 asa 07/01/16 Made changes to ensure that the file does not compile +* for MB BSPs. Instead it throws up a warning. This +* fixes the CR#953056. * * * ******************************************************************************/ /***************************** Include Files *********************************/ - +#ifndef __MICROBLAZE__ #include void XCoresightPs_DccSendByte(u32 BaseAddress, u8 Data); u8 XCoresightPs_DccRecvByte(u32 BaseAddress); +#endif /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_1/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_4/src/Makefile similarity index 78% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_4/src/Makefile index 648f83a29..747826397 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_1/src/Makefile +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_4/src/Makefile @@ -10,7 +10,7 @@ INCLUDEDIR=../../../include INCLUDES=-I${INCLUDEDIR} OUTS = *.o - +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) LIBSOURCES=*.c INCLUDEFILES=*.h @@ -20,3 +20,6 @@ libs: .PHONY: include include: ${CP} $(INCLUDEFILES) $(INCLUDEDIR) + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_1/src/xcpu_cortexr5.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_4/src/xcpu_cortexr5.h similarity index 86% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_1/src/xcpu_cortexr5.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_4/src/xcpu_cortexr5.h index 7b21dcd21..108dc7ed7 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_1/src/xcpu_cortexr5.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/cpu_cortexr5_v1_4/src/xcpu_cortexr5.h @@ -33,11 +33,16 @@ /** * * @file xcpu_cortexr5.h -* @addtogroup cpu_cortexr5_v1_1 +* @addtogroup cpu_cortexr5_v1_4 * @{ * @details * * dummy file +* MODIFICATION HISTORY: * +* Ver Who Date Changes +* ----- ---- -------- --------------------------------------------------------- +* 1.4 ms 04/18/17 Modified tcl file to add suffix U for XPAR_CPU_ID +* parameter of cpu_cortexr5 in xparameters.h ******************************************************************************/ /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma.c index 4ed4dd60b..9aa4beedb 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014-2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,7 +34,7 @@ /** * * @file xcsudma.c -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * * This file contains the implementation of the interface functions for CSU_DMA @@ -188,6 +188,80 @@ void XCsuDma_Transfer(XCsuDma *InstancePtr, XCsuDma_Channel Channel, } } +/*****************************************************************************/ +/** +* +* This function sets the starting address and amount(size) of the data to be +* transfered from/to the memory through the AXI interface. +* This function is useful for pmu processor when it wishes to do +* a 64-bit DMA transfer. +* +* @param InstancePtr is a pointer to XCsuDma instance to be worked on. +* @param Channel represents the type of channel either it is Source or +* Destination. +* Source channel - XCSUDMA_SRC_CHANNEL +* Destination Channel - XCSUDMA_DST_CHANNEL +* @param AddrLow is a 32 bit variable which holds the starting lower address of +* data which needs to write into the memory(DST) (or read from +* the memory(SRC)). +* @param AddrHigh is a 32 bit variable which holds the higher address of data +* which needs to write into the memory(DST) (or read from +* the memroy(SRC)). +* @param Size is a 32 bit variable which represents the number of 4 byte +* words needs to be transfered from starting address. +* @param EnDataLast is to trigger an end of message. It will enable or +* disable data_inp_last signal to stream interface when current +* command is completed. It is applicable only to source channel +* and neglected for destination channel. +* - 1 - Asserts data_inp_last signal. +* - 0 - data_inp_last will not be asserted. +* +* @return None. +* +* @note Data_inp_last signal is asserted simultaneously with the +* data_inp_valid signal associated with the final 32-bit word +* transfer +* This API won't do flush/invalidation for the DMA buffer. +* It is recommened to call this API only through PMU processor. +* +******************************************************************************/ +void XCsuDma_64BitTransfer(XCsuDma *InstancePtr, XCsuDma_Channel Channel, + u32 AddrLow, u32 AddrHigh, u32 Size, u8 EnDataLast) +{ + /* Verify arguments */ + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid((Channel == (XCSUDMA_SRC_CHANNEL)) || + (Channel == (XCSUDMA_DST_CHANNEL))); + Xil_AssertVoid(Size <= (u32)(XCSUDMA_SIZE_MAX)); + Xil_AssertVoid(InstancePtr->IsReady == (u32)(XIL_COMPONENT_IS_READY)); + + + XCsuDma_WriteReg(InstancePtr->Config.BaseAddress, + ((u32)(XCSUDMA_ADDR_OFFSET) + + ((u32)Channel * (u32)(XCSUDMA_OFFSET_DIFF))), + (AddrLow & XCSUDMA_ADDR_MASK)); + + XCsuDma_WriteReg(InstancePtr->Config.BaseAddress, + ((u32)(XCSUDMA_ADDR_MSB_OFFSET) + + ((u32)Channel * (u32)(XCSUDMA_OFFSET_DIFF))), + (AddrHigh & XCSUDMA_MSB_ADDR_MASK)); + + if (EnDataLast == (u8)(XCSUDMA_LAST_WORD_MASK)) { + XCsuDma_WriteReg(InstancePtr->Config.BaseAddress, + ((u32)(XCSUDMA_SIZE_OFFSET) + + ((u32)Channel * (u32)(XCSUDMA_OFFSET_DIFF))), + ((Size << (u32)(XCSUDMA_SIZE_SHIFT)) | + (u32)(XCSUDMA_LAST_WORD_MASK))); + } + else { + XCsuDma_WriteReg(InstancePtr->Config.BaseAddress, + ((u32)(XCSUDMA_SIZE_OFFSET) + + ((u32)Channel * (u32)(XCSUDMA_OFFSET_DIFF))), + (Size << (u32)(XCSUDMA_SIZE_SHIFT))); + } +} + +/*****************************************************************************/ /*****************************************************************************/ /** * diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma.h similarity index 95% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma.h index 03a32c1ce..fc675a13c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014-2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -82,7 +82,7 @@ * to build and link only those parts of the driver that are necessary. * * @file xcsudma.h -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * @details * @@ -99,6 +99,13 @@ * 1.0 vnsld 22/10/14 First release * 1.1 adk 10/05/16 Fixed CR#951040 race condition in the recv path when * source and destination points to the same buffer. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/10/17 Modified filename tag in xcsudma_selftest_example.c to +* include the file in doxygen examples. +* 1.2 adk 11/22/17 Added peripheral test app support for CSUDMA driver. +* adk 09/03/18 Added new API XCsuDma_64BitTransfer() useful for 64-bit +* dma transfers through PMU processor(CR#996201). * * ******************************************************************************/ @@ -373,6 +380,8 @@ s32 XCsuDma_CfgInitialize(XCsuDma *InstancePtr, XCsuDma_Config *CfgPtr, u32 EffectiveAddr); void XCsuDma_Transfer(XCsuDma *InstancePtr, XCsuDma_Channel Channel, UINTPTR Addr, u32 Size, u8 EnDataLast); +void XCsuDma_64BitTransfer(XCsuDma *InstancePtr, XCsuDma_Channel Channel, + u32 AddrLow, u32 AddrHigh, u32 Size, u8 EnDataLast); void XCsuDma_LoopBackTransfer(XCsuDma *InstancePtr, u64 SrcAddr, u64 DstAddr, u32 Size); u64 XCsuDma_GetAddr(XCsuDma *InstancePtr, XCsuDma_Channel Channel); diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_g.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_g.c index 09e7f739a..1c2317e8e 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XCsuDma_Config XCsuDma_ConfigTable[] = +XCsuDma_Config XCsuDma_ConfigTable[XPAR_XCSUDMA_NUM_INSTANCES] = { { XPAR_PSU_CSUDMA_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_hw.h index 6b2c2cdb8..031c13458 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_hw.h @@ -33,7 +33,7 @@ /** * * @file xcsudma_hw.h -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * * This header file contains identifiers and register-level driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_intr.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_intr.c index 9f37e4582..b45d6cf29 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_intr.c @@ -34,7 +34,7 @@ /** * * @file xcsudma_intr.c -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * * This file contains interrupt related functions of Xilinx CSU_DMA core. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_selftest.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_selftest.c index f61910fd4..00f35e145 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/csudma_v1_1/src/xcsudma_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_selftest.c @@ -34,7 +34,7 @@ /** * * @file xcsudma_selftest.c -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * * This file contains a diagnostic self-test function for the CSU_DMA driver. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_sinit.c index 10e5c14f6..be962e298 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_1/src/xcsudma_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/csudma_v1_2/src/xcsudma_sinit.c @@ -34,7 +34,7 @@ /** * * @file xcsudma_sinit.c -* @addtogroup csudma_v1_0 +* @addtogroup csudma_v1_2 * @{ * * This file contains static initialization methods for Xilinx CSU_DMA core. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ddrcpsu_v1_1/src/xddrcpsu.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ddrcpsu_v1_1/src/xddrcpsu.h index 2640a9462..412f335e4 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ddrcpsu_v1_1/src/xddrcpsu.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ddrcpsu_v1_1/src/xddrcpsu.h @@ -18,15 +18,14 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Except as contained in this notice, the name of the Xilinx shall not be used * in advertising or otherwise to promote the sale, use or other dealings in - * in advertising or otherwise to promote the sale, use or other dealings in * this Software without prior written authorization from Xilinx. * *******************************************************************************/ @@ -34,7 +33,7 @@ /** * * @file xddcrpsu.h - * @addtogroup ddrcpsu_v1_0 + * @addtogroup ddrcpsu_v1_1 * @{ * @details * diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/Makefile new file mode 100644 index 000000000..f5944f9d2 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/Makefile @@ -0,0 +1,40 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +CC_FLAGS = $(COMPILER_FLAGS) +ECC_FLAGS = $(EXTRA_COMPILER_FLAGS) + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +OUTS = *.o + +LIBSOURCES:=*.c +INCLUDEFILES:=*.h + +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) + +libs: banner dpdma_libs clean + +%.o: %.c + ${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) -o $@ $< + +banner: + echo "Compiling dpdma" + +dpdma_libs: ${OBJECTS} + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} + +.PHONY: include +include: dpdma_includes + +dpdma_includes: + ${CP} ${INCLUDEFILES} ${INCLUDEDIR} + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma.c new file mode 100644 index 000000000..92eaad2cd --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma.c @@ -0,0 +1,966 @@ +/****************************************************************************** +* +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* + +*******************************************************************************/ +/*****************************************************************************/ +/** + * + * @file xdpdma.c + * + * This file contains the implementation of the interface functions of the + * XDpDma driver. Refer to xdpdma.h for detailed information. + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver	Who   Date     Changes
      + * ---- ----- -------- ----------------------------------------------------
      + * 1.0  aad   04/12/16 Initial release.
      + *
      + *****************************************************************************/
      +
      +/***************************** Include Files **********************************/
      +#include "xdpdma.h"
      +#include "xavbuf.h"
      +
      +/************************** Constant Definitions ******************************/
      +#define XDPDMA_CH_OFFSET		0x100
      +#define XDPDMA_WAIT_TIMEOUT		10000
      +
      +#define XDPDMA_AUDIO_ALIGNMENT		128
      +
      +#define XDPDMA_VIDEO_CHANNEL0		0
      +#define XDPDMA_VIDEO_CHANNEL1		1
      +#define XDPDMA_VIDEO_CHANNEL2		2
      +#define XDPDMA_GRAPHICS_CHANNEL		3
      +#define XDPDMA_AUDIO_CHANNEL0		4
      +#define XDPDMA_AUDIO_CHANNEL1		5
      +
      +#define XDPDMA_DESC_PREAMBLE		0xA5
      +#define XDPDMA_DESC_IGNR_DONE		0x400
      +#define XDPDMA_DESC_UPDATE		0x200
      +#define XDPDMA_DESC_COMP_INTR		0x100
      +#define XDPDMA_DESC_LAST_FRAME		0x200000
      +#define XDPDMA_DESC_DONE_SHIFT		31
      +#define XDPDMA_QOS_MIN			4
      +#define XDPDMA_QOS_MAX			11
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function returns the number of outstanding transactions on a given
      + * channel.
      + *
      + * @param    InstancePtr is a pointer to the driver instance.
      + * @param    ChannelNum is the channel number on which the operation is
      + *	     being carried out.
      + *
      + * @return   Number of pending transactions.
      + *
      + * @note     None.
      + *
      + * **************************************************************************/
      +static int XDpDma_GetPendingTransaction(XDpDma *InstancePtr, u32 ChannelNum)
      +{
      +	u32 RegVal;
      +	RegVal = XDpDma_ReadReg(InstancePtr->Config.BaseAddr,
      +				XDPDMA_CH0_STATUS + 0x100 * ChannelNum);
      +	return (RegVal & XDPDMA_CH_STATUS_OTRAN_CNT_MASK);
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function waits until the outstanding transactions are completed.
      + *
      + * @param    InstancePtr is a pointer to the driver instance.
      + * @param    ChannelNum is the channel number on which the operation is
      + *	     being carried out.
      + *
      + * @return   XST_SUCCESS when all the pending transactions are complete
      + *	     before timeout.
      + *	     XST_FAILURE if timeout occurs before pending transactions are
      + *	     completed.
      + *
      + * @note     None.
      + *
      + * **************************************************************************/
      +static int XDpDma_WaitPendingTransaction(XDpDma *InstancePtr, u8 ChannelNum)
      +{
      +	/* Verify arguments. */
      +	Xil_AssertNonvoid(InstancePtr != NULL);
      +	Xil_AssertNonvoid(ChannelNum <= XDPDMA_AUDIO_CHANNEL1);
      +
      +	u32 Timeout = 0;
      +	u32 Count;
      +	do {
      +		Count = XDpDma_GetPendingTransaction(InstancePtr, ChannelNum);
      +		Timeout++;
      +	} while((Timeout != XDPDMA_WAIT_TIMEOUT) && Count);
      +
      +	if(Timeout ==  XDPDMA_WAIT_TIMEOUT) {
      +		return XST_FAILURE;
      +	}
      +
      +	return XST_SUCCESS;
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function controls the hardware channels of the DPDMA.
      + *
      + *
      + * @param    InstancePtr is a pointer to the driver instance.
      + * @param    ChannelNum is the physical channel number of the DPDMA.
      + * @param    ChannelState is an enum of type XDpDma_ChannelState.
      + *
      + * @return   XST_SUCCESS when the mentioned channel is enabled successfully.
      + *	     XST_FAILURE when the mentioned channel fails to be enabled.
      + *
      + * @note     None.
      + *
      + * **************************************************************************/
      +static int XDpDma_ConfigChannelState(XDpDma *InstancePtr, u8 ChannelNum,
      +				     XDpDma_ChannelState Enable)
      +{
      +	u32 Mask = 0;
      +	u32 RegVal = 0;
      +	u32 Status = 0;
      +	/* Verify arguments. */
      +	Xil_AssertNonvoid(InstancePtr != NULL);
      +	Xil_AssertNonvoid(ChannelNum <= XDPDMA_AUDIO_CHANNEL1);
      +
      +	Mask = XDPDMA_CH_CNTL_EN_MASK | XDPDMA_CH_CNTL_PAUSE_MASK;
      +	switch(Enable) {
      +		case XDPDMA_ENABLE:
      +			RegVal = XDPDMA_CH_CNTL_EN_MASK;
      +			break;
      +		case XDPDMA_DISABLE:
      +			XDpDma_ConfigChannelState(InstancePtr, ChannelNum,
      +						  XDPDMA_PAUSE);
      +			Status = XDpDma_WaitPendingTransaction(InstancePtr,
      +							       ChannelNum);
      +			if(Status == XST_FAILURE) {
      +				return XST_FAILURE;
      +			}
      +
      +			RegVal = XDPDMA_DISABLE;
      +			Mask = XDPDMA_CH_CNTL_EN_MASK;
      +			break;
      +		case XDPDMA_IDLE:
      +			Status = XDpDma_ConfigChannelState(InstancePtr,
      +							   ChannelNum,
      +							   XDPDMA_DISABLE);
      +			if(Status == XST_FAILURE) {
      +				return XST_FAILURE;
      +			}
      +
      +			RegVal = 0;
      +			break;
      +		case XDPDMA_PAUSE:
      +			RegVal = XDPDMA_PAUSE;
      +			break;
      +	}
      +	XDpDma_ReadModifyWrite(InstancePtr->Config.BaseAddr,
      +			       XDPDMA_CH0_CNTL + XDPDMA_CH_OFFSET * ChannelNum,
      +			       RegVal, Mask);
      +	return XST_SUCCESS;
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function updates the descriptor that is not currently active on a
      + * Video/Graphics channel.
      + *
      + * @param    InstancePtr is a pointer to the driver instance.
      + * @param    Channel is a pointer to the channel on which the operation is
      + *	     to be carried out.
      + *
      + * @return   Descriptor for next operation.
      + *
      + * @note     None.
      + *
      + * **************************************************************************/
      +static XDpDma_Descriptor *XDpDma_UpdateVideoDescriptor(XDpDma_Channel *Channel)
      +{
      +	if(Channel->Current == NULL) {
      +		Channel->Current = &Channel->Descriptor0;
      +	}
      +	else if(Channel->Current == &Channel->Descriptor0) {
      +		Channel->Current = &Channel->Descriptor1;
      +	}
      +	else if(Channel->Current == &Channel->Descriptor1) {
      +		Channel->Current = &Channel->Descriptor0;
      +	}
      +	return Channel->Current;
      +}
      +
      +/*************************************************************************/
      +/**
      + * This function programs the address of the descriptor about to be active
      + *
      + * @param    InstancePtr is a pointer to the DPDMA instance.
      + * @param    Channel is an enum of the channel for which the descriptor
      + *	     address is to be set.
      + *
      + * @return   Descriptor for next operation.
      + *
      + * @note     None.
      + *
      + * **************************************************************************/
      +static void XDpDma_SetDescriptorAddress(XDpDma *InstancePtr, u8 ChannelNum)
      +{
      +	u32 AddrOffset;
      +	u32 AddrEOffset;
      +	Xil_AssertVoid(ChannelNum <= XDPDMA_AUDIO_CHANNEL1);
      +	AddrOffset = XDPDMA_CH0_DSCR_STRT_ADDR +
      +					(XDPDMA_CH_OFFSET * ChannelNum);
      +	AddrEOffset = XDPDMA_CH0_DSCR_STRT_ADDRE +
      +					(XDPDMA_CH_OFFSET * ChannelNum);
      +
      +	XDpDma_Descriptor *Descriptor = NULL;
      +	switch(ChannelNum) {
      +	case XDPDMA_VIDEO_CHANNEL0:
      +		Descriptor = InstancePtr->Video.Channel[ChannelNum].Current;
      +		break;
      +	case XDPDMA_VIDEO_CHANNEL1:
      +		Descriptor = InstancePtr->Video.Channel[ChannelNum].Current;
      +		break;
      +	case XDPDMA_VIDEO_CHANNEL2:
      +		Descriptor = InstancePtr->Video.Channel[ChannelNum].Current;
      +		break;
      +	case XDPDMA_GRAPHICS_CHANNEL:
      +		Descriptor = InstancePtr->Gfx.Channel.Current;
      +		break;
      +	case XDPDMA_AUDIO_CHANNEL0:
      +		Descriptor = InstancePtr->Audio[0].Current;
      +		break;
      +	case XDPDMA_AUDIO_CHANNEL1:
      +		Descriptor = InstancePtr->Audio[1].Current;
      +		break;
      +	}
      +
      +	XDpDma_WriteReg(InstancePtr->Config.BaseAddr, AddrEOffset,
      +			(INTPTR) Descriptor >> 32);
      +	XDpDma_WriteReg(InstancePtr->Config.BaseAddr, AddrOffset,
      +			(INTPTR) Descriptor);
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This functions sets the Audio Descriptor for Data Transfer.
      + *
      + * @param    CurrDesc is a pointer to the descriptor to be initialized
      + * @param    DataSize is the payload size of the buffer to be transferred
      + * @param    BuffAddr is the payload address
      + *
      + * @return   None.
      + *
      + * @note     None.
      + *
      + * **************************************************************************/
      +static void XDpDma_SetupAudioDescriptor(XDpDma_Descriptor *CurrDesc,
      +					u64 DataSize, u64 BuffAddr,
      +					XDpDma_Descriptor *NextDesc)
      +{
      +	Xil_AssertVoid(CurrDesc != NULL);
      +	Xil_AssertVoid(DataSize != 0);
      +	Xil_AssertVoid(BuffAddr != 0);
      +
      +	if(NextDesc == NULL) {
      +		CurrDesc->Control = XDPDMA_DESC_PREAMBLE |
      +			XDPDMA_DESC_UPDATE | XDPDMA_DESC_IGNR_DONE |
      +			XDPDMA_DESC_COMP_INTR;
      +
      +	}
      +	else {
      +		CurrDesc->Control = XDPDMA_DESC_PREAMBLE |
      +			XDPDMA_DESC_UPDATE | XDPDMA_DESC_IGNR_DONE;
      +	}
      +	CurrDesc->DSCR_ID = 0;
      +	CurrDesc->XFER_SIZE = DataSize;
      +	CurrDesc->LINE_SIZE_STRIDE = 0;
      +	CurrDesc->LSB_Timestamp = 0;
      +	CurrDesc->MSB_Timestamp = 0;
      +	CurrDesc->ADDR_EXT = ((BuffAddr >> XDPDMA_DESCRIPTOR_SRC_ADDR_WIDTH) <<
      +			      XDPDMA_DESCRIPTOR_ADDR_EXT_SRC_ADDR_EXT_SHIFT) |
      +			     ((INTPTR) NextDesc >>
      +			      XDPDMA_DESCRIPTOR_NEXT_DESR_WIDTH);
      +	CurrDesc->NEXT_DESR = (INTPTR) NextDesc;
      +	CurrDesc->SRC_ADDR =  BuffAddr;
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This functions retrieves the configuration for this DPDMA driver and
      + * fills in the InstancePtr->Config structure.
      + *
      + * @param    InstancePtr is a pointer to the driver instance.
      + * @param    ConfigPtr is a pointer to the configuration structure that will
      + *           be used to copy the settings from.
      + *
      + * @return   None.
      + *
      + * @note     None.
      + *
      + * **************************************************************************/
      +void XDpDma_CfgInitialize(XDpDma *InstancePtr, XDpDma_Config *CfgPtr)
      +{
      +	InstancePtr->Config.DeviceId = CfgPtr->DeviceId;
      +	InstancePtr->Config.BaseAddr = CfgPtr->BaseAddr;
      +
      +	InstancePtr->Video.Channel[XDPDMA_VIDEO_CHANNEL0].Current = NULL;
      +	InstancePtr->Video.Channel[XDPDMA_VIDEO_CHANNEL1].Current = NULL;
      +	InstancePtr->Video.Channel[XDPDMA_VIDEO_CHANNEL2].Current = NULL;
      +	InstancePtr->Video.TriggerStatus = XDPDMA_TRIGGER_DONE;
      +	InstancePtr->Video.VideoInfo = NULL;
      +	InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL0] = NULL;
      +	InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL1] = NULL;
      +	InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL2] = NULL;
      +
      +	InstancePtr->Gfx.Channel.Current = NULL;
      +	InstancePtr->Gfx.TriggerStatus = XDPDMA_TRIGGER_DONE;
      +	InstancePtr->Gfx.VideoInfo = NULL;
      +	InstancePtr->Gfx.FrameBuffer = NULL;
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This functions controls the states in which a channel should go into.
      + *
      + * @param    InstancePtr is a pointer to the driver instance.
      + * @param    ChannelType is an enum of XDpDma_ChannelType.
      + * @param    ChannelState is an enum of type XDpDma_ChannelState.
      + *
      + * @return   XST_SUCCESS when the mentioned channel is enabled successfully.
      + *	     XST_FAILURE when the mentioned channel fails to be enabled.
      + *
      + * @note     None.
      + *
      + * **************************************************************************/
      +int XDpDma_SetChannelState(XDpDma *InstancePtr, XDpDma_ChannelType Channel,
      +					XDpDma_ChannelState ChannelState)
      +{
      +	u32 Index = 0;
      +	u32 NumPlanes = 0;
      +	u32 Status = 0;
      +	/* Verify arguments. */
      +	Xil_AssertNonvoid(InstancePtr != NULL);
      +
      +	switch(Channel) {
      +	case VideoChan:
      +		if(InstancePtr->Video.VideoInfo == NULL) {
      +			return XST_FAILURE;
      +		}
      +		else {
      +			NumPlanes = InstancePtr->Video.VideoInfo->Mode;
      +			for(Index = 0; Index <= NumPlanes; Index++) {
      +				Status = XDpDma_ConfigChannelState(InstancePtr,
      +								Index,
      +								ChannelState);
      +				if(Status == XST_FAILURE) {
      +					return XST_FAILURE;
      +				}
      +			}
      +		}
      +		break;
      +	case GraphicsChan:
      +		if(InstancePtr->Gfx.VideoInfo == NULL) {
      +			return XST_FAILURE;
      +		}
      +		else {
      +			return	XDpDma_ConfigChannelState(InstancePtr,
      +					      XDPDMA_GRAPHICS_CHANNEL,
      +					      ChannelState);
      +		}
      +		break;
      +	case AudioChan0:
      +		return	XDpDma_ConfigChannelState(InstancePtr,
      +						  XDPDMA_AUDIO_CHANNEL0,
      +						  ChannelState);
      +		break;
      +	case AudioChan1:
      +		return XDpDma_ConfigChannelState(InstancePtr,
      +						 XDPDMA_AUDIO_CHANNEL1,
      +						 ChannelState);
      +		break;
      +	default:
      +		return XST_FAILURE;
      +		break;
      +	}
      +
      +	return XST_SUCCESS;
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function allocates DPDMA Video Channels depending on the number of
      + * planes in the video
      + *
      + * @param	InstancePtr is a pointer to the driver instance.
      + * @params	Format is the video format to be used for the DPDMA transfer
      + *
      + * @return	XST_SUCCESS, When the format is valid Video Format.
      + *		XST_FAILURE, When the format is not valid Video Format
      + *
      + * @note	None.
      + *
      + * **************************************************************************/
      +int XDpDma_SetVideoFormat(XDpDma *InstancePtr, XAVBuf_VideoFormat Format)
      +{
      +	/* Verify arguments. */
      +	Xil_AssertNonvoid(InstancePtr != NULL);
      +
      +	InstancePtr->Video.VideoInfo = XAVBuf_GetNLiveVideoAttribute(Format);
      +	if(InstancePtr->Video.VideoInfo == NULL) {
      +		return XST_FAILURE;
      +	}
      +
      +	return XST_SUCCESS;
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function allocates DPDMA Graphics Channels.
      + *
      + * @param	InstancePtr is a pointer to the driver instance.
      + * @params	Format is the video format to be used for the DPDMA transfer
      + *
      + * @return	XST_SUCCESS, When the format is a valid Graphics Format.
      + *		XST_FAILURE, When the format is not valid Graphics Format.
      + *
      + * @note	None.
      + *
      + * **************************************************************************/
      +int XDpDma_SetGraphicsFormat(XDpDma *InstancePtr, XAVBuf_VideoFormat Format)
      +{
      +
      +	/* Verify arguments. */
      +	Xil_AssertNonvoid(InstancePtr != NULL);
      +
      +	InstancePtr->Gfx.VideoInfo = XAVBuf_GetNLGraphicsAttribute(Format);
      +	if(InstancePtr->Gfx.VideoInfo == NULL) {
      +		return XST_FAILURE;
      +	}
      +
      +	return XST_SUCCESS;
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function starts the operation on the a given channel
      + *
      + * @param    InstancePtr is a pointer to the driver instance.
      + * @param    QOS is the Quality of Service value to be selected.
      + *
      + * @return   None.
      + *
      + * @note     .
      + *
      + * **************************************************************************/
      +void XDpDma_SetQOS(XDpDma *InstancePtr, u8 QOS)
      +{
      +	u8 Index;
      +	u32 RegVal = 0;
      +
      +	Xil_AssertVoid(QOS >= XDPDMA_QOS_MIN && QOS <= XDPDMA_QOS_MAX);
      +
      +	RegVal = ((QOS << XDPDMA_CH_CNTL_QOS_DATA_RD_SHIFT) |
      +		   (QOS << XDPDMA_CH_CNTL_QOS_DSCR_RD_SHIFT) |
      +		   (QOS << XDPDMA_CH_CNTL_QOS_DSCR_WR_SHIFT));
      +
      +	u32 Mask = XDPDMA_CH_CNTL_QOS_DATA_RD_MASK |
      +		XDPDMA_CH_CNTL_QOS_DSCR_RD_MASK |
      +		XDPDMA_CH_CNTL_QOS_DSCR_WR_MASK;
      +
      +	for(Index = 0; Index <= XDPDMA_AUDIO_CHANNEL1; Index++) {
      +		XDpDma_ReadModifyWrite(InstancePtr->Config.BaseAddr,
      +				XDPDMA_CH0_CNTL + (XDPDMA_CH_OFFSET * Index),
      +			        RegVal, Mask);
      +	}
      +
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function Triggers DPDMA to start the transaction.
      + *
      + * @param	InstancePtr is a pointer to the XDpDma instance.
      + * @param	Channel is the XDpDma_ChannelType on which the transaction
      + *		is to be triggered.
      + *
      + * @return	XST_SUCCESS The channel has successfully been Triggered.
      + *		XST_FAILURE When the triggering Video and Graphics channel
      + *		without setting the Video Formats.
      + *
      + * @note	None.
      + *
      + * **************************************************************************/
      +int XDpDma_Trigger(XDpDma *InstancePtr, XDpDma_ChannelType Channel)
      +{
      +	u32 Trigger = 0;
      +	u8 Index = 0;
      +	u8 NumPlanes = 0;
      +	switch(Channel) {
      +	case VideoChan:
      +		if(InstancePtr->Video.VideoInfo == NULL) {
      +			return XST_FAILURE;
      +		}
      +		else {
      +			NumPlanes = InstancePtr->Video.VideoInfo->Mode;
      +			for(Index = 0; Index <= NumPlanes; Index++) {
      +				Trigger |= XDPDMA_GBL_TRG_CH0_MASK << Index;
      +				InstancePtr->Video.TriggerStatus =
      +					XDPDMA_TRIGGER_DONE;
      +			}
      +		}
      +		break;
      +	case GraphicsChan:
      +		if(InstancePtr->Gfx.VideoInfo == NULL) {
      +			return XST_FAILURE;
      +		}
      +		Trigger = XDPDMA_GBL_TRG_CH3_MASK;
      +		InstancePtr->Gfx.TriggerStatus = XDPDMA_TRIGGER_DONE;
      +		break;
      +	case AudioChan0:
      +		Trigger = XDPDMA_GBL_TRG_CH4_MASK;
      +		InstancePtr->Audio[0].TriggerStatus = XDPDMA_TRIGGER_DONE;
      +		break;
      +	case AudioChan1:
      +		Trigger = XDPDMA_GBL_TRG_CH5_MASK;
      +		InstancePtr->Audio[1].TriggerStatus = XDPDMA_TRIGGER_DONE;
      +		break;
      +	}
      +	XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_GBL, Trigger);
      +
      +	return XST_SUCCESS;
      +
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function Retriggers DPDMA to fetch data from new descriptor.
      + *
      + * @param	InstancePtr is a pointer to the XDpDma instance.
      + * @param	Channel is the XDpDma_ChannelType on which the transaction
      + *		is to be retriggered.
      + *
      + * @return	XST_SUCCESS The channel has successfully been Triggered.
      + *		XST_FAILURE When the triggering Video and Graphics channel
      + *		without setting the Video Formats.
      + *
      + * @note	None.
      + *
      + * **************************************************************************/
      +int XDpDma_ReTrigger(XDpDma *InstancePtr, XDpDma_ChannelType Channel)
      +{
      +	u32 Trigger = 0;
      +	u8 NumPlanes;
      +	u8 Index;
      +	switch(Channel) {
      +	case VideoChan:
      +		if(InstancePtr->Video.VideoInfo == NULL) {
      +			return XST_FAILURE;
      +		}
      +		else {
      +			NumPlanes = InstancePtr->Video.VideoInfo->Mode;
      +			for(Index = 0; Index <= NumPlanes; Index++) {
      +				Trigger |= XDPDMA_GBL_RTRG_CH0_MASK << Index;
      +				InstancePtr->Video.TriggerStatus =
      +					XDPDMA_RETRIGGER_DONE;
      +			}
      +		}
      +		break;
      +	case GraphicsChan:
      +		if(InstancePtr->Gfx.VideoInfo == NULL) {
      +			return XST_FAILURE;
      +		}
      +		Trigger = XDPDMA_GBL_RTRG_CH3_MASK;
      +		InstancePtr->Gfx.TriggerStatus = XDPDMA_RETRIGGER_DONE;
      +		break;
      +	case AudioChan0:
      +		Trigger = XDPDMA_GBL_RTRG_CH4_MASK;
      +		InstancePtr->Audio[0].TriggerStatus = XDPDMA_RETRIGGER_DONE;
      +		break;
      +	case AudioChan1:
      +		Trigger = XDPDMA_GBL_RTRG_CH5_MASK;
      +		InstancePtr->Audio[1].TriggerStatus = XDPDMA_RETRIGGER_DONE;
      +		break;
      +	}
      +	XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_GBL, Trigger);
      +
      +	return XST_SUCCESS;
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function intializes Video Descriptor for Video and Graphics channel
      + *
      + * @param    Channel is a pointer to the current Descriptor of Video or
      + *	     Graphics Channel.
      + * @param    FrameBuffer is a pointer to the Frame Buffer structure
      + *
      + * @return   None.
      + *
      + * @note     None.
      + *
      + * **************************************************************************/
      +void XDpDma_InitVideoDescriptor(XDpDma_Descriptor *CurrDesc,
      +				XDpDma_FrameBuffer *FrameBuffer)
      +{
      +	Xil_AssertVoid(CurrDesc != NULL);
      +	Xil_AssertVoid(FrameBuffer != NULL);
      +	Xil_AssertVoid((FrameBuffer->Stride) % XDPDMA_DESCRIPTOR_ALIGN == 0);
      +	CurrDesc->Control = XDPDMA_DESC_PREAMBLE | XDPDMA_DESC_IGNR_DONE |
      +			    XDPDMA_DESC_LAST_FRAME;
      +	CurrDesc->DSCR_ID = 0;
      +	CurrDesc->XFER_SIZE = FrameBuffer->Size;
      +	CurrDesc->LINE_SIZE_STRIDE = ((FrameBuffer->Stride >> 4) <<
      +				XDPDMA_DESCRIPTOR_LINE_SIZE_STRIDE_SHIFT) |
      +				(FrameBuffer->LineSize);
      +	CurrDesc->ADDR_EXT = (((FrameBuffer->Address >>
      +				XDPDMA_DESCRIPTOR_SRC_ADDR_WIDTH) <<
      +			       XDPDMA_DESCRIPTOR_ADDR_EXT_SRC_ADDR_EXT_SHIFT) |
      +				((INTPTR) CurrDesc >>
      +				 XDPDMA_DESCRIPTOR_NEXT_DESR_WIDTH));
      +	CurrDesc->NEXT_DESR = (INTPTR) CurrDesc;
      +	CurrDesc->SRC_ADDR = FrameBuffer->Address;
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function intializes Descriptors for transactions on Audio Channel
      + *
      + * @param    Channel is a pointer to the XDpDma_AudioChannel instance
      + *
      + * @param    AudioBuffer is a pointer to the Audio Buffer structure
      + *
      + * @return   None.
      + *
      + * @note     None.
      + *
      + * **************************************************************************/
      +void XDpDma_InitAudioDescriptor(XDpDma_AudioChannel *Channel,
      +			       XDpDma_AudioBuffer *AudioBuffer)
      +{
      +	u32 Size;
      +	u64 Address;
      +	Xil_AssertVoid(Channel != NULL);
      +	Xil_AssertVoid(AudioBuffer != NULL);
      +	Xil_AssertVoid((AudioBuffer->Size) % XDPDMA_AUDIO_ALIGNMENT == 0);
      +	Xil_AssertVoid((AudioBuffer->Address) % XDPDMA_AUDIO_ALIGNMENT == 0);
      +
      +	Size = AudioBuffer->Size / 4;
      +	Address = AudioBuffer->Address;
      +	if(Channel->Current == &Channel->Descriptor4) {
      +		XDpDma_SetupAudioDescriptor(&Channel->Descriptor4, Size,
      +					    Address,
      +					    &Channel->Descriptor5);
      +		XDpDma_SetupAudioDescriptor(&Channel->Descriptor5, Size,
      +					    Address + Size,
      +					    &Channel->Descriptor6);
      +		XDpDma_SetupAudioDescriptor(&Channel->Descriptor6, Size,
      +					    Address + (Size * 2),
      +					    &Channel->Descriptor7);
      +		XDpDma_SetupAudioDescriptor(&Channel->Descriptor7, Size,
      +					    Address + (Size * 3), NULL);
      +	}
      +
      +	else if(Channel->Current == &Channel->Descriptor0) {
      +		XDpDma_SetupAudioDescriptor(&Channel->Descriptor0, Size,
      +					    Address,
      +					    &Channel->Descriptor1);
      +		XDpDma_SetupAudioDescriptor(&Channel->Descriptor1, Size,
      +					    Address + Size,
      +					    &Channel->Descriptor2);
      +		XDpDma_SetupAudioDescriptor(&Channel->Descriptor2, Size,
      +					    Address + (Size * 2),
      +					    &Channel->Descriptor3);
      +		XDpDma_SetupAudioDescriptor(&Channel->Descriptor3, Size,
      +					    Address + (Size * 3), NULL);
      +
      +	}
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function sets the next Frame Buffers to be displayed on the Video
      + * Channel.
      + *
      + * @param    InstancePtr is pointer to the instance of DPDMA.
      + * @param    Plane0 is a pointer to the Frame Buffer structure.
      + * @param    Plane1 is a pointer to the Frame Buffer structure.
      + * @param    Plane2 is a pointer to the Frame Buffer structure.
      + *
      + * @return   None.
      + *
      + * @note     For interleaved mode use Plane0.
      + *	     For semi-planar mode use Plane0 and Plane1.
      + *	     For planar mode use Plane0, Plane1 and Plane2
      + *
      + * **************************************************************************/
      +void  XDpDma_DisplayVideoFrameBuffer(XDpDma *InstancePtr,
      +				     XDpDma_FrameBuffer *Plane0,
      +				     XDpDma_FrameBuffer *Plane1,
      +				     XDpDma_FrameBuffer *Plane2)
      +{
      +	u8 NumPlanes;
      +	Xil_AssertVoid(InstancePtr != NULL);
      +	Xil_AssertVoid(InstancePtr->Video.VideoInfo != NULL);
      +
      +	NumPlanes = InstancePtr->Video.VideoInfo->Mode;
      +
      +	switch(NumPlanes) {
      +		case XDPDMA_VIDEO_CHANNEL2:
      +			Xil_AssertVoid(Plane2 != NULL);
      +			InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL2] =
      +				Plane2;
      +		case XDPDMA_VIDEO_CHANNEL1:
      +			Xil_AssertVoid(Plane1 != NULL);
      +			InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL1] =
      +				Plane1;
      +		case XDPDMA_VIDEO_CHANNEL0:
      +			Xil_AssertVoid(Plane0 != NULL);
      +			InstancePtr->Video.FrameBuffer[XDPDMA_VIDEO_CHANNEL0] =
      +				Plane0;
      +			break;
      +	}
      +
      +	if(InstancePtr->Video.Channel[XDPDMA_VIDEO_CHANNEL0].Current == NULL) {
      +		InstancePtr->Video.TriggerStatus = XDPDMA_TRIGGER_EN;
      +	}
      +	else {
      +		InstancePtr->Video.TriggerStatus = XDPDMA_RETRIGGER_EN;
      +	}
      +}
      +
      +/*************************************************************************/
      +/**
      + *
      + * This function sets the next Frame Buffers to be displayed on the Graphics
      + * Channel.
      + *
      + * @param    InstancePtr is pointer to the instance of DPDMA.
      + * @param    Plane is a pointer to the Frame Buffer structure.
      + *
      + * @return   None.
      + *
      + * @note     None.
      + *
      + **************************************************************************/
      +void XDpDma_DisplayGfxFrameBuffer(XDpDma *InstancePtr,
      +				  XDpDma_FrameBuffer *Plane)
      +{
      +	Xil_AssertVoid(InstancePtr != NULL);
      +	Xil_AssertVoid(Plane != NULL);
      +
      +	InstancePtr->Gfx.FrameBuffer = Plane;
      +
      +	if(InstancePtr->Gfx.Channel.Current == NULL) {
      +		InstancePtr->Gfx.TriggerStatus = XDPDMA_TRIGGER_EN;
      +	}
      +	else {
      +		InstancePtr->Gfx.TriggerStatus = XDPDMA_RETRIGGER_EN;
      +	}
      +}
      +/*************************************************************************/
      +/**
      + *
      + * This function sets the next Audio Buffer to be played on Audio Channel 0
      + *
      + * @param    InstancePtr is pointer to the instance of DPDMA.
      + * @param    Buffer is a pointer to the attributes of the Audio information
      + *	     to be played.
      + * @param    ChannelNum selects between Audio Channel 0 and Audio Channel 1
      + *
      + * @return   XST_SUCCESS when the play audio request is successful.
      + *	     XST_FAILURE when the play audio request fails, user has to
      + *	     retry to play the audio.
      + *
      + * @note     The user has to schedule new audio buffer before half the audio
      + *	     information is consumed by DPDMA to have a seamless playback.
      + *
      + **************************************************************************/
      +int XDpDma_PlayAudio(XDpDma *InstancePtr, XDpDma_AudioBuffer *Buffer,
      +		      u8 ChannelNum)
      +{
      +	XDpDma_AudioChannel *Channel;
      +	Xil_AssertNonvoid(InstancePtr != NULL);
      +	Xil_AssertNonvoid(Buffer != NULL);
      +	Xil_AssertNonvoid(Buffer->Size >= 512);
      +	Xil_AssertNonvoid(Buffer->Size % 128 == 0);
      +	Xil_AssertNonvoid(Buffer->Address % 128 == 0);
      +
      +	Channel = &InstancePtr->Audio[ChannelNum];
      +	Channel->Buffer = Buffer;
      +
      +	if(Channel->Current == NULL) {
      +		Channel->TriggerStatus = XDPDMA_TRIGGER_EN;
      +		Channel->Current = &Channel->Descriptor0;
      +		Channel->Used = 0;
      +	}
      +
      +else if(Channel->Current == &Channel->Descriptor0) {
      +		/* Check if descriptor chain can be updated */
      +		if(Channel->Descriptor1.MSB_Timestamp >>
      +		   XDPDMA_DESC_DONE_SHIFT) {
      +			Channel->Current = NULL;
      +			return XST_FAILURE;
      +		}
      +		else if(Channel->Descriptor7.MSB_Timestamp >>
      +			XDPDMA_DESC_DONE_SHIFT || !(Channel->Used)) {
      +			Channel->Descriptor3.Control = XDPDMA_DESC_PREAMBLE |
      +				XDPDMA_DESC_UPDATE | XDPDMA_DESC_IGNR_DONE;
      +			Channel->Descriptor3.NEXT_DESR =
      +				(INTPTR) &Channel->Descriptor4;
      +			Channel->Descriptor3.ADDR_EXT &=
      +				~XDPDMA_DESCRIPTOR_ADDR_EXT_DSC_NXT_MASK;
      +			Channel->Descriptor3.ADDR_EXT |=
      +				(INTPTR) &Channel->Descriptor4 >> 32;
      +			Channel->Current = &Channel->Descriptor4;
      +			Channel->Used = 1;
      +			XDpDma_InitAudioDescriptor(Channel, Buffer);
      +		}
      +		else {
      +			return XST_FAILURE;
      +		}
      +	}
      +
      +	else if(Channel->Current == &Channel->Descriptor4)  {
      +		/* Check if descriptor chain can be updated */
      +		if(Channel->Descriptor5.MSB_Timestamp >>
      +		   XDPDMA_DESC_DONE_SHIFT) {
      +			Channel->Current = NULL;
      +			return XST_FAILURE;
      +		}
      +		else if(Channel->Descriptor3.MSB_Timestamp >>
      +			XDPDMA_DESC_DONE_SHIFT) {
      +			Channel->Descriptor7.Control = XDPDMA_DESC_PREAMBLE |
      +				XDPDMA_DESC_UPDATE | XDPDMA_DESC_IGNR_DONE;
      +			Channel->Descriptor7.NEXT_DESR =
      +				(INTPTR) &Channel->Descriptor0;
      +			Channel->Descriptor7.ADDR_EXT &=
      +				~XDPDMA_DESCRIPTOR_ADDR_EXT_DSC_NXT_MASK;
      +			Channel->Descriptor7.ADDR_EXT |=
      +				(INTPTR) &Channel->Descriptor0 >> 32;
      +			Channel->Current = &Channel->Descriptor0;
      +			XDpDma_InitAudioDescriptor(Channel, Buffer);
      +		}
      +		else {
      +			return XST_FAILURE;
      +		}
      +	}
      +
      +	return XST_SUCCESS;
      +
      +}
      +/*************************************************************************/
      +/**
      + *
      + * This function sets the channel with the latest framebuffer and the
      + * available descriptor for transfer on the next Vsync.
      + *
      + * @param    InstancePtr is pointer to the instance of DPDMA.
      + * @param    Channel indicates which channels are being setup for transfer.
      + *
      + * @return   None.
      + *
      + * @note     None.
      + *
      + **************************************************************************/
      +void XDpDma_SetupChannel(XDpDma *InstancePtr, XDpDma_ChannelType Channel)
      +{
      +	XDpDma_Channel *Chan;
      +	XDpDma_AudioChannel *AudChan;
      +	XDpDma_FrameBuffer *FB;
      +	XDpDma_AudioBuffer *AudioBuffer;
      +	u8 Index, NumPlanes;
      +	Xil_AssertVoid(InstancePtr != NULL);
      +
      +	switch(Channel) {
      +		case VideoChan:
      +			Xil_AssertVoid(InstancePtr->Video.VideoInfo != NULL);
      +			Xil_AssertVoid(InstancePtr->Video.FrameBuffer != NULL);
      +			NumPlanes = InstancePtr->Video.VideoInfo->Mode;
      +			for(Index = 0; Index <= NumPlanes; Index++) {
      +				Chan = &InstancePtr->Video.Channel[Index];
      +				FB = InstancePtr->Video.FrameBuffer[Index];
      +				XDpDma_UpdateVideoDescriptor(Chan);
      +				XDpDma_InitVideoDescriptor(Chan->Current, FB);
      +				XDpDma_SetDescriptorAddress(InstancePtr,
      +							    Index);
      +			}
      +			break;
      +
      +		case GraphicsChan:
      +			Xil_AssertVoid(InstancePtr->Gfx.VideoInfo != NULL);
      +			Xil_AssertVoid(InstancePtr->Gfx.FrameBuffer != NULL);
      +			Chan = &InstancePtr->Gfx.Channel;
      +			FB = InstancePtr->Gfx.FrameBuffer;
      +			XDpDma_UpdateVideoDescriptor(Chan);
      +			XDpDma_InitVideoDescriptor(Chan->Current, FB);
      +			XDpDma_SetDescriptorAddress(InstancePtr,
      +						    XDPDMA_GRAPHICS_CHANNEL);
      +			break;
      +
      +		case AudioChan0:
      +			Xil_AssertVoid(InstancePtr->Audio[0].Buffer != NULL);
      +			AudChan = &InstancePtr->Audio[0];
      +			AudioBuffer = InstancePtr->Audio[0].Buffer;
      +			XDpDma_InitAudioDescriptor(AudChan, AudioBuffer);
      +			XDpDma_SetDescriptorAddress(InstancePtr,
      +						    XDPDMA_AUDIO_CHANNEL0);
      +			break;
      +		case AudioChan1:
      +			Xil_AssertVoid(InstancePtr->Audio[1].Buffer != NULL);
      +			AudChan = &InstancePtr->Audio[1];
      +			AudioBuffer = InstancePtr->Audio[1].Buffer;
      +			XDpDma_InitAudioDescriptor(AudChan, AudioBuffer);
      +			XDpDma_SetDescriptorAddress(InstancePtr,
      +						    XDPDMA_AUDIO_CHANNEL1);
      +			break;
      +	}
      +}
      diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma.h
      new file mode 100644
      index 000000000..95315b058
      --- /dev/null
      +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma.h
      @@ -0,0 +1,283 @@
      +/******************************************************************************
      + *
      + * Copyright (C) 2017 Xilinx, Inc. All rights reserved.
      + *
      + * Permission is hereby granted, free of charge, to any person obtaining a
      + * copy of this software and associated documentation files (the "Software"),
      + * to deal in the Software without restriction, including without limitation
      + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      + * and/or sell copies of the Software, and to permit persons to whom the
      + * Software is furnished to do so, subject to the following conditions:
      + *
      + * The above copyright notice and this permission notice shall be included in
      + * all copies or substantial portions of the Software.
      + *
      + * Use of the Software is limited solely to applications:
      + * (a) running on a Xilinx device, or
      + * (b) that interact with a Xilinx device through a bus or interconnect.
      + *
      + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
      + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
      + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
      + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
      + * SOFTWARE.
      + *
      + * Except as contained in this notice, the name of the Xilinx shall not be used
      + * in advertising or otherwise to promote the sale, use or other dealings in
      + * this Software without prior written authorization from Xilinx.
      + *
      + ******************************************************************************/
      +
      +/*****************************************************************************/
      +/**
      + *
      + * @file xdpdma.h
      + *
      + * This file defines the functions implemented by the DPDMA driver present
      + * in the Zynq Ultrascale MP.
      + *
      + * @note	None.
      + *
      + * 
      + * MODIFICATION HISTORY:
      + *
      + * Ver	Who   Date     Changes
      + * ---- ----- -------- ----------------------------------------------------
      + * 1.0  aad   04/12/16 Initial release.
      + *
      + *****************************************************************************/
      +
      +
      +#ifndef XDPDMA_H_
      +/* Prevent circular inclusions by using protection macros. */
      +#define XDPDMA_H_
      +
      +#ifdef __cplusplus
      +extern "C" {
      +#endif
      +
      +/***************************** Include Files **********************************/
      +
      +#include "xdpdma_hw.h"
      +#include "xvidc.h"
      +#include "xil_io.h"
      +#include "xil_assert.h"
      +#include "xstatus.h"
      +#include "xavbuf.h"
      +/************************** Constant Definitions ******************************/
      +
      +/* Alignment for DPDMA Descriptor and Payload */
      +#define XDPDMA_DESCRIPTOR_ALIGN 256
      +/* DPDMA preamble field */
      +#define XDPDMA_DESCRIPTOR_PREAMBLE 0xA5
      +/**************************** Type Definitions ********************************/
      +
      +/**
      + *  This typedef describes the DPDMA descriptor structure and its internals
      + *  which will be used when fetching data from a nonlive path
      + */
      +typedef struct {
      +	u32 Control;			/**<	[7:0] Descriptor Preamble
      +						[8] Enable completion Interrupt
      +						[9] Enable descriptor update
      +						[10] Ignore Done
      +						[11] AXI burst type
      +						[15:12] AXACHE
      +						[17:16] AXPROT
      +						[18] Descriptor mode
      +						[19] Last Descriptor
      +						[20] Enable CRC
      +						[21] Last descriptor frame
      +						[31:22] Reserved */
      +	u32 DSCR_ID;			/**<	[15:0] Descriptor ID
      +						[31:16] Reserved */
      +	u32 XFER_SIZE;			/**<	Size of transfer in bytes */
      +	u32 LINE_SIZE_STRIDE;		/**<	[17:0] Horizontal Resolution
      +						[31:18] Stride */
      +	u32 LSB_Timestamp;		/**<	LSB of the Timestamp */
      +	u32 MSB_Timestamp;		/**<	MSB of the Timestamp */
      +	u32 ADDR_EXT;			/**<	[15:0] Next descriptor
      +						extenstion
      +						[31:16] SRC address extemsion */
      +	u32 NEXT_DESR;			/**<	Address of next descriptor */
      +	u32 SRC_ADDR;			/**<	Source Address */
      +	u32 ADDR_EXT_23;		/**<	[15:0] Address extension for SRC
      +						Address2
      +						[31:16] Address extension for
      +						SRC Address 3 */
      +	u32 ADDR_EXT_45;		/**<	[15:0] Address extension for SRC
      +						Address4
      +						[31:16] Address extension for
      +						SRC Address 5 */
      +	u32 SRC_ADDR2;			/**<	Source address of 2nd page */
      +	u32 SRC_ADDR3;			/**<	Source address of 3rd page */
      +	u32 SRC_ADDR4;			/**<	Source address of 4th page */
      +	u32 SRC_ADDR5;			/**<	Source address of 5th page */
      +	u32 CRC;			/**<	Reserved */
      +
      +} XDpDma_Descriptor __attribute__ ((aligned(XDPDMA_DESCRIPTOR_ALIGN)));
      +
      +/**
      + * This typedef contains configuration information for the DPDMA.
      + */
      +typedef struct {
      +	u16 DeviceId;			/**< Device ID */
      +	u32 BaseAddr;			/**< Base Address */
      +} XDpDma_Config;
      +
      +/**
      + * The following data structure enumerates the types of
      + * DPDMA channels
      + */
      +typedef enum {
      +	VideoChan,
      +	GraphicsChan,
      +	AudioChan0,
      +	AudioChan1,
      +} XDpDma_ChannelType;
      +
      +/**
      + * This typedef lists the channel status.
      + */
      +typedef enum {
      +	XDPDMA_DISABLE,
      +	XDPDMA_ENABLE,
      +	XDPDMA_IDLE,
      +	XDPDMA_PAUSE
      +} XDpDma_ChannelState;
      +
      +/**
      + * This typedef is the information needed to transfer video info.
      + */
      +typedef struct {
      +	u64 Address;
      +	u32 Size;
      +	u32 Stride;
      +	u32 LineSize;
      +} XDpDma_FrameBuffer;
      +/**
      + * This typedef is the information needed to transfer audio info.
      + */
      +typedef struct {
      +	u64 Address;
      +	u64 Size;
      +} XDpDma_AudioBuffer;
      +
      +/**
      + * This typedef defines the Video/Graphics Channel attributes.
      + */
      +typedef struct {
      +	XDpDma_Descriptor Descriptor0;
      +	XDpDma_Descriptor Descriptor1;
      +	XDpDma_Descriptor *Current;
      +} XDpDma_Channel;
      +
      +/**
      + * This typedef defines the Video Channel attributes.
      + */
      +typedef struct {
      +	XDpDma_Channel Channel[3];
      +	u8 TriggerStatus;
      +	u8 AVBufEn;
      +	XAVBuf_VideoAttribute *VideoInfo;
      +	XDpDma_FrameBuffer *FrameBuffer[3];
      +} XDpDma_VideoChannel;
      +
      +/**
      + * This typedef defines the Graphics Channel attributes.
      + */
      +typedef struct {
      +	XDpDma_Channel Channel;
      +	u8 TriggerStatus;
      +	u8 AVBufEn;
      +	XAVBuf_VideoAttribute *VideoInfo;
      +	XDpDma_FrameBuffer *FrameBuffer;
      +} XDpDma_GfxChannel;
      +
      +/**
      + * This typedef defines the Audio Channel attributes.
      + */
      +typedef struct {
      +	XDpDma_Descriptor Descriptor0, Descriptor1, Descriptor2;
      +	XDpDma_Descriptor Descriptor3, Descriptor4, Descriptor5;
      +	XDpDma_Descriptor Descriptor6, Descriptor7;
      +	XDpDma_Descriptor *Current;
      +	u8 TriggerStatus;
      +	XDpDma_AudioBuffer *Buffer;
      +	u8 Used;
      +} XDpDma_AudioChannel;
      +/*************************************************************************/
      +/**
      + * This callback type represents the handler for a DPDMA VSync interrupt.
      + *
      + * @param	InstancePtr is a pointer to the XDpDma instance.
      + *
      + * @note	None.
      + *
      +**************************************************************************/
      +typedef void (*XDpDma_VSyncInterruptHandler)(void *InstancePtr);
      +
      +/*************************************************************************/
      +/**
      + * This callback type represents the handler for a DPDMA Done interrupt.
      + *
      + * @param	InstancePtr is a pointer to the XDpDma instance.
      + *
      + * @note	None.
      + *
      +**************************************************************************/
      +typedef void (*XDpDma_DoneInterruptHandler)(void *InstancePtr);
      +
      +/**
      + * The XDpDma driver instance data representing the DPDMA operation.
      + */
      +typedef struct {
      +	XDpDma_Config Config;
      +	XDpDma_VideoChannel Video;
      +	XDpDma_GfxChannel Gfx;
      +	XDpDma_AudioChannel Audio[2];
      +	XVidC_VideoTiming *Timing;
      +	u8 QOS;
      +
      +	XDpDma_VSyncInterruptHandler VSyncHandler;
      +	void * VSyncInterruptHandler;
      +
      +	XDpDma_DoneInterruptHandler DoneHandler;
      +	void * DoneInterruptHandler;
      +
      +} XDpDma;
      +
      +void XDpDma_CfgInitialize(XDpDma *InstancePtr, XDpDma_Config *CfgPtr);
      +XDpDma_Config *XDpDma_LookupConfig(u16 DeviceId);
      +int XDpDma_SetChannelState(XDpDma *InstancePtr, XDpDma_ChannelType Channel,
      +					XDpDma_ChannelState ChannelState);
      +void XDpDma_SetQOS(XDpDma *InstancePtr, u8 QOS);
      +void XDpDma_SetupChannel(XDpDma *InstancePtr, XDpDma_ChannelType Channel);
      +int XDpDma_SetVideoFormat(XDpDma *InstancePtr, XAVBuf_VideoFormat Format);
      +int XDpDma_SetGraphicsFormat(XDpDma *InstancePtr, XAVBuf_VideoFormat Format);
      +void XDpDma_SetVideoTiming(XDpDma *InstancePtr, XVidC_VideoTiming *Timing);
      +int XDpDma_Trigger(XDpDma *InstancePtr, XDpDma_ChannelType Channel);
      +int XDpDma_ReTrigger(XDpDma *InstancePtr, XDpDma_ChannelType Channel);
      +void XDpDma_InterruptEnable(XDpDma *InstancePtr, u32 Mask);
      +void XDpDma_InterruptHandler(XDpDma *InstancePtr);
      +void XDpDma_VSyncHandler(XDpDma *InstancePtr);
      +void XDpDma_DoneHandler(XDpDma *InstancePtr);
      +void XDpDma_InitVideoDescriptor(XDpDma_Descriptor *CurrDesc,
      +				XDpDma_FrameBuffer *FrameBuffer);
      +void  XDpDma_DisplayVideoFrameBuffer(XDpDma *InstancePtr,
      +				   XDpDma_FrameBuffer *Plane1,
      +				   XDpDma_FrameBuffer *Plane2,
      +				   XDpDma_FrameBuffer *Plane3);
      +void XDpDma_DisplayGfxFrameBuffer(XDpDma *InstancePtr,
      +				   XDpDma_FrameBuffer *Plane);
      +void XDpDma_InitAudioDescriptor(XDpDma_AudioChannel *Channel,
      +			       XDpDma_AudioBuffer *AudioBuffer);
      +int XDpDma_PlayAudio(XDpDma *InstancePtr, XDpDma_AudioBuffer *Buffer,
      +		      u8 ChannelNum);
      +#ifdef __cplusplus
      +}
      +#endif
      +
      +#endif /* _XDPDMA_H_ */
      diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_g.c
      new file mode 100644
      index 000000000..5bedc6c8b
      --- /dev/null
      +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_g.c
      @@ -0,0 +1,55 @@
      +
      +/*******************************************************************
      +*
      +* CAUTION: This file is automatically generated by HSI.
      +* Version: 
      +* DO NOT EDIT.
      +*
      +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.*
      +*Permission is hereby granted, free of charge, to any person obtaining a copy
      +*of this software and associated documentation files (the Software), to deal
      +*in the Software without restriction, including without limitation the rights
      +*to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      +*copies of the Software, and to permit persons to whom the Software is
      +*furnished to do so, subject to the following conditions:
      +*
      +*The above copyright notice and this permission notice shall be included in
      +*all copies or substantial portions of the Software.
      +* 
      +* Use of the Software is limited solely to applications:
      +*(a) running on a Xilinx device, or
      +*(b) that interact with a Xilinx device through a bus or interconnect.
      +*
      +*THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      +*IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      +*FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
      +*XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
      +*WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
      +*OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
      +*
      +*Except as contained in this notice, the name of the Xilinx shall not be used
      +*in advertising or otherwise to promote the sale, use or other dealings in
      +*this Software without prior written authorization from Xilinx.
      +*
      +
      +* 
      +* Description: Driver configuration
      +*
      +*******************************************************************/
      +
      +#include "xparameters.h"
      +#include "xdpdma.h"
      +
      +/*
      +* The configuration table for devices
      +*/
      +
      +XDpDma_Config XDpDma_ConfigTable[XPAR_XDPDMA_NUM_INSTANCES] =
      +{
      +	{
      +		XPAR_PSU_DPDMA_DEVICE_ID,
      +		XPAR_PSU_DPDMA_BASEADDR
      +	}
      +};
      +
      +
      diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_hw.h
      new file mode 100644
      index 000000000..14ebce221
      --- /dev/null
      +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_hw.h
      @@ -0,0 +1,1811 @@
      +/******************************************************************************
      + *
      + * Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved.
      + *
      + * Permission is hereby granted, free of charge, to any person obtaining a
      + * copy of this software and associated documentation files (the "Software"),
      + * to deal in the Software without restriction, including without limitation
      + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      + * and/or sell copies of the Software, and to permit persons to whom the
      + * Software is furnished to do so, subject to the following conditions:
      + *
      + * The above copyright notice and this permission notice shall be included in
      + * all copies or substantial portions of the Software.
      + *
      + * Use of the Software is limited solely to applications:
      + * (a) running on a Xilinx device, or
      + * (b) that interact with a Xilinx device through a bus or interconnect.
      + *
      + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
      + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
      + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
      + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
      + * SOFTWARE.
      + *
      + *
      + * Except as contained in this notice, the name of the Xilinx shall not be used
      + * in advertising or otherwise to promote the sale, use or other dealings in
      + * this Software without prior written authorization from Xilinx.
      + *
      + ******************************************************************************/
      +
      +/*****************************************************************************/
      +/**
      + *
      + * @file xdpdma_hw.h
      + *
      + * This header file contains identifiers and low-level driver functions (or
      + * macros) that can be used to access the device. High-level driver functions
      + * are defined in xdpdma.h
      + *
      + * @note	None.
      + *
      + * 
      + * MODIFICATION HISTORY:
      + *
      + * Ver	Who   Date     Changes
      + * ---- ----- -------- ----------------------------------------------------
      + * 1.0  aad   04/12/16 Initial release.
      + *
      + *****************************************************************************/
      +
      +
      +#ifndef XDPDMAHW_H_
      +/* Prevent circular inclusions by using protection macros. */
      +#define XDPDMAHW_H_
      +
      +#ifdef __cplusplus
      +extern "C" {
      +#endif
      +
      +/***************************** Include Files **********************************/
      +
      +#include "xil_io.h"
      +
      +/************************** Constant Definitions ******************************/
      +
      +/******************************************************************************/
      +/**
      + * Address mapping for the DPDMA.
      + */
      +/******************************************************************************/
      +/** @name DPDMA registers
      + *  @{
      + */
      +
      +#define XDPDMA_BASEADDR					0XFD4C0000
      +
      +/**
      + * Register: XDPDMA_ERR_CTRL
      + */
      +#define XDPDMA_ERR_CTRL					0X0000
      +
      +#define XDPDMA_ERR_CTRL_APB_ERR_RES_SHIFT		0
      +#define XDPDMA_ERR_CTRL_APB_ERR_RES_WIDTH		1
      +#define XDPDMA_ERR_CTRL_APB_ERR_RES_MASK		0X1
      +
      +/**
      + * Register: XDPDMA_ISR
      + */
      +#define XDPDMA_ISR					0X0004
      +
      +#define XDPDMA_ISR_VSYNC_INT_SHIFT			27
      +#define XDPDMA_ISR_VSYNC_INT_WIDTH			1
      +#define XDPDMA_ISR_VSYNC_INT_MASK			0X08000000
      +
      +#define XDPDMA_ISR_AXI_RD_4K_CROSS_SHIFT		26
      +#define XDPDMA_ISR_AXI_RD_4K_CROSS_WIDTH		1
      +#define XDPDMA_ISR_AXI_RD_4K_CROSS_MASK			0X04000000
      +
      +#define XDPDMA_ISR_WR_DATA_FIFO_FULL_SHIFT		25
      +#define XDPDMA_ISR_WR_DATA_FIFO_FULL_WIDTH		1
      +#define XDPDMA_ISR_WR_DATA_FIFO_FULL_MASK		0X02000000
      +
      +#define XDPDMA_ISR_WR_CMD_FIFO_FULL_SHIFT		24
      +#define XDPDMA_ISR_WR_CMD_FIFO_FULL_WIDTH		1
      +#define XDPDMA_ISR_WR_CMD_FIFO_FULL_MASK		0X01000000
      +
      +#define XDPDMA_ISR_DSCR_ERR5_SHIFT			23
      +#define XDPDMA_ISR_DSCR_ERR5_WIDTH			1
      +#define XDPDMA_ISR_DSCR_ERR5_MASK			0X800000
      +
      +#define XDPDMA_ISR_DSCR_ERR4_SHIFT			22
      +#define XDPDMA_ISR_DSCR_ERR4_WIDTH			1
      +#define XDPDMA_ISR_DSCR_ERR4_MASK			0X400000
      +
      +#define XDPDMA_ISR_DSCR_ERR3_SHIFT			21
      +#define XDPDMA_ISR_DSCR_ERR3_WIDTH			1
      +#define XDPDMA_ISR_DSCR_ERR3_MASK			0X200000
      +
      +#define XDPDMA_ISR_DSCR_ERR2_SHIFT			20
      +#define XDPDMA_ISR_DSCR_ERR2_WIDTH			1
      +#define XDPDMA_ISR_DSCR_ERR2_MASK			0X100000
      +
      +#define XDPDMA_ISR_DSCR_ERR1_SHIFT			19
      +#define XDPDMA_ISR_DSCR_ERR1_WIDTH			1
      +#define XDPDMA_ISR_DSCR_ERR1_MASK			0X80000
      +
      +#define XDPDMA_ISR_DSCR_ERR0_SHIFT			18
      +#define XDPDMA_ISR_DSCR_ERR0_WIDTH			1
      +#define XDPDMA_ISR_DSCR_ERR0_MASK			0X40000
      +
      +#define XDPDMA_ISR_DATA_AXI_ERR5_SHIFT			17
      +#define XDPDMA_ISR_DATA_AXI_ERR5_WIDTH			1
      +#define XDPDMA_ISR_DATA_AXI_ERR5_MASK			0X20000
      +
      +#define XDPDMA_ISR_DATA_AXI_ERR4_SHIFT			16
      +#define XDPDMA_ISR_DATA_AXI_ERR4_WIDTH			1
      +#define XDPDMA_ISR_DATA_AXI_ERR4_MASK			0X10000
      +
      +#define XDPDMA_ISR_DATA_AXI_ERR3_SHIFT			15
      +#define XDPDMA_ISR_DATA_AXI_ERR3_WIDTH			1
      +#define XDPDMA_ISR_DATA_AXI_ERR3_MASK			0X8000
      +
      +#define XDPDMA_ISR_DATA_AXI_ERR2_SHIFT			14
      +#define XDPDMA_ISR_DATA_AXI_ERR2_WIDTH			1
      +#define XDPDMA_ISR_DATA_AXI_ERR2_MASK			0X4000
      +
      +#define XDPDMA_ISR_DATA_AXI_ERR1_SHIFT			13
      +#define XDPDMA_ISR_DATA_AXI_ERR1_WIDTH			1
      +#define XDPDMA_ISR_DATA_AXI_ERR1_MASK			0X2000
      +
      +#define XDPDMA_ISR_DATA_AXI_ERR0_SHIFT			12
      +#define XDPDMA_ISR_DATA_AXI_ERR0_WIDTH			1
      +#define XDPDMA_ISR_DATA_AXI_ERR0_MASK			0X1000
      +
      +#define XDPDMA_ISR_NO_OSTAND_TRAN5_SHIFT		11
      +#define XDPDMA_ISR_NO_OSTAND_TRAN5_WIDTH		1
      +#define XDPDMA_ISR_NO_OSTAND_TRAN5_MASK			0X0800
      +
      +#define XDPDMA_ISR_NO_OSTAND_TRAN4_SHIFT		10
      +#define XDPDMA_ISR_NO_OSTAND_TRAN4_WIDTH		1
      +#define XDPDMA_ISR_NO_OSTAND_TRAN4_MASK			0X0400
      +
      +#define XDPDMA_ISR_NO_OSTAND_TRAN3_SHIFT		9
      +#define XDPDMA_ISR_NO_OSTAND_TRAN3_WIDTH		1
      +#define XDPDMA_ISR_NO_OSTAND_TRAN3_MASK			0X0200
      +
      +#define XDPDMA_ISR_NO_OSTAND_TRAN2_SHIFT		8
      +#define XDPDMA_ISR_NO_OSTAND_TRAN2_WIDTH		1
      +#define XDPDMA_ISR_NO_OSTAND_TRAN2_MASK			0X0100
      +
      +#define XDPDMA_ISR_NO_OSTAND_TRAN1_SHIFT		7
      +#define XDPDMA_ISR_NO_OSTAND_TRAN1_WIDTH		1
      +#define XDPDMA_ISR_NO_OSTAND_TRAN1_MASK			0X80
      +
      +#define XDPDMA_ISR_NO_OSTAND_TRAN0_SHIFT		6
      +#define XDPDMA_ISR_NO_OSTAND_TRAN0_WIDTH		1
      +#define XDPDMA_ISR_NO_OSTAND_TRAN0_MASK			0X40
      +
      +#define XDPDMA_ISR_DSCR_DONE5_SHIFT			5
      +#define XDPDMA_ISR_DSCR_DONE5_WIDTH			1
      +#define XDPDMA_ISR_DSCR_DONE5_MASK			0X20
      +
      +#define XDPDMA_ISR_DSCR_DONE4_SHIFT			4
      +#define XDPDMA_ISR_DSCR_DONE4_WIDTH			1
      +#define XDPDMA_ISR_DSCR_DONE4_MASK			0X10
      +
      +#define XDPDMA_ISR_DSCR_DONE3_SHIFT			3
      +#define XDPDMA_ISR_DSCR_DONE3_WIDTH			1
      +#define XDPDMA_ISR_DSCR_DONE3_MASK			0X8
      +
      +#define XDPDMA_ISR_DSCR_DONE2_SHIFT			2
      +#define XDPDMA_ISR_DSCR_DONE2_WIDTH			1
      +#define XDPDMA_ISR_DSCR_DONE2_MASK			0X4
      +
      +#define XDPDMA_ISR_DSCR_DONE1_SHIFT			1
      +#define XDPDMA_ISR_DSCR_DONE1_WIDTH			1
      +#define XDPDMA_ISR_DSCR_DONE1_MASK			0X2
      +
      +#define XDPDMA_ISR_DSCR_DONE0_SHIFT			0
      +#define XDPDMA_ISR_DSCR_DONE0_WIDTH			1
      +#define XDPDMA_ISR_DSCR_DONE0_MASK			0X1
      +
      +/**
      + * Register: XDPDMA_IMR
      + */
      +#define XDPDMA_IMR					0X0008
      +
      +#define XDPDMA_IMR_VSYNC_INT_SHIFT			27
      +#define XDPDMA_IMR_VSYNC_INT_WIDTH			1
      +#define XDPDMA_IMR_VSYNC_INT_MASK			0X08000000
      +
      +#define XDPDMA_IMR_AXI_RD_4K_CROSS_SHIFT		26
      +#define XDPDMA_IMR_AXI_RD_4K_CROSS_WIDTH		1
      +#define XDPDMA_IMR_AXI_RD_4K_CROSS_MASK			0X04000000
      +
      +#define XDPDMA_IMR_WR_DATA_FIFO_FULL_SHIFT		25
      +#define XDPDMA_IMR_WR_DATA_FIFO_FULL_WIDTH		1
      +#define XDPDMA_IMR_WR_DATA_FIFO_FULL_MASK		0X02000000
      +
      +#define XDPDMA_IMR_WR_CMD_FIFO_FULL_SHIFT		24
      +#define XDPDMA_IMR_WR_CMD_FIFO_FULL_WIDTH		1
      +#define XDPDMA_IMR_WR_CMD_FIFO_FULL_MASK		0X01000000
      +
      +#define XDPDMA_IMR_DSCR_ERR5_SHIFT			23
      +#define XDPDMA_IMR_DSCR_ERR5_WIDTH			1
      +#define XDPDMA_IMR_DSCR_ERR5_MASK			0X800000
      +
      +#define XDPDMA_IMR_DSCR_ERR4_SHIFT			22
      +#define XDPDMA_IMR_DSCR_ERR4_WIDTH			1
      +#define XDPDMA_IMR_DSCR_ERR4_MASK			0X400000
      +
      +#define XDPDMA_IMR_DSCR_ERR3_SHIFT			21
      +#define XDPDMA_IMR_DSCR_ERR3_WIDTH			1
      +#define XDPDMA_IMR_DSCR_ERR3_MASK			0X200000
      +
      +#define XDPDMA_IMR_DSCR_ERR2_SHIFT			20
      +#define XDPDMA_IMR_DSCR_ERR2_WIDTH			1
      +#define XDPDMA_IMR_DSCR_ERR2_MASK			0X100000
      +
      +#define XDPDMA_IMR_DSCR_ERR1_SHIFT			19
      +#define XDPDMA_IMR_DSCR_ERR1_WIDTH			1
      +#define XDPDMA_IMR_DSCR_ERR1_MASK			0X80000
      +
      +#define XDPDMA_IMR_DSCR_ERR0_SHIFT			18
      +#define XDPDMA_IMR_DSCR_ERR0_WIDTH			1
      +#define XDPDMA_IMR_DSCR_ERR0_MASK			0X40000
      +
      +#define XDPDMA_IMR_DATA_AXI_ERR5_SHIFT			17
      +#define XDPDMA_IMR_DATA_AXI_ERR5_WIDTH			1
      +#define XDPDMA_IMR_DATA_AXI_ERR5_MASK			0X20000
      +
      +#define XDPDMA_IMR_DATA_AXI_ERR4_SHIFT			16
      +#define XDPDMA_IMR_DATA_AXI_ERR4_WIDTH			1
      +#define XDPDMA_IMR_DATA_AXI_ERR4_MASK			0X10000
      +
      +#define XDPDMA_IMR_DATA_AXI_ERR3_SHIFT			15
      +#define XDPDMA_IMR_DATA_AXI_ERR3_WIDTH			1
      +#define XDPDMA_IMR_DATA_AXI_ERR3_MASK			0X8000
      +
      +#define XDPDMA_IMR_DATA_AXI_ERR2_SHIFT			14
      +#define XDPDMA_IMR_DATA_AXI_ERR2_WIDTH			1
      +#define XDPDMA_IMR_DATA_AXI_ERR2_MASK			0X4000
      +
      +#define XDPDMA_IMR_DATA_AXI_ERR1_SHIFT			13
      +#define XDPDMA_IMR_DATA_AXI_ERR1_WIDTH			1
      +#define XDPDMA_IMR_DATA_AXI_ERR1_MASK			0X2000
      +
      +#define XDPDMA_IMR_DATA_AXI_ERR0_SHIFT			12
      +#define XDPDMA_IMR_DATA_AXI_ERR0_WIDTH			1
      +#define XDPDMA_IMR_DATA_AXI_ERR0_MASK			0X1000
      +
      +#define XDPDMA_IMR_NO_OSTAND_TRAN5_SHIFT		11
      +#define XDPDMA_IMR_NO_OSTAND_TRAN5_WIDTH		1
      +#define XDPDMA_IMR_NO_OSTAND_TRAN5_MASK			0X0800
      +
      +#define XDPDMA_IMR_NO_OSTAND_TRAN4_SHIFT		10
      +#define XDPDMA_IMR_NO_OSTAND_TRAN4_WIDTH		1
      +#define XDPDMA_IMR_NO_OSTAND_TRAN4_MASK			0X0400
      +
      +#define XDPDMA_IMR_NO_OSTAND_TRAN3_SHIFT		9
      +#define XDPDMA_IMR_NO_OSTAND_TRAN3_WIDTH		1
      +#define XDPDMA_IMR_NO_OSTAND_TRAN3_MASK			0X0200
      +
      +#define XDPDMA_IMR_NO_OSTAND_TRAN2_SHIFT		8
      +#define XDPDMA_IMR_NO_OSTAND_TRAN2_WIDTH		1
      +#define XDPDMA_IMR_NO_OSTAND_TRAN2_MASK			0X0100
      +
      +#define XDPDMA_IMR_NO_OSTAND_TRAN1_SHIFT		7
      +#define XDPDMA_IMR_NO_OSTAND_TRAN1_WIDTH		1
      +#define XDPDMA_IMR_NO_OSTAND_TRAN1_MASK			0X80
      +
      +#define XDPDMA_IMR_NO_OSTAND_TRAN0_SHIFT		6
      +#define XDPDMA_IMR_NO_OSTAND_TRAN0_WIDTH		1
      +#define XDPDMA_IMR_NO_OSTAND_TRAN0_MASK			0X40
      +
      +#define XDPDMA_IMR_DSCR_DONE5_SHIFT			5
      +#define XDPDMA_IMR_DSCR_DONE5_WIDTH			1
      +#define XDPDMA_IMR_DSCR_DONE5_MASK			0X20
      +
      +#define XDPDMA_IMR_DSCR_DONE4_SHIFT			4
      +#define XDPDMA_IMR_DSCR_DONE4_WIDTH			1
      +#define XDPDMA_IMR_DSCR_DONE4_MASK			0X10
      +
      +#define XDPDMA_IMR_DSCR_DONE3_SHIFT			3
      +#define XDPDMA_IMR_DSCR_DONE3_WIDTH			1
      +#define XDPDMA_IMR_DSCR_DONE3_MASK			0X8
      +
      +#define XDPDMA_IMR_DSCR_DONE2_SHIFT			2
      +#define XDPDMA_IMR_DSCR_DONE2_WIDTH			1
      +#define XDPDMA_IMR_DSCR_DONE2_MASK			0X4
      +
      +#define XDPDMA_IMR_DSCR_DONE1_SHIFT			1
      +#define XDPDMA_IMR_DSCR_DONE1_WIDTH			1
      +#define XDPDMA_IMR_DSCR_DONE1_MASK			0X2
      +
      +#define XDPDMA_IMR_DSCR_DONE0_SHIFT			0
      +#define XDPDMA_IMR_DSCR_DONE0_WIDTH			1
      +#define XDPDMA_IMR_DSCR_DONE0_MASK			0X1
      +
      +/**
      + * Register: XDPDMA_IEN
      + */
      +#define XDPDMA_IEN					0X000C
      +
      +#define XDPDMA_IEN_VSYNC_INT_SHIFT			27
      +#define XDPDMA_IEN_VSYNC_INT_WIDTH			1
      +#define XDPDMA_IEN_VSYNC_INT_MASK			0X08000000
      +
      +#define XDPDMA_IEN_AXI_RD_4K_CROSS_SHIFT		26
      +#define XDPDMA_IEN_AXI_RD_4K_CROSS_WIDTH		1
      +#define XDPDMA_IEN_AXI_RD_4K_CROSS_MASK			0X04000000
      +
      +#define XDPDMA_IEN_WR_DATA_FIFO_FULL_SHIFT		25
      +#define XDPDMA_IEN_WR_DATA_FIFO_FULL_WIDTH		1
      +#define XDPDMA_IEN_WR_DATA_FIFO_FULL_MASK		0X02000000
      +
      +#define XDPDMA_IEN_WR_CMD_FIFO_FULL_SHIFT		24
      +#define XDPDMA_IEN_WR_CMD_FIFO_FULL_WIDTH		1
      +#define XDPDMA_IEN_WR_CMD_FIFO_FULL_MASK		0X01000000
      +
      +#define XDPDMA_IEN_DSCR_ERR5_SHIFT			23
      +#define XDPDMA_IEN_DSCR_ERR5_WIDTH			1
      +#define XDPDMA_IEN_DSCR_ERR5_MASK			0X800000
      +
      +#define XDPDMA_IEN_DSCR_ERR4_SHIFT			22
      +#define XDPDMA_IEN_DSCR_ERR4_WIDTH			1
      +#define XDPDMA_IEN_DSCR_ERR4_MASK			0X400000
      +
      +#define XDPDMA_IEN_DSCR_ERR3_SHIFT			21
      +#define XDPDMA_IEN_DSCR_ERR3_WIDTH			1
      +#define XDPDMA_IEN_DSCR_ERR3_MASK			0X200000
      +
      +#define XDPDMA_IEN_DSCR_ERR2_SHIFT			20
      +#define XDPDMA_IEN_DSCR_ERR2_WIDTH			1
      +#define XDPDMA_IEN_DSCR_ERR2_MASK			0X100000
      +
      +#define XDPDMA_IEN_DSCR_ERR1_SHIFT			19
      +#define XDPDMA_IEN_DSCR_ERR1_WIDTH			1
      +#define XDPDMA_IEN_DSCR_ERR1_MASK			0X80000
      +
      +#define XDPDMA_IEN_DSCR_ERR0_SHIFT			18
      +#define XDPDMA_IEN_DSCR_ERR0_WIDTH			1
      +#define XDPDMA_IEN_DSCR_ERR0_MASK			0X40000
      +
      +#define XDPDMA_IEN_DATA_AXI_ERR5_SHIFT			17
      +#define XDPDMA_IEN_DATA_AXI_ERR5_WIDTH			1
      +#define XDPDMA_IEN_DATA_AXI_ERR5_MASK			0X20000
      +
      +#define XDPDMA_IEN_DATA_AXI_ERR4_SHIFT			16
      +#define XDPDMA_IEN_DATA_AXI_ERR4_WIDTH			1
      +#define XDPDMA_IEN_DATA_AXI_ERR4_MASK			0X10000
      +
      +#define XDPDMA_IEN_DATA_AXI_ERR3_SHIFT			15
      +#define XDPDMA_IEN_DATA_AXI_ERR3_WIDTH			1
      +#define XDPDMA_IEN_DATA_AXI_ERR3_MASK			0X8000
      +
      +#define XDPDMA_IEN_DATA_AXI_ERR2_SHIFT			14
      +#define XDPDMA_IEN_DATA_AXI_ERR2_WIDTH			1
      +#define XDPDMA_IEN_DATA_AXI_ERR2_MASK			0X4000
      +
      +#define XDPDMA_IEN_DATA_AXI_ERR1_SHIFT			13
      +#define XDPDMA_IEN_DATA_AXI_ERR1_WIDTH			1
      +#define XDPDMA_IEN_DATA_AXI_ERR1_MASK			0X2000
      +
      +#define XDPDMA_IEN_DATA_AXI_ERR0_SHIFT			12
      +#define XDPDMA_IEN_DATA_AXI_ERR0_WIDTH			1
      +#define XDPDMA_IEN_DATA_AXI_ERR0_MASK			0X1000
      +
      +#define XDPDMA_IEN_NO_OSTAND_TRAN5_SHIFT		11
      +#define XDPDMA_IEN_NO_OSTAND_TRAN5_WIDTH		1
      +#define XDPDMA_IEN_NO_OSTAND_TRAN5_MASK			0X0800
      +
      +#define XDPDMA_IEN_NO_OSTAND_TRAN4_SHIFT		10
      +#define XDPDMA_IEN_NO_OSTAND_TRAN4_WIDTH		1
      +#define XDPDMA_IEN_NO_OSTAND_TRAN4_MASK			0X0400
      +
      +#define XDPDMA_IEN_NO_OSTAND_TRAN3_SHIFT		9
      +#define XDPDMA_IEN_NO_OSTAND_TRAN3_WIDTH		1
      +#define XDPDMA_IEN_NO_OSTAND_TRAN3_MASK			0X0200
      +
      +#define XDPDMA_IEN_NO_OSTAND_TRAN2_SHIFT		8
      +#define XDPDMA_IEN_NO_OSTAND_TRAN2_WIDTH		1
      +#define XDPDMA_IEN_NO_OSTAND_TRAN2_MASK			0X0100
      +
      +#define XDPDMA_IEN_NO_OSTAND_TRAN1_SHIFT		7
      +#define XDPDMA_IEN_NO_OSTAND_TRAN1_WIDTH		1
      +#define XDPDMA_IEN_NO_OSTAND_TRAN1_MASK			0X80
      +
      +#define XDPDMA_IEN_NO_OSTAND_TRAN0_SHIFT		6
      +#define XDPDMA_IEN_NO_OSTAND_TRAN0_WIDTH		1
      +#define XDPDMA_IEN_NO_OSTAND_TRAN0_MASK			0X40
      +
      +#define XDPDMA_IEN_DSCR_DONE5_SHIFT			5
      +#define XDPDMA_IEN_DSCR_DONE5_WIDTH			1
      +#define XDPDMA_IEN_DSCR_DONE5_MASK			0X20
      +
      +#define XDPDMA_IEN_DSCR_DONE4_SHIFT			4
      +#define XDPDMA_IEN_DSCR_DONE4_WIDTH			1
      +#define XDPDMA_IEN_DSCR_DONE4_MASK			0X10
      +
      +#define XDPDMA_IEN_DSCR_DONE3_SHIFT			3
      +#define XDPDMA_IEN_DSCR_DONE3_WIDTH			1
      +#define XDPDMA_IEN_DSCR_DONE3_MASK			0X8
      +
      +#define XDPDMA_IEN_DSCR_DONE2_SHIFT			2
      +#define XDPDMA_IEN_DSCR_DONE2_WIDTH			1
      +#define XDPDMA_IEN_DSCR_DONE2_MASK			0X4
      +
      +#define XDPDMA_IEN_DSCR_DONE1_SHIFT			1
      +#define XDPDMA_IEN_DSCR_DONE1_WIDTH			1
      +#define XDPDMA_IEN_DSCR_DONE1_MASK			0X2
      +
      +#define XDPDMA_IEN_DSCR_DONE0_SHIFT			0
      +#define XDPDMA_IEN_DSCR_DONE0_WIDTH			1
      +#define XDPDMA_IEN_DSCR_DONE0_MASK			0X1
      +
      +/**
      + * Register: XDPDMA_IDS
      + */
      +#define XDPDMA_IDS					0X0010
      +
      +#define XDPDMA_IDS_VSYNC_INT_SHIFT			27
      +#define XDPDMA_IDS_VSYNC_INT_WIDTH			1
      +#define XDPDMA_IDS_VSYNC_INT_MASK			0X08000000
      +
      +#define XDPDMA_IDS_AXI_RD_4K_CROSS_SHIFT		26
      +#define XDPDMA_IDS_AXI_RD_4K_CROSS_WIDTH		1
      +#define XDPDMA_IDS_AXI_RD_4K_CROSS_MASK		0X04000000
      +
      +#define XDPDMA_IDS_WR_DATA_FIFO_FULL_SHIFT		25
      +#define XDPDMA_IDS_WR_DATA_FIFO_FULL_WIDTH		1
      +#define XDPDMA_IDS_WR_DATA_FIFO_FULL_MASK		0X02000000
      +
      +#define XDPDMA_IDS_WR_CMD_FIFO_FULL_SHIFT		24
      +#define XDPDMA_IDS_WR_CMD_FIFO_FULL_WIDTH		1
      +#define XDPDMA_IDS_WR_CMD_FIFO_FULL_MASK		0X01000000
      +
      +#define XDPDMA_IDS_DSCR_ERR5_SHIFT			23
      +#define XDPDMA_IDS_DSCR_ERR5_WIDTH			1
      +#define XDPDMA_IDS_DSCR_ERR5_MASK			0X800000
      +
      +#define XDPDMA_IDS_DSCR_ERR4_SHIFT			22
      +#define XDPDMA_IDS_DSCR_ERR4_WIDTH			1
      +#define XDPDMA_IDS_DSCR_ERR4_MASK			0X400000
      +
      +#define XDPDMA_IDS_DSCR_ERR3_SHIFT			21
      +#define XDPDMA_IDS_DSCR_ERR3_WIDTH			1
      +#define XDPDMA_IDS_DSCR_ERR3_MASK			0X200000
      +
      +#define XDPDMA_IDS_DSCR_ERR2_SHIFT			20
      +#define XDPDMA_IDS_DSCR_ERR2_WIDTH			1
      +#define XDPDMA_IDS_DSCR_ERR2_MASK			0X100000
      +
      +#define XDPDMA_IDS_DSCR_ERR1_SHIFT			19
      +#define XDPDMA_IDS_DSCR_ERR1_WIDTH			1
      +#define XDPDMA_IDS_DSCR_ERR1_MASK			0X80000
      +
      +#define XDPDMA_IDS_DSCR_ERR0_SHIFT			18
      +#define XDPDMA_IDS_DSCR_ERR0_WIDTH			1
      +#define XDPDMA_IDS_DSCR_ERR0_MASK			0X40000
      +
      +#define XDPDMA_IDS_DATA_AXI_ERR5_SHIFT			17
      +#define XDPDMA_IDS_DATA_AXI_ERR5_WIDTH			1
      +#define XDPDMA_IDS_DATA_AXI_ERR5_MASK			0X20000
      +
      +#define XDPDMA_IDS_DATA_AXI_ERR4_SHIFT			16
      +#define XDPDMA_IDS_DATA_AXI_ERR4_WIDTH			1
      +#define XDPDMA_IDS_DATA_AXI_ERR4_MASK			0X10000
      +
      +#define XDPDMA_IDS_DATA_AXI_ERR3_SHIFT			15
      +#define XDPDMA_IDS_DATA_AXI_ERR3_WIDTH			1
      +#define XDPDMA_IDS_DATA_AXI_ERR3_MASK			0X8000
      +
      +#define XDPDMA_IDS_DATA_AXI_ERR2_SHIFT			14
      +#define XDPDMA_IDS_DATA_AXI_ERR2_WIDTH			1
      +#define XDPDMA_IDS_DATA_AXI_ERR2_MASK			0X4000
      +
      +#define XDPDMA_IDS_DATA_AXI_ERR1_SHIFT			13
      +#define XDPDMA_IDS_DATA_AXI_ERR1_WIDTH			1
      +#define XDPDMA_IDS_DATA_AXI_ERR1_MASK			0X2000
      +
      +#define XDPDMA_IDS_DATA_AXI_ERR0_SHIFT			12
      +#define XDPDMA_IDS_DATA_AXI_ERR0_WIDTH			1
      +#define XDPDMA_IDS_DATA_AXI_ERR0_MASK			0X1000
      +
      +#define XDPDMA_IDS_NO_OSTAND_TRAN5_SHIFT		11
      +#define XDPDMA_IDS_NO_OSTAND_TRAN5_WIDTH		1
      +#define XDPDMA_IDS_NO_OSTAND_TRAN5_MASK			0X0800
      +
      +#define XDPDMA_IDS_NO_OSTAND_TRAN4_SHIFT		10
      +#define XDPDMA_IDS_NO_OSTAND_TRAN4_WIDTH		1
      +#define XDPDMA_IDS_NO_OSTAND_TRAN4_MASK			0X0400
      +
      +#define XDPDMA_IDS_NO_OSTAND_TRAN3_SHIFT		9
      +#define XDPDMA_IDS_NO_OSTAND_TRAN3_WIDTH		1
      +#define XDPDMA_IDS_NO_OSTAND_TRAN3_MASK			0X0200
      +
      +#define XDPDMA_IDS_NO_OSTAND_TRAN2_SHIFT		8
      +#define XDPDMA_IDS_NO_OSTAND_TRAN2_WIDTH		1
      +#define XDPDMA_IDS_NO_OSTAND_TRAN2_MASK			0X0100
      +
      +#define XDPDMA_IDS_NO_OSTAND_TRAN1_SHIFT		7
      +#define XDPDMA_IDS_NO_OSTAND_TRAN1_WIDTH		1
      +#define XDPDMA_IDS_NO_OSTAND_TRAN1_MASK			0X80
      +
      +#define XDPDMA_IDS_NO_OSTAND_TRAN0_SHIFT		6
      +#define XDPDMA_IDS_NO_OSTAND_TRAN0_WIDTH		1
      +#define XDPDMA_IDS_NO_OSTAND_TRAN0_MASK			0X40
      +
      +#define XDPDMA_IDS_DSCR_DONE5_SHIFT			5
      +#define XDPDMA_IDS_DSCR_DONE5_WIDTH			1
      +#define XDPDMA_IDS_DSCR_DONE5_MASK			0X20
      +
      +#define XDPDMA_IDS_DSCR_DONE4_SHIFT			4
      +#define XDPDMA_IDS_DSCR_DONE4_WIDTH			1
      +#define XDPDMA_IDS_DSCR_DONE4_MASK			0X10
      +
      +#define XDPDMA_IDS_DSCR_DONE3_SHIFT			3
      +#define XDPDMA_IDS_DSCR_DONE3_WIDTH			1
      +#define XDPDMA_IDS_DSCR_DONE3_MASK			0X8
      +
      +#define XDPDMA_IDS_DSCR_DONE2_SHIFT			2
      +#define XDPDMA_IDS_DSCR_DONE2_WIDTH			1
      +#define XDPDMA_IDS_DSCR_DONE2_MASK			0X4
      +
      +#define XDPDMA_IDS_DSCR_DONE1_SHIFT			1
      +#define XDPDMA_IDS_DSCR_DONE1_WIDTH			1
      +#define XDPDMA_IDS_DSCR_DONE1_MASK			0X2
      +
      +#define XDPDMA_IDS_DSCR_DONE0_SHIFT			0
      +#define XDPDMA_IDS_DSCR_DONE0_WIDTH			1
      +#define XDPDMA_IDS_DSCR_DONE0_MASK			0X1
      +
      +/**
      + * Register: XDPDMA_EISR
      + */
      +#define XDPDMA_EISR					0X0014
      +
      +#define XDPDMA_EISR_RD_CMD_FIFO_FULL_SHIFT		31
      +#define XDPDMA_EISR_RD_CMD_FIFO_FULL_WIDTH		1
      +#define XDPDMA_EISR_RD_CMD_FIFO_FULL_MASK		0X80000000
      +
      +#define XDPDMA_EISR_DSCR_DONE_ERR5_SHIFT		30
      +#define XDPDMA_EISR_DSCR_DONE_ERR5_WIDTH		1
      +#define XDPDMA_EISR_DSCR_DONE_ERR5_MASK			0X40000000
      +
      +#define XDPDMA_EISR_DSCR_DONE_ERR4_SHIFT		29
      +#define XDPDMA_EISR_DSCR_DONE_ERR4_WIDTH		1
      +#define XDPDMA_EISR_DSCR_DONE_ERR4_MASK			0X20000000
      +
      +#define XDPDMA_EISR_DSCR_DONE_ERR3_SHIFT		28
      +#define XDPDMA_EISR_DSCR_DONE_ERR3_WIDTH		1
      +#define XDPDMA_EISR_DSCR_DONE_ERR3_MASK			0X10000000
      +
      +#define XDPDMA_EISR_DSCR_DONE_ERR2_SHIFT		27
      +#define XDPDMA_EISR_DSCR_DONE_ERR2_WIDTH		1
      +#define XDPDMA_EISR_DSCR_DONE_ERR2_MASK			0X08000000
      +
      +#define XDPDMA_EISR_DSCR_DONE_ERR1_SHIFT		26
      +#define XDPDMA_EISR_DSCR_DONE_ERR1_WIDTH		1
      +#define XDPDMA_EISR_DSCR_DONE_ERR1_MASK			0X04000000
      +
      +#define XDPDMA_EISR_DSCR_DONE_ERR0_SHIFT		25
      +#define XDPDMA_EISR_DSCR_DONE_ERR0_WIDTH		1
      +#define XDPDMA_EISR_DSCR_DONE_ERR0_MASK			0X02000000
      +
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR5_SHIFT		24
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR5_WIDTH		1
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR5_MASK		0X01000000
      +
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR4_SHIFT		23
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR4_WIDTH		1
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR4_MASK		0X800000
      +
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR3_SHIFT		22
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR3_WIDTH		1
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR3_MASK		0X400000
      +
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR2_SHIFT		21
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR2_WIDTH		1
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR2_MASK		0X200000
      +
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR1_SHIFT		20
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR1_WIDTH		1
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR1_MASK		0X100000
      +
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR0_SHIFT		19
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR0_WIDTH		1
      +#define XDPDMA_EISR_DSCR_WR_AXI_ERR0_MASK		0X80000
      +
      +#define XDPDMA_EISR_DSCR_CRC_ERR5_SHIFT			18
      +#define XDPDMA_EISR_DSCR_CRC_ERR5_WIDTH			1
      +#define XDPDMA_EISR_DSCR_CRC_ERR5_MASK			0X40000
      +
      +#define XDPDMA_EISR_DSCR_CRC_ERR4_SHIFT			17
      +#define XDPDMA_EISR_DSCR_CRC_ERR4_WIDTH			1
      +#define XDPDMA_EISR_DSCR_CRC_ERR4_MASK			0X20000
      +
      +#define XDPDMA_EISR_DSCR_CRC_ERR3_SHIFT			16
      +#define XDPDMA_EISR_DSCR_CRC_ERR3_WIDTH			1
      +#define XDPDMA_EISR_DSCR_CRC_ERR3_MASK			0X10000
      +
      +#define XDPDMA_EISR_DSCR_CRC_ERR2_SHIFT			15
      +#define XDPDMA_EISR_DSCR_CRC_ERR2_WIDTH			1
      +#define XDPDMA_EISR_DSCR_CRC_ERR2_MASK			0X8000
      +
      +#define XDPDMA_EISR_DSCR_CRC_ERR1_SHIFT			14
      +#define XDPDMA_EISR_DSCR_CRC_ERR1_WIDTH			1
      +#define XDPDMA_EISR_DSCR_CRC_ERR1_MASK			0X4000
      +
      +#define XDPDMA_EISR_DSCR_CRC_ERR0_SHIFT			13
      +#define XDPDMA_EISR_DSCR_CRC_ERR0_WIDTH			1
      +#define XDPDMA_EISR_DSCR_CRC_ERR0_MASK			0X2000
      +
      +#define XDPDMA_EISR_DSCR_PRE_ERR5_SHIFT			12
      +#define XDPDMA_EISR_DSCR_PRE_ERR5_WIDTH			1
      +#define XDPDMA_EISR_DSCR_PRE_ERR5_MASK			0X1000
      +
      +#define XDPDMA_EISR_DSCR_PRE_ERR4_SHIFT			11
      +#define XDPDMA_EISR_DSCR_PRE_ERR4_WIDTH			1
      +#define XDPDMA_EISR_DSCR_PRE_ERR4_MASK			0X0800
      +
      +#define XDPDMA_EISR_DSCR_PRE_ERR3_SHIFT			10
      +#define XDPDMA_EISR_DSCR_PRE_ERR3_WIDTH			1
      +#define XDPDMA_EISR_DSCR_PRE_ERR3_MASK			0X0400
      +
      +#define XDPDMA_EISR_DSCR_PRE_ERR2_SHIFT			9
      +#define XDPDMA_EISR_DSCR_PRE_ERR2_WIDTH			1
      +#define XDPDMA_EISR_DSCR_PRE_ERR2_MASK			0X0200
      +
      +#define XDPDMA_EISR_DSCR_PRE_ERR1_SHIFT			8
      +#define XDPDMA_EISR_DSCR_PRE_ERR1_WIDTH			1
      +#define XDPDMA_EISR_DSCR_PRE_ERR1_MASK			0X0100
      +
      +#define XDPDMA_EISR_DSCR_PRE_ERR0_SHIFT			7
      +#define XDPDMA_EISR_DSCR_PRE_ERR0_WIDTH			1
      +#define XDPDMA_EISR_DSCR_PRE_ERR0_MASK			0X80
      +
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR5_SHIFT		6
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR5_WIDTH		1
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR5_MASK		0X40
      +
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR4_SHIFT		5
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR4_WIDTH		1
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR4_MASK		0X20
      +
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR3_SHIFT		4
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR3_WIDTH		1
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR3_MASK		0X10
      +
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR2_SHIFT		3
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR2_WIDTH		1
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR2_MASK		0X8
      +
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR1_SHIFT		2
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR1_WIDTH		1
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR1_MASK		0X4
      +
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR0_SHIFT		1
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR0_WIDTH		1
      +#define XDPDMA_EISR_DSCR_RD_AXI_ERR0_MASK		0X2
      +
      +#define XDPDMA_EISR_INV_APB_SHIFT			0
      +#define XDPDMA_EISR_INV_APB_WIDTH			1
      +#define XDPDMA_EISR_INV_APB_MASK			0X1
      +
      +/**
      + * Register: XDPDMA_EIMR
      + */
      +#define XDPDMA_EIMR					0X0018
      +
      +#define XDPDMA_EIMR_RD_CMD_FIFO_FULL_SHIFT		31
      +#define XDPDMA_EIMR_RD_CMD_FIFO_FULL_WIDTH		1
      +#define XDPDMA_EIMR_RD_CMD_FIFO_FULL_MASK		0X80000000
      +
      +#define XDPDMA_EIMR_DSCR_DONE_ERR5_SHIFT		30
      +#define XDPDMA_EIMR_DSCR_DONE_ERR5_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_DONE_ERR5_MASK			0X40000000
      +
      +#define XDPDMA_EIMR_DSCR_DONE_ERR4_SHIFT		29
      +#define XDPDMA_EIMR_DSCR_DONE_ERR4_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_DONE_ERR4_MASK			0X20000000
      +
      +#define XDPDMA_EIMR_DSCR_DONE_ERR3_SHIFT		28
      +#define XDPDMA_EIMR_DSCR_DONE_ERR3_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_DONE_ERR3_MASK			0X10000000
      +
      +#define XDPDMA_EIMR_DSCR_DONE_ERR2_SHIFT		27
      +#define XDPDMA_EIMR_DSCR_DONE_ERR2_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_DONE_ERR2_MASK			0X08000000
      +
      +#define XDPDMA_EIMR_DSCR_DONE_ERR1_SHIFT		26
      +#define XDPDMA_EIMR_DSCR_DONE_ERR1_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_DONE_ERR1_MASK			0X04000000
      +
      +#define XDPDMA_EIMR_DSCR_DONE_ERR0_SHIFT		25
      +#define XDPDMA_EIMR_DSCR_DONE_ERR0_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_DONE_ERR0_MASK			0X02000000
      +
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR5_SHIFT		24
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR5_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR5_MASK		0X01000000
      +
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR4_SHIFT		23
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR4_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR4_MASK		0X800000
      +
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR3_SHIFT		22
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR3_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR3_MASK		0X400000
      +
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR2_SHIFT		21
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR2_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR2_MASK		0X200000
      +
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR1_SHIFT		20
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR1_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR1_MASK		0X100000
      +
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR0_SHIFT		19
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR0_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_WR_AXI_ERR0_MASK		0X80000
      +
      +#define XDPDMA_EIMR_DSCR_CRC_ERR5_SHIFT			18
      +#define XDPDMA_EIMR_DSCR_CRC_ERR5_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_CRC_ERR5_MASK			0X40000
      +
      +#define XDPDMA_EIMR_DSCR_CRC_ERR4_SHIFT			17
      +#define XDPDMA_EIMR_DSCR_CRC_ERR4_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_CRC_ERR4_MASK			0X20000
      +
      +#define XDPDMA_EIMR_DSCR_CRC_ERR3_SHIFT			16
      +#define XDPDMA_EIMR_DSCR_CRC_ERR3_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_CRC_ERR3_MASK			0X10000
      +
      +#define XDPDMA_EIMR_DSCR_CRC_ERR2_SHIFT			15
      +#define XDPDMA_EIMR_DSCR_CRC_ERR2_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_CRC_ERR2_MASK			0X8000
      +
      +#define XDPDMA_EIMR_DSCR_CRC_ERR1_SHIFT			14
      +#define XDPDMA_EIMR_DSCR_CRC_ERR1_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_CRC_ERR1_MASK			0X4000
      +
      +#define XDPDMA_EIMR_DSCR_CRC_ERR0_SHIFT			13
      +#define XDPDMA_EIMR_DSCR_CRC_ERR0_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_CRC_ERR0_MASK			0X2000
      +
      +#define XDPDMA_EIMR_DSCR_PRE_ERR5_SHIFT			12
      +#define XDPDMA_EIMR_DSCR_PRE_ERR5_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_PRE_ERR5_MASK			0X1000
      +
      +#define XDPDMA_EIMR_DSCR_PRE_ERR4_SHIFT			11
      +#define XDPDMA_EIMR_DSCR_PRE_ERR4_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_PRE_ERR4_MASK			0X0800
      +
      +#define XDPDMA_EIMR_DSCR_PRE_ERR3_SHIFT			10
      +#define XDPDMA_EIMR_DSCR_PRE_ERR3_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_PRE_ERR3_MASK			0X0400
      +
      +#define XDPDMA_EIMR_DSCR_PRE_ERR2_SHIFT			9
      +#define XDPDMA_EIMR_DSCR_PRE_ERR2_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_PRE_ERR2_MASK			0X0200
      +
      +#define XDPDMA_EIMR_DSCR_PRE_ERR1_SHIFT			8
      +#define XDPDMA_EIMR_DSCR_PRE_ERR1_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_PRE_ERR1_MASK			0X0100
      +
      +#define XDPDMA_EIMR_DSCR_PRE_ERR0_SHIFT			7
      +#define XDPDMA_EIMR_DSCR_PRE_ERR0_WIDTH			1
      +#define XDPDMA_EIMR_DSCR_PRE_ERR0_MASK			0X80
      +
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR5_SHIFT		6
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR5_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR5_MASK		0X40
      +
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR4_SHIFT		5
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR4_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR4_MASK		0X20
      +
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR3_SHIFT		4
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR3_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR3_MASK		0X10
      +
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR2_SHIFT		3
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR2_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR2_MASK		0X8
      +
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR1_SHIFT		2
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR1_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR1_MASK		0X4
      +
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR0_SHIFT		1
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR0_WIDTH		1
      +#define XDPDMA_EIMR_DSCR_RD_AXI_ERR0_MASK		0X2
      +
      +#define XDPDMA_EIMR_INV_APB_SHIFT			0
      +#define XDPDMA_EIMR_INV_APB_WIDTH			1
      +#define XDPDMA_EIMR_INV_APB_MASK			0X1
      +
      +/**
      + * Register: XDPDMA_EIEN
      + */
      +#define XDPDMA_EIEN					0X001C
      +
      +#define XDPDMA_EIEN_RD_CMD_FIFO_FULL_SHIFT		31
      +#define XDPDMA_EIEN_RD_CMD_FIFO_FULL_WIDTH		1
      +#define XDPDMA_EIEN_RD_CMD_FIFO_FULL_MASK		0X80000000
      +
      +#define XDPDMA_EIEN_DSCR_DONE_ERR5_SHIFT		30
      +#define XDPDMA_EIEN_DSCR_DONE_ERR5_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_DONE_ERR5_MASK			0X40000000
      +
      +#define XDPDMA_EIEN_DSCR_DONE_ERR4_SHIFT		29
      +#define XDPDMA_EIEN_DSCR_DONE_ERR4_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_DONE_ERR4_MASK			0X20000000
      +
      +#define XDPDMA_EIEN_DSCR_DONE_ERR3_SHIFT		28
      +#define XDPDMA_EIEN_DSCR_DONE_ERR3_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_DONE_ERR3_MASK			0X10000000
      +
      +#define XDPDMA_EIEN_DSCR_DONE_ERR2_SHIFT		27
      +#define XDPDMA_EIEN_DSCR_DONE_ERR2_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_DONE_ERR2_MASK			0X08000000
      +
      +#define XDPDMA_EIEN_DSCR_DONE_ERR1_SHIFT		26
      +#define XDPDMA_EIEN_DSCR_DONE_ERR1_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_DONE_ERR1_MASK			0X04000000
      +
      +#define XDPDMA_EIEN_DSCR_DONE_ERR0_SHIFT		25
      +#define XDPDMA_EIEN_DSCR_DONE_ERR0_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_DONE_ERR0_MASK			0X02000000
      +
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR5_SHIFT		24
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR5_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR5_MASK		0X01000000
      +
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR4_SHIFT		23
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR4_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR4_MASK		0X800000
      +
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR3_SHIFT		22
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR3_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR3_MASK		0X400000
      +
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR2_SHIFT		21
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR2_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR2_MASK		0X200000
      +
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR1_SHIFT		20
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR1_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR1_MASK		0X100000
      +
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR0_SHIFT		19
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR0_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_WR_AXI_ERR0_MASK		0X80000
      +
      +#define XDPDMA_EIEN_DSCR_CRC_ERR5_SHIFT			18
      +#define XDPDMA_EIEN_DSCR_CRC_ERR5_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_CRC_ERR5_MASK			0X40000
      +
      +#define XDPDMA_EIEN_DSCR_CRC_ERR4_SHIFT			17
      +#define XDPDMA_EIEN_DSCR_CRC_ERR4_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_CRC_ERR4_MASK			0X20000
      +
      +#define XDPDMA_EIEN_DSCR_CRC_ERR3_SHIFT			16
      +#define XDPDMA_EIEN_DSCR_CRC_ERR3_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_CRC_ERR3_MASK			0X10000
      +
      +#define XDPDMA_EIEN_DSCR_CRC_ERR2_SHIFT			15
      +#define XDPDMA_EIEN_DSCR_CRC_ERR2_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_CRC_ERR2_MASK			0X8000
      +
      +#define XDPDMA_EIEN_DSCR_CRC_ERR1_SHIFT			14
      +#define XDPDMA_EIEN_DSCR_CRC_ERR1_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_CRC_ERR1_MASK			0X4000
      +
      +#define XDPDMA_EIEN_DSCR_CRC_ERR0_SHIFT			13
      +#define XDPDMA_EIEN_DSCR_CRC_ERR0_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_CRC_ERR0_MASK			0X2000
      +
      +#define XDPDMA_EIEN_DSCR_PRE_ERR5_SHIFT			12
      +#define XDPDMA_EIEN_DSCR_PRE_ERR5_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_PRE_ERR5_MASK			0X1000
      +
      +#define XDPDMA_EIEN_DSCR_PRE_ERR4_SHIFT			11
      +#define XDPDMA_EIEN_DSCR_PRE_ERR4_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_PRE_ERR4_MASK			0X0800
      +
      +#define XDPDMA_EIEN_DSCR_PRE_ERR3_SHIFT			10
      +#define XDPDMA_EIEN_DSCR_PRE_ERR3_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_PRE_ERR3_MASK			0X0400
      +
      +#define XDPDMA_EIEN_DSCR_PRE_ERR2_SHIFT			9
      +#define XDPDMA_EIEN_DSCR_PRE_ERR2_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_PRE_ERR2_MASK			0X0200
      +
      +#define XDPDMA_EIEN_DSCR_PRE_ERR1_SHIFT			8
      +#define XDPDMA_EIEN_DSCR_PRE_ERR1_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_PRE_ERR1_MASK			0X0100
      +
      +#define XDPDMA_EIEN_DSCR_PRE_ERR0_SHIFT			7
      +#define XDPDMA_EIEN_DSCR_PRE_ERR0_WIDTH			1
      +#define XDPDMA_EIEN_DSCR_PRE_ERR0_MASK			0X80
      +
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR5_SHIFT		6
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR5_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR5_MASK		0X40
      +
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR4_SHIFT		5
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR4_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR4_MASK		0X20
      +
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR3_SHIFT		4
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR3_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR3_MASK		0X10
      +
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR2_SHIFT		3
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR2_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR2_MASK		0X8
      +
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR1_SHIFT		2
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR1_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR1_MASK		0X4
      +
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR0_SHIFT		1
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR0_WIDTH		1
      +#define XDPDMA_EIEN_DSCR_RD_AXI_ERR0_MASK		0X2
      +
      +#define XDPDMA_EIEN_INV_APB_SHIFT			0
      +#define XDPDMA_EIEN_INV_APB_WIDTH			1
      +#define XDPDMA_EIEN_INV_APB_MASK			0X1
      +
      +/**
      + * Register: XDPDMA_EIDS
      + */
      +#define XDPDMA_EIDS					0X0020
      +
      +#define XDPDMA_EIDS_RD_CMD_FIFO_FULL_SHIFT		31
      +#define XDPDMA_EIDS_RD_CMD_FIFO_FULL_WIDTH		1
      +#define XDPDMA_EIDS_RD_CMD_FIFO_FULL_MASK		0X80000000
      +
      +#define XDPDMA_EIDS_DSCR_DONE_ERR5_SHIFT		30
      +#define XDPDMA_EIDS_DSCR_DONE_ERR5_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_DONE_ERR5_MASK			0X40000000
      +
      +#define XDPDMA_EIDS_DSCR_DONE_ERR4_SHIFT		29
      +#define XDPDMA_EIDS_DSCR_DONE_ERR4_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_DONE_ERR4_MASK			0X20000000
      +
      +#define XDPDMA_EIDS_DSCR_DONE_ERR3_SHIFT		28
      +#define XDPDMA_EIDS_DSCR_DONE_ERR3_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_DONE_ERR3_MASK			0X10000000
      +
      +#define XDPDMA_EIDS_DSCR_DONE_ERR2_SHIFT		27
      +#define XDPDMA_EIDS_DSCR_DONE_ERR2_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_DONE_ERR2_MASK			0X08000000
      +
      +#define XDPDMA_EIDS_DSCR_DONE_ERR1_SHIFT		26
      +#define XDPDMA_EIDS_DSCR_DONE_ERR1_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_DONE_ERR1_MASK			0X04000000
      +
      +#define XDPDMA_EIDS_DSCR_DONE_ERR0_SHIFT		25
      +#define XDPDMA_EIDS_DSCR_DONE_ERR0_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_DONE_ERR0_MASK			0X02000000
      +
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR5_SHIFT		24
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR5_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR5_MASK		0X01000000
      +
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR4_SHIFT		23
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR4_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR4_MASK		0X800000
      +
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR3_SHIFT		22
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR3_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR3_MASK		0X400000
      +
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR2_SHIFT		21
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR2_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR2_MASK		0X200000
      +
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR1_SHIFT		20
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR1_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR1_MASK		0X100000
      +
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR0_SHIFT		19
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR0_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_WR_AXI_ERR0_MASK		0X80000
      +
      +#define XDPDMA_EIDS_DSCR_CRC_ERR5_SHIFT			18
      +#define XDPDMA_EIDS_DSCR_CRC_ERR5_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_CRC_ERR5_MASK			0X40000
      +
      +#define XDPDMA_EIDS_DSCR_CRC_ERR4_SHIFT			17
      +#define XDPDMA_EIDS_DSCR_CRC_ERR4_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_CRC_ERR4_MASK			0X20000
      +
      +#define XDPDMA_EIDS_DSCR_CRC_ERR3_SHIFT			16
      +#define XDPDMA_EIDS_DSCR_CRC_ERR3_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_CRC_ERR3_MASK			0X10000
      +
      +#define XDPDMA_EIDS_DSCR_CRC_ERR2_SHIFT			15
      +#define XDPDMA_EIDS_DSCR_CRC_ERR2_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_CRC_ERR2_MASK			0X8000
      +
      +#define XDPDMA_EIDS_DSCR_CRC_ERR1_SHIFT			14
      +#define XDPDMA_EIDS_DSCR_CRC_ERR1_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_CRC_ERR1_MASK			0X4000
      +
      +#define XDPDMA_EIDS_DSCR_CRC_ERR0_SHIFT			13
      +#define XDPDMA_EIDS_DSCR_CRC_ERR0_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_CRC_ERR0_MASK			0X2000
      +
      +#define XDPDMA_EIDS_DSCR_PRE_ERR5_SHIFT			12
      +#define XDPDMA_EIDS_DSCR_PRE_ERR5_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_PRE_ERR5_MASK			0X1000
      +
      +#define XDPDMA_EIDS_DSCR_PRE_ERR4_SHIFT			11
      +#define XDPDMA_EIDS_DSCR_PRE_ERR4_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_PRE_ERR4_MASK			0X0800
      +
      +#define XDPDMA_EIDS_DSCR_PRE_ERR3_SHIFT			10
      +#define XDPDMA_EIDS_DSCR_PRE_ERR3_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_PRE_ERR3_MASK			0X0400
      +
      +#define XDPDMA_EIDS_DSCR_PRE_ERR2_SHIFT			9
      +#define XDPDMA_EIDS_DSCR_PRE_ERR2_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_PRE_ERR2_MASK			0X0200
      +
      +#define XDPDMA_EIDS_DSCR_PRE_ERR1_SHIFT			8
      +#define XDPDMA_EIDS_DSCR_PRE_ERR1_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_PRE_ERR1_MASK			0X0100
      +
      +#define XDPDMA_EIDS_DSCR_PRE_ERR0_SHIFT			7
      +#define XDPDMA_EIDS_DSCR_PRE_ERR0_WIDTH			1
      +#define XDPDMA_EIDS_DSCR_PRE_ERR0_MASK			0X80
      +
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR5_SHIFT		6
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR5_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR5_MASK		0X40
      +
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR4_SHIFT		5
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR4_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR4_MASK		0X20
      +
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR3_SHIFT		4
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR3_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR3_MASK		0X10
      +
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR2_SHIFT		3
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR2_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR2_MASK		0X8
      +
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR1_SHIFT		2
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR1_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR1_MASK		0X4
      +
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR0_SHIFT		1
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR0_WIDTH		1
      +#define XDPDMA_EIDS_DSCR_RD_AXI_ERR0_MASK		0X2
      +
      +#define XDPDMA_EIDS_INV_APB_SHIFT			0
      +#define XDPDMA_EIDS_INV_APB_WIDTH			1
      +#define XDPDMA_EIDS_INV_APB_MASK			0X1
      +
      +/**
      + * Register: XDPDMA_CNTL
      + */
      +#define XDPDMA_CNTL					0X0100
      +
      +/**
      + * Register: XDPDMA_GBL
      + */
      +#define XDPDMA_GBL					0X0104
      +
      +#define XDPDMA_GBL_RTRG_CH5_SHIFT			11
      +#define XDPDMA_GBL_RTRG_CH5_WIDTH			1
      +#define XDPDMA_GBL_RTRG_CH5_MASK			0X0800
      +
      +#define XDPDMA_GBL_RTRG_CH4_SHIFT			10
      +#define XDPDMA_GBL_RTRG_CH4_WIDTH			1
      +#define XDPDMA_GBL_RTRG_CH4_MASK			0X0400
      +
      +#define XDPDMA_GBL_RTRG_CH3_SHIFT			9
      +#define XDPDMA_GBL_RTRG_CH3_WIDTH			1
      +#define XDPDMA_GBL_RTRG_CH3_MASK			0X0200
      +
      +#define XDPDMA_GBL_RTRG_CH2_SHIFT			8
      +#define XDPDMA_GBL_RTRG_CH2_WIDTH			1
      +#define XDPDMA_GBL_RTRG_CH2_MASK			0X0100
      +
      +#define XDPDMA_GBL_RTRG_CH1_SHIFT			7
      +#define XDPDMA_GBL_RTRG_CH1_WIDTH			1
      +#define XDPDMA_GBL_RTRG_CH1_MASK			0X80
      +
      +#define XDPDMA_GBL_RTRG_CH0_SHIFT			6
      +#define XDPDMA_GBL_RTRG_CH0_WIDTH			1
      +#define XDPDMA_GBL_RTRG_CH0_MASK			0X40
      +
      +#define XDPDMA_GBL_TRG_CH5_SHIFT			5
      +#define XDPDMA_GBL_TRG_CH5_WIDTH			1
      +#define XDPDMA_GBL_TRG_CH5_MASK				0X20
      +
      +#define XDPDMA_GBL_TRG_CH4_SHIFT			4
      +#define XDPDMA_GBL_TRG_CH4_WIDTH			1
      +#define XDPDMA_GBL_TRG_CH4_MASK				0X10
      +
      +#define XDPDMA_GBL_TRG_CH3_SHIFT			3
      +#define XDPDMA_GBL_TRG_CH3_WIDTH			1
      +#define XDPDMA_GBL_TRG_CH3_MASK				0X8
      +
      +#define XDPDMA_GBL_TRG_CH2_SHIFT			2
      +#define XDPDMA_GBL_TRG_CH2_WIDTH			1
      +#define XDPDMA_GBL_TRG_CH2_MASK				0X4
      +
      +#define XDPDMA_GBL_TRG_CH1_SHIFT			1
      +#define XDPDMA_GBL_TRG_CH1_WIDTH			1
      +#define XDPDMA_GBL_TRG_CH1_MASK				0X2
      +
      +#define XDPDMA_GBL_TRG_CH0_SHIFT			0
      +#define XDPDMA_GBL_TRG_CH0_WIDTH			1
      +#define XDPDMA_GBL_TRG_CH0_MASK				0X1
      +
      +/**
      + * Register: XDPDMA_CH0_DSCR_STRT_ADDRE
      + */
      +#define XDPDMA_CH0_DSCR_STRT_ADDRE			0X0200
      +
      +/**
      + * Register: XDPDMA_CH0_DSCR_STRT_ADDR
      + */
      +#define XDPDMA_CH0_DSCR_STRT_ADDR			0X0204
      +
      +/**
      + * Register: XDPDMA_CH0_DSCR_NEXT_ADDRE
      + */
      +#define XDPDMA_CH0_DSCR_NEXT_ADDRE			0X0208
      +
      +/**
      + * Register: XDPDMA_CH0_DSCR_NEXT_ADDR
      + */
      +#define XDPDMA_CH0_DSCR_NEXT_ADDR			0X020C
      +
      +/**
      + * Register: XDPDMA_CH0_PYLD_CUR_ADDRE
      + */
      +#define XDPDMA_CH0_PYLD_CUR_ADDRE			0X0210
      +
      +/**
      + * Register: XDPDMA_CH0_PYLD_CUR_ADDR
      + */
      +#define XDPDMA_CH0_PYLD_CUR_ADDR			0X0214
      +
      +/**
      + * Register: XDPDMA_CH0_CNTL
      + */
      +#define XDPDMA_CH0_CNTL					0X0218
      +
      +#define XDPDMA_CNTL_QOS_VIDEO				0x11
      +
      +/**
      + * Register: XDPDMA_CH0_STATUS
      + */
      +#define XDPDMA_CH0_STATUS				0X021C
      +
      +/**
      + * Register: XDPDMA_CH0_VDO
      + */
      +#define XDPDMA_CH0_VDO					0X0220
      +
      +/**
      + * Register: XDPDMA_CH0_PYLD_SZ
      + */
      +#define XDPDMA_CH0_PYLD_SZ				0X0224
      +
      +/**
      + * Register: XDPDMA_CH0_DSCR_ID
      + */
      +#define XDPDMA_CH0_DSCR_ID				0X0228
      +
      +/**
      + * Register: XDPDMA_CH1_DSCR_STRT_ADDRE
      + */
      +#define XDPDMA_CH1_DSCR_STRT_ADDRE			0X0300
      +
      +/**
      + * Register: XDPDMA_CH1_DSCR_STRT_ADDR
      + */
      +#define XDPDMA_CH1_DSCR_STRT_ADDR			0X0304
      +
      +/**
      + * Register: XDPDMA_CH1_DSCR_NEXT_ADDRE
      + */
      +#define XDPDMA_CH1_DSCR_NEXT_ADDRE			0X0308
      +
      +/**
      + * Register: XDPDMA_CH1_DSCR_NEXT_ADDR
      + */
      +#define XDPDMA_CH1_DSCR_NEXT_ADDR			0X030C
      +
      +/**
      + * Register: XDPDMA_CH1_PYLD_CUR_ADDRE
      + */
      +#define XDPDMA_CH1_PYLD_CUR_ADDRE			0X0310
      +
      +/**
      + * Register: XDPDMA_CH1_PYLD_CUR_ADDR
      + */
      +#define XDPDMA_CH1_PYLD_CUR_ADDR			0X0314
      +
      +/**
      + * Register: XDPDMA_CH1_CNTL
      + */
      +#define XDPDMA_CH1_CNTL					0X0318
      +/**
      + * Register: XDPDMA_CH1_STATUS
      + */
      +#define XDPDMA_CH1_STATUS				0X031C
      +
      +/**
      + * Register: XDPDMA_CH1_VDO
      + */
      +#define XDPDMA_CH1_VDO					0X0320
      +
      +/**
      + * Register: XDPDMA_CH1_PYLD_SZ
      + */
      +#define XDPDMA_CH1_PYLD_SZ				0X0324
      +
      +/**
      + * Register: XDPDMA_CH1_DSCR_ID
      + */
      +#define XDPDMA_CH1_DSCR_ID				0X0328
      +
      +/**
      + * Register: XDPDMA_CH2_DSCR_STRT_ADDRE
      + */
      +#define XDPDMA_CH2_DSCR_STRT_ADDRE			0X0400
      +
      +/**
      + * Register: XDPDMA_CH2_DSCR_STRT_ADDR
      + */
      +#define XDPDMA_CH2_DSCR_STRT_ADDR			0X0404
      +
      +/**
      + * Register: XDPDMA_CH2_DSCR_NEXT_ADDRE
      + */
      +#define XDPDMA_CH2_DSCR_NEXT_ADDRE			0X0408
      +
      +/**
      + * Register: XDPDMA_CH2_DSCR_NEXT_ADDR
      + */
      +#define XDPDMA_CH2_DSCR_NEXT_ADDR			0X040C
      +
      +/**
      + * Register: XDPDMA_CH2_PYLD_CUR_ADDRE
      + */
      +#define XDPDMA_CH2_PYLD_CUR_ADDRE			0X0410
      +
      +/**
      + * Register: XDPDMA_CH2_PYLD_CUR_ADDR
      + */
      +#define XDPDMA_CH2_PYLD_CUR_ADDR			0X0414
      +
      +/**
      + * Register: XDPDMA_CH2_CNTL
      + */
      +#define XDPDMA_CH2_CNTL					0X0418
      +
      +/**
      + * Register: XDPDMA_CH2_STATUS
      + */
      +#define XDPDMA_CH2_STATUS				0X041C
      +
      +/**
      + * Register: XDPDMA_CH2_VDO
      + */
      +#define XDPDMA_CH2_VDO					0X0420
      +
      +/**
      + * Register: XDPDMA_CH2_PYLD_SZ
      + */
      +#define XDPDMA_CH2_PYLD_SZ				0X0424
      +
      +/**
      + * Register: XDPDMA_CH2_DSCR_ID
      + */
      +#define XDPDMA_CH2_DSCR_ID				0X0428
      +
      +/**
      + * Register: XDPDMA_CH3_DSCR_STRT_ADDRE
      + */
      +#define XDPDMA_CH3_DSCR_STRT_ADDRE			0X0500
      +
      +/**
      + * Register: XDPDMA_CH3_DSCR_STRT_ADDR
      + */
      +#define XDPDMA_CH3_DSCR_STRT_ADDR			0X0504
      +
      +/**
      + * Register: XDPDMA_CH3_DSCR_NEXT_ADDRE
      + */
      +#define XDPDMA_CH3_DSCR_NEXT_ADDRE			0X0508
      +
      +/**
      + * Register: XDPDMA_CH3_DSCR_NEXT_ADDR
      + */
      +#define XDPDMA_CH3_DSCR_NEXT_ADDR			0X050C
      +
      +/**
      + * Register: XDPDMA_CH3_PYLD_CUR_ADDRE
      + */
      +#define XDPDMA_CH3_PYLD_CUR_ADDRE			0X0510
      +
      +/**
      + * Register: XDPDMA_CH3_PYLD_CUR_ADDR
      + */
      +#define XDPDMA_CH3_PYLD_CUR_ADDR			0X0514
      +
      +/**
      + * Register: XDPDMA_CH3_CNTL
      + */
      +#define XDPDMA_CH3_CNTL					0X0518
      +/**
      + * Register: XDPDMA_CH3_STATUS
      + */
      +#define XDPDMA_CH3_STATUS				0X051C
      +
      +/**
      + * Register: XDPDMA_CH3_VDO
      + */
      +#define XDPDMA_CH3_VDO					0X0520
      +
      +/**
      + * Register: XDPDMA_CH3_PYLD_SZ
      + */
      +#define XDPDMA_CH3_PYLD_SZ				0X0524
      +
      +/**
      + * Register: XDPDMA_CH3_DSCR_ID
      + */
      +#define XDPDMA_CH3_DSCR_ID				0X0528
      +
      +/**
      + * Register: XDPDMA_CH4_DSCR_STRT_ADDRE
      + */
      +#define XDPDMA_CH4_DSCR_STRT_ADDRE			0X0600
      +
      +/**
      + * Register: XDPDMA_CH4_DSCR_STRT_ADDR
      + */
      +#define XDPDMA_CH4_DSCR_STRT_ADDR			0X0604
      +/**
      + * Register: XDPDMA_CH4_DSCR_NEXT_ADDRE
      + */
      +#define XDPDMA_CH4_DSCR_NEXT_ADDRE			0X0608
      +
      +/**
      + * Register: XDPDMA_CH4_DSCR_NEXT_ADDR
      + */
      +#define XDPDMA_CH4_DSCR_NEXT_ADDR			0X060C
      +
      +/**
      + * Register: XDPDMA_CH4_PYLD_CUR_ADDRE
      + */
      +#define XDPDMA_CH4_PYLD_CUR_ADDRE			0X0610
      +
      +/**
      + * Register: XDPDMA_CH4_PYLD_CUR_ADDR
      + */
      +#define XDPDMA_CH4_PYLD_CUR_ADDR			0X0614
      +
      +/**
      + * Register: XDPDMA_CH4_CNTL
      + */
      +#define XDPDMA_CH4_CNTL					0X0618
      +
      +/**
      + * Register: XDPDMA_CH4_STATUS
      + */
      +#define XDPDMA_CH4_STATUS				0X061C
      +
      +/**
      + * Register: XDPDMA_CH4_VDO
      + */
      +#define XDPDMA_CH4_VDO					0X0620
      +
      +/**
      + * Register: XDPDMA_CH4_PYLD_SZ
      + */
      +#define XDPDMA_CH4_PYLD_SZ				0X0624
      +
      +/**
      + * Register: XDPDMA_CH4_DSCR_ID
      + */
      +#define XDPDMA_CH4_DSCR_ID				0X0628
      +
      +/**
      + * Register: XDPDMA_CH5_DSCR_STRT_ADDRE
      + */
      +#define XDPDMA_CH5_DSCR_STRT_ADDRE			0X0700
      +
      +/**
      + * Register: XDPDMA_CH5_DSCR_STRT_ADDR
      + */
      +#define XDPDMA_CH5_DSCR_STRT_ADDR			0X0704
      +
      +/**
      + * Register: XDPDMA_CH5_DSCR_NEXT_ADDRE
      + */
      +#define XDPDMA_CH5_DSCR_NEXT_ADDRE			0X0708
      +
      +/**
      + * Register: XDPDMA_CH5_DSCR_NEXT_ADDR
      + */
      +#define XDPDMA_CH5_DSCR_NEXT_ADDR			0X070C
      +
      +/**
      + * Register: XDPDMA_CH5_PYLD_CUR_ADDRE
      + */
      +#define XDPDMA_CH5_PYLD_CUR_ADDRE			0X0710
      +
      +/**
      + * Register: XDPDMA_CH5_PYLD_CUR_ADDR
      + */
      +#define XDPDMA_CH5_PYLD_CUR_ADDR			0X0714
      +
      +/**
      + * Register: XDPDMA_CH5_CNTL
      + */
      +#define XDPDMA_CH5_CNTL					0X0718
      +
      +/**
      + * Register: XDPDMA_CH5_STATUS
      + */
      +#define XDPDMA_CH5_STATUS				0X071C
      +
      +/**
      + * Register: XDPDMA_CH5_VDO
      + */
      +#define XDPDMA_CH5_VDO					0X0720
      +
      +/**
      + * Register: XDPDMA_CH5_PYLD_SZ
      + */
      +#define XDPDMA_CH5_PYLD_SZ				0X0724
      +
      +/**
      + * Register: XDPDMA_CH5_DSCR_ID
      + */
      +#define XDPDMA_CH5_DSCR_ID				0X0728
      +
      +
      +#define XDPDMA_CH_DSCR_STRT_ADDRE_MSB_SHIFT		0
      +#define XDPDMA_CH_DSCR_STRT_ADDRE_MSB_WIDTH		16
      +#define XDPDMA_CH_DSCR_STRT_ADDRE_MSB_MASK		0XFFFF
      +
      +
      +#define XDPDMA_CH_DSCR_STRT_ADDR_LSB_SHIFT		0
      +#define XDPDMA_CH_DSCR_STRT_ADDR_LSB_WIDTH		32
      +#define XDPDMA_CH_DSCR_STRT_ADDR_LSB_MASK		0XFFFFFFFF
      +
      +
      +#define XDPDMA_CH_DSCR_NEXT_ADDRE_MSB_SHIFT		0
      +#define XDPDMA_CH_DSCR_NEXT_ADDRE_MSB_WIDTH		16
      +#define XDPDMA_CH_DSCR_NEXT_ADDRE_MSB_MASK		0XFFFF
      +
      +
      +#define XDPDMA_CH_DSCR_NEXT_ADDR_LSB_SHIFT		0
      +#define XDPDMA_CH_DSCR_NEXT_ADDR_LSB_WIDTH		32
      +#define XDPDMA_CH_DSCR_NEXT_ADDR_LSB_MASK		0XFFFFFFFF
      +
      +
      +#define XDPDMA_CH_PYLD_CUR_ADDRE_MSB_SHIFT		0
      +#define XDPDMA_CH_PYLD_CUR_ADDRE_MSB_WIDTH		16
      +#define XDPDMA_CH_PYLD_CUR_ADDRE_MSB_MASK		0XFFFF
      +
      +#define XDPDMA_CH_PYLD_CUR_ADDR_LSB_SHIFT		0
      +#define XDPDMA_CH_PYLD_CUR_ADDR_LSB_WIDTH		32
      +#define XDPDMA_CH_PYLD_CUR_ADDR_LSB_MASK		0XFFFFFFFF
      +
      +#define XDPDMA_CH_CNTL_DSCR_AXCACHE_SHIFT		16
      +#define XDPDMA_CH_CNTL_DSCR_AXCACHE_WIDTH		4
      +#define XDPDMA_CH_CNTL_DSCR_AXCACHE_MASK		0XF0000
      +
      +#define XDPDMA_CH_CNTL_DSCR_AXPROT_SHIFT		14
      +#define XDPDMA_CH_CNTL_DSCR_AXPROT_WIDTH		2
      +#define XDPDMA_CH_CNTL_DSCR_AXPROT_MASK			0XC000
      +
      +#define XDPDMA_CH_CNTL_QOS_DATA_RD_SHIFT		10
      +#define XDPDMA_CH_CNTL_QOS_DATA_RD_WIDTH		4
      +#define XDPDMA_CH_CNTL_QOS_DATA_RD_MASK			0X3C00
      +
      +#define XDPDMA_CH_CNTL_QOS_DSCR_RD_SHIFT		6
      +#define XDPDMA_CH_CNTL_QOS_DSCR_RD_WIDTH		4
      +#define XDPDMA_CH_CNTL_QOS_DSCR_RD_MASK			0X03C0
      +
      +#define XDPDMA_CH_CNTL_QOS_DSCR_WR_SHIFT		2
      +#define XDPDMA_CH_CNTL_QOS_DSCR_WR_WIDTH		4
      +#define XDPDMA_CH_CNTL_QOS_DSCR_WR_MASK			0X3C
      +
      +#define XDPDMA_CH_CNTL_PAUSE_SHIFT			1
      +#define XDPDMA_CH_CNTL_PAUSE_WIDTH			1
      +#define XDPDMA_CH_CNTL_PAUSE_MASK			0X2
      +
      +#define XDPDMA_CH_CNTL_EN_SHIFT				0
      +#define XDPDMA_CH_CNTL_EN_WIDTH				1
      +#define XDPDMA_CH_CNTL_EN_MASK				0X1
      +
      +
      +#define XDPDMA_CH_STATUS_OTRAN_CNT_SHIFT		21
      +#define XDPDMA_CH_STATUS_OTRAN_CNT_WIDTH		4
      +#define XDPDMA_CH_STATUS_OTRAN_CNT_MASK			0X01E00000
      +
      +#define XDPDMA_CH_STATUS_PREAMBLE_SHIFT			13
      +#define XDPDMA_CH_STATUS_PREAMBLE_WIDTH			8
      +#define XDPDMA_CH_STATUS_PREAMBLE_MASK			0X1FE000
      +
      +#define XDPDMA_CH_STATUS_EN_DSCR_INTR_SHIFT		12
      +#define XDPDMA_CH_STATUS_EN_DSCR_INTR_WIDTH		1
      +#define XDPDMA_CH_STATUS_EN_DSCR_INTR_MASK		0X1000
      +
      +#define XDPDMA_CH_STATUS_EN_DSCR_UP_SHIFT		11
      +#define XDPDMA_CH_STATUS_EN_DSCR_UP_WIDTH		1
      +#define XDPDMA_CH_STATUS_EN_DSCR_UP_MASK		0X0800
      +
      +#define XDPDMA_CH_STATUS_DSCR_DONE_SHIFT		10
      +#define XDPDMA_CH_STATUS_DSCR_DONE_WIDTH		1
      +#define XDPDMA_CH_STATUS_DSCR_DONE_MASK			0X0400
      +
      +#define XDPDMA_CH_STATUS_IGNR_DONE_SHIFT		9
      +#define XDPDMA_CH_STATUS_IGNR_DONE_WIDTH		1
      +#define XDPDMA_CH_STATUS_IGNR_DONE_MASK			0X0200
      +
      +#define XDPDMA_CH_STATUS_LDSCR_FRAME_SHIFT		8
      +#define XDPDMA_CH_STATUS_LDSCR_FRAME_WIDTH		1
      +#define XDPDMA_CH_STATUS_LDSCR_FRAME_MASK		0X0100
      +
      +#define XDPDMA_CH_STATUS_LAST_DSCR_SHIFT		7
      +#define XDPDMA_CH_STATUS_LAST_DSCR_WIDTH		1
      +#define XDPDMA_CH_STATUS_LAST_DSCR_MASK			0X80
      +
      +#define XDPDMA_CH_STATUS_EN_CRC_SHIFT			6
      +#define XDPDMA_CH_STATUS_EN_CRC_WIDTH			1
      +#define XDPDMA_CH_STATUS_EN_CRC_MASK			0X40
      +
      +#define XDPDMA_CH_STATUS_MODE_SHIFT			5
      +#define XDPDMA_CH_STATUS_MODE_WIDTH			1
      +#define XDPDMA_CH_STATUS_MODE_MASK			0X20
      +
      +#define XDPDMA_CH_STATUS_BURST_TYPE_SHIFT		4
      +#define XDPDMA_CH_STATUS_BURST_TYPE_WIDTH		1
      +#define XDPDMA_CH_STATUS_BURST_TYPE_MASK		0X10
      +
      +#define XDPDMA_CH_STATUS_BURST_LEN_SHIFT		0
      +#define XDPDMA_CH_STATUS_BURST_LEN_WIDTH		4
      +#define XDPDMA_CH_STATUS_BURST_LEN_MASK			0XF
      +
      +
      +#define XDPDMA_CH_VDO_LINE_LENGTH_SHIFT			14
      +#define XDPDMA_CH_VDO_LINE_LENGTH_WIDTH			18
      +#define XDPDMA_CH_VDO_LINE_LENGTH_MASK			0XFFFFC000
      +
      +#define XDPDMA_CH_VDO_STRIDE_SHIFT			0
      +#define XDPDMA_CH_VDO_STRIDE_WIDTH			14
      +#define XDPDMA_CH_VDO_STRIDE_MASK			0X3FFF
      +
      +#define XDPDMA_CH_PYLD_SZ_BYTE_SHIFT			0
      +#define XDPDMA_CH_PYLD_SZ_BYTE_WIDTH			32
      +#define XDPDMA_CH_PYLD_SZ_BYTE_MASK			0XFFFFFFFF
      +
      +#define XDPDMA_CH_DSCR_ID_VAL_SHIFT			0
      +#define XDPDMA_CH_DSCR_ID_VAL_WIDTH			16
      +#define XDPDMA_CH_DSCR_ID_VAL_MASK			0XFFFF
      +
      +/**
      + * Register: XDPDMA_ECO
      + */
      +#define XDPDMA_ECO					0X0FFC
      +
      +#define XDPDMA_ECO_VAL_SHIFT				0
      +#define XDPDMA_ECO_VAL_WIDTH				32
      +#define XDPDMA_ECO_VAL_MASK				0XFFFFFFFF
      +
      +/**
      + * DPDMA descriptor
      + */
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_PREAMBLE_SHIFT		0
      +#define XDPDMA_DESCRIPTOR_CONTROL_PREAMBLE_WIDTH		8
      +#define XDPDMA_DESCRIPTOR_CONTROL_PREAMBLE_MASK			0XFF
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_EN_COMP_INTR_SHIFT		8
      +#define XDPDMA_DESCRIPTOR_CONTROL_EN_COMP_INTR_WIDTH		1
      +#define XDPDMA_DESCRIPTOR_CONTROL_EN_COMP_INTR_MASK		0X0100
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_EN_DESC_UPDATE_SHIFT		9
      +#define XDPDMA_DESCRIPTOR_CONTROL_EN_DESC_UPDATE_WIDTH		1
      +#define XDPDMA_DESCRIPTOR_CONTROL_EN_DESC_UPDATE_MASK		0X0200
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_IGNORE_DONE_SHIFT		10
      +#define XDPDMA_DESCRIPTOR_CONTROL_IGNORE_DONE_WIDTH		1
      +#define XDPDMA_DESCRIPTOR_CONTROL_IGNORE_DONE_MASK		0X0400
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_AXI_BURST_TYPE_SHIFT		11
      +#define XDPDMA_DESCRIPTOR_CONTROL_AXI_BURST_TYPE_WIDTH		1
      +#define XDPDMA_DESCRIPTOR_CONTROL_AXI_BURST_TYPE_MASK		0X0800
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_AXACACHE_SHIFT		12
      +#define XDPDMA_DESCRIPTOR_CONTROL_AXACACHE_WIDTH		4
      +#define XDPDMA_DESCRIPTOR_CONTROL_AXACACHE_MASK			0XF000
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_AXPROT_SHIFT			16
      +#define XDPDMA_DESCRIPTOR_CONTROL_AXPROT_WIDTH			2
      +#define XDPDMA_DESCRIPTOR_CONTROL_AXPROT_MASK			0X30000
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_MODE_SHIFT			18
      +#define XDPDMA_DESCRIPTOR_CONTROL_MODE_WIDTH			1
      +#define XDPDMA_DESCRIPTOR_CONTROL_MODE_MASK			0X40000
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_SHIFT		19
      +#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_WIDTH		1
      +#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_MASK		0X80000
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_ENABLE_CRC_SHIFT		20
      +#define XDPDMA_DESCRIPTOR_CONTROL_ENABLE_CRC_WIDTH		1
      +#define XDPDMA_DESCRIPTOR_CONTROL_ENABLE_CRC_MASK		0x00100000
      +
      +#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_FRAME_SHIFT		21
      +#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_FRAME_WIDTH		1
      +#define XDPDMA_DESCRIPTOR_CONTROL_LAST_DESC_FRAME_MASK		0X200000
      +
      +#define XDPDMA_DESCRIPTOR_DSCR_ID_SHIFT				0
      +#define XDPDMA_DESCRIPTOR_DSCR_ID_WIDTH				16
      +#define XDPDMA_DESCRIPTOR_DSCR_ID_MASK				0XFFFF
      +
      +#define XDPDMA_DESCRIPTOR_XFER_SIZE_SHIFT			0
      +#define XDPDMA_DESCRIPTOR_XFER_SIZE_WIDTH			32
      +#define XDPDMA_DESCRIPTOR_XFER_SIZE_MASK			0x0000FFFF
      +
      +#define XDPDMA_DESCRIPTOR_LINE_SIZE_HZ_RES_SHIFT		0
      +#define XDPDMA_DESCRIPTOR_LINE_SIZE_HZ_RES_WIDTH		18
      +#define XDPDMA_DESCRIPTOR_LINE_SIZE_HZ_RES_MASK			0X3FFFF
      +
      +#define XDPDMA_DESCRIPTOR_LINE_SIZE_STRIDE_SHIFT		18
      +#define XDPDMA_DESCRIPTOR_LINE_SIZE_STRIDE_WIDTH		14
      +#define XDPDMA_DESCRIPTOR_LINE_SIZE_STRIDE_MASK			0XFFFC0000
      +
      +#define XDPDMA_DESCRIPTOR_TS_LSB_SHIFT				0
      +#define XDPDMA_DESCRIPTOR_TS_LSB_WIDTH				32
      +#define XDPDMA_DESCRIPTOR_TS_LSB_MASK				0XFFFFFFFF
      +
      +#define XDPDMA_DESCRIPTOR_TS_MSB_SHIFT				0
      +#define XDPDMA_DESCRIPTOR_TS_MSB_WIDTH				32
      +#define XDPDMA_DESCRIPTOR_TS_MSB_MASK				0XFFFFFFFF
      +
      +#define XDPDMA_DESCRIPTOR_TS_MSB_TS_SHIFT			0
      +#define XDPDMA_DESCRIPTOR_TS_MSB_TS_WIDTH			9
      +#define XDPDMA_DESCRIPTOR_TS_MSB_TS_MASK			0X01FF
      +
      +#define XDPDMA_DESCRIPTOR_TS_MSB_STATUS_SHIFT			31
      +#define XDPDMA_DESCRIPTOR_TS_MSB_STATUS_WIDTH			1
      +#define XDPDMA_DESCRIPTOR_TS_MSB_STATUS_MASK			0X80000000
      +
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT_DSC_NXT_SHIFT		0
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT_DSC_NXT_WIDTH		16
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT_DSC_NXT_MASK			0XFFFF
      +
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT_SRC_ADDR_EXT_SHIFT		16
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT_SRC_ADDR_EXT_WIDTH		16
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT_SRC_ADDR_EXT_MASK		0XFFFF0000
      +
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT23_2_SHIFT			0
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT23_2_WIDTH			16
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT23_2_MASK			0XFFFF
      +
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT23_3_SHIFT			16
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT23_3_WIDTH			16
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT23_3_MASK			0xFFFF0000
      +
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT45_4_SHIFT			0
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT45_4_WIDTH			16
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT45_4_MASK			0XFFFF
      +
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT45_5_SHIFT			16
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT45_5_WIDTH			16
      +#define XDPDMA_DESCRIPTOR_ADDR_EXT45_5_MASK			0XFFFF0000
      +
      +#define XDPDMA_DESCRIPTOR_NEXT_DESR_SHIFT			0
      +#define XDPDMA_DESCRIPTOR_NEXT_DESR_WIDTH			32
      +#define XDPDMA_DESCRIPTOR_NEXT_DESR_MASK			0XFFFFFFFF
      +
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR_SHIFT			0
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR_WIDTH			32
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR_MASK				0XFFFFFFFF
      +
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR2_SHIFT			0
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR2_WIDTH			32
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR2_MASK			0XFFFFFFFF
      +
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR3_SHIFT			0
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR3_WIDTH			32
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR3_MASK			0XFFFFFFFF
      +
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR4_SHIFT			0
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR4_WIDTH			32
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR4_MASK			0XFFFFFFFF
      +
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR5_SHIFT			0
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR5_WIDTH			32
      +#define XDPDMA_DESCRIPTOR_SRC_ADDR5_MASK			0XFFFFFFFF
      +
      +#define XDPDMA_TRIGGER_EN					1
      +#define XDPDMA_RETRIGGER_EN					2
      +#define XDPDMA_TRIGGER_DONE					0
      +#define XDPDMA_RETRIGGER_DONE					0
      +/* @} */
      +
      +/******************* Macros (Inline Functions Definitions ********************/
      +
      +/** @name Register access macro definitions.
      +  * @{
      +  */
      +#define XDpDma_In32 Xil_In32
      +#define XDpDma_Out32 Xil_Out32
      +/* @} */
      +
      +/******************************************************************************/
      +/**
      + * This is a low-level function that reads from the specified register.
      + *
      + * @param	BaseAddress is the base address of the device.
      + * @param	RegOffset is the register offset to be read from.
      + *
      + * @return	The 32-bit value of the specified register.
      + *
      + * @note	C-style signature:
      + *		u32 XDpDma_ReadReg(u32 BaseAddress, u32 RegOffset
      + *
      +*******************************************************************************/
      +#define XDpDma_ReadReg(BaseAddress, RegOffset) \
      +					XDpDma_In32((BaseAddress) + (RegOffset))
      +
      +/******************************************************************************/
      +/**
      + * This is a low-level function that writes to the specified register.
      + *
      + * @param	BaseAddress is the base address of the device.
      + * @param	RegOffset is the register offset to write to.
      + * @param	Data is the 32-bit data to write to the specified register.
      + *
      + * @return	None.
      + *
      + * @note	C-style signature:
      + *		void XDpDma_WriteReg(u32 BaseAddress, u32 RegOffset, u32 Data)
      + *
      +*******************************************************************************/
      +#define XDpDma_WriteReg(BaseAddress, RegOffset, Data) \
      +				XDpDma_Out32((BaseAddress) + (RegOffset), (Data))
      +
      +
      +/******************************************************************************/
      +/**
      + * This is a low-level function that writes to the specified register.
      + *
      + * @param	BaseAddress is the base address of the device.
      + * @param	RegOffset is the register offset to write to.
      + * @param	Data is the 32-bit data to write to the specified register.
      + * @param	Mask is the 32-bit field to which data is to be written
      + *
      + * @return	None.
      + *
      + * @note	C-style signature:
      + *		void XDpDma_ReadModifyWrite(u32 BaseAddress,
      + *							u32 RegOffset, u32 Data)
      + *
      +*******************************************************************************/
      +#define XDpDma_ReadModifyWrite(BaseAddress, RegOffset, Data, Mask) \
      +				XDpDma_WriteReg((BaseAddress), (RegOffset), \
      +				((XDpDma_ReadReg(BaseAddress, RegOffset) &  \
      +				 ~(Mask)) | Data))
      +
      +#ifdef __cplusplus
      +}
      +#endif
      +
      +
      +#endif /* _XDPDMAHW_H_ */
      diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_intr.c
      new file mode 100644
      index 000000000..80b175db6
      --- /dev/null
      +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_intr.c
      @@ -0,0 +1,166 @@
      +/*******************************************************************************
      + *
      + * Copyright (C) 2017 Xilinx, Inc.  All rights reserved.
      + *
      + * Permission is hereby granted, free of charge, to any person obtaining a copy
      + * of this software and associated documentation files (the "Software"), to deal
      + * in the Software without restriction, including without limitation the rights
      + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      + * copies of the Software, and to permit persons to whom the Software is
      + * furnished to do so, subject to the following conditions:
      + *
      + * The above copyright notice and this permission notice shall be included in
      + * all copies or substantial portions of the Software.
      + *
      + * Use of the Software is limited solely to applications:
      + * (a) running on a Xilinx device, or
      + * (b) that interact with a Xilinx device through a bus or interconnect.
      + *
      + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
      + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
      + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
      + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
      + * SOFTWARE.
      + *
      + * Except as contained in this notice, the name of the Xilinx shall not be used
      + * in advertising or otherwise to promote the sale, use or other dealings in
      + * this Software without prior written authorization from Xilinx.
      + *
      +*******************************************************************************/
      +/******************************************************************************/
      +/**
      + *
      + * @file xdppsu_intr.c
      + *
      + * This file contains functions related to XDpPsu interrupt handling.
      + *
      + * @note	None.
      + *
      + * 
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   aad  01/17/17 Initial release.
      + * 
      + * +*******************************************************************************/ + +/******************************* Include Files ********************************/ +#include "xdpdma.h" + + +/*************************************************************************/ +/** + * + * This function enables the interrupts that are required. + * + * @param InstancePtr is pointer to the instance of DPDMA + * + * @return None. + * + * @note None. + * + * **************************************************************************/ +void XDpDma_InterruptEnable(XDpDma *InstancePtr, u32 Mask) +{ + XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_IEN, Mask); +} + +/*************************************************************************/ +/** + * + * This function handles the interrupts generated by DPDMA + * + * @param InstancePtr is pointer to the instance of the DPDMA + * + * @return None. + * + * @note None. + * + * **************************************************************************/ +void XDpDma_InterruptHandler(XDpDma *InstancePtr) +{ + u32 RegVal; + RegVal = XDpDma_ReadReg(InstancePtr->Config.BaseAddr, + XDPDMA_ISR); + if(RegVal & XDPDMA_ISR_VSYNC_INT_MASK) { + XDpDma_VSyncHandler(InstancePtr); + } + + if(RegVal & XDPDMA_ISR_DSCR_DONE4_MASK) { + XDpDma_SetChannelState(InstancePtr, AudioChan0, XDPDMA_DISABLE); + InstancePtr->Audio[0].Current = NULL; + XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_ISR, + XDPDMA_ISR_DSCR_DONE4_MASK); + } + + if(RegVal & XDPDMA_ISR_DSCR_DONE5_MASK) { + XDpDma_SetChannelState(InstancePtr, AudioChan1, XDPDMA_DISABLE); + InstancePtr->Audio[1].Current = NULL; + XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_ISR, + XDPDMA_ISR_DSCR_DONE5_MASK); + } +} + +/*************************************************************************/ +/** + * + * This function handles frame new frames on VSync + * + * @param InstancePtr is pointer to the instance of the driver. + * + * @return None. + * + * @note None. + * + * **************************************************************************/ +void XDpDma_VSyncHandler(XDpDma *InstancePtr) +{ + Xil_AssertVoid(InstancePtr != NULL); + + /* Video Channel Trigger/Retrigger Handler */ + if(InstancePtr->Video.TriggerStatus == XDPDMA_TRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, VideoChan); + XDpDma_SetChannelState(InstancePtr, VideoChan, + XDPDMA_ENABLE); + XDpDma_Trigger(InstancePtr, VideoChan); + } + else if(InstancePtr->Video.TriggerStatus == XDPDMA_RETRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, VideoChan); + XDpDma_ReTrigger(InstancePtr, VideoChan); + } + + /* Graphics Channel Trigger/Retrigger Handler */ + if(InstancePtr->Gfx.TriggerStatus == XDPDMA_TRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, GraphicsChan); + XDpDma_SetChannelState(InstancePtr, GraphicsChan, + XDPDMA_ENABLE); + XDpDma_Trigger(InstancePtr, GraphicsChan); + } + else if(InstancePtr->Gfx.TriggerStatus == XDPDMA_RETRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, GraphicsChan); + XDpDma_ReTrigger(InstancePtr, GraphicsChan); + } + + /* Audio Channel 0 Trigger Handler */ + if(InstancePtr->Audio[0].TriggerStatus == XDPDMA_TRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, AudioChan0); + XDpDma_SetChannelState(InstancePtr, AudioChan0, + XDPDMA_ENABLE); + XDpDma_Trigger(InstancePtr, AudioChan0); + } + + /* Audio Channel 1 Trigger Handler */ + if(InstancePtr->Audio[1].TriggerStatus == XDPDMA_TRIGGER_EN) { + XDpDma_SetupChannel(InstancePtr, AudioChan1); + XDpDma_SetChannelState(InstancePtr, AudioChan1, + XDPDMA_ENABLE); + XDpDma_Trigger(InstancePtr, AudioChan1); + } + /* Clear VSync Interrupt */ + XDpDma_WriteReg(InstancePtr->Config.BaseAddr, XDPDMA_ISR, + XDPDMA_ISR_VSYNC_INT_MASK); +} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_sinit.c new file mode 100644 index 000000000..8f062681b --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/dpdma_v1_0/src/xdpdma_sinit.c @@ -0,0 +1,96 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xdpdma_sinit.c + * @addtogroup dpdma_v1_0 + * @{ + * + * This file contains static initialization methods for the XDpDma driver. + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   aad  01/20/15 Initial release.
      + * 
      + * +*******************************************************************************/ + +/******************************* Include Files ********************************/ + +#include "xdpdma.h" +#include "xparameters.h" + +/*************************** Variable Declarations ****************************/ + +/** + * A table of configuration structures containing the configuration information + * for each DisplayPort TX core in the system. + */ +extern XDpDma_Config XDpDma_ConfigTable[XPAR_XDPDMA_NUM_INSTANCES]; + +/**************************** Function Definitions ****************************/ + +/******************************************************************************/ +/** + * This function looks for the device configuration based on the unique device + * ID. The table XDpDma_ConfigTable[] contains the configuration information for + * each device in the system. + * + * @param DeviceId is the unique device ID of the device being looked up. + * + * @return A pointer to the configuration table entry corresponding to the + * given device ID, or NULL if no match is found. + * + * @note None. + * +*******************************************************************************/ +XDpDma_Config *XDpDma_LookupConfig(u16 DeviceId) +{ + XDpDma_Config *CfgPtr; + u32 Index; + + for (Index = 0; Index < XPAR_XDPDMA_NUM_INSTANCES; Index++) { + if (XDpDma_ConfigTable[Index].DeviceId == DeviceId) { + CfgPtr = &XDpDma_ConfigTable[Index]; + break; + } + } + + return CfgPtr; +} +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps.c index 26df03c3d..c013c4946 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps.c @@ -33,7 +33,7 @@ /** * * @file xemacps.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * The XEmacPs driver. Functions in this file are the minimum required functions @@ -52,6 +52,8 @@ * Disable extended mode. Perform all 64 bit changes under * check for arch64. * 3.1 hk 08/10/15 Update upper 32 bit tx and rx queue ptr registers +* 3.5 hk 08/14/17 Update cache coherency information of the interface in +* its config structure. * *
      ******************************************************************************/ @@ -107,6 +109,7 @@ LONG XEmacPs_CfgInitialize(XEmacPs *InstancePtr, XEmacPs_Config * CfgPtr, /* Set device base address and ID */ InstancePtr->Config.DeviceId = CfgPtr->DeviceId; InstancePtr->Config.BaseAddress = EffectiveAddress; + InstancePtr->Config.IsCacheCoherent = CfgPtr->IsCacheCoherent; /* Set callbacks to an initial stub routine */ InstancePtr->SendHandler = ((XEmacPs_Handler)((void*)XEmacPs_StubHandler)); diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps.h similarity index 97% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps.h index f12092bec..6d4b15b24 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps.h @@ -33,7 +33,7 @@ /** * * @file xemacps.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * @details * @@ -316,6 +316,21 @@ * there is no error. CR# 869403 * 08/10/15 Update upper 32 bit tx and rx queue ptr registers. * 3.2 hk 02/22/16 Added SGMII support for Zynq Ultrascale+ MPSoC. + * 3.4 ms 01/23/17 Modified xil_printf statement in main function for all + * examples to ensure that "Successfully ran" and "Failed" + * strings are available in all examples. This is a fix + * for CR-965028. + * ms 03/17/17 Modified text file in examples folder for doxygen + * generation. + * ms 04/05/17 Added tabspace for return statements in functions of + * xemacps_ieee1588_example.c for proper documentation + * while generating doxygen. + * 3.5 hk 08/14/17 Update cache coherency information of the interface in + * its config structure. + * 3.6 rb 09/08/17 HwCnt variable (in XEmacPs_BdRing structure) is + * changed to volatile. + * Add API XEmacPs_BdRingPtrReset() to reset pointers + * *
      * ****************************************************************************/ @@ -513,6 +528,8 @@ typedef void (*XEmacPs_ErrHandler) (void *CallBackRef, u8 Direction, typedef struct { u16 DeviceId; /**< Unique ID of device */ UINTPTR BaseAddress;/**< Physical base address of IPIF registers */ + u8 IsCacheCoherent; /**< Applicable only to A53 in EL1 mode; + * describes whether Cache Coherent or not */ } XEmacPs_Config; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_bd.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_bd.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_bd.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_bd.h index 52c5f7e7e..83f9a87fc 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_bd.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_bd.h @@ -33,7 +33,7 @@ /** * * @file xemacps_bd.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This header provides operations to manage buffer descriptors in support diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_bdring.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_bdring.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_bdring.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_bdring.c index d837e1df1..3536873dc 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_bdring.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_bdring.c @@ -33,7 +33,7 @@ /** * * @file xemacps_bdring.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This file implements buffer descriptor ring related functions. @@ -57,6 +57,8 @@ * from uncached area. Fix for CR #663885. * 2.1 srt 07/15/14 Add support for Zynq Ultrascale Mp architecture. * 3.0 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. +* 3.6 rb 09/08/17 Add XEmacPs_BdRingPtrReset() API to reset BD ring +* pointers * *
      ******************************************************************************/ @@ -505,7 +507,7 @@ LONG XEmacPs_BdRingUnAlloc(XEmacPs_BdRing * RingPtr, u32 NumBd, XEmacPs_Bd * BdSetPtr) { LONG Status; - (void *)BdSetPtr; + (void) BdSetPtr; Xil_AssertNonvoid(RingPtr != NULL); Xil_AssertNonvoid(BdSetPtr != NULL); @@ -1072,4 +1074,29 @@ static void XEmacPs_BdSetTxWrap(UINTPTR BdPtr) *TempPtr = DataValueTx; } } + +/*****************************************************************************/ +/** + * Reset BD ring head and tail pointers. + * + * @param RingPtr is the instance to be worked on. + * @param VirtAddr is the virtual base address of the user memory region. + * + * @note + * Should be called after XEmacPs_Stop() + * + * @note + * C-style signature: + * void XEmacPs_BdRingPtrReset(XEmacPs_BdRing * RingPtr, void *virtaddrloc) + * + *****************************************************************************/ +void XEmacPs_BdRingPtrReset(XEmacPs_BdRing * RingPtr, void *virtaddrloc) +{ + RingPtr->FreeHead = virtaddrloc; + RingPtr->PreHead = virtaddrloc; + RingPtr->HwHead = virtaddrloc; + RingPtr->HwTail = virtaddrloc; + RingPtr->PostHead = virtaddrloc; +} + /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_bdring.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_bdring.h similarity index 97% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_bdring.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_bdring.h index de78cf28f..b89e89885 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_bdring.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_bdring.h @@ -33,7 +33,7 @@ /** * * @file xemacps_bdring.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * The Xiline EmacPs Buffer Descriptor ring driver. This is part of EmacPs @@ -47,6 +47,8 @@ * 1.00a wsy 01/10/10 First release * 2.1 srt 07/15/14 Add support for Zynq Ultrascale Mp architecture. * 3.0 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. +* 3.6 rb 09/08/17 HwCnt variable (in XEmacPs_BdRing structure) is +* changed to volatile. * * * @@ -81,7 +83,7 @@ typedef struct { XEmacPs_Bd *BdaRestart; /**< BDA to load when channel is started */ - u32 HwCnt; /**< Number of BDs in work group */ + volatile u32 HwCnt; /**< Number of BDs in work group */ u32 PreCnt; /**< Number of BDs in pre-work group */ u32 FreeCnt; /**< Number of allocatable BDs in the free group */ u32 PostCnt; /**< Number of BDs in post-work group */ @@ -228,6 +230,7 @@ u32 XEmacPs_BdRingFromHwRx(XEmacPs_BdRing * RingPtr, u32 BdLimit, XEmacPs_Bd ** BdSetPtr); LONG XEmacPs_BdRingCheck(XEmacPs_BdRing * RingPtr, u8 Direction); +void XEmacPs_BdRingPtrReset(XEmacPs_BdRing * RingPtr, void *virtaddrloc); #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_control.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_control.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_control.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_control.c index f52451a8c..8217a4521 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_control.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_control.c @@ -33,7 +33,7 @@ /** * * @file xemacps_control.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * Functions in this file implement general purpose command and control related diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_g.c new file mode 100644 index 000000000..e58610f57 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_g.c @@ -0,0 +1,56 @@ + +/******************************************************************* +* +* CAUTION: This file is automatically generated by HSI. +* Version: +* DO NOT EDIT. +* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* +*Permission is hereby granted, free of charge, to any person obtaining a copy +*of this software and associated documentation files (the Software), to deal +*in the Software without restriction, including without limitation the rights +*to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +*copies of the Software, and to permit persons to whom the Software is +*furnished to do so, subject to the following conditions: +* +*The above copyright notice and this permission notice shall be included in +*all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +*(a) running on a Xilinx device, or +*(b) that interact with a Xilinx device through a bus or interconnect. +* +*THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +*IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +*FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +*XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +*WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT +*OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* +*Except as contained in this notice, the name of the Xilinx shall not be used +*in advertising or otherwise to promote the sale, use or other dealings in +*this Software without prior written authorization from Xilinx. +* + +* +* Description: Driver configuration +* +*******************************************************************/ + +#include "xparameters.h" +#include "xemacps.h" + +/* +* The configuration table for devices +*/ + +XEmacPs_Config XEmacPs_ConfigTable[XPAR_XEMACPS_NUM_INSTANCES] = +{ + { + XPAR_PSU_ETHERNET_3_DEVICE_ID, + XPAR_PSU_ETHERNET_3_BASEADDR, + XPAR_PSU_ETHERNET_3_IS_CACHE_COHERENT + } +}; + + diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_hw.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_hw.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_hw.c index daba38397..00e79a58d 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_hw.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_hw.c @@ -33,7 +33,7 @@ /** * * @file xemacps_hw.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This file contains the implementation of the ethernet interface reset sequence diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_hw.h index 953cc6265..e535470c2 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/emacps_v3_2/src/xemacps_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_hw.h @@ -33,7 +33,7 @@ /** * * @file xemacps_hw.h -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This header file contains identifiers and low-level driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_intr.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_intr.c index 59636c4ef..9c355a163 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_3/src/xemacps_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_intr.c @@ -33,7 +33,7 @@ /** * * @file xemacps_intr.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * Functions in this file implement general purpose interrupt processing related diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_sinit.c index 1bc5b3b19..e2d2078af 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/emacps_v3_3/src/xemacps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/emacps_v3_7/src/xemacps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xemacps_sinit.c -* @addtogroup emacps_v3_1 +* @addtogroup emacps_v3_7 * @{ * * This file contains lookup method by device ID when success, it returns diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops.c index 90eedb87d..7b6fe2e46 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops.c @@ -33,7 +33,7 @@ /** * * @file xgpiops.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * The XGpioPs driver. Functions in this file are the minimum required functions diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops.h similarity index 94% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops.h index 102615572..fda562d91 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops.h @@ -1,3 +1,4 @@ + /****************************************************************************** * * Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. @@ -33,7 +34,7 @@ /** * * @file xgpiops.h -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * @details * @@ -97,7 +98,15 @@ * passed to APIs. CR# 822636 * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. * 3.1 kvn 04/13/15 Add support for Zynq Ultrascale+ MP. CR# 856980. -* +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Added tabspace for return statements in functions of +* gpiops examples for proper documentation while +* generating doxygen. +* 3.3 ms 04/17/17 Added notes about gpio input and output pin description +* for zcu102 and zc702 boards in polled and interrupt +* example, configured Interrupt pin to input pin for +* proper functioning of interrupt example. * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_g.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_g.c index 38a5b9355..a518a700e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XGpioPs_Config XGpioPs_ConfigTable[] = +XGpioPs_Config XGpioPs_ConfigTable[XPAR_XGPIOPS_NUM_INSTANCES] = { { XPAR_PSU_GPIO_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_hw.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_hw.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_hw.c index d7a5e00f0..8961c4287 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_hw.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_hw.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_hw.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains low level GPIO functions. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_hw.h index 81e8d6a9f..ff0190675 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_hw.h @@ -33,7 +33,7 @@ /** * * @file xgpiops_hw.h -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This header file contains the identifiers and basic driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_intr.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_intr.c index c07381be6..a8b0a5626 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_1/src/xgpiops_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_intr.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_intr.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains functions related to GPIO interrupt handling. @@ -722,7 +722,7 @@ void XGpioPs_IntrHandler(XGpioPs *InstancePtr) ******************************************************************************/ void StubHandler(void *CallBackRef, u32 Bank, u32 Status) { - (void*) CallBackRef; + (void) CallBackRef; (void) Bank; (void) Status; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_selftest.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_selftest.c index da1973a2d..378524c14 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/gpiops_v3_1/src/xgpiops_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_selftest.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_selftest.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains a diagnostic self-test function for the XGpioPs driver. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_sinit.c index 2ca008373..4cc0c390f 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/gpiops_v3_1/src/xgpiops_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/gpiops_v3_3/src/xgpiops_sinit.c @@ -33,7 +33,7 @@ /** * * @file xgpiops_sinit.c -* @addtogroup gpiops_v3_1 +* @addtogroup gpiops_v3_3 * @{ * * This file contains the implementation of the XGpioPs driver's static diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps.c index 812c2ecdc..4f2b592e7 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xiicps.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains implementation of required functions for the XIicPs driver. @@ -54,6 +54,7 @@ * in XIicPs_Reset. * 12/06/14 Implemented Repeated start feature. * 01/31/15 Modified the code according to MISRAC 2012 Compliant. +* 3.3 kvn 05/05/16 Modified latest code for MISRA-C:2012 Compliance. * * * @@ -228,7 +229,7 @@ void XIicPs_Abort(XIicPs *InstancePtr) * Reset the settings in config register and clear the FIFOs. */ XIicPs_WriteReg(InstancePtr->Config.BaseAddress, XIICPS_CR_OFFSET, - XIICPS_CR_RESET_VALUE | XIICPS_CR_CLR_FIFO_MASK); + (u32)XIICPS_CR_RESET_VALUE | (u32)XIICPS_CR_CLR_FIFO_MASK); /* * Read, then write the interrupt status to make sure there are no @@ -242,7 +243,7 @@ void XIicPs_Abort(XIicPs *InstancePtr) /* * Restore the interrupt state. */ - IntrMaskReg = XIICPS_IXR_ALL_INTR_MASK & (~IntrMaskReg); + IntrMaskReg = (u32)XIICPS_IXR_ALL_INTR_MASK & (~IntrMaskReg); XIicPs_WriteReg(InstancePtr->Config.BaseAddress, XIICPS_IER_OFFSET, IntrMaskReg); diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps.h index 73ad5dc64..cc837a14c 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xiicps.h -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * @details * @@ -183,6 +183,9 @@ * 01/31/15 Modified the code according to MISRAC 2012 Compliant. * 02/18/15 Implemented larger data transfer using repeated start * in Zynq UltraScale MP. +* 3.3 kvn 05/05/16 Modified latest code for MISRA-C:2012 Compliance. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * * diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_g.c similarity index 91% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_g.c index f449e0ed6..1a469d08c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_4/src/xiicps_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XIicPs_Config XIicPs_ConfigTable[] = +XIicPs_Config XIicPs_ConfigTable[XPAR_XIICPS_NUM_INSTANCES] = { { XPAR_PSU_I2C_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_hw.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_hw.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_hw.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_hw.c index 8b7a58fc6..2d85e1436 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_hw.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_hw.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2013 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2013 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xiicps_hw.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains implementation of required functions for providing the reset sequence diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_hw.h index cec349928..d1eee82f2 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_hw.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xiicps_hw.h -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * This header file contains the hardware definition for an IIC device. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_intr.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_intr.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_intr.c index de05b93b6..7f385918f 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_intr.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xiicps_intr.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains functions of the XIicPs driver for interrupt-driven transfers. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_master.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_master.c similarity index 94% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_master.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_master.c index d49feecdf..faa852826 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_master.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_master.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xiicps_master.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Handles master mode transfers. @@ -62,7 +62,9 @@ * 01/31/15 Modified the code according to MISRAC 2012 Compliant. * 02/18/15 Implemented larger data transfer using repeated start * in Zynq UltraScale MP. -* +* 3.3 kvn 05/05/16 Modified latest code for MISRA-C:2012 Compliance. +* 3.6 ask 09/03/18 In XIicPs_MasterRecvPolled, set transfer size register +* before slave address. Fix for CR996440. * * ******************************************************************************/ @@ -106,6 +108,7 @@ void XIicPs_MasterSend(XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount, u16 SlaveAddr) { u32 BaseAddr; + u32 Platform = XGetPlatform_Info(); /* * Assert validates the input arguments. @@ -147,6 +150,16 @@ void XIicPs_MasterSend(XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount, */ XIicPs_WriteReg(BaseAddr, XIICPS_ADDR_OFFSET, (u32)SlaveAddr); + /* Clear the Hold bit in ZYNQ if receive byte count is less than + * the FIFO depth to get the completion interrupt properly. + */ + if ((ByteCount < XIICPS_FIFO_DEPTH) && (Platform == (u32)XPLAT_ZYNQ)) + { + XIicPs_WriteReg(BaseAddr, XIICPS_CR_OFFSET, + XIicPs_ReadReg(BaseAddr, (u32)XIICPS_CR_OFFSET) & + (u32)(~XIICPS_CR_HOLD_MASK)); + } + } /*****************************************************************************/ @@ -182,10 +195,8 @@ void XIicPs_MasterRecv(XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount, BaseAddr = InstancePtr->Config.BaseAddress; InstancePtr->RecvBufferPtr = MsgPtr; InstancePtr->RecvByteCount = ByteCount; - InstancePtr->CurrByteCount = ByteCount; InstancePtr->SendBufferPtr = NULL; InstancePtr->IsSend = 0; - InstancePtr->UpdateTxSize = 0; if ((ByteCount > XIICPS_FIFO_DEPTH) || ((InstancePtr->IsRepeatedStart) !=0)) @@ -203,14 +214,16 @@ void XIicPs_MasterRecv(XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount, * Setup the transfer size register so the slave knows how much * to send to us. */ - if (ByteCount > XIICPS_MAX_TRANSFER_SIZE) { + if (ByteCount > (s32)XIICPS_MAX_TRANSFER_SIZE) { XIicPs_WriteReg(BaseAddr, XIICPS_TRANS_SIZE_OFFSET, XIICPS_MAX_TRANSFER_SIZE); InstancePtr->CurrByteCount = (s32)XIICPS_MAX_TRANSFER_SIZE; InstancePtr->UpdateTxSize = 1; }else { + InstancePtr->CurrByteCount = ByteCount; XIicPs_WriteReg(BaseAddr, (u32)(XIICPS_TRANS_SIZE_OFFSET), (u32)ByteCount); + InstancePtr->UpdateTxSize = 0; } XIicPs_EnableInterrupts(BaseAddr, @@ -251,8 +264,7 @@ s32 XIicPs_MasterSendPolled(XIicPs *InstancePtr, u8 *MsgPtr, u32 StatusReg; u32 BaseAddr; u32 Intrs; - u32 Value; - s32 Status; + _Bool Value; /* * Assert validates the input arguments. @@ -260,7 +272,7 @@ s32 XIicPs_MasterSendPolled(XIicPs *InstancePtr, u8 *MsgPtr, Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(MsgPtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == (u32)XIL_COMPONENT_IS_READY); - Xil_AssertNonvoid(XIICPS_ADDR_MASK >= SlaveAddr); + Xil_AssertNonvoid((u16)XIICPS_ADDR_MASK >= SlaveAddr); BaseAddr = InstancePtr->Config.BaseAddress; InstancePtr->SendBufferPtr = MsgPtr; @@ -302,7 +314,7 @@ s32 XIicPs_MasterSendPolled(XIicPs *InstancePtr, u8 *MsgPtr, */ Value = ((InstancePtr->SendByteCount > (s32)0) && ((IntrStatusReg & Intrs) == (u32)0U)); - while (Value != (u32)0x00U) { + while (Value != FALSE) { StatusReg = XIicPs_ReadReg(BaseAddr, XIICPS_SR_OFFSET); /* @@ -374,14 +386,8 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, u32 Intrs; u32 StatusReg; u32 BaseAddr; - s32 BytesToRecv; - s32 BytesToRead; - s32 TransSize; - s32 Tmp = 0; - u32 Status_Rcv; - u32 Status; s32 Result; - s32 IsHold = 0; + s32 IsHold; s32 UpdateTxSize = 0; s32 ByteCountVar = ByteCount; u32 Platform; @@ -407,6 +413,8 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, XIicPs_ReadReg(BaseAddr, (u32)XIICPS_CR_OFFSET) | (u32)XIICPS_CR_HOLD_MASK); IsHold = 1; + } else { + IsHold = 0; } (void)XIicPs_SetupMaster(InstancePtr, RECVING_ROLE); @@ -417,13 +425,12 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, IntrStatusReg = XIicPs_ReadReg(BaseAddr, XIICPS_ISR_OFFSET); XIicPs_WriteReg(BaseAddr, XIICPS_ISR_OFFSET, IntrStatusReg); - XIicPs_WriteReg(BaseAddr, XIICPS_ADDR_OFFSET, SlaveAddr); /* * Set up the transfer size register so the slave knows how much * to send to us. */ - if (ByteCountVar > XIICPS_MAX_TRANSFER_SIZE) { + if (ByteCountVar > (s32)XIICPS_MAX_TRANSFER_SIZE) { XIicPs_WriteReg(BaseAddr, XIICPS_TRANS_SIZE_OFFSET, XIICPS_MAX_TRANSFER_SIZE); ByteCountVar = (s32)XIICPS_MAX_TRANSFER_SIZE; @@ -433,6 +440,9 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, ByteCountVar); } + + XIicPs_WriteReg(BaseAddr, XIICPS_ADDR_OFFSET, SlaveAddr); + /* * Intrs keeps all the error-related interrupts. */ @@ -460,18 +470,18 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, XIicPs_RecvByte(InstancePtr); ByteCountVar --; - if (Platform == XPLAT_ZYNQ) { + if (Platform == (u32)XPLAT_ZYNQ) { if ((UpdateTxSize != 0) && - ((ByteCountVar == (XIICPS_FIFO_DEPTH + 1)) != 0U)) { + (ByteCountVar == (XIICPS_FIFO_DEPTH + 1))) { break; } } StatusReg = XIicPs_ReadReg(BaseAddr, XIICPS_SR_OFFSET); } - if (Platform == XPLAT_ZYNQ) { + if (Platform == (u32)XPLAT_ZYNQ) { if ((UpdateTxSize != 0) && - ((ByteCountVar == (XIICPS_FIFO_DEPTH + 1)) != 0U)) { + (ByteCountVar == (XIICPS_FIFO_DEPTH + 1))) { /* wait while fifo is full */ while (XIicPs_ReadReg(BaseAddr, XIICPS_TRANS_SIZE_OFFSET) != @@ -479,7 +489,7 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, } if ((InstancePtr->RecvByteCount - XIICPS_FIFO_DEPTH) > - XIICPS_MAX_TRANSFER_SIZE) { + (s32)XIICPS_MAX_TRANSFER_SIZE) { XIicPs_WriteReg(BaseAddr, XIICPS_TRANS_SIZE_OFFSET, @@ -507,7 +517,7 @@ s32 XIicPs_MasterRecvPolled(XIicPs *InstancePtr, u8 *MsgPtr, XIicPs_WriteReg(BaseAddr, XIICPS_ADDR_OFFSET, SlaveAddr); if ((InstancePtr->RecvByteCount) > - XIICPS_MAX_TRANSFER_SIZE) { + (s32)XIICPS_MAX_TRANSFER_SIZE) { XIicPs_WriteReg(BaseAddr, XIICPS_TRANS_SIZE_OFFSET, @@ -625,6 +635,11 @@ void XIicPs_DisableSlaveMonitor(XIicPs *InstancePtr) XIicPs_ReadReg(BaseAddr, XIICPS_CR_OFFSET) & (~XIICPS_CR_SLVMON_MASK)); + /* + * wait for slv monitor control bit to be clear + */ + while (XIicPs_ReadReg(BaseAddr, XIICPS_CR_OFFSET) + & XIICPS_CR_SLVMON_MASK); /* * Clear interrupt flag for slave monitor interrupt. */ @@ -755,17 +770,17 @@ void XIicPs_MasterInterruptHandler(XIicPs *InstancePtr) XIicPs_RecvByte(InstancePtr); ByteCnt--; - if (Platform == XPLAT_ZYNQ) { + if (Platform == (u32)XPLAT_ZYNQ) { if ((InstancePtr->UpdateTxSize != 0) && - ((ByteCnt == (XIICPS_FIFO_DEPTH + 1)) != 0U)) { + (ByteCnt == (XIICPS_FIFO_DEPTH + 1))) { break; } } } - if (Platform == XPLAT_ZYNQ) { + if (Platform == (u32)XPLAT_ZYNQ) { if ((InstancePtr->UpdateTxSize != 0) && - ((ByteCnt == (XIICPS_FIFO_DEPTH + 1))!= 0U)) { + (ByteCnt == (XIICPS_FIFO_DEPTH + 1))) { /* wait while fifo is full */ while (XIicPs_ReadReg(BaseAddr, XIICPS_TRANS_SIZE_OFFSET) != @@ -773,7 +788,7 @@ void XIicPs_MasterInterruptHandler(XIicPs *InstancePtr) } if ((InstancePtr->RecvByteCount - XIICPS_FIFO_DEPTH) > - XIICPS_MAX_TRANSFER_SIZE) { + (s32)XIICPS_MAX_TRANSFER_SIZE) { XIicPs_WriteReg(BaseAddr, XIICPS_TRANS_SIZE_OFFSET, @@ -798,11 +813,11 @@ void XIicPs_MasterInterruptHandler(XIicPs *InstancePtr) IntrStatusReg = XIicPs_ReadReg(BaseAddr, XIICPS_ISR_OFFSET); XIicPs_WriteReg(BaseAddr, XIICPS_ISR_OFFSET, IntrStatusReg); - SlaveAddr = XIicPs_ReadReg(BaseAddr, (u32)XIICPS_ADDR_OFFSET); + SlaveAddr = (u16)XIicPs_ReadReg(BaseAddr, (u32)XIICPS_ADDR_OFFSET); XIicPs_WriteReg(BaseAddr, XIICPS_ADDR_OFFSET, SlaveAddr); if ((InstancePtr->RecvByteCount) > - XIICPS_MAX_TRANSFER_SIZE) { + (s32)XIICPS_MAX_TRANSFER_SIZE) { XIicPs_WriteReg(BaseAddr, XIICPS_TRANS_SIZE_OFFSET, @@ -910,7 +925,6 @@ static s32 XIicPs_SetupMaster(XIicPs *InstancePtr, s32 Role) { u32 ControlReg; u32 BaseAddr; - u32 EnabledIntr = 0x0U; Xil_AssertNonvoid(InstancePtr != NULL); @@ -935,11 +949,9 @@ static s32 XIicPs_SetupMaster(XIicPs *InstancePtr, s32 Role) if (Role == RECVING_ROLE) { ControlReg |= (u32)XIICPS_CR_RD_WR_MASK; - EnabledIntr = (u32)XIICPS_IXR_DATA_MASK |(u32)XIICPS_IXR_RX_OVR_MASK; }else { ControlReg &= (u32)(~XIICPS_CR_RD_WR_MASK); } - EnabledIntr |= (u32)XIICPS_IXR_COMP_MASK | (u32)XIICPS_IXR_ARB_LOST_MASK; XIicPs_WriteReg(BaseAddr, XIICPS_CR_OFFSET, ControlReg); diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_options.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_options.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_options.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_options.c index 5d7427a48..c9237dbb0 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_options.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_options.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xiicps_options.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Contains functions for the configuration of the XIccPs driver. @@ -55,6 +55,7 @@ * 2.3 sk 10/07/14 Repeated start feature removed. * 3.0 sk 12/06/14 Implemented Repeated start feature. * 01/31/15 Modified the code according to MISRAC 2012 Compliant. +* 3.3 kvn 05/05/16 Modified latest code for MISRA-C:2012 Compliance. * * * @@ -135,7 +136,7 @@ s32 XIicPs_SetOptions(XIicPs *InstancePtr, u32 Options) * The hold bit in CR will be written by driver when the next transfer * is initiated. */ - if ((OptionsVar & XIICPS_REP_START_OPTION) != 0U ) { + if ((OptionsVar & (u32)XIICPS_REP_START_OPTION) != (u32)0 ) { InstancePtr->IsRepeatedStart = 1; OptionsVar = OptionsVar & (~XIICPS_REP_START_OPTION); } @@ -349,8 +350,8 @@ s32 XIicPs_SetSClk(XIicPs *InstancePtr, u32 FsclHz) u32 ControlReg; u32 CalcDivA; u32 CalcDivB; - u32 BestDivA = 0; - u32 BestDivB = 0; + u32 BestDivA; + u32 BestDivB; u32 FsclHzVar = FsclHz; Xil_AssertNonvoid(InstancePtr != NULL); @@ -379,12 +380,12 @@ s32 XIicPs_SetSClk(XIicPs *InstancePtr, u32 FsclHz) * If frequency 100KHz is selected, 90KHz should be set. * This is due to a hardware limitation. */ - if(FsclHzVar > 384600U) { - FsclHzVar = 384600U; + if(FsclHzVar > (u32)384600U) { + FsclHzVar = (u32)384600U; } - if((FsclHzVar <= 100000U) && (FsclHzVar > 90000U)) { - FsclHzVar = 90000U; + if((FsclHzVar <= (u32)100000U) && (FsclHzVar > (u32)90000U)) { + FsclHzVar = (u32)90000U; } /* diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_selftest.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_selftest.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_selftest.c index 2d9e0e35e..31e02b56f 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_selftest.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xiicps_selftest.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * This component contains the implementation of selftest functions for the diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_sinit.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_sinit.c index 40ee7733e..d8fbc4cd5 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_sinit.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xiicps_sinit.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * The implementation of the XIicPs component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_slave.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_slave.c similarity index 96% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_slave.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_slave.c index 074b5ea2e..adc40a435 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/iicps_v3_1/src/xiicps_slave.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/iicps_v3_6/src/xiicps_slave.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -32,7 +32,7 @@ /*****************************************************************************/ /** * @file xiicps_slave.c -* @addtogroup iicps_v3_0 +* @addtogroup iicps_v3_5 * @{ * * Handles slave transfers @@ -44,6 +44,7 @@ * 1.00a jz 01/30/10 First release * 1.04a kpc 08/30/13 Avoid buffer overwrite in SlaveRecvData function * 3.00 sk 01/31/15 Modified the code according to MISRAC 2012 Compliant. +* 3.3 kvn 05/05/16 Modified latest code for MISRA-C:2012 Compliance. * * * @@ -210,7 +211,8 @@ s32 XIicPs_SlaveSendPolled(XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount) s32 BytesToSend; s32 Error = 0; s32 Status = (s32)XST_SUCCESS; - u32 Value; + _Bool Value; + _Bool Result; /* * Assert validates the input arguments. @@ -227,8 +229,9 @@ s32 XIicPs_SlaveSendPolled(XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount) * Use RXRW bit in status register to wait master to start a read. */ StatusReg = XIicPs_ReadReg(BaseAddr, XIICPS_SR_OFFSET); - while (((StatusReg & XIICPS_SR_RXRW_MASK) == 0U) && - ((!Error) != 0)) { + Result = (((u32)(StatusReg & XIICPS_SR_RXRW_MASK) == (u32)0x0U) && + (Error == 0)); + while (Result != FALSE) { /* * If master tries to send us data, it is an error. @@ -238,6 +241,8 @@ s32 XIicPs_SlaveSendPolled(XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount) } StatusReg = XIicPs_ReadReg(BaseAddr, XIICPS_SR_OFFSET); + Result = (((u32)(StatusReg & XIICPS_SR_RXRW_MASK) == (u32)0x0U) && + (Error == 0)); } if (Error != 0) { @@ -255,8 +260,8 @@ s32 XIicPs_SlaveSendPolled(XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount) * there are no errors. */ Value = (InstancePtr->SendByteCount > (s32)0) && - ((!Error) != 0); - while (Value != (u32)0x00U) { + ((Error == 0)); + while (Value != FALSE) { /* * Find out how many can be sent. @@ -276,7 +281,7 @@ s32 XIicPs_SlaveSendPolled(XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount) * Wait for master to read the data out of fifo. */ while (((StatusReg & XIICPS_SR_TXDV_MASK) != (u32)0x00U) && - ((!Error) != 0)) { + (Error == 0)) { /* * If master terminates the transfer before all data is @@ -296,12 +301,12 @@ s32 XIicPs_SlaveSendPolled(XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount) StatusReg = XIicPs_ReadReg(BaseAddr, XIICPS_SR_OFFSET); } - Value = (InstancePtr->SendByteCount > (s32)0U) && - ((!Error) != 0); + Value = ((InstancePtr->SendByteCount > (s32)0) && + (Error == 0)); } } if (Error != 0) { - Status = (s32)XST_FAILURE; + Status = (s32)XST_FAILURE; } return Status; @@ -551,7 +556,7 @@ void XIicPs_SlaveInterruptHandler(XIicPs *InstancePtr) /* * Signal application if there are any events. */ - if (0U != StatusEvent) { + if ((u32)0U != StatusEvent) { InstancePtr->StatusHandler(InstancePtr->CallBackRef, StatusEvent); } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu.c similarity index 87% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu.c index 7c9d98ab0..06d9ced3c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu.c @@ -33,7 +33,7 @@ /** * * @file xipipsu.c -* @addtogroup ipipsu_v1_0 +* @addtogroup ipipsu_v2_3 * @{ * * This file contains the implementation of the interface functions for XIpiPsu @@ -48,6 +48,7 @@ * 2.0 mjr 01/22/16 Fixed response buffer address * calculation. CR# 932582. * 2.1 kvn 05/05/16 Modified code for MISRA-C:2012 Compliance +* 2.2 kvn 02/17/17 Add support for updating ConfigTable at run time * * *****************************************************************************/ @@ -56,6 +57,9 @@ #include "xipipsu.h" #include "xipipsu_hw.h" +/************************** Variable Definitions *****************************/ +extern XIpiPsu_Config XIpiPsu_ConfigTable[XPAR_XIPIPSU_NUM_INSTANCES]; + /****************************************************************************/ /** * Initialize the Instance pointer based on a given Config Pointer @@ -350,4 +354,39 @@ XStatus XIpiPsu_WriteMessage(XIpiPsu *InstancePtr, u32 DestCpuMask, u32 *MsgPtr, return Status; } + +/*****************************************************************************/ +/** +* +* Set up the device configuration based on the unique device ID. A table +* contains the configuration info for each device in the system. +* +* @param DeviceId contains the ID of the device to set up the +* configuration for. +* +* @return A pointer to the device configuration for the specified +* device ID. See xipipsu.h for the definition of +* XIpiPsu_Config. +* +* @note This is for safety use case where in this function has to +* be called before CfgInitialize. So that driver will be +* initialized with the provided configuration. For non-safe +* use cases, this is not needed. +* +******************************************************************************/ +void XIpiPsu_SetConfigTable(u32 DeviceId, XIpiPsu_Config *ConfigTblPtr) +{ + u32 Index; + + Xil_AssertVoid(ConfigTblPtr != NULL); + + for (Index = 0U; Index < XPAR_XIPIPSU_NUM_INSTANCES; Index++) { + if (XIpiPsu_ConfigTable[Index].DeviceId == DeviceId) { + XIpiPsu_ConfigTable[Index].BaseAddress = ConfigTblPtr->BaseAddress; + XIpiPsu_ConfigTable[Index].BitMask = ConfigTblPtr->BitMask; + XIpiPsu_ConfigTable[Index].BufferIndex = ConfigTblPtr->BufferIndex; + XIpiPsu_ConfigTable[Index].IntId = ConfigTblPtr->IntId; + } + } +} /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu.h similarity index 92% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu.h index 0253b9a68..83701f46e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu.h @@ -32,7 +32,7 @@ /*****************************************************************************/ /** * @file xipipsu.h -* @addtogroup ipipsu_v1_0 +* @addtogroup ipipsu_v2_3 * @{ * @details * @@ -76,7 +76,23 @@ * @note XIpiPsu_Reset can be used at startup to clear the status and * disable all sources * - */ + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver  Who Date     Changes
      + * ---- --- -------- --------------------------------------------------
      + * 2.2  ms  01/23/17 Modified xil_printf statement in main function for all
      + *                    examples to ensure that "Successfully ran" and "Failed"
      + *                    strings are available in all examples. This is a fix
      + *                    for CR-965028.
      + *  	kvn 02/17/17  Add support for updating ConfigTable at run time
      + *      ms  03/17/17  Added readme.txt file in examples folder for doxygen
      + *                    generation.
      + * 2.3  ms  04/11/17  Modified tcl file to add suffix U for all macro
      + *                    definitions of ipipsu in xparameters.h
      + * 
      + * + *****************************************************************************/ /*****************************************************************************/ #ifndef XIPIPSU_H_ #define XIPIPSU_H_ @@ -276,6 +292,7 @@ XStatus XIpiPsu_ReadMessage(XIpiPsu *InstancePtr, u32 SrcCpuMask, u32 *MsgPtr, XStatus XIpiPsu_WriteMessage(XIpiPsu *InstancePtr, u32 DestCpuMask, u32 *MsgPtr, u32 MsgLength, u8 BufferType); +void XIpiPsu_SetConfigTable(u32 DeviceId, XIpiPsu_Config *ConfigTblPtr); #endif /* XIPIPSU_H_ */ /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu_g.c similarity index 83% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu_g.c index d40c925a9..f71017c2b 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XIpiPsu_Config XIpiPsu_ConfigTable[] = +XIpiPsu_Config XIpiPsu_ConfigTable[XPAR_XIPIPSU_NUM_INSTANCES] = { { @@ -83,22 +83,6 @@ XIpiPsu_Config XIpiPsu_ConfigTable[] = { XPAR_PSU_IPI_6_BIT_MASK, XPAR_PSU_IPI_6_BUFFER_INDEX - }, - { - XPAR_PSU_IPI_7_BIT_MASK, - XPAR_PSU_IPI_7_BUFFER_INDEX - }, - { - XPAR_PSU_IPI_8_BIT_MASK, - XPAR_PSU_IPI_8_BUFFER_INDEX - }, - { - XPAR_PSU_IPI_9_BIT_MASK, - XPAR_PSU_IPI_9_BUFFER_INDEX - }, - { - XPAR_PSU_IPI_10_BIT_MASK, - XPAR_PSU_IPI_10_BUFFER_INDEX } } } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu_hw.h similarity index 95% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu_hw.h index b4c02b6e1..5a3202192 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_1/src/xipipsu_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu_hw.h @@ -32,7 +32,7 @@ /** * * @file xipipsu_hw.h -* @addtogroup ipipsu_v1_0 +* @addtogroup ipipsu_v2_3 * @{ * * This file contains macro definitions for low level HW related params @@ -62,8 +62,8 @@ #define XIPIPSU_BUFFER_OFFSET_TARGET (32U * 2U) #define XIPIPSU_BUFFER_OFFSET_RESPONSE (32U) -/* Max Number of IPI slots on the device */ -#define XIPIPSU_MAX_TARGETS 11 +/* Number of IPI slots enabled on the device */ +#define XIPIPSU_MAX_TARGETS XPAR_XIPIPSU_NUM_TARGETS /* Register Offsets for each member of IPI Register Set */ #define XIPIPSU_TRIG_OFFSET 0x00U diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu_sinit.c index ae0900498..6f52a63e0 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ipipsu_v2_1/src/xipipsu_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ipipsu_v2_3/src/xipipsu_sinit.c @@ -32,7 +32,7 @@ /** * * @file xipipsu_sinit.c -* @addtogroup ipipsu_v1_0 +* @addtogroup ipipsu_v2_3 * @{ * * The implementation of the XIpiPsu component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu.c similarity index 96% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu.c index 93fa53f75..60eee53ea 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu.c @@ -33,7 +33,7 @@ /** * * @file xqspipsu.c -* @addtogroup qspipsu_v1_0 +* @addtogroup qspipsu_v1_7 * @{ * * This file implements the functions required to use the QSPIPSU hardware to @@ -60,6 +60,10 @@ * 1.3 nsk 09/16/16 Update PollData and PollTimeout support for dual * parallel configurations, modified XQspiPsu_PollData() * and XQspiPsu_Create_PollConfigData() +* 1,5 nsk 08/14/17 Added CCI support +* 1.7 tjs 01/16/18 Removed the check for DMA MSB to be written. (CR#992560) +* 1.7 tjs 01/17/18 Added a support to toggle WP pin of the flash. +* 1.7 tjs 03/14/18 Added support in EL1 NS mode (CR#974882) * * * @@ -150,6 +154,7 @@ s32 XQspiPsu_CfgInitialize(XQspiPsu *InstancePtr, XQspiPsu_Config *ConfigPtr, InstancePtr->StatusHandler = StubStatusHandler; InstancePtr->Config.BusWidth = ConfigPtr->BusWidth; InstancePtr->Config.InputClockHz = ConfigPtr->InputClockHz; + InstancePtr->Config.IsCacheCoherent = ConfigPtr->IsCacheCoherent; /* Other instance variable initializations */ InstancePtr->SendBufferPtr = NULL; InstancePtr->RecvBufferPtr = NULL; @@ -928,7 +933,7 @@ void XQspiPsu_SetStatusHandler(XQspiPsu *InstancePtr, void *CallBackRef, static void StubStatusHandler(void *CallBackRef, u32 StatusEvent, u32 ByteCount) { - (void *) CallBackRef; + (void) CallBackRef; (void) StatusEvent; (void) ByteCount; @@ -1136,13 +1141,13 @@ static inline void XQspiPsu_SetupRxDma(XQspiPsu *InstancePtr, XQSPIPSU_QSPIDMA_DST_ADDR_OFFSET, (u32)AddrTemp); - AddrTemp = AddrTemp >> 32; - if ((AddrTemp & 0xFFFU) != FALSE) { - XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, - XQSPIPSU_QSPIDMA_DST_ADDR_MSB_OFFSET, - (u32)AddrTemp & - XQSPIPSU_QSPIDMA_DST_ADDR_MSB_MASK); - } +#ifdef __aarch64__ + AddrTemp = (u64)((INTPTR)(Msg->RxBfrPtr) >> 32); + XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, + XQSPIPSU_QSPIDMA_DST_ADDR_MSB_OFFSET, + (u32)AddrTemp & + XQSPIPSU_QSPIDMA_DST_ADDR_MSB_MASK); +#endif Remainder = InstancePtr->RxBytes % 4; DmaRxBytes = InstancePtr->RxBytes; @@ -1151,8 +1156,10 @@ static inline void XQspiPsu_SetupRxDma(XQspiPsu *InstancePtr, DmaRxBytes = InstancePtr->RxBytes - Remainder; Msg->ByteCount = (u32)DmaRxBytes; } - - Xil_DCacheInvalidateRange((INTPTR)InstancePtr->RecvBufferPtr, Msg->ByteCount); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)InstancePtr->RecvBufferPtr, + Msg->ByteCount); + } /* Write no. of words to DMA DST SIZE */ XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, @@ -1511,4 +1518,37 @@ static inline u32 XQspiPsu_Create_PollConfigData(XQspiPsu *QspiPsuPtr, & XQSPIPSU_POLL_CFG_DATA_VALUE_MASK); return ConfigData; } + +/*****************************************************************************/ +/** +* @brief +* This API enables/ disables Write Protect pin on the flash parts. +* +* @param QspiPtr is a pointer to the QSPIPSU driver component to use. +* +* @return None +* +* @note By default WP pin as per the QSPI controller is driven High +* which means no write protection. Calling this function once +* will enable the protection. +* +******************************************************************************/ +void XQspiPsu_WriteProtectToggle(XQspiPsu *QspiPsuPtr, u32 Toggle) +{ + /* For Single and Stacked flash configuration with x1 or x2 mode*/ + if (QspiPsuPtr->Config.ConnectionMode == XQSPIPSU_CONNECTION_MODE_SINGLE) { + /* Enable */ + XQspiPsu_Enable(QspiPsuPtr); + + /* Select slave */ + XQspiPsu_GenFifoEntryCSAssert(QspiPsuPtr); + + XQspiPsu_WriteReg(QspiPsuPtr->Config.BaseAddress, XQSPIPSU_GPIO_OFFSET, + Toggle); + + } else if (QspiPsuPtr->Config.ConnectionMode == XQSPIPSU_CONNECTION_MODE_PARALLEL || + QspiPsuPtr->Config.ConnectionMode == XQSPIPSU_CONNECTION_MODE_STACKED) { + xil_printf("Dual Parallel/Stacked configuration is not supported by this API\r\n"); + } +} /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu.h similarity index 85% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu.h index 94801949c..b73b72293 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 Xilinx, Inc. All rights reserved. +* Copyright (C) 2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xqspipsu.h -* @addtogroup qspipsu_v1_0 +* @addtogroup qspipsu_v1_7 * @{ * @details * @@ -112,7 +112,33 @@ * configuration. Updated XQspiPsu_PollData() and * XQspiPsu_Create_PollConfigData() functions in xqspipsu.c * and also modified the polldata example -* +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Modified Comment lines in functions of qspipsu +* examples to recognize it as documentation block +* and modified filename tag to include them in +* doxygen examples. +* 1.4 tjs 05/26/17 Added support for accessing upper DDR (0x800000000) +* while booting images from QSPI +* 1.5 tjs 08/08/17 Added index.html file for importing examples from system.mss +* 1.5 nsk 08/14/17 Added CCI support +* 1.5 tjs 09/14/17 Modified the checks for 4 byte addressing and commands. +* 1.6 tjs 10/16/17 Flow for accessing flash is made similar to u-boot and linux +* For CR-984966 +* 1.6 tjs 11/02/17 Resolved the compilation errors for ICCARM. CR-988625 +* 1.7 tjs 11/16/17 Removed the unsupported 4 Byte write and sector erase +* commands. +* 1.7 tjs 12/01/17 Added support for MT25QL02G Flash from Micron. CR-990642 +* 1.7 tjs 12/19/17 Added support for S25FL064L from Spansion. CR-990724 +* 1.7 tjs 01/11/18 Added support for MX66L1G45G flash from Macronix CR-992367 +* 1.7 tjs 01/16/18 Removed the check for DMA MSB to be written. (CR#992560) +* 1.7 tjs 01/17/18 Added support to toggle the WP pin of flash. (PR#2448) +* Added XQspiPsu_SetWP() in xqspipsu_options.c +* Added XQspiPsu_WriteProtectToggle() in xqspipsu.c and +* also added write protect example. +* 1.7 tjs 03/14/18 Added support in EL1 NS mode (CR#974882) +* 1.7 tjs 26/03/18 In dual parallel mode enable both CS when issuing Write +* enable command. CR-998478 * * ******************************************************************************/ @@ -175,6 +201,7 @@ typedef struct { u32 InputClockHz; /**< Input clock frequency */ u8 ConnectionMode; /**< Single, Stacked and Parallel mode */ u8 BusWidth; /**< Bus width available on board */ + u8 IsCacheCoherent; /**< Describes whether Cache Coherent or not */ } XQspiPsu_Config; /** @@ -259,6 +286,9 @@ typedef struct { #define XQSPIPSU_MSG_FLAG_TX 0x4U #define XQSPIPSU_MSG_FLAG_POLL 0x8U +/* GQSPI configuration to toggle WP of flash*/ +#define XQSPIPSU_SET_WP 1 + #define XQspiPsu_Select(InstancePtr, Mask) XQspiPsu_Out32(((InstancePtr)->Config.BaseAddress) + XQSPIPSU_SEL_OFFSET, Mask) #define XQspiPsu_Enable(InstancePtr) XQspiPsu_Out32(((InstancePtr)->Config.BaseAddress) + XQSPIPSU_EN_OFFSET, XQSPIPSU_EN_MASK) @@ -267,6 +297,7 @@ typedef struct { #define XQspiPsu_GetLqspiConfigReg(InstancePtr) XQspiPsu_In32((XQSPIPS_BASEADDR) + XQSPIPSU_LQSPI_CR_OFFSET) + /************************** Function Prototypes ******************************/ /* Initialization and reset */ @@ -292,6 +323,8 @@ s32 XQspiPsu_SetOptions(XQspiPsu *InstancePtr, u32 Options); s32 XQspiPsu_ClearOptions(XQspiPsu *InstancePtr, u32 Options); u32 XQspiPsu_GetOptions(XQspiPsu *InstancePtr); s32 XQspiPsu_SetReadMode(XQspiPsu *InstancePtr, u32 Mode); +void XQspiPsu_SetWP(XQspiPsu *InstancePtr, u8 Value); +void XQspiPsu_WriteProtectToggle(XQspiPsu *InstancePtr, u32 Toggle); #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_g.c similarity index 88% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_g.c index 969fa96b0..a6df4f5b8 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,14 +44,15 @@ * The configuration table for devices */ -XQspiPsu_Config XQspiPsu_ConfigTable[] = +XQspiPsu_Config XQspiPsu_ConfigTable[XPAR_XQSPIPSU_NUM_INSTANCES] = { { XPAR_PSU_QSPI_0_DEVICE_ID, XPAR_PSU_QSPI_0_BASEADDR, XPAR_PSU_QSPI_0_QSPI_CLK_FREQ_HZ, XPAR_PSU_QSPI_0_QSPI_MODE, - XPAR_PSU_QSPI_0_QSPI_BUS_WIDTH + XPAR_PSU_QSPI_0_QSPI_BUS_WIDTH, + XPAR_PSU_QSPI_0_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_hw.h index 40314d6e1..a7e856310 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_hw.h @@ -33,7 +33,7 @@ /** * * @file xqspipsu_hw.h -* @addtogroup qspipsu_v1_0 +* @addtogroup qspipsu_v1_7 * @{ * * This file contains low level access funcitons using the base address @@ -49,6 +49,7 @@ * sk 04/24/15 Modified the code according to MISRAC-2012. * 1.2 nsk 07/01/16 Added LQSPI supported Masks * rk 07/15/16 Added support for TapDelays at different frequencies. +* 1.7 tjs 03/14/18 Added support in EL1 NS mode. * * * @@ -147,6 +148,7 @@ extern "C" { or quad I/O */ #define XQSPIPS_LQSPI_CR_INST_MASK 0x000000FF /**< Read instr code */ #define XQSPIPS_LQSPI_CR_RST_STATE 0x80000003 /**< Default LQSPI CR value */ +#define XQSPIPS_LQSPI_CR_4_BYTE_STATE 0x88000013 /**< Default 4 Byte LQSPI CR value */ #define XQSPIPS_LQSPI_CFG_RST_STATE 0x800238C1 /**< Default LQSPI CFG value */ /** * Register: XQSPIPSU_ISR @@ -828,6 +830,7 @@ extern "C" { #define IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT 0X02 #define IOU_TAPDLY_BYPASS_LQSPI_RX_WIDTH 0X01 #define IOU_TAPDLY_BYPASS_LQSPI_RX_MASK 0x00000004 +#define IOU_TAPDLY_RESET_STATE 0x7 /***************** Macros (Inline Functions) Definitions *********************/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_options.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_options.c similarity index 92% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_options.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_options.c index 2c77a0881..e943e52ae 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/qspipsu_v1_3/src/xqspipsu_options.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_options.c @@ -33,7 +33,7 @@ /** * * @file xqspipsu_options.c -* @addtogroup qspipsu_v1_0 +* @addtogroup qspipsu_v1_7 * @{ * * This file implements funcitons to configure the QSPIPSU component, @@ -51,6 +51,8 @@ * 1.2 nsk 07/01/16 Modified XQspiPsu_SetOptions() to support * LQSPI options and updated OptionsTable * rk 07/15/16 Added support for TapDelays at different frequencies. +* 1.7 tjs 01/17/18 Added support to toggle the WP pin of flash. (PR#2448) +* 1.7 tjs 03/14/18 Added support in EL1 NS mode. (CR#974882) * * * @@ -59,6 +61,9 @@ /***************************** Include Files *********************************/ #include "xqspipsu.h" +#if defined (__aarch64__) +#include "xil_smc.h" +#endif /************************** Constant Definitions *****************************/ @@ -179,7 +184,7 @@ s32 XQspiPsu_SetOptions(XQspiPsu *InstancePtr, u32 Options) ConfigReg = XQspiPsu_ReadReg(XQSPIPS_BASEADDR,XQSPIPSU_LQSPI_CR_OFFSET); if (QspiPsuOptions & XQSPIPSU_LQSPI_MODE_OPTION) { - XQspiPsu_WriteReg(XQSPIPS_BASEADDR,XQSPIPSU_LQSPI_CR_OFFSET,XQSPIPS_LQSPI_CR_RST_STATE); + XQspiPsu_WriteReg(XQSPIPS_BASEADDR,XQSPIPSU_LQSPI_CR_OFFSET,XQSPIPS_LQSPI_CR_4_BYTE_STATE); XQspiPsu_WriteReg(XQSPIPS_BASEADDR,XQSPIPSU_CFG_OFFSET,XQSPIPS_LQSPI_CFG_RST_STATE); /* Enable the QSPI controller */ XQspiPsu_WriteReg(XQSPIPS_BASEADDR,XQSPIPSU_EN_OFFSET,XQSPIPSU_EN_MASK); @@ -344,8 +349,15 @@ s32 XQspi_Set_TapDelay(XQspiPsu * InstancePtr,u32 TapdelayBypass, if (InstancePtr->IsBusy == TRUE) { Status = XST_DEVICE_BUSY; } else { +#if EL1_NONSECURE && defined (__aarch64__) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + IOU_TAPDLY_BYPASS_OFFSET) | + ((u64)(0x4) << 32), + (u64)TapdelayBypass, 0, 0, 0, 0, 0); +#else XQspiPsu_WriteReg(XPS_SYS_CTRL_BASEADDR,IOU_TAPDLY_BYPASS_OFFSET, TapdelayBypass); +#endif XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, XQSPIPSU_LPBK_DLY_ADJ_OFFSET,LPBKDelay); XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, @@ -380,8 +392,12 @@ static s32 XQspipsu_Calculate_Tapdelay(XQspiPsu *InstancePtr, u8 Prescaler) Divider = (1 << (Prescaler+1)); FreqDiv = (InstancePtr->Config.InputClockHz)/Divider; +#if EL1_NONSECURE && defined (__aarch64__) + Tapdelay = IOU_TAPDLY_RESET_STATE; +#else Tapdelay = XQspiPsu_ReadReg(XPS_SYS_CTRL_BASEADDR, - IOU_TAPDLY_BYPASS_OFFSET); + IOU_TAPDLY_BYPASS_OFFSET); +#endif Tapdelay = Tapdelay & (~IOU_TAPDLY_BYPASS_LQSPI_RX_MASK); @@ -618,4 +634,33 @@ s32 XQspiPsu_SetReadMode(XQspiPsu *InstancePtr, u32 Mode) #endif return Status; } + +/*****************************************************************************/ +/** +* +* This function sets the Write Protect and Hold options for the QSPIPSU device +* driver.The device must be idle rather than busy transferring data before +* setting Write Protect and Hold options. +* +* @param InstancePtr is a pointer to the XQspiPsu instance. +* @param Value of the WP_HOLD bit in configuration register +* +* @return None +* +* @note +* This function is not thread-safe. This function can only be used with single +* flash configuration and x1/x2 data mode. This function cannot be used with +* x4 data mode and dual parallel and stacked flash configuration. +* +******************************************************************************/ +void XQspiPsu_SetWP(XQspiPsu *InstancePtr, u8 Value) +{ + u32 ConfigReg; + + ConfigReg = XQspiPsu_ReadReg(InstancePtr->Config.BaseAddress, + XQSPIPSU_CFG_OFFSET); + ConfigReg |= Value << XQSPIPSU_CFG_WP_HOLD_SHIFT; + XQspiPsu_WriteReg(InstancePtr->Config.BaseAddress, XQSPIPSU_CFG_OFFSET, + ConfigReg); +} /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_sinit.c index 63aaed0bb..3869167d8 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_3/src/xqspipsu_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/qspipsu_v1_7/src/xqspipsu_sinit.c @@ -33,7 +33,7 @@ /** * * @file xqspipsu_sinit.c -* @addtogroup qspipsu_v1_0 +* @addtogroup qspipsu_v1_7 * @{ * * The implementation of the XQspiPsu component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/Makefile new file mode 100644 index 000000000..67ab3d8a9 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/Makefile @@ -0,0 +1,40 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS= +EXTRA_COMPILER_FLAGS= +LIB=libxil.a + +CC_FLAGS = $(COMPILER_FLAGS) +ECC_FLAGS = $(EXTRA_COMPILER_FLAGS) + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +OUTS = *.o + +LIBSOURCES:=*.c +INCLUDEFILES:=*.h + +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) + +libs: banner resetps_libs clean + +%.o: %.c + ${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) -o $@ $< + +banner: + echo "Compiling resetps" + +resetps_libs: ${OBJECTS} + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} + +.PHONY: include +include: resetps_includes + +resetps_includes: + ${CP} ${INCLUDEFILES} ${INCLUDEDIR} + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps.c new file mode 100644 index 000000000..626ec54d7 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps.c @@ -0,0 +1,1030 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file xresetps.c +* @addtogroup xresetps_v1_0 +* @{ +* +* Contains the implementation of interface functions of the XResetPs driver. +* See xresetps.h for a description of the driver. +* +*
      +* MODIFICATION HISTORY:
      +* Ver   Who    Date     Changes
      +* ----- ------ -------- ---------------------------------------------
      +* 1.00  cjp    09/05/17 First release
      +* 
      +* +******************************************************************************/ + +/***************************** Include Files *********************************/ +#include "xresetps.h" +#include "xresetps_hw.h" +#include "xil_types.h" + +/************************** Constant Definitions *****************************/ +#define XRESETPS_RSTID_BASE (1000) +#define XRESETPS_REGADDR_INVALID (0xFFFFFFFFU) +#define XRESETPS_BM_INVALID (0xFFFFFFFFU) + +/**************************** Type Definitions *******************************/ +typedef struct { + const u32 SlcrregAddr; + const u32 SlcrregBitmask; + const u32 PwrStateBitmask; + const XResetPs_PulseTypes PulseType; + const u8 SupportedActions; +} XResetPs_Lookup; + +/************************** Variable Definitions *****************************/ +#if !EL1_NONSECURE +const static XResetPs_Lookup ResetMap[] = { + /* + * {Control Register, Control Bitmask, + * Power State Bitask, Pulse Type, + * Supported Actions}, + */ + {XRESETPS_CRF_APB_RST_FPD_TOP, PCIE_CFG_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, PCIE_BRIDGE_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, PCIE_CTRL_RESET_MASK, + PCIE_CTRL_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, DP_RESET_MASK, + DP_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, SWDT_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM5_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM4_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM3_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, AFI_FM0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, GDMA_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, GPU_PP1_RESET_MASK, + GPU_PP1_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, GPU_PP0_RESET_MASK, + GPU_PP0_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, GPU_RESET_MASK, + GPU_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, GT_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_TOP, SATA_RESET_MASK, + SATA_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU3_PWRON_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU2_PWRON_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU1_PWRON_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU0_PWRON_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, APU_L2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU3_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_FPD_APU, ACPU0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_DDR_SS, DDR_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_RST_DDR_SS, DDR_APM_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RESET_CTRL, SOFT_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU0, GEM0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU0, GEM1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU0, GEM2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU0, GEM3_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, QSPI_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, UART0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, UART1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, SPI0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, SPI1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, SDIO0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, SDIO1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, CAN0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, CAN1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, I2C0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, I2C1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, TTC0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, TTC1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, TTC2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, TTC3_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, SWDT_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, NAND_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, ADMA_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, GPIO_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, IOU_CC_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_IOU2, TIMESTAMP_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, RPU_R50_RESET_MASK, + R50_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, RPU_R51_RESET_MASK, + R51_PSCHK_MASK, XRESETPS_PT_DLY_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, RPU_AMBA_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, OCM_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, RPU_PGE_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB0_CORERESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB1_CORERESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB0_HIBERRESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB1_HIBERRESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB0_APB_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, USB1_APB_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, IPI_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, APM_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, RTC_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, SYSMON_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, AFI_FM6_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, LPD_SWDT_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_TOP, FPD_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_DBG, RPU_DBG1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_DBG, RPU_DBG0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_DBG, DBG_LPD_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RST_LPD_DBG, DBG_FPD_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_APLL_CTRL, APLL_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_DPLL_CTRL, DPLL_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRF_APB_VPLL_CTRL, VPLL_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_IOPLL_CTRL, IOPLL_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_CRL_APB_RPLL_CTRL, RPLL_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_SUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL0_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL1_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL2_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL3_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL4_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL5_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL6_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL7_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL8_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL9_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL10_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL11_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL12_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL13_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL14_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL15_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL16_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL17_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL18_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL19_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL20_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL21_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL22_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL23_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL24_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL25_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL26_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL27_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL28_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL29_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL30_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_IOM_GPO3_CTRL, GPO3_PL31_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_GLB_RST_CTRL, RPU_LS_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_NOSUP)}, + {XRESETPS_PMU_GLB_RST_CTRL, PS_ONLY_RESET_MASK, + XRESETPS_BM_INVALID, XRESETPS_PT_NO_DLY_NO_PSCHK, + XRESETPS_SUPPORTED_ACT(XRESETPS_SUP, XRESETPS_SUP, XRESETPS_NOSUP)}, + /* All fields invalidated for PL since not supported */ + {XRESETPS_REGADDR_INVALID, XRESETPS_BM_INVALID, + XRESETPS_BM_INVALID, XRESETPS_PT_INVALID, + XRESETPS_SUPPORTED_ACT(XRESETPS_NOSUP, XRESETPS_NOSUP, XRESETPS_NOSUP)}, +}; +#endif + +/***************** Macros (Inline Functions) Definitions *********************/ + +/****************************************************************************/ +/** +* +* Initialize a specific reset controller instance/driver. This function +* must be called before other functions of the driver are called. +* +* @param InstancePtr is a pointer to the XResetPs instance. +* @param ConfigPtr is the config structure. +* @param EffectiveAddress is the base address for the device. It could be +* a virtual address if address translation is supported in the +* system, otherwise it is the physical address. +* +* @return +* - XST_SUCCESS if initialization was successful. +* +* @note None. +* +******************************************************************************/ +XStatus XResetPs_CfgInitialize(XResetPs *InstancePtr, + XResetPs_Config *ConfigPtr, u32 EffectiveAddress) +{ + /* Arguments validation */ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid(ConfigPtr != NULL); + + /* Copying instance */ + InstancePtr->Config.DeviceId = ConfigPtr->DeviceId; + InstancePtr->Config.BaseAddress = EffectiveAddress; + + return XST_SUCCESS; +} + +#if !EL1_NONSECURE +/****************************************************************************/ +/** +* +* Pulse Reset RPU. +* +* @param None. +* +* @return +* - XST_SUCCESS if successful else error code. +* +* @note The pulse reset sequence is referred from ug1085(v1.3) +* chapter-38. Few changes to the sequence are adpoted from PMUFW. +* +******************************************************************************/ +static XStatus XResetPs_PulseResetRpuLs(void) +{ + u32 TimeOut; + u32 RegValue; + + /* Block Cortex-R5 master interface */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~RPU_MASTER_ISO_MASK); + RegValue |= RPU_MASTER_ISO_MASK; + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + /* Wait for acknowledgment from AIB until timeout */ + TimeOut = XRESETPS_AIB_PSPL_DELAY; + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_ACK_CTRL); + while ((TimeOut > 0U) && + ((RegValue & RPU_MASTER_ISO_MASK) != RPU_MASTER_ISO_MASK)) { + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_ACK_CTRL); + TimeOut--; + } + + if (TimeOut == 0U) { + /* + * @NOTE: + * AIB ack Timed Out. + * As per ug1085(v1.3), nothing is to be done on timeout, hence + * continuing with reset sequence. + */ + } + + /* Block Cortex-R5 slave interface */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~RPU_SLAVE_ISO_MASK); + RegValue |= RPU_SLAVE_ISO_MASK; + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + /* Wait for acknowledgment from AIB until timeout */ + TimeOut = XRESETPS_AIB_PSPL_DELAY; + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_ACK_CTRL); + while ((TimeOut > 0U) && + ((RegValue & RPU_SLAVE_ISO_MASK) != RPU_SLAVE_ISO_MASK)) { + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_ACK_CTRL); + TimeOut--; + } + + if (TimeOut == 0U) { + /* + * @NOTE: + * AIB ack Timed Out. + * As per ug1085(v1.3), nothing is to be done on timeout, hence + * continuing with reset sequence. + */ + } + + /* Unblock Cortex-R5 master interface */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~RPU_MASTER_ISO_MASK); + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + /* Initiate Cortex-R5 LockStep reset */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_RST_CTRL); + RegValue |= RPU_LS_RESET_MASK; + XResetPs_WriteReg(XRESETPS_PMU_GLB_RST_CTRL, RegValue); + + /* Wait */ + TimeOut = XRESETPS_RST_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + + /* Release Cortex-R5 from Reset */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_RST_CTRL); + RegValue &= (~RPU_LS_RESET_MASK); + XResetPs_WriteReg(XRESETPS_PMU_GLB_RST_CTRL, RegValue); + + /* Wait */ + TimeOut = XRESETPS_RST_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + + /* Unblock Cortex-R5 slave interface */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~RPU_SLAVE_ISO_MASK); + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + return XST_SUCCESS; +} + +/****************************************************************************/ +/** +* +* Pulse Reset PS only. +* +* @param None. +* +* @return +* - XST_SUCCESS if successful else error code. +* +* @note The pulse reset sequence is referred from ug1085(v1.3) +* chapter-38. Few changes to the sequence are adpoted from PMUFW. +* +******************************************************************************/ +static XStatus XResetPs_PulseResetPsOnly(void) +{ + + u32 RegValue; + u32 TimeOut; + u8 ReconfirmAckCnt; + + /* TODO: Set PMU Error to indicate to PL */ + + /* Block FPD to PL and LPD to PL interfaces with AIB (in PS) */ + XResetPs_WriteReg(XRESETPS_PMU_GLB_AIB_CTRL, AIB_ISO_CTRL_MASK); + + /* + * @NOTE: Updated referring PMUFW + * There is a possibility of glitch in AIB ack signal to PMU, hence ack + * needs reconfirmation. + */ + /* Wait for AIB ack or Timeout */ + ReconfirmAckCnt = XRESETPS_AIB_PSPL_RECONFIRM_CNT; + do { + TimeOut = XRESETPS_AIB_PSPL_DELAY; + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_AIB_STATUS); + while ((TimeOut > 0U) && + ((RegValue & AIB_ISO_STATUS_MASK) != AIB_ISO_STATUS_MASK)) { + RegValue = + XResetPs_ReadReg(XRESETPS_PMU_GLB_AIB_STATUS); + TimeOut--; + } + + if (TimeOut == 0U) { + /* + * @NOTE: + * AIB ack Timed Out. + * As per ug1085(v1.3), nothing is to be done on + * timeout, hence continuing with reset sequence. + */ + ReconfirmAckCnt = 0U; + } else { + ReconfirmAckCnt--; + } + } + while (ReconfirmAckCnt > 0U); + + /* + * @NOTE: Updated referring PMUFW. + * Check if we are running Silicon version 1.0. If so, + * bypass the RPLL before initiating the reset. This is + * due to a bug in 1.0 Silicon wherein the PS hangs on a + * reset if the RPLL is in use. + */ + RegValue = XResetPs_ReadReg(XRESETPS_CSU_VERSION_REG); + if (XRESETPS_PLATFORM_PS_VER1 == (RegValue & PS_VERSION_MASK)) { + RegValue = XResetPs_ReadReg(XRESETPS_CRL_APB_RPLL_CTRL); + RegValue |= RPLL_BYPASS_MASK; + XResetPs_WriteReg(XRESETPS_CRL_APB_RPLL_CTRL, RegValue); + } + + /* Block the propagation of the PROG signal to the PL */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_PS_CTRL); + RegValue &= (~PROG_ENABLE_MASK); + XResetPs_WriteReg(XRESETPS_PMU_GLB_PS_CTRL, RegValue); + + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_PS_CTRL); + RegValue |= PROG_GATE_MASK; + XResetPs_WriteReg(XRESETPS_PMU_GLB_PS_CTRL, RegValue); + + /* Initiate PS-only reset */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_RST_CTRL); + RegValue |= PS_ONLY_RESET_MASK; + XResetPs_WriteReg(XRESETPS_PMU_GLB_RST_CTRL, RegValue); + + return XST_SUCCESS; +} + +/****************************************************************************/ +/** +* +* Pulse Reset FPD. +* +* @param None. +* +* @return +* - XST_SUCCESS if successful else error code. +* +* @note The pulse reset sequence is referred from ug1085(v1.3) +* chapter-38. Few changes to the sequence are adpoted from PMUFW. +* +******************************************************************************/ +static XStatus XResetPs_PulseResetFpd(void) +{ + u32 TimeOut; + u32 RegValue; + + /* Enable FPD to LPD isolations */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~FPD_TO_LPD_ISO_MASK); + RegValue |= FPD_TO_LPD_ISO_MASK; + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SLCR_APBISO_REQ_CTRL); + RegValue |= GPU_ISO_MASK; + XResetPs_WriteReg(XRESETPS_LPD_SLCR_APBISO_REQ_CTRL, RegValue); + + /* Enable LPD to FPD isolations */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~LPD_TO_FPD_ISO_MASK); + RegValue |= LPD_TO_FPD_ISO_MASK; + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + /* + * Here we need to check for AIB ack, since nothing is done incase + * ack is not received, we are just waiting for specified timeout + * and continuing + */ + TimeOut = XRESETPS_AIB_ISO_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + + /* Initiate FPD reset */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_RST_CTRL); + RegValue |= FPD_APU_RESET_MASK; + XResetPs_WriteReg(XRESETPS_PMU_GLB_RST_CTRL, RegValue); + + /* Wait till reset propagates */ + TimeOut = XRESETPS_RST_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + + /* Disable FPD to LPD isolations */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~FPD_TO_LPD_ISO_MASK); + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SLCR_APBISO_REQ_CTRL); + RegValue &= (~GPU_ISO_MASK); + XResetPs_WriteReg(XRESETPS_LPD_SLCR_APBISO_REQ_CTRL, RegValue); + + /* Release from Reset and wait till it propagates */ + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_RST_CTRL); + RegValue &= (~FPD_APU_RESET_MASK); + XResetPs_WriteReg(XRESETPS_PMU_GLB_RST_CTRL, RegValue); + + /* Wait till reset propagates */ + TimeOut = XRESETPS_RST_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + + /* Disable LPD to FPD isolations */ + RegValue = XResetPs_ReadReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL); + RegValue &= (~LPD_TO_FPD_ISO_MASK); + XResetPs_WriteReg(XRESETPS_LPD_SCR_AXIISO_REQ_CTRL, RegValue); + + return XST_SUCCESS; +} +#endif + +/****************************************************************************/ +/** +* +* Assert reset for specific peripheral based on reset ID. +* +* @param InstancePtr is a pointer to the XResetPs instance. +* @param ResetID is the ID of the peripheral. +* +* @return +* - XST_SUCCESS if reset assertion was successful. +* - Error Code otherwise. +* +* @note None. +* +******************************************************************************/ +XStatus XResetPs_ResetAssert(XResetPs *InstancePtr, + const XResetPs_RstId ResetID) +{ + /* Arguments validation */ + Xil_AssertNonvoid(InstancePtr != NULL); + if ((ResetID > XRESETPS_RSTID_END) || + (ResetID < XRESETPS_RSTID_START)) { + return XST_INVALID_PARAM; + } + +#if EL1_NONSECURE + /* Assert reset via PMUFW */ + u64 SmcArgs; + XSmc_OutVar out; + + SmcArgs = (u64)XRESETPS_RSTACT_ASSERT << 32; + SmcArgs |= ((u64)(ResetID + XRESETPS_RSTID_BASE)); + + out = Xil_Smc(PM_ASSERT_SMC_FID, SmcArgs, 0, 0, 0, 0, 0, 0); + + return ((u32)out.Arg0); +#else + u32 RegAddr; + u32 RegBitmask; + u32 RegValue; + + /* Ignoring Nodes that doesnot support assert */ + if (!XRESETPS_CHK_ASSERT_SUPPORT(ResetMap[ResetID].SupportedActions)) { + return XST_NO_FEATURE; + } + + RegAddr = ResetMap[ResetID].SlcrregAddr; + RegBitmask = ResetMap[ResetID].SlcrregBitmask; + + /* Enable bit to assert reset */ + RegValue = XResetPs_ReadReg(RegAddr); + RegValue |= RegBitmask; + XResetPs_WriteReg(RegAddr, RegValue); + + return XST_SUCCESS; +#endif +} + +/****************************************************************************/ +/** +* +* Deassert reset for specific peripheral based on reset ID. +* +* @param InstancePtr is a pointer to the XResetPs instance. +* @param ResetID is the ID of the peripheral. +* +* @return +* - XST_SUCCESS if reset deassertion was successful. +* - Error Code otherwise. +* +* @note None. +* +******************************************************************************/ +XStatus XResetPs_ResetDeassert(XResetPs *InstancePtr, + const XResetPs_RstId ResetID) +{ + /* Arguments validation */ + Xil_AssertNonvoid(InstancePtr != NULL); + if ((ResetID > XRESETPS_RSTID_END) || + (ResetID < XRESETPS_RSTID_START)) { + return XST_INVALID_PARAM; + } + +#if EL1_NONSECURE + /* Deassert reset via PMUFW */ + u64 SmcArgs; + XSmc_OutVar out; + + SmcArgs = (u64)XRESETPS_RSTACT_RELEASE << 32; + SmcArgs |= ((u64)(ResetID + XRESETPS_RSTID_BASE)); + + out = Xil_Smc(PM_ASSERT_SMC_FID, SmcArgs, 0, 0, 0, 0, 0, 0); + + return ((u32)out.Arg0); +#else + u32 RegAddr; + u32 RegBitmask; + u32 RegValue; + + /* Ignoring Nodes that does not support deassert */ + if (!XRESETPS_CHK_ASSERT_SUPPORT(ResetMap[ResetID].SupportedActions)) { + return XST_NO_FEATURE; + } + + RegAddr = ResetMap[ResetID].SlcrregAddr; + RegBitmask = ResetMap[ResetID].SlcrregBitmask; + + /* Disable bit to deassert reset */ + RegValue = XResetPs_ReadReg(RegAddr); + RegValue &= (~RegBitmask); + XResetPs_WriteReg(RegAddr, RegValue); + + return XST_SUCCESS; +#endif +} + +/****************************************************************************/ +/** +* +* Pulse reset for specific peripheral based on reset ID. +* +* @param InstancePtr is a pointer to the XResetPs instance. +* @param ResetID is the ID of the peripheral. +* +* @return +* - XST_SUCCESS if pulse reset was successful. +* - Error Code otherwise. +* +* @note None. +* +******************************************************************************/ +XStatus XResetPs_ResetPulse(XResetPs *InstancePtr, const XResetPs_RstId ResetID) +{ + /* Arguments validation */ + Xil_AssertNonvoid(InstancePtr != NULL); + if ((ResetID > XRESETPS_RSTID_END) || + (ResetID < XRESETPS_RSTID_START)) { + return XST_INVALID_PARAM; + } + +#if EL1_NONSECURE + /* Pulse reset via PMUFW */ + u64 SmcArgs; + XSmc_OutVar out; + + SmcArgs = (u64)XRESETPS_RSTACT_PULSE << 32; + SmcArgs |= ((u64)(ResetID + XRESETPS_RSTID_BASE)); + + out = Xil_Smc(PM_ASSERT_SMC_FID, SmcArgs, 0, 0, 0, 0, 0, 0); + + return ((u32)out.Arg0); +#else + u32 RegAddr; + u32 RegBitmask; + u32 RegValue; + u32 TimeOut; + + /* Ignoring Nodes that donot support pulse reset */ + if (!XRESETPS_CHK_PULSE_SUPPORT(ResetMap[ResetID].SupportedActions)) { + return XST_NO_FEATURE; + } + + /* Handling specific pulse resets */ + switch (ResetID) { + case XRESETPS_RSTID_FPD: + return XResetPs_PulseResetFpd(); + case XRESETPS_RSTID_RPU_LS: + return XResetPs_PulseResetRpuLs(); + case XRESETPS_RSTID_PS_ONLY: + return XResetPs_PulseResetPsOnly(); + default: + break; + } + + RegAddr = ResetMap[ResetID].SlcrregAddr; + RegBitmask = ResetMap[ResetID].SlcrregBitmask; + + /* Power state mask validation */ + if ((ResetMap[ResetID].PulseType == XRESETPS_PT_DLY_PSCHK) && + (ResetMap[ResetID].PwrStateBitmask != XRESETPS_BM_INVALID)) { + RegValue = XResetPs_ReadReg(XRESETPS_PMU_GLB_PWR_STATUS); + if (ResetMap[ResetID].PwrStateBitmask != + (RegValue && ResetMap[ResetID].PwrStateBitmask )) { + return XST_REGISTER_ERROR; + } + } + + /* Enable bit to assert reset */ + RegValue = XResetPs_ReadReg(RegAddr); + RegValue |= RegBitmask; + XResetPs_WriteReg(RegAddr, RegValue); + + /* Wait for assert propogation */ + if (ResetMap[ResetID].PulseType != XRESETPS_PT_NO_DLY_NO_PSCHK) { + TimeOut = XRESETPS_PULSE_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + } + + /* Disable bit to deassert reset */ + RegValue = XResetPs_ReadReg(RegAddr); + RegValue &= (~RegBitmask); + XResetPs_WriteReg(RegAddr, RegValue); + + /* Wait for release propogation */ + if (ResetMap[ResetID].PulseType != XRESETPS_PT_NO_DLY_NO_PSCHK) { + TimeOut = XRESETPS_PULSE_PROP_DELAY; + while (TimeOut > 0U) { + TimeOut--; + } + } + + return XST_SUCCESS; +#endif +} + +/****************************************************************************/ +/** +* +* Get reset status for specific peripheral based on reset ID. +* +* @param InstancePtr is a pointer to the XResetPs instance. +* @param ResetID is the ID of the peripheral. +* @param Status is the status of reset for ResetID. +* 1 if asserted and 0 if released +* +* @return +* - XST_SUCCESS if status fetched successful. +* - Error Code otherwise. +* +* @note None. +* +******************************************************************************/ +XStatus XResetPs_ResetStatus(XResetPs *InstancePtr, + const XResetPs_RstId ResetID, XResetPs_RstStatus *Status) +{ + /* Arguments validation */ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid(Status != NULL); + if ((ResetID > XRESETPS_RSTID_END) || + (ResetID < XRESETPS_RSTID_START)) { + return XST_INVALID_PARAM; + } + +#if EL1_NONSECURE + /* Get reset status via PMUFW */ + XSmc_OutVar out; + + out = Xil_Smc(PM_GETSTATUS_SMC_FID, + ((u64)(ResetID + XRESETPS_RSTID_BASE)), 0, 0, 0, 0, 0, 0); + *Status = ((u32)(out.Arg0 >> 32)); + + return ((u32)out.Arg0); +#else + u32 RegAddr; + u32 RegBitmask; + u32 RegValue; + + /* Ignoring Nodes that donot support reset status */ + if (!XRESETPS_CHK_STATUS_SUPPORT(ResetMap[ResetID].SupportedActions)) { + return XST_NO_FEATURE; + } + + /* + * @NOTE: + * This will always move to else part as GPO3 are ignored because + * XRESETPS_PMU_LCL_READ_CTRL is not accessible. + */ + /* GPO3PL have status address different from control address */ + if ((ResetID >= XRESETPS_RSTID_GPO3PL0) && + (ResetID <= XRESETPS_RSTID_GPO3PL31)) { + RegAddr = XRESETPS_PMU_LCL_READ_CTRL; + } else { + RegAddr = ResetMap[ResetID].SlcrregAddr; + } + + RegBitmask = ResetMap[ResetID].SlcrregBitmask; + + RegValue = XResetPs_ReadReg(RegAddr); + if ((RegValue & RegBitmask) == RegBitmask) { + *Status = XRESETPS_RESETASSERTED; + } else { + *Status = XRESETPS_RESETRELEASED; + } + + return XST_SUCCESS; +#endif +} + +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps.h new file mode 100644 index 000000000..f6a632b4e --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps.h @@ -0,0 +1,382 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file xresetps.h +* @addtogroup xresetps_v1_0 +* @{ +* @details +* +* The Xilinx Reset Controller driver supports the following features: +* - Assert reset for specific peripheral. +* - Deassert reset for specific peripheral. +* - Pulse reset for specific peripheral. +* - Get reset status for specific peripheral. +* +* This driver is intended to be RTOS and processor independent. It works with +* physical addresses only. Any needs for dynamic memory management, threads +* or thread mutual exclusion, virtual memory, or cache control must be +* satisfied by the layer above this driver. +* +*
      +* MODIFICATION HISTORY:
      +* Ver   Who    Date     Changes
      +* ----- ------ -------- -----------------------------------------------
      +* 1.00  cjp    09/05/17 First release
      +* 
      +* +******************************************************************************/ +#ifndef XRESETPS_H /* prevent circular inclusions */ +#define XRESETPS_H /* by using protection macros */ + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************** Include Files *********************************/ +#include "xil_types.h" +#include "xil_assert.h" +#include "xstatus.h" +#include "xresetps_hw.h" + +#if defined (__aarch64__) +#include "xil_smc.h" +#endif + +/************************** Constant Definitions *****************************/ +/* + * Constants for supported/Not supported reset actions + */ +#define XRESETPS_SUP 1 +#define XRESETPS_NOSUP 0 + +/**************************** Type Definitions *******************************/ +/** + * This typedef contains configuration information for the device. + */ +typedef struct { + u16 DeviceId; /**< Unique ID of device */ + u32 BaseAddress; /**< Base address of the device */ +} XResetPs_Config; + +/** + * The XResetPs driver instance data. The user is required to allocate a + * variable of this type for every reset controller device in the system. + * A pointer to a variable of this type is then passed to the driver API + * functions. + */ +typedef struct { + XResetPs_Config Config; /**< Hardware Configuration */ +} XResetPs; + +/** + * This typedef defines type of pulse reset to be executed for peripherals. + * 3 type of pulse reset are possible: + * 1. Pulse with no delay and no power state validation + * 2. Pulse with delay but no power state validation + * 3. Pulse with delay and power state validation + */ +typedef enum { + XRESETPS_PT_NO_DLY_NO_PSCHK, /**< No delay, no power state check */ + XRESETPS_PT_DLY_NO_PSCHK, /**< Delay, no power state check */ + XRESETPS_PT_DLY_PSCHK, /**< Delay, power state check */ + XRESETPS_PT_INVALID, /**< Invalid pulse type */ +} XResetPs_PulseTypes; + +/** + * This typedef defines reset actions on the peripherals. + */ +typedef enum { + XRESETPS_RSTACT_RELEASE, + XRESETPS_RSTACT_ASSERT, + XRESETPS_RSTACT_PULSE, +} XresetPs_ResetAction; + +/** + * This typedef defines resetIDs of peripherals maps to PMUFW resetIDs. This + * resetIDs are not offseted by 1000 and are relative. + */ +typedef enum { + XRESETPS_RSTID_START, + XRESETPS_RSTID_PCIE_CFG = XRESETPS_RSTID_START, + XRESETPS_RSTID_PCIE_BRIDGE, + XRESETPS_RSTID_PCIE_CTRL, + XRESETPS_RSTID_DP, + XRESETPS_RSTID_SWDT_CRF, + XRESETPS_RSTID_AFI_FM5, + XRESETPS_RSTID_AFI_FM4, + XRESETPS_RSTID_AFI_FM3, + XRESETPS_RSTID_AFI_FM2, + XRESETPS_RSTID_AFI_FM1, + XRESETPS_RSTID_AFI_FM0, + XRESETPS_RSTID_GDMA, + XRESETPS_RSTID_GPU_PP1, + XRESETPS_RSTID_GPU_PP0, + XRESETPS_RSTID_GPU, + XRESETPS_RSTID_GT, + XRESETPS_RSTID_SATA, + XRESETPS_RSTID_ACPU3_PWRON, + XRESETPS_RSTID_ACPU2_PWRON, + XRESETPS_RSTID_ACPU1_PWRON, + XRESETPS_RSTID_ACPU0_PWRON, + XRESETPS_RSTID_APU_L2, + XRESETPS_RSTID_ACPU3, + XRESETPS_RSTID_ACPU2, + XRESETPS_RSTID_ACPU1, + XRESETPS_RSTID_ACPU0, + XRESETPS_RSTID_DDR, + XRESETPS_RSTID_APM_FPD, + XRESETPS_RSTID_SOFT, + XRESETPS_RSTID_GEM0, + XRESETPS_RSTID_GEM1, + XRESETPS_RSTID_GEM2, + XRESETPS_RSTID_GEM3, + XRESETPS_RSTID_QSPI, + XRESETPS_RSTID_UART0, + XRESETPS_RSTID_UART1, + XRESETPS_RSTID_SPI0, + XRESETPS_RSTID_SPI1, + XRESETPS_RSTID_SDIO0, + XRESETPS_RSTID_SDIO1, + XRESETPS_RSTID_CAN0, + XRESETPS_RSTID_CAN1, + XRESETPS_RSTID_I2C0, + XRESETPS_RSTID_I2C1, + XRESETPS_RSTID_TTC0, + XRESETPS_RSTID_TTC1, + XRESETPS_RSTID_TTC2, + XRESETPS_RSTID_TTC3, + XRESETPS_RSTID_SWDT_CRL, + XRESETPS_RSTID_NAND, + XRESETPS_RSTID_ADMA, + XRESETPS_RSTID_GPIO, + XRESETPS_RSTID_IOU_CC, + XRESETPS_RSTID_TIMESTAMP, + XRESETPS_RSTID_RPU_R50, + XRESETPS_RSTID_RPU_R51, + XRESETPS_RSTID_RPU_AMBA, + XRESETPS_RSTID_OCM, + XRESETPS_RSTID_RPU_PGE, + XRESETPS_RSTID_USB0_CORERESET, + XRESETPS_RSTID_USB1_CORERESET, + XRESETPS_RSTID_USB0_HIBERRESET, + XRESETPS_RSTID_USB1_HIBERRESET, + XRESETPS_RSTID_USB0_APB, + XRESETPS_RSTID_USB1_APB, + XRESETPS_RSTID_IPI, + XRESETPS_RSTID_APM_LPD, + XRESETPS_RSTID_RTC, + XRESETPS_RSTID_SYSMON, + XRESETPS_RSTID_AFI_FM6, + XRESETPS_RSTID_LPD_SWDT, + XRESETPS_RSTID_FPD, + XRESETPS_RSTID_RPU_DBG1, + XRESETPS_RSTID_RPU_DBG0, + XRESETPS_RSTID_DBG_LPD, + XRESETPS_RSTID_DBG_FPD, + XRESETPS_RSTID_APLL, + XRESETPS_RSTID_DPLL, + XRESETPS_RSTID_VPLL, + XRESETPS_RSTID_IOPLL, + XRESETPS_RSTID_RPLL, + XRESETPS_RSTID_GPO3PL0, + XRESETPS_RSTID_GPO3PL1, + XRESETPS_RSTID_GPO3PL2, + XRESETPS_RSTID_GPO3PL3, + XRESETPS_RSTID_GPO3PL4, + XRESETPS_RSTID_GPO3PL5, + XRESETPS_RSTID_GPO3PL6, + XRESETPS_RSTID_GPO3PL7, + XRESETPS_RSTID_GPO3PL8, + XRESETPS_RSTID_GPO3PL9, + XRESETPS_RSTID_GPO3PL10, + XRESETPS_RSTID_GPO3PL11, + XRESETPS_RSTID_GPO3PL12, + XRESETPS_RSTID_GPO3PL13, + XRESETPS_RSTID_GPO3PL14, + XRESETPS_RSTID_GPO3PL15, + XRESETPS_RSTID_GPO3PL16, + XRESETPS_RSTID_GPO3PL17, + XRESETPS_RSTID_GPO3PL18, + XRESETPS_RSTID_GPO3PL19, + XRESETPS_RSTID_GPO3PL20, + XRESETPS_RSTID_GPO3PL21, + XRESETPS_RSTID_GPO3PL22, + XRESETPS_RSTID_GPO3PL23, + XRESETPS_RSTID_GPO3PL24, + XRESETPS_RSTID_GPO3PL25, + XRESETPS_RSTID_GPO3PL26, + XRESETPS_RSTID_GPO3PL27, + XRESETPS_RSTID_GPO3PL28, + XRESETPS_RSTID_GPO3PL29, + XRESETPS_RSTID_GPO3PL30, + XRESETPS_RSTID_GPO3PL31, + XRESETPS_RSTID_RPU_LS, + XRESETPS_RSTID_PS_ONLY, + XRESETPS_RSTID_PL, + XRESETPS_RSTID_END = XRESETPS_RSTID_PL, +} XResetPs_RstId; + +/** + * This typedef defines possible values for reset status of peripherals. + */ +typedef enum { + XRESETPS_RESETRELEASED, + XRESETPS_RESETASSERTED +} XResetPs_RstStatus; + +/***************** Macros (Inline Functions) Definitions *********************/ +/****************************************************************************/ +/** +* +* Set supported reset action. +* +* @param StatusSupport indicates if reset status check is supported +* @param PulseSupport indicates if pulse reset action is supported +* @param AssertSupport indicates if reset assert/deassert is supported +* +* @return Supported reset actions +* +* @note Here bit fields are used decide supported actions as defined +* below: +* BIT 1 - Assert/Deassert +* BIT 2 - Pulse +* BIT 3 - Reset status +* Bit set indicates corresponding action is supported and +* vice versa. +******************************************************************************/ +#define XRESETPS_SUPPORTED_ACT(ResetSupport, PulseSupport, AssertSupport) \ + ((ResetSupport << 2) | (PulseSupport << 1) | AssertSupport) + +/****************************************************************************/ +/** +* +* Check if assert/dessert reset is supported. +* +* @param Actions is supported reset actions +* +* @return 1 - Supported +* 0 - Not Supported +* +* @note None. +* +******************************************************************************/ +#define XRESETPS_CHK_ASSERT_SUPPORT(Actions) ((Actions & 0x1)) + +/****************************************************************************/ +/** +* +* Check if pulse reset is supported. +* +* @param Actions is supported reset actions +* +* @return 1 - Supported +* 0 - Not Supported +* +* @note None. +* +******************************************************************************/ +#define XRESETPS_CHK_PULSE_SUPPORT(Actions) ((Actions & 0x2) >> 1) + +/****************************************************************************/ +/** +* +* Check if Status check is supported. +* +* @param Actions is supported reset actions +* +* @return 1 - Supported +* 0 - Not Supported +* +* @note None. +* +******************************************************************************/ +#define XRESETPS_CHK_STATUS_SUPPORT(Actions) ((Actions & 0x4) >> 2) + +/****************************************************************************/ +/** +* +* Read the given register. +* +* @param RegAddress is the address of the register to read +* +* @return The 32-bit value of the register +* +* @note None. +* +******************************************************************************/ +#define XResetPs_ReadReg(RegAddress) \ + Xil_In32((u32)RegAddress) + +/****************************************************************************/ +/** +* +* Write the given register. +* +* @param RegAddress is the address of the register to write +* @param Data is the 32-bit value to write to the register +* +* @return None. +* +* @note None. +* +******************************************************************************/ +#define XResetPs_WriteReg(RegAddress, Data) \ + Xil_Out32((u32)RegAddress, (u32)Data) + +/************************** Function Prototypes ******************************/ + +/* + * Lookup configuration in xresetps_sinit.c. + */ +XResetPs_Config *XResetPs_LookupConfig(u16 DeviceId); + +/* + * Interface functions in xresetps.c + */ +XStatus XResetPs_CfgInitialize(XResetPs *InstancePtr, + XResetPs_Config *ConfigPtr, u32 EffectiveAddress); +XStatus XResetPs_ResetAssert(XResetPs *InstancePtr, + const XResetPs_RstId ResetID); +XStatus XResetPs_ResetDeassert(XResetPs *InstancePtr, + const XResetPs_RstId ResetID); +XStatus XResetPs_ResetPulse(XResetPs *InstancePtr, + const XResetPs_RstId ResetID); +XStatus XResetPs_ResetStatus(XResetPs *InstancePtr, + const XResetPs_RstId ResetID, XResetPs_RstStatus *Status); + +#ifdef __cplusplus +} +#endif +#endif /* end of protection macro */ +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_g.c new file mode 100644 index 000000000..529215d65 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_g.c @@ -0,0 +1,53 @@ + +/******************************************************************* +* +* CAUTION: This file is automatically generated by HSI. +* Version: +* DO NOT EDIT. +* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* +*Permission is hereby granted, free of charge, to any person obtaining a copy +*of this software and associated documentation files (the Software), to deal +*in the Software without restriction, including without limitation the rights +*to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +*copies of the Software, and to permit persons to whom the Software is +*furnished to do so, subject to the following conditions: +* +*The above copyright notice and this permission notice shall be included in +*all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +*(a) running on a Xilinx device, or +*(b) that interact with a Xilinx device through a bus or interconnect. +* +*THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +*IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +*FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +*XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +*WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT +*OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* +*Except as contained in this notice, the name of the Xilinx shall not be used +*in advertising or otherwise to promote the sale, use or other dealings in +*this Software without prior written authorization from Xilinx. +* + +* +* Description: Driver configuration +* +*******************************************************************/ + +#include "xparameters.h" +#include "xresetps.h" + +/* +* The configuration table for devices +*/ + +XResetPs_Config XResetPs_ConfigTable[XPAR_XRESETPS_NUM_INSTANCES] = +{ + { + XPAR_XRESETPS_DEVICE_ID, + XPAR_XRESETPS_BASEADDR, + } +}; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_hw.h new file mode 100644 index 000000000..a97162d75 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_hw.h @@ -0,0 +1,327 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file xresetps_hw.h +* @addtogroup xresetps_v1_0 +* @{ +* +* This file contains the hardware interface to the System Reset controller. +* +*
      +* MODIFICATION HISTORY:
      +* Ver   Who    Date     Changes
      +* ----- ------ -------- ---------------------------------------------
      +* 1.00  cjp    09/05/17 First release
      +* 
      +* +******************************************************************************/ +#ifndef XRESETPS_HW_H /* prevent circular inclusions */ +#define XRESETPS_HW_H /* by using protection macros */ + +/***************************** Include Files *********************************/ +#include "xil_types.h" +#include "xil_assert.h" +#include "xil_io.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************** Constant Definitions *****************************/ +/* Register address defines */ +/* CRF_APB defines */ +#define XRESETPS_CRF_APB_BASE (0XFD1A0000U) +/* RST_FPD_TOP Address and mask definations */ +#define XRESETPS_CRF_APB_RST_FPD_TOP \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X00000100U)) +#define PCIE_CFG_RESET_MASK ((u32)0X00080000U) +#define PCIE_BRIDGE_RESET_MASK ((u32)0X00040000U) +#define PCIE_CTRL_RESET_MASK ((u32)0X00020000U) +#define DP_RESET_MASK ((u32)0X00010000U) +#define SWDT_RESET_MASK ((u32)0X00008000U) +#define AFI_FM5_RESET_MASK ((u32)0X00001000U) +#define AFI_FM4_RESET_MASK ((u32)0X00000800U) +#define AFI_FM3_RESET_MASK ((u32)0X00000400U) +#define AFI_FM2_RESET_MASK ((u32)0X00000200U) +#define AFI_FM1_RESET_MASK ((u32)0X00000100U) +#define AFI_FM0_RESET_MASK ((u32)0X00000080U) +#define GDMA_RESET_MASK ((u32)0X00000040U) +#define GPU_PP1_RESET_MASK ((u32)0X00000020U) +#define GPU_PP0_RESET_MASK ((u32)0X00000010U) +#define GPU_RESET_MASK ((u32)0X00000008U) +#define GT_RESET_MASK ((u32)0X00000004U) +#define SATA_RESET_MASK ((u32)0X00000002U) +/* RST_FPD_APU Address and mask definations */ +#define XRESETPS_CRF_APB_RST_FPD_APU \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X00000104U)) +#define ACPU3_PWRON_RESET_MASK ((u32)0X00002000U) +#define ACPU2_PWRON_RESET_MASK ((u32)0X00001000U) +#define ACPU1_PWRON_RESET_MASK ((u32)0X00000800U) +#define ACPU0_PWRON_RESET_MASK ((u32)0X00000400U) +#define APU_L2_RESET_MASK ((u32)0X00000100U) +#define ACPU3_RESET_MASK ((u32)0X00000008U) +#define ACPU2_RESET_MASK ((u32)0X00000004U) +#define ACPU1_RESET_MASK ((u32)0X00000002U) +#define ACPU0_RESET_MASK ((u32)0X00000001U) +/* RST_DDR_SS Address and mask definations */ +#define XRESETPS_CRF_APB_RST_DDR_SS \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X00000108U)) +#define DDR_RESET_MASK ((u32)0X00000008U) +#define DDR_APM_RESET_MASK ((u32)0X00000004U) +/* APLL_CTRL Address and mask definations */ +#define XRESETPS_CRF_APB_APLL_CTRL \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X00000020U)) +#define APLL_RESET_MASK ((u32)0X00000001U) +/* DPLL_CTRL Address and mask definations */ +#define XRESETPS_CRF_APB_DPLL_CTRL \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X0000002CU)) +#define DPLL_RESET_MASK ((u32)0X00000001U) +/* VPLL_CTRL Address and mask definations */ +#define XRESETPS_CRF_APB_VPLL_CTRL \ + ((XRESETPS_CRF_APB_BASE) + ((u32)0X00000038U)) +#define VPLL_RESET_MASK ((u32)0X00000001U) + +/* CRL_APB defines */ +#define XRESETPS_CRL_APB_BASE (0XFF5E0000U) +/* RESET_CTRL Address and mask definations */ +#define XRESETPS_CRL_APB_RESET_CTRL \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000218U)) +#define SOFT_RESET_MASK ((u32)0X00000010U) +/* RST_LPD_IOU0 Address and mask definations */ +#define XRESETPS_CRL_APB_RST_LPD_IOU0 \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000230U)) +#define GEM0_RESET_MASK ((u32)0X00000001U) +#define GEM1_RESET_MASK ((u32)0X00000002U) +#define GEM2_RESET_MASK ((u32)0X00000004U) +#define GEM3_RESET_MASK ((u32)0X00000008U) +/* RST_LPD_IOU2 Address and mask definations */ +#define XRESETPS_CRL_APB_RST_LPD_IOU2 \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000238U)) +#define QSPI_RESET_MASK ((u32)0X00000001U) +#define UART0_RESET_MASK ((u32)0X00000002U) +#define UART1_RESET_MASK ((u32)0X00000004U) +#define SPI0_RESET_MASK ((u32)0X00000008U) +#define SPI1_RESET_MASK ((u32)0X00000010U) +#define SDIO0_RESET_MASK ((u32)0X00000020U) +#define SDIO1_RESET_MASK ((u32)0X00000040U) +#define CAN0_RESET_MASK ((u32)0X00000080U) +#define CAN1_RESET_MASK ((u32)0X00000100U) +#define I2C0_RESET_MASK ((u32)0X00000200U) +#define I2C1_RESET_MASK ((u32)0X00000400U) +#define TTC0_RESET_MASK ((u32)0X00000800U) +#define TTC1_RESET_MASK ((u32)0X00001000U) +#define TTC2_RESET_MASK ((u32)0X00002000U) +#define TTC3_RESET_MASK ((u32)0X00004000U) +#define SWDT_RESET_MASK ((u32)0X00008000U) +#define NAND_RESET_MASK ((u32)0X00010000U) +#define ADMA_RESET_MASK ((u32)0X00020000U) +#define GPIO_RESET_MASK ((u32)0X00040000U) +#define IOU_CC_RESET_MASK ((u32)0X00080000U) +#define TIMESTAMP_RESET_MASK ((u32)0X00100000U) +/* RST_LPD_TOP Address and mask definations */ +#define XRESETPS_CRL_APB_RST_LPD_TOP \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X0000023CU)) +#define RPU_R50_RESET_MASK ((u32)0X00000001U) +#define RPU_R51_RESET_MASK ((u32)0X00000002U) +#define RPU_AMBA_RESET_MASK ((u32)0X00000004U) +#define OCM_RESET_MASK ((u32)0X00000008U) +#define RPU_PGE_RESET_MASK ((u32)0X00000010U) +#define USB0_CORERESET_MASK ((u32)0X00000040U) +#define USB1_CORERESET_MASK ((u32)0X00000080U) +#define USB0_HIBERRESET_MASK ((u32)0X00000100U) +#define USB1_HIBERRESET_MASK ((u32)0X00000200U) +#define USB0_APB_RESET_MASK ((u32)0X00000400U) +#define USB1_APB_RESET_MASK ((u32)0X00000800U) +#define IPI_RESET_MASK ((u32)0X00004000U) +#define APM_RESET_MASK ((u32)0X00008000U) +#define RTC_RESET_MASK ((u32)0X00010000U) +#define SYSMON_RESET_MASK ((u32)0X00020000U) +#define AFI_FM6_RESET_MASK ((u32)0X00080000U) +#define LPD_SWDT_RESET_MASK ((u32)0X00100000U) +#define FPD_RESET_MASK ((u32)0X00800000U) +/* RST_LPD_DBG Address and mask definations */ +#define XRESETPS_CRL_APB_RST_LPD_DBG \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000240U)) +#define RPU_DBG1_RESET_MASK ((u32)0X00000020U) +#define RPU_DBG0_RESET_MASK ((u32)0X00000010U) +#define DBG_LPD_RESET_MASK ((u32)0X00000002U) +#define DBG_FPD_RESET_MASK ((u32)0X00000001U) +/* IOPLL_CTRL Address and mask definations */ +#define XRESETPS_CRL_APB_IOPLL_CTRL \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000020U)) +#define IOPLL_RESET_MASK ((u32)0X00000001U) +/* RPLL_CTRL Address and mask definations */ +#define XRESETPS_CRL_APB_RPLL_CTRL \ + ((XRESETPS_CRL_APB_BASE) + ((u32)0X00000030U)) +#define RPLL_RESET_MASK ((u32)0X00000001U) +#define RPLL_BYPASS_MASK ((u32)0X00000008U) + +/* PMU_IOM defines */ +#define XRESETPS_PMU_IOM_BASE (0XFFD40000U) +/* PMU_IOM_GPO3 Address and mask definations */ +#define XRESETPS_PMU_IOM_GPO3_CTRL \ + ((XRESETPS_PMU_IOM_BASE) + ((u32)0X0000001CU)) +#define GPO3_PL0_RESET_MASK ((u32)0X00000001U) +#define GPO3_PL1_RESET_MASK ((u32)0X00000002U) +#define GPO3_PL2_RESET_MASK ((u32)0X00000004U) +#define GPO3_PL3_RESET_MASK ((u32)0X00000008U) +#define GPO3_PL4_RESET_MASK ((u32)0X00000010U) +#define GPO3_PL5_RESET_MASK ((u32)0X00000020U) +#define GPO3_PL6_RESET_MASK ((u32)0X00000040U) +#define GPO3_PL7_RESET_MASK ((u32)0X00000080U) +#define GPO3_PL8_RESET_MASK ((u32)0X00000100U) +#define GPO3_PL9_RESET_MASK ((u32)0X00000200U) +#define GPO3_PL10_RESET_MASK ((u32)0X00000400U) +#define GPO3_PL11_RESET_MASK ((u32)0X00000800U) +#define GPO3_PL12_RESET_MASK ((u32)0X00001000U) +#define GPO3_PL13_RESET_MASK ((u32)0X00002000U) +#define GPO3_PL14_RESET_MASK ((u32)0X00004000U) +#define GPO3_PL15_RESET_MASK ((u32)0X00008000U) +#define GPO3_PL16_RESET_MASK ((u32)0X00010000U) +#define GPO3_PL17_RESET_MASK ((u32)0X00020000U) +#define GPO3_PL18_RESET_MASK ((u32)0X00040000U) +#define GPO3_PL19_RESET_MASK ((u32)0X00080000U) +#define GPO3_PL20_RESET_MASK ((u32)0X00100000U) +#define GPO3_PL21_RESET_MASK ((u32)0X00200000U) +#define GPO3_PL22_RESET_MASK ((u32)0X00400000U) +#define GPO3_PL23_RESET_MASK ((u32)0X00800000U) +#define GPO3_PL24_RESET_MASK ((u32)0X01000000U) +#define GPO3_PL25_RESET_MASK ((u32)0X02000000U) +#define GPO3_PL26_RESET_MASK ((u32)0X04000000U) +#define GPO3_PL27_RESET_MASK ((u32)0X08000000U) +#define GPO3_PL28_RESET_MASK ((u32)0X10000000U) +#define GPO3_PL29_RESET_MASK ((u32)0X20000000U) +#define GPO3_PL30_RESET_MASK ((u32)0X40000000U) +#define GPO3_PL31_RESET_MASK ((u32)0X80000000U) + +/* PMU_LCL defines */ +#define XRESETPS_PMU_LCL_BASE (0XFFD60000U) +/* GPO Read control address */ +#define XRESETPS_PMU_LCL_READ_CTRL \ + ((XRESETPS_PMU_LCL_BASE) + ((u32)0X0000021CU)) + +/* PMU_GLB defines */ +#define XRESETPS_PMU_GLB_BASE (0XFFD80000U) +/* PMU_GLB_RST Address and mask definations */ +#define XRESETPS_PMU_GLB_RST_CTRL ((XRESETPS_PMU_GLB_BASE) + ((u32)0X00000608U)) +#define RPU_LS_RESET_MASK ((u32)0X00000100U) +#define FPD_APU_RESET_MASK ((u32)0X00000200U) +#define PS_ONLY_RESET_MASK ((u32)0X00000400U) +/* PMU_GLB_PS Address and mask definations */ +#define XRESETPS_PMU_GLB_PS_CTRL ((XRESETPS_PMU_GLB_BASE) + ((u32)0X00000004U)) +#define PROG_ENABLE_MASK ((u32)0X00000002U) +#define PROG_GATE_MASK ((u32)0X00000001U) +/* PMU_GLB_AIB Address and mask definations */ +#define XRESETPS_PMU_GLB_AIB_CTRL ((XRESETPS_PMU_GLB_BASE) + ((u32)0X00000600U)) +#define LPD_AFI_FM_ISO_MASK ((u32)0X00000001U) +#define LPD_AFI_FS_ISO_MASK ((u32)0X00000002U) +#define FPD_AFI_FM_ISO_MASK ((u32)0X00000004U) +#define FPD_AFI_FS_ISO_MASK ((u32)0X00000008U) +#define AIB_ISO_CTRL_MASK (LPD_AFI_FM_ISO_MASK | LPD_AFI_FS_ISO_MASK | \ + FPD_AFI_FM_ISO_MASK | FPD_AFI_FS_ISO_MASK) +/* PMU_GLB_AIB status Address and mask definations */ +#define XRESETPS_PMU_GLB_AIB_STATUS \ + ((XRESETPS_PMU_GLB_BASE) + ((u32)0X00000604U)) +#define AIB_ISO_STATUS_MASK (AIB_ISO_CTRL_MASK) +/* PMU_GLB_PWR status Address and mask definations */ +#define XRESETPS_PMU_GLB_PWR_STATUS \ + ((XRESETPS_PMU_GLB_BASE) + ((u32)0X00000100U)) +#define FPD_PSCHK_MASK ((u32)0x00400000U) +#define PCIE_CTRL_PSCHK_MASK (FPD_PSCHK_MASK) +#define DP_PSCHK_MASK (FPD_PSCHK_MASK) +#define SATA_PSCHK_MASK (FPD_PSCHK_MASK) +#define R50_PSCHK_MASK ((u32)0x00000400U) +#define R51_PSCHK_MASK ((u32)0x00000800U) +#define GPU_PP0_PSCHK_MASK (((u32)0x00000010U) | (FPD_PSCHK_MASK)) +#define GPU_PP1_PSCHK_MASK (((u32)0x00000020U) | (FPD_PSCHK_MASK)) +#define GPU_PSCHK_MASK ((GPU_PP0_PSCHK_MASK) | \ + (GPU_PP1_PSCHK_MASK) | (FPD_PSCHK_MASK)) + +/* LPD_SLCR defines */ +#define XRESETPS_LPD_SCR_BASE (0XFF410000U) +/* LPD_SCR_AXIISO_REQ and LPD_SCR_AXIISO_ACK Address and mask definations */ +#define XRESETPS_LPD_SCR_AXIISO_REQ_CTRL \ + ((XRESETPS_LPD_SCR_BASE) + ((u32)0X00003030U)) +#define XRESETPS_LPD_SCR_AXIISO_ACK_CTRL \ + ((XRESETPS_LPD_SCR_BASE) + ((u32)0X00003040U)) +#define RPU0_MASTER_ISO_MASK ((u32)0X00010000U) +#define RPU1_MASTER_ISO_MASK ((u32)0X00020000U) +#define RPU_MASTER_ISO_MASK (RPU0_MASTER_ISO_MASK | RPU1_MASTER_ISO_MASK) +#define RPU0_SLAVE_ISO_MASK ((u32)0X00040000U) +#define RPU1_SLAVE_ISO_MASK ((u32)0X00080000U) +#define RPU_SLAVE_ISO_MASK (RPU0_SLAVE_ISO_MASK | RPU1_SLAVE_ISO_MASK) +#define FPD_OCM_ISO_MASK ((u32)0X00000008U) +#define FPD_LPDIBS_ISO_MASK ((u32)0X00000004U) +#define AFIFS1_ISO_MASK ((u32)0X00000002U) +#define AFIFS0_ISO_MASK ((u32)0X00000001U) +#define FPD_TO_LPD_ISO_MASK (FPD_LPDIBS_ISO_MASK | FPD_OCM_ISO_MASK | \ + AFIFS0_ISO_MASK | AFIFS1_ISO_MASK) +#define LPD_DDR_ISO_MASK ((u32)0X08000000U) +#define FPD_MAIN_ISO_MASK ((u32)0X01000000U) +#define LPD_TO_FPD_ISO_MASK (LPD_DDR_ISO_MASK | FPD_MAIN_ISO_MASK) +/* LPD_SLCR_APBISO_REQ Address and mask definations */ +#define XRESETPS_LPD_SLCR_APBISO_REQ_CTRL \ + ((XRESETPS_LPD_SCR_BASE) + ((u32)0X00003048U)) +#define GPU_ISO_MASK ((u32)0X00000001U) + +/* CSU defines */ +#define XRESETPS_CSU_BASE (0xFFCA0000U) +#define XRESETPS_CSU_VERSION_REG ((XRESETPS_CSU_BASE) + ((u32)0x00000044U)) +#define XRESETPS_PLATFORM_PS_VER1 ((u32)0x00000000U) +#define PS_VERSION_MASK ((u32)0x0000000FU) + +/* Timeout delay defines */ +#define XRESETPS_RST_PROP_DELAY (0xFU) +#define XRESETPS_AIB_ISO_DELAY (0xFU) +#define XRESETPS_AIB_PSPL_DELAY (0xFU) +#define XRESETPS_PULSE_PROP_DELAY (0xFU) + +/* AIB ack reconfirmation count */ +#define XRESETPS_AIB_PSPL_RECONFIRM_CNT \ + (0x2U) + +/**************************** Type Definitions *******************************/ + +/***************** Macros (Inline Functions) Definitions *********************/ + +/************************** Function Prototypes ******************************/ + + +/************************** Variable Definitions *****************************/ + +#ifdef __cplusplus +} +#endif +#endif /* end of protection macro */ +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_sinit.c new file mode 100644 index 000000000..eebdc9d1c --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/resetps_v1_0/src/xresetps_sinit.c @@ -0,0 +1,94 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xresetps_sinit.c +* @addtogroup xresetps_v1_0 +* @{ +* +* This file contains method for static initialization (compile-time) of the +* driver. +* +*
      +* MODIFICATION HISTORY:
      +* Ver   Who    Date     Changes
      +* ----- ------ -------- ----------------------------------------------
      +* 1.00  cjp    09/05/17 First release
      +* 
      +* +******************************************************************************/ + +/***************************** Include Files *********************************/ + +#include "xresetps.h" +#include "xparameters.h" + +/************************** Constant Definitions *****************************/ + +/**************************** Type Definitions *******************************/ + + +/***************** Macros (Inline Functions) Definitions *********************/ + +/*************************** Variable Definitions ****************************/ +extern XResetPs_Config XResetPs_ConfigTable[XPAR_XRESETPS_NUM_INSTANCES]; + +/************************** Function Prototypes ******************************/ + +/*****************************************************************************/ +/** +* Lookup the device configuration based on the unique device ID. The table +* contains the configuration info for each device in the system. +* +* @param DeviceId is the unique device ID of the device being looked up. +* +* @return A pointer to the configuration table entry corresponding to the +* given device ID, or NULL if no match is found. +* +* @note None. +* +******************************************************************************/ +XResetPs_Config *XResetPs_LookupConfig(u16 DeviceId) +{ + XResetPs_Config *CfgPtr = NULL; + u32 Index; + + for (Index = 0U; Index < (u32)XPAR_XRESETPS_NUM_INSTANCES; Index++) { + if (XResetPs_ConfigTable[Index].DeviceId == DeviceId) { + CfgPtr = &XResetPs_ConfigTable[Index]; + break; + } + } + return (XResetPs_Config *)CfgPtr; +} +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.c similarity index 96% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.c index c91f61279..c09d1e73c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2015 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -33,7 +33,7 @@ /** * * @file xrtcpsu.c -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * * Functions in this file are the minimum required functions for the XRtcPsu @@ -53,6 +53,8 @@ * 1.2 02/15/16 Corrected Calibration mask and Fractional * mask in CalculateCalibration API. * 1.3 vak 04/25/16 Corrected the RTC read and write time logic(cr#948833). +* 1.5 ms 08/27/17 Fixed compilation warnings. +* ms 08/29/17 Updated code as per source code style. * * ******************************************************************************/ @@ -166,7 +168,7 @@ s32 XRtcPsu_CfgInitialize(XRtcPsu *InstancePtr, XRtcPsu_Config *ConfigPtr, *****************************************************************************/ static void XRtcPsu_StubHandler(void *CallBackRef, u32 Event) { - (void *) CallBackRef; + (void) CallBackRef; (void) Event; /* Assert occurs always since this is a stub and should never be called */ Xil_AssertVoidAlways(); @@ -218,7 +220,9 @@ void XRtcPsu_SetTime(XRtcPsu *InstancePtr,u32 Time) *****************************************************************************/ u32 XRtcPsu_GetCurrentTime(XRtcPsu *InstancePtr) { - u32 Status, IntMask, CurrTime; + u32 Status; + u32 IntMask; + u32 CurrTime; IntMask = XRtcPsu_ReadReg(InstancePtr->RtcConfig.BaseAddr + XRTC_INT_MSK_OFFSET); @@ -294,9 +298,9 @@ void XRtcPsu_SetAlarm(XRtcPsu *InstancePtr, u32 Alarm, u32 Periodic) * format and saves it in the DT structure variable. It also reports the weekday. * * @param Seconds is the time value that has to be shown in DateTime -* format. +* format. * @param dt is the DateTime format variable that stores the translated -* time. +* time. * * @return None. * @@ -305,7 +309,10 @@ void XRtcPsu_SetAlarm(XRtcPsu *InstancePtr, u32 Alarm, u32 Periodic) *****************************************************************************/ void XRtcPsu_SecToDateTime(u32 Seconds, XRtcPsu_DT *dt) { - u32 CurrentTime, TempDays, Leap, DaysPerMonth; + u32 CurrentTime; + u32 TempDays; + u32 DaysPerMonth; + u32 Leap = 0U; CurrentTime = Seconds; dt->Sec = CurrentTime % 60U; @@ -364,7 +371,8 @@ void XRtcPsu_SecToDateTime(u32 Seconds, XRtcPsu_DT *dt) *****************************************************************************/ u32 XRtcPsu_DateTimeToSec(XRtcPsu_DT *dt) { - u32 i, Days; + u32 i; + u32 Days; u32 Seconds; Xil_AssertNonvoid(dt != NULL); @@ -414,8 +422,14 @@ u32 XRtcPsu_DateTimeToSec(XRtcPsu_DT *dt) void XRtcPsu_CalculateCalibration(XRtcPsu *InstancePtr,u32 TimeReal, u32 CrystalOscFreq) { - u32 ReadTime, SetTime; - u32 Cprev,Fprev,Cnew,Fnew,Xf,Calibration; + u32 ReadTime; + u32 SetTime; + u32 Cprev; + u32 Fprev; + u32 Cnew; + u32 Fnew; + u32 Calibration; + float Xf; Xil_AssertVoid(TimeReal != 0U); Xil_AssertVoid(CrystalOscFreq != 0U); diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.h similarity index 95% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.h index 164ddf64a..832047030 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2015 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -32,7 +32,7 @@ /*****************************************************************************/ /** * @file xrtcpsu.h -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * @details * @@ -101,6 +101,14 @@ * 1.1 kvn 09/25/15 Modify control register to enable battery * switching when vcc_psaux is not available. * 1.3 vak 04/25/16 Corrected the RTC read and write time logic(cr#948833). +* 1.4 MNK 01/27/17 Corrected calibration and frequency macros based on +* rtc input oscillator frequency ( 32.768Khz). +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/10/17 Modified filename tag in examples to include them in +* doxygen examples. +* 1.5 ms 08/27/17 Fixed compilation warnings in xrtcpsu.c file. +* ms 08/29/17 Updated the code as per source code style. * * ******************************************************************************/ @@ -203,8 +211,8 @@ typedef struct { /***************** Macros (Inline Functions) Definitions *********************/ -#define XRTC_CALIBRATION_VALUE 0x00198231U -#define XRTC_TYPICAL_OSC_FREQ 33330U +#define XRTC_CALIBRATION_VALUE 0x8000U +#define XRTC_TYPICAL_OSC_FREQ 32768U /****************************************************************************/ /** diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_g.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_g.c index 5913cd8d4..ef49025c7 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XRtcPsu_Config XRtcPsu_ConfigTable[] = +XRtcPsu_Config XRtcPsu_ConfigTable[XPAR_XRTCPSU_NUM_INSTANCES] = { { XPAR_PSU_RTC_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_hw.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_hw.h index 532ef7e3c..b535359eb 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_hw.h @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -33,7 +33,7 @@ /** * * @file xrtcpsu_hw.h -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * * This header file contains the identifiers and basic driver functions (or diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_intr.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_intr.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_intr.c index 89d3cd990..1f5f831f7 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_intr.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -33,7 +33,7 @@ /** * * @file xrtcpsu_intr.c -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * * This file contains functions related to RTC interrupt handling. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_selftest.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_selftest.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_selftest.c index 67c562c64..2678d8149 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_selftest.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -33,7 +33,7 @@ /** * * @file xrtcpsu_selftest.c -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * * This file contains the self-test functions for the XRtcPsu driver. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_sinit.c similarity index 96% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_sinit.c index d3a8b7dfc..32ea4e596 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_3/src/xrtcpsu_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/rtcpsu_v1_5/src/xrtcpsu_sinit.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -33,7 +33,7 @@ /** * * @file xrtcpsu_sinit.c -* @addtogroup rtcpsu_v1_0 +* @addtogroup rtcpsu_v1_5 * @{ * * This file contains the implementation of the XRtcPsu driver's static diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic.c similarity index 68% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic.c index 1806274c7..f6afc0e5a 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xscugic.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * Contains required functions for the XScuGic driver for the Interrupt @@ -46,45 +46,78 @@ * ----- ---- -------- -------------------------------------------------------- * 1.00a drg 01/19/10 First release * 1.01a sdm 11/09/11 Changes are made in function XScuGic_CfgInitialize. Since -* "Config" entry is now made as pointer in the XScuGic -* structure, necessary changes are made. -* The HandlerTable can now be populated through the low -* level routine XScuGic_RegisterHandler added in this -* release. Hence necessary checks are added not to -* overwrite the HandlerTable entriesin function -* XScuGic_CfgInitialize. +* "Config" entry is now made as pointer in the XScuGic +* structure, necessary changes are made. +* The HandlerTable can now be populated through the low +* level routine XScuGic_RegisterHandler added in this +* release. Hence necessary checks are added not to +* overwrite the HandlerTable entriesin function +* XScuGic_CfgInitialize. * 1.03a srt 02/27/13 Added APIs -* - XScuGic_SetPriTrigTypeByDistAddr() -* - XScuGic_GetPriTrigTypeByDistAddr() -* Removed Offset calculation macros, defined in _hw.h -* (CR 702687) -* Added support to direct interrupts to the appropriate CPU. Earlier -* interrupts were directed to CPU1 (hard coded). Now depending -* upon the CPU selected by the user (xparameters.h), interrupts -* will be directed to the relevant CPU. This fixes CR 699688. +* - XScuGic_SetPriTrigTypeByDistAddr() +* - XScuGic_GetPriTrigTypeByDistAddr() +* Removed Offset calculation macros, defined in _hw.h +* (CR 702687) +* Added support to direct interrupts to the appropriate CPU. Earlier +* interrupts were directed to CPU1 (hard coded). Now depending +* upon the CPU selected by the user (xparameters.h), interrupts +* will be directed to the relevant CPU. This fixes CR 699688. * * 1.04a hk 05/04/13 Assigned EffectiveAddr to CpuBaseAddress in -* XScuGic_CfgInitialize. Fix for CR#704400 to remove warnings. -* Moved functions XScuGic_SetPriTrigTypeByDistAddr and -* XScuGic_GetPriTrigTypeByDistAddr to xscugic_hw.c. -* This is fix for CR#705621. +* XScuGic_CfgInitialize. Fix for CR#704400 to remove warnings. +* Moved functions XScuGic_SetPriTrigTypeByDistAddr and +* XScuGic_GetPriTrigTypeByDistAddr to xscugic_hw.c. +* This is fix for CR#705621. * 1.06a asa 16/11/13 Fix for CR#749178. Assignment for EffectiveAddr -* in function XScuGic_CfgInitialize is removed as it was -* a bug. +* in function XScuGic_CfgInitialize is removed as it was +* a bug. * 3.00 kvn 02/13/14 Modified code for MISRA-C:2012 compliance. * 3.01 pkp 06/19/15 Added XScuGic_InterruptMaptoCpu API for an interrupt -* target CPU mapping +* target CPU mapping * 3.02 pkp 11/09/15 Modified DistributorInit function for AMP case to add * the current cpu to interrupt processor targets registers * 3.2 asa 02/29/16 Modified DistributorInit function for Zynq AMP case. The -* distributor is left uninitialized for Zynq AMP. It is assumed -* that the distributor will be initialized by Linux master. However -* for CortexR5 case, the earlier code is left unchanged where the -* the interrupt processor target registers in the distributor is -* initialized with the corresponding CPU ID on which the application -* built over the scugic driver runs. -* These changes fix CR#937243. +* distributor is left uninitialized for Zynq AMP. It is assumed +* that the distributor will be initialized by Linux master. However +* for CortexR5 case, the earlier code is left unchanged where the +* the interrupt processor target registers in the distributor is +* initialized with the corresponding CPU ID on which the application +* built over the scugic driver runs. +* These changes fix CR#937243. +* 3.3 pkp 05/12/16 Modified XScuGic_InterruptMaptoCpu to write proper value +* to interrupt target register to fix CR#951848 * +* 3.4 asa 04/07/16 Created a new static function DoDistributorInit to simplify +* the flow and avoid code duplication. Changes are made for +* USE_AMP use case for R5. In a scenario (in R5 split mode) when +* one R5 is operating with A53 in open amp config and other +* R5 running baremetal app, the existing code +* had the potential to stop the whole AMP solution to work (if +* for some reason the R5 running the baremetal app tasked to +* initialize the Distributor hangs or crashes before initializing). +* Changes are made so that the R5 under AMP first checks if +* the distributor is enabled or not and if not, it does the +* standard Distributor initialization. +* This fixes the CR#952962. +* 3.4 mus 09/08/16 Added assert to avoid invalid access of GIC from CPUID 1 +* for single core zynq-7000s +* 3.5 mus 10/05/16 Modified DistributorInit function to avoid re-initialization of +* distributor,If it is already initialized by other CPU. +* 3.5 pkp 10/17/16 Modified XScuGic_InterruptMaptoCpu to correct the CPU Id value +* and properly mask interrupt target processor value to modify +* interrupt target processor register for a given interrupt ID +* and cpu ID +* 3.6 pkp 20/01/17 Added new API XScuGic_Stop to Disable distributor and +* interrupts in case they are being used only by current cpu. +* It also removes current cpu from interrupt target registers +* for all interrupts. +* kvn 02/17/17 Add support for changing GIC CPU master at run time. +* kvn 02/28/17 Make the CpuId as static variable and Added new +* XScugiC_GetCpuId to access CpuId. +* 3.9 mus 02/21/18 Added new API's XScuGic_UnmapAllInterruptsFromCpu and +* XScuGic_InterruptUnmapFromCpu, These API's can be used +* by applications to unmap specific/all interrupts from +* target CPU. It fixes CR#992490. * * * @@ -94,7 +127,6 @@ #include "xil_types.h" #include "xil_assert.h" #include "xscugic.h" -#include "xparameters.h" /************************** Constant Definitions *****************************/ @@ -105,6 +137,7 @@ /***************** Macros (Inline Functions) Definitions *********************/ /************************** Variable Definitions *****************************/ +static u32 CpuId = XPAR_CPU_ID; /**< CPU Core identifier */ /************************** Function Prototypes ******************************/ @@ -113,7 +146,7 @@ static void StubHandler(void *CallBackRef); /*****************************************************************************/ /** * -* DistributorInit initializes the distributor of the GIC. The +* DoDistributorInit initializes the distributor of the GIC. The * initialization entails: * * - Write the trigger mode, priority and target CPU @@ -128,35 +161,11 @@ static void StubHandler(void *CallBackRef); * @note None. * ******************************************************************************/ -static void DistributorInit(XScuGic *InstancePtr, u32 CpuID) +static void DoDistributorInit(XScuGic *InstancePtr, u32 CpuID) { u32 Int_Id; u32 LocalCpuID = CpuID; -#if USE_AMP==1 - #warning "Building GIC for AMP" -#ifdef ARMR5 - u32 RegValue; - - /* - * The overall distributor should not be initialized in AMP case where - * another CPU is taking care of it. - */ - LocalCpuID |= LocalCpuID << 8U; - LocalCpuID |= LocalCpuID << 16U; - for (Int_Id = 32U; Int_IdIsReady != XIL_COMPONENT_IS_READY) { - InstancePtr->IsReady = 0; + InstancePtr->IsReady = 0U; InstancePtr->Config = ConfigPtr; @@ -332,7 +403,7 @@ s32 XScuGic_CfgInitialize(XScuGic *InstancePtr, InstancePtr->Config->HandlerTable[Int_Id].CallBackRef = InstancePtr; } - + XScuGic_Stop(InstancePtr); DistributorInit(InstancePtr, Cpu_Id); CPUInitialize(InstancePtr); @@ -757,13 +828,193 @@ void XScuGic_InterruptMaptoCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id) RegValue = XScuGic_DistReadReg(InstancePtr, XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id)); - Offset = (Int_Id & 0x3); + Offset = (Int_Id & 0x3U); + Cpu_Id = (0x1U << Cpu_Id); - RegValue = (RegValue | (~(0xFF << (Offset*8))) ); - RegValue |= ((Cpu_Id) << (Offset*8)); + RegValue = (RegValue & (~(0xFFU << (Offset*8U))) ); + RegValue |= ((Cpu_Id) << (Offset*8U)); XScuGic_DistWriteReg(InstancePtr, XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id), RegValue); } +/****************************************************************************/ +/** +* Unmaps specific SPI interrupt from the target CPU +* +* @param InstancePtr is a pointer to the instance to be worked on. +* @param Cpu_Id is a CPU number from which the interrupt has to be +* unmapped +* @param Int_Id is the IRQ source number to modify +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_InterruptUnmapFromCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id) +{ + u32 RegValue; + u8 BitPos; + + Xil_AssertVoid(InstancePtr != NULL); + + RegValue = XScuGic_DistReadReg(InstancePtr, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id)); + + /* + * Identify bit position corresponding to Int_Id and Cpu_Id, + * in interrupt target register and clear it + */ + BitPos = ((Int_Id % 4U) * 8U) + Cpu_Id; + RegValue &= (~ ( 1U << BitPos )); + XScuGic_DistWriteReg(InstancePtr, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id), + RegValue); +} +/****************************************************************************/ +/** +* Unmaps all SPI interrupts from the target CPU +* +* @param InstancePtr is a pointer to the instance to be worked on. +* @param Cpu_Id is a CPU number from which the interrupts has to be +* unmapped +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_UnmapAllInterruptsFromCpu(XScuGic *InstancePtr, u8 Cpu_Id) +{ + u32 Int_Id; + u32 Target_Cpu; + u32 LocalCpuID = (1U << Cpu_Id); + + Xil_AssertVoid(InstancePtr != NULL); + + LocalCpuID |= LocalCpuID << 8U; + LocalCpuID |= LocalCpuID << 16U; + + for (Int_Id = 32U; Int_Id * ******************************************************************************/ @@ -166,7 +201,12 @@ extern "C" { /************************** Constant Definitions *****************************/ +#define EFUSE_STATUS_OFFSET 0x10 +#define EFUSE_STATUS_CPU_MASK 0x80 +#if !defined (ARMR5) && !defined (__aarch64__) && !defined (ARMA53_32) +#define ARMA9 +#endif /**************************** Type Definitions *******************************/ /* The following data type defines each entry in an interrupt vector table. @@ -304,6 +344,11 @@ void XScuGic_GetPriorityTriggerType(XScuGic *InstancePtr, u32 Int_Id, void XScuGic_SetPriorityTriggerType(XScuGic *InstancePtr, u32 Int_Id, u8 Priority, u8 Trigger); void XScuGic_InterruptMaptoCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id); +void XScuGic_InterruptUnmapFromCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id); +void XScuGic_UnmapAllInterruptsFromCpu(XScuGic *InstancePtr, u8 Cpu_Id); +void XScuGic_Stop(XScuGic *InstancePtr); +void XScuGic_SetCpuID(u32 CpuCoreId); +u32 XScuGic_GetCpuID(void); /* * Initialization functions in xscugic_sinit.c */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_g.c similarity index 87% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_g.c index 4bb186e5a..8bb1755ba 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_5/src/xscugic_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,12 +44,13 @@ * The configuration table for devices */ -XScuGic_Config XScuGic_ConfigTable[] = +XScuGic_Config XScuGic_ConfigTable[XPAR_XSCUGIC_NUM_INSTANCES] = { { XPAR_PSU_RCPU_GIC_DEVICE_ID, XPAR_PSU_RCPU_GIC_BASEADDR, - XPAR_PSU_RCPU_GIC_DIST_BASEADDR + XPAR_PSU_RCPU_GIC_DIST_BASEADDR, + {{0}} /**< Initialize the HandlerTable to 0 */ } }; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_hw.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_hw.c similarity index 88% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_hw.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_hw.c index 626779720..6604e3a55 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_hw.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_hw.c @@ -33,7 +33,7 @@ /** * * @file xscugic_hw.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * This file contains low-level driver functions that can be used to access the @@ -62,6 +62,13 @@ * XScuGic_SetPriTrigTypeByDistAddr and * XScuGic_GetPriTrigTypeByDistAddr here from xscugic.c * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. +* 3.6 kvn 02/17/17 Add support for changing GIC CPU master at run time. +* kvn 02/28/17 Make the CpuId as static variable and Added new +* XScugiC_GetCpuId to access CpuId. +* 3.9 mus 02/21/18 Added new API's XScuGic_InterruptUnmapFromCpuByDistAddr +* and XScuGic_UnmapAllInterruptsFromCpuByDistAddr, These +* API's can be used by applications to unmap specific/all +* interrupts from target CPU. It fixes CR#992490. * * * @@ -90,6 +97,7 @@ static XScuGic_Config *LookupConfigByBaseAddress(u32 CpuBaseAddress); /************************** Variable Definitions *****************************/ extern XScuGic_Config XScuGic_ConfigTable[XPAR_XSCUGIC_NUM_INSTANCES]; +extern u32 CpuId; /*****************************************************************************/ /** @@ -274,7 +282,7 @@ static void CPUInit(XScuGic_Config *Config) s32 XScuGic_DeviceInitialize(u32 DeviceId) { XScuGic_Config *Config; - u32 Cpu_Id = (u32)XPAR_CPU_ID + (u32)1; + u32 Cpu_Id = XScuGic_GetCpuID() + (u32)1; Config = &XScuGic_ConfigTable[(u32 )DeviceId]; @@ -567,4 +575,75 @@ void XScuGic_GetPriTrigTypeByDistAddr(u32 DistBaseAddress, u32 Int_Id, *Trigger = (u8)(RegValue & XSCUGIC_INT_CFG_MASK); } + +/****************************************************************************/ +/** +* Unmaps specific SPI interrupt from the target CPU +* +* @param DistBaseAddress is the device base address +* @param Cpu_Id is a CPU number from which the interrupt has to be +* unmapped +* @param Int_Id is the IRQ source number to modify +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_InterruptUnmapFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id, u32 Int_Id) +{ + u32 RegValue; + u8 BitPos; + + Xil_AssertVoid(Int_Id < XSCUGIC_MAX_NUM_INTR_INPUTS); + + RegValue = XScuGic_ReadReg(DistBaseAddress, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id)); + + /* + * Identify bit position corresponding to Int_Id and Cpu_Id, + * in interrupt target register and clear it + */ + BitPos = ((Int_Id % 4U) * 8U) + Cpu_Id; + RegValue &= (~ ( 1U << BitPos )); + XScuGic_WriteReg(DistBaseAddress, + XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id), RegValue); +} + +/****************************************************************************/ +/** +* Unmaps all SPI interrupts from the target CPU +* +* @param DistBaseAddress is the device base address +* @param Cpu_Id is a CPU number from which the interrupts has to be +* unmapped +* +* @return None. +* +* @note None +* +*****************************************************************************/ +void XScuGic_UnmapAllInterruptsFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id) +{ + u32 Int_Id; + u32 Target_Cpu; + u32 LocalCpuID = (1U << Cpu_Id); + + LocalCpuID |= LocalCpuID << 8U; + LocalCpuID |= LocalCpuID << 16U; + + for (Int_Id = 32U; Int_Id * ******************************************************************************/ @@ -633,6 +637,10 @@ void XScuGic_SetPriTrigTypeByDistAddr(u32 DistBaseAddress, u32 Int_Id, u8 Priority, u8 Trigger); void XScuGic_GetPriTrigTypeByDistAddr(u32 DistBaseAddress, u32 Int_Id, u8 *Priority, u8 *Trigger); +void XScuGic_InterruptUnmapFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id, u32 Int_Id); +void XScuGic_UnmapAllInterruptsFromCpuByDistAddr(u32 DistBaseAddress, + u8 Cpu_Id); /************************** Variable Definitions *****************************/ #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_intr.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_intr.c index d05a51c5e..d82a60b9e 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_intr.c @@ -33,7 +33,7 @@ /** * * @file xscugic_intr.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * This file contains the interrupt processing for the driver for the Xilinx diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_selftest.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_selftest.c index 47620d644..7b1028f9f 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/scugic_v3_5/src/xscugic_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_selftest.c @@ -33,7 +33,7 @@ /** * * @file xscugic_selftest.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * Contains diagnostic self-test functions for the XScuGic driver. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_sinit.c index d30390ab8..842f31812 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/scugic_v3_2/src/xscugic_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/scugic_v3_9/src/xscugic_sinit.c @@ -33,7 +33,7 @@ /** * * @file xscugic_sinit.c -* @addtogroup scugic_v3_1 +* @addtogroup scugic_v3_8 * @{ * * Contains static init functions for the XScuGic driver for the Interrupt diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps.c similarity index 73% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps.c index 6425a791b..65f1b2237 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2013 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2013 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xsdps.c -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * Contains the interface functions of the XSdPs driver. @@ -64,28 +64,40 @@ * sk 12/10/15 Added support for MMC cards. * sk 02/16/16 Corrected the Tuning logic. * sk 03/01/16 Removed Bus Width check for eMMC. CR# 938311. +* 2.8 sk 05/03/16 Standard Speed for SD to 19MHz in ZynqMPSoC. CR#951024 +* 3.0 sk 06/09/16 Added support for mkfs to calculate sector count. +* sk 07/16/16 Added support for UHS modes. +* sk 07/07/16 Used usleep API for both arm and microblaze. +* sk 07/16/16 Added Tap delays accordingly to different SD/eMMC +* operating modes. +* 3.1 mi 09/07/16 Removed compilation warnings with extra compiler flags. +* sk 10/13/16 Reduced the delay during power cycle to 1ms as per spec +* sk 10/19/16 Used emmc_hwreset pin to reset eMMC. +* sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. +* 3.2 sk 11/30/16 Modified the voltage switching sequence as per spec. +* sk 02/01/17 Added HSD and DDR mode support for eMMC. +* vns 02/09/17 Added ARMA53_32 support for ZynqMP CR#968397 +* sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 05/17/17 Add support for 64bit DMA addressing +* mn 07/17/17 Add support for running SD at 200MHz +* mn 07/26/17 Fixed compilation warnings +* mn 08/07/17 Modify driver to support 64-bit DMA in arm64 only +* mn 08/17/17 Added CCI support for A53 and disabled data cache +* operations when it is enabled. +* mn 08/22/17 Updated for Word Access System support +* mn 09/06/17 Resolved compilation errors with IAR toolchain +* mn 09/26/17 Added UHS_MODE_ENABLE macro to enable UHS mode +* 3.4 mn 10/17/17 Use different commands for single and multi block +* transfers +* mn 03/02/18 Move UHS macro check to SD card initialization routine * * ******************************************************************************/ /***************************** Include Files *********************************/ #include "xsdps.h" -/* - * The header sleep.h and API usleep() can only be used with an arm design. - * MB_Sleep() is used for microblaze design. - */ -#if defined (__arm__) || defined (__aarch64__) - #include "sleep.h" -#endif - -#ifdef __MICROBLAZE__ - -#include "microblaze_sleep.h" - -#endif - /************************** Constant Definitions *****************************/ #define XSDPS_CMD8_VOL_PATTERN 0x1AAU #define XSDPS_RESPOCR_READY 0x80000000U @@ -94,19 +106,23 @@ #define XSDPS_CMD1_HIGH_VOL 0x00FF8000U #define XSDPS_CMD1_DUAL_VOL 0x00FF8010U #define HIGH_SPEED_SUPPORT 0x2U +#define UHS_SDR50_SUPPORT 0x4U #define WIDTH_4_BIT_SUPPORT 0x4U #define SD_CLK_25_MHZ 25000000U +#define SD_CLK_19_MHZ 19000000U #define SD_CLK_26_MHZ 26000000U #define EXT_CSD_DEVICE_TYPE_BYTE 196U +#define EXT_CSD_SEC_COUNT_BYTE1 212U +#define EXT_CSD_SEC_COUNT_BYTE2 213U +#define EXT_CSD_SEC_COUNT_BYTE3 214U +#define EXT_CSD_SEC_COUNT_BYTE4 215U #define EXT_CSD_DEVICE_TYPE_HIGH_SPEED 0x2U #define EXT_CSD_DEVICE_TYPE_DDR_1V8_HIGH_SPEED 0x4U #define EXT_CSD_DEVICE_TYPE_DDR_1V2_HIGH_SPEED 0x8U #define EXT_CSD_DEVICE_TYPE_SDR_1V8_HS200 0x10U #define EXT_CSD_DEVICE_TYPE_SDR_1V2_HS200 0x20U #define CSD_SPEC_VER_3 0x3U - -/* Note: Remove this once fixed */ -#define UHS_BROKEN +#define SCR_SPEC_VER_3 0x80U /**************************** Type Definitions *******************************/ @@ -120,6 +136,7 @@ extern s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode); static s32 XSdPs_IdentifyCard(XSdPs *InstancePtr); static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr); +u16 TransferMode; /*****************************************************************************/ /** * @@ -163,28 +180,32 @@ s32 XSdPs_CfgInitialize(XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, Xil_AssertNonvoid(ConfigPtr != NULL); /* Set some default values. */ + InstancePtr->Config.DeviceId = ConfigPtr->DeviceId; InstancePtr->Config.BaseAddress = EffectiveAddr; InstancePtr->Config.InputClockHz = ConfigPtr->InputClockHz; InstancePtr->IsReady = XIL_COMPONENT_IS_READY; InstancePtr->Config.CardDetect = ConfigPtr->CardDetect; InstancePtr->Config.WriteProtect = ConfigPtr->WriteProtect; + InstancePtr->Config.BusWidth = ConfigPtr->BusWidth; + InstancePtr->Config.BankNumber = ConfigPtr->BankNumber; + InstancePtr->Config.HasEMIO = ConfigPtr->HasEMIO; + InstancePtr->Config.IsCacheCoherent = ConfigPtr->IsCacheCoherent; + InstancePtr->SectorCount = 0; + InstancePtr->Mode = XSDPS_DEFAULT_SPEED_MODE; + InstancePtr->Config_TapDelay = NULL; - /* Disable bus power */ - XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, - XSDPS_POWER_CTRL_OFFSET, 0U); + /* Disable bus power and issue emmc hw reset */ + if ((XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL_VER_OFFSET) & XSDPS_HC_SPEC_VER_MASK) == + XSDPS_HC_SPEC_V3) + XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, + XSDPS_POWER_CTRL_OFFSET, XSDPS_PC_EMMC_HW_RST_MASK); + else + XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, + XSDPS_POWER_CTRL_OFFSET, 0x0); /* Delay to poweroff card */ -#if defined (__arm__) || defined (__aarch64__) - - (void)sleep(1U); - -#endif - -#ifdef __MICROBLAZE__ - - MB_Sleep(1000U); - -#endif + (void)usleep(1000U); /* "Software reset for all" is initiated */ XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, XSDPS_SW_RST_OFFSET, @@ -210,9 +231,21 @@ s32 XSdPs_CfgInitialize(XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, XSDPS_CAPS_OFFSET); /* Select voltage and enable bus power. */ - XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, - XSDPS_POWER_CTRL_OFFSET, - XSDPS_PC_BUS_VSEL_3V3_MASK | XSDPS_PC_BUS_PWR_MASK); + if (InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) + XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, + XSDPS_POWER_CTRL_OFFSET, + (XSDPS_PC_BUS_VSEL_3V3_MASK | XSDPS_PC_BUS_PWR_MASK) & + ~XSDPS_PC_EMMC_HW_RST_MASK); + else + XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, + XSDPS_POWER_CTRL_OFFSET, + XSDPS_PC_BUS_VSEL_3V3_MASK | XSDPS_PC_BUS_PWR_MASK); + + /* Delay before issuing the command after emmc reset */ + if (InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) + if ((InstancePtr->Host_Caps & XSDPS_CAPS_SLOT_TYPE_MASK) == + XSDPS_CAPS_EMB_SLOT) + usleep(200); /* Change the clock frequency to 400 KHz */ Status = XSdPs_Change_ClkFreq(InstancePtr, XSDPS_CLK_400_KHZ); @@ -235,10 +268,18 @@ s32 XSdPs_CfgInitialize(XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, XSDPS_POWER_CTRL_OFFSET, PowerLevel | XSDPS_PC_BUS_PWR_MASK); + +#ifdef __aarch64__ /* Enable ADMA2 in 64bit mode. */ + XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL1_OFFSET, + XSDPS_HC_DMA_ADMA2_64_MASK); +#else + /* Enable ADMA2 in 32bit mode. */ XSdPs_WriteReg8(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL1_OFFSET, XSDPS_HC_DMA_ADMA2_32_MASK); +#endif /* Enable all interrupt status except card interrupt initially */ XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, @@ -259,10 +300,8 @@ s32 XSdPs_CfgInitialize(XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, * Transfer mode register - default value * DMA enabled, block count enabled, data direction card to host(read) */ - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DMA_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | - XSDPS_TM_DAT_DIR_SEL_MASK); + TransferMode = XSDPS_TM_DMA_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | + XSDPS_TM_DAT_DIR_SEL_MASK; /* Set block size to 512 by default */ XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, @@ -308,10 +347,15 @@ s32 XSdPs_SdCardInitialize(XSdPs *InstancePtr) u32 CSD[4]; u32 Arg; u8 ReadReg; + u32 BlkLen, DeviceSize, Mult; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); +#ifndef UHS_MODE_ENABLE + InstancePtr->Config.BusWidth = XSDPS_WIDTH_4; +#endif + if ((InstancePtr->HC_Version != XSDPS_HC_SPEC_V3) || ((InstancePtr->Host_Caps & XSDPS_CAPS_SLOT_TYPE_MASK) != XSDPS_CAPS_EMB_SLOT)) { @@ -379,9 +423,17 @@ s32 XSdPs_SdCardInitialize(XSdPs *InstancePtr) goto RETURN_PATH; } - Arg = XSDPS_ACMD41_HCS | XSDPS_ACMD41_3V3 | (0x1FFU << 15U); - if (InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) { - Arg |= XSDPS_OCR_S18; + Arg = XSDPS_ACMD41_HCS | XSDPS_ACMD41_3V3 | (0x1FFU << 15U); + /* + * There is no support to switch to 1.8V and use UHS mode on + * 1.0 silicon + */ + if ((InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) && +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) + (XGetPSVersion_Info() > XPS_VERSION_1) && +#endif + (InstancePtr->Config.BusWidth == XSDPS_WIDTH_8)) { + Arg |= XSDPS_OCR_S18; } /* 0x40300000 - Host High Capacity support & 3.3V window */ @@ -403,18 +455,14 @@ s32 XSdPs_SdCardInitialize(XSdPs *InstancePtr) InstancePtr->HCS = 1U; } - /* There is no support to switch to 1.8V and use UHS mode on 1.0 silicon */ -#ifndef UHS_BROKEN - if ((RespOCR & XSDPS_OCR_S18) != 0U) { + if ((RespOCR & XSDPS_OCR_S18) != 0U) { InstancePtr->Switch1v8 = 1U; Status = XSdPs_Switch_Voltage(InstancePtr); if (Status != XST_SUCCESS) { Status = XST_FAILURE; goto RETURN_PATH; } - } -#endif /* CMD2 for Card ID */ Status = XSdPs_CmdTransfer(InstancePtr, CMD2, 0U, 0U); @@ -470,6 +518,19 @@ s32 XSdPs_SdCardInitialize(XSdPs *InstancePtr) CSD[3] = XSdPs_ReadReg(InstancePtr->Config.BaseAddress, XSDPS_RESP3_OFFSET); + if (((CSD[3] & CSD_STRUCT_MASK) >> 22U) == 0U) { + BlkLen = 1 << ((CSD[2] & READ_BLK_LEN_MASK) >> 8U); + Mult = 1 << (((CSD[1] & C_SIZE_MULT_MASK) >> 7U) + 2U); + DeviceSize = (CSD[1] & C_SIZE_LOWER_MASK) >> 22U; + DeviceSize |= (CSD[2] & C_SIZE_UPPER_MASK) << 10U; + DeviceSize = (DeviceSize + 1U) * Mult; + DeviceSize = DeviceSize * BlkLen; + InstancePtr->SectorCount = (DeviceSize/XSDPS_BLK_SIZE_512_MASK); + } else if (((CSD[3] & CSD_STRUCT_MASK) >> 22U) == 1U) { + InstancePtr->SectorCount = (((CSD[1] & CSD_V2_C_SIZE_MASK) >> 8U) + + 1U) * 1024U; + } + Status = XST_SUCCESS; RETURN_PATH: @@ -495,22 +556,20 @@ RETURN_PATH: * * ******************************************************************************/ -s32 XSdPs_CardInitialize(XSdPs *InstancePtr) { - u8 Tmp; - u32 Cnt; - u32 PresentStateReg; - u32 CtrlReg; - u32 CSD[4]; +s32 XSdPs_CardInitialize(XSdPs *InstancePtr) +{ #ifdef __ICCARM__ #pragma data_alignment = 32 -static u8 ExtCsd[512]; + static u8 ExtCsd[512]; + u8 SCR[8] = { 0U }; #pragma data_alignment = 4 #else -static u8 ExtCsd[512] __attribute__ ((aligned(32))); + static u8 ExtCsd[512] __attribute__ ((aligned(32))); + u8 SCR[8] __attribute__ ((aligned(32))) = { 0U }; #endif - u8 SCR[8] = { 0U }; u8 ReadBuff[64] = { 0U }; s32 Status; + u32 Arg; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); @@ -547,7 +606,15 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); } /* Change clock to default clock 25MHz */ - InstancePtr->BusSpeed = SD_CLK_25_MHZ; + /* + * SD default speed mode timing should be closed at 19 MHz. + * The reason for this is SD requires a voltage level shifter. + * This limitation applies to ZynqMPSoC. + */ + if (InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) + InstancePtr->BusSpeed = SD_CLK_19_MHZ; + else + InstancePtr->BusSpeed = SD_CLK_25_MHZ; Status = XSdPs_Change_ClkFreq(InstancePtr, InstancePtr->BusSpeed); if (Status != XST_SUCCESS) { Status = XST_FAILURE; @@ -601,33 +668,99 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); } } - if ((InstancePtr->Switch1v8 != 0U) && - (InstancePtr->BusWidth == XSDPS_4_BIT_WIDTH)) { - /* Set UHS-I SDR104 mode */ - Status = XSdPs_Uhs_ModeInit(InstancePtr, - XSDPS_UHS_SPEED_MODE_SDR104); - if (Status != XST_SUCCESS) { + /* Get speed supported by device */ + Status = XSdPs_Get_BusSpeed(InstancePtr, ReadBuff); + if (Status != XST_SUCCESS) { + goto RETURN_PATH; + } + + if (((SCR[2] & SCR_SPEC_VER_3) != 0U) && + (ReadBuff[13] >= UHS_SDR50_SUPPORT) && + (InstancePtr->Config.BusWidth == XSDPS_WIDTH_8) && +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) + (XGetPSVersion_Info() > XPS_VERSION_1) && +#endif + (InstancePtr->Switch1v8 == 0U)) { + u16 CtrlReg, ClockReg; + + /* Stop the clock */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + CtrlReg &= ~(XSDPS_CC_SD_CLK_EN_MASK | XSDPS_CC_INT_CLK_EN_MASK); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_CLK_CTRL_OFFSET, + CtrlReg); + + /* Enabling 1.8V in controller */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + CtrlReg |= XSDPS_HC2_1V8_EN_MASK; + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET, + CtrlReg); + + /* Wait minimum 5mSec */ + (void)usleep(5000U); + + /* Check for 1.8V signal enable bit is cleared by Host */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + if ((CtrlReg & XSDPS_HC2_1V8_EN_MASK) == 0U) { Status = XST_FAILURE; goto RETURN_PATH; } - } else { + /* Wait for internal clock to stabilize */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_INT_CLK_EN_MASK); + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + while((ClockReg & XSDPS_CC_INT_CLK_STABLE_MASK) == 0U) { + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + } + /* Enable SD clock */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_SD_CLK_EN_MASK); + + /* Wait for 1mSec */ + (void)usleep(1000U); + + InstancePtr->Switch1v8 = 1U; + } + +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + if (InstancePtr->Switch1v8 != 0U) { + + /* Identify the UHS mode supported by card */ + XSdPs_Identify_UhsMode(InstancePtr, ReadBuff); + + /* Set UHS-I SDR104 mode */ + Status = XSdPs_Uhs_ModeInit(InstancePtr, InstancePtr->Mode); + if (Status != XST_SUCCESS) { + goto RETURN_PATH; + } + + } else { +#endif /* * card supports CMD6 when SD_SPEC field in SCR register * indicates that the Physical Layer Specification Version * is 1.10 or later. So for SD v1.0 cmd6 is not supported. */ if (SCR[0] != 0U) { - /* Get speed supported by device */ - Status = XSdPs_Get_BusSpeed(InstancePtr, ReadBuff); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; - } - /* Check for high speed support */ - if ((ReadBuff[13] & HIGH_SPEED_SUPPORT) != 0U) { + if (((ReadBuff[13] & HIGH_SPEED_SUPPORT) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { + InstancePtr->Mode = XSDPS_HIGH_SPEED_MODE; +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + InstancePtr->Config_TapDelay = XSdPs_hsd_sdr25_tapdelay; +#endif Status = XSdPs_Change_BusSpeed(InstancePtr); if (Status != XST_SUCCESS) { Status = XST_FAILURE; @@ -635,7 +768,9 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); } } } +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) } +#endif } else if (((InstancePtr->CardType == XSDPS_CARD_MMC) && (InstancePtr->Card_Version > CSD_SPEC_VER_3)) && @@ -653,8 +788,15 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } - if ((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & - EXT_CSD_DEVICE_TYPE_HIGH_SPEED) != 0U) { + InstancePtr->SectorCount = ((u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE4]) << 24; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE3] << 16; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE2] << 8; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE1]; + + if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + EXT_CSD_DEVICE_TYPE_HIGH_SPEED) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { + InstancePtr->Mode = XSDPS_HIGH_SPEED_MODE; Status = XSdPs_Change_BusSpeed(InstancePtr); if (Status != XST_SUCCESS) { Status = XST_FAILURE; @@ -687,9 +829,39 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } - if ((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + InstancePtr->SectorCount = ((u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE4]) << 24; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE3] << 16; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE2] << 8; + InstancePtr->SectorCount |= (u32)ExtCsd[EXT_CSD_SEC_COUNT_BYTE1]; + + /* Check for card supported speed */ + if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & (EXT_CSD_DEVICE_TYPE_SDR_1V8_HS200 | - EXT_CSD_DEVICE_TYPE_SDR_1V2_HS200)) != 0U) { + EXT_CSD_DEVICE_TYPE_SDR_1V2_HS200)) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { + InstancePtr->Mode = XSDPS_HS200_MODE; +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + InstancePtr->Config_TapDelay = XSdPs_sdr104_hs200_tapdelay; +#endif + } else if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + (EXT_CSD_DEVICE_TYPE_DDR_1V8_HIGH_SPEED | + EXT_CSD_DEVICE_TYPE_DDR_1V2_HIGH_SPEED)) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { + InstancePtr->Mode = XSDPS_DDR52_MODE; +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + InstancePtr->Config_TapDelay = XSdPs_ddr50_tapdelay; +#endif + } else if (((ExtCsd[EXT_CSD_DEVICE_TYPE_BYTE] & + EXT_CSD_DEVICE_TYPE_HIGH_SPEED) != 0U) && + (InstancePtr->BusWidth >= XSDPS_4_BIT_WIDTH)) { + InstancePtr->Mode = XSDPS_HIGH_SPEED_MODE; +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + InstancePtr->Config_TapDelay = XSdPs_hsd_sdr25_tapdelay; +#endif + } else + InstancePtr->Mode = XSDPS_DEFAULT_SPEED_MODE; + + if (InstancePtr->Mode != XSDPS_DEFAULT_SPEED_MODE) { Status = XSdPs_Change_BusSpeed(InstancePtr); if (Status != XST_SUCCESS) { Status = XST_FAILURE; @@ -702,17 +874,47 @@ static u8 ExtCsd[512] __attribute__ ((aligned(32))); goto RETURN_PATH; } - if (ExtCsd[EXT_CSD_HS_TIMING_BYTE] != EXT_CSD_HS_TIMING_HS200) { + if (InstancePtr->Mode == XSDPS_HS200_MODE) { + if (ExtCsd[EXT_CSD_HS_TIMING_BYTE] != EXT_CSD_HS_TIMING_HS200) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } + + if ((InstancePtr->Mode == XSDPS_HIGH_SPEED_MODE) || + InstancePtr->Mode == XSDPS_DDR52_MODE) { + if (ExtCsd[EXT_CSD_HS_TIMING_BYTE] != EXT_CSD_HS_TIMING_HIGH) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + + if (InstancePtr->Mode == XSDPS_DDR52_MODE) { + Status = XSdPs_Change_BusWidth(InstancePtr); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } + } + } + + /* Enable Rst_n_Fun bit if it is disabled */ + if(ExtCsd[EXT_CSD_RST_N_FUN_BYTE] == EXT_CSD_RST_N_FUN_TEMP_DIS) { + Arg = XSDPS_MMC_RST_FUN_EN_ARG; + Status = XSdPs_Set_Mmc_ExtCsd(InstancePtr, Arg); + if (Status != XST_SUCCESS) { Status = XST_FAILURE; goto RETURN_PATH; } } } - - Status = XSdPs_SetBlkSize(InstancePtr, XSDPS_BLK_SIZE_512_MASK); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + if ((InstancePtr->Mode != XSDPS_DDR52_MODE) || + (InstancePtr->CardType == XSDPS_CARD_SD)) { + Status = XSdPs_SetBlkSize(InstancePtr, XSDPS_BLK_SIZE_512_MASK); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } RETURN_PATH: @@ -731,26 +933,14 @@ RETURN_PATH: static s32 XSdPs_IdentifyCard(XSdPs *InstancePtr) { s32 Status; - u32 OperCondReg; u8 ReadReg; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); /* 74 CLK delay after card is powered up, before the first command. */ -#if defined (__arm__) || defined (__aarch64__) - usleep(XSDPS_INIT_DELAY); -#endif - -#ifdef __MICROBLAZE__ - - /* 2 msec delay */ - MB_Sleep(2); - -#endif - /* CMD0 no response expected */ Status = XSdPs_CmdTransfer(InstancePtr, CMD0, 0U, 0U); if (Status != XST_SUCCESS) { @@ -803,7 +993,7 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) { s32 Status; u16 CtrlReg; - u32 ReadReg; + u32 ReadReg, ClockReg; /* Send switch voltage command */ Status = XSdPs_CmdTransfer(InstancePtr, CMD11, 0U, 0U); @@ -827,19 +1017,6 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_CLK_CTRL_OFFSET, CtrlReg); - /* Wait minimum 5mSec */ -#if defined (__arm__) || defined (__aarch64__) - - (void)usleep(5000U); - -#endif - -#ifdef __MICROBLAZE__ - - MB_Sleep(5U); - -#endif - /* Enabling 1.8V in controller */ CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET); @@ -847,13 +1024,40 @@ static s32 XSdPs_Switch_Voltage(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET, CtrlReg); - /* Start clock */ - Status = XSdPs_Change_ClkFreq(InstancePtr, XSDPS_CLK_400_KHZ); - if (Status != XST_SUCCESS) { + /* Wait minimum 5mSec */ + (void)usleep(5000U); + + /* Check for 1.8V signal enable bit is cleared by Host */ + CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + if ((CtrlReg & XSDPS_HC2_1V8_EN_MASK) == 0U) { Status = XST_FAILURE; goto RETURN_PATH; } + /* Wait for internal clock to stabilize */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_INT_CLK_EN_MASK); + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + while((ClockReg & XSDPS_CC_INT_CLK_STABLE_MASK) == 0U) { + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + } + + /* Enable SD clock */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_SD_CLK_EN_MASK); + + /* Wait for 1mSec */ + (void)usleep(1000U); + /* Wait for CMD and DATA line to go high */ ReadReg = XSdPs_ReadReg(InstancePtr->Config.BaseAddress, XSDPS_PRES_STATE_OFFSET); @@ -945,8 +1149,8 @@ s32 XSdPs_CmdTransfer(XSdPs *InstancePtr, u32 Cmd, u32 Arg, u32 BlkCnt) } } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_CMD_OFFSET, - (u16)CommandReg); + XSdPs_WriteReg(InstancePtr->Config.BaseAddress, XSDPS_XFER_MODE_OFFSET, + (CommandReg << 16) | TransferMode); /* Polling for response for now */ do { @@ -1137,20 +1341,32 @@ s32 XSdPs_ReadPolled(XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, u8 *Buff) } XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, Buff); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)Buff, + BlkCnt * XSDPS_BLK_SIZE_512_MASK); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_AUTO_CMD12_EN_MASK | + if (BlkCnt == 1U) { + TransferMode = XSDPS_TM_BLK_CNT_EN_MASK | + XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; + + /* Send single block read command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD17, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } else { + TransferMode = XSDPS_TM_AUTO_CMD12_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | XSDPS_TM_DAT_DIR_SEL_MASK | - XSDPS_TM_DMA_EN_MASK | XSDPS_TM_MUL_SIN_BLK_SEL_MASK); + XSDPS_TM_DMA_EN_MASK | XSDPS_TM_MUL_SIN_BLK_SEL_MASK; - Xil_DCacheInvalidateRange((INTPTR)Buff, BlkCnt * XSDPS_BLK_SIZE_512_MASK); - - /* Send block read command */ - Status = XSdPs_CmdTransfer(InstancePtr, CMD18, Arg, BlkCnt); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + /* Send multiple blocks read command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD18, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } /* Check for transfer complete */ @@ -1228,19 +1444,31 @@ s32 XSdPs_WritePolled(XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, const u8 *Buff) } XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, Buff); - Xil_DCacheFlushRange((INTPTR)Buff, BlkCnt * XSDPS_BLK_SIZE_512_MASK); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)Buff, + BlkCnt * XSDPS_BLK_SIZE_512_MASK); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_AUTO_CMD12_EN_MASK | + if (BlkCnt == 1U) { + TransferMode = XSDPS_TM_BLK_CNT_EN_MASK | XSDPS_TM_DMA_EN_MASK; + + /* Send single block write command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD24, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + } else { + TransferMode = XSDPS_TM_AUTO_CMD12_EN_MASK | XSDPS_TM_BLK_CNT_EN_MASK | - XSDPS_TM_MUL_SIN_BLK_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + XSDPS_TM_MUL_SIN_BLK_SEL_MASK | XSDPS_TM_DMA_EN_MASK; - /* Send block write command */ - Status = XSdPs_CmdTransfer(InstancePtr, CMD25, Arg, BlkCnt); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + /* Send multiple blocks write command */ + Status = XSdPs_CmdTransfer(InstancePtr, CMD25, Arg, BlkCnt); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } /* @@ -1342,8 +1570,13 @@ void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff) } for (DescNum = 0U; DescNum < (TotalDescLines-1); DescNum++) { +#ifdef __aarch64__ + InstancePtr->Adma2_DescrTbl[DescNum].Address = + (u64)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#else InstancePtr->Adma2_DescrTbl[DescNum].Address = (u32)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#endif InstancePtr->Adma2_DescrTbl[DescNum].Attribute = XSDPS_DESC_TRAN | XSDPS_DESC_VALID; /* This will write '0' to length field which indicates 65536 */ @@ -1351,8 +1584,13 @@ void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff) (u16)XSDPS_DESC_MAX_LENGTH; } +#ifdef __aarch64__ + InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Address = + (u64)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#else InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Address = (u32)((UINTPTR)Buff + (DescNum*XSDPS_DESC_MAX_LENGTH)); +#endif InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Attribute = XSDPS_DESC_TRAN | XSDPS_DESC_END | XSDPS_DESC_VALID; @@ -1360,13 +1598,18 @@ void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff) InstancePtr->Adma2_DescrTbl[TotalDescLines-1].Length = (u16)((BlkCnt*BlkSize) - (DescNum*XSDPS_DESC_MAX_LENGTH)); +#ifdef __aarch64__ + XSdPs_WriteReg(InstancePtr->Config.BaseAddress, XSDPS_ADMA_SAR_EXT_OFFSET, + (u32)(((u64)&(InstancePtr->Adma2_DescrTbl[0]))>>32)); +#endif XSdPs_WriteReg(InstancePtr->Config.BaseAddress, XSDPS_ADMA_SAR_OFFSET, (u32)(UINTPTR)&(InstancePtr->Adma2_DescrTbl[0])); - Xil_DCacheFlushRange((INTPTR)&(InstancePtr->Adma2_DescrTbl[0]), + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)&(InstancePtr->Adma2_DescrTbl[0]), sizeof(XSdPs_Adma2Descriptor) * 32U); - + } } /*****************************************************************************/ @@ -1398,6 +1641,7 @@ s32 XSdPs_MmcCardInitialize(XSdPs *InstancePtr) s32 Status; u32 RespOCR; u32 CSD[4]; + u32 BlkLen, DeviceSize, Mult; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); @@ -1498,6 +1742,16 @@ s32 XSdPs_MmcCardInitialize(XSdPs *InstancePtr) InstancePtr->Card_Version = (CSD[3] & CSD_SPEC_VER_MASK) >>18U; + /* Calculating the memory capacity */ + BlkLen = 1 << ((CSD[2] & READ_BLK_LEN_MASK) >> 8U); + Mult = 1 << (((CSD[1] & C_SIZE_MULT_MASK) >> 7U) + 2U); + DeviceSize = (CSD[1] & C_SIZE_LOWER_MASK) >> 22U; + DeviceSize |= (CSD[2] & C_SIZE_UPPER_MASK) << 10U; + DeviceSize = (DeviceSize + 1U) * Mult; + DeviceSize = DeviceSize * BlkLen; + + InstancePtr->SectorCount = (DeviceSize/XSDPS_BLK_SIZE_512_MASK); + Status = XST_SUCCESS; RETURN_PATH: diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps.h similarity index 77% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps.h index 409653891..3f9ffd202 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2013 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2013 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xsdps.h -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * @details * @@ -125,6 +125,30 @@ * of SDR50, SDR104 and HS200. * sk 02/16/16 Corrected the Tuning logic. * sk 03/01/16 Removed Bus Width check for eMMC. CR# 938311. +* 2.8 sk 04/20/16 Added new workaround for auto tuning. +* 05/03/16 Standard Speed for SD to 19MHz in ZynqMPSoC. CR#951024 +* 3.0 sk 06/09/16 Added support for mkfs to calculate sector count. +* sk 07/16/16 Added support for UHS modes. +* sk 07/07/16 Used usleep API for both arm and microblaze. +* sk 07/16/16 Added Tap delays accordingly to different SD/eMMC +* operating modes. +* sk 08/13/16 Removed sleep.h from xsdps.h as a temporary fix for +* CR#956899. +* 3.1 mi 09/07/16 Removed compilation warnings with extra compiler flags. +* sk 10/13/16 Reduced the delay during power cycle to 1ms as per spec +* sk 10/19/16 Used emmc_hwreset pin to reset eMMC. +* sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. +* sk 11/16/16 Issue DLL reset at 31 iteration to load new zero value. +* 3.2 sk 11/30/16 Modified the voltage switching sequence as per spec. +* sk 02/01/17 Added HSD and DDR mode support for eMMC. +* sk 02/01/17 Consider bus width parameter from design for switching +* vns 02/09/17 Added ARMA53_32 support for ZynqMP CR#968397 +* sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 05/17/17 Add support for 64bit DMA addressing +* mn 08/07/17 Modify driver to support 64-bit DMA in arm64 only +* mn 08/17/17 Enabled CCI support for A53 by adding cache coherency +* information. +* mn 09/06/17 Resolved compilation errors with IAR toolchain * * * @@ -142,6 +166,7 @@ extern "C" { #include "xil_cache.h" #include "xstatus.h" #include "xsdps_hw.h" +#include "xplatform_info.h" #include /************************** Constant Definitions *****************************/ @@ -150,6 +175,9 @@ extern "C" { #define MAX_TUNING_COUNT 40U /**< Maximum Tuning count */ /**************************** Type Definitions *******************************/ + +typedef void (*XSdPs_ConfigTap) (u32 Bank, u32 DeviceId, u32 CardType); + /** * This typedef contains configuration information for the device. */ @@ -159,14 +187,28 @@ typedef struct { u32 InputClockHz; /**< Input clock frequency */ u32 CardDetect; /**< Card Detect */ u32 WriteProtect; /**< Write Protect */ + u32 BusWidth; /**< Bus Width */ + u32 BankNumber; /**< MIO Bank selection for SD */ + u32 HasEMIO; /**< If SD is connected to EMIO */ + u8 IsCacheCoherent; /**< If SD is Cache Coherent or not */ } XSdPs_Config; /* ADMA2 descriptor table */ typedef struct { u16 Attribute; /**< Attributes of descriptor */ u16 Length; /**< Length of current dma transfer */ +#ifdef __aarch64__ + u64 Address; /**< Address of current dma transfer */ +#else u32 Address; /**< Address of current dma transfer */ +#endif +#ifdef __ICCARM__ +#pragma data_alignment = 32 } XSdPs_Adma2Descriptor; +#pragma data_alignment = 4 +#else +} __attribute__((__packed__))XSdPs_Adma2Descriptor; +#endif /** * The XSdPs driver instance data. The user is required to allocate a @@ -188,7 +230,10 @@ typedef struct { u32 CardID[4]; /**< Card ID Register */ u32 RelCardAddr; /**< Relative Card Address */ u32 CardSpecData[4]; /**< Card Specific Data Register */ + u32 SectorCount; /**< Sector Count */ u32 SdCardConfig; /**< Sd Card Configuration Register */ + u32 Mode; /**< Bus Speed Mode */ + XSdPs_ConfigTap Config_TapDelay; /**< Configuring the tap delays */ /**< ADMA Descriptors */ #ifdef __ICCARM__ #pragma data_alignment = 32 @@ -219,6 +264,13 @@ s32 XSdPs_Pullup(XSdPs *InstancePtr); s32 XSdPs_MmcCardInitialize(XSdPs *InstancePtr); s32 XSdPs_CardInitialize(XSdPs *InstancePtr); s32 XSdPs_Get_Mmc_ExtCsd(XSdPs *InstancePtr, u8 *ReadBuff); +s32 XSdPs_Set_Mmc_ExtCsd(XSdPs *InstancePtr, u32 Arg); +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) +void XSdPs_Identify_UhsMode(XSdPs *InstancePtr, u8 *ReadBuff); +void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); +void XSdPs_hsd_sdr25_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); +void XSdPs_sdr104_hs200_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); +#endif #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_g.c similarity index 89% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_g.c index 72981b551..de9be71b8 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_1/src/xsdps_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XSdPs_Config XSdPs_ConfigTable[] = +XSdPs_Config XSdPs_ConfigTable[XPAR_XSDPS_NUM_INSTANCES] = { { XPAR_PSU_SD_1_DEVICE_ID, @@ -54,7 +54,8 @@ XSdPs_Config XSdPs_ConfigTable[] = XPAR_PSU_SD_1_HAS_WP, XPAR_PSU_SD_1_BUS_WIDTH, XPAR_PSU_SD_1_MIO_BANK, - XPAR_PSU_SD_1_HAS_EMIO + XPAR_PSU_SD_1_HAS_EMIO, + XPAR_PSU_SD_1_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_hw.h similarity index 90% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_hw.h index c797e8216..8d190efa0 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_hw.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2013 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2013 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xsdps_hw.h -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * This header file contains the identifiers and basic HW access driver @@ -50,6 +50,17 @@ * kvn 07/15/15 Modified the code according to MISRAC-2012. * 2.7 sk 12/10/15 Added support for MMC cards. * sk 03/02/16 Configured the Tap Delay values for eMMC HS200 mode. +* 2.8 sk 04/20/16 Added new workaround for auto tuning. +* 3.0 sk 06/09/16 Added support for mkfs to calculate sector count. +* sk 07/16/16 Added support for UHS modes. +* sk 07/16/16 Added Tap delays accordingly to different SD/eMMC +* operating modes. +* 3.1 sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. +* 3.2 sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 08/22/17 Updated for Word Access System support +* mn 09/06/17 Added support for ARMCC toolchain +* 3.4 mn 01/22/18 Separated out SDR104 and HS200 clock defines +* * * ******************************************************************************/ @@ -796,6 +807,12 @@ extern "C" { #define XSDPS_CUR_LIM_800 3U #define CSD_SPEC_VER_MASK 0x3C0000U +#define READ_BLK_LEN_MASK 0x00000F00U +#define C_SIZE_MULT_MASK 0x00000380U +#define C_SIZE_LOWER_MASK 0xFFC00000U +#define C_SIZE_UPPER_MASK 0x00000003U +#define CSD_STRUCT_MASK 0x00C00000U +#define CSD_V2_C_SIZE_MASK 0x3FFFFF00U /* EXT_CSD field definitions */ #define XSDPS_EXT_CSD_SIZE 512U @@ -842,6 +859,10 @@ extern "C" { #define EXT_CSD_HS_TIMING_HIGH 1U /* Card is in high speed mode */ #define EXT_CSD_HS_TIMING_HS200 2U /* Card is in HS200 mode */ +#define EXT_CSD_RST_N_FUN_BYTE 162U +#define EXT_CSD_RST_N_FUN_TEMP_DIS 0U /* RST_n signal is temporarily disabled */ +#define EXT_CSD_RST_N_FUN_PERM_EN 1U /* RST_n signal is permanently enabled */ +#define EXT_CSD_RST_N_FUN_PERM_DIS 2U /* RST_n signal is permanently disabled */ #define XSDPS_EXT_CSD_CMD_SET 0U #define XSDPS_EXT_CSD_SET_BITS 1U @@ -880,6 +901,10 @@ extern "C" { | ((u32)EXT_CSD_BUS_WIDTH_BYTE << 16) \ | ((u32)EXT_CSD_BUS_WIDTH_DDR_8_BIT << 8)) +#define XSDPS_MMC_RST_FUN_EN_ARG (((u32)XSDPS_EXT_CSD_WRITE_BYTE << 24) \ + | ((u32)EXT_CSD_RST_N_FUN_BYTE << 16) \ + | ((u32)EXT_CSD_RST_N_FUN_PERM_EN << 8)) + #define XSDPS_MMC_DELAY_FOR_SWITCH 1000U /* @} */ @@ -930,6 +955,10 @@ extern "C" { #define XSDPS_UHS_SPEED_MODE_SDR50 0x2U #define XSDPS_UHS_SPEED_MODE_SDR104 0x3U #define XSDPS_UHS_SPEED_MODE_DDR50 0x4U +#define XSDPS_HIGH_SPEED_MODE 0x5U +#define XSDPS_DEFAULT_SPEED_MODE 0x6U +#define XSDPS_HS200_MODE 0x7U +#define XSDPS_DDR52_MODE 0x4U #define XSDPS_SWITCH_CMD_BLKCNT 1U #define XSDPS_SWITCH_CMD_BLKSIZE 64U #define XSDPS_SWITCH_CMD_HS_GET 0x00FFFFF0U @@ -970,7 +999,16 @@ extern "C" { #define XSDPS_SD_SDR50_MAX_CLK 100000000U #define XSDPS_SD_DDR50_MAX_CLK 50000000U #define XSDPS_SD_SDR104_MAX_CLK 208000000U +/* + * XSDPS_SD_INPUT_MAX_CLK is set to 175000000 in order to keep it smaller + * than the clock value coming from the core. This value is kept to safely + * switch to SDR104 mode if the SD card supports it. + */ +#define XSDPS_SD_INPUT_MAX_CLK 175000000U + #define XSDPS_MMC_HS200_MAX_CLK 200000000U +#define XSDPS_MMC_HSD_MAX_CLK 52000000U +#define XSDPS_MMC_DDR_MAX_CLK 52000000U #define XSDPS_CARD_STATE_IDLE 0U #define XSDPS_CARD_STATE_RDY 1U @@ -987,15 +1025,51 @@ extern "C" { #define XSDPS_SLOT_REM 0U #define XSDPS_SLOT_EMB 1U -#if defined (__arm__) || defined (__aarch64__) -#define SD_DLL_CTRL 0x00000358U -#define SD_ITAPDLY 0x00000314U -#define SD_OTAPDLYSEL 0x00000318U -#define SD0_DLL_RST 0x00000004U -#define SD0_ITAPCHGWIN 0x00000200U -#define SD0_ITAPDLYENA 0x00000100U -#define SD0_OTAPDLYENA 0x00000040U -#define SD0_OTAPDLYSEL_HS200 0x00000003U +#define XSDPS_WIDTH_8 8U +#define XSDPS_WIDTH_4 4U + + +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) +#define SD0_ITAPDLY_SEL_MASK 0x000000FFU +#define SD0_OTAPDLY_SEL_MASK 0x0000003FU +#define SD1_ITAPDLY_SEL_MASK 0x00FF0000U +#define SD1_OTAPDLY_SEL_MASK 0x003F0000U +#define SD_DLL_CTRL 0x00000358U +#define SD_ITAPDLY 0x00000314U +#define SD_OTAPDLY 0x00000318U +#define SD0_DLL_RST 0x00000004U +#define SD1_DLL_RST 0x00040000U +#define SD0_ITAPCHGWIN 0x00000200U +#define SD0_ITAPDLYENA 0x00000100U +#define SD0_OTAPDLYENA 0x00000040U +#define SD1_ITAPCHGWIN 0x02000000U +#define SD1_ITAPDLYENA 0x01000000U +#define SD1_OTAPDLYENA 0x00400000U + +#define SD0_OTAPDLYSEL_HS200_B0 0x00000003U +#define SD0_OTAPDLYSEL_HS200_B2 0x00000002U +#define SD0_ITAPDLYSEL_SD50 0x00000014U +#define SD0_OTAPDLYSEL_SD50 0x00000003U +#define SD0_ITAPDLYSEL_SD_DDR50 0x0000003DU +#define SD0_ITAPDLYSEL_EMMC_DDR50 0x00000012U +#define SD0_OTAPDLYSEL_SD_DDR50 0x00000004U +#define SD0_OTAPDLYSEL_EMMC_DDR50 0x00000006U +#define SD0_ITAPDLYSEL_HSD 0x00000015U +#define SD0_OTAPDLYSEL_SD_HSD 0x00000005U +#define SD0_OTAPDLYSEL_EMMC_HSD 0x00000006U + +#define SD1_OTAPDLYSEL_HS200_B0 0x00030000U +#define SD1_OTAPDLYSEL_HS200_B2 0x00020000U +#define SD1_ITAPDLYSEL_SD50 0x00140000U +#define SD1_OTAPDLYSEL_SD50 0x00030000U +#define SD1_ITAPDLYSEL_SD_DDR50 0x003D0000U +#define SD1_ITAPDLYSEL_EMMC_DDR50 0x00120000U +#define SD1_OTAPDLYSEL_SD_DDR50 0x00040000U +#define SD1_OTAPDLYSEL_EMMC_DDR50 0x00060000U +#define SD1_ITAPDLYSEL_HSD 0x00150000U +#define SD1_OTAPDLYSEL_SD_HSD 0x00050000U +#define SD1_OTAPDLYSEL_EMMC_HSD 0x00060000U + #endif /**************************** Type Definitions *******************************/ @@ -1100,8 +1174,18 @@ extern "C" { * u16 XSdPs_ReadReg(u32 BaseAddress. int RegOffset) * ******************************************************************************/ -#define XSdPs_ReadReg16(BaseAddress, RegOffset) \ - XSdPs_In16((BaseAddress) + (RegOffset)) +static INLINE u16 XSdPs_ReadReg16(u32 BaseAddress, u8 RegOffset) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg >>= ((RegOffset & 0x3)*8); + return (u16)Reg; +#else + return XSdPs_In16((BaseAddress) + (RegOffset)); +#endif +} /***************************************************************************/ /** @@ -1119,8 +1203,20 @@ extern "C" { * u16 RegisterValue) * ******************************************************************************/ -#define XSdPs_WriteReg16(BaseAddress, RegOffset, RegisterValue) \ - XSdPs_Out16((BaseAddress) + (RegOffset), (RegisterValue)) + +static INLINE void XSdPs_WriteReg16(u32 BaseAddress, u8 RegOffset, u16 RegisterValue) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg &= ~(0xFFFF<<((RegOffset & 0x3)*8)); + Reg |= RegisterValue <<((RegOffset & 0x3)*8); + XSdPs_Out32(BaseAddress, Reg); +#else + XSdPs_Out16((BaseAddress) + (RegOffset), (RegisterValue)); +#endif +} /****************************************************************************/ /** @@ -1136,9 +1232,18 @@ extern "C" { * u8 XSdPs_ReadReg(u32 BaseAddress. int RegOffset) * ******************************************************************************/ -#define XSdPs_ReadReg8(BaseAddress, RegOffset) \ - XSdPs_In8((BaseAddress) + (RegOffset)) - +static INLINE u8 XSdPs_ReadReg8(u32 BaseAddress, u8 RegOffset) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg >>= ((RegOffset & 0x3)*8); + return (u8)Reg; +#else + return XSdPs_In8((BaseAddress) + (RegOffset)); +#endif +} /***************************************************************************/ /** * Write to a register. @@ -1155,9 +1260,19 @@ extern "C" { * u8 RegisterValue) * ******************************************************************************/ -#define XSdPs_WriteReg8(BaseAddress, RegOffset, RegisterValue) \ - XSdPs_Out8((BaseAddress) + (RegOffset), (RegisterValue)) - +static INLINE void XSdPs_WriteReg8(u32 BaseAddress, u8 RegOffset, u8 RegisterValue) +{ +#if defined (__MICROBLAZE__) + u32 Reg; + BaseAddress += RegOffset & 0xFC; + Reg = XSdPs_In32(BaseAddress); + Reg &= ~(0xFF<<((RegOffset & 0x3)*8)); + Reg |= RegisterValue <<((RegOffset & 0x3)*8); + XSdPs_Out32(BaseAddress, Reg); +#else + XSdPs_Out8((BaseAddress) + (RegOffset), (RegisterValue)); +#endif +} /***************************************************************************/ /** * Macro to get present status register diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_options.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_options.c similarity index 52% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_options.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_options.c index 8151eef1b..bcd7c689b 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_options.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_options.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2013 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2013 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xsdps_options.c -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * Contains API's for changing the various options in host and card. @@ -55,6 +55,26 @@ * of SDR50, SDR104 and HS200. * sk 02/16/16 Corrected the Tuning logic. * sk 03/02/16 Configured the Tap Delay values for eMMC HS200 mode. +* 2.8 sk 04/20/16 Added new workaround for auto tuning. +* 3.0 sk 07/07/16 Used usleep API for both arm and microblaze. +* sk 07/16/16 Added support for UHS modes. +* sk 07/16/16 Added Tap delays accordingly to different SD/eMMC +* operating modes. +* 3.1 mi 09/07/16 Removed compilation warnings with extra compiler flags. +* sk 11/07/16 Enable Rst_n bit in ext_csd reg if not enabled. +* sk 11/16/16 Issue DLL reset at 31 iteration to load new zero value. +* 3.2 sk 02/01/17 Added HSD and DDR mode support for eMMC. +* sk 02/01/17 Consider bus width parameter from design for switching +* vns 02/09/17 Added ARMA53_32 support for ZynqMP CR#968397 +* vns 03/13/17 Fixed MISRAC mandatory violation +* sk 03/20/17 Add support for EL1 non-secure mode. +* 3.3 mn 07/25/17 Removed SD0_OTAPDLYENA and SD1_OTAPDLYENA bits +* mn 08/07/17 Properly set OTAPDLY value by clearing previous bit +* settings +* mn 08/17/17 Added CCI support for A53 and disabled data cache +* operations when it is enabled. +* mn 08/22/17 Updated for Word Access System support +* 3.4 mn 01/22/18 Separated out SDR104 and HS200 clock defines * * * @@ -62,24 +82,16 @@ /***************************** Include Files *********************************/ #include "xsdps.h" -/* - * The header sleep.h and API usleep() can only be used with an arm design. - * MB_Sleep() is used for microblaze design. - */ -#if defined (__arm__) || defined (__aarch64__) - #include "sleep.h" - +#if defined (__aarch64__) +#include "xil_smc.h" #endif - -#ifdef __MICROBLAZE__ - -#include "microblaze_sleep.h" - -#endif - /************************** Constant Definitions *****************************/ - +#define UHS_SDR12_SUPPORT 0x1U +#define UHS_SDR25_SUPPORT 0x2U +#define UHS_SDR50_SUPPORT 0x4U +#define UHS_SDR104_SUPPORT 0x8U +#define UHS_DDR50_SUPPORT 0x10U /**************************** Type Definitions *******************************/ /***************** Macros (Inline Functions) Definitions *********************/ @@ -87,13 +99,15 @@ /************************** Function Prototypes ******************************/ s32 XSdPs_CmdTransfer(XSdPs *InstancePtr, u32 Cmd, u32 Arg, u32 BlkCnt); void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff); -s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode); static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr); +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode); -#if defined (__arm__) || defined (__aarch64__) +static void XSdPs_sdr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType); void XSdPs_SetTapDelay(XSdPs *InstancePtr); +static void XSdPs_DllReset(XSdPs *InstancePtr); #endif +extern u16 TransferMode; /*****************************************************************************/ /** * Update Block size for read/write operations. @@ -193,11 +207,11 @@ s32 XSdPs_Get_BusWidth(XSdPs *InstancePtr, u8 *SCR) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, SCR); - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; - Xil_DCacheInvalidateRange((INTPTR)SCR, 8); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)SCR, 8); + } Status = XSdPs_CmdTransfer(InstancePtr, ACMD51, 0U, BlkCnt); if (Status != XST_SUCCESS) { @@ -261,6 +275,16 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); + /* + * check for bus width for 3.0 controller and return if + * bus width is <4 + */ + if ((InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) && + (InstancePtr->Config.BusWidth < XSDPS_WIDTH_4)) { + Status = XST_SUCCESS; + goto RETURN_PATH; + } + if (InstancePtr->CardType == XSDPS_CARD_SD) { Status = XSdPs_CmdTransfer(InstancePtr, CMD55, InstancePtr->RelCardAddr, @@ -282,7 +306,8 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) } else { if ((InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) - && (InstancePtr->CardType == XSDPS_CHIP_EMMC)) { + && (InstancePtr->CardType == XSDPS_CHIP_EMMC) && + (InstancePtr->Config.BusWidth == XSDPS_WIDTH_8)) { /* in case of eMMC data width 8-bit */ InstancePtr->BusWidth = XSDPS_8_BIT_WIDTH; } else { @@ -290,9 +315,15 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) } if (InstancePtr->BusWidth == XSDPS_8_BIT_WIDTH) { - Arg = XSDPS_MMC_8_BIT_BUS_ARG; + if (InstancePtr->Mode == XSDPS_DDR52_MODE) + Arg = XSDPS_MMC_DDR_8_BIT_BUS_ARG; + else + Arg = XSDPS_MMC_8_BIT_BUS_ARG; } else { - Arg = XSDPS_MMC_4_BIT_BUS_ARG; + if (InstancePtr->Mode == XSDPS_DDR52_MODE) + Arg = XSDPS_MMC_DDR_4_BIT_BUS_ARG; + else + Arg = XSDPS_MMC_4_BIT_BUS_ARG; } Status = XSdPs_CmdTransfer(InstancePtr, CMD6, Arg, 0U); @@ -320,19 +351,8 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) XSDPS_NORM_INTR_STS_OFFSET, XSDPS_INTR_TC_MASK); } -#if defined (__arm__) || defined (__aarch64__) - usleep(XSDPS_MMC_DELAY_FOR_SWITCH); -#endif - -#ifdef __MICROBLAZE__ - - /* 2 msec delay */ - MB_Sleep(2); - -#endif - StatusReg = XSdPs_ReadReg8(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL1_OFFSET); @@ -347,6 +367,15 @@ s32 XSdPs_Change_BusWidth(XSdPs *InstancePtr) XSDPS_HOST_CTRL1_OFFSET, (u8)StatusReg); + if (InstancePtr->Mode == XSDPS_DDR52_MODE) { + StatusReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET); + StatusReg &= (u16)(~XSDPS_HC2_UHS_MODE_MASK); + StatusReg |= InstancePtr->Mode; + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_HOST_CTRL2_OFFSET, StatusReg); + } + Status = (s32)XSdPs_ReadReg(InstancePtr->Config.BaseAddress, XSDPS_RESP0_OFFSET); @@ -398,13 +427,13 @@ s32 XSdPs_Get_BusSpeed(XSdPs *InstancePtr, u8 *ReadBuff) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; Arg = XSDPS_SWITCH_CMD_HS_GET; - Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 64); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 64); + } Status = XSdPs_CmdTransfer(InstancePtr, CMD6, Arg, 1U); if (Status != XST_SUCCESS) { @@ -463,10 +492,9 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) s32 Status; u32 StatusReg; u32 Arg; - u32 ClockReg; u16 BlkCnt; u16 BlkSize; - u8 ReadBuff[64]; + u8 ReadBuff[64] = {0U}; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); @@ -481,11 +509,11 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; Arg = XSDPS_SWITCH_CMD_HS_SET; @@ -565,7 +593,16 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) goto RETURN_PATH; } } else { - Arg = XSDPS_MMC_HS200_ARG; + if (InstancePtr->Mode == XSDPS_HS200_MODE) { + Arg = XSDPS_MMC_HS200_ARG; + InstancePtr->BusSpeed = XSDPS_MMC_HS200_MAX_CLK; + } else if (InstancePtr->Mode == XSDPS_DDR52_MODE) { + Arg = XSDPS_MMC_HIGH_SPEED_ARG; + InstancePtr->BusSpeed = XSDPS_MMC_DDR_MAX_CLK; + } else { + Arg = XSDPS_MMC_HIGH_SPEED_ARG; + InstancePtr->BusSpeed = XSDPS_MMC_HSD_MAX_CLK; + } Status = XSdPs_CmdTransfer(InstancePtr, CMD6, Arg, 0U); if (Status != XST_SUCCESS) { @@ -597,38 +634,23 @@ s32 XSdPs_Change_BusSpeed(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_NORM_INTR_STS_OFFSET, XSDPS_INTR_TC_MASK); - /* Change the clock frequency to 200 MHz */ - InstancePtr->BusSpeed = XSDPS_MMC_HS200_MAX_CLK; - Status = XSdPs_Change_ClkFreq(InstancePtr, InstancePtr->BusSpeed); if (Status != XST_SUCCESS) { Status = XST_FAILURE; goto RETURN_PATH; } - Status = XSdPs_Execute_Tuning(InstancePtr); - if (Status != XST_SUCCESS) { - Status = XST_FAILURE; - goto RETURN_PATH; + + if (InstancePtr->Mode == XSDPS_HS200_MODE) { + Status = XSdPs_Execute_Tuning(InstancePtr); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } } -#if defined (__arm__) || defined (__aarch64__) - /* Program the Tap delays */ - XSdPs_SetTapDelay(InstancePtr); -#endif } -#if defined (__arm__) || defined (__aarch64__) - usleep(XSDPS_MMC_DELAY_FOR_SWITCH); -#endif - -#ifdef __MICROBLAZE__ - - /* 2 msec delay */ - MB_Sleep(2); - -#endif - StatusReg = (s32)XSdPs_ReadReg8(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL1_OFFSET); StatusReg |= XSDPS_HC_SPEED_MASK; @@ -667,7 +689,6 @@ s32 XSdPs_Change_ClkFreq(XSdPs *InstancePtr, u32 SelFreq) u16 DivCnt; u16 Divisor = 0U; u16 ExtDivisor; - u16 ClkLoopCnt; s32 Status; u16 ReadReg; @@ -682,6 +703,12 @@ s32 XSdPs_Change_ClkFreq(XSdPs *InstancePtr, u32 SelFreq) XSDPS_CLK_CTRL_OFFSET, ClockReg); if (InstancePtr->HC_Version == XSDPS_HC_SPEC_V3) { +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + if ((InstancePtr->Mode != XSDPS_DEFAULT_SPEED_MODE) && + (InstancePtr->Mode != XSDPS_UHS_SPEED_MODE_SDR12)) + /* Program the Tap delays */ + XSdPs_SetTapDelay(InstancePtr); +#endif /* Calculate divisor */ for (DivCnt = 0x1U; DivCnt <= XSDPS_CC_EXT_MAX_DIV_CNT;DivCnt++) { if (((InstancePtr->Config.InputClockHz) / DivCnt) <= SelFreq) { @@ -845,12 +872,11 @@ s32 XSdPs_Get_Mmc_ExtCsd(XSdPs *InstancePtr, u8 *ReadBuff) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 512U); - - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, - XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)ReadBuff, 512U); + } + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; /* Send SEND_EXT_CSD command */ Status = XSdPs_CmdTransfer(InstancePtr, CMD8, Arg, 1U); @@ -890,6 +916,110 @@ s32 XSdPs_Get_Mmc_ExtCsd(XSdPs *InstancePtr, u8 *ReadBuff) } +/*****************************************************************************/ +/** +* +* API to write EXT_CSD register of eMMC. +* +* +* @param InstancePtr is a pointer to the XSdPs instance. +* @param Arg is the argument to be sent along with the command +* +* @return +* - XST_SUCCESS if successful. +* - XST_FAILURE if fail. +* +* @note None. +* +******************************************************************************/ +s32 XSdPs_Set_Mmc_ExtCsd(XSdPs *InstancePtr, u32 Arg) +{ + s32 Status; + u32 StatusReg; + + Status = XSdPs_CmdTransfer(InstancePtr, CMD6, Arg, 0U); + if (Status != XST_SUCCESS) { + Status = XST_FAILURE; + goto RETURN_PATH; + } + + /* + * Check for transfer complete + */ + do { + StatusReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_NORM_INTR_STS_OFFSET); + if ((StatusReg & XSDPS_INTR_ERR_MASK) != 0U) { + /* + * Write to clear error bits + */ + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_ERR_INTR_STS_OFFSET, + XSDPS_ERROR_INTR_ALL_MASK); + Status = XST_FAILURE; + goto RETURN_PATH; + } + } while ((StatusReg & XSDPS_INTR_TC_MASK) == 0U); + + /* Write to clear bit */ + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_NORM_INTR_STS_OFFSET, XSDPS_INTR_TC_MASK); + + Status = (s32)XSdPs_ReadReg(InstancePtr->Config.BaseAddress, + XSDPS_RESP0_OFFSET); + + Status = XST_SUCCESS; + + RETURN_PATH: + return Status; + +} + +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) +/*****************************************************************************/ +/** +* +* API to Identify the supported UHS mode. This API will assign the +* corresponding tap delay API to the Config_TapDelay pointer based on the +* supported bus speed. +* +* +* @param InstancePtr is a pointer to the XSdPs instance. +* @param ReadBuff contains the response for CMD6 +* +* @return None. +* +* @note None. +* +******************************************************************************/ +void XSdPs_Identify_UhsMode(XSdPs *InstancePtr, u8 *ReadBuff) +{ + + Xil_AssertVoid(InstancePtr != NULL); + + if (((ReadBuff[13] & UHS_SDR104_SUPPORT) != 0U) && + (InstancePtr->Config.InputClockHz >= XSDPS_SD_INPUT_MAX_CLK)) { + InstancePtr->Mode = XSDPS_UHS_SPEED_MODE_SDR104; + InstancePtr->Config_TapDelay = XSdPs_sdr104_hs200_tapdelay; + } + else if (((ReadBuff[13] & UHS_SDR50_SUPPORT) != 0U) && + (InstancePtr->Config.InputClockHz >= XSDPS_SD_SDR50_MAX_CLK)) { + InstancePtr->Mode = XSDPS_UHS_SPEED_MODE_SDR50; + InstancePtr->Config_TapDelay = XSdPs_sdr50_tapdelay; + } + else if (((ReadBuff[13] & UHS_DDR50_SUPPORT) != 0U) && + (InstancePtr->Config.InputClockHz >= XSDPS_SD_DDR50_MAX_CLK)) { + InstancePtr->Mode = XSDPS_UHS_SPEED_MODE_DDR50; + InstancePtr->Config_TapDelay = XSdPs_ddr50_tapdelay; + } + else if (((ReadBuff[13] & UHS_SDR25_SUPPORT) != 0U) && + (InstancePtr->Config.InputClockHz >= XSDPS_SD_SDR25_MAX_CLK)) { + InstancePtr->Mode = XSDPS_UHS_SPEED_MODE_SDR25; + InstancePtr->Config_TapDelay = XSdPs_hsd_sdr25_tapdelay; + } + else + InstancePtr->Mode = XSDPS_UHS_SPEED_MODE_SDR12; +} /*****************************************************************************/ /** @@ -915,7 +1045,7 @@ s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode) u32 Arg; u16 BlkCnt; u16 BlkSize; - u8 ReadBuff[64]; + u8 ReadBuff[64] = {0U}; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); @@ -931,10 +1061,11 @@ s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode) XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, ReadBuff); - Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + if (InstancePtr->Config.IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)ReadBuff, 64); + } - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK | XSDPS_TM_DMA_EN_MASK; switch (Mode) { case 0U: @@ -1008,7 +1139,7 @@ s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode) } if((Mode == XSDPS_UHS_SPEED_MODE_SDR104) || - (Mode == XSDPS_UHS_SPEED_MODE_DDR50)) { + (Mode == XSDPS_UHS_SPEED_MODE_SDR50)) { /* Send tuning pattern */ Status = XSdPs_Execute_Tuning(InstancePtr); if (Status != XST_SUCCESS) { @@ -1022,22 +1153,18 @@ s32 XSdPs_Uhs_ModeInit(XSdPs *InstancePtr, u8 Mode) RETURN_PATH: return Status; } +#endif static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) { s32 Status; - u32 StatusReg; - u32 Arg; - u16 BlkCnt; u16 BlkSize; - s32 LoopCnt; u16 CtrlReg; u8 TuningCount; Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); - BlkCnt = XSDPS_TUNING_CMD_BLKCNT; BlkSize = XSDPS_TUNING_CMD_BLKSIZE; if(InstancePtr->BusWidth == XSDPS_8_BIT_WIDTH) { @@ -1047,8 +1174,7 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_BLK_SIZE_OFFSET, BlkSize); - XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_XFER_MODE_OFFSET, - XSDPS_TM_DAT_DIR_SEL_MASK); + TransferMode = XSDPS_TM_DAT_DIR_SEL_MASK; CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET); @@ -1056,6 +1182,18 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, XSDPS_HOST_CTRL2_OFFSET, CtrlReg); + /* + * workaround which can work for 1.0/2.0 silicon for auto tuning. + * This can be revisited for 3.0 silicon if necessary. + */ + /* Wait for ~60 clock cycles to reset the tap values */ + (void)usleep(1U); + +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + /* Issue DLL Reset to load new SDHC tuned tap values */ + XSdPs_DllReset(InstancePtr); +#endif + for (TuningCount = 0U; TuningCount < MAX_TUNING_COUNT; TuningCount++) { if (InstancePtr->CardType == XSDPS_CARD_SD) { @@ -1073,6 +1211,13 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) XSDPS_HOST_CTRL2_OFFSET) & XSDPS_HC2_EXEC_TNG_MASK) == 0U) { break; } + + if (TuningCount == 31) { +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + /* Issue DLL Reset to load new SDHC tuned tap values */ + XSdPs_DllReset(InstancePtr); +#endif + } } if ((XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, @@ -1081,25 +1226,13 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) goto RETURN_PATH; } - /* - * As per controller erratum, program the "SDCLK Frequency - * Select" of clock control register with a value, say - * clock/2. Wait for the Internal clock stable and program - * the desired frequency. - */ - CtrlReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, - XSDPS_HOST_CTRL2_OFFSET); - if ((CtrlReg & XSDPS_HC2_SAMP_CLK_SEL_MASK) != 0U) { - Status = XSdPs_Change_ClkFreq(InstancePtr, InstancePtr->BusSpeed/2); - if (Status != XST_SUCCESS) { - goto RETURN_PATH ; - } - Status = XSdPs_Change_ClkFreq(InstancePtr, InstancePtr->BusSpeed); - if (Status != XST_SUCCESS) { - goto RETURN_PATH ; - } + /* Wait for ~12 clock cycles to synchronize the new tap values */ + (void)usleep(1U); - } +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) + /* Issue DLL Reset to load new SDHC tuned tap values */ + XSdPs_DllReset(InstancePtr); +#endif Status = XST_SUCCESS; @@ -1107,7 +1240,363 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) } -#if defined (__arm__) || defined (__aarch64__) +#if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) +/*****************************************************************************/ +/** +* +* API to set Tap Delay for SDR104 and HS200 modes +* +* +* @param InstancePtr is a pointer to the XSdPs instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +void XSdPs_sdr104_hs200_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) +{ + u32 TapDelay; + (void) CardType; + +#ifdef XPAR_PSU_SD_0_DEVICE_ID + if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + if (Bank == 2) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_HS200_B2, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_HS200_B0, 0, 0, 0, 0, 0); +#else + /* Program the OTAPDLY */ + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; + if (Bank == 2) + TapDelay |= SD0_OTAPDLYSEL_HS200_B2; + else + TapDelay |= SD0_OTAPDLYSEL_HS200_B0; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif + } else { +#endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + if (Bank == 2) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_HS200_B2, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_HS200_B0, 0, 0, 0, 0, 0); +#else + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; + if (Bank == 2) + TapDelay |= SD1_OTAPDLYSEL_HS200_B2; + else + TapDelay |= SD1_OTAPDLYSEL_HS200_B0; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif +#ifdef XPAR_PSU_SD_0_DEVICE_ID + } +#endif +} + +/*****************************************************************************/ +/** +* +* API to set Tap Delay for SDR50 mode +* +* +* @param InstancePtr is a pointer to the XSdPs instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +void XSdPs_sdr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) +{ + u32 TapDelay; + (void) Bank; + (void) CardType; + +#ifdef XPAR_PSU_SD_0_DEVICE_ID + if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_OTAPDLY) | + ((u64)SD0_OTAPDLY_SEL_MASK << 32), (u64)SD0_OTAPDLYSEL_SD50, + 0, 0, 0, 0, 0); +#else + /* Program the OTAPDLY */ + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; + TapDelay |= SD0_OTAPDLYSEL_SD50; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif + } else { +#endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_OTAPDLY) | + ((u64)SD1_OTAPDLY_SEL_MASK << 32), (u64)SD1_OTAPDLYSEL_SD50, + 0, 0, 0, 0, 0); +#else + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; + TapDelay |= SD1_OTAPDLYSEL_SD50; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif +#ifdef XPAR_PSU_SD_0_DEVICE_ID + } +#endif +} + +/*****************************************************************************/ +/** +* +* API to set Tap Delay for DDR50 mode +* +* +* @param InstancePtr is a pointer to the XSdPs instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +void XSdPs_ddr50_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) +{ + u32 TapDelay; + (void) Bank; + +#ifdef XPAR_PSU_SD_0_DEVICE_ID + if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)SD0_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPDLYENA << 32), (u64)SD0_ITAPDLYENA, + 0, 0, 0, 0, 0); + if (CardType== XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD0_ITAPDLY_SEL_MASK << 32), + (u64)SD0_ITAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD0_ITAPDLY_SEL_MASK << 32), + (u64)SD0_ITAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); +#else + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); + TapDelay |= SD0_ITAPCHGWIN; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + /* Program the ITAPDLY */ + TapDelay |= SD0_ITAPDLYENA; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + if (CardType== XSDPS_CARD_SD) + TapDelay |= SD0_ITAPDLYSEL_SD_DDR50; + else + TapDelay |= SD0_ITAPDLYSEL_EMMC_DDR50; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + TapDelay &= ~SD0_ITAPCHGWIN; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + /* Program the OTAPDLY */ + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; + if (CardType == XSDPS_CARD_SD) + TapDelay |= SD0_OTAPDLYSEL_SD_DDR50; + else + TapDelay |= SD0_OTAPDLYSEL_EMMC_DDR50; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif + } else { +#endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPCHGWIN << 32), (u64)SD1_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPDLYENA << 32), (u64)SD1_ITAPDLYENA, + 0, 0, 0, 0, 0); + if (CardType== XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD1_ITAPDLY_SEL_MASK << 32), + (u64)SD1_ITAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD1_ITAPDLY_SEL_MASK << 32), + (u64)SD1_ITAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_ITAPDLY) | ((u64)SD1_ITAPCHGWIN << 32), + (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID,(u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_SD_DDR50, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID,(u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_EMMC_DDR50, 0, 0, 0, 0, 0); +#else + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); + TapDelay |= SD1_ITAPCHGWIN; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + /* Program the ITAPDLY */ + TapDelay |= SD1_ITAPDLYENA; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + if (CardType == XSDPS_CARD_SD) + TapDelay |= SD1_ITAPDLYSEL_SD_DDR50; + else + TapDelay |= SD1_ITAPDLYSEL_EMMC_DDR50; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + TapDelay &= ~SD1_ITAPCHGWIN; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + /* Program the OTAPDLY */ + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; + if (CardType == XSDPS_CARD_SD) + TapDelay |= SD1_OTAPDLYSEL_SD_DDR50; + else + TapDelay |= SD1_OTAPDLYSEL_EMMC_DDR50; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif +#ifdef XPAR_PSU_SD_0_DEVICE_ID + } +#endif +} + +/*****************************************************************************/ +/** +* +* API to set Tap Delay for HSD and SDR25 mode +* +* +* @param InstancePtr is a pointer to the XSdPs instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +void XSdPs_hsd_sdr25_tapdelay(u32 Bank, u32 DeviceId, u32 CardType) +{ + u32 TapDelay; + (void) Bank; + +#ifdef XPAR_PSU_SD_0_DEVICE_ID + if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)SD0_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPDLYENA << 32), (u64)SD0_ITAPDLYENA, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPDLY_SEL_MASK << 32), (u64)SD0_ITAPDLYSEL_HSD, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD0_ITAPCHGWIN << 32), (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_SD_HSD, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD0_OTAPDLY_SEL_MASK << 32), + (u64)SD0_OTAPDLYSEL_EMMC_HSD, 0, 0, 0, 0, 0); +#else + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); + TapDelay |= SD0_ITAPCHGWIN; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + /* Program the ITAPDLY */ + TapDelay |= SD0_ITAPDLYENA; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + TapDelay |= SD0_ITAPDLYSEL_HSD; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + TapDelay &= ~SD0_ITAPCHGWIN; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + /* Program the OTAPDLY */ + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); + TapDelay &= ~SD0_OTAPDLY_SEL_MASK; + if (CardType == XSDPS_CARD_SD) + TapDelay |= SD0_OTAPDLYSEL_SD_HSD; + else + TapDelay |= SD0_OTAPDLYSEL_EMMC_HSD; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif + } else { +#endif + (void) DeviceId; +#if EL1_NONSECURE && defined (__aarch64__) + (void)TapDelay; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPCHGWIN << 32), (u64)SD1_ITAPCHGWIN, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPDLYENA << 32), (u64)SD1_ITAPDLYENA, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPDLY_SEL_MASK << 32), (u64)SD1_ITAPDLYSEL_HSD, + 0, 0, 0, 0, 0); + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + SD_ITAPDLY) | + ((u64)SD1_ITAPCHGWIN << 32), (u64)0x0, 0, 0, 0, 0, 0); + if (CardType == XSDPS_CARD_SD) + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_SD_HSD, 0, 0, 0, 0, 0); + else + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_OTAPDLY) | ((u64)SD1_OTAPDLY_SEL_MASK << 32), + (u64)SD1_OTAPDLYSEL_EMMC_HSD, 0, 0, 0, 0, 0); +#else + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); + TapDelay |= SD1_ITAPCHGWIN; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + /* Program the ITAPDLY */ + TapDelay |= SD1_ITAPDLYENA; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + TapDelay |= SD1_ITAPDLYSEL_HSD; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + TapDelay &= ~SD1_ITAPCHGWIN; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); + /* Program the OTAPDLY */ + TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY); + TapDelay &= ~SD1_OTAPDLY_SEL_MASK; + if (CardType == XSDPS_CARD_SD) + TapDelay |= SD1_OTAPDLYSEL_SD_HSD; + else + TapDelay |= SD1_OTAPDLYSEL_EMMC_HSD; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLY, TapDelay); +#endif +#ifdef XPAR_PSU_SD_0_DEVICE_ID + } +#endif +} + /*****************************************************************************/ /** * @@ -1123,30 +1612,149 @@ static s32 XSdPs_Execute_Tuning(XSdPs *InstancePtr) ******************************************************************************/ void XSdPs_SetTapDelay(XSdPs *InstancePtr) { - u32 DllCtrl, TapDelay; - if (InstancePtr->Config.DeviceId == XPAR_XSDPS_0_DEVICE_ID) { + u32 DllCtrl, BankNum, DeviceId, CardType; + + BankNum = InstancePtr->Config.BankNumber; + DeviceId = InstancePtr->Config.DeviceId ; + CardType = InstancePtr->CardType ; +#ifdef XPAR_PSU_SD_0_DEVICE_ID + if (DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)SD0_DLL_RST, 0, 0, 0, 0, 0); +#else DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); DllCtrl |= SD0_DLL_RST; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); - if(InstancePtr->BusSpeed == XSDPS_MMC_HS200_MAX_CLK) { - /* Program the ITAPDLY */ - TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY); - TapDelay |= SD0_ITAPCHGWIN; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); - TapDelay |= SD0_ITAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); - TapDelay &= ~SD0_ITAPCHGWIN; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_ITAPDLY, TapDelay); - /* Program the OTAPDLY */ - TapDelay = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLYSEL); - TapDelay |= SD0_OTAPDLYENA; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLYSEL, TapDelay); - TapDelay |= SD0_OTAPDLYSEL_HS200; - XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_OTAPDLYSEL, TapDelay); - } +#endif + InstancePtr->Config_TapDelay(BankNum, DeviceId, CardType); +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else DllCtrl &= ~SD0_DLL_RST; XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif + } else { +#endif +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)SD1_DLL_RST, 0, 0, 0, 0, 0); +#else + DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); + DllCtrl |= SD1_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif + InstancePtr->Config_TapDelay(BankNum, DeviceId, CardType); +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else + DllCtrl &= ~SD1_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif +#ifdef XPAR_PSU_SD_0_DEVICE_ID } +#endif +} + +/*****************************************************************************/ +/** +* +* API to reset the DLL +* +* +* @param InstancePtr is a pointer to the XSdPs instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +static void XSdPs_DllReset(XSdPs *InstancePtr) +{ + u32 ClockReg, DllCtrl; + + /* Disable clock */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + ClockReg &= ~XSDPS_CC_SD_CLK_EN_MASK; + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, ClockReg); + + /* Issue DLL Reset to load zero tap values */ + DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); + if (InstancePtr->Config.DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)SD0_DLL_RST, 0, 0, 0, 0, 0); +#else + DllCtrl |= SD0_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif + } else { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)SD1_DLL_RST, 0, 0, 0, 0, 0); +#else + DllCtrl |= SD1_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif + } + + /* Wait for 2 micro seconds */ + (void)usleep(2U); + + /* Release the DLL out of reset */ + DllCtrl = XSdPs_ReadReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL); + if (InstancePtr->Config.DeviceId == 0U) { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD0_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else + DllCtrl &= ~SD0_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif + } else { +#if EL1_NONSECURE && defined (__aarch64__) + (void)DllCtrl; + Xil_Smc(MMIO_WRITE_SMC_FID, (u64)(XPS_SYS_CTRL_BASEADDR + + SD_DLL_CTRL) | ((u64)SD1_DLL_RST << 32), + (u64)0x0, 0, 0, 0, 0, 0); +#else + DllCtrl &= ~SD1_DLL_RST; + XSdPs_WriteReg(XPS_SYS_CTRL_BASEADDR, SD_DLL_CTRL, DllCtrl); +#endif + } + + /* Wait for internal clock to stabilize */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + while((ClockReg & XSDPS_CC_INT_CLK_STABLE_MASK) == 0U) { + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + } + + /* Enable SD clock */ + ClockReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET); + XSdPs_WriteReg16(InstancePtr->Config.BaseAddress, + XSDPS_CLK_CTRL_OFFSET, + ClockReg | XSDPS_CC_SD_CLK_EN_MASK); } #endif /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_sinit.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_sinit.c index 59657a7b3..b49a0064c 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/sdps_v2_7/src/xsdps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sdps_v3_4/src/xsdps_sinit.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2013 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2013 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xsdps_sinit.c -* @addtogroup sdps_v2_5 +* @addtogroup sdps_v3_4 * @{ * * The implementation of the XSdPs component's static initialization diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/sleep.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/sleep.h deleted file mode 100644 index 27add6605..000000000 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/sleep.h +++ /dev/null @@ -1,50 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ - -#ifndef SLEEP_H -#define SLEEP_H - -#include "xil_types.h" -#include "xil_io.h" - -#ifdef __cplusplus -extern "C" { -#endif - -int usleep(unsigned long useconds); -unsigned sleep(unsigned int seconds); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mpu.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mpu.c deleted file mode 100644 index 7c028c515..000000000 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mpu.c +++ /dev/null @@ -1,258 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ -/*****************************************************************************/ -/** -* @file xil_mpu.c -* -* This file provides APIs for enabling/disabling MPU and setting the memory -* attributes for sections, in the MPU translation table. -* -*
      -* MODIFICATION HISTORY:
      -*
      -* Ver   Who  Date     Changes
      -* ----- ---- -------- ---------------------------------------------------
      -* 5.00  pkp  02/10/14 Initial version
      -* 
      -* -* @note -* -* None. -* -******************************************************************************/ - -/***************************** Include Files *********************************/ - -#include "xil_cache.h" -#include "xpseudo_asm.h" -#include "xil_types.h" -#include "xil_mpu.h" -#include "xdebug.h" -/***************** Macros (Inline Functions) Definitions *********************/ - -/**************************** Type Definitions *******************************/ - -/************************** Constant Definitions *****************************/ - -/************************** Variable Definitions *****************************/ - -static const struct { - u64 size; - unsigned int encoding; -}region_size[] = { - { 0x20, REGION_32B }, - { 0x40, REGION_64B }, - { 0x80, REGION_128B }, - { 0x100, REGION_256B }, - { 0x200, REGION_512B }, - { 0x400, REGION_1K }, - { 0x800, REGION_2K }, - { 0x1000, REGION_4K }, - { 0x2000, REGION_8K }, - { 0x4000, REGION_16K }, - { 0x8000, REGION_32K }, - { 0x10000, REGION_64K }, - { 0x20000, REGION_128K }, - { 0x40000, REGION_256K }, - { 0x80000, REGION_512K }, - { 0x100000, REGION_1M }, - { 0x200000, REGION_2M }, - { 0x400000, REGION_4M }, - { 0x800000, REGION_8M }, - { 0x1000000, REGION_16M }, - { 0x2000000, REGION_32M }, - { 0x4000000, REGION_64M }, - { 0x8000000, REGION_128M }, - { 0x10000000, REGION_256M }, - { 0x20000000, REGION_512M }, - { 0x40000000, REGION_1G }, - { 0x80000000, REGION_2G }, - { 0x100000000, REGION_4G }, -}; - -/************************** Function Prototypes ******************************/ - -/***************************************************************************** -* -* Set the memory attributes for a section of memory with starting address addr -* of the region size 1MB having attributes attrib -* -* @param addr is the address for which attributes are to be set. -* @param attrib specifies the attributes for that memory region. -* @return None. -* -* -******************************************************************************/ -void Xil_SetTlbAttributes(INTPTR addr, u32 attrib) -{ - INTPTR Localaddr = addr; - Localaddr &= (~(0xFFFFFU)); - /* Setting the MPU region with given attribute with 1MB size */ - Xil_SetMPURegion(Localaddr, 0x100000, attrib); -} - -/***************************************************************************** -* -* Set the memory attributes for a section of memory with starting address addr -* of the region size size and having attributes attrib -* -* @param addr is the address for which attributes are to be set. -* @param size is the size of the region. -* @param attrib specifies the attributes for that memory region. -* @return None. -* -* -******************************************************************************/ -void Xil_SetMPURegion(INTPTR addr, u64 size, u32 attrib) -{ - u32 Regionsize = 0; - INTPTR Localaddr = addr; - u32 NextAvailableMemRegion; - unsigned int i; - - Xil_DCacheFlush(); - Xil_ICacheInvalidate(); - NextAvailableMemRegion = mfcp(XREG_CP15_MPU_MEMORY_REG_NUMBER); - NextAvailableMemRegion++; - if (NextAvailableMemRegion > 16) { - xdbg_printf(DEBUG, "No regions available\r\n"); - return; - } - mtcp(XREG_CP15_MPU_MEMORY_REG_NUMBER,NextAvailableMemRegion); - isb(); - - /* Lookup the size. */ - for (i = 0; i < sizeof region_size / sizeof region_size[0]; i++) { - if (size <= region_size[i].size) { - Regionsize = region_size[i].encoding; - break; - } - } - - Localaddr &= ~(region_size[i].size - 1); - - Regionsize <<= 1; - Regionsize |= REGION_EN; - dsb(); - mtcp(XREG_CP15_MPU_REG_BASEADDR, Localaddr); /* Set base address of a region */ - mtcp(XREG_CP15_MPU_REG_ACCESS_CTRL, attrib); /* Set the control attribute */ - mtcp(XREG_CP15_MPU_REG_SIZE_EN, Regionsize); /* set the region size and enable it*/ - dsb(); - isb(); -} -/***************************************************************************** -* -* Enable MPU for Cortex R5 processor. This function invalidates I cache and -* flush the D Caches before enabling the MPU. -* -* -* @param None. -* @return None. -* -******************************************************************************/ -void Xil_EnableMPU(void) -{ - u32 CtrlReg, Reg; - s32 DCacheStatus=0, ICacheStatus=0; - /* enable caches only if they are disabled */ - CtrlReg = mfcp(XREG_CP15_SYS_CONTROL); - if ((CtrlReg & XREG_CP15_CONTROL_C_BIT) != 0x00000000U) { - DCacheStatus=1; - } - if ((CtrlReg & XREG_CP15_CONTROL_I_BIT) != 0x00000000U) { - ICacheStatus=1; - } - - if(DCacheStatus != 0) { - Xil_DCacheDisable(); - } - if(ICacheStatus != 0){ - Xil_ICacheDisable(); - } - Reg = mfcp(XREG_CP15_SYS_CONTROL); - Reg |= 0x00000001U; - dsb(); - mtcp(XREG_CP15_SYS_CONTROL, Reg); - isb(); - /* enable caches only if they are disabled in routine*/ - if(DCacheStatus != 0) { - Xil_DCacheEnable(); - } - if(ICacheStatus != 0) { - Xil_ICacheEnable(); - } -} - -/***************************************************************************** -* -* Disable MPU for Cortex R5 processors. This function invalidates I cache and -* flush the D Caches before disabling the MPU. -* -* @param None. -* -* @return None. -* -******************************************************************************/ -void Xil_DisableMPU(void) -{ - u32 CtrlReg, Reg; - s32 DCacheStatus=0, ICacheStatus=0; - /* enable caches only if they are disabled */ - CtrlReg = mfcp(XREG_CP15_SYS_CONTROL); - if ((CtrlReg & XREG_CP15_CONTROL_C_BIT) != 0x00000000U) { - DCacheStatus=1; - } - if ((CtrlReg & XREG_CP15_CONTROL_I_BIT) != 0x00000000U) { - ICacheStatus=1; - } - - if(DCacheStatus != 0) { - Xil_DCacheDisable(); - } - if(ICacheStatus != 0){ - Xil_ICacheDisable(); - } - - mtcp(XREG_CP15_INVAL_BRANCH_ARRAY, 0); - Reg = mfcp(XREG_CP15_SYS_CONTROL); - Reg &= ~(0x00000001U); - dsb(); - mtcp(XREG_CP15_SYS_CONTROL, Reg); - isb(); - /* enable caches only if they are disabled in routine*/ - if(DCacheStatus != 0) { - Xil_DCacheEnable(); - } - if(ICacheStatus != 0) { - Xil_ICacheEnable(); - } -} \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xstatus.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xstatus.h deleted file mode 100644 index 4873e85eb..000000000 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xstatus.h +++ /dev/null @@ -1,432 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2002 - 2015 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ -/*****************************************************************************/ -/** -* -* @file xstatus.h -* -* This file contains Xilinx software status codes. Status codes have their -* own data type called int. These codes are used throughout the Xilinx -* device drivers. -* -******************************************************************************/ - -#ifndef XSTATUS_H /* prevent circular inclusions */ -#define XSTATUS_H /* by using protection macros */ - -#ifdef __cplusplus -extern "C" { -#endif - -/***************************** Include Files *********************************/ - -#include "xil_types.h" -#include "xil_assert.h" - -/************************** Constant Definitions *****************************/ - -/*********************** Common statuses 0 - 500 *****************************/ - -#define XST_SUCCESS 0L -#define XST_FAILURE 1L -#define XST_DEVICE_NOT_FOUND 2L -#define XST_DEVICE_BLOCK_NOT_FOUND 3L -#define XST_INVALID_VERSION 4L -#define XST_DEVICE_IS_STARTED 5L -#define XST_DEVICE_IS_STOPPED 6L -#define XST_FIFO_ERROR 7L /* an error occurred during an - operation with a FIFO such as - an underrun or overrun, this - error requires the device to - be reset */ -#define XST_RESET_ERROR 8L /* an error occurred which requires - the device to be reset */ -#define XST_DMA_ERROR 9L /* a DMA error occurred, this error - typically requires the device - using the DMA to be reset */ -#define XST_NOT_POLLED 10L /* the device is not configured for - polled mode operation */ -#define XST_FIFO_NO_ROOM 11L /* a FIFO did not have room to put - the specified data into */ -#define XST_BUFFER_TOO_SMALL 12L /* the buffer is not large enough - to hold the expected data */ -#define XST_NO_DATA 13L /* there was no data available */ -#define XST_REGISTER_ERROR 14L /* a register did not contain the - expected value */ -#define XST_INVALID_PARAM 15L /* an invalid parameter was passed - into the function */ -#define XST_NOT_SGDMA 16L /* the device is not configured for - scatter-gather DMA operation */ -#define XST_LOOPBACK_ERROR 17L /* a loopback test failed */ -#define XST_NO_CALLBACK 18L /* a callback has not yet been - registered */ -#define XST_NO_FEATURE 19L /* device is not configured with - the requested feature */ -#define XST_NOT_INTERRUPT 20L /* device is not configured for - interrupt mode operation */ -#define XST_DEVICE_BUSY 21L /* device is busy */ -#define XST_ERROR_COUNT_MAX 22L /* the error counters of a device - have maxed out */ -#define XST_IS_STARTED 23L /* used when part of device is - already started i.e. - sub channel */ -#define XST_IS_STOPPED 24L /* used when part of device is - already stopped i.e. - sub channel */ -#define XST_DATA_LOST 26L /* driver defined error */ -#define XST_RECV_ERROR 27L /* generic receive error */ -#define XST_SEND_ERROR 28L /* generic transmit error */ -#define XST_NOT_ENABLED 29L /* a requested service is not - available because it has not - been enabled */ - -/***************** Utility Component statuses 401 - 500 *********************/ - -#define XST_MEMTEST_FAILED 401L /* memory test failed */ - - -/***************** Common Components statuses 501 - 1000 *********************/ - -/********************* Packet Fifo statuses 501 - 510 ************************/ - -#define XST_PFIFO_LACK_OF_DATA 501L /* not enough data in FIFO */ -#define XST_PFIFO_NO_ROOM 502L /* not enough room in FIFO */ -#define XST_PFIFO_BAD_REG_VALUE 503L /* self test, a register value - was invalid after reset */ -#define XST_PFIFO_ERROR 504L /* generic packet FIFO error */ -#define XST_PFIFO_DEADLOCK 505L /* packet FIFO is reporting - * empty and full simultaneously - */ - -/************************** DMA statuses 511 - 530 ***************************/ - -#define XST_DMA_TRANSFER_ERROR 511L /* self test, DMA transfer - failed */ -#define XST_DMA_RESET_REGISTER_ERROR 512L /* self test, a register value - was invalid after reset */ -#define XST_DMA_SG_LIST_EMPTY 513L /* scatter gather list contains - no buffer descriptors ready - to be processed */ -#define XST_DMA_SG_IS_STARTED 514L /* scatter gather not stopped */ -#define XST_DMA_SG_IS_STOPPED 515L /* scatter gather not running */ -#define XST_DMA_SG_LIST_FULL 517L /* all the buffer desciptors of - the scatter gather list are - being used */ -#define XST_DMA_SG_BD_LOCKED 518L /* the scatter gather buffer - descriptor which is to be - copied over in the scatter - list is locked */ -#define XST_DMA_SG_NOTHING_TO_COMMIT 519L /* no buffer descriptors have been - put into the scatter gather - list to be commited */ -#define XST_DMA_SG_COUNT_EXCEEDED 521L /* the packet count threshold - specified was larger than the - total # of buffer descriptors - in the scatter gather list */ -#define XST_DMA_SG_LIST_EXISTS 522L /* the scatter gather list has - already been created */ -#define XST_DMA_SG_NO_LIST 523L /* no scatter gather list has - been created */ -#define XST_DMA_SG_BD_NOT_COMMITTED 524L /* the buffer descriptor which was - being started was not committed - to the list */ -#define XST_DMA_SG_NO_DATA 525L /* the buffer descriptor to start - has already been used by the - hardware so it can't be reused - */ -#define XST_DMA_SG_LIST_ERROR 526L /* general purpose list access - error */ -#define XST_DMA_BD_ERROR 527L /* general buffer descriptor - error */ - -/************************** IPIF statuses 531 - 550 ***************************/ - -#define XST_IPIF_REG_WIDTH_ERROR 531L /* an invalid register width - was passed into the function */ -#define XST_IPIF_RESET_REGISTER_ERROR 532L /* the value of a register at - reset was not valid */ -#define XST_IPIF_DEVICE_STATUS_ERROR 533L /* a write to the device interrupt - status register did not read - back correctly */ -#define XST_IPIF_DEVICE_ACK_ERROR 534L /* the device interrupt status - register did not reset when - acked */ -#define XST_IPIF_DEVICE_ENABLE_ERROR 535L /* the device interrupt enable - register was not updated when - other registers changed */ -#define XST_IPIF_IP_STATUS_ERROR 536L /* a write to the IP interrupt - status register did not read - back correctly */ -#define XST_IPIF_IP_ACK_ERROR 537L /* the IP interrupt status register - did not reset when acked */ -#define XST_IPIF_IP_ENABLE_ERROR 538L /* IP interrupt enable register was - not updated correctly when other - registers changed */ -#define XST_IPIF_DEVICE_PENDING_ERROR 539L /* The device interrupt pending - register did not indicate the - expected value */ -#define XST_IPIF_DEVICE_ID_ERROR 540L /* The device interrupt ID register - did not indicate the expected - value */ -#define XST_IPIF_ERROR 541L /* generic ipif error */ - -/****************** Device specific statuses 1001 - 4095 *********************/ - -/********************* Ethernet statuses 1001 - 1050 *************************/ - -#define XST_EMAC_MEMORY_SIZE_ERROR 1001L /* Memory space is not big enough - * to hold the minimum number of - * buffers or descriptors */ -#define XST_EMAC_MEMORY_ALLOC_ERROR 1002L /* Memory allocation failed */ -#define XST_EMAC_MII_READ_ERROR 1003L /* MII read error */ -#define XST_EMAC_MII_BUSY 1004L /* An MII operation is in progress */ -#define XST_EMAC_OUT_OF_BUFFERS 1005L /* Driver is out of buffers */ -#define XST_EMAC_PARSE_ERROR 1006L /* Invalid driver init string */ -#define XST_EMAC_COLLISION_ERROR 1007L /* Excess deferral or late - * collision on polled send */ - -/*********************** UART statuses 1051 - 1075 ***************************/ -#define XST_UART - -#define XST_UART_INIT_ERROR 1051L -#define XST_UART_START_ERROR 1052L -#define XST_UART_CONFIG_ERROR 1053L -#define XST_UART_TEST_FAIL 1054L -#define XST_UART_BAUD_ERROR 1055L -#define XST_UART_BAUD_RANGE 1056L - - -/************************ IIC statuses 1076 - 1100 ***************************/ - -#define XST_IIC_SELFTEST_FAILED 1076 /* self test failed */ -#define XST_IIC_BUS_BUSY 1077 /* bus found busy */ -#define XST_IIC_GENERAL_CALL_ADDRESS 1078 /* mastersend attempted with */ - /* general call address */ -#define XST_IIC_STAND_REG_RESET_ERROR 1079 /* A non parameterizable reg */ - /* value after reset not valid */ -#define XST_IIC_TX_FIFO_REG_RESET_ERROR 1080 /* Tx fifo included in design */ - /* value after reset not valid */ -#define XST_IIC_RX_FIFO_REG_RESET_ERROR 1081 /* Rx fifo included in design */ - /* value after reset not valid */ -#define XST_IIC_TBA_REG_RESET_ERROR 1082 /* 10 bit addr incl in design */ - /* value after reset not valid */ -#define XST_IIC_CR_READBACK_ERROR 1083 /* Read of the control register */ - /* didn't return value written */ -#define XST_IIC_DTR_READBACK_ERROR 1084 /* Read of the data Tx reg */ - /* didn't return value written */ -#define XST_IIC_DRR_READBACK_ERROR 1085 /* Read of the data Receive reg */ - /* didn't return value written */ -#define XST_IIC_ADR_READBACK_ERROR 1086 /* Read of the data Tx reg */ - /* didn't return value written */ -#define XST_IIC_TBA_READBACK_ERROR 1087 /* Read of the 10 bit addr reg */ - /* didn't return written value */ -#define XST_IIC_NOT_SLAVE 1088 /* The device isn't a slave */ - -/*********************** ATMC statuses 1101 - 1125 ***************************/ - -#define XST_ATMC_ERROR_COUNT_MAX 1101L /* the error counters in the ATM - controller hit the max value - which requires the statistics - to be cleared */ - -/*********************** Flash statuses 1126 - 1150 **************************/ - -#define XST_FLASH_BUSY 1126L /* Flash is erasing or programming - */ -#define XST_FLASH_READY 1127L /* Flash is ready for commands */ -#define XST_FLASH_ERROR 1128L /* Flash had detected an internal - error. Use XFlash_DeviceControl - to retrieve device specific codes - */ -#define XST_FLASH_ERASE_SUSPENDED 1129L /* Flash is in suspended erase state - */ -#define XST_FLASH_WRITE_SUSPENDED 1130L /* Flash is in suspended write state - */ -#define XST_FLASH_PART_NOT_SUPPORTED 1131L /* Flash type not supported by - driver */ -#define XST_FLASH_NOT_SUPPORTED 1132L /* Operation not supported */ -#define XST_FLASH_TOO_MANY_REGIONS 1133L /* Too many erase regions */ -#define XST_FLASH_TIMEOUT_ERROR 1134L /* Programming or erase operation - aborted due to a timeout */ -#define XST_FLASH_ADDRESS_ERROR 1135L /* Accessed flash outside its - addressible range */ -#define XST_FLASH_ALIGNMENT_ERROR 1136L /* Write alignment error */ -#define XST_FLASH_BLOCKING_CALL_ERROR 1137L /* Couldn't return immediately from - write/erase function with - XFL_NON_BLOCKING_WRITE/ERASE - option cleared */ -#define XST_FLASH_CFI_QUERY_ERROR 1138L /* Failed to query the device */ - -/*********************** SPI statuses 1151 - 1175 ****************************/ - -#define XST_SPI_MODE_FAULT 1151 /* master was selected as slave */ -#define XST_SPI_TRANSFER_DONE 1152 /* data transfer is complete */ -#define XST_SPI_TRANSMIT_UNDERRUN 1153 /* slave underruns transmit register */ -#define XST_SPI_RECEIVE_OVERRUN 1154 /* device overruns receive register */ -#define XST_SPI_NO_SLAVE 1155 /* no slave has been selected yet */ -#define XST_SPI_TOO_MANY_SLAVES 1156 /* more than one slave is being - * selected */ -#define XST_SPI_NOT_MASTER 1157 /* operation is valid only as master */ -#define XST_SPI_SLAVE_ONLY 1158 /* device is configured as slave-only - */ -#define XST_SPI_SLAVE_MODE_FAULT 1159 /* slave was selected while disabled */ -#define XST_SPI_SLAVE_MODE 1160 /* device has been addressed as slave */ -#define XST_SPI_RECEIVE_NOT_EMPTY 1161 /* device received data in slave mode */ - -#define XST_SPI_COMMAND_ERROR 1162 /* unrecognised command - qspi only */ -#define XST_SPI_POLL_DONE 1163 /* controller completed polling the - device for status */ - -/********************** OPB Arbiter statuses 1176 - 1200 *********************/ - -#define XST_OPBARB_INVALID_PRIORITY 1176 /* the priority registers have either - * one master assigned to two or more - * priorities, or one master not - * assigned to any priority - */ -#define XST_OPBARB_NOT_SUSPENDED 1177 /* an attempt was made to modify the - * priority levels without first - * suspending the use of priority - * levels - */ -#define XST_OPBARB_PARK_NOT_ENABLED 1178 /* bus parking by id was enabled but - * bus parking was not enabled - */ -#define XST_OPBARB_NOT_FIXED_PRIORITY 1179 /* the arbiter must be in fixed - * priority mode to allow the - * priorities to be changed - */ - -/************************ Intc statuses 1201 - 1225 **************************/ - -#define XST_INTC_FAIL_SELFTEST 1201 /* self test failed */ -#define XST_INTC_CONNECT_ERROR 1202 /* interrupt already in use */ - -/********************** TmrCtr statuses 1226 - 1250 **************************/ - -#define XST_TMRCTR_TIMER_FAILED 1226 /* self test failed */ - -/********************** WdtTb statuses 1251 - 1275 ***************************/ - -#define XST_WDTTB_TIMER_FAILED 1251L - -/********************** PlbArb statuses 1276 - 1300 **************************/ - -#define XST_PLBARB_FAIL_SELFTEST 1276L - -/********************** Plb2Opb statuses 1301 - 1325 *************************/ - -#define XST_PLB2OPB_FAIL_SELFTEST 1301L - -/********************** Opb2Plb statuses 1326 - 1350 *************************/ - -#define XST_OPB2PLB_FAIL_SELFTEST 1326L - -/********************** SysAce statuses 1351 - 1360 **************************/ - -#define XST_SYSACE_NO_LOCK 1351L /* No MPU lock has been granted */ - -/********************** PCI Bridge statuses 1361 - 1375 **********************/ - -#define XST_PCI_INVALID_ADDRESS 1361L - -/********************** FlexRay constants 1400 - 1409 *************************/ - -#define XST_FR_TX_ERROR 1400 -#define XST_FR_TX_BUSY 1401 -#define XST_FR_BUF_LOCKED 1402 -#define XST_FR_NO_BUF 1403 - -/****************** USB constants 1410 - 1420 *******************************/ - -#define XST_USB_ALREADY_CONFIGURED 1410 -#define XST_USB_BUF_ALIGN_ERROR 1411 -#define XST_USB_NO_DESC_AVAILABLE 1412 -#define XST_USB_BUF_TOO_BIG 1413 -#define XST_USB_NO_BUF 1414 - -/****************** HWICAP constants 1421 - 1429 *****************************/ - -#define XST_HWICAP_WRITE_DONE 1421 - - -/****************** AXI VDMA constants 1430 - 1440 *****************************/ - -#define XST_VDMA_MISMATCH_ERROR 1430 - -/*********************** NAND Flash statuses 1441 - 1459 *********************/ - -#define XST_NAND_BUSY 1441L /* Flash is erasing or - * programming - */ -#define XST_NAND_READY 1442L /* Flash is ready for commands - */ -#define XST_NAND_ERROR 1443L /* Flash had detected an - * internal error. - */ -#define XST_NAND_PART_NOT_SUPPORTED 1444L /* Flash type not supported by - * driver - */ -#define XST_NAND_OPT_NOT_SUPPORTED 1445L /* Operation not supported - */ -#define XST_NAND_TIMEOUT_ERROR 1446L /* Programming or erase - * operation aborted due to a - * timeout - */ -#define XST_NAND_ADDRESS_ERROR 1447L /* Accessed flash outside its - * addressible range - */ -#define XST_NAND_ALIGNMENT_ERROR 1448L /* Write alignment error - */ -#define XST_NAND_PARAM_PAGE_ERROR 1449L /* Failed to read parameter - * page of the device - */ -#define XST_NAND_CACHE_ERROR 1450L /* Flash page buffer error - */ - -#define XST_NAND_WRITE_PROTECTED 1451L /* Flash is write protected - */ - -/**************************** Type Definitions *******************************/ - -typedef s32 XStatus; - -/***************** Macros (Inline Functions) Definitions *********************/ - - -/************************** Function Prototypes ******************************/ - -#ifdef __cplusplus -} -#endif - -#endif /* end of protection macro */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/Makefile similarity index 83% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/Makefile index ca8621a76..325e105c2 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/Makefile +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/Makefile @@ -42,17 +42,19 @@ CC_FLAGS = $(subst -pg, -DPROFILING, $(COMPILER_FLAGS)) ECC_FLAGS = $(subst -pg, -DPROFILING, $(EXTRA_COMPILER_FLAGS)) ifeq ($(notdir $(CC)), armr5-none-eabi-gcc) -ECC_FLAGS += -nostartfiles\ - -mfloat-abi=soft\ - -mfpu=vfpv3-d16 +ECC_FLAGS += -nostartfiles endif +ECC_FLAGS_NO_FLTO1 = $(subst -flto,,$(ECC_FLAGS)) +ECC_FLAGS_NO_FLTO = $(subst -ffat-lto-objects,,$(ECC_FLAGS_NO_FLTO1)) + RELEASEDIR=../../../lib INCLUDEDIR=../../../include INCLUDES=-I./. -I${INCLUDEDIR} OUTS = *.o - +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) +ASSEMBLY_OBJECTS = $(addsuffix .o, $(basename $(wildcard *.S))) INCLUDEFILES=*.h INCLUDEFILES+=includes_ps/*.h @@ -60,7 +62,8 @@ libs: $(LIBS) standalone_libs: $(LIBSOURCES) echo "Compiling standalone R5" - $(CC) $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) $^ + $(CC) $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) $(filter-out _exit.c, $^) + $(CC) $(CC_FLAGS) $(ECC_FLAGS_NO_FLTO) $(INCLUDES) _exit.c $(AR) -r ${RELEASEDIR}/${LIB} ${OUTS} .PHONY: include @@ -70,5 +73,5 @@ standalone_includes: ${CP} ${INCLUDEFILES} ${INCLUDEDIR} clean: - rm -rf ${OUTS} - $(MAKE) -C COMPILER_FLAGS="$(COMPILER_FLAGS)" EXTRA_COMPILER_FLAGS="$(EXTRA_COMPILER_FLAGS)" COMPILER="$(CC)" ARCHIVER="$(AR)" clean + rm -rf ${OBJECTS} + rm -rf ${ASSEMBLY_OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/_exit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/_exit.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/_exit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/_exit.c diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/_open.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/_open.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/_open.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/_open.c index 9b5a23adf..a108b7716 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/_open.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/_open.c @@ -45,7 +45,7 @@ extern "C" { */ __attribute__((weak)) s32 _open(const char8 *buf, s32 flags, s32 mode) { - (void *)buf; + (void)buf; (void)flags; (void)mode; errno = EIO; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/_sbrk.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/_sbrk.c similarity index 95% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/_sbrk.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/_sbrk.c index 2a069ec06..967bdfc5b 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/_sbrk.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/_sbrk.c @@ -54,15 +54,10 @@ __attribute__((weak)) caddr_t _sbrk ( s32 incr ) } prev_heap = heap; + if (((heap + incr) <= HeapEndPtr) && (prev_heap != NULL)) { heap += incr; - - if (heap > HeapEndPtr){ - Status = (caddr_t) -1; - } - else if (prev_heap != NULL) { Status = (caddr_t) ((void *)prev_heap); - } - else { + } else { Status = (caddr_t) -1; } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/abort.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/abort.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/abort.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/abort.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/asm_vectors.S b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/asm_vectors.S similarity index 93% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/asm_vectors.S rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/asm_vectors.S index 2c6f117eb..efdf629ef 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/asm_vectors.S +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/asm_vectors.S @@ -42,6 +42,7 @@ * ----- ------- -------- --------------------------------------------------- * 5.00 pkp 02/10/14 Initial version * 6.0 mus 27/07/16 Added UndefinedException handler +* 6.3 pkp 02/13/17 Added support for hard float * * * @note @@ -78,10 +79,25 @@ _vector_table: .text IRQHandler: /* IRQ vector handler */ stmdb sp!,{r0-r3,r12,lr} /* state save from compiled code*/ +#ifndef __SOFTFP__ + + vpush {d0-d7} /* Store floating point registers */ + vmrs r1, FPSCR + push {r1} + vmrs r1, FPEXC + push {r1} +#endif bl IRQInterrupt /* IRQ vector */ +#ifndef __SOFTFP__ + + pop {r1} /* Restore floating point registers */ + vmsr FPEXC, r1 + pop {r1} + vmsr FPSCR, r1 + vpop {d0-d7} +#endif ldmia sp!,{r0-r3,r12,lr} /* state restore from compiled code */ subs pc, lr, #4 /* adjust return */ - FIQHandler: /* FIQ vector handler */ stmdb sp!,{r0-r3,r12,lr} /* state save from compiled code */ FIQLoop: diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/boot.S b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/boot.S similarity index 85% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/boot.S rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/boot.S index 30b97cbfa..d9d2f1e22 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/boot.S +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/boot.S @@ -33,7 +33,26 @@ /** * @file boot.S * -* This file contains the initial startup code for the Cortex R5 processor +* @addtogroup r5_boot_code Cortex R5 Processor Boot Code +* @{ +*

      boot.S

      +* The boot code performs minimum configuration which is required for an +* application to run starting from processor's reset state. Below is a +* sequence illustrating what all configuration is performed before control +* reaches to main function. +* +* 1. Program vector table base for exception handling +* 2. Program stack pointer for various modes (IRQ, FIQ, supervisor, undefine, +* abort, system) +* 3. Disable instruction cache, data cache and MPU +* 4. Invalidate instruction and data cache +* 5. Configure MPU with short descriptor translation table format and program +* base address of translation table +* 6. Enable data cache, instruction cache and MPU +* 7. Enable Floating point unit +* 8. Transfer control to _start which clears BSS sections and jumping to main +* application +* * *
       * MODIFICATION HISTORY:
      @@ -52,12 +71,12 @@
       *		      to avoid intervention for lock-step mode
       * 5.05 pkp   04/11/16 Enable the comparators for non-JTAG boot mode for
       *		      lock-step to avoid putting debug logic to reset
      +* 6.02 pkp   02/13/17 Added support for hard float
      +* 6.6  mus   02/23/17 Enable/Disable the debug logic in non-JTAG boot mode(when
      +*		      processor is in lockstep configuration), based
      +*		      on the mld parameter "lockstep_mode_debug".
       * 
      * -* @note -* -* None. -* ******************************************************************************/ #include "xparameters.h" @@ -202,8 +221,10 @@ OKToRun: vmov d14,r1,r1 vmov d15,r1,r1 -/* restore previous value for fpu access */ +#ifdef __SOFTFP__ +/* Disable the FPU if SOFTFP is defined*/ vmsr FPEXC,r3 +#endif /* Disable MPU and caches */ mrc p15, 0, r0, c1, c0, 0 /* Read CP15 Control Register*/ @@ -218,12 +239,12 @@ OKToRun: orr r0, r0, #(0x1 << 17) /* Enable RSDIS bit 17 to disable the return stack */ orr r0, r0, #(0x1 << 16) /* Clear BP bit 15 and set BP bit 16:*/ bic r0, r0, #(0x1 << 15) /* Branch always not taken and history table updates disabled*/ - bic r0, r0, #(0x1 << 27) /* Disable B1TCM ECC check */ - bic r0, r0, #(0x1 << 26) /* Disable B0TCM ECC check */ - bic r0, r0, #(0x1 << 25) /* Disable ATCM ECC check */ - orr r0, r0, #(0x1 << 5) /* Enable ECC with no forced write through with [5:3]=b'101*/ + orr r0, r0, #(0x1 << 27) /* Enable B1TCM ECC check */ + orr r0, r0, #(0x1 << 26) /* Enable B0TCM ECC check */ + orr r0, r0, #(0x1 << 25) /* Enable ATCM ECC check */ + bic r0, r0, #(0x1 << 5) /* Generate abort on parity errors, with [5:3]=b 000*/ bic r0, r0, #(0x1 << 4) - orr r0, r0, #(0x1 << 3) + bic r0, r0, #(0x1 << 3) mcr p15, 0, r0, c1, c0, 1 /* Write ACTLR*/ dsb /* Complete all outstanding explicit memory operations*/ @@ -233,7 +254,7 @@ OKToRun: mcr p15, 0, r0, c7, c5, 0 /* invalidate icache */ mcr p15, 0, r0, c15, c5, 0 /* Invalidate entire data cache*/ isb - +#if LOCKSTEP_MODE_DEBUG == 0 /* enable fault log for lock step */ ldr r0,=RPU_GLBL_CNTL ldr r1, [r0] @@ -260,6 +281,7 @@ OKToRun: str r2, [r0] nop nop +#endif init: bl Init_MPU /* Initialize MPU */ @@ -306,3 +328,6 @@ init: .end +/** +* @} End of "addtogroup r5_boot_code". +*/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/bspconfig.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/bspconfig.h similarity index 87% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/bspconfig.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/bspconfig.h index 8671e3fbe..9427ad054 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/bspconfig.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/bspconfig.h @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -37,4 +37,9 @@ * *******************************************************************/ +#ifndef BSPCONFIG_H /* prevent circular inclusions */ +#define BSPCONFIG_H /* by using protection macros */ + #define MICROBLAZE_PVR_NONE + +#endif /*end of __BSPCONFIG_H_*/ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/changelog.txt b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/changelog.txt similarity index 55% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/changelog.txt rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/changelog.txt index ad9c771e1..64144403a 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/changelog.txt +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/changelog.txt @@ -321,4 +321,219 @@ * the fault log to avoid intervention for lock-step mode and cortexr5/ * _exit.c to enable the dbg_lpd_reset once the fault log is disabled * to fix CR#947335 + * 5.5 pkp 04/11/16 Modified cortexr5/boot.S to enable comparators for non-JTAG bootmode + * in lock-step to avoid resetting the debug logic which restricts the + * access for debugger and removed enabling back of debug modules in + * cortexr5/_exit.c + * 5.5 pkp 04/13/16 Modified cortexa9/gcc/read.c to return correct number of bytes when + * read buffer is filled and removed the redundant NULL checking for + * buffer to simplify the code + * 5.5 pkp 04/13/16 Modified cortexa53/64bit/gcc/read.c and cortexa53/32bit/gcc/read.c + * to return correct number of bytes when read buffer is filled and + * removed the redundant NULL checking for buffer to simplify the code + * 5.5 pkp 04/13/16 Modified cortexr5/gcc/read.c to return correct number of bytes when + * read buffer is filled and removed the redundant NULL checking for + * buffer to simplify the code + * 5.5 pkp 04/13/16 Modified cortexa53/64bit/xpseudo_asm_gcc.h to add volatile to asm + * instruction macros to disable certain optimizations which may move + * code out of loops if optimizers believe that the code will always + * return the same result or discard asm statements if optimizers + * determine there is no need for the output variables + * 5.5 pkp 04/13/16 Modified cortexa53/64bit/xtime_l.c to add XTime_StartTimer which + * starts the timer if it is disabled and modified XTime_GetTime to + * enable the timer if it is not enabled. Also modified cortexa53/64bit/ + * sleep.c and cortexa53/64bit/usleep.c to enable the timer if it is + * disabled and read the counter value directly from register instead + * of using XTime_GetTime for optimization + * 5.5 pkp 04/13/16 Modified cortexa53/32bit/xtime_l.c to add XTime_StartTimer which + * starts the timer if it is disabled and modified XTime_GetTime to + * enable the timer if it is not enabled. Also modified cortexa53/32bit/ + * sleep.c and cortexa53/32bit/usleep.c to enable the timer if it is + * disabled and read the counter value directly from register instead + * of using XTime_GetTime for optimization + * 5.5 pkp 04/13/16 Modified cortexa53/32bit/xil_cache.c and cortexa53/64bit/xil_cache.c + * to update the Xil_DCacheInvalidate, Xil_DCacheInvalidateLine and + * Xil_DCacheInvalidateRange functions description for proper + * explaination to fix CR#949801 + * 5.5 asa 04/20/16 Added missing macros for hibernate and suspend in Microblaze BSP + * file mb_interface.h. This fixes the CR#949503. + * 5.5 asa 04/29/16 Fix for CR#951080. Updated cache APIs for HW designs where cache + * memory is not included for MicroBlaze. + * 5.5 pkp 05/06/16 Modified the cortexa9/xil_exception.h to update the macros + * Xil_EnableNestedInterrupts and Xil_DisableNestedInterrupts for fixing + * the issue of lr being corrupted to resolve CR#950468 + * 5.5 pkp 05/06/16 Modified the cortexr5/xil_exception.h to update the macros + * Xil_EnableNestedInterrupts and Xil_DisableNestedInterrupts for fixing + * the issue of lr being corrupted to resolve CR#950468 + * 6.0 kvn 05/31/16 Make Xil_AsserWait a global variable + * 6.0 pkp 06/27/16 Updated cortexr5/mpu.c to move the code related to Init_MPU to .boot + * section since it is part of boot process to fix CR#949555 + * hk 07/12/16 Correct masks for IOU SLCR GEM registers + * 6.0 pkp 07/25/16 Program the counter frequency in boot code for CortexA53 + * 6.0 asa 08/03/16 Updated sleep_common function in microblaze_sleep.c to improve the + * the accuracy of MB sleep functionality. This fixes the CR#954191. + * 6.0 mus 08/03/16 Restructured the BSP to avoid code duplication across all BSPs. + * Source code directories specific to ARM processor's are moved to src/arm + * directory(i.e. src/cortexa53,src/cortexa9 and src/cortexr5 moved to src/arm/cortexa53, + * src/arm/cortexa9 and src/arm/cortexr5 respectively).Files xil_printf.c,xil_printf.h, + * print.c,xil_io.c and xil_io.h are consolidated across all BSPs into common file each and + * consolidated files are kept at src/common directory.Files putnum.c,vectors.c,vectors.h, + * xil_exception.c and xil_exception.h are consolidated across all ARM BSPs + * into common file each and consolidated files are kept at src/arm/common directory. + * GCC source files related to file operations are consolidated and kept + * at src/arm/common/gcc directory. + * All io interfacing functions (i.e. All variants of xil_out, xil_in ) + * are made as static inline and implementation is kept in consolidated common/xil_io.h, + * xil_io.h must be included as a header file to access io interfacing functions. + * Added undefined exception handler for A53 32 bit and R5 processor + * 6.0 mus 08/11/16 Updated xtime_l.c in R5 BSP to remove implementation of XTime_SetTime API, since + * TTC counter value register is read only. + * 6.0 asa 08/15/16 Modified the signatures for functions sleep and usleep. This fixes + * the CR#956899. + * 6.0 mus 08/18/16 Defined ARMA53_32 flag in cortexa53/32bit/xparameters_ps.h and ARMR5 flag + * in cortexr5/xparameters_ps.h + * 6.0 mus 08/18/16 Added support for the the Zynq 7000s devices + * 6.0 mus 08/18/16 Removed unused variables from xil_printf.c and xplatform_info.c + * 6.0 mus 08/19/16 Modified xil_io.h to remove __LITTLE_ENDIAN__ flag check for all ARM processors + * 6.1 mus 11/03/16 Added APIs handle_stdin_parameter and handle_stdout_parameter in standalone tcl. + * ::hsi::utils::handle_stdin and ::hsi::utils::handle_stdout are taken as a base for + * these APIs and modifications are done on top of it to handle stdout/stdin + * parameters for design which doesnt have UART.It fixes CR#953681 + * 6.1 nsk 11/07/16 Added two new files xil_mem.c and xil_mem.h for xil_memcpy + * 6.2 pkp 12/14/16 Updated cortexa53/64bit/translation_table.S for upper ps DDR. The 0x800000000 - + * 0xFFFFFFFFF range is marked normal memory for the DDR size defined in hdf + * and rest of the memory in that 32GB region is marked as reserved to avoid + * any speculative access + * 6.2 pkp 12/23/16 Added support for floating point operation to Cortex-A53 64bit mode. It modified + * asm_vectors.S to implement lazy floating point context saving i.e. floating point + * access is enabled if there is any floating point operation, it is disabled by + * default. Also FPU is initally disabled for IRQ and none of the floating point + * registers are saved during normal context saving. If IRQ handler does not require + * floating point operation, the floating point registers are untouched and no need + * for saving/restoring. If IRQ handler uses any floating point operation, then floating + * point registers are saved and FPU is enabled for IRQ handler. Then floating point + * registers are restored back after servicing IRQ during normal context restoring. + * 6.2 mus 01/01/17 Updated makefiles of R5 and a53 64 bit/32 bit processors to fix error in clean + * target.It fixes the CR#966900 + * 6.2 pkp 01/22/17 Added support for EL1 non-secure execution and Hypervisor Baremetal for Cortex-A53 + * 64bit Mode. If Hypervisor_guest is selected as true in BSP settings, BSP will be built + * for EL1 Non-secure, else BSP will be built for EL3. By default hypervisor_guest is + * as false i.e. default bsp is EL3. + * 6.2 pkp 01/24/17 Updated cortexa53/64bit/boot.S to clear FPUStatus variable to make sure that it + * contains initial status of FPU i.e. disabled. In case of a warm restart execution + * when bss sections are not cleared, it may contain previously updated value which + * does not hold true once processor resumes. This fixes CR#966826. + * 6.2 asa 01/31/17 The existing Xil_DCacheDisable API first flushes the + * D caches and then disables it. The problem with that is, + * potentially there will be a small window after the cache + * flush operation and before the we disable D caches where + * we might have valid data in cache lines. In such a + * scenario disabling the D cache can lead to unknown behavior. + * The ideal solution to this is to use assembly code for + * the complete API and avoid any memory accesses. But with + * that we will end up having a huge amount on assembly code + * which is not maintainable. Changes are done to use a mix + * of assembly and C code. All local variables are put in + * registers. Also function calls are avoided in the API to + * avoid using stack memory. + * 6.2 mus 02/13/17 A53 CPU cache system can pre-fetch catch lines.So there are + * scenarios when an invalidated cache line can get pre fetched to cache. + * If that happens, the coherency between cache and memory is lost + * resulting in lost data. To avoid this kind of issue either + * user has to use dsb() or disable pre-fetching for L1 cache + * or else reduce maximum number of outstanding data prefetches allowed. + * Using dsb() while comparing data costing more performance compared to + * disabling pre-fetching/reducing maximum number of outstanding data + * prefetches for L1 Cache.The new api Xil_ConfigureL1Prefetch is added + * to disable pre-fetching/configure maximum number of outstanding data + * prefetches allowed in L1 cache system.This fixes CR#967864. + * 6.2 pkp 02/16/17 Added xil_smc.c file to provide a C wrapper for smc calling which can be + * used by cortex-A53 64bit EL1 Non-secure application. + * 6.2 kvn 03/03/17 Added support thumb mode + * 6.2 mus 03/13/17 Fixed MISRA C mandatory standard violations in ARM cortexr5 and cortexa53 BSP. + * It fixes CR#970543 + * 6.2 asa 03/16/17 Fix for CR#970859. For Mcroblaze BSP, when we enable intrusive + * profiling we see a crash. That is because the the tcl uses invalid + * HSI command. This change fixes it. + * 6.2 mus 03/22/17 Updated standalone tcl to generate xparameter XPAR_FPD_IS_CACHE_COHERENT, if + * any FPD peripheral is configured to use CCI.It fixes CR#972638 + * 6.3 mus 03/20/17 Updated cortex-r5 BSP, to add hard floating point support. + * 6.3 mus 04/17/17 Updated Cortex-a53 32 bit BSP boot code to fix bug in + * the HW coherency enablement. It fixes the CR#973287 + * 6.3 mus 04/20/17 Updated Cortex-A53 64 bit BSP boot code, to remove redundant write to the + * L2CTLR_EL1 register. It fixes the CR#974698 + * 6.4 mus 06/08/17 Updated arm/common/xil_exception.c to fix warnings in C level exception handlers + * of ARM 32 bit processor's. + * 6.4 mus 06/14/17 Updated cortexa53/64bit/gcc/asm_vectors.S to fix bug in IRQInterruptHandler code + * snippet, which checks for the FPEN bit of CPACR_EL1 register. + * 6.4 ms 05/23/17 Added PSU_PMU macro in xplatform_info.c, xparameters.h to support + * XGetPSVersion_Info function for PMUFW. + * ms 06/13/17 Added PSU_PMU macro in xplatform_info.c to support XGetPlatform_Info + * function for PMUFW. + * 6.4 mus 07/05/17 Updated Xil_In32BE function in xil_io.h to fix bug.It fixes CR#979740. + * 6.4 mus 07/25/17 Updated a53 32 bit boot code and vectors to support hard floating point + * operations.Now,VFP is being enabled in FPEXC register, through boot code + * and FPU registers are being saved/restored when irq/fiq vector is invoked. + * 6.4 adk 08/01/17 Updated standalone tcl to generate xparameter XPAR_PL_IS_CACHE_COHERENT, + * if h/w design configured with HPC port. + * 6.4 mus 08/10/17 Updated a53 64 bit translation table to mark memory as a outer shareable for + * EL1 NS execution. This change has been done to support CCI enabled IP's. + * 6.4 mus 08/11/17 Updated a53 64 bit boot code to implement ARM erratum 855873.This fixes + * CR#982209. + * 6.4 asa 08/16/17 Made several changes in the R5 MPU handling logic. Added new APIs to + * make RPU MPU handling user-friendly. This also fixes the CR-981028. + * 6.4 mus 08/17/17 Updated XGet_Zynq_UltraMp_Platform_info and XGetPSVersion_Info APIs to read + * version register through SMC call, over EL1 NS mode. This change has been done to + * support these APIs over EL1 NS mode. + * 6.5 mus 10/20/17 Updated standalone.tcl to fix bug in mb_can_handle_exceptions_in_delay_slots proc, + * it fixes CR#987464. + * 6.6 mus 12/07/17 Updated cortexa9/xil_errata.h and cortexa9/xil_cache.c to remove Errata 753970. + * It fixes CR#989132. + * srm 10/18/17 Updated all the sleep routines in a9,a53,R5,microblaze. Now the sleep routines + * will use the timer specified by the user to provide delay. A9 and A53 can use + * Global timer or TTC. R5 can use TTC or the machine cycles. Microblaze can use + * machine cycles or Axi timer. Updated standalone.tcl and standalone.mld files + * to support the sleep configuration Added new API's for the Axi timer in + * microblaze and TTC in ARM. Added two new files, xil_sleeptimer.c and + * xil_sleeptimer.h in ARM for the common sleep routines and 1 new file, + * xil_sleepcommon.c in Standalone-common for sleep/usleep API's. + * 6.6 hk 12/15/17 Export platform macros to bspconfig.h based on the processor. + * 6.6 asa 1/16/18 Ensure C stack information for A9 are flushed out from L1 D cache + * or L2 cache only when the respective caches are enabled. This fixes CR-922023. + * 6.6 mus 01/19/18 Updated asm_vectors.S and boot.S in Cortexa53 64 bit BSP, to add isb + * after writing to cpacr_el1/cptr_el3 registers. It would ensure + * disabling/enabling of floating-point unit, before any subsequent + * instruction. + * 6.6 mus 01/30/18 Updated hypervisor enabled Cortexa53 64 bit BSP, to add xen PV console + * support. Now, xil_printf would use PV console instead of UART in case of + * hypervisor enabled BSP. + * 6.6 mus 02/02/18 Updated get_connected_if proc in standalone tcl to detect the HPC port + * configured with smart interconnect.It fixes CR#990318. + * 6.6 srm 02/10/18 Updated csu_wdt interrupt to the correct value. Fixes CR#992229 + * 6.6 asa 02/12/18 Fix for heap handling for ARM platforms. CR#993932. + * 6.6 mus 02/19/18 Updated standalone.tcl to fix bug in handle_profile_opbtimer proc, + * CR#995014. + * 6.6 mus 02/23/18 Presently Cortex R5 BSP boot code is disabling the debug logic in +* non-JTAG boot mode, when processor is in lockstep configuration. +* This behavior is restricting application debugging in non-JTAG boot +* mode. To get rid of this restriction, added new mld parameter +* "lockstep_mode_debug", to enable/disable debug logic from BSP +* settings. Now, debug logic can be enabled through BSP settings, +* by modifying value of parameter "lockstep_mode_debug" as "true". +* It fixes CR#993896. + * 6.6.mus 02/27/18 Updated Xil_DCacheInvalidateRange and +* Xil_ICacheInvalidateRange APIs in Cortexa53 64 bit BSP, to fix bug +* in handling upper DDR addresses.It fixes CR#995581. +* 6.6 mus 03/12/18 Updated makefile of Cortexa53 32bit BSP to add includes_ps directory +* in the list of include paths. This change allows applications/BSP +* files to include .h files in include_ps directory. +* 6.6 mus 03/16/18 By default CPUACTLR_EL1 is accessible only from EL3, it +* results into abort if accessed from EL1 non secure privilege +* level. Updated Xil_ConfigureL1Prefetch function in Cortexa53 64 bit BSP +* to avoid CPUACTLR_EL1 access from privile levels other than EL3. +* 6.6 mus 03/16/18 Updated hypervisor enabled BSP to use PV console, based on the +* XEN_USE_PV_CONSOLE flag. By deafault hypervisor enabled BSP would +* use UART console, PV console can be enabled by appending + "-DXEN_USE_PV_CONSOLE" to the BSP extra compiler flags. + * *****************************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/close.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/close.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/close.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/close.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/config.make b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/config.make similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/config.make rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/config.make diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/cpu_init.S b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/cpu_init.S similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/cpu_init.S rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/cpu_init.S diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/errno.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/errno.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/errno.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/errno.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/fcntl.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/fcntl.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/fcntl.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/fcntl.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/fstat.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/fstat.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/fstat.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/fstat.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/getpid.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/getpid.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/getpid.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/getpid.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/inbyte.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/inbyte.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/inbyte.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/inbyte.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu0_cfg.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu0_cfg.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu0_cfg.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu0_cfg.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu1_cfg.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu1_cfg.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu1_cfg.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu1_cfg.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu2_cfg.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu2_cfg.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu2_cfg.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu2_cfg.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu3_cfg.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu3_cfg.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu3_cfg.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu3_cfg.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu4_cfg.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu4_cfg.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu4_cfg.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu4_cfg.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu5_cfg.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu5_cfg.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xddr_xmpu5_cfg.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xddr_xmpu5_cfg.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_slcr.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_slcr.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_slcr.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_slcr.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_slcr_secure.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_slcr_secure.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_slcr_secure.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_slcr_secure.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_xmpu_cfg.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_xmpu_cfg.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_xmpu_cfg.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_xmpu_cfg.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_xmpu_sink.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_xmpu_sink.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xfpd_xmpu_sink.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xfpd_xmpu_sink.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xiou_secure_slcr.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xiou_secure_slcr.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xiou_secure_slcr.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xiou_secure_slcr.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xiou_slcr.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xiou_slcr.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xiou_slcr.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xiou_slcr.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_slcr.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_slcr.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_slcr.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_slcr.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_slcr_secure.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_slcr_secure.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_slcr_secure.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_slcr_secure.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_xppu.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_xppu.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_xppu.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_xppu.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_xppu_sink.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_xppu_sink.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xlpd_xppu_sink.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xlpd_xppu_sink.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xocm_xmpu_cfg.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xocm_xmpu_cfg.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/includes_ps/xocm_xmpu_cfg.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/includes_ps/xocm_xmpu_cfg.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/isatty.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/isatty.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/isatty.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/isatty.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/kill.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/kill.c similarity index 89% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/kill.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/kill.c index f70c2849b..fc2f89d6c 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/kill.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/kill.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -35,7 +35,7 @@ #ifdef __cplusplus extern "C" { - __attribute__((weak)) s32 _kill(s32 pid, s32 sig); + __attribute__((weak)) int _kill(pid_t pid, int sig); } #endif @@ -43,7 +43,7 @@ extern "C" { * kill -- go out via exit... */ -__attribute__((weak)) s32 kill(s32 pid, s32 sig) +__attribute__((weak)) int kill(pid_t pid, int sig) { if(pid == 1) { _exit(sig); @@ -51,7 +51,7 @@ __attribute__((weak)) s32 kill(s32 pid, s32 sig) return 0; } -__attribute__((weak)) s32 _kill(s32 pid, s32 sig) +__attribute__((weak)) int _kill(pid_t pid, int sig) { if(pid == 1) { _exit(sig); diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/lseek.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/lseek.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/lseek.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/lseek.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/mpu.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/mpu.c similarity index 93% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/mpu.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/mpu.c index 55cdd4992..6d7054eca 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/mpu.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/mpu.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -44,6 +44,7 @@ * 5.04 pkp 12/18/15 Updated MPU initialization as per the proper address map * 6.00 pkp 06/27/16 moving the Init_MPU code to .boot section since it is a * part of processor boot process +* 6.2 mus 01/27/17 Updated to support IAR compiler * * * @note @@ -102,10 +103,16 @@ static const struct { }; /************************** Function Prototypes ******************************/ +#if defined (__GNUC__) void Init_MPU(void) __attribute__((__section__(".boot"))); static void Xil_SetAttribute(u32 addr, u32 reg_size,s32 reg_num, u32 attrib) __attribute__((__section__(".boot"))); static void Xil_DisableMPURegions(void) __attribute__((__section__(".boot"))); - +#elif defined (__ICCARM__) +#pragma default_function_attributes = @ ".boot" +void Init_MPU(void); +static void Xil_SetAttribute(u32 addr, u32 reg_size,s32 reg_num, u32 attrib); +static void Xil_DisableMPURegions(void); +#endif /***************************************************************************** * * Initialize MPU for a given address map and Enabled the background Region in @@ -122,7 +129,7 @@ static void Xil_DisableMPURegions(void) __attribute__((__section__(".boot"))); void Init_MPU(void) { u32 Addr; - u32 RegSize; + u32 RegSize = 0U; u32 Attrib; u32 RegNum = 0, i; u64 size; @@ -270,11 +277,15 @@ static void Xil_SetAttribute(u32 addr, u32 reg_size,s32 reg_num, u32 attrib) ******************************************************************************/ static void Xil_DisableMPURegions(void) { - u32 Temp; - u32 Index; + u32 Temp = 0U; + u32 Index = 0U; for (Index = 0; Index <= 15; Index++) { mtcp(XREG_CP15_MPU_MEMORY_REG_NUMBER,Index); +#if defined (__GNUC__) Temp = mfcp(XREG_CP15_MPU_REG_SIZE_EN); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_MPU_REG_SIZE_EN,Temp); +#endif Temp &= (~REGION_EN); dsb(); mtcp(XREG_CP15_MPU_REG_SIZE_EN,Temp); @@ -283,3 +294,7 @@ static void Xil_DisableMPURegions(void) } } + +#if defined (__ICCARM__) +#pragma default_function_attributes = +#endif diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/open.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/open.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/open.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/open.c index 4b51839fd..85e9ce402 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/open.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/open.c @@ -44,7 +44,7 @@ extern "C" { */ __attribute__((weak)) s32 open(char8 *buf, s32 flags, s32 mode) { - (void *)buf; + (void)buf; (void)flags; (void)mode; errno = EIO; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/outbyte.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/outbyte.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/outbyte.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/outbyte.c diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/print.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/print.c similarity index 85% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/print.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/print.c index b966480a8..da7e768d0 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/print.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/print.c @@ -21,11 +21,16 @@ void print(const char8 *ptr) { +#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE + XPVXenConsole_Write(ptr); +#else #ifdef STDOUT_BASEADDRESS - while (*ptr) { - outbyte (*ptr++); + while (*ptr != (char8)0) { + outbyte (*ptr); + ptr++; } #else (void)ptr; #endif +#endif } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/putnum.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/putnum.c similarity index 96% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/putnum.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/putnum.c index 33c3a6c44..aaf9edee7 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/putnum.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/putnum.c @@ -37,7 +37,7 @@ void putnum(u32 num) ptr = buf; for (cnt = 7 ; cnt >= 0 ; cnt--) { - digit = ((num >> ((u16)cnt * 4U)) & 0xfU); + digit = (num >> (cnt * 4U)) & 0x0000000fU; if ((digit <= 9U) && (ptr != NULL)) { digit += (u32)'0'; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/read.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/read.c similarity index 82% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/read.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/read.c index 1cad3272a..7f7b7d261 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/read.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/read.c @@ -51,25 +51,21 @@ read (s32 fd, char8* buf, s32 nbytes) { #ifdef STDIN_BASEADDRESS s32 i; + s32 numbytes = 0; char8* LocalBuf = buf; (void)fd; - for (i = 0; i < nbytes; i++) { - if(LocalBuf != NULL) { - LocalBuf += i; - } - if(LocalBuf != NULL) { - *LocalBuf = inbyte(); - if ((*LocalBuf == '\n' )|| (*LocalBuf == '\r')) { - break; + if(LocalBuf != NULL) { + for (i = 0; i < nbytes; i++) { + numbytes++; + *(LocalBuf + i) = inbyte(); + if ((*(LocalBuf + i) == '\n' )|| (*(LocalBuf + i) == '\r')) { + break; } } - if(LocalBuf != NULL) { - LocalBuf -= i; - } } - return (i + 1); + return numbytes; #else (void)fd; (void)buf; @@ -83,25 +79,21 @@ _read (s32 fd, char8* buf, s32 nbytes) { #ifdef STDIN_BASEADDRESS s32 i; + s32 numbytes = 0; char8* LocalBuf = buf; (void)fd; - for (i = 0; i < nbytes; i++) { - if(LocalBuf != NULL) { - LocalBuf += i; - } - if(LocalBuf != NULL) { - *LocalBuf = inbyte(); - if ((*LocalBuf == '\n' )|| (*LocalBuf == '\r')) { - break; + if(LocalBuf != NULL) { + for (i = 0; i < nbytes; i++) { + numbytes++; + *(LocalBuf + i) = inbyte(); + if ((*(LocalBuf + i) == '\n' )|| (*(LocalBuf + i) == '\r')) { + break; } } - if(LocalBuf != NULL) { - LocalBuf -= i; - } } - return (i + 1); + return numbytes; #else (void)fd; (void)buf; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/sbrk.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/sbrk.c similarity index 94% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/sbrk.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/sbrk.c index 64d5156af..87a753d49 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/sbrk.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/sbrk.c @@ -51,12 +51,8 @@ __attribute__((weak)) char8 *sbrk (s32 nbytes) static char8 *heap_ptr = HeapBase; base = heap_ptr; - if(heap_ptr != NULL) { + if((heap_ptr != NULL) && (heap_ptr + nbytes <= (char8 *)&HeapLimit + 1)) { heap_ptr += nbytes; - } - -/* if (heap_ptr <= ((char8 *)&_heap_end + 1)) */ - if (heap_ptr <= ((char8 *)&HeapLimit + 1)) { return base; } else { errno = ENOMEM; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/sleep.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/sleep.c similarity index 61% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/sleep.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/sleep.c index 74c7ec215..d5e56c526 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/sleep.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/sleep.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,8 +33,9 @@ * * @file sleep.c * -* This function provides a second delay using the Global Timer register in -* the ARM Cortex R5 MP core. +* This function supports user configurable sleep implementation. +* This provides delay in seconds by using the Timer specified by +* the user in the ARM Cortex R5 MP core. * *
       * MODIFICATION HISTORY:
      @@ -50,6 +51,9 @@
       * 5.04	pkp		 03/11/16 Compare the counter value to previously read value
       *						  to detect the overflow for TTC3
       * 6.0   asa      08/15/16 Updated the sleep signature. Fix for CR#956899.
      +* 6.6	srm      10/18/17 Updated sleep routines to support user configurable
      +*			  implementation. Now sleep routines will use TTC
      +*                         instance specified by user.
       * 
      * ******************************************************************************/ @@ -59,6 +63,10 @@ #include "xtime_l.h" #include "xparameters.h" +#if defined (SLEEP_TIMER_BASEADDR) +#include "xil_sleeptimer.h" +#endif + /*****************************************************************************/ /* * @@ -68,59 +76,45 @@ * * @return 0 always * -* @note The sleep API is implemented using TTC3 counter 0 timer if present. -* When TTC3 is absent, sleep is implemented using assembly -* instructions which is tested with instruction and data caches -* enabled and it gives proper delay. It may give more delay than -* exepcted when caches are disabled. If interrupt comes when sleep -* using assembly instruction is being executed, the delay may be -* greater than what is expected since once the interrupt is served -* count resumes from where it was interrupted unlike the case of TTC3 -* where counter keeps running while interrupt is being served. +* @note By default, sleep is implemented using TTC3. Although user is +* given an option to select other instances of TTC. When the user +* selects other instances of TTC, sleep is implemented by that +* specific TTC instance. If the user didn't select any other instance +* of TTC specifically and when TTC3 is absent, sleep is implemented +* using assembly instructions which is tested with instruction and +* data caches enabled and it gives proper delay. It may give more +* delay than exepcted when caches are disabled. If interrupt comes +* when sleep using assembly instruction is being executed, the delay +* may be greater than what is expected since once the interrupt is +* served count resumes from where it was interrupted unlike the case +* of TTC3 where counter keeps running while interrupt is being served. * ****************************************************************************/ -unsigned sleep(unsigned int seconds) +unsigned sleep_R5(unsigned int seconds) { -#ifdef SLEEP_TIMER_BASEADDR - u64 tEnd; - u64 tCur; - u32 TimeHighVal; - XTime TimeLowVal1; - XTime TimeLowVal2; - - TimeHighVal = 0; - - XTime_GetTime(&TimeLowVal1); - tEnd = (u64)TimeLowVal1 + (((u64) seconds) * COUNTS_PER_SECOND); - - do - { - - XTime_GetTime(&TimeLowVal2); - if (TimeLowVal2 < TimeLowVal1) { - TimeHighVal++; - } - - TimeLowVal1 = TimeLowVal2; - tCur = (((u64) TimeHighVal) << 32U) | (u64)TimeLowVal2; - - } while (tCur < tEnd); - - return 0; +#if defined (SLEEP_TIMER_BASEADDR) + Xil_SleepTTCCommon(seconds, COUNTS_PER_SECOND); #else +#if defined (__GNUC__) __asm__ __volatile__ ( - " push {r0,r1} \n\t" - " mov r0, %[sec] \n\t" - " 1: \n\t" - " mov r1, %[iter] \n\t" - " 2: \n\t" - " subs r1, r1, #0x1 \n\t" - " bne 2b \n\t" - " subs r0,r0,#0x1 \n\t" - " bne 1b \n\t" - " pop {r0,r1} \n\t" - :: [iter] "r" (ITERS_PER_SEC), [sec] "r" (seconds) - ); +#elif defined (__ICCARM__) + __asm volatile ( #endif + "push {r0,r1,r3} \n" + "mov r0, %[sec] \n" + "mov r1, %[iter] \n" + "1: \n" + "mov r3, r1\n" + "2: \n" + "subs r3, r3, #0x1 \n" + "bne 2b \n" + "subs r0, r0, #0x1 \n" + "bne 1b \n" + "pop {r0,r1,r3} \n" + ::[iter] "r" (ITERS_PER_SEC), [sec] "r" (seconds) + ); +#endif + +return 0; } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/sleep.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/sleep.h new file mode 100644 index 000000000..f53b2d8c8 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/sleep.h @@ -0,0 +1,119 @@ +/****************************************************************************** +* +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ + +/*****************************************************************************/ +/** +* @file sleep.h +* +* This header file contains ARM Cortex A53,A9,R5,Microblaze specific sleep +* related APIs. +* +*
      +* MODIFICATION HISTORY :
      +*
      +* Ver   Who  Date	 Changes
      +* ----- ---- -------- -------------------------------------------------------
      +* 6.6   srm  11/02/17 Added processor specific sleep rountines
      +*								 function prototypes.
      +*
      +* 
      +* +******************************************************************************/ + +#ifndef SLEEP_H +#define SLEEP_H + +#include "xil_types.h" +#include "xil_io.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*****************************************************************************/ +/** +* +* This macro polls an address periodically until a condition is met or till the +* timeout occurs. +* The minimum timeout for calling this macro is 100us. If the timeout is less +* than 100us, it still waits for 100us. Also the unit for the timeout is 100us. +* If the timeout is not a multiple of 100us, it waits for a timeout of +* the next usec value which is a multiple of 100us. +* +* @param IO_func - accessor function to read the register contents. +* Depends on the register width. +* @param ADDR - Address to be polled +* @param VALUE - variable to read the value +* @param COND - Condition to checked (usually involves VALUE) +* @param TIMEOUT_US - timeout in micro seconds +* +* @return 0 - when the condition is met +* -1 - when the condition is not met till the timeout period +* +* @note none +* +*****************************************************************************/ +#define Xil_poll_timeout(IO_func, ADDR, VALUE, COND, TIMEOUT_US) \ + ( { \ + u64 timeout = TIMEOUT_US/100; \ + if(TIMEOUT_US%100!=0) \ + timeout++; \ + for(;;) { \ + VALUE = IO_func(ADDR); \ + if(COND) \ + break; \ + else { \ + usleep(100); \ + timeout--; \ + if(timeout==0) \ + break; \ + } \ + } \ + (timeout>0) ? 0 : -1; \ + } ) + +void usleep(unsigned long useconds); +void sleep(unsigned int seconds); +int usleep_R5(unsigned long useconds); +unsigned sleep_R5(unsigned int seconds); +int usleep_MB(unsigned long useconds); +unsigned sleep_MB(unsigned int seconds); +int usleep_A53(unsigned long useconds); +unsigned sleep_A53(unsigned int seconds); +int usleep_A9(unsigned long useconds); +unsigned sleep_A9(unsigned int seconds); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/uart.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/uart.c similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/uart.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/uart.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/unlink.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/unlink.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/unlink.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/unlink.c index 84e44a47c..d0cc6807b 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/unlink.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/unlink.c @@ -44,7 +44,7 @@ extern "C" { */ __attribute__((weak)) sint32 unlink(char8 *path) { - (void *)path; + (void) path; errno = EIO; return (-1); } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/usleep.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/usleep.c similarity index 62% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/usleep.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/usleep.c index ff01dfd73..a245f4f78 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/usleep.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/usleep.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,7 +34,8 @@ * * @file usleep.c * -* This function provides a microsecond delay using the Global Timer register in +* This function supports user configurable sleep implementation. +* This provides a microsecond delay using the timer specified by the user in * the ARM Cortex R5 MP core. * *
      @@ -51,6 +52,10 @@
       * 5.04	pkp		 03/11/16 Compare the counter value to previously read value
       *						  to detect the overflow for TTC3
       * 6.0   asa      08/15/16 Updated the usleep signature. Fix for CR#956899.
      +* 6.6	srm      10/18/17 Updated sleep routines to support user configurable
      +*			  implementation. Now sleep routines will use TTC
      +*                         instance specified by user.
      +*
       * 
      * ******************************************************************************/ @@ -63,6 +68,10 @@ #include "xpseudo_asm.h" #include "xreg_cortexr5.h" +#if defined (SLEEP_TIMER_BASEADDR) +#include "xil_sleeptimer.h" +#endif + /*****************************************************************************/ /** * @@ -72,57 +81,45 @@ * * @return 0 always * -* @note The usleep API is implemented using TTC3 counter 0 timer if present -* When TTC3 is absent, usleep is implemented using assembly -* instructions which is tested with instruction and data caches -* enabled and it gives proper delay. It may give more delay than -* exepcted when caches are disabled. If interrupt comes when usleep -* using assembly instruction is being executed, the delay may be -* greater than what is expected since once the interrupt is served -* count resumes from where it was interrupted unlike the case of TTC3 -* where counter keeps running while interrupt is being served. +* @note By default, usleep is implemented using TTC3. Although user is +* given an option to select other instances of TTC. When the user +* selects other instances of TTC, usleep is implemented by that +* specific TTC instance. If the user didn't select any other instance +* of TTC specifically and when TTC3 is absent, usleep is implemented +* using assembly instructions which is tested with instruction and +* data caches enabled and it gives proper delay. It may give more +* delay than exepcted when caches are disabled. If interrupt comes +* when usleep using assembly instruction is being executed, the delay +* may be greater than what is expected since once the interrupt is +* served count resumes from where it was interrupted unlike the case +* of TTC3 where counter keeps running while interrupt is being served. * ****************************************************************************/ -int usleep(unsigned long useconds) +int usleep_R5(unsigned long useconds) { - -#ifdef SLEEP_TIMER_BASEADDR - u64 tEnd; - u64 tCur; - u32 TimeHighVal; - XTime TimeLowVal1; - XTime TimeLowVal2; - - TimeHighVal = 0; - - XTime_GetTime(&TimeLowVal1); - tEnd = (u64)TimeLowVal1 + (((u64) useconds) * COUNTS_PER_USECOND); - - do - { - XTime_GetTime(&TimeLowVal2); - if (TimeLowVal2 < TimeLowVal1) { - TimeHighVal++; - } - TimeLowVal1 = TimeLowVal2; - tCur = (((u64) TimeHighVal) << 32U) | (u64)TimeLowVal2; - } while (tCur < tEnd); - - return 0; +#if defined (SLEEP_TIMER_BASEADDR) + Xil_SleepTTCCommon(useconds, COUNTS_PER_USECOND); #else +#if defined (__GNUC__) __asm__ __volatile__ ( - " push {r0,r1} \n\t" - " mov r0, %[usec] \n\t" - " 1: \n\t" - " mov r1, %[iter] \n\t" - " 2: \n\t" - " subs r1, r1, #0x1 \n\t" - " bne 2b \n\t" - " subs r0,r0,#0x1 \n\t" - " bne 1b \n\t" - " pop {r0,r1} \n\t" - :: [iter] "r" (ITERS_PER_USEC), [usec] "r" (useconds) - ); +#elif defined (__ICCARM__) + __asm volatile ( #endif + "push {r0,r1,r3} \n" + "mov r0, %[usec] \n" + "mov r1, %[iter] \n" + "1: \n" + "mov r3, r1 \n" + "2: \n" + "subs r3, r3, #0x1\n" + "bne 2b \n" + "subs r0, r0, #0x1 \n" + "bne 1b \n" + "pop {r0,r1,r3} \n" + ::[iter] "r" (ITERS_PER_USEC), [usec] "r" (useconds) + ); +#endif + +return 0; } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/vectors.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/vectors.c similarity index 81% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/vectors.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/vectors.c index 94a935d77..0a3616328 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/vectors.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/vectors.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -41,6 +41,9 @@ * Ver Who Date Changes * ----- ---- -------- --------------------------------------------------- * 1.00a ecm 10/20/09 Initial version, moved over from bsp area +* 6.0 mus 27/07/16 Consolidated vectors for a53,a9 and r5 processor +* and added UndefinedException for a53 32 bit and r5 +* processor * * * @note @@ -70,25 +73,6 @@ extern XExc_VectorTableEntry XExc_VectorTable[]; /************************** Function Prototypes ******************************/ -/*****************************************************************************/ -/** -* -* This is the C level wrapper for the Undefined exception called from the -* vectors.s file. -* -* @param None. -* -* @return None. -* -* @note None. -* -******************************************************************************/ -void UndefinedException(void) -{ - XExc_VectorTable[XIL_EXCEPTION_ID_UNDEFINED_INT].Handler(XExc_VectorTable[ - XIL_EXCEPTION_ID_UNDEFINED_INT].Data); -} - /*****************************************************************************/ /** @@ -128,6 +112,26 @@ void IRQInterrupt(void) XIL_EXCEPTION_ID_IRQ_INT].Data); } +#if !defined (__aarch64__) +/*****************************************************************************/ +/** +* +* This is the C level wrapper for the Undefined exception called from the +* vectors.s file. +* +* @param None. +* +* @return None. +* +* @note None. +* +******************************************************************************/ +void UndefinedException(void) +{ + XExc_VectorTable[XIL_EXCEPTION_ID_UNDEFINED_INT].Handler(XExc_VectorTable[ + XIL_EXCEPTION_ID_UNDEFINED_INT].Data); +} + /*****************************************************************************/ /** * @@ -184,3 +188,44 @@ void PrefetchAbortInterrupt(void) XExc_VectorTable[XIL_EXCEPTION_ID_PREFETCH_ABORT_INT].Handler( XExc_VectorTable[XIL_EXCEPTION_ID_PREFETCH_ABORT_INT].Data); } +#else + +/*****************************************************************************/ +/** +* +* This is the C level wrapper for the Synchronous Interrupt called from the vectors.s +* file. +* +* @param None. +* +* @return None. +* +* @note None. +* +******************************************************************************/ +void SynchronousInterrupt(void) +{ + XExc_VectorTable[XIL_EXCEPTION_ID_SYNC_INT].Handler(XExc_VectorTable[ + XIL_EXCEPTION_ID_SYNC_INT].Data); +} + +/*****************************************************************************/ +/** +* +* This is the C level wrapper for the SError Interrupt called from the +* vectors.s file. +* +* @param None. +* +* @return None. +* +* @note None. +* +******************************************************************************/ +void SErrorInterrupt(void) +{ + XExc_VectorTable[XIL_EXCEPTION_ID_SERROR_ABORT_INT].Handler( + XExc_VectorTable[XIL_EXCEPTION_ID_SERROR_ABORT_INT].Data); +} + +#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/vectors.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/vectors.h similarity index 92% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/vectors.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/vectors.h index 5c423b8f7..bb599b560 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/vectors.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/vectors.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -41,6 +41,7 @@ * Ver Who Date Changes * ----- ---- -------- --------------------------------------------------- * 1.00a ecm 10/20/10 Initial version, moved over from bsp area +* 6.0 mus 07/27/16 Consolidated vectors for a9,a53 and r5 processors * * * @note @@ -67,13 +68,18 @@ extern "C" { /************************** Constant Definitions *****************************/ /************************** Function Prototypes ******************************/ -void UndefinedException(void); + void FIQInterrupt(void); void IRQInterrupt(void); +#if !defined (__aarch64__) void SWInterrupt(void); void DataAbortInterrupt(void); void PrefetchAbortInterrupt(void); - +void UndefinedException(void); +#else +void SynchronousInterrupt(void); +void SErrorInterrupt(void); +#endif #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/write.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/write.c similarity index 93% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/write.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/write.c index aaa879e73..9389f610a 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/write.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/write.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2018 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -82,6 +82,14 @@ write (sint32 fd, char8* buf, sint32 nbytes) __attribute__((weak)) sint32 _write (sint32 fd, char8* buf, sint32 nbytes) { +#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE + sint32 length; + + (void)fd; + (void)nbytes; + length = XPVXenConsole_Write(buf); + return length; +#else #ifdef STDOUT_BASEADDRESS s32 i; char8* LocalBuf = buf; @@ -108,5 +116,6 @@ _write (sint32 fd, char8* buf, sint32 nbytes) (void)nbytes; return 0; #endif +#endif } #endif diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xbasic_types.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xbasic_types.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xbasic_types.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xbasic_types.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xdebug.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xdebug.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xdebug.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xdebug.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xenv.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xenv.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xenv.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xenv.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xenv_standalone.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xenv_standalone.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xenv_standalone.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xenv_standalone.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil-crt0.S b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil-crt0.S similarity index 87% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil-crt0.S rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil-crt0.S index 6715a6ce5..5c4fe7465 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil-crt0.S +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil-crt0.S @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -42,6 +42,12 @@ * 5.04 pkp 12/18/15 Initialized global constructor for C++ applications * 5.04 pkp 02/19/16 Added timer configuration using XTime_StartTimer API when * TTC3 is present +* 6.4 asa 08/16/17 Added call to Xil_InitializeExistingMPURegConfig to +* initialize the MPU configuration table with the MPU +* configurations already set in Init_Mpu function. +* 6.6 srm 10/18/17 Updated the timer configuration with XTime_StartTTCTimer. +* Now the timer instance as specified by the user will be +* started. * * * @note @@ -123,11 +129,11 @@ test_boot_status: /* set stack pointer */ ldr r13,.Lstack /* stack address */ - /* configure the timer if TTC3 is present */ + /* configure the timer if TTC is present */ #ifdef SLEEP_TIMER_BASEADDR - bl XTime_StartTimer + bl XTime_StartTTCTimer #endif - + bl Xil_InitializeExistingMPURegConfig /* Initialize MPU config */ /* run global constructors */ bl __libc_init_array diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_assert.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_assert.c similarity index 81% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_assert.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_assert.c index 42db07deb..59b3c1c98 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_assert.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_assert.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -42,6 +42,7 @@ * Ver Who Date Changes * ----- ---- -------- ------------------------------------------------------- * 1.00a hbm 07/14/09 Initial release +* 6.0 kvn 05/31/16 Make Xil_AsserWait a global variable * * ******************************************************************************/ @@ -71,7 +72,7 @@ u32 Xil_AssertStatus; * such that it does not wait infinitely. Use the debugger to disable the * waiting during testing of asserts. */ -/*s32 Xil_AssertWait = 1*/ +s32 Xil_AssertWait = 1; /* The callback function to be invoked when an assert is taken */ static Xil_AssertCallback Xil_AssertCallbackRoutine = NULL; @@ -81,12 +82,13 @@ static Xil_AssertCallback Xil_AssertCallbackRoutine = NULL; /*****************************************************************************/ /** * -* Implement assert. Currently, it calls a user-defined callback function -* if one has been set. Then, it potentially enters an infinite loop depending -* on the value of the Xil_AssertWait variable. +* @brief Implement assert. Currently, it calls a user-defined callback +* function if one has been set. Then, it potentially enters an +* infinite loop depending on the value of the Xil_AssertWait +* variable. * -* @param file is the name of the filename of the source -* @param line is the linenumber within File +* @param file: filename of the source +* @param line: linenumber within File * * @return None. * @@ -95,7 +97,6 @@ static Xil_AssertCallback Xil_AssertCallbackRoutine = NULL; ******************************************************************************/ void Xil_Assert(const char8 *File, s32 Line) { - s32 Xil_AssertWait = 1; /* if the callback has been set then invoke it */ if (Xil_AssertCallbackRoutine != 0) { (*Xil_AssertCallbackRoutine)(File, Line); @@ -111,10 +112,10 @@ void Xil_Assert(const char8 *File, s32 Line) /*****************************************************************************/ /** * -* Set up a callback function to be invoked when an assert occurs. If there -* was already a callback installed, then it is replaced. +* @brief Set up a callback function to be invoked when an assert occurs. +* If a callback is already installed, then it will be replaced. * -* @param routine is the callback to be invoked when an assert is taken +* @param routine: callback to be invoked when an assert is taken * * @return None. * @@ -129,11 +130,11 @@ void Xil_AssertSetCallback(Xil_AssertCallback Routine) /*****************************************************************************/ /** * -* Null handler function. This follows the XInterruptHandler signature for -* interrupt handlers. It can be used to assign a null handler (a stub) to an -* interrupt controller vector table. +* @brief Null handler function. This follows the XInterruptHandler +* signature for interrupt handlers. It can be used to assign a null +* handler (a stub) to an interrupt controller vector table. * -* @param NullParameter is an arbitrary void pointer and not used. +* @param NullParameter: arbitrary void pointer and not used. * * @return None. * @@ -142,5 +143,5 @@ void Xil_AssertSetCallback(Xil_AssertCallback Routine) ******************************************************************************/ void XNullHandler(void *NullParameter) { - (void *) NullParameter; + (void) NullParameter; } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_assert.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_assert.h similarity index 75% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_assert.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_assert.h index 7034bc9ad..add4124e2 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_assert.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_assert.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2009 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,14 +34,22 @@ * * @file xil_assert.h * -* This file contains assert related functions. +* @addtogroup common_assert_apis Assert APIs and Macros * +* The xil_assert.h file contains assert related functions and macros. +* Assert APIs/Macros specifies that a application program satisfies certain +* conditions at particular points in its execution. These function can be +* used by application programs to ensure that, application code is satisfying +* certain conditions. +* +* @{ *
       * MODIFICATION HISTORY:
       *
       * Ver   Who    Date   Changes
       * ----- ---- -------- -------------------------------------------------------
       * 1.00a hbm  07/14/09 First release
      +* 6.0   kvn  05/31/16 Make Xil_AsserWait a global variable
       * 
      * ******************************************************************************/ @@ -66,6 +74,7 @@ extern "C" { #define XNULL NULL extern u32 Xil_AssertStatus; +extern s32 Xil_AssertWait; extern void Xil_Assert(const char8 *File, s32 Line); void XNullHandler(void *NullParameter); @@ -81,18 +90,17 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line); /*****************************************************************************/ /** -* This assert macro is to be used for functions that do not return anything -* (void). This in conjunction with the Xil_AssertWait boolean can be used to -* accomodate tests so that asserts which fail allow execution to continue. +* @brief This assert macro is to be used for void functions. This in +* conjunction with the Xil_AssertWait boolean can be used to +* accomodate tests so that asserts which fail allow execution to +* continue. * -* @param Expression is the expression to evaluate. If it evaluates to +* @param Expression: expression to be evaluated. If it evaluates to * false, the assert occurs. * * @return Returns void unless the Xil_AssertWait variable is true, in which * case no return is made and an infinite loop is entered. * -* @note None. -* ******************************************************************************/ #define Xil_AssertVoid(Expression) \ { \ @@ -107,17 +115,16 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line); /*****************************************************************************/ /** -* This assert macro is to be used for functions that do return a value. This in -* conjunction with the Xil_AssertWait boolean can be used to accomodate tests -* so that asserts which fail allow execution to continue. +* @brief This assert macro is to be used for functions that do return a +* value. This in conjunction with the Xil_AssertWait boolean can be +* used to accomodate tests so that asserts which fail allow execution +* to continue. * -* @param Expression is the expression to evaluate. If it evaluates to false, +* @param Expression: expression to be evaluated. If it evaluates to false, * the assert occurs. * * @return Returns 0 unless the Xil_AssertWait variable is true, in which -* case no return is made and an infinite loop is entered. -* -* @note None. +* case no return is made and an infinite loop is entered. * ******************************************************************************/ #define Xil_AssertNonvoid(Expression) \ @@ -133,14 +140,11 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line); /*****************************************************************************/ /** -* Always assert. This assert macro is to be used for functions that do not -* return anything (void). Use for instances where an assert should always -* occur. +* @brief Always assert. This assert macro is to be used for void functions. +* Use for instances where an assert should always occur. * -* @return Returns void unless the Xil_AssertWait variable is true, in which -* case no return is made and an infinite loop is entered. -* -* @note None. +* @return Returns void unless the Xil_AssertWait variable is true, in which +* case no return is made and an infinite loop is entered. * ******************************************************************************/ #define Xil_AssertVoidAlways() \ @@ -152,13 +156,12 @@ typedef void (*Xil_AssertCallback) (const char8 *File, s32 Line); /*****************************************************************************/ /** -* Always assert. This assert macro is to be used for functions that do return -* a value. Use for instances where an assert should always occur. +* @brief Always assert. This assert macro is to be used for functions that +* do return a value. Use for instances where an assert should always +* occur. * * @return Returns void unless the Xil_AssertWait variable is true, in which -* case no return is made and an infinite loop is entered. -* -* @note None. +* case no return is made and an infinite loop is entered. * ******************************************************************************/ #define Xil_AssertNonvoidAlways() \ @@ -187,3 +190,6 @@ void Xil_AssertSetCallback(Xil_AssertCallback Routine); #endif #endif /* end of protection macro */ +/** +* @} End of "addtogroup common_assert_apis". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_cache.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_cache.c similarity index 74% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_cache.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_cache.c index 2ba080dff..3cd51ab6e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_cache.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_cache.c @@ -42,6 +42,7 @@ * Ver Who Date Changes * ----- ---- -------- ----------------------------------------------- * 5.00 pkp 02/20/14 First release +* 6.2 mus 01/27/17 Updated to support IAR compiler * * ******************************************************************************/ @@ -60,16 +61,16 @@ #define IRQ_FIQ_MASK 0xC0 /* Mask IRQ and FIQ interrupts in cpsr */ - +#if defined (__GNUC__) extern s32 _stack_end; extern s32 __undef_stack; - +#endif /****************************************************************************/ /************************** Function Prototypes ******************************/ -/**************************************************************************** -* -* Enable the Data cache. +/****************************************************************************/ +/** +* @brief Enable the Data cache. * * @param None. * @@ -83,8 +84,11 @@ void Xil_DCacheEnable(void) register u32 CtrlReg; /* enable caches only if they are disabled */ +#if defined (__GNUC__) CtrlReg = mfcp(XREG_CP15_SYS_CONTROL); - +#elif defined (__ICCARM__) + mfcp(XREG_CP15_SYS_CONTROL,CtrlReg); +#endif if ((CtrlReg & XREG_CP15_CONTROL_C_BIT)==0x00000000U) { /* invalidate the Data cache */ Xil_DCacheInvalidate(); @@ -96,9 +100,9 @@ void Xil_DCacheEnable(void) } } -/**************************************************************************** -* -* Disable the Data cache. +/****************************************************************************/ +/** +* @brief Disable the Data cache. * * @param None. * @@ -115,23 +119,25 @@ void Xil_DCacheDisable(void) Xil_DCacheFlush(); /* disable the Data cache */ +#if defined (__GNUC__) CtrlReg = mfcp(XREG_CP15_SYS_CONTROL); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_SYS_CONTROL,CtrlReg); +#endif CtrlReg &= ~(XREG_CP15_CONTROL_C_BIT); mtcp(XREG_CP15_SYS_CONTROL, CtrlReg); } -/**************************************************************************** -* -* Invalidate the entire Data cache. +/****************************************************************************/ +/** +* @brief Invalidate the entire Data cache. * * @param None. * * @return None. * -* @note None. -* ****************************************************************************/ void Xil_DCacheInvalidate(void) { @@ -141,14 +147,14 @@ void Xil_DCacheInvalidate(void) currmask = mfcpsr(); mtcpsr(currmask | IRQ_FIQ_MASK); - +#if defined (__GNUC__) stack_end = (u32 )&_stack_end; stack_start = (u32 )&__undef_stack; stack_size = stack_start-stack_end; /* Flush stack memory to save return address */ Xil_DCacheFlushRange(stack_end, stack_size); - +#endif mtcp(XREG_CP15_CACHE_SIZE_SEL, 0); /*invalidate all D cache*/ @@ -157,15 +163,16 @@ void Xil_DCacheInvalidate(void) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate a Data cache line. If the byte specified by the +* address (adr) is cached by the data cache, the cacheline +* containing that byte is invalidated.If the cacheline is modified +* (dirty), the modified contents are lost and are NOT written +* to system memory before the line is invalidated. * -* Invalidate a Data cache line. If the byte specified by the address (adr) -* is cached by the Data cache, the cacheline containing that byte is -* invalidated. If the cacheline is modified (dirty), the modified contents -* are lost and are NOT written to system memory before the line is -* invalidated. * -* @param Address to be flushed. +* @param adr: 32bit address of the data to be flushed. * * @return None. * @@ -188,21 +195,20 @@ void Xil_DCacheInvalidateLine(INTPTR adr) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate the Data cache for the given address range. +* If the bytes specified by the address (adr) are cached by the +* Data cache,the cacheline containing that byte is invalidated. +* If the cacheline is modified (dirty), the modified contents are +* lost and are NOT written to system memory before the line is +* invalidated. * -* Invalidate the Data cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the modified contents are lost and are NOT -* written to system memory before the line is invalidated. -* -* @param Start address of range to be invalidated. -* @param Length of range to be invalidated in bytes. +* @param adr: 32bit start address of the range to be invalidated. +* @param len: Length of range to be invalidated in bytes. * * @return None. * -* @note None. -* ****************************************************************************/ void Xil_DCacheInvalidateRange(INTPTR adr, u32 len) { @@ -245,16 +251,14 @@ void Xil_DCacheInvalidateRange(INTPTR adr, u32 len) mtcpsr(currmask); } -/**************************************************************************** -* -* Flush the entire Data cache. +/****************************************************************************/ +/** +* @brief Flush the entire Data cache. * * @param None. * * @return None. * -* @note None. -* ****************************************************************************/ void Xil_DCacheFlush(void) { @@ -269,8 +273,11 @@ void Xil_DCacheFlush(void) /* Select cache level 0 and D cache in CSSR */ mtcp(XREG_CP15_CACHE_SIZE_SEL, 0); +#if defined (__GNUC__) CsidReg = mfcp(XREG_CP15_CACHE_SIZE_ID); - +#elif defined (__ICCARM__) + mfcp(XREG_CP15_CACHE_SIZE_ID,CsidReg); +#endif /* Determine Cache Size */ CacheSize = (CsidReg >> 13U) & 0x000001FFU; @@ -310,15 +317,15 @@ void Xil_DCacheFlush(void) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Flush a Data cache line. If the byte specified by the address (adr) +* is cached by the Data cache, the cacheline containing that byte is +* invalidated. If the cacheline is modified (dirty), the entire +* contents of the cacheline are written to system memory before the +* line is invalidated. * -* Flush a Data cache line. If the byte specified by the address (adr) -* is cached by the Data cache, the cacheline containing that byte is -* invalidated. If the cacheline is modified (dirty), the entire -* contents of the cacheline are written to system memory before the -* line is invalidated. -* -* @param Address to be flushed. +* @param adr: 32bit address of the data to be flushed. * * @return None. * @@ -341,20 +348,19 @@ void Xil_DCacheFlushLine(INTPTR adr) mtcpsr(currmask); } -/**************************************************************************** -* Flush the Data cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the written to system memory first before the -* before the line is invalidated. +/****************************************************************************/ +/** +* @brief Flush the Data cache for the given address range. +* If the bytes specified by the address (adr) are cached by the +* Data cache, the cacheline containing those bytes is invalidated.If +* the cacheline is modified (dirty), the written to system memory +* before the lines are invalidated. * -* @param Start address of range to be flushed. -* @param Length of range to be flushed in bytes. +* @param adr: 32bit start address of the range to be flushed. +* @param len: Length of the range to be flushed in bytes * * @return None. * -* @note None. -* ****************************************************************************/ void Xil_DCacheFlushRange(INTPTR adr, u32 len) { @@ -383,15 +389,15 @@ void Xil_DCacheFlushRange(INTPTR adr, u32 len) dsb(); mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Store a Data cache line. If the byte specified by the address +* (adr) is cached by the Data cache and the cacheline is modified +* (dirty), the entire contents of the cacheline are written to +* system memory.After the store completes, the cacheline is marked +* as unmodified (not dirty). * -* Store a Data cache line. If the byte specified by the address (adr) -* is cached by the Data cache and the cacheline is modified (dirty), -* the entire contents of the cacheline are written to system memory. -* After the store completes, the cacheline is marked as unmodified -* (not dirty). -* -* @param Address to be stored. +* @param adr: 32bit address of the data to be stored * * @return None. * @@ -415,25 +421,25 @@ void Xil_DCacheStoreLine(INTPTR adr) mtcpsr(currmask); } -/**************************************************************************** -* -* Enable the instruction cache. +/****************************************************************************/ +/** +* @brief Enable the instruction cache. * * @param None. * * @return None. * -* @note None. -* ****************************************************************************/ void Xil_ICacheEnable(void) { register u32 CtrlReg; /* enable caches only if they are disabled */ - +#if defined (__GNUC__) CtrlReg = mfcp(XREG_CP15_SYS_CONTROL); - +#elif defined (__ICCARM__) + mfcp(XREG_CP15_SYS_CONTROL, CtrlReg); +#endif if ((CtrlReg & XREG_CP15_CONTROL_I_BIT)==0x00000000U) { /* invalidate the instruction cache */ mtcp(XREG_CP15_INVAL_IC_POU, 0); @@ -445,16 +451,14 @@ void Xil_ICacheEnable(void) } } -/**************************************************************************** -* -* Disable the instruction cache. +/****************************************************************************/ +/** +* @brief Disable the instruction cache. * * @param None. * * @return None. * -* @note None. -* ****************************************************************************/ void Xil_ICacheDisable(void) { @@ -466,24 +470,25 @@ void Xil_ICacheDisable(void) mtcp(XREG_CP15_INVAL_IC_POU, 0); /* disable the instruction cache */ - +#if defined (__GNUC__) CtrlReg = mfcp(XREG_CP15_SYS_CONTROL); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_SYS_CONTROL,CtrlReg); +#endif CtrlReg &= ~(XREG_CP15_CONTROL_I_BIT); mtcp(XREG_CP15_SYS_CONTROL, CtrlReg); } -/**************************************************************************** -* -* Invalidate the entire instruction cache. +/****************************************************************************/ +/** +* @brief Invalidate the entire instruction cache. * * @param None. * * @return None. * -* @note None. -* ****************************************************************************/ void Xil_ICacheInvalidate(void) { @@ -502,13 +507,13 @@ void Xil_ICacheInvalidate(void) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate an instruction cache line.If the instruction specified +* by the address is cached by the instruction cache, the +* cacheline containing that instruction is invalidated. * -* Invalidate an instruction cache line. If the instruction specified by the -* parameter adr is cached by the instruction cache, the cacheline containing -* that instruction is invalidated. -* -* @param None. +* @param adr: 32bit address of the instruction to be invalidated. * * @return None. * @@ -530,21 +535,20 @@ void Xil_ICacheInvalidateLine(INTPTR adr) mtcpsr(currmask); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Invalidate the instruction cache for the given address range. +* If the bytes specified by the address (adr) are cached by the +* Data cache, the cacheline containing that byte is invalidated. +* If the cachelineis modified (dirty), the modified contents are +* lost and are NOT written to system memory before the line is +* invalidated. * -* Invalidate the instruction cache for the given address range. -* If the bytes specified by the address (adr) are cached by the Data cache, -* the cacheline containing that byte is invalidated. If the cacheline -* is modified (dirty), the modified contents are lost and are NOT -* written to system memory before the line is invalidated. -* -* @param Start address of range to be invalidated. -* @param Length of range to be invalidated in bytes. +* @param adr: 32bit start address of the range to be invalidated. +* @param len: Length of the range to be invalidated in bytes. * * @return None. * -* @note None. -* ****************************************************************************/ void Xil_ICacheInvalidateRange(INTPTR adr, u32 len) { diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_cache.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_cache.h similarity index 77% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_cache.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_cache.h index 581db3f16..ad1d10a7c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_cache.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_cache.h @@ -34,14 +34,21 @@ * * @file xil_cache.h * -* Contains required functions for the ARM cache functionality +* @addtogroup r5_cache_apis Cortex R5 Processor Cache Functions * +* Cache functions provide access to cache related operations such as flush +* and invalidate for instruction and data caches. It gives option to perform +* the cache operations on a single cacheline, a range of memory and an entire +* cache. +* +* @{ *
       * MODIFICATION HISTORY:
       *
       * Ver   Who  Date     Changes
       * ----- ---- -------- -----------------------------------------------
       * 5.00 	pkp  02/20/14 First release
      +* 6.2   mus  01/27/17 Updated to support IAR compiler
       * 
      * ******************************************************************************/ @@ -54,6 +61,7 @@ extern "C" { #endif +#if defined (__GNUC__) #define asm_inval_dc_line_mva_poc(param) __asm__ __volatile__("mcr " \ XREG_CP15_INVAL_DC_LINE_MVA_POC :: "r" (param)) @@ -65,6 +73,19 @@ extern "C" { #define asm_inval_ic_line_mva_pou(param) __asm__ __volatile__("mcr " \ XREG_CP15_INVAL_IC_LINE_MVA_POU :: "r" (param)) +#elif defined (__ICCARM__) +#define asm_inval_dc_line_mva_poc(param) __asm volatile("mcr " \ + XREG_CP15_INVAL_DC_LINE_MVA_POC :: "r" (param)) + +#define asm_clean_inval_dc_line_sw(param) __asm volatile("mcr " \ + XREG_CP15_CLEAN_INVAL_DC_LINE_SW :: "r" (param)) + +#define asm_clean_inval_dc_line_mva_poc(param) __asm volatile("mcr " \ + XREG_CP15_CLEAN_INVAL_DC_LINE_MVA_POC :: "r" (param)) + +#define asm_inval_ic_line_mva_pou(param) __asm volatile("mcr " \ + XREG_CP15_INVAL_IC_LINE_MVA_POU :: "r" (param)) +#endif void Xil_DCacheEnable(void); void Xil_DCacheDisable(void); @@ -87,3 +108,6 @@ void Xil_ICacheInvalidateLine(INTPTR adr); #endif #endif +/** +* @} End of "addtogroup r5_cache_apis". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_cache_vxworks.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_cache_vxworks.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_cache_vxworks.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_cache_vxworks.h diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_exception.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_exception.c similarity index 63% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_exception.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_exception.c index 6171ea75d..4a2f2cfdf 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_exception.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_exception.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2015 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,7 +34,7 @@ * * @file xil_exception.c * -* This file contains low-level driver functions for the Cortex A9 exception +* This file contains low-level driver functions for the Cortex A53,A9,R5 exception * Handler. * *
      @@ -42,18 +42,12 @@
       *
       * Ver   Who      Date     Changes
       * ----- -------- -------- -----------------------------------------------
      -* 1.00a ecm/sdm  11/04/09 First release
      -* 3.05a sdm		 02/02/12 Updated to resiter a null handler only if a handler
      -*			  		      is not already registered
      -* 4.2   pkp		 06/19/14 Added default exception handlers for data abort and
      -*						  prefetch abort using handlers called
      -*						  DataAbortHandler and PrefetchAbortHandler respectively
      -*						  Both handlers are registers in vector table entries
      -*						  using XExc_VectorTable
      -* 5.1	pkp		 05/13/15 Added debugging message to print address of instruction
      -*						  causing data abort and prefetch abort
      -* 5.4	pkp		 12/03/15 Added handler for undefined exception to print the
      -*						  address of instruction causing exception
      +* 5.2	pkp  	 28/05/15 First release
      +* 6.0   mus      27/07/16 Consolidated exceptions for a53,a9 and r5
      +*                         processors and added Xil_UndefinedExceptionHandler
      +*                         for a53 32 bit and r5 as well.
      +* 6.4   mus      08/06/17 Updated debug prints to replace %x with the %lx, to
      +*                         fix the warnings.
       * 
      * *****************************************************************************/ @@ -82,6 +76,17 @@ static void Xil_ExceptionNullHandler(void *Data); /* * Exception vector table to store handlers for each exception vector. */ +#if defined (__aarch64__) +XExc_VectorTableEntry XExc_VectorTable[XIL_EXCEPTION_ID_LAST + 1] = +{ + {Xil_ExceptionNullHandler, NULL}, + {Xil_SyncAbortHandler, NULL}, + {Xil_ExceptionNullHandler, NULL}, + {Xil_ExceptionNullHandler, NULL}, + {Xil_SErrorAbortHandler, NULL}, + +}; +#else XExc_VectorTableEntry XExc_VectorTable[XIL_EXCEPTION_ID_LAST + 1] = { {Xil_ExceptionNullHandler, NULL}, @@ -92,11 +97,13 @@ XExc_VectorTableEntry XExc_VectorTable[XIL_EXCEPTION_ID_LAST + 1] = {Xil_ExceptionNullHandler, NULL}, {Xil_ExceptionNullHandler, NULL}, }; - -u32 UndefinedExceptionAddr; /* Address of instruction causing Undefined - exception */ +#endif +#if !defined (__aarch64__) u32 DataAbortAddr; /* Address of instruction causing data abort */ u32 PrefetchAbortAddr; /* Address of instruction causing prefetch abort */ +u32 UndefinedExceptionAddr; /* Address of instruction causing Undefined + exception */ +#endif /*****************************************************************************/ @@ -117,19 +124,19 @@ u32 PrefetchAbortAddr; /* Address of instruction causing prefetch abort */ *****************************************************************************/ static void Xil_ExceptionNullHandler(void *Data) { - (void *)Data; + (void) Data; DieLoop: goto DieLoop; } /****************************************************************************/ /** -* The function is a common API used to initialize exception handlers across all -* processors supported. For ARM CortexA9, the exception handlers are being -* initialized statically and hence this function does not do anything. -* However, it is still present to avoid any compilation issues in case an -* application uses this API and also to take care of backward compatibility -* issues (in earlier versions of BSPs, this API was being used to initialize -* exception handlers). +* @brief The function is a common API used to initialize exception handlers +* across all supported arm processors. For ARM Cortex-A53, Cortex-R5, +* and Cortex-A9, the exception handlers are being initialized +* statically and this function does not do anything. +* However, it is still present to take care of backward compatibility +* issues (in earlier versions of BSPs, this API was being used to +* initialize exception handlers). * * @param None. * @@ -145,18 +152,15 @@ void Xil_ExceptionInit(void) /*****************************************************************************/ /** -* -* Makes the connection between the Id of the exception source and the -* associated Handler that is to run when the exception is recognized. The -* argument provided in this call as the Data is used as the argument -* for the Handler when it is called. +* @brief Register a handler for a specific exception. This handler is being +* called when the processor encounters the specified exception. * * @param exception_id contains the ID of the exception source and should -* be in the range of 0 to XIL_EXCEPTION_ID_LAST. - See xil_exception_l.h for further information. +* be in the range of 0 to XIL_EXCEPTION_ID_LAST. +* See xil_exception.h for further information. * @param Handler to the Handler for that exception. * @param Data is a reference to Data that will be passed to the -* Handler when it gets called. +* Handler when it gets called. * * @return None. * @@ -174,13 +178,13 @@ void Xil_ExceptionRegisterHandler(u32 Exception_id, /*****************************************************************************/ /** * -* Removes the Handler for a specific exception Id. The stub Handler is then -* registered for this exception Id. +* @brief Removes the Handler for a specific exception Id. The stub Handler +* is then registered for this exception Id. * * @param exception_id contains the ID of the exception source and should -* be in the range of 0 to XIL_EXCEPTION_ID_LAST. -* See xil_exception_l.h for further information. - +* be in the range of 0 to XIL_EXCEPTION_ID_LAST. +* See xil_exception.h for further information. +* * @return None. * * @note None. @@ -193,10 +197,53 @@ void Xil_ExceptionRemoveHandler(u32 Exception_id) NULL); } +#if defined (__aarch64__) +/*****************************************************************************/ +/** +* +* Default Synchronous abort handler which prints a debug message on console if +* Debug flag is enabled +* +* @param None +* +* @return None. +* +* @note None. +* +****************************************************************************/ + +void Xil_SyncAbortHandler(void *CallBackRef){ + (void) CallBackRef; + xdbg_printf(XDBG_DEBUG_ERROR, "Synchronous abort \n"); + while(1) { + ; + } +} /*****************************************************************************/ /** * +* Default SError abort handler which prints a debug message on console if +* Debug flag is enabled +* +* @param None +* +* @return None. +* +* @note None. +* +****************************************************************************/ +void Xil_SErrorAbortHandler(void *CallBackRef){ + (void) CallBackRef; + xdbg_printf(XDBG_DEBUG_ERROR, "Synchronous abort \n"); + while(1) { + ; + } +} +#else +/*****************************************************************************/ +/* +* * Default Data abort handler which prints data fault status register through * which information about data fault can be acquired * @@ -209,24 +256,29 @@ void Xil_ExceptionRemoveHandler(u32 Exception_id) ****************************************************************************/ void Xil_DataAbortHandler(void *CallBackRef){ + (void) CallBackRef; +#ifdef DEBUG u32 FaultStatus; - #ifdef __GNUC__ - FaultStatus = mfcp(XREG_CP15_DATA_FAULT_STATUS); - #elif defined (__ICCARM__) - mfcp(XREG_CP15_DATA_FAULT_STATUS,FaultStatus); - #else - { volatile register u32 Reg __asm(XREG_CP15_DATA_FAULT_STATUS); - FaultStatus = Reg; } - #endif - xdbg_printf(XDBG_DEBUG_GENERAL, "Data abort with Data Fault Status Register %x\n",FaultStatus); - xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instrcution causing Data abort %x\n",DataAbortAddr); + + xdbg_printf(XDBG_DEBUG_ERROR, "Data abort \n"); + #ifdef __GNUC__ + FaultStatus = mfcp(XREG_CP15_DATA_FAULT_STATUS); + #elif defined (__ICCARM__) + mfcp(XREG_CP15_DATA_FAULT_STATUS,FaultStatus); + #else + { volatile register u32 Reg __asm(XREG_CP15_DATA_FAULT_STATUS); + FaultStatus = Reg; } + #endif + xdbg_printf(XDBG_DEBUG_GENERAL, "Data abort with Data Fault Status Register %lx\n",FaultStatus); + xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instruction causing Data abort %lx\n",DataAbortAddr); +#endif while(1) { ; } } /*****************************************************************************/ -/** +/* * * Default Prefetch abort handler which prints prefetch fault status register through * which information about instruction prefetch fault can be acquired @@ -239,24 +291,28 @@ void Xil_DataAbortHandler(void *CallBackRef){ * ****************************************************************************/ void Xil_PrefetchAbortHandler(void *CallBackRef){ + (void) CallBackRef; +#ifdef DEBUG u32 FaultStatus; - #ifdef __GNUC__ - FaultStatus = mfcp(XREG_CP15_INST_FAULT_STATUS); - #elif defined (__ICCARM__) - mfcp(XREG_CP15_INST_FAULT_STATUS,FaultStatus); - #else - { volatile register u32 Reg __asm(XREG_CP15_INST_FAULT_STATUS); - FaultStatus = Reg; } - #endif - xdbg_printf(XDBG_DEBUG_GENERAL, "Prefetch abort with Instruction Fault Status Register %x\n",FaultStatus); - xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instrcution causing Prefetch abort %x\n",PrefetchAbortAddr); + + xdbg_printf(XDBG_DEBUG_ERROR, "Prefetch abort \n"); + #ifdef __GNUC__ + FaultStatus = mfcp(XREG_CP15_INST_FAULT_STATUS); + #elif defined (__ICCARM__) + mfcp(XREG_CP15_INST_FAULT_STATUS,FaultStatus); + #else + { volatile register u32 Reg __asm(XREG_CP15_INST_FAULT_STATUS); + FaultStatus = Reg; } + #endif + xdbg_printf(XDBG_DEBUG_GENERAL, "Prefetch abort with Instruction Fault Status Register %lx\n",FaultStatus); + xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instruction causing Prefetch abort %lx\n",PrefetchAbortAddr); +#endif while(1) { ; } } - /*****************************************************************************/ -/** +/* * * Default undefined exception handler which prints address of the undefined * instruction if debug prints are enabled @@ -269,9 +325,10 @@ void Xil_PrefetchAbortHandler(void *CallBackRef){ * ****************************************************************************/ void Xil_UndefinedExceptionHandler(void *CallBackRef){ - - xdbg_printf(XDBG_DEBUG_GENERAL, "Address of the undefined instruction %x\n",UndefinedExceptionAddr); + (void) CallBackRef; + xdbg_printf(XDBG_DEBUG_GENERAL, "Address of the undefined instruction %lx\n",UndefinedExceptionAddr); while(1) { ; } -} \ No newline at end of file +} +#endif diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_exception.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_exception.h similarity index 80% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_exception.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_exception.h index db8641a25..ad4822205 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_exception.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_exception.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2015 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,16 +34,23 @@ * * @file xil_exception.h * -* This header file contains ARM Cortex A9 specific exception related APIs. +* This header file contains ARM Cortex A53,A9,R5 specific exception related APIs. * For exception related functions that can be used across all Xilinx supported * processors, please use xil_exception.h. * +* @addtogroup arm_exception_apis ARM Processor Exception Handling +* @{ +* ARM processors specific exception related APIs for cortex A53,A9 and R5 can +* utilized for enabling/disabling IRQ, registering/removing handler for +* exceptions or initializing exception vector table with null handler. +* *
       * MODIFICATION HISTORY:
       *
       * Ver   Who      Date     Changes
       * ----- -------- -------- -----------------------------------------------
      -* 1.00a ecm/sdm  11/04/09 First release
      +* 5.2	pkp  	 28/05/15 First release
      +* 6.0   mus      27/07/16 Consolidated file for a53,a9 and r5 processors
       * 
      * ******************************************************************************/ @@ -67,6 +74,13 @@ extern "C" { #define XIL_EXCEPTION_ALL (XREG_CPSR_FIQ_ENABLE | XREG_CPSR_IRQ_ENABLE) #define XIL_EXCEPTION_ID_FIRST 0U +#if defined (__aarch64__) +#define XIL_EXCEPTION_ID_SYNC_INT 1U +#define XIL_EXCEPTION_ID_IRQ_INT 2U +#define XIL_EXCEPTION_ID_FIQ_INT 3U +#define XIL_EXCEPTION_ID_SERROR_ABORT_INT 4U +#define XIL_EXCEPTION_ID_LAST 5U +#else #define XIL_EXCEPTION_ID_RESET 0U #define XIL_EXCEPTION_ID_UNDEFINED_INT 1U #define XIL_EXCEPTION_ID_SWI_INT 2U @@ -75,6 +89,7 @@ extern "C" { #define XIL_EXCEPTION_ID_IRQ_INT 5U #define XIL_EXCEPTION_ID_FIQ_INT 6U #define XIL_EXCEPTION_ID_LAST 6U +#endif /* * XIL_EXCEPTION_ID_INT is defined for all Xilinx processors. @@ -93,20 +108,17 @@ typedef void (*Xil_InterruptHandler)(void *data); /****************************************************************************/ /** -* Enable Exceptions. +* @brief Enable Exceptions. * -* @param Mask for exceptions to be enabled. +* @param Mask: Value for enabling the exceptions. * * @return None. * * @note If bit is 0, exception is enabled. -* C-Style signature: void Xil_ExceptionEnableMask(Mask) +* C-Style signature: void Xil_ExceptionEnableMask(Mask) * ******************************************************************************/ -#ifdef __GNUC__ -#define Xil_ExceptionEnableMask(Mask) \ - mtcpsr(mfcpsr() & ~ ((Mask) & XIL_EXCEPTION_ALL)) -#elif defined (__ICCARM__) +#if defined (__GNUC__) || defined (__ICCARM__) #define Xil_ExceptionEnableMask(Mask) \ mtcpsr(mfcpsr() & ~ ((Mask) & XIL_EXCEPTION_ALL)) #else @@ -116,10 +128,9 @@ typedef void (*Xil_InterruptHandler)(void *data); mtcpsr((Reg) & (~((Mask) & XIL_EXCEPTION_ALL))); \ } #endif - /****************************************************************************/ /** -* Enable the IRQ exception. +* @brief Enable the IRQ exception. * * @return None. * @@ -127,26 +138,23 @@ typedef void (*Xil_InterruptHandler)(void *data); * ******************************************************************************/ #define Xil_ExceptionEnable() \ - Xil_ExceptionEnableMask((u32)XIL_EXCEPTION_IRQ) + Xil_ExceptionEnableMask(XIL_EXCEPTION_IRQ) /****************************************************************************/ /** -* Disable Exceptions. +* @brief Disable Exceptions. * -* @param Mask for exceptions to be enabled. +* @param Mask: Value for disabling the exceptions. * * @return None. * * @note If bit is 1, exception is disabled. -* C-Style signature: Xil_ExceptionDisableMask(Mask) +* C-Style signature: Xil_ExceptionDisableMask(Mask) * ******************************************************************************/ -#ifdef __GNUC__ +#if defined (__GNUC__) || defined (__ICCARM__) #define Xil_ExceptionDisableMask(Mask) \ mtcpsr(mfcpsr() | ((Mask) & XIL_EXCEPTION_ALL)) -#elif defined (__ICCARM__) -#define Xil_ExceptionDisableMask(Mask) \ - mtcpsr(mfcpsr() | (Mask & XIL_EXCEPTION_ALL)) #else #define Xil_ExceptionDisableMask(Mask) \ { \ @@ -154,7 +162,6 @@ typedef void (*Xil_InterruptHandler)(void *data); mtcpsr((Reg) | ((Mask) & XIL_EXCEPTION_ALL)); \ } #endif - /****************************************************************************/ /** * Disable the IRQ exception. @@ -167,9 +174,11 @@ typedef void (*Xil_InterruptHandler)(void *data); #define Xil_ExceptionDisable() \ Xil_ExceptionDisableMask(XIL_EXCEPTION_IRQ) +#if !defined (__aarch64__) && !defined (ARMA53_32) /****************************************************************************/ /** -* Enable nested interrupts by clearing the I and F bits it CPSR +* @brief Enable nested interrupts by clearing the I and F bits in CPSR. This +* API is defined for cortex-a9 and cortex-r5. * * @return None. * @@ -187,6 +196,7 @@ typedef void (*Xil_InterruptHandler)(void *data); * eventual crash (all the stack space getting consumed). ******************************************************************************/ #define Xil_EnableNestedInterrupts() \ + __asm__ __volatile__ ("stmfd sp!, {lr}"); \ __asm__ __volatile__ ("mrs lr, spsr"); \ __asm__ __volatile__ ("stmfd sp!, {lr}"); \ __asm__ __volatile__ ("msr cpsr_c, #0x1F"); \ @@ -194,7 +204,8 @@ typedef void (*Xil_InterruptHandler)(void *data); /****************************************************************************/ /** -* Disable the nested interrupts by setting the I and F bits. +* @brief Disable the nested interrupts by setting the I and F bits. This API +* is defined for cortex-a9 and cortex-r5. * * @return None. * @@ -211,8 +222,10 @@ typedef void (*Xil_InterruptHandler)(void *data); __asm__ __volatile__ ("ldmfd sp!, {lr}"); \ __asm__ __volatile__ ("msr cpsr_c, #0x92"); \ __asm__ __volatile__ ("ldmfd sp!, {lr}"); \ - __asm__ __volatile__ ("msr spsr_cxsf, lr"); + __asm__ __volatile__ ("msr spsr_cxsf, lr"); \ + __asm__ __volatile__ ("ldmfd sp!, {lr}"); \ +#endif /************************** Variable Definitions ****************************/ /************************** Function Prototypes *****************************/ @@ -224,12 +237,20 @@ extern void Xil_ExceptionRegisterHandler(u32 Exception_id, extern void Xil_ExceptionRemoveHandler(u32 Exception_id); extern void Xil_ExceptionInit(void); +#if defined (__aarch64__) +void Xil_SyncAbortHandler(void *CallBackRef); +void Xil_SErrorAbortHandler(void *CallBackRef); +#else extern void Xil_DataAbortHandler(void *CallBackRef); extern void Xil_PrefetchAbortHandler(void *CallBackRef); extern void Xil_UndefinedExceptionHandler(void *CallBackRef); +#endif #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* XIL_EXCEPTION_H */ +/** +* @} End of "addtogroup arm_exception_apis". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_hal.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_hal.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_hal.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_hal.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_io.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_io.c new file mode 100644 index 000000000..90bfc81dc --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_io.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* +* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xil_io.c +* +* Contains I/O functions for memory-mapped or non-memory-mapped I/O +* architectures. +* +* @note +* +* This file contains architecture-dependent code. +* +*
      +* MODIFICATION HISTORY:
      +*
      +* Ver   Who      Date     Changes
      +* ----- -------- -------- -----------------------------------------------
      +* 5.00 	pkp  	 05/29/14 First release
      +* 
      +******************************************************************************/ + + +/***************************** Include Files *********************************/ +#include "xil_io.h" +#include "xil_types.h" +#include "xil_assert.h" + +/*****************************************************************************/ +/** +* +* @brief Perform a 16-bit endian converion. +* +* @param Data: 16 bit value to be converted +* +* @return 16 bit Data with converted endianess +* +******************************************************************************/ +u16 Xil_EndianSwap16(u16 Data) +{ + return (u16) (((Data & 0xFF00U) >> 8U) | ((Data & 0x00FFU) << 8U)); +} + +/*****************************************************************************/ +/** +* +* @brief Perform a 32-bit endian converion. +* +* @param Data: 32 bit value to be converted +* +* @return 32 bit data with converted endianess +* +******************************************************************************/ +u32 Xil_EndianSwap32(u32 Data) +{ + u16 LoWord; + u16 HiWord; + + /* get each of the half words from the 32 bit word */ + + LoWord = (u16) (Data & 0x0000FFFFU); + HiWord = (u16) ((Data & 0xFFFF0000U) >> 16U); + + /* byte swap each of the 16 bit half words */ + + LoWord = (((LoWord & 0xFF00U) >> 8U) | ((LoWord & 0x00FFU) << 8U)); + HiWord = (((HiWord & 0xFF00U) >> 8U) | ((HiWord & 0x00FFU) << 8U)); + + /* swap the half words before returning the value */ + + return ((((u32)LoWord) << (u32)16U) | (u32)HiWord); +} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_io.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_io.h new file mode 100644 index 000000000..9c5aa43c7 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_io.h @@ -0,0 +1,345 @@ +/****************************************************************************** +* +* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xil_io.h +* +* @addtogroup common_io_interfacing_apis Register IO interfacing APIs +* +* The xil_io.h file contains the interface for the general I/O component, which +* encapsulates the Input/Output functions for the processors that do not +* require any special I/O handling. +* +* @{ +*
      +* MODIFICATION HISTORY:
      +*
      +* Ver   Who      Date     Changes
      +* ----- -------- -------- -----------------------------------------------
      +* 5.00 	pkp  	 05/29/14 First release
      +* 6.00  mus      08/19/16 Remove checking of __LITTLE_ENDIAN__ flag for
      +*                         ARM processors
      +* 
      +******************************************************************************/ + +#ifndef XIL_IO_H /* prevent circular inclusions */ +#define XIL_IO_H /* by using protection macros */ + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************** Include Files *********************************/ + +#include "xil_types.h" +#include "xil_printf.h" + +#if defined (__MICROBLAZE__) +#include "mb_interface.h" +#else +#include "xpseudo_asm.h" +#endif + +/************************** Function Prototypes ******************************/ +u16 Xil_EndianSwap16(u16 Data); +u32 Xil_EndianSwap32(u32 Data); +#ifdef ENABLE_SAFETY +extern u32 XStl_RegUpdate(u32 RegAddr, u32 RegVal); +#endif + +/***************** Macros (Inline Functions) Definitions *********************/ +#if defined __GNUC__ +#if defined (__MICROBLAZE__) +# define INST_SYNC mbar(0) +# define DATA_SYNC mbar(1) +# else +# define SYNCHRONIZE_IO dmb() +# define INST_SYNC isb() +# define DATA_SYNC dsb() +# endif +#else +# define SYNCHRONIZE_IO +# define INST_SYNC +# define DATA_SYNC +# define INST_SYNC +# define DATA_SYNC +#endif + +#if defined (__GNUC__) || defined (__ICCARM__) || defined (__MICROBLAZE__) +#define INLINE inline +#else +#define INLINE __inline +#endif + +/*****************************************************************************/ +/** +* +* @brief Performs an input operation for a memory location by reading +* from the specified address and returning the 8 bit Value read from +* that address. +* +* @param Addr: contains the address to perform the input operation +* +* @return The 8 bit Value read from the specified input address. + +* +******************************************************************************/ +static INLINE u8 Xil_In8(UINTPTR Addr) +{ + return *(volatile u8 *) Addr; +} + +/*****************************************************************************/ +/** +* +* @brief Performs an input operation for a memory location by reading from +* the specified address and returning the 16 bit Value read from that +* address. +* +* @param Addr: contains the address to perform the input operation +* +* @return The 16 bit Value read from the specified input address. +* +******************************************************************************/ +static INLINE u16 Xil_In16(UINTPTR Addr) +{ + return *(volatile u16 *) Addr; +} + +/*****************************************************************************/ +/** +* +* @brief Performs an input operation for a memory location by +* reading from the specified address and returning the 32 bit Value +* read from that address. +* +* @param Addr: contains the address to perform the input operation +* +* @return The 32 bit Value read from the specified input address. +* +******************************************************************************/ +static INLINE u32 Xil_In32(UINTPTR Addr) +{ + return *(volatile u32 *) Addr; +} + +/*****************************************************************************/ +/** +* +* @brief Performs an input operation for a memory location by reading the +* 64 bit Value read from that address. +* +* +* @param Addr: contains the address to perform the input operation +* +* @return The 64 bit Value read from the specified input address. +* +******************************************************************************/ +static INLINE u64 Xil_In64(UINTPTR Addr) +{ + return *(volatile u64 *) Addr; +} + +/*****************************************************************************/ +/** +* +* @brief Performs an output operation for an memory location by +* writing the 8 bit Value to the the specified address. +* +* @param Addr: contains the address to perform the output operation +* @param Value: contains the 8 bit Value to be written at the specified +* address. +* +* @return None. +* +******************************************************************************/ +static INLINE void Xil_Out8(UINTPTR Addr, u8 Value) +{ + volatile u8 *LocalAddr = (volatile u8 *)Addr; + *LocalAddr = Value; +} + +/*****************************************************************************/ +/** +* +* @brief Performs an output operation for a memory location by writing the +* 16 bit Value to the the specified address. +* +* @param Addr contains the address to perform the output operation +* @param Value contains the Value to be written at the specified address. +* +* @return None. +* +******************************************************************************/ +static INLINE void Xil_Out16(UINTPTR Addr, u16 Value) +{ + volatile u16 *LocalAddr = (volatile u16 *)Addr; + *LocalAddr = Value; +} + +/*****************************************************************************/ +/** +* +* @brief Performs an output operation for a memory location by writing the +* 32 bit Value to the the specified address. +* +* @param Addr contains the address to perform the output operation +* @param Value contains the 32 bit Value to be written at the specified +* address. +* +* @return None. +* +******************************************************************************/ +static INLINE void Xil_Out32(UINTPTR Addr, u32 Value) +{ +#ifndef ENABLE_SAFETY + volatile u32 *LocalAddr = (volatile u32 *)Addr; + *LocalAddr = Value; +#else + XStl_RegUpdate(Addr, Value); +#endif +} + +/*****************************************************************************/ +/** +* +* @brief Performs an output operation for a memory location by writing the +* 64 bit Value to the the specified address. +* +* @param Addr contains the address to perform the output operation +* @param Value contains 64 bit Value to be written at the specified address. +* +* @return None. +* +******************************************************************************/ +static INLINE void Xil_Out64(UINTPTR Addr, u64 Value) +{ + volatile u64 *LocalAddr = (volatile u64 *)Addr; + *LocalAddr = Value; +} + +#if defined (__MICROBLAZE__) +#ifdef __LITTLE_ENDIAN__ +# define Xil_In16LE Xil_In16 +# define Xil_In32LE Xil_In32 +# define Xil_Out16LE Xil_Out16 +# define Xil_Out32LE Xil_Out32 +# define Xil_Htons Xil_EndianSwap16 +# define Xil_Htonl Xil_EndianSwap32 +# define Xil_Ntohs Xil_EndianSwap16 +# define Xil_Ntohl Xil_EndianSwap32 +# else +# define Xil_In16BE Xil_In16 +# define Xil_In32BE Xil_In32 +# define Xil_Out16BE Xil_Out16 +# define Xil_Out32BE Xil_Out32 +# define Xil_Htons(Data) (Data) +# define Xil_Htonl(Data) (Data) +# define Xil_Ntohs(Data) (Data) +# define Xil_Ntohl(Data) (Data) +#endif +#else +# define Xil_In16LE Xil_In16 +# define Xil_In32LE Xil_In32 +# define Xil_Out16LE Xil_Out16 +# define Xil_Out32LE Xil_Out32 +# define Xil_Htons Xil_EndianSwap16 +# define Xil_Htonl Xil_EndianSwap32 +# define Xil_Ntohs Xil_EndianSwap16 +# define Xil_Ntohl Xil_EndianSwap32 +#endif + +#if defined (__MICROBLAZE__) +#ifdef __LITTLE_ENDIAN__ +static INLINE u16 Xil_In16BE(UINTPTR Addr) +#else +static INLINE u16 Xil_In16LE(UINTPTR Addr) +#endif +#else +static INLINE u16 Xil_In16BE(UINTPTR Addr) +#endif +{ + u16 value = Xil_In16(Addr); + return Xil_EndianSwap16(value); +} + +#if defined (__MICROBLAZE__) +#ifdef __LITTLE_ENDIAN__ +static INLINE u32 Xil_In32BE(UINTPTR Addr) +#else +static INLINE u32 Xil_In32LE(UINTPTR Addr) +#endif +#else +static INLINE u32 Xil_In32BE(UINTPTR Addr) +#endif +{ + u32 value = Xil_In32(Addr); + return Xil_EndianSwap32(value); +} + +#if defined (__MICROBLAZE__) +#ifdef __LITTLE_ENDIAN__ +static INLINE void Xil_Out16BE(UINTPTR Addr, u16 Value) +#else +static INLINE void Xil_Out16LE(UINTPTR Addr, u16 Value) +#endif +#else +static INLINE void Xil_Out16BE(UINTPTR Addr, u16 Value) +#endif +{ + Value = Xil_EndianSwap16(Value); + Xil_Out16(Addr, Value); +} + +#if defined (__MICROBLAZE__) +#ifdef __LITTLE_ENDIAN__ +static INLINE void Xil_Out32BE(UINTPTR Addr, u32 Value) +#else +static INLINE void Xil_Out32LE(UINTPTR Addr, u32 Value) +#endif +#else +static INLINE void Xil_Out32BE(UINTPTR Addr, u32 Value) +#endif +{ + Value = Xil_EndianSwap32(Value); + Xil_Out32(Addr, Value); +} + +#ifdef __cplusplus +} +#endif + +#endif /* end of protection macro */ +/** +* @} End of "addtogroup common_io_interfacing_apis". +*/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_macroback.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_macroback.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_macroback.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_macroback.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mem.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mem.c new file mode 100644 index 000000000..0929a6878 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mem.c @@ -0,0 +1,83 @@ +/******************************************************************************/ +/** +* Copyright (C) 2015 - 2016 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* @file xil_mem.c +* +* This file contains xil mem copy function to use in case of word aligned +* data copies. +* +*
      +* MODIFICATION HISTORY:
      +*
      +* Ver   Who      Date     Changes
      +* ----- -------- -------- -----------------------------------------------
      +* 6.1   nsk      11/07/16 First release.
      +*
      +* 
      +* +*****************************************************************************/ + +/***************************** Include Files ********************************/ + +#include "xil_types.h" + +/***************** Inline Functions Definitions ********************/ +/*****************************************************************************/ +/** +* @brief This function copies memory from once location to other. +* +* @param dst: pointer pointing to destination memory +* +* @param src: pointer pointing to source memory +* +* @param cnt: 32 bit length of bytes to be copied +* +*****************************************************************************/ +void Xil_MemCpy(void* dst, const void* src, u32 cnt) +{ + char *d = (char*)(void *)dst; + const char *s = src; + + while (cnt >= sizeof (int)) { + *(int*)d = *(int*)s; + d += sizeof (int); + s += sizeof (int); + cnt -= sizeof (int); + } + while ((cnt) > 0U){ + *d = *s; + d += 1U; + s += 1U; + cnt -= 1U; + } +} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mem.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mem.h new file mode 100644 index 000000000..a2d5e6681 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mem.h @@ -0,0 +1,59 @@ +/******************************************************************************/ +/** +* Copyright (C) 2015 - 2016 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* @file xil_mem.h +* +* @addtogroup common_mem_operation_api Customized APIs for Memory Operations +* +* The xil_mem.h file contains prototype for functions related +* to memory operations. These APIs are applicable for all processors supported +* by Xilinx. +* +* @{ +*
      +* MODIFICATION HISTORY:
      +*
      +* Ver   Who      Date     Changes
      +* ----- -------- -------- -----------------------------------------------
      +* 6.1   nsk      11/07/16 First release.
      +*
      +* 
      +* +*****************************************************************************/ + +/************************** Function Prototypes *****************************/ + +void Xil_MemCpy(void* dst, const void* src, u32 cnt); +/** +* @} End of "addtogroup common_mem_operation_api". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mmu.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mmu.h similarity index 97% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mmu.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mmu.h index 8e43e8227..28a7c781d 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_mmu.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mmu.h @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mpu.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mpu.c new file mode 100644 index 000000000..7dd048fa6 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mpu.c @@ -0,0 +1,579 @@ +/****************************************************************************** +* +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* @file xil_mpu.c +* +* This file provides APIs for enabling/disabling MPU and setting the memory +* attributes for sections, in the MPU translation table. +* +*
      +* MODIFICATION HISTORY:
      +*
      +* Ver   Who  Date     Changes
      +* ----- ---- -------- ---------------------------------------------------
      +* 5.00  pkp  02/10/14 Initial version
      +* 6.2   mus  01/27/17 Updated to support IAR compiler
      +* 6.4   asa  08/16/17 Added many APIs for MPU access to make MPU usage
      +* 					  user-friendly. The APIs added are: Xil_UpdateMPUConfig,
      +* 					  Xil_GetMPUConfig, Xil_GetNumOfFreeRegions,
      +* 					  Xil_GetNextMPURegion, Xil_DisableMPURegionByRegNum,
      +* 					  Xil_GetMPUFreeRegMask, Xil_SetMPURegionByRegNum, and
      +* 					  Xil_InitializeExistingMPURegConfig.
      +* 					  Added a new array of structure of type XMpuConfig to
      +* 					  represent the MPU configuration table.
      +* 
      +* +* +******************************************************************************/ + +/***************************** Include Files *********************************/ + +#include "xil_cache.h" +#include "xpseudo_asm.h" +#include "xil_types.h" +#include "xil_mpu.h" +#include "xdebug.h" +#include "xstatus.h" +/***************** Macros (Inline Functions) Definitions *********************/ + +/**************************** Type Definitions *******************************/ + +/************************** Constant Definitions *****************************/ + +/************************** Variable Definitions *****************************/ + +static const struct { + u64 size; + unsigned int encoding; +}region_size[] = { + { 0x20, REGION_32B }, + { 0x40, REGION_64B }, + { 0x80, REGION_128B }, + { 0x100, REGION_256B }, + { 0x200, REGION_512B }, + { 0x400, REGION_1K }, + { 0x800, REGION_2K }, + { 0x1000, REGION_4K }, + { 0x2000, REGION_8K }, + { 0x4000, REGION_16K }, + { 0x8000, REGION_32K }, + { 0x10000, REGION_64K }, + { 0x20000, REGION_128K }, + { 0x40000, REGION_256K }, + { 0x80000, REGION_512K }, + { 0x100000, REGION_1M }, + { 0x200000, REGION_2M }, + { 0x400000, REGION_4M }, + { 0x800000, REGION_8M }, + { 0x1000000, REGION_16M }, + { 0x2000000, REGION_32M }, + { 0x4000000, REGION_64M }, + { 0x8000000, REGION_128M }, + { 0x10000000, REGION_256M }, + { 0x20000000, REGION_512M }, + { 0x40000000, REGION_1G }, + { 0x80000000, REGION_2G }, + { 0x100000000, REGION_4G }, +}; + +XMpu_Config Mpu_Config; + +/************************** Function Prototypes ******************************/ +void Xil_InitializeExistingMPURegConfig(void); +/*****************************************************************************/ +/** +* @brief This function sets the memory attributes for a section covering +* 1MB, of memory in the translation table. +* +* @param Addr: 32-bit address for which memory attributes need to be set. +* @param attrib: Attribute for the given memory region. +* @return None. +* +* +******************************************************************************/ +void Xil_SetTlbAttributes(INTPTR addr, u32 attrib) +{ + INTPTR Localaddr = addr; + Localaddr &= (~(0xFFFFFU)); + /* Setting the MPU region with given attribute with 1MB size */ + Xil_SetMPURegion(Localaddr, 0x100000, attrib); +} + +/*****************************************************************************/ +/** +* @brief Set the memory attributes for a section of memory in the +* translation table. +* +* @param Addr: 32-bit address for which memory attributes need to be set.. +* @param size: size is the size of the region. +* @param attrib: Attribute for the given memory region. +* @return None. +* +* +******************************************************************************/ +u32 Xil_SetMPURegion(INTPTR addr, u64 size, u32 attrib) +{ + u32 Regionsize = 0; + INTPTR Localaddr = addr; + u32 NextAvailableMemRegion; + unsigned int i; + + NextAvailableMemRegion = Xil_GetNextMPURegion(); + if (NextAvailableMemRegion == 0xFF) { + xdbg_printf(DEBUG, "No regions available\r\n"); + return XST_FAILURE; + } + + Xil_DCacheFlush(); + Xil_ICacheInvalidate(); + + mtcp(XREG_CP15_MPU_MEMORY_REG_NUMBER,NextAvailableMemRegion); + isb(); + + /* Lookup the size. */ + for (i = 0; i < sizeof region_size / sizeof region_size[0]; i++) { + if (size <= region_size[i].size) { + Regionsize = region_size[i].encoding; + break; + } + } + + Localaddr &= ~(region_size[i].size - 1); + + Regionsize <<= 1; + Regionsize |= REGION_EN; + dsb(); + mtcp(XREG_CP15_MPU_REG_BASEADDR, Localaddr); /* Set base address of a region */ + mtcp(XREG_CP15_MPU_REG_ACCESS_CTRL, attrib); /* Set the control attribute */ + mtcp(XREG_CP15_MPU_REG_SIZE_EN, Regionsize); /* set the region size and enable it*/ + dsb(); + isb(); + Xil_UpdateMPUConfig(NextAvailableMemRegion, Localaddr, Regionsize, attrib); + return XST_SUCCESS; +} +/*****************************************************************************/ +/** +* @brief Enable MPU for Cortex R5 processor. This function invalidates I +* cache and flush the D Caches, and then enables the MPU. +* +* +* @param None. +* @return None. +* +******************************************************************************/ +void Xil_EnableMPU(void) +{ + u32 CtrlReg, Reg; + s32 DCacheStatus=0, ICacheStatus=0; + /* enable caches only if they are disabled */ +#if defined (__GNUC__) + CtrlReg = mfcp(XREG_CP15_SYS_CONTROL); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_SYS_CONTROL,CtrlReg); +#endif + if ((CtrlReg & XREG_CP15_CONTROL_C_BIT) != 0x00000000U) { + DCacheStatus=1; + } + if ((CtrlReg & XREG_CP15_CONTROL_I_BIT) != 0x00000000U) { + ICacheStatus=1; + } + + if(DCacheStatus != 0) { + Xil_DCacheDisable(); + } + if(ICacheStatus != 0){ + Xil_ICacheDisable(); + } +#if defined (__GNUC__) + Reg = mfcp(XREG_CP15_SYS_CONTROL); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_SYS_CONTROL,Reg); +#endif + Reg |= 0x00000001U; + dsb(); + mtcp(XREG_CP15_SYS_CONTROL, Reg); + isb(); + /* enable caches only if they are disabled in routine*/ + if(DCacheStatus != 0) { + Xil_DCacheEnable(); + } + if(ICacheStatus != 0) { + Xil_ICacheEnable(); + } +} + +/*****************************************************************************/ +/** +* @brief Disable MPU for Cortex R5 processors. This function invalidates I +* cache and flush the D Caches, and then disabes the MPU. +* +* @param None. +* +* @return None. +* +******************************************************************************/ +void Xil_DisableMPU(void) +{ + u32 CtrlReg, Reg; + s32 DCacheStatus=0, ICacheStatus=0; + /* enable caches only if they are disabled */ + +#if defined (__GNUC__) + CtrlReg = mfcp(XREG_CP15_SYS_CONTROL); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_SYS_CONTROL,CtrlReg); +#endif + if ((CtrlReg & XREG_CP15_CONTROL_C_BIT) != 0x00000000U) { + DCacheStatus=1; + } + if ((CtrlReg & XREG_CP15_CONTROL_I_BIT) != 0x00000000U) { + ICacheStatus=1; + } + + if(DCacheStatus != 0) { + Xil_DCacheDisable(); + } + if(ICacheStatus != 0){ + Xil_ICacheDisable(); + } + + mtcp(XREG_CP15_INVAL_BRANCH_ARRAY, 0); +#if defined (__GNUC__) + Reg = mfcp(XREG_CP15_SYS_CONTROL); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_SYS_CONTROL,Reg); +#endif + Reg &= ~(0x00000001U); + dsb(); + mtcp(XREG_CP15_SYS_CONTROL, Reg); + isb(); + /* enable caches only if they are disabled in routine*/ + if(DCacheStatus != 0) { + Xil_DCacheEnable(); + } + if(ICacheStatus != 0) { + Xil_ICacheEnable(); + } +} + +/*****************************************************************************/ +/** +* @brief Update the MPU configuration for the requested region number in +* the global MPU configuration table. +* +* @param reg_num: The requested region number to be updated information for. +* @param address: 32 bit address for start of the region. +* @param size: Requested size of the region. +* @param attrib: Attribute for the corresponding region. +* @return XST_FAILURE: When the requested region number if 16 or more. +* XST_SUCCESS: When the MPU configuration table is updated. +* +* +******************************************************************************/ +u32 Xil_UpdateMPUConfig(u32 reg_num, INTPTR address, u32 size, u32 attrib) +{ + u32 ReturnVal = XST_SUCCESS; + u32 Tempsize = size; + u32 Index; + + if (reg_num >= MAX_POSSIBLE_MPU_REGS) { + xdbg_printf(DEBUG, "Invalid region number\r\n"); + ReturnVal = XST_FAILURE; + goto exit; + } + + if (size & REGION_EN) { + Mpu_Config[reg_num].RegionStatus = MPU_REG_ENABLED; + Mpu_Config[reg_num].BaseAddress = address; + Tempsize &= (~REGION_EN); + Tempsize >>= 1; + /* Lookup the size. */ + for (Index = 0; Index < + sizeof region_size / sizeof region_size[0]; Index++) { + if (Tempsize <= region_size[Index].encoding) { + Mpu_Config[reg_num].Size = region_size[Index].size; + break; + } + } + Mpu_Config[reg_num].Attribute = attrib; + } else { + Mpu_Config[reg_num].RegionStatus = 0U; + Mpu_Config[reg_num].BaseAddress = 0U; + Mpu_Config[reg_num].Size = 0U; + Mpu_Config[reg_num].Attribute = 0U; + } + +exit: + return ReturnVal; +} + +/*****************************************************************************/ +/** +* @brief The MPU configuration table is passed to the caller. +* +* @param mpuconfig: This is of type XMpu_Config which is an array of +* 16 entries of type structure representing the MPU config table +* @return none +* +* +******************************************************************************/ +void Xil_GetMPUConfig (XMpu_Config mpuconfig) { + u32 Index = 0U; + + while (Index < MAX_POSSIBLE_MPU_REGS) { + mpuconfig[Index].RegionStatus = Mpu_Config[Index].RegionStatus; + mpuconfig[Index].BaseAddress = Mpu_Config[Index].BaseAddress; + mpuconfig[Index].Attribute = Mpu_Config[Index].Attribute; + mpuconfig[Index].Size = Mpu_Config[Index].Size; + Index++; + } +} + +/*****************************************************************************/ +/** +* @brief Returns the total number of free MPU regions available. +* +* @param none +* @return Number of free regions available to users +* +* +******************************************************************************/ +u32 Xil_GetNumOfFreeRegions (void) { + u32 Index = 0U; + int NumofFreeRegs = 0U; + + while (Index < MAX_POSSIBLE_MPU_REGS) { + if (MPU_REG_DISABLED == Mpu_Config[Index].RegionStatus) { + NumofFreeRegs++; + } + Index++; + } + return NumofFreeRegs; +} + +/*****************************************************************************/ +/** +* @brief Returns the total number of free MPU regions available in the form +* of a mask. A bit of 1 in the returned 16 bit value represents the +* corresponding region number to be available. +* For example, if this function returns 0xC0000, this would mean, the +* regions 14 and 15 are available to users. +* +* @param none +* @return The free region mask as a 16 bit value +* +* +******************************************************************************/ +u16 Xil_GetMPUFreeRegMask (void) { + u32 Index = 0U; + u16 FreeRegMask = 0U; + + while (Index < MAX_POSSIBLE_MPU_REGS) { + if (MPU_REG_DISABLED == Mpu_Config[Index].RegionStatus) { + FreeRegMask |= (1U << Index); + } + Index++; + } + return FreeRegMask; +} + +/*****************************************************************************/ +/** +* @brief Disables the corresponding region number as passed by the user. +* +* @param reg_num: The region number to be disabled +* @return XST_SUCCESS: If the region could be disabled successfully +* XST_FAILURE: If the requested region number is 16 or more. +* +* +******************************************************************************/ +u32 Xil_DisableMPURegionByRegNum (u32 reg_num) { + u32 Temp = 0U; + u32 ReturnVal = XST_FAILURE; + + if (reg_num >= 16U) { + xdbg_printf(DEBUG, "Invalid region number\r\n"); + goto exit1; + } + Xil_DCacheFlush(); + Xil_ICacheInvalidate(); + + mtcp(XREG_CP15_MPU_MEMORY_REG_NUMBER,reg_num); +#if defined (__GNUC__) + Temp = mfcp(XREG_CP15_MPU_REG_SIZE_EN); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_MPU_REG_SIZE_EN,Temp); +#endif + Temp &= (~REGION_EN); + dsb(); + mtcp(XREG_CP15_MPU_REG_SIZE_EN,Temp); + dsb(); + isb(); + Xil_UpdateMPUConfig(reg_num, 0U, 0U, 0U); + ReturnVal = XST_SUCCESS; + +exit1: + return ReturnVal; +} + +/*****************************************************************************/ +/** +* @brief Enables the corresponding region number as passed by the user. +* +* @param reg_num: The region number to be enabled +* @param address: 32 bit address for start of the region. +* @param size: Requested size of the region. +* @param attrib: Attribute for the corresponding region. +* @return XST_SUCCESS: If the region could be created successfully +* XST_FAILURE: If the requested region number is 16 or more. +* +* +******************************************************************************/ +u32 Xil_SetMPURegionByRegNum (u32 reg_num, INTPTR addr, u64 size, u32 attrib) +{ + u32 ReturnVal = XST_SUCCESS; + INTPTR Localaddr = addr; + u32 Regionsize = 0; + u32 Index; + + if (reg_num >= 16U) { + xdbg_printf(DEBUG, "Invalid region number\r\n"); + ReturnVal = XST_FAILURE; + goto exit2; + } + + if (Mpu_Config[reg_num].RegionStatus == MPU_REG_ENABLED) { + xdbg_printf(DEBUG, "Region already enabled\r\n"); + ReturnVal = XST_FAILURE; + goto exit2; + } + + Xil_DCacheFlush(); + Xil_ICacheInvalidate(); + mtcp(XREG_CP15_MPU_MEMORY_REG_NUMBER,reg_num); + isb(); + + /* Lookup the size. */ + for (Index = 0; Index < + sizeof region_size / sizeof region_size[0]; Index++) { + if (size <= region_size[Index].size) { + Regionsize = region_size[Index].encoding; + break; + } + } + + Localaddr &= ~(region_size[Index].size - 1); + Regionsize <<= 1; + Regionsize |= REGION_EN; + dsb(); + mtcp(XREG_CP15_MPU_REG_BASEADDR, Localaddr); + mtcp(XREG_CP15_MPU_REG_ACCESS_CTRL, attrib); + mtcp(XREG_CP15_MPU_REG_SIZE_EN, Regionsize); + dsb(); + isb(); + Xil_UpdateMPUConfig(reg_num, Localaddr, Regionsize, attrib); +exit2: + return ReturnVal; + +} + +/*****************************************************************************/ +/** +* @brief Initializes the MPU configuration table that are setup in the +* R5 boot code in the Init_Mpu function called before C main. +* +* @param none +* @return none +* +* +******************************************************************************/ +void Xil_InitializeExistingMPURegConfig(void) +{ + u32 Index = 0U; + u32 Index1 = 0U; + u32 MPURegSize; + INTPTR MPURegBA; + u32 MPURegAttrib; + u32 Tempsize; + + while (Index < MAX_POSSIBLE_MPU_REGS) { + mtcp(XREG_CP15_MPU_MEMORY_REG_NUMBER,Index); +#if defined (__GNUC__) + MPURegSize = mfcp(XREG_CP15_MPU_REG_SIZE_EN); + MPURegBA = mfcp(XREG_CP15_MPU_REG_BASEADDR); + MPURegAttrib = mfcp(XREG_CP15_MPU_REG_ACCESS_CTRL); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_MPU_REG_SIZE_EN,MPURegSize); + mfcp(XREG_CP15_MPU_REG_BASEADDR, MPURegBA); + mfcp(XREG_CP15_MPU_REG_ACCESS_CTRL, MPURegAttrib); +#endif + if (MPURegSize & REGION_EN) { + Mpu_Config[Index].RegionStatus = MPU_REG_ENABLED; + Mpu_Config[Index].BaseAddress = MPURegBA; + Mpu_Config[Index].Attribute = MPURegAttrib; + Tempsize = MPURegSize & (~REGION_EN); + Tempsize >>= 1; + for (Index1 = 0; Index1 < + (sizeof (region_size) / sizeof (region_size[0])); Index1++) { + if (Tempsize <= region_size[Index1].encoding) { + Mpu_Config[Index].Size = region_size[Index1].size; + break; + } + } + } + Index++; + } +} + +/*****************************************************************************/ +/** +* @brief Returns the next available free MPU region +* +* @param none +* @return The free MPU region available +* +* +******************************************************************************/ +u32 Xil_GetNextMPURegion(void) +{ + u32 Index = 0U; + u32 NextAvailableReg = 0xFF; + while (Index < MAX_POSSIBLE_MPU_REGS) { + if (Mpu_Config[Index].RegionStatus != MPU_REG_ENABLED) { + NextAvailableReg = Index; + break; + } + Index++; + } + return NextAvailableReg; +} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mpu.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mpu.h new file mode 100644 index 000000000..95ffc66a7 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_mpu.h @@ -0,0 +1,134 @@ +/****************************************************************************** +* +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* @file xil_mmu.h +* +* @addtogroup r5_mpu_apis Cortex R5 Processor MPU specific APIs +* +* MPU functions provides access to MPU operations such as enable MPU, disable +* MPU and set attribute for section of memory. +* Boot code invokes Init_MPU function to configure the MPU. A total of 10 MPU +* regions are allocated with another 6 being free for users. Overview of the +* memory attributes for different MPU regions is as given below, +* +*| | Memory Range | Attributes of MPURegion | +*|-----------------------|-------------------------|-----------------------------| +*| DDR | 0x00000000 - 0x7FFFFFFF | Normal write-back Cacheable | +*| PL | 0x80000000 - 0xBFFFFFFF | Strongly Ordered | +*| QSPI | 0xC0000000 - 0xDFFFFFFF | Device Memory | +*| PCIe | 0xE0000000 - 0xEFFFFFFF | Device Memory | +*| STM_CORESIGHT | 0xF8000000 - 0xF8FFFFFF | Device Memory | +*| RPU_R5_GIC | 0xF9000000 - 0xF90FFFFF | Device memory | +*| FPS | 0xFD000000 - 0xFDFFFFFF | Device Memory | +*| LPS | 0xFE000000 - 0xFFFFFFFF | Device Memory | +*| OCM | 0xFFFC0000 - 0xFFFFFFFF | Normal write-back Cacheable | +* +* +* @note +* For a system where DDR is less than 2GB, region after DDR and before PL is +* marked as undefined in translation table. Memory range 0xFE000000-0xFEFFFFFF is +* allocated for upper LPS slaves, where as memory region 0xFF000000-0xFFFFFFFF is +* allocated for lower LPS slaves. +* +* @{ +*
      +* MODIFICATION HISTORY:
      +*
      +* Ver   Who  Date     Changes
      +* ----- ---- -------- ---------------------------------------------------
      +* 5.00  pkp  02/10/14 Initial version
      +* 6.4   asa  08/16/17 Added many APIs for MPU access to make MPU usage
      +* 					  user-friendly. The APIs added are: Xil_UpdateMPUConfig,
      +* 					  Xil_GetMPUConfig, Xil_GetNumOfFreeRegions,
      +* 					  Xil_GetNextMPURegion, Xil_DisableMPURegionByRegNum,
      +* 					  Xil_GetMPUFreeRegMask, Xil_SetMPURegionByRegNum, and
      +* 					  Xil_InitializeExistingMPURegConfig.
      +* 					  Added a new array of structure of type XMpuConfig to
      +* 					  represent the MPU configuration table.
      +* 
      +* + +* +* +******************************************************************************/ + +#ifndef XIL_MPU_H +#define XIL_MPU_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +#include "xil_types.h" +/***************************** Include Files *********************************/ + +/***************** Macros (Inline Functions) Definitions *********************/ +#define MPU_REG_DISABLED 0U +#define MPU_REG_ENABLED 1U +#define MAX_POSSIBLE_MPU_REGS 16U +/**************************** Type Definitions *******************************/ +struct XMpuConfig{ + u32 RegionStatus; /* Enabled or disabled */ + INTPTR BaseAddress;/* MPU region base address */ + u64 Size; /* MPU region size address */ + u32 Attribute; /* MPU region size attribute */ +}; + +typedef struct XMpuConfig XMpu_Config[MAX_POSSIBLE_MPU_REGS]; + +extern XMpu_Config Mpu_Config; +/************************** Constant Definitions *****************************/ + +/************************** Variable Definitions *****************************/ + +/************************** Function Prototypes ******************************/ + +void Xil_SetTlbAttributes(INTPTR Addr, u32 attrib); +void Xil_EnableMPU(void); +void Xil_DisableMPU(void); +u32 Xil_SetMPURegion(INTPTR addr, u64 size, u32 attrib); +u32 Xil_UpdateMPUConfig(u32 reg_num, INTPTR address, u32 size, u32 attrib); +void Xil_GetMPUConfig (XMpu_Config mpuconfig); +u32 Xil_GetNumOfFreeRegions (void); +u32 Xil_GetNextMPURegion(void); +u32 Xil_DisableMPURegionByRegNum (u32 reg_num); +u16 Xil_GetMPUFreeRegMask (void); +u32 Xil_SetMPURegionByRegNum (u32 reg_num, INTPTR addr, u64 size, u32 attrib); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* XIL_MPU_H */ +/** +* @} End of "addtogroup r5_mpu_apis". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_printf.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_printf.c similarity index 80% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_printf.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_printf.c index 0f0db4fc9..dc0897f0d 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_printf.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_printf.c @@ -75,8 +75,8 @@ static void outs(const charptr lp, struct params_s *par) (par->num2)--; #ifdef STDOUT_BASEADDRESS outbyte(*LocalPtr); - LocalPtr += 1; #endif + LocalPtr += 1; } /* Pad on right if needed */ @@ -93,7 +93,6 @@ static void outs(const charptr lp, struct params_s *par) static void outnum( const s32 n, const s32 base, struct params_s *par) { - charptr cp; s32 negative; s32 i; char8 outbuf[32]; @@ -136,12 +135,66 @@ static void outnum( const s32 n, const s32 base, struct params_s *par) while (&outbuf[i] >= outbuf) { #ifdef STDOUT_BASEADDRESS outbyte( outbuf[i] ); - i--; #endif + i--; } padding( par->left_flag, par); } +/*---------------------------------------------------*/ +/* */ +/* This routine moves a 64-bit number to the output */ +/* buffer as directed by the padding and positioning */ +/* flags. */ +/* */ +#if defined (__aarch64__) +static void outnum1( const s64 n, const s32 base, params_t *par) +{ + s32 negative; + s32 i; + char8 outbuf[64]; + const char8 digits[] = "0123456789ABCDEF"; + u64 num; + for(i = 0; i<64; i++) { + outbuf[i] = '0'; + } + /* Check if number is negative */ + if ((par->unsigned_flag == 0) && (base == 10) && (n < 0L)) { + negative = 1; + num =(-(n)); + } + else{ + num = (n); + negative = 0; + } + + /* Build number (backwards) in outbuf */ + i = 0; + do { + outbuf[i] = digits[(num % base)]; + i++; + num /= base; + } while (num > 0); + + if (negative != 0) { + outbuf[i] = '-'; + i++; + } + + outbuf[i] = 0; + i--; + + /* Move the converted number to the buffer and */ + /* add in the padding where needed. */ + par->len = (s32)strlen(outbuf); + padding( !(par->left_flag), par); + while (&outbuf[i] >= outbuf) { + outbyte( outbuf[i] ); + i--; +} + padding( par->left_flag, par); +} +#endif /*---------------------------------------------------*/ /* */ /* This routine gets a number from the format */ @@ -186,10 +239,17 @@ static s32 getnum( charptr* linep) /* void esp_printf( const func_ptr f_ptr, const charptr ctrl1, ...) */ +#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE +void xil_printf( const char8 *ctrl1, ...){ + XPVXenConsole_Printf(ctrl1); +} +#else void xil_printf( const char8 *ctrl1, ...) { s32 Check; +#if defined (__aarch64__) s32 long_flag; +#endif s32 dot_flag; params_t par; @@ -207,14 +267,16 @@ void xil_printf( const char8 *ctrl1, ...) if (*ctrl != '%') { #ifdef STDOUT_BASEADDRESS outbyte(*ctrl); - ctrl += 1; #endif + ctrl += 1; continue; } /* initialize all the flags for this format. */ dot_flag = 0; +#if defined (__aarch64__) long_flag = 0; +#endif par.unsigned_flag = 0; par.left_flag = 0; par.do_padding = 0; @@ -272,7 +334,9 @@ void xil_printf( const char8 *ctrl1, ...) break; case 'l': + #if defined (__aarch64__) long_flag = 1; + #endif Check = 0; break; @@ -281,19 +345,38 @@ void xil_printf( const char8 *ctrl1, ...) /* fall through */ case 'i': case 'd': - if ((long_flag != 0) || (ch == 'D')) { - outnum( va_arg(argp, s32), 10L, &par); + #if defined (__aarch64__) + if (long_flag != 0){ + outnum1((s64)va_arg(argp, s64), 10L, &par); } else { outnum( va_arg(argp, s32), 10L, &par); } + #else + outnum( va_arg(argp, s32), 10L, &par); + #endif Check = 1; break; case 'p': + #if defined (__aarch64__) + par.unsigned_flag = 1; + outnum1((s64)va_arg(argp, s64), 16L, &par); + Check = 1; + break; + #endif case 'X': case 'x': par.unsigned_flag = 1; + #if defined (__aarch64__) + if (long_flag != 0) { + outnum1((s64)va_arg(argp, s64), 16L, &par); + } + else { + outnum((s32)va_arg(argp, s32), 16L, &par); + } + #else outnum((s32)va_arg(argp, s32), 16L, &par); + #endif Check = 1; break; @@ -356,5 +439,5 @@ void xil_printf( const char8 *ctrl1, ...) } va_end( argp); } - +#endif /*---------------------------------------------------*/ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_printf.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_printf.h similarity index 91% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_printf.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_printf.h index 2be5c5734..016ae3b2f 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_printf.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_printf.h @@ -10,6 +10,10 @@ extern "C" { #include #include "xil_types.h" #include "xparameters.h" +#include "bspconfig.h" +#if HYP_GUEST && EL1_NONSECURE && XEN_USE_PV_CONSOLE +#include "xen_console.h" +#endif /*----------------------------------------------------*/ /* Use the following parameter passing structure to */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c new file mode 100644 index 000000000..972a310a8 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleepcommon.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +*@file xil_sleepcommon.c +* +* This file contains the sleep API's +* +*
      +* MODIFICATION HISTORY:
      +*
      +* Ver   Who      Date     Changes
      +* ----- -------- -------- -----------------------------------------------
      +* 6.6 	srm  	 11/02/17 First release
      +* 
      +******************************************************************************/ + + +/***************************** Include Files *********************************/ +#include "xil_io.h" +#include "sleep.h" + +/**************************** Constant Definitions *************************/ + + +/*****************************************************************************/ +/** +* +* This API gives delay in sec +* +* @param seconds - delay time in seconds +* +* @return none +* +* @note none +* +*****************************************************************************/ + void sleep(unsigned int seconds) + { +#if defined (ARMR5) + sleep_R5(seconds); +#elif defined (__aarch64__) || defined (ARMA53_32) + sleep_A53(seconds); +#elif defined (__MICROBLAZE__) + sleep_MB(seconds); +#else + sleep_A9(seconds); +#endif + + } + +/****************************************************************************/ +/** +* +* This API gives delay in usec +* +* @param useconds - delay time in useconds +* +* @return none +* +* @note none +* +*****************************************************************************/ + void usleep(unsigned long useconds) + { +#if defined (ARMR5) + usleep_R5(useconds); +#elif defined (__aarch64__) || defined (ARMA53_32) + usleep_A53(useconds); +#elif defined (__MICROBLAZE__) + usleep_MB(useconds); +#else + usleep_A9(useconds); +#endif + + } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c new file mode 100644 index 000000000..477260676 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleeptimer.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ + +/*****************************************************************************/ +/** +* +* @file xil_sleeptimer.c +* +* This file provides the common helper routines for the sleep API's +* +*
      +* MODIFICATION HISTORY :
      +*
      +* Ver   Who  Date	 Changes
      +* ----- ---- -------- -------------------------------------------------------
      +* 6.6	srm  10/18/17 First Release.
      +*
      +* 
      +*****************************************************************************/ + +/**************************** Include Files ********************************/ + +#include "xil_io.h" +#include "xil_sleeptimer.h" +#include "xtime_l.h" + +/**************************** Constant Definitions *************************/ + + +/* Function definitions are applicable only when TTC3 is present*/ +#if defined (SLEEP_TIMER_BASEADDR) +/****************************************************************************/ +/** +* +* This is a helper function used by sleep/usleep APIs to +* have delay in sec/usec +* +* @param delay - delay time in seconds/micro seconds +* +* @param frequency - Number of counts per second/micro second +* +* @return none +* +* @note none +* +*****************************************************************************/ +void Xil_SleepTTCCommon(u32 delay, u64 frequency) +{ + INTPTR tEnd = 0U; + INTPTR tCur = 0U; + XCntrVal TimeHighVal = 0U; + XCntrVal TimeLowVal1 = 0U; + XCntrVal TimeLowVal2 = 0U; + + TimeLowVal1 = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_COUNT_VALUE_OFFSET); + tEnd = (INTPTR)TimeLowVal1 + ((INTPTR)(delay) * frequency); + do + { + TimeLowVal2 = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_COUNT_VALUE_OFFSET); + if (TimeLowVal2 < TimeLowVal1) { + TimeHighVal++; + } + TimeLowVal1 = TimeLowVal2; + tCur = (((INTPTR) TimeHighVal) << XSLEEP_TIMER_REG_SHIFT) | + (INTPTR)TimeLowVal2; + }while (tCur < tEnd); +} + + +/*****************************************************************************/ +/** +* +* This API starts the Triple Timer Counter +* +* @param none +* +* @return none +* +* @note none +* +*****************************************************************************/ +void XTime_StartTTCTimer() +{ + u32 TimerPrescalar; + u32 TimerCntrl; + +#if (defined (__aarch64__) && EL3==1) || defined (ARMR5) || defined (ARMA53_32) + u32 LpdRst; + + LpdRst = XSleep_ReadCounterVal(RST_LPD_IOU2); + + /* check if the timer is reset */ + if (((LpdRst & (RST_LPD_IOU2_TTC_BASE_RESET_MASK << + XSLEEP_TTC_INSTANCE)) != 0 )) { + LpdRst = LpdRst & (~(RST_LPD_IOU2_TTC_BASE_RESET_MASK << + XSLEEP_TTC_INSTANCE)); + Xil_Out32(RST_LPD_IOU2, LpdRst); + } else { +#endif + TimerCntrl = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET); + /* check if Timer is disabled */ + if ((TimerCntrl & XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK) == 0) { + TimerPrescalar = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET); + /* check if Timer is configured with proper functionalty for sleep */ + if ((TimerPrescalar & XSLEEP_TIMER_TTC_CLK_CNTRL_PS_EN_MASK) == 0) + return; + } +#if (defined (__aarch64__) && EL3==1) || defined (ARMR5) || defined (ARMA53_32) + } +#endif + /* Disable the timer to configure */ + TimerCntrl = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET); + TimerCntrl = TimerCntrl | XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK; + Xil_Out32(SLEEP_TIMER_BASEADDR + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET, + TimerCntrl); + /* Disable the prescalar */ + TimerPrescalar = XSleep_ReadCounterVal(SLEEP_TIMER_BASEADDR + + XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET); + TimerPrescalar = TimerPrescalar & (~XSLEEP_TIMER_TTC_CLK_CNTRL_PS_EN_MASK); + Xil_Out32(SLEEP_TIMER_BASEADDR + XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET, + TimerPrescalar); + /* Enable the Timer */ + TimerCntrl = TimerCntrl & (~XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK); + Xil_Out32(SLEEP_TIMER_BASEADDR + XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET, + TimerCntrl); +} +#endif diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h new file mode 100644 index 000000000..4bfac0ac4 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_sleeptimer.h @@ -0,0 +1,116 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xil_sleeptimer.h +* +* This header file contains ARM Cortex A53,A9,R5 specific sleep related APIs. +* For sleep related functions that can be used across all Xilinx supported +* processors, please use xil_sleeptimer.h. +* +* +*
      +* MODIFICATION HISTORY :
      +*
      +* Ver   Who  Date	 Changes
      +* ----- ---- -------- -------------------------------------------------------
      +* 6.6	srm  10/18/17 First Release.
      +*
      +* 
      +*****************************************************************************/ + +#ifndef XIL_SLEEPTIMER_H /* prevent circular inclusions */ +#define XIL_SLEEPTIMER_H /* by using protection macros */ +/**************************** Include Files ********************************/ + +#include "xil_io.h" +#include "xparameters.h" +#include "bspconfig.h" + +/************************** Constant Definitions *****************************/ + +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#define XSLEEP_TIMER_REG_SHIFT 32U +#define XSleep_ReadCounterVal Xil_In32 +#define XCntrVal u32 +#else +#define XSLEEP_TIMER_REG_SHIFT 16U +#define XSleep_ReadCounterVal Xil_In16 +#define XCntrVal u16 +#endif + +#if defined(ARMR5) || (defined (__aarch64__) && EL3==1) || defined (ARMA53_32) +#define RST_LPD_IOU2 0xFF5E0238U +#define RST_LPD_IOU2_TTC_BASE_RESET_MASK 0x00000800U +#endif + +#if defined (SLEEP_TIMER_BASEADDR) +/** @name Register Map +* +* Register offsets from the base address of the TTC device +* +* @{ +*/ + #define XSLEEP_TIMER_TTC_CLK_CNTRL_OFFSET 0x00000000U + /**< Clock Control Register */ + #define XSLEEP_TIMER_TTC_CNT_CNTRL_OFFSET 0x0000000CU + /**< Counter Control Register*/ + #define XSLEEP_TIMER_TTC_COUNT_VALUE_OFFSET 0x00000018U + /**< Current Counter Value */ +/* @} */ +/** @name Clock Control Register +* Clock Control Register definitions of TTC +* @{ +*/ + #define XSLEEP_TIMER_TTC_CLK_CNTRL_PS_EN_MASK 0x00000001U + /**< Prescale enable */ +/* @} */ +/** @name Counter Control Register +* Counter Control Register definitions of TTC +* @{ +*/ +#define XSLEEP_TIMER_TTC_CNT_CNTRL_DIS_MASK 0x00000001U + /**< Disable the counter */ +#define XSLEEP_TIMER_TTC_CNT_CNTRL_RST_MASK 0x00000010U + /**< Reset counter */ +/* @} */ + +/**************************** Type Definitions *******************************/ + +/************************** Function Prototypes ******************************/ + +void Xil_SleepTTCCommon(u32 delay, u64 frequency); +void XTime_StartTTCTimer(); + +#endif +#endif /* XIL_SLEEPTIMER_H */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testcache.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testcache.c similarity index 83% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testcache.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testcache.c index a2c4b0bbf..157ad0836 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testcache.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testcache.c @@ -47,7 +47,6 @@ * * * @note -* * This file contain functions that all operate on HAL. * ******************************************************************************/ @@ -74,17 +73,21 @@ static INTPTR Data[DATA_LENGTH] __attribute__ ((aligned(64))); static INTPTR Data[DATA_LENGTH] __attribute__ ((aligned(32))); #endif + +/*****************************************************************************/ /** -* Perform DCache range related API test such as Xil_DCacheFlushRange and -* Xil_DCacheInvalidateRange. This test function writes a constant value -* to the Data array, flushes the range, writes a new value, then invalidates -* the corresponding range. +* +* @brief Perform DCache range related API test such as Xil_DCacheFlushRange +* and Xil_DCacheInvalidateRange. This test function writes a constant +* value to the Data array, flushes the range, writes a new value, then +* invalidates the corresponding range. +* @param None * * @return +* - -1 is returned for a failure +* - 0 is returned for a pass * -* - 0 is returned for a pass -* - -1 is returned for a failure -*/ +*****************************************************************************/ s32 Xil_TestDCacheRange(void) { s32 Index; @@ -204,16 +207,17 @@ s32 Xil_TestDCacheRange(void) } +/*****************************************************************************/ /** -* Perform DCache all related API test such as Xil_DCacheFlush and -* Xil_DCacheInvalidate. This test function writes a constant value -* to the Data array, flushes the DCache, writes a new value, then invalidates -* the DCache. +* @brief Perform DCache all related API test such as Xil_DCacheFlush and +* Xil_DCacheInvalidate. This test function writes a constant value +* to the Data array, flushes the DCache, writes a new value, +* then invalidates the DCache. * * @return -* - 0 is returned for a pass -* - -1 is returned for a failure -*/ +* - 0 is returned for a pass +* - -1 is returned for a failure +*****************************************************************************/ s32 Xil_TestDCacheAll(void) { s32 Index; @@ -328,15 +332,15 @@ s32 Xil_TestDCacheAll(void) return Status; } - +/*****************************************************************************/ /** -* Perform Xil_ICacheInvalidateRange() on a few function pointers. +* @brief Perform Xil_ICacheInvalidateRange() on a few function pointers. * * @return -* * - 0 is returned for a pass +* @note * The function will hang if it fails. -*/ +*****************************************************************************/ s32 Xil_TestICacheRange(void) { @@ -349,14 +353,15 @@ s32 Xil_TestICacheRange(void) return 0; } +/*****************************************************************************/ /** -* Perform Xil_ICacheInvalidate(). +* @brief Perform Xil_ICacheInvalidate() on a few function pointers. * * @return -* -* - 0 is returned for a pass -* The function will hang if it fails. -*/ +* - 0 is returned for a pass +* @note +* The function will hang if it fails. +*****************************************************************************/ s32 Xil_TestICacheAll(void) { Xil_ICacheInvalidate(); diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testcache.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testcache.h similarity index 92% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testcache.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testcache.h index b3c416cd0..c35e9a463 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testcache.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testcache.h @@ -34,11 +34,16 @@ * * @file xil_testcache.h * -* This file contains utility functions to test cache. +* @addtogroup common_test_utils +*

      Cache test

      +* The xil_testcache.h file contains utility functions to test cache. * +* @{ +*
       * Ver    Who    Date    Changes
       * ----- ---- -------- -----------------------------------------------
       * 1.00a hbm  07/29/09 First release
      +* 
      * ******************************************************************************/ @@ -61,3 +66,6 @@ extern s32 Xil_TestICacheAll(void); #endif #endif /* end of protection macro */ +/** +* @} End of "addtogroup common_test_utils". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testio.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testio.c similarity index 70% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testio.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testio.c index a68d7652f..e6a36807b 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xil_testio.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testio.c @@ -32,7 +32,7 @@ /*****************************************************************************/ /** * -* @file xil_testmemend.c +* @file xil_testio.c * * Contains the memory test utility functions. * @@ -95,18 +95,17 @@ static u32 Swap32(u32 Data) /*****************************************************************************/ /** * -* Perform a destructive 8-bit wide register IO test where the register is -* accessed using Xil_Out8 and Xil_In8, and comparing the reading and writing -* values. +* @brief Perform a destructive 8-bit wide register IO test where the +* register is accessed using Xil_Out8 and Xil_In8, and comparing +* the written values by reading them back. * -* @param Addr is a pointer to the region of memory to be tested. -* @param Length is the Length of the block. -* @param Value is the constant used for writting the memory. +* @param Addr: a pointer to the region of memory to be tested. +* @param Length: Length of the block. +* @param Value: constant used for writting the memory. * * @return -* -* - -1 is returned for a failure -* - 0 is returned for a pass +* - -1 is returned for a failure +* - 0 is returned for a pass * *****************************************************************************/ @@ -133,24 +132,24 @@ s32 Xil_TestIO8(u8 *Addr, s32 Length, u8 Value) /*****************************************************************************/ /** * -* Perform a destructive 16-bit wide register IO test. Each location is tested -* by sequentially writing a 16-bit wide register, reading the register, and -* comparing value. This function tests three kinds of register IO functions, -* normal register IO, little-endian register IO, and big-endian register IO. -* When testing little/big-endian IO, the function performs the following -* sequence, Xil_Out16LE/Xil_Out16BE, Xil_In16, Compare In-Out values, -* Xil_Out16, Xil_In16LE/Xil_In16BE, Compare In-Out values. Whether to swap the -* read-in value before comparing is controlled by the 5th argument. +* @brief Perform a destructive 16-bit wide register IO test. Each location +* is tested by sequentially writing a 16-bit wide register, reading +* the register, and comparing value. This function tests three kinds +* of register IO functions, normal register IO, little-endian register +* IO, and big-endian register IO. When testing little/big-endian IO, +* the function performs the following sequence, Xil_Out16LE/Xil_Out16BE, +* Xil_In16, Compare In-Out values, Xil_Out16, Xil_In16LE/Xil_In16BE, +* Compare In-Out values. Whether to swap the read-in value before +* comparing is controlled by the 5th argument. * -* @param Addr is a pointer to the region of memory to be tested. -* @param Length is the Length of the block. -* @param Value is the constant used for writting the memory. -* @param Kind is the test kind. Acceptable values are: -* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. -* @param Swap indicates whether to byte swap the read-in value. +* @param Addr: a pointer to the region of memory to be tested. +* @param Length: Length of the block. +* @param Value: constant used for writting the memory. +* @param Kind: Type of test. Acceptable values are: +* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. +* @param Swap: indicates whether to byte swap the read-in value. * * @return -* * - -1 is returned for a failure * - 0 is returned for a pass * @@ -219,26 +218,25 @@ s32 Xil_TestIO16(u16 *Addr, s32 Length, u16 Value, s32 Kind, s32 Swap) /*****************************************************************************/ /** * -* Perform a destructive 32-bit wide register IO test. Each location is tested -* by sequentially writing a 32-bit wide regsiter, reading the register, and -* comparing value. This function tests three kinds of register IO functions, -* normal register IO, little-endian register IO, and big-endian register IO. -* When testing little/big-endian IO, the function perform the following -* sequence, Xil_Out32LE/Xil_Out32BE, Xil_In32, Compare, -* Xil_Out32, Xil_In32LE/Xil_In32BE, Compare. Whether to swap the read-in value -* before comparing is controlled by the 5th argument. -* -* @param Addr is a pointer to the region of memory to be tested. -* @param Length is the Length of the block. -* @param Value is the constant used for writting the memory. -* @param Kind is the test kind. Acceptable values are: -* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. -* @param Swap indicates whether to byte swap the read-in value. +* @brief Perform a destructive 32-bit wide register IO test. Each location +* is tested by sequentially writing a 32-bit wide regsiter, reading +* the register, and comparing value. This function tests three kinds +* of register IO functions, normal register IO, little-endian register IO, +* and big-endian register IO. When testing little/big-endian IO, +* the function perform the following sequence, Xil_Out32LE/ +* Xil_Out32BE, Xil_In32, Compare, Xil_Out32, Xil_In32LE/Xil_In32BE, Compare. +* Whether to swap the read-in value *before comparing is controlled +* by the 5th argument. +* @param Addr: a pointer to the region of memory to be tested. +* @param Length: Length of the block. +* @param Value: constant used for writting the memory. +* @param Kind: type of test. Acceptable values are: +* XIL_TESTIO_DEFAULT, XIL_TESTIO_LE, XIL_TESTIO_BE. +* @param Swap: indicates whether to byte swap the read-in value. * * @return -* -* - -1 is returned for a failure -* - 0 is returned for a pass +* - -1 is returned for a failure +* - 0 is returned for a pass * *****************************************************************************/ s32 Xil_TestIO32(u32 *Addr, s32 Length, u32 Value, s32 Kind, s32 Swap) diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testio.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testio.h similarity index 93% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testio.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testio.h index fba0c1060..ad68ead64 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_testio.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testio.h @@ -32,19 +32,19 @@ /*****************************************************************************/ /** * -* @file xil_testmemend.h +* @file xil_testio.h * -* This file contains utility functions to teach endian related memory +* @addtogroup common_test_utils Test Utilities +*

      I/O test

      +* The xil_testio.h file contains utility functions to test endian related memory * IO functions. * -* Memory test description -* * A subset of the memory tests can be selected or all of the tests can be run * in order. If there is an error detected by a subtest, the test stops and the * failure code is returned. Further tests are not run even if all of the tests * are selected. * -* +* @{ *
       * MODIFICATION HISTORY:
       *
      @@ -89,3 +89,6 @@ extern s32 Xil_TestIO32(u32 *Addr, s32 Length, u32 Value, s32 Kind, s32 Swap);
       #endif
       
       #endif /* end of protection macro */
      +/**
      +* @} End of "addtogroup common_test_utils".
      +*/
      diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testmem.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testmem.c
      similarity index 92%
      rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testmem.c
      rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testmem.c
      index 19a3b6608..87426d17a 100644
      --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testmem.c
      +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testmem.c
      @@ -66,22 +66,20 @@ static u32 RotateRight(u32 Input, u8 Width);
       /*****************************************************************************/
       /**
       *
      -* Perform a destructive 32-bit wide memory test.
      +* @brief    Perform a destructive 32-bit wide memory test.
       *
      -* @param    Addr is a pointer to the region of memory to be tested.
      -* @param    Words is the length of the block.
      -* @param    Pattern is the constant used for the constant pattern test, if 0,
      +* @param    Addr: pointer to the region of memory to be tested.
      +* @param    Words: length of the block.
      +* @param    Pattern: constant used for the constant pattern test, if 0,
       *           0xDEADBEEF is used.
      -* @param    Subtest is the test selected. See xil_testmem.h for possible
      -*	    values.
      +* @param    Subtest: test type selected. See xil_testmem.h for possible
      +*	        values.
       *
       * @return
      -*
      -* - 0 is returned for a pass
      -* - -1 is returned for a failure
      +*           - 0 is returned for a pass
      +*           - 1 is returned for a failure
       *
       * @note
      -*
       * Used for spaces where the address range of the region is smaller than
       * the data width. If the memory range is greater than 2 ** Width,
       * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will
      @@ -315,22 +313,21 @@ End_Label:
       /*****************************************************************************/
       /**
       *
      -* Perform a destructive 16-bit wide memory test.
      +* @brief    Perform a destructive 16-bit wide memory test.
       *
      -* @param    Addr is a pointer to the region of memory to be tested.
      -* @param    Words is the length of the block.
      -* @param    Pattern is the constant used for the constant Pattern test, if 0,
      +* @param    Addr: pointer to the region of memory to be tested.
      +* @param    Words: length of the block.
      +* @param    Pattern: constant used for the constant Pattern test, if 0,
       *           0xDEADBEEF is used.
      -* @param    Subtest is the test selected. See xil_testmem.h for possible
      -*	    values.
      +* @param    Subtest: type of test selected. See xil_testmem.h for possible
      +*	        values.
       *
       * @return
       *
      -* - -1 is returned for a failure
      -* - 0 is returned for a pass
      +*           - -1 is returned for a failure
      +*           - 0 is returned for a pass
       *
       * @note
      -*
       * Used for spaces where the address range of the region is smaller than
       * the data width. If the memory range is greater than 2 ** Width,
       * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will
      @@ -549,22 +546,20 @@ End_Label:
       /*****************************************************************************/
       /**
       *
      -* Perform a destructive 8-bit wide memory test.
      +* @brief    Perform a destructive 8-bit wide memory test.
       *
      -* @param    Addr is a pointer to the region of memory to be tested.
      -* @param    Words is the length of the block.
      -* @param    Pattern is the constant used for the constant pattern test, if 0,
      +* @param    Addr: pointer to the region of memory to be tested.
      +* @param    Words: length of the block.
      +* @param    Pattern: constant used for the constant pattern test, if 0,
       *           0xDEADBEEF is used.
      -* @param    Subtest is the test selected. See xil_testmem.h for possible
      -*	    values.
      +* @param    Subtest: type of test selected. See xil_testmem.h for possible
      +*	        values.
       *
       * @return
      -*
      -* - -1 is returned for a failure
      -* - 0 is returned for a pass
      +*           - -1 is returned for a failure
      +*           - 0 is returned for a pass
       *
       * @note
      -*
       * Used for spaces where the address range of the region is smaller than
       * the data width. If the memory range is greater than 2 ** Width,
       * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will
      @@ -777,18 +772,14 @@ End_Label:
       /*****************************************************************************/
       /**
       *
      -* Rotates the provided value to the left one bit position
      +* @brief   Rotates the provided value to the left one bit position
       *
       * @param    Input is value to be rotated to the left
       * @param    Width is the number of bits in the input data
       *
       * @return
      +*           The resulting unsigned long value of the rotate left
       *
      -* The resulting unsigned long value of the rotate left
      -*
      -* @note
      -*
      -* None.
       *
       *****************************************************************************/
       static u32 RotateLeft(u32 Input, u8 Width)
      @@ -831,18 +822,13 @@ static u32 RotateLeft(u32 Input, u8 Width)
       /*****************************************************************************/
       /**
       *
      -* Rotates the provided value to the right one bit position
      +* @brief    Rotates the provided value to the right one bit position
       *
      -* @param    Input is value to be rotated to the right
      -* @param    Width is the number of bits in the input data
      +* @param    Input: value to be rotated to the right
      +* @param    Width: number of bits in the input data
       *
       * @return
      -*
      -* The resulting u32 value of the rotate right
      -*
      -* @note
      -*
      -* None.
      +*           The resulting u32 value of the rotate right
       *
       *****************************************************************************/
       static u32 RotateRight(u32 Input, u8 Width)
      diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testmem.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testmem.h
      similarity index 79%
      rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testmem.h
      rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testmem.h
      index 4cbfd878b..c20472822 100644
      --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xil_testmem.h
      +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_testmem.h
      @@ -33,64 +33,57 @@
       /**
       *
       * @file xil_testmem.h
      +* @addtogroup common_test_utils
       *
      -* This file contains utility functions to test memory.
      -*
      -* Memory test description
      +* 

      Memory test

      * +* The xil_testmem.h file contains utility functions to test memory. * A subset of the memory tests can be selected or all of the tests can be run * in order. If there is an error detected by a subtest, the test stops and the * failure code is returned. Further tests are not run even if all of the tests * are selected. +* Following list describes the supported memory tests: * -* Subtest descriptions: -*
      -* XIL_TESTMEM_ALLMEMTESTS:
      -*       Runs all of the following tests
      +*  - XIL_TESTMEM_ALLMEMTESTS: This test runs all of the subtests.
       *
      -* XIL_TESTMEM_INCREMENT:
      -*       Incrementing Value Test.
      -*       This test starts at 'XIL_TESTMEM_INIT_VALUE' and uses the
      -*	incrementing value as the test value for memory.
      +*  - XIL_TESTMEM_INCREMENT: This test
      +* starts at 'XIL_TESTMEM_INIT_VALUE' and uses the incrementing value as the
      +* test value for memory.
       *
      -* XIL_TESTMEM_WALKONES:
      -*       Walking Ones Test.
      -*       This test uses a walking '1' as the test value for memory.
      -*       location 1 = 0x00000001
      -*       location 2 = 0x00000002
      -*       ...
      +*  - XIL_TESTMEM_WALKONES: Also known as the Walking ones test. This test
      +* uses a walking '1' as the test value for memory.
      +* @code
      +*          location 1 = 0x00000001
      +*          location 2 = 0x00000002
      +*          ...
      +* @endcode
       *
      -* XIL_TESTMEM_WALKZEROS:
      -*       Walking Zero's Test.
      -*       This test uses the inverse value of the walking ones test
      -*       as the test value for memory.
      +*  - XIL_TESTMEM_WALKZEROS: Also known as the Walking zero's test.
      +* This test uses the inverse value of the walking ones test
      +* as the test value for memory.
      +* @code
       *       location 1 = 0xFFFFFFFE
       *       location 2 = 0xFFFFFFFD
       *       ...
      +*@endcode
       *
      -* XIL_TESTMEM_INVERSEADDR:
      -*       Inverse Address Test.
      -*       This test uses the inverse of the address of the location under test
      -*       as the test value for memory.
      +*  - XIL_TESTMEM_INVERSEADDR: Also known as the inverse address test.
      +* This test uses the inverse of the address of the location under test
      +* as the test value for memory.
       *
      -* XIL_TESTMEM_FIXEDPATTERN:
      -*       Fixed Pattern Test.
      -*       This test uses the provided patters as the test value for memory.
      -*       If zero is provided as the pattern the test uses '0xDEADBEEF".
      -* 
      -* -* WARNING +* - XIL_TESTMEM_FIXEDPATTERN: Also known as the fixed pattern test. +* This test uses the provided patters as the test value for memory. +* If zero is provided as the pattern the test uses '0xDEADBEEF". * +* @warning * The tests are DESTRUCTIVE. Run before any initialized memory spaces * have been set up. -* * The address provided to the memory tests is not checked for * validity except for the NULL case. It is possible to provide a code-space * pointer for this test to start with and ultimately destroy executable code * causing random failures. * * @note -* * Used for spaces where the address range of the region is smaller than * the data width. If the memory range is greater than 2 ** width, * the patterns used in XIL_TESTMEM_WALKONES and XIL_TESTMEM_WALKZEROS will @@ -160,3 +153,6 @@ extern s32 Xil_TestMem8(u8 *Addr, u32 Words, u8 Pattern, u8 Subtest); #endif #endif /* end of protection macro */ +/** +* @} End of "addtogroup common_test_utils". +*/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_types.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_types.h similarity index 76% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_types.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_types.h index e8b78b7c6..8143aff1e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xil_types.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xil_types.h @@ -34,9 +34,11 @@ * * @file xil_types.h * -* This file contains basic types for Xilinx software IP. - +* @addtogroup common_types Basic Data types for Xilinx® Software IP * +* The xil_types.h file contains basic types for Xilinx software IP. These data types +* are applicable for all processors supported by Xilinx. +* @{ *
       * MODIFICATION HISTORY:
       *
      @@ -71,22 +73,28 @@
       #define NULL		0U
       #endif
       
      -#define XIL_COMPONENT_IS_READY     0x11111111U  /**< component has been initialized */
      -#define XIL_COMPONENT_IS_STARTED   0x22222222U  /**< component has been started */
      +#define XIL_COMPONENT_IS_READY     0x11111111U  /**< In device drivers, This macro will be
      +                                                 assigend to "IsReady" member of driver
      +												 instance to indicate that driver
      +												 instance is initialized and ready to use. */
      +#define XIL_COMPONENT_IS_STARTED   0x22222222U  /**< In device drivers, This macro will be assigend to
      +                                                 "IsStarted" member of driver instance
      +												 to indicate that driver instance is
      +												 started and it can be enabled. */
       
      -/** @name New types
      +/* @name New types
        * New simple types.
        * @{
        */
       #ifndef __KERNEL__
       #ifndef XBASIC_TYPES_H
      -/**
      +/*
        * guarded against xbasic_types.h.
        */
       typedef uint8_t u8;
       typedef uint16_t u16;
       typedef uint32_t u32;
      -
      +/** @}*/
       #define __XUINT64__
       typedef struct
       {
      @@ -97,36 +105,32 @@ typedef struct
       
       /*****************************************************************************/
       /**
      -* Return the most significant half of the 64 bit data type.
      +* @brief    Return the most significant half of the 64 bit data type.
       *
       * @param    x is the 64 bit word.
       *
       * @return   The upper 32 bits of the 64 bit word.
       *
      -* @note     None.
      -*
       ******************************************************************************/
       #define XUINT64_MSW(x) ((x).Upper)
       
       /*****************************************************************************/
       /**
      -* Return the least significant half of the 64 bit data type.
      +* @brief    Return the least significant half of the 64 bit data type.
       *
       * @param    x is the 64 bit word.
       *
       * @return   The lower 32 bits of the 64 bit word.
       *
      -* @note     None.
      -*
       ******************************************************************************/
       #define XUINT64_LSW(x) ((x).Lower)
       
       #endif /* XBASIC_TYPES_H */
       
      -/**
      +/*
        * xbasic_types.h does not typedef s* or u64
        */
      -
      +/** @{ */
       typedef char char8;
       typedef int8_t s8;
       typedef int16_t s16;
      @@ -138,7 +142,7 @@ typedef int sint32;
       typedef intptr_t INTPTR;
       typedef uintptr_t UINTPTR;
       typedef ptrdiff_t PTRDIFF;
      -
      +/** @}*/
       #if !defined(LONG) || !defined(ULONG)
       typedef long LONG;
       typedef unsigned long ULONG;
      @@ -151,7 +155,7 @@ typedef unsigned long ULONG;
       #include 
       #endif
       
      -
      +/** @{ */
       /**
        * This data type defines an interrupt handler for a device.
        * The argument points to the instance of the component
      @@ -165,22 +169,24 @@ typedef void (*XInterruptHandler) (void *InstancePtr);
       typedef void (*XExceptionHandler) (void *InstancePtr);
       
       /**
      - * UPPER_32_BITS - return bits 32-63 of a number
      - * @n: the number we're accessing
      + * @brief  Returns 32-63 bits of a number.
      + * @param  n : Number being accessed.
      + * @return Bits 32-63 of number.
        *
      - * A basic shift-right of a 64- or 32-bit quantity.  Use this to suppress
      - * the "right shift count >= width of type" warning when that quantity is
      - * 32-bits.
      + * @note    A basic shift-right of a 64- or 32-bit quantity.
      + *          Use this to suppress the "right shift count >= width of type"
      + *          warning when that quantity is 32-bits.
        */
       #define UPPER_32_BITS(n) ((u32)(((n) >> 16) >> 16))
       
       /**
      - * LOWER_32_BITS - return bits 0-31 of a number
      - * @n: the number we're accessing
      + * @brief  Returns 0-31 bits of a number
      + * @param  n : Number being accessed.
      + * @return Bits 0-31 of number
        */
       #define LOWER_32_BITS(n) ((u32)(n))
       
      -/*@}*/
      +
       
       
       /************************** Constant Definitions *****************************/
      @@ -198,3 +204,6 @@ typedef void (*XExceptionHandler) (void *InstancePtr);
       #endif
       
       #endif	/* end of protection macro */
      +/**
      +* @} End of "addtogroup common_types".
      +*/
      diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xparameters_ps.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xparameters_ps.h
      similarity index 88%
      rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xparameters_ps.h
      rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xparameters_ps.h
      index 2f527c90a..260c4d563 100644
      --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xparameters_ps.h
      +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xparameters_ps.h
      @@ -1,6 +1,6 @@
       /******************************************************************************
       *
      -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
      +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved.
       *
       * Permission is hereby granted, free of charge, to any person obtaining a copy
       * of this software and associated documentation files (the "Software"), to deal
      @@ -33,9 +33,14 @@
       /**
       * @file xparameters_ps.h
       *
      -* This file contains the address definitions for the hard peripherals
      -* attached to the ARM Cortex R5 core.
      +* @addtogroup r5_peripheral_definitions Cortex R5 peripheral definitions
       *
      +* The xparameters_ps.h file contains the canonical definitions and constant
      +* declarations for peripherals within hardblock, attached to the ARM Cortex R5
      +* core. These definitions can be used by drivers or applications to access the
      +* peripherals.
      +*
      +* @{
       * 
       * MODIFICATION HISTORY:
       *
      @@ -45,10 +50,6 @@
       * 6.0   mus     08/18/16 Defined ARMR5 flag
       * 
      * -* @note -* -* None. -* ******************************************************************************/ #ifndef XPARAMETERS_PS_H_ @@ -62,6 +63,8 @@ extern "C" { #endif +/***************************** Include Files *********************************/ + /************************** Constant Definitions *****************************/ /* @@ -94,8 +97,9 @@ extern "C" { #define XPAR_XSDIOPS_0_INTR XPS_SDIO0_INT_ID #define XPAR_XQSPIPS_0_INTR XPS_QSPI_INT_ID #define XPAR_XSDIOPS_1_INTR XPS_SDIO1_INT_ID -#define XPAR_XWDTPS_0_INTR XPS_LPD_SWDT_INT_ID -#define XPAR_XWDTPS_1_INTR XPS_FPD_SWDT_INT_ID +#define XPAR_XWDTPS_0_INTR XPS_CSU_WDT_INT_ID +#define XPAR_XWDTPS_1_INTR XPS_LPD_SWDT_INT_ID +#define XPAR_XWDTPS_2_INTR XPS_FPD_SWDT_INT_ID #define XPAR_XDCFG_0_INTR XPS_DVC_INT_ID #define XPAR_XTTCPS_0_INTR XPS_TTC0_0_INT_ID #define XPAR_XTTCPS_1_INTR XPS_TTC0_1_INT_ID @@ -119,6 +123,15 @@ extern "C" { #define XPAR_XADMAPS_6_INTR XPS_ADMA_CH6_INT_ID #define XPAR_XADMAPS_7_INTR XPS_ADMA_CH7_INT_ID #define XPAR_XCSUDMA_INTR XPS_CSU_DMA_INT_ID +#define XPAR_PSU_ADMA_0_INTR XPS_ADMA_CH0_INT_ID +#define XPAR_PSU_ADMA_1_INTR XPS_ADMA_CH1_INT_ID +#define XPAR_PSU_ADMA_2_INTR XPS_ADMA_CH2_INT_ID +#define XPAR_PSU_ADMA_3_INTR XPS_ADMA_CH3_INT_ID +#define XPAR_PSU_ADMA_4_INTR XPS_ADMA_CH4_INT_ID +#define XPAR_PSU_ADMA_5_INTR XPS_ADMA_CH5_INT_ID +#define XPAR_PSU_ADMA_6_INTR XPS_ADMA_CH6_INT_ID +#define XPAR_PSU_ADMA_7_INTR XPS_ADMA_CH7_INT_ID +#define XPAR_PSU_CSUDMA_INTR XPS_CSU_DMA_INT_ID #define XPAR_XMPU_LPD_INTR XPS_XMPU_LPD_INT_ID #define XPAR_XZDMAPS_0_INTR XPS_ZDMA_CH0_INT_ID #define XPAR_XZDMAPS_1_INTR XPS_ZDMA_CH1_INT_ID @@ -128,6 +141,14 @@ extern "C" { #define XPAR_XZDMAPS_5_INTR XPS_ZDMA_CH5_INT_ID #define XPAR_XZDMAPS_6_INTR XPS_ZDMA_CH6_INT_ID #define XPAR_XZDMAPS_7_INTR XPS_ZDMA_CH7_INT_ID +#define XPAR_PSU_GDMA_0_INTR XPS_ZDMA_CH0_INT_ID +#define XPAR_PSU_GDMA_1_INTR XPS_ZDMA_CH1_INT_ID +#define XPAR_PSU_GDMA_2_INTR XPS_ZDMA_CH2_INT_ID +#define XPAR_PSU_GDMA_3_INTR XPS_ZDMA_CH3_INT_ID +#define XPAR_PSU_GDMA_4_INTR XPS_ZDMA_CH4_INT_ID +#define XPAR_PSU_GDMA_5_INTR XPS_ZDMA_CH5_INT_ID +#define XPAR_PSU_GDMA_6_INTR XPS_ZDMA_CH6_INT_ID +#define XPAR_PSU_GDMA_7_INTR XPS_ZDMA_CH7_INT_ID #define XPAR_XMPU_FPD_INTR XPS_XMPU_FPD_INT_ID #define XPAR_XCCI_FPD_INTR XPS_FPD_CCI_INT_ID #define XPAR_XSMMU_FPD_INTR XPS_FPD_SMMU_INT_ID @@ -194,6 +215,7 @@ extern "C" { #define XPS_RTC_ALARM_INT_ID (26U + 32U) #define XPS_RTC_SEC_INT_ID (27U + 32U) #define XPS_LPD_SWDT_INT_ID (52U + 32U) +#define XPS_CSU_WDT_INT_ID (53U + 32U) #define XPS_FPD_SWDT_INT_ID (113U + 32U) #define XPS_TTC0_0_INT_ID (36U + 32U) #define XPS_TTC0_1_INT_ID (37U + 32U) @@ -282,6 +304,7 @@ extern "C" { #define XPAR_PSU_TTC_9_INTR XPS_TTC3_0_INT_ID #define XPAR_PSU_TTC_10_INTR XPS_TTC3_1_INT_ID #define XPAR_PSU_TTC_11_INTR XPS_TTC3_2_INT_ID +#define XPAR_PSU_AMS_INTR XPS_AMS_INT_ID #define XPAR_XADCPS_NUM_INSTANCES 1U #define XPAR_XADCPS_0_DEVICE_ID 0U @@ -318,3 +341,6 @@ extern "C" { #endif #endif /* protection macro */ +/** +* @} End of "addtogroup r5_peripheral_definitions". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xplatform_info.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xplatform_info.c similarity index 72% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xplatform_info.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xplatform_info.c index fea992e40..2c08e5f2e 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xplatform_info.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xplatform_info.c @@ -44,6 +44,14 @@ * 5.00 pkp 12/15/14 Initial release * 5.04 pkp 01/12/16 Added platform information support for Cortex-A53 32bit * mode +* 6.00 mus 17/08/16 Removed unused variable from XGetPlatform_Info +* 6.4 ms 05/23/17 Added PSU_PMU macro to support XGetPSVersion_Info +* function for PMUFW. +* ms 06/13/17 Added PSU_PMU macro to provide support of +* XGetPlatform_Info function for PMUFW. +* mus 08/17/17 Add EL1 NS mode support for +* XGet_Zynq_UltraMp_Platform_info and XGetPSVersion_Info +* APIs. *
      * ******************************************************************************/ @@ -51,8 +59,12 @@ /***************************** Include Files *********************************/ #include "xil_types.h" +#include "xil_io.h" #include "xplatform_info.h" - +#if defined (__aarch64__) +#include "bspconfig.h" +#include "xil_smc.h" +#endif /************************** Constant Definitions *****************************/ /**************************** Type Definitions *******************************/ @@ -67,19 +79,17 @@ /*****************************************************************************/ /** * -* This API is used to provide information about platform +* @brief This API is used to provide information about platform * * @param None. * * @return The information about platform defined in xplatform_info.h * -* @note None. -* ******************************************************************************/ u32 XGetPlatform_Info() { - u32 reg; -#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) + +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) return XPLAT_ZYNQ_ULTRA_MP; #elif (__microblaze__) return XPLAT_MICROBLAZE; @@ -91,43 +101,61 @@ u32 XGetPlatform_Info() /*****************************************************************************/ /** * -* This API is used to provide information about zynq ultrascale MP platform +* @brief This API is used to provide information about zynq ultrascale MP platform * * @param None. * * @return The information about zynq ultrascale MP platform defined in * xplatform_info.h * -* @note None. -* ******************************************************************************/ #if defined (ARMR5) || (__aarch64__) || (ARMA53_32) u32 XGet_Zynq_UltraMp_Platform_info() { +#if EL1_NONSECURE + XSmc_OutVar reg; + /* + * This SMC call will return, + * idcode - upper 32 bits of reg.Arg0 + * version - lower 32 bits of reg.Arg1 + */ + reg = Xil_Smc(GET_CHIPID_SMC_FID,0,0, 0, 0, 0, 0, 0); + return (u32)((reg.Arg1 >> XPLAT_INFO_SHIFT) & XPLAT_INFO_MASK); +#else u32 reg; reg = ((Xil_In32(XPAR_CSU_BASEADDR + XPAR_CSU_VER_OFFSET) >> 12U )& XPLAT_INFO_MASK); return reg; +#endif } #endif /*****************************************************************************/ /** * -* This API is used to provide information about PS Silicon version +* @brief This API is used to provide information about PS Silicon version * * @param None. * * @return The information about PS Silicon version. * -* @note None. -* ******************************************************************************/ -#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) u32 XGetPSVersion_Info() { +#if EL1_NONSECURE + /* + * This SMC call will return, + * idcode - upper 32 bits of reg.Arg0 + * version - lower 32 bits of reg.Arg1 + */ + XSmc_OutVar reg; + reg = Xil_Smc(GET_CHIPID_SMC_FID,0,0, 0, 0, 0, 0, 0); + return (u32)(reg.Arg1 & XPS_VERSION_INFO_MASK); +#else u32 reg; reg = (Xil_In32(XPAR_CSU_BASEADDR + XPAR_CSU_VER_OFFSET) & XPS_VERSION_INFO_MASK); return reg; +#endif } #endif diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xplatform_info.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xplatform_info.h similarity index 80% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xplatform_info.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xplatform_info.h index 7028a83af..0582222bc 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/standalone_v6_1/src/xplatform_info.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xplatform_info.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,7 +34,21 @@ * * @file xplatform_info.h * -* This file contains definitions for various platforms available +* @addtogroup common_platform_info APIs to Get Platform Information +* +* The xplatform_info.h file contains definitions for various available Xilinx® +* platforms. Also, it contains prototype of APIs, which can be used to get the +* platform information. +* +* @{ +*
      +* MODIFICATION HISTORY:
      +*
      +* Ver   Who    Date    Changes
      +* ----- ---- --------- -------------------------------------------------------
      +* 6.4    ms   05/23/17 Added PSU_PMU macro to support XGetPSVersion_Info
      +*                      function for PMUFW.
      +* 
      * ******************************************************************************/ @@ -65,6 +79,7 @@ extern "C" { #define XPS_VERSION_2 0x1 #define XPLAT_INFO_MASK (0xF) +#define XPLAT_INFO_SHIFT (0xC) #define XPS_VERSION_INFO_MASK (0xF) /**************************** Type Definitions *******************************/ @@ -74,7 +89,7 @@ extern "C" { u32 XGetPlatform_Info(); -#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) +#if defined (ARMR5) || (__aarch64__) || (ARMA53_32) || (PSU_PMU) u32 XGetPSVersion_Info(); #endif @@ -89,3 +104,6 @@ u32 XGet_Zynq_UltraMp_Platform_info(); #endif #endif /* end of protection macro */ +/** +* @} End of "addtogroup common_platform_info". +*/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpm_counter.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpm_counter.c similarity index 87% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpm_counter.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpm_counter.c index 0851408cc..e5b231e25 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpm_counter.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpm_counter.c @@ -44,6 +44,7 @@ * Ver Who Date Changes * ----- ---- -------- ----------------------------------------------- * 5.00 pkp 02/10/14 Initial version +* 6.2 mus 01/27/17 Updated to support IAR compiler *
      * ******************************************************************************/ @@ -75,14 +76,12 @@ void Xpm_ResetEventCounters (void); /****************************************************************************/ /** * -* This function disables the Cortex R5 event counters. +* @brief This function disables the Cortex R5 event counters. * * @param None. * * @return None. * -* @note None. -* *****************************************************************************/ void Xpm_DisableEventCounters(void) { @@ -93,14 +92,12 @@ void Xpm_DisableEventCounters(void) /****************************************************************************/ /** * -* This function enables the Cortex R5 event counters. +* @brief This function enables the Cortex R5 event counters. * * @param None. * * @return None. * -* @note None. -* *****************************************************************************/ void Xpm_EnableEventCounters(void) { @@ -111,14 +108,12 @@ void Xpm_EnableEventCounters(void) /****************************************************************************/ /** * -* This function resets the Cortex R5 event counters. +* @brief This function resets the Cortex R5 event counters. * * @param None. * * @return None. * -* @note None. -* *****************************************************************************/ void Xpm_ResetEventCounters(void) { @@ -126,6 +121,8 @@ void Xpm_ResetEventCounters(void) #ifdef __GNUC__ Reg = mfcp(XREG_CP15_PERF_MONITOR_CTRL); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_PERF_MONITOR_CTRL, Reg); #else { register u32 C15Reg __asm(XREG_CP15_PERF_MONITOR_CTRL); Reg = C15Reg; } @@ -137,17 +134,16 @@ void Xpm_ResetEventCounters(void) /****************************************************************************/ /** * -* This function configures the Cortex R5 event counters controller, with the -* event codes, in a configuration selected by the user and enables the counters. +* @brief This function configures the Cortex R5 event counters controller, +* with the event codes, in a configuration selected by the user and +* enables the counters. * -* @param PmcrCfg is configuration value based on which the event counters -* are configured. -* Use XPM_CNTRCFG* values defined in xpm_counter.h. +* @param PmcrCfg: Configuration value based on which the event counters +* are configured.XPM_CNTRCFG* values defined in xpm_counter.h can +* be utilized for setting configuration * * @return None. * -* @note None. -* *****************************************************************************/ void Xpm_SetEvents(s32 PmcrCfg) { @@ -262,16 +258,15 @@ void Xpm_SetEvents(s32 PmcrCfg) /****************************************************************************/ /** * -* This function disables the event counters and returns the counter values. +* @brief This function disables the event counters and returns the counter +* values. * -* @param PmCtrValue is a pointer to an array of type u32 PmCtrValue[6]. -* It is an output parameter which is used to return the PM -* counter values. +* @param PmCtrValue: Pointer to an array of type u32 PmCtrValue[6]. +* It is an output parameter which is used to return the PM +* counter values. * * @return None. * -* @note None. -* *****************************************************************************/ void Xpm_GetEventCounters(u32 *PmCtrValue) { @@ -284,6 +279,8 @@ void Xpm_GetEventCounters(u32 *PmCtrValue) mtcp(XREG_CP15_EVENT_CNTR_SEL, Counter); #ifdef __GNUC__ PmCtrValue[Counter] = mfcp(XREG_CP15_PERF_MONITOR_COUNT); +#elif defined (__ICCARM__) + mfcp(XREG_CP15_PERF_MONITOR_COUNT, PmCtrValue[Counter]); #else { register u32 Cp15Reg __asm(XREG_CP15_PERF_MONITOR_COUNT); PmCtrValue[Counter] = Cp15Reg; } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpm_counter.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpm_counter.h similarity index 97% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpm_counter.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpm_counter.h index 5679d4bb5..b24f4ae40 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpm_counter.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpm_counter.h @@ -34,21 +34,20 @@ * * @file xpm_counter.h * -* This header file contains APIs for configuring and controlling the Cortex-R5 -* Performance Monitor Events. -* Cortex-R5 Performance Monitor has 6 event counters which can be used to -* count a variety of events described in Coretx-R5 TRM. This file defines -* configurations, where value configures the event counters to count a -* set of events. +* @addtogroup r5_event_counter_apis Cortex R5 Event Counters Functions * -* Xpm_SetEvents can be used to set the event counters to count a set of events -* and Xpm_GetEventCounters can be used to read the counter values. +* Cortex R5 event counter functions can be utilized to configure and control +* the Cortex-R5 performance monitor events. +* Cortex-R5 Performance Monitor has 6 event counters which can be used to +* count a variety of events described in Coretx-R5 TRM. The xpm_counter.h file +* defines configurations XPM_CNTRCFGx which can be used to program the event +* counters to count a set of events. * * @note -* -* This file doesn't handle the Cortex-R5 cycle counter, as the cycle counter is +* It doesn't handle the Cortex-R5 cycle counter, as the cycle counter is * being used for time keeping. * +* @{ *
       * MODIFICATION HISTORY:
       *
      @@ -569,3 +568,6 @@ void Xpm_GetEventCounters(u32 *PmCtrValue);
       #endif
       
       #endif
      +/**
      +* @} End of "addtogroup r5_event_counter_apis".
      +*/
      \ No newline at end of file
      diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpseudo_asm.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpseudo_asm.h
      similarity index 71%
      rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpseudo_asm.h
      rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpseudo_asm.h
      index aff19d5a9..4d587af3a 100644
      --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xpseudo_asm.h
      +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpseudo_asm.h
      @@ -34,14 +34,28 @@
       *
       * @file xpseudo_asm.h
       *
      -* This header file contains macros for using inline assembler code.
      +* @addtogroup r5_specific Cortex R5 Processor Specific Include Files
       *
      +* The xpseudo_asm.h includes xreg_cortexr5.h and xpseudo_asm_gcc.h.
      +*
      +* The xreg_cortexr5.h file contains definitions for inline assembler code.
      +* It provides inline definitions for Cortex R5 GPRs, SPRs,co-processor
      +* registers and Debug register
      +*
      +* The xpseudo_asm_gcc.h contains the definitions for the most often used
      +* inline assembler instructions, available as macros. These can be very
      +* useful for tasks such as setting or getting special purpose registers,
      +* synchronization,or cache manipulation. These inline assembler instructions
      +* can be used from drivers and user applications written in C.
      +*
      +* @{
       * 
       * MODIFICATION HISTORY:
       *
       * Ver   Who  Date     Changes
       * ----- ---- -------- -----------------------------------------------
       * 5.00  pkp  02/10/14 Initial version
      +* 6.2   mus  01/27/17 Updated to support IAR compiler
       * 
      * ******************************************************************************/ @@ -49,6 +63,12 @@ #define XPSEUDO_ASM_H /* by using protection macros */ #include "xreg_cortexr5.h" +#if defined (__GNUC__) #include "xpseudo_asm_gcc.h" - +#elif defined (__ICCARM__) +#include "xpseudo_asm_iccarm.h" +#endif #endif /* XPSEUDO_ASM_H */ +/** +* @} End of "addtogroup r5_specific". +*/ \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpseudo_asm_gcc.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpseudo_asm_gcc.h similarity index 70% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpseudo_asm_gcc.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpseudo_asm_gcc.h index 9b34a008e..1b6726394 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/standalone_v5_4/src/xpseudo_asm_gcc.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xpseudo_asm_gcc.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2009 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -42,7 +42,8 @@ * * Ver Who Date Changes * ----- -------- -------- ----------------------------------------------- -* 1.00a ecm/sdm 10/28/09 First release +* 5.00 pkp 05/21/14 First release +* 6.0 mus 07/27/16 Consolidated file for a53,a9 and r5 processors *
      * ******************************************************************************/ @@ -53,6 +54,7 @@ /***************************** Include Files ********************************/ #include "xil_types.h" + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ @@ -67,8 +69,61 @@ extern "C" { #define stringify(s) tostring(s) #define tostring(s) #s +#if defined (__aarch64__) /* pseudo assembler instructions */ -#define mfcpsr() ({u32 rval; \ +#define mfcpsr() ({u32 rval = 0U; \ + asm volatile("mrs %0, DAIF" : "=r" (rval));\ + rval;\ + }) + +#define mtcpsr(v) __asm__ __volatile__ ("msr DAIF, %0" : : "r" (v)) + +#define cpsiei() //__asm__ __volatile__("cpsie i\n") +#define cpsidi() //__asm__ __volatile__("cpsid i\n") + +#define cpsief() //__asm__ __volatile__("cpsie f\n") +#define cpsidf() //__asm__ __volatile__("cpsid f\n") + + + +#define mtgpr(rn, v) /*__asm__ __volatile__(\ + "mov r" stringify(rn) ", %0 \n"\ + : : "r" (v)\ + )*/ + +#define mfgpr(rn) /*({u32 rval; \ + __asm__ __volatile__(\ + "mov %0,r" stringify(rn) "\n"\ + : "=r" (rval)\ + );\ + rval;\ + })*/ + +/* memory synchronization operations */ + +/* Instruction Synchronization Barrier */ +#define isb() __asm__ __volatile__ ("isb sy") + +/* Data Synchronization Barrier */ +#define dsb() __asm__ __volatile__("dsb sy") + +/* Data Memory Barrier */ +#define dmb() __asm__ __volatile__("dmb sy") + + +/* Memory Operations */ +#define ldr(adr) ({u64 rval; \ + __asm__ __volatile__(\ + "ldr %0,[%1]"\ + : "=r" (rval) : "r" (adr)\ + );\ + rval;\ + }) + +#else + +/* pseudo assembler instructions */ +#define mfcpsr() ({u32 rval = 0U; \ __asm__ __volatile__(\ "mrs %0, cpsr\n"\ : "=r" (rval)\ @@ -123,6 +178,8 @@ extern "C" { rval;\ }) +#endif + #define ldrb(adr) ({u8 rval; \ __asm__ __volatile__(\ "ldrb %0,[%1]"\ @@ -150,19 +207,36 @@ extern "C" { rval;\ }) +#if defined (__aarch64__) +#define mtcpdc(reg,val) __asm__ __volatile__("dc " #reg ",%0" : : "r" (val)) +#define mtcpic(reg,val) __asm__ __volatile__("ic " #reg ",%0" : : "r" (val)) + +#define mtcpicall(reg) __asm__ __volatile__("ic " #reg) +#define mtcptlbi(reg) __asm__ __volatile__("tlbi " #reg) +#define mtcpat(reg,val) __asm__ __volatile__("at " #reg ",%0" : : "r" (val)) +/* CP15 operations */ +#define mfcp(reg) ({u64 rval = 0U;\ + __asm__ __volatile__("mrs %0, " #reg : "=r" (rval));\ + rval;\ + }) + +#define mtcp(reg,val) __asm__ __volatile__("msr " #reg ",%0" : : "r" (val)) + +#else /* CP15 operations */ #define mtcp(rn, v) __asm__ __volatile__(\ "mcr " rn "\n"\ : : "r" (v)\ ); -#define mfcp(rn) ({u32 rval; \ +#define mfcp(rn) ({u32 rval = 0U; \ __asm__ __volatile__(\ "mrc " rn "\n"\ : "=r" (rval)\ );\ rval;\ }) +#endif /************************** Variable Definitions ****************************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xreg_cortexr5.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xreg_cortexr5.h similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xreg_cortexr5.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xreg_cortexr5.h diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xstatus.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xstatus.h new file mode 100644 index 000000000..993747588 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xstatus.h @@ -0,0 +1,535 @@ +/****************************************************************************** +* +* Copyright (C) 2002 - 2015 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xstatus.h +* +* @addtogroup common_status_codes Xilinx® software status codes +* +* The xstatus.h file contains the Xilinx® software status codes.These codes are +* used throughout the Xilinx device drivers. +* +* @{ +******************************************************************************/ + +#ifndef XSTATUS_H /* prevent circular inclusions */ +#define XSTATUS_H /* by using protection macros */ + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************** Include Files *********************************/ + +#include "xil_types.h" +#include "xil_assert.h" + +/************************** Constant Definitions *****************************/ + +/*********************** Common statuses 0 - 500 *****************************/ +/** +@name Common Status Codes for All Device Drivers +@{ +*/ +#define XST_SUCCESS 0L +#define XST_FAILURE 1L +#define XST_DEVICE_NOT_FOUND 2L +#define XST_DEVICE_BLOCK_NOT_FOUND 3L +#define XST_INVALID_VERSION 4L +#define XST_DEVICE_IS_STARTED 5L +#define XST_DEVICE_IS_STOPPED 6L +#define XST_FIFO_ERROR 7L /*!< An error occurred during an + operation with a FIFO such as + an underrun or overrun, this + error requires the device to + be reset */ +#define XST_RESET_ERROR 8L /*!< An error occurred which requires + the device to be reset */ +#define XST_DMA_ERROR 9L /*!< A DMA error occurred, this error + typically requires the device + using the DMA to be reset */ +#define XST_NOT_POLLED 10L /*!< The device is not configured for + polled mode operation */ +#define XST_FIFO_NO_ROOM 11L /*!< A FIFO did not have room to put + the specified data into */ +#define XST_BUFFER_TOO_SMALL 12L /*!< The buffer is not large enough + to hold the expected data */ +#define XST_NO_DATA 13L /*!< There was no data available */ +#define XST_REGISTER_ERROR 14L /*!< A register did not contain the + expected value */ +#define XST_INVALID_PARAM 15L /*!< An invalid parameter was passed + into the function */ +#define XST_NOT_SGDMA 16L /*!< The device is not configured for + scatter-gather DMA operation */ +#define XST_LOOPBACK_ERROR 17L /*!< A loopback test failed */ +#define XST_NO_CALLBACK 18L /*!< A callback has not yet been + registered */ +#define XST_NO_FEATURE 19L /*!< Device is not configured with + the requested feature */ +#define XST_NOT_INTERRUPT 20L /*!< Device is not configured for + interrupt mode operation */ +#define XST_DEVICE_BUSY 21L /*!< Device is busy */ +#define XST_ERROR_COUNT_MAX 22L /*!< The error counters of a device + have maxed out */ +#define XST_IS_STARTED 23L /*!< Used when part of device is + already started i.e. + sub channel */ +#define XST_IS_STOPPED 24L /*!< Used when part of device is + already stopped i.e. + sub channel */ +#define XST_DATA_LOST 26L /*!< Driver defined error */ +#define XST_RECV_ERROR 27L /*!< Generic receive error */ +#define XST_SEND_ERROR 28L /*!< Generic transmit error */ +#define XST_NOT_ENABLED 29L /*!< A requested service is not + available because it has not + been enabled */ +/** @} */ +/***************** Utility Component statuses 401 - 500 *********************/ +/** +@name Utility Component Status Codes 401 - 500 +@{ +*/ +#define XST_MEMTEST_FAILED 401L /*!< Memory test failed */ + +/** @} */ +/***************** Common Components statuses 501 - 1000 *********************/ +/** +@name Packet Fifo Status Codes 501 - 510 +@{ +*/ +/********************* Packet Fifo statuses 501 - 510 ************************/ + +#define XST_PFIFO_LACK_OF_DATA 501L /*!< Not enough data in FIFO */ +#define XST_PFIFO_NO_ROOM 502L /*!< Not enough room in FIFO */ +#define XST_PFIFO_BAD_REG_VALUE 503L /*!< Self test, a register value + was invalid after reset */ +#define XST_PFIFO_ERROR 504L /*!< Generic packet FIFO error */ +#define XST_PFIFO_DEADLOCK 505L /*!< Packet FIFO is reporting + * empty and full simultaneously + */ +/** @} */ +/** +@name DMA Status Codes 511 - 530 +@{ +*/ +/************************** DMA statuses 511 - 530 ***************************/ + +#define XST_DMA_TRANSFER_ERROR 511L /*!< Self test, DMA transfer + failed */ +#define XST_DMA_RESET_REGISTER_ERROR 512L /*!< Self test, a register value + was invalid after reset */ +#define XST_DMA_SG_LIST_EMPTY 513L /*!< Scatter gather list contains + no buffer descriptors ready + to be processed */ +#define XST_DMA_SG_IS_STARTED 514L /*!< Scatter gather not stopped */ +#define XST_DMA_SG_IS_STOPPED 515L /*!< Scatter gather not running */ +#define XST_DMA_SG_LIST_FULL 517L /*!< All the buffer desciptors of + the scatter gather list are + being used */ +#define XST_DMA_SG_BD_LOCKED 518L /*!< The scatter gather buffer + descriptor which is to be + copied over in the scatter + list is locked */ +#define XST_DMA_SG_NOTHING_TO_COMMIT 519L /*!< No buffer descriptors have been + put into the scatter gather + list to be commited */ +#define XST_DMA_SG_COUNT_EXCEEDED 521L /*!< The packet count threshold + specified was larger than the + total # of buffer descriptors + in the scatter gather list */ +#define XST_DMA_SG_LIST_EXISTS 522L /*!< The scatter gather list has + already been created */ +#define XST_DMA_SG_NO_LIST 523L /*!< No scatter gather list has + been created */ +#define XST_DMA_SG_BD_NOT_COMMITTED 524L /*!< The buffer descriptor which was + being started was not committed + to the list */ +#define XST_DMA_SG_NO_DATA 525L /*!< The buffer descriptor to start + has already been used by the + hardware so it can't be reused + */ +#define XST_DMA_SG_LIST_ERROR 526L /*!< General purpose list access + error */ +#define XST_DMA_BD_ERROR 527L /*!< General buffer descriptor + error */ +/** @} */ +/** +@name IPIF Status Codes Codes 531 - 550 +@{ +*/ +/************************** IPIF statuses 531 - 550 ***************************/ + +#define XST_IPIF_REG_WIDTH_ERROR 531L /*!< An invalid register width + was passed into the function */ +#define XST_IPIF_RESET_REGISTER_ERROR 532L /*!< The value of a register at + reset was not valid */ +#define XST_IPIF_DEVICE_STATUS_ERROR 533L /*!< A write to the device interrupt + status register did not read + back correctly */ +#define XST_IPIF_DEVICE_ACK_ERROR 534L /*!< The device interrupt status + register did not reset when + acked */ +#define XST_IPIF_DEVICE_ENABLE_ERROR 535L /*!< The device interrupt enable + register was not updated when + other registers changed */ +#define XST_IPIF_IP_STATUS_ERROR 536L /*!< A write to the IP interrupt + status register did not read + back correctly */ +#define XST_IPIF_IP_ACK_ERROR 537L /*!< The IP interrupt status register + did not reset when acked */ +#define XST_IPIF_IP_ENABLE_ERROR 538L /*!< IP interrupt enable register was + not updated correctly when other + registers changed */ +#define XST_IPIF_DEVICE_PENDING_ERROR 539L /*!< The device interrupt pending + register did not indicate the + expected value */ +#define XST_IPIF_DEVICE_ID_ERROR 540L /*!< The device interrupt ID register + did not indicate the expected + value */ +#define XST_IPIF_ERROR 541L /*!< Generic ipif error */ +/** @} */ + +/****************** Device specific statuses 1001 - 4095 *********************/ +/** +@name Ethernet Status Codes 1001 - 1050 +@{ +*/ +/********************* Ethernet statuses 1001 - 1050 *************************/ + +#define XST_EMAC_MEMORY_SIZE_ERROR 1001L /*!< Memory space is not big enough + * to hold the minimum number of + * buffers or descriptors */ +#define XST_EMAC_MEMORY_ALLOC_ERROR 1002L /*!< Memory allocation failed */ +#define XST_EMAC_MII_READ_ERROR 1003L /*!< MII read error */ +#define XST_EMAC_MII_BUSY 1004L /*!< An MII operation is in progress */ +#define XST_EMAC_OUT_OF_BUFFERS 1005L /*!< Driver is out of buffers */ +#define XST_EMAC_PARSE_ERROR 1006L /*!< Invalid driver init string */ +#define XST_EMAC_COLLISION_ERROR 1007L /*!< Excess deferral or late + * collision on polled send */ +/** @} */ +/** +@name UART Status Codes 1051 - 1075 +@{ +*/ +/*********************** UART statuses 1051 - 1075 ***************************/ +#define XST_UART + +#define XST_UART_INIT_ERROR 1051L +#define XST_UART_START_ERROR 1052L +#define XST_UART_CONFIG_ERROR 1053L +#define XST_UART_TEST_FAIL 1054L +#define XST_UART_BAUD_ERROR 1055L +#define XST_UART_BAUD_RANGE 1056L + +/** @} */ +/** +@name IIC Status Codes 1076 - 1100 +@{ +*/ +/************************ IIC statuses 1076 - 1100 ***************************/ + +#define XST_IIC_SELFTEST_FAILED 1076 /*!< self test failed */ +#define XST_IIC_BUS_BUSY 1077 /*!< bus found busy */ +#define XST_IIC_GENERAL_CALL_ADDRESS 1078 /*!< mastersend attempted with */ + /* general call address */ +#define XST_IIC_STAND_REG_RESET_ERROR 1079 /*!< A non parameterizable reg */ + /* value after reset not valid */ +#define XST_IIC_TX_FIFO_REG_RESET_ERROR 1080 /*!< Tx fifo included in design */ + /* value after reset not valid */ +#define XST_IIC_RX_FIFO_REG_RESET_ERROR 1081 /*!< Rx fifo included in design */ + /* value after reset not valid */ +#define XST_IIC_TBA_REG_RESET_ERROR 1082 /*!< 10 bit addr incl in design */ + /* value after reset not valid */ +#define XST_IIC_CR_READBACK_ERROR 1083 /*!< Read of the control register */ + /* didn't return value written */ +#define XST_IIC_DTR_READBACK_ERROR 1084 /*!< Read of the data Tx reg */ + /* didn't return value written */ +#define XST_IIC_DRR_READBACK_ERROR 1085 /*!< Read of the data Receive reg */ + /* didn't return value written */ +#define XST_IIC_ADR_READBACK_ERROR 1086 /*!< Read of the data Tx reg */ + /* didn't return value written */ +#define XST_IIC_TBA_READBACK_ERROR 1087 /*!< Read of the 10 bit addr reg */ + /* didn't return written value */ +#define XST_IIC_NOT_SLAVE 1088 /*!< The device isn't a slave */ +/** @} */ +/** +@name ATMC Status Codes 1101 - 1125 +@{ +*/ +/*********************** ATMC statuses 1101 - 1125 ***************************/ + +#define XST_ATMC_ERROR_COUNT_MAX 1101L /*!< the error counters in the ATM + controller hit the max value + which requires the statistics + to be cleared */ +/** @} */ +/** +@name Flash Status Codes 1126 - 1150 +@{ +*/ +/*********************** Flash statuses 1126 - 1150 **************************/ + +#define XST_FLASH_BUSY 1126L /*!< Flash is erasing or programming + */ +#define XST_FLASH_READY 1127L /*!< Flash is ready for commands */ +#define XST_FLASH_ERROR 1128L /*!< Flash had detected an internal + error. Use XFlash_DeviceControl + to retrieve device specific codes + */ +#define XST_FLASH_ERASE_SUSPENDED 1129L /*!< Flash is in suspended erase state + */ +#define XST_FLASH_WRITE_SUSPENDED 1130L /*!< Flash is in suspended write state + */ +#define XST_FLASH_PART_NOT_SUPPORTED 1131L /*!< Flash type not supported by + driver */ +#define XST_FLASH_NOT_SUPPORTED 1132L /*!< Operation not supported */ +#define XST_FLASH_TOO_MANY_REGIONS 1133L /*!< Too many erase regions */ +#define XST_FLASH_TIMEOUT_ERROR 1134L /*!< Programming or erase operation + aborted due to a timeout */ +#define XST_FLASH_ADDRESS_ERROR 1135L /*!< Accessed flash outside its + addressible range */ +#define XST_FLASH_ALIGNMENT_ERROR 1136L /*!< Write alignment error */ +#define XST_FLASH_BLOCKING_CALL_ERROR 1137L /*!< Couldn't return immediately from + write/erase function with + XFL_NON_BLOCKING_WRITE/ERASE + option cleared */ +#define XST_FLASH_CFI_QUERY_ERROR 1138L /*!< Failed to query the device */ +/** @} */ +/** +@name SPI Status Codes 1151 - 1175 +@{ +*/ +/*********************** SPI statuses 1151 - 1175 ****************************/ + +#define XST_SPI_MODE_FAULT 1151 /*!< master was selected as slave */ +#define XST_SPI_TRANSFER_DONE 1152 /*!< data transfer is complete */ +#define XST_SPI_TRANSMIT_UNDERRUN 1153 /*!< slave underruns transmit register */ +#define XST_SPI_RECEIVE_OVERRUN 1154 /*!< device overruns receive register */ +#define XST_SPI_NO_SLAVE 1155 /*!< no slave has been selected yet */ +#define XST_SPI_TOO_MANY_SLAVES 1156 /*!< more than one slave is being + * selected */ +#define XST_SPI_NOT_MASTER 1157 /*!< operation is valid only as master */ +#define XST_SPI_SLAVE_ONLY 1158 /*!< device is configured as slave-only + */ +#define XST_SPI_SLAVE_MODE_FAULT 1159 /*!< slave was selected while disabled */ +#define XST_SPI_SLAVE_MODE 1160 /*!< device has been addressed as slave */ +#define XST_SPI_RECEIVE_NOT_EMPTY 1161 /*!< device received data in slave mode */ + +#define XST_SPI_COMMAND_ERROR 1162 /*!< unrecognised command - qspi only */ +#define XST_SPI_POLL_DONE 1163 /*!< controller completed polling the + device for status */ +/** @} */ +/** +@name OPB Arbiter Status Codes 1176 - 1200 +@{ +*/ +/********************** OPB Arbiter statuses 1176 - 1200 *********************/ + +#define XST_OPBARB_INVALID_PRIORITY 1176 /*!< the priority registers have either + * one master assigned to two or more + * priorities, or one master not + * assigned to any priority + */ +#define XST_OPBARB_NOT_SUSPENDED 1177 /*!< an attempt was made to modify the + * priority levels without first + * suspending the use of priority + * levels + */ +#define XST_OPBARB_PARK_NOT_ENABLED 1178 /*!< bus parking by id was enabled but + * bus parking was not enabled + */ +#define XST_OPBARB_NOT_FIXED_PRIORITY 1179 /*!< the arbiter must be in fixed + * priority mode to allow the + * priorities to be changed + */ +/** @} */ +/** +@name INTC Status Codes 1201 - 1225 +@{ +*/ +/************************ Intc statuses 1201 - 1225 **************************/ + +#define XST_INTC_FAIL_SELFTEST 1201 /*!< self test failed */ +#define XST_INTC_CONNECT_ERROR 1202 /*!< interrupt already in use */ +/** @} */ +/** +@name TmrCtr Status Codes 1226 - 1250 +@{ +*/ +/********************** TmrCtr statuses 1226 - 1250 **************************/ + +#define XST_TMRCTR_TIMER_FAILED 1226 /*!< self test failed */ +/** @} */ +/** +@name WdtTb Status Codes 1251 - 1275 +@{ +*/ +/********************** WdtTb statuses 1251 - 1275 ***************************/ + +#define XST_WDTTB_TIMER_FAILED 1251L +/** @} */ +/** +@name PlbArb status Codes 1276 - 1300 +@{ +*/ +/********************** PlbArb statuses 1276 - 1300 **************************/ + +#define XST_PLBARB_FAIL_SELFTEST 1276L +/** @} */ +/** +@name Plb2Opb Status Codes 1301 - 1325 +@{ +*/ +/********************** Plb2Opb statuses 1301 - 1325 *************************/ + +#define XST_PLB2OPB_FAIL_SELFTEST 1301L +/** @} */ +/** +@name Opb2Plb Status 1326 - 1350 +@{ +*/ +/********************** Opb2Plb statuses 1326 - 1350 *************************/ + +#define XST_OPB2PLB_FAIL_SELFTEST 1326L +/** @} */ +/** +@name SysAce Status Codes 1351 - 1360 +@{ +*/ +/********************** SysAce statuses 1351 - 1360 **************************/ + +#define XST_SYSACE_NO_LOCK 1351L /*!< No MPU lock has been granted */ +/** @} */ +/** +@name PCI Bridge Status Codes 1361 - 1375 +@{ +*/ +/********************** PCI Bridge statuses 1361 - 1375 **********************/ + +#define XST_PCI_INVALID_ADDRESS 1361L +/** @} */ +/** +@name FlexRay Constants 1400 - 1409 +@{ +*/ +/********************** FlexRay constants 1400 - 1409 *************************/ + +#define XST_FR_TX_ERROR 1400 +#define XST_FR_TX_BUSY 1401 +#define XST_FR_BUF_LOCKED 1402 +#define XST_FR_NO_BUF 1403 +/** @} */ +/** +@name USB constants 1410 - 1420 +@{ +*/ +/****************** USB constants 1410 - 1420 *******************************/ + +#define XST_USB_ALREADY_CONFIGURED 1410 +#define XST_USB_BUF_ALIGN_ERROR 1411 +#define XST_USB_NO_DESC_AVAILABLE 1412 +#define XST_USB_BUF_TOO_BIG 1413 +#define XST_USB_NO_BUF 1414 +/** @} */ +/** +@name HWICAP constants 1421 - 1429 +@{ +*/ +/****************** HWICAP constants 1421 - 1429 *****************************/ + +#define XST_HWICAP_WRITE_DONE 1421 + +/** @} */ +/** +@name AXI VDMA constants 1430 - 1440 +@{ +*/ +/****************** AXI VDMA constants 1430 - 1440 *****************************/ + +#define XST_VDMA_MISMATCH_ERROR 1430 +/** @} */ +/** +@name NAND Flash Status Codes 1441 - 1459 +@{ +*/ +/*********************** NAND Flash statuses 1441 - 1459 *********************/ + +#define XST_NAND_BUSY 1441L /*!< Flash is erasing or + * programming + */ +#define XST_NAND_READY 1442L /*!< Flash is ready for commands + */ +#define XST_NAND_ERROR 1443L /*!< Flash had detected an + * internal error. + */ +#define XST_NAND_PART_NOT_SUPPORTED 1444L /*!< Flash type not supported by + * driver + */ +#define XST_NAND_OPT_NOT_SUPPORTED 1445L /*!< Operation not supported + */ +#define XST_NAND_TIMEOUT_ERROR 1446L /*!< Programming or erase + * operation aborted due to a + * timeout + */ +#define XST_NAND_ADDRESS_ERROR 1447L /*!< Accessed flash outside its + * addressible range + */ +#define XST_NAND_ALIGNMENT_ERROR 1448L /*!< Write alignment error + */ +#define XST_NAND_PARAM_PAGE_ERROR 1449L /*!< Failed to read parameter + * page of the device + */ +#define XST_NAND_CACHE_ERROR 1450L /*!< Flash page buffer error + */ + +#define XST_NAND_WRITE_PROTECTED 1451L /*!< Flash is write protected + */ +/** @} */ + +/**************************** Type Definitions *******************************/ + +typedef s32 XStatus; + +/***************** Macros (Inline Functions) Definitions *********************/ + + +/************************** Function Prototypes ******************************/ + +#ifdef __cplusplus +} +#endif + +#endif /* end of protection macro */ +/** +* @} End of "addtogroup common_status_codes". +*/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xtime_l.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xtime_l.c similarity index 63% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xtime_l.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xtime_l.c index a9db4df7f..2eeb4128b 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xtime_l.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xtime_l.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2016 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -54,6 +54,8 @@ * 5.04 pkp * 6.0 mus 08/11/16 Removed implementation of XTime_SetTime API, since * TTC counter value register is read only. +* 6.6 srm 10/18/17 Removed XTime_StartTimer API and made XTime_GetTime, +* XTime_SetTime applicable for all the instances of TTC * * * @@ -68,109 +70,59 @@ #include "xil_io.h" #include "xdebug.h" +#if defined SLEEP_TIMER_BASEADDR +#include "xil_sleeptimer.h" +#endif + /***************** Macros (Inline Functions) Definitions *********************/ /**************************** Type Definitions *******************************/ /************************** Constant Definitions *****************************/ -#define RST_LPD_IOU2 0xFF5E0238U -#define RST_LPD_IOU2_TTC3_RESET_MASK 0x00004000U + /************************** Variable Definitions *****************************/ /************************** Function Prototypes ******************************/ -/* Function definitions are applicable only when TTC3 is present*/ +/* Function definitions are applicable only when TTC is present*/ #ifdef SLEEP_TIMER_BASEADDR -/**************************************************************************** + +/****************************************************************************/ +/** +* @brief TTC Timer runs continuously and the time can not be set as +* desired. This API doesn't contain anything. It is defined to have +* uniformity across platforms. * -* Start the TTC timer. -* -* @param None. +* @param Xtime_Global: 32 bit value to be written to the timer counter +* register. * * @return None. * * @note In multiprocessor environment reference time will reset/lost for -* all processors, when this function called by any one processor. -* -****************************************************************************/ -void XTime_StartTimer(void) -{ - u32 LpdRst; - u32 TimerPrescalar; - u32 TimerCntrl; - - LpdRst = Xil_In32(RST_LPD_IOU2); - if ((LpdRst & RST_LPD_IOU2_TTC3_RESET_MASK) != 0 ) { - LpdRst = LpdRst & (~RST_LPD_IOU2_TTC3_RESET_MASK); - Xil_Out32(RST_LPD_IOU2, LpdRst); - - } else { - TimerCntrl = Xil_In32(SLEEP_TIMER_BASEADDR + - SLEEP_TIMER_CNTR_CNTRL_OFFSET); - /* check if Timer is disabled */ - if ((TimerCntrl & SLEEP_TIMER_COUNTER_CONTROL_DIS_MASK) == 0) { - TimerPrescalar = Xil_In32(SLEEP_TIMER_BASEADDR + - SLEEP_TIMER_CLK_CNTRL_OFFSET); - - /* check if Timer is configured with proper functionalty for sleep */ - if ((TimerPrescalar & SLEEP_TIMER_CLOCK_CONTROL_PS_EN_MASK) == 0) - return; - } - } - /* Disable the timer to configure */ - TimerCntrl = Xil_In32(SLEEP_TIMER_BASEADDR + - SLEEP_TIMER_CNTR_CNTRL_OFFSET); - TimerCntrl = TimerCntrl | SLEEP_TIMER_COUNTER_CONTROL_DIS_MASK; - Xil_Out32(SLEEP_TIMER_BASEADDR + SLEEP_TIMER_CNTR_CNTRL_OFFSET, - TimerCntrl); - - /* Disable the prescalar */ - TimerPrescalar = Xil_In32(SLEEP_TIMER_BASEADDR + - SLEEP_TIMER_CLK_CNTRL_OFFSET); - TimerPrescalar = TimerPrescalar & (~SLEEP_TIMER_CLOCK_CONTROL_PS_EN_MASK); - Xil_Out32(SLEEP_TIMER_BASEADDR + SLEEP_TIMER_CLK_CNTRL_OFFSET, - TimerPrescalar); - - /* Enable the Timer */ - TimerCntrl = SLEEP_TIMER_COUNTER_CONTROL_RST_MASK & - (~SLEEP_TIMER_COUNTER_CONTROL_DIS_MASK); - Xil_Out32(SLEEP_TIMER_BASEADDR + SLEEP_TIMER_CNTR_CNTRL_OFFSET, - TimerCntrl); - -} -/**************************************************************************** -* -* Set the time in the Timer Counter Register. -* -* @param Value to be written to the Timer Counter Register. -* -* @return None. -* -* @note In multiprocessor environment reference time will reset/lost for -* all processors, when this function called by any one processor. +* all processors, when this function called by any one processor. * ****************************************************************************/ void XTime_SetTime(XTime Xtime_Global) { + (void) Xtime_Global; /*Timer cannot be set to desired value, so the API is left unimplemented*/ xdbg_printf(XDBG_DEBUG_GENERAL, "XTime_SetTime:Timer cannot be set to desired value,so API is not implemented\n"); } -/**************************************************************************** +/****************************************************************************/ +/** +* @brief Get the time from the timer counter register. * -* Get the time from the Timer Counter Register. -* -* @param Pointer to the location to be updated with the time. +* @param Xtime_Global: Pointer to the 32 bit location to be updated with +* the time current value of timer counter register. * * @return None. * -* @note None. -* ****************************************************************************/ void XTime_GetTime(XTime *Xtime_Global) { *Xtime_Global = Xil_In32(SLEEP_TIMER_BASEADDR + - SLEEP_TIMER_CNTR_VAL_OFFSET); + XSLEEP_TIMER_TTC_COUNT_VALUE_OFFSET); } #endif diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xtime_l.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xtime_l.h similarity index 84% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xtime_l.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xtime_l.h index 36c416d5a..497466477 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_1/src/xtime_l.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/standalone_v6_6/src/xtime_l.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,6 +33,11 @@ /** * @file xtime_l.h * +* @addtogroup r5_time_apis Cortex R5 Time Functions +* The xtime_l.h provides access to 32-bit TTC timer counter. These functions +* can be used by applications to track the time. +* +* @{ *
       * MODIFICATION HISTORY:
       *
      @@ -42,10 +47,10 @@
       * 5.04  pkp	   02/19/16 Added timer configuration register offset definitions
       * 5.04	pkp	   03/11/16 Removed definitions for overflow interrupt register
       *						and mask
      +* 6.6   srm    10/22/17 Added a warning message for the user configurable sleep
      +*                       implementation when default timer is selected by the user
       * 
      * -* @note None. -* ******************************************************************************/ #ifndef XTIME_H /* prevent circular inclusions */ @@ -67,21 +72,16 @@ extern "C" { #define COUNTS_PER_SECOND SLEEP_TIMER_FREQUENCY #define COUNTS_PER_USECOND COUNTS_PER_SECOND/1000000 -/* Timer Register Offset*/ -#define SLEEP_TIMER_CLK_CNTRL_OFFSET 0x00000000U -#define SLEEP_TIMER_CNTR_CNTRL_OFFSET 0x0000000CU -#define SLEEP_TIMER_CNTR_VAL_OFFSET 0x00000018U - -/*Timer register values*/ -#define SLEEP_TIMER_COUNTER_CONTROL_DIS_MASK 0x00000001U -#define SLEEP_TIMER_CLOCK_CONTROL_PS_EN_MASK 0x00000001U -#define SLEEP_TIMER_COUNTER_CONTROL_RST_MASK 0x00000010U #else #define ITERS_PER_SEC (XPAR_CPU_CORTEXR5_0_CPU_CLK_FREQ_HZ / 4) #define ITERS_PER_USEC (XPAR_CPU_CORTEXR5_0_CPU_CLK_FREQ_HZ / 4000000) #define IRQ_FIQ_MASK 0xC0 /* Mask IRQ and FIQ interrupts in cpsr */ #endif +#if defined (XSLEEP_TIMER_IS_DEFAULT_TIMER) +#pragma message ("For the sleep routines, TTC3 is used if present else the assembly instructions are called") +#endif + /**************************** Type Definitions *******************************/ /* The following definitions are applicable only when TTC3 is present*/ @@ -97,3 +97,6 @@ void XTime_GetTime(XTime *Xtime_Global); #endif /* __cplusplus */ #endif /* XTIME_H */ +/** +* @} End of "@addtogroup r5_time_apis". +*/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.c similarity index 96% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.c index b047a4599..4c2545c9e 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -61,6 +61,9 @@ * XSysMonPsu_SetSeqAcqTime * and XSysMonPsu_GetSeqAcqTime to provide support for * set/get 64 bit value. +* 2.1 sk 03/03/16 Check for PL reset before doing PL Sysmon reset. +* 2.3 mn 12/13/17 Correct the AMS block channel numbers +* mn 03/08/18 Update Clock Divisor to the proper value * * * @@ -109,6 +112,7 @@ s32 XSysMonPsu_CfgInitialize(XSysMonPsu *InstancePtr, XSysMonPsu_Config *ConfigP { u32 PsSysmonControlStatus; u32 PlSysmonControlStatus; + u32 IntrStatus; /* Assert the input arguments. */ Xil_AssertNonvoid(InstancePtr != NULL); @@ -117,11 +121,14 @@ s32 XSysMonPsu_CfgInitialize(XSysMonPsu *InstancePtr, XSysMonPsu_Config *ConfigP /* Set the values read from the device config and the base address. */ InstancePtr->Config.DeviceId = ConfigPtr->DeviceId; InstancePtr->Config.BaseAddress = EffectiveAddr; - + InstancePtr->Config.InputClockMHz = ConfigPtr->InputClockMHz; /* Set all handlers to stub values, let user configure this data later. */ InstancePtr->Handler = XSysMonPsu_StubHandler; + XSysMonPsu_UpdateAdcClkDivisor(InstancePtr, XSYSMON_PS); + XSysMonPsu_UpdateAdcClkDivisor(InstancePtr, XSYSMON_PL); + /* Reset the device such that it is in a known state. */ XSysMonPsu_Reset(InstancePtr); @@ -147,6 +154,10 @@ s32 XSysMonPsu_CfgInitialize(XSysMonPsu *InstancePtr, XSysMonPsu_Config *ConfigP /* Indicate the instance is now ready to use, initialized without error */ InstancePtr->IsReady = XIL_COMPONENT_IS_READY; + /* Clear any bits set in the Interrupt Status Register. */ + IntrStatus = XSysMonPsu_IntrGetStatus(InstancePtr); + XSysMonPsu_IntrClear(InstancePtr, IntrStatus); + return XST_SUCCESS; } @@ -166,7 +177,7 @@ s32 XSysMonPsu_CfgInitialize(XSysMonPsu *InstancePtr, XSysMonPsu_Config *ConfigP *****************************************************************************/ static void XSysMonPsu_StubHandler(void *CallBackRef) { - (void *) CallBackRef; + (void) CallBackRef; /* Assert occurs always since this is a stub and should never be called */ Xil_AssertVoidAlways(); @@ -189,6 +200,7 @@ static void XSysMonPsu_StubHandler(void *CallBackRef) ******************************************************************************/ void XSysMonPsu_Reset(XSysMonPsu *InstancePtr) { + u8 IsPlReset; /* Assert the arguments. */ Xil_AssertVoid(InstancePtr != NULL); @@ -196,9 +208,14 @@ void XSysMonPsu_Reset(XSysMonPsu *InstancePtr) XSysmonPsu_WriteReg(InstancePtr->Config.BaseAddress + XPS_BA_OFFSET + XSYSMONPSU_VP_VN_OFFSET, XSYSMONPSU_VP_VN_MASK); - /* RESET the PL SYSMON */ - XSysmonPsu_WriteReg(InstancePtr->Config.BaseAddress + XPL_BA_OFFSET + - XSYSMONPSU_VP_VN_OFFSET, XSYSMONPSU_VP_VN_MASK); + /* Check for PL is under reset or not */ + IsPlReset = (XSysmonPsu_ReadReg(CSU_BASEADDR + PCAP_STATUS_OFFSET) & + PL_CFG_RESET_MASK) >> PL_CFG_RESET_SHIFT; + if (IsPlReset != 0U) { + /* RESET the PL SYSMON */ + XSysmonPsu_WriteReg(InstancePtr->Config.BaseAddress + XPL_BA_OFFSET + + XSYSMONPSU_VP_VN_OFFSET, XSYSMONPSU_VP_VN_MASK); + } } @@ -576,7 +593,9 @@ s32 XSysMonPsu_SetSingleChParams(XSysMonPsu *InstancePtr, u8 Channel, ((Channel >= XSM_CH_SUPPLY_CALIB) && (Channel <= XSM_CH_GAINERR_CALIB)) || ((Channel >= XSM_CH_SUPPLY4) && - (Channel <= XSM_CH_TEMP_REMTE))); + (Channel <= XSM_CH_TEMP_REMTE)) || + ((Channel >= XSM_CH_VCC_PSLL0) && + (Channel <= XSM_CH_RESERVE1))); Xil_AssertNonvoid((IncreaseAcqCycles == TRUE) || (IncreaseAcqCycles == FALSE)); Xil_AssertNonvoid((IsEventMode == TRUE) || (IsEventMode == FALSE)); @@ -1163,6 +1182,60 @@ u8 XSysMonPsu_GetAdcClkDivisor(XSysMonPsu *InstancePtr, u32 SysmonBlk) return (u8) (Divisor >> XSYSMONPSU_CFG_REG2_CLK_DVDR_SHIFT); } +u8 XSysMonPsu_UpdateAdcClkDivisor(XSysMonPsu *InstancePtr, u32 SysmonBlk) +{ + u16 Divisor; + u32 EffectiveBaseAddress; + u32 RegValue; + u32 InputFreq = InstancePtr->Config.InputClockMHz; + + /* Assert the arguments. */ + Xil_AssertNonvoid(InstancePtr != NULL); + Xil_AssertNonvoid((SysmonBlk == XSYSMON_PS)||(SysmonBlk == XSYSMON_PL)); + + /* Calculate the effective baseaddress based on the Sysmon instance. */ + EffectiveBaseAddress = + XSysMonPsu_GetEffBaseAddress(InstancePtr->Config.BaseAddress, + SysmonBlk); + + /* Read the divisor value from the Configuration Register 2. */ + Divisor = (u16) XSysmonPsu_ReadReg(EffectiveBaseAddress + + XSYSMONPSU_CFG_REG2_OFFSET); + Divisor = Divisor >> XSYSMONPSU_CFG_REG2_CLK_DVDR_SHIFT; + + while (1) { + if (!Divisor) { + if ((SysmonBlk == XSYSMON_PS) && + (InputFreq/8 >= 1) && (InputFreq/8 <= 26)) { + break; + } else if ((SysmonBlk == XSYSMON_PL) && + (InputFreq/2 >= 1) && (InputFreq/2 <= 26)) { + break; + } + } else if ((InputFreq/Divisor >= 1) && + (InputFreq/Divisor <= 26)) { + break; + } else { + Divisor += 1; + } + } + + /* + * Read the Configuration Register 2 and the clear the clock divisor + * bits. + */ + RegValue = XSysmonPsu_ReadReg(EffectiveBaseAddress + + XSYSMONPSU_CFG_REG2_OFFSET); + RegValue &= ~(XSYSMONPSU_CFG_REG2_CLK_DVDR_MASK); + + /* Write the divisor value into the Configuration Register 2. */ + RegValue |= ((u32)Divisor << XSYSMONPSU_CFG_REG2_CLK_DVDR_SHIFT) & + XSYSMONPSU_CFG_REG2_CLK_DVDR_MASK; + XSysmonPsu_WriteReg(EffectiveBaseAddress + XSYSMONPSU_CFG_REG2_OFFSET, + RegValue); + + return (u8)Divisor; +} /****************************************************************************/ /** * diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.h similarity index 86% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.h index ba090c5aa..8fcaa19fe 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2016 Xilinx, Inc. All rights reserved. +* Copyright (C) 2016-2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -163,6 +163,21 @@ * set/get 64 bit value. * Added constants XSM_CFR_ALM_SUPPLY*(8-31)_MASKs to * provide support for enabling extra PS alarams. +* 2.1 sk 03/03/16 Check for PL reset before doing PL Sysmon reset. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Modified Comment lines in functions of sysmonpsu +* examples to recognize it as documentation block +* for doxygen generation. +* 2.2 sk 04/14/17 Corrected temperature conversion formulas. +* 2.3 mn 12/11/17 Added missing closing bracket error when C++ is used +* mn 12/12/17 Added Conversion Support for voltages having Range of +* 1 Volt +* mn 12/13/17 Correct the AMS block channel numbers +* ms 12/15/17 Added peripheral test support. +* ms 01/04/18 Provided conditional checks for interrupt example +* in sysmonpsu_header.h +* mn 03/08/18 Update Clock Divisor to the proper value * * * @@ -211,22 +226,14 @@ extern "C" { #define XSM_CH_SUPPLY10 35U /**< SUPPLY10 PS_MGTRAVTT */ #define XSM_CH_VCCAMS 36U /**< VCCAMS */ #define XSM_CH_TEMP_REMTE 37U /**< Temperature Remote */ -#define XSM_CH_VCC_PSLL0 38U /**< VCC_PSLL0 */ -#define XSM_CH_VCC_PSLL1 39U /**< VCC_PSLL1 */ -#define XSM_CH_VCC_PSLL2 40U /**< VCC_PSLL2 */ -#define XSM_CH_VCC_PSLL3 41U /**< VCC_PSLL3 */ -#define XSM_CH_VCC_PSLL4 42U /**< VCC_PSLL4 */ -#define XSM_CH_VCC_PSBATT 43U /**< VCC_PSBATT */ -#define XSM_CH_VCCINT 44U /**< VCCINT */ -#define XSM_CH_VCCBRAM 45U /**< VCCBRAM */ -#define XSM_CH_VCCAUX 46U /**< VCCAUX */ -#define XSM_CH_VCC_PSDDRPLL 47U /**< VCC_PSDDRPLL */ -#define XSM_CH_DDRPHY_VREF 48U /**< DDRPHY_VREF */ -#define XSM_CH_DDRPHY_AT0 49U /**< DDRPHY_AT0 */ -#define XSM_CH_PSGT_AT0 50U /**< PSGT_AT0 */ -#define XSM_CH_PSGT_AT1 51U /**< PSGT_AT0 */ -#define XSM_CH_RESERVE0 52U /**< PSGT_AT0 */ -#define XSM_CH_RESERVE1 53U /**< PSGT_AT0 */ +#define XSM_CH_VCC_PSLL0 48U /**< VCC_PSLL0 */ +#define XSM_CH_VCC_PSLL3 51U /**< VCC_PSLL3 */ +#define XSM_CH_VCCINT 54U /**< VCCINT */ +#define XSM_CH_VCCBRAM 55U /**< VCCBRAM */ +#define XSM_CH_VCCAUX 56U /**< VCCAUX */ +#define XSM_CH_VCC_PSDDRPLL 57U /**< VCC_PSDDRPLL */ +#define XSM_CH_DDRPHY_VREF 58U /**< DDRPHY_VREF */ +#define XSM_CH_RESERVE1 63U /**< PSGT_AT0 */ /*@}*/ @@ -381,7 +388,8 @@ typedef void (*XSysMonPsu_Handler) (void *CallBackRef); */ typedef struct { u16 DeviceId; /**< Unique ID of device */ - u32 BaseAddress; /**< Register base address */ + u32 BaseAddress; /**< Register base address */ + u16 InputClockMHz; /**< Input clock frequency */ } XSysMonPsu_Config; /** @@ -425,7 +433,7 @@ typedef struct { * *****************************************************************************/ #define XSysMonPsu_RawToTemperature_OnChip(AdcData) \ - ((((float)(AdcData)/65536.0f)/0.00199451786f ) - 273.6777f) + ((((float)(AdcData)/65536.0f)/0.00196342531f ) - 280.2309f) /****************************************************************************/ /** @@ -442,12 +450,30 @@ typedef struct { * *****************************************************************************/ #define XSysMonPsu_RawToTemperature_ExternalRef(AdcData) \ - ((((float)(AdcData)/65536.0f)/0.00198842814f ) - 273.8195f) + ((((float)(AdcData)/65536.0f)/0.00197008621f ) - 279.4266f) /****************************************************************************/ /** * -* This macro converts System Monitor Raw Data to Voltage(volts). +* This macro converts System Monitor Raw Data to Voltage(volts) for VpVn +* supply. +* +* @param AdcData is the System Monitor ADC Raw Data. +* +* @return The Voltage in volts. +* +* @note C-Style signature: +* float XSysMon_VpVnRawToVoltage(u32 AdcData) +* +*****************************************************************************/ +#define XSysMonPsu_VpVnRawToVoltage(AdcData) \ + ((((float)(AdcData))* (1.0f))/65536.0f) + +/****************************************************************************/ +/** +* +* This macro converts System Monitor Raw Data to Voltage(volts) other than +* VCCO_PSIO supply. * * @param AdcData is the System Monitor ADC Raw Data. * @@ -460,6 +486,23 @@ typedef struct { #define XSysMonPsu_RawToVoltage(AdcData) \ ((((float)(AdcData))* (3.0f))/65536.0f) +/****************************************************************************/ +/** +* +* This macro converts System Monitor Raw Data to Voltage(volts) for +* VCCO_PSIO supply. +* +* @param AdcData is the System Monitor ADC Raw Data. +* +* @return The Voltage in volts. +* +* @note C-Style signature: +* float XSysMon_RawToVoltage(u32 AdcData) +* +*****************************************************************************/ +#define XSysMonPsu_VccopsioRawToVoltage(AdcData) \ + ((((float)(AdcData))* (6.0f))/65536.0f) + /****************************************************************************/ /** * @@ -476,7 +519,7 @@ typedef struct { * *****************************************************************************/ #define XSysMonPsu_TemperatureToRaw_OnChip(Temperature) \ - ((s32)(((Temperature) + 273.6777f)*65536.0f*0.00199451786f)) + ((s32)(((Temperature) + 280.2309f)*65536.0f*0.00196342531f)) /****************************************************************************/ /** @@ -494,12 +537,13 @@ typedef struct { * *****************************************************************************/ #define XSysMonPsu_TemperatureToRaw_ExternalRef(Temperature) \ - ((s32)(((Temperature) + 273.8195f)*65536.0f*0.00198842814f)) + ((s32)(((Temperature) + 279.4266f)*65536.0f*0.00197008621f)) /****************************************************************************/ /** * -* This macro converts Voltage in Volts to System Monitor Raw Data. +* This macro converts Voltage in Volts to System Monitor Raw Data other than +* VCCO_PSIO supply * * @param Voltage is the Voltage in volts to be converted to * System Monitor/ADC Raw Data. @@ -513,6 +557,24 @@ typedef struct { #define XSysMonPsu_VoltageToRaw(Voltage) \ ((s32)((Voltage)*65536.0f/3.0f)) +/****************************************************************************/ +/** +* +* This macro converts Voltage in Volts to System Monitor Raw Data for +* VCCO_PSIO supply +* +* @param Voltage is the Voltage in volts to be converted to +* System Monitor/ADC Raw Data. +* +* @return The System Monitor ADC Raw Data. +* +* @note C-Style signature: +* int XSysMon_VoltageToRaw(float Voltage) +* +*****************************************************************************/ +#define XSysMonPsu_VccopsioVoltageToRaw(Voltage) \ + ((s32)((Voltage)*65536.0f/6.0f)) + /****************************************************************************/ /** * @@ -574,6 +636,7 @@ void XSysMonPsu_SetExtenalMux(XSysMonPsu *InstancePtr, u8 Channel, u32 SysmonBlk u32 XSysMonPsu_GetExtenalMux(XSysMonPsu *InstancePtr, u32 SysmonBlk); void XSysMonPsu_SetAdcClkDivisor(XSysMonPsu *InstancePtr, u8 Divisor, u32 SysmonBlk); u8 XSysMonPsu_GetAdcClkDivisor(XSysMonPsu *InstancePtr, u32 SysmonBlk); +u8 XSysMonPsu_UpdateAdcClkDivisor(XSysMonPsu *InstancePtr, u32 SysmonBlk); s32 XSysMonPsu_SetSeqChEnables(XSysMonPsu *InstancePtr, u64 ChEnableMask, u32 SysmonBlk); u64 XSysMonPsu_GetSeqAvgEnables(XSysMonPsu *InstancePtr, u32 SysmonBlk); @@ -607,4 +670,8 @@ s32 XSysMonPsu_SelfTest(XSysMonPsu *InstancePtr); XSysMonPsu_Config *XSysMonPsu_LookupConfig(u16 DeviceId); +#ifdef __cplusplus +} +#endif + #endif /* XSYSMONPSU_H_ */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_g.c similarity index 88% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_g.c index b692531ad..34bd80b34 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,11 +44,12 @@ * The configuration table for devices */ -XSysMonPsu_Config XSysMonPsu_ConfigTable[] = +XSysMonPsu_Config XSysMonPsu_ConfigTable[XPAR_XSYSMONPSU_NUM_INSTANCES] = { { XPAR_PSU_AMS_DEVICE_ID, - XPAR_PSU_AMS_BASEADDR + XPAR_PSU_AMS_BASEADDR, + XPAR_PSU_AMS_REF_FREQMHZ } }; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_hw.h index 80266ebf9..20082773c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_hw.h @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. @@ -46,6 +46,7 @@ * 1.0 kvn 12/15/15 First release * 2.0 vns 08/14/16 Added CFG_REG3, SEQ_INPUT_MODE2, SEQ_ACQ2, * SEQ_CH2 and SEQ_AVG2 offsets and bit masks +* 2.1 sk 03/03/16 Check for PL reset before doing PL Sysmon reset. * * * @@ -2281,6 +2282,11 @@ extern "C" { #define XSYSMONPSU_MIN_TEMP_REMTE_WIDTH 16U #define XSYSMONPSU_MIN_TEMP_REMTE_MASK 0x0000ffffU +#define CSU_BASEADDR 0xFFCA0000U +#define PCAP_STATUS_OFFSET 0x00003010U +#define PL_CFG_RESET_MASK 0x00000040U +#define PL_CFG_RESET_SHIFT 6U + /***************** Macros (Inline Functions) Definitions *********************/ /****************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_intr.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_intr.c index b178c2e11..12d921913 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_intr.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_selftest.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_selftest.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_selftest.c index 5b709be14..9b68b887e 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_selftest.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_sinit.c similarity index 97% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_sinit.c index 34249a209..32e17ab59 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/sysmonpsu_v2_0/src/xsysmonpsu_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/sysmonpsu_v2_3/src/xsysmonpsu_sinit.c @@ -18,8 +18,8 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps.c similarity index 93% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps.c index 4534553f6..b2382f1b2 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps.c @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xttcps.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file contains the implementation of the XTtcPs driver. This driver @@ -50,7 +50,12 @@ * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. * 3.01 pkp 01/30/16 Modified XTtcPs_CfgInitialize to add XTtcps_Stop * to stop the timer before configuring -* +* 3.2 mus 10/28/16 Modified XTtcPs_CalcIntervalFromFreq to calculate +* 32 bit interval count for zynq ultrascale+mpsoc +* 3.5 srm 10/06/17 Updated XTtcPs_GetMatchValue and XTtcPs_SetMatchValue +* APIs to use correct match register width for zynq +* (i.e. 16 bit) and zynq ultrascale+mpsoc (i.e. 32 bit). +* It fixes CR# 986617 * * ******************************************************************************/ @@ -194,7 +199,7 @@ s32 XTtcPs_CfgInitialize(XTtcPs *InstancePtr, XTtcPs_Config *ConfigPtr, * @note None * ****************************************************************************/ -void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, u16 Value) +void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, XMatchRegValue Value) { /* * Assert to validate input arguments. @@ -220,12 +225,12 @@ void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, u16 Value) * @param MatchIndex is the index to the match register to be set. * Valid values are 0, 1, or 2. * -* @return None +* @return The match register value * * @note None * ****************************************************************************/ -u16 XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex) +XMatchRegValue XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex) { u32 MatchReg; @@ -239,7 +244,7 @@ u16 XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex) MatchReg = XTtcPs_ReadReg(InstancePtr->Config.BaseAddress, XTtcPs_Match_N_Offset(MatchIndex)); - return (u16) MatchReg; + return (XMatchRegValue) MatchReg; } /*****************************************************************************/ @@ -377,7 +382,7 @@ u8 XTtcPs_GetPrescaler(XTtcPs *InstancePtr) * ****************************************************************************/ void XTtcPs_CalcIntervalFromFreq(XTtcPs *InstancePtr, u32 Freq, - u16 *Interval, u8 *Prescaler) + XInterval *Interval, u8 *Prescaler) { u8 TmpPrescaler; u32 TempValue; @@ -396,7 +401,7 @@ void XTtcPs_CalcIntervalFromFreq(XTtcPs *InstancePtr, u32 Freq, * The frequency is too high, it is too close to the input * clock value. Use maximum values to signal caller. */ - *Interval = 0xFFFFU; + *Interval = XTTCPS_MAX_INTERVAL_COUNT; *Prescaler = 0xFFU; return; } @@ -408,7 +413,7 @@ void XTtcPs_CalcIntervalFromFreq(XTtcPs *InstancePtr, u32 Freq, /* * We do not need a prescaler, so set the values appropriately */ - *Interval = (u16)TempValue; + *Interval = (XInterval)TempValue; *Prescaler = XTTCPS_CLK_CNTRL_PS_DISABLE; return; } @@ -425,7 +430,7 @@ void XTtcPs_CalcIntervalFromFreq(XTtcPs *InstancePtr, u32 Freq, /* * Set the values appropriately */ - *Interval = (u16)TempValue; + *Interval = (XInterval)TempValue; *Prescaler = TmpPrescaler; return; } @@ -434,7 +439,7 @@ void XTtcPs_CalcIntervalFromFreq(XTtcPs *InstancePtr, u32 Freq, /* Can not find interval values that work for the given frequency. * Return maximum values to signal caller. */ - *Interval = 0XFFFFU; + *Interval = XTTCPS_MAX_INTERVAL_COUNT; *Prescaler = 0XFFU; return; } diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps.h similarity index 84% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps.h index 646d24db5..b7b4e1950 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/ttcps_v3_1/src/xttcps.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xttcps.h -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * @details * @@ -91,6 +91,18 @@ * 2.0 adk 12/10/13 Updated as per the New Tcl API's * 3.0 pkp 12/09/14 Added support for Zynq Ultrascale Mp.Also code * modified for MISRA-C:2012 compliance. +* 3.2 mus 10/28/16 Modified XTtcPs_GetCounterValue and XTtcPs_SetInterval +* macros to return 32 bit values for zynq ultrascale+mpsoc +* ms 01/23/17 Modified xil_printf statement in main function for all +* examples to ensure that "Successfully ran" and "Failed" +* strings are available in all examples. This is a fix +* for CR-965028. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* 3.4 ms 04/18/17 Modified tcl file to add suffix U for all macros +* definitions of ttcps in xparameters.h +* 3.5 srm 10/06/17 Added new typedef XMatchRegValue for match register width +* * * ******************************************************************************/ @@ -109,6 +121,16 @@ extern "C" { /************************** Constant Definitions *****************************/ + +/* + * Maximum Value for interval counter + */ + #if defined(ARMA9) + #define XTTCPS_MAX_INTERVAL_COUNT 0xFFFFU + #else + #define XTTCPS_MAX_INTERVAL_COUNT 0xFFFFFFFFU + #endif + /** @name Configuration options * * Options for the device. Each of the options is bit field, so more than one @@ -125,7 +147,6 @@ extern "C" { #define XTTCPS_OPTION_WAVE_DISABLE 0x00000020U /**< No waveform output */ #define XTTCPS_OPTION_WAVE_POLARITY 0x00000040U /**< Waveform polarity */ /*@}*/ - /**************************** Type Definitions *******************************/ /** @@ -148,7 +169,16 @@ typedef struct { u32 IsReady; /**< Device is initialized and ready */ } XTtcPs; - +/** + * This typedef contains interval count and Match register value + */ +#if defined(ARMA9) +typedef u16 XInterval; +typedef u16 XMatchRegValue; +#else +typedef u32 XInterval; +typedef u32 XMatchRegValue; +#endif /***************** Macros (Inline Functions) Definitions *********************/ /* @@ -223,14 +253,27 @@ typedef struct { * * @param InstancePtr is a pointer to the XTtcPs instance. * -* @return 16-bit counter value. +* @return zynq:16 bit counter value. +* zynq ultrascale+mpsoc:32 bit counter value. * * @note C-style signature: -* u16 XTtcPs_GetCounterValue(XTtcPs *InstancePtr) +* zynq: u16 XTtcPs_GetCounterValue(XTtcPs *InstancePtr) +* zynq ultrascale+mpsoc: u32 XTtcPs_GetCounterValue(XTtcPs *InstancePtr) * ****************************************************************************/ +#if defined(ARMA9) +/* + * ttc supports 16 bit counter for zynq + */ #define XTtcPs_GetCounterValue(InstancePtr) \ (u16)InstReadReg((InstancePtr), XTTCPS_COUNT_VALUE_OFFSET) +#else +/* + * ttc supports 32 bit counter for zynq ultrascale+mpsoc + */ +#define XTtcPs_GetCounterValue(InstancePtr) \ + InstReadReg((InstancePtr), XTTCPS_COUNT_VALUE_OFFSET) +#endif /*****************************************************************************/ /** @@ -243,7 +286,7 @@ typedef struct { * @return None * * @note C-style signature: -* void XTtcPs_SetInterval(XTtcPs *InstancePtr, u16 Value) +* void XTtcPs_SetInterval(XTtcPs *InstancePtr, XInterval Value) * ****************************************************************************/ #define XTtcPs_SetInterval(InstancePtr, Value) \ @@ -256,15 +299,27 @@ typedef struct { * * @param InstancePtr is a pointer to the XTtcPs instance. * -* @return 16-bit interval value +* @return zynq:16 bit interval value. +* zynq ultrascale+mpsoc:32 bit interval value. * * @note C-style signature: -* u16 XTtcPs_GetInterval(XTtcPs *InstancePtr) +* zynq: u16 XTtcPs_GetInterval(XTtcPs *InstancePtr) +* zynq ultrascale+mpsoc: u32 XTtcPs_GetInterval(XTtcPs *InstancePtr) * ****************************************************************************/ +#if defined(ARMA9) +/* + * ttc supports 16 bit interval counter for zynq + */ #define XTtcPs_GetInterval(InstancePtr) \ (u16)InstReadReg((InstancePtr), XTTCPS_INTERVAL_VAL_OFFSET) - +#else +/* + * ttc supports 32 bit interval counter for zynq ultrascale+mpsoc + */ +#define XTtcPs_GetInterval(InstancePtr) \ + InstReadReg((InstancePtr), XTTCPS_INTERVAL_VAL_OFFSET) +#endif /*****************************************************************************/ /** * @@ -384,14 +439,14 @@ XTtcPs_Config *XTtcPs_LookupConfig(u16 DeviceId); s32 XTtcPs_CfgInitialize(XTtcPs *InstancePtr, XTtcPs_Config * ConfigPtr, u32 EffectiveAddr); -void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, u16 Value); -u16 XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex); +void XTtcPs_SetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex, XMatchRegValue Value); +XMatchRegValue XTtcPs_GetMatchValue(XTtcPs *InstancePtr, u8 MatchIndex); void XTtcPs_SetPrescaler(XTtcPs *InstancePtr, u8 PrescalerValue); u8 XTtcPs_GetPrescaler(XTtcPs *InstancePtr); void XTtcPs_CalcIntervalFromFreq(XTtcPs *InstancePtr, u32 Freq, - u16 *Interval, u8 *Prescaler); + XInterval *Interval, u8 *Prescaler); /* * Functions for options, in file xttcps_options.c diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_g.c similarity index 94% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_g.c index 28d356092..571cb366a 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_hw.h similarity index 90% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_hw.h index af78bcd67..b1fa545bd 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_hw.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xttcps_hw.h -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file defines the hardware interface to one of the three timer counters @@ -47,7 +47,10 @@ * ----- ------ -------- ------------------------------------------------- * 1.00a drg/jz 01/21/10 First release * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. -* +* 3.5 srm 10/06/17 Updated XTTCPS_COUNT_VALUE_MASK, +* XTTCPS_INTERVAL_VAL_MASK, XTTCPS_MATCH_MASK macros to +* mask 16 bit values for zynq and 32 bit values for +* zynq ultrascale+mpsoc " * * ******************************************************************************/ @@ -66,6 +69,12 @@ extern "C" { #include "xil_io.h" /************************** Constant Definitions *****************************/ +/* + * Flag for a9 processor + */ + #if !defined (ARMR5) && !defined (__aarch64__) && !defined (ARMA53_32) + #define ARMA9 + #endif /** @name Register Map * @@ -114,7 +123,11 @@ extern "C" { * Current Counter Value Register definitions * @{ */ +#if defined(ARMA9) #define XTTCPS_COUNT_VALUE_MASK 0x0000FFFFU /**< 16-bit counter value */ +#else +#define XTTCPS_COUNT_VALUE_MASK 0xFFFFFFFFU /**< 32-bit counter value */ +#endif /* @} */ /** @name Interval Value Register @@ -122,7 +135,11 @@ extern "C" { * down to. * @{ */ +#if defined(ARMA9) #define XTTCPS_INTERVAL_VAL_MASK 0x0000FFFFU /**< 16-bit Interval value*/ +#else +#define XTTCPS_INTERVAL_VAL_MASK 0xFFFFFFFFU /**< 32-bit Interval value*/ +#endif /* @} */ /** @name Match Registers @@ -130,7 +147,11 @@ extern "C" { * registers. * @{ */ +#if defined(ARMA9) #define XTTCPS_MATCH_MASK 0x0000FFFFU /**< 16-bit Match value */ +#else +#define XTTCPS_MATCH_MASK 0xFFFFFFFFU /**< 32-bit Match value */ +#endif #define XTTCPS_NUM_MATCH_REG 3U /**< Num of Match reg */ /* @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_options.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_options.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_options.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_options.c index 532b235c5..01dd9efb3 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_options.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_options.c @@ -33,7 +33,7 @@ /** * * @file xttcps_options.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file contains functions to get or set option features for the device. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_selftest.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_selftest.c index 4923df667..b1dd7d0a2 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/ttcps_v3_2/src/xttcps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xttcps_selftest.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * This file contains the implementation of self test function for the diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_sinit.c index ef3c6ea6b..4684c8a9c 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_2/src/xttcps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/ttcps_v3_5/src/xttcps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xttcps_sinit.c -* @addtogroup ttcps_v3_0 +* @addtogroup ttcps_v3_5 * @{ * * The implementation of the XTtcPs driver's static initialization functionality. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_3/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps.c index a338d1f09..c33ec5481 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps.c @@ -33,7 +33,7 @@ /** * * @file xuartps.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This file contains the implementation of the interface functions for XUartPs @@ -49,6 +49,7 @@ * baud rate. CR# 804281. * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. * 3.1 kvn 04/10/15 Modified code for latest RTL changes. +* 3.5 NK 09/26/17 Fix the RX Buffer Overflow issue. * * *****************************************************************************/ @@ -463,7 +464,7 @@ u32 XUartPs_ReceiveBuffer(XUartPs *InstancePtr) * Loop until there is no more data in RX FIFO or the specified * number of bytes has been received */ - while((ReceivedCount <= InstancePtr->ReceiveBuffer.RemainingBytes)&& + while((ReceivedCount < InstancePtr->ReceiveBuffer.RemainingBytes)&& (((CsrRegister & XUARTPS_SR_RXEMPTY) == (u32)0))){ if (InstancePtr->is_rxbs_error) { @@ -635,7 +636,7 @@ s32 XUartPs_SetBaudRate(XUartPs *InstancePtr, u32 BaudRate) static void XUartPs_StubHandler(void *CallBackRef, u32 Event, u32 ByteCount) { - (void *) CallBackRef; + (void) CallBackRef; (void) Event; (void) ByteCount; /* Assert occurs always since this is a stub and should never be called */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps.h similarity index 96% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps.h index 6bd42b21c..33758c23b 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xuartps.h -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * @details * @@ -161,6 +161,15 @@ * platform variable in driver instance structure. * 3.1 adk 14/03/16 Include interrupt examples in the peripheral test when * uart is connected to a valid interrupt controller CR#946803. +* 3.2 rk 07/20/16 Modified the logic for transmission break bit set +* 3.4 ms 01/23/17 Added xil_printf statement in main function for all +* examples to ensure that "Successfully ran" and "Failed" +* strings are available in all examples. This is a fix +* for CR-965028. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* 3.6 ms 02/16/18 Updates the flow control mode offset value in modem +* control register. * * * diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_g.c similarity index 91% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_g.c index d4a8e5ab9..6abb20e4d 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,7 +44,7 @@ * The configuration table for devices */ -XUartPs_Config XUartPs_ConfigTable[] = +XUartPs_Config XUartPs_ConfigTable[XPAR_XUARTPS_NUM_INSTANCES] = { { XPAR_PSU_UART_0_DEVICE_ID, diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_hw.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_hw.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_hw.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_hw.c index 299dd35ae..724c3cb40 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_hw.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_hw.c @@ -33,7 +33,7 @@ /** * * @file xuartps_hw.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_hw.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_hw.h index 9f5f0b700..9a2bc4305 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_hw.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. +* Copyright (C) 2010 - 2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ /** * * @file xuartps_hw.h -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This header file contains the hardware interface of an XUartPs device. @@ -55,6 +55,8 @@ * constant definitions. * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. * 3.1 kvn 04/10/15 Modified code for latest RTL changes. +* 3.6 ms 02/16/18 Updates flow control mode offset value in +* modem control register. * * * @@ -256,7 +258,7 @@ extern "C" { * * @{ */ -#define XUARTPS_MODEMCR_FCM 0x00000010U /**< Flow control mode */ +#define XUARTPS_MODEMCR_FCM 0x00000020U /**< Flow control mode */ #define XUARTPS_MODEMCR_RTS 0x00000002U /**< Request to send */ #define XUARTPS_MODEMCR_DTR 0x00000001U /**< Data terminal ready */ /* @} */ diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_intr.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_intr.c index 849cb48db..dff02fd63 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_intr.c @@ -33,7 +33,7 @@ /** * * @file xuartps_intr.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This file contains the functions for interrupt handling @@ -249,7 +249,7 @@ void XUartPs_InterruptHandler(XUartPs *InstancePtr) *****************************************************************************/ static void ReceiveErrorHandler(XUartPs *InstancePtr, u32 IsrStatus) { - u32 ByteStatusValue, EventData; + u32 EventData; u32 Event; InstancePtr->is_rxbs_error = 0; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_options.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_options.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_options.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_options.c index 7051d07ec..5d8d3017c 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_options.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_options.c @@ -33,7 +33,7 @@ /** * * @file xuartps_options.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * The implementation of the options functions for the XUartPs driver. @@ -47,6 +47,7 @@ * 1.00 sdm 09/27/11 Fixed a bug in XUartPs_SetFlowDelay where the input * value was not being written to the register. * 3.00 kvn 02/13/15 Modified code for MISRA-C:2012 compliance. +* 3.2 rk 07/20/16 Modified the logic for transmission break bit set * * * @@ -199,6 +200,8 @@ void XUartPs_SetOptions(XUartPs *InstancePtr, u16 Options) * the register. */ if ((Options & OptionsTable[Index].Option) != (u16)0) { + if(OptionsTable[Index].Option == XUARTPS_OPTION_SET_BREAK) + Register &= ~XUARTPS_CR_STOPBRK; Register |= OptionsTable[Index].Mask; } else { diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_selftest.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_selftest.c index a1a7dd366..de58201a1 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/uartps_v3_3/src/xuartps_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_selftest.c @@ -33,7 +33,7 @@ /** * * @file xuartps_selftest.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * This file contains the self-test functions for the XUartPs driver. diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_sinit.c index 8dc87dae3..22e2f7a83 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/ps7_cortexa9_0/libsrc/uartps_v3_1/src/xuartps_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/uartps_v3_6/src/xuartps_sinit.c @@ -33,7 +33,7 @@ /** * * @file xuartps_sinit.c -* @addtogroup uartps_v3_1 +* @addtogroup uartps_v3_5 * @{ * * The implementation of the XUartPs driver's static initialzation diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.c new file mode 100644 index 000000000..57f859d81 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.c @@ -0,0 +1,329 @@ +/****************************************************************************** + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * + ******************************************************************************/ +/*****************************************************************************/ +/** + * + * @file xusb_wrapper.c + * + * This file contains implementation of USBPSU Driver wrappers. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  	Date     Changes
      + * ----- ---- 	-------- -------------------------------------------------------
      + * 1.0   BK 	12/01/18 First release
      + *	 MYK	12/01/18 Added hibernation support for device mode
      + *	 vak	13/03/18 Moved the setup interrupt system calls from driver to
      + *			 example.
      + *
      + * 
      + * + *****************************************************************************/ + +/***************************** Include Files *********************************/ +#include "xusb_wrapper.h" + +/************************** Variable Definitions *****************************/ + +/************************** Function Prototypes ******************************/ +Usb_Config* LookupConfig(u16 DeviceId) +{ + return XUsbPsu_LookupConfig(DeviceId); +} + +void CacheInit(void) +{ + +} + +s32 CfgInitialize(struct Usb_DevData *InstancePtr, + Usb_Config *ConfigPtr, u32 BaseAddress) +{ + PrivateData.AppData = InstancePtr; + InstancePtr->PrivateData = (void *)&PrivateData; + + return XUsbPsu_CfgInitialize((struct XUsbPsu *)InstancePtr->PrivateData, + ConfigPtr, BaseAddress); +} + +void Set_Ch9Handler( + void *InstancePtr, + void (*func)(struct Usb_DevData *, SetupPacket *)) +{ + XUsbPsu_set_ch9handler((struct XUsbPsu *)InstancePtr, func); +} + +void Set_RstHandler(void *InstancePtr, void (*func)(struct Usb_DevData *)) +{ + XUsbPsu_set_rsthandler((struct XUsbPsu *)InstancePtr, func); +} + +void Set_Disconnect(void *InstancePtr, void (*func)(struct Usb_DevData *)) +{ + XUsbPsu_set_disconnect((struct XUsbPsu *)InstancePtr, func); +} + +void EpConfigure(void *UsbInstance, u8 EndpointNo, u8 dir, u32 Type) +{ + (void)UsbInstance; + (void)EndpointNo; + (void)dir; + (void)Type; +} + +s32 ConfigureDevice(void *UsbInstance, u8 *MemPtr, u32 memSize) +{ + (void)UsbInstance; + (void)MemPtr; + (void)memSize; + return XST_SUCCESS; +} + +void SetEpHandler(void *InstancePtr, u8 Epnum, + u8 Dir, void (*Handler)(void *, u32, u32)) +{ + XUsbPsu_SetEpHandler((struct XUsbPsu *)InstancePtr, Epnum, Dir, Handler); +} + +s32 Usb_Start(void *InstancePtr) +{ + return XUsbPsu_Start((struct XUsbPsu *)InstancePtr); +} + +void *Get_DrvData(void *InstancePtr) +{ + return XUsbPsu_get_drvdata((struct XUsbPsu *)InstancePtr); +} + +void Set_DrvData(void *InstancePtr, void *data) +{ + XUsbPsu_set_drvdata((struct XUsbPsu *)InstancePtr, data); +} + +s32 IsEpStalled(void *InstancePtr, u8 Epnum, u8 Dir) +{ + return XUsbPsu_IsEpStalled((struct XUsbPsu *)InstancePtr, Epnum, Dir); +} + +void EpClearStall(void *InstancePtr, u8 Epnum, u8 Dir) +{ + XUsbPsu_EpClearStall((struct XUsbPsu *)InstancePtr, Epnum, Dir); +} + +s32 EpBufferSend(void *InstancePtr, u8 UsbEp, + u8 *BufferPtr, u32 BufferLen) +{ + if (UsbEp == 0 && BufferLen == 0) + return XST_SUCCESS; + else + return XUsbPsu_EpBufferSend((struct XUsbPsu *)InstancePtr, + UsbEp, BufferPtr, BufferLen); + +} + +s32 EpBufferRecv(void *InstancePtr, u8 UsbEp, + u8 *BufferPtr, u32 Length) +{ + return XUsbPsu_EpBufferRecv((struct XUsbPsu *)InstancePtr, UsbEp, + BufferPtr, Length); +} + +void EpSetStall(void *InstancePtr, u8 Epnum, u8 Dir) +{ + XUsbPsu_EpSetStall((struct XUsbPsu *)InstancePtr, Epnum, Dir); +} + +void SetBits(void *InstancePtr, u32 TestSel) +{ + (void)InstancePtr; + (void)TestSel; +} + +s32 SetDeviceAddress(void *InstancePtr, u16 Addr) +{ + return XUsbPsu_SetDeviceAddress((struct XUsbPsu *)InstancePtr, Addr); +} + +s32 SetU1SleepTimeout(void *InstancePtr, u8 Sleep) +{ + return XUsbPsu_SetU1SleepTimeout((struct XUsbPsu *)InstancePtr, Sleep); +} + +s32 SetU2SleepTimeout(void *InstancePtr, u8 Sleep) +{ + return XUsbPsu_SetU2SleepTimeout((struct XUsbPsu *)InstancePtr, Sleep); +} + +s32 AcceptU1U2Sleep(void *InstancePtr) +{ + return XUsbPsu_AcceptU1U2Sleep((struct XUsbPsu *)InstancePtr); + +} + +s32 U1SleepEnable(void *InstancePtr) +{ + return XUsbPsu_U1SleepEnable((struct XUsbPsu *)InstancePtr); +} + +s32 U2SleepEnable(void *InstancePtr) +{ + return XUsbPsu_U2SleepEnable((struct XUsbPsu *)InstancePtr); +} + +s32 U1SleepDisable(void *InstancePtr) +{ + return XUsbPsu_U1SleepDisable((struct XUsbPsu *)InstancePtr); +} + +s32 U2SleepDisable(void *InstancePtr) +{ + return XUsbPsu_U2SleepDisable((struct XUsbPsu *)InstancePtr); +} + +s32 EpEnable(void *InstancePtr, u8 UsbEpNum, u8 Dir, u16 Maxsize, u8 Type) +{ + return XUsbPsu_EpEnable((struct XUsbPsu *)InstancePtr, UsbEpNum, Dir, + Maxsize, Type, FALSE); +} + +s32 EpDisable(void *InstancePtr, u8 UsbEpNum, u8 Dir) +{ + return XUsbPsu_EpDisable((struct XUsbPsu *)InstancePtr, UsbEpNum, Dir); +} + +void Usb_SetSpeed(void *InstancePtr, u32 Speed) +{ + XUsbPsu_SetSpeed((struct XUsbPsu *)InstancePtr, Speed); +} + +/****************************************************************************/ +/** +* Sets speed of the Core for connecting to Host +* +* @param InstancePtr is a pointer to the Usb_DevData instance. +* +* @return XST_SUCCESS else XST_FAILURE +* +* @note None. +* +*****************************************************************************/ +s32 IsSuperSpeed(struct Usb_DevData *InstancePtr) +{ + if (InstancePtr->Speed != XUSBPSU_SPEED_SUPER) { + return XST_FAILURE; + } + + return XST_SUCCESS; +} + +/****************************************************************************/ +/** +* Set the Config state +* +* @param InstancePtr is a private member of Usb_DevData instance. +* @param Flag is the config value. +* +* @return None. +* +* @note None. +* +*****************************************************************************/ +void SetConfigDone(void *InstancePtr, u8 Flag) +{ + ((struct XUsbPsu *)InstancePtr)->IsConfigDone = Flag; +} + +/****************************************************************************/ +/** +* Get the Config state +* +* @param InstancePtr is a private member of Usb_DevData instance. +* +* @return Current configuration value +* +* @note None. +* +*****************************************************************************/ +u8 GetConfigDone(void *InstancePtr) +{ + return (((struct XUsbPsu *)InstancePtr)->IsConfigDone); +} + +void Ep0StallRestart(void *InstancePtr) +{ + XUsbPsu_Ep0StallRestart((struct XUsbPsu *)InstancePtr); +} + +/******************************************************************************/ +/** + * This function sets Endpoint Interval. + * + * @param InstancePtr is a private member of Usb_DevData instance. + * @param UsbEpnum is Endpoint Number. + * @param Dir is Endpoint Direction(In/Out). + * @param Interval is the data transfer service interval + * + * @return None. + * + * @note None. + * + ******************************************************************************/ +void SetEpInterval(void *InstancePtr, u8 UsbEpNum, u8 Dir, u32 Interval) +{ + u32 PhyEpNum; + struct XUsbPsu_Ep *Ept; + + PhyEpNum = PhysicalEp(UsbEpNum, Dir); + Ept = &((struct XUsbPsu *)InstancePtr)->eps[PhyEpNum]; + Ept->Interval = Interval; +} + +void StopTransfer(void *InstancePtr, u8 EpNum, u8 Dir) +{ + XUsbPsu_StopTransfer((struct XUsbPsu *)InstancePtr, EpNum, Dir, TRUE); +} + +s32 StreamOn(void *InstancePtr, u8 EpNum, u8 Dir, u8 *BufferPtr) +{ + (void)InstancePtr; + (void)EpNum; + (void)Dir; + (void)BufferPtr; + /* Streaming will start on TxferNotReady Event */ + return XST_SUCCESS; +} + +void StreamOff(void *InstancePtr, u8 EpNum, u8 Dir) +{ + StopTransfer((struct XUsbPsu *)InstancePtr, EpNum, Dir); +} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.h new file mode 100644 index 000000000..d21072bcd --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusb_wrapper.h @@ -0,0 +1,190 @@ +/****************************************************************************** + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * + ******************************************************************************/ +/*****************************************************************************/ +/** + * + * @file xusb_wrapper.h + * + * This file contains declarations for USBPSU Driver wrappers. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  	Date     Changes
      + * ----- ---- 	-------- -------------------------------------------------------
      + *  1.0  BK	12/01/18 First release
      + *	 MYK	12/01/18 Added hibernation support for device mode
      + *	 vak	22/01/18 Added Microblaze support for usbpsu driver
      + *	 vak	13/03/18 Moved the setup interrupt system calls from driver to
      + *			 example.
      + *
      + * 
      + * + *****************************************************************************/ + +#ifndef XUSB_WRAPPER_H /* Prevent circular inclusions */ +#define XUSB_WRAPPER_H /* by using protection macros */ + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************** Include Files ********************************/ +#include "xusbpsu.h" + +/************************** Constant Definitions ****************************/ +#define USB_DEVICE_ID XPAR_XUSBPSU_0_DEVICE_ID + +#define USB_EP_DIR_IN XUSBPSU_EP_DIR_IN +#define USB_EP_DIR_OUT XUSBPSU_EP_DIR_OUT + +#define USB_DIR_OUT 0U /* to device */ +#define USB_DIR_IN 0x80U /* to host */ + +/** + * @name Endpoint Address + * @{ + */ +#define USB_EP1_IN 0x81 +#define USB_EP1_OUT 0x01 +#define USB_EP2_IN 0x82 +#define USB_EP2_OUT 0x02 +/* @} */ + +/** + * @name Endpoint Type + * @{ + */ +#define USB_EP_TYPE_CONTROL XUSBPSU_ENDPOINT_XFER_CONTROL +#define USB_EP_TYPE_ISOCHRONOUS XUSBPSU_ENDPOINT_XFER_ISOC +#define USB_EP_TYPE_BULK XUSBPSU_ENDPOINT_XFER_BULK +#define USB_EP_TYPE_INTERRUPT XUSBPSU_ENDPOINT_XFER_INT +/* @} */ + +#define USB_ENDPOINT_NUMBER_MASK 0x0f /* in bEndpointAddress */ +#define USB_ENDPOINT_DIR_MASK 0x80 + +/* + * Device States + */ +#define USB_STATE_ATTACHED XUSBPSU_STATE_ATTACHED +#define USB_STATE_POWERED XUSBPSU_STATE_POWERED +#define USB_STATE_DEFAULT XUSBPSU_STATE_DEFAULT +#define USB_STATE_ADDRESS XUSBPSU_STATE_ADDRESS +#define USB_STATE_CONFIGURED XUSBPSU_STATE_CONFIGURED +#define USB_STATE_SUSPENDED XUSBPSU_STATE_SUSPENDED + +#define XUSBPSU_REQ_REPLY_LEN 1024 /**< Max size of reply buffer. */ +#define USB_REQ_REPLY_LEN XUSBPSU_REQ_REPLY_LEN + +/* + * Device Speeds + */ +#define USB_SPEED_UNKNOWN XUSBPSU_SPEED_UNKNOWN +#define USB_SPEED_LOW XUSBPSU_SPEED_LOW +#define USB_SPEED_FULL XUSBPSU_SPEED_FULL +#define USB_SPEED_HIGH XUSBPSU_SPEED_HIGH +#define USB_SPEED_SUPER XUSBPSU_SPEED_SUPER + +/* Device Configuration Speed */ +#define USB_DCFG_SPEED_MASK XUSBPSU_DCFG_SPEED_MASK +#define USB_DCFG_SUPERSPEED XUSBPSU_DCFG_SUPERSPEED +#define USB_DCFG_HIGHSPEED XUSBPSU_DCFG_HIGHSPEED +#define USB_DCFG_FULLSPEED2 XUSBPSU_DCFG_FULLSPEED2 +#define USB_DCFG_LOWSPEED XUSBPSU_DCFG_LOWSPEED +#define USB_DCFG_FULLSPEED1 XUSBPSU_DCFG_FULLSPEED1 + +#define USB_TEST_J XUSBPSU_TEST_J +#define USB_TEST_K XUSBPSU_TEST_K +#define USB_TEST_SE0_NAK XUSBPSU_TEST_SE0_NAK +#define USB_TEST_PACKET XUSBPSU_TEST_PACKET +#define USB_TEST_FORCE_ENABLE XUSBPSU_TEST_FORCE_ENABLE + +/* TODO: If we enable this macro, reconnection is failed with 2017.3 */ +#define USB_LPM_MODE XUSBPSU_LPM_MODE + +/* + * return Physical EP number as dwc3 mapping + */ +#define PhysicalEp(epnum, direction) (((epnum) << 1 ) | (direction)) + +/**************************** Type Definitions ******************************/ + +/************************** Variable Definitions *****************************/ +struct XUsbPsu PrivateData; + +/***************** Macros (Inline Functions) Definitions *********************/ +Usb_Config* LookupConfig(u16 DeviceId); +void CacheInit(void); +s32 CfgInitialize(struct Usb_DevData *InstancePtr, + Usb_Config *ConfigPtr, u32 BaseAddress); +void Set_Ch9Handler(void *InstancePtr, + void (*func)(struct Usb_DevData *, SetupPacket *)); +void Set_RstHandler(void *InstancePtr, void (*func)(struct Usb_DevData *)); +void Set_Disconnect(void *InstancePtr, void (*func)(struct Usb_DevData *)); +void EpConfigure(void *UsbInstance, u8 EndpointNo, u8 dir, u32 Type); +s32 ConfigureDevice(void *UsbInstance, u8 *MemPtr, u32 memSize); +void SetEpHandler(void *InstancePtr, u8 Epnum, + u8 Dir, void (*Handler)(void *, u32, u32)); +s32 Usb_Start(void *InstancePtr); +void *Get_DrvData(void *InstancePtr); +void Set_DrvData(void *InstancePtr, void *data); +s32 IsEpStalled(void *InstancePtr, u8 Epnum, u8 Dir); +void EpClearStall(void *InstancePtr, u8 Epnum, u8 Dir); +s32 EpBufferSend(void *InstancePtr, u8 UsbEp, + u8 *BufferPtr, u32 BufferLen); +s32 EpBufferRecv(void *InstancePtr, u8 UsbEp, + u8 *BufferPtr, u32 Length); +void EpSetStall(void *InstancePtr, u8 Epnum, u8 Dir); +void SetBits(void *InstancePtr, u32 TestSel); +s32 SetDeviceAddress(void *InstancePtr, u16 Addr); +s32 SetU1SleepTimeout(void *InstancePtr, u8 Sleep); +s32 SetU2SleepTimeout(void *InstancePtr, u8 Sleep); +s32 AcceptU1U2Sleep(void *InstancePtr); +s32 U1SleepEnable(void *InstancePtr); +s32 U2SleepEnable(void *InstancePtr); +s32 U1SleepDisable(void *InstancePtr); +s32 U2SleepDisable(void *InstancePtr); +s32 EpEnable(void *InstancePtr, u8 UsbEpNum, u8 Dir, u16 Maxsize, u8 Type); +s32 EpDisable(void *InstancePtr, u8 UsbEpNum, u8 Dir); +void Usb_SetSpeed(void *InstancePtr, u32 Speed); +s32 IsSuperSpeed(struct Usb_DevData *InstancePtr); +void SetConfigDone(void *InstancePtr, u8 Flag); +u8 GetConfigDone(void *InstancePtr); +void Ep0StallRestart(void *InstancePtr); +void SetEpInterval(void *InstancePtr, u8 UsbEpNum, u8 Dir, u32 Interval); +void StopTransfer(void *InstancePtr, u8 EpNum, u8 Dir); +s32 StreamOn(void *InstancePtr, u8 EpNum, u8 Dir, u8 *BufferPtr); +void StreamOff(void *InstancePtr, u8 EpNum, u8 Dir); + +#endif /* End of protection macro. */ +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu.c similarity index 95% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu.c index c39d11a2f..245fba272 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu.c @@ -33,7 +33,7 @@ /** * * @file xusbpsu.c -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * *
      @@ -44,14 +44,16 @@
       * ----- -----  -------- -----------------------------------------------------
       * 1.0   sg    06/16/16 First release
       * 1.1   sg    10/24/16 Added new function XUsbPsu_IsSuperSpeed
      -*
      +* 1.4	bk    12/01/18 Modify USBPSU driver code to fit USB common example code
      +*		       for all USB IPs.
      +*	myk   12/01/18 Added hibernation support for device mode
       * 
      * *****************************************************************************/ /***************************** Include Files ********************************/ -#include "xusbpsu.h" +#include "xusb_wrapper.h" /************************** Constant Definitions *****************************/ @@ -226,19 +228,20 @@ void XUsbPsu_PhyReset(struct XUsbPsu *InstancePtr) ******************************************************************************/ void XUsbPsu_EventBuffersSetup(struct XUsbPsu *InstancePtr) { - struct XUsbPsu_EvtBuffer *Evt; + struct XUsbPsu_EvtBuffer *Evt; Xil_AssertVoid(InstancePtr != NULL); Evt = &InstancePtr->Evt; Evt->BuffAddr = (void *)InstancePtr->EventBuffer; + Evt->Offset = 0; XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTADRLO(0), - (UINTPTR)InstancePtr->EventBuffer); + (UINTPTR)InstancePtr->EventBuffer); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTADRHI(0), - ((UINTPTR)(InstancePtr->EventBuffer) >> 16U) >> 16U); + ((UINTPTR)(InstancePtr->EventBuffer) >> 16U) >> 16U); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTSIZ(0), - XUSBPSU_GEVNTSIZ_SIZE(sizeof(InstancePtr->EventBuffer))); + XUSBPSU_GEVNTSIZ_SIZE(sizeof(InstancePtr->EventBuffer))); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTCOUNT(0), 0); } @@ -321,9 +324,9 @@ s32 XUsbPsu_CoreInit(struct XUsbPsu *InstancePtr) XUsbPsu_PhyReset(InstancePtr); RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GCTL); - RegVal &= ~XUSBPSU_GCTL_SCALEDOWN_MASK; - RegVal &= ~XUSBPSU_GCTL_DISSCRAMBLE; - RegVal |= XUSBPSU_GCTL_U2EXIT_LFPS; + RegVal &= ~XUSBPSU_GCTL_SCALEDOWN_MASK; + RegVal &= ~XUSBPSU_GCTL_DISSCRAMBLE; + RegVal |= XUSBPSU_GCTL_U2EXIT_LFPS; Hwparams1 = XUsbPsu_ReadHwParams(InstancePtr, 1U); @@ -333,7 +336,11 @@ s32 XUsbPsu_CoreInit(struct XUsbPsu *InstancePtr) break; case XUSBPSU_GHWPARAMS1_EN_PWROPT_HIB: - /* enable hibernation here */ + /* enable hibernation here */ +#ifdef XUSBPSU_HIBERNATION_ENABLE + RegVal |= XUSBPSU_GCTL_GBLHIBERNATIONEN; + InstancePtr->HasHibernation = 1; +#endif break; default: @@ -343,6 +350,11 @@ s32 XUsbPsu_CoreInit(struct XUsbPsu *InstancePtr) XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GCTL, RegVal); +#ifdef XUSBPSU_HIBERNATION_ENABLE + if (InstancePtr->HasHibernation) + XUsbPsu_InitHibernation(InstancePtr); +#endif + return XST_SUCCESS; } @@ -441,7 +453,7 @@ void XUsbPsu_DisableIntr(struct XUsbPsu *InstancePtr, u32 Mask) s32 XUsbPsu_CfgInitialize(struct XUsbPsu *InstancePtr, XUsbPsu_Config *ConfigPtr, u32 BaseAddress) { - int Status; + s32 Status; u32 RegVal; @@ -471,10 +483,10 @@ s32 XUsbPsu_CfgInitialize(struct XUsbPsu *InstancePtr, XUsbPsu_SetMode(InstancePtr, XUSBPSU_GCTL_PRTCAP_DEVICE); - /* - * Setting to max speed to support SS and HS - */ - XUsbPsu_SetSpeed(InstancePtr, XUSBPSU_DCFG_SUPERSPEED); + /* + * Setting to max speed to support SS and HS + */ + XUsbPsu_SetSpeed(InstancePtr, XUSBPSU_DCFG_SUPERSPEED); (void)XUsbPsu_SetDeviceAddress(InstancePtr, 0U); @@ -694,7 +706,7 @@ s32 XUsbPsu_SetDeviceAddress(struct XUsbPsu *InstancePtr, u16 Addr) Xil_AssertNonvoid(InstancePtr != NULL); Xil_AssertNonvoid(Addr <= 127U); - if (InstancePtr->State == XUSBPSU_STATE_CONFIGURED) { + if (InstancePtr->AppData->State == XUSBPSU_STATE_CONFIGURED) { return XST_FAILURE; } @@ -704,30 +716,10 @@ s32 XUsbPsu_SetDeviceAddress(struct XUsbPsu *InstancePtr, u16 Addr) XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCFG, RegVal); if (Addr) { - InstancePtr->State = XUSBPSU_STATE_ADDRESS; + InstancePtr->AppData->State = XUSBPSU_STATE_ADDRESS; } else { - InstancePtr->State = XUSBPSU_STATE_DEFAULT; - } - - return XST_SUCCESS; -} - -/****************************************************************************/ -/** -* Sets speed of the Core for connecting to Host -* -* @param InstancePtr is a pointer to the XUsbPsu instance. -* -* @return XST_SUCCESS else XST_FAILURE -* -* @note None. -* -*****************************************************************************/ -s32 XUsbPsu_IsSuperSpeed(struct XUsbPsu *InstancePtr) -{ - if (InstancePtr->Speed != XUSBPSU_SPEED_SUPER) { - return XST_FAILURE; + InstancePtr->AppData->State = XUSBPSU_STATE_DEFAULT; } return XST_SUCCESS; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu.h similarity index 78% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu.h index a1366487b..2d1498ac1 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu.h @@ -33,7 +33,7 @@ /** * * @file xusbpsu.h -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * @details * @@ -46,6 +46,22 @@ * 1.0 sg 06/06/16 First release * 1.1 sg 10/24/16 Update for backward compatability * Added XUsbPsu_IsSuperSpeed function in xusbpsu.c +* 1.2 mn 01/20/17 removed unnecessary declaration of +* XUsbPsu_SetConfiguration in xusbpsu.h +* 1.2 mn 01/30/17 Corrected InstancePtr->UnalignedTx with +* Ept->UnalignedTx in xusbpsu_controltransfers.c +* 1.2 mus 02/10/17 Updated data structures to fix compilation errors for IAR +* compiler +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/10/17 Modified filename tag to include the file in doxygen +* examples. +* 1.4 bk 12/01/18 Modify USBPSU driver code to fit USB common example code +* for all USB IPs. +* myk 12/01/18 Added hibernation support for device mode +* vak 22/01/18 Added changes for supporting microblaze platform +* vak 13/03/18 Moved the setup interrupt system calls from driver to +* example. * * * @@ -58,17 +74,22 @@ extern "C" { #endif /***************************** Include Files ********************************/ + +/* Enable XUSBPSU_HIBERNATION_ENABLE to enable hibernation */ +//#define XUSBPSU_HIBERNATION_ENABLE 1 + #include "xparameters.h" #include "xil_types.h" #include "xil_assert.h" #include "xstatus.h" #include "xusbpsu_hw.h" #include "xil_io.h" + /* * The header sleep.h and API usleep() can only be used with an arm design. * MB_Sleep() is used for microblaze design. */ -#if defined (__arm__) || defined (__aarch64__) +#if defined (__arm__) || defined (__aarch64__) || (__ICCARM__) #include "sleep.h" #endif @@ -79,16 +100,19 @@ extern "C" { /************************** Constant Definitions ****************************/ +#define NO_OF_TRB_PER_EP 2 + +#ifdef PLATFORM_ZYNQMP #define ALIGNMENT_CACHELINE __attribute__ ((aligned(64))) +#else +#define ALIGNMENT_CACHELINE __attribute__ ((aligned(32))) +#endif #define XUSBPSU_PHY_TIMEOUT 5000U /* in micro seconds */ #define XUSBPSU_EP_DIR_IN 1U #define XUSBPSU_EP_DIR_OUT 0U -#define XUSBPSU_ENDPOINT_NUMBER_MASK 0x0f /* in bEndpointAddress */ -#define XUSBPSU_ENDPOINT_DIR_MASK 0x80 - #define XUSBPSU_ENDPOINT_XFERTYPE_MASK 0x03 /* in bmAttributes */ #define XUSBPSU_ENDPOINT_XFER_CONTROL 0U #define XUSBPSU_ENDPOINT_XFER_ISOC 1U @@ -253,15 +277,6 @@ typedef enum { /**************************** Type Definitions ******************************/ -/** - * This typedef contains configuration information for the XUSBPSU - * device. - */ -typedef struct { - u16 DeviceId; /**< Unique ID of controller */ - u32 BaseAddress; /**< Core register base address */ -} XUsbPsu_Config; - /** * Software Event buffer representation */ @@ -275,13 +290,20 @@ struct XUsbPsu_EvtBuffer { /** * Transfer Request Block - Hardware format */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif struct XUsbPsu_Trb { u32 BufferPtrLow; u32 BufferPtrHigh; u32 Size; u32 Ctrl; +#if defined (__ICCARM__) +}; +#pragma pack(pop) +#else } __attribute__((packed)); - +#endif /* * Endpoint Parameters @@ -295,13 +317,21 @@ struct XUsbPsu_EpParams { /** * USB Standard Control Request */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif typedef struct { u8 bRequestType; u8 bRequest; u16 wValue; u16 wIndex; u16 wLength; +#if defined (__ICCARM__) +}SetupPacket; +#pragma pack(pop) +#else } __attribute__ ((packed)) SetupPacket; +#endif /** * Endpoint representation @@ -312,11 +342,22 @@ struct XUsbPsu_Ep { * when data is sent for IN Ep * and received for OUT Ep */ - struct XUsbPsu_Trb EpTrb ALIGNMENT_CACHELINE;/**< TRB used by endpoint */ +#if defined (__ICCARM__) + #pragma data_alignment = 64 + struct XUsbPsu_Trb EpTrb[NO_OF_TRB_PER_EP + 1]; /**< One extra Trb is for Link Trb */ + #pragma data_alignment = 4 +#else + struct XUsbPsu_Trb EpTrb[NO_OF_TRB_PER_EP + 1] ALIGNMENT_CACHELINE;/**< TRB used by endpoint */ +#endif u32 EpStatus; /**< Flags to represent Endpoint status */ + u32 EpSavedState; /**< Endpoint status saved at the time of hibernation */ u32 RequestedBytes; /**< RequestedBytes for transfer */ u32 BytesTxed; /**< Actual Bytes transferred */ + u32 Interval; /**< Data transfer service interval */ + u32 TrbEnqueue; + u32 TrbDequeue; u16 MaxSize; /**< Size of endpoint */ + u16 CurUf; /**< current microframe */ u8 *BufferPtr; /**< Buffer location */ u8 ResourceIndex; /**< Resource Index assigned to * Endpoint by core @@ -330,13 +371,39 @@ struct XUsbPsu_Ep { u8 UnalignedTx; }; +/** + * This typedef contains configuration information for the USB + * device. + */ +typedef struct { + u16 DeviceId; /**< Unique ID of controller */ + u32 BaseAddress; /**< Core register base address */ + u8 IsCacheCoherent; /**< Describes whether Cache Coherent or not */ +} XUsbPsu_Config; + +typedef XUsbPsu_Config Usb_Config; + +struct Usb_DevData { + u8 Speed; + u8 State; + + void *PrivateData; +}; + /** * USB Device Controller representation */ struct XUsbPsu { +#if defined (__ICCARM__) + #pragma data_alignment = 64 + SetupPacket SetupData; + struct XUsbPsu_Trb Ep0_Trb; + #pragma data_alignment = 4 +#else SetupPacket SetupData ALIGNMENT_CACHELINE; /**< Setup Packet buffer */ struct XUsbPsu_Trb Ep0_Trb ALIGNMENT_CACHELINE; +#endif /**< TRB for control transfers */ XUsbPsu_Config *ConfigPtr; /**< Configuration info pointer */ struct XUsbPsu_Ep eps[XUSBPSU_ENDPOINTS_NUM]; /**< Endpoints */ @@ -345,32 +412,48 @@ struct XUsbPsu { u32 BaseAddress; /**< Core register base address */ u32 DevDescSize; u32 ConfigDescSize; - void (*Chapter9)(struct XUsbPsu *, SetupPacket *); - void (*ClassHandler)(struct XUsbPsu *, SetupPacket *); + struct Usb_DevData *AppData; + void (*Chapter9)(struct Usb_DevData *, SetupPacket *); + void (*ResetIntrHandler)(struct Usb_DevData *); + void (*DisconnectIntrHandler)(struct Usb_DevData *); void *DevDesc; void *ConfigDesc; +#if defined(__ICCARM__) + #pragma data_alignment = XUSBPSU_EVENT_BUFFERS_SIZE + u8 EventBuffer[XUSBPSU_EVENT_BUFFERS_SIZE]; + #pragma data_alignment = 4 +#else u8 EventBuffer[XUSBPSU_EVENT_BUFFERS_SIZE] __attribute__((aligned(XUSBPSU_EVENT_BUFFERS_SIZE))); +#endif u8 NumOutEps; u8 NumInEps; u8 ControlDir; u8 IsInTestMode; u8 TestMode; - u8 Speed; - u8 State; u8 Ep0State; u8 LinkState; u8 UnalignedTx; u8 IsConfigDone; u8 IsThreeStage; + u8 IsHibernated; /**< Hibernated state */ + u8 HasHibernation; /**< Has hibernation support */ + void *data_ptr; /* pointer for storing applications data */ }; +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif struct XUsbPsu_Event_Type { u32 Is_DevEvt:1; u32 Type:7; u32 Reserved8_31:24; +#if defined (__ICCARM__) +}; +#pragma pack(pop) +#else } __attribute__((packed)); - +#endif /** * struct XUsbPsu_event_depvt - Device Endpoint Events * @Is_EpEvt: indicates this is an endpoint event @@ -390,6 +473,9 @@ struct XUsbPsu_Event_Type { * @Parameters: Parameters of the current event. Refer to databook for * more information. */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif struct XUsbPsu_Event_Epevt { u32 Is_EpEvt:1; u32 Epnumber:5; @@ -397,8 +483,12 @@ struct XUsbPsu_Event_Epevt { u32 Reserved11_10:2; u32 Status:4; u32 Parameters:16; +#if defined (__ICCARM__) +}; +#pragma pack(pop) +#else } __attribute__((packed)); - +#endif /** * struct XUsbPsu_event_devt - Device Events * @Is_DevEvt: indicates this is a non-endpoint event @@ -421,6 +511,9 @@ struct XUsbPsu_Event_Epevt { * @Event_Info: Information about this event * @Reserved31_25: Reserved, not used */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif struct XUsbPsu_Event_Devt { u32 Is_DevEvt:1; u32 Device_Event:7; @@ -428,8 +521,12 @@ struct XUsbPsu_Event_Devt { u32 Reserved15_12:4; u32 Event_Info:9; u32 Reserved31_25:7; +#if defined (__ICCARM__) +}; +#pragma pack(pop) +#else } __attribute__((packed)); - +#endif /** * struct XUsbPsu_event_gevt - Other Core Events * @one_bit: indicates this is a non-endpoint event (not used) @@ -437,13 +534,20 @@ struct XUsbPsu_Event_Devt { * @phy_port_number: self-explanatory * @reserved31_12: Reserved, not used. */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif struct XUsbPsu_Event_Gevt { u32 Is_GlobalEvt:1; u32 Device_Event:7; u32 Phy_Port_Number:4; u32 Reserved31_12:20; +#if defined (__ICCARM__) +}; +#pragma pack(pop) +#else } __attribute__((packed)); - +#endif /** * union XUsbPsu_event - representation of Event Buffer contents * @raw: raw 32-bit event @@ -461,16 +565,22 @@ union XUsbPsu_Event { }; /***************** Macros (Inline Functions) Definitions *********************/ - +#if defined (__ICCARM__) +#define IS_ALIGNED(x, a) (((x) & ((u32)(a) - 1)) == 0U) +#else #define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0U) +#endif +#if defined (__ICCARM__) +#define roundup(x, y) (((((x) + (u32)(y - 1)) / (u32)y) * (u32)y)) + +#else #define roundup(x, y) ( \ -{ \ - const typeof(y) y__ = (y); \ - (((x) + (u32)(y__ - 1)) / (u32)y__) * (u32)y__; \ -} \ + (((x) + (u32)((const typeof(y))y - 1)) / \ + (u32)((const typeof(y))y)) * \ + (u32)((const typeof(y))y) \ ) - +#endif #define DECLARE_DEV_DESC(Instance, desc) \ (Instance).DevDesc = &(desc); \ (Instance).DevDescSize = sizeof((desc)) @@ -479,6 +589,32 @@ union XUsbPsu_Event { (Instance).ConfigDesc = &(desc); \ (Instance).ConfigDescSize = sizeof((desc)) +static inline void *XUsbPsu_get_drvdata(struct XUsbPsu *InstancePtr) { + return InstancePtr->data_ptr; +} + +static inline void XUsbPsu_set_drvdata(struct XUsbPsu *InstancePtr, void *data) { + InstancePtr->data_ptr = data; +} + +static inline void XUsbPsu_set_ch9handler( + struct XUsbPsu *InstancePtr, + void (*func)(struct Usb_DevData *, SetupPacket *)) { + InstancePtr->Chapter9 = func; +} + +static inline void XUsbPsu_set_rsthandler( + struct XUsbPsu *InstancePtr, + void (*func)(struct Usb_DevData *)) { + InstancePtr->ResetIntrHandler = func; +} + +static inline void XUsbPsu_set_disconnect( + struct XUsbPsu *InstancePtr, + void (*func)(struct Usb_DevData *)) { + InstancePtr->DisconnectIntrHandler = func; +} + /************************** Function Prototypes ******************************/ /* @@ -510,7 +646,6 @@ s32 XUsbPsu_SendGenericCmd(struct XUsbPsu *InstancePtr, s32 Cmd, u32 Param); void XUsbPsu_SetSpeed(struct XUsbPsu *InstancePtr, u32 Speed); s32 XUsbPsu_SetDeviceAddress(struct XUsbPsu *InstancePtr, u16 Addr); -s32 XUsbPsu_IsSuperSpeed(struct XUsbPsu *InstancePtr); s32 XUsbPsu_SetU1SleepTimeout(struct XUsbPsu *InstancePtr, u8 Sleep); s32 XUsbPsu_SetU2SleepTimeout(struct XUsbPsu *InstancePtr, u8 Sleep); s32 XUsbPsu_AcceptU1U2Sleep(struct XUsbPsu *InstancePtr); @@ -525,23 +660,25 @@ s32 XUsbPsu_U2SleepDisable(struct XUsbPsu *InstancePtr); struct XUsbPsu_EpParams *XUsbPsu_GetEpParams(struct XUsbPsu *InstancePtr); u32 XUsbPsu_EpGetTransferIndex(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir); -const char *XUsbPsu_EpCmdString(u8 Cmd); s32 XUsbPsu_SendEpCmd(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, u32 Cmd, struct XUsbPsu_EpParams *Params); s32 XUsbPsu_StartEpConfig(struct XUsbPsu *InstancePtr, u32 UsbEpNum, u8 Dir); s32 XUsbPsu_SetEpConfig(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, - u16 Size, u8 Type); + u16 Size, u8 Type, u8 Restore); s32 XUsbPsu_SetXferResource(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir); s32 XUsbPsu_EpEnable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, - u16 Maxsize, u8 Type); + u16 Maxsize, u8 Type, u8 Restore); s32 XUsbPsu_EpDisable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir); s32 XUsbPsu_EnableControlEp(struct XUsbPsu *InstancePtr, u16 Size); void XUsbPsu_InitializeEps(struct XUsbPsu *InstancePtr); -void XUsbPsu_StopTransfer(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir); +void XUsbPsu_StopTransfer(struct XUsbPsu *InstancePtr, u8 UsbEpNum, + u8 Dir, u8 Force); +void XUsbPsu_SaveEndpointState(struct XUsbPsu *InstancePtr, + struct XUsbPsu_Ep *Ept); void XUsbPsu_ClearStalls(struct XUsbPsu *InstancePtr); s32 XUsbPsu_EpBufferSend(struct XUsbPsu *InstancePtr, u8 UsbEp, - u8 *BufferPtr, u32 BufferLen); + u8 *BufferPtr, u32 BufferLen); s32 XUsbPsu_EpBufferRecv(struct XUsbPsu *InstancePtr, u8 UsbEp, u8 *BufferPtr, u32 Length); void XUsbPsu_EpSetStall(struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir); @@ -551,14 +688,14 @@ void XUsbPsu_SetEpHandler(struct XUsbPsu *InstancePtr, u8 Epnum, s32 XUsbPsu_IsEpStalled(struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir); void XUsbPsu_EpXferComplete(struct XUsbPsu *InstancePtr, const struct XUsbPsu_Event_Epevt *Event); +void XUsbPsu_EpXferNotReady(struct XUsbPsu *InstancePtr, + const struct XUsbPsu_Event_Epevt *Event); /* * Functions in xusbpsu_controltransfers.c */ s32 XUsbPsu_RecvSetup(struct XUsbPsu *InstancePtr); void XUsbPsu_Ep0StallRestart(struct XUsbPsu *InstancePtr); -s32 XUsbPsu_SetConfiguration(struct XUsbPsu *InstancePtr, - SetupPacket *Ctrl); void XUsbPsu_Ep0DataDone(struct XUsbPsu *InstancePtr, const struct XUsbPsu_Event_Epevt *Event); void XUsbPsu_Ep0StatusDone(struct XUsbPsu *InstancePtr, @@ -595,6 +732,14 @@ void XUsbPsu_EventHandler(struct XUsbPsu *InstancePtr, void XUsbPsu_EventBufferHandler(struct XUsbPsu *InstancePtr); void XUsbPsu_IntrHandler(void *XUsbPsuInstancePtr); +#ifdef XUSBPSU_HIBERNATION_ENABLE +void XUsbPsu_InitHibernation(struct XUsbPsu *InstancePtr); +void Xusbpsu_HibernationIntr(struct XUsbPsu *InstancePtr); +void XUsbPsu_WakeUpIntrHandler(void *XUsbPsuInstancePtr); +void XUsbPsu_WakeupIntr(struct XUsbPsu *InstancePtr); +s32 XUsbPsu_SetupScratchpad(struct XUsbPsu *InstancePtr); +#endif + /* * Functions in xusbpsu_sinit.c */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_controltransfers.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_controltransfers.c similarity index 90% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_controltransfers.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_controltransfers.c index b3a93dc63..19be417fb 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_controltransfers.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_controltransfers.c @@ -42,19 +42,20 @@ * Ver Who Date Changes * ----- ---- -------- ------------------------------------------------------- * 1.0 sg 06/06/16 First release +* 1.3 vak 04/03/17 Added CCI support for USB +* 1.4 bk 12/01/18 Modify USBPSU driver code to fit USB common example code +* for all USB IPs. * * * *****************************************************************************/ /***************************** Include Files *********************************/ - -#include "xusbpsu.h" #include "xusbpsu_endpoint.h" -/************************** Constant Definitions *****************************/ +#include "sleep.h" +#include "xusb_wrapper.h" -#define USB_DIR_OUT 0U /* to device */ -#define USB_DIR_IN 0x80U /* to host */ +/************************** Constant Definitions *****************************/ /**************************** Type Definitions *******************************/ @@ -62,10 +63,8 @@ /************************** Function Prototypes ******************************/ - /************************** Variable Definitions *****************************/ - /****************************************************************************/ /** * Initiates DMA on Control Endpoint 0 to receive Setup packet. @@ -92,7 +91,7 @@ s32 XUsbPsu_RecvSetup(struct XUsbPsu *InstancePtr) /* Setup packet always on EP0 */ Ept = &InstancePtr->eps[0]; if ((Ept->EpStatus & XUSBPSU_EP_BUSY) != 0U) { - return XST_FAILURE; + return (s32)XST_FAILURE; } TrbPtr = &InstancePtr->Ep0_Trb; @@ -107,7 +106,10 @@ s32 XUsbPsu_RecvSetup(struct XUsbPsu *InstancePtr) | XUSBPSU_TRB_CTRL_IOC | XUSBPSU_TRB_CTRL_ISP_IMI); - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheFlushRange((UINTPTR)&InstancePtr->SetupData, sizeof(SetupPacket)); + } Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; @@ -117,7 +119,7 @@ s32 XUsbPsu_RecvSetup(struct XUsbPsu *InstancePtr) Ret = XUsbPsu_SendEpCmd(InstancePtr, 0U, XUSBPSU_EP_DIR_OUT, XUSBPSU_DEPCMD_STARTTRANSFER, Params); if (Ret != XST_SUCCESS) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->EpStatus |= XUSBPSU_EP_BUSY; @@ -187,7 +189,8 @@ void XUsbPsu_Ep0DataDone(struct XUsbPsu *InstancePtr, Ept = &InstancePtr->eps[Epnum]; TrbPtr = &InstancePtr->Ep0_Trb; - Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); Status = XUSBPSU_TRB_SIZE_TRBSTS(TrbPtr->Size); if (Status == XUSBPSU_TRBSTS_SETUP_PENDING) { @@ -201,21 +204,22 @@ void XUsbPsu_Ep0DataDone(struct XUsbPsu *InstancePtr, } else { if (Dir == XUSBPSU_EP_DIR_IN) { Ept->BytesTxed = Ept->RequestedBytes - Length; - } else if (Dir == XUSBPSU_EP_DIR_OUT) { - if (Ept->UnalignedTx == 1U) { - Ept->BytesTxed = Ept->RequestedBytes; - Ept->UnalignedTx = 0U; + } else { + if ((Dir == XUSBPSU_EP_DIR_OUT) && (Ept->UnalignedTx == 1U)) { + Ept->BytesTxed = Ept->RequestedBytes; + Ept->UnalignedTx = 0U; } } } if (Dir == XUSBPSU_EP_DIR_OUT) { /* Invalidate Cache */ - Xil_DCacheInvalidateRange((INTPTR)Ept->BufferPtr, Ept->BytesTxed); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheInvalidateRange((INTPTR)Ept->BufferPtr, Ept->BytesTxed); } if (Ept->Handler != NULL) { - Ept->Handler(InstancePtr, Ept->RequestedBytes, Ept->BytesTxed); + Ept->Handler(InstancePtr->AppData, Ept->RequestedBytes, Ept->BytesTxed); } } @@ -251,7 +255,8 @@ void XUsbPsu_Ep0StatusDone(struct XUsbPsu *InstancePtr, return; } } - Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); (void)XUsbPsu_RecvSetup(InstancePtr); } @@ -286,8 +291,10 @@ void XUsbPsu_Ep0XferComplete(struct XUsbPsu *InstancePtr, switch (InstancePtr->Ep0State) { case XUSBPSU_EP0_SETUP_PHASE: - Xil_DCacheInvalidateRange((INTPTR)&InstancePtr->SetupData, + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)&InstancePtr->SetupData, sizeof(InstancePtr->SetupData)); + } Length = Ctrl->wLength; if (Length == 0U) { InstancePtr->IsThreeStage = 0U; @@ -300,7 +307,7 @@ void XUsbPsu_Ep0XferComplete(struct XUsbPsu *InstancePtr, Xil_AssertVoid(InstancePtr->Chapter9 != NULL); - InstancePtr->Chapter9(InstancePtr, + InstancePtr->Chapter9(InstancePtr->AppData, &InstancePtr->SetupData); break; @@ -347,7 +354,7 @@ s32 XUsbPsu_Ep0StartStatus(struct XUsbPsu *InstancePtr, Params = XUsbPsu_GetEpParams(InstancePtr); Xil_AssertNonvoid(Params != NULL); if ((Ept->EpStatus & XUSBPSU_EP_BUSY) != 0U) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Type = (InstancePtr->IsThreeStage != 0U) ? XUSBPSU_TRBCTL_CONTROL_STATUS3 @@ -364,7 +371,9 @@ s32 XUsbPsu_Ep0StartStatus(struct XUsbPsu *InstancePtr, | XUSBPSU_TRB_CTRL_IOC | XUSBPSU_TRB_CTRL_ISP_IMI); - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + } Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; @@ -380,7 +389,7 @@ s32 XUsbPsu_Ep0StartStatus(struct XUsbPsu *InstancePtr, Ret = XUsbPsu_SendEpCmd(InstancePtr, 0U, Dir, XUSBPSU_DEPCMD_STARTTRANSFER, Params); if (Ret != XST_SUCCESS) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->EpStatus |= XUSBPSU_EP_BUSY; @@ -543,7 +552,7 @@ s32 XUsbPsu_Ep0Send(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 BufferLen) Xil_AssertNonvoid(Params != NULL); if ((Ept->EpStatus & XUSBPSU_EP_BUSY) != 0U) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->RequestedBytes = BufferLen; @@ -565,15 +574,17 @@ s32 XUsbPsu_Ep0Send(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 BufferLen) Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); - Xil_DCacheFlushRange((INTPTR)BufferPtr, BufferLen); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheFlushRange((INTPTR)BufferPtr, BufferLen); + } InstancePtr->Ep0State = XUSBPSU_EP0_DATA_PHASE; Ret = XUsbPsu_SendEpCmd(InstancePtr, 0U, XUSBPSU_EP_DIR_IN, XUSBPSU_DEPCMD_STARTTRANSFER, Params); if (Ret != XST_SUCCESS) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->EpStatus |= XUSBPSU_EP_BUSY; @@ -612,7 +623,7 @@ s32 XUsbPsu_Ep0Recv(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 Length) Xil_AssertNonvoid(Params != NULL); if ((Ept->EpStatus & XUSBPSU_EP_BUSY) != 0U) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->RequestedBytes = Length; @@ -627,7 +638,7 @@ s32 XUsbPsu_Ep0Recv(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 Length) */ if (!IS_ALIGNED(Length, Ept->MaxSize)) { Size = (u32)roundup(Length, Ept->MaxSize); - InstancePtr->UnalignedTx = 1U; + Ept->UnalignedTx = 1U; } TrbPtr = &InstancePtr->Ep0_Trb; @@ -642,8 +653,10 @@ s32 XUsbPsu_Ep0Recv(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 Length) | XUSBPSU_TRB_CTRL_IOC | XUSBPSU_TRB_CTRL_ISP_IMI); - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); - Xil_DCacheInvalidateRange((INTPTR)BufferPtr, Length); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheInvalidateRange((INTPTR)BufferPtr, Length); + } Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; @@ -653,7 +666,7 @@ s32 XUsbPsu_Ep0Recv(struct XUsbPsu *InstancePtr, u8 *BufferPtr, u32 Length) Ret = XUsbPsu_SendEpCmd(InstancePtr, 0U, XUSBPSU_EP_DIR_OUT, XUSBPSU_DEPCMD_STARTTRANSFER, Params); if (Ret != XST_SUCCESS) { - return XST_FAILURE; + return (s32)XST_FAILURE; } Ept->EpStatus |= XUSBPSU_EP_BUSY; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.c similarity index 72% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.c index 41368e526..42e4108c6 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.c @@ -33,7 +33,7 @@ /** * * @file xusbpsu_endpoint.c -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * * @@ -43,32 +43,27 @@ * Ver Who Date Changes * ----- ---- -------- ------------------------------------------------------- * 1.0 sg 06/06/16 First release -* +* 1.3 vak 04/03/17 Added CCI support for USB +* 1.4 bk 12/01/18 Modify USBPSU driver code to fit USB common example code +* for all USB IPs +* myk 12/01/18 Added hibernation support for device mode * * *****************************************************************************/ /***************************** Include Files *********************************/ - -#include "xusbpsu.h" #include "xusbpsu_endpoint.h" -/************************** Constant Definitions *****************************/ +/************************** Constant Definitions *****************************/ /**************************** Type Definitions *******************************/ -/* return Physical EP number as dwc3 mapping */ -#define PhysicalEp(epnum, direction) (((epnum) << 1 ) | (direction)) - /***************** Macros (Inline Functions) Definitions *********************/ - /************************** Function Prototypes ******************************/ - /************************** Variable Definitions *****************************/ - /****************************************************************************/ /** * Returns zeroed parameters to be used by Endpoint commands @@ -233,6 +228,8 @@ s32 XUsbPsu_StartEpConfig(struct XUsbPsu *InstancePtr, u32 UsbEpNum, u8 Dir) * @param Dir is direction of endpoint - XUSBPSU_EP_DIR_IN/XUSBPSU_EP_DIR_OUT. * @param Size is size of Endpoint size. * @param Type is Endpoint type Control/Bulk/Interrupt/Isoc. +* @param Restore should be true if saved state should be restored; +* typically this would be false * * @return XST_SUCCESS else XST_FAILURE. * @@ -240,8 +237,9 @@ s32 XUsbPsu_StartEpConfig(struct XUsbPsu *InstancePtr, u32 UsbEpNum, u8 Dir) * *****************************************************************************/ s32 XUsbPsu_SetEpConfig(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, - u16 Size, u8 Type) + u16 Size, u8 Type, u8 Restore) { + struct XUsbPsu_Ep *Ept; struct XUsbPsu_EpParams *Params; u8 PhyEpNum; @@ -255,6 +253,7 @@ s32 XUsbPsu_SetEpConfig(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, Xil_AssertNonvoid(Params != NULL); PhyEpNum = PhysicalEp(UsbEpNum , Dir); + Ept = &InstancePtr->eps[PhyEpNum]; Params->Param0 = XUSBPSU_DEPCFG_EP_TYPE(Type) | XUSBPSU_DEPCFG_MAX_PACKET_SIZE(Size); @@ -262,11 +261,18 @@ s32 XUsbPsu_SetEpConfig(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, /* * Set burst size to 1 as recommended */ - Params->Param0 |= XUSBPSU_DEPCFG_BURST_SIZE(1); + if (InstancePtr->AppData->Speed == XUSBPSU_SPEED_SUPER) { + Params->Param0 |= XUSBPSU_DEPCFG_BURST_SIZE(1); + } Params->Param1 = XUSBPSU_DEPCFG_XFER_COMPLETE_EN | XUSBPSU_DEPCFG_XFER_NOT_READY_EN; + if (Restore) { + Params->Param0 |= XUSBPSU_DEPCFG_ACTION_RESTORE; + Params->Param2 = Ept->EpSavedState; + } + /* * We are doing 1:1 mapping for endpoints, meaning * Physical Endpoints 2 maps to Logical Endpoint 2 and @@ -279,6 +285,11 @@ s32 XUsbPsu_SetEpConfig(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, Params->Param0 |= XUSBPSU_DEPCFG_FIFO_NUMBER((u32)PhyEpNum >> 1); } + if (Ept->Type == XUSBPSU_ENDPOINT_XFER_ISOC) { + Params->Param1 |= XUSBPSU_DEPCFG_BINTERVAL_M1(Ept->Interval - 1); + Params->Param1 |= XUSBPSU_DEPCFG_XFER_IN_PROGRESS_EN; + } + return XUsbPsu_SendEpCmd(InstancePtr, UsbEpNum, Dir, XUSBPSU_DEPCMD_SETEPCONFIG, Params); } @@ -325,6 +336,8 @@ s32 XUsbPsu_SetXferResource(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) * @param Dir is direction of endpoint - XUSBPSU_EP_DIR_IN/XUSBPSU_EP_DIR_OUT. * @param Maxsize is size of Endpoint size. * @param Type is Endpoint type Control/Bulk/Interrupt/Isoc. +* @param Restore should be true if saved state should be restored; +* typically this would be false * * @return XST_SUCCESS else XST_FAILURE. * @@ -332,9 +345,10 @@ s32 XUsbPsu_SetXferResource(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) * ****************************************************************************/ s32 XUsbPsu_EpEnable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, - u16 Maxsize, u8 Type) + u16 Maxsize, u8 Type, u8 Restore) { struct XUsbPsu_Ep *Ept; + struct XUsbPsu_Trb *TrbStHw, *TrbLink; u32 RegVal; s32 Ret = (s32)XST_FAILURE; u32 PhyEpNum; @@ -353,20 +367,28 @@ s32 XUsbPsu_EpEnable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, Ept->Type = Type; Ept->MaxSize = Maxsize; Ept->PhyEpNum = (u8)PhyEpNum; + Ept->CurUf = 0; + if (!InstancePtr->IsHibernated) { + Ept->TrbEnqueue = 0; + Ept->TrbDequeue = 0; + } - if ((Ept->EpStatus & XUSBPSU_EP_ENABLED) == 0U) { + if (((Ept->EpStatus & XUSBPSU_EP_ENABLED) == 0U) + || (InstancePtr->IsHibernated)) { Ret = XUsbPsu_StartEpConfig(InstancePtr, UsbEpNum, Dir); if (Ret != 0) { return Ret; } } - Ret = XUsbPsu_SetEpConfig(InstancePtr, UsbEpNum, Dir, Maxsize, Type); + Ret = XUsbPsu_SetEpConfig(InstancePtr, UsbEpNum, Dir, Maxsize, + Type, Restore); if (Ret != 0) { return Ret; } - if ((Ept->EpStatus & XUSBPSU_EP_ENABLED) == 0U) { + if (((Ept->EpStatus & XUSBPSU_EP_ENABLED) == 0U) + || (InstancePtr->IsHibernated)) { Ret = XUsbPsu_SetXferResource(InstancePtr, UsbEpNum, Dir); if (Ret != 0) { return Ret; @@ -377,6 +399,18 @@ s32 XUsbPsu_EpEnable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DALEPENA); RegVal |= XUSBPSU_DALEPENA_EP(Ept->PhyEpNum); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DALEPENA, RegVal); + + /* Following code is only applicable for ISO XFER */ + TrbStHw = &Ept->EpTrb[0]; + + /* Link TRB. The HWO bit is never reset */ + TrbLink = &Ept->EpTrb[NO_OF_TRB_PER_EP]; + memset(TrbLink, 0x00, sizeof(struct XUsbPsu_Trb)); + + TrbLink->BufferPtrLow = (UINTPTR)TrbStHw; + TrbLink->BufferPtrHigh = ((UINTPTR)TrbStHw >> 16) >> 16; + TrbLink->Ctrl |= XUSBPSU_TRBCTL_LINK_TRB; + TrbLink->Ctrl |= XUSBPSU_TRB_CTRL_HWO; } return XST_SUCCESS; @@ -410,6 +444,10 @@ s32 XUsbPsu_EpDisable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) PhyEpNum = PhysicalEp(UsbEpNum , Dir); Ept = &InstancePtr->eps[PhyEpNum]; + /* make sure HW endpoint isn't stalled */ + if (Ept->EpStatus & XUSBPSU_EP_STALL) + XUsbPsu_EpClearStall(InstancePtr, Ept->UsbEpNum, Ept->Direction); + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DALEPENA); RegVal &= ~XUSBPSU_DALEPENA_EP(PhyEpNum); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DALEPENA, RegVal); @@ -417,6 +455,8 @@ s32 XUsbPsu_EpDisable(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) Ept->Type = 0U; Ept->EpStatus = 0U; Ept->MaxSize = 0U; + Ept->TrbEnqueue = 0U; + Ept->TrbDequeue = 0U; return XST_SUCCESS; } @@ -441,13 +481,13 @@ s32 XUsbPsu_EnableControlEp(struct XUsbPsu *InstancePtr, u16 Size) Xil_AssertNonvoid((Size >= 64U) && (Size <= 512U)); RetVal = XUsbPsu_EpEnable(InstancePtr, 0U, XUSBPSU_EP_DIR_OUT, Size, - XUSBPSU_ENDPOINT_XFER_CONTROL); + XUSBPSU_ENDPOINT_XFER_CONTROL, FALSE); if (RetVal != 0) { return XST_FAILURE; } RetVal = XUsbPsu_EpEnable(InstancePtr, 0U, XUSBPSU_EP_DIR_IN, Size, - XUSBPSU_ENDPOINT_XFER_CONTROL); + XUSBPSU_ENDPOINT_XFER_CONTROL, FALSE); if (RetVal != 0) { return XST_FAILURE; } @@ -479,11 +519,13 @@ void XUsbPsu_InitializeEps(struct XUsbPsu *InstancePtr) Epnum = (i << 1U) | XUSBPSU_EP_DIR_OUT; InstancePtr->eps[Epnum].PhyEpNum = Epnum; InstancePtr->eps[Epnum].Direction = XUSBPSU_EP_DIR_OUT; + InstancePtr->eps[Epnum].ResourceIndex = 0; } for (i = 0U; i < InstancePtr->NumInEps; i++) { Epnum = (i << 1U) | XUSBPSU_EP_DIR_IN; InstancePtr->eps[Epnum].PhyEpNum = Epnum; InstancePtr->eps[Epnum].Direction = XUSBPSU_EP_DIR_IN; + InstancePtr->eps[Epnum].ResourceIndex = 0; } } @@ -494,13 +536,15 @@ void XUsbPsu_InitializeEps(struct XUsbPsu *InstancePtr) * @param InstancePtr is a pointer to the XUsbPsu instance. * @param UsbEpNum is USB endpoint number. * @param Dir is direction of endpoint - XUSBPSU_EP_DIR_IN/XUSBPSU_EP_DIR_OUT. +* @Force Force flag to stop/pause transfer. * * @return None. * * @note None. * ****************************************************************************/ -void XUsbPsu_StopTransfer(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) +void XUsbPsu_StopTransfer(struct XUsbPsu *InstancePtr, u8 UsbEpNum, + u8 Dir, u8 Force) { struct XUsbPsu_Ep *Ept; struct XUsbPsu_EpParams *Params; @@ -526,15 +570,37 @@ void XUsbPsu_StopTransfer(struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir) * - Wait 100us */ Cmd = XUSBPSU_DEPCMD_ENDTRANSFER; + Cmd |= Force ? XUSBPSU_DEPCMD_HIPRI_FORCERM : 0; Cmd |= XUSBPSU_DEPCMD_CMDIOC; Cmd |= XUSBPSU_DEPCMD_PARAM(Ept->ResourceIndex); - (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->PhyEpNum, Ept->Direction, + (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, Cmd, Params); - Ept->ResourceIndex = 0U; + if (Force) + Ept->ResourceIndex = 0U; Ept->EpStatus &= ~XUSBPSU_EP_BUSY; XUsbSleep(100U); } +/****************************************************************************/ +/** +* Query endpoint state and save it in EpSavedState +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* @param Ept is a pointer to the XUsbPsu pointer structure. +* +* @return None. +* +* @note None. +* +****************************************************************************/ +void XUsbPsu_SaveEndpointState(struct XUsbPsu *InstancePtr, struct XUsbPsu_Ep *Ept) +{ + struct XUsbPsu_EpParams *Params = XUsbPsu_GetEpParams(InstancePtr); + XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, + XUSBPSU_DEPCMD_GETEPSTATE, Params); + Ept->EpSavedState = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DEPCMDPAR2(Ept->PhyEpNum)); +} + /****************************************************************************/ /** * Clears Stall on all endpoints. @@ -570,7 +636,7 @@ void XUsbPsu_ClearStalls(struct XUsbPsu *InstancePtr) Ept->EpStatus &= ~XUSBPSU_EP_STALL; - (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->PhyEpNum, + (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, XUSBPSU_DEPCMD_CLEARSTALL, Params); } @@ -594,6 +660,7 @@ s32 XUsbPsu_EpBufferSend(struct XUsbPsu *InstancePtr, u8 UsbEp, u8 *BufferPtr, u32 BufferLen) { u8 PhyEpNum; + u32 cmd; s32 RetVal; struct XUsbPsu_Trb *TrbPtr; struct XUsbPsu_Ep *Ept; @@ -619,35 +686,98 @@ s32 XUsbPsu_EpBufferSend(struct XUsbPsu *InstancePtr, u8 UsbEp, Ept->BytesTxed = 0U; Ept->BufferPtr = BufferPtr; - TrbPtr = &Ept->EpTrb; + TrbPtr = &Ept->EpTrb[Ept->TrbEnqueue]; Xil_AssertNonvoid(TrbPtr != NULL); + Ept->TrbEnqueue++; + if (Ept->TrbEnqueue == NO_OF_TRB_PER_EP) + Ept->TrbEnqueue = 0; TrbPtr->BufferPtrLow = (UINTPTR)BufferPtr; TrbPtr->BufferPtrHigh = ((UINTPTR)BufferPtr >> 16) >> 16; TrbPtr->Size = BufferLen & XUSBPSU_TRB_SIZE_MASK; - TrbPtr->Ctrl = XUSBPSU_TRBCTL_NORMAL; + + switch (Ept->Type) { + case XUSBPSU_ENDPOINT_XFER_ISOC: + /* + * According to DWC3 datasheet, XUSBPSU_TRBCTL_ISOCHRONOUS and + * XUSBPSU_TRBCTL_CHN fields are only set when request has + * scattered list so these fields are not set over here. + */ + TrbPtr->Ctrl = (XUSBPSU_TRBCTL_ISOCHRONOUS_FIRST + | XUSBPSU_TRB_CTRL_CSP); + + break; + case XUSBPSU_ENDPOINT_XFER_INT: + case XUSBPSU_ENDPOINT_XFER_BULK: + TrbPtr->Ctrl = (XUSBPSU_TRBCTL_NORMAL + | XUSBPSU_TRB_CTRL_LST); + + break; + } TrbPtr->Ctrl |= (XUSBPSU_TRB_CTRL_HWO - | XUSBPSU_TRB_CTRL_LST - | XUSBPSU_TRB_CTRL_IOC - | XUSBPSU_TRB_CTRL_ISP_IMI); + | XUSBPSU_TRB_CTRL_IOC + | XUSBPSU_TRB_CTRL_ISP_IMI); - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); - Xil_DCacheFlushRange((INTPTR)BufferPtr, BufferLen); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheFlushRange((INTPTR)BufferPtr, BufferLen); + } Params = XUsbPsu_GetEpParams(InstancePtr); Xil_AssertNonvoid(Params != NULL); Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; + if (Ept->EpStatus & XUSBPSU_EP_BUSY) { + cmd = XUSBPSU_DEPCMD_UPDATETRANSFER; + cmd |= XUSBPSU_DEPCMD_PARAM(Ept->ResourceIndex); + } else { + if (Ept->Type == XUSBPSU_ENDPOINT_XFER_ISOC) { + BufferPtr += BufferLen; + struct XUsbPsu_Trb *TrbTempNext; + TrbTempNext = &Ept->EpTrb[Ept->TrbEnqueue]; + Xil_AssertNonvoid(TrbTempNext != NULL); + + Ept->TrbEnqueue++; + if (Ept->TrbEnqueue == NO_OF_TRB_PER_EP) + Ept->TrbEnqueue = 0; + TrbTempNext->BufferPtrLow = (UINTPTR)BufferPtr; + TrbTempNext->BufferPtrHigh = ((UINTPTR)BufferPtr >> 16) >> 16; + TrbTempNext->Size = BufferLen & XUSBPSU_TRB_SIZE_MASK; + + TrbTempNext->Ctrl = (XUSBPSU_TRBCTL_ISOCHRONOUS_FIRST + | XUSBPSU_TRB_CTRL_CSP + | XUSBPSU_TRB_CTRL_HWO + | XUSBPSU_TRB_CTRL_IOC + | XUSBPSU_TRB_CTRL_ISP_IMI); + + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbTempNext, + sizeof(struct XUsbPsu_Trb)); + Xil_DCacheFlushRange((INTPTR)BufferPtr, BufferLen); + } + + } + + cmd = XUSBPSU_DEPCMD_STARTTRANSFER; + cmd |= XUSBPSU_DEPCMD_PARAM(Ept->CurUf); + } + RetVal = XUsbPsu_SendEpCmd(InstancePtr, UsbEp, Ept->Direction, - XUSBPSU_DEPCMD_STARTTRANSFER, Params); + cmd, Params); if (RetVal != XST_SUCCESS) { return XST_FAILURE; } - Ept->ResourceIndex = (u8)XUsbPsu_EpGetTransferIndex(InstancePtr, - Ept->UsbEpNum, - Ept->Direction); + + if (!(Ept->EpStatus & XUSBPSU_EP_BUSY)) { + Ept->ResourceIndex = (u8)XUsbPsu_EpGetTransferIndex(InstancePtr, + Ept->UsbEpNum, + Ept->Direction); + + Ept->EpStatus |= XUSBPSU_EP_BUSY; + } + return XST_SUCCESS; } @@ -656,7 +786,7 @@ s32 XUsbPsu_EpBufferSend(struct XUsbPsu *InstancePtr, u8 UsbEp, * Initiates DMA to receive data on Endpoint from Host. * * @param InstancePtr is a pointer to the XUsbPsu instance. -* @param EpNum is USB endpoint number. +* @param UsbEp is USB endpoint number. * @param BufferPtr is pointer to data. * @param Length is length of data to be received. * @@ -669,7 +799,8 @@ s32 XUsbPsu_EpBufferRecv(struct XUsbPsu *InstancePtr, u8 UsbEp, u8 *BufferPtr, u32 Length) { u8 PhyEpNum; - u32 Size; + u32 cmd; + u32 Size; s32 RetVal; struct XUsbPsu_Trb *TrbPtr; struct XUsbPsu_Ep *Ept; @@ -706,36 +837,100 @@ s32 XUsbPsu_EpBufferRecv(struct XUsbPsu *InstancePtr, u8 UsbEp, Ept->UnalignedTx = 1U; } - TrbPtr = &Ept->EpTrb; + TrbPtr = &Ept->EpTrb[Ept->TrbEnqueue]; Xil_AssertNonvoid(TrbPtr != NULL); + Ept->TrbEnqueue++; + if (Ept->TrbEnqueue == NO_OF_TRB_PER_EP) + Ept->TrbEnqueue = 0; + TrbPtr->BufferPtrLow = (UINTPTR)BufferPtr; TrbPtr->BufferPtrHigh = ((UINTPTR)BufferPtr >> 16) >> 16; TrbPtr->Size = Size; - TrbPtr->Ctrl = XUSBPSU_TRBCTL_NORMAL; + + switch (Ept->Type) { + case XUSBPSU_ENDPOINT_XFER_ISOC: + /* + * According to Linux driver, XUSBPSU_TRBCTL_ISOCHRONOUS and + * XUSBPSU_TRBCTL_CHN fields are only set when request has + * scattered list so these fields are not set over here. + */ + TrbPtr->Ctrl = (XUSBPSU_TRBCTL_ISOCHRONOUS_FIRST + | XUSBPSU_TRB_CTRL_CSP); + + break; + case XUSBPSU_ENDPOINT_XFER_INT: + case XUSBPSU_ENDPOINT_XFER_BULK: + TrbPtr->Ctrl = (XUSBPSU_TRBCTL_NORMAL + | XUSBPSU_TRB_CTRL_LST); + + break; + } TrbPtr->Ctrl |= (XUSBPSU_TRB_CTRL_HWO - | XUSBPSU_TRB_CTRL_LST - | XUSBPSU_TRB_CTRL_IOC - | XUSBPSU_TRB_CTRL_ISP_IMI); + | XUSBPSU_TRB_CTRL_IOC + | XUSBPSU_TRB_CTRL_ISP_IMI); - Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); - Xil_DCacheInvalidateRange((INTPTR)BufferPtr, Length); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheInvalidateRange((INTPTR)BufferPtr, Length); + } Params = XUsbPsu_GetEpParams(InstancePtr); Xil_AssertNonvoid(Params != NULL); Params->Param0 = 0U; Params->Param1 = (UINTPTR)TrbPtr; + if (Ept->EpStatus & XUSBPSU_EP_BUSY) { + cmd = XUSBPSU_DEPCMD_UPDATETRANSFER; + cmd |= XUSBPSU_DEPCMD_PARAM(Ept->ResourceIndex); + } else { + if (Ept->Type == XUSBPSU_ENDPOINT_XFER_ISOC) { + BufferPtr += Length; + struct XUsbPsu_Trb *TrbTempNext; + TrbTempNext = &Ept->EpTrb[Ept->TrbEnqueue]; + Xil_AssertNonvoid(TrbTempNext != NULL); + + Ept->TrbEnqueue++; + if (Ept->TrbEnqueue == NO_OF_TRB_PER_EP) + Ept->TrbEnqueue = 0; + TrbTempNext->BufferPtrLow = (UINTPTR)BufferPtr; + TrbTempNext->BufferPtrHigh = ((UINTPTR)BufferPtr >> 16) >> 16; + TrbTempNext->Size = Length & XUSBPSU_TRB_SIZE_MASK; + + TrbTempNext->Ctrl = (XUSBPSU_TRBCTL_ISOCHRONOUS_FIRST + | XUSBPSU_TRB_CTRL_CSP + | XUSBPSU_TRB_CTRL_HWO + | XUSBPSU_TRB_CTRL_IOC + | XUSBPSU_TRB_CTRL_ISP_IMI); + + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbTempNext, + sizeof(struct XUsbPsu_Trb)); + Xil_DCacheFlushRange((INTPTR)BufferPtr, Length); + } + + } + + cmd = XUSBPSU_DEPCMD_STARTTRANSFER; + cmd |= XUSBPSU_DEPCMD_PARAM(Ept->CurUf); + } + RetVal = XUsbPsu_SendEpCmd(InstancePtr, UsbEp, Ept->Direction, - XUSBPSU_DEPCMD_STARTTRANSFER, Params); + cmd, Params); if (RetVal != XST_SUCCESS) { return XST_FAILURE; } - Ept->ResourceIndex = (u8)XUsbPsu_EpGetTransferIndex(InstancePtr, - Ept->UsbEpNum, - Ept->Direction); + + if (!(Ept->EpStatus & XUSBPSU_EP_BUSY)) { + Ept->ResourceIndex = (u8)XUsbPsu_EpGetTransferIndex(InstancePtr, + Ept->UsbEpNum, + Ept->Direction); + + Ept->EpStatus |= XUSBPSU_EP_BUSY; + } + return XST_SUCCESS; } @@ -744,7 +939,7 @@ s32 XUsbPsu_EpBufferRecv(struct XUsbPsu *InstancePtr, u8 UsbEp, * Stalls an Endpoint. * * @param InstancePtr is a pointer to the XUsbPsu instance. -* @param EpNum is USB endpoint number. +* @param Epnum is USB endpoint number. * @param Dir is direction. * * @return None. @@ -768,7 +963,7 @@ void XUsbPsu_EpSetStall(struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir) Params = XUsbPsu_GetEpParams(InstancePtr); Xil_AssertVoid(Params != NULL); - (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->PhyEpNum, Ept->Direction, + (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, XUSBPSU_DEPCMD_SETSTALL, Params); Ept->EpStatus |= XUSBPSU_EP_STALL; @@ -803,7 +998,7 @@ void XUsbPsu_EpClearStall(struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir) Params = XUsbPsu_GetEpParams(InstancePtr); Xil_AssertVoid(Params != NULL); - (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->PhyEpNum, Ept->Direction, + (void)XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, XUSBPSU_DEPCMD_CLEARSTALL, Params); Ept->EpStatus &= ~XUSBPSU_EP_STALL; @@ -895,10 +1090,20 @@ void XUsbPsu_EpXferComplete(struct XUsbPsu *InstancePtr, Epnum = Event->Epnumber; Ept = &InstancePtr->eps[Epnum]; Dir = Ept->Direction; - TrbPtr = &Ept->EpTrb; + TrbPtr = &Ept->EpTrb[Ept->TrbDequeue]; Xil_AssertVoid(TrbPtr != NULL); - Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Ept->TrbDequeue++; + if (Ept->TrbDequeue == NO_OF_TRB_PER_EP) + Ept->TrbDequeue = 0; + + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheInvalidateRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + + if (Event->Endpoint_Event == XUSBPSU_DEPEVT_XFERCOMPLETE) { + Ept->EpStatus &= ~(XUSBPSU_EP_BUSY); + Ept->ResourceIndex = 0; + } Length = TrbPtr->Size & XUSBPSU_TRB_SIZE_MASK; @@ -909,19 +1114,64 @@ void XUsbPsu_EpXferComplete(struct XUsbPsu *InstancePtr, Ept->BytesTxed = Ept->RequestedBytes - Length; } else if (Dir == XUSBPSU_EP_DIR_OUT) { if (Ept->UnalignedTx == 1U) { - Ept->BytesTxed = Ept->RequestedBytes; + Ept->BytesTxed = (u32)roundup(Ept->RequestedBytes, + Ept->MaxSize); + Ept->BytesTxed -= Length; Ept->UnalignedTx = 0U; + } else { + /* + * Get the actual number of bytes transmitted + * by host + */ + Ept->BytesTxed = Ept->RequestedBytes - Length; } } } if (Dir == XUSBPSU_EP_DIR_OUT) { /* Invalidate Cache */ - Xil_DCacheInvalidateRange((INTPTR)Ept->BufferPtr, Ept->BytesTxed); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheInvalidateRange((INTPTR)Ept->BufferPtr, Ept->BytesTxed); } if (Ept->Handler != NULL) { - Ept->Handler(InstancePtr, Ept->RequestedBytes, Ept->BytesTxed); + Ept->Handler(InstancePtr->AppData, Ept->RequestedBytes, Ept->BytesTxed); + } +} + +/****************************************************************************/ +/** +* For Isochronous transfer, get the microframe time and calls respective Endpoint +* handler. +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* @param Event is a pointer to the Endpoint event occurred in core. +* +* @return None. +* +* @note None. +* +*****************************************************************************/ +void XUsbPsu_EpXferNotReady(struct XUsbPsu *InstancePtr, + const struct XUsbPsu_Event_Epevt *Event) +{ + struct XUsbPsu_Ep *Ept; + u32 Epnum; + u32 CurUf, Mask; + + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid(Event != NULL); + + Epnum = Event->Epnumber; + Ept = &InstancePtr->eps[Epnum]; + + if (Ept->Type == XUSBPSU_ENDPOINT_XFER_ISOC) { + Mask = ~(1 << (Ept->Interval - 1)); + CurUf = Event->Parameters & Mask; + Ept->CurUf = CurUf + (Ept->Interval * 4); + if (Ept->Handler != NULL) { + Ept->Handler(InstancePtr->AppData, 0, 0); + } } } /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.h similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.h index 299837862..b80da4832 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_endpoint.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_endpoint.h @@ -33,7 +33,7 @@ /** * * @file xusbps_endpoint.h -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * * This is an internal file containing the definitions for endpoints. It is @@ -46,6 +46,9 @@ * Ver Who Date Changes * ----- ---- -------- -------------------------------------------------------- * 1.0 sg 06/06/16 First release + * 1.4 bk 12/01/18 Modify USBPSU driver code to fit USB common example code + * for all USB IPs. + * * * ******************************************************************************/ @@ -59,7 +62,7 @@ extern "C" { /***************************** Include Files *********************************/ #include "xil_cache.h" -#include "xusbpsu.h" +#include "xusb_wrapper.h" #include "xil_types.h" /**************************** Type Definitions *******************************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_g.c similarity index 86% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_g.c index 41a9b8c7a..4019d76df 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,11 +44,12 @@ * The configuration table for devices */ -XUsbPsu_Config XUsbPsu_ConfigTable[] = +XUsbPsu_Config XUsbPsu_ConfigTable[XPAR_XUSBPSU_NUM_INSTANCES] = { { - XPAR_PSU_USB_0_DEVICE_ID, - XPAR_PSU_USB_0_BASEADDR + XPAR_PSU_USB_XHCI_0_DEVICE_ID, + XPAR_PSU_USB_XHCI_0_BASEADDR, + XPAR_PSU_USB_XHCI_0_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_hibernation.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_hibernation.c new file mode 100644 index 000000000..20f53c974 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_hibernation.c @@ -0,0 +1,688 @@ +/****************************************************************************** +* +* Copyright (C) 2017 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/****************************************************************************/ +/** +* +* @file xusbpsu_hibernation.c +* +* This patch adds hibernation support to usbpsu driver when dwc3 is operating +* as a gadget +* +*
      +*
      +* MODIFICATION HISTORY:
      +*
      +* Ver    Who    Date     Changes
      +* ----- -----  -------- -----------------------------------------------------
      +* 1.0   Mayank 12/01/18 First release
      +*
      +* 
      +* +*****************************************************************************/ + +/***************************** Include Files ********************************/ + +#include "xusbpsu.h" +#include "xusbpsu_hw.h" +#include "xusbpsu_endpoint.h" + +/************************** Constant Definitions *****************************/ + +#define NUM_OF_NONSTICKY_REGS 27 + +#define XUSBPSU_HIBER_SCRATCHBUF_SIZE 4096U + +#define XUSBPSU_NON_STICKY_SAVE_RETRIES 500U +#define XUSBPSU_PWR_STATE_RETRIES 1500U +#define XUSBPSU_CTRL_RDY_RETRIES 5000U +#define XUSBPSU_TIMEOUT 1000U + +/**************************** Type Definitions *******************************/ + + +/***************** Macros (Inline Functions) Definitions *********************/ + + +/************************** Function Prototypes ******************************/ + + +/************************** Variable Definitions *****************************/ + +static u8 ScratchBuf[XUSBPSU_HIBER_SCRATCHBUF_SIZE]; + +/* Registers saved during hibernation and restored at wakeup */ +static u32 save_reg_addr[] = { + XUSBPSU_DCTL, + XUSBPSU_DCFG, + XUSBPSU_DEVTEN, + XUSBPSU_GSBUSCFG0, + XUSBPSU_GSBUSCFG1, + XUSBPSU_GCTL, + XUSBPSU_GTXTHRCFG, + XUSBPSU_GRXTHRCFG, + XUSBPSU_GTXFIFOSIZ(0), + XUSBPSU_GTXFIFOSIZ(1), + XUSBPSU_GTXFIFOSIZ(2), + XUSBPSU_GTXFIFOSIZ(3), + XUSBPSU_GTXFIFOSIZ(4), + XUSBPSU_GTXFIFOSIZ(5), + XUSBPSU_GTXFIFOSIZ(6), + XUSBPSU_GTXFIFOSIZ(7), + XUSBPSU_GTXFIFOSIZ(8), + XUSBPSU_GTXFIFOSIZ(9), + XUSBPSU_GTXFIFOSIZ(10), + XUSBPSU_GTXFIFOSIZ(11), + XUSBPSU_GTXFIFOSIZ(12), + XUSBPSU_GTXFIFOSIZ(13), + XUSBPSU_GTXFIFOSIZ(14), + XUSBPSU_GTXFIFOSIZ(15), + XUSBPSU_GRXFIFOSIZ(0), + XUSBPSU_GUSB3PIPECTL(0), + XUSBPSU_GUSB2PHYCFG(0), +}; +static u32 saved_regs[NUM_OF_NONSTICKY_REGS]; + +/*****************************************************************************/ +/** +* Save non sticky registers +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return None. +* +* @note None. +* +******************************************************************************/ +static void save_regs(struct XUsbPsu *InstancePtr) +{ + u32 i; + + for (i = 0; i < NUM_OF_NONSTICKY_REGS; i++) + saved_regs[i] = XUsbPsu_ReadReg(InstancePtr, save_reg_addr[i]); +} + +/*****************************************************************************/ +/** +* Restore non sticky registers +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return None. +* +* @note None. +* +******************************************************************************/ +static void restore_regs(struct XUsbPsu *InstancePtr) +{ + u32 i; + + for (i = 0; i < NUM_OF_NONSTICKY_REGS; i++) + XUsbPsu_WriteReg(InstancePtr, save_reg_addr[i], saved_regs[i]); +} + +/*****************************************************************************/ +/** +* Send generic command for gadget +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* @param cmd is command to be sent +* @param param is parameter for the command, to be written in DGCMDPAR +* register +* +* @return +* - XST_SUCCESS on success +* - XST_FAILURE on timeout +* - XST_REGISTER_ERROR on status error +* +* @note None. +* +******************************************************************************/ +s32 XUsbPsu_SendGadgetGenericCmd(struct XUsbPsu *InstancePtr, u32 cmd, + u32 param) +{ + u32 RegVal, retry = 500; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DGCMDPAR, param); + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DGCMD, cmd | XUSBPSU_DGCMD_CMDACT); + + do { + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DGCMD); + if (!(RegVal & XUSBPSU_DGCMD_CMDACT)) { + if (XUSBPSU_DGCMD_STATUS(RegVal)) + return XST_REGISTER_ERROR; + return 0; + } + } while (--retry); + + return XST_FAILURE; +} + +/*****************************************************************************/ +/** +* Sets scratchpad buffers +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return XST_SUCCESS on success or else error code +* +* @note None. +* +******************************************************************************/ +s32 XUsbPsu_SetupScratchpad(struct XUsbPsu *InstancePtr) +{ + s32 Ret; + Ret = XUsbPsu_SendGadgetGenericCmd(InstancePtr, + XUSBPSU_DGCMD_SET_SCRATCHPAD_ADDR_LO, (UINTPTR)ScratchBuf & 0xffffffff); + if (Ret) { + xil_printf("Failed to set scratchpad low addr: %d\n", Ret); + return Ret; + } + + Ret = XUsbPsu_SendGadgetGenericCmd(InstancePtr, + XUSBPSU_DGCMD_SET_SCRATCHPAD_ADDR_HI, ((UINTPTR)ScratchBuf >> 16) >> 16); + if (Ret) { + xil_printf("Failed to set scratchpad high addr: %d\n", Ret); + return Ret; + } + + return XST_SUCCESS; +} + +/*****************************************************************************/ +/** +* Initialize to handle hibernation event when it comes +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return none +* +* @note None. +* +******************************************************************************/ +void XUsbPsu_InitHibernation(struct XUsbPsu *InstancePtr) +{ + u32 RegVal; + + InstancePtr->IsHibernated = 0; + + memset(ScratchBuf, 0, sizeof(ScratchBuf)); + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) + Xil_DCacheFlushRange((INTPTR)ScratchBuf, XUSBPSU_HIBER_SCRATCHBUF_SIZE); + + XUsbPsu_SetupScratchpad(InstancePtr); + + /* enable PHY suspend */ + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GUSB2PHYCFG(0)); + RegVal |= XUSBPSU_GUSB2PHYCFG_SUSPHY; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GUSB2PHYCFG(0), RegVal); + + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GUSB3PIPECTL(0)); + RegVal |= XUSBPSU_GUSB3PIPECTL_SUSPHY; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GUSB3PIPECTL(0), RegVal); +} + +/*****************************************************************************/ +/** +* Handle hibernation event +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return none +* +* @note None. +* +******************************************************************************/ +void Xusbpsu_HibernationIntr(struct XUsbPsu *InstancePtr) +{ + u8 EpNum; + u32 RegVal; + s32 retries; + XusbPsuLinkState LinkState; + + /* sanity check */ + switch(XUsbPsu_GetLinkState(InstancePtr)) { + case XUSBPSU_LINK_STATE_SS_DIS: + case XUSBPSU_LINK_STATE_U3: + break; + default: + /* fake hiber interrupt */ + xil_printf("got fake interrupt\r\n"); + return; + }; + + if (InstancePtr->Ep0State == XUSBPSU_EP0_SETUP_PHASE) { + XUsbPsu_StopTransfer(InstancePtr, 0, XUSBPSU_EP_DIR_OUT, TRUE); + XUsbPsu_RecvSetup(InstancePtr); + } + + /* stop active transfers for all endpoints including control + * endpoints force rm bit should be 0 when we do this */ + for (EpNum = 0; EpNum < XUSBPSU_ENDPOINTS_NUM; EpNum++) { + struct XUsbPsu_Ep *Ept; + + Ept = &InstancePtr->eps[EpNum]; + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + /* save srsource index for later use */ + XUsbPsu_StopTransfer(InstancePtr, Ept->UsbEpNum, + Ept->Direction, FALSE); + + XUsbPsu_SaveEndpointState(InstancePtr, Ept); + } + + /* + * ack events, don't process them; h/w decrements the count by the value + * written + */ + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GEVNTCOUNT(0)); + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTCOUNT(0), RegVal); + InstancePtr->Evt.Count = 0; + InstancePtr->Evt.Flags &= ~XUSBPSU_EVENT_PENDING; + + if (XUsbPsu_Stop(InstancePtr)) { + xil_printf("Failed to stop USB core\r\n"); + return; + } + + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + + /* Check the link state and if it is disconnected, set + * KEEP_CONNECT to 0 + */ + LinkState = XUsbPsu_GetLinkState(InstancePtr); + if (LinkState == XUSBPSU_LINK_STATE_SS_DIS) { + RegVal &= ~XUSBPSU_DCTL_KEEP_CONNECT; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + + /* update LinkState to be used while wakeup */ + InstancePtr->LinkState = XUSBPSU_LINK_STATE_SS_DIS; + } + + save_regs(InstancePtr); + + /* ask core to save state */ + RegVal |= XUSBPSU_DCTL_CSS; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + + /* wait till core saves */ + if (XUsbPsu_Wait_Clear_Timeout(InstancePtr, XUSBPSU_DSTS, + XUSBPSU_DSTS_SSS, XUSBPSU_NON_STICKY_SAVE_RETRIES) == XST_FAILURE) { + xil_printf("Failed to save core state\r\n"); + return; + } + + /* Enable PME to wakeup from hibernation */ + XUsbPsu_WriteVendorReg(XIL_PME_ENABLE, XIL_PME_ENABLE_SIG_GEN); + + /* change power state to D3 */ + XUsbPsu_WriteVendorReg(XIL_REQ_PWR_STATE, XIL_REQ_PWR_STATE_D3); + + /* wait till current state is changed to D3 */ + retries = XUSBPSU_PWR_STATE_RETRIES; + do { + RegVal = XUsbPsu_ReadVendorReg(XIL_CUR_PWR_STATE); + if ((RegVal & XIL_CUR_PWR_STATE_BITMASK) == XIL_CUR_PWR_STATE_D3) + break; + + XUsbSleep(XUSBPSU_TIMEOUT); + } while (--retries); + + if (retries < 0) { + xil_printf("Failed to change power state to D3\r\n"); + return; + } + XUsbSleep(XUSBPSU_TIMEOUT); + + RegVal = XUsbPsu_ReadLpdReg(RST_LPD_TOP); + if (InstancePtr->ConfigPtr->DeviceId == XPAR_XUSBPSU_0_DEVICE_ID) + XUsbPsu_WriteLpdReg(RST_LPD_TOP, RegVal | USB0_CORE_RST); + + InstancePtr->IsHibernated = 1; + xil_printf("Hibernated!\r\n"); +} + +/*****************************************************************************/ +/** +* Restarts transfer for active endpoint +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* @param EpNum is an endpoint number. +* +* @return XST_SUCCESS on success or else XST_FAILURE. +* +* @note None. +* +******************************************************************************/ +static s32 XUsbPsu_RestartEp(struct XUsbPsu *InstancePtr, u8 EpNum) +{ + struct XUsbPsu_EpParams *Params; + struct XUsbPsu_Trb *TrbPtr; + struct XUsbPsu_Ep *Ept; + u32 Cmd; + s32 Ret; + + Xil_AssertNonvoid(InstancePtr != NULL); + + Params = XUsbPsu_GetEpParams(InstancePtr); + Xil_AssertNonvoid(Params != NULL); + + Ept = &InstancePtr->eps[EpNum]; + + /* check if we need to restart transfer */ + if (!Ept->ResourceIndex && Ept->PhyEpNum) + return XST_SUCCESS; + + if (Ept->UsbEpNum) { + TrbPtr = &Ept->EpTrb[Ept->TrbDequeue]; + } else { + TrbPtr = &InstancePtr->Ep0_Trb; + } + + Xil_AssertNonvoid(TrbPtr != NULL); + + TrbPtr->Ctrl |= XUSBPSU_TRB_CTRL_HWO; + + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheFlushRange((INTPTR)TrbPtr, sizeof(struct XUsbPsu_Trb)); + Xil_DCacheInvalidateRange((INTPTR)Ept->BufferPtr, Ept->RequestedBytes); + } + + Params->Param0 = 0U; + Params->Param1 = (UINTPTR)TrbPtr; + + Cmd = XUSBPSU_DEPCMD_STARTTRANSFER; + + Ret = XUsbPsu_SendEpCmd(InstancePtr, Ept->UsbEpNum, Ept->Direction, + Cmd, Params); + if (Ret) + return XST_FAILURE; + + Ept->EpStatus |= XUSBPSU_EP_BUSY; + Ept->ResourceIndex = (u8)XUsbPsu_EpGetTransferIndex(InstancePtr, + Ept->UsbEpNum, Ept->Direction); + + return XST_SUCCESS; +} + +/*****************************************************************************/ +/** +* Restarts EP0 endpoint +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return XST_SUCCESS on success or else XST_FAILURE. +* +* @note None. +* +******************************************************************************/ +static s32 XUsbPsu_RestoreEp0(struct XUsbPsu *InstancePtr) +{ + struct XUsbPsu_Ep *Ept; + s32 Ret; + u8 EpNum; + + for (EpNum = 0; EpNum < 2; EpNum++) { + Ept = &InstancePtr->eps[EpNum]; + + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + Ret = XUsbPsu_EpEnable(InstancePtr, Ept->UsbEpNum, + Ept->Direction, Ept->MaxSize, Ept->Type, TRUE); + if (Ret) { + xil_printf("Failed to enable EP %d on wakeup: %d\r\n", + EpNum, Ret); + return XST_FAILURE; + } + + if (Ept->EpStatus & XUSBPSU_EP_STALL) { + XUsbPsu_Ep0StallRestart(InstancePtr); + } else { + Ret = XUsbPsu_RestartEp(InstancePtr, Ept->PhyEpNum); + if (Ret) { + xil_printf("Failed to restart EP %d on wakeup: %d\r\n", + EpNum, Ret); + return XST_FAILURE; + } + } + } + + return XST_SUCCESS; +} + +/*****************************************************************************/ +/** +* Restarts non EP0 endpoints +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return XST_SUCCESS on success or else XST_FAILURE. +* +* @note None. +* +******************************************************************************/ +static s32 XUsbPsu_RestoreEps(struct XUsbPsu *InstancePtr) +{ + struct XUsbPsu_Ep *Ept; + s32 Ret; + u8 EpNum; + + for (EpNum = 2; EpNum < XUSBPSU_ENDPOINTS_NUM; EpNum++) { + Ept = &InstancePtr->eps[EpNum]; + + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + Ret = XUsbPsu_EpEnable(InstancePtr, Ept->UsbEpNum, + Ept->Direction, Ept->MaxSize, Ept->Type, TRUE); + if (Ret) { + xil_printf("Failed to enable EP %d on wakeup: %d\r\n", + EpNum, Ret); + return XST_FAILURE; + } + } + + for (EpNum = 2; EpNum < XUSBPSU_ENDPOINTS_NUM; EpNum++) { + Ept = &InstancePtr->eps[EpNum]; + + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + if (Ept->EpStatus & XUSBPSU_EP_STALL) { + XUsbPsu_EpSetStall(InstancePtr, Ept->UsbEpNum, Ept->Direction); + } else { + Ret = XUsbPsu_RestartEp(InstancePtr, Ept->PhyEpNum); + if (Ret) { + xil_printf("Failed to restart EP %d on wakeup: %d\r\n", + EpNum, Ret); + return XST_FAILURE; + } + } + } + + return XST_SUCCESS; +} + +/*****************************************************************************/ +/** +* Handle wakeup event +* +* @param InstancePtr is a pointer to the XUsbPsu instance to be worked +* on. +* +* @return none +* +* @note None. +* +******************************************************************************/ +void XUsbPsu_WakeupIntr(struct XUsbPsu *InstancePtr) +{ + u32 RegVal, link_state; + s32 retries; + char enter_hiber; + + RegVal = XUsbPsu_ReadLpdReg(RST_LPD_TOP); + if (InstancePtr->ConfigPtr->DeviceId == XPAR_XUSBPSU_0_DEVICE_ID) + XUsbPsu_WriteLpdReg(RST_LPD_TOP, RegVal & ~USB0_CORE_RST); + + /* change power state to D0 */ + XUsbPsu_WriteVendorReg(XIL_REQ_PWR_STATE, XIL_REQ_PWR_STATE_D0); + + /* wait till current state is changed to D0 */ + retries = XUSBPSU_PWR_STATE_RETRIES; + do { + RegVal = XUsbPsu_ReadVendorReg(XIL_CUR_PWR_STATE); + if ((RegVal & XIL_CUR_PWR_STATE_BITMASK) == XIL_CUR_PWR_STATE_D0) + break; + + XUsbSleep(XUSBPSU_TIMEOUT); + } while (--retries); + + if (retries < 0) { + xil_printf("Failed to change power state to D0\r\n"); + return; + } + + /* ask core to restore non-sticky registers */ + XUsbPsu_SetupScratchpad(InstancePtr); + + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + RegVal |= XUSBPSU_DCTL_CRS; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + + /* wait till non-sticky registers are restored */ + if (XUsbPsu_Wait_Clear_Timeout(InstancePtr, XUSBPSU_DSTS, + XUSBPSU_DSTS_RSS, XUSBPSU_NON_STICKY_SAVE_RETRIES) == XST_FAILURE) { + xil_printf("Failed to restore USB core\r\n"); + return; + } + + restore_regs(InstancePtr); + + /* setup event buffers */ + XUsbPsu_EventBuffersSetup(InstancePtr); + + /* nothing to do when in OTG host mode */ + if (XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GSTS) & XUSBPSU_GSTS_CUR_MODE) + return; + + if (XUsbPsu_RestoreEp0(InstancePtr)) { + xil_printf("Failed to restore EP0\r\n"); + return; + } + + /* start controller */ + if (XUsbPsu_Start(InstancePtr)) { + xil_printf("Failed to start core on wakeup\r\n"); + return; + } + + /* Wait until device controller is ready */ + if (XUsbPsu_Wait_Clear_Timeout(InstancePtr, XUSBPSU_DSTS, + XUSBPSU_DSTS_DCNRD, XUSBPSU_CTRL_RDY_RETRIES) == XST_FAILURE) { + xil_printf("Failed to ready device controller\r\n"); + return; + } + + /* + * there can be suprious wakeup events , so wait for some time and check + * the link state + */ + XUsbSleep(XUSBPSU_TIMEOUT * 10); + + link_state = XUsbPsu_GetLinkState(InstancePtr); + + switch(link_state) { + case XUSBPSU_LINK_STATE_RESET: + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DSTS); + RegVal &= ~XUSBPSU_DCFG_DEVADDR_MASK; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DSTS, RegVal); + + if (XUsbPsu_SetLinkState(InstancePtr, XUSBPSU_LINK_STATE_RECOV)) { + xil_printf("Failed to put link in Recovery\r\n"); + return; + } + break; + case XUSBPSU_LINK_STATE_SS_DIS: + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + RegVal &= ~XUSBPSU_DCTL_KEEP_CONNECT; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + + /* fall Through */ + case XUSBPSU_LINK_STATE_U3: + /* enter hibernation again */ + enter_hiber = 1; + break; + default: + if (XUsbPsu_SetLinkState(InstancePtr, XUSBPSU_LINK_STATE_RECOV)) { + xil_printf("Failed to put link in Recovery\r\n"); + return; + } + break; + }; + + if (XUsbPsu_RestoreEps(InstancePtr)) { + xil_printf("Failed to restore EPs\r\n"); + return; + } + + InstancePtr->IsHibernated = 0; + + if (enter_hiber) { + Xusbpsu_HibernationIntr(InstancePtr); + return; + } + + xil_printf("We are back from hibernation!\r\n"); +} +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_hw.h similarity index 83% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_hw.h index db612b00f..344f919f3 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_1/src/xusbpsu_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_hw.h @@ -33,7 +33,7 @@ /** * * @file xusbpsu_hw.h -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * *
      @@ -43,6 +43,7 @@
       * Ver   Who    Date     Changes
       * ----- -----  -------- -----------------------------------------------------
       * 1.0   sg    06/06/16 First release
      +* 1.4   myk   12/01/18 Added support of hibernation
       *
       * 
      * @@ -174,6 +175,7 @@ extern "C" { /* Global Status Register Device Interrupt Mask */ #define XUSBPSU_GSTS_DEVICE_IP_MASK 0x00000040 +#define XUSBPSU_GSTS_CUR_MODE (0x00000001U << 0) /* Global USB2 PHY Configuration Register */ #define XUSBPSU_GUSB2PHYCFG_PHYSOFTRST (0x00000001U << 31) @@ -308,8 +310,28 @@ extern "C" { #define XUSBPSU_PORTMSC_30_U1_TIMEOUT_MASK (0xffU << 0) #define XUSBPSU_PORTMSC_30_U1_TIMEOUT_SHIFT (0U) +/* Register for LPD block */ +#define RST_LPD_TOP 0x23C +#define USB0_CORE_RST (1 << 6) +#define USB1_CORE_RST (1 << 7) -/*@}*/ +/* Vendor registers for Xilinx */ +#define XIL_CUR_PWR_STATE 0x00 +#define XIL_PME_ENABLE 0x34 +#define XIL_REQ_PWR_STATE 0x3c +#define XIL_PWR_CONFIG_USB3 0x48 + +#define XIL_REQ_PWR_STATE_D0 0 +#define XIL_REQ_PWR_STATE_D3 3 +#define XIL_PME_ENABLE_SIG_GEN 1 +#define XIL_CUR_PWR_STATE_D0 0 +#define XIL_CUR_PWR_STATE_D3 3 +#define XIL_CUR_PWR_STATE_BITMASK 0x03 + +#define VENDOR_BASE_ADDRESS 0xFF9D0000 +#define LPD_BASE_ADDRESS 0xFF5E0000 + + /*@}*/ /**************************** Type Definitions *******************************/ @@ -353,6 +375,76 @@ extern "C" { #define XUsbPsu_WriteReg(InstancePtr, Offset, Data) \ Xil_Out32((InstancePtr)->ConfigPtr->BaseAddress + (u32)(Offset), (u32)(Data)) +/*****************************************************************************/ +/** +* +* Read a vendor register of the USBPS8 device. +* +* @param Offset is the offset of the register to read. +* +* @return The contents of the register. +* +* @note C-style Signature: +* u32 XUsbPsu_ReadVendorReg(struct XUsbPsu *InstancePtr, u32 Offset); +* +******************************************************************************/ +#define XUsbPsu_ReadVendorReg(Offset) \ + Xil_In32(VENDOR_BASE_ADDRESS + (u32)(Offset)) + +/*****************************************************************************/ +/** +* +* Write a Vendor register of the USBPS8 device. +* +* @param RegOffset is the offset of the register to write. +* @param Data is the value to write to the register. +* +* @return None. +* +* @note C-style Signature: +* void XUsbPsu_WriteVendorReg(struct XUsbPsu *InstancePtr, +* u32 Offset,u32 Data) +* +******************************************************************************/ +#define XUsbPsu_WriteVendorReg(Offset, Data) \ + Xil_Out32(VENDOR_BASE_ADDRESS + (u32)(Offset), (u32)(Data)) + +/*****************************************************************************/ +/** +* +* Read a LPD register of the USBPS8 device. +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* @param Offset is the offset of the register to read. +* +* @return The contents of the register. +* +* @note C-style Signature: +* u32 XUsbPsu_ReadLpdReg(struct XUsbPsu *InstancePtr, u32 Offset); +* +******************************************************************************/ +#define XUsbPsu_ReadLpdReg(Offset) \ + Xil_In32(LPD_BASE_ADDRESS + (u32)(Offset)) + +/*****************************************************************************/ +/** +* +* Write a LPD register of the USBPS8 device. +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* @param RegOffset is the offset of the register to write. +* @param Data is the value to write to the register. +* +* @return None. +* +* @note C-style Signature: +* void XUsbPsu_WriteLpdReg(struct XUsbPsu *InstancePtr, +* u32 Offset,u32 Data) +* +******************************************************************************/ +#define XUsbPsu_WriteLpdReg(Offset, Data) \ + Xil_Out32(LPD_BASE_ADDRESS + (u32)(Offset), (u32)(Data)) + /************************** Function Prototypes ******************************/ #ifdef __cplusplus diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_intr.c similarity index 70% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_intr.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_intr.c index 85baab0f8..6124783fc 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_intr.c @@ -33,7 +33,7 @@ /** * * @file xusbpsu_intr.c -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * * @@ -43,6 +43,13 @@ * Ver Who Date Changes * ----- ---- -------- ------------------------------------------------------- * 1.0 sg 06/06/16 First release +* 1.3 vak 04/03/17 Added CCI support for USB +* 1.4 bk 12/01/18 Modify USBPSU driver code to fit USB common example code +* for all USB IPs +* myk 12/01/18 Added hibernation support +* vak 22/01/18 Added changes for supporting microblaze platform +* vak 13/03/18 Moved the setup interrupt system calls from driver to +* example. * * * @@ -50,7 +57,7 @@ /***************************** Include Files ********************************/ -#include "xusbpsu.h" +#include "xusb_wrapper.h" /************************** Constant Definitions *****************************/ @@ -95,10 +102,12 @@ void XUsbPsu_EpInterrupt(struct XUsbPsu *InstancePtr, /* Handle other end point events */ switch (Event->Endpoint_Event) { case XUSBPSU_DEPEVT_XFERCOMPLETE: + case XUSBPSU_DEPEVT_XFERINPROGRESS: XUsbPsu_EpXferComplete(InstancePtr, Event); break; case XUSBPSU_DEPEVT_XFERNOTREADY: + XUsbPsu_EpXferNotReady(InstancePtr, Event); break; default: @@ -130,7 +139,87 @@ void XUsbPsu_DisconnectIntr(struct XUsbPsu *InstancePtr) XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); InstancePtr->IsConfigDone = 0U; - InstancePtr->Speed = XUSBPSU_SPEED_UNKNOWN; + InstancePtr->AppData->Speed = XUSBPSU_SPEED_UNKNOWN; + +#ifdef XUSBPSU_HIBERNATION_ENABLE + /* In USB 2.0, to avoid hibernation interrupt at the time of connection + * clear KEEP_CONNECT bit. + */ + if (InstancePtr->HasHibernation) { + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + if (RegVal & XUSBPSU_DCTL_KEEP_CONNECT) { + RegVal &= ~XUSBPSU_DCTL_KEEP_CONNECT; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + } + } +#endif + + /* Call the handler if necessary */ + if (InstancePtr->DisconnectIntrHandler != NULL) { + InstancePtr->DisconnectIntrHandler(InstancePtr->AppData); + } +} + +/****************************************************************************/ +/** +* Stops any active transfer. +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* +* @return None. +* +* @note None. +* +*****************************************************************************/ +static void XUsbPsu_stop_active_transfers(struct XUsbPsu *InstancePtr) +{ + u32 Epnum; + + for (Epnum = 2; Epnum < XUSBPSU_ENDPOINTS_NUM; Epnum++) { + struct XUsbPsu_Ep *Ept; + + Ept = &InstancePtr->eps[Epnum]; + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + XUsbPsu_StopTransfer(InstancePtr, Ept->UsbEpNum, + Ept->Direction, TRUE); + } +} + +/****************************************************************************/ +/** +* Clears stall on all stalled Eps. +* +* @param InstancePtr is a pointer to the XUsbPsu instance. +* +* @return None. +* +* @note None. +* +*****************************************************************************/ +static void XUsbPsu_clear_stall_all_ep(struct XUsbPsu *InstancePtr) +{ + u32 Epnum; + + for (Epnum = 1; Epnum < XUSBPSU_ENDPOINTS_NUM; Epnum++) { + struct XUsbPsu_Ep *Ept; + + Ept = &InstancePtr->eps[Epnum]; + if (!Ept) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_ENABLED)) + continue; + + if (!(Ept->EpStatus & XUSBPSU_EP_STALL)) + continue; + + XUsbPsu_EpClearStall(InstancePtr, Ept->UsbEpNum, Ept->Direction); + } } /****************************************************************************/ @@ -149,13 +238,16 @@ void XUsbPsu_ResetIntr(struct XUsbPsu *InstancePtr) u32 RegVal; u32 Index; - InstancePtr->State = XUSBPSU_STATE_DEFAULT; + InstancePtr->AppData->State = XUSBPSU_STATE_DEFAULT; RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); RegVal &= ~XUSBPSU_DCTL_TSTCTRL_MASK; XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); InstancePtr->TestMode = 0U; + XUsbPsu_stop_active_transfers(InstancePtr); + XUsbPsu_clear_stall_all_ep(InstancePtr); + for (Index = 0U; Index < (InstancePtr->NumInEps + InstancePtr->NumOutEps); Index++) { @@ -168,6 +260,11 @@ void XUsbPsu_ResetIntr(struct XUsbPsu *InstancePtr) RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCFG); RegVal &= ~(XUSBPSU_DCFG_DEVADDR_MASK); XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCFG, RegVal); + + /* Call the handler if necessary */ + if (InstancePtr->ResetIntrHandler != NULL) { + InstancePtr->ResetIntrHandler(InstancePtr->AppData); + } } /****************************************************************************/ @@ -189,7 +286,7 @@ void XUsbPsu_ConnDoneIntr(struct XUsbPsu *InstancePtr) RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DSTS); Speed = (u8)(RegVal & XUSBPSU_DSTS_CONNECTSPD); - InstancePtr->Speed = Speed; + InstancePtr->AppData->Speed = Speed; switch (Speed) { case XUSBPSU_DCFG_SUPERSPEED: @@ -197,7 +294,7 @@ void XUsbPsu_ConnDoneIntr(struct XUsbPsu *InstancePtr) xil_printf("Super Speed\r\n"); #endif Size = 512U; - InstancePtr->Speed = XUSBPSU_SPEED_SUPER; + InstancePtr->AppData->Speed = XUSBPSU_SPEED_SUPER; break; case XUSBPSU_DCFG_HIGHSPEED: @@ -205,7 +302,7 @@ void XUsbPsu_ConnDoneIntr(struct XUsbPsu *InstancePtr) xil_printf("High Speed\r\n"); #endif Size = 64U; - InstancePtr->Speed = XUSBPSU_SPEED_HIGH; + InstancePtr->AppData->Speed = XUSBPSU_SPEED_HIGH; break; case XUSBPSU_DCFG_FULLSPEED2: @@ -214,7 +311,7 @@ void XUsbPsu_ConnDoneIntr(struct XUsbPsu *InstancePtr) xil_printf("Full Speed\r\n"); #endif Size = 64U; - InstancePtr->Speed = XUSBPSU_SPEED_FULL; + InstancePtr->AppData->Speed = XUSBPSU_SPEED_FULL; break; case XUSBPSU_DCFG_LOWSPEED: @@ -222,15 +319,34 @@ void XUsbPsu_ConnDoneIntr(struct XUsbPsu *InstancePtr) xil_printf("Low Speed\r\n"); #endif Size = 64U; - InstancePtr->Speed = XUSBPSU_SPEED_LOW; + InstancePtr->AppData->Speed = XUSBPSU_SPEED_LOW; break; default : Size = 64U; break; } + if (InstancePtr->AppData->Speed == XUSBPSU_SPEED_SUPER) { + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + RegVal &= ~XUSBPSU_DCTL_HIRD_THRES_MASK; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + } + (void)XUsbPsu_EnableControlEp(InstancePtr, Size); (void)XUsbPsu_RecvSetup(InstancePtr); + +#ifdef XUSBPSU_HIBERNATION_ENABLE + /* In USB 2.0, to avoid hibernation interrupt at the time of connection + * clear KEEP_CONNECT bit. + */ + if (InstancePtr->HasHibernation) { + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_DCTL); + if (!(RegVal & XUSBPSU_DCTL_KEEP_CONNECT)) { + RegVal |= XUSBPSU_DCTL_KEEP_CONNECT; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_DCTL, RegVal); + } + } +#endif } /****************************************************************************/ @@ -284,6 +400,10 @@ void XUsbPsu_DevInterrupt(struct XUsbPsu *InstancePtr, break; case XUSBPSU_DEVICE_EVENT_HIBER_REQ: +#ifdef XUSBPSU_HIBERNATION_ENABLE + if (InstancePtr->HasHibernation) + Xusbpsu_HibernationIntr(InstancePtr); +#endif break; case XUSBPSU_DEVICE_EVENT_LINK_STATUS_CHANGE: @@ -362,26 +482,39 @@ void XUsbPsu_EventBufferHandler(struct XUsbPsu *InstancePtr) { struct XUsbPsu_EvtBuffer *Evt; union XUsbPsu_Event Event = {0}; + u32 RegVal; Evt = &InstancePtr->Evt; - Xil_DCacheInvalidateRange((INTPTR)Evt->BuffAddr, + if (InstancePtr->ConfigPtr->IsCacheCoherent == 0) { + Xil_DCacheInvalidateRange((INTPTR)Evt->BuffAddr, (u32)XUSBPSU_EVENT_BUFFERS_SIZE); + } while (Evt->Count > 0) { - Event.Raw = *(UINTPTR *)(Evt->BuffAddr + Evt->Offset); + Event.Raw = *(UINTPTR *)((UINTPTR)Evt->BuffAddr + Evt->Offset); /* - * Process the event received - */ - XUsbPsu_EventHandler(InstancePtr, &Event); + * Process the event received + */ + XUsbPsu_EventHandler(InstancePtr, &Event); + + /* don't process anymore events if core is hibernated */ + if (InstancePtr->IsHibernated) + return; Evt->Offset = (Evt->Offset + 4U) % XUSBPSU_EVENT_BUFFERS_SIZE; Evt->Count -= 4; XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTCOUNT(0), 4U); } + Evt->Count = 0; Evt->Flags &= ~XUSBPSU_EVENT_PENDING; + + /* Unmask event interrupt */ + RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GEVNTSIZ(0)); + RegVal &= ~XUSBPSU_GEVNTSIZ_INTMASK; + XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTSIZ(0), RegVal); } /****************************************************************************/ @@ -424,11 +557,24 @@ void XUsbPsu_IntrHandler(void *XUsbPsuInstancePtr) /* Processes events in an Event Buffer */ XUsbPsu_EventBufferHandler(InstancePtr); - - /* Unmask event interrupt */ - RegVal = XUsbPsu_ReadReg(InstancePtr, XUSBPSU_GEVNTSIZ(0)); - RegVal &= ~XUSBPSU_GEVNTSIZ_INTMASK; - XUsbPsu_WriteReg(InstancePtr, XUSBPSU_GEVNTSIZ(0), RegVal); } +#ifdef XUSBPSU_HIBERNATION_ENABLE +/****************************************************************************/ +/** +* Wakeup Interrupt Handler. +* +* @return None. +* +* @note None. +* +*****************************************************************************/ +void XUsbPsu_WakeUpIntrHandler(void *XUsbPsuInstancePtr) +{ + struct XUsbPsu *InstancePtr = (struct XUsbPsu *)XUsbPsuInstancePtr; + + XUsbPsu_WakeupIntr(InstancePtr); +} +#endif + /** @} */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_sinit.c index c172c5d69..bee46bc4c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/usbpsu_v1_1/src/xusbpsu_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/usbpsu_v1_4/src/xusbpsu_sinit.c @@ -33,7 +33,7 @@ /** * * @file xusbpsu_sinit.h -* @addtogroup usbpsu_v1_0 +* @addtogroup usbpsu_v1_3 * @{ * * diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/Makefile new file mode 100644 index 000000000..9cb03a481 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/Makefile @@ -0,0 +1,40 @@ +COMPILER= +ARCHIVER= +CP=cp +COMPILER_FLAGS=-ffunction-sections -fdata-sections +EXTRA_COMPILER_FLAGS=-Wall -Wextra +LIB=libxil.a + +CC_FLAGS = $(COMPILER_FLAGS) +ECC_FLAGS = $(EXTRA_COMPILER_FLAGS) + +RELEASEDIR=../../../lib +INCLUDEDIR=../../../include +INCLUDES=-I./. -I${INCLUDEDIR} + +OUTS = *.o + +LIBSOURCES:=*.c +INCLUDEFILES:=*.h + +OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) + +libs: banner video_common_libs clean + +%.o: %.c + ${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) -o $@ $< + +banner: + echo "Compiling video_common" + +video_common_libs: ${OBJECTS} + $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} + +.PHONY: include +include: video_common_includes + +video_common_includes: + ${CP} ${INCLUDEFILES} ${INCLUDEDIR} + +clean: + rm -rf ${OBJECTS} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc.c new file mode 100644 index 000000000..ba4f789b0 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc.c @@ -0,0 +1,1204 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xvidc.c + * @addtogroup video_common_v4_3 + * @{ + * + * Contains common utility functions that are typically used by video-related + * drivers and applications. + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   rc,  01/10/15 Initial release.
      + *       als
      + * 2.2   als  02/01/16 Functions with pointer arguments that don't modify
      + *                     contents now const.
      + *                     Added ability to insert a custom video timing table.
      + *       yh            Added 3D support.
      + * 3.0   aad  05/13/16 Added API to search for RB video modes.
      + * 3.1   rco  07/26/16 Added extern definition for timing table array
      + *                     Added video-in-memory color formats
      + *                     Updated XVidC_RegisterCustomTimingModes API signature
      + * 4.1   rco  11/23/16 Added new memory formats
      + *                     Added new API to get video mode id that matches exactly
      + *                     with provided timing information
      + *                     Fix c++ warnings
      + * 4.2	 jsr  07/22/17 Added new framerates and color formats to support SDI
      + *                     Reordered YCBCR422 colorforamt and removed other formats
      + *                     that are not needed for SDI which were added earlier.
      + *       vyc  10/04/17 Added new streaming alpha formats and new memory formats
      + * 4.3   eb   26/01/18 Added API XVidC_GetVideoModeIdExtensive
      + *       jsr  02/22/18 Added XVIDC_CSF_YCBCR_420 color space format
      + *       vyc  04/04/18 Added BGR8 memory format
      + * 
      + * +*******************************************************************************/ + +/******************************* Include Files ********************************/ + +#include "xil_assert.h" +#include "xstatus.h" +#include "xvidc.h" + +/*************************** Variable Declarations ****************************/ +extern const XVidC_VideoTimingMode XVidC_VideoTimingModes[XVIDC_VM_NUM_SUPPORTED]; + +const XVidC_VideoTimingMode *XVidC_CustomTimingModes = NULL; +int XVidC_NumCustomModes = 0; + +/**************************** Function Prototypes *****************************/ + +static const XVidC_VideoTimingMode *XVidC_GetCustomVideoModeData( + XVidC_VideoMode VmId); +static u8 XVidC_IsVtmRb(const char *VideoModeStr, u8 RbN); + +/*************************** Function Definitions *****************************/ + +/******************************************************************************/ +/** + * This function registers a user-defined custom video mode timing table with + * video_common. Functions which search the available video modes, or take VmId + * as an input, will operate on or check the custom video mode timing table in + * addition to the pre-defined video mode timing table (XVidC_VideoTimingModes). + * + * @param CustomTable is a pointer to the user-defined custom vide mode + * timing table to register. + * @param NumElems is the number of video modes supported by CustomTable. + * + * @return + * - XST_SUCCESS if the custom table was successfully registered. + * - XST_FAILURE if an existing custom table is already present. + * + * @note IDs in the custom table may not conflict with IDs reserved by + * the XVidC_VideoMode enum. + * +*******************************************************************************/ +u32 XVidC_RegisterCustomTimingModes(const XVidC_VideoTimingMode *CustomTable, + u16 NumElems) +{ + u16 Index; + + /* Verify arguments. */ + Xil_AssertNonvoid(CustomTable != NULL); + for (Index = 0; Index < NumElems; Index++) { + Xil_AssertNonvoid((CustomTable[Index].VmId > XVIDC_VM_CUSTOM)); + /* The IDs of each video mode in the custom table must not + * conflict with IDs reserved by video_common. */ + } + + /* Fail if a custom table is currently already registered. */ + if (XVidC_CustomTimingModes) { + return XST_FAILURE; + } + + XVidC_CustomTimingModes = CustomTable; + XVidC_NumCustomModes = NumElems; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function unregisters the user-defined custom video mode timing table + * previously registered by XVidC_RegisterCustomTimingModes(). + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XVidC_UnregisterCustomTimingModes(void) +{ + XVidC_CustomTimingModes = NULL; + XVidC_NumCustomModes = 0; +} + +/******************************************************************************/ +/** + * This function calculates pixel clock based on the inputs. + * + * @param HTotal specifies horizontal total. + * @param VTotal specifies vertical total. + * @param FrameRate specifies rate at which frames are generated. + * + * @return Pixel clock in Hz. + * + * @note None. + * +*******************************************************************************/ +u32 XVidC_GetPixelClockHzByHVFr(u32 HTotal, u32 VTotal, u8 FrameRate) +{ + return (HTotal * VTotal * FrameRate); +} + +/******************************************************************************/ +/** + * This function calculates pixel clock from video mode. + * + * @param VmId specifies the resolution id. + * + * @return Pixel clock in Hz. + * + * @note None. + * +*******************************************************************************/ +u32 XVidC_GetPixelClockHzByVmId(XVidC_VideoMode VmId) +{ + u32 ClkHz; + const XVidC_VideoTimingMode *VmPtr; + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return 0; + } + + if (XVidC_IsInterlaced(VmId)) { + /* For interlaced mode, use both frame 0 and frame 1 vertical + * totals. */ + ClkHz = VmPtr->Timing.F0PVTotal + VmPtr->Timing.F1VTotal; + + /* Multiply the number of pixels by the frame rate of each + * individual frame (half of the total frame rate). */ + ClkHz *= VmPtr->FrameRate / 2; + } + else { + /* For progressive mode, use only frame 0 vertical total. */ + ClkHz = VmPtr->Timing.F0PVTotal; + + /* Multiply the number of pixels by the frame rate. */ + ClkHz *= VmPtr->FrameRate; + } + + /* Multiply the vertical total by the horizontal total for number of + * pixels. */ + ClkHz *= VmPtr->Timing.HTotal; + + return ClkHz; +} + +/******************************************************************************/ +/** + * This function checks if the input video mode is interlaced/progressive based + * on its ID from the video timings table. + * + * @param VmId specifies the resolution ID from the video timings table. + * + * @return Video format. + * - XVIDC_VF_PROGRESSIVE + * - XVIDC_VF_INTERLACED + * + * @note None. + * +*******************************************************************************/ +XVidC_VideoFormat XVidC_GetVideoFormat(XVidC_VideoMode VmId) +{ + const XVidC_VideoTimingMode *VmPtr; + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return XVIDC_VF_UNKNOWN; + } + + if (VmPtr->Timing.F1VTotal == 0) { + return (XVIDC_VF_PROGRESSIVE); + } + + return (XVIDC_VF_INTERLACED); +} + +/******************************************************************************/ +/** + * This function checks if the input video mode is interlaced based on its ID + * from the video timings table. + * + * @param VmId specifies the resolution ID from the video timings table. + * + * @return + * - 1 if the video timing with the supplied table ID is + * interlaced. + * - 0 if the video timing is progressive. + * + * @note None. + * +*******************************************************************************/ +u8 XVidC_IsInterlaced(XVidC_VideoMode VmId) +{ + if (XVidC_GetVideoFormat(VmId) == XVIDC_VF_INTERLACED) { + return 1; + } + + return 0; +} + +/******************************************************************************/ +/** + * This function returns the Video Mode ID that matches the detected input + * timing, frame rate and I/P flag + * + * @param Timing is the pointer to timing parameters to match + * @param FrameRate specifies refresh rate in HZ + * @param IsInterlaced is flag. + * - 0 = Progressive + * - 1 = Interlaced. + * + * @return Id of a supported video mode. + * + * @note This is an extension of XVidC_GetVideoModeId API to include + * blanking information in match process. No attempt is made to + * search for reduced blanking entries, if any. + * +*******************************************************************************/ +XVidC_VideoMode XVidC_GetVideoModeIdWBlanking(const XVidC_VideoTiming *Timing, + u32 FrameRate, u8 IsInterlaced) +{ + XVidC_VideoMode VmId; + XVidC_VideoTiming const *StdTiming = NULL; + + /* First search for ID with matching Width & Height */ + VmId = XVidC_GetVideoModeId(Timing->HActive, Timing->VActive, FrameRate, + IsInterlaced); + + if(VmId == XVIDC_VM_NOT_SUPPORTED) { + return(VmId); + } else { + + /* Get standard timing info from default timing table */ + StdTiming = XVidC_GetTimingInfo(VmId); + + /* Match against detected timing parameters */ + if((Timing->HActive == StdTiming->HActive) && + (Timing->VActive == StdTiming->VActive) && + (Timing->HTotal == StdTiming->HTotal) && + (Timing->F0PVTotal == StdTiming->F0PVTotal) && + (Timing->HFrontPorch == StdTiming->HFrontPorch) && + (Timing->HSyncWidth == StdTiming->HSyncWidth) && + (Timing->HBackPorch == StdTiming->HBackPorch) && + (Timing->F0PVFrontPorch == StdTiming->F0PVFrontPorch) && + (Timing->F0PVSyncWidth == StdTiming->F0PVSyncWidth) && + (Timing->F0PVBackPorch == StdTiming->F0PVBackPorch)) { + return(VmId); + } else { + return(XVIDC_VM_NOT_SUPPORTED); + } + } +} + +/******************************************************************************/ +/** + * This function returns the Video Mode ID that matches the detected input + * width, height, frame rate and I/P flag + * + * @param Width specifies the number pixels per scanline. + * @param Height specifies the number of scanline's. + * @param FrameRate specifies refresh rate in HZ + * @param IsInterlaced is flag. + * - 0 = Progressive + * - 1 = Interlaced. + * + * @return Id of a supported video mode. + * + * @note None. + * +*******************************************************************************/ +XVidC_VideoMode XVidC_GetVideoModeId(u32 Width, u32 Height, u32 FrameRate, + u8 IsInterlaced) +{ + u32 Low; + u32 High; + u32 Mid; + u32 HActive; + u32 VActive; + u32 Rate; + u32 ResFound = (FALSE); + XVidC_VideoMode Mode; + u16 Index; + + /* First, attempt a linear search on the custom video timing table. */ + if(XVidC_CustomTimingModes) { + for (Index = 0; Index < XVidC_NumCustomModes; Index++) { + HActive = XVidC_CustomTimingModes[Index].Timing.HActive; + VActive = XVidC_CustomTimingModes[Index].Timing.VActive; + Rate = XVidC_CustomTimingModes[Index].FrameRate; + if ((Width == HActive) && + (Height == VActive) && + (FrameRate == Rate)) { + return XVidC_CustomTimingModes[Index].VmId; + } + } + } + + if (IsInterlaced) { + Low = (XVIDC_VM_INTL_START); + High = (XVIDC_VM_INTL_END); + } + else { + Low = (XVIDC_VM_PROG_START); + High = (XVIDC_VM_PROG_END); + } + + HActive = VActive = Rate = 0; + + /* Binary search finds item in sorted array. + * And returns index (zero based) of item + * If item is not found returns flag remains + * FALSE. Search key is "width or HActive" + */ + while (Low <= High) { + Mid = (Low + High) / 2; + HActive = XVidC_VideoTimingModes[Mid].Timing.HActive; + if (Width == HActive) { + ResFound = (TRUE); + break; + } + else if (Width < HActive) { + if (Mid == 0) { + break; + } + else { + High = Mid - 1; + } + } + else { + Low = Mid + 1; + } + } + + /* HActive matched at middle */ + if (ResFound) { + /* Rewind to start index of mode with matching width */ + while ((Mid > 0) && + (XVidC_VideoTimingModes[Mid - 1].Timing.HActive == + Width)) { + --Mid; + } + + ResFound = (FALSE); + VActive = XVidC_VideoTimingModes[Mid].Timing.VActive; + Rate = XVidC_VideoTimingModes[Mid].FrameRate; + + /* Now do a linear search for matching VActive and Frame + * Rate + */ + while (HActive == Width) { + /* check current entry */ + if ((VActive == Height) && (Rate == FrameRate)) { + ResFound = (TRUE); + break; + } + /* Check next entry */ + else { + Mid = Mid + 1; + HActive = + XVidC_VideoTimingModes[Mid].Timing.HActive; + VActive = + XVidC_VideoTimingModes[Mid].Timing.VActive; + Rate = XVidC_VideoTimingModes[Mid].FrameRate; + } + } + Mode = + (ResFound) ? (XVidC_VideoMode)Mid : (XVIDC_VM_NOT_SUPPORTED); + } + else { + Mode = (XVIDC_VM_NOT_SUPPORTED); + } + + return (Mode); +} + +/******************************************************************************/ +/** + * This function returns the Video Mode ID that matches the detected input + * timing, frame rate and I/P flag + * + * @param Timing is the pointer to timing parameters to match + * @param FrameRate specifies refresh rate in HZ + * @param IsInterlaced is flag. + * - 0 = Progressive + * - 1 = Interlaced. + * @param IsExtensive is flag. + * - 0 = Basic matching of timing parameters + * - 1 = Extensive matching of timing parameters + * + * @return Id of a supported video mode. + * + * @note This function attempts to search for reduced blanking entries, if + * any. + * +*******************************************************************************/ +XVidC_VideoMode XVidC_GetVideoModeIdExtensive(XVidC_VideoTiming *Timing, + u32 FrameRate, + u8 IsInterlaced, + u8 IsExtensive) +{ + u32 Low; + u32 High; + u32 Mid; + u32 HActive; + u32 VActive; + u32 Rate; + u32 ResFound = (FALSE); + XVidC_VideoMode Mode; + u16 Index; + + /* First, attempt a linear search on the custom video timing table. */ + if(XVidC_CustomTimingModes) { + for (Index = 0; Index < XVidC_NumCustomModes; Index++) { + HActive = XVidC_CustomTimingModes[Index].Timing.HActive; + VActive = XVidC_CustomTimingModes[Index].Timing.VActive; + Rate = XVidC_CustomTimingModes[Index].FrameRate; + if ((HActive == Timing->HActive) && (VActive == Timing->VActive) && + (Rate == FrameRate) && (IsExtensive == 0 || ( + XVidC_CustomTimingModes[Index].Timing.HTotal == Timing->HTotal && + XVidC_CustomTimingModes[Index].Timing.F0PVTotal == + Timing->F0PVTotal && + XVidC_CustomTimingModes[Index].Timing.HFrontPorch == + Timing->HFrontPorch && + XVidC_CustomTimingModes[Index].Timing.F0PVFrontPorch == + Timing->F0PVFrontPorch && + XVidC_CustomTimingModes[Index].Timing.HSyncWidth == + Timing->HSyncWidth && + XVidC_CustomTimingModes[Index].Timing.F0PVSyncWidth == + Timing->F0PVSyncWidth && + XVidC_CustomTimingModes[Index].Timing.VSyncPolarity == + Timing->VSyncPolarity))) { + if (!IsInterlaced || IsExtensive == 0 || ( + XVidC_CustomTimingModes[Index].Timing.F1VTotal == + Timing->F1VTotal && + XVidC_CustomTimingModes[Index].Timing.F1VFrontPorch == + Timing->F1VFrontPorch && + XVidC_CustomTimingModes[Index].Timing.F1VSyncWidth == + Timing->F1VSyncWidth)) { + return XVidC_CustomTimingModes[Index].VmId; + } + } + } + } + + if (IsInterlaced) { + Low = (XVIDC_VM_INTL_START); + High = (XVIDC_VM_INTL_END); + } + else { + Low = (XVIDC_VM_PROG_START); + High = (XVIDC_VM_PROG_END); + } + + HActive = VActive = Rate = 0; + + /* Binary search finds item in sorted array. + * And returns index (zero based) of item + * If item is not found returns flag remains + * FALSE. Search key is "Timing->HActive or HActive" + */ + while (Low <= High) { + Mid = (Low + High) / 2; + HActive = XVidC_VideoTimingModes[Mid].Timing.HActive; + if (Timing->HActive == HActive) { + ResFound = (TRUE); + break; + } + else if (Timing->HActive < HActive) { + if (Mid == 0) { + break; + } + else { + High = Mid - 1; + } + } + else { + Low = Mid + 1; + } + } + + /* HActive matched at middle */ + if (ResFound) { + /* Rewind to start index of mode with matching Timing->HActive */ + while ((Mid > 0) && + (XVidC_VideoTimingModes[Mid - 1].Timing.HActive == + Timing->HActive)) { + --Mid; + } + + ResFound = (FALSE); + VActive = XVidC_VideoTimingModes[Mid].Timing.VActive; + Rate = XVidC_VideoTimingModes[Mid].FrameRate; + + /* Now do a linear search for matching VActive and Frame + * Rate + */ + while (HActive == Timing->HActive) { + /* check current entry */ + if ((VActive == Timing->VActive) && (Rate == FrameRate) && + (IsExtensive == 0 || + (XVidC_VideoTimingModes[Mid].Timing.HTotal == + Timing->HTotal && + XVidC_VideoTimingModes[Mid].Timing.F0PVTotal == + Timing->F0PVTotal && + XVidC_VideoTimingModes[Mid].Timing.HFrontPorch == + Timing->HFrontPorch && + XVidC_VideoTimingModes[Mid].Timing.F0PVFrontPorch == + Timing->F0PVFrontPorch && + XVidC_VideoTimingModes[Mid].Timing.HSyncWidth == + Timing->HSyncWidth && + XVidC_VideoTimingModes[Mid].Timing.F0PVSyncWidth == + Timing->F0PVSyncWidth && + XVidC_VideoTimingModes[Mid].Timing.VSyncPolarity == + Timing->VSyncPolarity))) { + if (!IsInterlaced || IsExtensive == 0 || ( + XVidC_VideoTimingModes[Mid].Timing.F1VTotal == + Timing->F1VTotal && + XVidC_VideoTimingModes[Mid].Timing.F1VFrontPorch == + Timing->F1VFrontPorch && + XVidC_VideoTimingModes[Mid].Timing.F1VSyncWidth == + Timing->F1VSyncWidth)) { + ResFound = (TRUE); + break; + } + } + /* Check next entry */ + else { + Mid = Mid + 1; + HActive = + XVidC_VideoTimingModes[Mid].Timing.HActive; + VActive = + XVidC_VideoTimingModes[Mid].Timing.VActive; + Rate = XVidC_VideoTimingModes[Mid].FrameRate; + } + } + Mode = + (ResFound) ? (XVidC_VideoMode)Mid : (XVIDC_VM_NOT_SUPPORTED); + } + else { + Mode = (XVIDC_VM_NOT_SUPPORTED); + } + + return (Mode); +} + +/******************************************************************************/ +/** + * This function returns the video mode ID that matches the detected input + * width, height, frame rate, interlaced or progressive, and reduced blanking. + * + * @param Width specifies the number pixels per scanline. + * @param Height specifies the number of scanline's. + * @param FrameRate specifies refresh rate in HZ + * @param IsInterlaced specifies interlaced or progressive mode: + * - 0 = Progressive + * - 1 = Interlaced. + * @param RbN specifies the type of reduced blanking: + * - 0 = No reduced blanking + * - 1 = RB + * - 2 = RB2 + * + * @return ID of a supported video mode. + * + * @note None. + * +*******************************************************************************/ +XVidC_VideoMode XVidC_GetVideoModeIdRb(u32 Width, u32 Height, + u32 FrameRate, u8 IsInterlaced, u8 RbN) +{ + XVidC_VideoMode VmId; + const XVidC_VideoTimingMode *VtmPtr; + u8 Found = 0; + + VmId = XVidC_GetVideoModeId(Width, Height, FrameRate, + IsInterlaced); + + VtmPtr = XVidC_GetVideoModeData(VmId); + if (!VtmPtr) { + return XVIDC_VM_NOT_SUPPORTED; + } + + while (!Found) { + VtmPtr = XVidC_GetVideoModeData(VmId); + if ((Height != VtmPtr->Timing.VActive) || + (Width != VtmPtr->Timing.HActive) || + (FrameRate != VtmPtr->FrameRate) || + (IsInterlaced && !XVidC_IsInterlaced(VmId))) { + VmId = XVIDC_VM_NOT_SUPPORTED; + break; + } + Found = XVidC_IsVtmRb(XVidC_GetVideoModeStr(VmId), RbN); + if (Found) { + break; + } + VmId = (XVidC_VideoMode)((int)VmId + 1); + } + + return VmId; +} + +/******************************************************************************/ +/** + * This function returns the pointer to video mode data at index provided. + * + * @param VmId specifies the resolution id. + * + * @return Pointer to XVidC_VideoTimingMode structure based on the given + * video mode. + * + * @note None. + * +*******************************************************************************/ +const XVidC_VideoTimingMode *XVidC_GetVideoModeData(XVidC_VideoMode VmId) +{ + if (VmId < XVIDC_VM_NUM_SUPPORTED) { + return &XVidC_VideoTimingModes[VmId]; + } + + return XVidC_GetCustomVideoModeData(VmId); +} + +/******************************************************************************/ +/** + * + * This function returns the resolution name for index specified. + * + * @param VmId specifies the resolution id. + * + * @return Pointer to a resolution name string. + * + * @note None. + * +*******************************************************************************/ +const char *XVidC_GetVideoModeStr(XVidC_VideoMode VmId) +{ + const XVidC_VideoTimingMode *VmPtr; + + if (VmId == XVIDC_VM_CUSTOM) { + return ("Custom video mode"); + } + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return ("Video mode not supported"); + } + + return VmPtr->Name; +} + +/******************************************************************************/ +/** + * This function returns the frame rate name for index specified. + * + * @param VmId specifies the resolution id. + * + * @return Pointer to a frame rate name string. + * + * @note None. + * +*******************************************************************************/ +const char *XVidC_GetFrameRateStr(XVidC_VideoMode VmId) +{ + const XVidC_VideoTimingMode *VmPtr; + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return ("Video mode not supported"); + } + + switch (VmPtr->FrameRate) { + case (XVIDC_FR_24HZ): return ("24Hz"); + case (XVIDC_FR_25HZ): return ("25Hz"); + case (XVIDC_FR_30HZ): return ("30Hz"); + case (XVIDC_FR_48HZ): return ("48Hz"); + case (XVIDC_FR_50HZ): return ("50Hz"); + case (XVIDC_FR_56HZ): return ("56Hz"); + case (XVIDC_FR_60HZ): return ("60Hz"); + case (XVIDC_FR_65HZ): return ("65Hz"); + case (XVIDC_FR_67HZ): return ("67Hz"); + case (XVIDC_FR_70HZ): return ("70Hz"); + case (XVIDC_FR_72HZ): return ("72Hz"); + case (XVIDC_FR_75HZ): return ("75Hz"); + case (XVIDC_FR_85HZ): return ("85Hz"); + case (XVIDC_FR_87HZ): return ("87Hz"); + case (XVIDC_FR_88HZ): return ("88Hz"); + case (XVIDC_FR_96HZ): return ("96Hz"); + case (XVIDC_FR_100HZ): return ("100Hz"); + case (XVIDC_FR_120HZ): return ("120Hz"); + + default: + return ("Frame rate not supported"); + } +} + +/******************************************************************************/ +/** + * This function returns a string representation of the enumerated type, + * XVidC_3DFormat. + * + * @param Format specifies the value to convert. + * + * @return Pointer to the converted string. + * + * @note None. + * +*******************************************************************************/ +const char *XVidC_Get3DFormatStr(XVidC_3DFormat Format) +{ + switch (Format) { + case XVIDC_3D_FRAME_PACKING: + return ("Frame Packing"); + + case XVIDC_3D_FIELD_ALTERNATIVE: + return ("Field Alternative"); + + case XVIDC_3D_LINE_ALTERNATIVE: + return ("Line Alternative"); + + case XVIDC_3D_SIDE_BY_SIDE_FULL: + return ("Side-by-Side(full)"); + + case XVIDC_3D_TOP_AND_BOTTOM_HALF: + return ("Top-and-Bottom(half)"); + + case XVIDC_3D_SIDE_BY_SIDE_HALF: + return ("Side-by-Side(half)"); + + default: + return ("Unknown"); + } +} + +/******************************************************************************/ +/** + * This function returns the color format name for index specified. + * + * @param ColorFormatId specifies the index of color format space. + * + * @return Pointer to a color space name string. + * + * @note None. + * +*******************************************************************************/ +const char *XVidC_GetColorFormatStr(XVidC_ColorFormat ColorFormatId) +{ + switch (ColorFormatId) { + case XVIDC_CSF_RGB: return ("RGB"); + case XVIDC_CSF_YCRCB_444: return ("YUV_444"); + case XVIDC_CSF_YCRCB_422: return ("YUV_422"); + case XVIDC_CSF_YCRCB_420: return ("YUV_420"); + case XVIDC_CSF_YONLY: return ("Y_ONLY"); + case XVIDC_CSF_RGBA: return ("RGBA"); + case XVIDC_CSF_YCRCBA_444: return ("YUVA_444"); + case XVIDC_CSF_MEM_RGBX8: return ("RGBX8"); + case XVIDC_CSF_MEM_YUVX8: return ("YUVX8"); + case XVIDC_CSF_MEM_YUYV8: return ("YUYV8"); + case XVIDC_CSF_MEM_RGBA8: return ("RGBA8"); + case XVIDC_CSF_MEM_YUVA8: return ("YUVA8"); + case XVIDC_CSF_MEM_RGBX10: return ("RGBX10"); + case XVIDC_CSF_MEM_YUVX10: return ("YUVX10"); + case XVIDC_CSF_MEM_RGB565: return ("RGB565"); + case XVIDC_CSF_MEM_Y_UV8: return ("Y_UV8"); + case XVIDC_CSF_MEM_Y_UV8_420: return ("Y_UV8_420"); + case XVIDC_CSF_MEM_RGB8: return ("RGB8"); + case XVIDC_CSF_MEM_YUV8: return ("YUV8"); + case XVIDC_CSF_MEM_Y_UV10: return ("Y_UV10"); + case XVIDC_CSF_MEM_Y_UV10_420: return ("Y_UV10_420"); + case XVIDC_CSF_MEM_Y8: return ("Y8"); + case XVIDC_CSF_MEM_Y10: return ("Y10"); + case XVIDC_CSF_MEM_BGRA8: return ("BGRA8"); + case XVIDC_CSF_MEM_BGRX8: return ("BGRX8"); + case XVIDC_CSF_MEM_UYVY8: return ("UYVY8"); + case XVIDC_CSF_MEM_BGR8: return ("BGR8"); + case XVIDC_CSF_YCBCR_422: return ("YCBCR_422"); + case XVIDC_CSF_YCBCR_420: return ("YCBCR_420"); + default: + return ("Color space format not supported"); + } +} + +/******************************************************************************/ +/** + * This function returns the frame rate for index specified. + * + * @param VmId specifies the resolution id. + * + * @return Frame rate in Hz. + * + * @note None. + * +*******************************************************************************/ +XVidC_FrameRate XVidC_GetFrameRate(XVidC_VideoMode VmId) +{ + const XVidC_VideoTimingMode *VmPtr; + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return XVIDC_FR_NUM_SUPPORTED; + } + + return VmPtr->FrameRate; +} + +/******************************************************************************/ +/** + * This function returns the timing parameters for specified resolution. + * + * @param VmId specifies the resolution id. + * + * @return Pointer to a XVidC_VideoTiming structure. + * + * @note None. + * +*******************************************************************************/ +const XVidC_VideoTiming *XVidC_GetTimingInfo(XVidC_VideoMode VmId) +{ + const XVidC_VideoTimingMode *VmPtr; + + VmPtr = XVidC_GetVideoModeData(VmId); + if (!VmPtr) { + return NULL; + } + + return &VmPtr->Timing; +} + +/******************************************************************************/ +/** + * This function sets the VideoStream structure for the specified video format. + * + * @param VidStrmPtr is a pointer to the XVidC_VideoStream structure to be + * set. + * @param VmId specifies the resolution ID. + * @param ColorFormat specifies the color format type. + * @param Bpc specifies the color depth/bits per color component. + * @param Ppc specifies the pixels per clock. + * + * @return + * - XST_SUCCESS if the timing for the supplied ID was found. + * - XST_FAILURE, otherwise. + * + * @note None. + * +*******************************************************************************/ +u32 XVidC_SetVideoStream(XVidC_VideoStream *VidStrmPtr, XVidC_VideoMode VmId, + XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, + XVidC_PixelsPerClock Ppc) +{ + const XVidC_VideoTiming *TimingPtr; + + /* Verify arguments. */ + Xil_AssertNonvoid(VidStrmPtr != NULL); + Xil_AssertNonvoid(ColorFormat < XVIDC_CSF_NUM_SUPPORTED); + Xil_AssertNonvoid((Bpc == XVIDC_BPC_6) || + (Bpc == XVIDC_BPC_8) || + (Bpc == XVIDC_BPC_10) || + (Bpc == XVIDC_BPC_12) || + (Bpc == XVIDC_BPC_14) || + (Bpc == XVIDC_BPC_16) || + (Bpc == XVIDC_BPC_UNKNOWN)); + Xil_AssertNonvoid((Ppc == XVIDC_PPC_1) || + (Ppc == XVIDC_PPC_2) || + (Ppc == XVIDC_PPC_4)); + + /* Get the timing from the video timing table. */ + TimingPtr = XVidC_GetTimingInfo(VmId); + if (!TimingPtr) { + return XST_FAILURE; + } + VidStrmPtr->VmId = VmId; + VidStrmPtr->Timing = *TimingPtr; + VidStrmPtr->FrameRate = XVidC_GetFrameRate(VmId); + VidStrmPtr->IsInterlaced = XVidC_IsInterlaced(VmId); + VidStrmPtr->ColorFormatId = ColorFormat; + VidStrmPtr->ColorDepth = Bpc; + VidStrmPtr->PixPerClk = Ppc; + + /* Set stream to 2D. */ + VidStrmPtr->Is3D = FALSE; + VidStrmPtr->Info_3D.Format = XVIDC_3D_UNKNOWN; + VidStrmPtr->Info_3D.Sampling.Method = XVIDC_3D_SAMPLING_UNKNOWN; + VidStrmPtr->Info_3D.Sampling.Position = XVIDC_3D_SAMPPOS_UNKNOWN; + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function sets the VideoStream structure for the specified 3D video + * format. + * + * @param VidStrmPtr is a pointer to the XVidC_VideoStream structure to be + * set. + * @param VmId specifies the resolution ID. + * @param ColorFormat specifies the color format type. + * @param Bpc specifies the color depth/bits per color component. + * @param Ppc specifies the pixels per clock. + * @param Info3DPtr is a pointer to a XVidC_3DInfo structure. + * + * @return + * - XST_SUCCESS if the timing for the supplied ID was found. + * - XST_FAILURE, otherwise. + * + * @return + * - XST_SUCCESS + * - XST_FAILURE + * + * @note None. + * +*******************************************************************************/ +u32 XVidC_Set3DVideoStream(XVidC_VideoStream *VidStrmPtr, XVidC_VideoMode VmId, + XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, + XVidC_PixelsPerClock Ppc, XVidC_3DInfo *Info3DPtr) +{ + u32 Status; + u16 Vblank0; + u16 Vblank1; + + /* Verify arguments */ + Xil_AssertNonvoid(Info3DPtr != NULL); + + /* Initialize with info for 2D frame. */ + Status = XVidC_SetVideoStream(VidStrmPtr, VmId, ColorFormat, Bpc, Ppc); + if (Status != XST_SUCCESS) { + return XST_FAILURE; + } + + /* Set stream to 3D. */ + VidStrmPtr->Is3D = TRUE; + VidStrmPtr->Info_3D = *Info3DPtr; + + /* Only 3D format supported is frame packing. */ + if (Info3DPtr->Format != XVIDC_3D_FRAME_PACKING) { + return XST_FAILURE; + } + + /* Update the timing based on the 3D format. */ + + /* An interlaced format is converted to a progressive frame: */ + /* 3D VActive = (2D VActive * 4) + (2D VBlank field0) + + (2D Vblank field1 * 2) */ + if (VidStrmPtr->IsInterlaced) { + Vblank0 = VidStrmPtr->Timing.F0PVTotal - + VidStrmPtr->Timing.VActive; + Vblank1 = VidStrmPtr->Timing.F1VTotal - + VidStrmPtr->Timing.VActive; + VidStrmPtr->Timing.VActive = (VidStrmPtr->Timing.VActive * 4) + + Vblank0 + (Vblank1 * 2); + + /* Set VTotal */ + VidStrmPtr->Timing.F0PVTotal *= 2; + VidStrmPtr->Timing.F0PVTotal += VidStrmPtr->Timing.F1VTotal * 2; + + /* Clear field 1 values. */ + VidStrmPtr->Timing.F1VFrontPorch = 0; + VidStrmPtr->Timing.F1VSyncWidth = 0; + VidStrmPtr->Timing.F1VBackPorch = 0; + VidStrmPtr->Timing.F1VTotal = 0; + + /* Set format to progressive */ + VidStrmPtr->IsInterlaced = FALSE; + } + /* Progressive */ + else { + /* 3D Vactive = (2D VActive * 2) + (2D VBlank) */ + Vblank0 = VidStrmPtr->Timing.F0PVTotal - + VidStrmPtr->Timing.VActive; + VidStrmPtr->Timing.VActive = (VidStrmPtr->Timing.VActive * 2) + + Vblank0; + + /* Set VTotal. */ + VidStrmPtr->Timing.F0PVTotal = VidStrmPtr->Timing.F0PVTotal * 2; + } + + return XST_SUCCESS; +} + +/******************************************************************************/ +/** + * This function prints the stream information on STDIO/UART console. + * + * @param Stream is a pointer to video stream. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XVidC_ReportStreamInfo(const XVidC_VideoStream *Stream) +{ + if (!XVidC_GetVideoModeData(Stream->VmId) && + (Stream->VmId != XVIDC_VM_CUSTOM)) { + xil_printf("\tThe stream ID (%d) is not supported.\r\n", + Stream->VmId); + return; + } + + xil_printf("\tColor Format: %s\r\n", + XVidC_GetColorFormatStr(Stream->ColorFormatId)); + xil_printf("\tColor Depth: %d\r\n", Stream->ColorDepth); + xil_printf("\tPixels Per Clock: %d\r\n", Stream->PixPerClk); + xil_printf("\tMode: %s\r\n", + Stream->IsInterlaced ? "Interlaced" : "Progressive"); + + if (Stream->Is3D) { + xil_printf("\t3D Format: %s\r\n", + XVidC_Get3DFormatStr(Stream->Info_3D.Format)); + } + + if (Stream->VmId == XVIDC_VM_CUSTOM) { + xil_printf("\tFrame Rate: %dHz\r\n", + Stream->FrameRate); + xil_printf("\tResolution: %dx%d [Custom Mode]\r\n", + Stream->Timing.HActive, Stream->Timing.VActive); + xil_printf("\tPixel Clock: %d\r\n", + XVidC_GetPixelClockHzByHVFr( + Stream->Timing.HTotal, + Stream->Timing.F0PVTotal, + Stream->FrameRate)); + } + else { + xil_printf("\tFrame Rate: %s\r\n", + XVidC_GetFrameRateStr(Stream->VmId)); + xil_printf("\tResolution: %s\r\n", + XVidC_GetVideoModeStr(Stream->VmId)); + xil_printf("\tPixel Clock: %d\r\n", + XVidC_GetPixelClockHzByVmId(Stream->VmId)); + } +} + +/******************************************************************************/ +/** + * This function prints timing information on STDIO/Uart console. + * + * @param Timing is a pointer to Video Timing structure of the stream. + * @param IsInterlaced is a TRUE/FALSE flag that denotes the timing + * parameter is for interlaced/progressive stream. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XVidC_ReportTiming(const XVidC_VideoTiming *Timing, u8 IsInterlaced) +{ + xil_printf("\r\n\tHSYNC Timing: hav=%04d, hfp=%02d, hsw=%02d(hsp=%d), " + "hbp=%03d, htot=%04d \n\r", Timing->HActive, + Timing->HFrontPorch, Timing->HSyncWidth, + Timing->HSyncPolarity, + Timing->HBackPorch, Timing->HTotal); + + /* Interlaced */ + if (IsInterlaced) { + xil_printf("\tVSYNC Timing (Field 0): vav=%04d, vfp=%02d, " + "vsw=%02d(vsp=%d), vbp=%03d, vtot=%04d\n\r", + Timing->VActive, Timing->F0PVFrontPorch, + Timing->F0PVSyncWidth, Timing->VSyncPolarity, + Timing->F0PVBackPorch, Timing->F0PVTotal); + xil_printf("\tVSYNC Timing (Field 1): vav=%04d, vfp=%02d, " + "vsw=%02d(vsp=%d), vbp=%03d, vtot=%04d\n\r", + Timing->VActive, Timing->F1VFrontPorch, + Timing->F1VSyncWidth, Timing->VSyncPolarity, + Timing->F1VBackPorch, Timing->F1VTotal); + } + /* Progressive */ + else { + xil_printf("\tVSYNC Timing: vav=%04d, vfp=%02d, " + "vsw=%02d(vsp=%d), vbp=%03d, vtot=%04d\n\r", + Timing->VActive, Timing->F0PVFrontPorch, + Timing->F0PVSyncWidth, Timing->VSyncPolarity, + Timing->F0PVBackPorch, Timing->F0PVTotal); + } +} + +/******************************************************************************/ +/** + * This function returns the pointer to video mode data at the provided index + * of the custom video mode table. + * + * @param VmId specifies the resolution ID. + * + * @return Pointer to XVidC_VideoTimingMode structure based on the given + * video mode. + * + * @note None. + * +*******************************************************************************/ +static const XVidC_VideoTimingMode *XVidC_GetCustomVideoModeData( + XVidC_VideoMode VmId) +{ + u16 Index; + + for (Index = 0; Index < XVidC_NumCustomModes; Index++) { + if (VmId == (XVidC_CustomTimingModes[Index].VmId)) { + return &(XVidC_CustomTimingModes[Index]); + } + } + + /* ID not found within the custom video mode table. */ + return NULL; +} + +/******************************************************************************/ +/** + * This function returns whether or not the video timing mode is a reduced + * blanking mode or not. + * + * @param VideoModeStr specifies the resolution name string. + * @param RbN specifies the type of reduced blanking: + * - 0 = No Reduced Blanking + * - 1 = RB + * - 2 = RB2 + * + * @return If the reduced blanking type is compatible with the video mode: + * - 0 = Not supported + * - 1 = Video mode supports the RB type + * + * @note None. + * +*******************************************************************************/ +static u8 XVidC_IsVtmRb(const char *VideoModeStr, u8 RbN) +{ + while ((*VideoModeStr !='\0') && (*VideoModeStr != 'R')) { + VideoModeStr++; + } + + if (*(VideoModeStr + 2) == ')') { + return RbN == 1; + } + if (*(VideoModeStr + 2) == '2') { + return RbN == 2; + } + return 0; +} +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc.h new file mode 100644 index 000000000..bcd3d0b7a --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc.h @@ -0,0 +1,621 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xvidc.h + * @addtogroup video_common_v4_3 + * @{ + * @details + * + * Contains common structures, definitions, macros, and utility functions that + * are typically used by video-related drivers and applications. + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   rc,  01/10/15 Initial release.
      + *       als
      + * 2.0   als  08/14/15 Added new video timings.
      + * 2.2   als  02/01/16 Functions with pointer arguments that don't modify
      + *                     contents now const.
      + *                     Added ability to insert a custom video timing table:
      + *                         XVidC_RegisterCustomTimingModes
      + *                         XVidC_UnregisterCustomTimingMode
      + *       yh            Added 3D support.
      + * 3.0   aad  05/13/16 Added API to search for RB video modes.
      + *       als  05/16/16 Added Y-only to color format enum.
      + * 3.1   rco  07/26/17 Moved timing table extern definition to xvidc.c
      + *                     Added video-in-memory color formats
      + *                     Updated XVidC_RegisterCustomTimingModes API signature
      + * 4.1   rco  11/23/17 Added new memory formats
      + *                     Added xil_printf include statement
      + *                     Added new API XVidC_GetVideoModeIdWBlanking
      + *                     Fix C++ warnings
      + * 4.2   jsr  07/22/17 Added new video modes, framerates, color formats for SDI
      + *                     New member AspectRatio is added to video stream structure
      + *                     Reordered XVidC_VideoMode enum variables and corrected the
      + *                     memory format enums
      + *       aad  07/10/17 Add XVIDC_VM_3840x2160_60_P_RB video format
      + *       vyc  10/04/17 Added new streaming alpha formats and new memory formats
      + *       aad  09/05/17 Add XVIDC_VM_1366x768_60_P_RB resolution
      + * 4.3   eb   26/01/18 Added API XVidC_GetVideoModeIdExtensive
      + *       jsr  02/22/18 Added XVIDC_CSF_YCBCR_420 color space format
      + *       vyc  04/04/18 Added BGR8 memory format
      + * 
      + * +*******************************************************************************/ + +#ifndef XVIDC_H_ /* Prevent circular inclusions by using protection macros. */ +#define XVIDC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************* Include Files ********************************/ + +#include "xil_types.h" +#include "xil_printf.h" + +/************************** Constant Definitions ******************************/ + +/** + * This typedef enumerates the list of available standard display monitor + * timings as specified in the xvidc_timings_table.c file. The naming format is: + * + * XVIDC_VM___(_RB) + * + * Where RB stands for reduced blanking. + */ +typedef enum { + /* Interlaced modes. */ + XVIDC_VM_720x480_60_I = 0, + XVIDC_VM_720x576_50_I, + XVIDC_VM_1440x480_60_I, + XVIDC_VM_1440x576_50_I, + XVIDC_VM_1920x1080_48_I, + XVIDC_VM_1920x1080_50_I, + XVIDC_VM_1920x1080_60_I, + XVIDC_VM_1920x1080_96_I, + XVIDC_VM_1920x1080_100_I, + XVIDC_VM_1920x1080_120_I, + XVIDC_VM_2048x1080_48_I, + XVIDC_VM_2048x1080_50_I, + XVIDC_VM_2048x1080_60_I, + XVIDC_VM_2048x1080_96_I, + XVIDC_VM_2048x1080_100_I, + XVIDC_VM_2048x1080_120_I, + + + /* Progressive modes. */ + XVIDC_VM_640x350_85_P, + XVIDC_VM_640x480_60_P, + XVIDC_VM_640x480_72_P, + XVIDC_VM_640x480_75_P, + XVIDC_VM_640x480_85_P, + XVIDC_VM_720x400_85_P, + XVIDC_VM_720x480_60_P, + XVIDC_VM_720x576_50_P, + XVIDC_VM_800x600_56_P, + XVIDC_VM_800x600_60_P, + XVIDC_VM_800x600_72_P, + XVIDC_VM_800x600_75_P, + XVIDC_VM_800x600_85_P, + XVIDC_VM_800x600_120_P_RB, + XVIDC_VM_848x480_60_P, + XVIDC_VM_1024x768_60_P, + XVIDC_VM_1024x768_70_P, + XVIDC_VM_1024x768_75_P, + XVIDC_VM_1024x768_85_P, + XVIDC_VM_1024x768_120_P_RB, + XVIDC_VM_1152x864_75_P, + XVIDC_VM_1280x720_24_P, + XVIDC_VM_1280x720_25_P, + XVIDC_VM_1280x720_30_P, + XVIDC_VM_1280x720_50_P, + XVIDC_VM_1280x720_60_P, + XVIDC_VM_1280x768_60_P, + XVIDC_VM_1280x768_60_P_RB, + XVIDC_VM_1280x768_75_P, + XVIDC_VM_1280x768_85_P, + XVIDC_VM_1280x768_120_P_RB, + XVIDC_VM_1280x800_60_P, + XVIDC_VM_1280x800_60_P_RB, + XVIDC_VM_1280x800_75_P, + XVIDC_VM_1280x800_85_P, + XVIDC_VM_1280x800_120_P_RB, + XVIDC_VM_1280x960_60_P, + XVIDC_VM_1280x960_85_P, + XVIDC_VM_1280x960_120_P_RB, + XVIDC_VM_1280x1024_60_P, + XVIDC_VM_1280x1024_75_P, + XVIDC_VM_1280x1024_85_P, + XVIDC_VM_1280x1024_120_P_RB, + XVIDC_VM_1360x768_60_P, + XVIDC_VM_1360x768_120_P_RB, + XVIDC_VM_1366x768_60_P, + XVIDC_VM_1366x768_60_P_RB, + XVIDC_VM_1400x1050_60_P, + XVIDC_VM_1400x1050_60_P_RB, + XVIDC_VM_1400x1050_75_P, + XVIDC_VM_1400x1050_85_P, + XVIDC_VM_1400x1050_120_P_RB, + XVIDC_VM_1440x240_60_P, + XVIDC_VM_1440x900_60_P, + XVIDC_VM_1440x900_60_P_RB, + XVIDC_VM_1440x900_75_P, + XVIDC_VM_1440x900_85_P, + XVIDC_VM_1440x900_120_P_RB, + XVIDC_VM_1600x1200_60_P, + XVIDC_VM_1600x1200_65_P, + XVIDC_VM_1600x1200_70_P, + XVIDC_VM_1600x1200_75_P, + XVIDC_VM_1600x1200_85_P, + XVIDC_VM_1600x1200_120_P_RB, + XVIDC_VM_1680x720_50_P, + XVIDC_VM_1680x720_60_P, + XVIDC_VM_1680x720_100_P, + XVIDC_VM_1680x720_120_P, + XVIDC_VM_1680x1050_50_P, + XVIDC_VM_1680x1050_60_P, + XVIDC_VM_1680x1050_60_P_RB, + XVIDC_VM_1680x1050_75_P, + XVIDC_VM_1680x1050_85_P, + XVIDC_VM_1680x1050_120_P_RB, + XVIDC_VM_1792x1344_60_P, + XVIDC_VM_1792x1344_75_P, + XVIDC_VM_1792x1344_120_P_RB, + XVIDC_VM_1856x1392_60_P, + XVIDC_VM_1856x1392_75_P, + XVIDC_VM_1856x1392_120_P_RB, + XVIDC_VM_1920x1080_24_P, + XVIDC_VM_1920x1080_25_P, + XVIDC_VM_1920x1080_30_P, + XVIDC_VM_1920x1080_48_P, + XVIDC_VM_1920x1080_50_P, + XVIDC_VM_1920x1080_60_P, + XVIDC_VM_1920x1080_100_P, + XVIDC_VM_1920x1080_120_P, + XVIDC_VM_1920x1200_60_P, + XVIDC_VM_1920x1200_60_P_RB, + XVIDC_VM_1920x1200_75_P, + XVIDC_VM_1920x1200_85_P, + XVIDC_VM_1920x1200_120_P_RB, + XVIDC_VM_1920x1440_60_P, + XVIDC_VM_1920x1440_75_P, + XVIDC_VM_1920x1440_120_P_RB, + XVIDC_VM_1920x2160_60_P, + XVIDC_VM_2048x1080_24_P, + XVIDC_VM_2048x1080_25_P, + XVIDC_VM_2048x1080_30_P, + XVIDC_VM_2048x1080_48_P, + XVIDC_VM_2048x1080_50_P, + XVIDC_VM_2048x1080_60_P, + XVIDC_VM_2048x1080_100_P, + XVIDC_VM_2048x1080_120_P, + XVIDC_VM_2560x1080_50_P, + XVIDC_VM_2560x1080_60_P, + XVIDC_VM_2560x1080_100_P, + XVIDC_VM_2560x1080_120_P, + XVIDC_VM_2560x1600_60_P, + XVIDC_VM_2560x1600_60_P_RB, + XVIDC_VM_2560x1600_75_P, + XVIDC_VM_2560x1600_85_P, + XVIDC_VM_2560x1600_120_P_RB, + XVIDC_VM_3840x2160_24_P, + XVIDC_VM_3840x2160_25_P, + XVIDC_VM_3840x2160_30_P, + XVIDC_VM_3840x2160_48_P, + XVIDC_VM_3840x2160_50_P, + XVIDC_VM_3840x2160_60_P, + XVIDC_VM_3840x2160_60_P_RB, + XVIDC_VM_4096x2160_24_P, + XVIDC_VM_4096x2160_25_P, + XVIDC_VM_4096x2160_30_P, + XVIDC_VM_4096x2160_48_P, + XVIDC_VM_4096x2160_50_P, + XVIDC_VM_4096x2160_60_P, + XVIDC_VM_4096x2160_60_P_RB, + + XVIDC_VM_NUM_SUPPORTED, + XVIDC_VM_USE_EDID_PREFERRED, + XVIDC_VM_NO_INPUT, + XVIDC_VM_NOT_SUPPORTED, + XVIDC_VM_CUSTOM, + + /* Marks beginning/end of interlaced/progressive modes in the table. */ + XVIDC_VM_INTL_START = XVIDC_VM_720x480_60_I, + XVIDC_VM_PROG_START = XVIDC_VM_640x350_85_P, + XVIDC_VM_INTL_END = (XVIDC_VM_PROG_START - 1), + XVIDC_VM_PROG_END = (XVIDC_VM_NUM_SUPPORTED - 1), + + /* Common naming. */ + XVIDC_VM_480_60_I = XVIDC_VM_720x480_60_I, + XVIDC_VM_576_50_I = XVIDC_VM_720x576_50_I, + XVIDC_VM_1080_50_I = XVIDC_VM_1920x1080_50_I, + XVIDC_VM_1080_60_I = XVIDC_VM_1920x1080_60_I, + XVIDC_VM_VGA_60_P = XVIDC_VM_640x480_60_P, + XVIDC_VM_480_60_P = XVIDC_VM_720x480_60_P, + XVIDC_VM_SVGA_60_P = XVIDC_VM_800x600_60_P, + XVIDC_VM_XGA_60_P = XVIDC_VM_1024x768_60_P, + XVIDC_VM_720_50_P = XVIDC_VM_1280x720_50_P, + XVIDC_VM_720_60_P = XVIDC_VM_1280x720_60_P, + XVIDC_VM_WXGA_60_P = XVIDC_VM_1366x768_60_P, + XVIDC_VM_UXGA_60_P = XVIDC_VM_1600x1200_60_P, + XVIDC_VM_WSXGA_60_P = XVIDC_VM_1680x1050_60_P, + XVIDC_VM_1080_24_P = XVIDC_VM_1920x1080_24_P, + XVIDC_VM_1080_25_P = XVIDC_VM_1920x1080_25_P, + XVIDC_VM_1080_30_P = XVIDC_VM_1920x1080_30_P, + XVIDC_VM_1080_50_P = XVIDC_VM_1920x1080_50_P, + XVIDC_VM_1080_60_P = XVIDC_VM_1920x1080_60_P, + XVIDC_VM_WUXGA_60_P = XVIDC_VM_1920x1200_60_P, + XVIDC_VM_UHD2_60_P = XVIDC_VM_1920x2160_60_P, + XVIDC_VM_UHD_24_P = XVIDC_VM_3840x2160_24_P, + XVIDC_VM_UHD_25_P = XVIDC_VM_3840x2160_25_P, + XVIDC_VM_UHD_30_P = XVIDC_VM_3840x2160_30_P, + XVIDC_VM_UHD_60_P = XVIDC_VM_3840x2160_60_P, + XVIDC_VM_4K2K_60_P = XVIDC_VM_4096x2160_60_P, + XVIDC_VM_4K2K_60_P_RB = XVIDC_VM_4096x2160_60_P_RB, +} XVidC_VideoMode; + +/** + * Progressive/interlaced video format. + */ +typedef enum { + XVIDC_VF_PROGRESSIVE = 0, + XVIDC_VF_INTERLACED, + XVIDC_VF_UNKNOWN +} XVidC_VideoFormat; + +/** + * Frame rate. + */ +typedef enum { + XVIDC_FR_24HZ = 24, + XVIDC_FR_25HZ = 25, + XVIDC_FR_30HZ = 30, + XVIDC_FR_48HZ = 48, + XVIDC_FR_50HZ = 50, + XVIDC_FR_56HZ = 56, + XVIDC_FR_60HZ = 60, + XVIDC_FR_65HZ = 65, + XVIDC_FR_67HZ = 67, + XVIDC_FR_70HZ = 70, + XVIDC_FR_72HZ = 72, + XVIDC_FR_75HZ = 75, + XVIDC_FR_85HZ = 85, + XVIDC_FR_87HZ = 87, + XVIDC_FR_88HZ = 88, + XVIDC_FR_96HZ = 96, + XVIDC_FR_100HZ = 100, + XVIDC_FR_120HZ = 120, + XVIDC_FR_NUM_SUPPORTED = 18, + XVIDC_FR_UNKNOWN +} XVidC_FrameRate; + +/** + * Color depth - bits per color component. + */ +typedef enum { + XVIDC_BPC_6 = 6, + XVIDC_BPC_8 = 8, + XVIDC_BPC_10 = 10, + XVIDC_BPC_12 = 12, + XVIDC_BPC_14 = 14, + XVIDC_BPC_16 = 16, + XVIDC_BPC_NUM_SUPPORTED = 6, + XVIDC_BPC_UNKNOWN +} XVidC_ColorDepth; + +/** + * Pixels per clock. + */ +typedef enum { + XVIDC_PPC_1 = 1, + XVIDC_PPC_2 = 2, + XVIDC_PPC_4 = 4, + XVIDC_PPC_8 = 8, + XVIDC_PPC_NUM_SUPPORTED = 4, +} XVidC_PixelsPerClock; + +/** + * Color space format. + */ +typedef enum { + /* Streaming video formats */ + XVIDC_CSF_RGB = 0, + XVIDC_CSF_YCRCB_444, + XVIDC_CSF_YCRCB_422, + XVIDC_CSF_YCRCB_420, + XVIDC_CSF_YONLY, + XVIDC_CSF_RGBA, + XVIDC_CSF_YCRCBA_444, + + /* 6 empty slots reserved for video formats for future + * extension + */ + + /* Video in memory formats */ + XVIDC_CSF_MEM_RGBX8 = 10, // [31:0] x:B:G:R 8:8:8:8 + XVIDC_CSF_MEM_YUVX8, // [31:0] x:V:U:Y 8:8:8:8 + XVIDC_CSF_MEM_YUYV8, // [31:0] V:Y:U:Y 8:8:8:8 + XVIDC_CSF_MEM_RGBA8, // [31:0] A:B:G:R 8:8:8:8 + XVIDC_CSF_MEM_YUVA8, // [31:0] A:V:U:Y 8:8:8:8 + XVIDC_CSF_MEM_RGBX10, // [31:0] x:B:G:R 2:10:10:10 + XVIDC_CSF_MEM_YUVX10, // [31:0] x:V:U:Y 2:10:10:10 + XVIDC_CSF_MEM_RGB565, // [15:0] B:G:R 5:6:5 + XVIDC_CSF_MEM_Y_UV8, // [15:0] Y:Y 8:8, [15:0] V:U 8:8 + XVIDC_CSF_MEM_Y_UV8_420, // [15:0] Y:Y 8:8, [15:0] V:U 8:8 + XVIDC_CSF_MEM_RGB8, // [23:0] B:G:R 8:8:8 + XVIDC_CSF_MEM_YUV8, // [24:0] V:U:Y 8:8:8 + XVIDC_CSF_MEM_Y_UV10, // [31:0] x:Y:Y:Y 2:10:10:10 [31:0] x:U:V:U 2:10:10:10 + XVIDC_CSF_MEM_Y_UV10_420, // [31:0] x:Y:Y:Y 2:10:10:10 [31:0] x:U:V:U 2:10:10:10 + XVIDC_CSF_MEM_Y8, // [31:0] Y:Y:Y:Y 8:8:8:8 + XVIDC_CSF_MEM_Y10, // [31:0] x:Y:Y:Y 2:10:10:10 + XVIDC_CSF_MEM_BGRA8, // [31:0] A:R:G:B 8:8:8:8 + XVIDC_CSF_MEM_BGRX8, // [31:0] X:R:G:B 8:8:8:8 + XVIDC_CSF_MEM_UYVY8, // [31:0] Y:V:Y:U 8:8:8:8 + XVIDC_CSF_MEM_BGR8, // [23:0] R:G:B 8:8:8 + XVIDC_CSF_MEM_END, // End of memory formats + + /* Streaming formats with components re-ordered */ + XVIDC_CSF_YCBCR_422 = 64, + XVIDC_CSF_YCBCR_420, + + + XVIDC_CSF_NUM_SUPPORTED, // includes the reserved slots + XVIDC_CSF_UNKNOWN, + XVIDC_CSF_STRM_START = XVIDC_CSF_RGB, + XVIDC_CSF_STRM_END = XVIDC_CSF_YONLY, + XVIDC_CSF_MEM_START = XVIDC_CSF_MEM_RGBX8, + XVIDC_CSF_NUM_STRM = (XVIDC_CSF_STRM_END - XVIDC_CSF_STRM_START + 1), + XVIDC_CSF_NUM_MEM = (XVIDC_CSF_MEM_END - XVIDC_CSF_MEM_START) +} XVidC_ColorFormat; + + +/** + * Image Aspect Ratio. + */ +typedef enum { + XVIDC_AR_4_3 = 0, + XVIDC_AR_16_9 = 1 +} XVidC_AspectRatio; + +/** + * Color space conversion standard. + */ +typedef enum { + XVIDC_BT_2020 = 0, + XVIDC_BT_709, + XVIDC_BT_601, + XVIDC_BT_NUM_SUPPORTED, + XVIDC_BT_UNKNOWN +} XVidC_ColorStd; + +/** + * Color conversion output range. + */ +typedef enum { + XVIDC_CR_16_235 = 0, + XVIDC_CR_16_240, + XVIDC_CR_0_255, + XVIDC_CR_NUM_SUPPORTED, + XVIDC_CR_UNKNOWN_RANGE +} XVidC_ColorRange; + +/** + * 3D formats. + */ +typedef enum { + XVIDC_3D_FRAME_PACKING = 0, /**< Frame packing. */ + XVIDC_3D_FIELD_ALTERNATIVE, /**< Field alternative. */ + XVIDC_3D_LINE_ALTERNATIVE, /**< Line alternative. */ + XVIDC_3D_SIDE_BY_SIDE_FULL, /**< Side-by-side (full). */ + XVIDC_3D_TOP_AND_BOTTOM_HALF, /**< Top-and-bottom (half). */ + XVIDC_3D_SIDE_BY_SIDE_HALF, /**< Side-by-side (half). */ + XVIDC_3D_UNKNOWN +} XVidC_3DFormat; + +/** + * 3D Sub-sampling methods. + */ +typedef enum { + XVIDC_3D_SAMPLING_HORIZONTAL = 0, /**< Horizontal sub-sampling. */ + XVIDC_3D_SAMPLING_QUINCUNX, /**< Quincunx matrix. */ + XVIDC_3D_SAMPLING_UNKNOWN +} XVidC_3DSamplingMethod; + +/** + * 3D Sub-sampling positions. + */ +typedef enum { + XVIDC_3D_SAMPPOS_OLOR = 0, /**< Odd/Left, Odd/Right. */ + XVIDC_3D_SAMPPOS_OLER, /**< Odd/Left, Even/Right. */ + XVIDC_3D_SAMPPOS_ELOR, /**< Even/Left, Odd/Right. */ + XVIDC_3D_SAMPPOS_ELER, /**< Even/Left, Even/Right. */ + XVIDC_3D_SAMPPOS_UNKNOWN +} XVidC_3DSamplingPosition; + +/****************************** Type Definitions ******************************/ + +/** + * Video timing structure. + */ +typedef struct { + u16 HActive; + u16 HFrontPorch; + u16 HSyncWidth; + u16 HBackPorch; + u16 HTotal; + u8 HSyncPolarity; + u16 VActive; + u16 F0PVFrontPorch; + u16 F0PVSyncWidth; + u16 F0PVBackPorch; + u16 F0PVTotal; + u16 F1VFrontPorch; + u16 F1VSyncWidth; + u16 F1VBackPorch; + u16 F1VTotal; + u8 VSyncPolarity; +} XVidC_VideoTiming; + +/** + * 3D Sampling info structure. + */ +typedef struct { + XVidC_3DSamplingMethod Method; + XVidC_3DSamplingPosition Position; +} XVidC_3DSamplingInfo; + +/** + * 3D info structure. + */ +typedef struct { + XVidC_3DFormat Format; + XVidC_3DSamplingInfo Sampling; +} XVidC_3DInfo; + +/** + * Video stream structure. + */ +typedef struct { + XVidC_ColorFormat ColorFormatId; + XVidC_ColorDepth ColorDepth; + XVidC_PixelsPerClock PixPerClk; + XVidC_FrameRate FrameRate; + XVidC_AspectRatio AspectRatio; + u8 IsInterlaced; + u8 Is3D; + XVidC_3DInfo Info_3D; + XVidC_VideoMode VmId; + XVidC_VideoTiming Timing; +} XVidC_VideoStream; + +/** + * Video window structure. + */ +typedef struct { + u32 StartX; + u32 StartY; + u32 Width; + u32 Height; +} XVidC_VideoWindow; + +/** + * Video timing mode from the video timing table. + */ +typedef struct { + XVidC_VideoMode VmId; + const char Name[21]; + XVidC_FrameRate FrameRate; + XVidC_VideoTiming Timing; +} XVidC_VideoTimingMode; + +/** + * Callback type which represents a custom timer wait handler. This is only + * used for Microblaze since it doesn't have a native sleep function. To avoid + * dependency on a hardware timer, the default wait functionality is implemented + * using loop iterations; this isn't too accurate. Therefore a custom timer + * handler is used, the user may implement their own wait implementation. + * + * @param TimerPtr is a pointer to the timer instance. + * @param Delay is the duration (msec/usec) to be passed to the timer + * function. + * +*******************************************************************************/ +typedef void (*XVidC_DelayHandler)(void *TimerPtr, u32 Delay); + +/**************************** Function Prototypes *****************************/ + +u32 XVidC_RegisterCustomTimingModes(const XVidC_VideoTimingMode *CustomTable, + u16 NumElems); +void XVidC_UnregisterCustomTimingModes(void); +u32 XVidC_GetPixelClockHzByHVFr(u32 HTotal, u32 VTotal, u8 FrameRate); +u32 XVidC_GetPixelClockHzByVmId(XVidC_VideoMode VmId); +XVidC_VideoFormat XVidC_GetVideoFormat(XVidC_VideoMode VmId); +u8 XVidC_IsInterlaced(XVidC_VideoMode VmId); +const XVidC_VideoTimingMode* XVidC_GetVideoModeData(XVidC_VideoMode VmId); +const char *XVidC_GetVideoModeStr(XVidC_VideoMode VmId); +const char *XVidC_GetFrameRateStr(XVidC_VideoMode VmId); +const char *XVidC_GetColorFormatStr(XVidC_ColorFormat ColorFormatId); +XVidC_FrameRate XVidC_GetFrameRate(XVidC_VideoMode VmId); +const XVidC_VideoTiming* XVidC_GetTimingInfo(XVidC_VideoMode VmId); +void XVidC_ReportStreamInfo(const XVidC_VideoStream *Stream); +void XVidC_ReportTiming(const XVidC_VideoTiming *Timing, u8 IsInterlaced); +const char *XVidC_Get3DFormatStr(XVidC_3DFormat Format); +u32 XVidC_SetVideoStream(XVidC_VideoStream *VidStrmPtr, XVidC_VideoMode VmId, + XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, + XVidC_PixelsPerClock Ppc); +u32 XVidC_Set3DVideoStream(XVidC_VideoStream *VidStrmPtr, XVidC_VideoMode VmId, + XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, + XVidC_PixelsPerClock Ppc, XVidC_3DInfo *Info3DPtr); +XVidC_VideoMode XVidC_GetVideoModeId(u32 Width, u32 Height, u32 FrameRate, + u8 IsInterlaced); +XVidC_VideoMode XVidC_GetVideoModeIdExtensive(XVidC_VideoTiming *Timing, + u32 FrameRate, + u8 IsInterlaced, + u8 IsExtensive); +XVidC_VideoMode XVidC_GetVideoModeIdRb(u32 Width, u32 Height, u32 FrameRate, + u8 IsInterlaced, u8 RbN); +XVidC_VideoMode XVidC_GetVideoModeIdWBlanking(const XVidC_VideoTiming *Timing, + u32 FrameRate, u8 IsInterlaced); + +/******************* Macros (Inline Functions) Definitions ********************/ + +/*****************************************************************************/ +/** + * This macro check if video stream is 3D or 2D. + * + * @param VidStreamPtr is a pointer to the XVidC_VideoStream structure. + * + * @return 3D(1)/2D(0) + * + * @note C-style signature: + * u8 XDp_IsStream3D(XVidC_VideoStream *VidStreamPtr) + * + *****************************************************************************/ +#define XVidC_IsStream3D(VidStreamPtr) ((VidStreamPtr)->Is3D) + +/*************************** Variable Declarations ****************************/ + +#ifdef __cplusplus +} +#endif + +#endif /* XVIDC_H_ */ +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_cea861.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_cea861.h new file mode 100644 index 000000000..9e50b9d4b --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_cea861.h @@ -0,0 +1,399 @@ +/* vim: set et fde fdm=syntax ft=c.doxygen ts=4 sts=4 sw=4 : */ +/* + * Copyright © 2010-2011 Saleem Abdulrasool . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef xvidc_cea861_h +#define xvidc_cea861_h + +#define XVIDC_EDID_VERBOSITY 0 + +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) + +#define XVIDC_CEA861_NO_DTDS_PRESENT (0x04) + +#define HDMI_VSDB_EXTENSION_FLAGS_OFFSET (0x06) +#define HDMI_VSDB_MAX_TMDS_OFFSET (0x07) +#define HDMI_VSDB_LATENCY_FIELDS_OFFSET (0x08) + +static const u8 HDMI_OUI[] = { 0x00, 0x0C, 0x03 }; +static const u8 HDMI_OUI_HF[] = { 0xC4, 0x5D, 0xD8 }; + +enum xvidc_cea861_data_block_type { + XVIDC_CEA861_DATA_BLOCK_TYPE_RESERVED0, + XVIDC_CEA861_DATA_BLOCK_TYPE_AUDIO, + XVIDC_CEA861_DATA_BLOCK_TYPE_VIDEO, + XVIDC_CEA861_DATA_BLOCK_TYPE_VENDOR_SPECIFIC, + XVIDC_CEA861_DATA_BLOCK_TYPE_SPEAKER_ALLOCATION, + XVIDC_CEA861_DATA_BLOCK_TYPE_VESA_DTC, + XVIDC_CEA861_DATA_BLOCK_TYPE_RESERVED6, + XVIDC_CEA861_DATA_BLOCK_TYPE_EXTENDED, +}; + +enum xvidc_cea861_extended_tag_type_data_block { + XVIDC_CEA861_EXT_TAG_TYPE_VIDEO_CAPABILITY, + XVIDC_CEA861_EXT_TAG_TYPE_VENDOR_SPECIFIC, + XVIDC_CEA861_EXT_TAG_TYPE_VESA_DISPLAY_DEVICE, + XVIDC_CEA861_EXT_TAG_TYPE_VESA_VIDEO_TIMING_BLOCK_EXT, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED_FOR_HDMI_VIDEO_DATA_BLOCK, + XVIDC_CEA861_EXT_TAG_TYPE_COLORIMETRY, + XVIDC_CEA861_EXT_TAG_TYPE_HDR_STATIC_METADATA, + XVIDC_CEA861_EXT_TAG_TYPE_HDR_DYNAMIC_METADATA, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED2, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED3, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED4, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED5, + XVIDC_CEA861_EXT_TAG_TYPE_RESERVED6, + XVIDC_CEA861_EXT_TAG_TYPE_VIDEO_FRMT_PREFERENCE, + XVIDC_CEA861_EXT_TAG_TYPE_YCBCR420_VIDEO, + XVIDC_CEA861_EXT_TAG_TYPE_YCBCR420_CAPABILITY_MAP, + XVIDC_CEA861_EXT_TAG_TYPE_CEA_MISC_AUDIO_FIELDS, + XVIDC_CEA861_EXT_TAG_TYPE_VENDOR_SPECIFC_AUDIO, + XVIDC_CEA861_EXT_TAG_TYPE_HDMI_AUDIO, + XVIDC_CEA861_EXT_TAG_TYPE_ROOM_CONFIGURATION, + XVIDC_CEA861_EXT_TAG_TYPE_SPEAKER_LOCATION, + XVIDC_CEA861_EXT_TAG_TYPE_INFOFRAME = 32, +/* Can be extend to 255, refer table 46 cea data block tag codes cea-861-f */ +}; + +enum xvidc_cea861_audio_format { + XVIDC_CEA861_AUDIO_FORMAT_RESERVED, + XVIDC_CEA861_AUDIO_FORMAT_LPCM, + XVIDC_CEA861_AUDIO_FORMAT_AC_3, + XVIDC_CEA861_AUDIO_FORMAT_MPEG_1, + XVIDC_CEA861_AUDIO_FORMAT_MP3, + XVIDC_CEA861_AUDIO_FORMAT_MPEG2, + XVIDC_CEA861_AUDIO_FORMAT_AAC_LC, + XVIDC_CEA861_AUDIO_FORMAT_DTS, + XVIDC_CEA861_AUDIO_FORMAT_ATRAC, + XVIDC_CEA861_AUDIO_FORMAT_DSD, + XVIDC_CEA861_AUDIO_FORMAT_E_AC_3, + XVIDC_CEA861_AUDIO_FORMAT_DTS_HD, + XVIDC_CEA861_AUDIO_FORMAT_MLP, + XVIDC_CEA861_AUDIO_FORMAT_DST, + XVIDC_CEA861_AUDIO_FORMAT_WMA_PRO, + XVIDC_CEA861_AUDIO_FORMAT_EXTENDED, +}; + +struct __attribute__ (( packed )) xvidc_cea861_timing_block { + /* CEA Extension Header */ + u8 tag; + u8 revision; + u8 dtd_offset; + + /* Global Declarations */ + unsigned native_dtds : 4; + unsigned yuv_422_supported : 1; + unsigned yuv_444_supported : 1; + unsigned basic_audio_supported : 1; + unsigned underscan_supported : 1; + + u8 data[123]; + + u8 checksum; +}; + +struct __attribute__ (( packed )) xvidc_cea861_data_block_header { + unsigned length : 5; + unsigned tag : 3; +}; + +struct __attribute__ (( packed )) xvidc_cea861_short_video_descriptor { + unsigned video_identification_code : 7; + unsigned native : 1; +}; +#if XVIDC_EDID_VERBOSITY > 1 +struct __attribute__ (( packed )) xvidc_cea861_video_data_block { + struct xvidc_cea861_data_block_header header; + struct xvidc_cea861_short_video_descriptor svd[]; +}; +#endif +struct __attribute__ (( packed )) xvidc_cea861_short_audio_descriptor { + unsigned channels : 3; /* = value + 1 */ + unsigned audio_format : 4; + unsigned : 1; + + unsigned sample_rate_32_kHz : 1; + unsigned sample_rate_44_1_kHz : 1; + unsigned sample_rate_48_kHz : 1; + unsigned sample_rate_88_2_kHz : 1; + unsigned sample_rate_96_kHz : 1; + unsigned sample_rate_176_4_kHz : 1; + unsigned sample_rate_192_kHz : 1; + unsigned : 1; + + union { + struct __attribute__ (( packed )) { + unsigned bitrate_16_bit : 1; + unsigned bitrate_20_bit : 1; + unsigned bitrate_24_bit : 1; + unsigned : 5; + } lpcm; + + u8 maximum_bit_rate; /* formats 2-8; = value * 8 kHz */ + + u8 format_dependent; /* formats 9-13; */ + + struct __attribute__ (( packed )) { + unsigned profile : 3; + unsigned : 5; + } wma_pro; + + struct __attribute__ (( packed )) { + unsigned : 3; + unsigned code : 5; + } extension; + } flags; +}; +#if XVIDC_EDID_VERBOSITY > 1 +struct __attribute__ (( packed )) xvidc_cea861_audio_data_block { + struct xvidc_cea861_data_block_header header; + struct xvidc_cea861_short_audio_descriptor sad[]; +}; +#endif +#if XVIDC_EDID_VERBOSITY > 1 +struct __attribute__ (( packed )) xvidc_cea861_speaker_allocation { + unsigned front_left_right : 1; + unsigned front_lfe : 1; /* low frequency effects */ + unsigned front_center : 1; + unsigned rear_left_right : 1; + unsigned rear_center : 1; + unsigned front_left_right_center : 1; + unsigned rear_left_right_center : 1; + unsigned front_left_right_wide : 1; + + unsigned front_left_right_high : 1; + unsigned top_center : 1; + unsigned front_center_high : 1; + unsigned : 5; + + unsigned : 8; +}; +#endif +#if XVIDC_EDID_VERBOSITY > 1 +struct __attribute__ (( packed )) xvidc_cea861_speaker_allocation_data_block { + struct xvidc_cea861_data_block_header header; + struct xvidc_cea861_speaker_allocation payload; +}; +#endif +struct __attribute__ (( packed )) xvidc_cea861_vendor_specific_data_block { + struct xvidc_cea861_data_block_header header; + u8 ieee_registration[3]; + u8 data[30]; +}; + +struct __attribute__ (( packed )) xvidc_cea861_extended_data_block { + struct xvidc_cea861_data_block_header header; + u8 xvidc_cea861_extended_tag_codes; + u8 data[30]; +}; + +#if XVIDC_EDID_VERBOSITY > 1 +static const struct xvidc_cea861_timing { + const u16 hactive; + const u16 vactive; + const enum { + INTERLACED, + PROGRESSIVE, + } mode; + const u16 htotal; + const u16 hblank; + const u16 vtotal; + const double vblank; + const double hfreq; + const double vfreq; + const double pixclk; +} xvidc_cea861_timings[] = { + [ 1] = { 640, 480, PROGRESSIVE, 800, 160, 525, 45.0, 31.469, 59.940, 25.175 }, + [ 2] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 31.469, 59.940, 27.000 }, + [ 3] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 31.469, 59.940, 27.000 }, + [ 4] = { 1280, 720, PROGRESSIVE, 1650, 370, 750, 30.0, 45.000, 60.000, 74.250 }, + [ 5] = { 1920,1080, INTERLACED, 2200, 280, 1125, 22.5, 33.750, 60.000, 72.250 }, + [ 6] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 15.734, 59.940, 27.000 }, + [ 7] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 15.734, 59.940, 27.000 }, + [ 8] = { 1440, 240, PROGRESSIVE, 1716, 276, 262, 22.0, 15.734, 60.054, 27.000 }, + [ 9] = { 1440, 240, PROGRESSIVE, 1716, 276, 262, 22.0, 15.734, 59.826, 27.000 }, + [ 10] = { 2880, 480, INTERLACED, 3432, 552, 525, 22.5, 15.734, 59.940, 54.000 }, + [ 11] = { 2880, 480, INTERLACED, 3432, 552, 525, 22.5, 15.734, 59.940, 54.000 }, + [ 12] = { 2880, 240, PROGRESSIVE, 3432, 552, 262, 22.0, 15.734, 60.054, 54.000 }, + [ 13] = { 2880, 240, PROGRESSIVE, 3432, 552, 262, 22.0, 15.734, 59.826, 54.000 }, + [ 14] = { 1440, 480, PROGRESSIVE, 1716, 276, 525, 45.0, 31.469, 59.940, 54.000 }, + [ 15] = { 1440, 480, PROGRESSIVE, 1716, 276, 525, 45.0, 31.469, 59.940, 54.000 }, + [ 16] = { 1920, 1080, PROGRESSIVE, 2200, 280, 1125, 45.0, 67.500, 60.000, 148.500 }, + [ 17] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 31.250, 50.000, 27.000 }, + [ 18] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 31.250, 50.000, 27.000 }, + [ 19] = { 1280, 720, PROGRESSIVE, 1980, 700, 750, 30.0, 37.500, 50.000, 74.250 }, + [ 20] = { 1920, 1080, INTERLACED, 2640, 720, 1125, 22.5, 28.125, 50.000, 74.250 }, + [ 21] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 15.625, 50.000, 27.000 }, + [ 22] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 15.625, 50.000, 27.000 }, + [ 23] = { 1440, 288, PROGRESSIVE, 1728, 288, 312, 24.0, 15.625, 50.080, 27.000 }, + [ 24] = { 1440, 288, PROGRESSIVE, 1728, 288, 313, 25.0, 15.625, 49.920, 27.000 }, + [ 25] = { 2880, 576, INTERLACED, 3456, 576, 625, 24.5, 15.625, 50.000, 54.000 }, + [ 26] = { 2880, 576, INTERLACED, 3456, 576, 625, 24.5, 15.625, 50.000, 54.000 }, + [ 27] = { 2880, 288, PROGRESSIVE, 3456, 576, 312, 24.0, 15.625, 50.080, 54.000 }, + [ 28] = { 2880, 288, PROGRESSIVE, 3456, 576, 313, 25.0, 15.625, 49.920, 54.000 }, + [ 29] = { 1440, 576, PROGRESSIVE, 1728, 288, 625, 49.0, 31.250, 50.000, 54.000 }, + [ 30] = { 1440, 576, PROGRESSIVE, 1728, 288, 625, 49.0, 31.250, 50.000, 54.000 }, + [ 31] = { 1920, 1080, PROGRESSIVE, 2640, 720, 1125, 45.0, 56.250, 50.000, 148.500 }, + [ 32] = { 1920, 1080, PROGRESSIVE, 2750, 830, 1125, 45.0, 27.000, 24.000, 74.250 }, + [ 33] = { 1920, 1080, PROGRESSIVE, 2640, 720, 1125, 45.0, 28.125, 25.000, 74.250 }, + [ 34] = { 1920, 1080, PROGRESSIVE, 2200, 280, 1125, 45.0, 33.750, 30.000, 74.250 }, + [ 35] = { 2880, 480, PROGRESSIVE, 3432, 552, 525, 45.0, 31.469, 59.940, 108.500 }, + [ 36] = { 2880, 480, PROGRESSIVE, 3432, 552, 525, 45.0, 31.469, 59.940, 108.500 }, + [ 37] = { 2880, 576, PROGRESSIVE, 3456, 576, 625, 49.0, 31.250, 50.000, 108.000 }, + [ 38] = { 2880, 576, PROGRESSIVE, 3456, 576, 625, 49.0, 31.250, 50.000, 108.000 }, + [ 39] = { 1920, 1080, INTERLACED, 2304, 384, 1250, 85.0, 31.250, 50.000, 72.000 }, + [ 40] = { 1920, 1080, INTERLACED, 2640, 720, 1125, 22.5, 56.250, 100.000, 148.500 }, + [ 41] = { 1280, 720, PROGRESSIVE, 1980, 700, 750, 30.0, 75.000, 100.000, 148.500 }, + [ 42] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 62.500, 100.000, 54.000 }, + [ 43] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 62.500, 100.000, 54.000 }, + [ 44] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 31.250, 100.000, 54.000 }, + [ 45] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 31.250, 100.000, 54.000 }, + [ 46] = { 1920, 1080, INTERLACED, 2200, 280, 1125, 22.5, 67.500, 120.000, 148.500 }, + [ 47] = { 1280, 720, PROGRESSIVE, 1650, 370, 750, 30.0, 90.000, 120.000, 148.500 }, + [ 48] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 62.937, 119.880, 54.000 }, + [ 49] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 62.937, 119.880, 54.000 }, + [ 50] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 31.469, 119.880, 54.000 }, + [ 51] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 31.469, 119.880, 54.000 }, + [ 52] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 125.000, 200.000, 108.000 }, + [ 53] = { 720, 576, PROGRESSIVE, 864, 144, 625, 49.0, 125.000, 200.000, 108.000 }, + [ 54] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 62.500, 200.000, 108.000 }, + [ 55] = { 1440, 576, INTERLACED, 1728, 288, 625, 24.5, 62.500, 200.000, 108.000 }, + [ 56] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 125.874, 239.760, 108.000 }, + [ 57] = { 720, 480, PROGRESSIVE, 858, 138, 525, 45.0, 125.874, 239.760, 108.000 }, + [ 58] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 62.937, 239.760, 108.000 }, + [ 59] = { 1440, 480, INTERLACED, 1716, 276, 525, 22.5, 62.937, 239.760, 108.000 }, + [60 ] = {1280, 720 , PROGRESSIVE, 3300, 2020, 750 , 30 , 18 , 24.0003, 59.4 }, + [61 ] = {1280, 720 , PROGRESSIVE, 3960, 2680, 750 , 30 , 18.75 , 25 , 74.25 }, + [62 ] = {1280, 720 , PROGRESSIVE, 3300, 2020, 750 , 30 , 22.5 , 30.0003, 74.25 }, + [63 ] = {1920, 1080, PROGRESSIVE, 2200, 280 , 1125, 45 , 135 , 120.003, 297 }, + [64 ] = {1920, 1080, PROGRESSIVE, 2640, 720 , 1125, 45 , 112.5 , 100 , 297 }, + [65 ] = {1280, 720 , PROGRESSIVE, 3300, 2020, 750 , 30 , 18 , 24.0003, 59.4 }, + [66 ] = {1280, 720 , PROGRESSIVE, 3960, 2680, 750 , 30 , 18.75 , 25 , 74.25 }, + [67 ] = {1280, 720 , PROGRESSIVE, 3300, 2020, 750 , 30 , 22.5 , 30.0003, 74.25 }, + [68 ] = {1280, 720 , PROGRESSIVE, 1980, 700 , 750 , 30 , 37.5 , 50 , 74.25 }, + [69 ] = {1280, 720 , PROGRESSIVE, 1650, 370 , 750 , 30 , 45 , 60.0003, 74.25 }, + [70 ] = {1280, 720 , PROGRESSIVE, 1980, 700 , 750 , 30 , 75 , 100 , 148.5 }, + [71 ] = {1280, 720 , PROGRESSIVE, 1650, 370 , 750 , 30 , 90 , 120.003, 148.5 }, + [72 ] = {1920, 1080, PROGRESSIVE, 2750, 830 , 1125, 45 , 27 , 24.0003, 74.25 }, + [73 ] = {1920, 1080, PROGRESSIVE, 2640, 720 , 1125, 45 , 28.125 , 25 , 74.25 }, + [74 ] = {1920, 1080, PROGRESSIVE, 2200, 280 , 1125, 45 , 33.75 , 30.0003, 74.25 }, + [75 ] = {1920, 1080, PROGRESSIVE, 2640, 720 , 1125, 45 , 56.25 , 50 , 148.5 }, + [76 ] = {1920, 1080, PROGRESSIVE, 2200, 280 , 1125, 45 , 67.5 , 60.0003, 148.5 }, + [77 ] = {1920, 1080, PROGRESSIVE, 2640, 720 , 1125, 45 , 112.5 , 100 , 297 }, + [78 ] = {1920, 1080, PROGRESSIVE, 2200, 280 , 1125, 45 , 135 , 120.003, 297 }, + [79 ] = {1680, 720 , PROGRESSIVE, 3300, 1620, 750 , 30 , 18 , 24.0003, 59.4 }, + [80 ] = {1680, 720 , PROGRESSIVE, 3168, 1488, 750 , 30 , 18.75 , 25 , 59.4 }, + [81 ] = {1680, 720 , PROGRESSIVE, 2640, 960 , 750 , 30 , 22.5 , 30.0003, 59.4 }, + [82 ] = {1680, 720 , PROGRESSIVE, 2200, 520 , 750 , 30 , 37.5 , 50 , 82.5 }, + [83 ] = {1680, 720 , PROGRESSIVE, 2200, 520 , 750 , 30 , 45 , 60.0003, 99 }, + [84 ] = {1680, 720 , PROGRESSIVE, 2000, 320 , 825 , 105 , 82.5 , 100 , 165 }, + [85 ] = {1680, 720 , PROGRESSIVE, 2000, 320 , 825 , 105 , 99 , 120.003, 198 }, + [86 ] = {2560, 1080, PROGRESSIVE, 3750, 1190, 1100, 20 , 26.4 , 24.0003, 99 }, + [87 ] = {2560, 1080, PROGRESSIVE, 3200, 640 , 1125, 45 , 28.125 , 25 , 90 }, + [88 ] = {2560, 1080, PROGRESSIVE, 3520, 960 , 1125, 45 , 33.75 , 30.0003, 118.8 }, + [89 ] = {2560, 1080, PROGRESSIVE, 3300, 740 , 1125, 45 , 56.25 , 50 , 185.625 }, + [90 ] = {2560, 1080, PROGRESSIVE, 3000, 440 , 1100, 20 , 66 , 60.0003, 198 }, + [91 ] = {2560, 1080, PROGRESSIVE, 2970, 410 , 1250, 170 , 125 , 100 , 371.25 }, + [92 ] = {2560, 1080, PROGRESSIVE, 3300, 740 , 1250, 170 , 150 , 120.003, 495 }, + [93 ] = {3840, 2160, PROGRESSIVE, 5500, 1660, 2250, 90 , 54 , 24.0003, 297 }, + [94 ] = {3840, 2160, PROGRESSIVE, 5280, 1440, 2250, 90 , 56.25 , 25 , 297 }, + [95 ] = {3840, 2160, PROGRESSIVE, 4400, 560 , 2250, 90 , 67.5 , 30.0003, 297 }, + [96 ] = {3840, 2160, PROGRESSIVE, 5280, 1440, 2250, 90 , 112.5 , 50 , 594 }, + [97 ] = {3840, 2160, PROGRESSIVE, 4400, 560 , 2250, 90 , 135 , 60.0003, 594 }, + [98 ] = {4096, 2160, PROGRESSIVE, 5500, 1404, 2250, 90 , 54 , 24.0003, 297 }, + [99 ] = {4096, 2160, PROGRESSIVE, 5280, 1184, 2250, 90 , 56.25 , 25 , 297 }, + [100] = {4096, 2160, PROGRESSIVE, 4400, 304 , 2250, 90 , 67.5 , 30.0003, 297 }, + [101] = {4096, 2160, PROGRESSIVE, 5280, 1184, 2250, 90 , 112.5 , 50 , 594 }, + [102] = {4096, 2160, PROGRESSIVE, 4400, 304 , 2250, 90 , 135 , 60.0003, 594 }, + [103] = {3840, 2160, PROGRESSIVE, 5500, 1660, 2250, 90 , 54 , 24.0003, 297 }, + [104] = {3840, 2160, PROGRESSIVE, 5280, 1440, 2250, 90 , 56.25 , 25 , 297 }, + [105] = {3840, 2160, PROGRESSIVE, 4400, 560 , 2250, 90 , 67.5 , 30.0003, 297 }, + [106] = {3840, 2160, PROGRESSIVE, 5280, 1440, 2250, 90 , 112.5 , 50 , 594 }, + [107] = {3840, 2160, PROGRESSIVE, 4400, 560 , 2250, 90 , 135 , 60.0003, 594 }, +}; +#endif + +struct __attribute__ (( packed )) xvidc_cea861_hdmi_vendor_specific_data_block { + struct xvidc_cea861_data_block_header header; + + u8 ieee_registration_id[3]; /* LSB */ + + unsigned port_configuration_b : 4; + unsigned port_configuration_a : 4; + unsigned port_configuration_d : 4; + unsigned port_configuration_c : 4; + + /* extension fields */ + unsigned dvi_dual_link : 1; + unsigned : 2; + unsigned yuv_444_supported : 1; + unsigned colour_depth_30_bit : 1; + unsigned colour_depth_36_bit : 1; + unsigned colour_depth_48_bit : 1; + unsigned audio_info_frame : 1; + + u8 max_tmds_clock; /* = value * 5 */ + + unsigned : 6; + unsigned interlaced_latency_fields : 1; + unsigned latency_fields : 1; + + u8 video_latency; /* = (value - 1) * 2 */ + u8 audio_latency; /* = (value - 1) * 2 */ + u8 interlaced_video_latency; + u8 interlaced_audio_latency; + + u8 reserved[]; +}; + +struct __attribute__ (( packed )) xvidc_cea861_hdmi_hf_vendor_specific_data_block { + struct xvidc_cea861_data_block_header header; + + u8 ieee_registration_id[3]; /* LSB */ + + u8 version; + u8 max_tmds_char_rate; + + unsigned osd_disparity_3d : 1; + unsigned dual_view_3d : 1; + unsigned independent_view_3d : 1; + unsigned lte_340mcsc_scramble : 1; + + unsigned : 2; + + unsigned rr_capable : 1; + unsigned scdc_present : 1; + unsigned dc_30bit_yuv420 : 1; + unsigned dc_36bit_yuv420 : 1; + unsigned dc_48bit_yuv420 : 1; + + u8 reserved[]; +}; + +#endif diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid.c new file mode 100644 index 000000000..585f7b8a3 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid.c @@ -0,0 +1,707 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xvidc_edid.c + * @addtogroup video_common_v4_2 + * @{ + * + * Contains function definitions related to the Extended Display Identification + * Data (EDID) structure which is present in all monitors. All content in this + * file is agnostic of communication interface protocol. + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   als  11/09/14 Initial release.
      + * 2.2   als  02/01/16 Functions with pointer arguments that don't modify
      + *                     contents now const.
      + * 4.0   aad  10/26/16 Added API for colormetry which returns fixed point
      + *		       in Q0.10 format instead of float.
      + * 
      + * +*******************************************************************************/ + +/******************************* Include Files ********************************/ + +#include "xvidc_edid.h" + +/**************************** Function Prototypes *****************************/ + +static u32 XVidC_EdidIsVideoTimingSupportedPreferredTiming(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode); +static u32 XVidC_EdidIsVideoTimingSupportedEstablishedTimings(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode); +static u32 XVidC_EdidIsVideoTimingSupportedStandardTimings(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode); +static int XVidC_CalculatePower(u8 Base, u8 Power); +static int XVidC_CalculateBinaryFraction_QFormat(u16 Val, u8 DecPtIndex); + +/**************************** Function Definitions ****************************/ + +/******************************************************************************/ +/** + * Get the manufacturer name as specified in the vendor and product ID field of + * the supplied base Extended Display Identification Data (EDID). + * + * @param EdidRaw is the supplied base EDID to retrieve the manufacturer + * name from. + * @param ManName is the string that will be modified to hold the + * retrieved manufacturer name. + * + * @return None. + * + * @note The ManName argument is modified with the manufacturer name. + * +*******************************************************************************/ +void XVidC_EdidGetManName(const u8 *EdidRaw, char ManName[4]) +{ + ManName[0] = 0x40 + ((EdidRaw[XVIDC_EDID_VPI_ID_MAN_NAME0] & + XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR0_MASK) >> + XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR0_SHIFT); + ManName[1] = 0x40 + (((EdidRaw[XVIDC_EDID_VPI_ID_MAN_NAME0] & + XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR1_MASK) << + XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR1_POS) | + (EdidRaw[XVIDC_EDID_VPI_ID_MAN_NAME1] >> + XVIDC_EDID_VPI_ID_MAN_NAME1_CHAR1_SHIFT)); + ManName[2] = 0x40 + (EdidRaw[XVIDC_EDID_VPI_ID_MAN_NAME1] & + XVIDC_EDID_VPI_ID_MAN_NAME1_CHAR2_MASK); + ManName[3] = '\0'; +} + +/******************************************************************************/ +/** + * Get the color bit depth (bits per primary color) as specified in the basic + * display parameters and features, video input definition field of the supplied + * base Extended Display Identification Data (EDID). + * + * @param EdidRaw is the supplied base EDID to retrieve color depth + * information from. + * + * @return The number of bits per primary color as specified by the + * supplied base EDID. + * + * @note None. + * +*******************************************************************************/ +XVidC_ColorDepth XVidC_EdidGetColorDepth(const u8 *EdidRaw) +{ + XVidC_ColorDepth Bpc; + + switch (((EdidRaw[XVIDC_EDID_BDISP_VID] & + XVIDC_EDID_BDISP_VID_DIG_BPC_MASK) >> + XVIDC_EDID_BDISP_VID_DIG_BPC_SHIFT)) { + case XVIDC_EDID_BDISP_VID_DIG_BPC_6: + Bpc = XVIDC_BPC_6; + break; + + case XVIDC_EDID_BDISP_VID_DIG_BPC_8: + Bpc = XVIDC_BPC_8; + break; + + case XVIDC_EDID_BDISP_VID_DIG_BPC_10: + Bpc = XVIDC_BPC_10; + break; + + case XVIDC_EDID_BDISP_VID_DIG_BPC_12: + Bpc = XVIDC_BPC_12; + break; + + case XVIDC_EDID_BDISP_VID_DIG_BPC_14: + Bpc = XVIDC_BPC_14; + break; + + case XVIDC_EDID_BDISP_VID_DIG_BPC_16: + Bpc = XVIDC_BPC_16; + break; + + default: + Bpc = XVIDC_BPC_UNKNOWN; + break; + } + + return Bpc; +} + +/******************************************************************************/ +/** + * Calculates the x chromaticity coordinate for red by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The x chromatacity coordinate for red. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcRedX(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_REDX_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | (EdidRaw[XVIDC_EDID_CC_RG_LOW] >> + XVIDC_EDID_CC_RBX_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the y chromaticity coordinate for red by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The y chromatacity coordinate for red. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcRedY(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_REDY_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | ((EdidRaw[XVIDC_EDID_CC_RG_LOW] & + XVIDC_EDID_CC_RBY_LOW_MASK) >> + XVIDC_EDID_CC_RBY_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the x chromaticity coordinate for green by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The x chromatacity coordinate for green. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcGreenX(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_GREENX_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | ((EdidRaw[XVIDC_EDID_CC_RG_LOW] & + XVIDC_EDID_CC_GWX_LOW_MASK) >> + XVIDC_EDID_CC_GWX_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the y chromaticity coordinate for green by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The y chromatacity coordinate for green. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcGreenY(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_GREENY_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | (EdidRaw[XVIDC_EDID_CC_RG_LOW] & + XVIDC_EDID_CC_GWY_LOW_MASK), 10); +} + +/******************************************************************************/ +/** + * Calculates the x chromaticity coordinate for blue by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The x chromatacity coordinate for blue. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcBlueX(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_BLUEX_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | (EdidRaw[XVIDC_EDID_CC_BW_LOW] >> + XVIDC_EDID_CC_RBX_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the y chromaticity coordinate for blue by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The y chromatacity coordinate for blue. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcBlueY(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_BLUEY_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | ((EdidRaw[XVIDC_EDID_CC_BW_LOW] & + XVIDC_EDID_CC_RBY_LOW_MASK) >> + XVIDC_EDID_CC_RBY_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the x chromaticity coordinate for white by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to a integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The x chromatacity coordinate for white. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcWhiteX(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_WHITEX_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | ((EdidRaw[XVIDC_EDID_CC_BW_LOW] & + XVIDC_EDID_CC_GWX_LOW_MASK) >> XVIDC_EDID_CC_GWX_LOW_SHIFT), 10); +} + +/******************************************************************************/ +/** + * Calculates the y chromaticity coordinate for white by converting a 10 bit + * binary fraction representation from the supplied base Extended Display + * Identification Data (EDID) to an integer in Q0.10 Format. To convert back + * to float divide the fixed point value by 2^10. + * + * @param EdidRaw is the supplied base EDID to retrieve chromaticity + * information from. + * + * @return The y chromatacity coordinate for white. + * + * @note All values will be accurate to +/-0.0005. + * +*******************************************************************************/ +int XVidC_EdidGetCcWhiteY(const u8 *EdidRaw) +{ + return XVidC_CalculateBinaryFraction_QFormat( + (EdidRaw[XVIDC_EDID_CC_WHITEY_HIGH] << + XVIDC_EDID_CC_HIGH_SHIFT) | (EdidRaw[XVIDC_EDID_CC_BW_LOW] & + XVIDC_EDID_CC_GWY_LOW_MASK), 10); +} + +/******************************************************************************/ +/** + * Retrieves the active vertical resolution from the standard timings field of + * the supplied base Extended Display Identification Data (EDID). + * + * @param EdidRaw is the supplied base EDID to check the timing against. + * @param StdTimingsNum specifies which one of the standard timings to + * retrieve from the standard timings field. + * + * @return The vertical active resolution of the specified standard timing + * from the supplied base EDID. + * + * @note StdTimingsNum is an index 1-8. + * +*******************************************************************************/ +u16 XVidC_EdidGetStdTimingsV(const u8 *EdidRaw, u8 StdTimingsNum) +{ + u16 V; + + switch (XVidC_EdidGetStdTimingsAr(EdidRaw, StdTimingsNum)) { + case XVIDC_EDID_STD_TIMINGS_AR_16_10: + V = (10 * XVidC_EdidGetStdTimingsH(EdidRaw, + StdTimingsNum)) / 16; + break; + + case XVIDC_EDID_STD_TIMINGS_AR_4_3: + V = (3 * XVidC_EdidGetStdTimingsH(EdidRaw, + StdTimingsNum)) / 4; + break; + + case XVIDC_EDID_STD_TIMINGS_AR_5_4: + V = (4 * XVidC_EdidGetStdTimingsH(EdidRaw, + StdTimingsNum)) / 5; + break; + + case XVIDC_EDID_STD_TIMINGS_AR_16_9: + V = (9 * XVidC_EdidGetStdTimingsH(EdidRaw, + StdTimingsNum)) / 16; + break; + default: + V = 0; + break; + } + + return V; +} + +/******************************************************************************/ +/** + * Checks whether or not a specified video timing mode is supported as specified + * in the supplied base Extended Display Identification Data (EDID). The + * preferred timing, established timings (I, II, II), and the standard timings + * fields are checked for support. + * + * @param EdidRaw is the supplied base EDID to check the timing against. + * @param VtMode is the video timing mode to check for support. + * + * @return + * - XST_SUCCESS if the video timing mode is supported as specified + * in the supplied base EDID. + * - XST_FAILURE otherwise. + * + * @note None. + * +*******************************************************************************/ +u32 XVidC_EdidIsVideoTimingSupported(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode) +{ + u32 Status; + + /* Check if the video mode is the preferred timing. */ + Status = XVidC_EdidIsVideoTimingSupportedPreferredTiming(EdidRaw, + VtMode); + if (Status == XST_SUCCESS) { + return Status; + } + + /* Check established timings I, II, and III. */ + Status = XVidC_EdidIsVideoTimingSupportedEstablishedTimings(EdidRaw, + VtMode); + if (Status == XST_SUCCESS) { + return Status; + } + + /* Check in standard timings support. */ + Status = XVidC_EdidIsVideoTimingSupportedStandardTimings(EdidRaw, + VtMode); + + return Status; +} + +/******************************************************************************/ +/** + * Checks whether or not a specified video timing mode is the preferred timing + * of the supplied base Extended Display Identification Data (EDID). + * + * @param EdidRaw is the supplied base EDID to check the timing against. + * @param VtMode is the video timing mode to check for support. + * + * @return + * - XST_SUCCESS if the video timing mode is the preferred timing + * as specified in the base EDID. + * - XST_FAILURE otherwise. + * + * @note None. + * +*******************************************************************************/ +static u32 XVidC_EdidIsVideoTimingSupportedPreferredTiming(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode) +{ + const u8 *Ptm; + + Ptm = &EdidRaw[XVIDC_EDID_PTM]; + + u32 HActive = (((Ptm[XVIDC_EDID_DTD_PTM_HRES_HBLANK_U4] & + XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_MASK) >> + XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_SHIFT) << 8) | + Ptm[XVIDC_EDID_DTD_PTM_HRES_LSB]; + + u32 VActive = (((Ptm[XVIDC_EDID_DTD_PTM_VRES_VBLANK_U4] & + XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_MASK) >> + XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_SHIFT) << 8) | + Ptm[XVIDC_EDID_DTD_PTM_VRES_LSB]; + + if (VtMode->Timing.F1VTotal != XVidC_EdidIsDtdPtmInterlaced(EdidRaw)) { + return (XST_FAILURE); + } + else if ((VtMode->Timing.HActive == HActive) && + (VtMode->Timing.VActive == VActive)) { + return (XST_SUCCESS); + } + + return XST_FAILURE; +} + +/******************************************************************************/ +/** + * Checks whether or not a specified video timing mode is supported in the + * established timings field of the supplied base Extended Display + * Identification Data (EDID). + * + * @param EdidRaw is the supplied base EDID to check the timing against. + * @param VtMode is the video timing mode to check for support. + * + * @return + * - XST_SUCCESS if the video timing mode is supported in the + * base EDID's established timings field. + * - XST_FAILURE otherwise. + * + * @note None. + * +*******************************************************************************/ +static u32 XVidC_EdidIsVideoTimingSupportedEstablishedTimings(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode) +{ + u32 Status = XST_FAILURE; + + /* Check established timings I, II, and III. */ + if ((VtMode->Timing.HActive == 800) && + (VtMode->Timing.VActive == 640) && + (VtMode->FrameRate == XVIDC_FR_56HZ) && + XVidC_EdidSuppEstTimings800x600_56(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 640) && + (VtMode->Timing.VActive == 480) && + (VtMode->FrameRate == XVIDC_FR_60HZ) && + XVidC_EdidSuppEstTimings640x480_60(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 800) && + (VtMode->Timing.VActive == 600) && + (VtMode->FrameRate == XVIDC_FR_60HZ) && + XVidC_EdidSuppEstTimings800x600_60(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1024) && + (VtMode->Timing.VActive == 768) && + (VtMode->FrameRate == XVIDC_FR_60HZ) && + XVidC_EdidSuppEstTimings1024x768_60(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 640) && + (VtMode->Timing.VActive == 480) && + (VtMode->FrameRate == XVIDC_FR_67HZ) && + XVidC_EdidSuppEstTimings640x480_67(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 720) && + (VtMode->Timing.VActive == 400) && + (VtMode->FrameRate == XVIDC_FR_70HZ) && + XVidC_EdidSuppEstTimings720x400_70(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1024) && + (VtMode->Timing.VActive == 768) && + (VtMode->FrameRate == XVIDC_FR_70HZ) && + XVidC_EdidSuppEstTimings1024x768_70(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 640) && + (VtMode->Timing.VActive == 480) && + (VtMode->FrameRate == XVIDC_FR_72HZ) && + XVidC_EdidSuppEstTimings640x480_72(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 800) && + (VtMode->Timing.VActive == 600) && + (VtMode->FrameRate == XVIDC_FR_72HZ) && + XVidC_EdidSuppEstTimings800x600_72(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 640) && + (VtMode->Timing.VActive == 480) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings640x480_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 800) && + (VtMode->Timing.VActive == 600) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings800x600_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 832) && + (VtMode->Timing.VActive == 624) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings832x624_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1024) && + (VtMode->Timing.VActive == 768) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings1024x768_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1152) && + (VtMode->Timing.VActive == 870) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings1152x870_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1280) && + (VtMode->Timing.VActive == 1024) && + (VtMode->FrameRate == XVIDC_FR_75HZ) && + XVidC_EdidSuppEstTimings1280x1024_75(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 1024) && + (VtMode->Timing.VActive == 768) && + (VtMode->FrameRate == XVIDC_FR_87HZ) && + XVidC_EdidSuppEstTimings1024x768_87(EdidRaw)) { + Status = XST_SUCCESS; + } + else if ((VtMode->Timing.HActive == 720) && + (VtMode->Timing.VActive == 400) && + (VtMode->FrameRate == XVIDC_FR_88HZ) && + XVidC_EdidSuppEstTimings720x400_88(EdidRaw)) { + Status = XST_SUCCESS; + } + + return Status; +} + +/******************************************************************************/ +/** + * Checks whether or not a specified video timing mode is supported in the + * standard timings field of the supplied base Extended Display Identification + * Data (EDID). + * + * @param EdidRaw is the supplied base EDID to check the timing against. + * @param VtMode is the video timing mode to check for support. + * + * @return + * - XST_SUCCESS if the video timing mode is supported in the + * base EDID's standard timings fields. + * - XST_FAILURE otherwise. + * + * @note None. + * +*******************************************************************************/ +static u32 XVidC_EdidIsVideoTimingSupportedStandardTimings(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode) +{ + u8 Index; + + for (Index = 0; Index < 8; Index++) { + if ((VtMode->Timing.HActive == + XVidC_EdidGetStdTimingsH(EdidRaw, Index + 1)) && + (VtMode->Timing.VActive == + XVidC_EdidGetStdTimingsV(EdidRaw, Index + 1)) && + (VtMode->FrameRate == (u8)XVidC_EdidGetStdTimingsFrr( + EdidRaw, Index + 1))) { + return XST_SUCCESS; + } + } + + return XST_FAILURE; +} + +/******************************************************************************/ +/** + * Perform a power operation. + * + * @param Base is b in the power operation, b^n. + * @param Power is n in the power operation, b^n. + * + * @return Base^Power (Base to the power of Power). + * + * @note None. + * +*******************************************************************************/ +static int XVidC_CalculatePower(u8 Base, u8 Power) +{ + u8 Index; + u32 Res = 1; + + for (Index = 0; Index < Power; Index++) { + Res *= Base; + } + + return Res; +} + + +/******************************************************************************/ +/** + * Convert a fractional binary number into a fixed point Q0.DecPtIndex number + * Binary digits to the right of the decimal point represent 2^-1 to + * 2^-(DecPtIndex+1). Binary digits to the left of the decimal point represent + * 2^0, 2^1, etc. For a given Q format, using an unsigned integer container with + * n fractional bits: + * its range is [0, 2^-n] + * its resolution is 2^n + * + * @param Val is the binary representation of the fraction. + * @param DecPtIndex is the index of the decimal point in the binary + * number. The decimal point is between the binary digits at Val's + * indices (DecPtIndex -1) and (DecPtIndex). DecPtIndex will + * determine the Q format resolution. + * + * @return Fixed point representation of the fractional part of the binary + * number in Q format. + * + * @note None. + * +*******************************************************************************/ +static int XVidC_CalculateBinaryFraction_QFormat(u16 Val, u8 DecPtIndex) +{ + int Index; + u32 Res; + + for (Index = DecPtIndex - 1, Res = 0; Index >= 0; Index--) { + if (((Val >> Index) & 0x1) == 1) { + Res += XVidC_CalculatePower(2 , Index); + } + } + + return Res; +} +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid.h new file mode 100644 index 000000000..347b4f362 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid.h @@ -0,0 +1,484 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xvidc_edid.h + * @addtogroup video_common_v4_2 + * @{ + * + * Contains macros, definitions, and function declarations related to the + * Extended Display Identification Data (EDID) structure which is present in all + * monitors. All content in this file is agnostic of communication interface + * protocol. + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   als  11/09/14 Initial release.
      + * 2.2   als  02/01/16 Functions with pointer arguments that don't modify
      + *                     contents now const.
      + * 4.0   aad  10/26/16 Functions which return fixed point values instead of
      + *		       float
      + * 
      + * +*******************************************************************************/ + +#ifndef XVIDC_EDID_H_ +/* Prevent circular inclusions by using protection macros. */ +#define XVIDC_EDID_H_ + +#ifdef __cplusplus +extern "C" { +#endif +/******************************* Include Files ********************************/ + +#include "xstatus.h" +#include "xvidc.h" + +/************************** Constant Definitions ******************************/ + +/** @name Address mapping for the base EDID block. + * @{ + */ +#define XVIDC_EDID_HEADER 0x00 +/* Vendor and product identification. */ +#define XVIDC_EDID_VPI_ID_MAN_NAME0 0x08 +#define XVIDC_EDID_VPI_ID_MAN_NAME1 0x09 +#define XVIDC_EDID_VPI_ID_PROD_CODE_LSB 0x0A +#define XVIDC_EDID_VPI_ID_PROD_CODE_MSB 0x0B +#define XVIDC_EDID_VPI_ID_SN0 0x0C +#define XVIDC_EDID_VPI_ID_SN1 0x0D +#define XVIDC_EDID_VPI_ID_SN2 0x0E +#define XVIDC_EDID_VPI_ID_SN3 0x0F +#define XVIDC_EDID_VPI_WEEK_MAN 0x10 +#define XVIDC_EDID_VPI_YEAR 0x11 +/* EDID structure version and revision. */ +#define XVIDC_EDID_STRUCT_VER 0x12 +#define XVIDC_EDID_STRUCT_REV 0x13 +/* Basic display parameters and features. */ +#define XVIDC_EDID_BDISP_VID 0x14 +#define XVIDC_EDID_BDISP_H_SSAR 0x15 +#define XVIDC_EDID_BDISP_V_SSAR 0x16 +#define XVIDC_EDID_BDISP_GAMMA 0x17 +#define XVIDC_EDID_BDISP_FEATURE 0x18 +/* Color characteristics (display x,y chromaticity coordinates). */ +#define XVIDC_EDID_CC_RG_LOW 0x19 +#define XVIDC_EDID_CC_BW_LOW 0x1A +#define XVIDC_EDID_CC_REDX_HIGH 0x1B +#define XVIDC_EDID_CC_REDY_HIGH 0x1C +#define XVIDC_EDID_CC_GREENX_HIGH 0x1D +#define XVIDC_EDID_CC_GREENY_HIGH 0x1E +#define XVIDC_EDID_CC_BLUEX_HIGH 0x1F +#define XVIDC_EDID_CC_BLUEY_HIGH 0x20 +#define XVIDC_EDID_CC_WHITEX_HIGH 0x21 +#define XVIDC_EDID_CC_WHITEY_HIGH 0x22 +/* Established timings. */ +#define XVIDC_EDID_EST_TIMINGS_I 0x23 +#define XVIDC_EDID_EST_TIMINGS_II 0x24 +#define XVIDC_EDID_EST_TIMINGS_MAN 0x25 +/* Standard timings. */ +#define XVIDC_EDID_STD_TIMINGS_H(N) (0x26 + 2 * (N - 1)) +#define XVIDC_EDID_STD_TIMINGS_AR_FRR(N) (0x27 + 2 * (N - 1)) +/* 18 byte descriptors. */ +#define XVIDC_EDID_18BYTE_DESCRIPTOR(N) (0x36 + 18 * (N - 1)) +#define XVIDC_EDID_PTM (XVIDC_EDID_18BYTE_DESCRIPTOR(1)) +/* - Detailed timing descriptor (DTD) / Preferred timing mode (PTM). */ +#define XVIDC_EDID_DTD_PTM_PIXEL_CLK_KHZ_LSB 0x00 +#define XVIDC_EDID_DTD_PTM_PIXEL_CLK_KHZ_MSB 0x01 +#define XVIDC_EDID_DTD_PTM_HRES_LSB 0x02 +#define XVIDC_EDID_DTD_PTM_HBLANK_LSB 0x03 +#define XVIDC_EDID_DTD_PTM_HRES_HBLANK_U4 0x04 +#define XVIDC_EDID_DTD_PTM_VRES_LSB 0x05 +#define XVIDC_EDID_DTD_PTM_VBLANK_LSB 0x06 +#define XVIDC_EDID_DTD_PTM_VRES_VBLANK_U4 0x07 +#define XVIDC_EDID_DTD_PTM_HFPORCH_LSB 0x08 +#define XVIDC_EDID_DTD_PTM_HSPW_LSB 0x09 +#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4 0x0A +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2 0x0B +#define XVIDC_EDID_DTD_PTM_HIMGSIZE_MM_LSB 0x0C +#define XVIDC_EDID_DTD_PTM_VIMGSIZE_MM_LSB 0x0D +#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4 0x0E +#define XVIDC_EDID_DTD_PTM_HBORDER 0x0F +#define XVIDC_EDID_DTD_PTM_VBORDER 0x10 +#define XVIDC_EDID_DTD_PTM_SIGNAL 0x11 + +/* Extension block count. */ +#define XVIDC_EDID_EXT_BLK_COUNT 0x7E +/* Checksum. */ +#define XVIDC_EDID_CHECKSUM 0x7F +/* @} */ + +/******************************************************************************/ + +/** @name Extended Display Identification Data: Masks, shifts, and values. + * @{ + */ +#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR0_SHIFT 2 +#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR0_MASK (0x1F << 2) +#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR1_MASK 0x03 +#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR1_POS 3 +#define XVIDC_EDID_VPI_ID_MAN_NAME1_CHAR1_SHIFT 5 +#define XVIDC_EDID_VPI_ID_MAN_NAME1_CHAR2_MASK 0x1F + +/* Basic display parameters and features: Video input definition. */ +#define XVIDC_EDID_BDISP_VID_VSI_SHIFT 7 +#define XVIDC_EDID_BDISP_VID_VSI_MASK (0x01 << 7) +#define XVIDC_EDID_BDISP_VID_ANA_SLS_SHIFT 5 +#define XVIDC_EDID_BDISP_VID_ANA_SLS_MASK (0x03 << 5) +#define XVIDC_EDID_BDISP_VID_ANA_SLS_0700_0300_1000 0x0 +#define XVIDC_EDID_BDISP_VID_ANA_SLS_0714_0286_1000 0x1 +#define XVIDC_EDID_BDISP_VID_ANA_SLS_1000_0400_1400 0x2 +#define XVIDC_EDID_BDISP_VID_ANA_SLS_0700_0000_0700 0x3 +#define XVIDC_EDID_BDISP_VID_ANA_VID_SETUP_MASK (0x01 << 4) +#define XVIDC_EDID_BDISP_VID_ANA_SEP_SYNC_HV_MASK (0x01 << 3) +#define XVIDC_EDID_BDISP_VID_ANA_COMP_SYNC_H_MASK (0x01 << 2) +#define XVIDC_EDID_BDISP_VID_ANA_COMP_SYNC_G_MASK (0x01 << 1) +#define XVIDC_EDID_BDISP_VID_ANA_SERR_V_SYNC_MASK (0x01) +#define XVIDC_EDID_BDISP_VID_DIG_BPC_SHIFT 4 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_MASK (0x7 << 4) +#define XVIDC_EDID_BDISP_VID_DIG_BPC_UNDEF 0x0 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_6 0x1 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_8 0x2 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_10 0x3 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_12 0x4 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_14 0x5 +#define XVIDC_EDID_BDISP_VID_DIG_BPC_16 0x6 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_MASK 0xF +#define XVIDC_EDID_BDISP_VID_DIG_VIS_UNDEF 0x0 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_DVI 0x1 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_HDMIA 0x2 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_HDMIB 0x3 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_MDDI 0x4 +#define XVIDC_EDID_BDISP_VID_DIG_VIS_DP 0x5 + +/* Basic display parameters and features: Feature support. */ +#define XVIDC_EDID_BDISP_FEATURE_PM_STANDBY_MASK (0x1 << 7) +#define XVIDC_EDID_BDISP_FEATURE_PM_SUSPEND_MASK (0x1 << 6) +#define XVIDC_EDID_BDISP_FEATURE_PM_OFF_VLP_MASK (0x1 << 5) +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_SHIFT 3 +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_MASK (0x3 << 3) +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_MCG 0x0 +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_RGB 0x1 +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_NRGB 0x2 +#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_UNDEF 0x3 +#define XVIDC_EDID_BDISP_FEATURE_DIG_COLORENC_YCRCB444_MASK (0x1 << 3) +#define XVIDC_EDID_BDISP_FEATURE_DIG_COLORENC_YCRCB422_MASK (0x1 << 4) +#define XVIDC_EDID_BDISP_FEATURE_SRGB_DEF_MASK (0x1 << 2) +#define XVIDC_EDID_BDISP_FEATURE_PTM_INC_MASK (0x1 << 1) +#define XVIDC_EDID_BDISP_FEATURE_CONTFREQ_MASK (0x1) + +/* Color characteristics (display x,y chromaticity coordinates). */ +#define XVIDC_EDID_CC_HIGH_SHIFT 2 +#define XVIDC_EDID_CC_RBX_LOW_SHIFT 6 +#define XVIDC_EDID_CC_RBY_LOW_SHIFT 4 +#define XVIDC_EDID_CC_RBY_LOW_MASK (0x3 << 4) +#define XVIDC_EDID_CC_GWX_LOW_SHIFT 2 +#define XVIDC_EDID_CC_GWX_LOW_MASK (0x3 << 2) +#define XVIDC_EDID_CC_GWY_LOW_MASK (0x3) +#define XVIDC_EDID_CC_GREENY_HIGH 0x1E +#define XVIDC_EDID_CC_BLUEX_HIGH 0x1F +#define XVIDC_EDID_CC_BLUEY_HIGH 0x20 +#define XVIDC_EDID_CC_WHITEX_HIGH 0x21 +#define XVIDC_EDID_CC_WHITEY_HIGH 0x22 + +/* Established timings. */ +#define XVIDC_EDID_EST_TIMINGS_I_720x400_70_MASK (0x1 << 7) +#define XVIDC_EDID_EST_TIMINGS_I_720x400_88_MASK (0x1 << 6) +#define XVIDC_EDID_EST_TIMINGS_I_640x480_60_MASK (0x1 << 5) +#define XVIDC_EDID_EST_TIMINGS_I_640x480_67_MASK (0x1 << 4) +#define XVIDC_EDID_EST_TIMINGS_I_640x480_72_MASK (0x1 << 3) +#define XVIDC_EDID_EST_TIMINGS_I_640x480_75_MASK (0x1 << 2) +#define XVIDC_EDID_EST_TIMINGS_I_800x600_56_MASK (0x1 << 1) +#define XVIDC_EDID_EST_TIMINGS_I_800x600_60_MASK (0x1) +#define XVIDC_EDID_EST_TIMINGS_II_800x600_72_MASK (0x1 << 7) +#define XVIDC_EDID_EST_TIMINGS_II_800x600_75_MASK (0x1 << 6) +#define XVIDC_EDID_EST_TIMINGS_II_832x624_75_MASK (0x1 << 5) +#define XVIDC_EDID_EST_TIMINGS_II_1024x768_87_MASK (0x1 << 4) +#define XVIDC_EDID_EST_TIMINGS_II_1024x768_60_MASK (0x1 << 3) +#define XVIDC_EDID_EST_TIMINGS_II_1024x768_70_MASK (0x1 << 2) +#define XVIDC_EDID_EST_TIMINGS_II_1024x768_75_MASK (0x1 << 1) +#define XVIDC_EDID_EST_TIMINGS_II_1280x1024_75_MASK (0x1) +#define XVIDC_EDID_EST_TIMINGS_MAN_1152x870_75_MASK (0x1 << 7) +#define XVIDC_EDID_EST_TIMINGS_MAN_MASK (0x7F) + +/* Standard timings. */ +#define XVIDC_EDID_STD_TIMINGS_AR_SHIFT 6 +#define XVIDC_EDID_STD_TIMINGS_AR_16_10 0x0 +#define XVIDC_EDID_STD_TIMINGS_AR_4_3 0x1 +#define XVIDC_EDID_STD_TIMINGS_AR_5_4 0x2 +#define XVIDC_EDID_STD_TIMINGS_AR_16_9 0x3 +#define XVIDC_EDID_STD_TIMINGS_FRR_MASK (0x3F) + +/* Detailed timing descriptor (DTD) / Preferred timing mode (PTM). */ +#define XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XBLANK_MASK 0x0F +#define XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_MASK 0xF0 +#define XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_SHIFT 4 +#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4_VSPW_MASK 0x0F +#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4_VFPORCH_MASK 0xF0 +#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4_VFPORCH_SHIFT 4 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HFPORCH_MASK 0xC0 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HSPW_MASK 0x30 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_VFPORCH_MASK 0x0C +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_VSPW_MASK 0x03 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HFPORCH_SHIFT 6 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HSPW_SHIFT 4 +#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_VFPORCH_SHIFT 2 +#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4_VIMGSIZE_MM_MASK 0x0F +#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4_HIMGSIZE_MM_MASK 0xF0 +#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4_HIMGSIZE_MM_SHIFT 4 +#define XVIDC_EDID_DTD_PTM_SIGNAL_INTERLACED_MASK 0x80 +#define XVIDC_EDID_DTD_PTM_SIGNAL_INTERLACED_SHIFT 7 +#define XVIDC_EDID_DTD_PTM_SIGNAL_HPOLARITY_MASK 0x02 +#define XVIDC_EDID_DTD_PTM_SIGNAL_VPOLARITY_MASK 0x04 +#define XVIDC_EDID_DTD_PTM_SIGNAL_HPOLARITY_SHIFT 1 +#define XVIDC_EDID_DTD_PTM_SIGNAL_VPOLARITY_SHIFT 2 +/* @} */ + +/******************* Macros (Inline Functions) Definitions ********************/ + +#define XVidC_EdidIsHeaderValid(E) \ + !memcmp(E, "\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00", 8) + +/* Vendor and product identification: ID manufacturer name. */ +/* void XVidC_EdidGetManName(const u8 *EdidRaw, char ManName[4]); */ + +/* Vendor and product identification: ID product code. */ +#define XVidC_EdidGetIdProdCode(E) \ + ((u16)((E[XVIDC_EDID_VPI_ID_PROD_CODE_MSB] << 8) | \ + E[XVIDC_EDID_VPI_ID_PROD_CODE_LSB])) + +/* Vendor and product identification: ID serial number. */ +#define XVidC_EdidGetIdSn(E) \ + ((u32)((E[XVIDC_EDID_VPI_ID_SN3] << 24) | \ + (E[XVIDC_EDID_VPI_ID_SN2] << 16) | (E[XVIDC_EDID_VPI_ID_SN1] << 8) | \ + E[XVIDC_EDID_VPI_ID_SN0])) + +/* Vendor and product identification: Week and year of manufacture or model + * year. */ +#define XVidC_EdidGetManWeek(E) (E[XVIDC_EDID_VPI_WEEK_MAN]) +#define XVidC_EdidGetModManYear(E) (E[XVIDC_EDID_VPI_YEAR] + 1990) +#define XVidC_EdidIsYearModel(E) (XVidC_EdidGetManWeek(E) == 0xFF) +#define XVidC_EdidIsYearMan(E) (XVidC_EdidGetManWeek(E) != 0xFF) + +/* EDID structure version and revision. */ +#define XVidC_EdidGetStructVer(E) (E[XVIDC_EDID_STRUCT_VER]) +#define XVidC_EdidGetStructRev(E) (E[XVIDC_EDID_STRUCT_REV]) + +/* Basic display parameters and features: Video input definition. */ +#define XVidC_EdidIsDigitalSig(E) \ + ((E[XVIDC_EDID_BDISP_VID] & XVIDC_EDID_BDISP_VID_VSI_MASK) != 0) +#define XVidC_EdidIsAnalogSig(E) \ + ((E[XVIDC_EDID_BDISP_VID] & XVIDC_EDID_BDISP_VID_VSI_MASK) == 0) +#define XVidC_EdidGetAnalogSigLvlStd(E) \ + ((E[XVIDC_EDID_BDISP_VID] & XVIDC_EDID_BDISP_VID_ANA_SLS_MASK) >> \ + XVIDC_EDID_BDISP_VID_ANA_SLS_SHIFT) +#define XVidC_EdidGetAnalogSigVidSetup(E) \ + ((E[XVIDC_EDID_BDISP_VID] & \ + XVIDC_EDID_BDISP_VID_ANA_VID_SETUP_MASK) != 0) +#define XVidC_EdidSuppAnalogSigSepSyncHv(E) \ + ((E[XVIDC_EDID_BDISP_VID] & \ + XVIDC_EDID_BDISP_VID_ANA_SEP_SYNC_HV_MASK) != 0) +#define XVidC_EdidSuppAnalogSigCompSyncH(E) \ + ((E[XVIDC_EDID_BDISP_VID] & \ + XVIDC_EDID_BDISP_VID_ANA_COMP_SYNC_H_MASK) != 0) +#define XVidC_EdidSuppAnalogSigCompSyncG(E) \ + ((E[XVIDC_EDID_BDISP_VID] & \ + XVIDC_EDID_BDISP_VID_ANA_COMP_SYNC_G_MASK) != 0) +#define XVidC_EdidSuppAnalogSigSerrVsync(E) \ + ((E[XVIDC_EDID_BDISP_VID] & \ + XVIDC_EDID_BDISP_VID_ANA_SERR_V_SYNC_MASK) != 0) +/* XVidC_ColorDepth XVidC_EdidGetColorDepth(const u8 *EdidRaw); */ +#define XVidC_EdidGetDigitalSigIfaceStd(E) \ + (E[XVIDC_EDID_BDISP_VID] & XVIDC_EDID_BDISP_VID_DIG_VIS_MASK) + +/* Basic display parameters and features: Horizontal and vertical screen size or + * aspect ratio. */ +#define XVidC_EdidIsSsArDefined(E) \ + ((E[XVIDC_EDID_BDISP_H_SSAR] | E[XVIDC_EDID_BDISP_V_SSAR]) != 0) +#define XVidC_EdidGetSsArH(E) E[XVIDC_EDID_BDISP_H_SSAR] +#define XVidC_EdidGetSsArV(E) E[XVIDC_EDID_BDISP_V_SSAR] +#define XVidC_EdidIsSsArSs(E) \ + ((XVidC_EdidGetSsArH(E) != 0) && (XVidC_EdidGetSsArV(E) != 0)) +#define XVidC_EdidIsSsArArL(E) \ + ((XVidC_EdidGetSsArH(E) != 0) && (XVidC_EdidGetSsArV(E) == 0)) +#define XVidC_EdidIsSsArArP(E) \ + ((XVidC_EdidGetSsArH(E) == 0) && (XVidC_EdidGetSsArV(E) != 0)) +#define XVidC_EdidGetSsArArL(E) \ + ((float)((XVidC_EdidGetSsArH(E) + 99.0) / 100.0)) +#define XVidC_EdidGetSsArArP(E) \ + ((float)(100.0 / (XVidC_EdidGetSsArV(E) + 99.0))) + +/* Basic display parameters and features: Gamma. */ +#define XVidC_EdidIsGammaInExt(E) (E[XVIDC_EDID_BDISP_GAMMA] == 0xFF) +#define XVidC_EdidGetGamma(E) \ + ((float)((E[XVIDC_EDID_BDISP_GAMMA] + 100.0) / 100.0)) + +/* Basic display parameters and features: Feature support. */ +#define XVidC_EdidSuppFeaturePmStandby(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_PM_STANDBY_MASK) != 0) +#define XVidC_EdidSuppFeaturePmSuspend(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_PM_SUSPEND_MASK) != 0) +#define XVidC_EdidSuppFeaturePmOffVlp(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_PM_OFF_VLP_MASK) != 0) +#define XVidC_EdidGetFeatureAnaColorType(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_MASK) >> \ + XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_SHIFT) +#define XVidC_EdidSuppFeatureDigColorEncYCrCb444(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_DIG_COLORENC_YCRCB444_MASK) != 0) +#define XVidC_EdidSuppFeatureDigColorEncYCrCb422(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_DIG_COLORENC_YCRCB422_MASK) != 0) +#define XVidC_EdidIsFeatureSrgbDef(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_SRGB_DEF_MASK) != 0) +#define XVidC_EdidIsFeaturePtmInc(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_PTM_INC_MASK) != 0) +#define XVidC_EdidIsFeatureContFreq(E) \ + ((E[XVIDC_EDID_BDISP_FEATURE] & \ + XVIDC_EDID_BDISP_FEATURE_CONTFREQ_MASK) != 0) + +/* Established timings. */ +#define XVidC_EdidSuppEstTimings720x400_70(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_720x400_70_MASK) != 0) +#define XVidC_EdidSuppEstTimings720x400_88(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_720x400_88_MASK) != 0) +#define XVidC_EdidSuppEstTimings640x480_60(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_640x480_60_MASK) != 0) +#define XVidC_EdidSuppEstTimings640x480_67(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_640x480_67_MASK) != 0) +#define XVidC_EdidSuppEstTimings640x480_72(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_640x480_72_MASK) != 0) +#define XVidC_EdidSuppEstTimings640x480_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_640x480_75_MASK) != 0) +#define XVidC_EdidSuppEstTimings800x600_56(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_800x600_56_MASK) != 0) +#define XVidC_EdidSuppEstTimings800x600_60(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_I] & \ + XVIDC_EDID_EST_TIMINGS_I_800x600_60_MASK) != 0) +#define XVidC_EdidSuppEstTimings800x600_72(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_800x600_72_MASK) != 0) +#define XVidC_EdidSuppEstTimings800x600_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_800x600_75_MASK) != 0) +#define XVidC_EdidSuppEstTimings832x624_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_832x624_75_MASK) != 0) +#define XVidC_EdidSuppEstTimings1024x768_87(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_1024x768_87_MASK) != 0) +#define XVidC_EdidSuppEstTimings1024x768_60(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_1024x768_60_MASK) != 0) +#define XVidC_EdidSuppEstTimings1024x768_70(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_1024x768_70_MASK) != 0) +#define XVidC_EdidSuppEstTimings1024x768_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_1024x768_75_MASK) != 0) +#define XVidC_EdidSuppEstTimings1280x1024_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_II] & \ + XVIDC_EDID_EST_TIMINGS_II_1280x1024_75_MASK) != 0) +#define XVidC_EdidSuppEstTimings1152x870_75(E) \ + ((E[XVIDC_EDID_EST_TIMINGS_MAN] & \ + XVIDC_EDID_EST_TIMINGS_MAN_1152x870_75_MASK) != 0) +#define XVidC_EdidGetTimingsMan(E) \ + (E[XVIDC_EDID_EST_TIMINGS_MAN] & XVIDC_EDID_EST_TIMINGS_MAN_MASK) + +/* Standard timings. */ +#define XVidC_EdidGetStdTimingsH(E, N) \ + ((E[XVIDC_EDID_STD_TIMINGS_H(N)] + 31) * 8) +#define XVidC_EdidGetStdTimingsAr(E, N) \ + (E[XVIDC_EDID_STD_TIMINGS_AR_FRR(N)] >> XVIDC_EDID_STD_TIMINGS_AR_SHIFT) +#define XVidC_EdidGetStdTimingsFrr(E, N) \ + ((E[XVIDC_EDID_STD_TIMINGS_AR_FRR(N)] & \ + XVIDC_EDID_STD_TIMINGS_FRR_MASK) + 60) +/* u16 XVidC_EdidGetStdTimingsV(const u8 *EdidRaw, u8 StdTimingsNum); */ +#define XVidC_EdidIsDtdPtmInterlaced(E) \ + ((E[XVIDC_EDID_PTM + XVIDC_EDID_DTD_PTM_SIGNAL] & \ + XVIDC_EDID_DTD_PTM_SIGNAL_INTERLACED_MASK) >> \ + XVIDC_EDID_DTD_PTM_SIGNAL_INTERLACED_SHIFT) + +/* Extension block count. */ +#define XVidC_EdidGetExtBlkCount(E) (E[XVIDC_EDID_EXT_BLK_COUNT]) + +/* Checksum. */ +#define XVidC_EdidGetChecksum(E) (E[XVIDC_EDID_CHECKSUM]) + +/**************************** Function Prototypes *****************************/ + +/* Vendor and product identification: ID manufacturer name. */ +void XVidC_EdidGetManName(const u8 *EdidRaw, char ManName[4]); + +/* Basic display parameters and features: Video input definition. */ +XVidC_ColorDepth XVidC_EdidGetColorDepth(const u8 *EdidRaw); + +/* Color characteristics (display x,y chromaticity coordinates). */ +int XVidC_EdidGetCcRedX(const u8 *EdidRaw); +int XVidC_EdidGetCcRedY(const u8 *EdidRaw); +int XVidC_EdidGetCcGreenX(const u8 *EdidRaw); +int XVidC_EdidGetCcGreenY(const u8 *EdidRaw); +int XVidC_EdidGetCcBlueX(const u8 *EdidRaw); +int XVidC_EdidGetCcBlueY(const u8 *EdidRaw); +int XVidC_EdidGetCcWhiteX(const u8 *EdidRaw); +int XVidC_EdidGetCcWhiteY(const u8 *EdidRaw); + +/* Standard timings. */ +u16 XVidC_EdidGetStdTimingsV(const u8 *EdidRaw, u8 StdTimingsNum); + +/* Utility functions. */ +u32 XVidC_EdidIsVideoTimingSupported(const u8 *EdidRaw, + const XVidC_VideoTimingMode *VtMode); + +#ifdef __cplusplus +} +#endif +#endif /* XVIDC_EDID_H_ */ +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.c new file mode 100644 index 000000000..c8ce9f125 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.c @@ -0,0 +1,174 @@ +/****************************************************************************** +* +* Copyright (C) 2017 - 2018 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xhdmi_edid.h +* +* Software Initalization & Configuration +* +* Interrupts +* +* Virtual Memory +* +* This driver supports Virtual Memory. The RTOS is responsible for calculating +* the correct device base address in Virtual Memory space. +* +* Threads +* +* This driver is not thread safe. Any needs for threads or thread mutual +* exclusion must be satisfied by the layer above this driver. +* +* Asserts +* +* Asserts are used within all Xilinx drivers to enforce constraints on argument +* values. Asserts can be turned off on a system-wide basis by defining at +* compile time, the NDEBUG identifier. By default, asserts are turned on and it +* is recommended that users leave asserts on during development. +* +* Building the driver +* +*
      +* MODIFICATION HISTORY:
      +*
      +* Ver   Who  Date       Changes
      +* ----- ---- ---------- --------------------------------------------------
      +* 1.0   mmo  24-01-2017 EDID Parser capability
      +* 
      +* +******************************************************************************/ +#include "stdio.h" +#include "string.h" +#include "stdlib.h" +#include "stdbool.h" +#include "xil_types.h" +#include "xstatus.h" +#include "xil_exception.h" +#include "xvidc_edid_ext.h" + +static XV_VidC_PicAspectRatio xv_vidc_getPicAspectRatio(u16 hres, u16 vres); + +static XV_VidC_PicAspectRatio xv_vidc_getPicAspectRatio(u16 hres, u16 vres) { + XV_VidC_PicAspectRatio ar; +#define HAS_RATIO_OF(x, y) (hres == (vres*(x)/(y))&&!((vres*(x))%(y))) + if (HAS_RATIO_OF(16, 10)) { + ar.width = 16; + ar.height = 10; + return ar; + } + if (HAS_RATIO_OF(4, 3)) { + ar.width = 4; + ar.height = 3; + return ar; + } + if (HAS_RATIO_OF(5, 4)) { + ar.width = 5; + ar.height = 4; + return ar; + } + if (HAS_RATIO_OF(16, 9)) { + ar.width = 16; + ar.height = 9; + return ar; +#undef HAS_RATIO + } else { + ar.width = 0; + ar.height = 0; + return ar; + } +} + + +void XV_VidC_EdidCtrlParamInit (XV_VidC_EdidCntrlParam *EdidCtrlParam) { + + /* Verify arguments. */ + Xil_AssertVoid(EdidCtrlParam != NULL); + + (void)memset((void *)EdidCtrlParam, 0, + sizeof(XV_VidC_EdidCntrlParam)); + + EdidCtrlParam->IsHdmi = XVIDC_ISDVI; + EdidCtrlParam->IsYCbCr444Supp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr420Supp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr422Supp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr444DeepColSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->Is30bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->Is36bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->Is48bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr420dc30bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr420dc36bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsYCbCr420dc48bppSupp = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsSCDCReadRequestReady= XVIDC_NOT_SUPPORTED; + EdidCtrlParam->IsSCDCPresent = XVIDC_NOT_SUPPORTED; + EdidCtrlParam->MaxFrameRateSupp = 0; + EdidCtrlParam->MaxTmdsMhz = 0; +} + +XV_VidC_TimingParam +XV_VidC_timing + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + XV_VidC_TimingParam timing; + + timing.hres = xvidc_edid_detailed_timing_horizontal_active(dtb); + timing.vres = xvidc_edid_detailed_timing_vertical_active(dtb); + timing.htotal = timing.hres + + xvidc_edid_detailed_timing_horizontal_blanking(dtb); + timing.vtotal = timing.vres + + xvidc_edid_detailed_timing_vertical_blanking(dtb); + timing.hfp = xvidc_edid_detailed_timing_horizontal_sync_offset(dtb); + timing.vfp = xvidc_edid_detailed_timing_vertical_sync_offset(dtb); + timing.hsync_width = + xvidc_edid_detailed_timing_horizontal_sync_pulse_width(dtb); + timing.vsync_width = + xvidc_edid_detailed_timing_vertical_sync_pulse_width(dtb); + timing.pixclk = xvidc_edid_detailed_timing_pixel_clock(dtb); + timing.vfreq = (timing.pixclk / (timing.vtotal * timing.htotal)); + timing.vidfrmt = (XVidC_VideoFormat) dtb->interlaced; + timing.aspect_ratio = + xv_vidc_getPicAspectRatio (timing.hres, timing.vres); + timing.hsync_polarity = dtb->signal_pulse_polarity; + timing.vsync_polarity = dtb->signal_serration_polarity; + + return timing; +} + +#if XVIDC_EDID_VERBOSITY > 1 +XV_VidC_DoubleRep Double2Int (double in_val) { + XV_VidC_DoubleRep DR; + + DR.Integer = in_val; + DR.Decimal = (in_val - DR.Integer) * 10000; + + return (DR); +} +#endif diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.h new file mode 100644 index 000000000..d685723f5 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_edid_ext.h @@ -0,0 +1,626 @@ +/* vim: set et fde fdm=syntax ft=c.doxygen ts=4 sts=4 sw=4 : */ +/* + * Copyright © 2010-2011 Saleem Abdulrasool . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef xvidc_edid_h +#define xvidc_edid_h + +#include "stdbool.h" +#include "xvidc.h" +#include "xil_assert.h" +#include "xvidc_cea861.h" + +#define XVIDC_EDID_BLOCK_SIZE (0x80) +#define XVIDC_EDID_MAX_EXTENSIONS (0xFE) + + +static const u8 XVIDC_EDID_EXT_HEADER[] = + { 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 }; +static const u8 XVIDC_EDID_STANDARD_TIMING_DESCRIPTOR_INVALID[] = + { 0x01, 0x01 }; + +enum xvidc_edid_extension_type { + XVIDC_EDID_EXTENSION_TIMING = 0x01, /* Timing Extension */ + XVIDC_EDID_EXTENSION_CEA = 0x02, /* Additional Timing Block + Data (CEA EDID Timing Extension)*/ + XVIDC_EDID_EXTENSION_VTB = 0x10, /* Video Timing Block + Extension (VTB-EXT)*/ + XVIDC_EDID_EXTENSION_XVIDC_EDID_2_0= 0x20, /* EDID 2.0 Extension */ + XVIDC_EDID_EXTENSION_DI = 0x40, /* Display Information + Extension (DI-EXT) */ + XVIDC_EDID_EXTENSION_LS = 0x50, /* Localised String + Extension (LS-EXT) */ + XVIDC_EDID_EXTENSION_MI = 0x60, /* Microdisplay Interface + Extension (MI-EXT) */ + XVIDC_EDID_EXTENSION_DTCDB_1 = 0xA7, /* Display Transfer + Characteristics Data Block (DTCDB) */ + XVIDC_EDID_EXTENSION_DTCDB_2 = 0xAF, + XVIDC_EDID_EXTENSION_DTCDB_3 = 0xBF, + XVIDC_EDID_EXTENSION_BLOCK_MAP = 0xF0, /* Block Map*/ + XVIDC_EDID_EXTENSION_DDDB = 0xFF, /* Display Device Data + Block (DDDB)*/ +}; + +enum xvidc_edid_display_type { + XVIDC_EDID_DISPLAY_TYPE_MONOCHROME, + XVIDC_EDID_DISPLAY_TYPE_RGB, + XVIDC_EDID_DISPLAY_TYPE_NON_RGB, + XVIDC_EDID_DISPLAY_TYPE_UNDEFINED, +}; + +enum xvidc_edid_aspect_ratio { + XVIDC_EDID_ASPECT_RATIO_16_10, + XVIDC_EDID_ASPECT_RATIO_4_3, + XVIDC_EDID_ASPECT_RATIO_5_4, + XVIDC_EDID_ASPECT_RATIO_16_9, +}; + +enum xvidc_edid_signal_sync { + XVIDC_EDID_SIGNAL_SYNC_ANALOG_COMPOSITE, + XVIDC_EDID_SIGNAL_SYNC_BIPOLAR_ANALOG_COMPOSITE, + XVIDC_EDID_SIGNAL_SYNC_DIGITAL_COMPOSITE, + XVIDC_EDID_SIGNAL_SYNC_DIGITAL_SEPARATE, +}; + +enum xvidc_edid_stereo_mode { + XVIDC_EDID_STEREO_MODE_NONE, + XVIDC_EDID_STEREO_MODE_RESERVED, + XVIDC_EDID_STEREO_MODE_FIELD_SEQUENTIAL_RIGHT, + XVIDC_EDID_STEREO_MODE_2_WAY_INTERLEAVED_RIGHT, + XVIDC_EDID_STEREO_MODE_FIELD_SEQUENTIAL_LEFT, + XVIDC_EDID_STEREO_MODE_2_WAY_INTERLEAVED_LEFT, + XVIDC_EDID_STEREO_MODE_4_WAY_INTERLEAVED, + XVIDC_EDID_STEREO_MODE_SIDE_BY_SIDE_INTERLEAVED, +}; + +enum xvidc_edid_monitor_descriptor_type { + XVIDC_EDID_MONTIOR_DESCRIPTOR_MANUFACTURER_DEFINED = 0x0F, + XVIDC_EDID_MONITOR_DESCRIPTOR_STANDARD_TIMING_IDENTIFIERS = 0xFA, + XVIDC_EDID_MONITOR_DESCRIPTOR_COLOR_POINT = 0xFB, + XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_NAME = 0xFC, + XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_RANGE_LIMITS = 0xFD, + XVIDC_EDID_MONITOR_DESCRIPTOR_ASCII_STRING = 0xFE, + XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_SERIAL_NUMBER = 0xFF, +}; + +enum xvidc_edid_secondary_timing_support { + XVIDC_EDID_SECONDARY_TIMING_NOT_SUPPORTED, + XVIDC_EDID_SECONDARY_TIMING_GFT = 0x02, +}; + + +struct __attribute__ (( packed )) xvidc_edid_detailed_timing_descriptor { + u16 pixel_clock; /* = value * 10000 */ + + u8 horizontal_active_lo; + u8 horizontal_blanking_lo; + + unsigned horizontal_blanking_hi : 4; + unsigned horizontal_active_hi : 4; + + u8 vertical_active_lo; + u8 vertical_blanking_lo; + + unsigned vertical_blanking_hi : 4; + unsigned vertical_active_hi : 4; + + u8 horizontal_sync_offset_lo; + u8 horizontal_sync_pulse_width_lo; + + unsigned vertical_sync_pulse_width_lo : 4; + unsigned vertical_sync_offset_lo : 4; + + unsigned vertical_sync_pulse_width_hi : 2; + unsigned vertical_sync_offset_hi : 2; + unsigned horizontal_sync_pulse_width_hi : 2; + unsigned horizontal_sync_offset_hi : 2; + + u8 horizontal_image_size_lo; + u8 vertical_image_size_lo; + + unsigned vertical_image_size_hi : 4; + unsigned horizontal_image_size_hi : 4; + + u8 horizontal_border; + u8 vertical_border; + + unsigned stereo_mode_lo : 1; + unsigned signal_pulse_polarity : 1; /* pulse on sync, + composite/horizontal polarity */ + unsigned signal_serration_polarity : 1; /* serrate on sync, vertical + polarity */ + unsigned signal_sync : 2; + unsigned stereo_mode_hi : 2; + unsigned interlaced : 1; +}; + +static inline u32 +xvidc_edid_detailed_timing_pixel_clock + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return dtb->pixel_clock * 10000; +} + +static inline u16 +xvidc_edid_detailed_timing_horizontal_blanking + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->horizontal_blanking_hi << 8) | dtb->horizontal_blanking_lo; +} + +static inline u16 +xvidc_edid_detailed_timing_horizontal_active + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->horizontal_active_hi << 8) | dtb->horizontal_active_lo; +} + +static inline u16 +xvidc_edid_detailed_timing_vertical_blanking + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->vertical_blanking_hi << 8) | dtb->vertical_blanking_lo; +} + +static inline u16 +xvidc_edid_detailed_timing_vertical_active + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->vertical_active_hi << 8) | dtb->vertical_active_lo; +} + +static inline u8 +xvidc_edid_detailed_timing_vertical_sync_offset + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->vertical_sync_offset_hi << 4) | dtb->vertical_sync_offset_lo; +} + +static inline u8 +xvidc_edid_detailed_timing_vertical_sync_pulse_width + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->vertical_sync_pulse_width_hi << 4) | + dtb->vertical_sync_pulse_width_lo; +} + +static inline u8 +xvidc_edid_detailed_timing_horizontal_sync_offset + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->horizontal_sync_offset_hi << 4) | + dtb->horizontal_sync_offset_lo; +} + +static inline u8 +xvidc_edid_detailed_timing_horizontal_sync_pulse_width + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->horizontal_sync_pulse_width_hi << 4) | + dtb->horizontal_sync_pulse_width_lo; +} + +static inline u16 +xvidc_edid_detailed_timing_horizontal_image_size + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return + (dtb->horizontal_image_size_hi << 8) | dtb->horizontal_image_size_lo; +} + +static inline u16 +xvidc_edid_detailed_timing_vertical_image_size + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->vertical_image_size_hi << 8) | dtb->vertical_image_size_lo; +} + +static inline u8 +xvidc_edid_detailed_timing_stereo_mode + (const struct xvidc_edid_detailed_timing_descriptor * const dtb) +{ + return (dtb->stereo_mode_hi << 2 | dtb->stereo_mode_lo); +} + + +struct __attribute__ (( packed )) xvidc_edid_monitor_descriptor { + u16 flag0; + u8 flag1; + u8 tag; + u8 flag2; + u8 data[13]; +}; + +typedef char xvidc_edid_monitor_descriptor_string + [sizeof(((struct xvidc_edid_monitor_descriptor *)0)->data) + 1]; + + +struct __attribute__ (( packed )) xvidc_edid_monitor_range_limits { + u8 minimum_vertical_rate; /* Hz */ + u8 maximum_vertical_rate; /* Hz */ + u8 minimum_horizontal_rate; /* kHz */ + u8 maximum_horizontal_rate; /* kHz */ + u8 maximum_supported_pixel_clock; /* = (value * 10) Mhz + (round to 10 MHz) */ + + /* secondary timing formula */ + u8 secondary_timing_support; + u8 reserved; + u8 secondary_curve_start_frequency; /* horizontal frequency / 2 kHz */ + u8 c; /* = (value >> 1) */ + u16 m; + u8 k; + u8 j; /* = (value >> 1) */ +}; + + +struct __attribute__ (( packed )) xvidc_edid_standard_timing_descriptor { + u8 horizontal_active_pixels; /* = (value + 31) * 8 */ + + unsigned refresh_rate : 6; /* = value + 60 */ + unsigned image_aspect_ratio : 2; +}; + +inline u32 +xvidc_edid_standard_timing_horizontal_active +(const struct xvidc_edid_standard_timing_descriptor * const desc) { + return ((desc->horizontal_active_pixels + 31) << 3); +} + +inline u32 +xvidc_edid_standard_timing_vertical_active +(const struct xvidc_edid_standard_timing_descriptor * const desc) { + const u32 hres = xvidc_edid_standard_timing_horizontal_active(desc); + + switch (desc->image_aspect_ratio) { + case XVIDC_EDID_ASPECT_RATIO_16_10: + return ((hres * 10) >> 4); + case XVIDC_EDID_ASPECT_RATIO_4_3: + return ((hres * 3) >> 2); + case XVIDC_EDID_ASPECT_RATIO_5_4: + return ((hres << 2) / 5); + case XVIDC_EDID_ASPECT_RATIO_16_9: + return ((hres * 9) >> 4); + } + + return hres; +} + +inline u32 +xvidc_edid_standard_timing_refresh_rate +(const struct xvidc_edid_standard_timing_descriptor * const desc) { + return (desc->refresh_rate + 60); +} + + +struct __attribute__ (( packed )) edid { + /* header information */ + u8 header[8]; + + /* vendor/product identification */ + u16 manufacturer; + union { + u16 product_u16; + u8 product[2]; + }; + union { + u32 serial_number_u32; + u8 serial_number[4]; + }; + u8 manufacture_week; + u8 manufacture_year; /* = value + 1990 */ + + /* EDID version */ + u8 version; + u8 revision; + + /* basic display parameters and features */ + union { + struct __attribute__ (( packed )) { + unsigned dfp_1x : 1; /* VESA DFP 1.x */ + unsigned : 6; + unsigned digital : 1; + } digital; + struct __attribute__ (( packed )) { + unsigned vsync_serration : 1; + unsigned green_video_sync : 1; + unsigned composite_sync : 1; + unsigned separate_sync : 1; + unsigned blank_to_black_setup : 1; + unsigned signal_level_standard : 2; + unsigned digital : 1; + } analog; + } video_input_definition; + + u8 maximum_horizontal_image_size; /* cm */ + u8 maximum_vertical_image_size; /* cm */ + + u8 display_transfer_characteristics; /* gamma = (value + 100) / 100 */ + + struct __attribute__ (( packed )) { + unsigned default_gtf : 1; /* generalised timing + formula */ + unsigned preferred_timing_mode : 1; + unsigned standard_default_color_space : 1; + unsigned display_type : 2; + unsigned active_off : 1; + unsigned suspend : 1; + unsigned standby : 1; + } feature_support; + + /* color characteristics block */ + unsigned green_y_low : 2; + unsigned green_x_low : 2; + unsigned red_y_low : 2; + unsigned red_x_low : 2; + + unsigned white_y_low : 2; + unsigned white_x_low : 2; + unsigned blue_y_low : 2; + unsigned blue_x_low : 2; + + u8 red_x; + u8 red_y; + u8 green_x; + u8 green_y; + u8 blue_x; + u8 blue_y; + u8 white_x; + u8 white_y; + + /* established timings */ + struct __attribute__ (( packed )) { + unsigned timing_800x600_60 : 1; + unsigned timing_800x600_56 : 1; + unsigned timing_640x480_75 : 1; + unsigned timing_640x480_72 : 1; + unsigned timing_640x480_67 : 1; + unsigned timing_640x480_60 : 1; + unsigned timing_720x400_88 : 1; + unsigned timing_720x400_70 : 1; + + unsigned timing_1280x1024_75 : 1; + unsigned timing_1024x768_75 : 1; + unsigned timing_1024x768_70 : 1; + unsigned timing_1024x768_60 : 1; + unsigned timing_1024x768_87 : 1; + unsigned timing_832x624_75 : 1; + unsigned timing_800x600_75 : 1; + unsigned timing_800x600_72 : 1; + } established_timings; + + struct __attribute__ (( packed )) { + unsigned reserved : 7; + unsigned timing_1152x870_75 : 1; + } manufacturer_timings; + + /* standard timing id */ + struct xvidc_edid_standard_timing_descriptor standard_timing_id[8]; + + /* detailed timing */ + union { + struct xvidc_edid_monitor_descriptor monitor; + struct xvidc_edid_detailed_timing_descriptor timing; + } detailed_timings[4]; + + u8 extensions; + u8 checksum; +}; + +static inline void +xvidc_edid_manufacturer(const struct edid * const edid, char manufacturer[4]) +{ + manufacturer[0] = '@' + ((edid->manufacturer & 0x007c) >> 2); + manufacturer[1] = '@' + ((((edid->manufacturer & 0x0003) >> 00) << 3) | (((edid->manufacturer & 0xe000) >> 13) << 0)); + manufacturer[2] = '@' + ((edid->manufacturer & 0x1f00) >> 8); + manufacturer[3] = '\0'; +} + +static inline double +xvidc_edid_gamma(const struct edid * const edid) +{ + return (edid->display_transfer_characteristics + 100) / 100.0; +} + +static inline bool +xvidc_edid_detailed_timing_is_monitor_descriptor(const struct edid * const edid, + const u8 timing) +{ + const struct xvidc_edid_monitor_descriptor * const mon = + &edid->detailed_timings[timing].monitor; + + Xil_AssertNonvoid(timing < ARRAY_SIZE(edid->detailed_timings)); + + return mon->flag0 == 0x0000 && mon->flag1 == 0x00 && mon->flag2 == 0x00; +} + + +struct __attribute__ (( packed )) xvidc_edid_color_characteristics_data { + struct { + u16 x; + u16 y; + } red, green, blue, white; +}; + +static inline struct xvidc_edid_color_characteristics_data +xvidc_edid_color_characteristics(const struct edid * const edid) +{ + const struct xvidc_edid_color_characteristics_data characteristics = { + .red = { + .x = (edid->red_x << 2) | edid->red_x_low, + .y = (edid->red_y << 2) | edid->red_y_low, + }, + .green = { + .x = (edid->green_x << 2) | edid->green_x_low, + .y = (edid->green_y << 2) | edid->green_y_low, + }, + .blue = { + .x = (edid->blue_x << 2) | edid->blue_x_low, + .y = (edid->blue_y << 2) | edid->blue_y_low, + }, + .white = { + .x = (edid->white_x << 2) | edid->white_x_low, + .y = (edid->white_y << 2) | edid->white_y_low, + }, + }; + + return characteristics; +} + + +struct __attribute__ (( packed )) xvidc_edid_block_map { + u8 tag; + u8 extension_tag[126]; + u8 checksum; +}; + + +struct __attribute__ (( packed )) xvidc_edid_extension { + u8 tag; + u8 revision; + u8 extension_data[125]; + u8 checksum; +}; + + +static inline bool +xvidc_edid_verify_checksum(const u8 * const block) +{ + u8 checksum = 0; + int i; + + for (i = 0; i < XVIDC_EDID_BLOCK_SIZE; i++) + checksum += block[i]; + + return (checksum == 0); +} + +static inline double +xvidc_edid_decode_fixed_point(u16 value) +{ + double result = 0.0; + + Xil_AssertNonvoid((~value & 0xfc00) == 0xfc00); + /* edid fraction is 10 bits */ + + for (u8 i = 0; value && (i < 10); i++, value >>= 1) + result = result + ((value & 0x1) * (1.0 / (1 << (10 - i)))); + + return result; +} + +typedef enum { + XVIDC_VERBOSE_DISABLE, + XVIDC_VERBOSE_ENABLE +} XV_VidC_Verbose; + +typedef enum { + XVIDC_ISDVI, + XVIDC_ISHDMI +} XV_VidC_IsHdmi; + +typedef enum { + XVIDC_NOT_SUPPORTED, + XVIDC_SUPPORTED +} XV_VidC_Supp; +#if XVIDC_EDID_VERBOSITY > 1 +typedef struct { + u32 Integer; + u32 Decimal; +} XV_VidC_DoubleRep; +#endif + +typedef struct { + u8 width; + u8 height; +} XV_VidC_PicAspectRatio; + +typedef struct { + u16 hres; + u16 vres; + u16 htotal; + u16 vtotal; + XVidC_VideoFormat vidfrmt; + u32 pixclk; + u16 hsync_width; + u16 vsync_width; + u16 hfp; + u16 vfp; + u8 vfreq; + XV_VidC_PicAspectRatio aspect_ratio; + unsigned hsync_polarity : 1; + unsigned vsync_polarity : 1; +} XV_VidC_TimingParam; + +typedef struct { + /*Checks whether Sink able to support HDMI*/ + XV_VidC_IsHdmi IsHdmi; + /*Color Space Support*/ + XV_VidC_Supp IsYCbCr444Supp; + XV_VidC_Supp IsYCbCr420Supp; + XV_VidC_Supp IsYCbCr422Supp; + /*YCbCr444/YCbCr422/RGB444 Deep Color Support*/ + XV_VidC_Supp IsYCbCr444DeepColSupp; + XV_VidC_Supp Is30bppSupp; + XV_VidC_Supp Is36bppSupp; + XV_VidC_Supp Is48bppSupp; + /*YCbCr420 Deep Color Support*/ + XV_VidC_Supp IsYCbCr420dc30bppSupp; + XV_VidC_Supp IsYCbCr420dc36bppSupp; + XV_VidC_Supp IsYCbCr420dc48bppSupp; + /*SCDC and SCDC ReadRequest Support*/ + XV_VidC_Supp IsSCDCReadRequestReady; + XV_VidC_Supp IsSCDCPresent; + /*Sink Capability Support*/ + u8 MaxFrameRateSupp; + u16 MaxTmdsMhz; + /*CEA 861 Supported VIC Support*/ + u8 SuppCeaVIC[32]; + /*VESA Sink Preffered Timing Support*/ + XV_VidC_TimingParam PreferedTiming[4]; +} XV_VidC_EdidCntrlParam; + + +XV_VidC_TimingParam +XV_VidC_timing + (const struct xvidc_edid_detailed_timing_descriptor * const dtb); +#if XVIDC_EDID_VERBOSITY > 1 +XV_VidC_DoubleRep Double2Int (double in_val); +#endif +void XV_VidC_EdidCtrlParamInit (XV_VidC_EdidCntrlParam *EdidCtrlParam); + +void +XV_VidC_parse_edid(const u8 * const data, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_parse_edid.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_parse_edid.c new file mode 100644 index 000000000..6b0edb61c --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_parse_edid.c @@ -0,0 +1,1332 @@ +/* vim: set et fde fdm=syntax ft=c.doxygen ts=4 sts=4 sw=4 : */ +/* + * Copyright © 2011 Saleem Abdulrasool . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "string.h" +#include "stdlib.h" +#include "stddef.h" + +#include "xil_types.h" +#include "xstatus.h" +#include "xil_exception.h" + +#include "xvidc_edid_ext.h" + +#if XVIDC_EDID_VERBOSITY > 1 +#include "math.h" + +#define CM_2_MM(cm) ((cm) * 10) +#define CM_2_IN(cm) ((cm) * 0.3937) +#endif +#if XVIDC_EDID_VERBOSITY > 0 +#define HZ_2_MHZ(hz) ((hz) / 1000000) +#endif +#if XVIDC_EDID_VERBOSITY > 1 +static void +xvidc_disp_cea861_audio_data( + const struct xvidc_cea861_audio_data_block * const adb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +static void +xvidc_disp_cea861_speaker_allocation_data( + const struct xvidc_cea861_speaker_allocation_data_block * const sadb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +static void +xvidc_disp_cea861_video_data( + const struct xvidc_cea861_video_data_block * const vdb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); +#endif + +static void +xvidc_disp_cea861_extended_data( + const struct xvidc_cea861_extended_data_block * const edb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +static void +xvidc_disp_cea861_vendor_data( + const struct xvidc_cea861_vendor_specific_data_block * vsdb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +static void +xvidc_disp_cea861(const struct xvidc_edid_extension * const ext, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +static void +xvidc_disp_edid1(const struct edid * const edid, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn); + +/*****************************************************************************/ +/** +* +* This function parse EDID on General Data & VESA Data +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note API Define below here are CEA861 routines +* +******************************************************************************/ +static void +xvidc_disp_edid1(const struct edid * const edid, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) +{ + const struct xvidc_edid_monitor_range_limits *monitor_range_limits = NULL; + xvidc_edid_monitor_descriptor_string monitor_serial_number = {0}; + xvidc_edid_monitor_descriptor_string monitor_model_name = {0}; + bool has_ascii_string = false; + char manufacturer[4] = {0}; +#if XVIDC_EDID_VERBOSITY > 1 + XV_VidC_DoubleRep min_doubleval; + XV_VidC_DoubleRep max_doubleval; +#endif + + u8 i; +#if XVIDC_EDID_VERBOSITY > 0 + //add by mmo + XV_VidC_TimingParam timing_params; +#endif + +#if XVIDC_EDID_VERBOSITY > 1 + struct xvidc_edid_color_characteristics_data characteristics; + const u8 vlen = edid->maximum_vertical_image_size; + const u8 hlen = edid->maximum_horizontal_image_size; + + + static const char * const display_type[] = { + [XVIDC_EDID_DISPLAY_TYPE_MONOCHROME] = "Monochrome or greyscale", + [XVIDC_EDID_DISPLAY_TYPE_RGB] = "sRGB colour", + [XVIDC_EDID_DISPLAY_TYPE_NON_RGB] = "Non-sRGB colour", + [XVIDC_EDID_DISPLAY_TYPE_UNDEFINED] = "Undefined", + }; +#endif + xvidc_edid_manufacturer(edid, manufacturer); + + for (i = 0; i < ARRAY_SIZE(edid->detailed_timings); i++) { + const struct xvidc_edid_monitor_descriptor * const mon = + &edid->detailed_timings[i].monitor; + + if (!xvidc_edid_detailed_timing_is_monitor_descriptor(edid, i)) + continue; + + switch (mon->tag) { + case XVIDC_EDID_MONTIOR_DESCRIPTOR_MANUFACTURER_DEFINED: + /* This is arbitrary data, just silently ignore it. */ + break; + case XVIDC_EDID_MONITOR_DESCRIPTOR_ASCII_STRING: + has_ascii_string = true; + break; + case XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_NAME: + strncpy(monitor_model_name, (char *) mon->data, + sizeof(monitor_model_name) - 1); + break; + case XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_RANGE_LIMITS: + monitor_range_limits = + (struct xvidc_edid_monitor_range_limits *) &mon->data; + break; + case XVIDC_EDID_MONITOR_DESCRIPTOR_MONITOR_SERIAL_NUMBER: + strncpy(monitor_serial_number, (char *) mon->data, + sizeof(monitor_serial_number) - 1); + break; + default: + if (VerboseEn) { + xil_printf("unknown monitor descriptor type 0x%02x\n", + mon->tag); + } + break; + } + } + +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("Sink Information\r\n"); + + xil_printf(" Model name............... %s\r\n", + *monitor_model_name ? monitor_model_name : "n/a"); +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Manufacturer............. %s\r\n", + manufacturer); + + xil_printf(" Product code............. %u\r\n", + (u16) edid->product_u16); + + if (*(u32 *) edid->serial_number_u32) + xil_printf(" Module serial number..... %u\r\n", + (u32) edid->serial_number_u32); +#endif +#if defined(DISPLAY_UNKNOWN) + xil_printf(" Plug and Play ID......... %s\r\n", NULL); +#endif +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Serial number............ %s\r\n", + *monitor_serial_number ? monitor_serial_number : "n/a"); + + xil_printf(" Manufacture date......... %u", + edid->manufacture_year + 1990); + if (edid->manufacture_week <= 52) + xil_printf(", ISO week %u", edid->manufacture_week); + xil_printf("\r\n"); +#endif + xil_printf(" EDID revision............ %u.%u\r\n", + edid->version, edid->revision); +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Input signal type........ %s\r\n", + edid->video_input_definition.digital.digital ? "Digital" : "Analog"); + + if (edid->video_input_definition.digital.digital) { + xil_printf(" VESA DFP 1.x supported... %s\r\n", + edid->video_input_definition.digital.dfp_1x ? "Yes" : "No"); + } else { + /* Missing Piece: To print analog flags */ + } +#endif +#if defined(DISPLAY_UNKNOWN) + xil_printf(" Color bit depth.......... %s\r\n", NULL); +#endif +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Display type............. %s\r\n", + display_type[edid->feature_support.display_type]); + + xil_printf(" Screen size.............. %u mm x %u mm (%.1f in)\r\n", + CM_2_MM(hlen), CM_2_MM(vlen), + CM_2_IN(sqrt(hlen * hlen + vlen * vlen))); + + xil_printf(" Power management......... %s%s%s%s\r\n", + edid->feature_support.active_off ? "Active off, " : "", + edid->feature_support.suspend ? "Suspend, " : "", + edid->feature_support.standby ? "Standby, " : "", + + (edid->feature_support.active_off || + edid->feature_support.suspend || + edid->feature_support.standby) ? "\b\b " : "n/a"); +#endif + xil_printf(" Extension blocks......... %u\r\n", + edid->extensions); + +#if defined(DISPLAY_UNKNOWN) + xil_printf(" DDC/CI................... %s\r\n", NULL); +#endif + + xil_printf("\r\n"); + } +#endif + if (has_ascii_string) { + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf("General purpose ASCII string\r\n"); +#endif + } + + for (i = 0; i < ARRAY_SIZE(edid->detailed_timings); i++) { + if (!xvidc_edid_detailed_timing_is_monitor_descriptor(edid, i)) + continue; + } + + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf("\r\n"); +#endif + } + } +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("Color characteristics\r\n"); + + xil_printf(" Default color space...... %ssRGB\r\n", + edid->feature_support.standard_default_color_space ? "":"Non-"); +#if XVIDC_EDID_VERBOSITY > 1 + min_doubleval = + Double2Int(xvidc_edid_gamma(edid)); + xil_printf(" Display gamma............ %d.%03d\r\n", + min_doubleval.Integer, min_doubleval.Decimal); + + characteristics = xvidc_edid_color_characteristics(edid); + + min_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.red.x)); + max_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.red.y)); + + xil_printf(" Red chromaticity......... Rx %d.%03d - Ry %d.%03d\r\n", + min_doubleval.Integer, min_doubleval.Decimal, + max_doubleval.Integer, max_doubleval.Decimal); + + min_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.green.x)); + max_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.green.y)); + + xil_printf(" Green chromaticity....... Gx %d.%03d - Gy %d.%03d\r\n", + min_doubleval.Integer, min_doubleval.Decimal, + max_doubleval.Integer, max_doubleval.Decimal); + + min_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.blue.x)); + max_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.blue.y)); + + xil_printf(" Blue chromaticity........ Bx %d.%03d - By %d.%03d\r\n", + min_doubleval.Integer, min_doubleval.Decimal, + max_doubleval.Integer, max_doubleval.Decimal); + + min_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.white.x)); + max_doubleval = + Double2Int(xvidc_edid_decode_fixed_point(characteristics.white.y)); + + xil_printf(" White point (default).... Wx %d.%03d - Wy %d.%03d\r\n", + min_doubleval.Integer, min_doubleval.Decimal, + max_doubleval.Integer, max_doubleval.Decimal); +#endif +#if defined(DISPLAY_UNKNOWN) + xil_printf(" Additional descriptors... %s\r\n", NULL); +#endif + xil_printf("\r\n"); + + xil_printf("VESA Timing characteristics\r\n"); + } +#endif + if (monitor_range_limits) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Horizontal scan range.... %u - %u kHz\r\n", + monitor_range_limits->minimum_horizontal_rate, + monitor_range_limits->maximum_horizontal_rate); + + xil_printf(" Vertical scan range...... %u - %u Hz\r\n", + monitor_range_limits->minimum_vertical_rate, + monitor_range_limits->maximum_vertical_rate); + + xil_printf(" Video bandwidth.......... %u MHz\r\n", + monitor_range_limits->maximum_supported_pixel_clock * 10); + } +#endif + EdidCtrlParam->MaxFrameRateSupp = + monitor_range_limits->maximum_vertical_rate; + EdidCtrlParam->MaxTmdsMhz = + (monitor_range_limits->maximum_supported_pixel_clock * 10); + } + +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { +#if defined(DISPLAY_UNKNOWN) + xil_printf(" CVT standard............. %s\r\n", NULL); +#endif +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" GTF standard............. %sSupported\r\n", + edid->feature_support.default_gtf ? "" : "Not "); +#endif +#if defined(DISPLAY_UNKNOWN) + xil_printf(" Additional descriptors... %s\r\n", NULL); +#endif +#if XVIDC_EDID_VERBOSITY > 0 + xil_printf(" Preferred timing......... %s\r\n", + edid->feature_support.preferred_timing_mode ? "Yes" : "No"); +#endif + for (i = 0; i < ARRAY_SIZE(edid->detailed_timings); i++) { + if (xvidc_edid_detailed_timing_is_monitor_descriptor(edid, i)) + continue; + + timing_params = XV_VidC_timing(&edid->detailed_timings[i].timing); + EdidCtrlParam->PreferedTiming[i] = + XV_VidC_timing(&edid->detailed_timings[i].timing); +#if XVIDC_EDID_VERBOSITY > 0 + if (edid->feature_support.preferred_timing_mode) { + xil_printf(" Native/preferred timing.. %ux%u%c at %uHz" + " (%u:%u)\r\n", + timing_params.hres, + timing_params.vres, + timing_params.vidfrmt ? 'i' : 'p', + timing_params.vfreq, + timing_params.aspect_ratio.width, + timing_params.aspect_ratio.height); + xil_printf(" Modeline............... \"%ux%u\" %u %u %u %u" + " %u %u %u %u %u %chsync %cvsync\r\n", + timing_params.hres, + timing_params.vres, + HZ_2_MHZ (timing_params.pixclk), + (timing_params.hres), + (timing_params.hres + timing_params.hfp), + (timing_params.hres + timing_params.hfp + + timing_params.hsync_width), + (timing_params.htotal), + (timing_params.vres), + (timing_params.vres + timing_params.vfp), + (timing_params.vres + timing_params.vfp + + timing_params.vsync_width), + (timing_params.vtotal), + timing_params.hsync_polarity ? '+' : '-', + timing_params.vsync_polarity ? '+' : '-'); + } else { + xil_printf(" Native/preferred timing.. n/a\r\n"); + } +#endif + } +#if XVIDC_EDID_VERBOSITY > 0 + xil_printf("\r\n"); +#endif +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf("Established Timings supported\r\n"); + if (edid->established_timings.timing_720x400_70) + xil_printf(" 720 x 400p @ 70Hz - IBM VGA\r\n"); + if (edid->established_timings.timing_720x400_88) + xil_printf(" 720 x 400p @ 88Hz - IBM XGA2\r\n"); + if (edid->established_timings.timing_640x480_60) + xil_printf(" 640 x 480p @ 60Hz - IBM VGA\r\n"); + if (edid->established_timings.timing_640x480_67) + xil_printf(" 640 x 480p @ 67Hz - Apple Mac II\r\n"); + if (edid->established_timings.timing_640x480_72) + xil_printf(" 640 x 480p @ 72Hz - VESA\r\n"); + if (edid->established_timings.timing_640x480_75) + xil_printf(" 640 x 480p @ 75Hz - VESA\r\n"); + if (edid->established_timings.timing_800x600_56) + xil_printf(" 800 x 600p @ 56Hz - VESA\r\n"); + if (edid->established_timings.timing_800x600_60) + xil_printf(" 800 x 600p @ 60Hz - VESA\r\n"); + + if (edid->established_timings.timing_800x600_72) + xil_printf(" 800 x 600p @ 72Hz - VESA\r\n"); + if (edid->established_timings.timing_800x600_75) + xil_printf(" 800 x 600p @ 75Hz - VESA\r\n"); + if (edid->established_timings.timing_832x624_75) + xil_printf(" 832 x 624p @ 75Hz - Apple Mac II\r\n"); + if (edid->established_timings.timing_1024x768_87) + xil_printf(" 1024 x 768i @ 87Hz - VESA\r\n"); + if (edid->established_timings.timing_1024x768_60) + xil_printf(" 1024 x 768p @ 60Hz - VESA\r\n"); + if (edid->established_timings.timing_1024x768_70) + xil_printf(" 1024 x 768p @ 70Hz - VESA\r\n"); + if (edid->established_timings.timing_1024x768_75) + xil_printf(" 1024 x 768p @ 75Hz - VESA\r\n"); + if (edid->established_timings.timing_1280x1024_75) + xil_printf(" 1280 x 1024p @ 75Hz - VESA\r\n"); +#endif + } +#endif + +#if XVIDC_EDID_VERBOSITY > 1 + if (VerboseEn) { + xil_printf("Standard Timings supported\r\n"); + for (i = 0; i < ARRAY_SIZE(edid->standard_timing_id); i++) { + const struct xvidc_edid_standard_timing_descriptor * const desc = + &edid->standard_timing_id[i]; + + if (!memcmp(desc, XVIDC_EDID_STANDARD_TIMING_DESCRIPTOR_INVALID, + sizeof(*desc))) + { + continue; + } else { + if (((desc->horizontal_active_pixels + 31)* 8) >= 1000) { + xil_printf(" %u x",(desc->horizontal_active_pixels + 31)* 8); + } else { + xil_printf(" %u x",(desc->horizontal_active_pixels + 31)* 8); + } + switch (desc->image_aspect_ratio) { + case 0: //Aspect Ratio = 16:10 + xil_printf(" %up ", + (((desc->horizontal_active_pixels + 31)* 8) * 10) / 16); + break; + case 1: //Aspect Ratio = 4:3 + xil_printf(" %up ", + (((desc->horizontal_active_pixels + 31)* 8) * 3) / 4); + break; + case 2: //Aspect Ratio = 5:4 + xil_printf(" %up ", + (((desc->horizontal_active_pixels + 31)* 8) * 4) / 5); + break; + case 3: //Aspect Ratio = 16:9 + xil_printf(" %up ", + (((desc->horizontal_active_pixels + 31)* 8) * 9) / 16); + break; + default: //Aspect Ratio = 16:10 + xil_printf(" %up ", + (((desc->horizontal_active_pixels + 31)* 8) * 10) / 16); + break; + } + xil_printf("@ %uHz\r\n",(desc->refresh_rate + 60)); + } + } + } +#endif +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif +} + + + +/*****************************************************************************/ +/** +* +* This function parse EDID on CEA 861 Audio Data +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note API Define below here are CEA861 routines +* +******************************************************************************/ +#if XVIDC_EDID_VERBOSITY > 1 +static void +xvidc_disp_cea861_audio_data( + const struct xvidc_cea861_audio_data_block * const adb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + /* For Future Usage */ + EdidCtrlParam = EdidCtrlParam; + + const u8 descriptors = adb->header.length / sizeof(*adb->sad); +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("CE audio data (formats supported)\r\n"); + } +#endif + for (u8 i = 0; i < descriptors; i++) { + const struct xvidc_cea861_short_audio_descriptor * const sad = + (struct xvidc_cea861_short_audio_descriptor *) &adb->sad[i]; + + switch (sad->audio_format) { + case XVIDC_CEA861_AUDIO_FORMAT_LPCM: +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" LPCM %u-channel, %s%s%s\b%s", + sad->channels + 1, + sad->flags.lpcm.bitrate_16_bit ? "16/" : "", + sad->flags.lpcm.bitrate_20_bit ? "20/" : "", + sad->flags.lpcm.bitrate_24_bit ? "24/" : "", + + ((sad->flags.lpcm.bitrate_16_bit + + sad->flags.lpcm.bitrate_20_bit + + sad->flags.lpcm.bitrate_24_bit) > 1) ? + " bit depths" : "-bit"); + } +#endif + break; + case XVIDC_CEA861_AUDIO_FORMAT_AC_3: +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" AC-3 %u-channel, %4uk max. bit rate", + sad->channels + 1, + (sad->flags.maximum_bit_rate << 3)); + } +#endif + break; + default: +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("Unknown audio format 0x%02x\r\n", + sad->audio_format); + } +#endif + continue; + } +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" at %s%s%s%s%s%s%s\b kHz\r\n", + sad->sample_rate_32_kHz ? "32/" : "", + sad->sample_rate_44_1_kHz ? "44.1/" : "", + sad->sample_rate_48_kHz ? "48/" : "", + sad->sample_rate_88_2_kHz ? "88.2/" : "", + sad->sample_rate_96_kHz ? "96/" : "", + sad->sample_rate_176_4_kHz ? "176.4/" : "", + sad->sample_rate_192_kHz ? "192/" : ""); + } +#endif + } +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif +} +#endif + +/*****************************************************************************/ +/** +* +* This function parse EDID on CEA 861 Extended Data +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +static void +xvidc_disp_cea861_extended_data( + const struct xvidc_cea861_extended_data_block * const edb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + + /* During Verbosity 0, VerboseEn won't be used */ + /* To avoid compilation warnings */ + VerboseEn = VerboseEn; + +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("CEA Extended Tags\r\n"); + } +#endif + switch(edb->xvidc_cea861_extended_tag_codes) { +#if XVIDC_EDID_VERBOSITY > 1 + case XVIDC_CEA861_EXT_TAG_TYPE_VIDEO_CAPABILITY: + if (VerboseEn) { + xil_printf(" Video capability data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_VENDOR_SPECIFIC: + if (VerboseEn) { + xil_printf(" Vendor-specific video data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_VESA_DISPLAY_DEVICE: + if (VerboseEn) { + xil_printf(" VESA video display device data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_VESA_VIDEO_TIMING_BLOCK_EXT: + if (VerboseEn) { + xil_printf("VESA video timing block extension\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_RESERVED_FOR_HDMI_VIDEO_DATA_BLOCK: + if (VerboseEn) { + xil_printf("Reserved for HDMI video data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_COLORIMETRY: + if (VerboseEn) { + xil_printf(" Colorimetry data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_HDR_STATIC_METADATA: + if (VerboseEn) { + xil_printf("HDR static metadata data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_HDR_DYNAMIC_METADATA: + if (VerboseEn) { + xil_printf(" HDR dynamic metadata data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_VIDEO_FRMT_PREFERENCE: + if (VerboseEn) { + xil_printf(" Video format preference data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_CEA_MISC_AUDIO_FIELDS: + if (VerboseEn) { + xil_printf("Reserved for CEA miscellaneous audio fields\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_VENDOR_SPECIFC_AUDIO: + if (VerboseEn) { + xil_printf(" Vendor-specific audio data block\r\n\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_HDMI_AUDIO: + if (VerboseEn) { + xil_printf(" HDMI audio data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_ROOM_CONFIGURATION: + if (VerboseEn) { + xil_printf(" Room configuration data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_SPEAKER_LOCATION: + if (VerboseEn) { + xil_printf(" Speaker location data block\r\n"); + } + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_INFOFRAME: + if (VerboseEn) { + xil_printf(" Video capability data block\r\n"); + } + break; +#endif + case XVIDC_CEA861_EXT_TAG_TYPE_YCBCR420_VIDEO: +#if XVIDC_EDID_VERBOSITY > 1 + if (VerboseEn) { + xil_printf(" YCbCr 4:2:0 video data block\r\n"); + xil_printf(" YCbCr 4:2:0.............. Supported\r\n"); + } +#endif + EdidCtrlParam->IsYCbCr420Supp = XVIDC_SUPPORTED; + +#if XVIDC_EDID_VERBOSITY > 1 + if (VerboseEn) { + xil_printf(" CE video identifiers (VICs) - " + " timing/formats supported\r\n"); + } + for (u8 i = 0; i < edb->header.length - 1; i++) { + u8 vic; + u8 native=0; + if ((edb->data[i] & 0x7F) == 0) { + continue; + } else if (((edb->data[i]) >= 1) && ((edb->data[i]) <= 64)){ + vic = (edb->data[i]) & 0x7F; + } else if (((edb->data[i]) >= 65) && ((edb->data[i]) <= 127)){ + vic = (edb->data[i]); + } else if (((edb->data[i]) >= 129) && ((edb->data[i]) <= 192)){ + vic = (edb->data[i]) & 0x7F; + native = 1; + } else if (((edb->data[i]) >= 193) && ((edb->data[i]) <= 253)){ + vic = (edb->data[i]); + } else { + continue; + } + + const struct xvidc_cea861_timing * const timing = + &xvidc_cea861_timings[vic]; + + if (VerboseEn) { + xil_printf(" %s CEA Mode %02u: %4u x %4u%c @ %dHz\r\n", + native ? "*" : " ", + vic, + timing->hactive, timing->vactive, + (timing->mode == INTERLACED) ? 'i' : 'p', + (u32)(timing->vfreq)); + } + } + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif + break; + + case XVIDC_CEA861_EXT_TAG_TYPE_YCBCR420_CAPABILITY_MAP: +#if XVIDC_EDID_VERBOSITY > 1 + if (VerboseEn) { + xil_printf(" YCbCr 4:2:0 capability map data block\r\n"); + xil_printf(" YCbCr 4:2:0.............. Supported\r\n"); + } +#endif + EdidCtrlParam->IsYCbCr420Supp = XVIDC_SUPPORTED; +#if XVIDC_EDID_VERBOSITY > 1 + for (u8 i = 0; i < edb->header.length - 1; i++) { + u8 v = edb->data[i]; + + for (u8 j = 0; j < 8; j++) { + if (v & (1 << j)) { + if (VerboseEn) { + const struct xvidc_cea861_timing * const timing = + &xvidc_cea861_timings[EdidCtrlParam->SuppCeaVIC[(i * 8) + j]]; + xil_printf(" CEA Mode %02u: %4u x %4u%c" + "@ %dHz\r\n", + EdidCtrlParam->SuppCeaVIC[(i * 8) + j], + timing->hactive, timing->vactive, + (timing->mode == INTERLACED) ? 'i' : 'p', + (u32)(timing->vfreq)); + } + } + } + } +#endif +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif + break; + + default : +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Not Supported: Ext Tag: %03x\r\n", + edb->xvidc_cea861_extended_tag_codes); +#endif + xil_printf("\r\n"); + } +#endif + break; + } +} +#if XVIDC_EDID_VERBOSITY > 1 +static void +xvidc_disp_cea861_video_data( + const struct xvidc_cea861_video_data_block * const vdb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + /* For Future Usage */ + EdidCtrlParam = EdidCtrlParam; + + if (VerboseEn) { + xil_printf("CE video identifiers (VICs) - timing/formats" + " supported\r\n"); + } + + for (u8 i = 0; i < vdb->header.length; i++) { + + const struct xvidc_cea861_timing * const timing = + &xvidc_cea861_timings[vdb->svd[i].video_identification_code]; + + EdidCtrlParam->SuppCeaVIC[i] = vdb->svd[i].video_identification_code; + if (VerboseEn) { + xil_printf(" %s CEA Mode %02u: %4u x %4u%c @ %dHz\r\n", + vdb->svd[i].native ? "*" : " ", + vdb->svd[i].video_identification_code, + timing->hactive, timing->vactive, + (timing->mode == INTERLACED) ? 'i' : 'p', + (u32)(timing->vfreq)); + } + } + if (VerboseEn) { + xil_printf("\r\n"); + } +} +#endif + +/*****************************************************************************/ +/** +* +* This function parse EDID on CEA 861 Vendor Specific Data +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +static void +xvidc_disp_cea861_vendor_data( + const struct xvidc_cea861_vendor_specific_data_block * vsdb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + + /* During Verbosity 0, VerboseEn won't be used */ + /* To avoid compilation warnings */ + VerboseEn = VerboseEn; + + const u8 oui[] = { vsdb->ieee_registration[2], + vsdb->ieee_registration[1], + vsdb->ieee_registration[0] }; +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("CEA vendor specific data (VSDB)\r\n"); + xil_printf(" IEEE registration number. 0x"); + for (u8 i = 0; i < ARRAY_SIZE(oui); i++) + xil_printf("%02X", oui[i]); + xil_printf("\r\n"); + } +#endif + if (!memcmp(oui, HDMI_OUI, sizeof(oui))) { + const struct xvidc_cea861_hdmi_vendor_specific_data_block * const hdmi = + (struct xvidc_cea861_hdmi_vendor_specific_data_block *) vsdb; +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" CEC physical address..... %u.%u.%u.%u\r\n", + hdmi->port_configuration_a, + hdmi->port_configuration_b, + hdmi->port_configuration_c, + hdmi->port_configuration_d); + } +#endif + + if (hdmi->header.length >= HDMI_VSDB_EXTENSION_FLAGS_OFFSET) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Supports AI (ACP, ISRC).. %s\r\n", + hdmi->audio_info_frame ? "Yes" : "No"); +#endif + xil_printf(" Supports 48bpp........... %s\r\n", + hdmi->colour_depth_48_bit ? "Yes" : "No"); + xil_printf(" Supports 36bpp........... %s\r\n", + hdmi->colour_depth_36_bit ? "Yes" : "No"); + xil_printf(" Supports 30bpp........... %s\r\n", + hdmi->colour_depth_30_bit ? "Yes" : "No"); + xil_printf(" Supp. YUV444 Deep Color.. %s\r\n", + hdmi->yuv_444_supported ? "Yes" : "No"); +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Supports dual-link DVI... %s\r\n", + hdmi->dvi_dual_link ? "Yes" : "No"); +#endif + } +#endif + EdidCtrlParam->Is30bppSupp = hdmi->colour_depth_30_bit; + EdidCtrlParam->Is36bppSupp = hdmi->colour_depth_36_bit; + EdidCtrlParam->Is48bppSupp = hdmi->colour_depth_48_bit; + EdidCtrlParam->IsYCbCr444DeepColSupp = hdmi->yuv_444_supported; + } + + if (hdmi->header.length >= HDMI_VSDB_MAX_TMDS_OFFSET) { + if (hdmi->max_tmds_clock) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Maximum TMDS clock....... %uMHz\r\n", + hdmi->max_tmds_clock * 5); + } +#endif + EdidCtrlParam->MaxTmdsMhz = (hdmi->max_tmds_clock * 5); + } else { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Maximum TMDS clock....... n/a\r\n"); + } +#endif + } + } + + if (hdmi->header.length >= HDMI_VSDB_LATENCY_FIELDS_OFFSET) { + if (hdmi->latency_fields) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Video latency %s........ %ums\r\n", + hdmi->interlaced_latency_fields ? "(p)" : "...", + (hdmi->video_latency - 1) << 1); + xil_printf(" Audio latency %s........ %ums\r\n", + hdmi->interlaced_latency_fields ? "(p)" : "...", + (hdmi->audio_latency - 1) << 1); + } +#endif + } + + if (hdmi->interlaced_latency_fields) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Video latency (i)........ %ums\r\n", + hdmi->interlaced_video_latency); + xil_printf(" Audio latency (i)........ %ums\r\n", + hdmi->interlaced_audio_latency); + } +#endif + } + } + } else if (!memcmp(oui, HDMI_OUI_HF, sizeof(oui))) { + const struct xvidc_cea861_hdmi_hf_vendor_specific_data_block * const hdmi = + (struct xvidc_cea861_hdmi_hf_vendor_specific_data_block *) vsdb; + +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Version.................. %d\r\n",hdmi->version); + } +#endif + + if (hdmi->max_tmds_char_rate) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Maximum TMDS clock....... %uMHz\r\n", + hdmi->max_tmds_char_rate * 5); + } +#endif + EdidCtrlParam->MaxTmdsMhz = (hdmi->max_tmds_char_rate * 5); + } else { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf(" Max. Supp. TMDS clock (<=340MHz)\r\n"); + } +#endif + } + + if (hdmi->header.length >= HDMI_VSDB_EXTENSION_FLAGS_OFFSET) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" RRC Capable Support...... %s\r\n", + hdmi->rr_capable ? "Yes" : "No"); + xil_printf(" SCDC Present............. %s\r\n", + hdmi->scdc_present ? "Yes" : "No"); + xil_printf(" HDMI1.4 Scramble Support. %s\r\n", + hdmi->lte_340mcsc_scramble ? "Yes" : "No"); +#endif + xil_printf(" YUV 420 Deep.C. Support..\r\n"); + xil_printf(" Supports 48bpp......... %s\r\n", + hdmi->dc_48bit_yuv420 ? "Yes" : "No"); + xil_printf(" Supports 36bpp......... %s\r\n", + hdmi->dc_36bit_yuv420 ? "Yes" : "No"); + xil_printf(" Supports 30bpp......... %s\r\n", + hdmi->dc_30bit_yuv420 ? "Yes" : "No"); + } +#endif + EdidCtrlParam->IsYCbCr420dc30bppSupp = hdmi->dc_30bit_yuv420; + EdidCtrlParam->IsYCbCr420dc36bppSupp = hdmi->dc_36bit_yuv420; + EdidCtrlParam->IsYCbCr420dc48bppSupp = hdmi->dc_48bit_yuv420; + EdidCtrlParam->IsSCDCReadRequestReady = hdmi->rr_capable; + EdidCtrlParam->IsSCDCPresent = hdmi->scdc_present; + } + } +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif +} + +#if XVIDC_EDID_VERBOSITY > 1 +/*****************************************************************************/ +/** +* +* This function parse EDID on CEA 861 Speaker Allocation +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +static void +xvidc_disp_cea861_speaker_allocation_data( + const struct xvidc_cea861_speaker_allocation_data_block * const sadb, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + /* For Future Usage */ + EdidCtrlParam = EdidCtrlParam; + + const struct xvidc_cea861_speaker_allocation * const sa = &sadb->payload; + const u8 * const channel_configuration = (u8 *) sa; + + if (VerboseEn) { + xil_printf("CEA speaker allocation data\r\n"); + xil_printf(" Channel configuration.... %u.%u\r\n", + (__builtin_popcountll(channel_configuration[0] & 0xe9) << 1) + + (__builtin_popcountll(channel_configuration[0] & 0x14) << 0) + + (__builtin_popcountll(channel_configuration[1] & 0x01) << 1) + + (__builtin_popcountll(channel_configuration[1] & 0x06) << 0), + (channel_configuration[0] & 0x02)); + xil_printf(" Front left/right......... %s\r\n", + sa->front_left_right ? "Yes" : "No"); + xil_printf(" Front LFE................ %s\r\n", + sa->front_lfe ? "Yes" : "No"); + xil_printf(" Front center............. %s\r\n", + sa->front_center ? "Yes" : "No"); + xil_printf(" Rear left/right.......... %s\r\n", + sa->rear_left_right ? "Yes" : "No"); + xil_printf(" Rear center.............. %s\r\n", + sa->rear_center ? "Yes" : "No"); + xil_printf(" Front left/right center.. %s\r\n", + sa->front_left_right_center ? "Yes" : "No"); + xil_printf(" Rear left/right center... %s\r\n", + sa->rear_left_right_center ? "Yes" : "No"); + xil_printf(" Front left/right wide.... %s\r\n", + sa->front_left_right_wide ? "Yes" : "No"); + xil_printf(" Front left/right high.... %s\r\n", + sa->front_left_right_high ? "Yes" : "No"); + xil_printf(" Top center............... %s\r\n", + sa->top_center ? "Yes" : "No"); + xil_printf(" Front center high........ %s\r\n", + sa->front_center_high ? "Yes" : "No"); + + xil_printf("\r\n"); + } + +} +#endif + +/*****************************************************************************/ +/** +* +* This function Parse and Display the CEA-861 +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +static void +xvidc_disp_cea861(const struct xvidc_edid_extension * const ext, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + + const struct xvidc_cea861_timing_block * const ctb = + (struct xvidc_cea861_timing_block *) ext; + const u8 offset = offsetof(struct xvidc_cea861_timing_block, data); + u8 index = 0; + +#if XVIDC_EDID_VERBOSITY > 1 + const struct xvidc_edid_detailed_timing_descriptor *dtd = NULL; + u8 i; + + XV_VidC_TimingParam timing_params; +#endif + +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + + xil_printf("CEA-861 Information\r\n"); + xil_printf(" Revision number.......... %u\r\n", + ctb->revision); + } +#endif + + if (ctb->revision >= 2) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" IT underscan............. %supported\r\n", + ctb->underscan_supported ? "S" : "Not s"); +#endif + xil_printf(" Basic audio.............. %supported\r\n", + ctb->basic_audio_supported ? "S" : "Not s"); + xil_printf(" YCbCr 4:4:4.............. %supported\r\n", + ctb->yuv_444_supported ? "S" : "Not s"); + xil_printf(" YCbCr 4:2:2.............. %supported\r\n", + ctb->yuv_422_supported ? "S" : "Not s"); +#if XVIDC_EDID_VERBOSITY > 1 + xil_printf(" Native formats........... %u\r\n", + ctb->native_dtds); +#endif + } +#endif + EdidCtrlParam->IsYCbCr444Supp = ctb->yuv_444_supported; + EdidCtrlParam->IsYCbCr422Supp = ctb->yuv_422_supported; + } + +#if XVIDC_EDID_VERBOSITY > 1 + dtd = (struct xvidc_edid_detailed_timing_descriptor *) + ((u8 *) ctb + ctb->dtd_offset); + for (i = 0; dtd->pixel_clock; i++, dtd++) { + + timing_params = XV_VidC_timing(dtd); + if (VerboseEn) { + xil_printf(" Detailed timing #%u....... %ux%u%c at %uHz " + "(%u:%u)\r\n", + i + 1, + timing_params.hres, + timing_params.vres, + timing_params.vidfrmt ? 'i' : 'p', + timing_params.vfreq, + timing_params.aspect_ratio.width, + timing_params.aspect_ratio.height); + + xil_printf( + " Modeline............... \"%ux%u\" %u %u %u %u %u %u %u %u %u" + " %chsync %cvsync\r\n", + timing_params.hres, + timing_params.vres, + HZ_2_MHZ (timing_params.pixclk), + (timing_params.hres), + (timing_params.hres + timing_params.hfp), + (timing_params.hres + timing_params.hfp + + timing_params.hsync_width), + (timing_params.htotal), + (timing_params.vres), + (timing_params.vres + timing_params.vfp), + (timing_params.vres + timing_params.vfp + + timing_params.vsync_width), + (timing_params.vtotal), + timing_params.hsync_polarity ? '+' : '-', + timing_params.vsync_polarity ? '+' : '-'); + } + } +#endif +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif + + if (ctb->revision >= 3) { + do { + const struct xvidc_cea861_data_block_header * const header = + (struct xvidc_cea861_data_block_header *) &ctb->data[index]; + + switch (header->tag) { + + case XVIDC_CEA861_DATA_BLOCK_TYPE_AUDIO: + { +#if XVIDC_EDID_VERBOSITY > 1 + const struct xvidc_cea861_audio_data_block * const db = + (struct xvidc_cea861_audio_data_block *) header; + + xvidc_disp_cea861_audio_data(db,EdidCtrlParam,VerboseEn); +#endif + } + break; + + case XVIDC_CEA861_DATA_BLOCK_TYPE_VIDEO: + { +#if XVIDC_EDID_VERBOSITY > 1 + const struct xvidc_cea861_video_data_block * const db = + (struct xvidc_cea861_video_data_block *) header; + + xvidc_disp_cea861_video_data(db,EdidCtrlParam,VerboseEn); +#endif + } + break; + + case XVIDC_CEA861_DATA_BLOCK_TYPE_VENDOR_SPECIFIC: + { + const struct + xvidc_cea861_vendor_specific_data_block * const db = + (struct xvidc_cea861_vendor_specific_data_block *) header; + + xvidc_disp_cea861_vendor_data(db,EdidCtrlParam,VerboseEn); + } + break; + + case XVIDC_CEA861_DATA_BLOCK_TYPE_SPEAKER_ALLOCATION: + { +#if XVIDC_EDID_VERBOSITY > 1 + const struct + xvidc_cea861_speaker_allocation_data_block * const db = + (struct xvidc_cea861_speaker_allocation_data_block *) header; + + xvidc_disp_cea861_speaker_allocation_data(db, + EdidCtrlParam,VerboseEn); +#endif + } + break; + + case XVIDC_CEA861_DATA_BLOCK_TYPE_EXTENDED: + { + const struct xvidc_cea861_extended_data_block * const db = + (struct xvidc_cea861_extended_data_block *) header; + + xvidc_disp_cea861_extended_data(db,EdidCtrlParam,VerboseEn); + } + break; + + default: +#if XVIDC_EDID_VERBOSITY > 1 + if (VerboseEn) { + xil_printf("Unknown CEA-861 data block type 0x%02x\r\n", + header->tag); + } +#endif + break; + } + + index = index + header->length + sizeof(*header); + } while (index < ctb->dtd_offset - offset); + } +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("\r\n"); + } +#endif +} + + +/*****************************************************************************/ +/** +* +* This structure parse parse EDID routines +* +* +* @note None. +* +******************************************************************************/ +static const struct xvidc_edid_extension_handler { + void (* const inf_disp)(const struct xvidc_edid_extension * const, + XV_VidC_EdidCntrlParam *EdidCtrlParam, XV_VidC_Verbose VerboseEn); +} xvidc_edid_extension_handlers[] = { + [XVIDC_EDID_EXTENSION_CEA] = { xvidc_disp_cea861 }, +}; + + +/*****************************************************************************/ +/** +* +* This function parse and print the EDID of the Sink +* +* @param data is a pointer to the EDID array. +* @param EdidCtrlParam is a pointer the EDID Control parameter +* @param VerboseEn is a pointer to the XV_HdmiTxSs core instance. +* +* @return None +* +* @note None. +* +******************************************************************************/ +void +XV_VidC_parse_edid(const u8 * const data, + XV_VidC_EdidCntrlParam *EdidCtrlParam, + XV_VidC_Verbose VerboseEn) { + const struct edid * const edid = (struct edid *) data; + const struct xvidc_edid_extension * const extensions = + (struct xvidc_edid_extension *) (data + sizeof(*edid)); + + XV_VidC_EdidCtrlParamInit(EdidCtrlParam); + + xvidc_disp_edid1(edid,EdidCtrlParam,VerboseEn); + + for (u8 i = 0; i < edid->extensions; i++) { + const struct xvidc_edid_extension * const extension = &extensions[i]; + const struct xvidc_edid_extension_handler * const handler = + &xvidc_edid_extension_handlers[extension->tag]; + + if (!handler) { +#if XVIDC_EDID_VERBOSITY > 0 + if (VerboseEn) { + xil_printf("WARNING: block %u contains unknown extension " + " (%#04x)\r\n", i, extensions[i].tag); + } +#endif + continue; + } + + if (handler->inf_disp) { + (*handler->inf_disp)(extension,EdidCtrlParam,VerboseEn); + } + } +} diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_timings_table.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_timings_table.c new file mode 100644 index 000000000..ee1cb4f28 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/video_common_v4_3/src/xvidc_timings_table.c @@ -0,0 +1,534 @@ +/******************************************************************************* + * + * Copyright (C) 2017 Xilinx, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * Use of the Software is limited solely to applications: + * (a) running on a Xilinx device, or + * (b) that interact with a Xilinx device through a bus or interconnect. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of the Xilinx shall not be used + * in advertising or otherwise to promote the sale, use or other dealings in + * this Software without prior written authorization from Xilinx. + * +*******************************************************************************/ +/******************************************************************************/ +/** + * + * @file xvidc_timings_table.c + * @addtogroup video_common_v4_2 + * @{ + * + * Contains video timings for various standard resolutions. + * + * @note None. + * + *
      + * MODIFICATION HISTORY:
      + *
      + * Ver   Who  Date     Changes
      + * ----- ---- -------- -----------------------------------------------
      + * 1.0   als, 01/10/15 Initial release.
      + *       rc
      + * 2.0   als  08/14/15 Added new video timings.
      + * 2.1   als  11/04/15 Fixed video timings for some resolutions.
      + *       rco  02/09/17 Fix c++ compilation warnings
      + * 4.2   jsr  07/08/17 Added new video timings for SDI supported resolutions
      + *       aad  07/10/17 Add XVIDC_VM_3840x2160_60_P_RB video format
      + *       aad  09/05/17 Fixed timings for 1366x768_60_P
      + *       aad  09/05/17 Added 1366x768_60_P_RB
      + * 
      + * +*******************************************************************************/ + +/******************************* Include Files ********************************/ + +#include "xvidc.h" + +/**************************** Variable Definitions ****************************/ + +/** + * This table contains the main stream attributes for various standard + * resolutions. Each entry is of the format: + * 1) ID: XVIDC_VM_x__(_RB = Reduced Blanking) + * 2) Resolution naming: "x@" + * 3) Frame rate: XVIDC_FR_ + * 4) Video timing structure: + * 1) Horizontal active resolution (pixels) + * 2) Horizontal front porch (pixels) + * 3) Horizontal sync width (pixels) + * 4) Horizontal back porch (pixels) + * 5) Horizontal total (pixels) + * 6) Horizontal sync polarity (0=negative|1=positive) + * 7) Vertical active resolution (lines) + * 8) Frame 0: Vertical front porch (lines) + * 9) Frame 0: Vertical sync width (lines) + * 10) Frame 0: Vertical back porch (lines) + * 11) Frame 0: Vertical total (lines) + * 12) Frame 1: Vertical front porch (lines) + * 13) Frame 1: Vertical sync width (lines) + * 14) Frame 1: Vertical back porch (lines) + * 15) Frame 1: Vertical total (lines) + * 16) Vertical sync polarity (0=negative|1=positive) + */ +#ifdef __cplusplus +extern "C" +#endif +const XVidC_VideoTimingMode XVidC_VideoTimingModes[XVIDC_VM_NUM_SUPPORTED] = +{ + /* Interlaced modes. */ + { XVIDC_VM_720x480_60_I, "720x480@60Hz (I)", XVIDC_FR_60HZ, + {720, 19, 62, 57, 858, 0, + 240, 4, 3, 15, 262, 5, 3, 15, 263, 0} }, + { XVIDC_VM_720x576_50_I, "720x576@50Hz (I)", XVIDC_FR_50HZ, + {720, 12, 63, 69, 864, 0, + 288, 2, 3, 19, 312, 3, 3, 19, 313, 0} }, + { XVIDC_VM_1440x480_60_I, "1440x480@60Hz (I)", XVIDC_FR_60HZ, + {1440, 38, 124, 114, 1716, 0, + 240, 4, 3, 15, 262, 5, 3, 15, 263, 0} }, + { XVIDC_VM_1440x576_50_I, "1440x576@50Hz (I)", XVIDC_FR_50HZ, + {1440, 24, 126, 138, 1728, 0, + 288, 2, 3, 19, 312, 3, 3, 19, 313, 0} }, + { XVIDC_VM_1920x1080_48_I, "1920x1080@48Hz (I)", XVIDC_FR_48HZ, + {1920, 371, 88, 371, 2750, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_1920x1080_50_I, "1920x1080@50Hz (I)", XVIDC_FR_50HZ, + {1920, 528, 44, 148, 2640, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_1920x1080_60_I, "1920x1080@60Hz (I)", XVIDC_FR_60HZ, + {1920, 88, 44, 148, 2200, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_1920x1080_96_I, "1920x1080@96Hz (I)", XVIDC_FR_96HZ, + {1920, 371, 88, 371, 2750, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + { XVIDC_VM_1920x1080_100_I, "1920x1080@100Hz (I)", XVIDC_FR_100HZ, + {1920, 528, 44, 148, 2640, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + { XVIDC_VM_1920x1080_120_I, "1920x1080@120Hz (I)", XVIDC_FR_120HZ, + {1920, 88, 44, 148, 2200, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + { XVIDC_VM_2048x1080_48_I, "2048x1080@48Hz (I)", XVIDC_FR_48HZ, + {2048, 329, 44, 329, 2750, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_2048x1080_50_I, "2048x1080@50Hz (I)", XVIDC_FR_50HZ, + {2048, 274, 44, 274, 2640, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_2048x1080_60_I, "2048x1080@60Hz (I)", XVIDC_FR_60HZ, + {2048, 66, 20, 66, 2200, 1, + 540, 2, 5, 15, 562, 3, 5, 15, 563, 1} }, + { XVIDC_VM_2048x1080_96_I, "2048x1080@96Hz (I)", XVIDC_FR_96HZ, + {2048, 329, 44, 329, 2750, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + { XVIDC_VM_2048x1080_100_I, "2048x1080@100Hz (I)", XVIDC_FR_100HZ, + {2048, 274, 44, 274, 2640, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + { XVIDC_VM_2048x1080_120_I, "2048x1080@120Hz (I)", XVIDC_FR_120HZ, + {2048, 66, 20, 66, 2200, 1, + 1080, 4, 10, 30, 1124, 6, 10, 30, 1126, 1} }, + + + /* Progressive modes. */ + { XVIDC_VM_640x350_85_P, "640x350@85Hz", XVIDC_FR_85HZ, + {640, 32, 64, 96, 832, 1, + 350, 32, 3, 60, 445, 0, 0, 0, 0, 0} }, + { XVIDC_VM_640x480_60_P, "640x480@60Hz", XVIDC_FR_60HZ, + {640, 8+8, 96, 40+8, 800, 0, + 480, 2+8, 2, 25+8, 525, 0, 0, 0, 0, 0} }, + { XVIDC_VM_640x480_72_P, "640x480@72Hz", XVIDC_FR_72HZ, + {640, 8+16, 40, 120+8, 832, 0, + 480, 8+1, 3, 20+8, 520, 0, 0, 0, 0, 0} }, + { XVIDC_VM_640x480_75_P, "640x480@75Hz", XVIDC_FR_75HZ, + {640, 16, 64, 120, 840, 0, + 480, 1, 3, 16, 500, 0, 0, 0, 0, 0} }, + { XVIDC_VM_640x480_85_P, "640x480@85Hz", XVIDC_FR_85HZ, + {640, 56, 56, 80, 832, 0, + 480, 1, 3, 25, 509, 0, 0, 0, 0, 0} }, + { XVIDC_VM_720x400_85_P, "720x400@85Hz", XVIDC_FR_85HZ, + {720, 36, 72, 108, 936, 0, + 400, 1, 3, 42, 446, 0, 0, 0, 0, 1} }, + { XVIDC_VM_720x480_60_P, "720x480@60Hz", XVIDC_FR_60HZ, + {720, 16, 62, 60, 858, 0, + 480, 9, 6, 30, 525, 0, 0, 0, 0, 0} }, + { XVIDC_VM_720x576_50_P, "720x576@50Hz", XVIDC_FR_50HZ, + {720, 12, 64, 68, 864, 0, + 576, 5, 5, 39, 625, 0, 0, 0, 0, 0} }, + { XVIDC_VM_800x600_56_P, "800x600@56Hz", XVIDC_FR_56HZ, + {800, 24, 72, 128, 1024, 1, + 600, 1, 2, 22, 625, 0, 0, 0, 0, 1} }, + { XVIDC_VM_800x600_60_P, "800x600@60Hz", XVIDC_FR_60HZ, + {800, 40, 128, 88, 1056, 1, + 600, 1, 4, 23, 628, 0, 0, 0, 0, 1} }, + { XVIDC_VM_800x600_72_P, "800x600@72Hz", XVIDC_FR_72HZ, + {800, 56, 120, 64, 1040, 1, + 600, 37, 6, 23, 666, 0, 0, 0, 0, 1} }, + { XVIDC_VM_800x600_75_P, "800x600@75Hz", XVIDC_FR_75HZ, + {800, 16, 80, 160, 1056, 1, + 600, 1, 3, 21, 625, 0, 0, 0, 0, 1} }, + { XVIDC_VM_800x600_85_P, "800x600@85Hz", XVIDC_FR_85HZ, + {800, 32, 64, 152, 1048, 1, + 600, 1, 3, 27, 631, 0, 0, 0, 0, 1} }, + { XVIDC_VM_800x600_120_P_RB, "800x600@120Hz (RB)", XVIDC_FR_120HZ, + {800, 48, 32, 80, 960, 1, + 600, 3, 4, 29, 636, 0, 0, 0, 0, 0} }, + { XVIDC_VM_848x480_60_P, "848x480@60Hz", XVIDC_FR_60HZ, + {848, 16, 112, 112, 1088, 1, + 480, 6, 8, 23, 517, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1024x768_60_P, "1024x768@60Hz", XVIDC_FR_60HZ, + {1024, 24, 136, 160, 1344, 0, + 768, 3, 6, 29, 806, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1024x768_70_P, "1024x768@70Hz", XVIDC_FR_70HZ, + {1024, 24, 136, 144, 1328, 0, + 768, 3, 6, 29, 806, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1024x768_75_P, "1024x768@75Hz", XVIDC_FR_75HZ, + {1024, 16, 96, 176, 1312, 1, + 768, 1, 3, 28, 800, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1024x768_85_P, "1024x768@85Hz", XVIDC_FR_85HZ, + {1024, 48, 96, 208, 1376, 1, + 768, 1, 3, 36, 808, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1024x768_120_P_RB, "1024x768@120Hz (RB)", XVIDC_FR_120HZ, + {1024, 48, 32, 80, 1184, 1, + 768, 3, 4, 38, 813, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1152x864_75_P, "1152x864@75Hz", XVIDC_FR_75HZ, + {1152, 64, 128, 256, 1600, 1, + 864, 1, 3, 32, 900, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x720_24_P, "1280x720@24Hz", XVIDC_FR_24HZ, + {1280, 970, 905, 970, 4125, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x720_25_P, "1280x720@25Hz", XVIDC_FR_25HZ, + {1280, 970, 740, 970, 3960, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x720_30_P, "1280x720@30Hz", XVIDC_FR_30HZ, + {1280, 970, 80, 970, 3300, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x720_50_P, "1280x720@50Hz", XVIDC_FR_50HZ, + {1280, 440, 40, 220, 1980, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x720_60_P, "1280x720@60Hz", XVIDC_FR_60HZ, + {1280, 110, 40, 220, 1650, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x768_60_P, "1280x768@60Hz", XVIDC_FR_60HZ, + {1280, 64, 128, 192, 1664, 0, + 768, 3, 7, 20, 798, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x768_60_P_RB, "1280x768@60Hz (RB)", XVIDC_FR_60HZ, + {1280, 48, 32, 80, 1440, 1, + 768, 3, 7, 12, 790, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1280x768_75_P, "1280x768@75Hz", XVIDC_FR_75HZ, + {1280, 80, 128, 208, 1696, 0, + 768, 3, 7, 27, 805, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x768_85_P, "1280x768@85Hz", XVIDC_FR_85HZ, + {1280, 80, 136, 216, 1712, 0, + 768, 3, 7, 31, 809, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x768_120_P_RB, "1280x768@120Hz (RB)", XVIDC_FR_120HZ, + {1280, 48, 32, 80, 1440, 1, + 768, 3, 7, 35, 813, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1280x800_60_P, "1280x800@60Hz", XVIDC_FR_60HZ, + {1280, 72, 128, 200, 1680, 0, + 800, 3, 6, 22, 831, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x800_60_P_RB, "1280x800@60Hz (RB)", XVIDC_FR_60HZ, + {1280, 48, 32, 80, 1440, 1, + 800, 3, 6, 14, 823, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1280x800_75_P, "1280x800@75Hz", XVIDC_FR_75HZ, + {1280, 80, 128, 208, 1696, 0, + 800, 3, 6, 29, 838, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x800_85_P, "1280x800@85Hz", XVIDC_FR_85HZ, + {1280, 80, 136, 216, 1712, 0, + 800, 3, 6, 34, 843, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x800_120_P_RB, "1280x800@120Hz (RB)", XVIDC_FR_120HZ, + {1280, 48, 32, 80, 1440, 1, + 800, 3, 6, 38, 847, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1280x960_60_P, "1280x960@60Hz", XVIDC_FR_60HZ, + {1280, 96, 112, 312, 1800, 1, + 960, 1, 3, 36, 1000, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x960_85_P, "1280x960@85Hz", XVIDC_FR_85HZ, + {1280, 64, 160, 224, 1728, 1, + 960, 1, 3, 47, 1011, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x960_120_P_RB, "1280x960@120Hz (RB)", XVIDC_FR_120HZ, + {1280, 48, 32, 80, 1440, 1, + 960, 3, 4, 50, 1017, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1280x1024_60_P, "1280x1024@60Hz", XVIDC_FR_60HZ, + {1280, 48, 112, 248, 1688, 1, + 1024, 1, 3, 38, 1066, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x1024_75_P, "1280x1024@75Hz", XVIDC_FR_75HZ, + {1280, 16, 144, 248, 1688, 1, + 1024, 1, 3, 38, 1066, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x1024_85_P, "1280x1024@85Hz", XVIDC_FR_85HZ, + {1280, 64, 160, 224, 1728, 1, + 1024, 1, 3, 44, 1072, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1280x1024_120_P_RB, "1280x1024@120Hz (RB)", XVIDC_FR_120HZ, + {1280, 48, 32, 80, 1440, 1, + 1024, 3, 7, 50, 1084, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1360x768_60_P, "1360x768@60Hz", XVIDC_FR_60HZ, + {1360, 64, 112, 256, 1792, 1, + 768, 3, 6, 18, 795, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1360x768_120_P_RB, "1360x768@120Hz (RB)", XVIDC_FR_120HZ, + {1360, 48, 32, 80, 1520, 1, + 768, 3, 5, 37, 813, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1366x768_60_P, "1366x768@60Hz", XVIDC_FR_60HZ, + {1366, 70, 143, 213, 1792, 1, + 768, 3, 3, 24, 798, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1366x768_60_P_RB, "1366x768@60Hz (RB)", XVIDC_FR_60HZ, + {1366, 14, 56, 64, 1500, 1, + 768, 1, 3, 28, 800, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1400x1050_60_P, "1400x1050@60Hz", XVIDC_FR_60HZ, + {1400, 88, 144, 232, 1864, 0, + 1050, 3, 4, 32, 1089, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1400x1050_60_P_RB, "1400x1050@60Hz (RB)", XVIDC_FR_60HZ, + {1400, 48, 32, 80, 1560, 1, + 1050, 3, 4, 23, 1080, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1400x1050_75_P, "1400x1050@75Hz", XVIDC_FR_75HZ, + {1400, 104, 144, 248, 1896, 0, + 1050, 3, 4, 42, 1099, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1400x1050_85_P, "1400x1050@85Hz", XVIDC_FR_85HZ, + {1400, 104, 152, 256, 1912, 0, + 1050, 3, 4, 48, 1105, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1400x1050_120_P_RB, "1400x1050@120Hz (RB)", XVIDC_FR_120HZ, + {1400, 48, 32, 80, 1560, 1, + 1050, 3, 4, 55, 1112, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1440x240_60_P, "1440x240@60Hz", XVIDC_FR_60HZ, + {1440, 38, 124, 114, 1716, 0, + 240, 14, 3, 4, 262, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1440x900_60_P, "1440x900@60Hz", XVIDC_FR_60HZ, + {1440, 80, 152, 232, 1904, 0, + 900, 3, 6, 25, 934, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1440x900_60_P_RB, "1440x900@60Hz (RB)", XVIDC_FR_60HZ, + {1440, 48, 32, 80, 1600, 1, + 900, 3, 6, 17, 926, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1440x900_75_P, "1440x900@75Hz", XVIDC_FR_75HZ, + {1440, 96, 152, 248, 1936, 0, + 900, 3, 6, 33, 942, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1440x900_85_P, "1440x900@85Hz", XVIDC_FR_85HZ, + {1440, 104, 152, 256, 1952, 0, + 900, 3, 6, 39, 948, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1440x900_120_P_RB, "1440x900@120Hz (RB)", XVIDC_FR_120HZ, + {1440, 48, 32, 80, 1600, 1, + 900, 3, 6, 44, 953, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1600x1200_60_P, "1600x1200@60Hz", XVIDC_FR_60HZ, + {1600, 64, 192, 304, 2160, 1, + 1200, 1, 3, 46, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1600x1200_65_P, "1600x1200@65Hz", XVIDC_FR_65HZ, + {1600, 64, 192, 304, 2160, 1, + 1200, 1, 3, 46, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1600x1200_70_P, "1600x1200@70Hz", XVIDC_FR_70HZ, + {1600, 64, 192, 304, 2160, 1, + 1200, 1, 3, 46, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1600x1200_75_P, "1600x1200@75Hz", XVIDC_FR_75HZ, + {1600, 64, 192, 304, 2160, 1, + 1200, 1, 3, 46, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1600x1200_85_P, "1600x1200@85Hz", XVIDC_FR_85HZ, + {1600, 64, 192, 304, 2160, 1, + 1200, 1, 3, 46, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1600x1200_120_P_RB, "1600x1200@120Hz (RB)", XVIDC_FR_120HZ, + {1600, 48, 32, 80, 1760, 1, + 1200, 3, 4, 64, 1271, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1680x720_50_P, "1680x720@50Hz", XVIDC_FR_50HZ, + {1680, 260, 40, 220, 2200, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x720_60_P, "1680x720@60Hz", XVIDC_FR_60HZ, + {1680, 260, 40, 220, 2200, 1, + 720, 5, 5, 20, 750, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x720_100_P, "1680x720@100Hz", XVIDC_FR_100HZ, + {1680, 60, 40, 220, 2000, 1, + 720, 5, 5, 95, 825, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x720_120_P, "1680x720@120Hz", XVIDC_FR_120HZ, + {1680, 60, 40, 220, 2000, 1, + 720, 5, 5, 95, 825, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x1050_50_P, "1680x1050@50Hz", XVIDC_FR_50HZ, + {1680, 88, 176, 264, 2208, 0, + 1050, 3, 6, 24, 1083, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x1050_60_P, "1680x1050@60Hz", XVIDC_FR_60HZ, + {1680, 104, 176, 280, 2240, 0, + 1050, 3, 6, 30, 1089, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x1050_60_P_RB, "1680x1050@60Hz (RB)", XVIDC_FR_60HZ, + {1680, 48, 32, 80, 1840, 1, + 1050, 3, 6, 21, 1080, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1680x1050_75_P, "1680x1050@75Hz", XVIDC_FR_75HZ, + {1680, 120, 176, 296, 2272, 0, + 1050, 3, 6, 40, 1099, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x1050_85_P, "1680x1050@85Hz", XVIDC_FR_85HZ, + {1680, 128, 176, 304, 2288, 0, + 1050, 3, 6, 46, 1105, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1680x1050_120_P_RB, "1680x1050@120Hz (RB)", XVIDC_FR_120HZ, + {1680, 48, 32, 80, 1840, 1, + 1050, 3, 6, 53, 1112, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1792x1344_60_P, "1792x1344@60Hz", XVIDC_FR_60HZ, + {1792, 128, 200, 328, 2448, 0, + 1344, 1, 3, 46, 1394, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1792x1344_75_P, "1792x1344@75Hz", XVIDC_FR_75HZ, + {1792, 96, 216, 352, 2456, 0, + 1344, 1, 3, 69, 1417, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1792x1344_120_P_RB, "1792x1344@120Hz (RB)", XVIDC_FR_120HZ, + {1792, 48, 32, 80, 1952, 1, + 1344, 3, 4, 72, 1423, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1856x1392_60_P, "1856x1392@60Hz", XVIDC_FR_60HZ, + {1856, 96, 224, 352, 2528, 0, + 1392, 1, 3, 43, 1439, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1856x1392_75_P, "1856x1392@75Hz", XVIDC_FR_75HZ, + {1856, 128, 224, 352, 2560, 0, + 1392, 1, 3, 104, 1500, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1856x1392_120_P_RB, "1856x1392@120Hz (RB)", XVIDC_FR_120HZ, + {1856, 48, 32, 80, 2016, 1, + 1392, 3, 4, 75, 1474, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1920x1080_24_P, "1920x1080@24Hz", XVIDC_FR_24HZ, + {1920, 638, 44, 148, 2750, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_25_P, "1920x1080@25Hz", XVIDC_FR_25HZ, + {1920, 528, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_30_P, "1920x1080@30Hz", XVIDC_FR_30HZ, + {1920, 88, 44, 148, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_48_P, "1920x1080@48Hz", XVIDC_FR_48HZ, + {1920, 638, 44, 148, 2750, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_50_P, "1920x1080@50Hz", XVIDC_FR_50HZ, + {1920, 528, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_60_P, "1920x1080@60Hz", XVIDC_FR_60HZ, + {1920, 88, 44, 148, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_100_P, "1920x1080@100Hz", XVIDC_FR_100HZ, + {1920, 528, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1080_120_P, "1920x1080@120Hz", XVIDC_FR_120HZ, + {1920, 88, 44, 148, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1200_60_P, "1920x1200@60Hz", XVIDC_FR_60HZ, + {1920, 136, 200, 336, 2592, 0, + 1200, 3, 6, 36, 1245, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1200_60_P_RB, "1920x1200@60Hz (RB)", XVIDC_FR_60HZ, + {1920, 48, 32, 80, 2080, 1, + 1200, 3, 6, 26, 1235, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1920x1200_75_P, "1920x1200@75Hz", XVIDC_FR_75HZ, + {1920, 136, 208, 344, 2608, 0, + 1200, 3, 6, 46, 1255, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1200_85_P, "1920x1200@85Hz", XVIDC_FR_85HZ, + {1920, 144, 208, 352, 2624, 0, + 1200, 3, 6, 53, 1262, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1200_120_P_RB, "1920x1200@120Hz (RB)", XVIDC_FR_120HZ, + {1920, 48, 32, 80, 2080, 1, + 1200, 3, 6, 62, 1271, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1920x1440_60_P, "1920x1440@60Hz", XVIDC_FR_60HZ, + {1920, 128, 208, 344, 2600, 0, + 1440, 1, 3, 56, 1500, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1440_75_P, "1920x1440@75Hz", XVIDC_FR_75HZ, + {1920, 144, 224, 352, 2640, 0, + 1440, 1, 3, 56, 1500, 0, 0, 0, 0, 1} }, + { XVIDC_VM_1920x1440_120_P_RB, "1920x1440@120Hz (RB)", XVIDC_FR_120HZ, + {1920, 48, 32, 80, 2080, 1, + 1440, 3, 4, 78, 1525, 0, 0, 0, 0, 0} }, + { XVIDC_VM_1920x2160_60_P, "1920x2160@60Hz", XVIDC_FR_60HZ, + {1920, 88, 44, 148, 2200, 1, + 2160, 20, 10, 60, 2250, 0, 0, 0, 0, 0} }, + { XVIDC_VM_2048x1080_24_P, "2048x1080@24Hz", XVIDC_FR_24HZ, + {2048, 510, 44, 148, 2750, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_25_P, "2048x1080@25Hz", XVIDC_FR_25HZ, + {2048, 400, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_30_P, "2048x1080@30Hz", XVIDC_FR_30HZ, + {2048, 66, 20, 66, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_48_P, "2048x1080@48Hz", XVIDC_FR_48HZ, + {2048, 510, 44, 148, 2750, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_50_P, "2048x1080@50Hz", XVIDC_FR_50HZ, + {2048, 400, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_60_P, "2048x1080@60Hz", XVIDC_FR_60HZ, + {2048, 88, 44, 20, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_100_P, "2048x1080@100Hz", XVIDC_FR_100HZ, + {2048, 528, 44, 148, 2640, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2048x1080_120_P, "2048x1080@120Hz", XVIDC_FR_120HZ, + {2048, 88, 44, 148, 2200, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1080_50_P, "2560x1080@50Hz", XVIDC_FR_50HZ, + {2560, 548, 44, 148, 3300, 1, + 1080, 4, 5, 36, 1125, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1080_60_P, "2560x1080@60Hz", XVIDC_FR_60HZ, + {2560, 248, 44, 148, 3000, 1, + 1080, 4, 5, 11, 1100, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1080_100_P, "2560x1080@100Hz", XVIDC_FR_100HZ, + {2560, 218, 44, 148, 2970, 1, + 1080, 4, 5, 161, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1080_120_P, "2560x1080@120Hz", XVIDC_FR_120HZ, + {2560, 548, 44, 148, 3300, 1, + 1080, 4, 5, 161, 1250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1600_60_P, "2560x1600@60Hz", XVIDC_FR_60HZ, + {2560, 192, 280, 472, 3504, 0, + 1600, 3, 6, 49, 1658, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1600_60_P_RB, "2560x1600@60Hz (RB)", XVIDC_FR_60HZ, + {2560, 48, 32, 80, 2720, 1, + 1600, 3, 6, 37, 1646, 0, 0, 0, 0, 0} }, + { XVIDC_VM_2560x1600_75_P, "2560x1600@75Hz", XVIDC_FR_75HZ, + {2560, 208, 280, 488, 3536, 0, + 1600, 3, 6, 63, 1672, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1600_85_P, "2560x1600@85Hz", XVIDC_FR_85HZ, + {2560, 208, 280, 488, 3536, 0, + 1600, 3, 6, 73, 1682, 0, 0, 0, 0, 1} }, + { XVIDC_VM_2560x1600_120_P_RB, "2560x1600@120Hz (RB)", XVIDC_FR_120HZ, + {2560, 48, 32, 80, 2720, 1, + 1600, 3, 6, 85, 1694, 0, 0, 0, 0, 0} }, + { XVIDC_VM_3840x2160_24_P, "3840x2160@24Hz", XVIDC_FR_24HZ, + {3840, 1276, 88, 296, 5500, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_25_P, "3840x2160@25Hz", XVIDC_FR_25HZ, + {3840, 1056, 88, 296, 5280, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_30_P, "3840x2160@30Hz", XVIDC_FR_30HZ, + {3840, 176, 88, 296, 4400, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_48_P, "3840x2160@48Hz", XVIDC_FR_48HZ, + {3840, 1276, 88, 296, 5500, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_50_P, "3840x2160@50Hz", XVIDC_FR_50HZ, + {3840, 1056, 88, 296, 5280, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_60_P, "3840x2160@60Hz", XVIDC_FR_60HZ, + {3840, 176, 88, 296, 4400, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_3840x2160_60_P_RB, "3840x2160@60Hz (RB)", XVIDC_FR_60HZ, + {3840, 48, 32, 80, 4000, 1, + 2160, 3, 5, 54, 2222, 0, 0, 0, 0, 0} }, + { XVIDC_VM_4096x2160_24_P, "4096x2160@24Hz", XVIDC_FR_24HZ, + {4096, 1020, 88, 296, 5500, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_25_P, "4096x2160@25Hz", XVIDC_FR_25HZ, + {4096, 968, 88, 128, 5280, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_30_P, "4096x2160@30Hz", XVIDC_FR_30HZ, + {4096, 88, 88, 128, 4400, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_48_P, "4096x2160@48Hz", XVIDC_FR_48HZ, + {4096, 1020, 88, 296, 5500, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_50_P, "4096x2160@50Hz", XVIDC_FR_50HZ, + {4096, 968, 88, 128, 5280, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_60_P, "4096x2160@60Hz", XVIDC_FR_60HZ, + {4096, 88, 88, 128, 4400, 1, + 2160, 8, 10, 72, 2250, 0, 0, 0, 0, 1} }, + { XVIDC_VM_4096x2160_60_P_RB, "4096x2160@60Hz (RB)", XVIDC_FR_60HZ, + {4096, 8, 32, 40, 4176, 1, + 2160, 48, 8, 6, 2222, 0, 0, 0, 0, 0} }, +}; + +/** @} */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/wdtps_v3_0/src/xwdtps.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/wdtps_v3_0/src/xwdtps.h index 893d516e7..58e559635 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/wdtps_v3_0/src/xwdtps.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/wdtps_v3_0/src/xwdtps.h @@ -88,6 +88,8 @@ * for CR 658287 * 3.0 pkp 12/09/14 Added support for Zynq Ultrascale Mp.Also * modified code for MISRA-C:2012 compliance. +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. * * ******************************************************************************/ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/wdtps_v3_0/src/xwdtps_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/wdtps_v3_0/src/xwdtps_g.c index 6ea6b192b..94d8c4733 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/wdtps_v3_0/src/xwdtps_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/wdtps_v3_0/src/xwdtps_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,8 +44,12 @@ * The configuration table for devices */ -XWdtPs_Config XWdtPs_ConfigTable[] = +XWdtPs_Config XWdtPs_ConfigTable[XPAR_XWDTPS_NUM_INSTANCES] = { + { + XPAR_PSU_CSU_WDT_DEVICE_ID, + XPAR_PSU_CSU_WDT_BASEADDR + }, { XPAR_PSU_WDT_0_DEVICE_ID, XPAR_PSU_WDT_0_BASEADDR diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/Makefile b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/Makefile similarity index 100% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/Makefile rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/Makefile diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma.c similarity index 98% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma.c index c203f585d..8cad941f8 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma.c @@ -33,7 +33,7 @@ /** * * @file xzdma.c -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * * This file contains the implementation of the interface functions for ZDMA @@ -52,6 +52,7 @@ * scatter gather mode data transfer and corrected * XZDma_SetChDataConfig API to set over fetch and * src issue parameters correctly. +* 1.3 mus 08/14/17 Add CCI support for A53 in EL1 NS * * ******************************************************************************/ @@ -117,6 +118,7 @@ s32 XZDma_CfgInitialize(XZDma *InstancePtr, XZDma_Config *CfgPtr, InstancePtr->Config.BaseAddress = CfgPtr->BaseAddress; InstancePtr->Config.DeviceId = CfgPtr->DeviceId; InstancePtr->Config.DmaType = CfgPtr->DmaType; + InstancePtr->Config.IsCacheCoherent = CfgPtr->IsCacheCoherent; InstancePtr->Config.BaseAddress = EffectiveAddr; @@ -279,8 +281,9 @@ u32 XZDma_CreateBDList(XZDma *InstancePtr, XZDma_DscrType TypeOfDscr, (NoOfBytes >> 1) / Size; InstancePtr->Descriptor.SrcDscrPtr = (void *)Dscr_MemPtr; InstancePtr->Descriptor.DstDscrPtr = - (void *)Dscr_MemPtr + (Size * InstancePtr->Descriptor.DscrCount); + (void *)(Dscr_MemPtr + (Size * InstancePtr->Descriptor.DscrCount)); + if (!InstancePtr->Config.IsCacheCoherent) Xil_DCacheInvalidateRange((INTPTR)Dscr_MemPtr, NoOfBytes); return (InstancePtr->Descriptor.DscrCount); @@ -701,6 +704,17 @@ void XZDma_Reset(XZDma *InstancePtr) (void)XZDma_GetSrcIntrCnt(InstancePtr); (void)XZDma_GetDstIntrCnt(InstancePtr); + if (InstancePtr->Config.IsCacheCoherent) { + XZDma_WriteReg((InstancePtr->Config.BaseAddress), + XZDMA_CH_DSCR_ATTR_OFFSET, + InstancePtr->Config.IsCacheCoherent << XZDMA_DSCR_ATTR_AXCOHRNT_SHIFT); + XZDma_WriteReg((InstancePtr->Config.BaseAddress), + XZDMA_CH_SRC_DSCR_WORD3_OFFSET, + InstancePtr->Config.IsCacheCoherent & XZDMA_WORD3_COHRNT_MASK); + XZDma_WriteReg((InstancePtr->Config.BaseAddress), + XZDMA_CH_DST_DSCR_WORD3_OFFSET, + InstancePtr->Config.IsCacheCoherent & XZDMA_WORD3_COHRNT_MASK); + } InstancePtr->ChannelState = XZDMA_IDLE; } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma.h similarity index 93% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma.h index 1f268d43c..9ff690795 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (C) 2014 Xilinx, Inc. All rights reserved. +* Copyright (C) 2014-2017 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,12 +33,12 @@ /** * * @file xzdma.h -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * @details * * ZDMA is a general purpose DMA designed to support memory to memory and memory -* to IO buffer transfers. ALTO has two instance of general purpose ZDMA. +* to IO buffer transfers. ZynqMP has two instance of general purpose ZDMA. * One is located in FPD (full power domain) which is GDMA and other is located * in LPD (low power domain) which is ADMA. * @@ -115,7 +115,20 @@ * scatter gather mode data transfer and corrected * XZDma_SetChDataConfig API to set over fetch and * src issue parameters correctly. - +* ms 03/17/17 Added readme.txt file in examples folder for doxygen +* generation. +* ms 04/05/17 Modified comment lines notation in functions of zdma +* examples to avoid unnecessary description to get +* displayed while generating doxygen and also changed +* filename tag to include the readonly mode example file +* in doxygen. +* 1.3 mus 08/14/17 Update cache coherency information of the interface in +* its config structure. +* 1.4 adk 11/02/17 Updated examples to fix compilation errors for IAR +* compiler. +* 1.5 adk 11/22/17 Added peripheral test app support for ZDMA driver. +* 12/11/17 Fixed peripheral test app generation issues when dma +* buffers are configured on OCM memory(CR#990806). * * ******************************************************************************/ @@ -132,6 +145,7 @@ extern "C" { #include "xil_assert.h" #include "xstatus.h" #include "xil_cache.h" +#include "bspconfig.h" /************************** Constant Definitions *****************************/ @@ -202,24 +216,38 @@ typedef struct { /** * This typedef contains scatter gather descriptor fields for ZDMA core. */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif typedef struct { u64 Address; /**< Address */ u32 Size; /**< Word2, Size of data */ u32 Cntl; /**< Word3 Control data */ u64 NextDscr; /**< Address of next descriptor */ u64 Reserved; /**< Reserved address */ +#if defined (__ICCARM__) +} XZDma_LlDscr ; +#pragma pack(pop) +#else } __attribute__ ((packed)) XZDma_LlDscr; - +#endif /******************************************************************************/ /** * This typedef contains Linear descriptor fields for ZDMA core. */ +#if defined (__ICCARM__) +#pragma pack(push, 1) +#endif typedef struct { u64 Address; /**< Address */ u32 Size; /**< Word3, Size of data */ u32 Cntl; /**< Word4, control data */ +#if defined (__ICCARM__) +}XZDma_LiDscr; +#pragma pack(pop) +#else } __attribute__ ((packed)) XZDma_LiDscr; - +#endif /******************************************************************************/ /** * @@ -282,6 +310,8 @@ typedef struct { u16 DeviceId; /**< Device Id of ZDMA */ u32 BaseAddress; /**< BaseAddress of ZDMA */ u8 DmaType; /**< Type of DMA */ + u8 IsCacheCoherent; /**< Describes whether Cache Coherent or not; + * Applicable only to A53 in EL1 NS mode */ } XZDma_Config; /******************************************************************************/ @@ -300,6 +330,8 @@ typedef struct { XZDma_Mode Mode; /**< Mode of ZDMA core to be operated */ u8 IsSgDma; /**< Is ZDMA core is in scatter gather or * not will be specified */ + u32 Slcr_adma; /**< Used to hold SLCR ADMA register + * contents */ XZDma_Descriptor Descriptor; /**< It contains information about * descriptors */ diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_g.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_g.c similarity index 68% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_g.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_g.c index 194aac12e..984bf9cbb 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_g.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_g.c @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights @@ -44,87 +44,103 @@ * The configuration table for devices */ -XZDma_Config XZDma_ConfigTable[] = +XZDma_Config XZDma_ConfigTable[XPAR_XZDMA_NUM_INSTANCES] = { { XPAR_PSU_ADMA_0_DEVICE_ID, XPAR_PSU_ADMA_0_BASEADDR, - XPAR_PSU_ADMA_0_DMA_MODE + XPAR_PSU_ADMA_0_DMA_MODE, + XPAR_PSU_ADMA_0_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_1_DEVICE_ID, XPAR_PSU_ADMA_1_BASEADDR, - XPAR_PSU_ADMA_1_DMA_MODE + XPAR_PSU_ADMA_1_DMA_MODE, + XPAR_PSU_ADMA_1_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_2_DEVICE_ID, XPAR_PSU_ADMA_2_BASEADDR, - XPAR_PSU_ADMA_2_DMA_MODE + XPAR_PSU_ADMA_2_DMA_MODE, + XPAR_PSU_ADMA_2_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_3_DEVICE_ID, XPAR_PSU_ADMA_3_BASEADDR, - XPAR_PSU_ADMA_3_DMA_MODE + XPAR_PSU_ADMA_3_DMA_MODE, + XPAR_PSU_ADMA_3_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_4_DEVICE_ID, XPAR_PSU_ADMA_4_BASEADDR, - XPAR_PSU_ADMA_4_DMA_MODE + XPAR_PSU_ADMA_4_DMA_MODE, + XPAR_PSU_ADMA_4_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_5_DEVICE_ID, XPAR_PSU_ADMA_5_BASEADDR, - XPAR_PSU_ADMA_5_DMA_MODE + XPAR_PSU_ADMA_5_DMA_MODE, + XPAR_PSU_ADMA_5_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_6_DEVICE_ID, XPAR_PSU_ADMA_6_BASEADDR, - XPAR_PSU_ADMA_6_DMA_MODE + XPAR_PSU_ADMA_6_DMA_MODE, + XPAR_PSU_ADMA_6_IS_CACHE_COHERENT }, { XPAR_PSU_ADMA_7_DEVICE_ID, XPAR_PSU_ADMA_7_BASEADDR, - XPAR_PSU_ADMA_7_DMA_MODE + XPAR_PSU_ADMA_7_DMA_MODE, + XPAR_PSU_ADMA_7_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_0_DEVICE_ID, XPAR_PSU_GDMA_0_BASEADDR, - XPAR_PSU_GDMA_0_DMA_MODE + XPAR_PSU_GDMA_0_DMA_MODE, + XPAR_PSU_GDMA_0_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_1_DEVICE_ID, XPAR_PSU_GDMA_1_BASEADDR, - XPAR_PSU_GDMA_1_DMA_MODE + XPAR_PSU_GDMA_1_DMA_MODE, + XPAR_PSU_GDMA_1_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_2_DEVICE_ID, XPAR_PSU_GDMA_2_BASEADDR, - XPAR_PSU_GDMA_2_DMA_MODE + XPAR_PSU_GDMA_2_DMA_MODE, + XPAR_PSU_GDMA_2_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_3_DEVICE_ID, XPAR_PSU_GDMA_3_BASEADDR, - XPAR_PSU_GDMA_3_DMA_MODE + XPAR_PSU_GDMA_3_DMA_MODE, + XPAR_PSU_GDMA_3_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_4_DEVICE_ID, XPAR_PSU_GDMA_4_BASEADDR, - XPAR_PSU_GDMA_4_DMA_MODE + XPAR_PSU_GDMA_4_DMA_MODE, + XPAR_PSU_GDMA_4_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_5_DEVICE_ID, XPAR_PSU_GDMA_5_BASEADDR, - XPAR_PSU_GDMA_5_DMA_MODE + XPAR_PSU_GDMA_5_DMA_MODE, + XPAR_PSU_GDMA_5_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_6_DEVICE_ID, XPAR_PSU_GDMA_6_BASEADDR, - XPAR_PSU_GDMA_6_DMA_MODE + XPAR_PSU_GDMA_6_DMA_MODE, + XPAR_PSU_GDMA_6_IS_CACHE_COHERENT }, { XPAR_PSU_GDMA_7_DEVICE_ID, XPAR_PSU_GDMA_7_BASEADDR, - XPAR_PSU_GDMA_7_DMA_MODE + XPAR_PSU_GDMA_7_DMA_MODE, + XPAR_PSU_GDMA_7_IS_CACHE_COHERENT } }; diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_hw.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_hw.h similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_hw.h rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_hw.h index 85f630228..046921cf5 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_hw.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_hw.h @@ -33,7 +33,7 @@ /** * * @file xzdma_hw.h -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * * This header file contains identifiers and register-level driver functions (or @@ -107,6 +107,7 @@ extern "C" { #define XZDMA_CH_CTRL2_OFFSET (0x200U) /*@}*/ +#define XZDMA_SLCR_SECURE_OFFSET (0xff4b0024) /** @name Interrupt Enable/Disable/Mask/Status registers bit masks and shifts * @{ */ @@ -240,7 +241,7 @@ extern "C" { * mask */ #define XZDMA_DSCR_ATTR_AXCOHRNT_SHIFT (8U) /**< Descriptor coherent shift */ -#define XZDMA_DSCR_ATTR_AXCACHE_SHIFT (7U) /**< Descriptor cache shift */ +#define XZDMA_DSCR_ATTR_AXCACHE_SHIFT (4U) /**< Descriptor cache shift */ #define XZDMA_DSCR_ATTR_RESET_VALUE (0x00000000U) /**< Dscr Attributes * reset value */ diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_intr.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_intr.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_intr.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_intr.c index e828d16a4..0e6af86e0 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_intr.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_intr.c @@ -33,7 +33,7 @@ /** * * @file xzdma_intr.c -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * * This file contains interrupt related functions of Xilinx ZDMA core. diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_selftest.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_selftest.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_selftest.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_selftest.c index 893a5402f..9e8b9dcad 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/zdma_v1_1/src/xzdma_selftest.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_selftest.c @@ -33,7 +33,7 @@ /** * * @file xzdma_selftest.c -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * * This file contains the self-test function for the ZDMA core. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_sinit.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_sinit.c similarity index 99% rename from FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_sinit.c rename to FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_sinit.c index ae2c44d1c..b033d46b5 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_1/src/xzdma_sinit.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/psu_cortexr5_0/libsrc/zdma_v1_5/src/xzdma_sinit.c @@ -33,7 +33,7 @@ /** * * @file xzdma_sinit.c -* @addtogroup zdma_v1_0 +* @addtogroup zdma_v1_5 * @{ * * This file contains static initialization methods for Xilinx ZDMA core. diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/system.mss b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/system.mss index 1c8fbdb9b..416b7a80d 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/system.mss +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/RTOSDemo_R5_bsp/system.mss @@ -4,7 +4,7 @@ BEGIN OS PARAMETER OS_NAME = standalone - PARAMETER OS_VER = 6.1 + PARAMETER OS_VER = 6.6 PARAMETER PROC_INSTANCE = psu_cortexr5_0 PARAMETER stdin = psu_uart_0 PARAMETER stdout = psu_uart_0 @@ -13,62 +13,62 @@ END BEGIN PROCESSOR PARAMETER DRIVER_NAME = cpu_cortexr5 - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.4 PARAMETER HW_INSTANCE = psu_cortexr5_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = scugic - PARAMETER DRIVER_VER = 3.5 + PARAMETER DRIVER_VER = 3.9 PARAMETER HW_INSTANCE = psu_acpu_gic END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_1 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_2 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_3 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_4 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_5 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_6 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_adma_7 END @@ -116,31 +116,31 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = sysmonpsu - PARAMETER DRIVER_VER = 2.0 + PARAMETER DRIVER_VER = 2.3 PARAMETER HW_INSTANCE = psu_ams END BEGIN DRIVER PARAMETER DRIVER_NAME = axipmon - PARAMETER DRIVER_VER = 6.5 + PARAMETER DRIVER_VER = 6.6 PARAMETER HW_INSTANCE = psu_apm_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = axipmon - PARAMETER DRIVER_VER = 6.5 + PARAMETER DRIVER_VER = 6.6 PARAMETER HW_INSTANCE = psu_apm_1 END BEGIN DRIVER PARAMETER DRIVER_NAME = axipmon - PARAMETER DRIVER_VER = 6.5 + PARAMETER DRIVER_VER = 6.6 PARAMETER HW_INSTANCE = psu_apm_2 END BEGIN DRIVER PARAMETER DRIVER_NAME = axipmon - PARAMETER DRIVER_VER = 6.5 + PARAMETER DRIVER_VER = 6.6 PARAMETER HW_INSTANCE = psu_apm_5 END @@ -170,13 +170,13 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = coresightps_dcc - PARAMETER DRIVER_VER = 1.3 + PARAMETER DRIVER_VER = 1.4 PARAMETER HW_INSTANCE = psu_coresight_0 END BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 2.0 + PARAMETER DRIVER_NAME = resetps + PARAMETER DRIVER_VER = 1.0 PARAMETER HW_INSTANCE = psu_crf_apb END @@ -186,12 +186,24 @@ BEGIN DRIVER PARAMETER HW_INSTANCE = psu_crl_apb END +BEGIN DRIVER + PARAMETER DRIVER_NAME = wdtps + PARAMETER DRIVER_VER = 3.0 + PARAMETER HW_INSTANCE = psu_csu_wdt +END + BEGIN DRIVER PARAMETER DRIVER_NAME = csudma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.2 PARAMETER HW_INSTANCE = psu_csudma END +BEGIN DRIVER + PARAMETER DRIVER_NAME = generic + PARAMETER DRIVER_VER = 2.0 + PARAMETER HW_INSTANCE = psu_ctrl_ipi +END + BEGIN DRIVER PARAMETER DRIVER_NAME = generic PARAMETER DRIVER_VER = 2.0 @@ -247,14 +259,14 @@ BEGIN DRIVER END BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 2.0 + PARAMETER DRIVER_NAME = avbuf + PARAMETER DRIVER_VER = 2.1 PARAMETER HW_INSTANCE = psu_dp END BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 2.0 + PARAMETER DRIVER_NAME = dpdma + PARAMETER DRIVER_VER = 1.0 PARAMETER HW_INSTANCE = psu_dpdma END @@ -266,7 +278,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = emacps - PARAMETER DRIVER_VER = 3.3 + PARAMETER DRIVER_VER = 3.7 PARAMETER HW_INSTANCE = psu_ethernet_3 END @@ -302,55 +314,55 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_1 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_2 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_3 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_4 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_5 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_6 END BEGIN DRIVER PARAMETER DRIVER_NAME = zdma - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_gdma_7 END BEGIN DRIVER PARAMETER DRIVER_NAME = gpiops - PARAMETER DRIVER_VER = 3.1 + PARAMETER DRIVER_VER = 3.3 PARAMETER HW_INSTANCE = psu_gpio_0 END @@ -362,13 +374,13 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = iicps - PARAMETER DRIVER_VER = 3.4 + PARAMETER DRIVER_VER = 3.6 PARAMETER HW_INSTANCE = psu_i2c_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = iicps - PARAMETER DRIVER_VER = 3.4 + PARAMETER DRIVER_VER = 3.6 PARAMETER HW_INSTANCE = psu_i2c_1 END @@ -398,7 +410,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = ipipsu - PARAMETER DRIVER_VER = 2.1 + PARAMETER DRIVER_VER = 2.3 PARAMETER HW_INSTANCE = psu_ipi_1 END @@ -432,6 +444,12 @@ BEGIN DRIVER PARAMETER HW_INSTANCE = psu_mbistjtag END +BEGIN DRIVER + PARAMETER DRIVER_NAME = generic + PARAMETER DRIVER_VER = 2.0 + PARAMETER HW_INSTANCE = psu_message_buffers +END + BEGIN DRIVER PARAMETER DRIVER_NAME = generic PARAMETER DRIVER_VER = 2.0 @@ -468,6 +486,18 @@ BEGIN DRIVER PARAMETER HW_INSTANCE = psu_pcie_dma END +BEGIN DRIVER + PARAMETER DRIVER_NAME = generic + PARAMETER DRIVER_VER = 2.0 + PARAMETER HW_INSTANCE = psu_pcie_high1 +END + +BEGIN DRIVER + PARAMETER DRIVER_NAME = generic + PARAMETER DRIVER_VER = 2.0 + PARAMETER HW_INSTANCE = psu_pcie_high2 +END + BEGIN DRIVER PARAMETER DRIVER_NAME = generic PARAMETER DRIVER_VER = 2.0 @@ -480,15 +510,9 @@ BEGIN DRIVER PARAMETER HW_INSTANCE = psu_pmu_global_0 END -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 2.0 - PARAMETER HW_INSTANCE = psu_pmu_iomodule -END - BEGIN DRIVER PARAMETER DRIVER_NAME = qspipsu - PARAMETER DRIVER_VER = 1.3 + PARAMETER DRIVER_VER = 1.7 PARAMETER HW_INSTANCE = psu_qspi_0 END @@ -524,7 +548,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = scugic - PARAMETER DRIVER_VER = 3.5 + PARAMETER DRIVER_VER = 3.9 PARAMETER HW_INSTANCE = psu_rcpu_gic END @@ -542,7 +566,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = rtcpsu - PARAMETER DRIVER_VER = 1.3 + PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_rtc END @@ -554,7 +578,7 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = sdps - PARAMETER DRIVER_VER = 3.1 + PARAMETER DRIVER_VER = 3.4 PARAMETER HW_INSTANCE = psu_sd_1 END @@ -584,46 +608,52 @@ END BEGIN DRIVER PARAMETER DRIVER_NAME = ttcps - PARAMETER DRIVER_VER = 3.2 + PARAMETER DRIVER_VER = 3.5 PARAMETER HW_INSTANCE = psu_ttc_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = ttcps - PARAMETER DRIVER_VER = 3.2 + PARAMETER DRIVER_VER = 3.5 PARAMETER HW_INSTANCE = psu_ttc_1 END BEGIN DRIVER PARAMETER DRIVER_NAME = ttcps - PARAMETER DRIVER_VER = 3.2 + PARAMETER DRIVER_VER = 3.5 PARAMETER HW_INSTANCE = psu_ttc_2 END BEGIN DRIVER PARAMETER DRIVER_NAME = ttcps - PARAMETER DRIVER_VER = 3.2 + PARAMETER DRIVER_VER = 3.5 PARAMETER HW_INSTANCE = psu_ttc_3 END BEGIN DRIVER PARAMETER DRIVER_NAME = uartps - PARAMETER DRIVER_VER = 3.3 + PARAMETER DRIVER_VER = 3.6 PARAMETER HW_INSTANCE = psu_uart_0 END BEGIN DRIVER PARAMETER DRIVER_NAME = uartps - PARAMETER DRIVER_VER = 3.3 + PARAMETER DRIVER_VER = 3.6 PARAMETER HW_INSTANCE = psu_uart_1 END BEGIN DRIVER - PARAMETER DRIVER_NAME = usbpsu - PARAMETER DRIVER_VER = 1.1 + PARAMETER DRIVER_NAME = generic + PARAMETER DRIVER_VER = 2.0 PARAMETER HW_INSTANCE = psu_usb_0 END +BEGIN DRIVER + PARAMETER DRIVER_NAME = usbpsu + PARAMETER DRIVER_VER = 1.4 + PARAMETER HW_INSTANCE = psu_usb_xhci_0 +END + BEGIN DRIVER PARAMETER DRIVER_NAME = wdtps PARAMETER DRIVER_VER = 3.0 diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.c index f206bc7bf..5331ca872 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.c @@ -34,21100 +34,21787 @@ * * @file psu_init.c * -* This file is automatically generated +* This file is automatically generated * *****************************************************************************/ #include #include #include "psu_init.h" +#define DPLL_CFG_LOCK_DLY 63 +#define DPLL_CFG_LOCK_CNT 625 +#define DPLL_CFG_LFHF 3 +#define DPLL_CFG_CP 3 +#define DPLL_CFG_RES 2 -int mask_pollOnValue(u32 add , u32 mask, u32 value ); +static int mask_pollOnValue(u32 add, u32 mask, u32 value); -int mask_poll(u32 add , u32 mask ); +static int mask_poll(u32 add, u32 mask); -void mask_delay(u32 delay); +static void mask_delay(u32 delay); -u32 mask_read(u32 add , u32 mask ); +static u32 mask_read(u32 add, u32 mask); -static void PSU_Mask_Write (unsigned long offset, unsigned long mask, unsigned long val) +static void dpll_prog(int ddr_pll_fbdiv, int d_lock_dly, + int d_lock_cnt, int d_lfhf, int d_cp, int d_res); + +static +void PSU_Mask_Write(unsigned long offset, unsigned long mask, + unsigned long val) { unsigned long RegVal = 0x0; - RegVal = Xil_In32 (offset); + + RegVal = Xil_In32(offset); RegVal &= ~(mask); RegVal |= (val & mask); - Xil_Out32 (offset, RegVal); + Xil_Out32(offset, RegVal); } - void prog_reg (unsigned long addr, unsigned long mask, unsigned long shift, unsigned long value) { - int rdata =0; + void prog_reg(unsigned long addr, unsigned long mask, + unsigned long shift, unsigned long value) { + int rdata = 0; + rdata = Xil_In32(addr); rdata = rdata & (~mask); rdata = rdata | (value << shift); - Xil_Out32(addr,rdata); - } - -unsigned long psu_pll_init_data() { - // : RPLL INIT - /*Register : RPLL_CFG @ 0XFF5E0034

      - - PLL loop filter resistor control - PSU_CRL_APB_RPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRL_APB_RPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRL_APB_RPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRL_APB_RPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRL_APB_RPLL_CFG_RES_MASK | CRL_APB_RPLL_CFG_CP_MASK | CRL_APB_RPLL_CFG_LFHF_MASK | CRL_APB_RPLL_CFG_LOCK_CNT_MASK | CRL_APB_RPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRL_APB_RPLL_CFG_RES_SHIFT - | 0x00000003U << CRL_APB_RPLL_CFG_CP_SHIFT - | 0x00000003U << CRL_APB_RPLL_CFG_LFHF_SHIFT - | 0x00000258U << CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : RPLL_CTRL @ 0XFF5E0030

      - - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRL_APB_RPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRL_APB_RPLL_CTRL_FBDIV 0x48 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRL_APB_RPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00014800U) - RegMask = (CRL_APB_RPLL_CTRL_PRE_SRC_MASK | CRL_APB_RPLL_CTRL_FBDIV_MASK | CRL_APB_RPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT - | 0x00000048U << CRL_APB_RPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRL_APB_RPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00717F00U ,0x00014800U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : RPLL_CTRL @ 0XFF5E0030

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_RPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_RPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_RPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : RPLL_CTRL @ 0XFF5E0030

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_RPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000001U) - RegMask = (CRL_APB_RPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_RPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : RPLL_CTRL @ 0XFF5E0030

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_RPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_RPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFF5E0040

      - - RPLL is locked - PSU_CRL_APB_PLL_STATUS_RPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000002U ,0x00000002U) */ - mask_poll(CRL_APB_PLL_STATUS_OFFSET,0x00000002U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : RPLL_CTRL @ 0XFF5E0030

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_RPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : RPLL_TO_FPD_CTRL @ 0XFF5E0048

      - - Divisor value for this clock. - PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000300U) - RegMask = (CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_TO_FPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : RPLL FRAC CFG - /*Register : RPLL_FRAC_CFG @ 0XFF5E0038

      - - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRL_APB_RPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRL_APB_RPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFF5E0038, 0x8000FFFFU ,0x00000000U) - RegMask = (CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK | CRL_APB_RPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : IOPLL INIT - /*Register : IOPLL_CFG @ 0XFF5E0024

      - - PLL loop filter resistor control - PSU_CRL_APB_IOPLL_CFG_RES 0xc - - PLL charge pump control - PSU_CRL_APB_IOPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRL_APB_IOPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x339 - - Lock circuit configuration settings for lock windowsize - PSU_CRL_APB_IOPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E672C6CU) - RegMask = (CRL_APB_IOPLL_CFG_RES_MASK | CRL_APB_IOPLL_CFG_CP_MASK | CRL_APB_IOPLL_CFG_LFHF_MASK | CRL_APB_IOPLL_CFG_LOCK_CNT_MASK | CRL_APB_IOPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x0000000CU << CRL_APB_IOPLL_CFG_RES_SHIFT - | 0x00000003U << CRL_APB_IOPLL_CFG_CP_SHIFT - | 0x00000003U << CRL_APB_IOPLL_CFG_LFHF_SHIFT - | 0x00000339U << CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E672C6CU); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : IOPLL_CTRL @ 0XFF5E0020

      - - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRL_APB_IOPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x2d - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRL_APB_IOPLL_CTRL_DIV2 0x0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00002D00U) - RegMask = (CRL_APB_IOPLL_CTRL_PRE_SRC_MASK | CRL_APB_IOPLL_CTRL_FBDIV_MASK | CRL_APB_IOPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT - | 0x0000002DU << CRL_APB_IOPLL_CTRL_FBDIV_SHIFT - | 0x00000000U << CRL_APB_IOPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00717F00U ,0x00002D00U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : IOPLL_CTRL @ 0XFF5E0020

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_IOPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : IOPLL_CTRL @ 0XFF5E0020

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_IOPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000001U) - RegMask = (CRL_APB_IOPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : IOPLL_CTRL @ 0XFF5E0020

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_IOPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_IOPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFF5E0040

      - - IOPLL is locked - PSU_CRL_APB_PLL_STATUS_IOPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000001U ,0x00000001U) */ - mask_poll(CRL_APB_PLL_STATUS_OFFSET,0x00000001U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : IOPLL_CTRL @ 0XFF5E0020

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_IOPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : IOPLL_TO_FPD_CTRL @ 0XFF5E0044

      - - Divisor value for this clock. - PSU_CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFF5E0044, 0x00003F00U ,0x00000300U) - RegMask = (CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : IOPLL FRAC CFG - /*Register : IOPLL_FRAC_CFG @ 0XFF5E0028

      - - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRL_APB_IOPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRL_APB_IOPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFF5E0028, 0x8000FFFFU ,0x00000000U) - RegMask = (CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK | CRL_APB_IOPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : APU_PLL INIT - /*Register : APLL_CFG @ 0XFD1A0024

      - - PLL loop filter resistor control - PSU_CRF_APB_APLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_APLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_APLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_APLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_APLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A0024, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRF_APB_APLL_CFG_RES_MASK | CRF_APB_APLL_CFG_CP_MASK | CRF_APB_APLL_CFG_LFHF_MASK | CRF_APB_APLL_CFG_LOCK_CNT_MASK | CRF_APB_APLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_APLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_APLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_APLL_CFG_LFHF_SHIFT - | 0x00000258U << CRF_APB_APLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_APLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : APLL_CTRL @ 0XFD1A0020

      - - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_APLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_APLL_CTRL_FBDIV 0x42 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_APLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014200U) - RegMask = (CRF_APB_APLL_CTRL_PRE_SRC_MASK | CRF_APB_APLL_CTRL_FBDIV_MASK | CRF_APB_APLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_PRE_SRC_SHIFT - | 0x00000042U << CRF_APB_APLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_APLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00717F00U ,0x00014200U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : APLL_CTRL @ 0XFD1A0020

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_APLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_APLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_APLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : APLL_CTRL @ 0XFD1A0020

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_APLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_APLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_APLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : APLL_CTRL @ 0XFD1A0020

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_APLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_APLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

      - - APLL is locked - PSU_CRF_APB_PLL_STATUS_APLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000001U ,0x00000001U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000001U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : APLL_CTRL @ 0XFD1A0020

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_APLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_APLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : APLL_TO_LPD_CTRL @ 0XFD1A0048

      - - Divisor value for this clock. - PSU_CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A0048, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : APLL FRAC CFG - /*Register : APLL_FRAC_CFG @ 0XFD1A0028

      - - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_APLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRF_APB_APLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0028, 0x8000FFFFU ,0x00000000U) - RegMask = (CRF_APB_APLL_FRAC_CFG_ENABLED_MASK | CRF_APB_APLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRF_APB_APLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : DDR_PLL INIT - /*Register : DPLL_CFG @ 0XFD1A0030

      - - PLL loop filter resistor control - PSU_CRF_APB_DPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_DPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_DPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_DPLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_DPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A0030, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRF_APB_DPLL_CFG_RES_MASK | CRF_APB_DPLL_CFG_CP_MASK | CRF_APB_DPLL_CFG_LFHF_MASK | CRF_APB_DPLL_CFG_LOCK_CNT_MASK | CRF_APB_DPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DPLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_DPLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_DPLL_CFG_LFHF_SHIFT - | 0x00000258U << CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : DPLL_CTRL @ 0XFD1A002C

      - - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_DPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_DPLL_CTRL_FBDIV 0x40 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_DPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00717F00U ,0x00014000U) - RegMask = (CRF_APB_DPLL_CTRL_PRE_SRC_MASK | CRF_APB_DPLL_CTRL_FBDIV_MASK | CRF_APB_DPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT - | 0x00000040U << CRF_APB_DPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_DPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00717F00U ,0x00014000U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : DPLL_CTRL @ 0XFD1A002C

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_DPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : DPLL_CTRL @ 0XFD1A002C

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_DPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_DPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : DPLL_CTRL @ 0XFD1A002C

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_DPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_DPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

      - - DPLL is locked - PSU_CRF_APB_PLL_STATUS_DPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000002U ,0x00000002U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000002U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : DPLL_CTRL @ 0XFD1A002C

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_DPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DPLL_TO_LPD_CTRL @ 0XFD1A004C

      - - Divisor value for this clock. - PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : DPLL FRAC CFG - /*Register : DPLL_FRAC_CFG @ 0XFD1A0034

      - - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_DPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRF_APB_DPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0034, 0x8000FFFFU ,0x00000000U) - RegMask = (CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK | CRF_APB_DPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : VIDEO_PLL INIT - /*Register : VPLL_CFG @ 0XFD1A003C

      - - PLL loop filter resistor control - PSU_CRF_APB_VPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_VPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_VPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x28a - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_VPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E514C62U) - RegMask = (CRF_APB_VPLL_CFG_RES_MASK | CRF_APB_VPLL_CFG_CP_MASK | CRF_APB_VPLL_CFG_LFHF_MASK | CRF_APB_VPLL_CFG_LOCK_CNT_MASK | CRF_APB_VPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_VPLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_VPLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_VPLL_CFG_LFHF_SHIFT - | 0x0000028AU << CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E514C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : VPLL_CTRL @ 0XFD1A0038

      - - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_VPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_VPLL_CTRL_FBDIV 0x39 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_VPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00013900U) - RegMask = (CRF_APB_VPLL_CTRL_PRE_SRC_MASK | CRF_APB_VPLL_CTRL_FBDIV_MASK | CRF_APB_VPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT - | 0x00000039U << CRF_APB_VPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_VPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00717F00U ,0x00013900U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : VPLL_CTRL @ 0XFD1A0038

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_VPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_VPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : VPLL_CTRL @ 0XFD1A0038

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_VPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_VPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : VPLL_CTRL @ 0XFD1A0038

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_VPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_VPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

      - - VPLL is locked - PSU_CRF_APB_PLL_STATUS_VPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000004U ,0x00000004U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000004U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : VPLL_CTRL @ 0XFD1A0038

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_VPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_VPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : VPLL_TO_LPD_CTRL @ 0XFD1A0050

      - - Divisor value for this clock. - PSU_CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A0050, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : VIDEO FRAC CFG - /*Register : VPLL_FRAC_CFG @ 0XFD1A0040

      - - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_VPLL_FRAC_CFG_ENABLED 0x1 - - Fractional value for the Feedback value. - PSU_CRF_APB_VPLL_FRAC_CFG_DATA 0x820c - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0040, 0x8000FFFFU ,0x8000820CU) - RegMask = (CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK | CRF_APB_VPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT - | 0x0000820CU << CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x8000820CU); - /*############################################################################################################################ */ - - - return 1; + Xil_Out32(addr, rdata); + } + +unsigned long psu_pll_init_data(void) +{ + /* + * RPLL INIT + */ + /* + * Register : RPLL_CFG @ 0XFF5E0034 + + * PLL loop filter resistor control + * PSU_CRL_APB_RPLL_CFG_RES 0xc + + * PLL charge pump control + * PSU_CRL_APB_RPLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRL_APB_RPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x339 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRL_APB_RPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E672C6CU) + */ + PSU_Mask_Write(CRL_APB_RPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E672C6CU); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRL_APB_RPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRL_APB_RPLL_CTRL_FBDIV 0x2d + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRL_APB_RPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00012D00U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00717F00U, 0x00012D00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_RPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_RPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_RPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFF5E0040 + + * RPLL is locked + * PSU_CRL_APB_PLL_STATUS_RPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000002U ,0x00000002U) + */ + mask_poll(CRL_APB_PLL_STATUS_OFFSET, 0x00000002U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_RPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RPLL_TO_FPD_CTRL @ 0XFF5E0048 + + * Divisor value for this clock. + * PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x2 + + * Control for a clock that will be generated in the LPD, but used in the F + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000200U) + */ + PSU_Mask_Write(CRL_APB_RPLL_TO_FPD_CTRL_OFFSET, + 0x00003F00U, 0x00000200U); +/*##################################################################### */ + + /* + * RPLL FRAC CFG + */ + /* + * IOPLL INIT + */ + /* + * Register : IOPLL_CFG @ 0XFF5E0024 + + * PLL loop filter resistor control + * PSU_CRL_APB_IOPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRL_APB_IOPLL_CFG_CP 0x4 + + * PLL loop filter high frequency capacitor control + * PSU_CRL_APB_IOPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRL_APB_IOPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E4B0C82U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C82U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRL_APB_IOPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x5a + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRL_APB_IOPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00015A00U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00717F00U, 0x00015A00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_IOPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_IOPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_IOPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFF5E0040 + + * IOPLL is locked + * PSU_CRL_APB_PLL_STATUS_IOPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000001U ,0x00000001U) + */ + mask_poll(CRL_APB_PLL_STATUS_OFFSET, 0x00000001U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_IOPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : IOPLL_TO_FPD_CTRL @ 0XFF5E0044 + + * Divisor value for this clock. + * PSU_CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the LPD, but used in the F + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFF5E0044, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * IOPLL FRAC CFG + */ + /* + * APU_PLL INIT + */ + /* + * Register : APLL_CFG @ 0XFD1A0024 + + * PLL loop filter resistor control + * PSU_CRF_APB_APLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_APLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_APLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_APLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_APLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A0024, 0xFE7FEDEFU ,0x7E4B0C62U) + */ + PSU_Mask_Write(CRF_APB_APLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C62U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_APLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_APLL_CTRL_FBDIV 0x48 + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_APLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014800U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00717F00U, 0x00014800U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_APLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_APLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_APLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * APLL is locked + * PSU_CRF_APB_PLL_STATUS_APLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000001U ,0x00000001U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000001U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_APLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : APLL_TO_LPD_CTRL @ 0XFD1A0048 + + * Divisor value for this clock. + * PSU_CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A0048, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRF_APB_APLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * APLL FRAC CFG + */ + /* + * DDR_PLL INIT + */ + /* + * Register : DPLL_CFG @ 0XFD1A0030 + + * PLL loop filter resistor control + * PSU_CRF_APB_DPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_DPLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_DPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_DPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_DPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A0030, 0xFE7FEDEFU ,0x7E4B0C62U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C62U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_DPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_DPLL_CTRL_FBDIV 0x40 + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_DPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00717F00U ,0x00014000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00717F00U, 0x00014000U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_DPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_DPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_DPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * DPLL is locked + * PSU_CRF_APB_PLL_STATUS_DPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000002U ,0x00000002U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000002U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_DPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DPLL_TO_LPD_CTRL @ 0XFD1A004C + + * Divisor value for this clock. + * PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x2 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DPLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000200U); +/*##################################################################### */ + + /* + * DPLL FRAC CFG + */ + /* + * VIDEO_PLL INIT + */ + /* + * Register : VPLL_CFG @ 0XFD1A003C + + * PLL loop filter resistor control + * PSU_CRF_APB_VPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_VPLL_CFG_CP 0x4 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_VPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_VPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E4B0C82U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C82U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_VPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_VPLL_CTRL_FBDIV 0x5a + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_VPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00015A00U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00717F00U, 0x00015A00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_VPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_VPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_VPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * VPLL is locked + * PSU_CRF_APB_PLL_STATUS_VPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000004U ,0x00000004U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000004U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_VPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : VPLL_TO_LPD_CTRL @ 0XFD1A0050 + + * Divisor value for this clock. + * PSU_CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A0050, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRF_APB_VPLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * VIDEO FRAC CFG + */ + + return 1; } -unsigned long psu_clock_init_data() { - // : CLOCK CONTROL SLCR REGISTER - /*Register : GEM3_REF_CTRL @ 0XFF5E005C

      +unsigned long psu_clock_init_data(void) +{ + /* + * CLOCK CONTROL SLCR REGISTER + */ + /* + * Register : GEM3_REF_CTRL @ 0XFF5E005C + + * Clock active for the RX channel + * PSU_CRL_APB_GEM3_REF_CTRL_RX_CLKACT 0x1 - Clock active for the RX channel - PSU_CRL_APB_GEM3_REF_CTRL_RX_CLKACT 0x1 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_GEM3_REF_CTRL_CLKACT 0x1 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_GEM3_REF_CTRL_CLKACT 0x1 + * 6 bit divider + * PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR1 0x1 - 6 bit divider - PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR1 0x1 + * 6 bit divider + * PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR0 0xc + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_GEM3_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E005C, 0x063F3F07U ,0x06010C00U) + */ + PSU_Mask_Write(CRL_APB_GEM3_REF_CTRL_OFFSET, + 0x063F3F07U, 0x06010C00U); +/*##################################################################### */ + + /* + * Register : GEM_TSU_REF_CTRL @ 0XFF5E0100 - 6 bit divider - PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR0 0xc + * 6 bit divider + * PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0 0x6 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_GEM3_REF_CTRL_SRCSEL 0x0 + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_GEM_TSU_REF_CTRL_SRCSEL 0x0 - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E005C, 0x063F3F07U ,0x06010C00U) - RegMask = (CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK | CRL_APB_GEM3_REF_CTRL_CLKACT_MASK | CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK | CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK | CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK | 0 ); + * 6 bit divider + * PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1 0x1 - RegVal = ((0x00000001U << CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT - | 0x00000001U << CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000CU << CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_GEM3_REF_CTRL_OFFSET ,0x063F3F07U ,0x06010C00U); - /*############################################################################################################################ */ + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_GEM_TSU_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0100, 0x013F3F07U ,0x01010600U) + */ + PSU_Mask_Write(CRL_APB_GEM_TSU_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010600U); +/*##################################################################### */ + + /* + * Register : USB0_BUS_REF_CTRL @ 0XFF5E0060 - /*Register : USB0_BUS_REF_CTRL @ 0XFF5E0060

      + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_USB0_BUS_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0 0x6 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_USB0_BUS_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0060, 0x023F3F07U ,0x02010600U) + */ + PSU_Mask_Write(CRL_APB_USB0_BUS_REF_CTRL_OFFSET, + 0x023F3F07U, 0x02010600U); +/*##################################################################### */ + + /* + * Register : USB3_DUAL_REF_CTRL @ 0XFF5E004C - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_USB0_BUS_REF_CTRL_CLKACT 0x1 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0x3 + + * 6 bit divider + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x19 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x02031900U) + */ + PSU_Mask_Write(CRL_APB_USB3_DUAL_REF_CTRL_OFFSET, + 0x023F3F07U, 0x02031900U); +/*##################################################################### */ - 6 bit divider - PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1 0x1 + /* + * Register : QSPI_REF_CTRL @ 0XFF5E0068 - 6 bit divider - PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0 0x6 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_QSPI_REF_CTRL_CLKACT 0x1 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_USB0_BUS_REF_CTRL_SRCSEL 0x0 + * 6 bit divider + * PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR0 0xc + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_QSPI_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0068, 0x013F3F07U ,0x01010C00U) + */ + PSU_Mask_Write(CRL_APB_QSPI_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010C00U); +/*##################################################################### */ - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0060, 0x023F3F07U ,0x02010600U) - RegMask = (CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK | CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK | CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK | CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK | 0 ); + /* + * Register : SDIO1_REF_CTRL @ 0XFF5E0070 - RegVal = ((0x00000001U << CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT - | 0x00000006U << CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_USB0_BUS_REF_CTRL_OFFSET ,0x023F3F07U ,0x02010600U); - /*############################################################################################################################ */ + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_SDIO1_REF_CTRL_CLKACT 0x1 - /*Register : USB3_DUAL_REF_CTRL @ 0XFF5E004C

      + * 6 bit divider + * PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x8 + + * 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x0 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_USB3_DUAL_REF_CTRL_CLKACT 0x1 + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010800U) + */ + PSU_Mask_Write(CRL_APB_SDIO1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010800U); +/*##################################################################### */ - 6 bit divider - PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0xf + /* + * Register : SDIO_CLK_CTRL @ 0XFF18030C - 6 bit divider - PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x5 + * MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO + * [51] 1: MIO [76] + * PSU_IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL 0 - 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL 0x0 + * SoC Debug Clock Control + * (OFFSET, MASK, VALUE) (0XFF18030C, 0x00020000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_SDIO_CLK_CTRL_OFFSET, + 0x00020000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : UART0_REF_CTRL @ 0XFF5E0074 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_UART0_REF_CTRL_CLKACT 0x1 - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x020F0500U) - RegMask = (CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK | CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK | CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK | CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK | 0 ); + * 6 bit divider + * PSU_CRL_APB_UART0_REF_CTRL_DIVISOR1 0x1 - RegVal = ((0x00000001U << CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT - | 0x0000000FU << CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT - | 0x00000005U << CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_USB3_DUAL_REF_CTRL_OFFSET ,0x023F3F07U ,0x020F0500U); - /*############################################################################################################################ */ + * 6 bit divider + * PSU_CRL_APB_UART0_REF_CTRL_DIVISOR0 0xf - /*Register : QSPI_REF_CTRL @ 0XFF5E0068

      + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_UART0_REF_CTRL_SRCSEL 0x0 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_QSPI_REF_CTRL_CLKACT 0x1 + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0074, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_UART0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : UART1_REF_CTRL @ 0XFF5E0078 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_UART1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_UART1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_UART1_REF_CTRL_DIVISOR0 0xf - 6 bit divider - PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR1 0x1 + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_UART1_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0078, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_UART1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : I2C0_REF_CTRL @ 0XFF5E0120 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_I2C0_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_I2C0_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0120, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_I2C0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : I2C1_REF_CTRL @ 0XFF5E0124 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_I2C1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_I2C1_REF_CTRL_SRCSEL 0x0 - 6 bit divider - PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR0 0xc + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0124, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_I2C1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : CAN1_REF_CTRL @ 0XFF5E0088 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_QSPI_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0068, 0x013F3F07U ,0x01010C00U) - RegMask = (CRL_APB_QSPI_REF_CTRL_CLKACT_MASK | CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK | CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK | CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000CU << CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_QSPI_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010C00U); - /*############################################################################################################################ */ - - /*Register : SDIO1_REF_CTRL @ 0XFF5E0070

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_SDIO1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x6 - - 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010602U) - RegMask = (CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK | CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK | CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK | CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT - | 0x00000006U << CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_SDIO1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010602U); - /*############################################################################################################################ */ - - /*Register : SDIO_CLK_CTRL @ 0XFF18030C

      - - MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO [51] 1: MIO [76] - PSU_IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL 0 - - SoC Debug Clock Control - (OFFSET, MASK, VALUE) (0XFF18030C, 0x00020000U ,0x00000000U) - RegMask = (IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SDIO_CLK_CTRL_OFFSET ,0x00020000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : UART0_REF_CTRL @ 0XFF5E0074

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_UART0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_UART0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_UART0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_UART0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0074, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_UART0_REF_CTRL_CLKACT_MASK | CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK | CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK | CRL_APB_UART0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_UART0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : UART1_REF_CTRL @ 0XFF5E0078

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_UART1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_UART1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_UART1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_UART1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0078, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_UART1_REF_CTRL_CLKACT_MASK | CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK | CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK | CRL_APB_UART1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_UART1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : I2C0_REF_CTRL @ 0XFF5E0120

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_I2C0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_I2C0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0120, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_I2C0_REF_CTRL_CLKACT_MASK | CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK | CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK | CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_I2C0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : I2C1_REF_CTRL @ 0XFF5E0124

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_I2C1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_I2C1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0124, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_I2C1_REF_CTRL_CLKACT_MASK | CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK | CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK | CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_I2C1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : CAN1_REF_CTRL @ 0XFF5E0088

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_CAN1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_CAN1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0088, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_CAN1_REF_CTRL_CLKACT_MASK | CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK | CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK | CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_CAN1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : CPU_R5_CTRL @ 0XFF5E0090

      - - Turing this off will shut down the OCM, some parts of the APM, and prevent transactions going from the FPD to the LPD and cou - d lead to system hang - PSU_CRL_APB_CPU_R5_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_CPU_R5_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_CPU_R5_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0090, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_CPU_R5_CTRL_CLKACT_MASK | CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK | CRL_APB_CPU_R5_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_CPU_R5_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : IOU_SWITCH_CTRL @ 0XFF5E009C

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_IOU_SWITCH_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_IOU_SWITCH_CTRL_DIVISOR0 0x6 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOU_SWITCH_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E009C, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK | CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK | CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOU_SWITCH_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : PCAP_CTRL @ 0XFF5E00A4

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PCAP_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x6 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_PCAP_CTRL_CLKACT_MASK | CRL_APB_PCAP_CTRL_DIVISOR0_MASK | CRL_APB_PCAP_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PCAP_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PCAP_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PCAP_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : LPD_SWITCH_CTRL @ 0XFF5E00A8

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_LPD_SWITCH_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_LPD_SWITCH_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_LPD_SWITCH_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00A8, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK | CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK | CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_LPD_SWITCH_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : LPD_LSBUS_CTRL @ 0XFF5E00AC

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_LPD_LSBUS_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_LPD_LSBUS_CTRL_DIVISOR0 0xf - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_LPD_LSBUS_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00AC, 0x01003F07U ,0x01000F02U) - RegMask = (CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK | CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK | CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT - | 0x0000000FU << CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_LPD_LSBUS_CTRL_OFFSET ,0x01003F07U ,0x01000F02U); - /*############################################################################################################################ */ - - /*Register : DBG_LPD_CTRL @ 0XFF5E00B0

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_DBG_LPD_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_DBG_LPD_CTRL_DIVISOR0 0x6 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_DBG_LPD_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00B0, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_DBG_LPD_CTRL_CLKACT_MASK | CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK | CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_DBG_LPD_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : ADMA_REF_CTRL @ 0XFF5E00B8

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_ADMA_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_ADMA_REF_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_ADMA_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00B8, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_ADMA_REF_CTRL_CLKACT_MASK | CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK | CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_ADMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : PL0_REF_CTRL @ 0XFF5E00C0

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C0, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_PL0_REF_CTRL_CLKACT_MASK | CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : PL1_REF_CTRL @ 0XFF5E00C4

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL1_REF_CTRL_DIVISOR1 0x4 - - 6 bit divider - PSU_CRL_APB_PL1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C4, 0x013F3F07U ,0x01040F00U) - RegMask = (CRL_APB_PL1_REF_CTRL_CLKACT_MASK | CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT - | 0x00000004U << CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01040F00U); - /*############################################################################################################################ */ - - /*Register : PL2_REF_CTRL @ 0XFF5E00C8

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL2_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL2_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL2_REF_CTRL_DIVISOR0 0x4 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL2_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C8, 0x013F3F07U ,0x01010402U) - RegMask = (CRL_APB_PL2_REF_CTRL_CLKACT_MASK | CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL2_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT - | 0x00000004U << CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL2_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010402U); - /*############################################################################################################################ */ - - /*Register : PL3_REF_CTRL @ 0XFF5E00CC

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL3_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL3_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL3_REF_CTRL_DIVISOR0 0x3 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL3_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00CC, 0x013F3F07U ,0x01010302U) - RegMask = (CRL_APB_PL3_REF_CTRL_CLKACT_MASK | CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL3_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT - | 0x00000003U << CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL3_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010302U); - /*############################################################################################################################ */ - - /*Register : AMS_REF_CTRL @ 0XFF5E0108

      - - 6 bit divider - PSU_CRL_APB_AMS_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1d - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_AMS_REF_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_AMS_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011D02U) - RegMask = (CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK | CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK | CRL_APB_AMS_REF_CTRL_SRCSEL_MASK | CRL_APB_AMS_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT - | 0x0000001DU << CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_AMS_REF_CTRL_OFFSET ,0x013F3F07U ,0x01011D02U); - /*############################################################################################################################ */ - - /*Register : DLL_REF_CTRL @ 0XFF5E0104

      - - 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - is not usually an issue, but designers must be aware.) - PSU_CRL_APB_DLL_REF_CTRL_SRCSEL 0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0104, 0x00000007U ,0x00000000U) - RegMask = (CRL_APB_DLL_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_DLL_REF_CTRL_OFFSET ,0x00000007U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : TIMESTAMP_REF_CTRL @ 0XFF5E0128

      - - 6 bit divider - PSU_CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0 0xf - - 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and - cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0128, 0x01003F07U ,0x01000F00U) - RegMask = (CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK | CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK | CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x0000000FU << CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_TIMESTAMP_REF_CTRL_OFFSET ,0x01003F07U ,0x01000F00U); - /*############################################################################################################################ */ - - /*Register : SATA_REF_CTRL @ 0XFD1A00A0

      - - 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_SATA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_SATA_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRF_APB_SATA_REF_CTRL_DIVISOR0 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00A0, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_SATA_REF_CTRL_SRCSEL_MASK | CRF_APB_SATA_REF_CTRL_CLKACT_MASK | CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT - | 0x00000002U << CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_SATA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : PCIE_REF_CTRL @ 0XFD1A00B4

      - - 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cyc - es of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_PCIE_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_PCIE_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRF_APB_PCIE_REF_CTRL_DIVISOR0 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00B4, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK | CRF_APB_PCIE_REF_CTRL_CLKACT_MASK | CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT - | 0x00000002U << CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_PCIE_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DP_VIDEO_REF_CTRL @ 0XFD1A0070

      - - 6 bit divider - PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x3 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x3 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_VIDEO_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010303U) - RegMask = (CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT - | 0x00000003U << CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT - | 0x00000003U << CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_VIDEO_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010303U); - /*############################################################################################################################ */ - - /*Register : DP_AUDIO_REF_CTRL @ 0XFD1A0074

      - - 6 bit divider - PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0x27 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_AUDIO_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01012700U) - RegMask = (CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT - | 0x00000027U << CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_AUDIO_REF_CTRL_OFFSET ,0x013F3F07U ,0x01012700U); - /*############################################################################################################################ */ - - /*Register : DP_STC_REF_CTRL @ 0XFD1A007C

      - - 6 bit divider - PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0x11 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of t - e new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_STC_REF_CTRL_SRCSEL 0x3 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_STC_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01011103U) - RegMask = (CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT - | 0x00000011U << CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT - | 0x00000003U << CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_STC_REF_CTRL_OFFSET ,0x013F3F07U ,0x01011103U); - /*############################################################################################################################ */ - - /*Register : ACPU_CTRL @ 0XFD1A0060

      - - 6 bit divider - PSU_CRF_APB_ACPU_CTRL_DIVISOR0 0x1 - - 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_ACPU_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock. For the half speed APU Clock - PSU_CRF_APB_ACPU_CTRL_CLKACT_HALF 0x1 - - Clock active signal. Switch to 0 to disable the clock. For the full speed ACPUX Clock. This will shut off the high speed cloc - to the entire APU - PSU_CRF_APB_ACPU_CTRL_CLKACT_FULL 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0060, 0x03003F07U ,0x03000100U) - RegMask = (CRF_APB_ACPU_CTRL_DIVISOR0_MASK | CRF_APB_ACPU_CTRL_SRCSEL_MASK | CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK | CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_ACPU_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT - | 0x00000001U << CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_ACPU_CTRL_OFFSET ,0x03003F07U ,0x03000100U); - /*############################################################################################################################ */ - - /*Register : DBG_TRACE_CTRL @ 0XFD1A0064

      - - 6 bit divider - PSU_CRF_APB_DBG_TRACE_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_TRACE_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DBG_TRACE_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0064, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK | CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK | CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_TRACE_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DBG_FPD_CTRL @ 0XFD1A0068

      - - 6 bit divider - PSU_CRF_APB_DBG_FPD_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_FPD_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DBG_FPD_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0068, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK | CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK | CRF_APB_DBG_FPD_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_FPD_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DDR_CTRL @ 0XFD1A0080

      - - 6 bit divider - PSU_CRF_APB_DDR_CTRL_DIVISOR0 0x2 - - 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - s not usually an issue, but designers must be aware.) - PSU_CRF_APB_DDR_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0080, 0x00003F07U ,0x00000200U) - RegMask = (CRF_APB_DDR_CTRL_DIVISOR0_MASK | CRF_APB_DDR_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DDR_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DDR_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DDR_CTRL_OFFSET ,0x00003F07U ,0x00000200U); - /*############################################################################################################################ */ - - /*Register : GPU_REF_CTRL @ 0XFD1A0084

      - - 6 bit divider - PSU_CRF_APB_GPU_REF_CTRL_DIVISOR0 0x1 - - 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_GPU_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock, which will stop clock for GPU (and both Pixel Processors). - PSU_CRF_APB_GPU_REF_CTRL_CLKACT 0x1 - - Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor - PSU_CRF_APB_GPU_REF_CTRL_PP0_CLKACT 0x1 - - Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor - PSU_CRF_APB_GPU_REF_CTRL_PP1_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0084, 0x07003F07U ,0x07000100U) - RegMask = (CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK | CRF_APB_GPU_REF_CTRL_SRCSEL_MASK | CRF_APB_GPU_REF_CTRL_CLKACT_MASK | CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK | CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_GPU_REF_CTRL_OFFSET ,0x07003F07U ,0x07000100U); - /*############################################################################################################################ */ - - /*Register : GDMA_REF_CTRL @ 0XFD1A00B8

      - - 6 bit divider - PSU_CRF_APB_GDMA_REF_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_GDMA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_GDMA_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00B8, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK | CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK | CRF_APB_GDMA_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_GDMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DPDMA_REF_CTRL @ 0XFD1A00BC

      - - 6 bit divider - PSU_CRF_APB_DPDMA_REF_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPDMA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DPDMA_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00BC, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK | CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK | CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPDMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : TOPSW_MAIN_CTRL @ 0XFD1A00C0

      - - 6 bit divider - PSU_CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_TOPSW_MAIN_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000202U) - RegMask = (CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK | CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK | CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_TOPSW_MAIN_CTRL_OFFSET ,0x01003F07U ,0x01000202U); - /*############################################################################################################################ */ - - /*Register : TOPSW_LSBUS_CTRL @ 0XFD1A00C4

      - - 6 bit divider - PSU_CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0 0x5 - - 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_TOPSW_LSBUS_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00C4, 0x01003F07U ,0x01000502U) - RegMask = (CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK | CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK | CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000005U << CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_TOPSW_LSBUS_CTRL_OFFSET ,0x01003F07U ,0x01000502U); - /*############################################################################################################################ */ - - /*Register : DBG_TSTMP_CTRL @ 0XFD1A00F8

      - - 6 bit divider - PSU_CRF_APB_DBG_TSTMP_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_TSTMP_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00F8, 0x00003F07U ,0x00000200U) - RegMask = (CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK | CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_TSTMP_CTRL_OFFSET ,0x00003F07U ,0x00000200U); - /*############################################################################################################################ */ - - /*Register : IOU_TTC_APB_CLK @ 0XFF180380

      - - 00" = Select the APB switch clock for the APB interface of TTC0'01" = Select the PLL ref clock for the APB interface of TTC0' - 0" = Select the R5 clock for the APB interface of TTC0 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC1'01" = Select the PLL ref clock for the APB interface of TTC1' - 0" = Select the R5 clock for the APB interface of TTC1 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC2'01" = Select the PLL ref clock for the APB interface of TTC2' - 0" = Select the R5 clock for the APB interface of TTC2 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC3'01" = Select the PLL ref clock for the APB interface of TTC3' - 0" = Select the R5 clock for the APB interface of TTC3 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL 0 - - TTC APB clock select - (OFFSET, MASK, VALUE) (0XFF180380, 0x000000FFU ,0x00000000U) - RegMask = (IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_IOU_TTC_APB_CLK_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : WDT_CLK_SEL @ 0XFD610100

      - - System watchdog timer clock source selection: 0: Internal APB clock 1: External (PL clock via EMIO or Pinout clock via MIO) - PSU_FPD_SLCR_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFD610100, 0x00000001U ,0x00000000U) - RegMask = (FPD_SLCR_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (FPD_SLCR_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : WDT_CLK_SEL @ 0XFF180300

      - - System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock from PL via EMIO, or from pinout - ia MIO - PSU_IOU_SLCR_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFF180300, 0x00000001U ,0x00000000U) - RegMask = (IOU_SLCR_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CSUPMU_WDT_CLK_SEL @ 0XFF410050

      - - System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock pss_ref_clk - PSU_LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFF410050, 0x00000001U ,0x00000000U) - RegMask = (LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - - return 1; + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_CAN1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_CAN1_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0088, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_CAN1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : CPU_R5_CTRL @ 0XFF5E0090 + + * Turing this off will shut down the OCM, some parts of the APM, and preve + * nt transactions going from the FPD to the LPD and could lead to system h + * ang + * PSU_CRL_APB_CPU_R5_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_CPU_R5_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_CPU_R5_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0090, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_CPU_R5_CTRL_OFFSET, 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : IOU_SWITCH_CTRL @ 0XFF5E009C + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_IOU_SWITCH_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_IOU_SWITCH_CTRL_DIVISOR0 0x6 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_IOU_SWITCH_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E009C, 0x01003F07U ,0x01000602U) + */ + PSU_Mask_Write(CRL_APB_IOU_SWITCH_CTRL_OFFSET, + 0x01003F07U, 0x01000602U); +/*##################################################################### */ + + /* + * Register : PCAP_CTRL @ 0XFF5E00A4 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_PCAP_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x8 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000800U) + */ + PSU_Mask_Write(CRL_APB_PCAP_CTRL_OFFSET, 0x01003F07U, 0x01000800U); +/*##################################################################### */ + + /* + * Register : LPD_SWITCH_CTRL @ 0XFF5E00A8 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_LPD_SWITCH_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_LPD_SWITCH_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_LPD_SWITCH_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00A8, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_LPD_SWITCH_CTRL_OFFSET, + 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : LPD_LSBUS_CTRL @ 0XFF5E00AC + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_LPD_LSBUS_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_LPD_LSBUS_CTRL_DIVISOR0 0xf + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_LPD_LSBUS_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00AC, 0x01003F07U ,0x01000F02U) + */ + PSU_Mask_Write(CRL_APB_LPD_LSBUS_CTRL_OFFSET, + 0x01003F07U, 0x01000F02U); +/*##################################################################### */ + + /* + * Register : DBG_LPD_CTRL @ 0XFF5E00B0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_DBG_LPD_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_DBG_LPD_CTRL_DIVISOR0 0x6 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_DBG_LPD_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00B0, 0x01003F07U ,0x01000602U) + */ + PSU_Mask_Write(CRL_APB_DBG_LPD_CTRL_OFFSET, + 0x01003F07U, 0x01000602U); +/*##################################################################### */ + + /* + * Register : ADMA_REF_CTRL @ 0XFF5E00B8 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_ADMA_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_ADMA_REF_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_ADMA_REF_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00B8, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_ADMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : PL0_REF_CTRL @ 0XFF5E00C0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_PL0_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_PL0_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_PL0_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_PL0_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00C0, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_PL0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : AMS_REF_CTRL @ 0XFF5E0108 + + * 6 bit divider + * PSU_CRL_APB_AMS_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1e + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_AMS_REF_CTRL_SRCSEL 0x2 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_AMS_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011E02U) + */ + PSU_Mask_Write(CRL_APB_AMS_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01011E02U); +/*##################################################################### */ + + /* + * Register : DLL_REF_CTRL @ 0XFF5E0104 + + * 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an + * issue, but designers must be aware.) + * PSU_CRL_APB_DLL_REF_CTRL_SRCSEL 0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0104, 0x00000007U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_DLL_REF_CTRL_OFFSET, + 0x00000007U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : TIMESTAMP_REF_CTRL @ 0XFF5E0128 + + * 6 bit divider + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0 0xf + + * 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may + * only be toggled after 4 cycles of the old clock and 4 cycles of the new + * clock. This is not usually an issue, but designers must be aware.) + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0128, 0x01003F07U ,0x01000F00U) + */ + PSU_Mask_Write(CRL_APB_TIMESTAMP_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000F00U); +/*##################################################################### */ + + /* + * Register : SATA_REF_CTRL @ 0XFD1A00A0 + + * 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_SATA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_SATA_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRF_APB_SATA_REF_CTRL_DIVISOR0 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00A0, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_SATA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : PCIE_REF_CTRL @ 0XFD1A00B4 + + * 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only + * be toggled after 4 cycles of the old clock and 4 cycles of the new cloc + * k. This is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_PCIE_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_PCIE_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRF_APB_PCIE_REF_CTRL_DIVISOR0 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00B4, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_PCIE_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DP_VIDEO_REF_CTRL @ 0XFD1A0070 + + * 6 bit divider + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x5 + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010500U) + */ + PSU_Mask_Write(CRF_APB_DP_VIDEO_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010500U); +/*##################################################################### */ + + /* + * Register : DP_AUDIO_REF_CTRL @ 0XFD1A0074 + + * 6 bit divider + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0xf + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01010F03U) + */ + PSU_Mask_Write(CRF_APB_DP_AUDIO_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F03U); +/*##################################################################### */ + + /* + * Register : DP_STC_REF_CTRL @ 0XFD1A007C + + * 6 bit divider + * PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0xe + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be togg + * led after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DP_STC_REF_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_STC_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01010E03U) + */ + PSU_Mask_Write(CRF_APB_DP_STC_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010E03U); +/*##################################################################### */ + + /* + * Register : ACPU_CTRL @ 0XFD1A0060 + + * 6 bit divider + * PSU_CRF_APB_ACPU_CTRL_DIVISOR0 0x1 + + * 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_ACPU_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock. For the half spee + * d APU Clock + * PSU_CRF_APB_ACPU_CTRL_CLKACT_HALF 0x1 + + * Clock active signal. Switch to 0 to disable the clock. For the full spee + * d ACPUX Clock. This will shut off the high speed clock to the entire APU + * PSU_CRF_APB_ACPU_CTRL_CLKACT_FULL 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0060, 0x03003F07U ,0x03000100U) + */ + PSU_Mask_Write(CRF_APB_ACPU_CTRL_OFFSET, 0x03003F07U, 0x03000100U); +/*##################################################################### */ + + /* + * Register : DBG_FPD_CTRL @ 0XFD1A0068 + + * 6 bit divider + * PSU_CRF_APB_DBG_FPD_CTRL_DIVISOR0 0x2 + + * 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DBG_FPD_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DBG_FPD_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0068, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_DBG_FPD_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DDR_CTRL @ 0XFD1A0080 + + * 6 bit divider + * PSU_CRF_APB_DDR_CTRL_DIVISOR0 0x2 + + * 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an i + * ssue, but designers must be aware.) + * PSU_CRF_APB_DDR_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0080, 0x00003F07U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DDR_CTRL_OFFSET, 0x00003F07U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : GPU_REF_CTRL @ 0XFD1A0084 + + * 6 bit divider + * PSU_CRF_APB_GPU_REF_CTRL_DIVISOR0 0x1 + + * 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_GPU_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock, which will stop c + * lock for GPU (and both Pixel Processors). + * PSU_CRF_APB_GPU_REF_CTRL_CLKACT 0x1 + + * Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor + * PSU_CRF_APB_GPU_REF_CTRL_PP0_CLKACT 0x1 + + * Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor + * PSU_CRF_APB_GPU_REF_CTRL_PP1_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0084, 0x07003F07U ,0x07000100U) + */ + PSU_Mask_Write(CRF_APB_GPU_REF_CTRL_OFFSET, + 0x07003F07U, 0x07000100U); +/*##################################################################### */ + + /* + * Register : GDMA_REF_CTRL @ 0XFD1A00B8 + + * 6 bit divider + * PSU_CRF_APB_GDMA_REF_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_GDMA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_GDMA_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00B8, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_GDMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DPDMA_REF_CTRL @ 0XFD1A00BC + + * 6 bit divider + * PSU_CRF_APB_DPDMA_REF_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_DPDMA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DPDMA_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00BC, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_DPDMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : TOPSW_MAIN_CTRL @ 0XFD1A00C0 + + * 6 bit divider + * PSU_CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_TOPSW_MAIN_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000203U) + */ + PSU_Mask_Write(CRF_APB_TOPSW_MAIN_CTRL_OFFSET, + 0x01003F07U, 0x01000203U); +/*##################################################################### */ + + /* + * Register : TOPSW_LSBUS_CTRL @ 0XFD1A00C4 + + * 6 bit divider + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0 0x5 + + * 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL 0x2 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00C4, 0x01003F07U ,0x01000502U) + */ + PSU_Mask_Write(CRF_APB_TOPSW_LSBUS_CTRL_OFFSET, + 0x01003F07U, 0x01000502U); +/*##################################################################### */ + + /* + * Register : DBG_TSTMP_CTRL @ 0XFD1A00F8 + + * 6 bit divider + * PSU_CRF_APB_DBG_TSTMP_CTRL_DIVISOR0 0x2 + + * 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DBG_TSTMP_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00F8, 0x00003F07U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DBG_TSTMP_CTRL_OFFSET, + 0x00003F07U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : IOU_TTC_APB_CLK @ 0XFF180380 + + * 00" = Select the APB switch clock for the APB interface of TTC0'01" = Se + * lect the PLL ref clock for the APB interface of TTC0'10" = Select the R5 + * clock for the APB interface of TTC0 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC1'01" = Se + * lect the PLL ref clock for the APB interface of TTC1'10" = Select the R5 + * clock for the APB interface of TTC1 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC2'01" = Se + * lect the PLL ref clock for the APB interface of TTC2'10" = Select the R5 + * clock for the APB interface of TTC2 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC3'01" = Se + * lect the PLL ref clock for the APB interface of TTC3'10" = Select the R5 + * clock for the APB interface of TTC3 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL 0 + + * TTC APB clock select + * (OFFSET, MASK, VALUE) (0XFF180380, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_IOU_TTC_APB_CLK_OFFSET, + 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : WDT_CLK_SEL @ 0XFD610100 + + * System watchdog timer clock source selection: 0: Internal APB clock 1: E + * xternal (PL clock via EMIO or Pinout clock via MIO) + * PSU_FPD_SLCR_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFD610100, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(FPD_SLCR_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : WDT_CLK_SEL @ 0XFF180300 + + * System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock from PL via EMIO, or from pinout via MIO + * PSU_IOU_SLCR_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFF180300, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CSUPMU_WDT_CLK_SEL @ 0XFF410050 + + * System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock pss_ref_clk + * PSU_LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFF410050, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_ddr_init_data() { - // : DDR INITIALIZATION - // : DDR CONTROLLER RESET - /*Register : RST_DDR_SS @ 0XFD1A0108

      - - DDR block level reset inside of the DDR Sub System - PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X1 - - DDR sub system block level reset - (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_RST_DDR_SS_DDR_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_DDR_SS_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MSTR @ 0XFD070000

      - - Indicates the configuration of the device used in the system. - 00 - x4 device - 01 - x8 device - 10 - x16 device - 11 - x32 - evice - PSU_DDRC_MSTR_DEVICE_CONFIG 0x1 - - Choose which registers are used. - 0 - Original registers - 1 - Shadow registers - PSU_DDRC_MSTR_FREQUENCY_MODE 0x0 - - Only present for multi-rank configurations. Each bit represents one rank. For two-rank configurations, only bits[25:24] are p - esent. - 1 - populated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks following combinations are legal: - 01 - - ne rank - 11 - Two ranks - Others - Reserved. For 4 ranks following combinations are legal: - 0001 - One rank - 0011 - Two ra - ks - 1111 - Four ranks - PSU_DDRC_MSTR_ACTIVE_RANKS 0x1 - - SDRAM burst length used: - 0001 - Burst length of 2 (only supported for mDDR) - 0010 - Burst length of 4 - 0100 - Burst lengt - of 8 - 1000 - Burst length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other values are reserved. This controls - he burst size used to access the SDRAM. This must match the burst length mode register setting in the SDRAM. (For BC4/8 on-th - -fly mode of DDR3 and DDR4, set this field to 0x0100) Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGT - is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 - PSU_DDRC_MSTR_BURST_RDWR 0x4 - - Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low frequency operation. Set to 0 to put uMCTL2 and DRAM - n DLL-on mode for normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d - l_off_mode is not supported, and this bit must be set to '0'. - PSU_DDRC_MSTR_DLL_OFF_MODE 0x0 - - Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full DQ bus width to SDRAM - 01 - Half DQ bus width to SD - AM - 10 - Quarter DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is only supported when the SDRAM bus w - dth is a multiple of 16, and quarter bus width mode is only supported when the SDRAM bus width is a multiple of 32 and the co - figuration parameter MEMC_QBUS_SUPPORT is set. Bus width refers to DQ bus width (excluding any ECC width). - PSU_DDRC_MSTR_DATA_BUS_WIDTH 0x0 - - 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the DRAM in normal mode (1N). This register can be changed - only when the Controller is in self-refresh mode. This signal must be set the same value as MR3 bit A3. Note: Geardown mode - s not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set - PSU_DDRC_MSTR_GEARDOWN_MODE 0x0 - - If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timing, all command signals (except chip select) are held - or 2 clocks on the SDRAM bus. Chip select is asserted on the second cycle of the command Note: 2T timing is not supported in - PDDR2/LPDDR3/LPDDR4 mode Note: 2T timing is not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set Note: 2T ti - ing is not supported in DDR4 geardown mode. - PSU_DDRC_MSTR_EN_2T_TIMING_MODE 0x0 - - When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exercised only in HIF configurations (UMCTL2_INCL_ARB not s - t) and if in full bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exercised only if Partial Writes enable - (UMCTL2_PARTIAL_WR=1) and if CRC is disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabled (CRCPARCTL1.cr - _parity_retry_enable = 1), burst chop is not supported, and this bit must be set to '0' - PSU_DDRC_MSTR_BURSTCHOP 0x0 - - Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 device in use Present only in designs configured to su - port LPDDR4. - PSU_DDRC_MSTR_LPDDR4 0x0 - - Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device in use Present only in designs configured to support - DR4. - PSU_DDRC_MSTR_DDR4 0x1 - - Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 device in use Present only in designs configured to su - port LPDDR3. - PSU_DDRC_MSTR_LPDDR3 0x0 - - Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 device in use Present only in designs configured to su - port LPDDR2. - PSU_DDRC_MSTR_LPDDR2 0x0 - - Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM device in use Only present in designs that support DDR3 - - PSU_DDRC_MSTR_DDR3 0x0 - - Master Register - (OFFSET, MASK, VALUE) (0XFD070000, 0xE30FBE3DU ,0x41040010U) - RegMask = (DDRC_MSTR_DEVICE_CONFIG_MASK | DDRC_MSTR_FREQUENCY_MODE_MASK | DDRC_MSTR_ACTIVE_RANKS_MASK | DDRC_MSTR_BURST_RDWR_MASK | DDRC_MSTR_DLL_OFF_MODE_MASK | DDRC_MSTR_DATA_BUS_WIDTH_MASK | DDRC_MSTR_GEARDOWN_MODE_MASK | DDRC_MSTR_EN_2T_TIMING_MODE_MASK | DDRC_MSTR_BURSTCHOP_MASK | DDRC_MSTR_LPDDR4_MASK | DDRC_MSTR_DDR4_MASK | DDRC_MSTR_LPDDR3_MASK | DDRC_MSTR_LPDDR2_MASK | DDRC_MSTR_DDR3_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_MSTR_DEVICE_CONFIG_SHIFT - | 0x00000000U << DDRC_MSTR_FREQUENCY_MODE_SHIFT - | 0x00000001U << DDRC_MSTR_ACTIVE_RANKS_SHIFT - | 0x00000004U << DDRC_MSTR_BURST_RDWR_SHIFT - | 0x00000000U << DDRC_MSTR_DLL_OFF_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_DATA_BUS_WIDTH_SHIFT - | 0x00000000U << DDRC_MSTR_GEARDOWN_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_BURSTCHOP_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR4_SHIFT - | 0x00000001U << DDRC_MSTR_DDR4_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR3_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR2_SHIFT - | 0x00000000U << DDRC_MSTR_DDR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_MSTR_OFFSET ,0xE30FBE3DU ,0x41040010U); - /*############################################################################################################################ */ - - /*Register : MRCTRL0 @ 0XFD070010

      - - Setting this register bit to 1 triggers a mode register read or write operation. When the MR operation is complete, the uMCTL - automatically clears this bit. The other register fields of this register must be written in a separate APB transaction, bef - re setting this mr_wr bit. It is recommended NOT to set this signal if in Init, Deep power-down or MPSM operating modes. - PSU_DDRC_MRCTRL0_MR_WR 0x0 - - Address of the mode register that is to be written to. - 0000 - MR0 - 0001 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 010 - - MR5 - 0110 - MR6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data for mode register addressing in LPD - R2/LPDDR3/LPDDR4) This signal is also used for writing to control words of RDIMMs. In that case, it corresponds to the bank a - dress bits sent to the RDIMM In case of DDR4, the bit[3:2] corresponds to the bank group bits. Therefore, the bit[3] as well - s the bit[2:0] must be set to an appropriate value which is considered both the Address Mirroring of UDIMMs/RDIMMs and the Ou - put Inversion of RDIMMs. - PSU_DDRC_MRCTRL0_MR_ADDR 0x0 - - Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desired to access all ranks, so all bits should be set to 1 - However, for multi-rank UDIMMs/RDIMMs which implement address mirroring, it may be necessary to access ranks individually. E - amples (assume uMCTL2 is configured for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x5 - select ranks - and 2 - 0xA - select ranks 1 and 3 - 0xF - select ranks 0, 1, 2 and 3 - PSU_DDRC_MRCTRL0_MR_RANK 0x3 - - Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 before automatic SDRAM initialization routine or not. - or DDR4, this bit can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM initialization. For LPDDR4, this bit ca - be used to program additional mode registers before automatic SDRAM initialization if necessary. Note: This must be cleared - o 0 after completing Software operation. Otherwise, SDRAM initialization routine will not re-start. - 0 - Software interventi - n is not allowed - 1 - Software intervention is allowed - PSU_DDRC_MRCTRL0_SW_INIT_INT 0x0 - - Indicates whether the mode register operation is MRS in PDA mode or not - 0 - MRS - 1 - MRS in Per DRAM Addressability mode - PSU_DDRC_MRCTRL0_PDA_EN 0x0 - - Indicates whether the mode register operation is MRS or WR/RD for MPR (only supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR - PSU_DDRC_MRCTRL0_MPR_EN 0x0 - - Indicates whether the mode register operation is read or write. Only used for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Re - d - PSU_DDRC_MRCTRL0_MR_TYPE 0x0 - - Mode Register Read/Write Control Register 0. Note: Do not enable more than one of the following fields simultaneously: - sw_i - it_int - pda_en - mpr_en - (OFFSET, MASK, VALUE) (0XFD070010, 0x8000F03FU ,0x00000030U) - RegMask = (DDRC_MRCTRL0_MR_WR_MASK | DDRC_MRCTRL0_MR_ADDR_MASK | DDRC_MRCTRL0_MR_RANK_MASK | DDRC_MRCTRL0_SW_INIT_INT_MASK | DDRC_MRCTRL0_PDA_EN_MASK | DDRC_MRCTRL0_MPR_EN_MASK | DDRC_MRCTRL0_MR_TYPE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_MRCTRL0_MR_WR_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MR_ADDR_SHIFT - | 0x00000003U << DDRC_MRCTRL0_MR_RANK_SHIFT - | 0x00000000U << DDRC_MRCTRL0_SW_INIT_INT_SHIFT - | 0x00000000U << DDRC_MRCTRL0_PDA_EN_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MPR_EN_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MR_TYPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_MRCTRL0_OFFSET ,0x8000F03FU ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : DERATEEN @ 0XFD070020

      - - Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating uses +2. - 2 - Derating uses +3. - 3 - Derating uses +4 - Present only in designs configured to support LPDDR4. The required number of cycles for derating can be determined by dividi - g 3.75ns by the core_ddrc_core_clk period, and rounding up the next integer. - PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x3 - - Derate byte Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 Indicates which byte of the MRR data is used f - r derating. The maximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. - PSU_DDRC_DERATEEN_DERATE_BYTE 0x0 - - Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present only in designs configured to support LPDDR2/LPDDR3/LPDD - 4 Set to 0 for all LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ddrc_core_clk period. Can be 0 or 1 - for LPDDR3/LPDDR4, depending if +1.875 ns is less than a core_ddrc_core_clk period or not. - PSU_DDRC_DERATEEN_DERATE_VALUE 0x0 - - Enables derating - 0 - Timing parameter derating is disabled - 1 - Timing parameter derating is enabled using MR4 read value. - Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set to '0' for non-LPDDR2/LPDDR3/LPDDR4 - mode. - PSU_DDRC_DERATEEN_DERATE_ENABLE 0x0 - - Temperature Derate Enable Register - (OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000300U) - RegMask = (DDRC_DERATEEN_RC_DERATE_VALUE_MASK | DDRC_DERATEEN_DERATE_BYTE_MASK | DDRC_DERATEEN_DERATE_VALUE_MASK | DDRC_DERATEEN_DERATE_ENABLE_MASK | 0 ); - - RegVal = ((0x00000003U << DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_BYTE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_VALUE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DERATEEN_OFFSET ,0x000003F3U ,0x00000300U); - /*############################################################################################################################ */ - - /*Register : DERATEINT @ 0XFD070024

      - - Interval between two MR4 reads, used to derate the timing parameters. Present only in designs configured to support LPDDR2/LP - DR3/LPDDR4. This register must not be set to zero - PSU_DDRC_DERATEINT_MR4_READ_INTERVAL 0x800000 - - Temperature Derate Interval Register - (OFFSET, MASK, VALUE) (0XFD070024, 0xFFFFFFFFU ,0x00800000U) - RegMask = (DDRC_DERATEINT_MR4_READ_INTERVAL_MASK | 0 ); - - RegVal = ((0x00800000U << DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DERATEINT_OFFSET ,0xFFFFFFFFU ,0x00800000U); - /*############################################################################################################################ */ - - /*Register : PWRCTL @ 0XFD070030

      - - Self refresh state is an intermediate state to enter to Self refresh power down state or exit Self refresh power down state f - r LPDDR4. This register controls transition from the Self refresh state. - 1 - Prohibit transition from Self refresh state - - - Allow transition from Self refresh state - PSU_DDRC_PWRCTL_STAY_IN_SELFREF 0x0 - - A value of 1 to this register causes system to move to Self Refresh state immediately, as long as it is not in INIT or DPD/MP - M operating_mode. This is referred to as Software Entry/Exit to Self Refresh. - 1 - Software Entry to Self Refresh - 0 - Soft - are Exit from Self Refresh - PSU_DDRC_PWRCTL_SELFREF_SW 0x0 - - When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode when the transaction store is empty. This register m - st be reset to '0' to bring uMCTL2 out of maximum power saving mode. Present only in designs configured to support DDR4. For - on-DDR4, this register should not be set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if the PHY parameter - DWC_AC_CS_USE is disabled, as the MPSM exit sequence requires the chip-select signal to toggle. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRCTL_MPSM_EN 0x0 - - Enable the assertion of dfi_dram_clk_disable whenever a clock is not required by the SDRAM. If set to 0, dfi_dram_clk_disable - is never asserted. Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only be asserted in Self Refresh. In DD - 4, can be asserted in following: - in Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, can be asserted in - ollowing: - in Self Refresh - in Power Down - in Deep Power Down - during Normal operation (Clock Stop) In LPDDR4, can be ass - rted in following: - in Self Refresh Power Down - in Power Down - during Normal operation (Clock Stop) - PSU_DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE 0x0 - - When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the transaction store is empty. This register must be re - et to '0' to bring uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM initialization on deep power-down - xit. Present only in designs configured to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPDDR3, this registe - should not be set to 1. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRCTL_DEEPPOWERDOWN_EN 0x0 - - If true then the uMCTL2 goes into power-down after a programmable number of cycles 'maximum idle clocks before power down' (P - RTMG.powerdown_to_x32). This register bit may be re-programmed during the course of normal operation. - PSU_DDRC_PWRCTL_POWERDOWN_EN 0x0 - - If true then the uMCTL2 puts the SDRAM into Self Refresh after a programmable number of cycles 'maximum idle clocks before Se - f Refresh (PWRTMG.selfref_to_x32)'. This register bit may be re-programmed during the course of normal operation. - PSU_DDRC_PWRCTL_SELFREF_EN 0x0 - - Low Power Control Register - (OFFSET, MASK, VALUE) (0XFD070030, 0x0000007FU ,0x00000000U) - RegMask = (DDRC_PWRCTL_STAY_IN_SELFREF_MASK | DDRC_PWRCTL_SELFREF_SW_MASK | DDRC_PWRCTL_MPSM_EN_MASK | DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK | DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK | DDRC_PWRCTL_POWERDOWN_EN_MASK | DDRC_PWRCTL_SELFREF_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT - | 0x00000000U << DDRC_PWRCTL_SELFREF_SW_SHIFT - | 0x00000000U << DDRC_PWRCTL_MPSM_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT - | 0x00000000U << DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_POWERDOWN_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_SELFREF_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PWRCTL_OFFSET ,0x0000007FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PWRTMG @ 0XFD070034

      - - After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into Self Refresh. This must be enabled in - he PWRCTL.selfref_en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_SELFREF_TO_X32 0x40 - - Minimum deep power-down time. For mDDR, value from the JEDEC specification is 0 as mDDR exits from deep power-down mode immed - ately after PWRCTL.deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDEC specification is 500us. Unit: Mul - iples of 4096 clocks. Present only in designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_T_DPD_X4096 0x84 - - After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into power-down. This must be enabled in th - PWRCTL.powerdown_en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_POWERDOWN_TO_X32 0x10 - - Low Power Timing Register - (OFFSET, MASK, VALUE) (0XFD070034, 0x00FFFF1FU ,0x00408410U) - RegMask = (DDRC_PWRTMG_SELFREF_TO_X32_MASK | DDRC_PWRTMG_T_DPD_X4096_MASK | DDRC_PWRTMG_POWERDOWN_TO_X32_MASK | 0 ); - - RegVal = ((0x00000040U << DDRC_PWRTMG_SELFREF_TO_X32_SHIFT - | 0x00000084U << DDRC_PWRTMG_T_DPD_X4096_SHIFT - | 0x00000010U << DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PWRTMG_OFFSET ,0x00FFFF1FU ,0x00408410U); - /*############################################################################################################################ */ - - /*Register : RFSHCTL0 @ 0XFD070050

      - - Threshold value in number of clock cycles before the critical refresh or page timer expires. A critical refresh is to be issu - d before this threshold is reached. It is recommended that this not be changed from the default value, currently shown as 0x2 - It must always be less than internally used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally used t_rfc_nom_x32 - may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating is enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_ - om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clocks. - PSU_DDRC_RFSHCTL0_REFRESH_MARGIN 0x2 - - If the refresh timer (tRFCnom, also known as tREFI) has expired at least once, but it has not expired (RFSHCTL0.refresh_burst - 1) times yet, then a speculative refresh may be performed. A speculative refresh is a refresh performed at a time when refres - would be useful, but before it is absolutely required. When the SDRAM bus is idle for a period of time determined by this RF - HCTL0.refresh_to_x32 and the refresh timer has expired at least once since the last refresh, then a speculative refresh is pe - formed. Speculative refreshes continues successively until there are no refreshes pending or until new reads or writes are is - ued to the uMCTL2. FOR PERFORMANCE ONLY. - PSU_DDRC_RFSHCTL0_REFRESH_TO_X32 0x10 - - The programmed value + 1 is the number of refresh timeouts that is allowed to accumulate before traffic is blocked and the re - reshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of re - reshes. Therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for - RFSHCTL.refresh_burst slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshe - . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh For information on burst refresh feature refer to se - tion 3.9 of DDR2 JEDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always per-rank and not per-bank. The rank r - fresh can be accumulated over 8*tREFI cycles using the burst refresh feature. In DDR4 mode, according to Fine Granularity fea - ure, 8 refreshes can be postponed in 1X mode, 16 refreshes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upd - tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ensure that tRFCmax is not violated due to a PHY-initiat - d update occurring shortly before a refresh burst was due. In this situation, the refresh burst will be delayed until the PHY - initiated update is complete. - PSU_DDRC_RFSHCTL0_REFRESH_BURST 0x0 - - - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows traffic to flow to other banks. Per bank refresh is n - t supported by all LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Present only in designs configured to - support LPDDR2/LPDDR3/LPDDR4 - PSU_DDRC_RFSHCTL0_PER_BANK_REFRESH 0x0 - - Refresh Control Register 0 - (OFFSET, MASK, VALUE) (0XFD070050, 0x00F1F1F4U ,0x00210000U) - RegMask = (DDRC_RFSHCTL0_REFRESH_MARGIN_MASK | DDRC_RFSHCTL0_REFRESH_TO_X32_MASK | DDRC_RFSHCTL0_REFRESH_BURST_MASK | DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT - | 0x00000010U << DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT - | 0x00000000U << DDRC_RFSHCTL0_REFRESH_BURST_SHIFT - | 0x00000000U << DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHCTL0_OFFSET ,0x00F1F1F4U ,0x00210000U); - /*############################################################################################################################ */ - - /*Register : RFSHCTL3 @ 0XFD070060

      - - Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fixed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x ( - ot supported) - 110 - Enable on the fly 4x (not supported) - Everything else - reserved Note: The on-the-fly modes is not sup - orted in this version of the uMCTL2. Note: This must be set up while the Controller is in reset or while the Controller is in - self-refresh mode. Changing this during normal operation is not allowed. Making this a dynamic register will be supported in - uture version of the uMCTL2. - PSU_DDRC_RFSHCTL3_REFRESH_MODE 0x0 - - Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that the refresh register(s) have been updated. The value - s automatically updated when exiting reset, so it does not need to be toggled initially. - PSU_DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL 0x0 - - When '1', disable auto-refresh generated by the uMCTL2. When auto-refresh is disabled, the SoC core must generate refreshes u - ing the registers reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh and reg_ddrc_rank3_refresh. When dis - auto_refresh transitions from 0 to 1, any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 CRC/parity retry - is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), disable auto-refresh is not supported, and this bit must be set to '0'. - his register field is changeable on the fly. - PSU_DDRC_RFSHCTL3_DIS_AUTO_REFRESH 0x1 - - Refresh Control Register 3 - (OFFSET, MASK, VALUE) (0XFD070060, 0x00000073U ,0x00000001U) - RegMask = (DDRC_RFSHCTL3_REFRESH_MODE_MASK | DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK | DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_RFSHCTL3_REFRESH_MODE_SHIFT - | 0x00000000U << DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT - | 0x00000001U << DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHCTL3_OFFSET ,0x00000073U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : RFSHTMG @ 0XFD070064

      - - tREFI: Average time interval between refreshes per rank (Specification: 7.8us for DDR2, DDR3 and DDR4. See JEDEC specificatio - for mDDR, LPDDR2, LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refreshes (RFSHCTL0.per_bank_refresh = 0 - , this register should be set to tREFIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this register should - e set to tREFIpb For configurations with MEMC_FREQ_RATIO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI va - ue is different depending on the refresh mode. The user should program the appropriate value from the spec based on the value - programmed in the refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be greater than RFSHTMG.t_rfc_min, and RFS - TMG.t_rfc_nom_x32 must be greater than 0x1. Unit: Multiples of 32 clocks. - PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x82 - - Used only when LPDDR3 memory type is connected. Should only be changed when uMCTL2 is in reset. Specifies whether to use the - REFBW parameter (required by some LPDDR3 devices which comply with earlier versions of the LPDDR3 JEDEC specification) or not - - 0 - tREFBW parameter not used - 1 - tREFBW parameter used - PSU_DDRC_RFSHTMG_LPDDR3_TREFBW_EN 0x1 - - tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_FREQ_RATIO=1 configurations, t_rfc_min should be set t - RoundUp(tRFCmin/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to RoundUp(RoundUp(tRFCmin/tCK)/2). In L - DDR2/LPDDR3/LPDDR4 mode: - if using all-bank refreshes, the tRFCmin value in the above equations is equal to tRFCab - if usin - per-bank refreshes, the tRFCmin value in the above equations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above - equations is different depending on the refresh mode (fixed 1X,2X,4X) and the device density. The user should program the app - opriate value from the spec based on the 'refresh_mode' and the device density that is used. Unit: Clocks. - PSU_DDRC_RFSHTMG_T_RFC_MIN 0x8b - - Refresh Timing Register - (OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0082808BU) - RegMask = (DDRC_RFSHTMG_T_RFC_NOM_X32_MASK | DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK | DDRC_RFSHTMG_T_RFC_MIN_MASK | 0 ); - - RegVal = ((0x00000082U << DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT - | 0x00000001U << DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT - | 0x0000008BU << DDRC_RFSHTMG_T_RFC_MIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHTMG_OFFSET ,0x0FFF83FFU ,0x0082808BU); - /*############################################################################################################################ */ - - /*Register : ECCCFG0 @ 0XFD070070

      - - Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_USE_RMW is defined - PSU_DDRC_ECCCFG0_DIS_SCRUB 0x1 - - ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED over 1 beat - all other settings are reserved for futur - use - PSU_DDRC_ECCCFG0_ECC_MODE 0x0 - - ECC Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070070, 0x00000017U ,0x00000010U) - RegMask = (DDRC_ECCCFG0_DIS_SCRUB_MASK | DDRC_ECCCFG0_ECC_MODE_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_ECCCFG0_DIS_SCRUB_SHIFT - | 0x00000000U << DDRC_ECCCFG0_ECC_MODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ECCCFG0_OFFSET ,0x00000017U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : ECCCFG1 @ 0XFD070074

      - - Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) data poisoning, if 1 -> 1-bit (correctable) data poison - ng, if ECCCFG1.data_poison_en=1 - PSU_DDRC_ECCCFG1_DATA_POISON_BIT 0x0 - - Enable ECC data poisoning - introduces ECC errors on writes to address specified by the ECCPOISONADDR0/1 registers - PSU_DDRC_ECCCFG1_DATA_POISON_EN 0x0 - - ECC Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070074, 0x00000003U ,0x00000000U) - RegMask = (DDRC_ECCCFG1_DATA_POISON_BIT_MASK | DDRC_ECCCFG1_DATA_POISON_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT - | 0x00000000U << DDRC_ECCCFG1_DATA_POISON_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ECCCFG1_OFFSET ,0x00000003U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CRCPARCTL1 @ 0XFD0700C4

      - - The maximum number of DFI PHY clock cycles allowed from the assertion of the dfi_rddata_en signal to the assertion of each of - the corresponding bits of the dfi_rddata_valid signal. This corresponds to the DFI timing parameter tphy_rdlat. Refer to PHY - pecification for correct value. This value it only used for detecting read data timeout when DDR4 retry is enabled by CRCPARC - L1.crc_parity_retry_enable=1. Maximum supported value: - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ - dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mo - e ANDAND DFITMG0.dfi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_rdlat < 'd114 Unit: DFI Clocks - PSU_DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT 0x10 - - After a Parity or CRC error is flagged on dfi_alert_n signal, the software has an option to read the mode registers in the DR - M before the hardware begins the retry process - 1: Wait for software to read/write the mode registers before hardware begins - the retry. After software is done with its operations, it will clear the alert interrupt register bit - 0: Hardware can begin - the retry right away after the dfi_alert_n pulse goes away. The value on this register is valid only when retry is enabled (P - RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if the software doesn't clear the interrupt register afte - handling the parity/CRC error, then the hardware will not begin the retry process and the system will hang. In the case of P - rity/CRC error, there are two possibilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persistent parity' mode re - ister bit is NOT set: the commands sent during retry and normal operation are executed without parity checking. The value in - he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent parity' mode register bit is SET: Parity checking is - one for commands sent during retry and normal operation. If multiple errors occur before MR5[4] is cleared, the error log in - PR Page 1 should be treated as 'Don't care'. - PSU_DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW 0x1 - - - 1: Enable command retry mechanism in case of C/A Parity or CRC error - 0: Disable command retry mechanism when C/A Parity o - CRC features are enabled. Note that retry functionality is not supported if burst chop is enabled (MSTR.burstchop = 1) and/o - disable auto-refresh is enabled (RFSHCTL3.dis_auto_refresh = 1) - PSU_DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE 0x0 - - CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC not includes DM signal Present only in designs configur - d to support DDR4. - PSU_DDRC_CRCPARCTL1_CRC_INC_DM 0x0 - - CRC enable Register - 1: Enable generation of CRC - 0: Disable generation of CRC The setting of this register should match th - CRC mode register setting in the DRAM. - PSU_DDRC_CRCPARCTL1_CRC_ENABLE 0x0 - - C/A Parity enable register - 1: Enable generation of C/A parity and detection of C/A parity error - 0: Disable generation of - /A parity and disable detection of C/A parity error If RCD's parity error detection or SDRAM's parity detection is enabled, t - is register should be 1. - PSU_DDRC_CRCPARCTL1_PARITY_ENABLE 0x0 - - CRC Parity Control Register1 - (OFFSET, MASK, VALUE) (0XFD0700C4, 0x3F000391U ,0x10000200U) - RegMask = (DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK | DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK | DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK | DDRC_CRCPARCTL1_CRC_INC_DM_MASK | DDRC_CRCPARCTL1_CRC_ENABLE_MASK | DDRC_CRCPARCTL1_PARITY_ENABLE_MASK | 0 ); - - RegVal = ((0x00000010U << DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT - | 0x00000001U << DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_CRCPARCTL1_OFFSET ,0x3F000391U ,0x10000200U); - /*############################################################################################################################ */ - - /*Register : CRCPARCTL2 @ 0XFD0700C8

      - - Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a parity error occurs. Recommended values - - tPAR_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT_PW.MAX/2 and round up to next inte - er value. Values of 0, 1 and 2 are illegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. - PSU_DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX 0x40 - - Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a CRC error occurs. Recommended values: - - tCRC_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW.MAX/2 and round up to next integer - value. Values of 0, 1 and 2 are illegal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. - PSU_DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX 0x5 - - Indicates the maximum duration in number of DRAM clock cycles for which a command should be held in the Command Retry FIFO be - ore it is popped out. Every location in the Command Retry FIFO has an associated down counting timer that will use this regis - er as the start value. The down counting starts when a command is loaded into the FIFO. The timer counts down every 4 DRAM cy - les. When the counter reaches zero, the entry is popped from the FIFO. All the counters are frozen, if a C/A Parity or CRC er - or occurs before the counter reaches zero. The counter is reset to 0, after all the commands in the FIFO are retried. Recomme - ded(minimum) values: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + tPAR_ALERT_ON - max + tPAR_UNKNOWN + PHY Alert Latency(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enabled/ Only CRC is en - bled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) - + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be in terms of DRAM Clock and round up Note 2: Board de - ay(Command/Alert_n) should be considered. Note 3: Use the worst case(longer) value for PHY Latencies/Board delay Note 4: The - ecommended values are minimum value to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max value can be set - to this register is defined below: - MEMC_BURST_LENGTH == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH- - Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_D - PTH-4 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CM - _FIFO_DEPTH-8 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 Full bus Mode (C - C=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mo - e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarte - bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEP - H-6 Values of 0, 1 and 2 are illegal. - PSU_DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4 0x1f - - CRC Parity Control Register2 - (OFFSET, MASK, VALUE) (0XFD0700C8, 0x01FF1F3FU ,0x0040051FU) - RegMask = (DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK | DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK | DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK | 0 ); - - RegVal = ((0x00000040U << DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT - | 0x00000005U << DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT - | 0x0000001FU << DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_CRCPARCTL2_OFFSET ,0x01FF1F3FU ,0x0040051FU); - /*############################################################################################################################ */ - - /*Register : INIT0 @ 0XFD0700D0

      - - If lower bit is enabled the SDRAM initialization routine is skipped. The upper bit decides what state the controller starts u - in when reset is removed - 00 - SDRAM Intialization routine is run after power-up - 01 - SDRAM Intialization routine is skip - ed after power-up. Controller starts up in Normal Mode - 11 - SDRAM Intialization routine is skipped after power-up. Controll - r starts up in Self-refresh Mode - 10 - SDRAM Intialization routine is run after power-up. Note: The only 2'b00 is supported - or LPDDR4 in this version of the uMCTL2. - PSU_DDRC_INIT0_SKIP_DRAM_INIT 0x0 - - Cycles to wait after driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clocks. DDR2 typically requires - 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDDR3 typically requires this to be pr - grammed for a delay of 200 us. LPDDR4 typically requires this to be programmed for a delay of 2 us. For configurations with M - MC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it up to next integer value. - PSU_DDRC_INIT0_POST_CKE_X1024 0x2 - - Cycles to wait after reset before driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clock cycles. DDR2 - pecifications typically require this to be programmed for a delay of >= 200 us. LPDDR2/LPDDR3: tINIT1 of 100 ns (min) LPDDR4: - tINIT3 of 2 ms (min) For configurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it u - to next integer value. - PSU_DDRC_INIT0_PRE_CKE_X1024 0x106 - - SDRAM Initialization Register 0 - (OFFSET, MASK, VALUE) (0XFD0700D0, 0xC3FF0FFFU ,0x00020106U) - RegMask = (DDRC_INIT0_SKIP_DRAM_INIT_MASK | DDRC_INIT0_POST_CKE_X1024_MASK | DDRC_INIT0_PRE_CKE_X1024_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_INIT0_SKIP_DRAM_INIT_SHIFT - | 0x00000002U << DDRC_INIT0_POST_CKE_X1024_SHIFT - | 0x00000106U << DDRC_INIT0_PRE_CKE_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT0_OFFSET ,0xC3FF0FFFU ,0x00020106U); - /*############################################################################################################################ */ - - /*Register : INIT1 @ 0XFD0700D4

      - - Number of cycles to assert SDRAM reset signal during init sequence. This is only present for designs supporting DDR3, DDR4 or - LPDDR4 devices. For use with a DDR PHY, this should be set to a minimum of 1 - PSU_DDRC_INIT1_DRAM_RSTN_X1024 0x2 - - Cycles to wait after completing the SDRAM initialization sequence before starting the dynamic scheduler. Unit: Counts of a gl - bal timer that pulses every 32 clock cycles. There is no known specific requirement for this; it may be set to zero. - PSU_DDRC_INIT1_FINAL_WAIT_X32 0x0 - - Wait period before driving the OCD complete command to SDRAM. Unit: Counts of a global timer that pulses every 32 clock cycle - . There is no known specific requirement for this; it may be set to zero. - PSU_DDRC_INIT1_PRE_OCD_X32 0x0 - - SDRAM Initialization Register 1 - (OFFSET, MASK, VALUE) (0XFD0700D4, 0x01FF7F0FU ,0x00020000U) - RegMask = (DDRC_INIT1_DRAM_RSTN_X1024_MASK | DDRC_INIT1_FINAL_WAIT_X32_MASK | DDRC_INIT1_PRE_OCD_X32_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_INIT1_DRAM_RSTN_X1024_SHIFT - | 0x00000000U << DDRC_INIT1_FINAL_WAIT_X32_SHIFT - | 0x00000000U << DDRC_INIT1_PRE_OCD_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT1_OFFSET ,0x01FF7F0FU ,0x00020000U); - /*############################################################################################################################ */ - - /*Register : INIT2 @ 0XFD0700D8

      - - Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Unit: 32 clock cycles. - PSU_DDRC_INIT2_IDLE_AFTER_RESET_X32 0x23 - - Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2/LPDDR3. Unit: 1 clock cyc - e. LPDDR2/LPDDR3 typically requires 5 x tCK delay. - PSU_DDRC_INIT2_MIN_STABLE_CLOCK_X1 0x5 - - SDRAM Initialization Register 2 - (OFFSET, MASK, VALUE) (0XFD0700D8, 0x0000FF0FU ,0x00002305U) - RegMask = (DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK | DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK | 0 ); - - RegVal = ((0x00000023U << DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT - | 0x00000005U << DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT2_OFFSET ,0x0000FF0FU ,0x00002305U); - /*############################################################################################################################ */ - - /*Register : INIT3 @ 0XFD0700DC

      - - DDR2: Value to write to MR register. Bit 8 is for DLL and the setting here is ignored. The uMCTL2 sets this bit appropriately - DDR3/DDR4: Value loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LPDDR3/LPDDR4 - Value to write to MR1 - register - PSU_DDRC_INIT3_MR 0x930 - - DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setting in this register is ignored. The uMCTL2 sets those - bits appropriately. DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evaluation mode training is enabled, thi - bit is set appropriately by the uMCTL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/LPDDR3/LPDDR4 - V - lue to write to MR2 register - PSU_DDRC_INIT3_EMR 0x301 - - SDRAM Initialization Register 3 - (OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x09300301U) - RegMask = (DDRC_INIT3_MR_MASK | DDRC_INIT3_EMR_MASK | 0 ); - - RegVal = ((0x00000930U << DDRC_INIT3_MR_SHIFT - | 0x00000301U << DDRC_INIT3_EMR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT3_OFFSET ,0xFFFFFFFFU ,0x09300301U); - /*############################################################################################################################ */ - - /*Register : INIT4 @ 0XFD0700E0

      - - DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 - egister mDDR: Unused - PSU_DDRC_INIT4_EMR2 0x20 - - DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to - rite to MR13 register - PSU_DDRC_INIT4_EMR3 0x200 - - SDRAM Initialization Register 4 - (OFFSET, MASK, VALUE) (0XFD0700E0, 0xFFFFFFFFU ,0x00200200U) - RegMask = (DDRC_INIT4_EMR2_MASK | DDRC_INIT4_EMR3_MASK | 0 ); - - RegVal = ((0x00000020U << DDRC_INIT4_EMR2_SHIFT - | 0x00000200U << DDRC_INIT4_EMR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT4_OFFSET ,0xFFFFFFFFU ,0x00200200U); - /*############################################################################################################################ */ - - /*Register : INIT5 @ 0XFD0700E4

      - - ZQ initial calibration, tZQINIT. Present only in designs configured to support DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock - ycles. DDR3 typically requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requires 1 us. - PSU_DDRC_INIT5_DEV_ZQINIT_X32 0x21 - - Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2/LPDDR3. LPDDR2/LPDD - 3 typically requires 10 us. - PSU_DDRC_INIT5_MAX_AUTO_INIT_X1024 0x4 - - SDRAM Initialization Register 5 - (OFFSET, MASK, VALUE) (0XFD0700E4, 0x00FF03FFU ,0x00210004U) - RegMask = (DDRC_INIT5_DEV_ZQINIT_X32_MASK | DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK | 0 ); - - RegVal = ((0x00000021U << DDRC_INIT5_DEV_ZQINIT_X32_SHIFT - | 0x00000004U << DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT5_OFFSET ,0x00FF03FFU ,0x00210004U); - /*############################################################################################################################ */ - - /*Register : INIT6 @ 0XFD0700E8

      - - DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs only. - PSU_DDRC_INIT6_MR4 0x0 - - DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs only. - PSU_DDRC_INIT6_MR5 0x6c0 - - SDRAM Initialization Register 6 - (OFFSET, MASK, VALUE) (0XFD0700E8, 0xFFFFFFFFU ,0x000006C0U) - RegMask = (DDRC_INIT6_MR4_MASK | DDRC_INIT6_MR5_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_INIT6_MR4_SHIFT - | 0x000006C0U << DDRC_INIT6_MR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT6_OFFSET ,0xFFFFFFFFU ,0x000006C0U); - /*############################################################################################################################ */ - - /*Register : INIT7 @ 0XFD0700EC

      - - DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs only. - PSU_DDRC_INIT7_MR6 0x819 - - SDRAM Initialization Register 7 - (OFFSET, MASK, VALUE) (0XFD0700EC, 0xFFFF0000U ,0x08190000U) - RegMask = (DDRC_INIT7_MR6_MASK | 0 ); - - RegVal = ((0x00000819U << DDRC_INIT7_MR6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT7_OFFSET ,0xFFFF0000U ,0x08190000U); - /*############################################################################################################################ */ - - /*Register : DIMMCTL @ 0XFD0700F0

      - - Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enab - ed. This will be required for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapped. - 0 - BG0 and BG1 are swapped i - address mirroring is enabled. - PSU_DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING 0x0 - - Enable for BG1 bit of MRS command. BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output - nversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit. Note: This has no - effect on the address of any other memory accesses, or of software-driven mode register accesses. If address mirroring is ena - led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - Enabled - 0 - Disabled - PSU_DDRC_DIMMCTL_MRS_BG1_EN 0x1 - - Enable for A17 bit of MRS command. A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, - his must be set to 0, so that the calculation of CA parity will not include A17 bit. Note: This has no effect on the address - f any other memory accesses, or of software-driven mode register accesses. - 1 - Enabled - 0 - Disabled - PSU_DDRC_DIMMCTL_MRS_A17_EN 0x0 - - Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIMM implements the Output Inversion feature by default, - which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, - A0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the uMCTL2 during the automatic initi - lization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. - or B-side mode register accesses, these bits are inverted within the uMCTL2 to compensate for this RDIMM inversion. Note: Thi - has no effect on the address of any other memory accesses, or of software-driven mode register accesses. - 1 - Implement out - ut inversion for B-side DRAMs. - 0 - Do not implement output inversion for B-side DRAMs. - PSU_DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN 0x0 - - Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations). Some UDIMMs and DD - 4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits - re swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures t - at, for mode register accesses during the automatic initialization routine, these bits are swapped within the uMCTL2 to compe - sate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they ar - swapped during the automatic MRS access to enable/disable of a particular DDR4 feature. Note: This has no effect on the addr - ss of any other memory accesses, or of software-driven mode register accesses. This is not supported for mDDR, LPDDR2, LPDDR3 - or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, - hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ranks, implement address mirroring for MRS commands to d - ring initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring) - 0 - Do - not implement address mirroring - PSU_DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN 0x0 - - Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only). This is not supported for mD - R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of software driven MR commands (via M - CTRL0/MRCTRL1), where software is responsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Send MRS commands t - each ranks seperately - 1 - (non-DDR4) Send all commands to even and odd ranks seperately - 0 - Do not stagger accesses - PSU_DDRC_DIMMCTL_DIMM_STAGGER_CS_EN 0x0 - - DIMM Control Register - (OFFSET, MASK, VALUE) (0XFD0700F0, 0x0000003FU ,0x00000010U) - RegMask = (DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK | DDRC_DIMMCTL_MRS_BG1_EN_MASK | DDRC_DIMMCTL_MRS_A17_EN_MASK | DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK | DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK | DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT - | 0x00000001U << DDRC_DIMMCTL_MRS_BG1_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_MRS_A17_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DIMMCTL_OFFSET ,0x0000003FU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : RANKCTL @ 0XFD0700F4

      - - Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e writes to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should c - nsider both PHY requirement and ODT requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for value of tphy_wrcs - ap) If CRC feature is enabled, should be increased by 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increa - ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be increased by 1. - ODT requirement: The value programmed - n this register takes care of the ODT switch off timing requirement when switching ranks during writes. For LPDDR4, the requi - ement is ODTLoff - ODTLon - BL/2 + 1 For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY requirement - or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and round it u - to the next integer. - PSU_DDRC_RANKCTL_DIFF_RANK_WR_GAP 0x6 - - Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e reads to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should co - sider both PHY requirement and ODT requirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for value of tphy_rdcsg - p) If read preamble is set to 2tCK(DDR4/LPDDR4 only), should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 onl - ), should be increased by 1. - ODT requirement: The value programmed in this register takes care of the ODT switch off timing - requirement when switching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY r - quirement or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and - ound it up to the next integer. - PSU_DDRC_RANKCTL_DIFF_RANK_RD_GAP 0x6 - - Only present for multi-rank configurations. Background: Reads to the same rank can be performed back-to-back. Reads to differ - nt ranks require additional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is to avoid possible data bus content - on as well as to give PHY enough time to switch the delay when changing ranks. The uMCTL2 arbitrates for bus access on a cycl - -by-cycle basis; therefore after a read is scheduled, there are few clock cycles (determined by the value on RANKCTL.diff_ran - _rd_gap register) in which only reads from the same rank are eligible to be scheduled. This prevents reads from other ranks f - om having fair access to the data bus. This parameter represents the maximum number of reads that can be scheduled consecutiv - ly to the same rank. After this number is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by the scheduler to - llow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fair - ess. This feature can be DISABLED by setting this register to 0. When set to 0, the Controller will stay on the same rank as - ong as commands are available for it. Minimum programmable value is 0 (feature disabled) and maximum programmable value is 0x - . FOR PERFORMANCE ONLY. - PSU_DDRC_RANKCTL_MAX_RANK_RD 0xf - - Rank Control Register - (OFFSET, MASK, VALUE) (0XFD0700F4, 0x00000FFFU ,0x0000066FU) - RegMask = (DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK | DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK | DDRC_RANKCTL_MAX_RANK_RD_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT - | 0x00000006U << DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT - | 0x0000000FU << DDRC_RANKCTL_MAX_RANK_RD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RANKCTL_OFFSET ,0x00000FFFU ,0x0000066FU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG0 @ 0XFD070100

      - - Minimum time between write and precharge to same bank. Unit: Clocks Specifications: WL + BL/2 + tWR = approximately 8 cycles - 15 ns = 14 clocks @400MHz and less for lower frequencies where: - WL = write latency - BL = burst length. This must match th - value programmed in the BL bit of the mode register to the SDRAM. BST (burst terminate) is not supported at present. - tWR = - Write recovery time. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this - arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For configurations - with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer value. - PSU_DDRC_DRAMTMG0_WR2PRE 0x11 - - tFAW Valid only when 8 or more banks(or banks x bank groups) are present. In 8-bank design, at most 4 banks must be activated - in a rolling window of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program this to (tFAW/2) and round up to next - nteger value. In a 4-bank design, set this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. Unit: Clocks - PSU_DDRC_DRAMTMG0_T_FAW 0xc - - tRAS(max): Maximum time between activate and precharge to same bank. This is the maximum time that a page can be kept open Mi - imum value of this register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO=2, program this to (tRAS(max)-1)/2 - No rounding up. Unit: Multiples of 1024 clocks. - PSU_DDRC_DRAMTMG0_T_RAS_MAX 0x24 - - tRAS(min): Minimum time between activate and precharge to the same bank. For configurations with MEMC_FREQ_RATIO=2, 1T mode, - rogram this to tRAS(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, program this t - (tRAS(min)/2) and round it up to the next integer value. Unit: Clocks - PSU_DDRC_DRAMTMG0_T_RAS_MIN 0x12 - - SDRAM Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x110C2412U) - RegMask = (DDRC_DRAMTMG0_WR2PRE_MASK | DDRC_DRAMTMG0_T_FAW_MASK | DDRC_DRAMTMG0_T_RAS_MAX_MASK | DDRC_DRAMTMG0_T_RAS_MIN_MASK | 0 ); - - RegVal = ((0x00000011U << DDRC_DRAMTMG0_WR2PRE_SHIFT - | 0x0000000CU << DDRC_DRAMTMG0_T_FAW_SHIFT - | 0x00000024U << DDRC_DRAMTMG0_T_RAS_MAX_SHIFT - | 0x00000012U << DDRC_DRAMTMG0_T_RAS_MIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG0_OFFSET ,0x7F3F7F3FU ,0x110C2412U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG1 @ 0XFD070104

      - - tXP: Minimum time after power-down exit to any operation. For DDR3, this should be programmed to tXPDLL if slow powerdown exi - is selected in MR0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For configurations with MEMC_FREQ_RATIO=2, - rogram this to (tXP/2) and round it up to the next integer value. Units: Clocks - PSU_DDRC_DRAMTMG1_T_XP 0x4 - - tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL/2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - D - R4: Max of following two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 - LPDDR2: Depends on if it's LPDDR2 - S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + tRTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) - 4 - LPDDR4: BL - 2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For conf - gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer val - e. Unit: Clocks. - PSU_DDRC_DRAMTMG1_RD2PRE 0x4 - - tRC: Minimum time between activates to same bank. For configurations with MEMC_FREQ_RATIO=2, program this to (tRC/2) and roun - up to next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG1_T_RC 0x19 - - SDRAM Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x00040419U) - RegMask = (DDRC_DRAMTMG1_T_XP_MASK | DDRC_DRAMTMG1_RD2PRE_MASK | DDRC_DRAMTMG1_T_RC_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DRAMTMG1_T_XP_SHIFT - | 0x00000004U << DDRC_DRAMTMG1_RD2PRE_SHIFT - | 0x00000019U << DDRC_DRAMTMG1_T_RC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG1_OFFSET ,0x001F1F7FU ,0x00040419U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG2 @ 0XFD070108

      - - Set to WL Time from write command to write data on SDRAM interface. This must be set to WL. For mDDR, it should normally be s - t to 1. Note that, depending on the PHY, if using RDIMM, it may be necessary to use a value of WL + 1 to compensate for the e - tra cycle of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above - equation by 2, and round it up to next integer. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAININ - is set), as the DFI read and write latencies defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks - PSU_DDRC_DRAMTMG2_WRITE_LATENCY 0x7 - - Set to RL Time from read command to read data on SDRAM interface. This must be set to RL. Note that, depending on the PHY, if - using RDIMM, it mat be necessary to use a value of RL + 1 to compensate for the extra cycle of latency through the RDIMM For - onfigurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next inte - er. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAINING is set), as the DFI read and write latenci - s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks - PSU_DDRC_DRAMTMG2_READ_LATENCY 0x8 - - DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL LPDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL - PDDR4(DQ ODT is Disabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL LPDDR4(DQ ODT is Enabled) : RL + B - /2 + RU(tDQSCKmax/tCK) + RD_POSTAMBLE - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write command. Include - time for bus turnaround and all per-bank, per-rank, and global constraints. Unit: Clocks. Where: - WL = write latency - BL = - urst length. This must match the value programmed in the BL bit of the mode register to the SDRAM - RL = read latency = CAS l - tency - WR_PREAMBLE = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = read postamble. This is unique to L - DDR4. For LPDDR2/LPDDR3/LPDDR4, if derating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should be used. For conf - gurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG2_RD2WR 0x6 - - DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimum time from write command to read command for same ba - k group. In others, minimum time from write command to read command. Includes time for bus turnaround, recovery times, and al - per-bank, per-rank, and global constraints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burs - length. This must match the value programmed in the BL bit of the mode register to the SDRAM - tWTR_L = internal write to re - d command delay for same bank group. This comes directly from the SDRAM specification. - tWTR = internal write to read comman - delay. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 operation. For configu - ations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG2_WR2RD 0xe - - SDRAM Timing Register 2 - (OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060EU) - RegMask = (DDRC_DRAMTMG2_WRITE_LATENCY_MASK | DDRC_DRAMTMG2_READ_LATENCY_MASK | DDRC_DRAMTMG2_RD2WR_MASK | DDRC_DRAMTMG2_WR2RD_MASK | 0 ); - - RegVal = ((0x00000007U << DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT - | 0x00000008U << DDRC_DRAMTMG2_READ_LATENCY_SHIFT - | 0x00000006U << DDRC_DRAMTMG2_RD2WR_SHIFT - | 0x0000000EU << DDRC_DRAMTMG2_WR2RD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG2_OFFSET ,0x3F3F3F3FU ,0x0708060EU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG3 @ 0XFD07010C

      - - Time to wait after a mode register write or read (MRW or MRR). Present only in designs configured to support LPDDR2, LPDDR3 o - LPDDR4. LPDDR2 typically requires value of 5. LPDDR3 typically requires value of 10. LPDDR4: Set this to the larger of tMRW - nd tMRWCKEL. For LPDDR2, this register is used for the time from a MRW/MRR to all other commands. For LDPDR3, this register i - used for the time from a MRW/MRR to a MRW/MRR. - PSU_DDRC_DRAMTMG3_T_MRW 0x5 - - tMRD: Cycles to wait after a mode register write or read. Depending on the connected SDRAM, tMRD represents: DDR2/mDDR: Time - rom MRS to any command DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Time from MRS to non-MRS command For c - nfigurations with MEMC_FREQ_RATIO=2, program this to (tMRD/2) and round it up to the next integer value. If C/A parity for DD - 4 is used, set to tMRD_PAR(tMOD+PL) instead. - PSU_DDRC_DRAMTMG3_T_MRD 0x4 - - tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode command and following non-load mode command. If C/A pari - y for DDR4 is used, set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or tMOD/2 (rounded up to next integer - if MEMC_FREQ_RATIO=2. Note that if using RDIMM, depending on the PHY, it may be necessary to use a value of tMOD + 1 or (tMO - + 1)/2 to compensate for the extra cycle of latency applied to mode register writes by the RDIMM chip. - PSU_DDRC_DRAMTMG3_T_MOD 0xc - - SDRAM Timing Register 3 - (OFFSET, MASK, VALUE) (0XFD07010C, 0x3FF3F3FFU ,0x0050400CU) - RegMask = (DDRC_DRAMTMG3_T_MRW_MASK | DDRC_DRAMTMG3_T_MRD_MASK | DDRC_DRAMTMG3_T_MOD_MASK | 0 ); - - RegVal = ((0x00000005U << DDRC_DRAMTMG3_T_MRW_SHIFT - | 0x00000004U << DDRC_DRAMTMG3_T_MRD_SHIFT - | 0x0000000CU << DDRC_DRAMTMG3_T_MOD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG3_OFFSET ,0x3FF3F3FFU ,0x0050400CU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG4 @ 0XFD070110

      - - tRCD - tAL: Minimum time from activate to read or write command to same bank. For configurations with MEMC_FREQ_RATIO=2, prog - am this to ((tRCD - tAL)/2) and round it up to the next integer value. Minimum value allowed for this register is 1, which im - lies minimum (tRCD - tAL) value to be 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RCD 0x8 - - DDR4: tCCD_L: This is the minimum time between two reads or two writes for same bank group. Others: tCCD: This is the minimum - time between two reads or two writes. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_L/2 or tCCD/2) and rou - d it up to the next integer value. Unit: clocks. - PSU_DDRC_DRAMTMG4_T_CCD 0x3 - - DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' for same bank group. Others: tRRD: Minimum time betwee - activates from bank 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program this to (tRRD_L/2 or tRRD/2) and round - it up to the next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RRD 0x3 - - tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ_RATIO=1 configurations, t_rp should be set to RoundU - (tRP/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(tRP/tCK)/2) + 1. For MEMC_FREQ_RATIO - 2 configurations in LPDDR4, t_rp should be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RP 0x9 - - SDRAM Timing Register 4 - (OFFSET, MASK, VALUE) (0XFD070110, 0x1F0F0F1FU ,0x08030309U) - RegMask = (DDRC_DRAMTMG4_T_RCD_MASK | DDRC_DRAMTMG4_T_CCD_MASK | DDRC_DRAMTMG4_T_RRD_MASK | DDRC_DRAMTMG4_T_RP_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_DRAMTMG4_T_RCD_SHIFT - | 0x00000003U << DDRC_DRAMTMG4_T_CCD_SHIFT - | 0x00000003U << DDRC_DRAMTMG4_T_RRD_SHIFT - | 0x00000009U << DDRC_DRAMTMG4_T_RP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG4_OFFSET ,0x1F0F0F1FU ,0x08030309U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG5 @ 0XFD070114

      - - This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stab - e time before SRX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEH - DDR2: 1 - DDR3: tCKSRX - DDR4: - tCKSRX For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next in - eger. - PSU_DDRC_DRAMTMG5_T_CKSRX 0x6 - - This is the time after Self Refresh Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay afte - SRE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 - DDR3: max (10 ns, 5 tCK) - DDR4: - ax (10 ns, 5 tCK) For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up - to next integer. - PSU_DDRC_DRAMTMG5_T_CKSRE 0x6 - - Minimum CKE low width for Self refresh or Self refresh power down entry to exit timing in memory clock cycles. Recommended se - tings: - mDDR: tRFC - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: tCKE - DDR3: tCKE + 1 - DDR4: tCKE - 1 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next intege - . - PSU_DDRC_DRAMTMG5_T_CKESR 0x4 - - Minimum number of cycles of CKE HIGH/LOW during power-down and self refresh. - LPDDR2/LPDDR3 mode: Set this to the larger of - CKE or tCKESR - LPDDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/non-LPDDR3/non-LPDDR4 designs: Set - his to tCKE value. For configurations with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and round it up to th - next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG5_T_CKE 0x3 - - SDRAM Timing Register 5 - (OFFSET, MASK, VALUE) (0XFD070114, 0x0F0F3F1FU ,0x06060403U) - RegMask = (DDRC_DRAMTMG5_T_CKSRX_MASK | DDRC_DRAMTMG5_T_CKSRE_MASK | DDRC_DRAMTMG5_T_CKESR_MASK | DDRC_DRAMTMG5_T_CKE_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_DRAMTMG5_T_CKSRX_SHIFT - | 0x00000006U << DDRC_DRAMTMG5_T_CKSRE_SHIFT - | 0x00000004U << DDRC_DRAMTMG5_T_CKESR_SHIFT - | 0x00000003U << DDRC_DRAMTMG5_T_CKE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG5_OFFSET ,0x0F0F3F1FU ,0x06060403U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG6 @ 0XFD070118

      - - This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after - PDE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, program this to recom - ended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3 - devices. - PSU_DDRC_DRAMTMG6_T_CKDPDE 0x1 - - This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock - table time before DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, pr - gram this to recommended value divided by two and round it up to next integer. This is only present for designs supporting mD - R or LPDDR2 devices. - PSU_DDRC_DRAMTMG6_T_CKDPDX 0x1 - - This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing Clock Stop Exit. Specifies the - lock stable time before next command after Clock Stop Exit. Recommended settings: - mDDR: 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + - 2 - LPDDR4: tXP + 2 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it - p to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG6_T_CKCSX 0x4 - - SDRAM Timing Register 6 - (OFFSET, MASK, VALUE) (0XFD070118, 0x0F0F000FU ,0x01010004U) - RegMask = (DDRC_DRAMTMG6_T_CKDPDE_MASK | DDRC_DRAMTMG6_T_CKDPDX_MASK | DDRC_DRAMTMG6_T_CKCSX_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_DRAMTMG6_T_CKDPDE_SHIFT - | 0x00000001U << DDRC_DRAMTMG6_T_CKDPDX_SHIFT - | 0x00000004U << DDRC_DRAMTMG6_T_CKCSX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG6_OFFSET ,0x0F0F000FU ,0x01010004U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG7 @ 0XFD07011C

      - - This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. - ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configurations with MEMC_FREQ_RATIO=2, program t - is to recommended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or L - DDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG7_T_CKPDE 0x6 - - This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable - time before PDX. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For configurations with MEMC_FREQ_RATIO= - , program this to recommended value divided by two and round it up to next integer. This is only present for designs supporti - g mDDR or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG7_T_CKPDX 0x6 - - SDRAM Timing Register 7 - (OFFSET, MASK, VALUE) (0XFD07011C, 0x00000F0FU ,0x00000606U) - RegMask = (DDRC_DRAMTMG7_T_CKPDE_MASK | DDRC_DRAMTMG7_T_CKPDX_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_DRAMTMG7_T_CKPDE_SHIFT - | 0x00000006U << DDRC_DRAMTMG7_T_CKPDX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG7_OFFSET ,0x00000F0FU ,0x00000606U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG8 @ 0XFD070120

      - - tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and Geardown mode). For configurations with MEMC_FREQ_RAT - O=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Thi - is applicable to only ZQCL/ZQCS commands. Note: Ensure this is less than or equal to t_xs_x32. - PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x4 - - tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in Self Refresh Abort. For configurations with MEMC_FREQ_ - ATIO=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: - nsure this is less than or equal to t_xs_x32. - PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x4 - - tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - bove value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DR4 SDRAMs. - PSU_DDRC_DRAMTMG8_T_XS_DLL_X32 0xd - - tXS: Exit Self Refresh to commands not requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DDR4 SDRAMs. - PSU_DDRC_DRAMTMG8_T_XS_X32 0x6 - - SDRAM Timing Register 8 - (OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x04040D06U) - RegMask = (DDRC_DRAMTMG8_T_XS_FAST_X32_MASK | DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK | DDRC_DRAMTMG8_T_XS_DLL_X32_MASK | DDRC_DRAMTMG8_T_XS_X32_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT - | 0x00000004U << DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT - | 0x0000000DU << DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT - | 0x00000006U << DDRC_DRAMTMG8_T_XS_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG8_OFFSET ,0x7F7F7F7FU ,0x04040D06U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG9 @ 0XFD070124

      - - DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present only with MEMC_FREQ_RATIO=2 - PSU_DDRC_DRAMTMG9_DDR4_WR_PREAMBLE 0x0 - - tCCD_S: This is the minimum time between two reads or two writes for different bank group. For bank switching (from bank 'a' - o bank 'b'), the minimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_S/2) and ro - nd it up to the next integer value. Present only in designs configured to support DDR4. Unit: clocks. - PSU_DDRC_DRAMTMG9_T_CCD_S 0x2 - - tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for different bank group. For configurations with MEMC_FREQ_ - ATIO=2, program this to (tRRD_S/2) and round it up to the next integer value. Present only in designs configured to support D - R4. Unit: Clocks. - PSU_DDRC_DRAMTMG9_T_RRD_S 0x2 - - CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command for different bank group. Includes time for bus turn - round, recovery times, and all per-bank, per-rank, and global constraints. Present only in designs configured to support DDR4 - Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burst length. This must match the value programm - d in the BL bit of the mode register to the SDRAM - tWTR_S = internal write to read command delay for different bank group. T - is comes directly from the SDRAM specification. For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using - he above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG9_WR2RD_S 0xb - - SDRAM Timing Register 9 - (OFFSET, MASK, VALUE) (0XFD070124, 0x40070F3FU ,0x0002020BU) - RegMask = (DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK | DDRC_DRAMTMG9_T_CCD_S_MASK | DDRC_DRAMTMG9_T_RRD_S_MASK | DDRC_DRAMTMG9_WR2RD_S_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT - | 0x00000002U << DDRC_DRAMTMG9_T_CCD_S_SHIFT - | 0x00000002U << DDRC_DRAMTMG9_T_RRD_S_SHIFT - | 0x0000000BU << DDRC_DRAMTMG9_WR2RD_S_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG9_OFFSET ,0x40070F3FU ,0x0002020BU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG11 @ 0XFD07012C

      - - tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program - this to (tXMPDLL/2) and round it up to the next integer value. Present only in designs configured to support DDR4. Unit: Mult - ples of 32 clocks. - PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x6f - - tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For configurations with MEMC_FREQ_RATIO=2, program this t - RoundUp(tMPX_LH/2)+1. Present only in designs configured to support DDR4. Unit: clocks. - PSU_DDRC_DRAMTMG11_T_MPX_LH 0x7 - - tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_FREQ_RATIO=2, program this to (tMPX_S/2) and round it - up to the next integer value. Present only in designs configured to support DDR4. Unit: Clocks. - PSU_DDRC_DRAMTMG11_T_MPX_S 0x1 - - tCKMPE: Minimum valid clock requirement after MPSM entry. Present only in designs configured to support DDR4. Unit: Clocks. F - r configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next i - teger. - PSU_DDRC_DRAMTMG11_T_CKMPE 0xe - - SDRAM Timing Register 11 - (OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x6F07010EU) - RegMask = (DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK | DDRC_DRAMTMG11_T_MPX_LH_MASK | DDRC_DRAMTMG11_T_MPX_S_MASK | DDRC_DRAMTMG11_T_CKMPE_MASK | 0 ); - - RegVal = ((0x0000006FU << DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT - | 0x00000007U << DDRC_DRAMTMG11_T_MPX_LH_SHIFT - | 0x00000001U << DDRC_DRAMTMG11_T_MPX_S_SHIFT - | 0x0000000EU << DDRC_DRAMTMG11_T_CKMPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG11_OFFSET ,0x7F1F031FU ,0x6F07010EU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG12 @ 0XFD070130

      - - tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larger of tESCKE or tCMDCKE For configurations with MEMC_ - REQ_RATIO=2, program this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_CMDCKE 0x2 - - tCKEHCMD: Valid command requirement after CKE input HIGH. For configurations with MEMC_FREQ_RATIO=2, program this to (tCKEHCM - /2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_CKEHCMD 0x6 - - tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. For configurations with MEMC_FREQ_RATIO=2, program th - s to (tMRD_PDA/2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_MRD_PDA 0x8 - - SDRAM Timing Register 12 - (OFFSET, MASK, VALUE) (0XFD070130, 0x00030F1FU ,0x00020608U) - RegMask = (DDRC_DRAMTMG12_T_CMDCKE_MASK | DDRC_DRAMTMG12_T_CKEHCMD_MASK | DDRC_DRAMTMG12_T_MRD_PDA_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_DRAMTMG12_T_CMDCKE_SHIFT - | 0x00000006U << DDRC_DRAMTMG12_T_CKEHCMD_SHIFT - | 0x00000008U << DDRC_DRAMTMG12_T_MRD_PDA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG12_OFFSET ,0x00030F1FU ,0x00020608U); - /*############################################################################################################################ */ - - /*Register : ZQCTL0 @ 0XFD070180

      - - - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Register DBGCMD.zq_calib_short can be used instead to is - ue ZQ calibration request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibration) commands based on ZQCTL1.t_zq_s - ort_interval_x1024. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_DIS_AUTO_ZQ 0x1 - - - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Powerdown exit. Only applicable when run in DDR3 - or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Power - own exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present for designs suppo - ting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_DIS_SRX_ZQCL 0x0 - - - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQCL/ZQCS/MPC(ZQ calibration) commands are sent to one r - nk at a time with tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that commands to different ranks do not ov - rlap. - 0 - ZQ resistor is not shared. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_ZQ_RESISTOR_SHARED 0x0 - - - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. - 0 - Enable - ssuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. This is only present for des - gns supporting DDR4 devices. - PSU_DDRC_ZQCTL0_DIS_MPSMX_ZQCL 0x0 - - tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Number of cycles of NOP required after a ZQCL (ZQ calibrat - on long)/MPC(ZQ Start) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2: DDR3/DDR4: program this to tZQo - er/2 and round it up to the next integer value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to the next integer va - ue. LPDDR4: program this to tZQCAL/2 and round it up to the next integer value. Unit: Clock cycles. This is only present for - esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_T_ZQ_LONG_NOP 0x100 - - tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of NOP required after a ZQCS (ZQ calibration short)/MPC - ZQ Latch) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program this to tZQCS/2 and round it up to t - e next integer value. Unit: Clock cycles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devic - s. - PSU_DDRC_ZQCTL0_T_ZQ_SHORT_NOP 0x40 - - ZQ Control Register 0 - (OFFSET, MASK, VALUE) (0XFD070180, 0xF7FF03FFU ,0x81000040U) - RegMask = (DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK | DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK | DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK | DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK | DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK | DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT - | 0x00000000U << DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT - | 0x00000000U << DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT - | 0x00000000U << DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT - | 0x00000100U << DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT - | 0x00000040U << DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ZQCTL0_OFFSET ,0xF7FF03FFU ,0x81000040U); - /*############################################################################################################################ */ - - /*Register : ZQCTL1 @ 0XFD070184

      - - tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibration Reset) command is issued to SDRAM. For configurati - ns with MEMC_FREQ_RATIO=2, program this to tZQReset/2 and round it up to the next integer value. Unit: Clock cycles. This is - nly present for designs supporting LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL1_T_ZQ_RESET_NOP 0x20 - - Average interval to wait between automatically issuing ZQCS (ZQ calibration short)/MPC(ZQ calibration) commands to DDR3/DDR4/ - PDDR2/LPDDR3/LPDDR4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles. This is only present for designs - upporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x19707 - - ZQ Control Register 1 - (OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x02019707U) - RegMask = (DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK | DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK | 0 ); - - RegVal = ((0x00000020U << DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT - | 0x00019707U << DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ZQCTL1_OFFSET ,0x3FFFFFFFU ,0x02019707U); - /*############################################################################################################################ */ - - /*Register : DFITMG0 @ 0XFD070190

      - - Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock. - PSU_DDRC_DFITMG0_DFI_T_CTRL_DELAY 0x4 - - Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value. - PSU_DDRC_DFITMG0_DFI_RDDATA_USE_SDR 0x1 - - Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks - PSU_DDRC_DFITMG0_DFI_T_RDDATA_EN 0xb - - Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e. - PSU_DDRC_DFITMG0_DFI_WRDATA_USE_SDR 0x1 - - Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks - PSU_DDRC_DFITMG0_DFI_TPHY_WRDATA 0x2 - - Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM. - PSU_DDRC_DFITMG0_DFI_TPHY_WRLAT 0xb - - DFI Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD070190, 0x1FBFBF3FU ,0x048B820BU) - RegMask = (DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK | DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK | DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK | DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK | DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK | DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT - | 0x00000001U << DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT - | 0x0000000BU << DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT - | 0x00000001U << DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT - | 0x00000002U << DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT - | 0x0000000BU << DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG0_OFFSET ,0x1FBFBF3FU ,0x048B820BU); - /*############################################################################################################################ */ - - /*Register : DFITMG1 @ 0XFD070194

      - - Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated command is driven. - his field is used for CAL mode, should be set to '0' or the value which matches the CAL mode register setting in the DRAM. If - the PHY can add the latency for CAL mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 - PSU_DDRC_DFITMG1_DFI_T_CMD_LAT 0x0 - - Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated dfi_parity_in signa - is driven. - PSU_DDRC_DFITMG1_DFI_T_PARIN_LAT 0x0 - - Specifies the number of DFI clocks between when the dfi_wrdata_en signal is asserted and when the corresponding write data tr - nsfer is completed on the DRAM bus. This corresponds to the DFI timing parameter twrdata_delay. Refer to PHY specification fo - correct value. For DFI 3.0 PHY, set to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI 2.1 PHY, set to - phy_wrdata + (delay of DFI write data to the DRAM). Value to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ - RATIO=2, divide PHY's value by 2 and round up to next integer. If using DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Uni - : Clocks - PSU_DDRC_DFITMG1_DFI_T_WRDATA_DELAY 0x3 - - Specifies the number of DFI clock cycles from the assertion of the dfi_dram_clk_disable signal on the DFI until the clock to - he DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase - ligned, this timing parameter should be rounded up to the next integer value. - PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE 0x3 - - Specifies the number of DFI clock cycles from the de-assertion of the dfi_dram_clk_disable signal on the DFI until the first - alid rising edge of the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the DFI clock and the memory clock are - not phase aligned, this timing parameter should be rounded up to the next integer value. - PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE 0x4 - - DFI Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD070194, 0xF31F0F0FU ,0x00030304U) - RegMask = (DDRC_DFITMG1_DFI_T_CMD_LAT_MASK | DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK | DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK | DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK | DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT - | 0x00000000U << DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT - | 0x00000003U << DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT - | 0x00000003U << DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT - | 0x00000004U << DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG1_OFFSET ,0xF31F0F0FU ,0x00030304U); - /*############################################################################################################################ */ - - /*Register : DFILPCFG0 @ 0XFD070198

      - - Setting for DFI's tlp_resp time. Same value is used for both Power Down, Self Refresh, Deep Power Down and Maximum Power Savi - g modes. DFI 2.1 specification onwards, recommends using a fixed value of 7 always. - PSU_DDRC_DFILPCFG0_DFI_TLP_RESP 0x7 - - Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 - cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - - 31072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting mDDR or LPDDR2/LPDDR3 device - . - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD 0x0 - - Enables DFI Low Power interface handshaking during Deep Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled This is only pres - nt for designs supporting mDDR or LPDDR2/LPDDR3 devices. - PSU_DDRC_DFILPCFG0_DFI_LP_EN_DPD 0x0 - - Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cy - les - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 131 - 72 cycles - 0xE - 262144 cycles - 0xF - Unlimited - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR 0x0 - - Enables DFI Low Power interface handshaking during Self Refresh Entry/Exit. - 0 - Disabled - 1 - Enabled - PSU_DDRC_DFILPCFG0_DFI_LP_EN_SR 0x1 - - Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycl - s - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 20 - 8 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 13107 - cycles - 0xE - 262144 cycles - 0xF - Unlimited - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD 0x0 - - Enables DFI Low Power interface handshaking during Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled - PSU_DDRC_DFILPCFG0_DFI_LP_EN_PD 0x1 - - DFI Low Power Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070198, 0x0FF1F1F1U ,0x07000101U) - RegMask = (DDRC_DFILPCFG0_DFI_TLP_RESP_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK | DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK | DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK | DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK | 0 ); - - RegVal = ((0x00000007U << DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT - | 0x00000001U << DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT - | 0x00000001U << DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFILPCFG0_OFFSET ,0x0FF1F1F1U ,0x07000101U); - /*############################################################################################################################ */ - - /*Register : DFILPCFG1 @ 0XFD07019C

      - - Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - - 16 cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0 - D - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting DDR4 devices. - PSU_DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM 0x2 - - Enables DFI Low Power interface handshaking during Maximum Power Saving Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is - only present for designs supporting DDR4 devices. - PSU_DDRC_DFILPCFG1_DFI_LP_EN_MPSM 0x1 - - DFI Low Power Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD07019C, 0x000000F1U ,0x00000021U) - RegMask = (DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK | DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT - | 0x00000001U << DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFILPCFG1_OFFSET ,0x000000F1U ,0x00000021U); - /*############################################################################################################################ */ - - /*Register : DFIUPD1 @ 0XFD0701A4

      - - This is the minimum amount of time between uMCTL2 initiated DFI update requests (which is executed whenever the uMCTL2 is idl - ). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the fir - t read request when the uMCTL2 is idle. Unit: 1024 clocks - PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024 0x41 - - This is the maximum amount of time between uMCTL2 initiated DFI update requests. This timer resets with each update request; - hen the timer expires dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd_ackx is received. PHY can use this - idle time to recalibrate the delay lines to the DLLs. The DFI controller update is also used to reset PHY FIFO pointers in ca - e of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. - Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x - 024. Unit: 1024 clocks - PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe2 - - DFI Update Register 1 - (OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E2U) - RegMask = (DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK | DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK | 0 ); - - RegVal = ((0x00000041U << DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT - | 0x000000E2U << DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFIUPD1_OFFSET ,0x00FF00FFU ,0x004100E2U); - /*############################################################################################################################ */ - - /*Register : DFIMISC @ 0XFD0701B0

      - - Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signals are active low - 1: Signals are active high - PSU_DDRC_DFIMISC_DFI_DATA_CS_POLARITY 0x0 - - DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. - 1 - PHY implements DBI functionality. Present only - in designs configured to support DDR4 and LPDDR4. - PSU_DDRC_DFIMISC_PHY_DBI_MODE 0x0 - - PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialisa - ion - PSU_DDRC_DFIMISC_DFI_INIT_COMPLETE_EN 0x0 - - DFI Miscellaneous Control Register - (OFFSET, MASK, VALUE) (0XFD0701B0, 0x00000007U ,0x00000000U) - RegMask = (DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK | DDRC_DFIMISC_PHY_DBI_MODE_MASK | DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT - | 0x00000000U << DDRC_DFIMISC_PHY_DBI_MODE_SHIFT - | 0x00000000U << DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFIMISC_OFFSET ,0x00000007U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DFITMG2 @ 0XFD0701B4

      - - >Number of clocks between when a read command is sent on the DFI control interface and when the associated dfi_rddata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY specification for correct value. - PSU_DDRC_DFITMG2_DFI_TPHY_RDCSLAT 0x9 - - Number of clocks between when a write command is sent on the DFI control interface and when the associated dfi_wrdata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY specification for correct value. - PSU_DDRC_DFITMG2_DFI_TPHY_WRCSLAT 0x6 - - DFI Timing Register 2 - (OFFSET, MASK, VALUE) (0XFD0701B4, 0x00003F3FU ,0x00000906U) - RegMask = (DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK | DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK | 0 ); - - RegVal = ((0x00000009U << DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT - | 0x00000006U << DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG2_OFFSET ,0x00003F3FU ,0x00000906U); - /*############################################################################################################################ */ - - /*Register : DBICTL @ 0XFD0701C0

      - - Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read DBI is enabled. This signal must be set the same value - as DRAM's mode register. - DDR4: MR5 bit A12. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[6] - PSU_DDRC_DBICTL_RD_DBI_EN 0x0 - - Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Write DBI is enabled. This signal must be set the same va - ue as DRAM's mode register. - DDR4: MR5 bit A11. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[7] - PSU_DDRC_DBICTL_WR_DBI_EN 0x0 - - DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. This signal must be set the same logical value as DRAM's - mode register. - DDR4: Set this to same value as MR5 bit A10. When x4 devices are used, this signal must be set to 0. - LPDDR - : Set this to inverted value of MR13[5] which is opposite polarity from this signal - PSU_DDRC_DBICTL_DM_EN 0x1 - - DM/DBI Control Register - (OFFSET, MASK, VALUE) (0XFD0701C0, 0x00000007U ,0x00000001U) - RegMask = (DDRC_DBICTL_RD_DBI_EN_MASK | DDRC_DBICTL_WR_DBI_EN_MASK | DDRC_DBICTL_DM_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBICTL_RD_DBI_EN_SHIFT - | 0x00000000U << DDRC_DBICTL_WR_DBI_EN_SHIFT - | 0x00000001U << DDRC_DBICTL_DM_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBICTL_OFFSET ,0x00000007U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP0 @ 0XFD070200

      - - Selects the HIF address bit used as rank address bit 0. Valid Range: 0 to 27, and 31 Internal Base: 6 The selected HIF addres - bit is determined by adding the internal base to the value of this field. If set to 31, rank address bit 0 is set to 0. - PSU_DDRC_ADDRMAP0_ADDRMAP_CS_BIT0 0x1f - - Address Map Register 0 - (OFFSET, MASK, VALUE) (0XFD070200, 0x0000001FU ,0x0000001FU) - RegMask = (DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK | 0 ); - - RegVal = ((0x0000001FU << DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP0_OFFSET ,0x0000001FU ,0x0000001FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP1 @ 0XFD070204

      - - Selects the HIF address bit used as bank address bit 2. Valid Range: 0 to 29 and 31 Internal Base: 4 The selected HIF address - bit is determined by adding the internal base to the value of this field. If set to 31, bank address bit 2 is set to 0. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B2 0x1f - - Selects the HIF address bits used as bank address bit 1. Valid Range: 0 to 30 Internal Base: 3 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B1 0xa - - Selects the HIF address bits used as bank address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B0 0xa - - Address Map Register 1 - (OFFSET, MASK, VALUE) (0XFD070204, 0x001F1F1FU ,0x001F0A0AU) - RegMask = (DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK | DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK | DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK | 0 ); - - RegVal = ((0x0000001FU << DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT - | 0x0000000AU << DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT - | 0x0000000AU << DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP1_OFFSET ,0x001F1F1FU ,0x001F0A0AU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP2 @ 0XFD070208

      - - - Full bus width mode: Selects the HIF address bit used as column address bit 5. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 6. - Quarter bus width mode: Selects the HIF address bit used as column address bit 7 . Vali - Range: 0 to 7, and 15 Internal Base: 5 The selected HIF address bit is determined by adding the internal base to the value o - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B5 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 4. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 5. - Quarter bus width mode: Selects the HIF address bit used as column address bit 6. Valid - Range: 0 to 7, and 15 Internal Base: 4 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B4 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 3. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 4. - Quarter bus width mode: Selects the HIF address bit used as column address bit 5. Valid - Range: 0 to 7 Internal Base: 3 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=16, it is required to program this to 0, hence register does not exist i - this case. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B3 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 2. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 3. - Quarter bus width mode: Selects the HIF address bit used as column address bit 4. Valid - Range: 0 to 7 Internal Base: 2 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 or 16, it is required to program this to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B2 0x0 - - Address Map Register 2 - (OFFSET, MASK, VALUE) (0XFD070208, 0x0F0F0F0FU ,0x00000000U) - RegMask = (DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP2_OFFSET ,0x0F0F0F0FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP3 @ 0XFD07020C

      - - - Full bus width mode: Selects the HIF address bit used as column address bit 9. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: Selects the HIF address bit used as - column address bit 13 (11 in LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected HIF address bit i - determined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: - er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source addr - ss bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus an - hence column bit 10 is used. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B9 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 8. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 9. - Quarter bus width mode: Selects the HIF address bit used as column address bit 11 (10 i - LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 8 The selected HIF address bit is determined by adding the i - ternal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specif - cation, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to col - mn address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is use - . - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B8 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 7. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 8. - Quarter bus width mode: Selects the HIF address bit used as column address bit 9. Valid - Range: 0 to 7, and 15 Internal Base: 7 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B7 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 6. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 7. - Quarter bus width mode: Selects the HIF address bit used as column address bit 8. Valid - Range: 0 to 7, and 15 Internal Base: 6 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B6 0x0 - - Address Map Register 3 - (OFFSET, MASK, VALUE) (0XFD07020C, 0x0F0F0F0FU ,0x00000000U) - RegMask = (DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP3_OFFSET ,0x0F0F0F0FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP4 @ 0XFD070210

      - - - Full bus width mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Unused. To make it unused, this should be tied to 4'hF. - Quarter bus width mode: Unused. To make it unused, this must - e tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 11 The selected HIF address bit is determined by adding the intern - l base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificati - n, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column a - dress bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is used. - PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B11 0xf - - - Full bus width mode: Selects the HIF address bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: UNUSED. - To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF address bit is d - termined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per - JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source address - bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and h - nce column bit 10 is used. - PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B10 0xf - - Address Map Register 4 - (OFFSET, MASK, VALUE) (0XFD070210, 0x00000F0FU ,0x00000F0FU) - RegMask = (DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK | DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK | 0 ); - - RegVal = ((0x0000000FU << DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT - | 0x0000000FU << DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP4_OFFSET ,0x00000F0FU ,0x00000F0FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP5 @ 0XFD070214

      - - Selects the HIF address bit used as row address bit 11. Valid Range: 0 to 11, and 15 Internal Base: 17 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 11 is set to 0. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B11 0x8 - - Selects the HIF address bits used as row address bits 2 to 10. Valid Range: 0 to 11, and 15 Internal Base: 8 (for row address - bit 2), 9 (for row address bit 3), 10 (for row address bit 4) etc increasing to 16 (for row address bit 10) The selected HIF - ddress bit for each of the row address bits is determined by adding the internal base to the value of this field. When value - 5 is used the values of row address bits 2 to 10 are defined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10 0xf - - Selects the HIF address bits used as row address bit 1. Valid Range: 0 to 11 Internal Base: 7 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B1 0x8 - - Selects the HIF address bits used as row address bit 0. Valid Range: 0 to 11 Internal Base: 6 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B0 0x8 - - Address Map Register 5 - (OFFSET, MASK, VALUE) (0XFD070214, 0x0F0F0F0FU ,0x080F0808U) - RegMask = (DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT - | 0x0000000FU << DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT - | 0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT - | 0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP5_OFFSET ,0x0F0F0F0FU ,0x080F0808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP6 @ 0XFD070218

      - - Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address - having row[14:13]==2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. All addresses are valid Present on - y in designs configured to support LPDDR3. - PSU_DDRC_ADDRMAP6_LPDDR3_6GB_12GB 0x0 - - Selects the HIF address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 15 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B15 0xf - - Selects the HIF address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 20 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 14 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B14 0x8 - - Selects the HIF address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 19 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 13 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B13 0x8 - - Selects the HIF address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 18 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 12 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B12 0x8 - - Address Map Register 6 - (OFFSET, MASK, VALUE) (0XFD070218, 0x8F0F0F0FU ,0x0F080808U) - RegMask = (DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT - | 0x0000000FU << DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP6_OFFSET ,0x8F0F0F0FU ,0x0F080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP7 @ 0XFD07021C

      - - Selects the HIF address bit used as row address bit 17. Valid Range: 0 to 10, and 15 Internal Base: 23 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 17 is set to 0. - PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B17 0xf - - Selects the HIF address bit used as row address bit 16. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 16 is set to 0. - PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B16 0xf - - Address Map Register 7 - (OFFSET, MASK, VALUE) (0XFD07021C, 0x00000F0FU ,0x00000F0FU) - RegMask = (DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK | DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK | 0 ); - - RegVal = ((0x0000000FU << DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT - | 0x0000000FU << DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP7_OFFSET ,0x00000F0FU ,0x00000F0FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP8 @ 0XFD070220

      - - Selects the HIF address bits used as bank group address bit 1. Valid Range: 0 to 30, and 31 Internal Base: 3 The selected HIF - address bit for each of the bank group address bits is determined by adding the internal base to the value of this field. If - et to 31, bank group address bit 1 is set to 0. - PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B1 0x8 - - Selects the HIF address bits used as bank group address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address - bit for each of the bank group address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B0 0x8 - - Address Map Register 8 - (OFFSET, MASK, VALUE) (0XFD070220, 0x00001F1FU ,0x00000808U) - RegMask = (DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK | DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT - | 0x00000008U << DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP8_OFFSET ,0x00001F1FU ,0x00000808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP9 @ 0XFD070224

      - - Selects the HIF address bits used as row address bit 5. Valid Range: 0 to 11 Internal Base: 11 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B5 0x8 - - Selects the HIF address bits used as row address bit 4. Valid Range: 0 to 11 Internal Base: 10 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B4 0x8 - - Selects the HIF address bits used as row address bit 3. Valid Range: 0 to 11 Internal Base: 9 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B3 0x8 - - Selects the HIF address bits used as row address bit 2. Valid Range: 0 to 11 Internal Base: 8 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B2 0x8 - - Address Map Register 9 - (OFFSET, MASK, VALUE) (0XFD070224, 0x0F0F0F0FU ,0x08080808U) - RegMask = (DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP9_OFFSET ,0x0F0F0F0FU ,0x08080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP10 @ 0XFD070228

      - - Selects the HIF address bits used as row address bit 9. Valid Range: 0 to 11 Internal Base: 15 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B9 0x8 - - Selects the HIF address bits used as row address bit 8. Valid Range: 0 to 11 Internal Base: 14 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B8 0x8 - - Selects the HIF address bits used as row address bit 7. Valid Range: 0 to 11 Internal Base: 13 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B7 0x8 - - Selects the HIF address bits used as row address bit 6. Valid Range: 0 to 11 Internal Base: 12 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B6 0x8 - - Address Map Register 10 - (OFFSET, MASK, VALUE) (0XFD070228, 0x0F0F0F0FU ,0x08080808U) - RegMask = (DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP10_OFFSET ,0x0F0F0F0FU ,0x08080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP11 @ 0XFD07022C

      - - Selects the HIF address bits used as row address bit 10. Valid Range: 0 to 11 Internal Base: 16 The selected HIF address bit - or each of the row address bits is determined by adding the internal base to the value of this field. This register field is - sed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP11_ADDRMAP_ROW_B10 0x8 - - Address Map Register 11 - (OFFSET, MASK, VALUE) (0XFD07022C, 0x0000000FU ,0x00000008U) - RegMask = (DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP11_OFFSET ,0x0000000FU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : ODTCFG @ 0XFD070240

      - - Cycles to hold ODT for a write command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/ - 67), 0x6 (DDR2-800), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (DDR2-1066) DDR3: - BL8: 0x6 DDR4: - - L8: 5 + WR_PREAMBLE + CRC_MODE WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 (not CRC mode), 1 - CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) - PSU_DDRC_ODTCFG_WR_ODT_HOLD 0x6 - - The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting must - remain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CWL + AL - 3 (DDR2-400/533/ - 67), CWL + AL - 4 (DDR2-800), CWL + AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT for write operation - DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) - PSU_DDRC_ODTCFG_WR_ODT_DELAY 0x0 - - Cycles to hold ODT for a read command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066) - 0x7 (DDR2-1066) - BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8: 5 + RD_PREAMBLE RD_PREAMBLE = 1 ( - tCK write preamble), 2 (2tCK write preamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + RU(tODTon(max)/tC - ) - PSU_DDRC_ODTCFG_RD_ODT_HOLD 0x6 - - The delay, in clock cycles, from issuing a read command to setting ODT values associated with that command. ODT setting must - emain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CL + AL - 4 (not DDR2-1066), - CL + AL - 5 (DDR2-1066) If (CL + AL - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - CWL DDR4: - CL - C - L - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK - write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, - uMCTL2 does not support ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - RU(tODTon(max)/tCK) - PSU_DDRC_ODTCFG_RD_ODT_DELAY 0x0 - - ODT Configuration Register - (OFFSET, MASK, VALUE) (0XFD070240, 0x0F1F0F7CU ,0x06000600U) - RegMask = (DDRC_ODTCFG_WR_ODT_HOLD_MASK | DDRC_ODTCFG_WR_ODT_DELAY_MASK | DDRC_ODTCFG_RD_ODT_HOLD_MASK | DDRC_ODTCFG_RD_ODT_DELAY_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_ODTCFG_WR_ODT_HOLD_SHIFT - | 0x00000000U << DDRC_ODTCFG_WR_ODT_DELAY_SHIFT - | 0x00000006U << DDRC_ODTCFG_RD_ODT_HOLD_SHIFT - | 0x00000000U << DDRC_ODTCFG_RD_ODT_DELAY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ODTCFG_OFFSET ,0x0F1F0F7CU ,0x06000600U); - /*############################################################################################################################ */ - - /*Register : ODTMAP @ 0XFD070244

      - - Indicates which remote ODTs must be turned on during a read from rank 1. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks - PSU_DDRC_ODTMAP_RANK1_RD_ODT 0x0 - - Indicates which remote ODTs must be turned on during a write to rank 1. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks - PSU_DDRC_ODTMAP_RANK1_WR_ODT 0x0 - - Indicates which remote ODTs must be turned on during a read from rank 0. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. - PSU_DDRC_ODTMAP_RANK0_RD_ODT 0x0 - - Indicates which remote ODTs must be turned on during a write to rank 0. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. - PSU_DDRC_ODTMAP_RANK0_WR_ODT 0x1 - - ODT/Rank Map Register - (OFFSET, MASK, VALUE) (0XFD070244, 0x00003333U ,0x00000001U) - RegMask = (DDRC_ODTMAP_RANK1_RD_ODT_MASK | DDRC_ODTMAP_RANK1_WR_ODT_MASK | DDRC_ODTMAP_RANK0_RD_ODT_MASK | DDRC_ODTMAP_RANK0_WR_ODT_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ODTMAP_RANK1_RD_ODT_SHIFT - | 0x00000000U << DDRC_ODTMAP_RANK1_WR_ODT_SHIFT - | 0x00000000U << DDRC_ODTMAP_RANK0_RD_ODT_SHIFT - | 0x00000001U << DDRC_ODTMAP_RANK0_WR_ODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ODTMAP_OFFSET ,0x00003333U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : SCHED @ 0XFD070250

      - - When the preferred transaction store is empty for these many clock cycles, switch to the alternate transaction store if it is - non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write t - ansaction store is the alternative store. When prefer write over read is set this is reversed. 0x0 is a legal value for this - egister. When set to 0x0, the transaction store switching will happen immediately when the switching conditions become true. - OR PERFORMANCE ONLY - PSU_DDRC_SCHED_RDWR_IDLE_GAP 0x1 - - UNUSED - PSU_DDRC_SCHED_GO2CRITICAL_HYSTERESIS 0x0 - - Number of entries in the low priority transaction store is this value + 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) i - the number of entries available for the high priority transaction store. Setting this to maximum value allocates all entries - to low priority transaction store. Setting this to 0 allocates 1 entry to low priority transaction store and the rest to high - priority transaction store. Note: In ECC configurations, the numbers of write and low priority read credits issued is one les - than in the non-ECC case. One entry each is reserved in the write and low-priority read CAMs for storing the RMW requests ar - sing out of single bit error correction RMW operation. - PSU_DDRC_SCHED_LPR_NUM_ENTRIES 0x20 - - If true, bank is kept open only while there are page hit transactions available in the CAM to that bank. The last read or wri - e command in the CAM with a bank and page hit will be executed with auto-precharge if SCHED1.pageclose_timer=0. Even if this - egister set to 1 and SCHED1.pageclose_timer is set to 0, explicit precharge (and not auto-precharge) may be issued in some ca - es where there is a mode switch between Write and Read or between LPR and HPR. The Read and Write commands that are executed - s part of the ECC scrub requests are also executed without auto-precharge. If false, the bank remains open until there is a n - ed to close it (to open a different page, or for page timeout or refresh timeout) - also known as open page policy. The open - age policy can be overridden by setting the per-command-autopre bit on the HIF interface (hif_cmd_autopre). The pageclose fea - ure provids a midway between Open and Close page policies. FOR PERFORMANCE ONLY. - PSU_DDRC_SCHED_PAGECLOSE 0x0 - - If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. - PSU_DDRC_SCHED_PREFER_WRITE 0x0 - - Active low signal. When asserted ('0'), all incoming transactions are forced to low priority. This implies that all High Prio - ity Read (HPR) and Variable Priority Read commands (VPR) will be treated as Low Priority Read (LPR) commands. On the write si - e, all Variable Priority Write (VPW) commands will be treated as Normal Priority Write (NPW) commands. Forcing the incoming t - ansactions to low priority implicitly turns off Bypass path for read commands. FOR PERFORMANCE ONLY. - PSU_DDRC_SCHED_FORCE_LOW_PRI_N 0x1 - - Scheduler Control Register - (OFFSET, MASK, VALUE) (0XFD070250, 0x7FFF3F07U ,0x01002001U) - RegMask = (DDRC_SCHED_RDWR_IDLE_GAP_MASK | DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK | DDRC_SCHED_LPR_NUM_ENTRIES_MASK | DDRC_SCHED_PAGECLOSE_MASK | DDRC_SCHED_PREFER_WRITE_MASK | DDRC_SCHED_FORCE_LOW_PRI_N_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_SCHED_RDWR_IDLE_GAP_SHIFT - | 0x00000000U << DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT - | 0x00000020U << DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT - | 0x00000000U << DDRC_SCHED_PAGECLOSE_SHIFT - | 0x00000000U << DDRC_SCHED_PREFER_WRITE_SHIFT - | 0x00000001U << DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SCHED_OFFSET ,0x7FFF3F07U ,0x01002001U); - /*############################################################################################################################ */ - - /*Register : PERFLPR1 @ 0XFD070264

      - - Number of transactions that are serviced once the LPR queue goes critical is the smaller of: - (a) This number - (b) Number o - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH 0x8 - - Number of clocks that the LPR queue can be starved before it goes critical. The minimum valid functional value for this regis - er is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - be disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFLPR1_LPR_MAX_STARVE 0x40 - - Low Priority Read CAM Register 1 - (OFFSET, MASK, VALUE) (0XFD070264, 0xFF00FFFFU ,0x08000040U) - RegMask = (DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK | DDRC_PERFLPR1_LPR_MAX_STARVE_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT - | 0x00000040U << DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PERFLPR1_OFFSET ,0xFF00FFFFU ,0x08000040U); - /*############################################################################################################################ */ - - /*Register : PERFWR1 @ 0XFD07026C

      - - Number of transactions that are serviced once the WR queue goes critical is the smaller of: - (a) This number - (b) Number of - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFWR1_W_XACT_RUN_LENGTH 0x8 - - Number of clocks that the WR queue can be starved before it goes critical. The minimum valid functional value for this regist - r is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - e disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFWR1_W_MAX_STARVE 0x40 - - Write CAM Register 1 - (OFFSET, MASK, VALUE) (0XFD07026C, 0xFF00FFFFU ,0x08000040U) - RegMask = (DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK | DDRC_PERFWR1_W_MAX_STARVE_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT - | 0x00000040U << DDRC_PERFWR1_W_MAX_STARVE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PERFWR1_OFFSET ,0xFF00FFFFU ,0x08000040U); - /*############################################################################################################################ */ - - /*Register : DQMAP5 @ 0XFD070294

      - - All even ranks have the same DQ mapping controled by DQMAP0-4 register as rank 0. This register provides DQ swap function for - all odd ranks to support CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap bit 2 with 3, swap bit 4 with 5 and - wap bit 6 with 7. 1: Disable rank based DQ swapping 0: Enable rank based DQ swapping Present only in designs configured to su - port DDR4. - PSU_DDRC_DQMAP5_DIS_DQ_RANK_SWAP 0x1 - - DQ Map Register 5 - (OFFSET, MASK, VALUE) (0XFD070294, 0x00000001U ,0x00000001U) - RegMask = (DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DQMAP5_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : DBG0 @ 0XFD070300

      - - When this is set to '0', auto-precharge is disabled for the flushed command in a collision case. Collision cases are write fo - lowed by read to same address, read followed by write to same address, or write followed by write to same address with DBG0.d - s_wc bit = 1 (where same address comparisons exclude the two address bits representing critical word). FOR DEBUG ONLY. - PSU_DDRC_DBG0_DIS_COLLISION_PAGE_OPT 0x0 - - When 1, disable write combine. FOR DEBUG ONLY - PSU_DDRC_DBG0_DIS_WC 0x0 - - Debug Register 0 - (OFFSET, MASK, VALUE) (0XFD070300, 0x00000011U ,0x00000000U) - RegMask = (DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK | DDRC_DBG0_DIS_WC_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT - | 0x00000000U << DDRC_DBG0_DIS_WC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBG0_OFFSET ,0x00000011U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DBGCMD @ 0XFD07030C

      - - Setting this register bit to 1 allows refresh and ZQCS commands to be triggered from hardware via the IOs ext_*. If set to 1, - the fields DBGCMD.zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignored by the uMCTL2 logic. Setting this - register bit to 0 allows refresh and ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_short and DBGCMD.rank - _refresh. If set to 0, the hardware pins ext_* have no function, and are ignored by the uMCTL2 logic. This register is static - and may only be changed when the DDRC reset signal, core_ddrc_rstn, is asserted (0). - PSU_DDRC_DBGCMD_HW_REF_ZQ_EN 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ctrlupd_req to the PHY. When this request is stored in - he uMCTL2, the bit is automatically cleared. This operation must only be performed when DFIUPD0.dis_auto_ctrlupd=1. - PSU_DDRC_DBGCMD_CTRLUPD 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS (ZQ calibration short)/MPC(ZQ calibration) command to - he SDRAM. When this request is stored in the uMCTL2, the bit is automatically cleared. This operation can be performed only w - en ZQCTL0.dis_auto_zq=1. It is recommended NOT to set this register bit if in Init operating mode. This register bit is ignor - d when in Self-Refresh(except LPDDR4) and SR-Powerdown(LPDDR4) and Deep power-down operating modes and Maximum Power Saving M - de. - PSU_DDRC_DBGCMD_ZQ_CALIB_SHORT 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 1. Writing to this bit causes DBGSTAT.rank1 - refresh_busy to be set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode. - PSU_DDRC_DBGCMD_RANK1_REFRESH 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 0. Writing to this bit causes DBGSTAT.rank0 - refresh_busy to be set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode. - PSU_DDRC_DBGCMD_RANK0_REFRESH 0x0 - - Command Debug Register - (OFFSET, MASK, VALUE) (0XFD07030C, 0x80000033U ,0x00000000U) - RegMask = (DDRC_DBGCMD_HW_REF_ZQ_EN_MASK | DDRC_DBGCMD_CTRLUPD_MASK | DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK | DDRC_DBGCMD_RANK1_REFRESH_MASK | DDRC_DBGCMD_RANK0_REFRESH_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT - | 0x00000000U << DDRC_DBGCMD_CTRLUPD_SHIFT - | 0x00000000U << DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT - | 0x00000000U << DDRC_DBGCMD_RANK1_REFRESH_SHIFT - | 0x00000000U << DDRC_DBGCMD_RANK0_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBGCMD_OFFSET ,0x80000033U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SWCTL @ 0XFD070320

      - - Enable quasi-dynamic register programming outside reset. Program register to 0 to enable quasi-dynamic programming. Set back - egister to 1 once programming is done. - PSU_DDRC_SWCTL_SW_DONE 0x0 - - Software register programming control enable - (OFFSET, MASK, VALUE) (0XFD070320, 0x00000001U ,0x00000000U) - RegMask = (DDRC_SWCTL_SW_DONE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SWCTL_SW_DONE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SWCTL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCCFG @ 0XFD070400

      - - Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expands every AXI burst into multiple HIF commands, using t - e memory burst length as a unit. If set to 1, then XPI will use half of the memory burst length as a unit. This applies to bo - h reads and writes. When MSTR.data_bus_width==00, setting bl_exp_mode to 1 has no effect. This can be used in cases where Par - ial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.dis_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_cc - _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionality is not supported in the following cases: - UMCTL2_ - ARTIAL_WR=0 - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 and MSTR.reg_ddrc_burst_rdwr=1000 (LP - DR4 only) - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burst_rdwr=0100 (DDR4 - only), with either MSTR.reg_ddrc_burstchop=0 or CRCPARCTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Share - -AC is enabled - PSU_DDRC_PCCFG_BL_EXP_MODE 0x0 - - Page match four limit. If set to 1, limits the number of consecutive same page DDRC transactions that can be granted by the P - rt Arbiter to four when Page Match feature is enabled. If set to 0, there is no limit imposed on number of consecutive same p - ge DDRC transactions. - PSU_DDRC_PCCFG_PAGEMATCH_LIMIT 0x0 - - If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals going to DDRC based - n urgent input (awurgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_go2critical_wr and co_gs_go2critica - _lpr/co_gs_go2critical_hpr signals at DDRC are driven to 1b'0. - PSU_DDRC_PCCFG_GO2CRITICAL_EN 0x1 - - Port Common Configuration Register - (OFFSET, MASK, VALUE) (0XFD070400, 0x00000111U ,0x00000001U) - RegMask = (DDRC_PCCFG_BL_EXP_MODE_MASK | DDRC_PCCFG_PAGEMATCH_LIMIT_MASK | DDRC_PCCFG_GO2CRITICAL_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCCFG_BL_EXP_MODE_SHIFT - | 0x00000000U << DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT - | 0x00000001U << DDRC_PCCFG_GO2CRITICAL_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCCFG_OFFSET ,0x00000111U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGR_0 @ 0XFD070404

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_0_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_0_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_0_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070404, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_0_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_0 @ 0XFD070408

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_0_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_0_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_0_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_0_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_0 @ 0XFD070490

      - - Enables port n. - PSU_DDRC_PCTRL_0_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070490, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_0_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_0_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_0_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_0 @ 0XFD070494

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION1 0x2 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1 0xb - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070494, 0x0033000FU ,0x0020000BU) - RegMask = (DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_0_OFFSET ,0x0033000FU ,0x0020000BU); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_0 @ 0XFD070498

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070498, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_0_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_1 @ 0XFD0704B4

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_1_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_1_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_1_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD0704B4, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_1_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_1 @ 0XFD0704B8

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_1_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_1_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_1_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_1_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_1 @ 0XFD070540

      - - Enables port n. - PSU_DDRC_PCTRL_1_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070540, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_1_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_1_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_1_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_1 @ 0XFD070544

      - - This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION2 0x2 - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION1 0x0 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION0 0x0 - - Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2 0xb - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070544, 0x03330F0FU ,0x02000B03U) - RegMask = (DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_1_OFFSET ,0x03330F0FU ,0x02000B03U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_1 @ 0XFD070548

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070548, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_1_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_2 @ 0XFD070564

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_2_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_2_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_2_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070564, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_2_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_2 @ 0XFD070568

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_2_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_2_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_2_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_2_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_2 @ 0XFD0705F0

      - - Enables port n. - PSU_DDRC_PCTRL_2_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD0705F0, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_2_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_2_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_2_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_2 @ 0XFD0705F4

      - - This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION2 0x2 - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION1 0x0 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION0 0x0 - - Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2 0xb - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0705F4, 0x03330F0FU ,0x02000B03U) - RegMask = (DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_2_OFFSET ,0x03330F0FU ,0x02000B03U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_2 @ 0XFD0705F8

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0705F8, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_2_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_3 @ 0XFD070614

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_3_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_3_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_3_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070614, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_3_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_3 @ 0XFD070618

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_3_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_3_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_3_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_3_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_3 @ 0XFD0706A0

      - - Enables port n. - PSU_DDRC_PCTRL_3_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD0706A0, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_3_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_3_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_3_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_3 @ 0XFD0706A4

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0706A4, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_3_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_3 @ 0XFD0706A8

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0706A8, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_3_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_3 @ 0XFD0706AC

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0706AC, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_3_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_3 @ 0XFD0706B0

      - - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0706B0, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_3_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGR_4 @ 0XFD0706C4

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_4_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_4_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_4_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_4_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_4 @ 0XFD0706C8

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_4_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_4_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_4_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_4_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_4 @ 0XFD070750

      - - Enables port n. - PSU_DDRC_PCTRL_4_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070750, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_4_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_4_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_4_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_4 @ 0XFD070754

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070754, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_4_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_4 @ 0XFD070758

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070758, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_4_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_4 @ 0XFD07075C

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD07075C, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_4_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_4 @ 0XFD070760

      - - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070760, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_4_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGR_5 @ 0XFD070774

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_5_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_5_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_5_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070774, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_5_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_5 @ 0XFD070778

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_5_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_5_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_5_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_5_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_5 @ 0XFD070800

      - - Enables port n. - PSU_DDRC_PCTRL_5_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070800, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_5_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_5_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_5_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_5 @ 0XFD070804

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070804, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_5_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_5 @ 0XFD070808

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070808, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_5_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_5 @ 0XFD07080C

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD07080C, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_5_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_5 @ 0XFD070810

      - - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070810, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_5_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : SARBASE0 @ 0XFD070F04

      - - Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). - PSU_DDRC_SARBASE0_BASE_ADDR 0x0 - - SAR Base Address Register n - (OFFSET, MASK, VALUE) (0XFD070F04, 0x000001FFU ,0x00000000U) - RegMask = (DDRC_SARBASE0_BASE_ADDR_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SARBASE0_BASE_ADDR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARBASE0_OFFSET ,0x000001FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SARSIZE0 @ 0XFD070F08

      - - Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block. - PSU_DDRC_SARSIZE0_NBLOCKS 0x0 - - SAR Size Register n - (OFFSET, MASK, VALUE) (0XFD070F08, 0x000000FFU ,0x00000000U) - RegMask = (DDRC_SARSIZE0_NBLOCKS_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SARSIZE0_NBLOCKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARSIZE0_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SARBASE1 @ 0XFD070F0C

      - - Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). - PSU_DDRC_SARBASE1_BASE_ADDR 0x10 - - SAR Base Address Register n - (OFFSET, MASK, VALUE) (0XFD070F0C, 0x000001FFU ,0x00000010U) - RegMask = (DDRC_SARBASE1_BASE_ADDR_MASK | 0 ); - - RegVal = ((0x00000010U << DDRC_SARBASE1_BASE_ADDR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARBASE1_OFFSET ,0x000001FFU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : SARSIZE1 @ 0XFD070F10

      - - Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block. - PSU_DDRC_SARSIZE1_NBLOCKS 0xf - - SAR Size Register n - (OFFSET, MASK, VALUE) (0XFD070F10, 0x000000FFU ,0x0000000FU) - RegMask = (DDRC_SARSIZE1_NBLOCKS_MASK | 0 ); +unsigned long psu_ddr_init_data(void) +{ + /* + * DDR INITIALIZATION + */ + /* + * DDR CONTROLLER RESET + */ + /* + * Register : RST_DDR_SS @ 0XFD1A0108 + + * DDR block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X1 + + * DDR sub system block level reset + * (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_RST_DDR_SS_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MSTR @ 0XFD070000 + + * Indicates the configuration of the device used in the system. - 00 - x4 + * device - 01 - x8 device - 10 - x16 device - 11 - x32 device + * PSU_DDRC_MSTR_DEVICE_CONFIG 0x1 + + * Choose which registers are used. - 0 - Original registers - 1 - Shadow r + * egisters + * PSU_DDRC_MSTR_FREQUENCY_MODE 0x0 + + * Only present for multi-rank configurations. Each bit represents one rank + * . For two-rank configurations, only bits[25:24] are present. - 1 - popul + * ated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks follow + * ing combinations are legal: - 01 - One rank - 11 - Two ranks - Others - + * Reserved. For 4 ranks following combinations are legal: - 0001 - One ran + * k - 0011 - Two ranks - 1111 - Four ranks + * PSU_DDRC_MSTR_ACTIVE_RANKS 0x1 + + * SDRAM burst length used: - 0001 - Burst length of 2 (only supported for + * mDDR) - 0010 - Burst length of 4 - 0100 - Burst length of 8 - 1000 - Bur + * st length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other + * values are reserved. This controls the burst size used to access the SDR + * AM. This must match the burst length mode register setting in the SDRAM. + * (For BC4/8 on-the-fly mode of DDR3 and DDR4, set this field to 0x0100) + * Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGTH + * is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 + * PSU_DDRC_MSTR_BURST_RDWR 0x4 + + * Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low + * frequency operation. Set to 0 to put uMCTL2 and DRAM in DLL-on mode for + * normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARC + * TL1.crc_parity_retry_enable = 1), dll_off_mode is not supported, and thi + * s bit must be set to '0'. + * PSU_DDRC_MSTR_DLL_OFF_MODE 0x0 + + * Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full + * DQ bus width to SDRAM - 01 - Half DQ bus width to SDRAM - 10 - Quarter + * DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is + * only supported when the SDRAM bus width is a multiple of 16, and quarter + * bus width mode is only supported when the SDRAM bus width is a multiple + * of 32 and the configuration parameter MEMC_QBUS_SUPPORT is set. Bus wid + * th refers to DQ bus width (excluding any ECC width). + * PSU_DDRC_MSTR_DATA_BUS_WIDTH 0x0 + + * 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the D + * RAM in normal mode (1N). This register can be changed, only when the Con + * troller is in self-refresh mode. This signal must be set the same value + * as MR3 bit A3. Note: Geardown mode is not supported if the configuration + * parameter MEMC_CMD_RTN2IDLE is set + * PSU_DDRC_MSTR_GEARDOWN_MODE 0x0 + + * If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timin + * g, all command signals (except chip select) are held for 2 clocks on the + * SDRAM bus. Chip select is asserted on the second cycle of the command N + * ote: 2T timing is not supported in LPDDR2/LPDDR3/LPDDR4 mode Note: 2T ti + * ming is not supported if the configuration parameter MEMC_CMD_RTN2IDLE i + * s set Note: 2T timing is not supported in DDR4 geardown mode. + * PSU_DDRC_MSTR_EN_2T_TIMING_MODE 0x0 + + * When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exerci + * sed only in HIF configurations (UMCTL2_INCL_ARB not set) and if in full + * bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exer + * cised only if Partial Writes enabled (UMCTL2_PARTIAL_WR=1) and if CRC is + * disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabl + * ed (CRCPARCTL1.crc_parity_retry_enable = 1), burst chop is not supported + * , and this bit must be set to '0' + * PSU_DDRC_MSTR_BURSTCHOP 0x0 + + * Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 d + * evice in use Present only in designs configured to support LPDDR4. + * PSU_DDRC_MSTR_LPDDR4 0x0 + + * Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device + * in use Present only in designs configured to support DDR4. + * PSU_DDRC_MSTR_DDR4 0x1 + + * Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 d + * evice in use Present only in designs configured to support LPDDR3. + * PSU_DDRC_MSTR_LPDDR3 0x0 + + * Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 d + * evice in use Present only in designs configured to support LPDDR2. + * PSU_DDRC_MSTR_LPDDR2 0x0 + + * Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM de + * vice in use Only present in designs that support DDR3. + * PSU_DDRC_MSTR_DDR3 0x0 + + * Master Register + * (OFFSET, MASK, VALUE) (0XFD070000, 0xE30FBE3DU ,0x41040010U) + */ + PSU_Mask_Write(DDRC_MSTR_OFFSET, 0xE30FBE3DU, 0x41040010U); +/*##################################################################### */ + + /* + * Register : MRCTRL0 @ 0XFD070010 + + * Setting this register bit to 1 triggers a mode register read or write op + * eration. When the MR operation is complete, the uMCTL2 automatically cle + * ars this bit. The other register fields of this register must be written + * in a separate APB transaction, before setting this mr_wr bit. It is rec + * ommended NOT to set this signal if in Init, Deep power-down or MPSM oper + * ating modes. + * PSU_DDRC_MRCTRL0_MR_WR 0x0 + + * Address of the mode register that is to be written to. - 0000 - MR0 - 00 + * 01 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 0101 - MR5 - 0110 - MR + * 6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data + * for mode register addressing in LPDDR2/LPDDR3/LPDDR4) This signal is als + * o used for writing to control words of RDIMMs. In that case, it correspo + * nds to the bank address bits sent to the RDIMM In case of DDR4, the bit[ + * 3:2] corresponds to the bank group bits. Therefore, the bit[3] as well a + * s the bit[2:0] must be set to an appropriate value which is considered b + * oth the Address Mirroring of UDIMMs/RDIMMs and the Output Inversion of R + * DIMMs. + * PSU_DDRC_MRCTRL0_MR_ADDR 0x0 + + * Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desire + * d to access all ranks, so all bits should be set to 1. However, for mult + * i-rank UDIMMs/RDIMMs which implement address mirroring, it may be necess + * ary to access ranks individually. Examples (assume uMCTL2 is configured + * for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x + * 5 - select ranks 0 and 2 - 0xA - select ranks 1 and 3 - 0xF - select ran + * ks 0, 1, 2 and 3 + * PSU_DDRC_MRCTRL0_MR_RANK 0x3 + + * Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 b + * efore automatic SDRAM initialization routine or not. For DDR4, this bit + * can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM init + * ialization. For LPDDR4, this bit can be used to program additional mode + * registers before automatic SDRAM initialization if necessary. Note: This + * must be cleared to 0 after completing Software operation. Otherwise, SD + * RAM initialization routine will not re-start. - 0 - Software interventio + * n is not allowed - 1 - Software intervention is allowed + * PSU_DDRC_MRCTRL0_SW_INIT_INT 0x0 + + * Indicates whether the mode register operation is MRS in PDA mode or not + * - 0 - MRS - 1 - MRS in Per DRAM Addressability mode + * PSU_DDRC_MRCTRL0_PDA_EN 0x0 + + * Indicates whether the mode register operation is MRS or WR/RD for MPR (o + * nly supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR + * PSU_DDRC_MRCTRL0_MPR_EN 0x0 + + * Indicates whether the mode register operation is read or write. Only use + * d for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Read + * PSU_DDRC_MRCTRL0_MR_TYPE 0x0 + + * Mode Register Read/Write Control Register 0. Note: Do not enable more th + * an one of the following fields simultaneously: - sw_init_int - pda_en - + * mpr_en + * (OFFSET, MASK, VALUE) (0XFD070010, 0x8000F03FU ,0x00000030U) + */ + PSU_Mask_Write(DDRC_MRCTRL0_OFFSET, 0x8000F03FU, 0x00000030U); +/*##################################################################### */ + + /* + * Register : DERATEEN @ 0XFD070020 + + * Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating us + * es +2. - 2 - Derating uses +3. - 3 - Derating uses +4. Present only in d + * esigns configured to support LPDDR4. The required number of cycles for d + * erating can be determined by dividing 3.75ns by the core_ddrc_core_clk p + * eriod, and rounding up the next integer. + * PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x2 + + * Derate byte Present only in designs configured to support LPDDR2/LPDDR3/ + * LPDDR4 Indicates which byte of the MRR data is used for derating. The ma + * ximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. + * PSU_DDRC_DERATEEN_DERATE_BYTE 0x0 + + * Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present onl + * y in designs configured to support LPDDR2/LPDDR3/LPDDR4 Set to 0 for all + * LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ + * ddrc_core_clk period. Can be 0 or 1 for LPDDR3/LPDDR4, depending if +1.8 + * 75 ns is less than a core_ddrc_core_clk period or not. + * PSU_DDRC_DERATEEN_DERATE_VALUE 0x0 + + * Enables derating - 0 - Timing parameter derating is disabled - 1 - Timin + * g parameter derating is enabled using MR4 read value. Present only in de + * signs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set + * to '0' for non-LPDDR2/LPDDR3/LPDDR4 mode. + * PSU_DDRC_DERATEEN_DERATE_ENABLE 0x0 + + * Temperature Derate Enable Register + * (OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000200U) + */ + PSU_Mask_Write(DDRC_DERATEEN_OFFSET, 0x000003F3U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : DERATEINT @ 0XFD070024 + + * Interval between two MR4 reads, used to derate the timing parameters. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4. This r + * egister must not be set to zero + * PSU_DDRC_DERATEINT_MR4_READ_INTERVAL 0x800000 + + * Temperature Derate Interval Register + * (OFFSET, MASK, VALUE) (0XFD070024, 0xFFFFFFFFU ,0x00800000U) + */ + PSU_Mask_Write(DDRC_DERATEINT_OFFSET, 0xFFFFFFFFU, 0x00800000U); +/*##################################################################### */ + + /* + * Register : PWRCTL @ 0XFD070030 + + * Self refresh state is an intermediate state to enter to Self refresh pow + * er down state or exit Self refresh power down state for LPDDR4. This reg + * ister controls transition from the Self refresh state. - 1 - Prohibit tr + * ansition from Self refresh state - 0 - Allow transition from Self refres + * h state + * PSU_DDRC_PWRCTL_STAY_IN_SELFREF 0x0 + + * A value of 1 to this register causes system to move to Self Refresh stat + * e immediately, as long as it is not in INIT or DPD/MPSM operating_mode. + * This is referred to as Software Entry/Exit to Self Refresh. - 1 - Softwa + * re Entry to Self Refresh - 0 - Software Exit from Self Refresh + * PSU_DDRC_PWRCTL_SELFREF_SW 0x0 + + * When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode + * when the transaction store is empty. This register must be reset to '0' + * to bring uMCTL2 out of maximum power saving mode. Present only in desig + * ns configured to support DDR4. For non-DDR4, this register should not be + * set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if + * the PHY parameter DWC_AC_CS_USE is disabled, as the MPSM exit sequence r + * equires the chip-select signal to toggle. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRCTL_MPSM_EN 0x0 + + * Enable the assertion of dfi_dram_clk_disable whenever a clock is not req + * uired by the SDRAM. If set to 0, dfi_dram_clk_disable is never asserted. + * Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only + * be asserted in Self Refresh. In DDR4, can be asserted in following: - i + * n Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, ca + * n be asserted in following: - in Self Refresh - in Power Down - in Deep + * Power Down - during Normal operation (Clock Stop) In LPDDR4, can be asse + * rted in following: - in Self Refresh Power Down - in Power Down - during + * Normal operation (Clock Stop) + * PSU_DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE 0x0 + + * When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the + * transaction store is empty. This register must be reset to '0' to bring + * uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM + * initialization on deep power-down exit. Present only in designs configu + * red to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPD + * DR3, this register should not be set to 1. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRCTL_DEEPPOWERDOWN_EN 0x0 + + * If true then the uMCTL2 goes into power-down after a programmable number + * of cycles 'maximum idle clocks before power down' (PWRTMG.powerdown_to_ + * x32). This register bit may be re-programmed during the course of normal + * operation. + * PSU_DDRC_PWRCTL_POWERDOWN_EN 0x0 + + * If true then the uMCTL2 puts the SDRAM into Self Refresh after a program + * mable number of cycles 'maximum idle clocks before Self Refresh (PWRTMG. + * selfref_to_x32)'. This register bit may be re-programmed during the cour + * se of normal operation. + * PSU_DDRC_PWRCTL_SELFREF_EN 0x0 + + * Low Power Control Register + * (OFFSET, MASK, VALUE) (0XFD070030, 0x0000007FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PWRCTL_OFFSET, 0x0000007FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PWRTMG @ 0XFD070034 + + * After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into Self Refresh. This must be enabled in the PWRCTL.selfref_ + * en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRTMG_SELFREF_TO_X32 0x40 + + * Minimum deep power-down time. For mDDR, value from the JEDEC specificati + * on is 0 as mDDR exits from deep power-down mode immediately after PWRCTL + * .deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDE + * C specification is 500us. Unit: Multiples of 4096 clocks. Present only i + * n designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE + * ONLY. + * PSU_DDRC_PWRTMG_T_DPD_X4096 0x84 + + * After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into power-down. This must be enabled in the PWRCTL.powerdown_ + * en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRTMG_POWERDOWN_TO_X32 0x10 + + * Low Power Timing Register + * (OFFSET, MASK, VALUE) (0XFD070034, 0x00FFFF1FU ,0x00408410U) + */ + PSU_Mask_Write(DDRC_PWRTMG_OFFSET, 0x00FFFF1FU, 0x00408410U); +/*##################################################################### */ + + /* + * Register : RFSHCTL0 @ 0XFD070050 + + * Threshold value in number of clock cycles before the critical refresh or + * page timer expires. A critical refresh is to be issued before this thre + * shold is reached. It is recommended that this not be changed from the de + * fault value, currently shown as 0x2. It must always be less than interna + * lly used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally u + * sed t_rfc_nom_x32 may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating i + * s enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_n + * om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clo + * cks. + * PSU_DDRC_RFSHCTL0_REFRESH_MARGIN 0x2 + + * If the refresh timer (tRFCnom, also known as tREFI) has expired at least + * once, but it has not expired (RFSHCTL0.refresh_burst+1) times yet, then + * a speculative refresh may be performed. A speculative refresh is a refr + * esh performed at a time when refresh would be useful, but before it is a + * bsolutely required. When the SDRAM bus is idle for a period of time dete + * rmined by this RFSHCTL0.refresh_to_x32 and the refresh timer has expired + * at least once since the last refresh, then a speculative refresh is per + * formed. Speculative refreshes continues successively until there are no + * refreshes pending or until new reads or writes are issued to the uMCTL2. + * FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL0_REFRESH_TO_X32 0x10 + + * The programmed value + 1 is the number of refresh timeouts that is allow + * ed to accumulate before traffic is blocked and the refreshes are forced + * to execute. Closing pages to perform a refresh is a one-time penalty tha + * t must be paid for each group of refreshes. Therefore, performing refres + * hes in a burst reduces the per-refresh penalty of these page closings. H + * igher numbers for RFSHCTL.refresh_burst slightly increases utilization; + * lower numbers decreases the worst-case latency associated with refreshes + * . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh + * For information on burst refresh feature refer to section 3.9 of DDR2 J + * EDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always pe + * r-rank and not per-bank. The rank refresh can be accumulated over 8*tREF + * I cycles using the burst refresh feature. In DDR4 mode, according to Fin + * e Granularity feature, 8 refreshes can be postponed in 1X mode, 16 refre + * shes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upda + * tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ens + * ure that tRFCmax is not violated due to a PHY-initiated update occurring + * shortly before a refresh burst was due. In this situation, the refresh + * burst will be delayed until the PHY-initiated update is complete. + * PSU_DDRC_RFSHCTL0_REFRESH_BURST 0x0 + + * - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows + * traffic to flow to other banks. Per bank refresh is not supported by all + * LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4 + * PSU_DDRC_RFSHCTL0_PER_BANK_REFRESH 0x0 + + * Refresh Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD070050, 0x00F1F1F4U ,0x00210000U) + */ + PSU_Mask_Write(DDRC_RFSHCTL0_OFFSET, 0x00F1F1F4U, 0x00210000U); +/*##################################################################### */ + + /* + * Register : RFSHCTL1 @ 0XFD070054 + + * Refresh timer start for rank 1 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32 0x0 + + * Refresh timer start for rank 0 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32 0x0 + + * Refresh Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD070054, 0x0FFF0FFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_RFSHCTL1_OFFSET, 0x0FFF0FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RFSHCTL3 @ 0XFD070060 + + * Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fix + * ed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x (not supported) - 11 + * 0 - Enable on the fly 4x (not supported) - Everything else - reserved No + * te: The on-the-fly modes is not supported in this version of the uMCTL2. + * Note: This must be set up while the Controller is in reset or while the + * Controller is in self-refresh mode. Changing this during normal operati + * on is not allowed. Making this a dynamic register will be supported in f + * uture version of the uMCTL2. + * PSU_DDRC_RFSHCTL3_REFRESH_MODE 0x0 + + * Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that + * the refresh register(s) have been updated. The value is automatically up + * dated when exiting reset, so it does not need to be toggled initially. + * PSU_DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL 0x0 + + * When '1', disable auto-refresh generated by the uMCTL2. When auto-refres + * h is disabled, the SoC core must generate refreshes using the registers + * reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh a + * nd reg_ddrc_rank3_refresh. When dis_auto_refresh transitions from 0 to 1 + * , any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 + * CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d + * isable auto-refresh is not supported, and this bit must be set to '0'. T + * his register field is changeable on the fly. + * PSU_DDRC_RFSHCTL3_DIS_AUTO_REFRESH 0x1 + + * Refresh Control Register 3 + * (OFFSET, MASK, VALUE) (0XFD070060, 0x00000073U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_RFSHCTL3_OFFSET, 0x00000073U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : RFSHTMG @ 0XFD070064 + + * tREFI: Average time interval between refreshes per rank (Specification: + * 7.8us for DDR2, DDR3 and DDR4. See JEDEC specification for mDDR, LPDDR2, + * LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refre + * shes (RFSHCTL0.per_bank_refresh = 0), this register should be set to tRE + * FIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this + * register should be set to tREFIpb For configurations with MEMC_FREQ_RAT + * IO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI val + * ue is different depending on the refresh mode. The user should program t + * he appropriate value from the spec based on the value programmed in the + * refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be grea + * ter than RFSHTMG.t_rfc_min, and RFSHTMG.t_rfc_nom_x32 must be greater th + * an 0x1. Unit: Multiples of 32 clocks. + * PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x81 + + * Used only when LPDDR3 memory type is connected. Should only be changed w + * hen uMCTL2 is in reset. Specifies whether to use the tREFBW parameter (r + * equired by some LPDDR3 devices which comply with earlier versions of the + * LPDDR3 JEDEC specification) or not: - 0 - tREFBW parameter not used - 1 + * - tREFBW parameter used + * PSU_DDRC_RFSHTMG_LPDDR3_TREFBW_EN 0x1 + + * tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_F + * REQ_RATIO=1 configurations, t_rfc_min should be set to RoundUp(tRFCmin/t + * CK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to Ro + * undUp(RoundUp(tRFCmin/tCK)/2). In LPDDR2/LPDDR3/LPDDR4 mode: - if using + * all-bank refreshes, the tRFCmin value in the above equations is equal to + * tRFCab - if using per-bank refreshes, the tRFCmin value in the above eq + * uations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above + * equations is different depending on the refresh mode (fixed 1X,2X,4X) an + * d the device density. The user should program the appropriate value from + * the spec based on the 'refresh_mode' and the device density that is use + * d. Unit: Clocks. + * PSU_DDRC_RFSHTMG_T_RFC_MIN 0x8b + + * Refresh Timing Register + * (OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0081808BU) + */ + PSU_Mask_Write(DDRC_RFSHTMG_OFFSET, 0x0FFF83FFU, 0x0081808BU); +/*##################################################################### */ + + /* + * Register : ECCCFG0 @ 0XFD070070 + + * Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_U + * SE_RMW is defined + * PSU_DDRC_ECCCFG0_DIS_SCRUB 0x1 + + * ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED ov + * er 1 beat - all other settings are reserved for future use + * PSU_DDRC_ECCCFG0_ECC_MODE 0x0 + + * ECC Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070070, 0x00000017U ,0x00000010U) + */ + PSU_Mask_Write(DDRC_ECCCFG0_OFFSET, 0x00000017U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : ECCCFG1 @ 0XFD070074 + + * Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) da + * ta poisoning, if 1 -> 1-bit (correctable) data poisoning, if ECCCFG1.dat + * a_poison_en=1 + * PSU_DDRC_ECCCFG1_DATA_POISON_BIT 0x0 + + * Enable ECC data poisoning - introduces ECC errors on writes to address s + * pecified by the ECCPOISONADDR0/1 registers + * PSU_DDRC_ECCCFG1_DATA_POISON_EN 0x0 + + * ECC Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070074, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ECCCFG1_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CRCPARCTL1 @ 0XFD0700C4 + + * The maximum number of DFI PHY clock cycles allowed from the assertion of + * the dfi_rddata_en signal to the assertion of each of the corresponding + * bits of the dfi_rddata_valid signal. This corresponds to the DFI timing + * parameter tphy_rdlat. Refer to PHY specification for correct value. This + * value it only used for detecting read data timeout when DDR4 retry is e + * nabled by CRCPARCTL1.crc_parity_retry_enable=1. Maximum supported value: + * - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_r + * dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 + * : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mode ANDAND DFITMG0.d + * fi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ + * rdlat < 'd114 Unit: DFI Clocks + * PSU_DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT 0x10 + + * After a Parity or CRC error is flagged on dfi_alert_n signal, the softwa + * re has an option to read the mode registers in the DRAM before the hardw + * are begins the retry process - 1: Wait for software to read/write the mo + * de registers before hardware begins the retry. After software is done wi + * th its operations, it will clear the alert interrupt register bit - 0: H + * ardware can begin the retry right away after the dfi_alert_n pulse goes + * away. The value on this register is valid only when retry is enabled (PA + * RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if t + * he software doesn't clear the interrupt register after handling the pari + * ty/CRC error, then the hardware will not begin the retry process and the + * system will hang. In the case of Parity/CRC error, there are two possib + * ilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persisten + * t parity' mode register bit is NOT set: the commands sent during retry a + * nd normal operation are executed without parity checking. The value in t + * he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent + * parity' mode register bit is SET: Parity checking is done for commands s + * ent during retry and normal operation. If multiple errors occur before M + * R5[4] is cleared, the error log in MPR Page 1 should be treated as 'Don' + * t care'. + * PSU_DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW 0x1 + + * - 1: Enable command retry mechanism in case of C/A Parity or CRC error - + * 0: Disable command retry mechanism when C/A Parity or CRC features are + * enabled. Note that retry functionality is not supported if burst chop is + * enabled (MSTR.burstchop = 1) and/or disable auto-refresh is enabled (RF + * SHCTL3.dis_auto_refresh = 1) + * PSU_DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE 0x0 + + * CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC no + * t includes DM signal Present only in designs configured to support DDR4. + * PSU_DDRC_CRCPARCTL1_CRC_INC_DM 0x0 + + * CRC enable Register - 1: Enable generation of CRC - 0: Disable generatio + * n of CRC The setting of this register should match the CRC mode register + * setting in the DRAM. + * PSU_DDRC_CRCPARCTL1_CRC_ENABLE 0x0 + + * C/A Parity enable register - 1: Enable generation of C/A parity and dete + * ction of C/A parity error - 0: Disable generation of C/A parity and disa + * ble detection of C/A parity error If RCD's parity error detection or SDR + * AM's parity detection is enabled, this register should be 1. + * PSU_DDRC_CRCPARCTL1_PARITY_ENABLE 0x0 + + * CRC Parity Control Register1 + * (OFFSET, MASK, VALUE) (0XFD0700C4, 0x3F000391U ,0x10000200U) + */ + PSU_Mask_Write(DDRC_CRCPARCTL1_OFFSET, 0x3F000391U, 0x10000200U); +/*##################################################################### */ + + /* + * Register : CRCPARCTL2 @ 0XFD0700C8 + + * Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a parity error occurs. Recommended values: - tPAR_ALERT_PW.M + * AX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT + * _PW.MAX/2 and round up to next integer value. Values of 0, 1 and 2 are i + * llegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. + * PSU_DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX 0x40 + + * Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a CRC error occurs. Recommended values: - tCRC_ALERT_PW.MAX + * For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW + * .MAX/2 and round up to next integer value. Values of 0, 1 and 2 are ille + * gal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. + * PSU_DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX 0x5 + + * Indicates the maximum duration in number of DRAM clock cycles for which + * a command should be held in the Command Retry FIFO before it is popped o + * ut. Every location in the Command Retry FIFO has an associated down coun + * ting timer that will use this register as the start value. The down coun + * ting starts when a command is loaded into the FIFO. The timer counts dow + * n every 4 DRAM cycles. When the counter reaches zero, the entry is poppe + * d from the FIFO. All the counters are frozen, if a C/A Parity or CRC err + * or occurs before the counter reaches zero. The counter is reset to 0, af + * ter all the commands in the FIFO are retried. Recommended(minimum) value + * s: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + * + CAL + RDIMM delay + tPAR_ALERT_ON.max + tPAR_UNKNOWN + PHY Alert Laten + * cy(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enable + * d/ Only CRC is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + R + * DIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) + * + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be + * in terms of DRAM Clock and round up Note 2: Board delay(Command/Alert_n + * ) should be considered. Note 3: Use the worst case(longer) value for PHY + * Latencies/Board delay Note 4: The Recommended values are minimum value + * to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max + * value can be set to this register is defined below: - MEMC_BURST_LENGTH + * == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 + * Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half b + * us Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Half bus Mod + * e (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (C + * RC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-8 Quarter bus Mode (CRC= + * ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 + * Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full + * bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mod + * e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC + * =ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarter bus Mode (CRC=OFF + * ) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Ma + * x value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Values of 0, 1 and 2 are illegal + * . + * PSU_DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4 0x1f + + * CRC Parity Control Register2 + * (OFFSET, MASK, VALUE) (0XFD0700C8, 0x01FF1F3FU ,0x0040051FU) + */ + PSU_Mask_Write(DDRC_CRCPARCTL2_OFFSET, 0x01FF1F3FU, 0x0040051FU); +/*##################################################################### */ + + /* + * Register : INIT0 @ 0XFD0700D0 + + * If lower bit is enabled the SDRAM initialization routine is skipped. The + * upper bit decides what state the controller starts up in when reset is + * removed - 00 - SDRAM Intialization routine is run after power-up - 01 - + * SDRAM Intialization routine is skipped after power-up. Controller starts + * up in Normal Mode - 11 - SDRAM Intialization routine is skipped after p + * ower-up. Controller starts up in Self-refresh Mode - 10 - SDRAM Intializ + * ation routine is run after power-up. Note: The only 2'b00 is supported f + * or LPDDR4 in this version of the uMCTL2. + * PSU_DDRC_INIT0_SKIP_DRAM_INIT 0x0 + + * Cycles to wait after driving CKE high to start the SDRAM initialization + * sequence. Unit: 1024 clocks. DDR2 typically requires a 400 ns delay, req + * uiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDD + * R3 typically requires this to be programmed for a delay of 200 us. LPDDR + * 4 typically requires this to be programmed for a delay of 2 us. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divi + * ded by 2, and round it up to next integer value. + * PSU_DDRC_INIT0_POST_CKE_X1024 0x2 + + * Cycles to wait after reset before driving CKE high to start the SDRAM in + * itialization sequence. Unit: 1024 clock cycles. DDR2 specifications typi + * cally require this to be programmed for a delay of >= 200 us. LPDDR2/LPD + * DR3: tINIT1 of 100 ns (min) LPDDR4: tINIT3 of 2 ms (min) For configurati + * ons with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by + * 2, and round it up to next integer value. + * PSU_DDRC_INIT0_PRE_CKE_X1024 0x106 + + * SDRAM Initialization Register 0 + * (OFFSET, MASK, VALUE) (0XFD0700D0, 0xC3FF0FFFU ,0x00020106U) + */ + PSU_Mask_Write(DDRC_INIT0_OFFSET, 0xC3FF0FFFU, 0x00020106U); +/*##################################################################### */ + + /* + * Register : INIT1 @ 0XFD0700D4 + + * Number of cycles to assert SDRAM reset signal during init sequence. This + * is only present for designs supporting DDR3, DDR4 or LPDDR4 devices. Fo + * r use with a DDR PHY, this should be set to a minimum of 1 + * PSU_DDRC_INIT1_DRAM_RSTN_X1024 0x2 + + * Cycles to wait after completing the SDRAM initialization sequence before + * starting the dynamic scheduler. Unit: Counts of a global timer that pul + * ses every 32 clock cycles. There is no known specific requirement for th + * is; it may be set to zero. + * PSU_DDRC_INIT1_FINAL_WAIT_X32 0x0 + + * Wait period before driving the OCD complete command to SDRAM. Unit: Coun + * ts of a global timer that pulses every 32 clock cycles. There is no know + * n specific requirement for this; it may be set to zero. + * PSU_DDRC_INIT1_PRE_OCD_X32 0x0 + + * SDRAM Initialization Register 1 + * (OFFSET, MASK, VALUE) (0XFD0700D4, 0x01FF7F0FU ,0x00020000U) + */ + PSU_Mask_Write(DDRC_INIT1_OFFSET, 0x01FF7F0FU, 0x00020000U); +/*##################################################################### */ + + /* + * Register : INIT2 @ 0XFD0700D8 + + * Idle time after the reset command, tINIT4. Present only in designs confi + * gured to support LPDDR2. Unit: 32 clock cycles. + * PSU_DDRC_INIT2_IDLE_AFTER_RESET_X32 0x23 + + * Time to wait after the first CKE high, tINIT2. Present only in designs c + * onfigured to support LPDDR2/LPDDR3. Unit: 1 clock cycle. LPDDR2/LPDDR3 t + * ypically requires 5 x tCK delay. + * PSU_DDRC_INIT2_MIN_STABLE_CLOCK_X1 0x5 + + * SDRAM Initialization Register 2 + * (OFFSET, MASK, VALUE) (0XFD0700D8, 0x0000FF0FU ,0x00002305U) + */ + PSU_Mask_Write(DDRC_INIT2_OFFSET, 0x0000FF0FU, 0x00002305U); +/*##################################################################### */ + + /* + * Register : INIT3 @ 0XFD0700DC + + * DDR2: Value to write to MR register. Bit 8 is for DLL and the setting he + * re is ignored. The uMCTL2 sets this bit appropriately. DDR3/DDR4: Value + * loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LP + * DDR3/LPDDR4 - Value to write to MR1 register + * PSU_DDRC_INIT3_MR 0x730 + + * DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setti + * ng in this register is ignored. The uMCTL2 sets those bits appropriately + * . DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evalu + * ation mode training is enabled, this bit is set appropriately by the uMC + * TL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/ + * LPDDR3/LPDDR4 - Value to write to MR2 register + * PSU_DDRC_INIT3_EMR 0x301 + + * SDRAM Initialization Register 3 + * (OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x07300301U) + */ + PSU_Mask_Write(DDRC_INIT3_OFFSET, 0xFFFFFFFFU, 0x07300301U); +/*##################################################################### */ + + /* + * Register : INIT4 @ 0XFD0700E0 + + * DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 + * register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 register mDDR: Unus + * ed + * PSU_DDRC_INIT4_EMR2 0x20 + + * DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 + * register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to write to MR13 regis + * ter + * PSU_DDRC_INIT4_EMR3 0x200 + + * SDRAM Initialization Register 4 + * (OFFSET, MASK, VALUE) (0XFD0700E0, 0xFFFFFFFFU ,0x00200200U) + */ + PSU_Mask_Write(DDRC_INIT4_OFFSET, 0xFFFFFFFFU, 0x00200200U); +/*##################################################################### */ + + /* + * Register : INIT5 @ 0XFD0700E4 + + * ZQ initial calibration, tZQINIT. Present only in designs configured to s + * upport DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock cycles. DDR3 typica + * lly requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requir + * es 1 us. + * PSU_DDRC_INIT5_DEV_ZQINIT_X32 0x21 + + * Maximum duration of the auto initialization, tINIT5. Present only in des + * igns configured to support LPDDR2/LPDDR3. LPDDR2/LPDDR3 typically requir + * es 10 us. + * PSU_DDRC_INIT5_MAX_AUTO_INIT_X1024 0x4 + + * SDRAM Initialization Register 5 + * (OFFSET, MASK, VALUE) (0XFD0700E4, 0x00FF03FFU ,0x00210004U) + */ + PSU_Mask_Write(DDRC_INIT5_OFFSET, 0x00FF03FFU, 0x00210004U); +/*##################################################################### */ + + /* + * Register : INIT6 @ 0XFD0700E8 + + * DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT6_MR4 0x0 + + * DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT6_MR5 0x6c0 + + * SDRAM Initialization Register 6 + * (OFFSET, MASK, VALUE) (0XFD0700E8, 0xFFFFFFFFU ,0x000006C0U) + */ + PSU_Mask_Write(DDRC_INIT6_OFFSET, 0xFFFFFFFFU, 0x000006C0U); +/*##################################################################### */ + + /* + * Register : INIT7 @ 0XFD0700EC + + * DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT7_MR6 0x819 + + * SDRAM Initialization Register 7 + * (OFFSET, MASK, VALUE) (0XFD0700EC, 0xFFFF0000U ,0x08190000U) + */ + PSU_Mask_Write(DDRC_INIT7_OFFSET, 0xFFFF0000U, 0x08190000U); +/*##################################################################### */ + + /* + * Register : DIMMCTL @ 0XFD0700F0 + + * Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and + * BG1 are NOT swapped even if Address Mirroring is enabled. This will be r + * equired for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapp + * ed. - 0 - BG0 and BG1 are swapped if address mirroring is enabled. + * PSU_DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING 0x0 + + * Enable for BG1 bit of MRS command. BG1 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have BG1 are attached and + * both the CA parity and the Output Inversion are enabled, this must be s + * et to 0, so that the calculation of CA parity will not include BG1 bit. + * Note: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. If address mirroring is enab + * led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - En + * abled - 0 - Disabled + * PSU_DDRC_DIMMCTL_MRS_BG1_EN 0x1 + + * Enable for A17 bit of MRS command. A17 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have A17 are attached and + * the Output Inversion are enabled, this must be set to 0, so that the ca + * lculation of CA parity will not include A17 bit. Note: This has no effec + * t on the address of any other memory accesses, or of software-driven mod + * e register accesses. - 1 - Enabled - 0 - Disabled + * PSU_DDRC_DIMMCTL_MRS_A17_EN 0x0 + + * Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIM + * M implements the Output Inversion feature by default, which means that t + * he following address, bank address and bank group bits of B-side DRAMs a + * re inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit en + * sures that, for mode register accesses generated by the uMCTL2 during th + * e automatic initialization routine and enabling of a particular DDR4 fea + * ture, separate A-side and B-side mode register accesses are generated. F + * or B-side mode register accesses, these bits are inverted within the uMC + * TL2 to compensate for this RDIMM inversion. Note: This has no effect on + * the address of any other memory accesses, or of software-driven mode reg + * ister accesses. - 1 - Implement output inversion for B-side DRAMs. - 0 - + * Do not implement output inversion for B-side DRAMs. + * PSU_DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN 0x0 + + * Address Mirroring Enable (for multi-rank UDIMM implementations and multi + * -rank DDR4 RDIMM implementations). Some UDIMMs and DDR4 RDIMMs implement + * address mirroring for odd ranks, which means that the following address + * , bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, + * A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting t + * his bit ensures that, for mode register accesses during the automatic in + * itialization routine, these bits are swapped within the uMCTL2 to compen + * sate for this UDIMM/RDIMM swapping. In addition to the automatic initial + * ization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during th + * e automatic MRS access to enable/disable of a particular DDR4 feature. N + * ote: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. This is not supported for mDD + * R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 + * output of MRS for the odd ranks is same as BG0 because BG1 is invalid, + * hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ran + * ks, implement address mirroring for MRS commands to during initializatio + * n and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM imp + * lements address mirroring) - 0 - Do not implement address mirroring + * PSU_DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN 0x0 + + * Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIM + * M implementations only). This is not supported for mDDR, LPDDR2, LPDDR3 + * or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of + * software driven MR commands (via MRCTRL0/MRCTRL1), where software is re + * sponsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Se + * nd MRS commands to each ranks seperately - 1 - (non-DDR4) Send all comma + * nds to even and odd ranks seperately - 0 - Do not stagger accesses + * PSU_DDRC_DIMMCTL_DIMM_STAGGER_CS_EN 0x0 + + * DIMM Control Register + * (OFFSET, MASK, VALUE) (0XFD0700F0, 0x0000003FU ,0x00000010U) + */ + PSU_Mask_Write(DDRC_DIMMCTL_OFFSET, 0x0000003FU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : RANKCTL @ 0XFD0700F4 + + * Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive writes to differ + * ent ranks. This is used to switch the delays in the PHY to match the ran + * k requirements. This value should consider both PHY requirement and ODT + * requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for v + * alue of tphy_wrcsgap) If CRC feature is enabled, should be increased by + * 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increas + * ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be inc + * reased by 1. - ODT requirement: The value programmed in this register ta + * kes care of the ODT switch off timing requirement when switching ranks d + * uring writes. For LPDDR4, the requirement is ODTLoff - ODTLon - BL/2 + 1 + * For configurations with MEMC_FREQ_RATIO=1, program this to the larger o + * f PHY requirement or ODT requirement. For configurations with MEMC_FREQ_ + * RATIO=2, program this to the larger value divided by two and round it up + * to the next integer. + * PSU_DDRC_RANKCTL_DIFF_RANK_WR_GAP 0x6 + + * Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive reads to differe + * nt ranks. This is used to switch the delays in the PHY to match the rank + * requirements. This value should consider both PHY requirement and ODT r + * equirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for va + * lue of tphy_rdcsgap) If read preamble is set to 2tCK(DDR4/LPDDR4 only), + * should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 only + * ), should be increased by 1. - ODT requirement: The value programmed in + * this register takes care of the ODT switch off timing requirement when s + * witching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, + * program this to the larger of PHY requirement or ODT requirement. For co + * nfigurations with MEMC_FREQ_RATIO=2, program this to the larger value di + * vided by two and round it up to the next integer. + * PSU_DDRC_RANKCTL_DIFF_RANK_RD_GAP 0x6 + + * Only present for multi-rank configurations. Background: Reads to the sam + * e rank can be performed back-to-back. Reads to different ranks require a + * dditional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is + * to avoid possible data bus contention as well as to give PHY enough tim + * e to switch the delay when changing ranks. The uMCTL2 arbitrates for bus + * access on a cycle-by-cycle basis; therefore after a read is scheduled, + * there are few clock cycles (determined by the value on RANKCTL.diff_rank + * _rd_gap register) in which only reads from the same rank are eligible to + * be scheduled. This prevents reads from other ranks from having fair acc + * ess to the data bus. This parameter represents the maximum number of rea + * ds that can be scheduled consecutively to the same rank. After this numb + * er is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by + * the scheduler to allow all ranks a fair opportunity to be scheduled. Hig + * her numbers increase bandwidth utilization, lower numbers increase fairn + * ess. This feature can be DISABLED by setting this register to 0. When se + * t to 0, the Controller will stay on the same rank as long as commands ar + * e available for it. Minimum programmable value is 0 (feature disabled) a + * nd maximum programmable value is 0xF. FOR PERFORMANCE ONLY. + * PSU_DDRC_RANKCTL_MAX_RANK_RD 0xf + + * Rank Control Register + * (OFFSET, MASK, VALUE) (0XFD0700F4, 0x00000FFFU ,0x0000066FU) + */ + PSU_Mask_Write(DDRC_RANKCTL_OFFSET, 0x00000FFFU, 0x0000066FU); +/*##################################################################### */ + + /* + * Register : DRAMTMG0 @ 0XFD070100 + + * Minimum time between write and precharge to same bank. Unit: Clocks Spec + * ifications: WL + BL/2 + tWR = approximately 8 cycles + 15 ns = 14 clocks + * @400MHz and less for lower frequencies where: - WL = write latency - BL + * = burst length. This must match the value programmed in the BL bit of t + * he mode register to the SDRAM. BST (burst terminate) is not supported at + * present. - tWR = Write recovery time. This comes directly from the SDRA + * M specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this p + * arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the + * above value by 2. No rounding up. For configurations with MEMC_FREQ_RAT + * IO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it u + * p to the next integer value. + * PSU_DDRC_DRAMTMG0_WR2PRE 0x11 + + * tFAW Valid only when 8 or more banks(or banks x bank groups) are present + * . In 8-bank design, at most 4 banks must be activated in a rolling windo + * w of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tFAW/2) and round up to next integer value. In a 4-bank design, se + * t this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. + * Unit: Clocks + * PSU_DDRC_DRAMTMG0_T_FAW 0x10 + + * tRAS(max): Maximum time between activate and precharge to same bank. Thi + * s is the maximum time that a page can be kept open Minimum value of this + * register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO + * =2, program this to (tRAS(max)-1)/2. No rounding up. Unit: Multiples of + * 1024 clocks. + * PSU_DDRC_DRAMTMG0_T_RAS_MAX 0x24 + + * tRAS(min): Minimum time between activate and precharge to the same bank. + * For configurations with MEMC_FREQ_RATIO=2, 1T mode, program this to tRA + * S(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T + * mode or LPDDR4 mode, program this to (tRAS(min)/2) and round it up to th + * e next integer value. Unit: Clocks + * PSU_DDRC_DRAMTMG0_T_RAS_MIN 0x12 + + * SDRAM Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x11102412U) + */ + PSU_Mask_Write(DDRC_DRAMTMG0_OFFSET, 0x7F3F7F3FU, 0x11102412U); +/*##################################################################### */ + + /* + * Register : DRAMTMG1 @ 0XFD070104 + + * tXP: Minimum time after power-down exit to any operation. For DDR3, this + * should be programmed to tXPDLL if slow powerdown exit is selected in MR + * 0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to (tXP/2) and round it + * up to the next integer value. Units: Clocks + * PSU_DDRC_DRAMTMG1_T_XP 0x4 + + * tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL + * /2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - DDR4: Max of followi + * ng two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 + * - LPDDR2: Depends on if it's LPDDR2-S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + t + * RTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) + * - 4 - LPDDR4: BL/2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_ + * RATIO=2, 1T mode, divide the above value by 2. No rounding up. For confi + * gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the abo + * ve value by 2 and round it up to the next integer value. Unit: Clocks. + * PSU_DDRC_DRAMTMG1_RD2PRE 0x4 + + * tRC: Minimum time between activates to same bank. For configurations wit + * h MEMC_FREQ_RATIO=2, program this to (tRC/2) and round up to next intege + * r value. Unit: Clocks. + * PSU_DDRC_DRAMTMG1_T_RC 0x1a + + * SDRAM Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x0004041AU) + */ + PSU_Mask_Write(DDRC_DRAMTMG1_OFFSET, 0x001F1F7FU, 0x0004041AU); +/*##################################################################### */ + + /* + * Register : DRAMTMG2 @ 0XFD070108 + + * Set to WL Time from write command to write data on SDRAM interface. This + * must be set to WL. For mDDR, it should normally be set to 1. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use a valu + * e of WL + 1 to compensate for the extra cycle of latency through the RDI + * MM For configurations with MEMC_FREQ_RATIO=2, divide the value calculate + * d using the above equation by 2, and round it up to next integer. This r + * egister field is not required for DDR2 and DDR3 (except if MEMC_TRAINING + * is set), as the DFI read and write latencies defined in DFITMG0 and DFI + * TMG1 are sufficient for those protocols Unit: clocks + * PSU_DDRC_DRAMTMG2_WRITE_LATENCY 0x7 + + * Set to RL Time from read command to read data on SDRAM interface. This m + * ust be set to RL. Note that, depending on the PHY, if using RDIMM, it ma + * t be necessary to use a value of RL + 1 to compensate for the extra cycl + * e of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2 + * , divide the value calculated using the above equation by 2, and round i + * t up to next integer. This register field is not required for DDR2 and D + * DR3 (except if MEMC_TRAINING is set), as the DFI read and write latencie + * s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit + * : clocks + * PSU_DDRC_DRAMTMG2_READ_LATENCY 0x8 + + * DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL L + * PDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL LPDDR4(DQ ODT is Di + * sabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL + * LPDDR4(DQ ODT is Enabled) : RL + BL/2 + RU(tDQSCKmax/tCK) + RD_POSTAMBL + * E - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write + * command. Include time for bus turnaround and all per-bank, per-rank, an + * d global constraints. Unit: Clocks. Where: - WL = write latency - BL = b + * urst length. This must match the value programmed in the BL bit of the m + * ode register to the SDRAM - RL = read latency = CAS latency - WR_PREAMBL + * E = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = + * read postamble. This is unique to LPDDR4. For LPDDR2/LPDDR3/LPDDR4, if d + * erating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should + * be used. For configurations with MEMC_FREQ_RATIO=2, divide the value cal + * culated using the above equation by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG2_RD2WR 0x6 + + * DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimu + * m time from write command to read command for same bank group. In others + * , minimum time from write command to read command. Includes time for bus + * turnaround, recovery times, and all per-bank, per-rank, and global cons + * traints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity la + * tency - BL = burst length. This must match the value programmed in the B + * L bit of the mode register to the SDRAM - tWTR_L = internal write to rea + * d command delay for same bank group. This comes directly from the SDRAM + * specification. - tWTR = internal write to read command delay. This comes + * directly from the SDRAM specification. Add one extra cycle for LPDDR2/L + * PDDR3/LPDDR4 operation. For configurations with MEMC_FREQ_RATIO=2, divid + * e the value calculated using the above equation by 2, and round it up to + * next integer. + * PSU_DDRC_DRAMTMG2_WR2RD 0xd + + * SDRAM Timing Register 2 + * (OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060DU) + */ + PSU_Mask_Write(DDRC_DRAMTMG2_OFFSET, 0x3F3F3F3FU, 0x0708060DU); +/*##################################################################### */ + + /* + * Register : DRAMTMG3 @ 0XFD07010C + + * Time to wait after a mode register write or read (MRW or MRR). Present o + * nly in designs configured to support LPDDR2, LPDDR3 or LPDDR4. LPDDR2 ty + * pically requires value of 5. LPDDR3 typically requires value of 10. LPDD + * R4: Set this to the larger of tMRW and tMRWCKEL. For LPDDR2, this regist + * er is used for the time from a MRW/MRR to all other commands. For LDPDR3 + * , this register is used for the time from a MRW/MRR to a MRW/MRR. + * PSU_DDRC_DRAMTMG3_T_MRW 0x5 + + * tMRD: Cycles to wait after a mode register write or read. Depending on t + * he connected SDRAM, tMRD represents: DDR2/mDDR: Time from MRS to any com + * mand DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Tim + * e from MRS to non-MRS command For configurations with MEMC_FREQ_RATIO=2, + * program this to (tMRD/2) and round it up to the next integer value. If + * C/A parity for DDR4 is used, set to tMRD_PAR(tMOD+PL) instead. + * PSU_DDRC_DRAMTMG3_T_MRD 0x4 + + * tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode com + * mand and following non-load mode command. If C/A parity for DDR4 is used + * , set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or + * tMOD/2 (rounded up to next integer) if MEMC_FREQ_RATIO=2. Note that if + * using RDIMM, depending on the PHY, it may be necessary to use a value of + * tMOD + 1 or (tMOD + 1)/2 to compensate for the extra cycle of latency a + * pplied to mode register writes by the RDIMM chip. + * PSU_DDRC_DRAMTMG3_T_MOD 0xc + + * SDRAM Timing Register 3 + * (OFFSET, MASK, VALUE) (0XFD07010C, 0x3FF3F3FFU ,0x0050400CU) + */ + PSU_Mask_Write(DDRC_DRAMTMG3_OFFSET, 0x3FF3F3FFU, 0x0050400CU); +/*##################################################################### */ + + /* + * Register : DRAMTMG4 @ 0XFD070110 + + * tRCD - tAL: Minimum time from activate to read or write command to same + * bank. For configurations with MEMC_FREQ_RATIO=2, program this to ((tRCD + * - tAL)/2) and round it up to the next integer value. Minimum value allow + * ed for this register is 1, which implies minimum (tRCD - tAL) value to b + * e 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. + * PSU_DDRC_DRAMTMG4_T_RCD 0x8 + + * DDR4: tCCD_L: This is the minimum time between two reads or two writes f + * or same bank group. Others: tCCD: This is the minimum time between two r + * eads or two writes. For configurations with MEMC_FREQ_RATIO=2, program t + * his to (tCCD_L/2 or tCCD/2) and round it up to the next integer value. U + * nit: clocks. + * PSU_DDRC_DRAMTMG4_T_CCD 0x3 + + * DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' f + * or same bank group. Others: tRRD: Minimum time between activates from ba + * nk 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tRRD_L/2 or tRRD/2) and round it up to the next integer value. Uni + * t: Clocks. + * PSU_DDRC_DRAMTMG4_T_RRD 0x3 + + * tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ + * _RATIO=1 configurations, t_rp should be set to RoundUp(tRP/tCK). For MEM + * C_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(t + * RP/tCK)/2) + 1. For MEMC_FREQ_RATIO=2 configurations in LPDDR4, t_rp sho + * uld be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. + * PSU_DDRC_DRAMTMG4_T_RP 0x9 + + * SDRAM Timing Register 4 + * (OFFSET, MASK, VALUE) (0XFD070110, 0x1F0F0F1FU ,0x08030309U) + */ + PSU_Mask_Write(DDRC_DRAMTMG4_OFFSET, 0x1F0F0F1FU, 0x08030309U); +/*##################################################################### */ + + /* + * Register : DRAMTMG5 @ 0XFD070114 + + * This is the time before Self Refresh Exit that CK is maintained as a val + * id clock before issuing SRX. Specifies the clock stable time before SRX. + * Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCK + * EH - DDR2: 1 - DDR3: tCKSRX - DDR4: tCKSRX For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKSRX 0x6 + + * This is the time after Self Refresh Down Entry that CK is maintained as + * a valid clock. Specifies the clock disable delay after SRE. Recommended + * settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 + * - DDR3: max (10 ns, 5 tCK) - DDR4: max (10 ns, 5 tCK) For configurations + * with MEMC_FREQ_RATIO=2, program this to recommended value divided by tw + * o and round it up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKSRE 0x6 + + * Minimum CKE low width for Self refresh or Self refresh power down entry + * to exit timing in memory clock cycles. Recommended settings: - mDDR: tRF + * C - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: + * tCKE - DDR3: tCKE + 1 - DDR4: tCKE + 1 For configurations with MEMC_FREQ + * _RATIO=2, program this to recommended value divided by two and round it + * up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKESR 0x4 + + * Minimum number of cycles of CKE HIGH/LOW during power-down and self refr + * esh. - LPDDR2/LPDDR3 mode: Set this to the larger of tCKE or tCKESR - LP + * DDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/ + * non-LPDDR3/non-LPDDR4 designs: Set this to tCKE value. For configuration + * s with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and + * round it up to the next integer value. Unit: Clocks. + * PSU_DDRC_DRAMTMG5_T_CKE 0x3 + + * SDRAM Timing Register 5 + * (OFFSET, MASK, VALUE) (0XFD070114, 0x0F0F3F1FU ,0x06060403U) + */ + PSU_Mask_Write(DDRC_DRAMTMG5_OFFSET, 0x0F0F3F1FU, 0x06060403U); +/*##################################################################### */ + + /* + * Register : DRAMTMG6 @ 0XFD070118 + + * This is the time after Deep Power Down Entry that CK is maintained as a + * valid clock. Specifies the clock disable delay after DPDE. Recommended s + * ettings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. This is only present for designs supporting mDDR + * or LPDDR2/LPDDR3 devices. + * PSU_DDRC_DRAMTMG6_T_CKDPDE 0x1 + + * This is the time before Deep Power Down Exit that CK is maintained as a + * valid clock before issuing DPDX. Specifies the clock stable time before + * DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For config + * urations with MEMC_FREQ_RATIO=2, program this to recommended value divid + * ed by two and round it up to next integer. This is only present for desi + * gns supporting mDDR or LPDDR2 devices. + * PSU_DDRC_DRAMTMG6_T_CKDPDX 0x1 + + * This is the time before Clock Stop Exit that CK is maintained as a valid + * clock before issuing Clock Stop Exit. Specifies the clock stable time b + * efore next command after Clock Stop Exit. Recommended settings: - mDDR: + * 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + 2 - LPDDR4: tXP + 2 For configuratio + * ns with MEMC_FREQ_RATIO=2, program this to recommended value divided by + * two and round it up to next integer. This is only present for designs su + * pporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG6_T_CKCSX 0x4 + + * SDRAM Timing Register 6 + * (OFFSET, MASK, VALUE) (0XFD070118, 0x0F0F000FU ,0x01010004U) + */ + PSU_Mask_Write(DDRC_DRAMTMG6_OFFSET, 0x0F0F000FU, 0x01010004U); +/*##################################################################### */ + + /* + * Register : DRAMTMG7 @ 0XFD07011C + + * This is the time after Power Down Entry that CK is maintained as a valid + * clock. Specifies the clock disable delay after PDE. Recommended setting + * s: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configuration + * s with MEMC_FREQ_RATIO=2, program this to recommended value divided by t + * wo and round it up to next integer. This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG7_T_CKPDE 0x6 + + * This is the time before Power Down Exit that CK is maintained as a valid + * clock before issuing PDX. Specifies the clock stable time before PDX. R + * ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For c + * onfigurations with MEMC_FREQ_RATIO=2, program this to recommended value + * divided by two and round it up to next integer. This is only present for + * designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG7_T_CKPDX 0x6 + + * SDRAM Timing Register 7 + * (OFFSET, MASK, VALUE) (0XFD07011C, 0x00000F0FU ,0x00000606U) + */ + PSU_Mask_Write(DDRC_DRAMTMG7_OFFSET, 0x00000F0FU, 0x00000606U); +/*##################################################################### */ + + /* + * Register : DRAMTMG8 @ 0XFD070120 + + * tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and + * Geardown mode). For configurations with MEMC_FREQ_RATIO=2, program this + * to the above value divided by 2 and round up to next integer value. Unit + * : Multiples of 32 clocks. Note: This is applicable to only ZQCL/ZQCS com + * mands. Note: Ensure this is less than or equal to t_xs_x32. + * PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x3 + + * tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in S + * elf Refresh Abort. For configurations with MEMC_FREQ_RATIO=2, program th + * is to the above value divided by 2 and round up to next integer value. U + * nit: Multiples of 32 clocks. Note: Ensure this is less than or equal to + * t_xs_x32. + * PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x3 + + * tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For config + * urations with MEMC_FREQ_RATIO=2, program this to the above value divided + * by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. + * PSU_DDRC_DRAMTMG8_T_XS_DLL_X32 0xd + + * tXS: Exit Self Refresh to commands not requiring a locked DLL. For confi + * gurations with MEMC_FREQ_RATIO=2, program this to the above value divide + * d by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. + * PSU_DDRC_DRAMTMG8_T_XS_X32 0x6 + + * SDRAM Timing Register 8 + * (OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x03030D06U) + */ + PSU_Mask_Write(DDRC_DRAMTMG8_OFFSET, 0x7F7F7F7FU, 0x03030D06U); +/*##################################################################### */ + + /* + * Register : DRAMTMG9 @ 0XFD070124 + + * DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present o + * nly with MEMC_FREQ_RATIO=2 + * PSU_DDRC_DRAMTMG9_DDR4_WR_PREAMBLE 0x0 + + * tCCD_S: This is the minimum time between two reads or two writes for dif + * ferent bank group. For bank switching (from bank 'a' to bank 'b'), the m + * inimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2 + * , program this to (tCCD_S/2) and round it up to the next integer value. + * Present only in designs configured to support DDR4. Unit: clocks. + * PSU_DDRC_DRAMTMG9_T_CCD_S 0x2 + + * tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for dif + * ferent bank group. For configurations with MEMC_FREQ_RATIO=2, program th + * is to (tRRD_S/2) and round it up to the next integer value. Present only + * in designs configured to support DDR4. Unit: Clocks. + * PSU_DDRC_DRAMTMG9_T_RRD_S 0x2 + + * CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command + * for different bank group. Includes time for bus turnaround, recovery ti + * mes, and all per-bank, per-rank, and global constraints. Present only in + * designs configured to support DDR4. Unit: Clocks. Where: - CWL = CAS wr + * ite latency - PL = Parity latency - BL = burst length. This must match t + * he value programmed in the BL bit of the mode register to the SDRAM - tW + * TR_S = internal write to read command delay for different bank group. Th + * is comes directly from the SDRAM specification. For configurations with + * MEMC_FREQ_RATIO=2, divide the value calculated using the above equation + * by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG9_WR2RD_S 0xb + + * SDRAM Timing Register 9 + * (OFFSET, MASK, VALUE) (0XFD070124, 0x40070F3FU ,0x0002020BU) + */ + PSU_Mask_Write(DDRC_DRAMTMG9_OFFSET, 0x40070F3FU, 0x0002020BU); +/*##################################################################### */ + + /* + * Register : DRAMTMG11 @ 0XFD07012C + + * tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DL + * L. For configurations with MEMC_FREQ_RATIO=2, program this to (tXMPDLL/2 + * ) and round it up to the next integer value. Present only in designs con + * figured to support DDR4. Unit: Multiples of 32 clocks. + * PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x70 + + * tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For + * configurations with MEMC_FREQ_RATIO=2, program this to RoundUp(tMPX_LH/2 + * )+1. Present only in designs configured to support DDR4. Unit: clocks. + * PSU_DDRC_DRAMTMG11_T_MPX_LH 0x7 + + * tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_ + * FREQ_RATIO=2, program this to (tMPX_S/2) and round it up to the next int + * eger value. Present only in designs configured to support DDR4. Unit: Cl + * ocks. + * PSU_DDRC_DRAMTMG11_T_MPX_S 0x1 + + * tCKMPE: Minimum valid clock requirement after MPSM entry. Present only i + * n designs configured to support DDR4. Unit: Clocks. For configurations w + * ith MEMC_FREQ_RATIO=2, divide the value calculated using the above equat + * ion by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG11_T_CKMPE 0xe + + * SDRAM Timing Register 11 + * (OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x7007010EU) + */ + PSU_Mask_Write(DDRC_DRAMTMG11_OFFSET, 0x7F1F031FU, 0x7007010EU); +/*##################################################################### */ + + /* + * Register : DRAMTMG12 @ 0XFD070130 + + * tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larg + * er of tESCKE or tCMDCKE For configurations with MEMC_FREQ_RATIO=2, progr + * am this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer valu + * e. + * PSU_DDRC_DRAMTMG12_T_CMDCKE 0x2 + + * tCKEHCMD: Valid command requirement after CKE input HIGH. For configurat + * ions with MEMC_FREQ_RATIO=2, program this to (tCKEHCMD/2) and round it u + * p to next integer value. + * PSU_DDRC_DRAMTMG12_T_CKEHCMD 0x6 + + * tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. + * For configurations with MEMC_FREQ_RATIO=2, program this to (tMRD_PDA/2) + * and round it up to next integer value. + * PSU_DDRC_DRAMTMG12_T_MRD_PDA 0x8 + + * SDRAM Timing Register 12 + * (OFFSET, MASK, VALUE) (0XFD070130, 0x00030F1FU ,0x00020608U) + */ + PSU_Mask_Write(DDRC_DRAMTMG12_OFFSET, 0x00030F1FU, 0x00020608U); +/*##################################################################### */ + + /* + * Register : ZQCTL0 @ 0XFD070180 + + * - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Reg + * ister DBGCMD.zq_calib_short can be used instead to issue ZQ calibration + * request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibrati + * on) commands based on ZQCTL1.t_zq_short_interval_x1024. This is only pre + * sent for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_AUTO_ZQ 0x1 + + * - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refres + * h/SR-Powerdown exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 + * or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibratio + * n) command at Self-Refresh/SR-Powerdown exit. Only applicable when run i + * n DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present + * for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_SRX_ZQCL 0x0 + + * - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQC + * L/ZQCS/MPC(ZQ calibration) commands are sent to one rank at a time with + * tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that co + * mmands to different ranks do not overlap. - 0 - ZQ resistor is not share + * d. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR + * 3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_ZQ_RESISTOR_SHARED 0x0 + + * - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. + * Only applicable when run in DDR4 mode. - 0 - Enable issuing of ZQCL com + * mand at Maximum Power Saving Mode exit. Only applicable when run in DDR4 + * mode. This is only present for designs supporting DDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_MPSMX_ZQCL 0x0 + + * tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Numbe + * r of cycles of NOP required after a ZQCL (ZQ calibration long)/MPC(ZQ St + * art) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO + * =2: DDR3/DDR4: program this to tZQoper/2 and round it up to the next int + * eger value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to th + * e next integer value. LPDDR4: program this to tZQCAL/2 and round it up t + * o the next integer value. Unit: Clock cycles. This is only present for d + * esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_T_ZQ_LONG_NOP 0x100 + + * tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of + * NOP required after a ZQCS (ZQ calibration short)/MPC(ZQ Latch) command + * is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program t + * his to tZQCS/2 and round it up to the next integer value. Unit: Clock cy + * cles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LP + * DDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_T_ZQ_SHORT_NOP 0x40 + + * ZQ Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD070180, 0xF7FF03FFU ,0x81000040U) + */ + PSU_Mask_Write(DDRC_ZQCTL0_OFFSET, 0xF7FF03FFU, 0x81000040U); +/*##################################################################### */ + + /* + * Register : ZQCTL1 @ 0XFD070184 + + * tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibrati + * on Reset) command is issued to SDRAM. For configurations with MEMC_FREQ_ + * RATIO=2, program this to tZQReset/2 and round it up to the next integer + * value. Unit: Clock cycles. This is only present for designs supporting L + * PDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL1_T_ZQ_RESET_NOP 0x20 + + * Average interval to wait between automatically issuing ZQCS (ZQ calibrat + * ion short)/MPC(ZQ calibration) commands to DDR3/DDR4/LPDDR2/LPDDR3/LPDDR + * 4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles + * . This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3 + * /LPDDR4 devices. + * PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x196dc + + * ZQ Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x020196DCU) + */ + PSU_Mask_Write(DDRC_ZQCTL1_OFFSET, 0x3FFFFFFFU, 0x020196DCU); +/*##################################################################### */ + + /* + * Register : DFITMG0 @ 0XFD070190 + + * Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. + * PSU_DDRC_DFITMG0_DFI_T_CTRL_DELAY 0x4 + + * Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. + * PSU_DDRC_DFITMG0_DFI_RDDATA_USE_SDR 0x1 + + * Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks + * PSU_DDRC_DFITMG0_DFI_T_RDDATA_EN 0xb + + * Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. + * PSU_DDRC_DFITMG0_DFI_WRDATA_USE_SDR 0x1 + + * Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks + * PSU_DDRC_DFITMG0_DFI_TPHY_WRDATA 0x2 + + * Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. + * PSU_DDRC_DFITMG0_DFI_TPHY_WRLAT 0xb + + * DFI Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD070190, 0x1FBFBF3FU ,0x048B820BU) + */ + PSU_Mask_Write(DDRC_DFITMG0_OFFSET, 0x1FBFBF3FU, 0x048B820BU); +/*##################################################################### */ + + /* + * Register : DFITMG1 @ 0XFD070194 + + * Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated command is driven. This field is used + * for CAL mode, should be set to '0' or the value which matches the CAL mo + * de register setting in the DRAM. If the PHY can add the latency for CAL + * mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 + * PSU_DDRC_DFITMG1_DFI_T_CMD_LAT 0x0 + + * Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated dfi_parity_in signal is driven. + * PSU_DDRC_DFITMG1_DFI_T_PARIN_LAT 0x0 + + * Specifies the number of DFI clocks between when the dfi_wrdata_en signal + * is asserted and when the corresponding write data transfer is completed + * on the DRAM bus. This corresponds to the DFI timing parameter twrdata_d + * elay. Refer to PHY specification for correct value. For DFI 3.0 PHY, set + * to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI + * 2.1 PHY, set to tphy_wrdata + (delay of DFI write data to the DRAM). Va + * lue to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ_ + * RATIO=2, divide PHY's value by 2 and round up to next integer. If using + * DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Unit: Clocks + * PSU_DDRC_DFITMG1_DFI_T_WRDATA_DELAY 0x3 + + * Specifies the number of DFI clock cycles from the assertion of the dfi_d + * ram_clk_disable signal on the DFI until the clock to the DRAM memory dev + * ices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock + * and the memory clock are not phase aligned, this timing parameter should + * be rounded up to the next integer value. + * PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE 0x3 + + * Specifies the number of DFI clock cycles from the de-assertion of the df + * i_dram_clk_disable signal on the DFI until the first valid rising edge o + * f the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the + * DFI clock and the memory clock are not phase aligned, this timing param + * eter should be rounded up to the next integer value. + * PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE 0x4 + + * DFI Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD070194, 0xF31F0F0FU ,0x00030304U) + */ + PSU_Mask_Write(DDRC_DFITMG1_OFFSET, 0xF31F0F0FU, 0x00030304U); +/*##################################################################### */ + + /* + * Register : DFILPCFG0 @ 0XFD070198 + + * Setting for DFI's tlp_resp time. Same value is used for both Power Down, + * Self Refresh, Deep Power Down and Maximum Power Saving modes. DFI 2.1 s + * pecification onwards, recommends using a fixed value of 7 always. + * PSU_DDRC_DFILPCFG0_DFI_TLP_RESP 0x7 + + * Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is ente + * red. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 + * cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 5 + * 12 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - + * 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 6553 + * 6 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited T + * his is only present for designs supporting mDDR or LPDDR2/LPDDR3 devices + * . + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD 0x0 + + * Enables DFI Low Power interface handshaking during Deep Power Down Entry + * /Exit. - 0 - Disabled - 1 - Enabled This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3 devices. + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_DPD 0x0 + + * Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered + * . Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cyc + * les - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 + * cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 + * - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 c + * ycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR 0x0 + + * Enables DFI Low Power interface handshaking during Self Refresh Entry/Ex + * it. - 0 - Disabled - 1 - Enabled + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_SR 0x1 + + * Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. + * Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cycle + * s - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cy + * cles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - + * 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cyc + * les - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD 0x0 + + * Enables DFI Low Power interface handshaking during Power Down Entry/Exit + * . - 0 - Disabled - 1 - Enabled + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_PD 0x1 + + * DFI Low Power Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070198, 0x0FF1F1F1U ,0x07000101U) + */ + PSU_Mask_Write(DDRC_DFILPCFG0_OFFSET, 0x0FF1F1F1U, 0x07000101U); +/*##################################################################### */ + + /* + * Register : DFILPCFG1 @ 0XFD07019C + + * Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is + * entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 + * - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x + * 5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycl + * es - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - + * 65536 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimi + * ted This is only present for designs supporting DDR4 devices. + * PSU_DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM 0x2 + + * Enables DFI Low Power interface handshaking during Maximum Power Saving + * Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is only present for d + * esigns supporting DDR4 devices. + * PSU_DDRC_DFILPCFG1_DFI_LP_EN_MPSM 0x1 + + * DFI Low Power Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD07019C, 0x000000F1U ,0x00000021U) + */ + PSU_Mask_Write(DDRC_DFILPCFG1_OFFSET, 0x000000F1U, 0x00000021U); +/*##################################################################### */ + + /* + * Register : DFIUPD0 @ 0XFD0701A0 + + * When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * . The core must issue the dfi_ctrlupd_req signal using register reg_ddrc + * _ctrlupd. When '0', uMCTL2 issues dfi_ctrlupd_req periodically. + * PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD 0x0 + + * When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * following a self-refresh exit. The core must issue the dfi_ctrlupd_req + * signal using register reg_ddrc_ctrlupd. When '0', uMCTL2 issues a dfi_ct + * rlupd_req after exiting self-refresh. + * PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX 0x0 + + * Specifies the maximum number of clock cycles that the dfi_ctrlupd_req si + * gnal can assert. Lowest value to assign to this variable is 0x40. Unit: + * Clocks + * PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MAX 0x40 + + * Specifies the minimum number of clock cycles that the dfi_ctrlupd_req si + * gnal must be asserted. The uMCTL2 expects the PHY to respond within this + * time. If the PHY does not respond, the uMCTL2 will de-assert dfi_ctrlup + * d_req after dfi_t_ctrlup_min + 2 cycles. Lowest value to assign to this + * variable is 0x3. Unit: Clocks + * PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MIN 0x3 + + * DFI Update Register 0 + * (OFFSET, MASK, VALUE) (0XFD0701A0, 0xC3FF03FFU ,0x00400003U) + */ + PSU_Mask_Write(DDRC_DFIUPD0_OFFSET, 0xC3FF03FFU, 0x00400003U); +/*##################################################################### */ + + /* + * Register : DFIUPD1 @ 0XFD0701A4 + + * This is the minimum amount of time between uMCTL2 initiated DFI update r + * equests (which is executed whenever the uMCTL2 is idle). Set this number + * higher to reduce the frequency of update requests, which can have a sma + * ll impact on the latency of the first read request when the uMCTL2 is id + * le. Unit: 1024 clocks + * PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024 0x41 + + * This is the maximum amount of time between uMCTL2 initiated DFI update r + * equests. This timer resets with each update request; when the timer expi + * res dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd + * _ackx is received. PHY can use this idle time to recalibrate the delay l + * ines to the DLLs. The DFI controller update is also used to reset PHY FI + * FO pointers in case of data capture errors. Updates are required to main + * tain calibration over PVT, but frequent updates may impact performance. + * Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must + * be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x1024. Unit: 1024 cl + * ocks + * PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe1 + + * DFI Update Register 1 + * (OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E1U) + */ + PSU_Mask_Write(DDRC_DFIUPD1_OFFSET, 0x00FF00FFU, 0x004100E1U); +/*##################################################################### */ + + /* + * Register : DFIMISC @ 0XFD0701B0 + + * Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signal + * s are active low - 1: Signals are active high + * PSU_DDRC_DFIMISC_DFI_DATA_CS_POLARITY 0x0 + + * DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. + * - 1 - PHY implements DBI functionality. Present only in designs configu + * red to support DDR4 and LPDDR4. + * PSU_DDRC_DFIMISC_PHY_DBI_MODE 0x0 + + * PHY initialization complete enable signal. When asserted the dfi_init_co + * mplete signal can be used to trigger SDRAM initialisation + * PSU_DDRC_DFIMISC_DFI_INIT_COMPLETE_EN 0x0 + + * DFI Miscellaneous Control Register + * (OFFSET, MASK, VALUE) (0XFD0701B0, 0x00000007U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DFIMISC_OFFSET, 0x00000007U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DFITMG2 @ 0XFD0701B4 + + * >Number of clocks between when a read command is sent on the DFI control + * interface and when the associated dfi_rddata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY spe + * cification for correct value. + * PSU_DDRC_DFITMG2_DFI_TPHY_RDCSLAT 0x9 + + * Number of clocks between when a write command is sent on the DFI control + * interface and when the associated dfi_wrdata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY spe + * cification for correct value. + * PSU_DDRC_DFITMG2_DFI_TPHY_WRCSLAT 0x6 + + * DFI Timing Register 2 + * (OFFSET, MASK, VALUE) (0XFD0701B4, 0x00003F3FU ,0x00000906U) + */ + PSU_Mask_Write(DDRC_DFITMG2_OFFSET, 0x00003F3FU, 0x00000906U); +/*##################################################################### */ + + /* + * Register : DBICTL @ 0XFD0701C0 + + * Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read D + * BI is enabled. This signal must be set the same value as DRAM's mode reg + * ister. - DDR4: MR5 bit A12. When x4 devices are used, this signal must b + * e set to 0. - LPDDR4: MR3[6] + * PSU_DDRC_DBICTL_RD_DBI_EN 0x0 + + * Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Writ + * e DBI is enabled. This signal must be set the same value as DRAM's mode + * register. - DDR4: MR5 bit A11. When x4 devices are used, this signal mus + * t be set to 0. - LPDDR4: MR3[7] + * PSU_DDRC_DBICTL_WR_DBI_EN 0x0 + + * DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. Thi + * s signal must be set the same logical value as DRAM's mode register. - D + * DR4: Set this to same value as MR5 bit A10. When x4 devices are used, th + * is signal must be set to 0. - LPDDR4: Set this to inverted value of MR13 + * [5] which is opposite polarity from this signal + * PSU_DDRC_DBICTL_DM_EN 0x1 + + * DM/DBI Control Register + * (OFFSET, MASK, VALUE) (0XFD0701C0, 0x00000007U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_DBICTL_OFFSET, 0x00000007U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : ADDRMAP0 @ 0XFD070200 + + * Selects the HIF address bit used as rank address bit 0. Valid Range: 0 t + * o 27, and 31 Internal Base: 6 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, r + * ank address bit 0 is set to 0. + * PSU_DDRC_ADDRMAP0_ADDRMAP_CS_BIT0 0x1f + + * Address Map Register 0 + * (OFFSET, MASK, VALUE) (0XFD070200, 0x0000001FU ,0x0000001FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP0_OFFSET, 0x0000001FU, 0x0000001FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP1 @ 0XFD070204 + + * Selects the HIF address bit used as bank address bit 2. Valid Range: 0 t + * o 29 and 31 Internal Base: 4 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, ba + * nk address bit 2 is set to 0. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B2 0x1f + + * Selects the HIF address bits used as bank address bit 1. Valid Range: 0 + * to 30 Internal Base: 3 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B1 0xa + + * Selects the HIF address bits used as bank address bit 0. Valid Range: 0 + * to 30 Internal Base: 2 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B0 0xa + + * Address Map Register 1 + * (OFFSET, MASK, VALUE) (0XFD070204, 0x001F1F1FU ,0x001F0A0AU) + */ + PSU_Mask_Write(DDRC_ADDRMAP1_OFFSET, 0x001F1F1FU, 0x001F0A0AU); +/*##################################################################### */ + + /* + * Register : ADDRMAP2 @ 0XFD070208 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 5. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 6. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 7 . Valid Range: 0 to 7, and 15 Internal Base + * : 5 The selected HIF address bit is determined by adding the internal ba + * se to the value of this field. If set to 15, this column address bit is + * set to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B5 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 4. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 5. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 6. Valid Range: 0 to 7, and 15 Internal Base: + * 4 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B4 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 3. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 4. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 5. Valid Range: 0 to 7 Internal Base: 3 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=1 + * 6, it is required to program this to 0, hence register does not exist in + * this case. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B3 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 2. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 3. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 4. Valid Range: 0 to 7 Internal Base: 2 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 + * or 16, it is required to program this to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B2 0x0 + + * Address Map Register 2 + * (OFFSET, MASK, VALUE) (0XFD070208, 0x0F0F0F0FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ADDRMAP2_OFFSET, 0x0F0F0F0FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ADDRMAP3 @ 0XFD07020C + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 9. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: + * Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/ + * LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected + * HIF address bit is determined by adding the internal base to the value o + * f this field. If set to 15, this column address bit is set to 0. Note: P + * er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved fo + * r indicating auto-precharge, and hence no source address bit can be mapp + * ed to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit + * for auto-precharge in the CA bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B9 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 8. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 9. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). Valid Range: 0 + * to 7, and 15 Internal Base: 8 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specifi + * cation, column address bit 10 is reserved for indicating auto-precharge, + * and hence no source address bit can be mapped to column address bit 10. + * In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA + * bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B8 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 7. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 8. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 9. Valid Range: 0 to 7, and 15 Internal Base: + * 7 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B7 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 6. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 7. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 8. Valid Range: 0 to 7, and 15 Internal Base: + * 6 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B6 0x0 + + * Address Map Register 3 + * (OFFSET, MASK, VALUE) (0XFD07020C, 0x0F0F0F0FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ADDRMAP3_OFFSET, 0x0F0F0F0FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ADDRMAP4 @ 0XFD070210 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width mode: Unused. To m + * ake it unused, this should be tied to 4'hF. - Quarter bus width mode: Un + * used. To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, + * and 15 Internal Base: 11 The selected HIF address bit is determined by + * adding the internal base to the value of this field. If set to 15, this + * column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificatio + * n, column address bit 10 is reserved for indicating auto-precharge, and + * hence no source address bit can be mapped to column address bit 10. In L + * PDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus + * and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B11 0xf + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width mode: Selects the + * HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode) + * . - Quarter bus width mode: UNUSED. To make it unused, this must be tied + * to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF + * address bit is determined by adding the internal base to the value of t + * his field. If set to 15, this column address bit is set to 0. Note: Per + * JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for i + * ndicating auto-precharge, and hence no source address bit can be mapped + * to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for + * auto-precharge in the CA bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B10 0xf + + * Address Map Register 4 + * (OFFSET, MASK, VALUE) (0XFD070210, 0x00000F0FU ,0x00000F0FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP4_OFFSET, 0x00000F0FU, 0x00000F0FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP5 @ 0XFD070214 + + * Selects the HIF address bit used as row address bit 11. Valid Range: 0 t + * o 11, and 15 Internal Base: 17 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 11 is set to 0. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B11 0x8 + + * Selects the HIF address bits used as row address bits 2 to 10. Valid Ran + * ge: 0 to 11, and 15 Internal Base: 8 (for row address bit 2), 9 (for row + * address bit 3), 10 (for row address bit 4) etc increasing to 16 (for ro + * w address bit 10) The selected HIF address bit for each of the row addre + * ss bits is determined by adding the internal base to the value of this f + * ield. When value 15 is used the values of row address bits 2 to 10 are d + * efined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10 0xf + + * Selects the HIF address bits used as row address bit 1. Valid Range: 0 t + * o 11 Internal Base: 7 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B1 0x8 + + * Selects the HIF address bits used as row address bit 0. Valid Range: 0 t + * o 11 Internal Base: 6 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B0 0x8 + + * Address Map Register 5 + * (OFFSET, MASK, VALUE) (0XFD070214, 0x0F0F0F0FU ,0x080F0808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP5_OFFSET, 0x0F0F0F0FU, 0x080F0808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP6 @ 0XFD070218 + + * Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 + * - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address having row[14:13]= + * =2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. + * All addresses are valid Present only in designs configured to support L + * PDDR3. + * PSU_DDRC_ADDRMAP6_LPDDR3_6GB_12GB 0x0 + + * Selects the HIF address bit used as row address bit 15. Valid Range: 0 t + * o 11, and 15 Internal Base: 21 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 15 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B15 0xf + + * Selects the HIF address bit used as row address bit 14. Valid Range: 0 t + * o 11, and 15 Internal Base: 20 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 14 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B14 0x8 + + * Selects the HIF address bit used as row address bit 13. Valid Range: 0 t + * o 11, and 15 Internal Base: 19 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 13 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B13 0x8 + + * Selects the HIF address bit used as row address bit 12. Valid Range: 0 t + * o 11, and 15 Internal Base: 18 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 12 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B12 0x8 + + * Address Map Register 6 + * (OFFSET, MASK, VALUE) (0XFD070218, 0x8F0F0F0FU ,0x0F080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP6_OFFSET, 0x8F0F0F0FU, 0x0F080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP7 @ 0XFD07021C + + * Selects the HIF address bit used as row address bit 17. Valid Range: 0 t + * o 10, and 15 Internal Base: 23 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 17 is set to 0. + * PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B17 0xf + + * Selects the HIF address bit used as row address bit 16. Valid Range: 0 t + * o 11, and 15 Internal Base: 22 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 16 is set to 0. + * PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B16 0xf + + * Address Map Register 7 + * (OFFSET, MASK, VALUE) (0XFD07021C, 0x00000F0FU ,0x00000F0FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP7_OFFSET, 0x00000F0FU, 0x00000F0FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP8 @ 0XFD070220 + + * Selects the HIF address bits used as bank group address bit 1. Valid Ran + * ge: 0 to 30, and 31 Internal Base: 3 The selected HIF address bit for ea + * ch of the bank group address bits is determined by adding the internal b + * ase to the value of this field. If set to 31, bank group address bit 1 i + * s set to 0. + * PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B1 0x8 + + * Selects the HIF address bits used as bank group address bit 0. Valid Ran + * ge: 0 to 30 Internal Base: 2 The selected HIF address bit for each of th + * e bank group address bits is determined by adding the internal base to t + * he value of this field. + * PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B0 0x8 + + * Address Map Register 8 + * (OFFSET, MASK, VALUE) (0XFD070220, 0x00001F1FU ,0x00000808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP8_OFFSET, 0x00001F1FU, 0x00000808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP9 @ 0XFD070224 + + * Selects the HIF address bits used as row address bit 5. Valid Range: 0 t + * o 11 Internal Base: 11 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B5 0x8 + + * Selects the HIF address bits used as row address bit 4. Valid Range: 0 t + * o 11 Internal Base: 10 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B4 0x8 + + * Selects the HIF address bits used as row address bit 3. Valid Range: 0 t + * o 11 Internal Base: 9 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B3 0x8 + + * Selects the HIF address bits used as row address bit 2. Valid Range: 0 t + * o 11 Internal Base: 8 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B2 0x8 + + * Address Map Register 9 + * (OFFSET, MASK, VALUE) (0XFD070224, 0x0F0F0F0FU ,0x08080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP9_OFFSET, 0x0F0F0F0FU, 0x08080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP10 @ 0XFD070228 + + * Selects the HIF address bits used as row address bit 9. Valid Range: 0 t + * o 11 Internal Base: 15 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B9 0x8 + + * Selects the HIF address bits used as row address bit 8. Valid Range: 0 t + * o 11 Internal Base: 14 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B8 0x8 + + * Selects the HIF address bits used as row address bit 7. Valid Range: 0 t + * o 11 Internal Base: 13 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B7 0x8 + + * Selects the HIF address bits used as row address bit 6. Valid Range: 0 t + * o 11 Internal Base: 12 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B6 0x8 + + * Address Map Register 10 + * (OFFSET, MASK, VALUE) (0XFD070228, 0x0F0F0F0FU ,0x08080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP10_OFFSET, 0x0F0F0F0FU, 0x08080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP11 @ 0XFD07022C + + * Selects the HIF address bits used as row address bit 10. Valid Range: 0 + * to 11 Internal Base: 16 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of + * this field. This register field is used only when ADDRMAP5.addrmap_row_b + * 2_10 is set to value 15. + * PSU_DDRC_ADDRMAP11_ADDRMAP_ROW_B10 0x8 + + * Address Map Register 11 + * (OFFSET, MASK, VALUE) (0XFD07022C, 0x0000000FU ,0x00000008U) + */ + PSU_Mask_Write(DDRC_ADDRMAP11_OFFSET, 0x0000000FU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : ODTCFG @ 0XFD070240 + + * Cycles to hold ODT for a write command. The minimum supported value is 2 + * . Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/667), 0x6 (DDR2-800 + * ), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (D + * DR2-1066) DDR3: - BL8: 0x6 DDR4: - BL8: 5 + WR_PREAMBLE + CRC_MODE WR_PR + * EAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 ( + * not CRC mode), 1 (CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_WR_ODT_HOLD 0x6 + + * The delay, in clock cycles, from issuing a write command to setting ODT + * values associated with that command. ODT setting must remain constant fo + * r the entire time that DQS is driven by the uMCTL2. Recommended values: + * DDR2: - CWL + AL - 3 (DDR2-400/533/667), CWL + AL - 4 (DDR2-800), CWL + + * AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT fo + * r write operation. DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust + * for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) + * PSU_DDRC_ODTCFG_WR_ODT_DELAY 0x0 + + * Cycles to hold ODT for a read command. The minimum supported value is 2. + * Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066), 0x7 (DDR2-1066) - + * BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8 + * : 5 + RD_PREAMBLE RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write p + * reamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + + * RU(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_RD_ODT_HOLD 0x6 + + * The delay, in clock cycles, from issuing a read command to setting ODT v + * alues associated with that command. ODT setting must remain constant for + * the entire time that DQS is driven by the uMCTL2. Recommended values: D + * DR2: - CL + AL - 4 (not DDR2-1066), CL + AL - 5 (DDR2-1066) If (CL + AL + * - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - C + * WL DDR4: - CL - CWL - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat + * (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK + * write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write pre + * amble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, uMCTL2 does not su + * pport ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - R + * U(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_RD_ODT_DELAY 0x0 + + * ODT Configuration Register + * (OFFSET, MASK, VALUE) (0XFD070240, 0x0F1F0F7CU ,0x06000600U) + */ + PSU_Mask_Write(DDRC_ODTCFG_OFFSET, 0x0F1F0F7CU, 0x06000600U); +/*##################################################################### */ + + /* + * Register : ODTMAP @ 0XFD070244 + + * Indicates which remote ODTs must be turned on during a read from rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. Present only in configurations that have 2 or more + * ranks + * PSU_DDRC_ODTMAP_RANK1_RD_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a write to rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. Present only in configurations that have 2 or more r + * anks + * PSU_DDRC_ODTMAP_RANK1_WR_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a read from rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. + * PSU_DDRC_ODTMAP_RANK0_RD_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a write to rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. + * PSU_DDRC_ODTMAP_RANK0_WR_ODT 0x1 + + * ODT/Rank Map Register + * (OFFSET, MASK, VALUE) (0XFD070244, 0x00003333U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_ODTMAP_OFFSET, 0x00003333U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : SCHED @ 0XFD070250 + + * When the preferred transaction store is empty for these many clock cycle + * s, switch to the alternate transaction store if it is non-empty. The rea + * d transaction store (both high and low priority) is the default preferre + * d transaction store and the write transaction store is the alternative s + * tore. When prefer write over read is set this is reversed. 0x0 is a lega + * l value for this register. When set to 0x0, the transaction store switch + * ing will happen immediately when the switching conditions become true. F + * OR PERFORMANCE ONLY + * PSU_DDRC_SCHED_RDWR_IDLE_GAP 0x1 + + * UNUSED + * PSU_DDRC_SCHED_GO2CRITICAL_HYSTERESIS 0x0 + + * Number of entries in the low priority transaction store is this value + + * 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) is the number of ent + * ries available for the high priority transaction store. Setting this to + * maximum value allocates all entries to low priority transaction store. S + * etting this to 0 allocates 1 entry to low priority transaction store and + * the rest to high priority transaction store. Note: In ECC configuration + * s, the numbers of write and low priority read credits issued is one less + * than in the non-ECC case. One entry each is reserved in the write and l + * ow-priority read CAMs for storing the RMW requests arising out of single + * bit error correction RMW operation. + * PSU_DDRC_SCHED_LPR_NUM_ENTRIES 0x20 + + * If true, bank is kept open only while there are page hit transactions av + * ailable in the CAM to that bank. The last read or write command in the C + * AM with a bank and page hit will be executed with auto-precharge if SCHE + * D1.pageclose_timer=0. Even if this register set to 1 and SCHED1.pageclos + * e_timer is set to 0, explicit precharge (and not auto-precharge) may be + * issued in some cases where there is a mode switch between Write and Read + * or between LPR and HPR. The Read and Write commands that are executed a + * s part of the ECC scrub requests are also executed without auto-precharg + * e. If false, the bank remains open until there is a need to close it (to + * open a different page, or for page timeout or refresh timeout) - also k + * nown as open page policy. The open page policy can be overridden by sett + * ing the per-command-autopre bit on the HIF interface (hif_cmd_autopre). + * The pageclose feature provids a midway between Open and Close page polic + * ies. FOR PERFORMANCE ONLY. + * PSU_DDRC_SCHED_PAGECLOSE 0x0 + + * If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. + * PSU_DDRC_SCHED_PREFER_WRITE 0x0 + + * Active low signal. When asserted ('0'), all incoming transactions are fo + * rced to low priority. This implies that all High Priority Read (HPR) and + * Variable Priority Read commands (VPR) will be treated as Low Priority R + * ead (LPR) commands. On the write side, all Variable Priority Write (VPW) + * commands will be treated as Normal Priority Write (NPW) commands. Forci + * ng the incoming transactions to low priority implicitly turns off Bypass + * path for read commands. FOR PERFORMANCE ONLY. + * PSU_DDRC_SCHED_FORCE_LOW_PRI_N 0x1 + + * Scheduler Control Register + * (OFFSET, MASK, VALUE) (0XFD070250, 0x7FFF3F07U ,0x01002001U) + */ + PSU_Mask_Write(DDRC_SCHED_OFFSET, 0x7FFF3F07U, 0x01002001U); +/*##################################################################### */ + + /* + * Register : PERFLPR1 @ 0XFD070264 + + * Number of transactions that are serviced once the LPR queue goes critica + * l is the smaller of: - (a) This number - (b) Number of transactions avai + * lable. Unit: Transaction. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH 0x8 + + * Number of clocks that the LPR queue can be starved before it goes critic + * al. The minimum valid functional value for this register is 0x1. Program + * ming it to 0x0 will disable the starvation functionality; during normal + * operation, this function should not be disabled as it will cause excessi + * ve latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFLPR1_LPR_MAX_STARVE 0x40 + + * Low Priority Read CAM Register 1 + * (OFFSET, MASK, VALUE) (0XFD070264, 0xFF00FFFFU ,0x08000040U) + */ + PSU_Mask_Write(DDRC_PERFLPR1_OFFSET, 0xFF00FFFFU, 0x08000040U); +/*##################################################################### */ + + /* + * Register : PERFWR1 @ 0XFD07026C + + * Number of transactions that are serviced once the WR queue goes critical + * is the smaller of: - (a) This number - (b) Number of transactions avail + * able. Unit: Transaction. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFWR1_W_XACT_RUN_LENGTH 0x8 + + * Number of clocks that the WR queue can be starved before it goes critica + * l. The minimum valid functional value for this register is 0x1. Programm + * ing it to 0x0 will disable the starvation functionality; during normal o + * peration, this function should not be disabled as it will cause excessiv + * e latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFWR1_W_MAX_STARVE 0x40 + + * Write CAM Register 1 + * (OFFSET, MASK, VALUE) (0XFD07026C, 0xFF00FFFFU ,0x08000040U) + */ + PSU_Mask_Write(DDRC_PERFWR1_OFFSET, 0xFF00FFFFU, 0x08000040U); +/*##################################################################### */ + + /* + * Register : DQMAP0 @ 0XFD070280 + + * DQ nibble map for DQ bits [12-15] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15 0x0 + + * DQ nibble map for DQ bits [8-11] Present only in designs configured to s + * upport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11 0x0 + + * DQ nibble map for DQ bits [4-7] Present only in designs configured to su + * pport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7 0x0 + + * DQ nibble map for DQ bits [0-3] Present only in designs configured to su + * pport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3 0x0 + + * DQ Map Register 0 + * (OFFSET, MASK, VALUE) (0XFD070280, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP0_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP1 @ 0XFD070284 + + * DQ nibble map for DQ bits [28-31] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31 0x0 + + * DQ nibble map for DQ bits [24-27] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27 0x0 + + * DQ nibble map for DQ bits [20-23] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23 0x0 + + * DQ nibble map for DQ bits [16-19] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19 0x0 + + * DQ Map Register 1 + * (OFFSET, MASK, VALUE) (0XFD070284, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP1_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP2 @ 0XFD070288 + + * DQ nibble map for DQ bits [44-47] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47 0x0 + + * DQ nibble map for DQ bits [40-43] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43 0x0 + + * DQ nibble map for DQ bits [36-39] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39 0x0 + + * DQ nibble map for DQ bits [32-35] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35 0x0 + + * DQ Map Register 2 + * (OFFSET, MASK, VALUE) (0XFD070288, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP2_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP3 @ 0XFD07028C + + * DQ nibble map for DQ bits [60-63] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63 0x0 + + * DQ nibble map for DQ bits [56-59] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59 0x0 + + * DQ nibble map for DQ bits [52-55] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55 0x0 + + * DQ nibble map for DQ bits [48-51] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51 0x0 + + * DQ Map Register 3 + * (OFFSET, MASK, VALUE) (0XFD07028C, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP3_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP4 @ 0XFD070290 + + * DQ nibble map for DIMM ECC check bits [4-7] Present only in designs conf + * igured to support DDR4. + * PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7 0x0 + + * DQ nibble map for DIMM ECC check bits [0-3] Present only in designs conf + * igured to support DDR4. + * PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3 0x0 + + * DQ Map Register 4 + * (OFFSET, MASK, VALUE) (0XFD070290, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP4_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP5 @ 0XFD070294 + + * All even ranks have the same DQ mapping controled by DQMAP0-4 register a + * s rank 0. This register provides DQ swap function for all odd ranks to s + * upport CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap b + * it 2 with 3, swap bit 4 with 5 and swap bit 6 with 7. 1: Disable rank ba + * sed DQ swapping 0: Enable rank based DQ swapping Present only in designs + * configured to support DDR4. + * PSU_DDRC_DQMAP5_DIS_DQ_RANK_SWAP 0x1 + + * DQ Map Register 5 + * (OFFSET, MASK, VALUE) (0XFD070294, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_DQMAP5_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : DBG0 @ 0XFD070300 + + * When this is set to '0', auto-precharge is disabled for the flushed comm + * and in a collision case. Collision cases are write followed by read to s + * ame address, read followed by write to same address, or write followed b + * y write to same address with DBG0.dis_wc bit = 1 (where same address com + * parisons exclude the two address bits representing critical word). FOR D + * EBUG ONLY. + * PSU_DDRC_DBG0_DIS_COLLISION_PAGE_OPT 0x0 + + * When 1, disable write combine. FOR DEBUG ONLY + * PSU_DDRC_DBG0_DIS_WC 0x0 + + * Debug Register 0 + * (OFFSET, MASK, VALUE) (0XFD070300, 0x00000011U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DBG0_OFFSET, 0x00000011U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DBGCMD @ 0XFD07030C + + * Setting this register bit to 1 allows refresh and ZQCS commands to be tr + * iggered from hardware via the IOs ext_*. If set to 1, the fields DBGCMD. + * zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignore + * d by the uMCTL2 logic. Setting this register bit to 0 allows refresh and + * ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_shor + * t and DBGCMD.rank*_refresh. If set to 0, the hardware pins ext_* have no + * function, and are ignored by the uMCTL2 logic. This register is static, + * and may only be changed when the DDRC reset signal, core_ddrc_rstn, is + * asserted (0). + * PSU_DDRC_DBGCMD_HW_REF_ZQ_EN 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ct + * rlupd_req to the PHY. When this request is stored in the uMCTL2, the bit + * is automatically cleared. This operation must only be performed when DF + * IUPD0.dis_auto_ctrlupd=1. + * PSU_DDRC_DBGCMD_CTRLUPD 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS ( + * ZQ calibration short)/MPC(ZQ calibration) command to the SDRAM. When thi + * s request is stored in the uMCTL2, the bit is automatically cleared. Thi + * s operation can be performed only when ZQCTL0.dis_auto_zq=1. It is recom + * mended NOT to set this register bit if in Init operating mode. This regi + * ster bit is ignored when in Self-Refresh(except LPDDR4) and SR-Powerdown + * (LPDDR4) and Deep power-down operating modes and Maximum Power Saving Mo + * de. + * PSU_DDRC_DBGCMD_ZQ_CALIB_SHORT 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 1. Writing to this bit causes DBGSTAT.rank1_refresh_busy to be + * set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. + * PSU_DDRC_DBGCMD_RANK1_REFRESH 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 0. Writing to this bit causes DBGSTAT.rank0_refresh_busy to be + * set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. + * PSU_DDRC_DBGCMD_RANK0_REFRESH 0x0 + + * Command Debug Register + * (OFFSET, MASK, VALUE) (0XFD07030C, 0x80000033U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DBGCMD_OFFSET, 0x80000033U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SWCTL @ 0XFD070320 + + * Enable quasi-dynamic register programming outside reset. Program registe + * r to 0 to enable quasi-dynamic programming. Set back register to 1 once + * programming is done. + * PSU_DDRC_SWCTL_SW_DONE 0x0 + + * Software register programming control enable + * (OFFSET, MASK, VALUE) (0XFD070320, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SWCTL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCCFG @ 0XFD070400 + + * Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expand + * s every AXI burst into multiple HIF commands, using the memory burst len + * gth as a unit. If set to 1, then XPI will use half of the memory burst l + * ength as a unit. This applies to both reads and writes. When MSTR.data_b + * us_width==00, setting bl_exp_mode to 1 has no effect. This can be used i + * n cases where Partial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.d + * is_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_ccd + * _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionali + * ty is not supported in the following cases: - UMCTL2_PARTIAL_WR=0 - UMCT + * L2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 an + * d MSTR.reg_ddrc_burst_rdwr=1000 (LPDDR4 only) - UMCTL2_PARTIAL_WR=1, MST + * R.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burs + * t_rdwr=0100 (DDR4 only), with either MSTR.reg_ddrc_burstchop=0 or CRCPAR + * CTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Shared + * -AC is enabled + * PSU_DDRC_PCCFG_BL_EXP_MODE 0x0 + + * Page match four limit. If set to 1, limits the number of consecutive sam + * e page DDRC transactions that can be granted by the Port Arbiter to four + * when Page Match feature is enabled. If set to 0, there is no limit impo + * sed on number of consecutive same page DDRC transactions. + * PSU_DDRC_PCCFG_PAGEMATCH_LIMIT 0x0 + + * If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_l + * pr/co_gs_go2critical_hpr signals going to DDRC based on urgent input (aw + * urgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_ + * go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals a + * t DDRC are driven to 1b'0. + * PSU_DDRC_PCCFG_GO2CRITICAL_EN 0x1 + + * Port Common Configuration Register + * (OFFSET, MASK, VALUE) (0XFD070400, 0x00000111U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCCFG_OFFSET, 0x00000111U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGR_0 @ 0XFD070404 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_0_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_0_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_0_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070404, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_0_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_0 @ 0XFD070408 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_0_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_0_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_0_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_0_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_0 @ 0XFD070490 + + * Enables port n. + * PSU_DDRC_PCTRL_0_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070490, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_0_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_0 @ 0XFD070494 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION1 0x2 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1 0xb + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070494, 0x0033000FU ,0x0020000BU) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_0_OFFSET, 0x0033000FU, 0x0020000BU); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_0 @ 0XFD070498 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070498, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_0_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_1 @ 0XFD0704B4 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_1_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_1_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_1_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD0704B4, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_1_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_1 @ 0XFD0704B8 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_1_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_1_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_1_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_1_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_1 @ 0XFD070540 + + * Enables port n. + * PSU_DDRC_PCTRL_1_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070540, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_1_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_1 @ 0XFD070544 + + * This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION2 0x2 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION1 0x0 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION0 0x0 + + * Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2 0xb + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070544, 0x03330F0FU ,0x02000B03U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_1_OFFSET, 0x03330F0FU, 0x02000B03U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_1 @ 0XFD070548 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070548, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_1_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_2 @ 0XFD070564 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_2_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_2_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_2_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070564, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_2_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_2 @ 0XFD070568 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_2_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_2_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_2_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_2_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_2 @ 0XFD0705F0 + + * Enables port n. + * PSU_DDRC_PCTRL_2_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD0705F0, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_2_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_2 @ 0XFD0705F4 + + * This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION2 0x2 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION1 0x0 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION0 0x0 + + * Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2 0xb + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0705F4, 0x03330F0FU ,0x02000B03U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_2_OFFSET, 0x03330F0FU, 0x02000B03U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_2 @ 0XFD0705F8 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0705F8, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_2_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_3 @ 0XFD070614 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_3_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_3_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_3_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070614, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_3_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_3 @ 0XFD070618 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_3_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_3_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_3_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_3_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_3 @ 0XFD0706A0 + + * Enables port n. + * PSU_DDRC_PCTRL_3_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD0706A0, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_3_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_3 @ 0XFD0706A4 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0706A4, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_3_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_3 @ 0XFD0706A8 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0706A8, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_3_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_3 @ 0XFD0706AC + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0706AC, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_3_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_3 @ 0XFD0706B0 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0706B0, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_3_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGR_4 @ 0XFD0706C4 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_4_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_4_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_4_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_4_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_4 @ 0XFD0706C8 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_4_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_4_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_4_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_4_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_4 @ 0XFD070750 + + * Enables port n. + * PSU_DDRC_PCTRL_4_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070750, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_4_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_4 @ 0XFD070754 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070754, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_4_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_4 @ 0XFD070758 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070758, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_4_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_4 @ 0XFD07075C + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD07075C, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_4_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_4 @ 0XFD070760 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070760, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_4_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGR_5 @ 0XFD070774 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_5_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_5_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_5_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070774, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_5_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_5 @ 0XFD070778 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_5_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_5_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_5_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_5_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_5 @ 0XFD070800 + + * Enables port n. + * PSU_DDRC_PCTRL_5_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070800, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_5_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_5 @ 0XFD070804 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070804, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_5_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_5 @ 0XFD070808 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070808, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_5_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_5 @ 0XFD07080C + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD07080C, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_5_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_5 @ 0XFD070810 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070810, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_5_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : SARBASE0 @ 0XFD070F04 + + * Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + * PSU_DDRC_SARBASE0_BASE_ADDR 0x0 + + * SAR Base Address Register n + * (OFFSET, MASK, VALUE) (0XFD070F04, 0x000001FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SARBASE0_OFFSET, 0x000001FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SARSIZE0 @ 0XFD070F08 + + * Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. + * PSU_DDRC_SARSIZE0_NBLOCKS 0x0 + + * SAR Size Register n + * (OFFSET, MASK, VALUE) (0XFD070F08, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SARSIZE0_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SARBASE1 @ 0XFD070F0C + + * Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + * PSU_DDRC_SARBASE1_BASE_ADDR 0x10 + + * SAR Base Address Register n + * (OFFSET, MASK, VALUE) (0XFD070F0C, 0x000001FFU ,0x00000010U) + */ + PSU_Mask_Write(DDRC_SARBASE1_OFFSET, 0x000001FFU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : SARSIZE1 @ 0XFD070F10 + + * Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. + * PSU_DDRC_SARSIZE1_NBLOCKS 0xf + + * SAR Size Register n + * (OFFSET, MASK, VALUE) (0XFD070F10, 0x000000FFU ,0x0000000FU) + */ + PSU_Mask_Write(DDRC_SARSIZE1_OFFSET, 0x000000FFU, 0x0000000FU); +/*##################################################################### */ + + /* + * Register : DFITMG0_SHADOW @ 0XFD072190 + + * Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. + * PSU_DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY 0x7 + + * Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. + * PSU_DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR 0x1 + + * Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks + * PSU_DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN 0x2 + + * Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. + * PSU_DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR 0x1 + + * Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks + * PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA 0x0 + + * Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. + * PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT 0x2 + + * DFI Timing Shadow Register 0 + * (OFFSET, MASK, VALUE) (0XFD072190, 0x1FBFBF3FU ,0x07828002U) + */ + PSU_Mask_Write(DDRC_DFITMG0_SHADOW_OFFSET, 0x1FBFBF3FU, 0x07828002U); +/*##################################################################### */ + + /* + * DDR CONTROLLER RESET + */ + /* + * Register : RST_DDR_SS @ 0XFD1A0108 + + * DDR block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X0 + + * APM block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_APM_RESET 0X0 + + * DDR sub system block level reset + * (OFFSET, MASK, VALUE) (0XFD1A0108, 0x0000000CU ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_DDR_SS_OFFSET, 0x0000000CU, 0x00000000U); +/*##################################################################### */ + + /* + * DDR PHY + */ + /* + * Register : PGCR0 @ 0XFD080010 + + * Address Copy + * PSU_DDR_PHY_PGCR0_ADCP 0x0 + + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_30_27 0x0 + + * PHY FIFO Reset + * PSU_DDR_PHY_PGCR0_PHYFRST 0x1 + + * Oscillator Mode Address/Command Delay Line Select + * PSU_DDR_PHY_PGCR0_OSCACDL 0x3 + + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_23_19 0x0 + + * Digital Test Output Select + * PSU_DDR_PHY_PGCR0_DTOSEL 0x0 - RegVal = ((0x0000000FU << DDRC_SARSIZE1_NBLOCKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARSIZE1_OFFSET ,0x000000FFU ,0x0000000FU); - /*############################################################################################################################ */ + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_13 0x0 - /*Register : DFITMG0_SHADOW @ 0XFD072190

      + * Oscillator Mode Division + * PSU_DDR_PHY_PGCR0_OSCDIV 0xf - Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock. - PSU_DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY 0x7 - - Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value. - PSU_DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR 0x1 - - Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks - PSU_DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN 0x2 - - Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e. - PSU_DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR 0x1 - - Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks - PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA 0x0 - - Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM. - PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT 0x2 + * Oscillator Enable + * PSU_DDR_PHY_PGCR0_OSCEN 0x0 - DFI Timing Shadow Register 0 - (OFFSET, MASK, VALUE) (0XFD072190, 0x1FBFBF3FU ,0x07828002U) - RegMask = (DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK | DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK | DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK | DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK | DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK | DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK | 0 ); + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_7_0 0x0 - RegVal = ((0x00000007U << DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT - | 0x00000001U << DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT - | 0x00000002U << DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT - | 0x00000001U << DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT - | 0x00000000U << DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT - | 0x00000002U << DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG0_SHADOW_OFFSET ,0x1FBFBF3FU ,0x07828002U); - /*############################################################################################################################ */ - - // : DDR CONTROLLER RESET - /*Register : RST_DDR_SS @ 0XFD1A0108

      - - DDR block level reset inside of the DDR Sub System - PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X0 - - DDR sub system block level reset - (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_RST_DDR_SS_DDR_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_DDR_SS_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - // : DDR PHY - /*Register : PGCR0 @ 0XFD080010

      - - Address Copy - PSU_DDR_PHY_PGCR0_ADCP 0x0 - - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_30_27 0x0 - - PHY FIFO Reset - PSU_DDR_PHY_PGCR0_PHYFRST 0x1 - - Oscillator Mode Address/Command Delay Line Select - PSU_DDR_PHY_PGCR0_OSCACDL 0x3 - - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_23_19 0x0 + * PHY General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080010, 0xFFFFFFFFU ,0x07001E00U) + */ + PSU_Mask_Write(DDR_PHY_PGCR0_OFFSET, 0xFFFFFFFFU, 0x07001E00U); +/*##################################################################### */ - Digital Test Output Select - PSU_DDR_PHY_PGCR0_DTOSEL 0x0 + /* + * Register : PGCR2 @ 0XFD080018 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_13 0x0 + * Clear Training Status Registers + * PSU_DDR_PHY_PGCR2_CLRTSTAT 0x0 - Oscillator Mode Division - PSU_DDR_PHY_PGCR0_OSCDIV 0xf + * Clear Impedance Calibration + * PSU_DDR_PHY_PGCR2_CLRZCAL 0x0 - Oscillator Enable - PSU_DDR_PHY_PGCR0_OSCEN 0x0 + * Clear Parity Error + * PSU_DDR_PHY_PGCR2_CLRPERR 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_7_0 0x0 + * Initialization Complete Pin Configuration + * PSU_DDR_PHY_PGCR2_ICPC 0x0 - PHY General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080010, 0xFFFFFFFFU ,0x07001E00U) - RegMask = (DDR_PHY_PGCR0_ADCP_MASK | DDR_PHY_PGCR0_RESERVED_30_27_MASK | DDR_PHY_PGCR0_PHYFRST_MASK | DDR_PHY_PGCR0_OSCACDL_MASK | DDR_PHY_PGCR0_RESERVED_23_19_MASK | DDR_PHY_PGCR0_DTOSEL_MASK | DDR_PHY_PGCR0_RESERVED_13_MASK | DDR_PHY_PGCR0_OSCDIV_MASK | DDR_PHY_PGCR0_OSCEN_MASK | DDR_PHY_PGCR0_RESERVED_7_0_MASK | 0 ); + * Data Training PUB Mode Exit Timer + * PSU_DDR_PHY_PGCR2_DTPMXTMR 0xf - RegVal = ((0x00000000U << DDR_PHY_PGCR0_ADCP_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_30_27_SHIFT - | 0x00000001U << DDR_PHY_PGCR0_PHYFRST_SHIFT - | 0x00000003U << DDR_PHY_PGCR0_OSCACDL_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_23_19_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_DTOSEL_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_13_SHIFT - | 0x0000000FU << DDR_PHY_PGCR0_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_OSCEN_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR0_OFFSET ,0xFFFFFFFFU ,0x07001E00U); - /*############################################################################################################################ */ - - /*Register : PGCR2 @ 0XFD080018

      + * Initialization Bypass + * PSU_DDR_PHY_PGCR2_INITFSMBYP 0x0 - Clear Training Status Registers - PSU_DDR_PHY_PGCR2_CLRTSTAT 0x0 + * PLL FSM Bypass + * PSU_DDR_PHY_PGCR2_PLLFSMBYP 0x0 - Clear Impedance Calibration - PSU_DDR_PHY_PGCR2_CLRZCAL 0x0 + * Refresh Period + * PSU_DDR_PHY_PGCR2_TREFPRD 0x10010 - Clear Parity Error - PSU_DDR_PHY_PGCR2_CLRPERR 0x0 + * PHY General Configuration Register 2 + * (OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10010U) + */ + PSU_Mask_Write(DDR_PHY_PGCR2_OFFSET, 0xFFFFFFFFU, 0x00F10010U); +/*##################################################################### */ - Initialization Complete Pin Configuration - PSU_DDR_PHY_PGCR2_ICPC 0x0 + /* + * Register : PGCR3 @ 0XFD08001C - Data Training PUB Mode Exit Timer - PSU_DDR_PHY_PGCR2_DTPMXTMR 0xf + * CKN Enable + * PSU_DDR_PHY_PGCR3_CKNEN 0x55 - Initialization Bypass - PSU_DDR_PHY_PGCR2_INITFSMBYP 0x0 + * CK Enable + * PSU_DDR_PHY_PGCR3_CKEN 0xaa - PLL FSM Bypass - PSU_DDR_PHY_PGCR2_PLLFSMBYP 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR3_RESERVED_15 0x0 - Refresh Period - PSU_DDR_PHY_PGCR2_TREFPRD 0x10028 + * Enable Clock Gating for AC [0] ctl_rd_clk + * PSU_DDR_PHY_PGCR3_GATEACRDCLK 0x2 - PHY General Configuration Register 2 - (OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10028U) - RegMask = (DDR_PHY_PGCR2_CLRTSTAT_MASK | DDR_PHY_PGCR2_CLRZCAL_MASK | DDR_PHY_PGCR2_CLRPERR_MASK | DDR_PHY_PGCR2_ICPC_MASK | DDR_PHY_PGCR2_DTPMXTMR_MASK | DDR_PHY_PGCR2_INITFSMBYP_MASK | DDR_PHY_PGCR2_PLLFSMBYP_MASK | DDR_PHY_PGCR2_TREFPRD_MASK | 0 ); + * Enable Clock Gating for AC [0] ddr_clk + * PSU_DDR_PHY_PGCR3_GATEACDDRCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_PGCR2_CLRTSTAT_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_CLRZCAL_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_CLRPERR_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_ICPC_SHIFT - | 0x0000000FU << DDR_PHY_PGCR2_DTPMXTMR_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_INITFSMBYP_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_PLLFSMBYP_SHIFT - | 0x00010028U << DDR_PHY_PGCR2_TREFPRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR2_OFFSET ,0xFFFFFFFFU ,0x00F10028U); - /*############################################################################################################################ */ + * Enable Clock Gating for AC [0] ctl_clk + * PSU_DDR_PHY_PGCR3_GATEACCTLCLK 0x2 - /*Register : PGCR3 @ 0XFD08001C

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR3_RESERVED_8 0x0 - CKN Enable - PSU_DDR_PHY_PGCR3_CKNEN 0x55 + * Controls DDL Bypass Modes + * PSU_DDR_PHY_PGCR3_DDLBYPMODE 0x2 - CK Enable - PSU_DDR_PHY_PGCR3_CKEN 0xaa + * IO Loop-Back Select + * PSU_DDR_PHY_PGCR3_IOLB 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR3_RESERVED_15 0x0 + * AC Receive FIFO Read Mode + * PSU_DDR_PHY_PGCR3_RDMODE 0x0 - Enable Clock Gating for AC [0] ctl_rd_clk - PSU_DDR_PHY_PGCR3_GATEACRDCLK 0x2 + * Read FIFO Reset Disable + * PSU_DDR_PHY_PGCR3_DISRST 0x0 - Enable Clock Gating for AC [0] ddr_clk - PSU_DDR_PHY_PGCR3_GATEACDDRCLK 0x2 + * Clock Level when Clock Gating + * PSU_DDR_PHY_PGCR3_CLKLEVEL 0x0 - Enable Clock Gating for AC [0] ctl_clk - PSU_DDR_PHY_PGCR3_GATEACCTLCLK 0x2 + * PHY General Configuration Register 3 + * (OFFSET, MASK, VALUE) (0XFD08001C, 0xFFFFFFFFU ,0x55AA5480U) + */ + PSU_Mask_Write(DDR_PHY_PGCR3_OFFSET, 0xFFFFFFFFU, 0x55AA5480U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR3_RESERVED_8 0x0 + /* + * Register : PGCR5 @ 0XFD080024 - Controls DDL Bypass Modes - PSU_DDR_PHY_PGCR3_DDLBYPMODE 0x2 + * Frequency B Ratio Term + * PSU_DDR_PHY_PGCR5_FRQBT 0x1 - IO Loop-Back Select - PSU_DDR_PHY_PGCR3_IOLB 0x0 + * Frequency A Ratio Term + * PSU_DDR_PHY_PGCR5_FRQAT 0x1 - AC Receive FIFO Read Mode - PSU_DDR_PHY_PGCR3_RDMODE 0x0 + * DFI Disconnect Time Period + * PSU_DDR_PHY_PGCR5_DISCNPERIOD 0x0 - Read FIFO Reset Disable - PSU_DDR_PHY_PGCR3_DISRST 0x0 + * Receiver bias core side control + * PSU_DDR_PHY_PGCR5_VREF_RBCTRL 0xf - Clock Level when Clock Gating - PSU_DDR_PHY_PGCR3_CLKLEVEL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR5_RESERVED_3 0x0 - PHY General Configuration Register 3 - (OFFSET, MASK, VALUE) (0XFD08001C, 0xFFFFFFFFU ,0x55AA5480U) - RegMask = (DDR_PHY_PGCR3_CKNEN_MASK | DDR_PHY_PGCR3_CKEN_MASK | DDR_PHY_PGCR3_RESERVED_15_MASK | DDR_PHY_PGCR3_GATEACRDCLK_MASK | DDR_PHY_PGCR3_GATEACDDRCLK_MASK | DDR_PHY_PGCR3_GATEACCTLCLK_MASK | DDR_PHY_PGCR3_RESERVED_8_MASK | DDR_PHY_PGCR3_DDLBYPMODE_MASK | DDR_PHY_PGCR3_IOLB_MASK | DDR_PHY_PGCR3_RDMODE_MASK | DDR_PHY_PGCR3_DISRST_MASK | DDR_PHY_PGCR3_CLKLEVEL_MASK | 0 ); + * Internal VREF generator REFSEL ragne select + * PSU_DDR_PHY_PGCR5_DXREFISELRANGE 0x1 - RegVal = ((0x00000055U << DDR_PHY_PGCR3_CKNEN_SHIFT - | 0x000000AAU << DDR_PHY_PGCR3_CKEN_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RESERVED_15_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACRDCLK_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RESERVED_8_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_DDLBYPMODE_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_IOLB_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_DISRST_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_CLKLEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR3_OFFSET ,0xFFFFFFFFU ,0x55AA5480U); - /*############################################################################################################################ */ + * DDL Page Read Write select + * PSU_DDR_PHY_PGCR5_DDLPGACT 0x0 - /*Register : PGCR5 @ 0XFD080024

      + * DDL Page Read Write select + * PSU_DDR_PHY_PGCR5_DDLPGRW 0x0 - Frequency B Ratio Term - PSU_DDR_PHY_PGCR5_FRQBT 0x1 + * PHY General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080024, 0xFFFFFFFFU ,0x010100F4U) + */ + PSU_Mask_Write(DDR_PHY_PGCR5_OFFSET, 0xFFFFFFFFU, 0x010100F4U); +/*##################################################################### */ - Frequency A Ratio Term - PSU_DDR_PHY_PGCR5_FRQAT 0x1 + /* + * Register : PTR0 @ 0XFD080040 - DFI Disconnect Time Period - PSU_DDR_PHY_PGCR5_DISCNPERIOD 0x0 + * PLL Power-Down Time + * PSU_DDR_PHY_PTR0_TPLLPD 0x56 - Receiver bias core side control - PSU_DDR_PHY_PGCR5_VREF_RBCTRL 0xf + * PLL Gear Shift Time + * PSU_DDR_PHY_PTR0_TPLLGS 0x2155 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR5_RESERVED_3 0x0 + * PHY Reset Time + * PSU_DDR_PHY_PTR0_TPHYRST 0x10 - Internal VREF generator REFSEL ragne select - PSU_DDR_PHY_PGCR5_DXREFISELRANGE 0x1 + * PHY Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x0AC85550U) + */ + PSU_Mask_Write(DDR_PHY_PTR0_OFFSET, 0xFFFFFFFFU, 0x0AC85550U); +/*##################################################################### */ - DDL Page Read Write select - PSU_DDR_PHY_PGCR5_DDLPGACT 0x0 + /* + * Register : PTR1 @ 0XFD080044 - DDL Page Read Write select - PSU_DDR_PHY_PGCR5_DDLPGRW 0x0 + * PLL Lock Time + * PSU_DDR_PHY_PTR1_TPLLLOCK 0x4141 - PHY General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080024, 0xFFFFFFFFU ,0x010100F4U) - RegMask = (DDR_PHY_PGCR5_FRQBT_MASK | DDR_PHY_PGCR5_FRQAT_MASK | DDR_PHY_PGCR5_DISCNPERIOD_MASK | DDR_PHY_PGCR5_VREF_RBCTRL_MASK | DDR_PHY_PGCR5_RESERVED_3_MASK | DDR_PHY_PGCR5_DXREFISELRANGE_MASK | DDR_PHY_PGCR5_DDLPGACT_MASK | DDR_PHY_PGCR5_DDLPGRW_MASK | 0 ); + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PTR1_RESERVED_15_13 0x0 - RegVal = ((0x00000001U << DDR_PHY_PGCR5_FRQBT_SHIFT - | 0x00000001U << DDR_PHY_PGCR5_FRQAT_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DISCNPERIOD_SHIFT - | 0x0000000FU << DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_RESERVED_3_SHIFT - | 0x00000001U << DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DDLPGACT_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DDLPGRW_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR5_OFFSET ,0xFFFFFFFFU ,0x010100F4U); - /*############################################################################################################################ */ + * PLL Reset Time + * PSU_DDR_PHY_PTR1_TPLLRST 0xaff - /*Register : PTR0 @ 0XFD080040

      + * PHY Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x41410AFFU) + */ + PSU_Mask_Write(DDR_PHY_PTR1_OFFSET, 0xFFFFFFFFU, 0x41410AFFU); +/*##################################################################### */ - PLL Power-Down Time - PSU_DDR_PHY_PTR0_TPLLPD 0x2f0 + /* + * Register : PLLCR0 @ 0XFD080068 - PLL Gear Shift Time - PSU_DDR_PHY_PTR0_TPLLGS 0x60 + * PLL Bypass + * PSU_DDR_PHY_PLLCR0_PLLBYP 0x0 - PHY Reset Time - PSU_DDR_PHY_PTR0_TPHYRST 0x10 + * PLL Reset + * PSU_DDR_PHY_PLLCR0_PLLRST 0x0 - PHY Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x5E001810U) - RegMask = (DDR_PHY_PTR0_TPLLPD_MASK | DDR_PHY_PTR0_TPLLGS_MASK | DDR_PHY_PTR0_TPHYRST_MASK | 0 ); + * PLL Power Down + * PSU_DDR_PHY_PLLCR0_PLLPD 0x0 - RegVal = ((0x000002F0U << DDR_PHY_PTR0_TPLLPD_SHIFT - | 0x00000060U << DDR_PHY_PTR0_TPLLGS_SHIFT - | 0x00000010U << DDR_PHY_PTR0_TPHYRST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PTR0_OFFSET ,0xFFFFFFFFU ,0x5E001810U); - /*############################################################################################################################ */ + * Reference Stop Mode + * PSU_DDR_PHY_PLLCR0_RSTOPM 0x0 - /*Register : PTR1 @ 0XFD080044

      + * PLL Frequency Select + * PSU_DDR_PHY_PLLCR0_FRQSEL 0x1 - PLL Lock Time - PSU_DDR_PHY_PTR1_TPLLLOCK 0x80 + * Relock Mode + * PSU_DDR_PHY_PLLCR0_RLOCKM 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PTR1_RESERVED_15_13 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_PLLCR0_CPPC 0x8 - PLL Reset Time - PSU_DDR_PHY_PTR1_TPLLRST 0x5f0 - - PHY Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x008005F0U) - RegMask = (DDR_PHY_PTR1_TPLLLOCK_MASK | DDR_PHY_PTR1_RESERVED_15_13_MASK | DDR_PHY_PTR1_TPLLRST_MASK | 0 ); + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_PLLCR0_CPIC 0x0 - RegVal = ((0x00000080U << DDR_PHY_PTR1_TPLLLOCK_SHIFT - | 0x00000000U << DDR_PHY_PTR1_RESERVED_15_13_SHIFT - | 0x000005F0U << DDR_PHY_PTR1_TPLLRST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PTR1_OFFSET ,0xFFFFFFFFU ,0x008005F0U); - /*############################################################################################################################ */ + * Gear Shift + * PSU_DDR_PHY_PLLCR0_GSHIFT 0x0 - /*Register : DSGCR @ 0XFD080090

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PLLCR0_RESERVED_11_9 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_31_28 0x0 + * Analog Test Enable + * PSU_DDR_PHY_PLLCR0_ATOEN 0x0 - When RDBI enabled, this bit is used to select RDBI CL calculation, if it is 1b1, calculation will use RDBICL, otherwise use d - fault calculation. - PSU_DDR_PHY_DSGCR_RDBICLSEL 0x0 + * Analog Test Control + * PSU_DDR_PHY_PLLCR0_ATC 0x0 - When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this value. - PSU_DDR_PHY_DSGCR_RDBICL 0x2 + * Digital Test Control + * PSU_DDR_PHY_PLLCR0_DTC 0x0 - PHY Impedance Update Enable - PSU_DDR_PHY_DSGCR_PHYZUEN 0x1 + * PLL Control Register 0 (Type B PLL Only) + * (OFFSET, MASK, VALUE) (0XFD080068, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_PLLCR0_OFFSET, 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_22 0x0 + /* + * Register : DSGCR @ 0XFD080090 - SDRAM Reset Output Enable - PSU_DDR_PHY_DSGCR_RSTOE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_31_28 0x0 - Single Data Rate Mode - PSU_DDR_PHY_DSGCR_SDRMODE 0x0 + * When RDBI enabled, this bit is used to select RDBI CL calculation, if it + * is 1b1, calculation will use RDBICL, otherwise use default calculation. + * PSU_DDR_PHY_DSGCR_RDBICLSEL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_18 0x0 + * When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this v + * alue. + * PSU_DDR_PHY_DSGCR_RDBICL 0x2 - ATO Analog Test Enable - PSU_DDR_PHY_DSGCR_ATOAE 0x0 + * PHY Impedance Update Enable + * PSU_DDR_PHY_DSGCR_PHYZUEN 0x1 - DTO Output Enable - PSU_DDR_PHY_DSGCR_DTOOE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_22 0x0 - DTO I/O Mode - PSU_DDR_PHY_DSGCR_DTOIOM 0x0 + * SDRAM Reset Output Enable + * PSU_DDR_PHY_DSGCR_RSTOE 0x1 - DTO Power Down Receiver - PSU_DDR_PHY_DSGCR_DTOPDR 0x1 + * Single Data Rate Mode + * PSU_DDR_PHY_DSGCR_SDRMODE 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_13 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_18 0x0 - DTO On-Die Termination - PSU_DDR_PHY_DSGCR_DTOODT 0x0 + * ATO Analog Test Enable + * PSU_DDR_PHY_DSGCR_ATOAE 0x0 - PHY Update Acknowledge Delay - PSU_DDR_PHY_DSGCR_PUAD 0x4 + * DTO Output Enable + * PSU_DDR_PHY_DSGCR_DTOOE 0x0 - Controller Update Acknowledge Enable - PSU_DDR_PHY_DSGCR_CUAEN 0x1 + * DTO I/O Mode + * PSU_DDR_PHY_DSGCR_DTOIOM 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_4_3 0x0 + * DTO Power Down Receiver + * PSU_DDR_PHY_DSGCR_DTOPDR 0x1 - Controller Impedance Update Enable - PSU_DDR_PHY_DSGCR_CTLZUEN 0x0 + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_13 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_1 0x0 + * DTO On-Die Termination + * PSU_DDR_PHY_DSGCR_DTOODT 0x0 - PHY Update Request Enable - PSU_DDR_PHY_DSGCR_PUREN 0x1 + * PHY Update Acknowledge Delay + * PSU_DDR_PHY_DSGCR_PUAD 0x5 - DDR System General Configuration Register - (OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04121U) - RegMask = (DDR_PHY_DSGCR_RESERVED_31_28_MASK | DDR_PHY_DSGCR_RDBICLSEL_MASK | DDR_PHY_DSGCR_RDBICL_MASK | DDR_PHY_DSGCR_PHYZUEN_MASK | DDR_PHY_DSGCR_RESERVED_22_MASK | DDR_PHY_DSGCR_RSTOE_MASK | DDR_PHY_DSGCR_SDRMODE_MASK | DDR_PHY_DSGCR_RESERVED_18_MASK | DDR_PHY_DSGCR_ATOAE_MASK | DDR_PHY_DSGCR_DTOOE_MASK | DDR_PHY_DSGCR_DTOIOM_MASK | DDR_PHY_DSGCR_DTOPDR_MASK | DDR_PHY_DSGCR_RESERVED_13_MASK | DDR_PHY_DSGCR_DTOODT_MASK | DDR_PHY_DSGCR_PUAD_MASK | DDR_PHY_DSGCR_CUAEN_MASK | DDR_PHY_DSGCR_RESERVED_4_3_MASK | DDR_PHY_DSGCR_CTLZUEN_MASK | DDR_PHY_DSGCR_RESERVED_1_MASK | DDR_PHY_DSGCR_PUREN_MASK | 0 ); + * Controller Update Acknowledge Enable + * PSU_DDR_PHY_DSGCR_CUAEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DSGCR_RESERVED_31_28_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RDBICLSEL_SHIFT - | 0x00000002U << DDR_PHY_DSGCR_RDBICL_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_PHYZUEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_22_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_RSTOE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_SDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_18_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_ATOAE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOOE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOIOM_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_DTOPDR_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_13_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOODT_SHIFT - | 0x00000004U << DDR_PHY_DSGCR_PUAD_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_CUAEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_4_3_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_CTLZUEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_1_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_PUREN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DSGCR_OFFSET ,0xFFFFFFFFU ,0x02A04121U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_4_3 0x0 - /*Register : DCR @ 0XFD080100

      + * Controller Impedance Update Enable + * PSU_DDR_PHY_DSGCR_CTLZUEN 0x0 - DDR4 Gear Down Timing. - PSU_DDR_PHY_DCR_GEARDN 0x0 + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_1 0x0 - Un-used Bank Group - PSU_DDR_PHY_DCR_UBG 0x0 + * PHY Update Request Enable + * PSU_DDR_PHY_DSGCR_PUREN 0x1 - Un-buffered DIMM Address Mirroring - PSU_DDR_PHY_DCR_UDIMM 0x0 + * DDR System General Configuration Register + * (OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04161U) + */ + PSU_Mask_Write(DDR_PHY_DSGCR_OFFSET, 0xFFFFFFFFU, 0x02A04161U); +/*##################################################################### */ - DDR 2T Timing - PSU_DDR_PHY_DCR_DDR2T 0x0 + /* + * Register : GPR0 @ 0XFD0800C0 - No Simultaneous Rank Access - PSU_DDR_PHY_DCR_NOSRA 0x1 + * General Purpose Register 0 + * PSU_DDR_PHY_GPR0_GPR0 0xd3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DCR_RESERVED_26_18 0x0 + * General Purpose Register 0 + * (OFFSET, MASK, VALUE) (0XFD0800C0, 0xFFFFFFFFU ,0x000000D3U) + */ + PSU_Mask_Write(DDR_PHY_GPR0_OFFSET, 0xFFFFFFFFU, 0x000000D3U); +/*##################################################################### */ - Byte Mask - PSU_DDR_PHY_DCR_BYTEMASK 0x1 + /* + * Register : DCR @ 0XFD080100 - DDR Type - PSU_DDR_PHY_DCR_DDRTYPE 0x0 + * DDR4 Gear Down Timing. + * PSU_DDR_PHY_DCR_GEARDN 0x0 - Multi-Purpose Register (MPR) DQ (DDR3 Only) - PSU_DDR_PHY_DCR_MPRDQ 0x0 + * Un-used Bank Group + * PSU_DDR_PHY_DCR_UBG 0x0 - Primary DQ (DDR3 Only) - PSU_DDR_PHY_DCR_PDQ 0x0 + * Un-buffered DIMM Address Mirroring + * PSU_DDR_PHY_DCR_UDIMM 0x0 - DDR 8-Bank - PSU_DDR_PHY_DCR_DDR8BNK 0x1 + * DDR 2T Timing + * PSU_DDR_PHY_DCR_DDR2T 0x0 - DDR Mode - PSU_DDR_PHY_DCR_DDRMD 0x4 + * No Simultaneous Rank Access + * PSU_DDR_PHY_DCR_NOSRA 0x1 - DRAM Configuration Register - (OFFSET, MASK, VALUE) (0XFD080100, 0xFFFFFFFFU ,0x0800040CU) - RegMask = (DDR_PHY_DCR_GEARDN_MASK | DDR_PHY_DCR_UBG_MASK | DDR_PHY_DCR_UDIMM_MASK | DDR_PHY_DCR_DDR2T_MASK | DDR_PHY_DCR_NOSRA_MASK | DDR_PHY_DCR_RESERVED_26_18_MASK | DDR_PHY_DCR_BYTEMASK_MASK | DDR_PHY_DCR_DDRTYPE_MASK | DDR_PHY_DCR_MPRDQ_MASK | DDR_PHY_DCR_PDQ_MASK | DDR_PHY_DCR_DDR8BNK_MASK | DDR_PHY_DCR_DDRMD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DCR_RESERVED_26_18 0x0 - RegVal = ((0x00000000U << DDR_PHY_DCR_GEARDN_SHIFT - | 0x00000000U << DDR_PHY_DCR_UBG_SHIFT - | 0x00000000U << DDR_PHY_DCR_UDIMM_SHIFT - | 0x00000000U << DDR_PHY_DCR_DDR2T_SHIFT - | 0x00000001U << DDR_PHY_DCR_NOSRA_SHIFT - | 0x00000000U << DDR_PHY_DCR_RESERVED_26_18_SHIFT - | 0x00000001U << DDR_PHY_DCR_BYTEMASK_SHIFT - | 0x00000000U << DDR_PHY_DCR_DDRTYPE_SHIFT - | 0x00000000U << DDR_PHY_DCR_MPRDQ_SHIFT - | 0x00000000U << DDR_PHY_DCR_PDQ_SHIFT - | 0x00000001U << DDR_PHY_DCR_DDR8BNK_SHIFT - | 0x00000004U << DDR_PHY_DCR_DDRMD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DCR_OFFSET ,0xFFFFFFFFU ,0x0800040CU); - /*############################################################################################################################ */ - - /*Register : DTPR0 @ 0XFD080110

      + * Byte Mask + * PSU_DDR_PHY_DCR_BYTEMASK 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_31_29 0x0 + * DDR Type + * PSU_DDR_PHY_DCR_DDRTYPE 0x0 - Activate to activate command delay (different banks) - PSU_DDR_PHY_DTPR0_TRRD 0x6 + * Multi-Purpose Register (MPR) DQ (DDR3 Only) + * PSU_DDR_PHY_DCR_MPRDQ 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_23 0x0 + * Primary DQ (DDR3 Only) + * PSU_DDR_PHY_DCR_PDQ 0x0 - Activate to precharge command delay - PSU_DDR_PHY_DTPR0_TRAS 0x24 + * DDR 8-Bank + * PSU_DDR_PHY_DCR_DDR8BNK 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_15 0x0 - - Precharge command period - PSU_DDR_PHY_DTPR0_TRP 0xf - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_7_5 0x0 - - Internal read to precharge command delay - PSU_DDR_PHY_DTPR0_TRTP 0x9 - - DRAM Timing Parameters Register 0 - (OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F09U) - RegMask = (DDR_PHY_DTPR0_RESERVED_31_29_MASK | DDR_PHY_DTPR0_TRRD_MASK | DDR_PHY_DTPR0_RESERVED_23_MASK | DDR_PHY_DTPR0_TRAS_MASK | DDR_PHY_DTPR0_RESERVED_15_MASK | DDR_PHY_DTPR0_TRP_MASK | DDR_PHY_DTPR0_RESERVED_7_5_MASK | DDR_PHY_DTPR0_TRTP_MASK | 0 ); + * DDR Mode + * PSU_DDR_PHY_DCR_DDRMD 0x4 - RegVal = ((0x00000000U << DDR_PHY_DTPR0_RESERVED_31_29_SHIFT - | 0x00000006U << DDR_PHY_DTPR0_TRRD_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_23_SHIFT - | 0x00000024U << DDR_PHY_DTPR0_TRAS_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_15_SHIFT - | 0x0000000FU << DDR_PHY_DTPR0_TRP_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_7_5_SHIFT - | 0x00000009U << DDR_PHY_DTPR0_TRTP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR0_OFFSET ,0xFFFFFFFFU ,0x06240F09U); - /*############################################################################################################################ */ + * DRAM Configuration Register + * (OFFSET, MASK, VALUE) (0XFD080100, 0xFFFFFFFFU ,0x0800040CU) + */ + PSU_Mask_Write(DDR_PHY_DCR_OFFSET, 0xFFFFFFFFU, 0x0800040CU); +/*##################################################################### */ - /*Register : DTPR1 @ 0XFD080114

      + /* + * Register : DTPR0 @ 0XFD080110 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_31 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_31_29 0x0 - Minimum delay from when write leveling mode is programmed to the first DQS/DQS# rising edge. - PSU_DDR_PHY_DTPR1_TWLMRD 0x28 + * Activate to activate command delay (different banks) + * PSU_DDR_PHY_DTPR0_TRRD 0x6 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_23 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_23 0x0 - 4-bank activate period - PSU_DDR_PHY_DTPR1_TFAW 0x18 + * Activate to precharge command delay + * PSU_DDR_PHY_DTPR0_TRAS 0x24 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_15_11 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_15 0x0 - Load mode update delay (DDR4 and DDR3 only) - PSU_DDR_PHY_DTPR1_TMOD 0x7 + * Precharge command period + * PSU_DDR_PHY_DTPR0_TRP 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_7_5 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_7_5 0x0 - Load mode cycle time - PSU_DDR_PHY_DTPR1_TMRD 0x8 + * Internal read to precharge command delay + * PSU_DDR_PHY_DTPR0_TRTP 0x8 - DRAM Timing Parameters Register 1 - (OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28180708U) - RegMask = (DDR_PHY_DTPR1_RESERVED_31_MASK | DDR_PHY_DTPR1_TWLMRD_MASK | DDR_PHY_DTPR1_RESERVED_23_MASK | DDR_PHY_DTPR1_TFAW_MASK | DDR_PHY_DTPR1_RESERVED_15_11_MASK | DDR_PHY_DTPR1_TMOD_MASK | DDR_PHY_DTPR1_RESERVED_7_5_MASK | DDR_PHY_DTPR1_TMRD_MASK | 0 ); + * DRAM Timing Parameters Register 0 + * (OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F08U) + */ + PSU_Mask_Write(DDR_PHY_DTPR0_OFFSET, 0xFFFFFFFFU, 0x06240F08U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DTPR1_RESERVED_31_SHIFT - | 0x00000028U << DDR_PHY_DTPR1_TWLMRD_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_23_SHIFT - | 0x00000018U << DDR_PHY_DTPR1_TFAW_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_15_11_SHIFT - | 0x00000007U << DDR_PHY_DTPR1_TMOD_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_7_5_SHIFT - | 0x00000008U << DDR_PHY_DTPR1_TMRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR1_OFFSET ,0xFFFFFFFFU ,0x28180708U); - /*############################################################################################################################ */ + /* + * Register : DTPR1 @ 0XFD080114 - /*Register : DTPR2 @ 0XFD080118

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_31 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_31_29 0x0 + * Minimum delay from when write leveling mode is programmed to the first D + * QS/DQS# rising edge. + * PSU_DDR_PHY_DTPR1_TWLMRD 0x28 - Read to Write command delay. Valid values are - PSU_DDR_PHY_DTPR2_TRTW 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_23 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_27_25 0x0 + * 4-bank activate period + * PSU_DDR_PHY_DTPR1_TFAW 0x20 - Read to ODT delay (DDR3 only) - PSU_DDR_PHY_DTPR2_TRTODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_15_11 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_23_20 0x0 + * Load mode update delay (DDR4 and DDR3 only) + * PSU_DDR_PHY_DTPR1_TMOD 0x0 - CKE minimum pulse width - PSU_DDR_PHY_DTPR2_TCKE 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_7_5 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_15_10 0x0 + * Load mode cycle time + * PSU_DDR_PHY_DTPR1_TMRD 0x8 - Self refresh exit delay - PSU_DDR_PHY_DTPR2_TXS 0x200 + * DRAM Timing Parameters Register 1 + * (OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28200008U) + */ + PSU_Mask_Write(DDR_PHY_DTPR1_OFFSET, 0xFFFFFFFFU, 0x28200008U); +/*##################################################################### */ - DRAM Timing Parameters Register 2 - (OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00080200U) - RegMask = (DDR_PHY_DTPR2_RESERVED_31_29_MASK | DDR_PHY_DTPR2_TRTW_MASK | DDR_PHY_DTPR2_RESERVED_27_25_MASK | DDR_PHY_DTPR2_TRTODT_MASK | DDR_PHY_DTPR2_RESERVED_23_20_MASK | DDR_PHY_DTPR2_TCKE_MASK | DDR_PHY_DTPR2_RESERVED_15_10_MASK | DDR_PHY_DTPR2_TXS_MASK | 0 ); + /* + * Register : DTPR2 @ 0XFD080118 - RegVal = ((0x00000000U << DDR_PHY_DTPR2_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_TRTW_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_27_25_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_TRTODT_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_23_20_SHIFT - | 0x00000008U << DDR_PHY_DTPR2_TCKE_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_15_10_SHIFT - | 0x00000200U << DDR_PHY_DTPR2_TXS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR2_OFFSET ,0xFFFFFFFFU ,0x00080200U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_31_29 0x0 - /*Register : DTPR3 @ 0XFD08011C

      + * Read to Write command delay. Valid values are + * PSU_DDR_PHY_DTPR2_TRTW 0x0 - ODT turn-off delay extension - PSU_DDR_PHY_DTPR3_TOFDX 0x4 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_27_25 0x0 - Read to read and write to write command delay - PSU_DDR_PHY_DTPR3_TCCD 0x0 + * Read to ODT delay (DDR3 only) + * PSU_DDR_PHY_DTPR2_TRTODT 0x0 - DLL locking time - PSU_DDR_PHY_DTPR3_TDLLK 0x300 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_23_20 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR3_RESERVED_15_12 0x0 + * CKE minimum pulse width + * PSU_DDR_PHY_DTPR2_TCKE 0x7 - Maximum DQS output access time from CK/CK# (LPDDR2/3 only) - PSU_DDR_PHY_DTPR3_TDQSCKMAX 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_15_10 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR3_RESERVED_7_3 0x0 + * Self refresh exit delay + * PSU_DDR_PHY_DTPR2_TXS 0x300 - DQS output access time from CK/CK# (LPDDR2/3 only) - PSU_DDR_PHY_DTPR3_TDQSCK 0x0 + * DRAM Timing Parameters Register 2 + * (OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00070300U) + */ + PSU_Mask_Write(DDR_PHY_DTPR2_OFFSET, 0xFFFFFFFFU, 0x00070300U); +/*##################################################################### */ - DRAM Timing Parameters Register 3 - (OFFSET, MASK, VALUE) (0XFD08011C, 0xFFFFFFFFU ,0x83000800U) - RegMask = (DDR_PHY_DTPR3_TOFDX_MASK | DDR_PHY_DTPR3_TCCD_MASK | DDR_PHY_DTPR3_TDLLK_MASK | DDR_PHY_DTPR3_RESERVED_15_12_MASK | DDR_PHY_DTPR3_TDQSCKMAX_MASK | DDR_PHY_DTPR3_RESERVED_7_3_MASK | DDR_PHY_DTPR3_TDQSCK_MASK | 0 ); + /* + * Register : DTPR3 @ 0XFD08011C - RegVal = ((0x00000004U << DDR_PHY_DTPR3_TOFDX_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_TCCD_SHIFT - | 0x00000300U << DDR_PHY_DTPR3_TDLLK_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_RESERVED_15_12_SHIFT - | 0x00000008U << DDR_PHY_DTPR3_TDQSCKMAX_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_RESERVED_7_3_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_TDQSCK_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR3_OFFSET ,0xFFFFFFFFU ,0x83000800U); - /*############################################################################################################################ */ + * ODT turn-off delay extension + * PSU_DDR_PHY_DTPR3_TOFDX 0x4 - /*Register : DTPR4 @ 0XFD080120

      + * Read to read and write to write command delay + * PSU_DDR_PHY_DTPR3_TCCD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_31_30 0x0 + * DLL locking time + * PSU_DDR_PHY_DTPR3_TDLLK 0x300 - ODT turn-on/turn-off delays (DDR2 only) - PSU_DDR_PHY_DTPR4_TAOND_TAOFD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR3_RESERVED_15_12 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_27_26 0x0 + * Maximum DQS output access time from CK/CK# (LPDDR2/3 only) + * PSU_DDR_PHY_DTPR3_TDQSCKMAX 0x8 - Refresh-to-Refresh - PSU_DDR_PHY_DTPR4_TRFC 0x116 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR3_RESERVED_7_3 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_15_14 0x0 + * DQS output access time from CK/CK# (LPDDR2/3 only) + * PSU_DDR_PHY_DTPR3_TDQSCK 0x0 - Write leveling output delay - PSU_DDR_PHY_DTPR4_TWLO 0x2b + * DRAM Timing Parameters Register 3 + * (OFFSET, MASK, VALUE) (0XFD08011C, 0xFFFFFFFFU ,0x83000800U) + */ + PSU_Mask_Write(DDR_PHY_DTPR3_OFFSET, 0xFFFFFFFFU, 0x83000800U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_7_5 0x0 + /* + * Register : DTPR4 @ 0XFD080120 - Power down exit delay - PSU_DDR_PHY_DTPR4_TXP 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_31_30 0x0 - DRAM Timing Parameters Register 4 - (OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B08U) - RegMask = (DDR_PHY_DTPR4_RESERVED_31_30_MASK | DDR_PHY_DTPR4_TAOND_TAOFD_MASK | DDR_PHY_DTPR4_RESERVED_27_26_MASK | DDR_PHY_DTPR4_TRFC_MASK | DDR_PHY_DTPR4_RESERVED_15_14_MASK | DDR_PHY_DTPR4_TWLO_MASK | DDR_PHY_DTPR4_RESERVED_7_5_MASK | DDR_PHY_DTPR4_TXP_MASK | 0 ); + * ODT turn-on/turn-off delays (DDR2 only) + * PSU_DDR_PHY_DTPR4_TAOND_TAOFD 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR4_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_27_26_SHIFT - | 0x00000116U << DDR_PHY_DTPR4_TRFC_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DTPR4_TWLO_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_7_5_SHIFT - | 0x00000008U << DDR_PHY_DTPR4_TXP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR4_OFFSET ,0xFFFFFFFFU ,0x01162B08U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_27_26 0x0 - /*Register : DTPR5 @ 0XFD080124

      + * Refresh-to-Refresh + * PSU_DDR_PHY_DTPR4_TRFC 0x116 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_31_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_15_14 0x0 - Activate to activate command delay (same bank) - PSU_DDR_PHY_DTPR5_TRC 0x32 + * Write leveling output delay + * PSU_DDR_PHY_DTPR4_TWLO 0x2b - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_15 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_7_5 0x0 - Activate to read or write delay - PSU_DDR_PHY_DTPR5_TRCD 0xf + * Power down exit delay + * PSU_DDR_PHY_DTPR4_TXP 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_7_5 0x0 + * DRAM Timing Parameters Register 4 + * (OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B07U) + */ + PSU_Mask_Write(DDR_PHY_DTPR4_OFFSET, 0xFFFFFFFFU, 0x01162B07U); +/*##################################################################### */ - Internal write to read command delay - PSU_DDR_PHY_DTPR5_TWTR 0x9 + /* + * Register : DTPR5 @ 0XFD080124 - DRAM Timing Parameters Register 5 - (OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00320F09U) - RegMask = (DDR_PHY_DTPR5_RESERVED_31_24_MASK | DDR_PHY_DTPR5_TRC_MASK | DDR_PHY_DTPR5_RESERVED_15_MASK | DDR_PHY_DTPR5_TRCD_MASK | DDR_PHY_DTPR5_RESERVED_7_5_MASK | DDR_PHY_DTPR5_TWTR_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_31_24 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR5_RESERVED_31_24_SHIFT - | 0x00000032U << DDR_PHY_DTPR5_TRC_SHIFT - | 0x00000000U << DDR_PHY_DTPR5_RESERVED_15_SHIFT - | 0x0000000FU << DDR_PHY_DTPR5_TRCD_SHIFT - | 0x00000000U << DDR_PHY_DTPR5_RESERVED_7_5_SHIFT - | 0x00000009U << DDR_PHY_DTPR5_TWTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR5_OFFSET ,0xFFFFFFFFU ,0x00320F09U); - /*############################################################################################################################ */ + * Activate to activate command delay (same bank) + * PSU_DDR_PHY_DTPR5_TRC 0x33 - /*Register : DTPR6 @ 0XFD080128

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_15 0x0 - PUB Write Latency Enable - PSU_DDR_PHY_DTPR6_PUBWLEN 0x0 + * Activate to read or write delay + * PSU_DDR_PHY_DTPR5_TRCD 0xf - PUB Read Latency Enable - PSU_DDR_PHY_DTPR6_PUBRLEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_7_5 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR6_RESERVED_29_14 0x0 + * Internal write to read command delay + * PSU_DDR_PHY_DTPR5_TWTR 0x8 - Write Latency - PSU_DDR_PHY_DTPR6_PUBWL 0xe + * DRAM Timing Parameters Register 5 + * (OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00330F08U) + */ + PSU_Mask_Write(DDR_PHY_DTPR5_OFFSET, 0xFFFFFFFFU, 0x00330F08U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR6_RESERVED_7_6 0x0 + /* + * Register : DTPR6 @ 0XFD080128 - Read Latency - PSU_DDR_PHY_DTPR6_PUBRL 0xf + * PUB Write Latency Enable + * PSU_DDR_PHY_DTPR6_PUBWLEN 0x0 - DRAM Timing Parameters Register 6 - (OFFSET, MASK, VALUE) (0XFD080128, 0xFFFFFFFFU ,0x00000E0FU) - RegMask = (DDR_PHY_DTPR6_PUBWLEN_MASK | DDR_PHY_DTPR6_PUBRLEN_MASK | DDR_PHY_DTPR6_RESERVED_29_14_MASK | DDR_PHY_DTPR6_PUBWL_MASK | DDR_PHY_DTPR6_RESERVED_7_6_MASK | DDR_PHY_DTPR6_PUBRL_MASK | 0 ); + * PUB Read Latency Enable + * PSU_DDR_PHY_DTPR6_PUBRLEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR6_PUBWLEN_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_PUBRLEN_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_RESERVED_29_14_SHIFT - | 0x0000000EU << DDR_PHY_DTPR6_PUBWL_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DTPR6_PUBRL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR6_OFFSET ,0xFFFFFFFFU ,0x00000E0FU); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR6_RESERVED_29_14 0x0 - /*Register : RDIMMGCR0 @ 0XFD080140

      + * Write Latency + * PSU_DDR_PHY_DTPR6_PUBWL 0xe - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_31 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR6_RESERVED_7_6 0x0 - RDMIMM Quad CS Enable - PSU_DDR_PHY_RDIMMGCR0_QCSEN 0x0 + * Read Latency + * PSU_DDR_PHY_DTPR6_PUBRL 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_29_28 0x0 + * DRAM Timing Parameters Register 6 + * (OFFSET, MASK, VALUE) (0XFD080128, 0xFFFFFFFFU ,0x00000E0FU) + */ + PSU_Mask_Write(DDR_PHY_DTPR6_OFFSET, 0xFFFFFFFFU, 0x00000E0FU); +/*##################################################################### */ - RDIMM Outputs I/O Mode - PSU_DDR_PHY_RDIMMGCR0_RDIMMIOM 0x1 + /* + * Register : RDIMMGCR0 @ 0XFD080140 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_26_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_31 0x0 - ERROUT# Output Enable - PSU_DDR_PHY_RDIMMGCR0_ERROUTOE 0x0 + * RDMIMM Quad CS Enable + * PSU_DDR_PHY_RDIMMGCR0_QCSEN 0x0 - ERROUT# I/O Mode - PSU_DDR_PHY_RDIMMGCR0_ERROUTIOM 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_29_28 0x0 - ERROUT# Power Down Receiver - PSU_DDR_PHY_RDIMMGCR0_ERROUTPDR 0x0 + * RDIMM Outputs I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_RDIMMIOM 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_20 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_26_24 0x0 - ERROUT# On-Die Termination - PSU_DDR_PHY_RDIMMGCR0_ERROUTODT 0x0 + * ERROUT# Output Enable + * PSU_DDR_PHY_RDIMMGCR0_ERROUTOE 0x0 - Load Reduced DIMM - PSU_DDR_PHY_RDIMMGCR0_LRDIMM 0x0 + * ERROUT# I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_ERROUTIOM 0x1 - PAR_IN I/O Mode - PSU_DDR_PHY_RDIMMGCR0_PARINIOM 0x0 + * ERROUT# Power Down Receiver + * PSU_DDR_PHY_RDIMMGCR0_ERROUTPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_16_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_20 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD 0x0 + * ERROUT# On-Die Termination + * PSU_DDR_PHY_RDIMMGCR0_ERROUTODT 0x0 - Rank Mirror Enable. - PSU_DDR_PHY_RDIMMGCR0_RNKMRREN 0x2 + * Load Reduced DIMM + * PSU_DDR_PHY_RDIMMGCR0_LRDIMM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_3 0x0 + * PAR_IN I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_PARINIOM 0x0 - Stop on Parity Error - PSU_DDR_PHY_RDIMMGCR0_SOPERR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_16_8 0x0 - Parity Error No Registering - PSU_DDR_PHY_RDIMMGCR0_ERRNOREG 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD 0x0 - Registered DIMM - PSU_DDR_PHY_RDIMMGCR0_RDIMM 0x0 + * Rank Mirror Enable. + * PSU_DDR_PHY_RDIMMGCR0_RNKMRREN 0x2 - RDIMM General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080140, 0xFFFFFFFFU ,0x08400020U) - RegMask = (DDR_PHY_RDIMMGCR0_RESERVED_31_MASK | DDR_PHY_RDIMMGCR0_QCSEN_MASK | DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK | DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK | DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK | DDR_PHY_RDIMMGCR0_ERROUTOE_MASK | DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK | DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK | DDR_PHY_RDIMMGCR0_RESERVED_20_MASK | DDR_PHY_RDIMMGCR0_ERROUTODT_MASK | DDR_PHY_RDIMMGCR0_LRDIMM_MASK | DDR_PHY_RDIMMGCR0_PARINIOM_MASK | DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK | DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK | DDR_PHY_RDIMMGCR0_RNKMRREN_MASK | DDR_PHY_RDIMMGCR0_RESERVED_3_MASK | DDR_PHY_RDIMMGCR0_SOPERR_MASK | DDR_PHY_RDIMMGCR0_ERRNOREG_MASK | DDR_PHY_RDIMMGCR0_RDIMM_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_3 0x0 - RegVal = ((0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_QCSEN_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT - | 0x00000001U << DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT - | 0x00000001U << DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT - | 0x00000002U << DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_SOPERR_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RDIMM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMGCR0_OFFSET ,0xFFFFFFFFU ,0x08400020U); - /*############################################################################################################################ */ + * Stop on Parity Error + * PSU_DDR_PHY_RDIMMGCR0_SOPERR 0x0 - /*Register : RDIMMGCR1 @ 0XFD080144

      + * Parity Error No Registering + * PSU_DDR_PHY_RDIMMGCR0_ERRNOREG 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_31_29 0x0 + * Registered DIMM + * PSU_DDR_PHY_RDIMMGCR0_RDIMM 0x0 - Address [17] B-side Inversion Disable - PSU_DDR_PHY_RDIMMGCR1_A17BID 0x0 + * RDIMM General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080140, 0xFFFFFFFFU ,0x08400020U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMGCR0_OFFSET, 0xFFFFFFFFU, 0x08400020U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_27 0x0 + /* + * Register : RDIMMGCR1 @ 0XFD080144 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L2 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_31_29 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_23 0x0 + * Address [17] B-side Inversion Disable + * PSU_DDR_PHY_RDIMMGCR1_A17BID 0x0 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_27 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_19 0x0 + * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L2 0x0 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_23 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_15_14 0x0 + * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L 0x0 - Stabilization time - PSU_DDR_PHY_RDIMMGCR1_TBCSTAB 0xc80 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_19 0x0 - RDIMM General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080144, 0xFFFFFFFFU ,0x00000C80U) - RegMask = (DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK | DDR_PHY_RDIMMGCR1_A17BID_MASK | DDR_PHY_RDIMMGCR1_RESERVED_27_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK | DDR_PHY_RDIMMGCR1_RESERVED_23_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK | DDR_PHY_RDIMMGCR1_RESERVED_19_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_MASK | DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK | DDR_PHY_RDIMMGCR1_TBCSTAB_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_A17BID_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT - | 0x00000C80U << DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMGCR1_OFFSET ,0xFFFFFFFFU ,0x00000C80U); - /*############################################################################################################################ */ - - /*Register : RDIMMCR0 @ 0XFD080150

      + * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD 0x0 - DDR4/DDR3 Control Word 7 - PSU_DDR_PHY_RDIMMCR0_RC7 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_15_14 0x0 - DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR0_RC6 0x0 - - DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC5 0x0 - - DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control Word) / DDR3 Control Word 4 (Control Signals Driver C - aracteristics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC4 0x0 - - DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Word) / DDR3 Control Word 3 (Command/Address Signals Dr - ver Characteristrics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC3 0x0 - - DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 (Timing Control Word) - PSU_DDR_PHY_RDIMMCR0_RC2 0x0 - - DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) - PSU_DDR_PHY_RDIMMCR0_RC1 0x0 - - DDR4/DDR3 Control Word 0 (Global Features Control Word) - PSU_DDR_PHY_RDIMMCR0_RC0 0x0 - - RDIMM Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080150, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_RDIMMCR0_RC7_MASK | DDR_PHY_RDIMMCR0_RC6_MASK | DDR_PHY_RDIMMCR0_RC5_MASK | DDR_PHY_RDIMMCR0_RC4_MASK | DDR_PHY_RDIMMCR0_RC3_MASK | DDR_PHY_RDIMMCR0_RC2_MASK | DDR_PHY_RDIMMCR0_RC1_MASK | DDR_PHY_RDIMMCR0_RC0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_RDIMMCR0_RC7_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC6_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC5_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC4_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC3_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC2_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC1_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMCR0_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Stabilization time + * PSU_DDR_PHY_RDIMMGCR1_TBCSTAB 0xc80 - /*Register : RDIMMCR1 @ 0XFD080154

      + * RDIMM General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080144, 0xFFFFFFFFU ,0x00000C80U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMGCR1_OFFSET, 0xFFFFFFFFU, 0x00000C80U); +/*##################################################################### */ - Control Word 15 - PSU_DDR_PHY_RDIMMCR1_RC15 0x0 + /* + * Register : RDIMMCR0 @ 0XFD080150 - DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC14 0x0 + * DDR4/DDR3 Control Word 7 + * PSU_DDR_PHY_RDIMMCR0_RC7 0x0 - DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC13 0x0 + * DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR0_RC6 0x0 - DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC12 0x0 + * DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC5 0x0 - DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Word) / DDR3 Control Word 11 (Operation Voltage VDD Con - rol Word) - PSU_DDR_PHY_RDIMMCR1_RC11 0x0 + * DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control + * Word) / DDR3 Control Word 4 (Control Signals Driver Characteristics Cont + * rol Word) + * PSU_DDR_PHY_RDIMMCR0_RC4 0x0 - DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) - PSU_DDR_PHY_RDIMMCR1_RC10 0x2 + * DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Wo + * rd) / DDR3 Control Word 3 (Command/Address Signals Driver Characteristri + * cs Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC3 0x0 - DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) - PSU_DDR_PHY_RDIMMCR1_RC9 0x0 + * DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 + * (Timing Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC2 0x0 - DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Control Word 8 (Additional Input Bus Termination Setting - Control Word) - PSU_DDR_PHY_RDIMMCR1_RC8 0x0 + * DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC1 0x0 - RDIMM Control Register 1 - (OFFSET, MASK, VALUE) (0XFD080154, 0xFFFFFFFFU ,0x00000200U) - RegMask = (DDR_PHY_RDIMMCR1_RC15_MASK | DDR_PHY_RDIMMCR1_RC14_MASK | DDR_PHY_RDIMMCR1_RC13_MASK | DDR_PHY_RDIMMCR1_RC12_MASK | DDR_PHY_RDIMMCR1_RC11_MASK | DDR_PHY_RDIMMCR1_RC10_MASK | DDR_PHY_RDIMMCR1_RC9_MASK | DDR_PHY_RDIMMCR1_RC8_MASK | 0 ); + * DDR4/DDR3 Control Word 0 (Global Features Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC0 0x0 - RegVal = ((0x00000000U << DDR_PHY_RDIMMCR1_RC15_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC14_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC13_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC12_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC11_SHIFT - | 0x00000002U << DDR_PHY_RDIMMCR1_RC10_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC9_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC8_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMCR1_OFFSET ,0xFFFFFFFFU ,0x00000200U); - /*############################################################################################################################ */ + * RDIMM Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080150, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMCR0_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - /*Register : MR0 @ 0XFD080180

      + /* + * Register : RDIMMCR1 @ 0XFD080154 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR0_RESERVED_31_8 0x8 + * Control Word 15 + * PSU_DDR_PHY_RDIMMCR1_RC15 0x0 - CA Terminating Rank - PSU_DDR_PHY_MR0_CATR 0x0 + * DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC14 0x0 - Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR0_RSVD_6_5 0x1 + * DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC13 0x0 - Built-in Self-Test for RZQ - PSU_DDR_PHY_MR0_RZQI 0x2 + * DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC12 0x0 - Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR0_RSVD_2_0 0x0 + * DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Wo + * rd) / DDR3 Control Word 11 (Operation Voltage VDD Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC11 0x0 - LPDDR4 Mode Register 0 - (OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000830U) - RegMask = (DDR_PHY_MR0_RESERVED_31_8_MASK | DDR_PHY_MR0_CATR_MASK | DDR_PHY_MR0_RSVD_6_5_MASK | DDR_PHY_MR0_RZQI_MASK | DDR_PHY_MR0_RSVD_2_0_MASK | 0 ); + * DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC10 0x2 - RegVal = ((0x00000008U << DDR_PHY_MR0_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR0_CATR_SHIFT - | 0x00000001U << DDR_PHY_MR0_RSVD_6_5_SHIFT - | 0x00000002U << DDR_PHY_MR0_RZQI_SHIFT - | 0x00000000U << DDR_PHY_MR0_RSVD_2_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR0_OFFSET ,0xFFFFFFFFU ,0x00000830U); - /*############################################################################################################################ */ + * DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC9 0x0 - /*Register : MR1 @ 0XFD080184

      + * DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Con + * trol Word 8 (Additional Input Bus Termination Setting Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC8 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR1_RESERVED_31_8 0x3 + * RDIMM Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD080154, 0xFFFFFFFFU ,0x00000200U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMCR1_OFFSET, 0xFFFFFFFFU, 0x00000200U); +/*##################################################################### */ - Read Postamble Length - PSU_DDR_PHY_MR1_RDPST 0x0 + /* + * Register : MR0 @ 0XFD080180 - Write-recovery for auto-precharge command - PSU_DDR_PHY_MR1_NWR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR0_RESERVED_31_8 0x6 - Read Preamble Length - PSU_DDR_PHY_MR1_RDPRE 0x0 + * CA Terminating Rank + * PSU_DDR_PHY_MR0_CATR 0x0 - Write Preamble Length - PSU_DDR_PHY_MR1_WRPRE 0x0 + * Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. + * PSU_DDR_PHY_MR0_RSVD_6_5 0x1 - Burst Length - PSU_DDR_PHY_MR1_BL 0x1 + * Built-in Self-Test for RZQ + * PSU_DDR_PHY_MR0_RZQI 0x2 - LPDDR4 Mode Register 1 - (OFFSET, MASK, VALUE) (0XFD080184, 0xFFFFFFFFU ,0x00000301U) - RegMask = (DDR_PHY_MR1_RESERVED_31_8_MASK | DDR_PHY_MR1_RDPST_MASK | DDR_PHY_MR1_NWR_MASK | DDR_PHY_MR1_RDPRE_MASK | DDR_PHY_MR1_WRPRE_MASK | DDR_PHY_MR1_BL_MASK | 0 ); + * Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. + * PSU_DDR_PHY_MR0_RSVD_2_0 0x0 - RegVal = ((0x00000003U << DDR_PHY_MR1_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR1_RDPST_SHIFT - | 0x00000000U << DDR_PHY_MR1_NWR_SHIFT - | 0x00000000U << DDR_PHY_MR1_RDPRE_SHIFT - | 0x00000000U << DDR_PHY_MR1_WRPRE_SHIFT - | 0x00000001U << DDR_PHY_MR1_BL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR1_OFFSET ,0xFFFFFFFFU ,0x00000301U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 0 + * (OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000630U) + */ + PSU_Mask_Write(DDR_PHY_MR0_OFFSET, 0xFFFFFFFFU, 0x00000630U); +/*##################################################################### */ - /*Register : MR2 @ 0XFD080188

      + /* + * Register : MR1 @ 0XFD080184 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR2_RESERVED_31_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR1_RESERVED_31_8 0x3 - Write Leveling - PSU_DDR_PHY_MR2_WRL 0x0 + * Read Postamble Length + * PSU_DDR_PHY_MR1_RDPST 0x0 - Write Latency Set - PSU_DDR_PHY_MR2_WLS 0x0 + * Write-recovery for auto-precharge command + * PSU_DDR_PHY_MR1_NWR 0x0 - Write Latency - PSU_DDR_PHY_MR2_WL 0x4 + * Read Preamble Length + * PSU_DDR_PHY_MR1_RDPRE 0x0 - Read Latency - PSU_DDR_PHY_MR2_RL 0x0 + * Write Preamble Length + * PSU_DDR_PHY_MR1_WRPRE 0x0 - LPDDR4 Mode Register 2 - (OFFSET, MASK, VALUE) (0XFD080188, 0xFFFFFFFFU ,0x00000020U) - RegMask = (DDR_PHY_MR2_RESERVED_31_8_MASK | DDR_PHY_MR2_WRL_MASK | DDR_PHY_MR2_WLS_MASK | DDR_PHY_MR2_WL_MASK | DDR_PHY_MR2_RL_MASK | 0 ); + * Burst Length + * PSU_DDR_PHY_MR1_BL 0x1 - RegVal = ((0x00000000U << DDR_PHY_MR2_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR2_WRL_SHIFT - | 0x00000000U << DDR_PHY_MR2_WLS_SHIFT - | 0x00000004U << DDR_PHY_MR2_WL_SHIFT - | 0x00000000U << DDR_PHY_MR2_RL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR2_OFFSET ,0xFFFFFFFFU ,0x00000020U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 1 + * (OFFSET, MASK, VALUE) (0XFD080184, 0xFFFFFFFFU ,0x00000301U) + */ + PSU_Mask_Write(DDR_PHY_MR1_OFFSET, 0xFFFFFFFFU, 0x00000301U); +/*##################################################################### */ - /*Register : MR3 @ 0XFD08018C

      + /* + * Register : MR2 @ 0XFD080188 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR3_RESERVED_31_8 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR2_RESERVED_31_8 0x0 - DBI-Write Enable - PSU_DDR_PHY_MR3_DBIWR 0x0 + * Write Leveling + * PSU_DDR_PHY_MR2_WRL 0x0 - DBI-Read Enable - PSU_DDR_PHY_MR3_DBIRD 0x0 + * Write Latency Set + * PSU_DDR_PHY_MR2_WLS 0x0 - Pull-down Drive Strength - PSU_DDR_PHY_MR3_PDDS 0x0 + * Write Latency + * PSU_DDR_PHY_MR2_WL 0x4 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR3_RSVD 0x0 + * Read Latency + * PSU_DDR_PHY_MR2_RL 0x0 - Write Postamble Length - PSU_DDR_PHY_MR3_WRPST 0x0 + * LPDDR4 Mode Register 2 + * (OFFSET, MASK, VALUE) (0XFD080188, 0xFFFFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(DDR_PHY_MR2_OFFSET, 0xFFFFFFFFU, 0x00000020U); +/*##################################################################### */ - Pull-up Calibration Point - PSU_DDR_PHY_MR3_PUCAL 0x0 + /* + * Register : MR3 @ 0XFD08018C - LPDDR4 Mode Register 3 - (OFFSET, MASK, VALUE) (0XFD08018C, 0xFFFFFFFFU ,0x00000200U) - RegMask = (DDR_PHY_MR3_RESERVED_31_8_MASK | DDR_PHY_MR3_DBIWR_MASK | DDR_PHY_MR3_DBIRD_MASK | DDR_PHY_MR3_PDDS_MASK | DDR_PHY_MR3_RSVD_MASK | DDR_PHY_MR3_WRPST_MASK | DDR_PHY_MR3_PUCAL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR3_RESERVED_31_8 0x2 - RegVal = ((0x00000002U << DDR_PHY_MR3_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR3_DBIWR_SHIFT - | 0x00000000U << DDR_PHY_MR3_DBIRD_SHIFT - | 0x00000000U << DDR_PHY_MR3_PDDS_SHIFT - | 0x00000000U << DDR_PHY_MR3_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR3_WRPST_SHIFT - | 0x00000000U << DDR_PHY_MR3_PUCAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR3_OFFSET ,0xFFFFFFFFU ,0x00000200U); - /*############################################################################################################################ */ + * DBI-Write Enable + * PSU_DDR_PHY_MR3_DBIWR 0x0 - /*Register : MR4 @ 0XFD080190

      + * DBI-Read Enable + * PSU_DDR_PHY_MR3_DBIRD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR4_RESERVED_31_16 0x0 + * Pull-down Drive Strength + * PSU_DDR_PHY_MR3_PDDS 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD_15_13 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR3_RSVD 0x0 - Write Preamble - PSU_DDR_PHY_MR4_WRP 0x0 + * Write Postamble Length + * PSU_DDR_PHY_MR3_WRPST 0x0 - Read Preamble - PSU_DDR_PHY_MR4_RDP 0x0 + * Pull-up Calibration Point + * PSU_DDR_PHY_MR3_PUCAL 0x0 - Read Preamble Training Mode - PSU_DDR_PHY_MR4_RPTM 0x0 + * LPDDR4 Mode Register 3 + * (OFFSET, MASK, VALUE) (0XFD08018C, 0xFFFFFFFFU ,0x00000200U) + */ + PSU_Mask_Write(DDR_PHY_MR3_OFFSET, 0xFFFFFFFFU, 0x00000200U); +/*##################################################################### */ - Self Refresh Abort - PSU_DDR_PHY_MR4_SRA 0x0 + /* + * Register : MR4 @ 0XFD080190 - CS to Command Latency Mode - PSU_DDR_PHY_MR4_CS2CMDL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR4_RESERVED_31_16 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD1 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR4_RSVD_15_13 0x0 - Internal VREF Monitor - PSU_DDR_PHY_MR4_IVM 0x0 + * Write Preamble + * PSU_DDR_PHY_MR4_WRP 0x0 - Temperature Controlled Refresh Mode - PSU_DDR_PHY_MR4_TCRM 0x0 + * Read Preamble + * PSU_DDR_PHY_MR4_RDP 0x0 - Temperature Controlled Refresh Range - PSU_DDR_PHY_MR4_TCRR 0x0 + * Read Preamble Training Mode + * PSU_DDR_PHY_MR4_RPTM 0x0 - Maximum Power Down Mode - PSU_DDR_PHY_MR4_MPDM 0x0 + * Self Refresh Abort + * PSU_DDR_PHY_MR4_SRA 0x0 - This is a JEDEC reserved bit and is recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD_0 0x0 + * CS to Command Latency Mode + * PSU_DDR_PHY_MR4_CS2CMDL 0x0 - DDR4 Mode Register 4 - (OFFSET, MASK, VALUE) (0XFD080190, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR4_RESERVED_31_16_MASK | DDR_PHY_MR4_RSVD_15_13_MASK | DDR_PHY_MR4_WRP_MASK | DDR_PHY_MR4_RDP_MASK | DDR_PHY_MR4_RPTM_MASK | DDR_PHY_MR4_SRA_MASK | DDR_PHY_MR4_CS2CMDL_MASK | DDR_PHY_MR4_RSVD1_MASK | DDR_PHY_MR4_IVM_MASK | DDR_PHY_MR4_TCRM_MASK | DDR_PHY_MR4_TCRR_MASK | DDR_PHY_MR4_MPDM_MASK | DDR_PHY_MR4_RSVD_0_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR4_RSVD1 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR4_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD_15_13_SHIFT - | 0x00000000U << DDR_PHY_MR4_WRP_SHIFT - | 0x00000000U << DDR_PHY_MR4_RDP_SHIFT - | 0x00000000U << DDR_PHY_MR4_RPTM_SHIFT - | 0x00000000U << DDR_PHY_MR4_SRA_SHIFT - | 0x00000000U << DDR_PHY_MR4_CS2CMDL_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD1_SHIFT - | 0x00000000U << DDR_PHY_MR4_IVM_SHIFT - | 0x00000000U << DDR_PHY_MR4_TCRM_SHIFT - | 0x00000000U << DDR_PHY_MR4_TCRR_SHIFT - | 0x00000000U << DDR_PHY_MR4_MPDM_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR4_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Internal VREF Monitor + * PSU_DDR_PHY_MR4_IVM 0x0 - /*Register : MR5 @ 0XFD080194

      + * Temperature Controlled Refresh Mode + * PSU_DDR_PHY_MR4_TCRM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR5_RESERVED_31_16 0x0 + * Temperature Controlled Refresh Range + * PSU_DDR_PHY_MR4_TCRR 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR5_RSVD 0x0 + * Maximum Power Down Mode + * PSU_DDR_PHY_MR4_MPDM 0x0 - Read DBI - PSU_DDR_PHY_MR5_RDBI 0x0 + * This is a JEDEC reserved bit and is recommended by JEDEC to be programme + * d to 0x0. + * PSU_DDR_PHY_MR4_RSVD_0 0x0 - Write DBI - PSU_DDR_PHY_MR5_WDBI 0x0 + * DDR4 Mode Register 4 + * (OFFSET, MASK, VALUE) (0XFD080190, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR4_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Data Mask - PSU_DDR_PHY_MR5_DM 0x1 + /* + * Register : MR5 @ 0XFD080194 - CA Parity Persistent Error - PSU_DDR_PHY_MR5_CAPPE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR5_RESERVED_31_16 0x0 - RTT_PARK - PSU_DDR_PHY_MR5_RTTPARK 0x3 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR5_RSVD 0x0 - ODT Input Buffer during Power Down mode - PSU_DDR_PHY_MR5_ODTIBPD 0x0 + * Read DBI + * PSU_DDR_PHY_MR5_RDBI 0x0 - C/A Parity Error Status - PSU_DDR_PHY_MR5_CAPES 0x0 + * Write DBI + * PSU_DDR_PHY_MR5_WDBI 0x0 - CRC Error Clear - PSU_DDR_PHY_MR5_CRCEC 0x0 + * Data Mask + * PSU_DDR_PHY_MR5_DM 0x1 - C/A Parity Latency Mode - PSU_DDR_PHY_MR5_CAPM 0x0 + * CA Parity Persistent Error + * PSU_DDR_PHY_MR5_CAPPE 0x1 - DDR4 Mode Register 5 - (OFFSET, MASK, VALUE) (0XFD080194, 0xFFFFFFFFU ,0x000006C0U) - RegMask = (DDR_PHY_MR5_RESERVED_31_16_MASK | DDR_PHY_MR5_RSVD_MASK | DDR_PHY_MR5_RDBI_MASK | DDR_PHY_MR5_WDBI_MASK | DDR_PHY_MR5_DM_MASK | DDR_PHY_MR5_CAPPE_MASK | DDR_PHY_MR5_RTTPARK_MASK | DDR_PHY_MR5_ODTIBPD_MASK | DDR_PHY_MR5_CAPES_MASK | DDR_PHY_MR5_CRCEC_MASK | DDR_PHY_MR5_CAPM_MASK | 0 ); + * RTT_PARK + * PSU_DDR_PHY_MR5_RTTPARK 0x3 - RegVal = ((0x00000000U << DDR_PHY_MR5_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR5_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR5_RDBI_SHIFT - | 0x00000000U << DDR_PHY_MR5_WDBI_SHIFT - | 0x00000001U << DDR_PHY_MR5_DM_SHIFT - | 0x00000001U << DDR_PHY_MR5_CAPPE_SHIFT - | 0x00000003U << DDR_PHY_MR5_RTTPARK_SHIFT - | 0x00000000U << DDR_PHY_MR5_ODTIBPD_SHIFT - | 0x00000000U << DDR_PHY_MR5_CAPES_SHIFT - | 0x00000000U << DDR_PHY_MR5_CRCEC_SHIFT - | 0x00000000U << DDR_PHY_MR5_CAPM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR5_OFFSET ,0xFFFFFFFFU ,0x000006C0U); - /*############################################################################################################################ */ + * ODT Input Buffer during Power Down mode + * PSU_DDR_PHY_MR5_ODTIBPD 0x0 - /*Register : MR6 @ 0XFD080198

      + * C/A Parity Error Status + * PSU_DDR_PHY_MR5_CAPES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR6_RESERVED_31_16 0x0 + * CRC Error Clear + * PSU_DDR_PHY_MR5_CRCEC 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR6_RSVD_15_13 0x0 + * C/A Parity Latency Mode + * PSU_DDR_PHY_MR5_CAPM 0x0 - CAS_n to CAS_n command delay for same bank group (tCCD_L) - PSU_DDR_PHY_MR6_TCCDL 0x2 + * DDR4 Mode Register 5 + * (OFFSET, MASK, VALUE) (0XFD080194, 0xFFFFFFFFU ,0x000006C0U) + */ + PSU_Mask_Write(DDR_PHY_MR5_OFFSET, 0xFFFFFFFFU, 0x000006C0U); +/*##################################################################### */ - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR6_RSVD_9_8 0x0 + /* + * Register : MR6 @ 0XFD080198 - VrefDQ Training Enable - PSU_DDR_PHY_MR6_VDDQTEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR6_RESERVED_31_16 0x0 - VrefDQ Training Range - PSU_DDR_PHY_MR6_VDQTRG 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR6_RSVD_15_13 0x0 - VrefDQ Training Values - PSU_DDR_PHY_MR6_VDQTVAL 0x19 + * CAS_n to CAS_n command delay for same bank group (tCCD_L) + * PSU_DDR_PHY_MR6_TCCDL 0x2 - DDR4 Mode Register 6 - (OFFSET, MASK, VALUE) (0XFD080198, 0xFFFFFFFFU ,0x00000819U) - RegMask = (DDR_PHY_MR6_RESERVED_31_16_MASK | DDR_PHY_MR6_RSVD_15_13_MASK | DDR_PHY_MR6_TCCDL_MASK | DDR_PHY_MR6_RSVD_9_8_MASK | DDR_PHY_MR6_VDDQTEN_MASK | DDR_PHY_MR6_VDQTRG_MASK | DDR_PHY_MR6_VDQTVAL_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR6_RSVD_9_8 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR6_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR6_RSVD_15_13_SHIFT - | 0x00000002U << DDR_PHY_MR6_TCCDL_SHIFT - | 0x00000000U << DDR_PHY_MR6_RSVD_9_8_SHIFT - | 0x00000000U << DDR_PHY_MR6_VDDQTEN_SHIFT - | 0x00000000U << DDR_PHY_MR6_VDQTRG_SHIFT - | 0x00000019U << DDR_PHY_MR6_VDQTVAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR6_OFFSET ,0xFFFFFFFFU ,0x00000819U); - /*############################################################################################################################ */ + * VrefDQ Training Enable + * PSU_DDR_PHY_MR6_VDDQTEN 0x0 - /*Register : MR11 @ 0XFD0801AC

      + * VrefDQ Training Range + * PSU_DDR_PHY_MR6_VDQTRG 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR11_RESERVED_31_8 0x0 + * VrefDQ Training Values + * PSU_DDR_PHY_MR6_VDQTVAL 0x19 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR11_RSVD 0x0 + * DDR4 Mode Register 6 + * (OFFSET, MASK, VALUE) (0XFD080198, 0xFFFFFFFFU ,0x00000819U) + */ + PSU_Mask_Write(DDR_PHY_MR6_OFFSET, 0xFFFFFFFFU, 0x00000819U); +/*##################################################################### */ - Power Down Control - PSU_DDR_PHY_MR11_PDCTL 0x0 + /* + * Register : MR11 @ 0XFD0801AC - DQ Bus Receiver On-Die-Termination - PSU_DDR_PHY_MR11_DQODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR11_RESERVED_31_8 0x0 - LPDDR4 Mode Register 11 - (OFFSET, MASK, VALUE) (0XFD0801AC, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR11_RESERVED_31_8_MASK | DDR_PHY_MR11_RSVD_MASK | DDR_PHY_MR11_PDCTL_MASK | DDR_PHY_MR11_DQODT_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR11_RSVD 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR11_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR11_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR11_PDCTL_SHIFT - | 0x00000000U << DDR_PHY_MR11_DQODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR11_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Power Down Control + * PSU_DDR_PHY_MR11_PDCTL 0x0 - /*Register : MR12 @ 0XFD0801B0

      + * DQ Bus Receiver On-Die-Termination + * PSU_DDR_PHY_MR11_DQODT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR12_RESERVED_31_8 0x0 + * LPDDR4 Mode Register 11 + * (OFFSET, MASK, VALUE) (0XFD0801AC, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR11_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR12_RSVD 0x0 + /* + * Register : MR12 @ 0XFD0801B0 - VREF_CA Range Select. - PSU_DDR_PHY_MR12_VR_CA 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR12_RESERVED_31_8 0x0 - Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. - PSU_DDR_PHY_MR12_VREF_CA 0xd + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR12_RSVD 0x0 - LPDDR4 Mode Register 12 - (OFFSET, MASK, VALUE) (0XFD0801B0, 0xFFFFFFFFU ,0x0000004DU) - RegMask = (DDR_PHY_MR12_RESERVED_31_8_MASK | DDR_PHY_MR12_RSVD_MASK | DDR_PHY_MR12_VR_CA_MASK | DDR_PHY_MR12_VREF_CA_MASK | 0 ); + * VREF_CA Range Select. + * PSU_DDR_PHY_MR12_VR_CA 0x1 - RegVal = ((0x00000000U << DDR_PHY_MR12_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR12_RSVD_SHIFT - | 0x00000001U << DDR_PHY_MR12_VR_CA_SHIFT - | 0x0000000DU << DDR_PHY_MR12_VREF_CA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR12_OFFSET ,0xFFFFFFFFU ,0x0000004DU); - /*############################################################################################################################ */ + * Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. + * PSU_DDR_PHY_MR12_VREF_CA 0xd - /*Register : MR13 @ 0XFD0801B4

      + * LPDDR4 Mode Register 12 + * (OFFSET, MASK, VALUE) (0XFD0801B0, 0xFFFFFFFFU ,0x0000004DU) + */ + PSU_Mask_Write(DDR_PHY_MR12_OFFSET, 0xFFFFFFFFU, 0x0000004DU); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR13_RESERVED_31_8 0x0 + /* + * Register : MR13 @ 0XFD0801B4 - Frequency Set Point Operation Mode - PSU_DDR_PHY_MR13_FSPOP 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR13_RESERVED_31_8 0x0 - Frequency Set Point Write Enable - PSU_DDR_PHY_MR13_FSPWR 0x0 + * Frequency Set Point Operation Mode + * PSU_DDR_PHY_MR13_FSPOP 0x0 - Data Mask Enable - PSU_DDR_PHY_MR13_DMD 0x0 + * Frequency Set Point Write Enable + * PSU_DDR_PHY_MR13_FSPWR 0x0 - Refresh Rate Option - PSU_DDR_PHY_MR13_RRO 0x0 + * Data Mask Enable + * PSU_DDR_PHY_MR13_DMD 0x0 - VREF Current Generator - PSU_DDR_PHY_MR13_VRCG 0x1 + * Refresh Rate Option + * PSU_DDR_PHY_MR13_RRO 0x0 - VREF Output - PSU_DDR_PHY_MR13_VRO 0x0 + * VREF Current Generator + * PSU_DDR_PHY_MR13_VRCG 0x1 - Read Preamble Training Mode - PSU_DDR_PHY_MR13_RPT 0x0 + * VREF Output + * PSU_DDR_PHY_MR13_VRO 0x0 - Command Bus Training - PSU_DDR_PHY_MR13_CBT 0x0 + * Read Preamble Training Mode + * PSU_DDR_PHY_MR13_RPT 0x0 - LPDDR4 Mode Register 13 - (OFFSET, MASK, VALUE) (0XFD0801B4, 0xFFFFFFFFU ,0x00000008U) - RegMask = (DDR_PHY_MR13_RESERVED_31_8_MASK | DDR_PHY_MR13_FSPOP_MASK | DDR_PHY_MR13_FSPWR_MASK | DDR_PHY_MR13_DMD_MASK | DDR_PHY_MR13_RRO_MASK | DDR_PHY_MR13_VRCG_MASK | DDR_PHY_MR13_VRO_MASK | DDR_PHY_MR13_RPT_MASK | DDR_PHY_MR13_CBT_MASK | 0 ); + * Command Bus Training + * PSU_DDR_PHY_MR13_CBT 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR13_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR13_FSPOP_SHIFT - | 0x00000000U << DDR_PHY_MR13_FSPWR_SHIFT - | 0x00000000U << DDR_PHY_MR13_DMD_SHIFT - | 0x00000000U << DDR_PHY_MR13_RRO_SHIFT - | 0x00000001U << DDR_PHY_MR13_VRCG_SHIFT - | 0x00000000U << DDR_PHY_MR13_VRO_SHIFT - | 0x00000000U << DDR_PHY_MR13_RPT_SHIFT - | 0x00000000U << DDR_PHY_MR13_CBT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR13_OFFSET ,0xFFFFFFFFU ,0x00000008U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 13 + * (OFFSET, MASK, VALUE) (0XFD0801B4, 0xFFFFFFFFU ,0x00000008U) + */ + PSU_Mask_Write(DDR_PHY_MR13_OFFSET, 0xFFFFFFFFU, 0x00000008U); +/*##################################################################### */ - /*Register : MR14 @ 0XFD0801B8

      + /* + * Register : MR14 @ 0XFD0801B8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR14_RESERVED_31_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR14_RESERVED_31_8 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR14_RSVD 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR14_RSVD 0x0 - VREFDQ Range Selects. - PSU_DDR_PHY_MR14_VR_DQ 0x1 + * VREFDQ Range Selects. + * PSU_DDR_PHY_MR14_VR_DQ 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR14_VREF_DQ 0xd + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR14_VREF_DQ 0xd - LPDDR4 Mode Register 14 - (OFFSET, MASK, VALUE) (0XFD0801B8, 0xFFFFFFFFU ,0x0000004DU) - RegMask = (DDR_PHY_MR14_RESERVED_31_8_MASK | DDR_PHY_MR14_RSVD_MASK | DDR_PHY_MR14_VR_DQ_MASK | DDR_PHY_MR14_VREF_DQ_MASK | 0 ); + * LPDDR4 Mode Register 14 + * (OFFSET, MASK, VALUE) (0XFD0801B8, 0xFFFFFFFFU ,0x0000004DU) + */ + PSU_Mask_Write(DDR_PHY_MR14_OFFSET, 0xFFFFFFFFU, 0x0000004DU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_MR14_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR14_RSVD_SHIFT - | 0x00000001U << DDR_PHY_MR14_VR_DQ_SHIFT - | 0x0000000DU << DDR_PHY_MR14_VREF_DQ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR14_OFFSET ,0xFFFFFFFFU ,0x0000004DU); - /*############################################################################################################################ */ + /* + * Register : MR22 @ 0XFD0801D8 - /*Register : MR22 @ 0XFD0801D8

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR22_RESERVED_31_8 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR22_RESERVED_31_8 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR22_RSVD 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR22_RSVD 0x0 + * CA ODT termination disable. + * PSU_DDR_PHY_MR22_ODTD_CA 0x0 - CA ODT termination disable. - PSU_DDR_PHY_MR22_ODTD_CA 0x0 + * ODT CS override. + * PSU_DDR_PHY_MR22_ODTE_CS 0x0 - ODT CS override. - PSU_DDR_PHY_MR22_ODTE_CS 0x0 + * ODT CK override. + * PSU_DDR_PHY_MR22_ODTE_CK 0x0 - ODT CK override. - PSU_DDR_PHY_MR22_ODTE_CK 0x0 + * Controller ODT value for VOH calibration. + * PSU_DDR_PHY_MR22_CODT 0x0 - Controller ODT value for VOH calibration. - PSU_DDR_PHY_MR22_CODT 0x0 + * LPDDR4 Mode Register 22 + * (OFFSET, MASK, VALUE) (0XFD0801D8, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR22_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - LPDDR4 Mode Register 22 - (OFFSET, MASK, VALUE) (0XFD0801D8, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR22_RESERVED_31_8_MASK | DDR_PHY_MR22_RSVD_MASK | DDR_PHY_MR22_ODTD_CA_MASK | DDR_PHY_MR22_ODTE_CS_MASK | DDR_PHY_MR22_ODTE_CK_MASK | DDR_PHY_MR22_CODT_MASK | 0 ); + /* + * Register : DTCR0 @ 0XFD080200 - RegVal = ((0x00000000U << DDR_PHY_MR22_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR22_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTD_CA_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTE_CS_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTE_CK_SHIFT - | 0x00000000U << DDR_PHY_MR22_CODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR22_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Refresh During Training + * PSU_DDR_PHY_DTCR0_RFSHDT 0x8 - /*Register : DTCR0 @ 0XFD080200

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_27_26 0x0 - Refresh During Training - PSU_DDR_PHY_DTCR0_RFSHDT 0x8 + * Data Training Debug Rank Select + * PSU_DDR_PHY_DTCR0_DTDRS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_27_26 0x0 + * Data Training with Early/Extended Gate + * PSU_DDR_PHY_DTCR0_DTEXG 0x0 - Data Training Debug Rank Select - PSU_DDR_PHY_DTCR0_DTDRS 0x0 + * Data Training Extended Write DQS + * PSU_DDR_PHY_DTCR0_DTEXD 0x0 - Data Training with Early/Extended Gate - PSU_DDR_PHY_DTCR0_DTEXG 0x0 + * Data Training Debug Step + * PSU_DDR_PHY_DTCR0_DTDSTP 0x0 - Data Training Extended Write DQS - PSU_DDR_PHY_DTCR0_DTEXD 0x0 + * Data Training Debug Enable + * PSU_DDR_PHY_DTCR0_DTDEN 0x0 - Data Training Debug Step - PSU_DDR_PHY_DTCR0_DTDSTP 0x0 + * Data Training Debug Byte Select + * PSU_DDR_PHY_DTCR0_DTDBS 0x0 - Data Training Debug Enable - PSU_DDR_PHY_DTCR0_DTDEN 0x0 + * Data Training read DBI deskewing configuration + * PSU_DDR_PHY_DTCR0_DTRDBITR 0x2 - Data Training Debug Byte Select - PSU_DDR_PHY_DTCR0_DTDBS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_13 0x0 - Data Training read DBI deskewing configuration - PSU_DDR_PHY_DTCR0_DTRDBITR 0x2 + * Data Training Write Bit Deskew Data Mask + * PSU_DDR_PHY_DTCR0_DTWBDDM 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_13 0x0 + * Refreshes Issued During Entry to Training + * PSU_DDR_PHY_DTCR0_RFSHEN 0x1 - Data Training Write Bit Deskew Data Mask - PSU_DDR_PHY_DTCR0_DTWBDDM 0x1 + * Data Training Compare Data + * PSU_DDR_PHY_DTCR0_DTCMPD 0x1 - Refreshes Issued During Entry to Training - PSU_DDR_PHY_DTCR0_RFSHEN 0x1 + * Data Training Using MPR + * PSU_DDR_PHY_DTCR0_DTMPR 0x1 - Data Training Compare Data - PSU_DDR_PHY_DTCR0_DTCMPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_5_4 0x0 - Data Training Using MPR - PSU_DDR_PHY_DTCR0_DTMPR 0x1 + * Data Training Repeat Number + * PSU_DDR_PHY_DTCR0_DTRPTN 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_5_4 0x0 + * Data Training Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080200, 0xFFFFFFFFU ,0x800091C7U) + */ + PSU_Mask_Write(DDR_PHY_DTCR0_OFFSET, 0xFFFFFFFFU, 0x800091C7U); +/*##################################################################### */ - Data Training Repeat Number - PSU_DDR_PHY_DTCR0_DTRPTN 0x7 + /* + * Register : DTCR1 @ 0XFD080204 - Data Training Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080200, 0xFFFFFFFFU ,0x800091C7U) - RegMask = (DDR_PHY_DTCR0_RFSHDT_MASK | DDR_PHY_DTCR0_RESERVED_27_26_MASK | DDR_PHY_DTCR0_DTDRS_MASK | DDR_PHY_DTCR0_DTEXG_MASK | DDR_PHY_DTCR0_DTEXD_MASK | DDR_PHY_DTCR0_DTDSTP_MASK | DDR_PHY_DTCR0_DTDEN_MASK | DDR_PHY_DTCR0_DTDBS_MASK | DDR_PHY_DTCR0_DTRDBITR_MASK | DDR_PHY_DTCR0_RESERVED_13_MASK | DDR_PHY_DTCR0_DTWBDDM_MASK | DDR_PHY_DTCR0_RFSHEN_MASK | DDR_PHY_DTCR0_DTCMPD_MASK | DDR_PHY_DTCR0_DTMPR_MASK | DDR_PHY_DTCR0_RESERVED_5_4_MASK | DDR_PHY_DTCR0_DTRPTN_MASK | 0 ); + * Rank Enable. + * PSU_DDR_PHY_DTCR1_RANKEN_RSVD 0x0 - RegVal = ((0x00000008U << DDR_PHY_DTCR0_RFSHDT_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_27_26_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDRS_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTEXG_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTEXD_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDSTP_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDBS_SHIFT - | 0x00000002U << DDR_PHY_DTCR0_DTRDBITR_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_13_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTWBDDM_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_RFSHEN_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTCMPD_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTMPR_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_5_4_SHIFT - | 0x00000007U << DDR_PHY_DTCR0_DTRPTN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTCR0_OFFSET ,0xFFFFFFFFU ,0x800091C7U); - /*############################################################################################################################ */ + * Rank Enable. + * PSU_DDR_PHY_DTCR1_RANKEN 0x1 - /*Register : DTCR1 @ 0XFD080204

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_15_14 0x0 - Rank Enable. - PSU_DDR_PHY_DTCR1_RANKEN_RSVD 0x0 + * Data Training Rank + * PSU_DDR_PHY_DTCR1_DTRANK 0x0 - Rank Enable. - PSU_DDR_PHY_DTCR1_RANKEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_11 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_15_14 0x0 + * Read Leveling Gate Sampling Difference + * PSU_DDR_PHY_DTCR1_RDLVLGDIFF 0x2 - Data Training Rank - PSU_DDR_PHY_DTCR1_DTRANK 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_7 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_11 0x0 + * Read Leveling Gate Shift + * PSU_DDR_PHY_DTCR1_RDLVLGS 0x3 - Read Leveling Gate Sampling Difference - PSU_DDR_PHY_DTCR1_RDLVLGDIFF 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_3 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_7 0x0 + * Read Preamble Training enable + * PSU_DDR_PHY_DTCR1_RDPRMVL_TRN 0x1 - Read Leveling Gate Shift - PSU_DDR_PHY_DTCR1_RDLVLGS 0x3 + * Read Leveling Enable + * PSU_DDR_PHY_DTCR1_RDLVLEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_3 0x0 + * Basic Gate Training Enable + * PSU_DDR_PHY_DTCR1_BSTEN 0x0 - Read Preamble Training enable - PSU_DDR_PHY_DTCR1_RDPRMVL_TRN 0x1 + * Data Training Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080204, 0xFFFFFFFFU ,0x00010236U) + */ + PSU_Mask_Write(DDR_PHY_DTCR1_OFFSET, 0xFFFFFFFFU, 0x00010236U); +/*##################################################################### */ - Read Leveling Enable - PSU_DDR_PHY_DTCR1_RDLVLEN 0x1 + /* + * Register : CATR0 @ 0XFD080240 - Basic Gate Training Enable - PSU_DDR_PHY_DTCR1_BSTEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_CATR0_RESERVED_31_21 0x0 - Data Training Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080204, 0xFFFFFFFFU ,0x00010236U) - RegMask = (DDR_PHY_DTCR1_RANKEN_RSVD_MASK | DDR_PHY_DTCR1_RANKEN_MASK | DDR_PHY_DTCR1_RESERVED_15_14_MASK | DDR_PHY_DTCR1_DTRANK_MASK | DDR_PHY_DTCR1_RESERVED_11_MASK | DDR_PHY_DTCR1_RDLVLGDIFF_MASK | DDR_PHY_DTCR1_RESERVED_7_MASK | DDR_PHY_DTCR1_RDLVLGS_MASK | DDR_PHY_DTCR1_RESERVED_3_MASK | DDR_PHY_DTCR1_RDPRMVL_TRN_MASK | DDR_PHY_DTCR1_RDLVLEN_MASK | DDR_PHY_DTCR1_BSTEN_MASK | 0 ); + * Minimum time (in terms of number of dram clocks) between two consectuve + * CA calibration command + * PSU_DDR_PHY_CATR0_CACD 0x14 - RegVal = ((0x00000000U << DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RANKEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_DTRANK_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_11_SHIFT - | 0x00000002U << DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_7_SHIFT - | 0x00000003U << DDR_PHY_DTCR1_RDLVLGS_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_3_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RDLVLEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_BSTEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTCR1_OFFSET ,0xFFFFFFFFU ,0x00010236U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_CATR0_RESERVED_15_13 0x0 - /*Register : CATR0 @ 0XFD080240

      + * Minimum time (in terms of number of dram clocks) PUB should wait before + * sampling the CA response after Calibration command has been sent to the + * memory + * PSU_DDR_PHY_CATR0_CAADR 0x10 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_CATR0_RESERVED_31_21 0x0 + * CA_1 Response Byte Lane 1 + * PSU_DDR_PHY_CATR0_CA1BYTE1 0x5 - Minimum time (in terms of number of dram clocks) between two consectuve CA calibration command - PSU_DDR_PHY_CATR0_CACD 0x14 + * CA_1 Response Byte Lane 0 + * PSU_DDR_PHY_CATR0_CA1BYTE0 0x4 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_CATR0_RESERVED_15_13 0x0 + * CA Training Register 0 + * (OFFSET, MASK, VALUE) (0XFD080240, 0xFFFFFFFFU ,0x00141054U) + */ + PSU_Mask_Write(DDR_PHY_CATR0_OFFSET, 0xFFFFFFFFU, 0x00141054U); +/*##################################################################### */ - Minimum time (in terms of number of dram clocks) PUB should wait before sampling the CA response after Calibration command ha - been sent to the memory - PSU_DDR_PHY_CATR0_CAADR 0x10 + /* + * Register : DQSDR0 @ 0XFD080250 - CA_1 Response Byte Lane 1 - PSU_DDR_PHY_CATR0_CA1BYTE1 0x5 + * Number of delay taps by which the DQS gate LCDL will be updated when DQS + * drift is detected + * PSU_DDR_PHY_DQSDR0_DFTDLY 0x0 - CA_1 Response Byte Lane 0 - PSU_DDR_PHY_CATR0_CA1BYTE0 0x4 - - CA Training Register 0 - (OFFSET, MASK, VALUE) (0XFD080240, 0xFFFFFFFFU ,0x00141054U) - RegMask = (DDR_PHY_CATR0_RESERVED_31_21_MASK | DDR_PHY_CATR0_CACD_MASK | DDR_PHY_CATR0_RESERVED_15_13_MASK | DDR_PHY_CATR0_CAADR_MASK | DDR_PHY_CATR0_CA1BYTE1_MASK | DDR_PHY_CATR0_CA1BYTE0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_CATR0_RESERVED_31_21_SHIFT - | 0x00000014U << DDR_PHY_CATR0_CACD_SHIFT - | 0x00000000U << DDR_PHY_CATR0_RESERVED_15_13_SHIFT - | 0x00000010U << DDR_PHY_CATR0_CAADR_SHIFT - | 0x00000005U << DDR_PHY_CATR0_CA1BYTE1_SHIFT - | 0x00000004U << DDR_PHY_CATR0_CA1BYTE0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_CATR0_OFFSET ,0xFFFFFFFFU ,0x00141054U); - /*############################################################################################################################ */ + * Drift Impedance Update + * PSU_DDR_PHY_DQSDR0_DFTZQUP 0x0 - /*Register : BISTLSR @ 0XFD080414

      + * Drift DDL Update + * PSU_DDR_PHY_DQSDR0_DFTDDLUP 0x0 - LFSR seed for pseudo-random BIST patterns - PSU_DDR_PHY_BISTLSR_SEED 0x12341000 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DQSDR0_RESERVED_25_22 0x0 - BIST LFSR Seed Register - (OFFSET, MASK, VALUE) (0XFD080414, 0xFFFFFFFFU ,0x12341000U) - RegMask = (DDR_PHY_BISTLSR_SEED_MASK | 0 ); + * Drift Read Spacing + * PSU_DDR_PHY_DQSDR0_DFTRDSPC 0x0 - RegVal = ((0x12341000U << DDR_PHY_BISTLSR_SEED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_BISTLSR_OFFSET ,0xFFFFFFFFU ,0x12341000U); - /*############################################################################################################################ */ + * Drift Back-to-Back Reads + * PSU_DDR_PHY_DQSDR0_DFTB2BRD 0x8 - /*Register : RIOCR5 @ 0XFD0804F4

      + * Drift Idle Reads + * PSU_DDR_PHY_DQSDR0_DFTIDLRD 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RIOCR5_RESERVED_31_16 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DQSDR0_RESERVED_11_8 0x0 - Reserved. Return zeros on reads. - PSU_DDR_PHY_RIOCR5_ODTOEMODE_RSVD 0x0 + * Gate Pulse Enable + * PSU_DDR_PHY_DQSDR0_DFTGPULSE 0x0 - SDRAM On-die Termination Output Enable (OE) Mode Selection. - PSU_DDR_PHY_RIOCR5_ODTOEMODE 0x5 + * DQS Drift Update Mode + * PSU_DDR_PHY_DQSDR0_DFTUPMODE 0x0 - Rank I/O Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD0804F4, 0xFFFFFFFFU ,0x00000005U) - RegMask = (DDR_PHY_RIOCR5_RESERVED_31_16_MASK | DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK | DDR_PHY_RIOCR5_ODTOEMODE_MASK | 0 ); + * DQS Drift Detection Mode + * PSU_DDR_PHY_DQSDR0_DFTDTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT - | 0x00000005U << DDR_PHY_RIOCR5_ODTOEMODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RIOCR5_OFFSET ,0xFFFFFFFFU ,0x00000005U); - /*############################################################################################################################ */ + * DQS Drift Detection Enable + * PSU_DDR_PHY_DQSDR0_DFTDTEN 0x0 - /*Register : ACIOCR0 @ 0XFD080500

      + * DQS Drift Register 0 + * (OFFSET, MASK, VALUE) (0XFD080250, 0xFFFFFFFFU ,0x00088000U) + */ + PSU_Mask_Write(DDR_PHY_DQSDR0_OFFSET, 0xFFFFFFFFU, 0x00088000U); +/*##################################################################### */ - Address/Command Slew Rate (D3F I/O Only) - PSU_DDR_PHY_ACIOCR0_ACSR 0x0 + /* + * Register : BISTLSR @ 0XFD080414 - SDRAM Reset I/O Mode - PSU_DDR_PHY_ACIOCR0_RSTIOM 0x1 + * LFSR seed for pseudo-random BIST patterns + * PSU_DDR_PHY_BISTLSR_SEED 0x12341000 - SDRAM Reset Power Down Receiver - PSU_DDR_PHY_ACIOCR0_RSTPDR 0x1 + * BIST LFSR Seed Register + * (OFFSET, MASK, VALUE) (0XFD080414, 0xFFFFFFFFU ,0x12341000U) + */ + PSU_Mask_Write(DDR_PHY_BISTLSR_OFFSET, 0xFFFFFFFFU, 0x12341000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_27 0x0 + /* + * Register : RIOCR5 @ 0XFD0804F4 - SDRAM Reset On-Die Termination - PSU_DDR_PHY_ACIOCR0_RSTODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RIOCR5_RESERVED_31_16 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_25_10 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_RIOCR5_ODTOEMODE_RSVD 0x0 - CK Duty Cycle Correction - PSU_DDR_PHY_ACIOCR0_CKDCC 0x0 + * SDRAM On-die Termination Output Enable (OE) Mode Selection. + * PSU_DDR_PHY_RIOCR5_ODTOEMODE 0x5 - AC Power Down Receiver Mode - PSU_DDR_PHY_ACIOCR0_ACPDRMODE 0x2 + * Rank I/O Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD0804F4, 0xFFFFFFFFU ,0x00000005U) + */ + PSU_Mask_Write(DDR_PHY_RIOCR5_OFFSET, 0xFFFFFFFFU, 0x00000005U); +/*##################################################################### */ - AC On-die Termination Mode - PSU_DDR_PHY_ACIOCR0_ACODTMODE 0x2 + /* + * Register : ACIOCR0 @ 0XFD080500 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_1 0x0 + * Address/Command Slew Rate (D3F I/O Only) + * PSU_DDR_PHY_ACIOCR0_ACSR 0x0 - Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. - PSU_DDR_PHY_ACIOCR0_ACRANKCLKSEL 0x0 + * SDRAM Reset I/O Mode + * PSU_DDR_PHY_ACIOCR0_RSTIOM 0x1 - AC I/O Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080500, 0xFFFFFFFFU ,0x30000028U) - RegMask = (DDR_PHY_ACIOCR0_ACSR_MASK | DDR_PHY_ACIOCR0_RSTIOM_MASK | DDR_PHY_ACIOCR0_RSTPDR_MASK | DDR_PHY_ACIOCR0_RESERVED_27_MASK | DDR_PHY_ACIOCR0_RSTODT_MASK | DDR_PHY_ACIOCR0_RESERVED_25_10_MASK | DDR_PHY_ACIOCR0_CKDCC_MASK | DDR_PHY_ACIOCR0_ACPDRMODE_MASK | DDR_PHY_ACIOCR0_ACODTMODE_MASK | DDR_PHY_ACIOCR0_RESERVED_1_MASK | DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK | 0 ); + * SDRAM Reset Power Down Receiver + * PSU_DDR_PHY_ACIOCR0_RSTPDR 0x1 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR0_ACSR_SHIFT - | 0x00000001U << DDR_PHY_ACIOCR0_RSTIOM_SHIFT - | 0x00000001U << DDR_PHY_ACIOCR0_RSTPDR_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_27_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RSTODT_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_CKDCC_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR0_ACODTMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR0_OFFSET ,0xFFFFFFFFU ,0x30000028U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_27 0x0 - /*Register : ACIOCR2 @ 0XFD080508

      + * SDRAM Reset On-Die Termination + * PSU_DDR_PHY_ACIOCR0_RSTODT 0x0 - Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL slice - PSU_DDR_PHY_ACIOCR2_CLKGENCLKGATE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_25_10 0x0 - Clock gating for Output Enable D slices [0] - PSU_DDR_PHY_ACIOCR2_ACOECLKGATE0 0x0 + * CK Duty Cycle Correction + * PSU_DDR_PHY_ACIOCR0_CKDCC 0x0 - Clock gating for Power Down Receiver D slices [0] - PSU_DDR_PHY_ACIOCR2_ACPDRCLKGATE0 0x0 + * AC Power Down Receiver Mode + * PSU_DDR_PHY_ACIOCR0_ACPDRMODE 0x2 - Clock gating for Termination Enable D slices [0] - PSU_DDR_PHY_ACIOCR2_ACTECLKGATE0 0x0 + * AC On-die Termination Mode + * PSU_DDR_PHY_ACIOCR0_ACODTMODE 0x2 - Clock gating for CK# D slices [1:0] - PSU_DDR_PHY_ACIOCR2_CKNCLKGATE0 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_1 0x0 - Clock gating for CK D slices [1:0] - PSU_DDR_PHY_ACIOCR2_CKCLKGATE0 0x2 + * Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. + * PSU_DDR_PHY_ACIOCR0_ACRANKCLKSEL 0x0 - Clock gating for AC D slices [23:0] - PSU_DDR_PHY_ACIOCR2_ACCLKGATE0 0x0 + * AC I/O Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080500, 0xFFFFFFFFU ,0x30000028U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR0_OFFSET, 0xFFFFFFFFU, 0x30000028U); +/*##################################################################### */ - AC I/O Configuration Register 2 - (OFFSET, MASK, VALUE) (0XFD080508, 0xFFFFFFFFU ,0x0A000000U) - RegMask = (DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK | DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK | DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK | DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK | DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK | DDR_PHY_ACIOCR2_CKCLKGATE0_MASK | DDR_PHY_ACIOCR2_ACCLKGATE0_MASK | 0 ); + /* + * Register : ACIOCR2 @ 0XFD080508 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR2_OFFSET ,0xFFFFFFFFU ,0x0A000000U); - /*############################################################################################################################ */ + * Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL + * slice + * PSU_DDR_PHY_ACIOCR2_CLKGENCLKGATE 0x0 - /*Register : ACIOCR3 @ 0XFD08050C

      + * Clock gating for Output Enable D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACOECLKGATE0 0x0 - SDRAM Parity Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_PAROEMODE 0x0 + * Clock gating for Power Down Receiver D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACPDRCLKGATE0 0x0 - SDRAM Bank Group Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_BGOEMODE 0x0 + * Clock gating for Termination Enable D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACTECLKGATE0 0x0 - SDRAM Bank Address Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_BAOEMODE 0x0 + * Clock gating for CK# D slices [1:0] + * PSU_DDR_PHY_ACIOCR2_CKNCLKGATE0 0x2 - SDRAM A[17] Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_A17OEMODE 0x0 + * Clock gating for CK D slices [1:0] + * PSU_DDR_PHY_ACIOCR2_CKCLKGATE0 0x2 - SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_A16OEMODE 0x0 + * Clock gating for AC D slices [23:0] + * PSU_DDR_PHY_ACIOCR2_ACCLKGATE0 0x0 - SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) - PSU_DDR_PHY_ACIOCR3_ACTOEMODE 0x0 + * AC I/O Configuration Register 2 + * (OFFSET, MASK, VALUE) (0XFD080508, 0xFFFFFFFFU ,0x0A000000U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR2_OFFSET, 0xFFFFFFFFU, 0x0A000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR3_RESERVED_15_8 0x0 + /* + * Register : ACIOCR3 @ 0XFD08050C - Reserved. Return zeros on reads. - PSU_DDR_PHY_ACIOCR3_CKOEMODE_RSVD 0x0 + * SDRAM Parity Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_PAROEMODE 0x0 - SDRAM CK Output Enable (OE) Mode Selection. - PSU_DDR_PHY_ACIOCR3_CKOEMODE 0x9 + * SDRAM Bank Group Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_BGOEMODE 0x0 - AC I/O Configuration Register 3 - (OFFSET, MASK, VALUE) (0XFD08050C, 0xFFFFFFFFU ,0x00000009U) - RegMask = (DDR_PHY_ACIOCR3_PAROEMODE_MASK | DDR_PHY_ACIOCR3_BGOEMODE_MASK | DDR_PHY_ACIOCR3_BAOEMODE_MASK | DDR_PHY_ACIOCR3_A17OEMODE_MASK | DDR_PHY_ACIOCR3_A16OEMODE_MASK | DDR_PHY_ACIOCR3_ACTOEMODE_MASK | DDR_PHY_ACIOCR3_RESERVED_15_8_MASK | DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK | DDR_PHY_ACIOCR3_CKOEMODE_MASK | 0 ); + * SDRAM Bank Address Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_BAOEMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR3_PAROEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_BGOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_BAOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_A17OEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_A16OEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT - | 0x00000009U << DDR_PHY_ACIOCR3_CKOEMODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR3_OFFSET ,0xFFFFFFFFU ,0x00000009U); - /*############################################################################################################################ */ + * SDRAM A[17] Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_A17OEMODE 0x0 - /*Register : ACIOCR4 @ 0XFD080510

      + * SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_A16OEMODE 0x0 - Clock gating for AC LB slices and loopback read valid slices - PSU_DDR_PHY_ACIOCR4_LBCLKGATE 0x0 + * SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) + * PSU_DDR_PHY_ACIOCR3_ACTOEMODE 0x0 - Clock gating for Output Enable D slices [1] - PSU_DDR_PHY_ACIOCR4_ACOECLKGATE1 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR3_RESERVED_15_8 0x0 - Clock gating for Power Down Receiver D slices [1] - PSU_DDR_PHY_ACIOCR4_ACPDRCLKGATE1 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ACIOCR3_CKOEMODE_RSVD 0x0 - Clock gating for Termination Enable D slices [1] - PSU_DDR_PHY_ACIOCR4_ACTECLKGATE1 0x0 + * SDRAM CK Output Enable (OE) Mode Selection. + * PSU_DDR_PHY_ACIOCR3_CKOEMODE 0x9 - Clock gating for CK# D slices [3:2] - PSU_DDR_PHY_ACIOCR4_CKNCLKGATE1 0x2 + * AC I/O Configuration Register 3 + * (OFFSET, MASK, VALUE) (0XFD08050C, 0xFFFFFFFFU ,0x00000009U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR3_OFFSET, 0xFFFFFFFFU, 0x00000009U); +/*##################################################################### */ - Clock gating for CK D slices [3:2] - PSU_DDR_PHY_ACIOCR4_CKCLKGATE1 0x2 + /* + * Register : ACIOCR4 @ 0XFD080510 - Clock gating for AC D slices [47:24] - PSU_DDR_PHY_ACIOCR4_ACCLKGATE1 0x0 + * Clock gating for AC LB slices and loopback read valid slices + * PSU_DDR_PHY_ACIOCR4_LBCLKGATE 0x0 - AC I/O Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080510, 0xFFFFFFFFU ,0x0A000000U) - RegMask = (DDR_PHY_ACIOCR4_LBCLKGATE_MASK | DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK | DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK | DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK | DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK | DDR_PHY_ACIOCR4_CKCLKGATE1_MASK | DDR_PHY_ACIOCR4_ACCLKGATE1_MASK | 0 ); + * Clock gating for Output Enable D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACOECLKGATE1 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR4_OFFSET ,0xFFFFFFFFU ,0x0A000000U); - /*############################################################################################################################ */ + * Clock gating for Power Down Receiver D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACPDRCLKGATE1 0x0 - /*Register : IOVCR0 @ 0XFD080520

      + * Clock gating for Termination Enable D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACTECLKGATE1 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_IOVCR0_RESERVED_31_29 0x0 + * Clock gating for CK# D slices [3:2] + * PSU_DDR_PHY_ACIOCR4_CKNCLKGATE1 0x2 - Address/command lane VREF Pad Enable - PSU_DDR_PHY_IOVCR0_ACREFPEN 0x0 + * Clock gating for CK D slices [3:2] + * PSU_DDR_PHY_ACIOCR4_CKCLKGATE1 0x2 - Address/command lane Internal VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFEEN 0x0 + * Clock gating for AC D slices [47:24] + * PSU_DDR_PHY_ACIOCR4_ACCLKGATE1 0x0 - Address/command lane Single-End VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFSEN 0x1 + * AC I/O Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080510, 0xFFFFFFFFU ,0x0A000000U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR4_OFFSET, 0xFFFFFFFFU, 0x0A000000U); +/*##################################################################### */ - Address/command lane Internal VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFIEN 0x1 + /* + * Register : IOVCR0 @ 0XFD080520 - External VREF generato REFSEL range select - PSU_DDR_PHY_IOVCR0_ACREFESELRANGE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_IOVCR0_RESERVED_31_29 0x0 - Address/command lane External VREF Select - PSU_DDR_PHY_IOVCR0_ACREFESEL 0x0 + * Address/command lane VREF Pad Enable + * PSU_DDR_PHY_IOVCR0_ACREFPEN 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_IOVCR0_ACREFSSELRANGE 0x1 + * Address/command lane Internal VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFEEN 0x0 - Address/command lane Single-End VREF Select - PSU_DDR_PHY_IOVCR0_ACREFSSEL 0x30 + * Address/command lane Single-End VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFSEN 0x1 - Internal VREF generator REFSEL ragne select - PSU_DDR_PHY_IOVCR0_ACVREFISELRANGE 0x1 + * Address/command lane Internal VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFIEN 0x1 - REFSEL Control for internal AC IOs - PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x30 + * External VREF generato REFSEL range select + * PSU_DDR_PHY_IOVCR0_ACREFESELRANGE 0x0 - IO VREF Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0B0U) - RegMask = (DDR_PHY_IOVCR0_RESERVED_31_29_MASK | DDR_PHY_IOVCR0_ACREFPEN_MASK | DDR_PHY_IOVCR0_ACREFEEN_MASK | DDR_PHY_IOVCR0_ACREFSEN_MASK | DDR_PHY_IOVCR0_ACREFIEN_MASK | DDR_PHY_IOVCR0_ACREFESELRANGE_MASK | DDR_PHY_IOVCR0_ACREFESEL_MASK | DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK | DDR_PHY_IOVCR0_ACREFSSEL_MASK | DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK | DDR_PHY_IOVCR0_ACVREFISEL_MASK | 0 ); + * Address/command lane External VREF Select + * PSU_DDR_PHY_IOVCR0_ACREFESEL 0x0 - RegVal = ((0x00000000U << DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFPEN_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFEEN_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFSEN_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFIEN_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFESEL_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_IOVCR0_ACREFSSEL_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT - | 0x00000030U << DDR_PHY_IOVCR0_ACVREFISEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_IOVCR0_OFFSET ,0xFFFFFFFFU ,0x0300B0B0U); - /*############################################################################################################################ */ + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_IOVCR0_ACREFSSELRANGE 0x1 - /*Register : VTCR0 @ 0XFD080528

      + * Address/command lane Single-End VREF Select + * PSU_DDR_PHY_IOVCR0_ACREFSSEL 0x30 - Number of ctl_clk required to meet (> 150ns) timing requirements during DRAM DQ VREF training - PSU_DDR_PHY_VTCR0_TVREF 0x7 + * Internal VREF generator REFSEL ragne select + * PSU_DDR_PHY_IOVCR0_ACVREFISELRANGE 0x1 - DRM DQ VREF training Enable - PSU_DDR_PHY_VTCR0_DVEN 0x1 + * REFSEL Control for internal AC IOs + * PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x4e - Per Device Addressability Enable - PSU_DDR_PHY_VTCR0_PDAEN 0x1 + * IO VREF Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0CEU) + */ + PSU_Mask_Write(DDR_PHY_IOVCR0_OFFSET, 0xFFFFFFFFU, 0x0300B0CEU); +/*##################################################################### */ - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR0_RESERVED_26 0x0 + /* + * Register : VTCR0 @ 0XFD080528 - VREF Word Count - PSU_DDR_PHY_VTCR0_VWCR 0x4 + * Number of ctl_clk required to meet (> 150ns) timing requirements during + * DRAM DQ VREF training + * PSU_DDR_PHY_VTCR0_TVREF 0x7 - DRAM DQ VREF step size used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVSS 0x0 + * DRM DQ VREF training Enable + * PSU_DDR_PHY_VTCR0_DVEN 0x1 - Maximum VREF limit value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVMAX 0x32 + * Per Device Addressability Enable + * PSU_DDR_PHY_VTCR0_PDAEN 0x1 - Minimum VREF limit value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVMIN 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR0_RESERVED_26 0x0 - Initial DRAM DQ VREF value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVINIT 0x19 + * VREF Word Count + * PSU_DDR_PHY_VTCR0_VWCR 0x4 - VREF Training Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080528, 0xFFFFFFFFU ,0xF9032019U) - RegMask = (DDR_PHY_VTCR0_TVREF_MASK | DDR_PHY_VTCR0_DVEN_MASK | DDR_PHY_VTCR0_PDAEN_MASK | DDR_PHY_VTCR0_RESERVED_26_MASK | DDR_PHY_VTCR0_VWCR_MASK | DDR_PHY_VTCR0_DVSS_MASK | DDR_PHY_VTCR0_DVMAX_MASK | DDR_PHY_VTCR0_DVMIN_MASK | DDR_PHY_VTCR0_DVINIT_MASK | 0 ); + * DRAM DQ VREF step size used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVSS 0x0 - RegVal = ((0x00000007U << DDR_PHY_VTCR0_TVREF_SHIFT - | 0x00000001U << DDR_PHY_VTCR0_DVEN_SHIFT - | 0x00000001U << DDR_PHY_VTCR0_PDAEN_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_RESERVED_26_SHIFT - | 0x00000004U << DDR_PHY_VTCR0_VWCR_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_DVSS_SHIFT - | 0x00000032U << DDR_PHY_VTCR0_DVMAX_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_DVMIN_SHIFT - | 0x00000019U << DDR_PHY_VTCR0_DVINIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_VTCR0_OFFSET ,0xFFFFFFFFU ,0xF9032019U); - /*############################################################################################################################ */ + * Maximum VREF limit value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVMAX 0x32 - /*Register : VTCR1 @ 0XFD08052C

      + * Minimum VREF limit value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVMIN 0x0 - Host VREF step size used during VREF training. The register value of N indicates step size of (N+1) - PSU_DDR_PHY_VTCR1_HVSS 0x0 + * Initial DRAM DQ VREF value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVINIT 0x19 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_27 0x0 + * VREF Training Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080528, 0xFFFFFFFFU ,0xF9032019U) + */ + PSU_Mask_Write(DDR_PHY_VTCR0_OFFSET, 0xFFFFFFFFU, 0xF9032019U); +/*##################################################################### */ - Maximum VREF limit value used during DRAM VREF training. - PSU_DDR_PHY_VTCR1_HVMAX 0x7f + /* + * Register : VTCR1 @ 0XFD08052C - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_19 0x0 + * Host VREF step size used during VREF training. The register value of N i + * ndicates step size of (N+1) + * PSU_DDR_PHY_VTCR1_HVSS 0x0 - Minimum VREF limit value used during DRAM VREF training. - PSU_DDR_PHY_VTCR1_HVMIN 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_27 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_11 0x0 + * Maximum VREF limit value used during DRAM VREF training. + * PSU_DDR_PHY_VTCR1_HVMAX 0x7f - Static Host Vref Rank Value - PSU_DDR_PHY_VTCR1_SHRNK 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_19 0x0 - Static Host Vref Rank Enable - PSU_DDR_PHY_VTCR1_SHREN 0x1 + * Minimum VREF limit value used during DRAM VREF training. + * PSU_DDR_PHY_VTCR1_HVMIN 0x0 - Number of ctl_clk required to meet (> 200ns) VREF Settling timing requirements during Host IO VREF training - PSU_DDR_PHY_VTCR1_TVREFIO 0x7 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_11 0x0 - Eye LCDL Offset value for VREF training - PSU_DDR_PHY_VTCR1_EOFF 0x0 + * Static Host Vref Rank Value + * PSU_DDR_PHY_VTCR1_SHRNK 0x0 - Number of LCDL Eye points for which VREF training is repeated - PSU_DDR_PHY_VTCR1_ENUM 0x0 + * Static Host Vref Rank Enable + * PSU_DDR_PHY_VTCR1_SHREN 0x1 - HOST (IO) internal VREF training Enable - PSU_DDR_PHY_VTCR1_HVEN 0x1 + * Number of ctl_clk required to meet (> 200ns) VREF Settling timing requir + * ements during Host IO VREF training + * PSU_DDR_PHY_VTCR1_TVREFIO 0x7 - Host IO Type Control - PSU_DDR_PHY_VTCR1_HVIO 0x1 + * Eye LCDL Offset value for VREF training + * PSU_DDR_PHY_VTCR1_EOFF 0x0 - VREF Training Control Register 1 - (OFFSET, MASK, VALUE) (0XFD08052C, 0xFFFFFFFFU ,0x07F001E3U) - RegMask = (DDR_PHY_VTCR1_HVSS_MASK | DDR_PHY_VTCR1_RESERVED_27_MASK | DDR_PHY_VTCR1_HVMAX_MASK | DDR_PHY_VTCR1_RESERVED_19_MASK | DDR_PHY_VTCR1_HVMIN_MASK | DDR_PHY_VTCR1_RESERVED_11_MASK | DDR_PHY_VTCR1_SHRNK_MASK | DDR_PHY_VTCR1_SHREN_MASK | DDR_PHY_VTCR1_TVREFIO_MASK | DDR_PHY_VTCR1_EOFF_MASK | DDR_PHY_VTCR1_ENUM_MASK | DDR_PHY_VTCR1_HVEN_MASK | DDR_PHY_VTCR1_HVIO_MASK | 0 ); + * Number of LCDL Eye points for which VREF training is repeated + * PSU_DDR_PHY_VTCR1_ENUM 0x0 - RegVal = ((0x00000000U << DDR_PHY_VTCR1_HVSS_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_27_SHIFT - | 0x0000007FU << DDR_PHY_VTCR1_HVMAX_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_19_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_HVMIN_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_11_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_SHRNK_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_SHREN_SHIFT - | 0x00000007U << DDR_PHY_VTCR1_TVREFIO_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_EOFF_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_ENUM_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_HVEN_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_HVIO_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_VTCR1_OFFSET ,0xFFFFFFFFU ,0x07F001E3U); - /*############################################################################################################################ */ + * HOST (IO) internal VREF training Enable + * PSU_DDR_PHY_VTCR1_HVEN 0x1 - /*Register : ACBDLR1 @ 0XFD080544

      + * Host IO Type Control + * PSU_DDR_PHY_VTCR1_HVIO 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_31_30 0x0 + * VREF Training Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD08052C, 0xFFFFFFFFU ,0x07F001E3U) + */ + PSU_Mask_Write(DDR_PHY_VTCR1_OFFSET, 0xFFFFFFFFU, 0x07F001E3U); +/*##################################################################### */ - Delay select for the BDL on Parity. - PSU_DDR_PHY_ACBDLR1_PARBD 0x0 + /* + * Register : ACBDLR1 @ 0XFD080544 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_31_30 0x0 - Delay select for the BDL on Address A[16]. In DDR3 mode this pin is connected to WE. - PSU_DDR_PHY_ACBDLR1_A16BD 0x0 + * Delay select for the BDL on Parity. + * PSU_DDR_PHY_ACBDLR1_PARBD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[17]. When not in DDR4 modemode this pin is connected to CAS. - PSU_DDR_PHY_ACBDLR1_A17BD 0x0 + * Delay select for the BDL on Address A[16]. In DDR3 mode this pin is conn + * ected to WE. + * PSU_DDR_PHY_ACBDLR1_A16BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_15_14 0x0 - Delay select for the BDL on ACTN. - PSU_DDR_PHY_ACBDLR1_ACTBD 0x0 + * Delay select for the BDL on Address A[17]. When not in DDR4 modemode thi + * s pin is connected to CAS. + * PSU_DDR_PHY_ACBDLR1_A17BD 0x0 - AC Bit Delay Line Register 1 - (OFFSET, MASK, VALUE) (0XFD080544, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR1_RESERVED_31_30_MASK | DDR_PHY_ACBDLR1_PARBD_MASK | DDR_PHY_ACBDLR1_RESERVED_23_22_MASK | DDR_PHY_ACBDLR1_A16BD_MASK | DDR_PHY_ACBDLR1_RESERVED_15_14_MASK | DDR_PHY_ACBDLR1_A17BD_MASK | DDR_PHY_ACBDLR1_RESERVED_7_6_MASK | DDR_PHY_ACBDLR1_ACTBD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_7_6 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_PARBD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_A16BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_A17BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_ACTBD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR1_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Delay select for the BDL on ACTN. + * PSU_DDR_PHY_ACBDLR1_ACTBD 0x0 - /*Register : ACBDLR2 @ 0XFD080548

      + * AC Bit Delay Line Register 1 + * (OFFSET, MASK, VALUE) (0XFD080544, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR1_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_31_30 0x0 + /* + * Register : ACBDLR2 @ 0XFD080548 - Delay select for the BDL on BG[1]. - PSU_DDR_PHY_ACBDLR2_BG1BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_23_22 0x0 + * Delay select for the BDL on BG[1]. + * PSU_DDR_PHY_ACBDLR2_BG1BD 0x0 - Delay select for the BDL on BG[0]. - PSU_DDR_PHY_ACBDLR2_BG0BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_23_22 0x0 - Reser.ved Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_15_14 0x0 + * Delay select for the BDL on BG[0]. + * PSU_DDR_PHY_ACBDLR2_BG0BD 0x0 - Delay select for the BDL on BA[1]. - PSU_DDR_PHY_ACBDLR2_BA1BD 0x0 + * Reser.ved Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_7_6 0x0 + * Delay select for the BDL on BA[1]. + * PSU_DDR_PHY_ACBDLR2_BA1BD 0x0 - Delay select for the BDL on BA[0]. - PSU_DDR_PHY_ACBDLR2_BA0BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_7_6 0x0 - AC Bit Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080548, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR2_RESERVED_31_30_MASK | DDR_PHY_ACBDLR2_BG1BD_MASK | DDR_PHY_ACBDLR2_RESERVED_23_22_MASK | DDR_PHY_ACBDLR2_BG0BD_MASK | DDR_PHY_ACBDLR2_RESERVED_15_14_MASK | DDR_PHY_ACBDLR2_BA1BD_MASK | DDR_PHY_ACBDLR2_RESERVED_7_6_MASK | DDR_PHY_ACBDLR2_BA0BD_MASK | 0 ); + * Delay select for the BDL on BA[0]. + * PSU_DDR_PHY_ACBDLR2_BA0BD 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BG1BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BG0BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BA1BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BA0BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * AC Bit Delay Line Register 2 + * (OFFSET, MASK, VALUE) (0XFD080548, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR2_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - /*Register : ACBDLR6 @ 0XFD080558

      + /* + * Register : ACBDLR6 @ 0XFD080558 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_31_30 0x0 - Delay select for the BDL on Address A[3]. - PSU_DDR_PHY_ACBDLR6_A03BD 0x0 + * Delay select for the BDL on Address A[3]. + * PSU_DDR_PHY_ACBDLR6_A03BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[2]. - PSU_DDR_PHY_ACBDLR6_A02BD 0x0 + * Delay select for the BDL on Address A[2]. + * PSU_DDR_PHY_ACBDLR6_A02BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_15_14 0x0 - Delay select for the BDL on Address A[1]. - PSU_DDR_PHY_ACBDLR6_A01BD 0x0 + * Delay select for the BDL on Address A[1]. + * PSU_DDR_PHY_ACBDLR6_A01BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_7_6 0x0 - Delay select for the BDL on Address A[0]. - PSU_DDR_PHY_ACBDLR6_A00BD 0x0 + * Delay select for the BDL on Address A[0]. + * PSU_DDR_PHY_ACBDLR6_A00BD 0x0 - AC Bit Delay Line Register 6 - (OFFSET, MASK, VALUE) (0XFD080558, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR6_RESERVED_31_30_MASK | DDR_PHY_ACBDLR6_A03BD_MASK | DDR_PHY_ACBDLR6_RESERVED_23_22_MASK | DDR_PHY_ACBDLR6_A02BD_MASK | DDR_PHY_ACBDLR6_RESERVED_15_14_MASK | DDR_PHY_ACBDLR6_A01BD_MASK | DDR_PHY_ACBDLR6_RESERVED_7_6_MASK | DDR_PHY_ACBDLR6_A00BD_MASK | 0 ); + * AC Bit Delay Line Register 6 + * (OFFSET, MASK, VALUE) (0XFD080558, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR6_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A03BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A02BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A01BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A00BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR6_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : ACBDLR7 @ 0XFD08055C - /*Register : ACBDLR7 @ 0XFD08055C

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_31_30 0x0 + * Delay select for the BDL on Address A[7]. + * PSU_DDR_PHY_ACBDLR7_A07BD 0x0 - Delay select for the BDL on Address A[7]. - PSU_DDR_PHY_ACBDLR7_A07BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_23_22 0x0 + * Delay select for the BDL on Address A[6]. + * PSU_DDR_PHY_ACBDLR7_A06BD 0x0 - Delay select for the BDL on Address A[6]. - PSU_DDR_PHY_ACBDLR7_A06BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_15_14 0x0 + * Delay select for the BDL on Address A[5]. + * PSU_DDR_PHY_ACBDLR7_A05BD 0x0 - Delay select for the BDL on Address A[5]. - PSU_DDR_PHY_ACBDLR7_A05BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_7_6 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_7_6 0x0 + * Delay select for the BDL on Address A[4]. + * PSU_DDR_PHY_ACBDLR7_A04BD 0x0 - Delay select for the BDL on Address A[4]. - PSU_DDR_PHY_ACBDLR7_A04BD 0x0 + * AC Bit Delay Line Register 7 + * (OFFSET, MASK, VALUE) (0XFD08055C, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR7_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - AC Bit Delay Line Register 7 - (OFFSET, MASK, VALUE) (0XFD08055C, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR7_RESERVED_31_30_MASK | DDR_PHY_ACBDLR7_A07BD_MASK | DDR_PHY_ACBDLR7_RESERVED_23_22_MASK | DDR_PHY_ACBDLR7_A06BD_MASK | DDR_PHY_ACBDLR7_RESERVED_15_14_MASK | DDR_PHY_ACBDLR7_A05BD_MASK | DDR_PHY_ACBDLR7_RESERVED_7_6_MASK | DDR_PHY_ACBDLR7_A04BD_MASK | 0 ); + /* + * Register : ACBDLR8 @ 0XFD080560 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A07BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A06BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A05BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A04BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR7_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_31_30 0x0 - /*Register : ACBDLR8 @ 0XFD080560

      + * Delay select for the BDL on Address A[11]. + * PSU_DDR_PHY_ACBDLR8_A11BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[11]. - PSU_DDR_PHY_ACBDLR8_A11BD 0x0 + * Delay select for the BDL on Address A[10]. + * PSU_DDR_PHY_ACBDLR8_A10BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_15_14 0x0 - Delay select for the BDL on Address A[10]. - PSU_DDR_PHY_ACBDLR8_A10BD 0x0 + * Delay select for the BDL on Address A[9]. + * PSU_DDR_PHY_ACBDLR8_A09BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_7_6 0x0 - Delay select for the BDL on Address A[9]. - PSU_DDR_PHY_ACBDLR8_A09BD 0x0 + * Delay select for the BDL on Address A[8]. + * PSU_DDR_PHY_ACBDLR8_A08BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_7_6 0x0 + * AC Bit Delay Line Register 8 + * (OFFSET, MASK, VALUE) (0XFD080560, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR8_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Delay select for the BDL on Address A[8]. - PSU_DDR_PHY_ACBDLR8_A08BD 0x0 + /* + * Register : ACBDLR9 @ 0XFD080564 - AC Bit Delay Line Register 8 - (OFFSET, MASK, VALUE) (0XFD080560, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR8_RESERVED_31_30_MASK | DDR_PHY_ACBDLR8_A11BD_MASK | DDR_PHY_ACBDLR8_RESERVED_23_22_MASK | DDR_PHY_ACBDLR8_A10BD_MASK | DDR_PHY_ACBDLR8_RESERVED_15_14_MASK | DDR_PHY_ACBDLR8_A09BD_MASK | DDR_PHY_ACBDLR8_RESERVED_7_6_MASK | DDR_PHY_ACBDLR8_A08BD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A11BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A10BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A09BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A08BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR8_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Delay select for the BDL on Address A[15]. + * PSU_DDR_PHY_ACBDLR9_A15BD 0x0 - /*Register : ACBDLR9 @ 0XFD080564

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_31_30 0x0 + * Delay select for the BDL on Address A[14]. + * PSU_DDR_PHY_ACBDLR9_A14BD 0x0 - Delay select for the BDL on Address A[15]. - PSU_DDR_PHY_ACBDLR9_A15BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_23_22 0x0 + * Delay select for the BDL on Address A[13]. + * PSU_DDR_PHY_ACBDLR9_A13BD 0x0 - Delay select for the BDL on Address A[14]. - PSU_DDR_PHY_ACBDLR9_A14BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_7_6 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_15_14 0x0 + * Delay select for the BDL on Address A[12]. + * PSU_DDR_PHY_ACBDLR9_A12BD 0x0 - Delay select for the BDL on Address A[13]. - PSU_DDR_PHY_ACBDLR9_A13BD 0x0 + * AC Bit Delay Line Register 9 + * (OFFSET, MASK, VALUE) (0XFD080564, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR9_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_7_6 0x0 + /* + * Register : ZQCR @ 0XFD080680 - Delay select for the BDL on Address A[12]. - PSU_DDR_PHY_ACBDLR9_A12BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ZQCR_RESERVED_31_26 0x0 - AC Bit Delay Line Register 9 - (OFFSET, MASK, VALUE) (0XFD080564, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR9_RESERVED_31_30_MASK | DDR_PHY_ACBDLR9_A15BD_MASK | DDR_PHY_ACBDLR9_RESERVED_23_22_MASK | DDR_PHY_ACBDLR9_A14BD_MASK | DDR_PHY_ACBDLR9_RESERVED_15_14_MASK | DDR_PHY_ACBDLR9_A13BD_MASK | DDR_PHY_ACBDLR9_RESERVED_7_6_MASK | DDR_PHY_ACBDLR9_A12BD_MASK | 0 ); + * ZQ VREF Range + * PSU_DDR_PHY_ZQCR_ZQREFISELRANGE 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A15BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A14BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A13BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A12BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR9_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Programmable Wait for Frequency B + * PSU_DDR_PHY_ZQCR_PGWAIT_FRQB 0x11 - /*Register : ZQCR @ 0XFD080680

      + * Programmable Wait for Frequency A + * PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x15 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ZQCR_RESERVED_31_26 0x0 + * ZQ VREF Pad Enable + * PSU_DDR_PHY_ZQCR_ZQREFPEN 0x0 - ZQ VREF Range - PSU_DDR_PHY_ZQCR_ZQREFISELRANGE 0x0 + * ZQ Internal VREF Enable + * PSU_DDR_PHY_ZQCR_ZQREFIEN 0x1 - Programmable Wait for Frequency B - PSU_DDR_PHY_ZQCR_PGWAIT_FRQB 0x11 + * Choice of termination mode + * PSU_DDR_PHY_ZQCR_ODT_MODE 0x1 - Programmable Wait for Frequency A - PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x11 + * Force ZCAL VT update + * PSU_DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE 0x0 - ZQ VREF Pad Enable - PSU_DDR_PHY_ZQCR_ZQREFPEN 0x0 + * IO VT Drift Limit + * PSU_DDR_PHY_ZQCR_IODLMT 0x2 - ZQ Internal VREF Enable - PSU_DDR_PHY_ZQCR_ZQREFIEN 0x1 + * Averaging algorithm enable, if set, enables averaging algorithm + * PSU_DDR_PHY_ZQCR_AVGEN 0x1 - Choice of termination mode - PSU_DDR_PHY_ZQCR_ODT_MODE 0x1 + * Maximum number of averaging rounds to be used by averaging algorithm + * PSU_DDR_PHY_ZQCR_AVGMAX 0x2 - Force ZCAL VT update - PSU_DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE 0x0 + * ZQ Calibration Type + * PSU_DDR_PHY_ZQCR_ZCALT 0x0 - IO VT Drift Limit - PSU_DDR_PHY_ZQCR_IODLMT 0x2 + * ZQ Power Down + * PSU_DDR_PHY_ZQCR_ZQPD 0x0 - Averaging algorithm enable, if set, enables averaging algorithm - PSU_DDR_PHY_ZQCR_AVGEN 0x1 + * ZQ Impedance Control Register + * (OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008AAA58U) + */ + PSU_Mask_Write(DDR_PHY_ZQCR_OFFSET, 0xFFFFFFFFU, 0x008AAA58U); +/*##################################################################### */ - Maximum number of averaging rounds to be used by averaging algorithm - PSU_DDR_PHY_ZQCR_AVGMAX 0x2 + /* + * Register : ZQ0PR0 @ 0XFD080684 - ZQ Calibration Type - PSU_DDR_PHY_ZQCR_ZCALT 0x0 + * Pull-down drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PD_DRV_ZDEN 0x0 - ZQ Power Down - PSU_DDR_PHY_ZQCR_ZQPD 0x0 + * Pull-up drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PU_DRV_ZDEN 0x0 - ZQ Impedance Control Register - (OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008A2A58U) - RegMask = (DDR_PHY_ZQCR_RESERVED_31_26_MASK | DDR_PHY_ZQCR_ZQREFISELRANGE_MASK | DDR_PHY_ZQCR_PGWAIT_FRQB_MASK | DDR_PHY_ZQCR_PGWAIT_FRQA_MASK | DDR_PHY_ZQCR_ZQREFPEN_MASK | DDR_PHY_ZQCR_ZQREFIEN_MASK | DDR_PHY_ZQCR_ODT_MODE_MASK | DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK | DDR_PHY_ZQCR_IODLMT_MASK | DDR_PHY_ZQCR_AVGEN_MASK | DDR_PHY_ZQCR_AVGMAX_MASK | DDR_PHY_ZQCR_ZCALT_MASK | DDR_PHY_ZQCR_ZQPD_MASK | 0 ); + * Pull-down termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PD_ODT_ZDEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQCR_RESERVED_31_26_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT - | 0x00000011U << DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT - | 0x00000011U << DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQREFPEN_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_ZQREFIEN_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_ODT_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT - | 0x00000002U << DDR_PHY_ZQCR_IODLMT_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_AVGEN_SHIFT - | 0x00000002U << DDR_PHY_ZQCR_AVGMAX_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZCALT_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQPD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQCR_OFFSET ,0xFFFFFFFFU ,0x008A2A58U); - /*############################################################################################################################ */ + * Pull-up termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PU_ODT_ZDEN 0x0 - /*Register : ZQ0PR0 @ 0XFD080684

      + * Calibration segment bypass + * PSU_DDR_PHY_ZQ0PR0_ZSEGBYP 0x0 - Pull-down drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PD_DRV_ZDEN 0x0 + * VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB + * PSU_DDR_PHY_ZQ0PR0_ZLE_MODE 0x0 - Pull-up drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PU_DRV_ZDEN 0x0 + * Termination adjustment + * PSU_DDR_PHY_ZQ0PR0_ODT_ADJUST 0x0 - Pull-down termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PD_ODT_ZDEN 0x0 + * Pulldown drive strength adjustment + * PSU_DDR_PHY_ZQ0PR0_PD_DRV_ADJUST 0x0 - Pull-up termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PU_ODT_ZDEN 0x0 + * Pullup drive strength adjustment + * PSU_DDR_PHY_ZQ0PR0_PU_DRV_ADJUST 0x0 - Calibration segment bypass - PSU_DDR_PHY_ZQ0PR0_ZSEGBYP 0x0 + * DRAM Impedance Divide Ratio + * PSU_DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT 0x7 - VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB - PSU_DDR_PHY_ZQ0PR0_ZLE_MODE 0x0 + * HOST Impedance Divide Ratio + * PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x9 - Termination adjustment - PSU_DDR_PHY_ZQ0PR0_ODT_ADJUST 0x0 + * Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) + * PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD 0xd - Pulldown drive strength adjustment - PSU_DDR_PHY_ZQ0PR0_PD_DRV_ADJUST 0x0 + * Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) + * PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU 0xd - Pullup drive strength adjustment - PSU_DDR_PHY_ZQ0PR0_PU_DRV_ADJUST 0x0 + * ZQ n Impedance Control Program Register 0 + * (OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000079DDU) + */ + PSU_Mask_Write(DDR_PHY_ZQ0PR0_OFFSET, 0xFFFFFFFFU, 0x000079DDU); +/*##################################################################### */ - DRAM Impedance Divide Ratio - PSU_DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT 0x7 + /* + * Register : ZQ0OR0 @ 0XFD080694 - HOST Impedance Divide Ratio - PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x7 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR0_RESERVED_31_26 0x0 - Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD 0xd + * Override value for the pull-up output impedance + * PSU_DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD 0x1e1 - Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU 0xd + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR0_RESERVED_15_10 0x0 - ZQ n Impedance Control Program Register 0 - (OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000077DDU) - RegMask = (DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK | DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK | DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK | DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK | DDR_PHY_ZQ0PR0_ZSEGBYP_MASK | DDR_PHY_ZQ0PR0_ZLE_MODE_MASK | DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK | DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK | DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK | DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK | DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK | DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK | DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK | 0 ); + * Override value for the pull-down output impedance + * PSU_DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD 0x210 - RegVal = ((0x00000000U << DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT - | 0x00000007U << DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT - | 0x00000007U << DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT - | 0x0000000DU << DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT - | 0x0000000DU << DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0PR0_OFFSET ,0xFFFFFFFFU ,0x000077DDU); - /*############################################################################################################################ */ + * ZQ n Impedance Control Override Data Register 0 + * (OFFSET, MASK, VALUE) (0XFD080694, 0xFFFFFFFFU ,0x01E10210U) + */ + PSU_Mask_Write(DDR_PHY_ZQ0OR0_OFFSET, 0xFFFFFFFFU, 0x01E10210U); +/*##################################################################### */ - /*Register : ZQ0OR0 @ 0XFD080694

      + /* + * Register : ZQ0OR1 @ 0XFD080698 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR0_RESERVED_31_26 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR1_RESERVED_31_26 0x0 - Override value for the pull-up output impedance - PSU_DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD 0x1e1 + * Override value for the pull-up termination + * PSU_DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD 0x1e1 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR0_RESERVED_15_10 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR1_RESERVED_15_10 0x0 - Override value for the pull-down output impedance - PSU_DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD 0x210 + * Override value for the pull-down termination + * PSU_DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD 0x0 - ZQ n Impedance Control Override Data Register 0 - (OFFSET, MASK, VALUE) (0XFD080694, 0xFFFFFFFFU ,0x01E10210U) - RegMask = (DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK | DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK | DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK | DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT - | 0x000001E1U << DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT - | 0x00000210U << DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0OR0_OFFSET ,0xFFFFFFFFU ,0x01E10210U); - /*############################################################################################################################ */ + * ZQ n Impedance Control Override Data Register 1 + * (OFFSET, MASK, VALUE) (0XFD080698, 0xFFFFFFFFU ,0x01E10000U) + */ + PSU_Mask_Write(DDR_PHY_ZQ0OR1_OFFSET, 0xFFFFFFFFU, 0x01E10000U); +/*##################################################################### */ - /*Register : ZQ0OR1 @ 0XFD080698

      + /* + * Register : ZQ1PR0 @ 0XFD0806A4 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR1_RESERVED_31_26 0x0 + * Pull-down drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PD_DRV_ZDEN 0x0 - Override value for the pull-up termination - PSU_DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD 0x1e1 + * Pull-up drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PU_DRV_ZDEN 0x0 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR1_RESERVED_15_10 0x0 + * Pull-down termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PD_ODT_ZDEN 0x0 - Override value for the pull-down termination - PSU_DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD 0x0 + * Pull-up termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PU_ODT_ZDEN 0x0 - ZQ n Impedance Control Override Data Register 1 - (OFFSET, MASK, VALUE) (0XFD080698, 0xFFFFFFFFU ,0x01E10000U) - RegMask = (DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK | DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK | DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK | DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK | 0 ); + * Calibration segment bypass + * PSU_DDR_PHY_ZQ1PR0_ZSEGBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT - | 0x000001E1U << DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0OR1_OFFSET ,0xFFFFFFFFU ,0x01E10000U); - /*############################################################################################################################ */ + * VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB + * PSU_DDR_PHY_ZQ1PR0_ZLE_MODE 0x0 - /*Register : ZQ1PR0 @ 0XFD0806A4

      + * Termination adjustment + * PSU_DDR_PHY_ZQ1PR0_ODT_ADJUST 0x0 - Pull-down drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PD_DRV_ZDEN 0x0 + * Pulldown drive strength adjustment + * PSU_DDR_PHY_ZQ1PR0_PD_DRV_ADJUST 0x1 - Pull-up drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PU_DRV_ZDEN 0x0 + * Pullup drive strength adjustment + * PSU_DDR_PHY_ZQ1PR0_PU_DRV_ADJUST 0x0 - Pull-down termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PD_ODT_ZDEN 0x0 + * DRAM Impedance Divide Ratio + * PSU_DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT 0x7 - Pull-up termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PU_ODT_ZDEN 0x0 + * HOST Impedance Divide Ratio + * PSU_DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT 0xb - Calibration segment bypass - PSU_DDR_PHY_ZQ1PR0_ZSEGBYP 0x0 + * Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) + * PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD 0xd - VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB - PSU_DDR_PHY_ZQ1PR0_ZLE_MODE 0x0 + * Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) + * PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU 0xb - Termination adjustment - PSU_DDR_PHY_ZQ1PR0_ODT_ADJUST 0x0 + * ZQ n Impedance Control Program Register 0 + * (OFFSET, MASK, VALUE) (0XFD0806A4, 0xFFFFFFFFU ,0x00087BDBU) + */ + PSU_Mask_Write(DDR_PHY_ZQ1PR0_OFFSET, 0xFFFFFFFFU, 0x00087BDBU); +/*##################################################################### */ - Pulldown drive strength adjustment - PSU_DDR_PHY_ZQ1PR0_PD_DRV_ADJUST 0x1 + /* + * Register : DX0GCR0 @ 0XFD080700 - Pullup drive strength adjustment - PSU_DDR_PHY_ZQ1PR0_PU_DRV_ADJUST 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX0GCR0_CALBYP 0x0 - DRAM Impedance Divide Ratio - PSU_DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT 0x7 + * Master Delay Line Enable + * PSU_DDR_PHY_DX0GCR0_MDLEN 0x1 - HOST Impedance Divide Ratio - PSU_DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT 0xb + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX0GCR0_CODTSHFT 0x0 - Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD 0xd + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX0GCR0_DQSDCC 0x0 - Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU 0xb + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX0GCR0_RDDLY 0x8 - ZQ n Impedance Control Program Register 0 - (OFFSET, MASK, VALUE) (0XFD0806A4, 0xFFFFFFFFU ,0x00087BDBU) - RegMask = (DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK | DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK | DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK | DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK | DDR_PHY_ZQ1PR0_ZSEGBYP_MASK | DDR_PHY_ZQ1PR0_ZLE_MODE_MASK | DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK | DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK | DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK | DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK | DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK | DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK | DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_19_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT - | 0x00000001U << DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT - | 0x00000007U << DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT - | 0x0000000BU << DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT - | 0x0000000DU << DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT - | 0x0000000BU << DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ1PR0_OFFSET ,0xFFFFFFFFU ,0x00087BDBU); - /*############################################################################################################################ */ + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSNSEPDR 0x0 - /*Register : DX0GCR0 @ 0XFD080700

      + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSSEPDR 0x0 - Calibration Bypass - PSU_DDR_PHY_DX0GCR0_CALBYP 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX0GCR0_RTTOAL 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX0GCR0_MDLEN 0x1 + * RTT Output Hold + * PSU_DDR_PHY_DX0GCR0_RTTOH 0x3 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX0GCR0_CODTSHFT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX0GCR0_CPDRSHFT 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX0GCR0_DQSDCC 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX0GCR0_DQSRPD 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX0GCR0_RDDLY 0x8 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSGPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_4 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSNSEPDR 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX0GCR0_DQSGODT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSSEPDR 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX0GCR0_DQSGOE 0x1 - RTT On Additive Latency - PSU_DDR_PHY_DX0GCR0_RTTOAL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_1_0 0x0 - RTT Output Hold - PSU_DDR_PHY_DX0GCR0_RTTOH 0x3 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080700, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Configurable PDR Phase Shift - PSU_DDR_PHY_DX0GCR0_CPDRSHFT 0x0 + /* + * Register : DX0GCR4 @ 0XFD080710 - DQSR Power Down - PSU_DDR_PHY_DX0GCR0_DQSRPD 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX0GCR4_RESERVED_31_29 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSGPDR 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX0GCR4_DXREFPEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_4 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX0GCR4_DXREFEEN 0x3 - DQSG On-Die Termination - PSU_DDR_PHY_DX0GCR0_DQSGODT 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX0GCR4_DXREFSEN 0x1 - DQSG Output Enable - PSU_DDR_PHY_DX0GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR4_RESERVED_24 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_1_0 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX0GCR4_DXREFESELRANGE 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080700, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX0GCR0_CALBYP_MASK | DDR_PHY_DX0GCR0_MDLEN_MASK | DDR_PHY_DX0GCR0_CODTSHFT_MASK | DDR_PHY_DX0GCR0_DQSDCC_MASK | DDR_PHY_DX0GCR0_RDDLY_MASK | DDR_PHY_DX0GCR0_RESERVED_19_14_MASK | DDR_PHY_DX0GCR0_DQSNSEPDR_MASK | DDR_PHY_DX0GCR0_DQSSEPDR_MASK | DDR_PHY_DX0GCR0_RTTOAL_MASK | DDR_PHY_DX0GCR0_RTTOH_MASK | DDR_PHY_DX0GCR0_CPDRSHFT_MASK | DDR_PHY_DX0GCR0_DQSRPD_MASK | DDR_PHY_DX0GCR0_DQSGPDR_MASK | DDR_PHY_DX0GCR0_RESERVED_4_MASK | DDR_PHY_DX0GCR0_DQSGODT_MASK | DDR_PHY_DX0GCR0_DQSGOE_MASK | DDR_PHY_DX0GCR0_RESERVED_1_0_MASK | 0 ); + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX0GCR4_DXREFESEL 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX0GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX0GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ - - /*Register : DX0GCR4 @ 0XFD080710

      - - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX0GCR4_RESERVED_31_29 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX0GCR4_DXREFSSELRANGE 0x1 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX0GCR4_DXREFPEN 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX0GCR4_DXREFSSEL 0x30 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX0GCR4_DXREFEEN 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR4_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX0GCR4_DXREFSEN 0x1 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX0GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR4_RESERVED_24 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX0GCR4_DXREFIMON 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX0GCR4_DXREFESELRANGE 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080710, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Byte Lane External VREF Select - PSU_DDR_PHY_DX0GCR4_DXREFESEL 0x0 + /* + * Register : DX0GCR5 @ 0XFD080714 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX0GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_31 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX0GCR4_DXREFSSEL 0x30 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR3 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR4_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_23 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX0GCR4_DXREFIEN 0xf + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR2 0x9 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX0GCR4_DXREFIMON 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_15 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080710, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX0GCR4_RESERVED_31_29_MASK | DDR_PHY_DX0GCR4_DXREFPEN_MASK | DDR_PHY_DX0GCR4_DXREFEEN_MASK | DDR_PHY_DX0GCR4_DXREFSEN_MASK | DDR_PHY_DX0GCR4_RESERVED_24_MASK | DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX0GCR4_DXREFESEL_MASK | DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX0GCR4_DXREFSSEL_MASK | DDR_PHY_DX0GCR4_RESERVED_7_6_MASK | DDR_PHY_DX0GCR4_DXREFIEN_MASK | DDR_PHY_DX0GCR4_DXREFIMON_MASK | 0 ); + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x55 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX0GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX0GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_7 0x0 - /*Register : DX0GCR5 @ 0XFD080714

      + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x55 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_31 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX0GCR5_DXREFISELR3 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_23 0x0 - - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX0GCR5_DXREFISELR2 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_15 0x0 - - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x4f - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_7 0x0 - - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x4f + /* + * Register : DX0GCR6 @ 0XFD080718 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX0GCR5_RESERVED_31_MASK | DDR_PHY_DX0GCR5_DXREFISELR3_MASK | DDR_PHY_DX0GCR5_RESERVED_23_MASK | DDR_PHY_DX0GCR5_DXREFISELR2_MASK | DDR_PHY_DX0GCR5_RESERVED_15_MASK | DDR_PHY_DX0GCR5_DXREFISELR1_MASK | DDR_PHY_DX0GCR5_RESERVED_7_MASK | DDR_PHY_DX0GCR5_DXREFISELR0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR3 0x9 - /*Register : DX0GCR6 @ 0XFD080718

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_23_22 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_31_30 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR2 0x9 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_15_14 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_23_22 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR1 0x2b - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_7_6 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_15_14 0x0 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR0 0x2b - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR1 0x2b + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080718, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_7_6 0x0 + /* + * Register : DX1GCR0 @ 0XFD080800 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR0 0x2b + * Calibration Bypass + * PSU_DDR_PHY_DX1GCR0_CALBYP 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080718, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX0GCR6_RESERVED_31_30_MASK | DDR_PHY_DX0GCR6_DXDQVREFR3_MASK | DDR_PHY_DX0GCR6_RESERVED_23_22_MASK | DDR_PHY_DX0GCR6_DXDQVREFR2_MASK | DDR_PHY_DX0GCR6_RESERVED_15_14_MASK | DDR_PHY_DX0GCR6_DXDQVREFR1_MASK | DDR_PHY_DX0GCR6_RESERVED_7_6_MASK | DDR_PHY_DX0GCR6_DXDQVREFR0_MASK | 0 ); + * Master Delay Line Enable + * PSU_DDR_PHY_DX1GCR0_MDLEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX1GCR0_CODTSHFT 0x0 - /*Register : DX0LCDLR2 @ 0XFD080788

      + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX1GCR0_DQSDCC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_31_25 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX1GCR0_RDDLY 0x8 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_24_16 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_19_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_15_9 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSNSEPDR 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX0LCDLR2_DQSGD 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSSEPDR 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080788, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX0LCDLR2_DQSGD_MASK | 0 ); + * RTT On Additive Latency + * PSU_DDR_PHY_DX1GCR0_RTTOAL 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * RTT Output Hold + * PSU_DDR_PHY_DX1GCR0_RTTOH 0x3 - /*Register : DX0GTR0 @ 0XFD0807C0

      + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX1GCR0_CPDRSHFT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_31_24 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX1GCR0_DQSRPD 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX0GTR0_WDQSL 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSGPDR 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0GTR0_RESERVED_23_20 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_4 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX0GTR0_WLSL 0x2 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX1GCR0_DQSGODT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_15_13 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX1GCR0_DQSGOE 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0GTR0_RESERVED_12_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_1_0 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_7_5 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080800, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DQS Gating System Latency - PSU_DDR_PHY_DX0GTR0_DGSL 0x0 + /* + * Register : DX1GCR4 @ 0XFD080810 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0807C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX0GTR0_RESERVED_31_24_MASK | DDR_PHY_DX0GTR0_WDQSL_MASK | DDR_PHY_DX0GTR0_RESERVED_23_20_MASK | DDR_PHY_DX0GTR0_WLSL_MASK | DDR_PHY_DX0GTR0_RESERVED_15_13_MASK | DDR_PHY_DX0GTR0_RESERVED_12_8_MASK | DDR_PHY_DX0GTR0_RESERVED_7_5_MASK | DDR_PHY_DX0GTR0_DGSL_MASK | 0 ); + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX1GCR4_RESERVED_31_29 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX0GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX1GCR4_DXREFPEN 0x0 - /*Register : DX1GCR0 @ 0XFD080800

      + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX1GCR4_DXREFEEN 0x3 - Calibration Bypass - PSU_DDR_PHY_DX1GCR0_CALBYP 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX1GCR4_DXREFSEN 0x1 - Master Delay Line Enable - PSU_DDR_PHY_DX1GCR0_MDLEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR4_RESERVED_24 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX1GCR0_CODTSHFT 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX1GCR4_DXREFESELRANGE 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX1GCR0_DQSDCC 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX1GCR4_DXREFESEL 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX1GCR0_RDDLY 0x8 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX1GCR4_DXREFSSELRANGE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_19_14 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX1GCR4_DXREFSSEL 0x30 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSNSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR4_RESERVED_7_6 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSSEPDR 0x0 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX1GCR4_DXREFIEN 0xf - RTT On Additive Latency - PSU_DDR_PHY_DX1GCR0_RTTOAL 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX1GCR4_DXREFIMON 0x0 - RTT Output Hold - PSU_DDR_PHY_DX1GCR0_RTTOH 0x3 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080810, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Configurable PDR Phase Shift - PSU_DDR_PHY_DX1GCR0_CPDRSHFT 0x0 + /* + * Register : DX1GCR5 @ 0XFD080814 - DQSR Power Down - PSU_DDR_PHY_DX1GCR0_DQSRPD 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_31 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSGPDR 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_23 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX1GCR0_DQSGODT 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR2 0x9 - DQSG Output Enable - PSU_DDR_PHY_DX1GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_15 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_1_0 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x55 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080800, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX1GCR0_CALBYP_MASK | DDR_PHY_DX1GCR0_MDLEN_MASK | DDR_PHY_DX1GCR0_CODTSHFT_MASK | DDR_PHY_DX1GCR0_DQSDCC_MASK | DDR_PHY_DX1GCR0_RDDLY_MASK | DDR_PHY_DX1GCR0_RESERVED_19_14_MASK | DDR_PHY_DX1GCR0_DQSNSEPDR_MASK | DDR_PHY_DX1GCR0_DQSSEPDR_MASK | DDR_PHY_DX1GCR0_RTTOAL_MASK | DDR_PHY_DX1GCR0_RTTOH_MASK | DDR_PHY_DX1GCR0_CPDRSHFT_MASK | DDR_PHY_DX1GCR0_DQSRPD_MASK | DDR_PHY_DX1GCR0_DQSGPDR_MASK | DDR_PHY_DX1GCR0_RESERVED_4_MASK | DDR_PHY_DX1GCR0_DQSGODT_MASK | DDR_PHY_DX1GCR0_DQSGOE_MASK | DDR_PHY_DX1GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_7 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX1GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX1GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x55 - /*Register : DX1GCR4 @ 0XFD080810

      + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX1GCR4_RESERVED_31_29 0x0 + /* + * Register : DX1GCR6 @ 0XFD080818 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX1GCR4_DXREFPEN 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_31_30 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX1GCR4_DXREFEEN 0x3 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR3 0x9 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX1GCR4_DXREFSEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_23_22 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR4_RESERVED_24 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR2 0x9 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX1GCR4_DXREFESELRANGE 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_15_14 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX1GCR4_DXREFESEL 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR1 0x2b - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX1GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX1GCR4_DXREFSSEL 0x30 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR4_RESERVED_7_6 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080818, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX1GCR4_DXREFIEN 0xf + /* + * Register : DX2GCR0 @ 0XFD080900 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX1GCR4_DXREFIMON 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX2GCR0_CALBYP 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080810, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX1GCR4_RESERVED_31_29_MASK | DDR_PHY_DX1GCR4_DXREFPEN_MASK | DDR_PHY_DX1GCR4_DXREFEEN_MASK | DDR_PHY_DX1GCR4_DXREFSEN_MASK | DDR_PHY_DX1GCR4_RESERVED_24_MASK | DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX1GCR4_DXREFESEL_MASK | DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX1GCR4_DXREFSSEL_MASK | DDR_PHY_DX1GCR4_RESERVED_7_6_MASK | DDR_PHY_DX1GCR4_DXREFIEN_MASK | DDR_PHY_DX1GCR4_DXREFIMON_MASK | 0 ); + * Master Delay Line Enable + * PSU_DDR_PHY_DX2GCR0_MDLEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX1GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX1GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX2GCR0_CODTSHFT 0x0 - /*Register : DX1GCR5 @ 0XFD080814

      + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX2GCR0_DQSDCC 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_31 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX2GCR0_RDDLY 0x8 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX1GCR5_DXREFISELR3 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_23 0x0 - - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX1GCR5_DXREFISELR2 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_15 0x0 - - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x4f - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_7 0x0 - - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x4f + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_19_14 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX1GCR5_RESERVED_31_MASK | DDR_PHY_DX1GCR5_DXREFISELR3_MASK | DDR_PHY_DX1GCR5_RESERVED_23_MASK | DDR_PHY_DX1GCR5_DXREFISELR2_MASK | DDR_PHY_DX1GCR5_RESERVED_15_MASK | DDR_PHY_DX1GCR5_DXREFISELR1_MASK | DDR_PHY_DX1GCR5_RESERVED_7_MASK | DDR_PHY_DX1GCR5_DXREFISELR0_MASK | 0 ); + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSNSEPDR 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSSEPDR 0x0 - /*Register : DX1GCR6 @ 0XFD080818

      + * RTT On Additive Latency + * PSU_DDR_PHY_DX2GCR0_RTTOAL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_31_30 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX2GCR0_RTTOH 0x3 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR3 0x9 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX2GCR0_CPDRSHFT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_23_22 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX2GCR0_DQSRPD 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR2 0x9 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSGPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_4 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR1 0x2b + * DQSG On-Die Termination + * PSU_DDR_PHY_DX2GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_7_6 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX2GCR0_DQSGOE 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR0 0x2b + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_1_0 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080818, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX1GCR6_RESERVED_31_30_MASK | DDR_PHY_DX1GCR6_DXDQVREFR3_MASK | DDR_PHY_DX1GCR6_RESERVED_23_22_MASK | DDR_PHY_DX1GCR6_DXDQVREFR2_MASK | DDR_PHY_DX1GCR6_RESERVED_15_14_MASK | DDR_PHY_DX1GCR6_DXDQVREFR1_MASK | DDR_PHY_DX1GCR6_RESERVED_7_6_MASK | DDR_PHY_DX1GCR6_DXDQVREFR0_MASK | 0 ); + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080900, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + /* + * Register : DX2GCR1 @ 0XFD080904 - /*Register : DX1LCDLR2 @ 0XFD080888

      + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX2GCR1_DXPDRMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_31_25 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX2GCR1_RESERVED_15 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_24_16 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX2GCR1_QSNSEL 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_15_9 0x0 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX2GCR1_QSSEL 0x1 - Read DQS Gating Delay - PSU_DDR_PHY_DX1LCDLR2_DQSGD 0x0 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX2GCR1_OEEN 0x1 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080888, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX1LCDLR2_DQSGD_MASK | 0 ); + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX2GCR1_PDREN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX2GCR1_TEEN 0x1 - /*Register : DX1GTR0 @ 0XFD0808C0

      + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX2GCR1_DSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_31_24 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX2GCR1_DMEN 0x1 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX1GTR0_WDQSL 0x0 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX2GCR1_DQEN 0xff - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1GTR0_RESERVED_23_20 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080904, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Write Leveling System Latency - PSU_DDR_PHY_DX1GTR0_WLSL 0x2 + /* + * Register : DX2GCR4 @ 0XFD080910 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_15_13 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX2GCR4_RESERVED_31_29 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1GTR0_RESERVED_12_8 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX2GCR4_DXREFPEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_7_5 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX2GCR4_DXREFEEN 0x3 - DQS Gating System Latency - PSU_DDR_PHY_DX1GTR0_DGSL 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX2GCR4_DXREFSEN 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0808C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX1GTR0_RESERVED_31_24_MASK | DDR_PHY_DX1GTR0_WDQSL_MASK | DDR_PHY_DX1GTR0_RESERVED_23_20_MASK | DDR_PHY_DX1GTR0_WLSL_MASK | DDR_PHY_DX1GTR0_RESERVED_15_13_MASK | DDR_PHY_DX1GTR0_RESERVED_12_8_MASK | DDR_PHY_DX1GTR0_RESERVED_7_5_MASK | DDR_PHY_DX1GTR0_DGSL_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR4_RESERVED_24 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX1GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX2GCR4_DXREFESELRANGE 0x0 - /*Register : DX2GCR0 @ 0XFD080900

      + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX2GCR4_DXREFESEL 0x0 - Calibration Bypass - PSU_DDR_PHY_DX2GCR0_CALBYP 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX2GCR4_DXREFSSELRANGE 0x1 - Master Delay Line Enable - PSU_DDR_PHY_DX2GCR0_MDLEN 0x1 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX2GCR4_DXREFSSEL 0x30 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX2GCR0_CODTSHFT 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR4_RESERVED_7_6 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX2GCR0_DQSDCC 0x0 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX2GCR4_DXREFIEN 0xf - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX2GCR0_RDDLY 0x8 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX2GCR4_DXREFIMON 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_19_14 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080910, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSNSEPDR 0x0 + /* + * Register : DX2GCR5 @ 0XFD080914 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_31 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX2GCR0_RTTOAL 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR3 0x9 - RTT Output Hold - PSU_DDR_PHY_DX2GCR0_RTTOH 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_23 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX2GCR0_CPDRSHFT 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR2 0x9 - DQSR Power Down - PSU_DDR_PHY_DX2GCR0_DQSRPD 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_15 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSGPDR 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x55 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_7 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX2GCR0_DQSGODT 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x55 - DQSG Output Enable - PSU_DDR_PHY_DX2GCR0_DQSGOE 0x1 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_1_0 0x0 + /* + * Register : DX2GCR6 @ 0XFD080918 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080900, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX2GCR0_CALBYP_MASK | DDR_PHY_DX2GCR0_MDLEN_MASK | DDR_PHY_DX2GCR0_CODTSHFT_MASK | DDR_PHY_DX2GCR0_DQSDCC_MASK | DDR_PHY_DX2GCR0_RDDLY_MASK | DDR_PHY_DX2GCR0_RESERVED_19_14_MASK | DDR_PHY_DX2GCR0_DQSNSEPDR_MASK | DDR_PHY_DX2GCR0_DQSSEPDR_MASK | DDR_PHY_DX2GCR0_RTTOAL_MASK | DDR_PHY_DX2GCR0_RTTOH_MASK | DDR_PHY_DX2GCR0_CPDRSHFT_MASK | DDR_PHY_DX2GCR0_DQSRPD_MASK | DDR_PHY_DX2GCR0_DQSGPDR_MASK | DDR_PHY_DX2GCR0_RESERVED_4_MASK | DDR_PHY_DX2GCR0_DQSGODT_MASK | DDR_PHY_DX2GCR0_DQSGOE_MASK | DDR_PHY_DX2GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX2GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX2GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR3 0x9 - /*Register : DX2GCR1 @ 0XFD080904

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_23_22 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX2GCR1_DXPDRMODE 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX2GCR1_RESERVED_15 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_15_14 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX2GCR1_QSNSEL 0x1 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR1 0x2b - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX2GCR1_QSSEL 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_7_6 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX2GCR1_OEEN 0x1 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR0 0x2b - Enables PDR in a byte lane - PSU_DDR_PHY_DX2GCR1_PDREN 0x1 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080918, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX2GCR1_TEEN 0x1 + /* + * Register : DX3GCR0 @ 0XFD080A00 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX2GCR1_DSEN 0x1 + * Calibration Bypass + * PSU_DDR_PHY_DX3GCR0_CALBYP 0x0 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX2GCR1_DMEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX3GCR0_MDLEN 0x1 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX2GCR1_DQEN 0xff + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX3GCR0_CODTSHFT 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080904, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX2GCR1_DXPDRMODE_MASK | DDR_PHY_DX2GCR1_RESERVED_15_MASK | DDR_PHY_DX2GCR1_QSNSEL_MASK | DDR_PHY_DX2GCR1_QSSEL_MASK | DDR_PHY_DX2GCR1_OEEN_MASK | DDR_PHY_DX2GCR1_PDREN_MASK | DDR_PHY_DX2GCR1_TEEN_MASK | DDR_PHY_DX2GCR1_DSEN_MASK | DDR_PHY_DX2GCR1_DMEN_MASK | DDR_PHY_DX2GCR1_DQEN_MASK | 0 ); + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX3GCR0_DQSDCC 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX2GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX3GCR0_RDDLY 0x8 - /*Register : DX2GCR4 @ 0XFD080910

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_19_14 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX2GCR4_RESERVED_31_29 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSNSEPDR 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX2GCR4_DXREFPEN 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSSEPDR 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX2GCR4_DXREFEEN 0x3 + * RTT On Additive Latency + * PSU_DDR_PHY_DX3GCR0_RTTOAL 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX2GCR4_DXREFSEN 0x1 + * RTT Output Hold + * PSU_DDR_PHY_DX3GCR0_RTTOH 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR4_RESERVED_24 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX3GCR0_CPDRSHFT 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX2GCR4_DXREFESELRANGE 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX3GCR0_DQSRPD 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX2GCR4_DXREFESEL 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSGPDR 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX2GCR4_DXREFSSELRANGE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_4 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX2GCR4_DXREFSSEL 0x30 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX3GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR4_RESERVED_7_6 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX3GCR0_DQSGOE 0x1 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX2GCR4_DXREFIEN 0xf + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_1_0 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX2GCR4_DXREFIMON 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080A00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080910, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX2GCR4_RESERVED_31_29_MASK | DDR_PHY_DX2GCR4_DXREFPEN_MASK | DDR_PHY_DX2GCR4_DXREFEEN_MASK | DDR_PHY_DX2GCR4_DXREFSEN_MASK | DDR_PHY_DX2GCR4_RESERVED_24_MASK | DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX2GCR4_DXREFESEL_MASK | DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX2GCR4_DXREFSSEL_MASK | DDR_PHY_DX2GCR4_RESERVED_7_6_MASK | DDR_PHY_DX2GCR4_DXREFIEN_MASK | DDR_PHY_DX2GCR4_DXREFIMON_MASK | 0 ); + /* + * Register : DX3GCR1 @ 0XFD080A04 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX2GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX2GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX3GCR1_DXPDRMODE 0x0 - /*Register : DX2GCR5 @ 0XFD080914

      + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX3GCR1_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_31 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX3GCR1_QSNSEL 0x1 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX2GCR5_DXREFISELR3 0x9 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX3GCR1_QSSEL 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_23 0x0 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX3GCR1_OEEN 0x1 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX2GCR5_DXREFISELR2 0x9 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX3GCR1_PDREN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_15 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX3GCR1_TEEN 0x1 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x4f + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX3GCR1_DSEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_7 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX3GCR1_DMEN 0x1 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x4f + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX3GCR1_DQEN 0xff - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX2GCR5_RESERVED_31_MASK | DDR_PHY_DX2GCR5_DXREFISELR3_MASK | DDR_PHY_DX2GCR5_RESERVED_23_MASK | DDR_PHY_DX2GCR5_DXREFISELR2_MASK | DDR_PHY_DX2GCR5_RESERVED_15_MASK | DDR_PHY_DX2GCR5_DXREFISELR1_MASK | DDR_PHY_DX2GCR5_RESERVED_7_MASK | DDR_PHY_DX2GCR5_DXREFISELR0_MASK | 0 ); + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080A04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX2GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + /* + * Register : DX3GCR4 @ 0XFD080A10 - /*Register : DX2GCR6 @ 0XFD080918

      + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX3GCR4_RESERVED_31_29 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_31_30 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX3GCR4_DXREFPEN 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR3 0x9 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX3GCR4_DXREFEEN 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_23_22 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX3GCR4_DXREFSEN 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR4_RESERVED_24 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_15_14 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX3GCR4_DXREFESELRANGE 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR1 0x2b + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX3GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_7_6 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX3GCR4_DXREFSSELRANGE 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR0 0x2b + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX3GCR4_DXREFSSEL 0x30 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080918, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX2GCR6_RESERVED_31_30_MASK | DDR_PHY_DX2GCR6_DXDQVREFR3_MASK | DDR_PHY_DX2GCR6_RESERVED_23_22_MASK | DDR_PHY_DX2GCR6_DXDQVREFR2_MASK | DDR_PHY_DX2GCR6_RESERVED_15_14_MASK | DDR_PHY_DX2GCR6_DXDQVREFR1_MASK | DDR_PHY_DX2GCR6_RESERVED_7_6_MASK | DDR_PHY_DX2GCR6_DXDQVREFR0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR4_RESERVED_7_6 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX3GCR4_DXREFIEN 0xf - /*Register : DX2LCDLR2 @ 0XFD080988

      + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX3GCR4_DXREFIMON 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_31_25 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080A10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_24_16 0x0 + /* + * Register : DX3GCR5 @ 0XFD080A14 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_15_9 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_31 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX2LCDLR2_DQSGD 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR3 0x9 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080988, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX2LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_23 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR2 0x9 - /*Register : DX2GTR0 @ 0XFD0809C0

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_15 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_31_24 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x55 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX2GTR0_WDQSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_7 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2GTR0_RESERVED_23_20 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x55 - Write Leveling System Latency - PSU_DDR_PHY_DX2GTR0_WLSL 0x2 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_15_13 0x0 + /* + * Register : DX3GCR6 @ 0XFD080A18 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2GTR0_RESERVED_12_8 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_7_5 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR3 0x9 - DQS Gating System Latency - PSU_DDR_PHY_DX2GTR0_DGSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_23_22 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0809C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX2GTR0_RESERVED_31_24_MASK | DDR_PHY_DX2GTR0_WDQSL_MASK | DDR_PHY_DX2GTR0_RESERVED_23_20_MASK | DDR_PHY_DX2GTR0_WLSL_MASK | DDR_PHY_DX2GTR0_RESERVED_15_13_MASK | DDR_PHY_DX2GTR0_RESERVED_12_8_MASK | DDR_PHY_DX2GTR0_RESERVED_7_5_MASK | DDR_PHY_DX2GTR0_DGSL_MASK | 0 ); + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR2 0x9 - RegVal = ((0x00000000U << DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX2GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_15_14 0x0 - /*Register : DX3GCR0 @ 0XFD080A00

      + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR1 0x2b - Calibration Bypass - PSU_DDR_PHY_DX3GCR0_CALBYP 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_7_6 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX3GCR0_MDLEN 0x1 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR0 0x2b - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX3GCR0_CODTSHFT 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080A18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DQS Duty Cycle Correction - PSU_DDR_PHY_DX3GCR0_DQSDCC 0x0 + /* + * Register : DX4GCR0 @ 0XFD080B00 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX3GCR0_RDDLY 0x8 + * Calibration Bypass + * PSU_DDR_PHY_DX4GCR0_CALBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_19_14 0x0 + * Master Delay Line Enable + * PSU_DDR_PHY_DX4GCR0_MDLEN 0x1 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSNSEPDR 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX4GCR0_CODTSHFT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSSEPDR 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX4GCR0_DQSDCC 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX3GCR0_RTTOAL 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX4GCR0_RDDLY 0x8 - RTT Output Hold - PSU_DDR_PHY_DX3GCR0_RTTOH 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_19_14 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX3GCR0_CPDRSHFT 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSNSEPDR 0x0 - DQSR Power Down - PSU_DDR_PHY_DX3GCR0_DQSRPD 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSSEPDR 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSGPDR 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX4GCR0_RTTOAL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_4 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX4GCR0_RTTOH 0x3 - DQSG On-Die Termination - PSU_DDR_PHY_DX3GCR0_DQSGODT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX4GCR0_CPDRSHFT 0x0 - DQSG Output Enable - PSU_DDR_PHY_DX3GCR0_DQSGOE 0x1 + * DQSR Power Down + * PSU_DDR_PHY_DX4GCR0_DQSRPD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_1_0 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSGPDR 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080A00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX3GCR0_CALBYP_MASK | DDR_PHY_DX3GCR0_MDLEN_MASK | DDR_PHY_DX3GCR0_CODTSHFT_MASK | DDR_PHY_DX3GCR0_DQSDCC_MASK | DDR_PHY_DX3GCR0_RDDLY_MASK | DDR_PHY_DX3GCR0_RESERVED_19_14_MASK | DDR_PHY_DX3GCR0_DQSNSEPDR_MASK | DDR_PHY_DX3GCR0_DQSSEPDR_MASK | DDR_PHY_DX3GCR0_RTTOAL_MASK | DDR_PHY_DX3GCR0_RTTOH_MASK | DDR_PHY_DX3GCR0_CPDRSHFT_MASK | DDR_PHY_DX3GCR0_DQSRPD_MASK | DDR_PHY_DX3GCR0_DQSGPDR_MASK | DDR_PHY_DX3GCR0_RESERVED_4_MASK | DDR_PHY_DX3GCR0_DQSGODT_MASK | DDR_PHY_DX3GCR0_DQSGOE_MASK | DDR_PHY_DX3GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_4 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX3GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX3GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DQSG On-Die Termination + * PSU_DDR_PHY_DX4GCR0_DQSGODT 0x0 - /*Register : DX3GCR1 @ 0XFD080A04

      + * DQSG Output Enable + * PSU_DDR_PHY_DX4GCR0_DQSGOE 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX3GCR1_DXPDRMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_1_0 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX3GCR1_RESERVED_15 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080B00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX3GCR1_QSNSEL 0x1 + /* + * Register : DX4GCR1 @ 0XFD080B04 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX3GCR1_QSSEL 0x1 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX4GCR1_DXPDRMODE 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX3GCR1_OEEN 0x1 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX4GCR1_RESERVED_15 0x0 - Enables PDR in a byte lane - PSU_DDR_PHY_DX3GCR1_PDREN 0x1 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX4GCR1_QSNSEL 0x1 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX3GCR1_TEEN 0x1 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX4GCR1_QSSEL 0x1 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX3GCR1_DSEN 0x1 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX4GCR1_OEEN 0x1 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX3GCR1_DMEN 0x1 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX4GCR1_PDREN 0x1 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX3GCR1_DQEN 0xff + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX4GCR1_TEEN 0x1 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080A04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX3GCR1_DXPDRMODE_MASK | DDR_PHY_DX3GCR1_RESERVED_15_MASK | DDR_PHY_DX3GCR1_QSNSEL_MASK | DDR_PHY_DX3GCR1_QSSEL_MASK | DDR_PHY_DX3GCR1_OEEN_MASK | DDR_PHY_DX3GCR1_PDREN_MASK | DDR_PHY_DX3GCR1_TEEN_MASK | DDR_PHY_DX3GCR1_DSEN_MASK | DDR_PHY_DX3GCR1_DMEN_MASK | DDR_PHY_DX3GCR1_DQEN_MASK | 0 ); + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX4GCR1_DSEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX3GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX4GCR1_DMEN 0x1 - /*Register : DX3GCR4 @ 0XFD080A10

      + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX4GCR1_DQEN 0xff - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX3GCR4_RESERVED_31_29 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080B04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX3GCR4_DXREFPEN 0x0 + /* + * Register : DX4GCR4 @ 0XFD080B10 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX3GCR4_DXREFEEN 0x3 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX4GCR4_RESERVED_31_29 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX3GCR4_DXREFSEN 0x1 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX4GCR4_DXREFPEN 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR4_RESERVED_24 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX4GCR4_DXREFEEN 0x3 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX3GCR4_DXREFESELRANGE 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX4GCR4_DXREFSEN 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX3GCR4_DXREFESEL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR4_RESERVED_24 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX3GCR4_DXREFSSELRANGE 0x1 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX4GCR4_DXREFESELRANGE 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX3GCR4_DXREFSSEL 0x30 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX4GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR4_RESERVED_7_6 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX4GCR4_DXREFSSELRANGE 0x1 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX3GCR4_DXREFIEN 0xf + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX4GCR4_DXREFSSEL 0x30 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX3GCR4_DXREFIMON 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR4_RESERVED_7_6 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080A10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX3GCR4_RESERVED_31_29_MASK | DDR_PHY_DX3GCR4_DXREFPEN_MASK | DDR_PHY_DX3GCR4_DXREFEEN_MASK | DDR_PHY_DX3GCR4_DXREFSEN_MASK | DDR_PHY_DX3GCR4_RESERVED_24_MASK | DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX3GCR4_DXREFESEL_MASK | DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX3GCR4_DXREFSSEL_MASK | DDR_PHY_DX3GCR4_RESERVED_7_6_MASK | DDR_PHY_DX3GCR4_DXREFIEN_MASK | DDR_PHY_DX3GCR4_DXREFIMON_MASK | 0 ); + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX4GCR4_DXREFIEN 0xf - RegVal = ((0x00000000U << DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX3GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX3GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX4GCR4_DXREFIMON 0x0 - /*Register : DX3GCR5 @ 0XFD080A14

      + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080B10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_31 0x0 + /* + * Register : DX4GCR5 @ 0XFD080B14 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX3GCR5_DXREFISELR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_31 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_23 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR3 0x9 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX3GCR5_DXREFISELR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_23 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_15 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR2 0x9 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_7 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x55 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_7 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX3GCR5_RESERVED_31_MASK | DDR_PHY_DX3GCR5_DXREFISELR3_MASK | DDR_PHY_DX3GCR5_RESERVED_23_MASK | DDR_PHY_DX3GCR5_DXREFISELR2_MASK | DDR_PHY_DX3GCR5_RESERVED_15_MASK | DDR_PHY_DX3GCR5_DXREFISELR1_MASK | DDR_PHY_DX3GCR5_RESERVED_7_MASK | DDR_PHY_DX3GCR5_DXREFISELR0_MASK | 0 ); + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x55 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - /*Register : DX3GCR6 @ 0XFD080A18

      + /* + * Register : DX4GCR6 @ 0XFD080B18 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_31_30 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_31_30 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR3 0x9 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR3 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_23_22 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_23_22 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR2 0x9 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_15_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_15_14 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR1 0x2b + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR0 0x2b + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR0 0x2b - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080A18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX3GCR6_RESERVED_31_30_MASK | DDR_PHY_DX3GCR6_DXDQVREFR3_MASK | DDR_PHY_DX3GCR6_RESERVED_23_22_MASK | DDR_PHY_DX3GCR6_DXDQVREFR2_MASK | DDR_PHY_DX3GCR6_RESERVED_15_14_MASK | DDR_PHY_DX3GCR6_DXDQVREFR1_MASK | DDR_PHY_DX3GCR6_RESERVED_7_6_MASK | DDR_PHY_DX3GCR6_DXDQVREFR0_MASK | 0 ); + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080B18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + /* + * Register : DX5GCR0 @ 0XFD080C00 - /*Register : DX3LCDLR2 @ 0XFD080A88

      + * Calibration Bypass + * PSU_DDR_PHY_DX5GCR0_CALBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_31_25 0x0 + * Master Delay Line Enable + * PSU_DDR_PHY_DX5GCR0_MDLEN 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_24_16 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX5GCR0_CODTSHFT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_15_9 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX5GCR0_DQSDCC 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX3LCDLR2_DQSGD 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX5GCR0_RDDLY 0x8 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080A88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX3LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_19_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSNSEPDR 0x0 - /*Register : DX3GTR0 @ 0XFD080AC0

      + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSSEPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_31_24 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX5GCR0_RTTOAL 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX3GTR0_WDQSL 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX5GCR0_RTTOH 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3GTR0_RESERVED_23_20 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX5GCR0_CPDRSHFT 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX3GTR0_WLSL 0x2 + * DQSR Power Down + * PSU_DDR_PHY_DX5GCR0_DQSRPD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_15_13 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSGPDR 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3GTR0_RESERVED_12_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_4 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_7_5 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX5GCR0_DQSGODT 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX3GTR0_DGSL 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX5GCR0_DQSGOE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080AC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX3GTR0_RESERVED_31_24_MASK | DDR_PHY_DX3GTR0_WDQSL_MASK | DDR_PHY_DX3GTR0_RESERVED_23_20_MASK | DDR_PHY_DX3GTR0_WLSL_MASK | DDR_PHY_DX3GTR0_RESERVED_15_13_MASK | DDR_PHY_DX3GTR0_RESERVED_12_8_MASK | DDR_PHY_DX3GTR0_RESERVED_7_5_MASK | DDR_PHY_DX3GTR0_DGSL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_1_0 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX3GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080C00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - /*Register : DX4GCR0 @ 0XFD080B00

      + /* + * Register : DX5GCR1 @ 0XFD080C04 - Calibration Bypass - PSU_DDR_PHY_DX4GCR0_CALBYP 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX5GCR1_DXPDRMODE 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX4GCR0_MDLEN 0x1 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX5GCR1_RESERVED_15 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX4GCR0_CODTSHFT 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX5GCR1_QSNSEL 0x1 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX4GCR0_DQSDCC 0x0 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX5GCR1_QSSEL 0x1 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX4GCR0_RDDLY 0x8 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX5GCR1_OEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_19_14 0x0 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX5GCR1_PDREN 0x1 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSNSEPDR 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX5GCR1_TEEN 0x1 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSSEPDR 0x0 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX5GCR1_DSEN 0x1 - RTT On Additive Latency - PSU_DDR_PHY_DX4GCR0_RTTOAL 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX5GCR1_DMEN 0x1 - RTT Output Hold - PSU_DDR_PHY_DX4GCR0_RTTOH 0x3 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX5GCR1_DQEN 0xff - Configurable PDR Phase Shift - PSU_DDR_PHY_DX4GCR0_CPDRSHFT 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080C04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - DQSR Power Down - PSU_DDR_PHY_DX4GCR0_DQSRPD 0x0 + /* + * Register : DX5GCR4 @ 0XFD080C10 - DQSG Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSGPDR 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX5GCR4_RESERVED_31_29 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_4 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX5GCR4_DXREFPEN 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX4GCR0_DQSGODT 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX5GCR4_DXREFEEN 0x3 - DQSG Output Enable - PSU_DDR_PHY_DX4GCR0_DQSGOE 0x1 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX5GCR4_DXREFSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_1_0 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR4_RESERVED_24 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080B00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX4GCR0_CALBYP_MASK | DDR_PHY_DX4GCR0_MDLEN_MASK | DDR_PHY_DX4GCR0_CODTSHFT_MASK | DDR_PHY_DX4GCR0_DQSDCC_MASK | DDR_PHY_DX4GCR0_RDDLY_MASK | DDR_PHY_DX4GCR0_RESERVED_19_14_MASK | DDR_PHY_DX4GCR0_DQSNSEPDR_MASK | DDR_PHY_DX4GCR0_DQSSEPDR_MASK | DDR_PHY_DX4GCR0_RTTOAL_MASK | DDR_PHY_DX4GCR0_RTTOH_MASK | DDR_PHY_DX4GCR0_CPDRSHFT_MASK | DDR_PHY_DX4GCR0_DQSRPD_MASK | DDR_PHY_DX4GCR0_DQSGPDR_MASK | DDR_PHY_DX4GCR0_RESERVED_4_MASK | DDR_PHY_DX4GCR0_DQSGODT_MASK | DDR_PHY_DX4GCR0_DQSGOE_MASK | DDR_PHY_DX4GCR0_RESERVED_1_0_MASK | 0 ); + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX5GCR4_DXREFESELRANGE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX4GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX4GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX5GCR4_DXREFESEL 0x0 - /*Register : DX4GCR1 @ 0XFD080B04

      + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX5GCR4_DXREFSSELRANGE 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX4GCR1_DXPDRMODE 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX5GCR4_DXREFSSEL 0x30 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX4GCR1_RESERVED_15 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR4_RESERVED_7_6 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX4GCR1_QSNSEL 0x1 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX5GCR4_DXREFIEN 0xf - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX4GCR1_QSSEL 0x1 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX5GCR4_DXREFIMON 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX4GCR1_OEEN 0x1 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080C10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Enables PDR in a byte lane - PSU_DDR_PHY_DX4GCR1_PDREN 0x1 + /* + * Register : DX5GCR5 @ 0XFD080C14 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX4GCR1_TEEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_31 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX4GCR1_DSEN 0x1 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR3 0x9 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX4GCR1_DMEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_23 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX4GCR1_DQEN 0xff + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR2 0x9 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080B04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX4GCR1_DXPDRMODE_MASK | DDR_PHY_DX4GCR1_RESERVED_15_MASK | DDR_PHY_DX4GCR1_QSNSEL_MASK | DDR_PHY_DX4GCR1_QSSEL_MASK | DDR_PHY_DX4GCR1_OEEN_MASK | DDR_PHY_DX4GCR1_PDREN_MASK | DDR_PHY_DX4GCR1_TEEN_MASK | DDR_PHY_DX4GCR1_DSEN_MASK | DDR_PHY_DX4GCR1_DMEN_MASK | DDR_PHY_DX4GCR1_DQEN_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_15 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX4GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x55 - /*Register : DX4GCR4 @ 0XFD080B10

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_7 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX4GCR4_RESERVED_31_29 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x55 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX4GCR4_DXREFPEN 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX4GCR4_DXREFEEN 0x3 + /* + * Register : DX5GCR6 @ 0XFD080C18 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX4GCR4_DXREFSEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_31_30 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR4_RESERVED_24 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR3 0x9 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX4GCR4_DXREFESELRANGE 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_23_22 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX4GCR4_DXREFESEL 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR2 0x9 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX4GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_15_14 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX4GCR4_DXREFSSEL 0x30 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR4_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_7_6 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX4GCR4_DXREFIEN 0xf + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR0 0x2b - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX4GCR4_DXREFIMON 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080C18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080B10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX4GCR4_RESERVED_31_29_MASK | DDR_PHY_DX4GCR4_DXREFPEN_MASK | DDR_PHY_DX4GCR4_DXREFEEN_MASK | DDR_PHY_DX4GCR4_DXREFSEN_MASK | DDR_PHY_DX4GCR4_RESERVED_24_MASK | DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX4GCR4_DXREFESEL_MASK | DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX4GCR4_DXREFSSEL_MASK | DDR_PHY_DX4GCR4_RESERVED_7_6_MASK | DDR_PHY_DX4GCR4_DXREFIEN_MASK | DDR_PHY_DX4GCR4_DXREFIMON_MASK | 0 ); + /* + * Register : DX6GCR0 @ 0XFD080D00 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX4GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX4GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Calibration Bypass + * PSU_DDR_PHY_DX6GCR0_CALBYP 0x0 - /*Register : DX4GCR5 @ 0XFD080B14

      + * Master Delay Line Enable + * PSU_DDR_PHY_DX6GCR0_MDLEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_31 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX6GCR0_CODTSHFT 0x0 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX4GCR5_DXREFISELR3 0x9 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX6GCR0_DQSDCC 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_23 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX6GCR0_RDDLY 0x8 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX4GCR5_DXREFISELR2 0x9 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_19_14 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_15 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSNSEPDR 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x4f + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSSEPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_7 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX6GCR0_RTTOAL 0x0 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x4f + * RTT Output Hold + * PSU_DDR_PHY_DX6GCR0_RTTOH 0x3 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX4GCR5_RESERVED_31_MASK | DDR_PHY_DX4GCR5_DXREFISELR3_MASK | DDR_PHY_DX4GCR5_RESERVED_23_MASK | DDR_PHY_DX4GCR5_DXREFISELR2_MASK | DDR_PHY_DX4GCR5_RESERVED_15_MASK | DDR_PHY_DX4GCR5_DXREFISELR1_MASK | DDR_PHY_DX4GCR5_RESERVED_7_MASK | DDR_PHY_DX4GCR5_DXREFISELR0_MASK | 0 ); + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX6GCR0_CPDRSHFT 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DQSR Power Down + * PSU_DDR_PHY_DX6GCR0_DQSRPD 0x0 - /*Register : DX4GCR6 @ 0XFD080B18

      + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSGPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_4 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR3 0x9 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX6GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_23_22 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX6GCR0_DQSGOE 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR2 0x9 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_1_0 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_15_14 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080D00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR1 0x2b + /* + * Register : DX6GCR1 @ 0XFD080D04 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_7_6 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX6GCR1_DXPDRMODE 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR0 0x2b + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX6GCR1_RESERVED_15 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080B18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX4GCR6_RESERVED_31_30_MASK | DDR_PHY_DX4GCR6_DXDQVREFR3_MASK | DDR_PHY_DX4GCR6_RESERVED_23_22_MASK | DDR_PHY_DX4GCR6_DXDQVREFR2_MASK | DDR_PHY_DX4GCR6_RESERVED_15_14_MASK | DDR_PHY_DX4GCR6_DXDQVREFR1_MASK | DDR_PHY_DX4GCR6_RESERVED_7_6_MASK | DDR_PHY_DX4GCR6_DXDQVREFR0_MASK | 0 ); + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX6GCR1_QSNSEL 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX6GCR1_QSSEL 0x1 - /*Register : DX4LCDLR2 @ 0XFD080B88

      + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX6GCR1_OEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_31_25 0x0 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX6GCR1_PDREN 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_24_16 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX6GCR1_TEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_15_9 0x0 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX6GCR1_DSEN 0x1 - Read DQS Gating Delay - PSU_DDR_PHY_DX4LCDLR2_DQSGD 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX6GCR1_DMEN 0x1 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080B88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX4LCDLR2_DQSGD_MASK | 0 ); + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX6GCR1_DQEN 0xff - RegVal = ((0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080D04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - /*Register : DX4GTR0 @ 0XFD080BC0

      + /* + * Register : DX6GCR4 @ 0XFD080D10 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_31_24 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX6GCR4_RESERVED_31_29 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX4GTR0_WDQSL 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX6GCR4_DXREFPEN 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4GTR0_RESERVED_23_20 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX6GCR4_DXREFEEN 0x3 - Write Leveling System Latency - PSU_DDR_PHY_DX4GTR0_WLSL 0x2 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX6GCR4_DXREFSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_15_13 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR4_RESERVED_24 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4GTR0_RESERVED_12_8 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX6GCR4_DXREFESELRANGE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_7_5 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX6GCR4_DXREFESEL 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX4GTR0_DGSL 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX6GCR4_DXREFSSELRANGE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080BC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX4GTR0_RESERVED_31_24_MASK | DDR_PHY_DX4GTR0_WDQSL_MASK | DDR_PHY_DX4GTR0_RESERVED_23_20_MASK | DDR_PHY_DX4GTR0_WLSL_MASK | DDR_PHY_DX4GTR0_RESERVED_15_13_MASK | DDR_PHY_DX4GTR0_RESERVED_12_8_MASK | DDR_PHY_DX4GTR0_RESERVED_7_5_MASK | DDR_PHY_DX4GTR0_DGSL_MASK | 0 ); + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX6GCR4_DXREFSSEL 0x30 - RegVal = ((0x00000000U << DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX4GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR4_RESERVED_7_6 0x0 - /*Register : DX5GCR0 @ 0XFD080C00

      + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX6GCR4_DXREFIEN 0xf - Calibration Bypass - PSU_DDR_PHY_DX5GCR0_CALBYP 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX6GCR4_DXREFIMON 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX5GCR0_MDLEN 0x1 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080D10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX5GCR0_CODTSHFT 0x0 + /* + * Register : DX6GCR5 @ 0XFD080D14 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX5GCR0_DQSDCC 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_31 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX5GCR0_RDDLY 0x8 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_19_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_23 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSNSEPDR 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR2 0x9 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_15 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX5GCR0_RTTOAL 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x55 - RTT Output Hold - PSU_DDR_PHY_DX5GCR0_RTTOH 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_7 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX5GCR0_CPDRSHFT 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x55 - DQSR Power Down - PSU_DDR_PHY_DX5GCR0_DQSRPD 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - DQSG Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSGPDR 0x0 + /* + * Register : DX6GCR6 @ 0XFD080D18 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_31_30 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX5GCR0_DQSGODT 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR3 0x9 - DQSG Output Enable - PSU_DDR_PHY_DX5GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_1_0 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR2 0x9 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080C00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX5GCR0_CALBYP_MASK | DDR_PHY_DX5GCR0_MDLEN_MASK | DDR_PHY_DX5GCR0_CODTSHFT_MASK | DDR_PHY_DX5GCR0_DQSDCC_MASK | DDR_PHY_DX5GCR0_RDDLY_MASK | DDR_PHY_DX5GCR0_RESERVED_19_14_MASK | DDR_PHY_DX5GCR0_DQSNSEPDR_MASK | DDR_PHY_DX5GCR0_DQSSEPDR_MASK | DDR_PHY_DX5GCR0_RTTOAL_MASK | DDR_PHY_DX5GCR0_RTTOH_MASK | DDR_PHY_DX5GCR0_CPDRSHFT_MASK | DDR_PHY_DX5GCR0_DQSRPD_MASK | DDR_PHY_DX5GCR0_DQSGPDR_MASK | DDR_PHY_DX5GCR0_RESERVED_4_MASK | DDR_PHY_DX5GCR0_DQSGODT_MASK | DDR_PHY_DX5GCR0_DQSGOE_MASK | DDR_PHY_DX5GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_15_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX5GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX5GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR1 0x2b - /*Register : DX5GCR1 @ 0XFD080C04

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_7_6 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX5GCR1_DXPDRMODE 0x0 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX5GCR1_RESERVED_15 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080D18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX5GCR1_QSNSEL 0x1 + /* + * Register : DX7GCR0 @ 0XFD080E00 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX5GCR1_QSSEL 0x1 + * Calibration Bypass + * PSU_DDR_PHY_DX7GCR0_CALBYP 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX5GCR1_OEEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX7GCR0_MDLEN 0x1 - Enables PDR in a byte lane - PSU_DDR_PHY_DX5GCR1_PDREN 0x1 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX7GCR0_CODTSHFT 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX5GCR1_TEEN 0x1 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX7GCR0_DQSDCC 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX5GCR1_DSEN 0x1 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX7GCR0_RDDLY 0x8 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX5GCR1_DMEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_19_14 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX5GCR1_DQEN 0xff + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSNSEPDR 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080C04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX5GCR1_DXPDRMODE_MASK | DDR_PHY_DX5GCR1_RESERVED_15_MASK | DDR_PHY_DX5GCR1_QSNSEL_MASK | DDR_PHY_DX5GCR1_QSSEL_MASK | DDR_PHY_DX5GCR1_OEEN_MASK | DDR_PHY_DX5GCR1_PDREN_MASK | DDR_PHY_DX5GCR1_TEEN_MASK | DDR_PHY_DX5GCR1_DSEN_MASK | DDR_PHY_DX5GCR1_DMEN_MASK | DDR_PHY_DX5GCR1_DQEN_MASK | 0 ); + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSSEPDR 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX5GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * RTT On Additive Latency + * PSU_DDR_PHY_DX7GCR0_RTTOAL 0x0 - /*Register : DX5GCR4 @ 0XFD080C10

      + * RTT Output Hold + * PSU_DDR_PHY_DX7GCR0_RTTOH 0x3 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX5GCR4_RESERVED_31_29 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX7GCR0_CPDRSHFT 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX5GCR4_DXREFPEN 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX7GCR0_DQSRPD 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX5GCR4_DXREFEEN 0x3 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSGPDR 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX5GCR4_DXREFSEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_4 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR4_RESERVED_24 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX7GCR0_DQSGODT 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX5GCR4_DXREFESELRANGE 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX7GCR0_DQSGOE 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX5GCR4_DXREFESEL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_1_0 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX5GCR4_DXREFSSELRANGE 0x1 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080E00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX5GCR4_DXREFSSEL 0x30 + /* + * Register : DX7GCR1 @ 0XFD080E04 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR4_RESERVED_7_6 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX7GCR1_DXPDRMODE 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX5GCR4_DXREFIEN 0xf + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX7GCR1_RESERVED_15 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX5GCR4_DXREFIMON 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX7GCR1_QSNSEL 0x1 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080C10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX5GCR4_RESERVED_31_29_MASK | DDR_PHY_DX5GCR4_DXREFPEN_MASK | DDR_PHY_DX5GCR4_DXREFEEN_MASK | DDR_PHY_DX5GCR4_DXREFSEN_MASK | DDR_PHY_DX5GCR4_RESERVED_24_MASK | DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX5GCR4_DXREFESEL_MASK | DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX5GCR4_DXREFSSEL_MASK | DDR_PHY_DX5GCR4_RESERVED_7_6_MASK | DDR_PHY_DX5GCR4_DXREFIEN_MASK | DDR_PHY_DX5GCR4_DXREFIMON_MASK | 0 ); + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX7GCR1_QSSEL 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX5GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX5GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX7GCR1_OEEN 0x1 - /*Register : DX5GCR5 @ 0XFD080C14

      + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX7GCR1_PDREN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_31 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX7GCR1_TEEN 0x1 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX5GCR5_DXREFISELR3 0x9 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX7GCR1_DSEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_23 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX7GCR1_DMEN 0x1 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX5GCR5_DXREFISELR2 0x9 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX7GCR1_DQEN 0xff - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_15 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080E04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x4f + /* + * Register : DX7GCR4 @ 0XFD080E10 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_7 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX7GCR4_RESERVED_31_29 0x0 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x4f + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX7GCR4_DXREFPEN 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX5GCR5_RESERVED_31_MASK | DDR_PHY_DX5GCR5_DXREFISELR3_MASK | DDR_PHY_DX5GCR5_RESERVED_23_MASK | DDR_PHY_DX5GCR5_DXREFISELR2_MASK | DDR_PHY_DX5GCR5_RESERVED_15_MASK | DDR_PHY_DX5GCR5_DXREFISELR1_MASK | DDR_PHY_DX5GCR5_RESERVED_7_MASK | DDR_PHY_DX5GCR5_DXREFISELR0_MASK | 0 ); + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX7GCR4_DXREFEEN 0x3 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX7GCR4_DXREFSEN 0x1 - /*Register : DX5GCR6 @ 0XFD080C18

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR4_RESERVED_24 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_31_30 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX7GCR4_DXREFESELRANGE 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR3 0x9 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX7GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_23_22 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX7GCR4_DXREFSSELRANGE 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR2 0x9 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX7GCR4_DXREFSSEL 0x30 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_15_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR4_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR1 0x2b + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX7GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_7_6 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX7GCR4_DXREFIMON 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR0 0x2b + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080E10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080C18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX5GCR6_RESERVED_31_30_MASK | DDR_PHY_DX5GCR6_DXDQVREFR3_MASK | DDR_PHY_DX5GCR6_RESERVED_23_22_MASK | DDR_PHY_DX5GCR6_DXDQVREFR2_MASK | DDR_PHY_DX5GCR6_RESERVED_15_14_MASK | DDR_PHY_DX5GCR6_DXDQVREFR1_MASK | DDR_PHY_DX5GCR6_RESERVED_7_6_MASK | DDR_PHY_DX5GCR6_DXDQVREFR0_MASK | 0 ); + /* + * Register : DX7GCR5 @ 0XFD080E14 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_31 0x0 - /*Register : DX5LCDLR2 @ 0XFD080C88

      + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_31_25 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_23 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_24_16 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR2 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_15_9 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_15 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX5LCDLR2_DQSGD 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x55 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080C88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX5LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_7 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x55 - /*Register : DX5GTR0 @ 0XFD080CC0

      + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_31_24 0x0 + /* + * Register : DX7GCR6 @ 0XFD080E18 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX5GTR0_WDQSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_31_30 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5GTR0_RESERVED_23_20 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR3 0x9 - Write Leveling System Latency - PSU_DDR_PHY_DX5GTR0_WLSL 0x2 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_15_13 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR2 0x9 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5GTR0_RESERVED_12_8 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_7_5 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR1 0x2b - DQS Gating System Latency - PSU_DDR_PHY_DX5GTR0_DGSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_7_6 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080CC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX5GTR0_RESERVED_31_24_MASK | DDR_PHY_DX5GTR0_WDQSL_MASK | DDR_PHY_DX5GTR0_RESERVED_23_20_MASK | DDR_PHY_DX5GTR0_WLSL_MASK | DDR_PHY_DX5GTR0_RESERVED_15_13_MASK | DDR_PHY_DX5GTR0_RESERVED_12_8_MASK | DDR_PHY_DX5GTR0_RESERVED_7_5_MASK | DDR_PHY_DX5GTR0_DGSL_MASK | 0 ); + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR0 0x2b - RegVal = ((0x00000000U << DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX5GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080E18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - /*Register : DX6GCR0 @ 0XFD080D00

      + /* + * Register : DX8GCR0 @ 0XFD080F00 - Calibration Bypass - PSU_DDR_PHY_DX6GCR0_CALBYP 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX8GCR0_CALBYP 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX6GCR0_MDLEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX8GCR0_MDLEN 0x1 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX6GCR0_CODTSHFT 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX8GCR0_CODTSHFT 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX6GCR0_DQSDCC 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX8GCR0_DQSDCC 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX6GCR0_RDDLY 0x8 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX8GCR0_RDDLY 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_19_14 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSNSEPDR 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSNSEPDR 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSSEPDR 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSSEPDR 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX6GCR0_RTTOAL 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX8GCR0_RTTOAL 0x0 - RTT Output Hold - PSU_DDR_PHY_DX6GCR0_RTTOH 0x3 + * RTT Output Hold + * PSU_DDR_PHY_DX8GCR0_RTTOH 0x3 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX6GCR0_CPDRSHFT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX8GCR0_CPDRSHFT 0x0 - DQSR Power Down - PSU_DDR_PHY_DX6GCR0_DQSRPD 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX8GCR0_DQSRPD 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSGPDR 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSGPDR 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_4 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX6GCR0_DQSGODT 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX8GCR0_DQSGODT 0x0 - DQSG Output Enable - PSU_DDR_PHY_DX6GCR0_DQSGOE 0x1 + * DQSG Output Enable + * PSU_DDR_PHY_DX8GCR0_DQSGOE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_1_0 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_1_0 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080D00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX6GCR0_CALBYP_MASK | DDR_PHY_DX6GCR0_MDLEN_MASK | DDR_PHY_DX6GCR0_CODTSHFT_MASK | DDR_PHY_DX6GCR0_DQSDCC_MASK | DDR_PHY_DX6GCR0_RDDLY_MASK | DDR_PHY_DX6GCR0_RESERVED_19_14_MASK | DDR_PHY_DX6GCR0_DQSNSEPDR_MASK | DDR_PHY_DX6GCR0_DQSSEPDR_MASK | DDR_PHY_DX6GCR0_RTTOAL_MASK | DDR_PHY_DX6GCR0_RTTOH_MASK | DDR_PHY_DX6GCR0_CPDRSHFT_MASK | DDR_PHY_DX6GCR0_DQSRPD_MASK | DDR_PHY_DX6GCR0_DQSGPDR_MASK | DDR_PHY_DX6GCR0_RESERVED_4_MASK | DDR_PHY_DX6GCR0_DQSGODT_MASK | DDR_PHY_DX6GCR0_DQSGOE_MASK | DDR_PHY_DX6GCR0_RESERVED_1_0_MASK | 0 ); + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080F00, 0xFFFFFFFFU ,0x40800624U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR0_OFFSET, 0xFFFFFFFFU, 0x40800624U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX6GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX6GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX6GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + /* + * Register : DX8GCR1 @ 0XFD080F04 - /*Register : DX6GCR1 @ 0XFD080D04

      + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX8GCR1_DXPDRMODE 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX6GCR1_DXPDRMODE 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX8GCR1_RESERVED_15 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX6GCR1_RESERVED_15 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX8GCR1_QSNSEL 0x1 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX6GCR1_QSNSEL 0x1 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX8GCR1_QSSEL 0x1 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX6GCR1_QSSEL 0x1 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX8GCR1_OEEN 0x1 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX6GCR1_OEEN 0x1 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX8GCR1_PDREN 0x1 - Enables PDR in a byte lane - PSU_DDR_PHY_DX6GCR1_PDREN 0x1 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX8GCR1_TEEN 0x1 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX6GCR1_TEEN 0x1 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX8GCR1_DSEN 0x1 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX6GCR1_DSEN 0x1 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX8GCR1_DMEN 0x1 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX6GCR1_DMEN 0x1 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX8GCR1_DQEN 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX6GCR1_DQEN 0xff + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080F04, 0xFFFFFFFFU ,0x00007F00U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR1_OFFSET, 0xFFFFFFFFU, 0x00007F00U); +/*##################################################################### */ - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080D04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX6GCR1_DXPDRMODE_MASK | DDR_PHY_DX6GCR1_RESERVED_15_MASK | DDR_PHY_DX6GCR1_QSNSEL_MASK | DDR_PHY_DX6GCR1_QSSEL_MASK | DDR_PHY_DX6GCR1_OEEN_MASK | DDR_PHY_DX6GCR1_PDREN_MASK | DDR_PHY_DX6GCR1_TEEN_MASK | DDR_PHY_DX6GCR1_DSEN_MASK | DDR_PHY_DX6GCR1_DMEN_MASK | DDR_PHY_DX6GCR1_DQEN_MASK | 0 ); + /* + * Register : DX8GCR4 @ 0XFD080F10 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX6GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX8GCR4_RESERVED_31_29 0x0 - /*Register : DX6GCR4 @ 0XFD080D10

      + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX8GCR4_DXREFPEN 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX6GCR4_RESERVED_31_29 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX8GCR4_DXREFEEN 0x3 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX6GCR4_DXREFPEN 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX8GCR4_DXREFSEN 0x1 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX6GCR4_DXREFEEN 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR4_RESERVED_24 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX6GCR4_DXREFSEN 0x1 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX8GCR4_DXREFESELRANGE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR4_RESERVED_24 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX8GCR4_DXREFESEL 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX6GCR4_DXREFESELRANGE 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX8GCR4_DXREFSSELRANGE 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX6GCR4_DXREFESEL 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX8GCR4_DXREFSSEL 0x30 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX6GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR4_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX6GCR4_DXREFSSEL 0x30 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX8GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR4_RESERVED_7_6 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX8GCR4_DXREFIMON 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX6GCR4_DXREFIEN 0xf + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080F10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX6GCR4_DXREFIMON 0x0 + /* + * Register : DX8GCR5 @ 0XFD080F14 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080D10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX6GCR4_RESERVED_31_29_MASK | DDR_PHY_DX6GCR4_DXREFPEN_MASK | DDR_PHY_DX6GCR4_DXREFEEN_MASK | DDR_PHY_DX6GCR4_DXREFSEN_MASK | DDR_PHY_DX6GCR4_RESERVED_24_MASK | DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX6GCR4_DXREFESEL_MASK | DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX6GCR4_DXREFSSEL_MASK | DDR_PHY_DX6GCR4_RESERVED_7_6_MASK | DDR_PHY_DX6GCR4_DXREFIEN_MASK | DDR_PHY_DX6GCR4_DXREFIMON_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_31 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX6GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX6GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR3 0x9 - /*Register : DX6GCR5 @ 0XFD080D14

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_23 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_31 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR2 0x9 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX6GCR5_DXREFISELR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_23 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x55 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX6GCR5_DXREFISELR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_7 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_15 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x55 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x4f + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_7 0x0 + /* + * Register : DX8GCR6 @ 0XFD080F18 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_31_30 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX6GCR5_RESERVED_31_MASK | DDR_PHY_DX6GCR5_DXREFISELR3_MASK | DDR_PHY_DX6GCR5_RESERVED_23_MASK | DDR_PHY_DX6GCR5_DXREFISELR2_MASK | DDR_PHY_DX6GCR5_RESERVED_15_MASK | DDR_PHY_DX6GCR5_DXREFISELR1_MASK | DDR_PHY_DX6GCR5_RESERVED_7_MASK | DDR_PHY_DX6GCR5_DXREFISELR0_MASK | 0 ); + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR3 0x9 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_23_22 0x0 - /*Register : DX6GCR6 @ 0XFD080D18

      + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_31_30 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_15_14 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR3 0x9 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_23_22 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR2 0x9 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_15_14 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080F18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR1 0x2b + /* + * Register : DX8SL0OSC @ 0XFD081400 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_31_30 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR0 0x2b + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXRDCLK 0x2 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080D18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX6GCR6_RESERVED_31_30_MASK | DDR_PHY_DX6GCR6_DXDQVREFR3_MASK | DDR_PHY_DX6GCR6_RESERVED_23_22_MASK | DDR_PHY_DX6GCR6_DXDQVREFR2_MASK | DDR_PHY_DX6GCR6_RESERVED_15_14_MASK | DDR_PHY_DX6GCR6_DXDQVREFR1_MASK | DDR_PHY_DX6GCR6_RESERVED_7_6_MASK | DDR_PHY_DX6GCR6_DXDQVREFR0_MASK | 0 ); + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXDDRCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXCTLCLK 0x2 - /*Register : DX6LCDLR2 @ 0XFD080D88

      + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL0OSC_CLKLEVEL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_31_25 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL0OSC_LBMODE 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_24_16 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL0OSC_LBGSDQS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_15_9 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL0OSC_LBGDQS 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX6LCDLR2_DQSGD 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL0OSC_LBDQSS 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080D88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX6LCDLR2_DQSGD_MASK | 0 ); + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL0OSC_PHYHRST 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL0OSC_PHYFRST 0x1 - /*Register : DX6GTR0 @ 0XFD080DC0

      + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL0OSC_DLTST 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_31_24 0x0 + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL0OSC_DLTMODE 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX6GTR0_WDQSL 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_12_11 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6GTR0_RESERVED_23_20 0x0 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL0OSC_OSCWDDL 0x3 - Write Leveling System Latency - PSU_DDR_PHY_DX6GTR0_WLSL 0x2 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_8_7 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_15_13 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL0OSC_OSCWDL 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6GTR0_RESERVED_12_8 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL0OSC_OSCDIV 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_7_5 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL0OSC_OSCEN 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX6GTR0_DGSL 0x0 + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081400, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080DC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX6GTR0_RESERVED_31_24_MASK | DDR_PHY_DX6GTR0_WDQSL_MASK | DDR_PHY_DX6GTR0_RESERVED_23_20_MASK | DDR_PHY_DX6GTR0_WLSL_MASK | DDR_PHY_DX6GTR0_RESERVED_15_13_MASK | DDR_PHY_DX6GTR0_RESERVED_12_8_MASK | DDR_PHY_DX6GTR0_RESERVED_7_5_MASK | DDR_PHY_DX6GTR0_DGSL_MASK | 0 ); + /* + * Register : DX8SL0PLLCR0 @ 0XFD081404 - RegVal = ((0x00000000U << DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX6GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * PLL Bypass + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLBYP 0x0 - /*Register : DX7GCR0 @ 0XFD080E00

      + * PLL Reset + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLRST 0x0 - Calibration Bypass - PSU_DDR_PHY_DX7GCR0_CALBYP 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLPD 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX7GCR0_MDLEN 0x1 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL0PLLCR0_RSTOPM 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX7GCR0_CODTSHFT 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL0PLLCR0_FRQSEL 0x1 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX7GCR0_DQSDCC 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL0PLLCR0_RLOCKM 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX7GCR0_RDDLY 0x8 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL0PLLCR0_CPPC 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_19_14 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL0PLLCR0_CPIC 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSNSEPDR 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL0PLLCR0_GSHIFT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSSEPDR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX7GCR0_RTTOAL 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL0PLLCR0_ATOEN 0x0 - RTT Output Hold - PSU_DDR_PHY_DX7GCR0_RTTOH 0x3 + * Analog Test Control + * PSU_DDR_PHY_DX8SL0PLLCR0_ATC 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX7GCR0_CPDRSHFT 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL0PLLCR0_DTC 0x0 - DQSR Power Down - PSU_DDR_PHY_DX7GCR0_DQSRPD 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081404, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - DQSG Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSGPDR 0x0 + /* + * Register : DX8SL0DQSCTL @ 0XFD08141C - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX7GCR0_DQSGODT 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_RRRMODE 0x1 - DQSG Output Enable - PSU_DDR_PHY_DX7GCR0_DQSGOE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_1_0 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_WRRMODE 0x1 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080E00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX7GCR0_CALBYP_MASK | DDR_PHY_DX7GCR0_MDLEN_MASK | DDR_PHY_DX7GCR0_CODTSHFT_MASK | DDR_PHY_DX7GCR0_DQSDCC_MASK | DDR_PHY_DX7GCR0_RDDLY_MASK | DDR_PHY_DX7GCR0_RESERVED_19_14_MASK | DDR_PHY_DX7GCR0_DQSNSEPDR_MASK | DDR_PHY_DX7GCR0_DQSSEPDR_MASK | DDR_PHY_DX7GCR0_RTTOAL_MASK | DDR_PHY_DX7GCR0_RTTOH_MASK | DDR_PHY_DX7GCR0_CPDRSHFT_MASK | DDR_PHY_DX7GCR0_DQSRPD_MASK | DDR_PHY_DX7GCR0_DQSGPDR_MASK | DDR_PHY_DX7GCR0_RESERVED_4_MASK | DDR_PHY_DX7GCR0_DQSGODT_MASK | DDR_PHY_DX7GCR0_DQSGOE_MASK | DDR_PHY_DX7GCR0_RESERVED_1_0_MASK | 0 ); + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSGX 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX7GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX7GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL0DQSCTL_LPPLLPD 0x1 - /*Register : DX7GCR1 @ 0XFD080E04

      + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL0DQSCTL_LPIOPD 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX7GCR1_DXPDRMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX7GCR1_RESERVED_15 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL0DQSCTL_QSCNTEN 0x1 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX7GCR1_QSNSEL 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_UDQIOM 0x0 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX7GCR1_QSSEL 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX7GCR1_OEEN 0x1 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL0DQSCTL_DXSR 0x3 - Enables PDR in a byte lane - PSU_DDR_PHY_DX7GCR1_PDREN 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSNRES 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX7GCR1_TEEN 0x1 + * DQS Resistor + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSRES 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX7GCR1_DSEN 0x1 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08141C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Enables DM pin in a byte lane - PSU_DDR_PHY_DX7GCR1_DMEN 0x1 + /* + * Register : DX8SL0DXCTL2 @ 0XFD08142C - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX7GCR1_DQEN 0xff + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080E04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX7GCR1_DXPDRMODE_MASK | DDR_PHY_DX7GCR1_RESERVED_15_MASK | DDR_PHY_DX7GCR1_QSNSEL_MASK | DDR_PHY_DX7GCR1_QSSEL_MASK | DDR_PHY_DX7GCR1_OEEN_MASK | DDR_PHY_DX7GCR1_PDREN_MASK | DDR_PHY_DX7GCR1_TEEN_MASK | DDR_PHY_DX7GCR1_DSEN_MASK | DDR_PHY_DX7GCR1_DMEN_MASK | DDR_PHY_DX7GCR1_DQEN_MASK | 0 ); + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_CRDEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX7GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL0DXCTL2_POSOEX 0x0 - /*Register : DX7GCR4 @ 0XFD080E10

      + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL0DXCTL2_PREOEX 0x1 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX7GCR4_RESERVED_31_29 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_17 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX7GCR4_DXREFPEN 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL0DXCTL2_IOAG 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX7GCR4_DXREFEEN 0x3 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL0DXCTL2_IOLB 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX7GCR4_DXREFSEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR4_RESERVED_24 0x0 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH 0xc - External VREF generator REFSEL range select - PSU_DDR_PHY_DX7GCR4_DXREFESELRANGE 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_RDBI 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX7GCR4_DXREFESEL 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_WDBI 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX7GCR4_DXREFSSELRANGE 0x1 + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL0DXCTL2_PRFBYP 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX7GCR4_DXREFSSEL 0x30 + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL0DXCTL2_RDMODE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR4_RESERVED_7_6 0x0 + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL0DXCTL2_DISRST 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX7GCR4_DXREFIEN 0xf + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL0DXCTL2_DQSGLB 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX7GCR4_DXREFIMON 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_0 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080E10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX7GCR4_RESERVED_31_29_MASK | DDR_PHY_DX7GCR4_DXREFPEN_MASK | DDR_PHY_DX7GCR4_DXREFEEN_MASK | DDR_PHY_DX7GCR4_DXREFSEN_MASK | DDR_PHY_DX7GCR4_RESERVED_24_MASK | DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX7GCR4_DXREFESEL_MASK | DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX7GCR4_DXREFSSEL_MASK | DDR_PHY_DX7GCR4_RESERVED_7_6_MASK | DDR_PHY_DX7GCR4_DXREFIEN_MASK | DDR_PHY_DX7GCR4_DXREFIMON_MASK | 0 ); + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08142C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX7GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX7GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + /* + * Register : DX8SL0IOCR @ 0XFD081430 - /*Register : DX7GCR5 @ 0XFD080E14

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0IOCR_RESERVED_31 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_31 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL0IOCR_DXDACRANGE 0x7 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX7GCR5_DXREFISELR3 0x9 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL0IOCR_DXVREFIOM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_23 0x0 + * DX IO Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXIOM 0x2 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX7GCR5_DXREFISELR2 0x9 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXTXM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_15 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXRXM 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x4f + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081430, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_7 0x0 + /* + * Register : DX8SL1OSC @ 0XFD081440 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x4f + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_31_30 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX7GCR5_RESERVED_31_MASK | DDR_PHY_DX7GCR5_DXREFISELR3_MASK | DDR_PHY_DX7GCR5_RESERVED_23_MASK | DDR_PHY_DX7GCR5_DXREFISELR2_MASK | DDR_PHY_DX7GCR5_RESERVED_15_MASK | DDR_PHY_DX7GCR5_DXREFISELR1_MASK | DDR_PHY_DX7GCR5_RESERVED_7_MASK | DDR_PHY_DX7GCR5_DXREFISELR0_MASK | 0 ); + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXRDCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXDDRCLK 0x2 - /*Register : DX7GCR6 @ 0XFD080E18

      + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXCTLCLK 0x2 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_31_30 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL1OSC_CLKLEVEL 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR3 0x9 + * Loopback Mode + * PSU_DDR_PHY_DX8SL1OSC_LBMODE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_23_22 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL1OSC_LBGSDQS 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR2 0x9 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL1OSC_LBGDQS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_15_14 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL1OSC_LBDQSS 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR1 0x2b + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL1OSC_PHYHRST 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_7_6 0x0 + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL1OSC_PHYFRST 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR0 0x2b + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL1OSC_DLTST 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080E18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX7GCR6_RESERVED_31_30_MASK | DDR_PHY_DX7GCR6_DXDQVREFR3_MASK | DDR_PHY_DX7GCR6_RESERVED_23_22_MASK | DDR_PHY_DX7GCR6_DXDQVREFR2_MASK | DDR_PHY_DX7GCR6_RESERVED_15_14_MASK | DDR_PHY_DX7GCR6_DXDQVREFR1_MASK | DDR_PHY_DX7GCR6_RESERVED_7_6_MASK | DDR_PHY_DX7GCR6_DXDQVREFR0_MASK | 0 ); + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL1OSC_DLTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_12_11 0x3 - /*Register : DX7LCDLR2 @ 0XFD080E88

      + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL1OSC_OSCWDDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_31_25 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_8_7 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_24_16 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL1OSC_OSCWDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_15_9 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL1OSC_OSCDIV 0xf - Read DQS Gating Delay - PSU_DDR_PHY_DX7LCDLR2_DQSGD 0xa + * Oscillator Enable + * PSU_DDR_PHY_DX8SL1OSC_OSCEN 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080E88, 0xFFFFFFFFU ,0x0000000AU) - RegMask = (DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX7LCDLR2_DQSGD_MASK | 0 ); + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081440, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT - | 0x0000000AU << DDR_PHY_DX7LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7LCDLR2_OFFSET ,0xFFFFFFFFU ,0x0000000AU); - /*############################################################################################################################ */ + /* + * Register : DX8SL1PLLCR0 @ 0XFD081444 - /*Register : DX7GTR0 @ 0XFD080EC0

      + * PLL Bypass + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_31_24 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLRST 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX7GTR0_WDQSL 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLPD 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7GTR0_RESERVED_23_20 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL1PLLCR0_RSTOPM 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX7GTR0_WLSL 0x2 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL1PLLCR0_FRQSEL 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_15_13 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL1PLLCR0_RLOCKM 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7GTR0_RESERVED_12_8 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL1PLLCR0_CPPC 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_7_5 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL1PLLCR0_CPIC 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX7GTR0_DGSL 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL1PLLCR0_GSHIFT 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080EC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX7GTR0_RESERVED_31_24_MASK | DDR_PHY_DX7GTR0_WDQSL_MASK | DDR_PHY_DX7GTR0_RESERVED_23_20_MASK | DDR_PHY_DX7GTR0_WLSL_MASK | DDR_PHY_DX7GTR0_RESERVED_15_13_MASK | DDR_PHY_DX7GTR0_RESERVED_12_8_MASK | DDR_PHY_DX7GTR0_RESERVED_7_5_MASK | DDR_PHY_DX7GTR0_DGSL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX7GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL1PLLCR0_ATOEN 0x0 - /*Register : DX8GCR0 @ 0XFD080F00

      + * Analog Test Control + * PSU_DDR_PHY_DX8SL1PLLCR0_ATC 0x0 - Calibration Bypass - PSU_DDR_PHY_DX8GCR0_CALBYP 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL1PLLCR0_DTC 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX8GCR0_MDLEN 0x1 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081444, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX8GCR0_CODTSHFT 0x0 + /* + * Register : DX8SL1DQSCTL @ 0XFD08145C - DQS Duty Cycle Correction - PSU_DDR_PHY_DX8GCR0_DQSDCC 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX8GCR0_RDDLY 0x8 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_RRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSNSEPDR 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_WRRMODE 0x1 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSSEPDR 0x0 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSGX 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX8GCR0_RTTOAL 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL1DQSCTL_LPPLLPD 0x1 - RTT Output Hold - PSU_DDR_PHY_DX8GCR0_RTTOH 0x3 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL1DQSCTL_LPIOPD 0x1 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX8GCR0_CPDRSHFT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15 0x0 - DQSR Power Down - PSU_DDR_PHY_DX8GCR0_DQSRPD 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL1DQSCTL_QSCNTEN 0x1 - DQSG Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSGPDR 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_UDQIOM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX8GCR0_DQSGODT 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL1DQSCTL_DXSR 0x3 - DQSG Output Enable - PSU_DDR_PHY_DX8GCR0_DQSGOE 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSNRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_1_0 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSRES 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080F00, 0xFFFFFFFFU ,0x40800624U) - RegMask = (DDR_PHY_DX8GCR0_CALBYP_MASK | DDR_PHY_DX8GCR0_MDLEN_MASK | DDR_PHY_DX8GCR0_CODTSHFT_MASK | DDR_PHY_DX8GCR0_DQSDCC_MASK | DDR_PHY_DX8GCR0_RDDLY_MASK | DDR_PHY_DX8GCR0_RESERVED_19_14_MASK | DDR_PHY_DX8GCR0_DQSNSEPDR_MASK | DDR_PHY_DX8GCR0_DQSSEPDR_MASK | DDR_PHY_DX8GCR0_RTTOAL_MASK | DDR_PHY_DX8GCR0_RTTOH_MASK | DDR_PHY_DX8GCR0_CPDRSHFT_MASK | DDR_PHY_DX8GCR0_DQSRPD_MASK | DDR_PHY_DX8GCR0_DQSGPDR_MASK | DDR_PHY_DX8GCR0_RESERVED_4_MASK | DDR_PHY_DX8GCR0_DQSGODT_MASK | DDR_PHY_DX8GCR0_DQSGOE_MASK | DDR_PHY_DX8GCR0_RESERVED_1_0_MASK | 0 ); + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08145C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX8GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX8GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSRPD_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR0_OFFSET ,0xFFFFFFFFU ,0x40800624U); - /*############################################################################################################################ */ + /* + * Register : DX8SL1DXCTL2 @ 0XFD08146C - /*Register : DX8GCR1 @ 0XFD080F04

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX8GCR1_DXPDRMODE 0x0 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_CRDEN 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX8GCR1_RESERVED_15 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL1DXCTL2_POSOEX 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX8GCR1_QSNSEL 0x1 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL1DXCTL2_PREOEX 0x1 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX8GCR1_QSSEL 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_17 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX8GCR1_OEEN 0x1 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL1DXCTL2_IOAG 0x0 - Enables PDR in a byte lane - PSU_DDR_PHY_DX8GCR1_PDREN 0x1 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL1DXCTL2_IOLB 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX8GCR1_TEEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX8GCR1_DSEN 0x1 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH 0xc - Enables DM pin in a byte lane - PSU_DDR_PHY_DX8GCR1_DMEN 0x1 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_RDBI 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX8GCR1_DQEN 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_WDBI 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080F04, 0xFFFFFFFFU ,0x00007F00U) - RegMask = (DDR_PHY_DX8GCR1_DXPDRMODE_MASK | DDR_PHY_DX8GCR1_RESERVED_15_MASK | DDR_PHY_DX8GCR1_QSNSEL_MASK | DDR_PHY_DX8GCR1_QSSEL_MASK | DDR_PHY_DX8GCR1_OEEN_MASK | DDR_PHY_DX8GCR1_PDREN_MASK | DDR_PHY_DX8GCR1_TEEN_MASK | DDR_PHY_DX8GCR1_DSEN_MASK | DDR_PHY_DX8GCR1_DMEN_MASK | DDR_PHY_DX8GCR1_DQEN_MASK | 0 ); + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL1DXCTL2_PRFBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_DMEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR1_OFFSET ,0xFFFFFFFFU ,0x00007F00U); - /*############################################################################################################################ */ + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL1DXCTL2_RDMODE 0x0 - /*Register : DX8GCR4 @ 0XFD080F10

      + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL1DXCTL2_DISRST 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX8GCR4_RESERVED_31_29 0x0 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL1DXCTL2_DQSGLB 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX8GCR4_DXREFPEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_0 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX8GCR4_DXREFEEN 0x3 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08146C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX8GCR4_DXREFSEN 0x1 + /* + * Register : DX8SL1IOCR @ 0XFD081470 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR4_RESERVED_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1IOCR_RESERVED_31 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX8GCR4_DXREFESELRANGE 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL1IOCR_DXDACRANGE 0x7 - Byte Lane External VREF Select - PSU_DDR_PHY_DX8GCR4_DXREFESEL 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL1IOCR_DXVREFIOM 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX8GCR4_DXREFSSELRANGE 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXIOM 0x2 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX8GCR4_DXREFSSEL 0x30 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXTXM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR4_RESERVED_7_6 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXRXM 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX8GCR4_DXREFIEN 0xf + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081470, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX8GCR4_DXREFIMON 0x0 + /* + * Register : DX8SL2OSC @ 0XFD081480 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080F10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX8GCR4_RESERVED_31_29_MASK | DDR_PHY_DX8GCR4_DXREFPEN_MASK | DDR_PHY_DX8GCR4_DXREFEEN_MASK | DDR_PHY_DX8GCR4_DXREFSEN_MASK | DDR_PHY_DX8GCR4_RESERVED_24_MASK | DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX8GCR4_DXREFESEL_MASK | DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX8GCR4_DXREFSSEL_MASK | DDR_PHY_DX8GCR4_RESERVED_7_6_MASK | DDR_PHY_DX8GCR4_DXREFIEN_MASK | DDR_PHY_DX8GCR4_DXREFIMON_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX8GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX8GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXRDCLK 0x2 - /*Register : DX8GCR5 @ 0XFD080F14

      + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXDDRCLK 0x2 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_31 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXCTLCLK 0x2 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX8GCR5_DXREFISELR3 0x9 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL2OSC_CLKLEVEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_23 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL2OSC_LBMODE 0x0 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX8GCR5_DXREFISELR2 0x9 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL2OSC_LBGSDQS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_15 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL2OSC_LBGDQS 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x4f + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL2OSC_LBDQSS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_7 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL2OSC_PHYHRST 0x1 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x4f + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL2OSC_PHYFRST 0x1 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX8GCR5_RESERVED_31_MASK | DDR_PHY_DX8GCR5_DXREFISELR3_MASK | DDR_PHY_DX8GCR5_RESERVED_23_MASK | DDR_PHY_DX8GCR5_DXREFISELR2_MASK | DDR_PHY_DX8GCR5_RESERVED_15_MASK | DDR_PHY_DX8GCR5_DXREFISELR1_MASK | DDR_PHY_DX8GCR5_RESERVED_7_MASK | DDR_PHY_DX8GCR5_DXREFISELR0_MASK | 0 ); + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL2OSC_DLTST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL2OSC_DLTMODE 0x0 - /*Register : DX8GCR6 @ 0XFD080F18

      + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_12_11 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_31_30 0x0 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL2OSC_OSCWDDL 0x3 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR3 0x9 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_8_7 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_23_22 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL2OSC_OSCWDL 0x3 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR2 0x9 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL2OSC_OSCDIV 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_15_14 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL2OSC_OSCEN 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR1 0x2b + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081480, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_7_6 0x0 + /* + * Register : DX8SL2PLLCR0 @ 0XFD081484 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR0 0x2b + * PLL Bypass + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLBYP 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080F18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX8GCR6_RESERVED_31_30_MASK | DDR_PHY_DX8GCR6_DXDQVREFR3_MASK | DDR_PHY_DX8GCR6_RESERVED_23_22_MASK | DDR_PHY_DX8GCR6_DXDQVREFR2_MASK | DDR_PHY_DX8GCR6_RESERVED_15_14_MASK | DDR_PHY_DX8GCR6_DXDQVREFR1_MASK | DDR_PHY_DX8GCR6_RESERVED_7_6_MASK | DDR_PHY_DX8GCR6_DXDQVREFR0_MASK | 0 ); + * PLL Reset + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * PLL Power Down + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLPD 0x0 - /*Register : DX8LCDLR2 @ 0XFD080F88

      + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL2PLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_31_25 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL2PLLCR0_FRQSEL 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_24_16 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL2PLLCR0_RLOCKM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_15_9 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL2PLLCR0_CPPC 0x8 - Read DQS Gating Delay - PSU_DDR_PHY_DX8LCDLR2_DQSGD 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL2PLLCR0_CPIC 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080F88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX8LCDLR2_DQSGD_MASK | 0 ); + * Gear Shift + * PSU_DDR_PHY_DX8SL2PLLCR0_GSHIFT 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9 0x0 - /*Register : DX8GTR0 @ 0XFD080FC0

      + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL2PLLCR0_ATOEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_31_24 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SL2PLLCR0_ATC 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX8GTR0_WDQSL 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL2PLLCR0_DTC 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8GTR0_RESERVED_23_20 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081484, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Write Leveling System Latency - PSU_DDR_PHY_DX8GTR0_WLSL 0x2 + /* + * Register : DX8SL2DQSCTL @ 0XFD08149C - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_15_13 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8GTR0_RESERVED_12_8 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_RRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_7_5 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX8GTR0_DGSL 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_WRRMODE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080FC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX8GTR0_RESERVED_31_24_MASK | DDR_PHY_DX8GTR0_WDQSL_MASK | DDR_PHY_DX8GTR0_RESERVED_23_20_MASK | DDR_PHY_DX8GTR0_WLSL_MASK | DDR_PHY_DX8GTR0_RESERVED_15_13_MASK | DDR_PHY_DX8GTR0_RESERVED_12_8_MASK | DDR_PHY_DX8GTR0_RESERVED_7_5_MASK | DDR_PHY_DX8GTR0_DGSL_MASK | 0 ); + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSGX 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX8GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL2DQSCTL_LPPLLPD 0x1 - /*Register : DX8SL0OSC @ 0XFD081400

      + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL2DQSCTL_LPIOPD 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXRDCLK 0x2 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL2DQSCTL_QSCNTEN 0x1 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXDDRCLK 0x2 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_UDQIOM 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXCTLCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL0OSC_CLKLEVEL 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL2DQSCTL_DXSR 0x3 - Loopback Mode - PSU_DDR_PHY_DX8SL0OSC_LBMODE 0x0 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSNRES 0x0 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL0OSC_LBGSDQS 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSRES 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL0OSC_LBGDQS 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08149C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Loopback DQS Shift - PSU_DDR_PHY_DX8SL0OSC_LBDQSS 0x0 + /* + * Register : DX8SL2DXCTL2 @ 0XFD0814AC - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL0OSC_PHYHRST 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL0OSC_PHYFRST 0x1 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_CRDEN 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL0OSC_DLTST 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL2DXCTL2_POSOEX 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL0OSC_DLTMODE 0x0 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL2DXCTL2_PREOEX 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_12_11 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_17 0x0 - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL0OSC_OSCWDDL 0x3 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL2DXCTL2_IOAG 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_8_7 0x3 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL2DXCTL2_IOLB 0x0 - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL0OSC_OSCWDL 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13 0x0 - Oscillator Mode Division - PSU_DDR_PHY_DX8SL0OSC_OSCDIV 0xf + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH 0xc - Oscillator Enable - PSU_DDR_PHY_DX8SL0OSC_OSCEN 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_RDBI 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081400, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL0OSC_LBMODE_MASK | DDR_PHY_DX8SL0OSC_LBGSDQS_MASK | DDR_PHY_DX8SL0OSC_LBGDQS_MASK | DDR_PHY_DX8SL0OSC_LBDQSS_MASK | DDR_PHY_DX8SL0OSC_PHYHRST_MASK | DDR_PHY_DX8SL0OSC_PHYFRST_MASK | DDR_PHY_DX8SL0OSC_DLTST_MASK | DDR_PHY_DX8SL0OSC_DLTMODE_MASK | DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL0OSC_OSCWDDL_MASK | DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL0OSC_OSCWDL_MASK | DDR_PHY_DX8SL0OSC_OSCDIV_MASK | DDR_PHY_DX8SL0OSC_OSCEN_MASK | 0 ); + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_WDBI 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL2DXCTL2_PRFBYP 0x0 - /*Register : DX8SL0DQSCTL @ 0XFD08141C

      + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL2DXCTL2_RDMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25 0x0 + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL2DXCTL2_DISRST 0x0 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL0DQSCTL_RRRMODE 0x1 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL2DXCTL2_DQSGLB 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_0 0x0 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL0DQSCTL_WRRMODE 0x1 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD0814AC, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - DQS Gate Extension - PSU_DDR_PHY_DX8SL0DQSCTL_DQSGX 0x0 + /* + * Register : DX8SL2IOCR @ 0XFD0814B0 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL0DQSCTL_LPPLLPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2IOCR_RESERVED_31 0x0 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL0DQSCTL_LPIOPD 0x1 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL2IOCR_DXDACRANGE 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL2IOCR_DXVREFIOM 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL0DQSCTL_QSCNTEN 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXIOM 0x2 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL0DQSCTL_UDQIOM 0x0 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXRXM 0x0 - Data Slew Rate - PSU_DDR_PHY_DX8SL0DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL0DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL0DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08141C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL0DQSCTL_DXSR_MASK | DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK | 0 ); + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD0814B0, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL0DXCTL2 @ 0XFD08142C

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL0DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL0DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL0DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL0DXCTL2_IOAG 0x0 + /* + * Register : DX8SL3OSC @ 0XFD0814C0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL0DXCTL2_IOLB 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13 0x0 + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXRDCLK 0x2 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH 0xc + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXDDRCLK 0x2 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL0DXCTL2_RDBI 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXCTLCLK 0x2 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL0DXCTL2_WDBI 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL3OSC_CLKLEVEL 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL0DXCTL2_PRFBYP 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL3OSC_LBMODE 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL0DXCTL2_RDMODE 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL3OSC_LBGSDQS 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL0DXCTL2_DISRST 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL3OSC_LBGDQS 0x0 - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL0DXCTL2_DQSGLB 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL3OSC_LBDQSS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_0 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL3OSC_PHYHRST 0x1 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08142C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL0DXCTL2_IOAG_MASK | DDR_PHY_DX8SL0DXCTL2_IOLB_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL0DXCTL2_RDBI_MASK | DDR_PHY_DX8SL0DXCTL2_WDBI_MASK | DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL0DXCTL2_DISRST_MASK | DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK | 0 ); + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL3OSC_PHYFRST 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL3OSC_DLTST 0x0 - /*Register : DX8SL0IOCR @ 0XFD081430

      + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL3OSC_DLTMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0IOCR_RESERVED_31 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_12_11 0x3 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL0IOCR_DXDACRANGE 0x7 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL3OSC_OSCWDDL 0x3 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL0IOCR_DXVREFIOM 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_8_7 0x3 - DX IO Mode - PSU_DDR_PHY_DX8SL0IOCR_DXIOM 0x2 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL3OSC_OSCWDL 0x3 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL0IOCR_DXTXM 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL3OSC_OSCDIV 0xf - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL0IOCR_DXRXM 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL3OSC_OSCEN 0x0 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081430, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL0IOCR_DXIOM_MASK | DDR_PHY_DX8SL0IOCR_DXTXM_MASK | DDR_PHY_DX8SL0IOCR_DXRXM_MASK | 0 ); + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD0814C0, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + /* + * Register : DX8SL3PLLCR0 @ 0XFD0814C4 - /*Register : DX8SL1OSC @ 0XFD081440

      + * PLL Bypass + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_31_30 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLRST 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXRDCLK 0x2 + * PLL Power Down + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLPD 0x0 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXDDRCLK 0x2 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL3PLLCR0_RSTOPM 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXCTLCLK 0x2 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL3PLLCR0_FRQSEL 0x1 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL1OSC_CLKLEVEL 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL3PLLCR0_RLOCKM 0x0 - Loopback Mode - PSU_DDR_PHY_DX8SL1OSC_LBMODE 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL3PLLCR0_CPPC 0x8 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL1OSC_LBGSDQS 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL3PLLCR0_CPIC 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL1OSC_LBGDQS 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL3PLLCR0_GSHIFT 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL1OSC_LBDQSS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL1OSC_PHYHRST 0x1 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL3PLLCR0_ATOEN 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL1OSC_PHYFRST 0x1 + * Analog Test Control + * PSU_DDR_PHY_DX8SL3PLLCR0_ATC 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL1OSC_DLTST 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL3PLLCR0_DTC 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL1OSC_DLTMODE 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD0814C4, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL1OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL1OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL1OSC_OSCDIV 0xf + /* + * Register : DX8SL3DQSCTL @ 0XFD0814DC - Oscillator Enable - PSU_DDR_PHY_DX8SL1OSC_OSCEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081440, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL1OSC_LBMODE_MASK | DDR_PHY_DX8SL1OSC_LBGSDQS_MASK | DDR_PHY_DX8SL1OSC_LBGDQS_MASK | DDR_PHY_DX8SL1OSC_LBDQSS_MASK | DDR_PHY_DX8SL1OSC_PHYHRST_MASK | DDR_PHY_DX8SL1OSC_PHYFRST_MASK | DDR_PHY_DX8SL1OSC_DLTST_MASK | DDR_PHY_DX8SL1OSC_DLTMODE_MASK | DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL1OSC_OSCWDDL_MASK | DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL1OSC_OSCWDL_MASK | DDR_PHY_DX8SL1OSC_OSCDIV_MASK | DDR_PHY_DX8SL1OSC_OSCEN_MASK | 0 ); + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_RRRMODE 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22 0x0 - /*Register : DX8SL1DQSCTL @ 0XFD08145C

      + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_WRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25 0x0 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSGX 0x0 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL1DQSCTL_RRRMODE 0x1 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL3DQSCTL_LPPLLPD 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22 0x0 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL3DQSCTL_LPIOPD 0x1 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL1DQSCTL_WRRMODE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15 0x0 - DQS Gate Extension - PSU_DDR_PHY_DX8SL1DQSCTL_DQSGX 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL3DQSCTL_QSCNTEN 0x1 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL1DQSCTL_LPPLLPD 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_UDQIOM 0x0 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL1DQSCTL_LPIOPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL3DQSCTL_DXSR 0x3 - QS Counter Enable - PSU_DDR_PHY_DX8SL1DQSCTL_QSCNTEN 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSNRES 0x0 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL1DQSCTL_UDQIOM 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD0814DC, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Data Slew Rate - PSU_DDR_PHY_DX8SL1DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL1DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL1DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08145C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL1DQSCTL_DXSR_MASK | DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK | 0 ); + /* + * Register : DX8SL3DXCTL2 @ 0XFD0814EC - RegVal = ((0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL1DXCTL2 @ 0XFD08146C

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL1DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL1DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL1DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL1DXCTL2_IOAG 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24 0x0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL1DXCTL2_IOLB 0x0 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_CRDEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL3DXCTL2_POSOEX 0x0 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH 0xc + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL3DXCTL2_PREOEX 0x1 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL1DXCTL2_RDBI 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_17 0x0 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL1DXCTL2_WDBI 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL3DXCTL2_IOAG 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL1DXCTL2_PRFBYP 0x0 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL3DXCTL2_IOLB 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL1DXCTL2_RDMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL1DXCTL2_DISRST 0x0 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH 0xc - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL1DXCTL2_DQSGLB 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_RDBI 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_0 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_WDBI 0x0 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08146C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL1DXCTL2_IOAG_MASK | DDR_PHY_DX8SL1DXCTL2_IOLB_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL1DXCTL2_RDBI_MASK | DDR_PHY_DX8SL1DXCTL2_WDBI_MASK | DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL1DXCTL2_DISRST_MASK | DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK | 0 ); + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL3DXCTL2_PRFBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL3DXCTL2_RDMODE 0x0 - /*Register : DX8SL1IOCR @ 0XFD081470

      + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL3DXCTL2_DISRST 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1IOCR_RESERVED_31 0x0 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL3DXCTL2_DQSGLB 0x0 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL1IOCR_DXDACRANGE 0x7 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_0 0x0 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL1IOCR_DXVREFIOM 0x0 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD0814EC, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - DX IO Mode - PSU_DDR_PHY_DX8SL1IOCR_DXIOM 0x2 + /* + * Register : DX8SL3IOCR @ 0XFD0814F0 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL1IOCR_DXTXM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3IOCR_RESERVED_31 0x0 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL1IOCR_DXRXM 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL3IOCR_DXDACRANGE 0x7 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081470, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL1IOCR_DXIOM_MASK | DDR_PHY_DX8SL1IOCR_DXTXM_MASK | DDR_PHY_DX8SL1IOCR_DXRXM_MASK | 0 ); + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL3IOCR_DXVREFIOM 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * DX IO Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXIOM 0x2 - /*Register : DX8SL2OSC @ 0XFD081480

      + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_31_30 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXRXM 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXRDCLK 0x2 + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD0814F0, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXDDRCLK 0x2 + /* + * Register : DX8SL4OSC @ 0XFD081500 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXCTLCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_31_30 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL2OSC_CLKLEVEL 0x0 + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXRDCLK 0x2 - Loopback Mode - PSU_DDR_PHY_DX8SL2OSC_LBMODE 0x0 + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXDDRCLK 0x2 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL2OSC_LBGSDQS 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXCTLCLK 0x2 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL2OSC_LBGDQS 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL4OSC_CLKLEVEL 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL2OSC_LBDQSS 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL4OSC_LBMODE 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL2OSC_PHYHRST 0x1 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL4OSC_LBGSDQS 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL2OSC_PHYFRST 0x1 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL4OSC_LBGDQS 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL2OSC_DLTST 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL4OSC_LBDQSS 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL2OSC_DLTMODE 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL4OSC_PHYHRST 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL2OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL2OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL2OSC_OSCDIV 0xf + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL4OSC_PHYFRST 0x1 - Oscillator Enable - PSU_DDR_PHY_DX8SL2OSC_OSCEN 0x0 + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL4OSC_DLTST 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081480, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL2OSC_LBMODE_MASK | DDR_PHY_DX8SL2OSC_LBGSDQS_MASK | DDR_PHY_DX8SL2OSC_LBGDQS_MASK | DDR_PHY_DX8SL2OSC_LBDQSS_MASK | DDR_PHY_DX8SL2OSC_PHYHRST_MASK | DDR_PHY_DX8SL2OSC_PHYFRST_MASK | DDR_PHY_DX8SL2OSC_DLTST_MASK | DDR_PHY_DX8SL2OSC_DLTMODE_MASK | DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL2OSC_OSCWDDL_MASK | DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL2OSC_OSCWDL_MASK | DDR_PHY_DX8SL2OSC_OSCDIV_MASK | DDR_PHY_DX8SL2OSC_OSCEN_MASK | 0 ); + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL4OSC_DLTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_12_11 0x3 - /*Register : DX8SL2DQSCTL @ 0XFD08149C

      + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL4OSC_OSCWDDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_8_7 0x3 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL2DQSCTL_RRRMODE 0x1 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL4OSC_OSCWDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL4OSC_OSCDIV 0xf - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL2DQSCTL_WRRMODE 0x1 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL4OSC_OSCEN 0x0 - DQS Gate Extension - PSU_DDR_PHY_DX8SL2DQSCTL_DQSGX 0x0 + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081500, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL2DQSCTL_LPPLLPD 0x1 + /* + * Register : DX8SL4PLLCR0 @ 0XFD081504 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL2DQSCTL_LPIOPD 0x1 + * PLL Bypass + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLRST 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL2DQSCTL_QSCNTEN 0x1 + * PLL Power Down + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLPD 0x0 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL2DQSCTL_UDQIOM 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL4PLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL4PLLCR0_FRQSEL 0x1 - Data Slew Rate - PSU_DDR_PHY_DX8SL2DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL2DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL2DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08149C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL2DQSCTL_DXSR_MASK | DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK | 0 ); + * Relock Mode + * PSU_DDR_PHY_DX8SL4PLLCR0_RLOCKM 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL2DXCTL2 @ 0XFD0814AC

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL2DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL2DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL2DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL2DXCTL2_IOAG 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL4PLLCR0_CPPC 0x8 - I/O Loopback Select - PSU_DDR_PHY_DX8SL2DXCTL2_IOLB 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL4PLLCR0_CPIC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL4PLLCR0_GSHIFT 0x0 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH 0xc + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9 0x0 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL2DXCTL2_RDBI 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL4PLLCR0_ATOEN 0x0 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL2DXCTL2_WDBI 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SL4PLLCR0_ATC 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL2DXCTL2_PRFBYP 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL4PLLCR0_DTC 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL2DXCTL2_RDMODE 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081504, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL2DXCTL2_DISRST 0x0 + /* + * Register : DX8SL4DQSCTL @ 0XFD08151C - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL2DXCTL2_DQSGLB 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_0 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_RRRMODE 0x1 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD0814AC, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL2DXCTL2_IOAG_MASK | DDR_PHY_DX8SL2DXCTL2_IOLB_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL2DXCTL2_RDBI_MASK | DDR_PHY_DX8SL2DXCTL2_WDBI_MASK | DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL2DXCTL2_DISRST_MASK | DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_WRRMODE 0x1 - /*Register : DX8SL2IOCR @ 0XFD0814B0

      + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSGX 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2IOCR_RESERVED_31 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL4DQSCTL_LPPLLPD 0x1 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL2IOCR_DXDACRANGE 0x7 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL4DQSCTL_LPIOPD 0x1 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL2IOCR_DXVREFIOM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15 0x0 - DX IO Mode - PSU_DDR_PHY_DX8SL2IOCR_DXIOM 0x2 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL4DQSCTL_QSCNTEN 0x1 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL2IOCR_DXTXM 0x0 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_UDQIOM 0x0 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL2IOCR_DXRXM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10 0x0 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD0814B0, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL2IOCR_DXIOM_MASK | DDR_PHY_DX8SL2IOCR_DXTXM_MASK | DDR_PHY_DX8SL2IOCR_DXRXM_MASK | 0 ); + * Data Slew Rate + * PSU_DDR_PHY_DX8SL4DQSCTL_DXSR 0x3 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSNRES 0x0 - /*Register : DX8SL3OSC @ 0XFD0814C0

      + * DQS Resistor + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_31_30 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08151C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXRDCLK 0x2 + /* + * Register : DX8SL4DXCTL2 @ 0XFD08152C - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXDDRCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXCTLCLK 0x2 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_CRDEN 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL3OSC_CLKLEVEL 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL4DXCTL2_POSOEX 0x0 - Loopback Mode - PSU_DDR_PHY_DX8SL3OSC_LBMODE 0x0 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL4DXCTL2_PREOEX 0x1 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL3OSC_LBGSDQS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_17 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL3OSC_LBGDQS 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL4DXCTL2_IOAG 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL3OSC_LBDQSS 0x0 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL4DXCTL2_IOLB 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL3OSC_PHYHRST 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL3OSC_PHYFRST 0x1 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH 0xc - Delay Line Test Start - PSU_DDR_PHY_DX8SL3OSC_DLTST 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_RDBI 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL3OSC_DLTMODE 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_WDBI 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL3OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL3OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL3OSC_OSCDIV 0xf + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL4DXCTL2_PRFBYP 0x0 - Oscillator Enable - PSU_DDR_PHY_DX8SL3OSC_OSCEN 0x0 + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL4DXCTL2_RDMODE 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD0814C0, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL3OSC_LBMODE_MASK | DDR_PHY_DX8SL3OSC_LBGSDQS_MASK | DDR_PHY_DX8SL3OSC_LBGDQS_MASK | DDR_PHY_DX8SL3OSC_LBDQSS_MASK | DDR_PHY_DX8SL3OSC_PHYHRST_MASK | DDR_PHY_DX8SL3OSC_PHYFRST_MASK | DDR_PHY_DX8SL3OSC_DLTST_MASK | DDR_PHY_DX8SL3OSC_DLTMODE_MASK | DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL3OSC_OSCWDDL_MASK | DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL3OSC_OSCWDL_MASK | DDR_PHY_DX8SL3OSC_OSCDIV_MASK | DDR_PHY_DX8SL3OSC_OSCEN_MASK | 0 ); + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL4DXCTL2_DISRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL4DXCTL2_DQSGLB 0x0 - /*Register : DX8SL3DQSCTL @ 0XFD0814DC

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_0 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25 0x0 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08152C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL3DQSCTL_RRRMODE 0x1 + /* + * Register : DX8SL4IOCR @ 0XFD081530 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4IOCR_RESERVED_31 0x0 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL3DQSCTL_WRRMODE 0x1 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL4IOCR_DXDACRANGE 0x7 - DQS Gate Extension - PSU_DDR_PHY_DX8SL3DQSCTL_DQSGX 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL4IOCR_DXVREFIOM 0x0 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL3DQSCTL_LPPLLPD 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXIOM 0x2 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL3DQSCTL_LPIOPD 0x1 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXRXM 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL3DQSCTL_QSCNTEN 0x1 + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081530, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL3DQSCTL_UDQIOM 0x0 + /* + * Register : DX8SLbPLLCR0 @ 0XFD0817C4 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10 0x0 + * PLL Bypass + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLBYP 0x0 - Data Slew Rate - PSU_DDR_PHY_DX8SL3DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL3DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL3DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD0814DC, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL3DQSCTL_DXSR_MASK | DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK | 0 ); + * PLL Reset + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL3DXCTL2 @ 0XFD0814EC

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL3DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL3DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL3DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL3DXCTL2_IOAG 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLPD 0x0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL3DXCTL2_IOLB 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SLBPLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SLBPLLCR0_FRQSEL 0x1 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH 0xc + * Relock Mode + * PSU_DDR_PHY_DX8SLBPLLCR0_RLOCKM 0x0 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL3DXCTL2_RDBI 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SLBPLLCR0_CPPC 0x8 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL3DXCTL2_WDBI 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SLBPLLCR0_CPIC 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL3DXCTL2_PRFBYP 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SLBPLLCR0_GSHIFT 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL3DXCTL2_RDMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL3DXCTL2_DISRST 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SLBPLLCR0_ATOEN 0x0 - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL3DXCTL2_DQSGLB 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SLBPLLCR0_ATC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_0 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SLBPLLCR0_DTC 0x0 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD0814EC, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL3DXCTL2_IOAG_MASK | DDR_PHY_DX8SL3DXCTL2_IOLB_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL3DXCTL2_RDBI_MASK | DDR_PHY_DX8SL3DXCTL2_WDBI_MASK | DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL3DXCTL2_DISRST_MASK | DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK | 0 ); + * DAXT8 0-8 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD0817C4, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SLBPLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + /* + * Register : DX8SLbDQSCTL @ 0XFD0817DC - /*Register : DX8SL3IOCR @ 0XFD0814F0

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3IOCR_RESERVED_31 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_RRRMODE 0x1 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL3IOCR_DXDACRANGE 0x7 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22 0x0 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL3IOCR_DXVREFIOM 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_WRRMODE 0x1 - DX IO Mode - PSU_DDR_PHY_DX8SL3IOCR_DXIOM 0x2 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSGX 0x0 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL3IOCR_DXTXM 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SLBDQSCTL_LPPLLPD 0x1 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL3IOCR_DXRXM 0x0 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SLBDQSCTL_LPIOPD 0x1 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD0814F0, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL3IOCR_DXIOM_MASK | DDR_PHY_DX8SL3IOCR_DXTXM_MASK | DDR_PHY_DX8SL3IOCR_DXRXM_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * QS Counter Enable + * PSU_DDR_PHY_DX8SLBDQSCTL_QSCNTEN 0x1 - /*Register : DX8SL4OSC @ 0XFD081500

      + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_UDQIOM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXRDCLK 0x2 + * Data Slew Rate + * PSU_DDR_PHY_DX8SLBDQSCTL_DXSR 0x3 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXDDRCLK 0x2 + * DQS# Resistor + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSNRES 0xc - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXCTLCLK 0x2 + * DQS Resistor + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSRES 0x4 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL4OSC_CLKLEVEL 0x0 + * DATX8 0-8 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD0817DC, 0xFFFFFFFFU ,0x012643C4U) + */ + PSU_Mask_Write(DDR_PHY_DX8SLBDQSCTL_OFFSET, + 0xFFFFFFFFU, 0x012643C4U); +/*##################################################################### */ - Loopback Mode - PSU_DDR_PHY_DX8SL4OSC_LBMODE 0x0 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL4OSC_LBGSDQS 0x0 - - Loopback DQS Gating - PSU_DDR_PHY_DX8SL4OSC_LBGDQS 0x0 - - Loopback DQS Shift - PSU_DDR_PHY_DX8SL4OSC_LBDQSS 0x0 - - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL4OSC_PHYHRST 0x1 - - PHY FIFO Reset - PSU_DDR_PHY_DX8SL4OSC_PHYFRST 0x1 - - Delay Line Test Start - PSU_DDR_PHY_DX8SL4OSC_DLTST 0x0 - - Delay Line Test Mode - PSU_DDR_PHY_DX8SL4OSC_DLTMODE 0x0 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL4OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL4OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL4OSC_OSCDIV 0xf - - Oscillator Enable - PSU_DDR_PHY_DX8SL4OSC_OSCEN 0x0 - - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081500, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL4OSC_LBMODE_MASK | DDR_PHY_DX8SL4OSC_LBGSDQS_MASK | DDR_PHY_DX8SL4OSC_LBGDQS_MASK | DDR_PHY_DX8SL4OSC_LBDQSS_MASK | DDR_PHY_DX8SL4OSC_PHYHRST_MASK | DDR_PHY_DX8SL4OSC_PHYFRST_MASK | DDR_PHY_DX8SL4OSC_DLTST_MASK | DDR_PHY_DX8SL4OSC_DLTMODE_MASK | DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL4OSC_OSCWDDL_MASK | DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL4OSC_OSCWDL_MASK | DDR_PHY_DX8SL4OSC_OSCDIV_MASK | DDR_PHY_DX8SL4OSC_OSCEN_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ - - /*Register : DX8SL4DQSCTL @ 0XFD08151C

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25 0x0 - - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL4DQSCTL_RRRMODE 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22 0x0 - - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL4DQSCTL_WRRMODE 0x1 - - DQS Gate Extension - PSU_DDR_PHY_DX8SL4DQSCTL_DQSGX 0x0 - - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL4DQSCTL_LPPLLPD 0x1 - - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL4DQSCTL_LPIOPD 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15 0x0 - - QS Counter Enable - PSU_DDR_PHY_DX8SL4DQSCTL_QSCNTEN 0x1 - - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL4DQSCTL_UDQIOM 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10 0x0 - - Data Slew Rate - PSU_DDR_PHY_DX8SL4DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL4DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL4DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08151C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL4DQSCTL_DXSR_MASK | DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL4DXCTL2 @ 0XFD08152C

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL4DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL4DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL4DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL4DXCTL2_IOAG 0x0 - - I/O Loopback Select - PSU_DDR_PHY_DX8SL4DXCTL2_IOLB 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13 0x0 - - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH 0xc - - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL4DXCTL2_RDBI 0x0 - - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL4DXCTL2_WDBI 0x0 - - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL4DXCTL2_PRFBYP 0x0 - - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL4DXCTL2_RDMODE 0x0 - - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL4DXCTL2_DISRST 0x0 - - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL4DXCTL2_DQSGLB 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_0 0x0 - - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08152C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL4DXCTL2_IOAG_MASK | DDR_PHY_DX8SL4DXCTL2_IOLB_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL4DXCTL2_RDBI_MASK | DDR_PHY_DX8SL4DXCTL2_WDBI_MASK | DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL4DXCTL2_DISRST_MASK | DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ - - /*Register : DX8SL4IOCR @ 0XFD081530

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4IOCR_RESERVED_31 0x0 - - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL4IOCR_DXDACRANGE 0x7 - - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL4IOCR_DXVREFIOM 0x0 - - DX IO Mode - PSU_DDR_PHY_DX8SL4IOCR_DXIOM 0x2 - - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL4IOCR_DXTXM 0x0 - - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL4IOCR_DXRXM 0x0 - - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081530, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL4IOCR_DXIOM_MASK | DDR_PHY_DX8SL4IOCR_DXTXM_MASK | DDR_PHY_DX8SL4IOCR_DXRXM_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ - - /*Register : DX8SLbDQSCTL @ 0XFD0817DC

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25 0x0 - - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SLBDQSCTL_RRRMODE 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22 0x0 - - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SLBDQSCTL_WRRMODE 0x1 - - DQS Gate Extension - PSU_DDR_PHY_DX8SLBDQSCTL_DQSGX 0x0 - - Low Power PLL Power Down - PSU_DDR_PHY_DX8SLBDQSCTL_LPPLLPD 0x1 - - Low Power I/O Power Down - PSU_DDR_PHY_DX8SLBDQSCTL_LPIOPD 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15 0x0 - - QS Counter Enable - PSU_DDR_PHY_DX8SLBDQSCTL_QSCNTEN 0x1 - - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SLBDQSCTL_UDQIOM 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10 0x0 - - Data Slew Rate - PSU_DDR_PHY_DX8SLBDQSCTL_DXSR 0x3 - - DQS# Resistor - PSU_DDR_PHY_DX8SLBDQSCTL_DQSNRES 0xc - - DQS Resistor - PSU_DDR_PHY_DX8SLBDQSCTL_DQSRES 0x4 - - DATX8 0-8 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD0817DC, 0xFFFFFFFFU ,0x012643C4U) - RegMask = (DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK | DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK | DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SLBDQSCTL_DXSR_MASK | DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK | DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT - | 0x0000000CU << DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT - | 0x00000004U << DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SLBDQSCTL_OFFSET ,0xFFFFFFFFU ,0x012643C4U); - /*############################################################################################################################ */ - - /*Register : PIR @ 0XFD080004

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_31 0x0 - - Impedance Calibration Bypass - PSU_DDR_PHY_PIR_ZCALBYP 0x0 - - Digital Delay Line (DDL) Calibration Pause - PSU_DDR_PHY_PIR_DCALPSE 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_28_21 0x0 - - Write DQS2DQ Training - PSU_DDR_PHY_PIR_DQS2DQ 0x0 - - RDIMM Initialization - PSU_DDR_PHY_PIR_RDIMMINIT 0x0 - - Controller DRAM Initialization - PSU_DDR_PHY_PIR_CTLDINIT 0x1 - - VREF Training - PSU_DDR_PHY_PIR_VREF 0x0 - - Static Read Training - PSU_DDR_PHY_PIR_SRD 0x0 - - Write Data Eye Training - PSU_DDR_PHY_PIR_WREYE 0x0 - - Read Data Eye Training - PSU_DDR_PHY_PIR_RDEYE 0x0 - - Write Data Bit Deskew - PSU_DDR_PHY_PIR_WRDSKW 0x0 - - Read Data Bit Deskew - PSU_DDR_PHY_PIR_RDDSKW 0x0 - - Write Leveling Adjust - PSU_DDR_PHY_PIR_WLADJ 0x0 - - Read DQS Gate Training - PSU_DDR_PHY_PIR_QSGATE 0x0 - - Write Leveling - PSU_DDR_PHY_PIR_WL 0x0 - - DRAM Initialization - PSU_DDR_PHY_PIR_DRAMINIT 0x0 - - DRAM Reset (DDR3/DDR4/LPDDR4 Only) - PSU_DDR_PHY_PIR_DRAMRST 0x0 - - PHY Reset - PSU_DDR_PHY_PIR_PHYRST 0x1 - - Digital Delay Line (DDL) Calibration - PSU_DDR_PHY_PIR_DCAL 0x1 - - PLL Initialiazation - PSU_DDR_PHY_PIR_PLLINIT 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_3 0x0 - - CA Training - PSU_DDR_PHY_PIR_CA 0x0 - - Impedance Calibration - PSU_DDR_PHY_PIR_ZCAL 0x1 - - Initialization Trigger - PSU_DDR_PHY_PIR_INIT 0x1 - - PHY Initialization Register - (OFFSET, MASK, VALUE) (0XFD080004, 0xFFFFFFFFU ,0x00040073U) - RegMask = (DDR_PHY_PIR_RESERVED_31_MASK | DDR_PHY_PIR_ZCALBYP_MASK | DDR_PHY_PIR_DCALPSE_MASK | DDR_PHY_PIR_RESERVED_28_21_MASK | DDR_PHY_PIR_DQS2DQ_MASK | DDR_PHY_PIR_RDIMMINIT_MASK | DDR_PHY_PIR_CTLDINIT_MASK | DDR_PHY_PIR_VREF_MASK | DDR_PHY_PIR_SRD_MASK | DDR_PHY_PIR_WREYE_MASK | DDR_PHY_PIR_RDEYE_MASK | DDR_PHY_PIR_WRDSKW_MASK | DDR_PHY_PIR_RDDSKW_MASK | DDR_PHY_PIR_WLADJ_MASK | DDR_PHY_PIR_QSGATE_MASK | DDR_PHY_PIR_WL_MASK | DDR_PHY_PIR_DRAMINIT_MASK | DDR_PHY_PIR_DRAMRST_MASK | DDR_PHY_PIR_PHYRST_MASK | DDR_PHY_PIR_DCAL_MASK | DDR_PHY_PIR_PLLINIT_MASK | DDR_PHY_PIR_RESERVED_3_MASK | DDR_PHY_PIR_CA_MASK | DDR_PHY_PIR_ZCAL_MASK | DDR_PHY_PIR_INIT_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_PIR_RESERVED_31_SHIFT - | 0x00000000U << DDR_PHY_PIR_ZCALBYP_SHIFT - | 0x00000000U << DDR_PHY_PIR_DCALPSE_SHIFT - | 0x00000000U << DDR_PHY_PIR_RESERVED_28_21_SHIFT - | 0x00000000U << DDR_PHY_PIR_DQS2DQ_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDIMMINIT_SHIFT - | 0x00000001U << DDR_PHY_PIR_CTLDINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_VREF_SHIFT - | 0x00000000U << DDR_PHY_PIR_SRD_SHIFT - | 0x00000000U << DDR_PHY_PIR_WREYE_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDEYE_SHIFT - | 0x00000000U << DDR_PHY_PIR_WRDSKW_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDDSKW_SHIFT - | 0x00000000U << DDR_PHY_PIR_WLADJ_SHIFT - | 0x00000000U << DDR_PHY_PIR_QSGATE_SHIFT - | 0x00000000U << DDR_PHY_PIR_WL_SHIFT - | 0x00000000U << DDR_PHY_PIR_DRAMINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_DRAMRST_SHIFT - | 0x00000001U << DDR_PHY_PIR_PHYRST_SHIFT - | 0x00000001U << DDR_PHY_PIR_DCAL_SHIFT - | 0x00000001U << DDR_PHY_PIR_PLLINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_RESERVED_3_SHIFT - | 0x00000000U << DDR_PHY_PIR_CA_SHIFT - | 0x00000001U << DDR_PHY_PIR_ZCAL_SHIFT - | 0x00000001U << DDR_PHY_PIR_INIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PIR_OFFSET ,0xFFFFFFFFU ,0x00040073U); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_mio_init_data() { - // : MIO PROGRAMMING - /*Register : MIO_PIN_0 @ 0XFF180000

      +unsigned long psu_ddr_qos_init_data(void) +{ - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) - PSU_IOU_SLCR_MIO_PIN_0_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_0_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[0]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[0]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_0_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_0_L3_SEL 0 - - Configures MIO Pin 0 peripheral interface mapping. S - (OFFSET, MASK, VALUE) (0XFF180000, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_0_L0_SEL_MASK | IOU_SLCR_MIO_PIN_0_L1_SEL_MASK | IOU_SLCR_MIO_PIN_0_L2_SEL_MASK | IOU_SLCR_MIO_PIN_0_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_0_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_1 @ 0XFF180004

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Data - us) - PSU_IOU_SLCR_MIO_PIN_1_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_1_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[1]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[1]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_1_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal) - PSU_IOU_SLCR_MIO_PIN_1_L3_SEL 0 - - Configures MIO Pin 1 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180004, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_1_L0_SEL_MASK | IOU_SLCR_MIO_PIN_1_L1_SEL_MASK | IOU_SLCR_MIO_PIN_1_L2_SEL_MASK | IOU_SLCR_MIO_PIN_1_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_1_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_2 @ 0XFF180008

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) - PSU_IOU_SLCR_MIO_PIN_2_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_2_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[2]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[2]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_2_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, Input, ttc2_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_2_L3_SEL 0 - - Configures MIO Pin 2 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180008, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_2_L0_SEL_MASK | IOU_SLCR_MIO_PIN_2_L1_SEL_MASK | IOU_SLCR_MIO_PIN_2_L2_SEL_MASK | IOU_SLCR_MIO_PIN_2_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_2_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_3 @ 0XFF18000C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) - PSU_IOU_SLCR_MIO_PIN_3_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_3_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[3]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[3]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_3_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_3_L3_SEL 0 - - Configures MIO Pin 3 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18000C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_3_L0_SEL_MASK | IOU_SLCR_MIO_PIN_3_L1_SEL_MASK | IOU_SLCR_MIO_PIN_3_L2_SEL_MASK | IOU_SLCR_MIO_PIN_3_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_3_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_4 @ 0XFF180010

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Data - us) - PSU_IOU_SLCR_MIO_PIN_4_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_4_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[4]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[4]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_4_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_4_L3_SEL 0 - - Configures MIO Pin 4 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180010, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_4_L0_SEL_MASK | IOU_SLCR_MIO_PIN_4_L1_SEL_MASK | IOU_SLCR_MIO_PIN_4_L2_SEL_MASK | IOU_SLCR_MIO_PIN_4_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_4_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_5 @ 0XFF180014

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- (QSPI Slave Select) - PSU_IOU_SLCR_MIO_PIN_5_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_5_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[5]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[5]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_5_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_5_L3_SEL 0 - - Configures MIO Pin 5 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180014, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_5_L0_SEL_MASK | IOU_SLCR_MIO_PIN_5_L1_SEL_MASK | IOU_SLCR_MIO_PIN_5_L2_SEL_MASK | IOU_SLCR_MIO_PIN_5_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_5_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_6 @ 0XFF180018

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) - PSU_IOU_SLCR_MIO_PIN_6_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_6_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[6]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[6]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_6_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1 - sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, - Output, tracedq[4]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_6_L3_SEL 0 - - Configures MIO Pin 6 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180018, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_6_L0_SEL_MASK | IOU_SLCR_MIO_PIN_6_L1_SEL_MASK | IOU_SLCR_MIO_PIN_6_L2_SEL_MASK | IOU_SLCR_MIO_PIN_6_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_6_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_7 @ 0XFF18001C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_upper- (QSPI Slave Select upper) - PSU_IOU_SLCR_MIO_PIN_7_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_7_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[7]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[7]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_7_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - tc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, - racedq[5]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_7_L3_SEL 0 - - Configures MIO Pin 7 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18001C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_7_L0_SEL_MASK | IOU_SLCR_MIO_PIN_7_L1_SEL_MASK | IOU_SLCR_MIO_PIN_7_L2_SEL_MASK | IOU_SLCR_MIO_PIN_7_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_7_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_8 @ 0XFF180020

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [0]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_8_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_8_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[8]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[8]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_8_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc - , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tr - ce Port Databus) - PSU_IOU_SLCR_MIO_PIN_8_L3_SEL 0 - - Configures MIO Pin 8 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180020, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_8_L0_SEL_MASK | IOU_SLCR_MIO_PIN_8_L1_SEL_MASK | IOU_SLCR_MIO_PIN_8_L2_SEL_MASK | IOU_SLCR_MIO_PIN_8_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_8_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_9 @ 0XFF180024

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [1]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_9_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_9_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[9]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[9]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_9_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - utput, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (U - RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_9_L3_SEL 0 - - Configures MIO Pin 9 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180024, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_9_L0_SEL_MASK | IOU_SLCR_MIO_PIN_9_L1_SEL_MASK | IOU_SLCR_MIO_PIN_9_L2_SEL_MASK | IOU_SLCR_MIO_PIN_9_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_9_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_10 @ 0XFF180028

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [2]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_10_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_10_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[10]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[10]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_10_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_10_L3_SEL 0 - - Configures MIO Pin 10 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180028, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_10_L0_SEL_MASK | IOU_SLCR_MIO_PIN_10_L1_SEL_MASK | IOU_SLCR_MIO_PIN_10_L2_SEL_MASK | IOU_SLCR_MIO_PIN_10_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_10_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_11 @ 0XFF18002C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [3]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_11_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_11_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[11]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[11]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_11_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_11_L3_SEL 0 - - Configures MIO Pin 11 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18002C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_11_L0_SEL_MASK | IOU_SLCR_MIO_PIN_11_L1_SEL_MASK | IOU_SLCR_MIO_PIN_11_L2_SEL_MASK | IOU_SLCR_MIO_PIN_11_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_11_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_12 @ 0XFF180030

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock) - PSU_IOU_SLCR_MIO_PIN_12_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - - PSU_IOU_SLCR_MIO_PIN_12_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[12]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[12]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_12_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cl - ck) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trac - dq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_12_L3_SEL 0 - - Configures MIO Pin 12 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180030, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_12_L0_SEL_MASK | IOU_SLCR_MIO_PIN_12_L1_SEL_MASK | IOU_SLCR_MIO_PIN_12_L2_SEL_MASK | IOU_SLCR_MIO_PIN_12_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_12_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_13 @ 0XFF180034

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_13_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_13_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, test_scan_out[13]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_13_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave - out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Dat - bus) - PSU_IOU_SLCR_MIO_PIN_13_L3_SEL 0 - - Configures MIO Pin 13 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180034, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_13_L0_SEL_MASK | IOU_SLCR_MIO_PIN_13_L1_SEL_MASK | IOU_SLCR_MIO_PIN_13_L2_SEL_MASK | IOU_SLCR_MIO_PIN_13_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_13_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_14 @ 0XFF180038

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_14_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND Command Latch Enable) - PSU_IOU_SLCR_MIO_PIN_14_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, test_scan_out[14]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_14_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_ - n- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_14_L3_SEL 2 - - Configures MIO Pin 14 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180038, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_14_L0_SEL_MASK | IOU_SLCR_MIO_PIN_14_L1_SEL_MASK | IOU_SLCR_MIO_PIN_14_L2_SEL_MASK | IOU_SLCR_MIO_PIN_14_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_14_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_15 @ 0XFF18003C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_15_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND Address Latch Enable) - PSU_IOU_SLCR_MIO_PIN_15_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, test_scan_out[15]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_15_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out - 0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seri - l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_15_L3_SEL 2 - - Configures MIO Pin 15 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18003C, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_15_L0_SEL_MASK | IOU_SLCR_MIO_PIN_15_L1_SEL_MASK | IOU_SLCR_MIO_PIN_15_L2_SEL_MASK | IOU_SLCR_MIO_PIN_15_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_15_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_16 @ 0XFF180040

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_16_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_16_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, test_scan_out[16]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_16_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_16_L3_SEL 2 - - Configures MIO Pin 16 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180040, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_16_L0_SEL_MASK | IOU_SLCR_MIO_PIN_16_L1_SEL_MASK | IOU_SLCR_MIO_PIN_16_L2_SEL_MASK | IOU_SLCR_MIO_PIN_16_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_16_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_17 @ 0XFF180044

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_17_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_17_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, test_scan_out[17]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_17_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_17_L3_SEL 2 - - Configures MIO Pin 17 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180044, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_17_L0_SEL_MASK | IOU_SLCR_MIO_PIN_17_L1_SEL_MASK | IOU_SLCR_MIO_PIN_17_L2_SEL_MASK | IOU_SLCR_MIO_PIN_17_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_17_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_18 @ 0XFF180048

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_18_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_18_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, test_scan_out[18]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_18_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_18_L3_SEL 6 - - Configures MIO Pin 18 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180048, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_18_L0_SEL_MASK | IOU_SLCR_MIO_PIN_18_L1_SEL_MASK | IOU_SLCR_MIO_PIN_18_L2_SEL_MASK | IOU_SLCR_MIO_PIN_18_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_18_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_19 @ 0XFF18004C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_19_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_19_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, test_scan_out[19]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_19_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_19_L3_SEL 6 - - Configures MIO Pin 19 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18004C, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_19_L0_SEL_MASK | IOU_SLCR_MIO_PIN_19_L1_SEL_MASK | IOU_SLCR_MIO_PIN_19_L2_SEL_MASK | IOU_SLCR_MIO_PIN_19_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_19_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_20 @ 0XFF180050

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_20_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_20_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, test_scan_out[20]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_20_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= t - c1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_20_L3_SEL 6 - - Configures MIO Pin 20 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180050, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_20_L0_SEL_MASK | IOU_SLCR_MIO_PIN_20_L1_SEL_MASK | IOU_SLCR_MIO_PIN_20_L2_SEL_MASK | IOU_SLCR_MIO_PIN_20_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_20_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_21 @ 0XFF180054

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_21_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_21_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= test_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, test_scan_out[21]- (Test Scan Port) - = csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_21_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- - UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_21_L3_SEL 6 - - Configures MIO Pin 21 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180054, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_21_L0_SEL_MASK | IOU_SLCR_MIO_PIN_21_L1_SEL_MASK | IOU_SLCR_MIO_PIN_21_L2_SEL_MASK | IOU_SLCR_MIO_PIN_21_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_21_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_22 @ 0XFF180058

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_22_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAND Write Enable) - PSU_IOU_SLCR_MIO_PIN_22_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- - (Test Scan Port) = test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_22_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed - PSU_IOU_SLCR_MIO_PIN_22_L3_SEL 0 - - Configures MIO Pin 22 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180058, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_22_L0_SEL_MASK | IOU_SLCR_MIO_PIN_22_L1_SEL_MASK | IOU_SLCR_MIO_PIN_22_L2_SEL_MASK | IOU_SLCR_MIO_PIN_22_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_22_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_23 @ 0XFF18005C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_23_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_23_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= test_scan, Input, test_scan_in - 23]- (Test Scan Port) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper - - PSU_IOU_SLCR_MIO_PIN_23_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_23_L3_SEL 0 - - Configures MIO Pin 23 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18005C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_23_L0_SEL_MASK | IOU_SLCR_MIO_PIN_23_L1_SEL_MASK | IOU_SLCR_MIO_PIN_23_L2_SEL_MASK | IOU_SLCR_MIO_PIN_23_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_23_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_24 @ 0XFF180060

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_24_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_24_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= test_scan, Input, test - scan_in[24]- (Test Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ex - Tamper) - PSU_IOU_SLCR_MIO_PIN_24_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, - Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_24_L3_SEL 1 - - Configures MIO Pin 24 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180060, 0x000000FEU ,0x00000020U) - RegMask = (IOU_SLCR_MIO_PIN_24_L0_SEL_MASK | IOU_SLCR_MIO_PIN_24_L1_SEL_MASK | IOU_SLCR_MIO_PIN_24_L2_SEL_MASK | IOU_SLCR_MIO_PIN_24_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_24_OFFSET ,0x000000FEU ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_25 @ 0XFF180064

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_25_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAND Read Enable) - PSU_IOU_SLCR_MIO_PIN_25_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= test_scan, Input, - test_scan_in[25]- (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (C - U Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_25_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_out- (TTC Waveform - lock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_25_L3_SEL 1 - - Configures MIO Pin 25 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180064, 0x000000FEU ,0x00000020U) - RegMask = (IOU_SLCR_MIO_PIN_25_L0_SEL_MASK | IOU_SLCR_MIO_PIN_25_L1_SEL_MASK | IOU_SLCR_MIO_PIN_25_L2_SEL_MASK | IOU_SLCR_MIO_PIN_25_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_25_OFFSET ,0x000000FEU ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_26 @ 0XFF180068

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_26_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_26_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[26]- (Test Sc - n Port) = test_scan, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_26_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_26_L3_SEL 0 - - Configures MIO Pin 26 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180068, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_26_L0_SEL_MASK | IOU_SLCR_MIO_PIN_26_L1_SEL_MASK | IOU_SLCR_MIO_PIN_26_L2_SEL_MASK | IOU_SLCR_MIO_PIN_26_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_26_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_27 @ 0XFF18006C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_27_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_27_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[27]- (Test Sc - n Port) = test_scan, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_27_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus) - PSU_IOU_SLCR_MIO_PIN_27_L3_SEL 0 - - Configures MIO Pin 27 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18006C, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_27_L0_SEL_MASK | IOU_SLCR_MIO_PIN_27_L1_SEL_MASK | IOU_SLCR_MIO_PIN_27_L2_SEL_MASK | IOU_SLCR_MIO_PIN_27_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_27_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_28 @ 0XFF180070

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_28_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_28_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[28]- (Test Sc - n Port) = test_scan, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_28_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_28_L3_SEL 0 - - Configures MIO Pin 28 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180070, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_28_L0_SEL_MASK | IOU_SLCR_MIO_PIN_28_L1_SEL_MASK | IOU_SLCR_MIO_PIN_28_L2_SEL_MASK | IOU_SLCR_MIO_PIN_28_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_28_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_29 @ 0XFF180074

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_29_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_29_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[29]- (Test Sc - n Port) = test_scan, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_29_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_29_L3_SEL 0 - - Configures MIO Pin 29 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180074, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_29_L0_SEL_MASK | IOU_SLCR_MIO_PIN_29_L1_SEL_MASK | IOU_SLCR_MIO_PIN_29_L2_SEL_MASK | IOU_SLCR_MIO_PIN_29_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_29_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_30 @ 0XFF180078

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_30_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_30_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[30]- (Test Sc - n Port) = test_scan, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_30_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_so - (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output - tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_30_L3_SEL 0 - - Configures MIO Pin 30 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180078, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_30_L0_SEL_MASK | IOU_SLCR_MIO_PIN_30_L1_SEL_MASK | IOU_SLCR_MIO_PIN_30_L2_SEL_MASK | IOU_SLCR_MIO_PIN_30_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_30_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_31 @ 0XFF18007C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_31_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_31_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[31]- (Test Sc - n Port) = test_scan, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_31_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi - _si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial out - ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_31_L3_SEL 0 - - Configures MIO Pin 31 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18007C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_31_L0_SEL_MASK | IOU_SLCR_MIO_PIN_31_L1_SEL_MASK | IOU_SLCR_MIO_PIN_31_L2_SEL_MASK | IOU_SLCR_MIO_PIN_31_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_31_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_32 @ 0XFF180080

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_32_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - - PSU_IOU_SLCR_MIO_PIN_32_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[32]- (Test S - an Port) = test_scan, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_32_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi - _sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= - race, Output, tracedq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_32_L3_SEL 0 - - Configures MIO Pin 32 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180080, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_32_L0_SEL_MASK | IOU_SLCR_MIO_PIN_32_L1_SEL_MASK | IOU_SLCR_MIO_PIN_32_L2_SEL_MASK | IOU_SLCR_MIO_PIN_32_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_32_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_33 @ 0XFF180084

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_33_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_33_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[33]- (Test S - an Port) = test_scan, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_33_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= t - c3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, traced - [11]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_33_L3_SEL 0 - - Configures MIO Pin 33 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180084, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_33_L0_SEL_MASK | IOU_SLCR_MIO_PIN_33_L1_SEL_MASK | IOU_SLCR_MIO_PIN_33_L2_SEL_MASK | IOU_SLCR_MIO_PIN_33_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_33_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_34 @ 0XFF180088

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_34_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_34_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[34]- (Test S - an Port) = test_scan, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_34_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc2 - Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace P - rt Databus) - PSU_IOU_SLCR_MIO_PIN_34_L3_SEL 0 - - Configures MIO Pin 34 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180088, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_34_L0_SEL_MASK | IOU_SLCR_MIO_PIN_34_L1_SEL_MASK | IOU_SLCR_MIO_PIN_34_L2_SEL_MASK | IOU_SLCR_MIO_PIN_34_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_34_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_35 @ 0XFF18008C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_35_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_35_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[35]- (Test S - an Port) = test_scan, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_35_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- - UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_35_L3_SEL 0 - - Configures MIO Pin 35 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18008C, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_35_L0_SEL_MASK | IOU_SLCR_MIO_PIN_35_L1_SEL_MASK | IOU_SLCR_MIO_PIN_35_L2_SEL_MASK | IOU_SLCR_MIO_PIN_35_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_35_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_36 @ 0XFF180090

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_36_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_36_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[36]- (Test S - an Port) = test_scan, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_36_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_36_L3_SEL 0 - - Configures MIO Pin 36 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180090, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_36_L0_SEL_MASK | IOU_SLCR_MIO_PIN_36_L1_SEL_MASK | IOU_SLCR_MIO_PIN_36_L2_SEL_MASK | IOU_SLCR_MIO_PIN_36_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_36_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_37 @ 0XFF180094

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_37_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_37_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[37]- (Test S - an Port) = test_scan, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_37_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_37_L3_SEL 0 - - Configures MIO Pin 37 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180094, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_37_L0_SEL_MASK | IOU_SLCR_MIO_PIN_37_L1_SEL_MASK | IOU_SLCR_MIO_PIN_37_L2_SEL_MASK | IOU_SLCR_MIO_PIN_37_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_37_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_38 @ 0XFF180098

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_38_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_38_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_38_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clo - k) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- - (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_38_L3_SEL 0 - - Configures MIO Pin 38 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180098, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_38_L0_SEL_MASK | IOU_SLCR_MIO_PIN_38_L1_SEL_MASK | IOU_SLCR_MIO_PIN_38_L2_SEL_MASK | IOU_SLCR_MIO_PIN_38_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_38_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_39 @ 0XFF18009C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_39_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_39_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= sd1, Input, sd1_data_i - [4]- (8-bit Data bus) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, Output, ttc0_wav - _out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port - Control Signal) - PSU_IOU_SLCR_MIO_PIN_39_L3_SEL 0 - - Configures MIO Pin 39 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_39_L0_SEL_MASK | IOU_SLCR_MIO_PIN_39_L1_SEL_MASK | IOU_SLCR_MIO_PIN_39_L2_SEL_MASK | IOU_SLCR_MIO_PIN_39_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_39_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_40 @ 0XFF1800A0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_40_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_40_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= sd1, Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[5]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3, Input, ttc3_clk - in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_40_L3_SEL 0 - - Configures MIO Pin 40 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_40_L0_SEL_MASK | IOU_SLCR_MIO_PIN_40_L1_SEL_MASK | IOU_SLCR_MIO_PIN_40_L2_SEL_MASK | IOU_SLCR_MIO_PIN_40_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_40_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_41 @ 0XFF1800A4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_41_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_41_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_out[6]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[ - ]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in - ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_41_L3_SEL 0 - - Configures MIO Pin 41 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_41_L0_SEL_MASK | IOU_SLCR_MIO_PIN_41_L1_SEL_MASK | IOU_SLCR_MIO_PIN_41_L2_SEL_MASK | IOU_SLCR_MIO_PIN_41_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_41_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_42 @ 0XFF1800A8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_42_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_42_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_out[7]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_42_L3_SEL 0 - - Configures MIO Pin 42 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_42_L0_SEL_MASK | IOU_SLCR_MIO_PIN_42_L1_SEL_MASK | IOU_SLCR_MIO_PIN_42_L2_SEL_MASK | IOU_SLCR_MIO_PIN_42_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_42_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_43 @ 0XFF1800AC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_43_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_43_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, s - i0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_43_L3_SEL 0 - - Configures MIO Pin 43 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_43_L0_SEL_MASK | IOU_SLCR_MIO_PIN_43_L1_SEL_MASK | IOU_SLCR_MIO_PIN_43_L2_SEL_MASK | IOU_SLCR_MIO_PIN_43_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_43_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_44 @ 0XFF1800B0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_44_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_44_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_44_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, s - i1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - Not Used - PSU_IOU_SLCR_MIO_PIN_44_L3_SEL 0 - - Configures MIO Pin 44 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B0, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_44_L0_SEL_MASK | IOU_SLCR_MIO_PIN_44_L1_SEL_MASK | IOU_SLCR_MIO_PIN_44_L2_SEL_MASK | IOU_SLCR_MIO_PIN_44_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_44_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_45 @ 0XFF1800B4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_45_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L3_SEL 0 - - Configures MIO Pin 45 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B4, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_45_L0_SEL_MASK | IOU_SLCR_MIO_PIN_45_L1_SEL_MASK | IOU_SLCR_MIO_PIN_45_L2_SEL_MASK | IOU_SLCR_MIO_PIN_45_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_45_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_46 @ 0XFF1800B8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_46_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= tt - 0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L3_SEL 0 - - Configures MIO Pin 46 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B8, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_46_L0_SEL_MASK | IOU_SLCR_MIO_PIN_46_L1_SEL_MASK | IOU_SLCR_MIO_PIN_46_L2_SEL_MASK | IOU_SLCR_MIO_PIN_46_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_46_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_47 @ 0XFF1800BC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_47_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L3_SEL 0 - - Configures MIO Pin 47 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800BC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_47_L0_SEL_MASK | IOU_SLCR_MIO_PIN_47_L1_SEL_MASK | IOU_SLCR_MIO_PIN_47_L2_SEL_MASK | IOU_SLCR_MIO_PIN_47_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_47_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_48 @ 0XFF1800C0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_48_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_48_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_48_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not U - ed - PSU_IOU_SLCR_MIO_PIN_48_L3_SEL 0 - - Configures MIO Pin 48 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C0, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_48_L0_SEL_MASK | IOU_SLCR_MIO_PIN_48_L1_SEL_MASK | IOU_SLCR_MIO_PIN_48_L2_SEL_MASK | IOU_SLCR_MIO_PIN_48_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_48_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_49 @ 0XFF1800C4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_49_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8 - bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L3_SEL 0 - - Configures MIO Pin 49 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C4, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_49_L0_SEL_MASK | IOU_SLCR_MIO_PIN_49_L1_SEL_MASK | IOU_SLCR_MIO_PIN_49_L2_SEL_MASK | IOU_SLCR_MIO_PIN_49_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_49_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_50 @ 0XFF1800C8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) - PSU_IOU_SLCR_MIO_PIN_50_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Input, sd1_c - d_in- (Command Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= ttc2, Input, ttc2 - clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L3_SEL 0 - - Configures MIO Pin 50 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C8, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_50_L0_SEL_MASK | IOU_SLCR_MIO_PIN_50_L1_SEL_MASK | IOU_SLCR_MIO_PIN_50_L2_SEL_MASK | IOU_SLCR_MIO_PIN_50_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_50_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_51 @ 0XFF1800CC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) - PSU_IOU_SLCR_MIO_PIN_51_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdio1_clk_out- (SDSDIO clock) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Data) 4= mdio1, Outp - t, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter - serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L3_SEL 0 - - Configures MIO Pin 51 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800CC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_51_L0_SEL_MASK | IOU_SLCR_MIO_PIN_51_L1_SEL_MASK | IOU_SLCR_MIO_PIN_51_L2_SEL_MASK | IOU_SLCR_MIO_PIN_51_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_51_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_52 @ 0XFF1800D0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_52_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_in- (ULPI Clock) - PSU_IOU_SLCR_MIO_PIN_52_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_52_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_52_L3_SEL 0 - - Configures MIO Pin 52 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_52_L0_SEL_MASK | IOU_SLCR_MIO_PIN_52_L1_SEL_MASK | IOU_SLCR_MIO_PIN_52_L2_SEL_MASK | IOU_SLCR_MIO_PIN_52_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_52_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_53 @ 0XFF1800D4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_53_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control) - PSU_IOU_SLCR_MIO_PIN_53_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_53_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal) - PSU_IOU_SLCR_MIO_PIN_53_L3_SEL 0 - - Configures MIO Pin 53 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_53_L0_SEL_MASK | IOU_SLCR_MIO_PIN_53_L1_SEL_MASK | IOU_SLCR_MIO_PIN_53_L2_SEL_MASK | IOU_SLCR_MIO_PIN_53_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_53_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_54 @ 0XFF1800D8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_54_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[2]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_54_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_54_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_54_L3_SEL 0 - - Configures MIO Pin 54 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_54_L0_SEL_MASK | IOU_SLCR_MIO_PIN_54_L1_SEL_MASK | IOU_SLCR_MIO_PIN_54_L2_SEL_MASK | IOU_SLCR_MIO_PIN_54_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_54_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_55 @ 0XFF1800DC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_55_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY) - PSU_IOU_SLCR_MIO_PIN_55_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_55_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_55_L3_SEL 0 - - Configures MIO Pin 55 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800DC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_55_L0_SEL_MASK | IOU_SLCR_MIO_PIN_55_L1_SEL_MASK | IOU_SLCR_MIO_PIN_55_L2_SEL_MASK | IOU_SLCR_MIO_PIN_55_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_55_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_56 @ 0XFF1800E0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_56_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[0]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_56_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_56_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_56_L3_SEL 0 - - Configures MIO Pin 56 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_56_L0_SEL_MASK | IOU_SLCR_MIO_PIN_56_L1_SEL_MASK | IOU_SLCR_MIO_PIN_56_L2_SEL_MASK | IOU_SLCR_MIO_PIN_56_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_56_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_57 @ 0XFF1800E4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_57_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[1]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_57_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_57_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_57_L3_SEL 0 - - Configures MIO Pin 57 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_57_L0_SEL_MASK | IOU_SLCR_MIO_PIN_57_L1_SEL_MASK | IOU_SLCR_MIO_PIN_57_L2_SEL_MASK | IOU_SLCR_MIO_PIN_57_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_57_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_58 @ 0XFF1800E8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_58_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers) - PSU_IOU_SLCR_MIO_PIN_58_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_58_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_58_L3_SEL 0 - - Configures MIO Pin 58 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_58_L0_SEL_MASK | IOU_SLCR_MIO_PIN_58_L1_SEL_MASK | IOU_SLCR_MIO_PIN_58_L2_SEL_MASK | IOU_SLCR_MIO_PIN_58_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_58_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_59 @ 0XFF1800EC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_59_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[3]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_59_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_59_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus) - PSU_IOU_SLCR_MIO_PIN_59_L3_SEL 0 - - Configures MIO Pin 59 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800EC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_59_L0_SEL_MASK | IOU_SLCR_MIO_PIN_59_L1_SEL_MASK | IOU_SLCR_MIO_PIN_59_L2_SEL_MASK | IOU_SLCR_MIO_PIN_59_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_59_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_60 @ 0XFF1800F0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_60_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[4]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_60_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_60_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_60_L3_SEL 0 - - Configures MIO Pin 60 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_60_L0_SEL_MASK | IOU_SLCR_MIO_PIN_60_L1_SEL_MASK | IOU_SLCR_MIO_PIN_60_L2_SEL_MASK | IOU_SLCR_MIO_PIN_60_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_60_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_61 @ 0XFF1800F4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_61_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[5]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_61_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_61_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, spi1_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_61_L3_SEL 0 - - Configures MIO Pin 61 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_61_L0_SEL_MASK | IOU_SLCR_MIO_PIN_61_L1_SEL_MASK | IOU_SLCR_MIO_PIN_61_L2_SEL_MASK | IOU_SLCR_MIO_PIN_61_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_61_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_62 @ 0XFF1800F8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_62_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[6]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_62_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_62_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_62_L3_SEL 0 - - Configures MIO Pin 62 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_62_L0_SEL_MASK | IOU_SLCR_MIO_PIN_62_L1_SEL_MASK | IOU_SLCR_MIO_PIN_62_L2_SEL_MASK | IOU_SLCR_MIO_PIN_62_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_62_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_63 @ 0XFF1800FC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_63_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[7]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_63_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_63_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_63_L3_SEL 0 - - Configures MIO Pin 63 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800FC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_63_L0_SEL_MASK | IOU_SLCR_MIO_PIN_63_L1_SEL_MASK | IOU_SLCR_MIO_PIN_63_L2_SEL_MASK | IOU_SLCR_MIO_PIN_63_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_63_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_64 @ 0XFF180100

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_64_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_in- (ULPI Clock) - PSU_IOU_SLCR_MIO_PIN_64_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_64_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, s - i0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - trace, Output, tracedq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_64_L3_SEL 0 - - Configures MIO Pin 64 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180100, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_64_L0_SEL_MASK | IOU_SLCR_MIO_PIN_64_L1_SEL_MASK | IOU_SLCR_MIO_PIN_64_L2_SEL_MASK | IOU_SLCR_MIO_PIN_64_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_64_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_65 @ 0XFF180104

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_65_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) - PSU_IOU_SLCR_MIO_PIN_65_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_65_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= - ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trac - dq[11]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_65_L3_SEL 0 - - Configures MIO Pin 65 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180104, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_65_L0_SEL_MASK | IOU_SLCR_MIO_PIN_65_L1_SEL_MASK | IOU_SLCR_MIO_PIN_65_L2_SEL_MASK | IOU_SLCR_MIO_PIN_65_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_65_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_66 @ 0XFF180108

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_66_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[2]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_66_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_66_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= tt - 2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace - Port Databus) - PSU_IOU_SLCR_MIO_PIN_66_L3_SEL 0 - - Configures MIO Pin 66 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180108, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_66_L0_SEL_MASK | IOU_SLCR_MIO_PIN_66_L1_SEL_MASK | IOU_SLCR_MIO_PIN_66_L2_SEL_MASK | IOU_SLCR_MIO_PIN_66_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_66_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_67 @ 0XFF18010C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_67_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) - PSU_IOU_SLCR_MIO_PIN_67_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_67_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_67_L3_SEL 0 - - Configures MIO Pin 67 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18010C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_67_L0_SEL_MASK | IOU_SLCR_MIO_PIN_67_L1_SEL_MASK | IOU_SLCR_MIO_PIN_67_L2_SEL_MASK | IOU_SLCR_MIO_PIN_67_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_67_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_68 @ 0XFF180110

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_68_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[0]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_68_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_68_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_68_L3_SEL 0 - - Configures MIO Pin 68 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180110, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_68_L0_SEL_MASK | IOU_SLCR_MIO_PIN_68_L1_SEL_MASK | IOU_SLCR_MIO_PIN_68_L2_SEL_MASK | IOU_SLCR_MIO_PIN_68_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_68_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_69 @ 0XFF180114

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_69_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[1]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_69_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_69_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_69_L3_SEL 0 - - Configures MIO Pin 69 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180114, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_69_L0_SEL_MASK | IOU_SLCR_MIO_PIN_69_L1_SEL_MASK | IOU_SLCR_MIO_PIN_69_L2_SEL_MASK | IOU_SLCR_MIO_PIN_69_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_69_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_70 @ 0XFF180118

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_70_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) - PSU_IOU_SLCR_MIO_PIN_70_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_70_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed - PSU_IOU_SLCR_MIO_PIN_70_L3_SEL 0 - - Configures MIO Pin 70 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180118, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_70_L0_SEL_MASK | IOU_SLCR_MIO_PIN_70_L1_SEL_MASK | IOU_SLCR_MIO_PIN_70_L2_SEL_MASK | IOU_SLCR_MIO_PIN_70_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_70_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_71 @ 0XFF18011C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_71_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[3]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_71_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_71_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_71_L3_SEL 0 - - Configures MIO Pin 71 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18011C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_71_L0_SEL_MASK | IOU_SLCR_MIO_PIN_71_L1_SEL_MASK | IOU_SLCR_MIO_PIN_71_L2_SEL_MASK | IOU_SLCR_MIO_PIN_71_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_71_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_72 @ 0XFF180120

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_72_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[4]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_72_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_72_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= N - t Used 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_72_L3_SEL 0 - - Configures MIO Pin 72 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180120, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_72_L0_SEL_MASK | IOU_SLCR_MIO_PIN_72_L1_SEL_MASK | IOU_SLCR_MIO_PIN_72_L2_SEL_MASK | IOU_SLCR_MIO_PIN_72_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_72_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_73 @ 0XFF180124

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_73_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[5]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_73_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_73_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_73_L3_SEL 0 - - Configures MIO Pin 73 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180124, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_73_L0_SEL_MASK | IOU_SLCR_MIO_PIN_73_L1_SEL_MASK | IOU_SLCR_MIO_PIN_73_L2_SEL_MASK | IOU_SLCR_MIO_PIN_73_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_73_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_74 @ 0XFF180128

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_74_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[6]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_74_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_74_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_74_L3_SEL 0 - - Configures MIO Pin 74 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180128, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_74_L0_SEL_MASK | IOU_SLCR_MIO_PIN_74_L1_SEL_MASK | IOU_SLCR_MIO_PIN_74_L2_SEL_MASK | IOU_SLCR_MIO_PIN_74_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_74_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_75 @ 0XFF18012C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_75_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[7]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_75_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Comma - d Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_75_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_75_L3_SEL 0 - - Configures MIO Pin 75 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18012C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_75_L0_SEL_MASK | IOU_SLCR_MIO_PIN_75_L1_SEL_MASK | IOU_SLCR_MIO_PIN_75_L2_SEL_MASK | IOU_SLCR_MIO_PIN_75_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_75_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_76 @ 0XFF180130

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Output, sdio - _clk_out- (SDSDIO clock) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= mdio0, Output, gem0_mdc- (MDIO Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2_mdc- (MDIO Clock - 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L3_SEL 6 - - Configures MIO Pin 76 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180130, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_76_L0_SEL_MASK | IOU_SLCR_MIO_PIN_76_L1_SEL_MASK | IOU_SLCR_MIO_PIN_76_L2_SEL_MASK | IOU_SLCR_MIO_PIN_76_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_76_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_77 @ 0XFF180134

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= mdio0, Input, gem0_mdio_in- (MDIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, gem1_mdio_in- (MD - O Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_o - t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Output, gem3_mdio_out- (MDIO Data) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L3_SEL 6 - - Configures MIO Pin 77 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180134, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_77_L0_SEL_MASK | IOU_SLCR_MIO_PIN_77_L1_SEL_MASK | IOU_SLCR_MIO_PIN_77_L2_SEL_MASK | IOU_SLCR_MIO_PIN_77_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_77_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI0 @ 0XFF180204

      - - Master Tri-state Enable for pin 0, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI 0 - - Master Tri-state Enable for pin 1, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI 0 - - Master Tri-state Enable for pin 2, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI 0 - - Master Tri-state Enable for pin 3, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI 0 - - Master Tri-state Enable for pin 4, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI 0 - - Master Tri-state Enable for pin 5, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI 0 - - Master Tri-state Enable for pin 6, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI 0 - - Master Tri-state Enable for pin 7, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI 0 - - Master Tri-state Enable for pin 8, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI 0 - - Master Tri-state Enable for pin 9, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI 0 - - Master Tri-state Enable for pin 10, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI 0 - - Master Tri-state Enable for pin 11, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI 0 - - Master Tri-state Enable for pin 12, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI 0 - - Master Tri-state Enable for pin 13, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI 0 - - Master Tri-state Enable for pin 14, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI 0 - - Master Tri-state Enable for pin 15, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI 0 - - Master Tri-state Enable for pin 16, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI 0 - - Master Tri-state Enable for pin 17, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI 0 - - Master Tri-state Enable for pin 18, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI 1 - - Master Tri-state Enable for pin 19, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI 0 - - Master Tri-state Enable for pin 20, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI 0 - - Master Tri-state Enable for pin 21, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI 1 - - Master Tri-state Enable for pin 22, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI 0 - - Master Tri-state Enable for pin 23, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI 0 - - Master Tri-state Enable for pin 24, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI 0 - - Master Tri-state Enable for pin 25, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI 1 - - Master Tri-state Enable for pin 26, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI 0 - - Master Tri-state Enable for pin 27, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI 0 - - Master Tri-state Enable for pin 28, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI 1 - - Master Tri-state Enable for pin 29, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI 0 - - Master Tri-state Enable for pin 30, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI 1 - - Master Tri-state Enable for pin 31, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI 0 - - MIO pin Tri-state Enables, 31:0 - (OFFSET, MASK, VALUE) (0XFF180204, 0xFFFFFFFFU ,0x52240000U) - RegMask = (IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI0_OFFSET ,0xFFFFFFFFU ,0x52240000U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI1 @ 0XFF180208

      - - Master Tri-state Enable for pin 32, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI 0 - - Master Tri-state Enable for pin 33, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI 0 - - Master Tri-state Enable for pin 34, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI 0 - - Master Tri-state Enable for pin 35, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI 0 - - Master Tri-state Enable for pin 36, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI 0 - - Master Tri-state Enable for pin 37, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI 0 - - Master Tri-state Enable for pin 38, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI 0 - - Master Tri-state Enable for pin 39, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI 0 - - Master Tri-state Enable for pin 40, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI 0 - - Master Tri-state Enable for pin 41, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI 0 - - Master Tri-state Enable for pin 42, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI 0 - - Master Tri-state Enable for pin 43, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI 0 - - Master Tri-state Enable for pin 44, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI 1 - - Master Tri-state Enable for pin 45, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI 1 - - Master Tri-state Enable for pin 46, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI 0 - - Master Tri-state Enable for pin 47, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI 0 - - Master Tri-state Enable for pin 48, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI 0 - - Master Tri-state Enable for pin 49, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI 0 - - Master Tri-state Enable for pin 50, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI 0 - - Master Tri-state Enable for pin 51, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI 0 - - Master Tri-state Enable for pin 52, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI 1 - - Master Tri-state Enable for pin 53, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI 1 - - Master Tri-state Enable for pin 54, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI 0 - - Master Tri-state Enable for pin 55, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI 1 - - Master Tri-state Enable for pin 56, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI 0 - - Master Tri-state Enable for pin 57, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI 0 - - Master Tri-state Enable for pin 58, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI 0 - - Master Tri-state Enable for pin 59, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI 0 - - Master Tri-state Enable for pin 60, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI 0 - - Master Tri-state Enable for pin 61, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI 0 - - Master Tri-state Enable for pin 62, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI 0 - - Master Tri-state Enable for pin 63, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI 0 - - MIO pin Tri-state Enables, 63:32 - (OFFSET, MASK, VALUE) (0XFF180208, 0xFFFFFFFFU ,0x00B03000U) - RegMask = (IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI1_OFFSET ,0xFFFFFFFFU ,0x00B03000U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI2 @ 0XFF18020C

      - - Master Tri-state Enable for pin 64, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI 0 - - Master Tri-state Enable for pin 65, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI 0 - - Master Tri-state Enable for pin 66, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI 0 - - Master Tri-state Enable for pin 67, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI 0 - - Master Tri-state Enable for pin 68, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI 0 - - Master Tri-state Enable for pin 69, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI 0 - - Master Tri-state Enable for pin 70, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI 1 - - Master Tri-state Enable for pin 71, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI 1 - - Master Tri-state Enable for pin 72, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI 1 - - Master Tri-state Enable for pin 73, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI 1 - - Master Tri-state Enable for pin 74, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI 1 - - Master Tri-state Enable for pin 75, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI 1 - - Master Tri-state Enable for pin 76, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI 0 - - Master Tri-state Enable for pin 77, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI 0 - - MIO pin Tri-state Enables, 77:64 - (OFFSET, MASK, VALUE) (0XFF18020C, 0x00003FFFU ,0x00000FC0U) - RegMask = (IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI2_OFFSET ,0x00003FFFU ,0x00000FC0U); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl0 @ 0XFF180138

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180138, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl1 @ 0XFF18013C

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF18013C, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl3 @ 0XFF180140

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180140, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl4 @ 0XFF180144

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank0_pull_enable is set, this selects pull up or pull down for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180144, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl5 @ 0XFF180148

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank0_pullupdown to selects pull up or pull down for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180148, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl6 @ 0XFF18014C

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF18014C, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl0 @ 0XFF180154

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180154, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl1 @ 0XFF180158

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180158, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl3 @ 0XFF18015C

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF18015C, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl4 @ 0XFF180160

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank1_pull_enable is set, this selects pull up or pull down for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180160, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl5 @ 0XFF180164

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank1_pullupdown to selects pull up or pull down for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180164, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl6 @ 0XFF180168

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180168, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl0 @ 0XFF180170

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180170, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl1 @ 0XFF180174

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180174, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl3 @ 0XFF180178

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180178, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl4 @ 0XFF18017C

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank2_pull_enable is set, this selects pull up or pull down for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF18017C, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl5 @ 0XFF180180

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank2_pullupdown to selects pull up or pull down for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180180, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl6 @ 0XFF180184

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180184, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : LOOPBACK - /*Register : MIO_LOOPBACK @ 0XFF180200

      - - I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outp - ts to I2C 0 inputs. - PSU_IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1 0 - - CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 R - . - PSU_IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1 0 - - UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 - outputs to UART 0 inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD and RI not used. - PSU_IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1 0 - - SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outp - ts to SPI 0 inputs. The other SPI core will appear on the LS Slave Select. - PSU_IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1 0 - - Loopback function within MIO - (OFFSET, MASK, VALUE) (0XFF180200, 0x0000000FU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK | IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK | IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK | IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_LOOPBACK_OFFSET ,0x0000000FU ,0x00000000U); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_peripherals_init_data() { - // : RESET BLOCKS - // : TIMESTAMP - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      +unsigned long psu_mio_init_data(void) +{ + /* + * MIO PROGRAMMING + */ + /* + * Register : MIO_PIN_0 @ 0XFF180000 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- + * (QSPI Clock) + * PSU_IOU_SLCR_MIO_PIN_0_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_0_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[0]- (Test Scan Port) = test_scan, Output, test_scan_out[0 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_0_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_0_L3_SEL 0 + + * Configures MIO Pin 0 peripheral interface mapping. S + * (OFFSET, MASK, VALUE) (0XFF180000, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_0_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_1 @ 0XFF180004 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (Q + * SPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_1_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_1_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[1]- (Test Scan Port) = test_scan, Output, test_scan_out[1 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_1_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Ou + * tput, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) + * PSU_IOU_SLCR_MIO_PIN_1_L3_SEL 0 + + * Configures MIO Pin 1 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180004, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_1_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_2 @ 0XFF180008 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI + * Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_2_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_2_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[2]- (Test Scan Port) = test_scan, Output, test_scan_out[2 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_2_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, I + * nput, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_2_L3_SEL 0 + + * Configures MIO Pin 2 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180008, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_2_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_3 @ 0XFF18000C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI + * Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_3_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_3_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[3]- (Test Scan Port) = test_scan, Output, test_scan_out[3 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_3_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_3_L3_SEL 0 + + * Configures MIO Pin 3 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18000C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_3_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_4 @ 0XFF180010 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- ( + * QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_4_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_4_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[4]- (Test Scan Port) = test_scan, Output, test_scan_out[4 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_4_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_4_L3_SEL 0 + + * Configures MIO Pin 4 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180010, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_4_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_5 @ 0XFF180014 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- + * (QSPI Slave Select) + * PSU_IOU_SLCR_MIO_PIN_5_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_5_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[5]- (Test Scan Port) = test_scan, Output, test_scan_out[5 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_5_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_5_L3_SEL 0 + + * Configures MIO Pin 5 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180014, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_5_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_6 @ 0XFF180018 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_l + * pbk- (QSPI Clock to be fed-back) + * PSU_IOU_SLCR_MIO_PIN_6_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_6_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[6]- (Test Scan Port) = test_scan, Output, test_scan_out[6 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_6_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= s + * pi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TT + * C Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, + * Output, tracedq[4]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_6_L3_SEL 0 + + * Configures MIO Pin 6 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180018, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_6_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_7 @ 0XFF18001C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_ + * upper- (QSPI Slave Select upper) + * PSU_IOU_SLCR_MIO_PIN_7_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_7_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[7]- (Test Scan Port) = test_scan, Output, test_scan_out[7 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_7_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Ma + * ster Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua + * 0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, t + * racedq[5]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_7_L3_SEL 0 + + * Configures MIO Pin 7 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18001C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_7_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_8 @ 0XFF180020 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_8_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_8_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[8]- (Test Scan Port) = test_scan, Output, test_scan_out[8 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_8_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Maste + * r Selects) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_ + * txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tra + * ce Port Databus) + * PSU_IOU_SLCR_MIO_PIN_8_L3_SEL 0 + + * Configures MIO Pin 8 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180020, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_8_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_9 @ 0XFF180024 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_9_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_9_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[9]- (Test Scan Port) = test_scan, Output, test_scan_out[9 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_9_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master S + * elects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, + * Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UA + * RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Data + * bus) + * PSU_IOU_SLCR_MIO_PIN_9_L3_SEL 0 + + * Configures MIO Pin 9 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180024, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_9_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_10 @ 0XFF180028 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_10_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_10_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[10]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 10]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_10_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_10_L3_SEL 0 + + * Configures MIO Pin 10 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180028, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_10_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_11 @ 0XFF18002C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_11_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_11_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[11]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 11]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_11_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_11_L3_SEL 0 + + * Configures MIO Pin 11 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18002C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_11_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_12 @ 0XFF180030 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_ + * upper- (QSPI Upper Clock) + * PSU_IOU_SLCR_MIO_PIN_12_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) + * PSU_IOU_SLCR_MIO_PIN_12_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[12]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 12]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_12_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJT + * AG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_ + * sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, O + * utput, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace + * dq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_12_L3_SEL 0 + + * Configures MIO Pin 12 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180030, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_12_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_13 @ 0XFF180034 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_13_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_13_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, + * test_scan_out[13]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_13_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTA + * G TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, + * Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UAR + * T receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Data + * bus) + * PSU_IOU_SLCR_MIO_PIN_13_L3_SEL 0 + + * Configures MIO Pin 13 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180034, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_13_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_14 @ 0XFF180038 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_14_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND + * Command Latch Enable) + * PSU_IOU_SLCR_MIO_PIN_14_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, + * test_scan_out[14]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_14_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJT + * AG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, + * Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver + * serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_14_L3_SEL 2 + + * Configures MIO Pin 14 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180038, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_14_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_15 @ 0XFF18003C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_15_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND + * Address Latch Enable) + * PSU_IOU_SLCR_MIO_PIN_15_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, + * test_scan_out[15]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_15_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJT + * AG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outp + * ut, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_ou + * t- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seria + * l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_15_L3_SEL 2 + + * Configures MIO Pin 15 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18003C, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_15_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_16 @ 0XFF180040 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_16_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_16_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, + * test_scan_out[16]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_16_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_16_L3_SEL 2 + + * Configures MIO Pin 16 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180040, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_16_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_17 @ 0XFF180044 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_17_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_17_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, + * test_scan_out[17]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_17_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_17_L3_SEL 2 + + * Configures MIO Pin 17 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180044, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_17_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_18 @ 0XFF180048 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_18_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_18_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, + * test_scan_out[18]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_18_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_18_L3_SEL 6 + + * Configures MIO Pin 18 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180048, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_18_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_19 @ 0XFF18004C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_19_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_19_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, + * test_scan_out[19]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_19_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_19_L3_SEL 6 + + * Configures MIO Pin 19 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18004C, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_19_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_20 @ 0XFF180050 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_20_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_20_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, + * test_scan_out[20]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_20_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua + * 1_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_20_L3_SEL 6 + + * Configures MIO Pin 20 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180050, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_20_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_21 @ 0XFF180054 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_21_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_21_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= tes + * t_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, t + * est_scan_out[21]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU E + * xt Tamper) + * PSU_IOU_SLCR_MIO_PIN_21_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc + * 1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- ( + * UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_21_L3_SEL 6 + + * Configures MIO Pin 21 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180054, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_21_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_22 @ 0XFF180058 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_22_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAN + * D Write Enable) + * PSU_IOU_SLCR_MIO_PIN_22_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- (Test Scan Port) = + * test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, c + * su_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_22_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed + * PSU_IOU_SLCR_MIO_PIN_22_L3_SEL 0 + + * Configures MIO Pin 22 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180058, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_22_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_23 @ 0XFF18005C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_23_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_23_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= test_scan, Input, test_scan_in[23]- (Test Scan Po + * rt) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Inp + * ut, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_23_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_23_L3_SEL 0 + + * Configures MIO Pin 23 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18005C, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_23_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_24 @ 0XFF180060 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_24_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_24_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= test_scan, Input, test_scan_in[24]- (Test + * Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= + * csu, Input, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_24_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= N + * ot Used + * PSU_IOU_SLCR_MIO_PIN_24_L3_SEL 1 + + * Configures MIO Pin 24 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180060, 0x000000FEU ,0x00000020U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_24_OFFSET, 0x000000FEU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_25 @ 0XFF180064 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_25_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAN + * D Read Enable) + * PSU_IOU_SLCR_MIO_PIN_25_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= test_scan, Input, test_scan_in[25]- + * (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port + * ) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_25_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_ou + * t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in + * put) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_25_L3_SEL 1 + + * Configures MIO Pin 25 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180064, 0x000000FEU ,0x00000020U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_25_OFFSET, 0x000000FEU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_26 @ 0XFF180068 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_26_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_26_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[26]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_26_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_26_L3_SEL 0 + + * Configures MIO Pin 26 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180068, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_26_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_27 @ 0XFF18006C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_27_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_27_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[27]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_27_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_27_L3_SEL 0 + + * Configures MIO Pin 27 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18006C, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_27_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_28 @ 0XFF180070 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_28_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_28_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[28]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_28_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_28_L3_SEL 0 + + * Configures MIO Pin 28 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180070, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_28_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_29 @ 0XFF180074 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_29_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_29_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[29]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_29_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, + * spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_29_L3_SEL 0 + + * Configures MIO Pin 29 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180074, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_29_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_30 @ 0XFF180078 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_30_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_30_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[30]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_30_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0 + * , Output, spi0_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock + * ) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, + * tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_30_L3_SEL 0 + + * Configures MIO Pin 30 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180078, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_30_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_31 @ 0XFF18007C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_31_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_31_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[31]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_31_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TT + * C Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial outp + * ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_31_L3_SEL 0 + + * Configures MIO Pin 31 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18007C, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_31_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_32 @ 0XFF180080 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_32_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) + * PSU_IOU_SLCR_MIO_PIN_32_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[32]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_32_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= t + * race, Output, tracedq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_32_L3_SEL 0 + + * Configures MIO Pin 32 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180080, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_32_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_33 @ 0XFF180084 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_33_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_33_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[33]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_33_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Mas + * ter Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1 + * , Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq + * [11]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_33_L3_SEL 0 + + * Configures MIO Pin 33 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180084, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_33_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_34 @ 0XFF180088 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_34_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_34_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[34]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_34_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master + * Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rx + * d- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Po + * rt Databus) + * PSU_IOU_SLCR_MIO_PIN_34_L3_SEL 0 + + * Configures MIO Pin 34 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180088, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_34_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_35 @ 0XFF18008C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_35_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_35_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[35]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_35_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2 + * , Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- ( + * UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Po + * rt Databus) + * PSU_IOU_SLCR_MIO_PIN_35_L3_SEL 0 + + * Configures MIO Pin 35 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18008C, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_35_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_36 @ 0XFF180090 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_36_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_36_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[36]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_36_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_36_L3_SEL 0 + + * Configures MIO Pin 36 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180090, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_36_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_37 @ 0XFF180094 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_37_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_37_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[37]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_37_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_37_L3_SEL 0 + + * Configures MIO Pin 37 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180094, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_37_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_38 @ 0XFF180098 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_38_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_38_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_38_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTA + * G TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_s + * clk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, In + * put, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- + * (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_38_L3_SEL 0 + + * Configures MIO Pin 38 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180098, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_38_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_39 @ 0XFF18009C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_39_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_39_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= sd1, Input, sd1_data_in[4]- (8-bit Data b + * us) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJT + * AG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, + * Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (U + * ART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port + * Control Signal) + * PSU_IOU_SLCR_MIO_PIN_39_L3_SEL 0 + + * Configures MIO Pin 39 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_39_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_40 @ 0XFF1800A0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_40_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_40_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= sd1 + * , Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[ + * 5]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJ + * TAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3 + * , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmi + * tter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_40_L3_SEL 0 + + * Configures MIO Pin 40 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_40_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_41 @ 0XFF1800A4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_41_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_41_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[6]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTA + * G TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outpu + * t, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out + * - (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inp + * ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_41_L3_SEL 0 + + * Configures MIO Pin 41 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_41_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_42 @ 0XFF1800A8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_42_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_42_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[7]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= sp + * i0, Output, spi0_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_42_L3_SEL 0 + + * Configures MIO Pin 42 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_42_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_43 @ 0XFF1800AC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_43_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_43_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) + * 4= spi0, Input, spi0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_43_L3_SEL 0 + + * Configures MIO Pin 43 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_43_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_44 @ 0XFF1800B0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_44_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4 + * = spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L3_SEL 0 + + * Configures MIO Pin 44 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_44_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_45 @ 0XFF1800B4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_45_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L3_SEL 0 + + * Configures MIO Pin 45 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_45_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_46 @ 0XFF1800B8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_46_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L3_SEL 0 + + * Configures MIO Pin 46 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_46_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_47 @ 0XFF1800BC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_47_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Maste + * r Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= tt + * c0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L3_SEL 0 + + * Configures MIO Pin 47 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800BC, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_47_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_48 @ 0XFF1800C0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_48_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_48_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_48_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Us + * ed + * PSU_IOU_SLCR_MIO_PIN_48_L3_SEL 0 + + * Configures MIO Pin 48 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_48_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_49 @ 0XFF1800C4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_49_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd + * 1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L3_SEL 0 + + * Configures MIO Pin 49 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_49_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_50 @ 0XFF1800C8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) + * PSU_IOU_SLCR_MIO_PIN_50_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Input, sd1_cmd_in- (Command Ind + * icator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= + * ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART rece + * iver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L3_SEL 0 + + * Configures MIO Pin 50 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_50_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_51 @ 0XFF1800CC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) + * PSU_IOU_SLCR_MIO_PIN_51_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdi + * o1_clk_out- (SDSDIO clock) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Dat + * a) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wa + * ve_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter + * serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L3_SEL 0 + + * Configures MIO Pin 51 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800CC, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_51_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_52 @ 0XFF1800D0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_52_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_i + * n- (ULPI Clock) + * PSU_IOU_SLCR_MIO_PIN_52_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_52_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_52_L3_SEL 0 + + * Configures MIO Pin 52 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_52_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_53 @ 0XFF1800D4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_53_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- + * (Data bus direction control) + * PSU_IOU_SLCR_MIO_PIN_53_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_53_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Ou + * tput, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) + * PSU_IOU_SLCR_MIO_PIN_53_L3_SEL 0 + + * Configures MIO Pin 53 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_53_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_54 @ 0XFF1800D8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_54_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_54_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_54_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, I + * nput, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_54_L3_SEL 0 + + * Configures MIO Pin 54 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_54_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_55 @ 0XFF1800DC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_55_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- + * (Data flow control signal from the PHY) + * PSU_IOU_SLCR_MIO_PIN_55_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_55_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_55_L3_SEL 0 + + * Configures MIO Pin 55 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800DC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_55_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_56 @ 0XFF1800E0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_56_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_56_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_56_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_56_L3_SEL 0 + + * Configures MIO Pin 56 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_56_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_57 @ 0XFF1800E4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_57_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_57_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_57_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_57_L3_SEL 0 + + * Configures MIO Pin 57 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_57_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_58 @ 0XFF1800E8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_58_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- + * (Asserted to end or interrupt transfers) + * PSU_IOU_SLCR_MIO_PIN_58_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_58_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_58_L3_SEL 0 + + * Configures MIO Pin 58 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_58_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_59 @ 0XFF1800EC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_59_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_59_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_59_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_59_L3_SEL 0 + + * Configures MIO Pin 59 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800EC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_59_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_60 @ 0XFF1800F0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_60_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_60_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_60_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_60_L3_SEL 0 + + * Configures MIO Pin 60 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_60_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_61 @ 0XFF1800F4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_61_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_61_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_61_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, + * spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_61_L3_SEL 0 + + * Configures MIO Pin 61 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_61_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_62 @ 0XFF1800F8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_62_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_62_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_62_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_62_L3_SEL 0 + + * Configures MIO Pin 62 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_62_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_63 @ 0XFF1800FC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_63_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_63_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_63_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_63_L3_SEL 0 + + * Configures MIO Pin 63 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800FC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_63_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_64 @ 0XFF180100 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_64_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_i + * n- (ULPI Clock) + * PSU_IOU_SLCR_MIO_PIN_64_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_64_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4 + * = spi0, Output, spi0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * trace, Output, tracedq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_64_L3_SEL 0 + + * Configures MIO Pin 64 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180100, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_64_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_65 @ 0XFF180104 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_65_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- + * (Data bus direction control) + * PSU_IOU_SLCR_MIO_PIN_65_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_65_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace + * dq[11]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_65_L3_SEL 0 + + * Configures MIO Pin 65 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180104, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_65_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_66 @ 0XFF180108 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_66_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_66_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= Not + * Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_66_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace + * Port Databus) + * PSU_IOU_SLCR_MIO_PIN_66_L3_SEL 0 + + * Configures MIO Pin 66 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180108, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_66_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_67 @ 0XFF18010C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_67_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- + * (Data flow control signal from the PHY) + * PSU_IOU_SLCR_MIO_PIN_67_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= N + * ot Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_67_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Maste + * r Selects) 4= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= tt + * c2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace + * Port Databus) + * PSU_IOU_SLCR_MIO_PIN_67_L3_SEL 0 + + * Configures MIO Pin 67 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18010C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_67_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_68 @ 0XFF180110 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_68_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_68_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= N + * ot Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_68_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_68_L3_SEL 0 + + * Configures MIO Pin 68 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180110, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_68_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_69 @ 0XFF180114 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_69_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_69_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_69_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_69_L3_SEL 0 + + * Configures MIO Pin 69 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180114, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_69_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_70 @ 0XFF180118 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_70_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- + * (Asserted to end or interrupt transfers) + * PSU_IOU_SLCR_MIO_PIN_70_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_70_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed + * PSU_IOU_SLCR_MIO_PIN_70_L3_SEL 0 + + * Configures MIO Pin 70 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180118, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_70_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_71 @ 0XFF18011C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_71_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_71_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_71_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_71_L3_SEL 0 + + * Configures MIO Pin 71 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18011C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_71_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_72 @ 0XFF180120 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_72_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_72_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_72_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= Not Used 6= ua1, Output, ua1_txd- (UART transmitter seri + * al output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_72_L3_SEL 0 + + * Configures MIO Pin 72 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180120, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_72_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_73 @ 0XFF180124 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_73_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_73_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_73_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not + * Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_73_L3_SEL 0 + + * Configures MIO Pin 73 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180124, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_73_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_74 @ 0XFF180128 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_74_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_74_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[3]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_74_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- ( + * UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_74_L3_SEL 0 + + * Configures MIO Pin 74 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180128, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_74_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_75 @ 0XFF18012C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_75_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_75_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Command Indicator) = sd1 + * , Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_75_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_t + * xd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_75_L3_SEL 0 + + * Configures MIO Pin 75 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18012C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_75_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_76 @ 0XFF180130 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Output, sdio1_clk_out- (SDSDIO + * clock) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= mdio0, Output, gem0_mdc- (MDI + * O Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2 + * _mdc- (MDIO Clock) 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L3_SEL 6 + + * Configures MIO Pin 76 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180130, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_76_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_77 @ 0XFF180134 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L0_SEL 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L1_SEL 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00100000U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK | 0 ); + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio + * 1_cd_n- (SD card detect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L2_SEL 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00100000U ,0x00000000U); - /*############################################################################################################################ */ + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= mdio0, Input, gem0_mdio_in- (M + * DIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, + * gem1_mdio_in- (MDIO Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5 + * = mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_ou + * t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Outp + * ut, gem3_mdio_out- (MDIO Data) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L3_SEL 6 - // : ENET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

      + * Configures MIO Pin 77 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180134, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_77_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 + /* + * Register : MIO_MST_TRI0 @ 0XFF180204 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 0, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 1, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI 0 - // : QSPI - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 2, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 + * Master Tri-state Enable for pin 3, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 4, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 5, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI 0 - // : QSPI TAP DELAY - /*Register : IOU_TAPDLY_BYPASS @ 0XFF180390

      + * Master Tri-state Enable for pin 6, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI 0 - 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypass the Tap delay on the Rx clock signal of LQSPI - PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 + * Master Tri-state Enable for pin 7, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI 0 - IOU tap delay bypass for the LQSPI and NAND controllers - (OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) - RegMask = (IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK | 0 ); + * Master Tri-state Enable for pin 8, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI 0 - RegVal = ((0x00000001U << IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET ,0x00000004U ,0x00000004U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 9, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI 0 - // : NAND - // : USB - /*Register : RST_LPD_TOP @ 0XFF5E023C

      + * Master Tri-state Enable for pin 10, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI 0 - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 + * Master Tri-state Enable for pin 11, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI 0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 + * Master Tri-state Enable for pin 12, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI 0 - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 + * Master Tri-state Enable for pin 13, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI 0 - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * Master Tri-state Enable for pin 14, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000540U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 15, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI 0 - // : FPD RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      + * Master Tri-state Enable for pin 16, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI 0 - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0 + * Master Tri-state Enable for pin 17, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI 0 - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0 + * Master Tri-state Enable for pin 18, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI 1 - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0 + * Master Tri-state Enable for pin 19, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI 0 - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0 + * Master Tri-state Enable for pin 20, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI 0 - FPD WDT reset - PSU_CRF_APB_RST_FPD_TOP_SWDT_RESET 0 + * Master Tri-state Enable for pin 21, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI 1 - GDMA block level reset - PSU_CRF_APB_RST_FPD_TOP_GDMA_RESET 0 + * Master Tri-state Enable for pin 22, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI 0 - Pixel Processor (submodule of GPU) block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_PP0_RESET 0 + * Master Tri-state Enable for pin 23, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI 0 - Pixel Processor (submodule of GPU) block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_PP1_RESET 0 + * Master Tri-state Enable for pin 24, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI 0 - GPU block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_RESET 0 + * Master Tri-state Enable for pin 25, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI 1 - GT block level reset - PSU_CRF_APB_RST_FPD_TOP_GT_RESET 0 + * Master Tri-state Enable for pin 26, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI 0 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0 + * Master Tri-state Enable for pin 27, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI 0 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000F807EU ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | CRF_APB_RST_FPD_TOP_DP_RESET_MASK | CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK | CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_RESET_MASK | CRF_APB_RST_FPD_TOP_GT_RESET_MASK | CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 28, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI 1 - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000F807EU ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 29, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI 0 - // : SD - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 30, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI 1 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_SDIO1_RESET 0 + * Master Tri-state Enable for pin 31, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000040U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK | 0 ); + * MIO pin Tri-state Enables, 31:0 + * (OFFSET, MASK, VALUE) (0XFF180204, 0xFFFFFFFFU ,0x52240000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI0_OFFSET, + 0xFFFFFFFFU, 0x52240000U); +/*##################################################################### */ - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000040U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : MIO_MST_TRI1 @ 0XFF180208 - /*Register : CTRL_REG_SD @ 0XFF180310

      + * Master Tri-state Enable for pin 32, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI 0 - SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled - PSU_IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL 0 + * Master Tri-state Enable for pin 33, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI 0 - SD eMMC selection - (OFFSET, MASK, VALUE) (0XFF180310, 0x00008000U ,0x00000000U) - RegMask = (IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK | 0 ); + * Master Tri-state Enable for pin 34, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI 0 - RegVal = ((0x00000000U << IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_CTRL_REG_SD_OFFSET ,0x00008000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 35, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI 0 - /*Register : SD_CONFIG_REG2 @ 0XFF180320

      + * Master Tri-state Enable for pin 36, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI 0 - Should be set based on the final product usage 00 - Removable SCard Slot 01 - Embedded Slot for One Device 10 - Shared Bus Sl - t 11 - Reserved - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE 0 + * Master Tri-state Enable for pin 37, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI 0 - 1.8V Support 1: 1.8V supported 0: 1.8V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 0 + * Master Tri-state Enable for pin 38, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI 0 - 3.0V Support 1: 3.0V supported 0: 3.0V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V 0 + * Master Tri-state Enable for pin 39, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI 0 - 3.3V Support 1: 3.3V supported 0: 3.3V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V 1 + * Master Tri-state Enable for pin 40, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI 0 - SD Config Register 2 - (OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x00800000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK | 0 ); + * Master Tri-state Enable for pin 41, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI 0 - RegVal = ((0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT - | 0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT - | 0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT - | 0x00000001U << IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG2_OFFSET ,0x33800000U ,0x00800000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 42, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI 0 - // : SD1 BASE CLOCK - /*Register : SD_CONFIG_REG1 @ 0XFF18031C

      + * Master Tri-state Enable for pin 43, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI 0 - Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. - PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc7 + * Master Tri-state Enable for pin 44, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI 1 - SD Config Register 1 - (OFFSET, MASK, VALUE) (0XFF18031C, 0x7F800000U ,0x63800000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK | 0 ); + * Master Tri-state Enable for pin 45, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI 1 - RegVal = ((0x000000C7U << IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG1_OFFSET ,0x7F800000U ,0x63800000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 46, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI 0 - // : SD1 RETUNER - /*Register : SD_CONFIG_REG3 @ 0XFF180324

      + * Master Tri-state Enable for pin 47, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI 0 - This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. Setting to 4'b0 disables Re-Tuning Timer. 0h - Get inf - rmation via other source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n = 2(n-1) seconds -- Bh = 1024 secon - s Fh - Ch = Reserved - PSU_IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR 0X0 + * Master Tri-state Enable for pin 48, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI 0 - SD Config Register 3 - (OFFSET, MASK, VALUE) (0XFF180324, 0x03C00000U ,0x00000000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG3_OFFSET ,0x03C00000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 49, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI 0 - // : CAN - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 50, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_CAN1_RESET 0 + * Master Tri-state Enable for pin 51, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000100U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 52, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI 1 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000100U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 53, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI 1 - // : I2C - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 54, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_I2C0_RESET 0 + * Master Tri-state Enable for pin 55, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI 1 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_I2C1_RESET 0 + * Master Tri-state Enable for pin 56, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000600U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK | CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 57, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000600U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 58, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI 0 - // : SWDT - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 59, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_SWDT_RESET 0 + * Master Tri-state Enable for pin 60, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00008000U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 61, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00008000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 62, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI 0 - // : SPI - // : TTC - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 63, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC0_RESET 0 + * MIO pin Tri-state Enables, 63:32 + * (OFFSET, MASK, VALUE) (0XFF180208, 0xFFFFFFFFU ,0x00B03000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI1_OFFSET, + 0xFFFFFFFFU, 0x00B03000U); +/*##################################################################### */ - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC1_RESET 0 + /* + * Register : MIO_MST_TRI2 @ 0XFF18020C - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC2_RESET 0 + * Master Tri-state Enable for pin 64, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC3_RESET 0 + * Master Tri-state Enable for pin 65, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00007800U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 66, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00007800U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 67, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI 0 - // : UART - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 68, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_UART0_RESET 0 + * Master Tri-state Enable for pin 69, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_UART1_RESET 0 + * Master Tri-state Enable for pin 70, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI 1 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000006U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK | CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 71, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI 1 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000006U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 72, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI 1 - // : UART BAUD RATE - /*Register : Baud_rate_divider_reg0 @ 0XFF000034

      + * Master Tri-state Enable for pin 73, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI 1 - Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate - PSU_UART0_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + * Master Tri-state Enable for pin 74, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI 1 - Baud Rate Divider Register - (OFFSET, MASK, VALUE) (0XFF000034, 0x000000FFU ,0x00000005U) - RegMask = (UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK | 0 ); + * Master Tri-state Enable for pin 75, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI 1 - RegVal = ((0x00000005U << UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_BAUD_RATE_DIVIDER_REG0_OFFSET ,0x000000FFU ,0x00000005U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 76, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI 0 - /*Register : Baud_rate_gen_reg0 @ 0XFF000018

      + * Master Tri-state Enable for pin 77, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI 0 - Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample - PSU_UART0_BAUD_RATE_GEN_REG0_CD 0x8f + * MIO pin Tri-state Enables, 77:64 + * (OFFSET, MASK, VALUE) (0XFF18020C, 0x00003FFFU ,0x00000FC0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI2_OFFSET, + 0x00003FFFU, 0x00000FC0U); +/*##################################################################### */ - Baud Rate Generator Register. - (OFFSET, MASK, VALUE) (0XFF000018, 0x0000FFFFU ,0x0000008FU) - RegMask = (UART0_BAUD_RATE_GEN_REG0_CD_MASK | 0 ); + /* + * Register : bank0_ctrl0 @ 0XFF180138 - RegVal = ((0x0000008FU << UART0_BAUD_RATE_GEN_REG0_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_BAUD_RATE_GEN_REG0_OFFSET ,0x0000FFFFU ,0x0000008FU); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0 1 - /*Register : Control_reg0 @ 0XFF000000

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1 1 - Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK. - PSU_UART0_CONTROL_REG0_STPBRK 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2 1 - Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. - PSU_UART0_CONTROL_REG0_STTBRK 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3 1 - Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted. - PSU_UART0_CONTROL_REG0_RSTTO 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4 1 - Transmit disable: 0: enable transmitter 1: disable transmitter - PSU_UART0_CONTROL_REG0_TXDIS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5 1 - Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. - PSU_UART0_CONTROL_REG0_TXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6 1 - Receive disable: 0: enable 1: disable, regardless of the value of RXEN - PSU_UART0_CONTROL_REG0_RXDIS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7 1 - Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. - PSU_UART0_CONTROL_REG0_RXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8 1 - Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed. - PSU_UART0_CONTROL_REG0_TXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9 1 - Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed. - PSU_UART0_CONTROL_REG0_RXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10 1 - UART Control Register - (OFFSET, MASK, VALUE) (0XFF000000, 0x000001FFU ,0x00000017U) - RegMask = (UART0_CONTROL_REG0_STPBRK_MASK | UART0_CONTROL_REG0_STTBRK_MASK | UART0_CONTROL_REG0_RSTTO_MASK | UART0_CONTROL_REG0_TXDIS_MASK | UART0_CONTROL_REG0_TXEN_MASK | UART0_CONTROL_REG0_RXDIS_MASK | UART0_CONTROL_REG0_RXEN_MASK | UART0_CONTROL_REG0_TXRES_MASK | UART0_CONTROL_REG0_RXRES_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11 1 - RegVal = ((0x00000000U << UART0_CONTROL_REG0_STPBRK_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_STTBRK_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_RSTTO_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_TXDIS_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_TXEN_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_RXDIS_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_RXEN_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_TXRES_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_RXRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_CONTROL_REG0_OFFSET ,0x000001FFU ,0x00000017U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12 1 - /*Register : mode_reg0 @ 0XFF000004

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13 1 - Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback - PSU_UART0_MODE_REG0_CHMODE 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14 1 - Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved - PSU_UART0_MODE_REG0_NBSTOP 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15 1 - Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity - PSU_UART0_MODE_REG0_PAR 0x4 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16 1 - Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits - PSU_UART0_MODE_REG0_CHRL 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17 1 - Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8 - PSU_UART0_MODE_REG0_CLKS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18 1 - UART Mode Register - (OFFSET, MASK, VALUE) (0XFF000004, 0x000003FFU ,0x00000020U) - RegMask = (UART0_MODE_REG0_CHMODE_MASK | UART0_MODE_REG0_NBSTOP_MASK | UART0_MODE_REG0_PAR_MASK | UART0_MODE_REG0_CHRL_MASK | UART0_MODE_REG0_CLKS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19 1 - RegVal = ((0x00000000U << UART0_MODE_REG0_CHMODE_SHIFT - | 0x00000000U << UART0_MODE_REG0_NBSTOP_SHIFT - | 0x00000004U << UART0_MODE_REG0_PAR_SHIFT - | 0x00000000U << UART0_MODE_REG0_CHRL_SHIFT - | 0x00000000U << UART0_MODE_REG0_CLKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_MODE_REG0_OFFSET ,0x000003FFU ,0x00000020U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20 1 - /*Register : Baud_rate_divider_reg0 @ 0XFF010034

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21 1 - Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate - PSU_UART1_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22 1 - Baud Rate Divider Register - (OFFSET, MASK, VALUE) (0XFF010034, 0x000000FFU ,0x00000005U) - RegMask = (UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK | 0 ); - - RegVal = ((0x00000005U << UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_BAUD_RATE_DIVIDER_REG0_OFFSET ,0x000000FFU ,0x00000005U); - /*############################################################################################################################ */ - - /*Register : Baud_rate_gen_reg0 @ 0XFF010018

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23 1 - Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample - PSU_UART1_BAUD_RATE_GEN_REG0_CD 0x8f - - Baud Rate Generator Register. - (OFFSET, MASK, VALUE) (0XFF010018, 0x0000FFFFU ,0x0000008FU) - RegMask = (UART1_BAUD_RATE_GEN_REG0_CD_MASK | 0 ); - - RegVal = ((0x0000008FU << UART1_BAUD_RATE_GEN_REG0_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_BAUD_RATE_GEN_REG0_OFFSET ,0x0000FFFFU ,0x0000008FU); - /*############################################################################################################################ */ - - /*Register : Control_reg0 @ 0XFF010000

      - - Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK. - PSU_UART1_CONTROL_REG0_STPBRK 0x0 - - Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. - PSU_UART1_CONTROL_REG0_STTBRK 0x0 - - Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted. - PSU_UART1_CONTROL_REG0_RSTTO 0x0 - - Transmit disable: 0: enable transmitter 1: disable transmitter - PSU_UART1_CONTROL_REG0_TXDIS 0x0 - - Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. - PSU_UART1_CONTROL_REG0_TXEN 0x1 - - Receive disable: 0: enable 1: disable, regardless of the value of RXEN - PSU_UART1_CONTROL_REG0_RXDIS 0x0 - - Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. - PSU_UART1_CONTROL_REG0_RXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24 1 - Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed. - PSU_UART1_CONTROL_REG0_TXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25 1 - Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed. - PSU_UART1_CONTROL_REG0_RXRES 0x1 + * Drive0 control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180138, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ - UART Control Register - (OFFSET, MASK, VALUE) (0XFF010000, 0x000001FFU ,0x00000017U) - RegMask = (UART1_CONTROL_REG0_STPBRK_MASK | UART1_CONTROL_REG0_STTBRK_MASK | UART1_CONTROL_REG0_RSTTO_MASK | UART1_CONTROL_REG0_TXDIS_MASK | UART1_CONTROL_REG0_TXEN_MASK | UART1_CONTROL_REG0_RXDIS_MASK | UART1_CONTROL_REG0_RXEN_MASK | UART1_CONTROL_REG0_TXRES_MASK | UART1_CONTROL_REG0_RXRES_MASK | 0 ); + /* + * Register : bank0_ctrl1 @ 0XFF18013C - RegVal = ((0x00000000U << UART1_CONTROL_REG0_STPBRK_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_STTBRK_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_RSTTO_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_TXDIS_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_TXEN_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_RXDIS_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_RXEN_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_TXRES_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_RXRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_CONTROL_REG0_OFFSET ,0x000001FFU ,0x00000017U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0 1 - /*Register : mode_reg0 @ 0XFF010004

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1 1 - Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback - PSU_UART1_MODE_REG0_CHMODE 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2 1 - Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved - PSU_UART1_MODE_REG0_NBSTOP 0x0 - - Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity - PSU_UART1_MODE_REG0_PAR 0x4 - - Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits - PSU_UART1_MODE_REG0_CHRL 0x0 - - Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8 - PSU_UART1_MODE_REG0_CLKS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3 1 - UART Mode Register - (OFFSET, MASK, VALUE) (0XFF010004, 0x000003FFU ,0x00000020U) - RegMask = (UART1_MODE_REG0_CHMODE_MASK | UART1_MODE_REG0_NBSTOP_MASK | UART1_MODE_REG0_PAR_MASK | UART1_MODE_REG0_CHRL_MASK | UART1_MODE_REG0_CLKS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4 1 - RegVal = ((0x00000000U << UART1_MODE_REG0_CHMODE_SHIFT - | 0x00000000U << UART1_MODE_REG0_NBSTOP_SHIFT - | 0x00000004U << UART1_MODE_REG0_PAR_SHIFT - | 0x00000000U << UART1_MODE_REG0_CHRL_SHIFT - | 0x00000000U << UART1_MODE_REG0_CLKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_MODE_REG0_OFFSET ,0x000003FFU ,0x00000020U); - /*############################################################################################################################ */ - - // : GPIO - // : ADMA TZ - /*Register : slcr_adma @ 0XFF4B0024

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5 1 - TrustZone Classification for ADMA - PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0XFF - - RPU TrustZone settings - (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) - RegMask = (LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK | 0 ); - - RegVal = ((0x000000FFU << LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_SLCR_SECURE_SLCR_ADMA_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - // : CSU TAMPERING - // : CSU TAMPER STATUS - /*Register : tamper_status @ 0XFFCA5000

      - - CSU regsiter - PSU_CSU_TAMPER_STATUS_TAMPER_0 0 - - External MIO - PSU_CSU_TAMPER_STATUS_TAMPER_1 0 - - JTAG toggle detect - PSU_CSU_TAMPER_STATUS_TAMPER_2 0 - - PL SEU error - PSU_CSU_TAMPER_STATUS_TAMPER_3 0 - - AMS over temperature alarm for LPD - PSU_CSU_TAMPER_STATUS_TAMPER_4 0 - - AMS over temperature alarm for APU - PSU_CSU_TAMPER_STATUS_TAMPER_5 0 - - AMS voltage alarm for VCCPINT_FPD - PSU_CSU_TAMPER_STATUS_TAMPER_6 0 - - AMS voltage alarm for VCCPINT_LPD - PSU_CSU_TAMPER_STATUS_TAMPER_7 0 - - AMS voltage alarm for VCCPAUX - PSU_CSU_TAMPER_STATUS_TAMPER_8 0 - - AMS voltage alarm for DDRPHY - PSU_CSU_TAMPER_STATUS_TAMPER_9 0 - - AMS voltage alarm for PSIO bank 0/1/2 - PSU_CSU_TAMPER_STATUS_TAMPER_10 0 - - AMS voltage alarm for PSIO bank 3 (dedicated pins) - PSU_CSU_TAMPER_STATUS_TAMPER_11 0 - - AMS voltaage alarm for GT - PSU_CSU_TAMPER_STATUS_TAMPER_12 0 - - Tamper Response Status - (OFFSET, MASK, VALUE) (0XFFCA5000, 0x00001FFFU ,0x00000000U) - RegMask = (CSU_TAMPER_STATUS_TAMPER_0_MASK | CSU_TAMPER_STATUS_TAMPER_1_MASK | CSU_TAMPER_STATUS_TAMPER_2_MASK | CSU_TAMPER_STATUS_TAMPER_3_MASK | CSU_TAMPER_STATUS_TAMPER_4_MASK | CSU_TAMPER_STATUS_TAMPER_5_MASK | CSU_TAMPER_STATUS_TAMPER_6_MASK | CSU_TAMPER_STATUS_TAMPER_7_MASK | CSU_TAMPER_STATUS_TAMPER_8_MASK | CSU_TAMPER_STATUS_TAMPER_9_MASK | CSU_TAMPER_STATUS_TAMPER_10_MASK | CSU_TAMPER_STATUS_TAMPER_11_MASK | CSU_TAMPER_STATUS_TAMPER_12_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6 1 - RegVal = ((0x00000000U << CSU_TAMPER_STATUS_TAMPER_0_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_1_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_2_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_3_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_4_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_5_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_6_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_7_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_8_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_9_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_10_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_11_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_12_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CSU_TAMPER_STATUS_OFFSET ,0x00001FFFU ,0x00000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7 1 - // : CSU TAMPER RESPONSE - // : AFIFM INTERFACE WIDTH - // : CPU QOS DEFAULT - /*Register : ACE_CTRL @ 0XFD5C0060

      - - Set ACE outgoing AWQOS value - PSU_APU_ACE_CTRL_AWQOS 0X0 - - Set ACE outgoing ARQOS value - PSU_APU_ACE_CTRL_ARQOS 0X0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8 1 - ACE Control Register - (OFFSET, MASK, VALUE) (0XFD5C0060, 0x000F000FU ,0x00000000U) - RegMask = (APU_ACE_CTRL_AWQOS_MASK | APU_ACE_CTRL_ARQOS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9 1 - RegVal = ((0x00000000U << APU_ACE_CTRL_AWQOS_SHIFT - | 0x00000000U << APU_ACE_CTRL_ARQOS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (APU_ACE_CTRL_OFFSET ,0x000F000FU ,0x00000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10 1 - // : ENABLES RTC SWITCH TO BATTERY WHEN VCC_PSAUX IS NOT AVAILABLE - /*Register : CONTROL @ 0XFFA60040

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11 1 - Enables the RTC. By writing a 0 to this bit, RTC will be powered off and the only module that potentially draws current from - he battery will be BBRAM. The value read through this bit does not necessarily reflect whether RTC is enabled or not. It is e - pected that RTC is enabled every time it is being configured. If RTC is not used in the design, FSBL will disable it by writi - g a 0 to this bit. - PSU_RTC_CONTROL_BATTERY_DISABLE 0X1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12 1 - This register controls various functionalities within the RTC - (OFFSET, MASK, VALUE) (0XFFA60040, 0x80000000U ,0x80000000U) - RegMask = (RTC_CONTROL_BATTERY_DISABLE_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13 1 - RegVal = ((0x00000001U << RTC_CONTROL_BATTERY_DISABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (RTC_CONTROL_OFFSET ,0x80000000U ,0x80000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14 1 - // : TIMESTAMP COUNTER - /*Register : base_frequency_ID_register @ 0XFF260020

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15 1 - Frequency in number of ticks per second. Valid range from 10 MHz to 100 MHz. - PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5e100 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16 1 - Program this register to match the clock frequency of the timestamp generator, in ticks per second. For example, for a 50 MHz - clock, program 0x02FAF080. This register is not accessible to the read-only programming interface. - (OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5E100U) - RegMask = (IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17 1 - RegVal = ((0x05F5E100U << IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET ,0xFFFFFFFFU ,0x05F5E100U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18 1 - /*Register : counter_control_register @ 0XFF260000

      - - Enable 0: The counter is disabled and not incrementing. 1: The counter is enabled and is incrementing. - PSU_IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN 0x1 - - Controls the counter increments. This register is not accessible to the read-only programming interface. - (OFFSET, MASK, VALUE) (0XFF260000, 0x00000001U ,0x00000001U) - RegMask = (IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : TTC SRC SELECT - - return 1; + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF18013C, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl3 @ 0XFF180140 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180140, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank0_ctrl4 @ 0XFF180144 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank0_pull_enable is set, this selects pull up or pull down for + * MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180144, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl5 @ 0XFF180148 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank0_pullupdown to selects pull up or pull d + * own for MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180148, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl6 @ 0XFF18014C + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF18014C, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank1_ctrl0 @ 0XFF180154 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25 1 + + * Drive0 control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180154, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl1 @ 0XFF180158 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180158, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl3 @ 0XFF18015C + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF18015C, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank1_ctrl4 @ 0XFF180160 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank1_pull_enable is set, this selects pull up or pull down for + * MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180160, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl5 @ 0XFF180164 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank1_pullupdown to selects pull up or pull d + * own for MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180164, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl6 @ 0XFF180168 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180168, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank2_ctrl0 @ 0XFF180170 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25 1 + + * Drive0 control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180170, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl1 @ 0XFF180174 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180174, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl3 @ 0XFF180178 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180178, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank2_ctrl4 @ 0XFF18017C + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank2_pull_enable is set, this selects pull up or pull down for + * MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF18017C, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl5 @ 0XFF180180 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank2_pullupdown to selects pull up or pull d + * own for MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180180, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl6 @ 0XFF180184 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180184, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * LOOPBACK + */ + /* + * Register : MIO_LOOPBACK @ 0XFF180200 + + * I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 + * = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outputs to I2C 0 inputs + * . + * PSU_IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1 0 + + * CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 + * = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 Rx. + * PSU_IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1 0 + + * UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. + * 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 outputs to UART 0 + * inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD + * and RI not used. + * PSU_IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1 0 + + * SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 + * = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outputs to SPI 0 inputs + * . The other SPI core will appear on the LS Slave Select. + * PSU_IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1 0 + + * Loopback function within MIO + * (OFFSET, MASK, VALUE) (0XFF180200, 0x0000000FU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_LOOPBACK_OFFSET, + 0x0000000FU, 0x00000000U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_post_config_data() { - // : POST_CONFIG +unsigned long psu_peripherals_init_data(void) +{ + /* + * COHERENCY + */ + /* + * FPD RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - return 1; + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0 + + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0 + + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0 + + * FPD WDT reset + * PSU_CRF_APB_RST_FPD_TOP_SWDT_RESET 0 + + * GDMA block level reset + * PSU_CRF_APB_RST_FPD_TOP_GDMA_RESET 0 + + * Pixel Processor (submodule of GPU) block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_PP0_RESET 0 + + * Pixel Processor (submodule of GPU) block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_PP1_RESET 0 + + * GPU block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_RESET 0 + + * GT block level reset + * PSU_CRF_APB_RST_FPD_TOP_GT_RESET 0 + + * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000F807EU ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000F807EU, 0x00000000U); +/*##################################################################### */ + + /* + * RESET BLOCKS + */ + /* + * TIMESTAMP + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_IOU_CC_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_ADMA_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x001A0000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x001A0000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * Reset entire full power domain. + * PSU_CRL_APB_RST_LPD_TOP_FPD_RESET 0 + + * LPD SWDT + * PSU_CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET 0 + + * Sysmonitor reset + * PSU_CRL_APB_RST_LPD_TOP_SYSMON_RESET 0 + + * Real Time Clock reset + * PSU_CRL_APB_RST_LPD_TOP_RTC_RESET 0 + + * APM reset + * PSU_CRL_APB_RST_LPD_TOP_APM_RESET 0 + + * IPI reset + * PSU_CRL_APB_RST_LPD_TOP_IPI_RESET 0 + + * reset entire RPU power island + * PSU_CRL_APB_RST_LPD_TOP_RPU_PGE_RESET 0 + + * reset ocm + * PSU_CRL_APB_RST_LPD_TOP_OCM_RESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x0093C018U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x0093C018U, 0x00000000U); +/*##################################################################### */ + + /* + * ENET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 + + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 + + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * QSPI + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * QSPI TAP DELAY + */ + /* + * Register : IOU_TAPDLY_BYPASS @ 0XFF180390 + + * 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypa + * ss the Tap delay on the Rx clock signal of LQSPI + * PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 + + * IOU tap delay bypass for the LQSPI and NAND controllers + * (OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET, + 0x00000004U, 0x00000004U); +/*##################################################################### */ + + /* + * NAND + */ + /* + * USB + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 + + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 + + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000540U, 0x00000000U); +/*##################################################################### */ + + /* + * USB0 PIPE POWER PRESENT + */ + /* + * Register : fpd_power_prsnt @ 0XFF9D0080 + + * This bit is used to choose between PIPE power present and 1'b1 + * PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 + + * fpd_power_prsnt + * (OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(USB3_0_FPD_POWER_PRSNT_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : fpd_pipe_clk @ 0XFF9D007C + + * This bit is used to choose between PIPE clock coming from SerDes and the + * suspend clk + * PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 + + * fpd_pipe_clk + * (OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(USB3_0_FPD_PIPE_CLK_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * SD + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_SDIO1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000040U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000040U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CTRL_REG_SD @ 0XFF180310 + + * SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled + * PSU_IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL 0 + + * SD eMMC selection + * (OFFSET, MASK, VALUE) (0XFF180310, 0x00008000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_CTRL_REG_SD_OFFSET, + 0x00008000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SD_CONFIG_REG2 @ 0XFF180320 + + * Should be set based on the final product usage 00 - Removable SCard Slot + * 01 - Embedded Slot for One Device 10 - Shared Bus Slot 11 - Reserved + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE 0 + + * 1.8V Support 1: 1.8V supported 0: 1.8V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 1 + + * 3.0V Support 1: 3.0V supported 0: 3.0V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V 0 + + * 3.3V Support 1: 3.3V supported 0: 3.3V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V 1 + + * SD Config Register 2 + * (OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x02800000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG2_OFFSET, + 0x33800000U, 0x02800000U); +/*##################################################################### */ + + /* + * SD1 BASE CLOCK + */ + /* + * Register : SD_CONFIG_REG1 @ 0XFF18031C + + * Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. + * PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc8 + + * Configures the Number of Taps (Phases) of the rxclk_in that is supported + * . + * PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT 0x28 + + * SD Config Register 1 + * (OFFSET, MASK, VALUE) (0XFF18031C, 0x7FFE0000U ,0x64500000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG1_OFFSET, + 0x7FFE0000U, 0x64500000U); +/*##################################################################### */ + + /* + * Register : SD_DLL_CTRL @ 0XFF180358 + + * Reserved. + * PSU_IOU_SLCR_SD_DLL_CTRL_RESERVED 1 + + * SDIO status register + * (OFFSET, MASK, VALUE) (0XFF180358, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_SD_DLL_CTRL_OFFSET, + 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * SD1 RETUNER + */ + /* + * Register : SD_CONFIG_REG3 @ 0XFF180324 + + * This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. S + * etting to 4'b0 disables Re-Tuning Timer. 0h - Get information via other + * source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n + * = 2(n-1) seconds -- Bh = 1024 seconds Fh - Ch = Reserved + * PSU_IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR 0X0 + + * SD Config Register 3 + * (OFFSET, MASK, VALUE) (0XFF180324, 0x03C00000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG3_OFFSET, + 0x03C00000U, 0x00000000U); +/*##################################################################### */ + + /* + * CAN + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_CAN1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000100U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000100U, 0x00000000U); +/*##################################################################### */ + + /* + * I2C + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_I2C0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_I2C1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000600U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000600U, 0x00000000U); +/*##################################################################### */ + + /* + * SWDT + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_SWDT_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00008000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00008000U, 0x00000000U); +/*##################################################################### */ + + /* + * SPI + */ + /* + * TTC + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC1_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC2_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC3_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00007800U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00007800U, 0x00000000U); +/*##################################################################### */ + + /* + * UART + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_UART0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_UART1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000006U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000006U, 0x00000000U); +/*##################################################################### */ + + /* + * UART BAUD RATE + */ + /* + * Register : Baud_rate_divider_reg0 @ 0XFF000034 + + * Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate + * PSU_UART0_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + + * Baud Rate Divider Register + * (OFFSET, MASK, VALUE) (0XFF000034, 0x000000FFU ,0x00000005U) + */ + PSU_Mask_Write(UART0_BAUD_RATE_DIVIDER_REG0_OFFSET, + 0x000000FFU, 0x00000005U); +/*##################################################################### */ + + /* + * Register : Baud_rate_gen_reg0 @ 0XFF000018 + + * Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + * PSU_UART0_BAUD_RATE_GEN_REG0_CD 0x8f + + * Baud Rate Generator Register. + * (OFFSET, MASK, VALUE) (0XFF000018, 0x0000FFFFU ,0x0000008FU) + */ + PSU_Mask_Write(UART0_BAUD_RATE_GEN_REG0_OFFSET, + 0x0000FFFFU, 0x0000008FU); +/*##################################################################### */ + + /* + * Register : Control_reg0 @ 0XFF000000 + + * Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. + * PSU_UART0_CONTROL_REG0_STPBRK 0x0 + + * Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. + * PSU_UART0_CONTROL_REG0_STTBRK 0x0 + + * Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. + * PSU_UART0_CONTROL_REG0_RSTTO 0x0 + + * Transmit disable: 0: enable transmitter 1: disable transmitter + * PSU_UART0_CONTROL_REG0_TXDIS 0x0 + + * Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. + * PSU_UART0_CONTROL_REG0_TXEN 0x1 + + * Receive disable: 0: enable 1: disable, regardless of the value of RXEN + * PSU_UART0_CONTROL_REG0_RXDIS 0x0 + + * Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. + * PSU_UART0_CONTROL_REG0_RXEN 0x1 + + * Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. + * PSU_UART0_CONTROL_REG0_TXRES 0x1 + + * Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. + * PSU_UART0_CONTROL_REG0_RXRES 0x1 + + * UART Control Register + * (OFFSET, MASK, VALUE) (0XFF000000, 0x000001FFU ,0x00000017U) + */ + PSU_Mask_Write(UART0_CONTROL_REG0_OFFSET, 0x000001FFU, 0x00000017U); +/*##################################################################### */ + + /* + * Register : mode_reg0 @ 0XFF000004 + + * Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback + * PSU_UART0_MODE_REG0_CHMODE 0x0 + + * Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved + * PSU_UART0_MODE_REG0_NBSTOP 0x0 + + * Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty + * PSU_UART0_MODE_REG0_PAR 0x4 + + * Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits + * PSU_UART0_MODE_REG0_CHRL 0x0 + + * Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 + * PSU_UART0_MODE_REG0_CLKS 0x0 + + * UART Mode Register + * (OFFSET, MASK, VALUE) (0XFF000004, 0x000003FFU ,0x00000020U) + */ + PSU_Mask_Write(UART0_MODE_REG0_OFFSET, 0x000003FFU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : Baud_rate_divider_reg0 @ 0XFF010034 + + * Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate + * PSU_UART1_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + + * Baud Rate Divider Register + * (OFFSET, MASK, VALUE) (0XFF010034, 0x000000FFU ,0x00000005U) + */ + PSU_Mask_Write(UART1_BAUD_RATE_DIVIDER_REG0_OFFSET, + 0x000000FFU, 0x00000005U); +/*##################################################################### */ + + /* + * Register : Baud_rate_gen_reg0 @ 0XFF010018 + + * Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + * PSU_UART1_BAUD_RATE_GEN_REG0_CD 0x8f + + * Baud Rate Generator Register. + * (OFFSET, MASK, VALUE) (0XFF010018, 0x0000FFFFU ,0x0000008FU) + */ + PSU_Mask_Write(UART1_BAUD_RATE_GEN_REG0_OFFSET, + 0x0000FFFFU, 0x0000008FU); +/*##################################################################### */ + + /* + * Register : Control_reg0 @ 0XFF010000 + + * Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. + * PSU_UART1_CONTROL_REG0_STPBRK 0x0 + + * Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. + * PSU_UART1_CONTROL_REG0_STTBRK 0x0 + + * Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. + * PSU_UART1_CONTROL_REG0_RSTTO 0x0 + + * Transmit disable: 0: enable transmitter 1: disable transmitter + * PSU_UART1_CONTROL_REG0_TXDIS 0x0 + + * Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. + * PSU_UART1_CONTROL_REG0_TXEN 0x1 + + * Receive disable: 0: enable 1: disable, regardless of the value of RXEN + * PSU_UART1_CONTROL_REG0_RXDIS 0x0 + + * Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. + * PSU_UART1_CONTROL_REG0_RXEN 0x1 + + * Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. + * PSU_UART1_CONTROL_REG0_TXRES 0x1 + + * Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. + * PSU_UART1_CONTROL_REG0_RXRES 0x1 + + * UART Control Register + * (OFFSET, MASK, VALUE) (0XFF010000, 0x000001FFU ,0x00000017U) + */ + PSU_Mask_Write(UART1_CONTROL_REG0_OFFSET, 0x000001FFU, 0x00000017U); +/*##################################################################### */ + + /* + * Register : mode_reg0 @ 0XFF010004 + + * Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback + * PSU_UART1_MODE_REG0_CHMODE 0x0 + + * Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved + * PSU_UART1_MODE_REG0_NBSTOP 0x0 + + * Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty + * PSU_UART1_MODE_REG0_PAR 0x4 + + * Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits + * PSU_UART1_MODE_REG0_CHRL 0x0 + + * Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 + * PSU_UART1_MODE_REG0_CLKS 0x0 + + * UART Mode Register + * (OFFSET, MASK, VALUE) (0XFF010004, 0x000003FFU ,0x00000020U) + */ + PSU_Mask_Write(UART1_MODE_REG0_OFFSET, 0x000003FFU, 0x00000020U); +/*##################################################################### */ + + /* + * GPIO + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_GPIO_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00040000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00040000U, 0x00000000U); +/*##################################################################### */ + + /* + * ADMA TZ + */ + /* + * Register : slcr_adma @ 0XFF4B0024 + + * TrustZone Classification for ADMA + * PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0XFF + + * RPU TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_ADMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * CSU TAMPERING + */ + /* + * CSU TAMPER STATUS + */ + /* + * Register : tamper_status @ 0XFFCA5000 + + * CSU regsiter + * PSU_CSU_TAMPER_STATUS_TAMPER_0 0 + + * External MIO + * PSU_CSU_TAMPER_STATUS_TAMPER_1 0 + + * JTAG toggle detect + * PSU_CSU_TAMPER_STATUS_TAMPER_2 0 + + * PL SEU error + * PSU_CSU_TAMPER_STATUS_TAMPER_3 0 + + * AMS over temperature alarm for LPD + * PSU_CSU_TAMPER_STATUS_TAMPER_4 0 + + * AMS over temperature alarm for APU + * PSU_CSU_TAMPER_STATUS_TAMPER_5 0 + + * AMS voltage alarm for VCCPINT_FPD + * PSU_CSU_TAMPER_STATUS_TAMPER_6 0 + + * AMS voltage alarm for VCCPINT_LPD + * PSU_CSU_TAMPER_STATUS_TAMPER_7 0 + + * AMS voltage alarm for VCCPAUX + * PSU_CSU_TAMPER_STATUS_TAMPER_8 0 + + * AMS voltage alarm for DDRPHY + * PSU_CSU_TAMPER_STATUS_TAMPER_9 0 + + * AMS voltage alarm for PSIO bank 0/1/2 + * PSU_CSU_TAMPER_STATUS_TAMPER_10 0 + + * AMS voltage alarm for PSIO bank 3 (dedicated pins) + * PSU_CSU_TAMPER_STATUS_TAMPER_11 0 + + * AMS voltaage alarm for GT + * PSU_CSU_TAMPER_STATUS_TAMPER_12 0 + + * Tamper Response Status + * (OFFSET, MASK, VALUE) (0XFFCA5000, 0x00001FFFU ,0x00000000U) + */ + PSU_Mask_Write(CSU_TAMPER_STATUS_OFFSET, 0x00001FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * CSU TAMPER RESPONSE + */ + /* + * CPU QOS DEFAULT + */ + /* + * Register : ACE_CTRL @ 0XFD5C0060 + + * Set ACE outgoing AWQOS value + * PSU_APU_ACE_CTRL_AWQOS 0X0 + + * Set ACE outgoing ARQOS value + * PSU_APU_ACE_CTRL_ARQOS 0X0 + + * ACE Control Register + * (OFFSET, MASK, VALUE) (0XFD5C0060, 0x000F000FU ,0x00000000U) + */ + PSU_Mask_Write(APU_ACE_CTRL_OFFSET, 0x000F000FU, 0x00000000U); +/*##################################################################### */ + + /* + * ENABLES RTC SWITCH TO BATTERY WHEN VCC_PSAUX IS NOT AVAILABLE + */ + /* + * Register : CONTROL @ 0XFFA60040 + + * Enables the RTC. By writing a 0 to this bit, RTC will be powered off and + * the only module that potentially draws current from the battery will be + * BBRAM. The value read through this bit does not necessarily reflect whe + * ther RTC is enabled or not. It is expected that RTC is enabled every tim + * e it is being configured. If RTC is not used in the design, FSBL will di + * sable it by writing a 0 to this bit. + * PSU_RTC_CONTROL_BATTERY_DISABLE 0X1 + + * This register controls various functionalities within the RTC + * (OFFSET, MASK, VALUE) (0XFFA60040, 0x80000000U ,0x80000000U) + */ + PSU_Mask_Write(RTC_CONTROL_OFFSET, 0x80000000U, 0x80000000U); +/*##################################################################### */ + + /* + * TIMESTAMP COUNTER + */ + /* + * Register : base_frequency_ID_register @ 0XFF260020 + + * Frequency in number of ticks per second. Valid range from 10 MHz to 100 + * MHz. + * PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5b9f0 + + * Program this register to match the clock frequency of the timestamp gene + * rator, in ticks per second. For example, for a 50 MHz clock, program 0x0 + * 2FAF080. This register is not accessible to the read-only programming in + * terface. + * (OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5B9F0U) + */ + PSU_Mask_Write(IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET, + 0xFFFFFFFFU, 0x05F5B9F0U); +/*##################################################################### */ + + /* + * Register : counter_control_register @ 0XFF260000 + + * Enable 0: The counter is disabled and not incrementing. 1: The counter i + * s enabled and is incrementing. + * PSU_IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN 0x1 + + * Controls the counter increments. This register is not accessible to the + * read-only programming interface. + * (OFFSET, MASK, VALUE) (0XFF260000, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * TTC SRC SELECT + */ + /* + * PCIE GPIO RESET + */ + /* + * PCIE RESET + */ + /* + * DIR MODE BANK 0 + */ + /* + * DIR MODE BANK 1 + */ + /* + * Register : DIRM_1 @ 0XFF0A0244 + + * Operation is the same as DIRM_0[DIRECTION_0] + * PSU_GPIO_DIRM_1_DIRECTION_1 0x20 + + * Direction mode (GPIO Bank1, MIO) + * (OFFSET, MASK, VALUE) (0XFF0A0244, 0x03FFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(GPIO_DIRM_1_OFFSET, 0x03FFFFFFU, 0x00000020U); +/*##################################################################### */ + + /* + * DIR MODE BANK 2 + */ + /* + * OUTPUT ENABLE BANK 0 + */ + /* + * OUTPUT ENABLE BANK 1 + */ + /* + * Register : OEN_1 @ 0XFF0A0248 + + * Operation is the same as OEN_0[OP_ENABLE_0] + * PSU_GPIO_OEN_1_OP_ENABLE_1 0x20 + + * Output enable (GPIO Bank1, MIO) + * (OFFSET, MASK, VALUE) (0XFF0A0248, 0x03FFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(GPIO_OEN_1_OFFSET, 0x03FFFFFFU, 0x00000020U); +/*##################################################################### */ + + /* + * OUTPUT ENABLE BANK 2 + */ + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0020U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * ADD 1 MS DELAY + */ + mask_delay(1); + +/*##################################################################### */ + + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x0 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0000U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0000U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * ADD 5 MS DELAY + */ + mask_delay(5); + +/*##################################################################### */ + + + return 1; } -unsigned long psu_peripherals_powerdwn_data() { - // : POWER DOWN REQUEST INTERRUPT ENABLE - // : POWER DOWN TRIGGER +unsigned long psu_post_config_data(void) +{ + /* + * POST_CONFIG + */ - return 1; + return 1; } -unsigned long psu_lpd_xppu_data() { - // : XPPU INTERRUPT ENABLE - /*Register : IEN @ 0XFF980018

      +unsigned long psu_peripherals_powerdwn_data(void) +{ + /* + * POWER DOWN REQUEST INTERRUPT ENABLE + */ + /* + * POWER DOWN TRIGGER + */ - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_PARITY 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_TZ 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_PERM 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_PARITY 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_RO 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_MISS 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_INV_APB 0X1 - - Interrupt Enable Register - (OFFSET, MASK, VALUE) (0XFF980018, 0x000000EFU ,0x000000EFU) - RegMask = (LPD_XPPU_CFG_IEN_APER_PARITY_MASK | LPD_XPPU_CFG_IEN_APER_TZ_MASK | LPD_XPPU_CFG_IEN_APER_PERM_MASK | LPD_XPPU_CFG_IEN_MID_PARITY_MASK | LPD_XPPU_CFG_IEN_MID_RO_MASK | LPD_XPPU_CFG_IEN_MID_MISS_MASK | LPD_XPPU_CFG_IEN_INV_APB_MASK | 0 ); - - RegVal = ((0x00000001U << LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_APER_TZ_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_APER_PERM_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_RO_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_MISS_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_INV_APB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_XPPU_CFG_IEN_OFFSET ,0x000000EFU ,0x000000EFU); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_ddr_xmpu0_data() { +unsigned long psu_lpd_xppu_data(void) +{ + /* + * MASTER ID LIST + */ + /* + * APERTURE PERMISIION LIST + */ + /* + * APERTURE NAME: UART0, START ADDRESS: FF000000, END ADDRESS: FF00FFFF + */ + /* + * APERTURE NAME: UART1, START ADDRESS: FF010000, END ADDRESS: FF01FFFF + */ + /* + * APERTURE NAME: I2C0, START ADDRESS: FF020000, END ADDRESS: FF02FFFF + */ + /* + * APERTURE NAME: I2C1, START ADDRESS: FF030000, END ADDRESS: FF03FFFF + */ + /* + * APERTURE NAME: SPI0, START ADDRESS: FF040000, END ADDRESS: FF04FFFF + */ + /* + * APERTURE NAME: SPI1, START ADDRESS: FF050000, END ADDRESS: FF05FFFF + */ + /* + * APERTURE NAME: CAN0, START ADDRESS: FF060000, END ADDRESS: FF06FFFF + */ + /* + * APERTURE NAME: CAN1, START ADDRESS: FF070000, END ADDRESS: FF07FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09 + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09 + * FFFF + */ + /* + * APERTURE NAME: GPIO, START ADDRESS: FF0A0000, END ADDRESS: FF0AFFFF + */ + /* + * APERTURE NAME: GEM0, START ADDRESS: FF0B0000, END ADDRESS: FF0BFFFF + */ + /* + * APERTURE NAME: GEM1, START ADDRESS: FF0C0000, END ADDRESS: FF0CFFFF + */ + /* + * APERTURE NAME: GEM2, START ADDRESS: FF0D0000, END ADDRESS: FF0DFFFF + */ + /* + * APERTURE NAME: GEM3, START ADDRESS: FF0E0000, END ADDRESS: FF0EFFFF + */ + /* + * APERTURE NAME: QSPI, START ADDRESS: FF0F0000, END ADDRESS: FF0FFFFF + */ + /* + * APERTURE NAME: NAND, START ADDRESS: FF100000, END ADDRESS: FF10FFFF + */ + /* + * APERTURE NAME: TTC0, START ADDRESS: FF110000, END ADDRESS: FF11FFFF + */ + /* + * APERTURE NAME: TTC1, START ADDRESS: FF120000, END ADDRESS: FF12FFFF + */ + /* + * APERTURE NAME: TTC2, START ADDRESS: FF130000, END ADDRESS: FF13FFFF + */ + /* + * APERTURE NAME: TTC3, START ADDRESS: FF140000, END ADDRESS: FF14FFFF + */ + /* + * APERTURE NAME: SWDT, START ADDRESS: FF150000, END ADDRESS: FF15FFFF + */ + /* + * APERTURE NAME: SD0, START ADDRESS: FF160000, END ADDRESS: FF16FFFF + */ + /* + * APERTURE NAME: SD1, START ADDRESS: FF170000, END ADDRESS: FF17FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SECURE_SLCR, START ADDRESS: FF240000, END ADDRESS: FF + * 24FFFF + */ + /* + * APERTURE NAME: IOU_SCNTR, START ADDRESS: FF250000, END ADDRESS: FF25FFFF + */ + /* + * APERTURE NAME: IOU_SCNTRS, START ADDRESS: FF260000, END ADDRESS: FF26FFF + * F + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_1, START ADDRESS: FF400000, END ADDRESS: FF40F + * FFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: OCM_SLCR, START ADDRESS: FF960000, END ADDRESS: FF96FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_4, START ADDRESS: FF970000, END ADDRESS: FF97F + * FFF + */ + /* + * APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + */ + /* + * APERTURE NAME: RPU, START ADDRESS: FF9A0000, END ADDRESS: FF9AFFFF + */ + /* + * APERTURE NAME: AFIFM6, START ADDRESS: FF9B0000, END ADDRESS: FF9BFFFF + */ + /* + * APERTURE NAME: LPD_XPPU_SINK, START ADDRESS: FF9C0000, END ADDRESS: FF9C + * FFFF + */ + /* + * APERTURE NAME: USB3_0, START ADDRESS: FF9D0000, END ADDRESS: FF9DFFFF + */ + /* + * APERTURE NAME: USB3_1, START ADDRESS: FF9E0000, END ADDRESS: FF9EFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_5, START ADDRESS: FF9F0000, END ADDRESS: FF9FF + * FFF + */ + /* + * APERTURE NAME: APM0, START ADDRESS: FFA00000, END ADDRESS: FFA0FFFF + */ + /* + * APERTURE NAME: APM1, START ADDRESS: FFA10000, END ADDRESS: FFA1FFFF + */ + /* + * APERTURE NAME: APM_INTC_IOU, START ADDRESS: FFA20000, END ADDRESS: FFA2F + * FFF + */ + /* + * APERTURE NAME: APM_FPD_LPD, START ADDRESS: FFA30000, END ADDRESS: FFA3FF + * FF + */ + /* + * APERTURE NAME: LPD_UNUSED_6, START ADDRESS: FFA40000, END ADDRESS: FFA4F + * FFF + */ + /* + * APERTURE NAME: AMS, START ADDRESS: FFA50000, END ADDRESS: FFA5FFFF + */ + /* + * APERTURE NAME: RTC, START ADDRESS: FFA60000, END ADDRESS: FFA6FFFF + */ + /* + * APERTURE NAME: OCM_XMPU_CFG, START ADDRESS: FFA70000, END ADDRESS: FFA7F + * FFF + */ + /* + * APERTURE NAME: ADMA_0, START ADDRESS: FFA80000, END ADDRESS: FFA8FFFF + */ + /* + * APERTURE NAME: ADMA_1, START ADDRESS: FFA90000, END ADDRESS: FFA9FFFF + */ + /* + * APERTURE NAME: ADMA_2, START ADDRESS: FFAA0000, END ADDRESS: FFAAFFFF + */ + /* + * APERTURE NAME: ADMA_3, START ADDRESS: FFAB0000, END ADDRESS: FFABFFFF + */ + /* + * APERTURE NAME: ADMA_4, START ADDRESS: FFAC0000, END ADDRESS: FFACFFFF + */ + /* + * APERTURE NAME: ADMA_5, START ADDRESS: FFAD0000, END ADDRESS: FFADFFFF + */ + /* + * APERTURE NAME: ADMA_6, START ADDRESS: FFAE0000, END ADDRESS: FFAEFFFF + */ + /* + * APERTURE NAME: ADMA_7, START ADDRESS: FFAF0000, END ADDRESS: FFAFFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + */ + /* + * APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + */ + /* + * APERTURE NAME: CSU_LOCAL, START ADDRESS: FFC20000, END ADDRESS: FFC2FFFF + */ + /* + * APERTURE NAME: PUF, START ADDRESS: FFC30000, END ADDRESS: FFC3FFFF + */ + /* + * APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + */ + /* + * APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + */ + /* + * APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7F + * FFF + */ + /* + * APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7F + * FFF + */ + /* + * APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + */ + /* + * APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + */ + /* + * APERTURE NAME: CSU, START ADDRESS: FFCA0000, END ADDRESS: FFCAFFFF + */ + /* + * APERTURE NAME: CSU_WDT, START ADDRESS: FFCB0000, END ADDRESS: FFCBFFFF + */ + /* + * APERTURE NAME: EFUSE, START ADDRESS: FFCC0000, END ADDRESS: FFCCFFFF + */ + /* + * APERTURE NAME: BBRAM, START ADDRESS: FFCD0000, END ADDRESS: FFCDFFFF + */ + /* + * APERTURE NAME: RSA_CORE, START ADDRESS: FFCE0000, END ADDRESS: FFCEFFFF + */ + /* + * APERTURE NAME: MBISTJTAG, START ADDRESS: FFCF0000, END ADDRESS: FFCFFFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5F + * FFF + */ + /* + * APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5F + * FFF + */ + /* + * APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + */ + /* + * APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: R5_0_ATCM, START ADDRESS: FFE00000, END ADDRESS: FFE0FFFF + */ + /* + * APERTURE NAME: R5_0_ATCM_LOCKSTEP, START ADDRESS: FFE10000, END ADDRESS: + * FFE1FFFF + */ + /* + * APERTURE NAME: R5_0_BTCM, START ADDRESS: FFE20000, END ADDRESS: FFE2FFFF + */ + /* + * APERTURE NAME: R5_0_BTCM_LOCKSTEP, START ADDRESS: FFE30000, END ADDRESS: + * FFE3FFFF + */ + /* + * APERTURE NAME: R5_0_INSTRUCTION_CACHE, START ADDRESS: FFE40000, END ADDR + * ESS: FFE4FFFF + */ + /* + * APERTURE NAME: R5_0_DATA_CACHE, START ADDRESS: FFE50000, END ADDRESS: FF + * E5FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: R5_1_ATCM_, START ADDRESS: FFE90000, END ADDRESS: FFE9FFF + * F + */ + /* + * APERTURE NAME: RPU_UNUSED_10, START ADDRESS: FFEA0000, END ADDRESS: FFEA + * FFFF + */ + /* + * APERTURE NAME: R5_1_BTCM_, START ADDRESS: FFEB0000, END ADDRESS: FFEBFFF + * F + */ + /* + * APERTURE NAME: R5_1_INSTRUCTION_CACHE, START ADDRESS: FFEC0000, END ADDR + * ESS: FFECFFFF + */ + /* + * APERTURE NAME: R5_1_DATA_CACHE, START ADDRESS: FFED0000, END ADDRESS: FF + * EDFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IOU_GPV, START ADDRESS: FE000000, END ADDRESS: FE0FFFFF + */ + /* + * APERTURE NAME: LPD_GPV, START ADDRESS: FE100000, END ADDRESS: FE1FFFFF + */ + /* + * APERTURE NAME: USB3_0_XHCI, START ADDRESS: FE200000, END ADDRESS: FE2FFF + * FF + */ + /* + * APERTURE NAME: USB3_1_XHCI, START ADDRESS: FE300000, END ADDRESS: FE3FFF + * FF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: QSPI_LINEAR_ADDRESS, START ADDRESS: C0000000, END ADDRESS + * : DFFFFFFF + */ + /* + * XPPU CONTROL + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu1_data() { +unsigned long psu_ddr_xmpu0_data(void) +{ + /* + * DDR XMPU0 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu2_data() { +unsigned long psu_ddr_xmpu1_data(void) +{ + /* + * DDR XMPU1 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu3_data() { +unsigned long psu_ddr_xmpu2_data(void) +{ + /* + * DDR XMPU2 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu4_data() { +unsigned long psu_ddr_xmpu3_data(void) +{ + /* + * DDR XMPU3 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu5_data() { +unsigned long psu_ddr_xmpu4_data(void) +{ + /* + * DDR XMPU4 + */ - return 1; + return 1; } -unsigned long psu_ocm_xmpu_data() { +unsigned long psu_ddr_xmpu5_data(void) +{ + /* + * DDR XMPU5 + */ - return 1; + return 1; } -unsigned long psu_fpd_xmpu_data() { +unsigned long psu_ocm_xmpu_data(void) +{ + /* + * OCM XMPU + */ - return 1; + return 1; } -unsigned long psu_protection_lock_data() { +unsigned long psu_fpd_xmpu_data(void) +{ + /* + * FPD XMPU + */ - return 1; + return 1; } -unsigned long psu_apply_master_tz() { - // : RPU - // : DP TZ - // : SATA TZ - // : PCIE TZ - // : USB TZ - // : SD TZ - // : GEM TZ - // : QSPI TZ - // : NAND TZ +unsigned long psu_protection_lock_data(void) +{ + /* + * LOCKING PROTECTION MODULE + */ + /* + * XPPU LOCK + */ + /* + * APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + */ + /* + * XMPU LOCK + */ + /* + * LOCK OCM XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK FPD XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ - return 1; + return 1; } -unsigned long psu_serdes_init_data() { - // : SERDES INITIALIZATION - // : GT REFERENCE CLOCK SOURCE SELECTION - /*Register : PLL_REF_SEL0 @ 0XFD410000

      +unsigned long psu_apply_master_tz(void) +{ + /* + * RPU + */ + /* + * DP TZ + */ + /* + * Register : slcr_dpdma @ 0XFD690040 - PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL0_PLLREFSEL0 0xD + * TrustZone classification for DisplayPort DMA + * PSU_FPD_SLCR_SECURE_SLCR_DPDMA_TZ 1 - PLL0 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410000, 0x0000001FU ,0x0000000DU) - RegMask = (SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK | 0 ); + * DPDMA TrustZone Settings + * (OFFSET, MASK, VALUE) (0XFD690040, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ - RegVal = ((0x0000000DU << SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL0_OFFSET ,0x0000001FU ,0x0000000DU); - /*############################################################################################################################ */ + /* + * SATA TZ + */ + /* + * PCIE TZ + */ + /* + * Register : slcr_pcie @ 0XFD690030 - /*Register : PLL_REF_SEL1 @ 0XFD410004

      + * TrustZone classification for DMA Channel 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0 1 - PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL1_PLLREFSEL1 0x9 + * TrustZone classification for DMA Channel 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1 1 - PLL1 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410004, 0x0000001FU ,0x00000009U) - RegMask = (SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK | 0 ); + * TrustZone classification for DMA Channel 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2 1 - RegVal = ((0x00000009U << SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL1_OFFSET ,0x0000001FU ,0x00000009U); - /*############################################################################################################################ */ + * TrustZone classification for DMA Channel 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3 1 - /*Register : PLL_REF_SEL2 @ 0XFD410008

      + * TrustZone classification for Ingress Address Translation 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0 1 - PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL2_PLLREFSEL2 0x8 + * TrustZone classification for Ingress Address Translation 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1 1 - PLL2 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410008, 0x0000001FU ,0x00000008U) - RegMask = (SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK | 0 ); + * TrustZone classification for Ingress Address Translation 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2 1 - RegVal = ((0x00000008U << SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL2_OFFSET ,0x0000001FU ,0x00000008U); - /*############################################################################################################################ */ + * TrustZone classification for Ingress Address Translation 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3 1 + + * TrustZone classification for Ingress Address Translation 4 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4 1 + + * TrustZone classification for Ingress Address Translation 5 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5 1 + + * TrustZone classification for Ingress Address Translation 6 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6 1 - /*Register : PLL_REF_SEL3 @ 0XFD41000C

      - - PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL3_PLLREFSEL3 0xF - - PLL3 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD41000C, 0x0000001FU ,0x0000000FU) - RegMask = (SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK | 0 ); - - RegVal = ((0x0000000FU << SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL3_OFFSET ,0x0000001FU ,0x0000000FU); - /*############################################################################################################################ */ - - // : GT REFERENCE CLOCK FREQUENCY SELECTION - /*Register : L0_L0_REF_CLK_SEL @ 0XFD402860

      - - Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer output. Set to 0 to select lane0 ref clock mux output. - PSU_SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL 0x1 - - Lane0 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402860, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L0_REF_CLK_SEL_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_L1_REF_CLK_SEL @ 0XFD402864

      - - Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane1 ref clock mux output. - PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL 0x0 - - Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 slicer output from ref clock network - PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3 0x1 - - Lane1 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402864, 0x00000088U ,0x00000008U) - RegMask = (SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK | SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT - | 0x00000001U << SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L1_REF_CLK_SEL_OFFSET ,0x00000088U ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : L0_L2_REF_CLK_SEL @ 0XFD402868

      - - Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane2 ref clock mux output. - PSU_SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL 0x1 - - Lane2 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402868, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L2_REF_CLK_SEL_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_L3_REF_CLK_SEL @ 0XFD40286C

      - - Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer output. Set to 0 to select lane3 ref clock mux output. - PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL 0x0 - - Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 slicer output from ref clock network - PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1 0x1 - - Lane3 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD40286C, 0x00000082U ,0x00000002U) - RegMask = (SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK | SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT - | 0x00000001U << SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L3_REF_CLK_SEL_OFFSET ,0x00000082U ,0x00000002U); - /*############################################################################################################################ */ - - // : ENABLE SPREAD SPECTRUM - /*Register : L2_TM_PLL_DIG_37 @ 0XFD40A094

      - - Enable/Disable coarse code satureation limiting logic - PSU_SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION 0x1 - - Test mode register 37 - (OFFSET, MASK, VALUE) (0XFD40A094, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_PLL_DIG_37_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEPS_0_LSB @ 0XFD40A368

      - - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x38 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD40A368, 0x000000FFU ,0x00000038U) - RegMask = (SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x00000038U << SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x00000038U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEPS_1_MSB @ 0XFD40A36C

      - - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x03 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40A36C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEPS_0_LSB @ 0XFD40E368

      - - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0xE0 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD40E368, 0x000000FFU ,0x000000E0U) - RegMask = (SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x000000E0U << SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x000000E0U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEPS_1_MSB @ 0XFD40E36C

      - - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40E36C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEPS_0_LSB @ 0XFD406368

      - - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x58 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD406368, 0x000000FFU ,0x00000058U) - RegMask = (SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x00000058U << SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x00000058U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEPS_1_MSB @ 0XFD40636C

      - - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40636C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_0_LSB @ 0XFD406370

      - - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0x7C - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD406370, 0x000000FFU ,0x0000007CU) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x0000007CU << SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x0000007CU); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_1 @ 0XFD406374

      - - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x33 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD406374, 0x000000FFU ,0x00000033U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x00000033U << SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x00000033U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_2 @ 0XFD406378

      - - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD406378, 0x000000FFU ,0x00000002U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40637C

      - - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40637C, 0x00000033U ,0x00000030U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x00000033U ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40A370

      - - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xF4 - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD40A370, 0x000000FFU ,0x000000F4U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x000000F4U << SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x000000F4U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_1 @ 0XFD40A374

      - - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x31 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD40A374, 0x000000FFU ,0x00000031U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x00000031U << SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x00000031U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_2 @ 0XFD40A378

      - - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD40A378, 0x000000FFU ,0x00000002U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40A37C

      - - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40A37C, 0x00000033U ,0x00000030U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x00000033U ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40E370

      - - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xC9 - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD40E370, 0x000000FFU ,0x000000C9U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x000000C9U << SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x000000C9U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_1 @ 0XFD40E374

      - - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0xD2 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD40E374, 0x000000FFU ,0x000000D2U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x000000D2U << SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x000000D2U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_2 @ 0XFD40E378

      - - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x1 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD40E378, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40E37C

      - - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable test mode forcing on enable Spread Spectrum - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40E37C, 0x000000B3U ,0x000000B0U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x000000B3U ,0x000000B0U); - /*############################################################################################################################ */ - - /*Register : L2_TM_DIG_6 @ 0XFD40906C

      - - Bypass Descrambler - PSU_SERDES_L2_TM_DIG_6_BYPASS_DESCRAM 0x1 - - Enable Bypass for <1> TM_DIG_CTRL_6 - PSU_SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - - Data path test modes in decoder and descram - (OFFSET, MASK, VALUE) (0XFD40906C, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK | SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT - | 0x00000001U << SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_DIG_6_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L2_TX_DIG_TM_61 @ 0XFD4080F4

      - - Bypass scrambler signal - PSU_SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - - Enable/disable scrambler bypass signal - PSU_SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - - MPHY PLL Gear and bypass scrambler - (OFFSET, MASK, VALUE) (0XFD4080F4, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK | SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT - | 0x00000001U << SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TX_DIG_TM_61_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_FBDIV_FRAC_3_MSB @ 0XFD40E360

      - - Enable test mode force on fractional mode enable - PSU_SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC 0x1 - - Fractional feedback division control and fractional value for feedback division bits 26:24 - (OFFSET, MASK, VALUE) (0XFD40E360, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_FBDIV_FRAC_3_MSB_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_DIG_6 @ 0XFD40D06C

      - - Bypass 8b10b decoder - PSU_SERDES_L3_TM_DIG_6_BYPASS_DECODER 0x1 - - Enable Bypass for <3> TM_DIG_CTRL_6 - PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC 0x1 - - Bypass Descrambler - PSU_SERDES_L3_TM_DIG_6_BYPASS_DESCRAM 0x1 - - Enable Bypass for <1> TM_DIG_CTRL_6 - PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - - Data path test modes in decoder and descram - (OFFSET, MASK, VALUE) (0XFD40D06C, 0x0000000FU ,0x0000000FU) - RegMask = (SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK | SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK | SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK | SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_DIG_6_OFFSET ,0x0000000FU ,0x0000000FU); - /*############################################################################################################################ */ - - /*Register : L3_TX_DIG_TM_61 @ 0XFD40C0F4

      - - Enable/disable encoder bypass signal - PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_ENC 0x1 - - Bypass scrambler signal - PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - - Enable/disable scrambler bypass signal - PSU_SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - - MPHY PLL Gear and bypass scrambler - (OFFSET, MASK, VALUE) (0XFD40C0F4, 0x0000000BU ,0x0000000BU) - RegMask = (SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK | SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK | SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT - | 0x00000001U << SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT - | 0x00000001U << SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_DIG_TM_61_OFFSET ,0x0000000BU ,0x0000000BU); - /*############################################################################################################################ */ - - /*Register : L3_TXPMA_ST_0 @ 0XFD40CB00

      - - PHY Mode: 4'b000 - PCIe, 4'b001 - USB3, 4'b0010 - SATA, 4'b0100 - SGMII, 4'b0101 - DP, 4'b1000 - MPHY - PSU_SERDES_L3_TXPMA_ST_0_TX_PHY_MODE 0x21 - - Opmode Info - (OFFSET, MASK, VALUE) (0XFD40CB00, 0x000000F0U ,0x000000F0U) - RegMask = (SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK | 0 ); - - RegVal = ((0x00000021U << SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TXPMA_ST_0_OFFSET ,0x000000F0U ,0x000000F0U); - /*############################################################################################################################ */ - - // : ENABLE CHICKEN BIT FOR PCIE AND USB - /*Register : L0_TM_AUX_0 @ 0XFD4010CC

      - - Spare- not used - PSU_SERDES_L0_TM_AUX_0_BIT_2 1 - - Spare registers - (OFFSET, MASK, VALUE) (0XFD4010CC, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L0_TM_AUX_0_BIT_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_AUX_0_BIT_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_AUX_0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L2_TM_AUX_0 @ 0XFD4090CC

      - - Spare- not used - PSU_SERDES_L2_TM_AUX_0_BIT_2 1 - - Spare registers - (OFFSET, MASK, VALUE) (0XFD4090CC, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L2_TM_AUX_0_BIT_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_AUX_0_BIT_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_AUX_0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - // : ENABLING EYE SURF - /*Register : L0_TM_DIG_8 @ 0XFD401074

      - - Enable Eye Surf - PSU_SERDES_L0_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD401074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L1_TM_DIG_8 @ 0XFD405074

      - - Enable Eye Surf - PSU_SERDES_L1_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD405074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_TM_DIG_8 @ 0XFD409074

      - - Enable Eye Surf - PSU_SERDES_L2_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD409074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L3_TM_DIG_8 @ 0XFD40D074

      - - Enable Eye Surf - PSU_SERDES_L3_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD40D074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - // : ILL SETTINGS FOR GAIN AND LOCK SETTINGS - /*Register : L0_TM_MISC2 @ 0XFD40189C

      - - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40189C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL1 @ 0XFD4018F8

      - - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4018F8, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL2 @ 0XFD4018FC

      - - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4018FC, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ILL12 @ 0XFD401990

      - - G1A pll ctr bypass value - PSU_SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x11 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD401990, 0x000000FFU ,0x00000011U) - RegMask = (SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000011U << SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ILL12_OFFSET ,0x000000FFU ,0x00000011U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL1 @ 0XFD401924

      - - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x4 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD401924, 0x000000FFU ,0x00000004U) - RegMask = (SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x00000004U << SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL1_OFFSET ,0x000000FFU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL2 @ 0XFD401928

      - - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0xFE - - epi cal code - (OFFSET, MASK, VALUE) (0XFD401928, 0x000000FFU ,0x000000FEU) - RegMask = (SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x000000FEU << SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL2_OFFSET ,0x000000FFU ,0x000000FEU); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL3 @ 0XFD401900

      - - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD401900, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL3 @ 0XFD40192C

      - - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40192C, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ILL8 @ 0XFD401980

      - - ILL calibration code change wait time - PSU_SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD401980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL8 @ 0XFD401914

      - - IQ ILL polytrim bypass value - PSU_SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD401914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL9 @ 0XFD401918

      - - bypass IQ polytrim - PSU_SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD401918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL8 @ 0XFD401940

      - - E ILL polytrim bypass value - PSU_SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD401940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL9 @ 0XFD401944

      - - bypass E polytrim - PSU_SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD401944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L2_TM_MISC2 @ 0XFD40989C

      - - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40989C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL1 @ 0XFD4098F8

      - - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4098F8, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL2 @ 0XFD4098FC

      - - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4098FC, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_ILL12 @ 0XFD409990

      - - G1A pll ctr bypass value - PSU_SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x10 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD409990, 0x000000FFU ,0x00000010U) - RegMask = (SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000010U << SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ILL12_OFFSET ,0x000000FFU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL1 @ 0XFD409924

      - - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0xFE - - epi cal code - (OFFSET, MASK, VALUE) (0XFD409924, 0x000000FFU ,0x000000FEU) - RegMask = (SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x000000FEU << SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL1_OFFSET ,0x000000FFU ,0x000000FEU); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL2 @ 0XFD409928

      - - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD409928, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL2_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL3 @ 0XFD409900

      - - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD409900, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL3 @ 0XFD40992C

      - - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40992C, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L2_TM_ILL8 @ 0XFD409980

      - - ILL calibration code change wait time - PSU_SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD409980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL8 @ 0XFD409914

      - - IQ ILL polytrim bypass value - PSU_SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD409914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL9 @ 0XFD409918

      - - bypass IQ polytrim - PSU_SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD409918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL8 @ 0XFD409940

      - - E ILL polytrim bypass value - PSU_SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD409940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL9 @ 0XFD409944

      - - bypass E polytrim - PSU_SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD409944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_MISC2 @ 0XFD40D89C

      - - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40D89C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL1 @ 0XFD40D8F8

      - - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D8F8, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL2 @ 0XFD40D8FC

      - - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D8FC, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL12 @ 0XFD40D990

      - - G1A pll ctr bypass value - PSU_SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x1 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD40D990, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL12_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL1 @ 0XFD40D924

      - - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x9C - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D924, 0x000000FFU ,0x0000009CU) - RegMask = (SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000009CU << SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL1_OFFSET ,0x000000FFU ,0x0000009CU); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL2 @ 0XFD40D928

      - - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x39 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D928, 0x000000FFU ,0x00000039U) - RegMask = (SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000039U << SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL2_OFFSET ,0x000000FFU ,0x00000039U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL11 @ 0XFD40D98C

      - - G2A_PCIe1 PLL ctr bypass value - PSU_SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL 0x2 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD40D98C, 0x000000F0U ,0x00000020U) - RegMask = (SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL11_OFFSET ,0x000000F0U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL3 @ 0XFD40D900

      - - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D900, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL3 @ 0XFD40D92C

      - - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x64 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D92C, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL8 @ 0XFD40D980

      - - ILL calibration code change wait time - PSU_SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD40D980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL8 @ 0XFD40D914

      - - IQ ILL polytrim bypass value - PSU_SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD40D914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL9 @ 0XFD40D918

      - - bypass IQ polytrim - PSU_SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD40D918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL8 @ 0XFD40D940

      - - E ILL polytrim bypass value - PSU_SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD40D940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL9 @ 0XFD40D944

      - - bypass E polytrim - PSU_SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD40D944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : SYMBOL LOCK AND WAIT - /*Register : L0_TM_DIG_21 @ 0XFD4010A8

      - - pre lock comma count threshold. 2'b 00 : 3, 2'b 01 : 5, 2'b 10 : 10, 2'b 11 : 20 - PSU_SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH 0x11 - - Control symbol alignment locking - wait counts - (OFFSET, MASK, VALUE) (0XFD4010A8, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK | 0 ); - - RegVal = ((0x00000011U << SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_21_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L0_TM_DIG_10 @ 0XFD40107C

      - - CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 - PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0xF - - test control for changing cdr lock wait time - (OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x0000000FU) - RegMask = (SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK | 0 ); - - RegVal = ((0x0000000FU << SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_10_OFFSET ,0x0000000FU ,0x0000000FU); - /*############################################################################################################################ */ - - // : SIOU SETTINGS FOR BYPASS CONTROL,HSRX-DIG - /*Register : L0_TM_RST_DLY @ 0XFD4019A4

      - - Delay apb reset by specified amount - PSU_SERDES_L0_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4019A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L0_TM_ANA_BYP_15 @ 0XFD401038

      - - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD401038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ANA_BYP_12 @ 0XFD40102C

      - - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40102C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L1_TM_RST_DLY @ 0XFD4059A4

      - - Delay apb reset by specified amount - PSU_SERDES_L1_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4059A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L1_TM_ANA_BYP_15 @ 0XFD405038

      - - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD405038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L1_TM_ANA_BYP_12 @ 0XFD40502C

      - - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40502C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L2_TM_RST_DLY @ 0XFD4099A4

      - - Delay apb reset by specified amount - PSU_SERDES_L2_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4099A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L2_TM_ANA_BYP_15 @ 0XFD409038

      - - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD409038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L2_TM_ANA_BYP_12 @ 0XFD40902C

      - - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40902C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_RST_DLY @ 0XFD40D9A4

      - - Delay apb reset by specified amount - PSU_SERDES_L3_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD40D9A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L3_TM_ANA_BYP_15 @ 0XFD40D038

      - - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD40D038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ANA_BYP_12 @ 0XFD40D02C

      - - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40D02C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - // : GT LANE SETTINGS - /*Register : ICM_CFG0 @ 0XFD410010

      - - Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unuse - , 7 - Unused - PSU_SERDES_ICM_CFG0_L0_ICM_CFG 1 - - Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG0_L1_ICM_CFG 4 - - ICM Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD410010, 0x00000077U ,0x00000041U) - RegMask = (SERDES_ICM_CFG0_L0_ICM_CFG_MASK | SERDES_ICM_CFG0_L1_ICM_CFG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT - | 0x00000004U << SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_ICM_CFG0_OFFSET ,0x00000077U ,0x00000041U); - /*############################################################################################################################ */ - - /*Register : ICM_CFG1 @ 0XFD410014

      - - Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG1_L2_ICM_CFG 3 - - Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG1_L3_ICM_CFG 2 - - ICM Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD410014, 0x00000077U ,0x00000023U) - RegMask = (SERDES_ICM_CFG1_L2_ICM_CFG_MASK | SERDES_ICM_CFG1_L3_ICM_CFG_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT - | 0x00000002U << SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_ICM_CFG1_OFFSET ,0x00000077U ,0x00000023U); - /*############################################################################################################################ */ - - // : CHECKING PLL LOCK - // : ENABLE SERIAL DATA MUX DEEMPH - /*Register : L1_TXPMD_TM_45 @ 0XFD404CB4

      - - Enable/disable DP post2 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH 0x1 - - Override enable/disable of DP post2 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH 0x1 - - Override enable/disable of DP post1 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH 0x1 - - Enable/disable DP main path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH 0x1 - - Override enable/disable of DP main path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH 0x1 - - Post or pre or main DP path selection - (OFFSET, MASK, VALUE) (0XFD404CB4, 0x00000037U ,0x00000037U) - RegMask = (SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TXPMD_TM_45_OFFSET ,0x00000037U ,0x00000037U); - /*############################################################################################################################ */ - - /*Register : L1_TX_ANA_TM_118 @ 0XFD4041D8

      - - Test register force for enabling/disablign TX deemphasis bits <17:0> - PSU_SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 - - Enable Override of TX deemphasis - (OFFSET, MASK, VALUE) (0XFD4041D8, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TX_ANA_TM_118_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TX_ANA_TM_118 @ 0XFD40C1D8

      - - Test register force for enabling/disablign TX deemphasis bits <17:0> - PSU_SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 - - Enable Override of TX deemphasis - (OFFSET, MASK, VALUE) (0XFD40C1D8, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_ANA_TM_118_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : CDR AND RX EQUALIZATION SETTINGS - /*Register : L3_TM_CDR5 @ 0XFD40DC14

      - - FPHL FSM accumulate cycles - PSU_SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES 0x7 - - FFL Phase0 int gain aka 2ol SD update rate - PSU_SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN 0x6 - - Fast phase lock controls -- FSM accumulator cycle control and phase 0 int gain control. - (OFFSET, MASK, VALUE) (0XFD40DC14, 0x000000FFU ,0x000000E6U) - RegMask = (SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK | SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK | 0 ); - - RegVal = ((0x00000007U << SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT - | 0x00000006U << SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_CDR5_OFFSET ,0x000000FFU ,0x000000E6U); - /*############################################################################################################################ */ - - /*Register : L3_TM_CDR16 @ 0XFD40DC40

      - - FFL Phase0 prop gain aka 1ol SD update rate - PSU_SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN 0xC - - Fast phase lock controls -- phase 0 prop gain - (OFFSET, MASK, VALUE) (0XFD40DC40, 0x0000001FU ,0x0000000CU) - RegMask = (SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK | 0 ); - - RegVal = ((0x0000000CU << SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_CDR16_OFFSET ,0x0000001FU ,0x0000000CU); - /*############################################################################################################################ */ - - /*Register : L3_TM_EQ0 @ 0XFD40D94C

      - - EQ stg 2 controls BYPASSED - PSU_SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP 1 - - eq stg1 and stg2 controls - (OFFSET, MASK, VALUE) (0XFD40D94C, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_EQ0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L3_TM_EQ1 @ 0XFD40D950

      - - EQ STG2 RL PROG - PSU_SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG 0x2 - - EQ stg 2 preamp mode val - PSU_SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL 0x1 - - eq stg1 and stg2 controls - (OFFSET, MASK, VALUE) (0XFD40D950, 0x00000007U ,0x00000006U) - RegMask = (SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK | SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT - | 0x00000001U << SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_EQ1_OFFSET ,0x00000007U ,0x00000006U); - /*############################################################################################################################ */ - - // : GEM SERDES SETTINGS - // : ENABLE PRE EMPHAIS AND VOLTAGE SWING - /*Register : L1_TXPMD_TM_48 @ 0XFD404CC0

      - - Margining factor value - PSU_SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR 0 - - Margining factor - (OFFSET, MASK, VALUE) (0XFD404CC0, 0x0000001FU ,0x00000000U) - RegMask = (SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TXPMD_TM_48_OFFSET ,0x0000001FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L1_TX_ANA_TM_18 @ 0XFD404048

      - - pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved - PSU_SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0 - - Override for PIPE TX de-emphasis - (OFFSET, MASK, VALUE) (0XFD404048, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TX_ANA_TM_18_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L3_TX_ANA_TM_18 @ 0XFD40C048

      - - pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved - PSU_SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0x1 - - Override for PIPE TX de-emphasis - (OFFSET, MASK, VALUE) (0XFD40C048, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_ANA_TM_18_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - - return 1; + * TrustZone classification for Ingress Address Translation 7 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7 1 + + * TrustZone classification for Egress Address Translation 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0 1 + + * TrustZone classification for Egress Address Translation 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1 1 + + * TrustZone classification for Egress Address Translation 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2 1 + + * TrustZone classification for Egress Address Translation 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3 1 + + * TrustZone classification for Egress Address Translation 4 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4 1 + + * TrustZone classification for Egress Address Translation 5 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5 1 + + * TrustZone classification for Egress Address Translation 6 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6 1 + + * TrustZone classification for Egress Address Translation 7 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7 1 + + * TrustZone classification for DMA Registers + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS 1 + + * TrustZone classification for MSIx Table + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE 1 + + * TrustZone classification for MSIx PBA + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA 1 + + * TrustZone classification for ECAM + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM 1 + + * TrustZone classification for Bridge Common Registers + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS 1 + + * PCIe TrustZone settings. This register may only be modified during bootu + * p (while PCIe block is disabled) + * (OFFSET, MASK, VALUE) (0XFD690030, 0x01FFFFFFU ,0x01FFFFFFU) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_PCIE_OFFSET, + 0x01FFFFFFU, 0x01FFFFFFU); +/*##################################################################### */ + + /* + * USB TZ + */ + /* + * Register : slcr_usb @ 0XFF4B0034 + + * TrustZone Classification for USB3_0 + * PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0 1 + + * TrustZone Classification for USB3_1 + * PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1 1 + + * USB3 TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0034, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_USB_OFFSET, + 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * SD TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x003F0000U ,0x00120000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x003F0000U, 0x00120000U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x003F0000U ,0x00120000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x003F0000U, 0x00120000U); +/*##################################################################### */ + + /* + * GEM TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x00000FFFU ,0x00000492U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x00000FFFU, 0x00000492U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x00000FFFU ,0x00000492U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x00000FFFU, 0x00000492U); +/*##################################################################### */ + + /* + * QSPI TZ + */ + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x0E000000U ,0x04000000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x0E000000U, 0x04000000U); +/*##################################################################### */ + + /* + * NAND TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x01C00000U ,0x00800000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x01C00000U, 0x00800000U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x01C00000U ,0x00800000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x01C00000U, 0x00800000U); +/*##################################################################### */ + + /* + * DMA TZ + */ + /* + * Register : slcr_adma @ 0XFF4B0024 + + * TrustZone Classification for ADMA + * PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0xFF + + * RPU TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_ADMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : slcr_gdma @ 0XFD690050 + + * TrustZone Classification for GDMA + * PSU_FPD_SLCR_SECURE_SLCR_GDMA_TZ 0xFF + + * GDMA Trustzone Settings + * (OFFSET, MASK, VALUE) (0XFD690050, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_GDMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + + return 1; } -unsigned long psu_resetout_init_data() { - // : TAKING SERDES PERIPHERAL OUT OF RESET RESET - // : PUTTING USB0 IN RESET - /*Register : RST_LPD_TOP @ 0XFF5E023C

      +unsigned long psu_serdes_init_data(void) +{ + /* + * SERDES INITIALIZATION + */ + /* + * GT REFERENCE CLOCK SOURCE SELECTION + */ + /* + * Register : PLL_REF_SEL0 @ 0XFD410000 + + * PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL0_PLLREFSEL0 0xD + + * PLL0 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410000, 0x0000001FU ,0x0000000DU) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL0_OFFSET, 0x0000001FU, 0x0000000DU); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL1 @ 0XFD410004 + + * PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL1_PLLREFSEL1 0x9 + + * PLL1 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410004, 0x0000001FU ,0x00000009U) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL1_OFFSET, 0x0000001FU, 0x00000009U); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL2 @ 0XFD410008 + + * PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL2_PLLREFSEL2 0x8 + + * PLL2 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410008, 0x0000001FU ,0x00000008U) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL2_OFFSET, 0x0000001FU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL3 @ 0XFD41000C + + * PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL3_PLLREFSEL3 0xF + + * PLL3 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD41000C, 0x0000001FU ,0x0000000FU) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL3_OFFSET, 0x0000001FU, 0x0000000FU); +/*##################################################################### */ + + /* + * GT REFERENCE CLOCK FREQUENCY SELECTION + */ + /* + * Register : L0_L0_REF_CLK_SEL @ 0XFD402860 + + * Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer outp + * ut. Set to 0 to select lane0 ref clock mux output. + * PSU_SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL 0x1 + + * Lane0 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402860, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_L0_REF_CLK_SEL_OFFSET, + 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_L1_REF_CLK_SEL @ 0XFD402864 + + * Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane1 ref clock mux output. + * PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL 0x0 + + * Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 sli + * cer output from ref clock network + * PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3 0x1 + + * Lane1 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402864, 0x00000088U ,0x00000008U) + */ + PSU_Mask_Write(SERDES_L0_L1_REF_CLK_SEL_OFFSET, + 0x00000088U, 0x00000008U); +/*##################################################################### */ + + /* + * Register : L0_L2_REF_CLK_SEL @ 0XFD402868 + + * Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane2 ref clock mux output. + * PSU_SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL 0x1 + + * Lane2 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402868, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_L2_REF_CLK_SEL_OFFSET, + 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_L3_REF_CLK_SEL @ 0XFD40286C + + * Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer outp + * ut. Set to 0 to select lane3 ref clock mux output. + * PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL 0x0 + + * Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 sli + * cer output from ref clock network + * PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1 0x1 + + * Lane3 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD40286C, 0x00000082U ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L0_L3_REF_CLK_SEL_OFFSET, + 0x00000082U, 0x00000002U); +/*##################################################################### */ + + /* + * ENABLE SPREAD SPECTRUM + */ + /* + * Register : L2_TM_PLL_DIG_37 @ 0XFD40A094 + + * Enable/Disable coarse code satureation limiting logic + * PSU_SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION 0x1 + + * Test mode register 37 + * (OFFSET, MASK, VALUE) (0XFD40A094, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_PLL_DIG_37_OFFSET, + 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEPS_0_LSB @ 0XFD40A368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x38 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD40A368, 0x000000FFU ,0x00000038U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x00000038U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEPS_1_MSB @ 0XFD40A36C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x03 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40A36C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L3_PLL_SS_STEPS_0_LSB @ 0XFD40E368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0xE0 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD40E368, 0x000000FFU ,0x000000E0U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x000000E0U); +/*##################################################################### */ + + /* + * Register : L3_PLL_SS_STEPS_1_MSB @ 0XFD40E36C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40E36C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEPS_0_LSB @ 0XFD406368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x58 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD406368, 0x000000FFU ,0x00000058U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x00000058U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEPS_1_MSB @ 0XFD40636C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40636C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_0_LSB @ 0XFD406370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0x7C + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD406370, 0x000000FFU ,0x0000007CU) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x0000007CU); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_1 @ 0XFD406374 + + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x33 + + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD406374, 0x000000FFU ,0x00000033U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x00000033U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_2 @ 0XFD406378 + + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 + + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD406378, 0x000000FFU ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40637C + + * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 + + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 + + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40637C, 0x00000033U ,0x00000030U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x00000033U, 0x00000030U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40A370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xF4 + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD40A370, 0x000000FFU ,0x000000F4U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x000000F4U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_1 @ 0XFD40A374 + + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x31 + + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD40A374, 0x000000FFU ,0x00000031U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x00000031U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_2 @ 0XFD40A378 - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X0 + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 + + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD40A378, 0x000000FFU ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40A37C - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000400U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | 0 ); + * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000400U ,0x00000000U); - /*############################################################################################################################ */ + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 + + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40A37C, 0x00000033U ,0x00000030U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x00000033U, 0x00000030U); +/*##################################################################### */ - // : USB0 PIPE POWER PRESENT - /*Register : fpd_power_prsnt @ 0XFF9D0080

      + /* + * Register : L3_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40E370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xC9 + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD40E370, 0x000000FFU ,0x000000C9U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x000000C9U); +/*##################################################################### */ - This bit is used to choose between PIPE power present and 1'b1 - PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 + /* + * Register : L3_PLL_SS_STEP_SIZE_1 @ 0XFD40E374 - fpd_power_prsnt - (OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) - RegMask = (USB3_0_FPD_POWER_PRSNT_OPTION_MASK | 0 ); + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0xD2 - RegVal = ((0x00000001U << USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_FPD_POWER_PRSNT_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD40E374, 0x000000FFU ,0x000000D2U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x000000D2U); +/*##################################################################### */ - /*Register : fpd_pipe_clk @ 0XFF9D007C

      + /* + * Register : L3_PLL_SS_STEP_SIZE_2 @ 0XFD40E378 - This bit is used to choose between PIPE clock coming from SerDes and the suspend clk - PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x1 - fpd_pipe_clk - (OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) - RegMask = (USB3_0_FPD_PIPE_CLK_OPTION_MASK | 0 ); + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD40E378, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000001U); +/*##################################################################### */ - RegVal = ((0x00000000U << USB3_0_FPD_PIPE_CLK_OPTION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_FPD_PIPE_CLK_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : L3_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40E37C - // : - /*Register : RST_LPD_TOP @ 0XFF5E023C

      + * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X0 + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X0 + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable test mode forcing on enable Spread Spectrum + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS 0x1 - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000140U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40E37C, 0x000000B3U ,0x000000B0U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x000000B3U, 0x000000B0U); +/*##################################################################### */ - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000140U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : L2_TM_DIG_6 @ 0XFD40906C - // : PUTTING GEM0 IN RESET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

      + * Bypass Descrambler + * PSU_SERDES_L2_TM_DIG_6_BYPASS_DESCRAM 0x1 - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X0 + * Enable Bypass for <1> TM_DIG_CTRL_6 + * PSU_SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * Data path test modes in decoder and descram + * (OFFSET, MASK, VALUE) (0XFD40906C, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_6_OFFSET, 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L2_TX_DIG_TM_61 @ 0XFD4080F4 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ + * Bypass scrambler signal + * PSU_SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - // : PUTTING SATA IN RESET - /*Register : sata_misc_ctrl @ 0XFD3D0100

      + * Enable/disable scrambler bypass signal + * PSU_SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 + + * MPHY PLL Gear and bypass scrambler + * (OFFSET, MASK, VALUE) (0XFD4080F4, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_TX_DIG_TM_61_OFFSET, + 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L3_PLL_FBDIV_FRAC_3_MSB @ 0XFD40E360 + + * Enable test mode force on fractional mode enable + * PSU_SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC 0x1 + + * Fractional feedback division control and fractional value for feedback d + * ivision bits 26:24 + * (OFFSET, MASK, VALUE) (0XFD40E360, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_PLL_FBDIV_FRAC_3_MSB_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ - Sata PM clock control select - PSU_SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL 0x3 + /* + * Register : L3_TM_DIG_6 @ 0XFD40D06C + + * Bypass 8b10b decoder + * PSU_SERDES_L3_TM_DIG_6_BYPASS_DECODER 0x1 - Misc Contorls for SATA.This register may only be modified during bootup (while SATA block is disabled) - (OFFSET, MASK, VALUE) (0XFD3D0100, 0x00000003U ,0x00000003U) - RegMask = (SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK | 0 ); + * Enable Bypass for <3> TM_DIG_CTRL_6 + * PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC 0x1 - RegVal = ((0x00000003U << SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SIOU_SATA_MISC_CTRL_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ + * Bypass Descrambler + * PSU_SERDES_L3_TM_DIG_6_BYPASS_DESCRAM 0x1 - /*Register : RST_FPD_TOP @ 0XFD1A0100

      + * Enable Bypass for <1> TM_DIG_CTRL_6 + * PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 + + * Data path test modes in decoder and descram + * (OFFSET, MASK, VALUE) (0XFD40D06C, 0x0000000FU ,0x0000000FU) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_6_OFFSET, 0x0000000FU, 0x0000000FU); +/*##################################################################### */ + + /* + * Register : L3_TX_DIG_TM_61 @ 0XFD40C0F4 + + * Enable/disable encoder bypass signal + * PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_ENC 0x1 + + * Bypass scrambler signal + * PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM 0x1 + + * Enable/disable scrambler bypass signal + * PSU_SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING PCIE CFG AND BRIDGE IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      - - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X0 - - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000C0000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000C0000U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING DP IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      - - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_DP_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00010000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DP_PHY_RESET @ 0XFD4A0200

      - - Set to '1' to hold the GT in reset. Clear to release. - PSU_DP_DP_PHY_RESET_GT_RESET 0X0 - - Reset the transmitter PHY. - (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000000U) - RegMask = (DP_DP_PHY_RESET_GT_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << DP_DP_PHY_RESET_GT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_PHY_RESET_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

      - - Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1 - PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0X0 - - Control PHY Power down - (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x00000000U) - RegMask = (DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK | 0 ); - - RegVal = ((0x00000000U << DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_TX_PHY_POWER_DOWN_OFFSET ,0x0000000FU ,0x00000000U); - /*############################################################################################################################ */ - - // : USB0 GFLADJ - /*Register : GUSB2PHYCFG @ 0XFE20C200

      - - USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to - he Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). The following are the required values for the minimum S - C bus frequency of 60 MHz. USB turnaround time is a critical certification criteria when using long cables and five hub level - . The required values for this field: - 4'h5: When the MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit - UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround time is not critical, this field can be set to a larger - alue. Note: This field is valid only in device mode. - PSU_USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM 0x9 - - Transceiver Delay: Enables a delay between the assertion of the UTMI/ULPI Transceiver Select signal (for HS) and the assertio - of the TxValid signal during a HS Chirp. When this bit is set to 1, a delay (of approximately 2.5 us) is introduced from the - time when the Transceiver Select is set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the chirp-K. This de - ay is required for some UTMI/ULPI PHYs. Note: - If you enable the hibernation feature when the device core comes out of power - off, you must re-initialize this bit with the appropriate value because the core does not save and restore this bit value dur - ng hibernation. - This bit is valid only in device mode. - PSU_USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY 0x0 - - Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application uses this bit to control utmi_sleep_n and utmi_l1_suspen - _n assertion to the PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is not transferre - to the external PHY. - 1'b1: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is transferred to the external PHY. - ote: This bit must be set high for Port0 if PHY is used. Note: In Device mode - Before issuing any device endpoint command wh - n operating in 2.0 speeds, disable this bit and enable it after the command completes. Without disabling this bit, if a comma - d is issued when the device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get complet - d. - PSU_USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM 0x0 - - USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select The application uses this bit to select a high-speed P - Y or a full-speed transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is always 0, with Write Only access. - - 'b1: USB 1.1 full-speed serial transceiver. This bit is always 1, with Write Only access. If both interface types are selecte - in coreConsultant (that is, parameters' values are not zero), the application uses this bit to select the active interface i - active, with Read-Write bit access. Note: USB 1.1 full-serial transceiver is not supported. This bit always reads as 1'b0. - PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYSEL 0x0 - - Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select a unidirectional or bidirectional USB 1.1 - full-speed serial transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial interface. This bit is set to 0 with - ead Only access. - 1'b1: 3-pin bidirectional full-speed serial interface. This bit is set to 0 with Read Only access. Note: U - B 1.1 full-speed serial interface is not supported. This bit always reads as 1'b0. - PSU_USB3_0_XHCI_GUSB2PHYCFG_FSINTF 0x0 - - ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interfa - e - 1'b1: ULPI Interface This bit is writable only if UTMI+ and ULPI is specified for High-Speed PHY Interface(s) in coreCons - ltant configuration (DWC_USB3_HSPHY_INTERFACE = 3). Otherwise, this bit is read-only and the value depends on the interface s - lected through DWC_USB3_HSPHY_INTERFACE. - PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL 0x1 - - PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bit to configure the core to support a UTMI+ PHY with a - 8- or 16-bit interface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the enabled 2.0 ports must have the same - lock frequency as Port0 clock frequency (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used together for differen - ports at the same time (that is, all the ports must be in 8-bit mode, or all of them must be in 16-bit mode, at a time). - I - any of the USB 2.0 ports is selected as ULPI port for operation, then all the USB 2.0 ports must be operating at 60 MHz. - PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYIF 0x0 - - HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicated by the application in this field, is multiplied by - a bit-time factor; this factor is added to the high-speed/full-speed interpacket timeout duration in the core to account for - dditional delays introduced by the PHY. This may be required, since the delay introduced by the PHY in generating the linesta - e condition may vary among PHYs. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. - The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this - ield based on the speed of connection. The number of bit times added per PHY clock are: High-speed operation: - One 30-MHz PH - clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One - 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times - PSU_USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL 0x7 - - Global USB2 PHY Configuration Register The application must program this register before starting any transactions on either - he SoC bus or the USB. In Device-only configurations, only one register is needed. In Host mode, per-port registers are imple - ented. - (OFFSET, MASK, VALUE) (0XFE20C200, 0x00003FBFU ,0x00002417U) - RegMask = (USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK | USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK | USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK | USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK | USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK | USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK | USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK | USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK | 0 ); - - RegVal = ((0x00000009U << USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT - | 0x00000001U << USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT - | 0x00000007U << USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_XHCI_GUSB2PHYCFG_OFFSET ,0x00003FBFU ,0x00002417U); - /*############################################################################################################################ */ - - /*Register : GFLADJ @ 0XFE20C630

      - - This field indicates the frame length adjustment to be applied when SOF/ITP counter is running on the ref_clk. This register - alue is used to adjust the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP interval when GLADJ.GFLADJ_REFCLK_LP - _SEL is set to '1'. This field must be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set to '1' or GCTL.SOF - TPSYNC is set to '1'. The value is derived as follows: FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_p - riod)) * ref_clk_period where - the ref_clk_period_integer is the integer value of the ref_clk period got by truncating the d - cimal (fractional) value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_clk_period is the ref_clk period inc - uding the fractional value. Examples: If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLADJ_REFCLK_FLADJ = - ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignoring the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_P - RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*20.8333 = 5208 (ignoring the fractional value) - PSU_USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ 0x0 - - Global Frame Length Adjustment Register This register provides options for the software to control the core behavior with res - ect to SOF (Start of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer functionality. It provides an optio - to override the fladj_30mhz_reg sideband signal. In addition, it enables running SOF or ITP frame timer counters completely - rom the ref_clk. This facilitates hardware LPM in host mode with the SOF or ITP counters being run from the ref_clk signal. - (OFFSET, MASK, VALUE) (0XFE20C630, 0x003FFF00U ,0x00000000U) - RegMask = (USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK | 0 ); - - RegVal = ((0x00000000U << USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_XHCI_GFLADJ_OFFSET ,0x003FFF00U ,0x00000000U); - /*############################################################################################################################ */ - - // : UPDATING TWO PCIE REGISTERS DEFAULT VALUES, AS THESE REGISTERS HAVE INCORRECT RESET VALUES IN SILICON. - /*Register : ATTR_25 @ 0XFD480064

      - - If TRUE Completion Timeout Disable is supported. This is required to be TRUE for Endpoint and either setting allowed for Root - ports. Drives Device Capability 2 [4]; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED 0X1 - - ATTR_25 - (OFFSET, MASK, VALUE) (0XFD480064, 0x00000200U ,0x00000200U) - RegMask = (PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_25_OFFSET ,0x00000200U ,0x00000200U); - /*############################################################################################################################ */ - - // : PCIE SETTINGS - /*Register : ATTR_7 @ 0XFD48001C

      - - Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0x0004; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_7_ATTR_BAR0 0x0 - - ATTR_7 - (OFFSET, MASK, VALUE) (0XFD48001C, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_7_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_8 @ 0XFD480020

      - - Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0xFFF0; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_8_ATTR_BAR0 0x0 - - ATTR_8 - (OFFSET, MASK, VALUE) (0XFD480020, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_8_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_9 @ 0XFD480024

      - - Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_9_ATTR_BAR1 0x0 - - ATTR_9 - (OFFSET, MASK, VALUE) (0XFD480024, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_9_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_10 @ 0XFD480028

      - - Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_10_ATTR_BAR1 0x0 - - ATTR_10 - (OFFSET, MASK, VALUE) (0XFD480028, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_10_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_11 @ 0XFD48002C

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFFF - PSU_PCIE_ATTRIB_ATTR_11_ATTR_BAR2 0xFFFF - - ATTR_11 - (OFFSET, MASK, VALUE) (0XFD48002C, 0x0000FFFFU ,0x0000FFFFU) - RegMask = (PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK | 0 ); - - RegVal = ((0x0000FFFFU << PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_11_OFFSET ,0x0000FFFFU ,0x0000FFFFU); - /*############################################################################################################################ */ - - /*Register : ATTR_12 @ 0XFD480030

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0x00FF - PSU_PCIE_ATTRIB_ATTR_12_ATTR_BAR2 0xFF - - ATTR_12 - (OFFSET, MASK, VALUE) (0XFD480030, 0x0000FFFFU ,0x000000FFU) - RegMask = (PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK | 0 ); - - RegVal = ((0x000000FFU << PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_12_OFFSET ,0x0000FFFFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : ATTR_13 @ 0XFD480034

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_13_ATTR_BAR3 0x0 - - ATTR_13 - (OFFSET, MASK, VALUE) (0XFD480034, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_13_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_14 @ 0XFD480038

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFFF - PSU_PCIE_ATTRIB_ATTR_14_ATTR_BAR3 0xFFFF - - ATTR_14 - (OFFSET, MASK, VALUE) (0XFD480038, 0x0000FFFFU ,0x0000FFFFU) - RegMask = (PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK | 0 ); - - RegVal = ((0x0000FFFFU << PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_14_OFFSET ,0x0000FFFFU ,0x0000FFFFU); - /*############################################################################################################################ */ - - /*Register : ATTR_15 @ 0XFD48003C

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFF0 - PSU_PCIE_ATTRIB_ATTR_15_ATTR_BAR4 0xFFF0 - - ATTR_15 - (OFFSET, MASK, VALUE) (0XFD48003C, 0x0000FFFFU ,0x0000FFF0U) - RegMask = (PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK | 0 ); - - RegVal = ((0x0000FFF0U << PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_15_OFFSET ,0x0000FFFFU ,0x0000FFF0U); - /*############################################################################################################################ */ - - /*Register : ATTR_16 @ 0XFD480040

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0xFFF0 - PSU_PCIE_ATTRIB_ATTR_16_ATTR_BAR4 0xFFF0 - - ATTR_16 - (OFFSET, MASK, VALUE) (0XFD480040, 0x0000FFFFU ,0x0000FFF0U) - RegMask = (PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK | 0 ); - - RegVal = ((0x0000FFF0U << PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_16_OFFSET ,0x0000FFFFU ,0x0000FFF0U); - /*############################################################################################################################ */ - - /*Register : ATTR_17 @ 0XFD480044

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 - PSU_PCIE_ATTRIB_ATTR_17_ATTR_BAR5 0xFFF1 - - ATTR_17 - (OFFSET, MASK, VALUE) (0XFD480044, 0x0000FFFFU ,0x0000FFF1U) - RegMask = (PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK | 0 ); - - RegVal = ((0x0000FFF1U << PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_17_OFFSET ,0x0000FFFFU ,0x0000FFF1U); - /*############################################################################################################################ */ - - /*Register : ATTR_18 @ 0XFD480048

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 - PSU_PCIE_ATTRIB_ATTR_18_ATTR_BAR5 0xFFF1 - - ATTR_18 - (OFFSET, MASK, VALUE) (0XFD480048, 0x0000FFFFU ,0x0000FFF1U) - RegMask = (PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK | 0 ); - - RegVal = ((0x0000FFF1U << PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_18_OFFSET ,0x0000FFFFU ,0x0000FFF1U); - /*############################################################################################################################ */ - - /*Register : ATTR_27 @ 0XFD48006C

      - - Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1- 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred - to the Device Capabilities register. The values: 4-2048 bytes, 5- 4096 bytes are not supported; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED 1 - - Endpoint L1 Acceptable Latency. Records the latency that the endpoint can withstand on transitions from L1 state to L0 (if L1 - state supported). Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to 8us, 4h 8 to 16us, 5h 16 to 32us, 6 - 32 to 64us, 7h more than 64us. For Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY 0x0 - - ATTR_27 - (OFFSET, MASK, VALUE) (0XFD48006C, 0x00000738U ,0x00000100U) - RegMask = (PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK | PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_27_OFFSET ,0x00000738U ,0x00000100U); - /*############################################################################################################################ */ - - /*Register : ATTR_50 @ 0XFD4800C8

      - - Identifies the type of device/port as follows: 0000b PCI Express Endpoint device, 0001b Legacy PCI Express Endpoint device, 0 - 00b Root Port of PCI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110b Downstream Port of PCI Express Sw - tch, 0111b PCIE Express to PCI/PCI-X Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Express Capabilities r - gister. Must be consistent with IS_SWITCH and UPSTREAM_FACING settings.; EP=0x0000; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE 4 - - PCIe Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capab - lity.; EP=0x009C; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR 0 - - ATTR_50 - (OFFSET, MASK, VALUE) (0XFD4800C8, 0x0000FFF0U ,0x00000040U) - RegMask = (PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK | PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000004U << PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_50_OFFSET ,0x0000FFF0U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : ATTR_105 @ 0XFD4801A4

      - - Number of credits that should be advertised for Completion data received on Virtual Channel 0. The bytes advertised must be l - ss than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD - PSU_PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD 0xCD - - ATTR_105 - (OFFSET, MASK, VALUE) (0XFD4801A4, 0x000007FFU ,0x000000CDU) - RegMask = (PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK | 0 ); - - RegVal = ((0x000000CDU << PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_105_OFFSET ,0x000007FFU ,0x000000CDU); - /*############################################################################################################################ */ - - /*Register : ATTR_106 @ 0XFD4801A8

      - - Number of credits that should be advertised for Completion headers received on Virtual Channel 0. The sum of the posted, non - osted, and completion header credits must be <= 80; EP=0x0048; RP=0x0024 - PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH 0x24 - - Number of credits that should be advertised for Non-Posted headers received on Virtual Channel 0. The number of non posted da - a credits advertised by the block is equal to the number of non posted header credits. The sum of the posted, non posted, and - completion header credits must be <= 80; EP=0x0004; RP=0x000C - PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH 0xC - - ATTR_106 - (OFFSET, MASK, VALUE) (0XFD4801A8, 0x00003FFFU ,0x00000624U) - RegMask = (PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK | PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK | 0 ); - - RegVal = ((0x00000024U << PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT - | 0x0000000CU << PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_106_OFFSET ,0x00003FFFU ,0x00000624U); - /*############################################################################################################################ */ - - /*Register : ATTR_107 @ 0XFD4801AC

      - - Number of credits that should be advertised for Non-Posted data received on Virtual Channel 0. The number of non posted data - redits advertised by the block is equal to two times the number of non posted header credits if atomic operations are support - d or is equal to the number of non posted header credits if atomic operations are not supported. The bytes advertised must be - less than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 - PSU_PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD 0x18 - - ATTR_107 - (OFFSET, MASK, VALUE) (0XFD4801AC, 0x000007FFU ,0x00000018U) - RegMask = (PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK | 0 ); - - RegVal = ((0x00000018U << PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_107_OFFSET ,0x000007FFU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : ATTR_108 @ 0XFD4801B0

      - - Number of credits that should be advertised for Posted data received on Virtual Channel 0. The bytes advertised must be less - han or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 - PSU_PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD 0xB5 - - ATTR_108 - (OFFSET, MASK, VALUE) (0XFD4801B0, 0x000007FFU ,0x000000B5U) - RegMask = (PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK | 0 ); - - RegVal = ((0x000000B5U << PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_108_OFFSET ,0x000007FFU ,0x000000B5U); - /*############################################################################################################################ */ - - /*Register : ATTR_109 @ 0XFD4801B4

      - - Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x00 - 0 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV 0x0 - - Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim TRUE == trim.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM 0x1 - - Enables ECRC check on received TLP's 0 == don't check 1 == always check 3 == check if enabled by ECRC check enable bit of AER - cap structure; EP=0x0003; RP=0x0003 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK 0x3 - - Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). Calculated from max payload size supported and the n - mber of brams configured for transmit; EP=0x001C; RP=0x001C - PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET 0x1c - - Number of credits that should be advertised for Posted headers received on Virtual Channel 0. The sum of the posted, non post - d, and completion header credits must be <= 80; EP=0x0004; RP=0x0020 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH 0x20 - - ATTR_109 - (OFFSET, MASK, VALUE) (0XFD4801B4, 0x0000FFFFU ,0x00007E20U) - RegMask = (PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK | PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK | PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK | PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK | PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT - | 0x00000003U << PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT - | 0x0000001CU << PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT - | 0x00000020U << PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_109_OFFSET ,0x0000FFFFU ,0x00007E20U); - /*############################################################################################################################ */ - - /*Register : ATTR_34 @ 0XFD480088

      - - Specifies values to be transferred to Header Type register. Bit 7 should be set to '0' indicating single-function device. Bit - 0 identifies header as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE 0x1 - - ATTR_34 - (OFFSET, MASK, VALUE) (0XFD480088, 0x000000FFU ,0x00000001U) - RegMask = (PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_34_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : ATTR_53 @ 0XFD4800D4

      - - PM Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabil - ty.; EP=0x0048; RP=0x0060 - PSU_PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR 0x60 - - ATTR_53 - (OFFSET, MASK, VALUE) (0XFD4800D4, 0x000000FFU ,0x00000060U) - RegMask = (PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000060U << PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_53_OFFSET ,0x000000FFU ,0x00000060U); - /*############################################################################################################################ */ - - /*Register : ATTR_41 @ 0XFD4800A4

      - - MSI Per-Vector Masking Capable. The value is transferred to the MSI Control Register[8]. When set, adds Mask and Pending Dwor - to Cap structure; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE 0x0 - - Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 - - MSI Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabi - ity.; EP=0x0060; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR 0x0 - - Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 - - ATTR_41 - (OFFSET, MASK, VALUE) (0XFD4800A4, 0x000003FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_41_OFFSET ,0x000003FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_97 @ 0XFD480184

      - - Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b x4, 001000b x8.; EP=0x0004; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH 0x1 - - Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x00 - 4; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH 0x1 - - ATTR_97 - (OFFSET, MASK, VALUE) (0XFD480184, 0x00000FFFU ,0x00000041U) - RegMask = (PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK | PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_97_OFFSET ,0x00000FFFU ,0x00000041U); - /*############################################################################################################################ */ - - /*Register : ATTR_100 @ 0XFD480190

      - - TRUE specifies upstream-facing port. FALSE specifies downstream-facing port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING 0x0 - - ATTR_100 - (OFFSET, MASK, VALUE) (0XFD480190, 0x00000040U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_100_OFFSET ,0x00000040U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_101 @ 0XFD480194

      - - Enable the routing of message TLPs to the user through the TRN RX interface. A bit value of 1 enables routing of the message - LP to the user. Messages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 - ERR NONFATAL, Bit 2 - ERR FATAL, - Bit 3 - INTA Bit 4 - INTB, Bit 5 - INTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit 10 PME_Turn_Off; - EP=0x0000; RP=0x07FF - PSU_PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE 0x7FF - - Disable BAR filtering. Does not change the behavior of the bar hit outputs; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING 0x1 - - ATTR_101 - (OFFSET, MASK, VALUE) (0XFD480194, 0x0000FFE2U ,0x0000FFE2U) - RegMask = (PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK | PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK | 0 ); - - RegVal = ((0x000007FFU << PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_101_OFFSET ,0x0000FFE2U ,0x0000FFE2U); - /*############################################################################################################################ */ - - /*Register : ATTR_37 @ 0XFD480094

      - - Link Bandwidth notification capability. Indicates support for the link bandwidth notification status and interrupt mechanism. - Required for Root.; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP 0x1 - - Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Optionality ECN. Transferred to the Link Capabilities r - gister.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY 0x1 - - ATTR_37 - (OFFSET, MASK, VALUE) (0XFD480094, 0x00004200U ,0x00004200U) - RegMask = (PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK | PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_37_OFFSET ,0x00004200U ,0x00004200U); - /*############################################################################################################################ */ - - /*Register : ATTR_93 @ 0XFD480174

      - - Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value (or combined with the built-in value, depending on L - _REPLAY_TIMEOUT_FUNC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN 0x1 - - Sets a user-defined timeout for the Replay Timer to force cause the retransmission of unacknowledged TLPs; refer to LL_REPLAY - TIMEOUT_EN and LL_REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this attribute is in symbol times, which is - 4ns at GEN1 speeds and 2ns at GEN2.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT 0x1000 - - ATTR_93 - (OFFSET, MASK, VALUE) (0XFD480174, 0x0000FFFFU ,0x00009000U) - RegMask = (PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK | PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT - | 0x00001000U << PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_93_OFFSET ,0x0000FFFFU ,0x00009000U); - /*############################################################################################################################ */ - - /*Register : ID @ 0XFD480200

      - - Device ID for the the PCIe Cap Structure Device ID field - PSU_PCIE_ATTRIB_ID_CFG_DEV_ID 0xd021 - - Vendor ID for the PCIe Cap Structure Vendor ID field - PSU_PCIE_ATTRIB_ID_CFG_VEND_ID 0x10ee - - ID - (OFFSET, MASK, VALUE) (0XFD480200, 0xFFFFFFFFU ,0x10EED021U) - RegMask = (PCIE_ATTRIB_ID_CFG_DEV_ID_MASK | PCIE_ATTRIB_ID_CFG_VEND_ID_MASK | 0 ); - - RegVal = ((0x0000D021U << PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT - | 0x000010EEU << PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ID_OFFSET ,0xFFFFFFFFU ,0x10EED021U); - /*############################################################################################################################ */ - - /*Register : SUBSYS_ID @ 0XFD480204

      - - Subsystem ID for the the PCIe Cap Structure Subsystem ID field - PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID 0x7 - - Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field - PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID 0x10ee - - SUBSYS_ID - (OFFSET, MASK, VALUE) (0XFD480204, 0xFFFFFFFFU ,0x10EE0007U) - RegMask = (PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK | PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK | 0 ); - - RegVal = ((0x00000007U << PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT - | 0x000010EEU << PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_SUBSYS_ID_OFFSET ,0xFFFFFFFFU ,0x10EE0007U); - /*############################################################################################################################ */ - - /*Register : REV_ID @ 0XFD480208

      - - Revision ID for the the PCIe Cap Structure - PSU_PCIE_ATTRIB_REV_ID_CFG_REV_ID 0x0 - - REV_ID - (OFFSET, MASK, VALUE) (0XFD480208, 0x000000FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_REV_ID_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_24 @ 0XFD480060

      - - Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 8000; RP=0x8000 - PSU_PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE 0x400 - - ATTR_24 - (OFFSET, MASK, VALUE) (0XFD480060, 0x0000FFFFU ,0x00000400U) - RegMask = (PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK | 0 ); - - RegVal = ((0x00000400U << PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_24_OFFSET ,0x0000FFFFU ,0x00000400U); - /*############################################################################################################################ */ - - /*Register : ATTR_25 @ 0XFD480064

      - - Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 0005; RP=0x0006 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE 0x6 - - INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] to be hardwired to 0.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED 0 - - ATTR_25 - (OFFSET, MASK, VALUE) (0XFD480064, 0x000001FFU ,0x00000006U) - RegMask = (PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK | PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK | 0 ); - - RegVal = ((0x00000006U << PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_25_OFFSET ,0x000001FFU ,0x00000006U); - /*############################################################################################################################ */ - - /*Register : ATTR_4 @ 0XFD480010

      - - Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 - - Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 - - ATTR_4 - (OFFSET, MASK, VALUE) (0XFD480010, 0x00001000U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK | PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_4_OFFSET ,0x00001000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_89 @ 0XFD480164

      - - VSEC's Next Capability Offset pointer to the next item in the capabilities list, or 000h if this is the final capability.; EP - 0x0140; RP=0x0140 - PSU_PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR 0 - - ATTR_89 - (OFFSET, MASK, VALUE) (0XFD480164, 0x00001FFEU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_89_OFFSET ,0x00001FFEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_79 @ 0XFD48013C

      - - CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the Root Capabilities register.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY 1 - - ATTR_79 - (OFFSET, MASK, VALUE) (0XFD48013C, 0x00000020U ,0x00000020U) - RegMask = (PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_79_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : ATTR_43 @ 0XFD4800AC

      - - Indicates that the MSIX structures exists. If this is FALSE, then the MSIX structure cannot be accessed via either the link o - the management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON 0 - - ATTR_43 - (OFFSET, MASK, VALUE) (0XFD4800AC, 0x00000100U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_43_OFFSET ,0x00000100U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_48 @ 0XFD4800C0

      - - MSI-X Table Size. This value is transferred to the MSI-X Message Control[10:0] field. Set to 0 if MSI-X is not enabled. Note - hat the core does not implement the table; that must be implemented in user logic.; EP=0x0003; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE 0 - - ATTR_48 - (OFFSET, MASK, VALUE) (0XFD4800C0, 0x000007FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_48_OFFSET ,0x000007FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_46 @ 0XFD4800B8

      - - MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; - P=0x0000 - PSU_PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET 0 - - ATTR_46 - (OFFSET, MASK, VALUE) (0XFD4800B8, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_46_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_47 @ 0XFD4800BC

      - - MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0000; - P=0x0000 - PSU_PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET 0 - - ATTR_47 - (OFFSET, MASK, VALUE) (0XFD4800BC, 0x00001FFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_47_OFFSET ,0x00001FFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_44 @ 0XFD4800B0

      - - MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET 0 - - ATTR_44 - (OFFSET, MASK, VALUE) (0XFD4800B0, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_44_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_45 @ 0XFD4800B4

      - - MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x1000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET 0 - - ATTR_45 - (OFFSET, MASK, VALUE) (0XFD4800B4, 0x0000FFF8U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_45_OFFSET ,0x0000FFF8U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CB @ 0XFD48031C

      - - DT837748 Enable - PSU_PCIE_ATTRIB_CB_CB1 0x0 - - ECO Register 1 - (OFFSET, MASK, VALUE) (0XFD48031C, 0x00000002U ,0x00000000U) - RegMask = (PCIE_ATTRIB_CB_CB1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_CB_CB1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_CB_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_35 @ 0XFD48008C

      - - Active State PM Support. Indicates the level of active state power management supported by the selected PCI Express Link, enc - ded as follows: 0 Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supported.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT 0x0 - - ATTR_35 - (OFFSET, MASK, VALUE) (0XFD48008C, 0x00003000U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_35_OFFSET ,0x00003000U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING PCIE CONTROL IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      - - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00020000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00020000U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE0 - /*Register : L0_PLL_STATUS_READ_1 @ 0XFD4023E4

      - - Status Read value of PLL Lock - PSU_SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD4023E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L0_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE1 - /*Register : L1_PLL_STATUS_READ_1 @ 0XFD4063E4

      - - Status Read value of PLL Lock - PSU_SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD4063E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L1_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE2 - /*Register : L2_PLL_STATUS_READ_1 @ 0XFD40A3E4

      - - Status Read value of PLL Lock - PSU_SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD40A3E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L2_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE3 - /*Register : L3_PLL_STATUS_READ_1 @ 0XFD40E3E4

      - - Status Read value of PLL Lock - PSU_SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD40E3E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L3_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : SATA AHCI VENDOR SETTING - /*Register : PP2C @ 0XFD0C00AC

      - - CIBGMN: COMINIT Burst Gap Minimum. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGMN 0x18 - - CIBGMX: COMINIT Burst Gap Maximum. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGMX 0x40 - - CIBGN: COMINIT Burst Gap Nominal. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGN 0x18 - - CINMP: COMINIT Negate Minimum Period. - PSU_SATA_AHCI_VENDOR_PP2C_CINMP 0x28 - - PP2C - Port Phy2Cfg Register. This register controls the configuration of the Phy Control OOB timing for the COMINIT paramete - s for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00AC, 0xFFFFFFFFU ,0x28184018U) - RegMask = (SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK | SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK | SATA_AHCI_VENDOR_PP2C_CIBGN_MASK | SATA_AHCI_VENDOR_PP2C_CINMP_MASK | 0 ); - - RegVal = ((0x00000018U << SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT - | 0x00000040U << SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT - | 0x00000018U << SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT - | 0x00000028U << SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP2C_OFFSET ,0xFFFFFFFFU ,0x28184018U); - /*############################################################################################################################ */ - - /*Register : PP3C @ 0XFD0C00B0

      - - CWBGMN: COMWAKE Burst Gap Minimum. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGMN 0x06 - - CWBGMX: COMWAKE Burst Gap Maximum. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGMX 0x14 - - CWBGN: COMWAKE Burst Gap Nominal. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGN 0x08 - - CWNMP: COMWAKE Negate Minimum Period. - PSU_SATA_AHCI_VENDOR_PP3C_CWNMP 0x0E - - PP3C - Port Phy3CfgRegister. This register controls the configuration of the Phy Control OOB timing for the COMWAKE parameter - for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B0, 0xFFFFFFFFU ,0x0E081406U) - RegMask = (SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK | SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK | SATA_AHCI_VENDOR_PP3C_CWBGN_MASK | SATA_AHCI_VENDOR_PP3C_CWNMP_MASK | 0 ); - - RegVal = ((0x00000006U << SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT - | 0x00000014U << SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT - | 0x00000008U << SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT - | 0x0000000EU << SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP3C_OFFSET ,0xFFFFFFFFU ,0x0E081406U); - /*############################################################################################################################ */ - - /*Register : PP4C @ 0XFD0C00B4

      - - BMX: COM Burst Maximum. - PSU_SATA_AHCI_VENDOR_PP4C_BMX 0x13 - - BNM: COM Burst Nominal. - PSU_SATA_AHCI_VENDOR_PP4C_BNM 0x08 - - SFD: Signal Failure Detection, if the signal detection de-asserts for a time greater than this then the OOB detector will det - rmine this is a line idle and cause the PhyInit state machine to exit the Phy Ready State. A value of zero disables the Signa - Failure Detector. The value is based on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving a nominal time of - 500ns based on a 150MHz PMCLK. - PSU_SATA_AHCI_VENDOR_PP4C_SFD 0x4A - - PTST: Partial to Slumber timer value, specific delay the controller should apply while in partial before entering slumber. Th - value is bases on the system clock divided by 128, total delay = (Sys Clock Period) * PTST * 128 - PSU_SATA_AHCI_VENDOR_PP4C_PTST 0x06 - - PP4C - Port Phy4Cfg Register. This register controls the configuration of the Phy Control Burst timing for the COM parameters - for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B4, 0xFFFFFFFFU ,0x064A0813U) - RegMask = (SATA_AHCI_VENDOR_PP4C_BMX_MASK | SATA_AHCI_VENDOR_PP4C_BNM_MASK | SATA_AHCI_VENDOR_PP4C_SFD_MASK | SATA_AHCI_VENDOR_PP4C_PTST_MASK | 0 ); - - RegVal = ((0x00000013U << SATA_AHCI_VENDOR_PP4C_BMX_SHIFT - | 0x00000008U << SATA_AHCI_VENDOR_PP4C_BNM_SHIFT - | 0x0000004AU << SATA_AHCI_VENDOR_PP4C_SFD_SHIFT - | 0x00000006U << SATA_AHCI_VENDOR_PP4C_PTST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP4C_OFFSET ,0xFFFFFFFFU ,0x064A0813U); - /*############################################################################################################################ */ - - /*Register : PP5C @ 0XFD0C00B8

      - - RIT: Retry Interval Timer. The calculated value divided by two, the lower digit of precision is not needed. - PSU_SATA_AHCI_VENDOR_PP5C_RIT 0xC96A4 - - RCT: Rate Change Timer, a value based on the 54.2us for which a SATA device will transmit at a fixed rate ALIGNp after OOB ha - completed, for a fast SERDES it is suggested that this value be 54.2us / 4 - PSU_SATA_AHCI_VENDOR_PP5C_RCT 0x3FF - - PP5C - Port Phy5Cfg Register. This register controls the configuration of the Phy Control Retry Interval timing for either Po - t 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B8, 0xFFFFFFFFU ,0x3FFC96A4U) - RegMask = (SATA_AHCI_VENDOR_PP5C_RIT_MASK | SATA_AHCI_VENDOR_PP5C_RCT_MASK | 0 ); - - RegVal = ((0x000C96A4U << SATA_AHCI_VENDOR_PP5C_RIT_SHIFT - | 0x000003FFU << SATA_AHCI_VENDOR_PP5C_RCT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP5C_OFFSET ,0xFFFFFFFFU ,0x3FFC96A4U); - /*############################################################################################################################ */ - - - return 1; + * MPHY PLL Gear and bypass scrambler + * (OFFSET, MASK, VALUE) (0XFD40C0F4, 0x0000000BU ,0x0000000BU) + */ + PSU_Mask_Write(SERDES_L3_TX_DIG_TM_61_OFFSET, + 0x0000000BU, 0x0000000BU); +/*##################################################################### */ + + /* + * ENABLE CHICKEN BIT FOR PCIE AND USB + */ + /* + * Register : L0_TM_AUX_0 @ 0XFD4010CC + + * Spare- not used + * PSU_SERDES_L0_TM_AUX_0_BIT_2 1 + + * Spare registers + * (OFFSET, MASK, VALUE) (0XFD4010CC, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L0_TM_AUX_0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L2_TM_AUX_0 @ 0XFD4090CC + + * Spare- not used + * PSU_SERDES_L2_TM_AUX_0_BIT_2 1 + + * Spare registers + * (OFFSET, MASK, VALUE) (0XFD4090CC, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L2_TM_AUX_0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * ENABLING EYE SURF + */ + /* + * Register : L0_TM_DIG_8 @ 0XFD401074 + + * Enable Eye Surf + * PSU_SERDES_L0_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD401074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L0_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L1_TM_DIG_8 @ 0XFD405074 + + * Enable Eye Surf + * PSU_SERDES_L1_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD405074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L1_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_DIG_8 @ 0XFD409074 + + * Enable Eye Surf + * PSU_SERDES_L2_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD409074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L3_TM_DIG_8 @ 0XFD40D074 + + * Enable Eye Surf + * PSU_SERDES_L3_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD40D074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * ILL SETTINGS FOR GAIN AND LOCK SETTINGS + */ + /* + * Register : L0_TM_MISC2 @ 0XFD40189C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40189C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL1 @ 0XFD4018F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4018F8, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL2 @ 0XFD4018FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4018FC, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL12 @ 0XFD401990 + + * G1A pll ctr bypass value + * PSU_SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x11 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD401990, 0x000000FFU ,0x00000011U) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL12_OFFSET, 0x000000FFU, 0x00000011U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL1 @ 0XFD401924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x4 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD401924, 0x000000FFU ,0x00000004U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL1_OFFSET, 0x000000FFU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL2 @ 0XFD401928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0xFE + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD401928, 0x000000FFU ,0x000000FEU) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL2_OFFSET, 0x000000FFU, 0x000000FEU); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL3 @ 0XFD401900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD401900, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL3 @ 0XFD40192C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40192C, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL8 @ 0XFD401980 + + * ILL calibration code change wait time + * PSU_SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD401980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL8 @ 0XFD401914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD401914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL9 @ 0XFD401918 + + * bypass IQ polytrim + * PSU_SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD401918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL8 @ 0XFD401940 + + * E ILL polytrim bypass value + * PSU_SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD401940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL9 @ 0XFD401944 + + * bypass E polytrim + * PSU_SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD401944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL13 @ 0XFD401994 + + * ILL cal idle val refcnt + * PSU_SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD401994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L1_TM_ILL13 @ 0XFD405994 + + * ILL cal idle val refcnt + * PSU_SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD405994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L1_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L2_TM_MISC2 @ 0XFD40989C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40989C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L2_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL1 @ 0XFD4098F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4098F8, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL2 @ 0XFD4098FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4098FC, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL12 @ 0XFD409990 + + * G1A pll ctr bypass value + * PSU_SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x10 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD409990, 0x000000FFU ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL12_OFFSET, 0x000000FFU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL1 @ 0XFD409924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0xFE + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD409924, 0x000000FFU ,0x000000FEU) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL1_OFFSET, 0x000000FFU, 0x000000FEU); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL2 @ 0XFD409928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD409928, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL2_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL3 @ 0XFD409900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD409900, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL3 @ 0XFD40992C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40992C, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL8 @ 0XFD409980 + + * ILL calibration code change wait time + * PSU_SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD409980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL8 @ 0XFD409914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD409914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL9 @ 0XFD409918 + + * bypass IQ polytrim + * PSU_SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD409918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL8 @ 0XFD409940 + + * E ILL polytrim bypass value + * PSU_SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD409940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL9 @ 0XFD409944 + + * bypass E polytrim + * PSU_SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD409944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL13 @ 0XFD409994 + + * ILL cal idle val refcnt + * PSU_SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD409994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L3_TM_MISC2 @ 0XFD40D89C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40D89C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L3_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL1 @ 0XFD40D8F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D8F8, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL2 @ 0XFD40D8FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D8FC, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL12 @ 0XFD40D990 + + * G1A pll ctr bypass value + * PSU_SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x1 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD40D990, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL12_OFFSET, 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL1 @ 0XFD40D924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x9C + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D924, 0x000000FFU ,0x0000009CU) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL1_OFFSET, 0x000000FFU, 0x0000009CU); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL2 @ 0XFD40D928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x39 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D928, 0x000000FFU ,0x00000039U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL2_OFFSET, 0x000000FFU, 0x00000039U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL11 @ 0XFD40D98C + + * G2A_PCIe1 PLL ctr bypass value + * PSU_SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL 0x2 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD40D98C, 0x000000F0U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL11_OFFSET, 0x000000F0U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL3 @ 0XFD40D900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D900, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL3 @ 0XFD40D92C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x64 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D92C, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL8 @ 0XFD40D980 + + * ILL calibration code change wait time + * PSU_SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD40D980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL8 @ 0XFD40D914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD40D914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL9 @ 0XFD40D918 + + * bypass IQ polytrim + * PSU_SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD40D918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL8 @ 0XFD40D940 + + * E ILL polytrim bypass value + * PSU_SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD40D940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL9 @ 0XFD40D944 + + * bypass E polytrim + * PSU_SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD40D944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL13 @ 0XFD40D994 + + * ILL cal idle val refcnt + * PSU_SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD40D994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * SYMBOL LOCK AND WAIT + */ + /* + * Register : L0_TM_DIG_10 @ 0XFD40107C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L1_TM_DIG_10 @ 0XFD40507C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40507C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L1_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_DIG_10 @ 0XFD40907C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40907C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_DIG_10 @ 0XFD40D07C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40D07C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * SIOU SETTINGS FOR BYPASS CONTROL,HSRX-DIG + */ + /* + * Register : L0_TM_RST_DLY @ 0XFD4019A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L0_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4019A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L0_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L0_TM_ANA_BYP_15 @ 0XFD401038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD401038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L0_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L0_TM_ANA_BYP_12 @ 0XFD40102C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40102C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L0_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L1_TM_RST_DLY @ 0XFD4059A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L1_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4059A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L1_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L1_TM_ANA_BYP_15 @ 0XFD405038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD405038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L1_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L1_TM_ANA_BYP_12 @ 0XFD40502C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40502C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L1_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L2_TM_RST_DLY @ 0XFD4099A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L2_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4099A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L2_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L2_TM_ANA_BYP_15 @ 0XFD409038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD409038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L2_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L2_TM_ANA_BYP_12 @ 0XFD40902C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40902C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L2_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L3_TM_RST_DLY @ 0XFD40D9A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L3_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD40D9A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L3_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L3_TM_ANA_BYP_15 @ 0XFD40D038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD40D038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L3_TM_ANA_BYP_12 @ 0XFD40D02C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40D02C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * DISABLE FPL/FFL + */ + /* + * Register : L0_TM_MISC3 @ 0XFD4019AC + + * CDR fast phase lock control + * PSU_SERDES_L0_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L0_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4019AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L0_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L1_TM_MISC3 @ 0XFD4059AC + + * CDR fast phase lock control + * PSU_SERDES_L1_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L1_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4059AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_MISC3 @ 0XFD4099AC + + * CDR fast phase lock control + * PSU_SERDES_L2_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L2_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4099AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L3_TM_MISC3 @ 0XFD40D9AC + + * CDR fast phase lock control + * PSU_SERDES_L3_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L3_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD40D9AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L3_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * DISABLE DYNAMIC OFFSET CALIBRATION + */ + /* + * Register : L0_TM_EQ11 @ 0XFD401978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD401978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L0_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L1_TM_EQ11 @ 0XFD405978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD405978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L1_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_EQ11 @ 0XFD409978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD409978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ11 @ 0XFD40D978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD40D978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * DISABLE ECO FOR PCIE + */ + /* + * Register : eco_0 @ 0XFD3D001C + + * For future use + * PSU_SIOU_ECO_0_FIELD 0x1 + + * ECO Register for future use + * (OFFSET, MASK, VALUE) (0XFD3D001C, 0xFFFFFFFFU ,0x00000001U) + */ + PSU_Mask_Write(SIOU_ECO_0_OFFSET, 0xFFFFFFFFU, 0x00000001U); +/*##################################################################### */ + + /* + * GT LANE SETTINGS + */ + /* + * Register : ICM_CFG0 @ 0XFD410010 + + * Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG0_L0_ICM_CFG 1 + + * Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG0_L1_ICM_CFG 4 + + * ICM Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD410010, 0x00000077U ,0x00000041U) + */ + PSU_Mask_Write(SERDES_ICM_CFG0_OFFSET, 0x00000077U, 0x00000041U); +/*##################################################################### */ + + /* + * Register : ICM_CFG1 @ 0XFD410014 + + * Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG1_L2_ICM_CFG 3 + + * Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, + * 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG1_L3_ICM_CFG 2 + + * ICM Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD410014, 0x00000077U ,0x00000023U) + */ + PSU_Mask_Write(SERDES_ICM_CFG1_OFFSET, 0x00000077U, 0x00000023U); +/*##################################################################### */ + + /* + * CHECKING PLL LOCK + */ + /* + * ENABLE SERIAL DATA MUX DEEMPH + */ + /* + * Register : L1_TXPMD_TM_45 @ 0XFD404CB4 + + * Enable/disable DP post2 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH 0x1 + + * Override enable/disable of DP post2 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH 0x1 + + * Override enable/disable of DP post1 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH 0x1 + + * Enable/disable DP main path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH 0x1 + + * Override enable/disable of DP main path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH 0x1 + + * Post or pre or main DP path selection + * (OFFSET, MASK, VALUE) (0XFD404CB4, 0x00000037U ,0x00000037U) + */ + PSU_Mask_Write(SERDES_L1_TXPMD_TM_45_OFFSET, + 0x00000037U, 0x00000037U); +/*##################################################################### */ + + /* + * Register : L1_TX_ANA_TM_118 @ 0XFD4041D8 + + * Test register force for enabling/disablign TX deemphasis bits <17:0> + * PSU_SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 + + * Enable Override of TX deemphasis + * (OFFSET, MASK, VALUE) (0XFD4041D8, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L1_TX_ANA_TM_118_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TX_ANA_TM_118 @ 0XFD40C1D8 + + * Test register force for enabling/disablign TX deemphasis bits <17:0> + * PSU_SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 + + * Enable Override of TX deemphasis + * (OFFSET, MASK, VALUE) (0XFD40C1D8, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TX_ANA_TM_118_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * CDR AND RX EQUALIZATION SETTINGS + */ + /* + * Register : L3_TM_CDR5 @ 0XFD40DC14 + + * FPHL FSM accumulate cycles + * PSU_SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES 0x7 + + * FFL Phase0 int gain aka 2ol SD update rate + * PSU_SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN 0x6 + + * Fast phase lock controls -- FSM accumulator cycle control and phase 0 in + * t gain control. + * (OFFSET, MASK, VALUE) (0XFD40DC14, 0x000000FFU ,0x000000E6U) + */ + PSU_Mask_Write(SERDES_L3_TM_CDR5_OFFSET, 0x000000FFU, 0x000000E6U); +/*##################################################################### */ + + /* + * Register : L3_TM_CDR16 @ 0XFD40DC40 + + * FFL Phase0 prop gain aka 1ol SD update rate + * PSU_SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN 0xC + + * Fast phase lock controls -- phase 0 prop gain + * (OFFSET, MASK, VALUE) (0XFD40DC40, 0x0000001FU ,0x0000000CU) + */ + PSU_Mask_Write(SERDES_L3_TM_CDR16_OFFSET, 0x0000001FU, 0x0000000CU); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ0 @ 0XFD40D94C + + * EQ stg 2 controls BYPASSED + * PSU_SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP 1 + + * eq stg1 and stg2 controls + * (OFFSET, MASK, VALUE) (0XFD40D94C, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ1 @ 0XFD40D950 + + * EQ STG2 RL PROG + * PSU_SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG 0x2 + + * EQ stg 2 preamp mode val + * PSU_SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL 0x1 + + * eq stg1 and stg2 controls + * (OFFSET, MASK, VALUE) (0XFD40D950, 0x00000007U ,0x00000006U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ1_OFFSET, 0x00000007U, 0x00000006U); +/*##################################################################### */ + + /* + * GEM SERDES SETTINGS + */ + /* + * ENABLE PRE EMPHAIS AND VOLTAGE SWING + */ + /* + * Register : L1_TXPMD_TM_48 @ 0XFD404CC0 + + * Margining factor value + * PSU_SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR 0 + + * Margining factor + * (OFFSET, MASK, VALUE) (0XFD404CC0, 0x0000001FU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TXPMD_TM_48_OFFSET, + 0x0000001FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L1_TX_ANA_TM_18 @ 0XFD404048 + + * pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved + * PSU_SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0 + + * Override for PIPE TX de-emphasis + * (OFFSET, MASK, VALUE) (0XFD404048, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TX_ANA_TM_18_OFFSET, + 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L3_TX_ANA_TM_18 @ 0XFD40C048 + + * pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved + * PSU_SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0x1 + + * Override for PIPE TX de-emphasis + * (OFFSET, MASK, VALUE) (0XFD40C048, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TX_ANA_TM_18_OFFSET, + 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_resetin_init_data() { - // : PUTTING SERDES PERIPHERAL IN RESET - // : PUTTING USB0 IN RESET - /*Register : RST_LPD_TOP @ 0XFF5E023C

      +unsigned long psu_resetout_init_data(void) +{ + /* + * TAKING SERDES PERIPHERAL OUT OF RESET RESET + */ + /* + * PUTTING USB0 IN RESET + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X1 + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X1 + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000400U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000400U, 0x00000000U); +/*##################################################################### */ - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X1 + /* + * HIBERREST + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000540U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X0 - RegVal = ((0x00000001U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0x00000001U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000001U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000540U ,0x00000540U); - /*############################################################################################################################ */ + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X0 - // : PUTTING GEM0 IN RESET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

      + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000140U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000140U, 0x00000000U); +/*##################################################################### */ - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X1 + /* + * PUTTING GEM0 IN RESET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X0 - RegVal = ((0x00000001U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000000U); +/*##################################################################### */ - // : PUTTING SATA IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      + /* + * PUTTING SATA IN RESET + */ + /* + * Register : sata_misc_ctrl @ 0XFD3D0100 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X1 + * Sata PM clock control select + * PSU_SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL 0x3 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000002U) - RegMask = (CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); + * Misc Contorls for SATA.This register may only be modified during bootup + * (while SATA block is disabled) + * (OFFSET, MASK, VALUE) (0XFD3D0100, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SIOU_SATA_MISC_CTRL_OFFSET, 0x00000003U, 0x00000003U); +/*##################################################################### */ - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00000002U ,0x00000002U); - /*############################################################################################################################ */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - // : PUTTING PCIE IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      + * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X0 - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X1 + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X1 + /* + * PUTTING PCIE CFG AND BRIDGE IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X1 + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X0 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000E0000U ,0x000E0000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | 0 ); + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X0 - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000E0000U ,0x000E0000U); - /*############################################################################################################################ */ + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000C0000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000C0000U, 0x00000000U); +/*##################################################################### */ - // : PUTTING DP IN RESET - /*Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

      + /* + * PUTTING DP IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1 - PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0XA + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X0 - Control PHY Power down - (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x0000000AU) - RegMask = (DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK | 0 ); + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00010000U, 0x00000000U); +/*##################################################################### */ - RegVal = ((0x0000000AU << DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_TX_PHY_POWER_DOWN_OFFSET ,0x0000000FU ,0x0000000AU); - /*############################################################################################################################ */ + /* + * Register : DP_PHY_RESET @ 0XFD4A0200 - /*Register : DP_PHY_RESET @ 0XFD4A0200

      + * Set to '1' to hold the GT in reset. Clear to release. + * PSU_DP_DP_PHY_RESET_GT_RESET 0X0 - Set to '1' to hold the GT in reset. Clear to release. - PSU_DP_DP_PHY_RESET_GT_RESET 0X1 + * Reset the transmitter PHY. + * (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(DP_DP_PHY_RESET_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ - Reset the transmitter PHY. - (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000002U) - RegMask = (DP_DP_PHY_RESET_GT_RESET_MASK | 0 ); + /* + * Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238 - RegVal = ((0x00000001U << DP_DP_PHY_RESET_GT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_PHY_RESET_OFFSET ,0x00000002U ,0x00000002U); - /*############################################################################################################################ */ + * Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 + * PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0X0 - /*Register : RST_FPD_TOP @ 0XFD1A0100

      + * Control PHY Power down + * (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x00000000U) + */ + PSU_Mask_Write(DP_DP_TX_PHY_POWER_DOWN_OFFSET, + 0x0000000FU, 0x00000000U); +/*##################################################################### */ - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X1 + /* + * USB0 GFLADJ + */ + /* + * Register : GUSB2PHYCFG @ 0XFE20C200 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00010000U) - RegMask = (CRF_APB_RST_FPD_TOP_DP_RESET_MASK | 0 ); + * USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY cloc + * ks. Specifies the response time for a MAC request to the Packet FIFO Con + * troller (PFC) to fetch data from the DFIFO (SPRAM). The following are th + * e required values for the minimum SoC bus frequency of 60 MHz. USB turna + * round time is a critical certification criteria when using long cables a + * nd five hub levels. The required values for this field: - 4'h5: When the + * MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit + * UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround tim + * e is not critical, this field can be set to a larger value. Note: This f + * ield is valid only in device mode. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM 0x9 - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00010000U ,0x00010000U); - /*############################################################################################################################ */ + * Transceiver Delay: Enables a delay between the assertion of the UTMI/ULP + * I Transceiver Select signal (for HS) and the assertion of the TxValid si + * gnal during a HS Chirp. When this bit is set to 1, a delay (of approxima + * tely 2.5 us) is introduced from the time when the Transceiver Select is + * set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the + * chirp-K. This delay is required for some UTMI/ULPI PHYs. Note: - If you + * enable the hibernation feature when the device core comes out of power- + * off, you must re-initialize this bit with the appropriate value because + * the core does not save and restore this bit value during hibernation. - + * This bit is valid only in device mode. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY 0x0 + + * Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application use + * s this bit to control utmi_sleep_n and utmi_l1_suspend_n assertion to th + * e PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assert + * ion from the core is not transferred to the external PHY. - 1'b1: utmi_s + * leep_n and utmi_l1_suspend_n assertion from the core is transferred to t + * he external PHY. Note: This bit must be set high for Port0 if PHY is use + * d. Note: In Device mode - Before issuing any device endpoint command whe + * n operating in 2.0 speeds, disable this bit and enable it after the comm + * and completes. Without disabling this bit, if a command is issued when t + * he device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated of + * f, the command will not get completed. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM 0x0 + + * USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select T + * he application uses this bit to select a high-speed PHY or a full-speed + * transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is a + * lways 0, with Write Only access. - 1'b1: USB 1.1 full-speed serial trans + * ceiver. This bit is always 1, with Write Only access. If both interface + * types are selected in coreConsultant (that is, parameters' values are no + * t zero), the application uses this bit to select the active interface is + * active, with Read-Write bit access. Note: USB 1.1 full-serial transceiv + * er is not supported. This bit always reads as 1'b0. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYSEL 0x0 + + * Suspend USB2.0 HS/FS/LS PHY (SusPHY) When set, USB2.0 PHY enters Suspend + * mode if Suspend conditions are valid. For DRD/OTG configurations, it is + * recommended that this bit is set to 0 during coreConsultant configurati + * on. If it is set to 1, then the application must clear this bit after po + * wer-on reset. Application needs to set it to 1 after the core initializa + * tion completes. For all other configurations, this bit can be set to 1 d + * uring core configuration. Note: - In host mode, on reset, this bit is se + * t to 1. Software can override this bit after reset. - In device mode, be + * fore issuing any device endpoint command when operating in 2.0 speeds, d + * isable this bit and enable it after the command completes. If you issue + * a command without disabling this bit when the device is in L2 state and + * if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get c + * ompleted. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20 0x1 + + * Full-Speed Serial Interface Select (FSIntf) The application uses this bi + * t to select a unidirectional or bidirectional USB 1.1 full-speed serial + * transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial in + * terface. This bit is set to 0 with Read Only access. - 1'b1: 3-pin bidir + * ectional full-speed serial interface. This bit is set to 0 with Read Onl + * y access. Note: USB 1.1 full-speed serial interface is not supported. Th + * is bit always reads as 1'b0. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_FSINTF 0x0 + + * ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to se + * lect a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interface - 1'b1: ULPI Int + * erface This bit is writable only if UTMI+ and ULPI is specified for High + * -Speed PHY Interface(s) in coreConsultant configuration (DWC_USB3_HSPHY_ + * INTERFACE = 3). Otherwise, this bit is read-only and the value depends o + * n the interface selected through DWC_USB3_HSPHY_INTERFACE. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL 0x1 + + * PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bi + * t to configure the core to support a UTMI+ PHY with an 8- or 16-bit inte + * rface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the en + * abled 2.0 ports must have the same clock frequency as Port0 clock freque + * ncy (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used toge + * ther for different ports at the same time (that is, all the ports must b + * e in 8-bit mode, or all of them must be in 16-bit mode, at a time). - If + * any of the USB 2.0 ports is selected as ULPI port for operation, then a + * ll the USB 2.0 ports must be operating at 60 MHz. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYIF 0x0 + + * HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicat + * ed by the application in this field, is multiplied by a bit-time factor; + * this factor is added to the high-speed/full-speed interpacket timeout d + * uration in the core to account for additional delays introduced by the P + * HY. This may be required, since the delay introduced by the PHY in gener + * ating the linestate condition may vary among PHYs. The USB standard time + * out value for high-speed operation is 736 to 816 (inclusive) bit times. + * The USB standard timeout value for full-speed operation is 16 to 18 (inc + * lusive) bit times. The application must program this field based on the + * speed of connection. The number of bit times added per PHY clock are: Hi + * gh-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz P + * HY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0. + * 4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY cloc + * k = 0.25 bit times + * PSU_USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL 0x7 + + * ULPI External VBUS Drive (ULPIExtVbusDrv) Selects supply source to drive + * 5V on VBUS, in the ULPI PHY. - 1'b0: PHY drives VBUS with internal char + * ge pump (default). - 1'b1: PHY drives VBUS with an external supply. (Onl + * y when RTL parameter DWC_USB3_HSPHY_INTERFACE = 2 or 3) + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV 0x1 + + * Global USB2 PHY Configuration Register The application must program this + * register before starting any transactions on either the SoC bus or the + * USB. In Device-only configurations, only one register is needed. In Host + * mode, per-port registers are implemented. + * (OFFSET, MASK, VALUE) (0XFE20C200, 0x00023FFFU ,0x00022457U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUSB2PHYCFG_OFFSET, + 0x00023FFFU, 0x00022457U); +/*##################################################################### */ + + /* + * Register : GFLADJ @ 0XFE20C630 + + * This field indicates the frame length adjustment to be applied when SOF/ + * ITP counter is running on the ref_clk. This register value is used to ad + * just the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP i + * nterval when GLADJ.GFLADJ_REFCLK_LPM_SEL is set to '1'. This field must + * be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set t + * o '1' or GCTL.SOFITPSYNC is set to '1'. The value is derived as follows: + * FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_pe + * riod)) * ref_clk_period where - the ref_clk_period_integer is the intege + * r value of the ref_clk period got by truncating the decimal (fractional) + * value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_c + * lk_period is the ref_clk period including the fractional value. Examples + * : If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLA + * DJ_REFCLK_FLADJ = ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignorin + * g the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_PE + * RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*2 + * 0.8333 = 5208 (ignoring the fractional value) + * PSU_USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ 0x0 + + * Global Frame Length Adjustment Register This register provides options f + * or the software to control the core behavior with respect to SOF (Start + * of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer + * functionality. It provides an option to override the fladj_30mhz_reg sid + * eband signal. In addition, it enables running SOF or ITP frame timer cou + * nters completely from the ref_clk. This facilitates hardware LPM in host + * mode with the SOF or ITP counters being run from the ref_clk signal. + * (OFFSET, MASK, VALUE) (0XFE20C630, 0x003FFF00U ,0x00000000U) + */ + PSU_Mask_Write(USB3_0_XHCI_GFLADJ_OFFSET, 0x003FFF00U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : GUCTL1 @ 0XFE20C11C + + * When this bit is set to '0', termsel, xcvrsel will become 0 during end o + * f resume while the opmode will become 0 once controller completes end of + * resume and enters U0 state (2 separate commandswill be issued). When th + * is bit is set to '1', all the termsel, xcvrsel, opmode becomes 0 during + * end of resume itself (only 1 command will be issued) + * PSU_USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY 0x1 + + * Reserved + * PSU_USB3_0_XHCI_GUCTL1_RESERVED_9 0x1 + + * Global User Control Register 1 + * (OFFSET, MASK, VALUE) (0XFE20C11C, 0x00000600U ,0x00000600U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUCTL1_OFFSET, 0x00000600U, 0x00000600U); +/*##################################################################### */ + + /* + * Register : GUCTL @ 0XFE20C12C + + * Host IN Auto Retry (USBHstInAutoRetryEn) When set, this field enables th + * e Auto Retry feature. For IN transfers (non-isochronous) that encounter + * data packets with CRC errors or internal overrun scenarios, the auto ret + * ry feature causes the Host core to reply to the device with a non-termin + * ating retry ACK (that is, an ACK transaction packet with Retry = 1 and N + * umP != 0). If the Auto Retry feature is disabled (default), the core wil + * l respond with a terminating retry ACK (that is, an ACK transaction pack + * et with Retry = 1 and NumP = 0). - 1'b0: Auto Retry Disabled - 1'b1: Aut + * o Retry Enabled Note: This bit is also applicable to the device mode. + * PSU_USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN 0x1 + + * Global User Control Register: This register provides a few options for t + * he software to control the core behavior in the Host mode. Most of the o + * ptions are used to improve host inter-operability with different devices + * . + * (OFFSET, MASK, VALUE) (0XFE20C12C, 0x00004000U ,0x00004000U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUCTL_OFFSET, 0x00004000U, 0x00004000U); +/*##################################################################### */ + + /* + * UPDATING TWO PCIE REGISTERS DEFAULT VALUES, AS THESE REGISTERS HAVE INCO + * RRECT RESET VALUES IN SILICON. + */ + /* + * Register : ATTR_25 @ 0XFD480064 + + * If TRUE Completion Timeout Disable is supported. This is required to be + * TRUE for Endpoint and either setting allowed for Root ports. Drives Devi + * ce Capability 2 [4]; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED 0X1 + + * ATTR_25 + * (OFFSET, MASK, VALUE) (0XFD480064, 0x00000200U ,0x00000200U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_25_OFFSET, 0x00000200U, 0x00000200U); +/*##################################################################### */ + + /* + * PCIE SETTINGS + */ + /* + * Register : ATTR_7 @ 0XFD48001C + + * Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0x0004; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_7_ATTR_BAR0 0x0 + + * ATTR_7 + * (OFFSET, MASK, VALUE) (0XFD48001C, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_7_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_8 @ 0XFD480020 + + * Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0xFFF0; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_8_ATTR_BAR0 0x0 + + * ATTR_8 + * (OFFSET, MASK, VALUE) (0XFD480020, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_8_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_9 @ 0XFD480024 + + * Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_9_ATTR_BAR1 0x0 + + * ATTR_9 + * (OFFSET, MASK, VALUE) (0XFD480024, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_9_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_10 @ 0XFD480028 + + * Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_10_ATTR_BAR1 0x0 + + * ATTR_10 + * (OFFSET, MASK, VALUE) (0XFD480028, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_10_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_11 @ 0XFD48002C + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFFF + * PSU_PCIE_ATTRIB_ATTR_11_ATTR_BAR2 0xFFFF + + * ATTR_11 + * (OFFSET, MASK, VALUE) (0XFD48002C, 0x0000FFFFU ,0x0000FFFFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_11_OFFSET, 0x0000FFFFU, 0x0000FFFFU); +/*##################################################################### */ + + /* + * Register : ATTR_12 @ 0XFD480030 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0x00FF + * PSU_PCIE_ATTRIB_ATTR_12_ATTR_BAR2 0xFF + + * ATTR_12 + * (OFFSET, MASK, VALUE) (0XFD480030, 0x0000FFFFU ,0x000000FFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_12_OFFSET, 0x0000FFFFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : ATTR_13 @ 0XFD480034 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_13_ATTR_BAR3 0x0 + + * ATTR_13 + * (OFFSET, MASK, VALUE) (0XFD480034, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_13_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_14 @ 0XFD480038 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0xFFFF + * PSU_PCIE_ATTRIB_ATTR_14_ATTR_BAR3 0xFFFF + + * ATTR_14 + * (OFFSET, MASK, VALUE) (0XFD480038, 0x0000FFFFU ,0x0000FFFFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_14_OFFSET, 0x0000FFFFU, 0x0000FFFFU); +/*##################################################################### */ + + /* + * Register : ATTR_15 @ 0XFD48003C + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFF0 + * PSU_PCIE_ATTRIB_ATTR_15_ATTR_BAR4 0xFFF0 + + * ATTR_15 + * (OFFSET, MASK, VALUE) (0XFD48003C, 0x0000FFFFU ,0x0000FFF0U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_15_OFFSET, 0x0000FFFFU, 0x0000FFF0U); +/*##################################################################### */ + + /* + * Register : ATTR_16 @ 0XFD480040 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0xFFF0 + * PSU_PCIE_ATTRIB_ATTR_16_ATTR_BAR4 0xFFF0 + + * ATTR_16 + * (OFFSET, MASK, VALUE) (0XFD480040, 0x0000FFFFU ,0x0000FFF0U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_16_OFFSET, 0x0000FFFFU, 0x0000FFF0U); +/*##################################################################### */ + + /* + * Register : ATTR_17 @ 0XFD480044 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 + * PSU_PCIE_ATTRIB_ATTR_17_ATTR_BAR5 0xFFF1 + + * ATTR_17 + * (OFFSET, MASK, VALUE) (0XFD480044, 0x0000FFFFU ,0x0000FFF1U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_17_OFFSET, 0x0000FFFFU, 0x0000FFF1U); +/*##################################################################### */ + + /* + * Register : ATTR_18 @ 0XFD480048 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 + * PSU_PCIE_ATTRIB_ATTR_18_ATTR_BAR5 0xFFF1 + + * ATTR_18 + * (OFFSET, MASK, VALUE) (0XFD480048, 0x0000FFFFU ,0x0000FFF1U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_18_OFFSET, 0x0000FFFFU, 0x0000FFF1U); +/*##################################################################### */ + + /* + * Register : ATTR_27 @ 0XFD48006C + + * Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1 + * - 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred to the Device Capa + * bilities register. The values: 4-2048 bytes, 5- 4096 bytes are not suppo + * rted; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED 1 + + * Endpoint L1 Acceptable Latency. Records the latency that the endpoint ca + * n withstand on transitions from L1 state to L0 (if L1 state supported). + * Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to + * 8us, 4h 8 to 16us, 5h 16 to 32us, 6h 32 to 64us, 7h more than 64us. For + * Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY 0x0 + + * ATTR_27 + * (OFFSET, MASK, VALUE) (0XFD48006C, 0x00000738U ,0x00000100U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_27_OFFSET, 0x00000738U, 0x00000100U); +/*##################################################################### */ + + /* + * Register : ATTR_50 @ 0XFD4800C8 + + * Identifies the type of device/port as follows: 0000b PCI Express Endpoin + * t device, 0001b Legacy PCI Express Endpoint device, 0100b Root Port of P + * CI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110 + * b Downstream Port of PCI Express Switch, 0111b PCIE Express to PCI/PCI-X + * Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Expre + * ss Capabilities register. Must be consistent with IS_SWITCH and UPSTREAM + * _FACING settings.; EP=0x0000; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE 4 + + * PCIe Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x009C; + * RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR 0 + + * ATTR_50 + * (OFFSET, MASK, VALUE) (0XFD4800C8, 0x0000FFF0U ,0x00000040U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_50_OFFSET, 0x0000FFF0U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : ATTR_105 @ 0XFD4801A4 + + * Number of credits that should be advertised for Completion data received + * on Virtual Channel 0. The bytes advertised must be less than or equal t + * o the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD + * PSU_PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD 0xCD + + * ATTR_105 + * (OFFSET, MASK, VALUE) (0XFD4801A4, 0x000007FFU ,0x000000CDU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_105_OFFSET, + 0x000007FFU, 0x000000CDU); +/*##################################################################### */ + + /* + * Register : ATTR_106 @ 0XFD4801A8 + + * Number of credits that should be advertised for Completion headers recei + * ved on Virtual Channel 0. The sum of the posted, non posted, and complet + * ion header credits must be <= 80; EP=0x0048; RP=0x0024 + * PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH 0x24 + + * Number of credits that should be advertised for Non-Posted headers recei + * ved on Virtual Channel 0. The number of non posted data credits advertis + * ed by the block is equal to the number of non posted header credits. The + * sum of the posted, non posted, and completion header credits must be <= + * 80; EP=0x0004; RP=0x000C + * PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH 0xC + + * ATTR_106 + * (OFFSET, MASK, VALUE) (0XFD4801A8, 0x00003FFFU ,0x00000624U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_106_OFFSET, + 0x00003FFFU, 0x00000624U); +/*##################################################################### */ + + /* + * Register : ATTR_107 @ 0XFD4801AC + + * Number of credits that should be advertised for Non-Posted data received + * on Virtual Channel 0. The number of non posted data credits advertised + * by the block is equal to two times the number of non posted header credi + * ts if atomic operations are supported or is equal to the number of non p + * osted header credits if atomic operations are not supported. The bytes a + * dvertised must be less than or equal to the bram bytes available. See VC + * 0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 + * PSU_PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD 0x18 + + * ATTR_107 + * (OFFSET, MASK, VALUE) (0XFD4801AC, 0x000007FFU ,0x00000018U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_107_OFFSET, + 0x000007FFU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : ATTR_108 @ 0XFD4801B0 + + * Number of credits that should be advertised for Posted data received on + * Virtual Channel 0. The bytes advertised must be less than or equal to th + * e bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 + * PSU_PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD 0xB5 + + * ATTR_108 + * (OFFSET, MASK, VALUE) (0XFD4801B0, 0x000007FFU ,0x000000B5U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_108_OFFSET, + 0x000007FFU, 0x000000B5U); +/*##################################################################### */ + + /* + * Register : ATTR_109 @ 0XFD4801B4 + + * Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_ + * n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV 0x0 + + * Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim + * TRUE == trim.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM 0x1 + + * Enables ECRC check on received TLP's 0 == don't check 1 == always check + * 3 == check if enabled by ECRC check enable bit of AER cap structure; EP= + * 0x0003; RP=0x0003 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK 0x3 + + * Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). + * Calculated from max payload size supported and the number of brams conf + * igured for transmit; EP=0x001C; RP=0x001C + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET 0x1c + + * Number of credits that should be advertised for Posted headers received + * on Virtual Channel 0. The sum of the posted, non posted, and completion + * header credits must be <= 80; EP=0x0004; RP=0x0020 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH 0x20 + + * ATTR_109 + * (OFFSET, MASK, VALUE) (0XFD4801B4, 0x0000FFFFU ,0x00007E20U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_109_OFFSET, + 0x0000FFFFU, 0x00007E20U); +/*##################################################################### */ + + /* + * Register : ATTR_34 @ 0XFD480088 + + * Specifies values to be transferred to Header Type register. Bit 7 should + * be set to '0' indicating single-function device. Bit 0 identifies heade + * r as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; + * RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE 0x1 + + * ATTR_34 + * (OFFSET, MASK, VALUE) (0XFD480088, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_34_OFFSET, 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : ATTR_53 @ 0XFD4800D4 + + * PM Capability's Next Capability Offset pointer to the next item in the c + * apabilities list, or 00h if this is the final capability.; EP=0x0048; RP + * =0x0060 + * PSU_PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR 0x60 + + * ATTR_53 + * (OFFSET, MASK, VALUE) (0XFD4800D4, 0x000000FFU ,0x00000060U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_53_OFFSET, 0x000000FFU, 0x00000060U); +/*##################################################################### */ + + /* + * Register : ATTR_41 @ 0XFD4800A4 + + * MSI Per-Vector Masking Capable. The value is transferred to the MSI Cont + * rol Register[8]. When set, adds Mask and Pending Dword to Cap structure; + * EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE 0x0 + + * Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 + + * MSI Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x0060; R + * P=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR 0x0 + + * Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 + + * ATTR_41 + * (OFFSET, MASK, VALUE) (0XFD4800A4, 0x000003FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_41_OFFSET, 0x000003FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_97 @ 0XFD480184 + + * Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b + * x4, 001000b x8.; EP=0x0004; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH 0x1 + + * Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1 + * ], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x0004; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH 0x1 + + * ATTR_97 + * (OFFSET, MASK, VALUE) (0XFD480184, 0x00000FFFU ,0x00000041U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_97_OFFSET, 0x00000FFFU, 0x00000041U); +/*##################################################################### */ + + /* + * Register : ATTR_100 @ 0XFD480190 + + * TRUE specifies upstream-facing port. FALSE specifies downstream-facing p + * ort.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING 0x0 + + * ATTR_100 + * (OFFSET, MASK, VALUE) (0XFD480190, 0x00000040U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_100_OFFSET, + 0x00000040U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_101 @ 0XFD480194 + + * Enable the routing of message TLPs to the user through the TRN RX interf + * ace. A bit value of 1 enables routing of the message TLP to the user. Me + * ssages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 + * - ERR NONFATAL, Bit 2 - ERR FATAL, Bit 3 - INTA Bit 4 - INTB, Bit 5 - I + * NTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit + * 10 PME_Turn_Off; EP=0x0000; RP=0x07FF + * PSU_PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE 0x7FF + + * Disable BAR filtering. Does not change the behavior of the bar hit outpu + * ts; EP=0x0000; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING 0x1 + + * ATTR_101 + * (OFFSET, MASK, VALUE) (0XFD480194, 0x0000FFE2U ,0x0000FFE2U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_101_OFFSET, + 0x0000FFE2U, 0x0000FFE2U); +/*##################################################################### */ + + /* + * Register : ATTR_37 @ 0XFD480094 + + * Link Bandwidth notification capability. Indicates support for the link b + * andwidth notification status and interrupt mechanism. Required for Root. + * ; EP=0x0000; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP 0x1 + + * Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Op + * tionality ECN. Transferred to the Link Capabilities register.; EP=0x0001 + * ; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY 0x1 + + * ATTR_37 + * (OFFSET, MASK, VALUE) (0XFD480094, 0x00004200U ,0x00004200U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_37_OFFSET, 0x00004200U, 0x00004200U); +/*##################################################################### */ + + /* + * Register : ATTR_93 @ 0XFD480174 + + * Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value + * (or combined with the built-in value, depending on LL_REPLAY_TIMEOUT_FU + * NC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN 0x1 + + * Sets a user-defined timeout for the Replay Timer to force cause the retr + * ansmission of unacknowledged TLPs; refer to LL_REPLAY_TIMEOUT_EN and LL_ + * REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this att + * ribute is in symbol times, which is 4ns at GEN1 speeds and 2ns at GEN2.; + * EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT 0x1000 + + * ATTR_93 + * (OFFSET, MASK, VALUE) (0XFD480174, 0x0000FFFFU ,0x00009000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_93_OFFSET, 0x0000FFFFU, 0x00009000U); +/*##################################################################### */ + + /* + * Register : ID @ 0XFD480200 + + * Device ID for the the PCIe Cap Structure Device ID field + * PSU_PCIE_ATTRIB_ID_CFG_DEV_ID 0xd021 + + * Vendor ID for the PCIe Cap Structure Vendor ID field + * PSU_PCIE_ATTRIB_ID_CFG_VEND_ID 0x10ee + + * ID + * (OFFSET, MASK, VALUE) (0XFD480200, 0xFFFFFFFFU ,0x10EED021U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ID_OFFSET, 0xFFFFFFFFU, 0x10EED021U); +/*##################################################################### */ + + /* + * Register : SUBSYS_ID @ 0XFD480204 + + * Subsystem ID for the the PCIe Cap Structure Subsystem ID field + * PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID 0x7 + + * Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field + * PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID 0x10ee + + * SUBSYS_ID + * (OFFSET, MASK, VALUE) (0XFD480204, 0xFFFFFFFFU ,0x10EE0007U) + */ + PSU_Mask_Write(PCIE_ATTRIB_SUBSYS_ID_OFFSET, + 0xFFFFFFFFU, 0x10EE0007U); +/*##################################################################### */ + + /* + * Register : REV_ID @ 0XFD480208 + + * Revision ID for the the PCIe Cap Structure + * PSU_PCIE_ATTRIB_REV_ID_CFG_REV_ID 0x0 + + * REV_ID + * (OFFSET, MASK, VALUE) (0XFD480208, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_REV_ID_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_24 @ 0XFD480060 + + * Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x8000; RP=0x8000 + * PSU_PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE 0x400 + + * ATTR_24 + * (OFFSET, MASK, VALUE) (0XFD480060, 0x0000FFFFU ,0x00000400U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_24_OFFSET, 0x0000FFFFU, 0x00000400U); +/*##################################################################### */ + + /* + * Register : ATTR_25 @ 0XFD480064 + + * Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x0005; RP=0x0006 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE 0x6 + + * INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] + * to be hardwired to 0.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED 0 + + * ATTR_25 + * (OFFSET, MASK, VALUE) (0XFD480064, 0x000001FFU ,0x00000006U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_25_OFFSET, 0x000001FFU, 0x00000006U); +/*##################################################################### */ + + /* + * Register : ATTR_4 @ 0XFD480010 + + * Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 + + * Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 + + * ATTR_4 + * (OFFSET, MASK, VALUE) (0XFD480010, 0x00001000U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_4_OFFSET, 0x00001000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_89 @ 0XFD480164 + + * VSEC's Next Capability Offset pointer to the next item in the capabiliti + * es list, or 000h if this is the final capability.; EP=0x0140; RP=0x0140 + * PSU_PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR 0 + + * ATTR_89 + * (OFFSET, MASK, VALUE) (0XFD480164, 0x00001FFEU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_89_OFFSET, 0x00001FFEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_79 @ 0XFD48013C + + * CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the + * Root Capabilities register.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY 1 + + * ATTR_79 + * (OFFSET, MASK, VALUE) (0XFD48013C, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_79_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : ATTR_43 @ 0XFD4800AC + + * Indicates that the MSIX structures exists. If this is FALSE, then the MS + * IX structure cannot be accessed via either the link or the management po + * rt.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON 0 + + * ATTR_43 + * (OFFSET, MASK, VALUE) (0XFD4800AC, 0x00000100U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_43_OFFSET, 0x00000100U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_48 @ 0XFD4800C0 + + * MSI-X Table Size. This value is transferred to the MSI-X Message Control + * [10:0] field. Set to 0 if MSI-X is not enabled. Note that the core does + * not implement the table; that must be implemented in user logic.; EP=0x0 + * 003; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE 0 + + * ATTR_48 + * (OFFSET, MASK, VALUE) (0XFD4800C0, 0x000007FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_48_OFFSET, 0x000007FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_46 @ 0XFD4800B8 + + * MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET 0 + + * ATTR_46 + * (OFFSET, MASK, VALUE) (0XFD4800B8, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_46_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_47 @ 0XFD4800BC + + * MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET 0 + + * ATTR_47 + * (OFFSET, MASK, VALUE) (0XFD4800BC, 0x00001FFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_47_OFFSET, 0x00001FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_44 @ 0XFD4800B0 + + * MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET 0 + + * ATTR_44 + * (OFFSET, MASK, VALUE) (0XFD4800B0, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_44_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_45 @ 0XFD4800B4 + + * MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x1000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET 0 + + * ATTR_45 + * (OFFSET, MASK, VALUE) (0XFD4800B4, 0x0000FFF8U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_45_OFFSET, 0x0000FFF8U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CB @ 0XFD48031C + + * DT837748 Enable + * PSU_PCIE_ATTRIB_CB_CB1 0x0 + + * ECO Register 1 + * (OFFSET, MASK, VALUE) (0XFD48031C, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_CB_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_35 @ 0XFD48008C + + * Active State PM Support. Indicates the level of active state power manag + * ement supported by the selected PCI Express Link, encoded as follows: 0 + * Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supporte + * d.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT 0x0 + + * ATTR_35 + * (OFFSET, MASK, VALUE) (0XFD48008C, 0x00003000U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_35_OFFSET, 0x00003000U, 0x00000000U); +/*##################################################################### */ + + /* + * PUTTING PCIE CONTROL IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00020000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00020000U, 0x00000000U); +/*##################################################################### */ + + /* + * PCIE GPIO RESET + */ + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0020U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * CHECK PLL LOCK FOR LANE0 + */ + /* + * Register : L0_PLL_STATUS_READ_1 @ 0XFD4023E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD4023E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L0_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE1 + */ + /* + * Register : L1_PLL_STATUS_READ_1 @ 0XFD4063E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD4063E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L1_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE2 + */ + /* + * Register : L2_PLL_STATUS_READ_1 @ 0XFD40A3E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD40A3E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L2_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE3 + */ + /* + * Register : L3_PLL_STATUS_READ_1 @ 0XFD40E3E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD40E3E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L3_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * SATA AHCI VENDOR SETTING + */ + /* + * Register : PP2C @ 0XFD0C00AC + + * CIBGMN: COMINIT Burst Gap Minimum. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGMN 0x18 + + * CIBGMX: COMINIT Burst Gap Maximum. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGMX 0x40 + + * CIBGN: COMINIT Burst Gap Nominal. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGN 0x18 + + * CINMP: COMINIT Negate Minimum Period. + * PSU_SATA_AHCI_VENDOR_PP2C_CINMP 0x28 + + * PP2C - Port Phy2Cfg Register. This register controls the configuration o + * f the Phy Control OOB timing for the COMINIT parameters for either Port + * 0 or Port 1. The Port configured is controlled by the value programmed i + * nto the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00AC, 0xFFFFFFFFU ,0x28184018U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP2C_OFFSET, + 0xFFFFFFFFU, 0x28184018U); +/*##################################################################### */ + + /* + * Register : PP3C @ 0XFD0C00B0 + + * CWBGMN: COMWAKE Burst Gap Minimum. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGMN 0x06 + + * CWBGMX: COMWAKE Burst Gap Maximum. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGMX 0x14 + + * CWBGN: COMWAKE Burst Gap Nominal. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGN 0x08 + + * CWNMP: COMWAKE Negate Minimum Period. + * PSU_SATA_AHCI_VENDOR_PP3C_CWNMP 0x0E + + * PP3C - Port Phy3CfgRegister. This register controls the configuration of + * the Phy Control OOB timing for the COMWAKE parameters for either Port 0 + * or Port 1. The Port configured is controlled by the value programmed in + * to the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B0, 0xFFFFFFFFU ,0x0E081406U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP3C_OFFSET, + 0xFFFFFFFFU, 0x0E081406U); +/*##################################################################### */ + + /* + * Register : PP4C @ 0XFD0C00B4 + + * BMX: COM Burst Maximum. + * PSU_SATA_AHCI_VENDOR_PP4C_BMX 0x13 + + * BNM: COM Burst Nominal. + * PSU_SATA_AHCI_VENDOR_PP4C_BNM 0x08 + + * SFD: Signal Failure Detection, if the signal detection de-asserts for a + * time greater than this then the OOB detector will determine this is a li + * ne idle and cause the PhyInit state machine to exit the Phy Ready State. + * A value of zero disables the Signal Failure Detector. The value is base + * d on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving + * a nominal time of 500ns based on a 150MHz PMCLK. + * PSU_SATA_AHCI_VENDOR_PP4C_SFD 0x4A + + * PTST: Partial to Slumber timer value, specific delay the controller shou + * ld apply while in partial before entering slumber. The value is bases on + * the system clock divided by 128, total delay = (Sys Clock Period) * PTS + * T * 128 + * PSU_SATA_AHCI_VENDOR_PP4C_PTST 0x06 + + * PP4C - Port Phy4Cfg Register. This register controls the configuration o + * f the Phy Control Burst timing for the COM parameters for either Port 0 + * or Port 1. The Port configured is controlled by the value programmed int + * o the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B4, 0xFFFFFFFFU ,0x064A0813U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP4C_OFFSET, + 0xFFFFFFFFU, 0x064A0813U); +/*##################################################################### */ + + /* + * Register : PP5C @ 0XFD0C00B8 + + * RIT: Retry Interval Timer. The calculated value divided by two, the lowe + * r digit of precision is not needed. + * PSU_SATA_AHCI_VENDOR_PP5C_RIT 0xC96A4 + + * RCT: Rate Change Timer, a value based on the 54.2us for which a SATA dev + * ice will transmit at a fixed rate ALIGNp after OOB has completed, for a + * fast SERDES it is suggested that this value be 54.2us / 4 + * PSU_SATA_AHCI_VENDOR_PP5C_RCT 0x3FF + + * PP5C - Port Phy5Cfg Register. This register controls the configuration o + * f the Phy Control Retry Interval timing for either Port 0 or Port 1. The + * Port configured is controlled by the value programmed into the Port Con + * fig Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B8, 0xFFFFFFFFU ,0x3FFC96A4U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP5C_OFFSET, + 0xFFFFFFFFU, 0x3FFC96A4U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ps_pl_isolation_removal_data() { - // : PS-PL POWER UP REQUEST - /*Register : REQ_PWRUP_INT_EN @ 0XFFD80118

      +unsigned long psu_resetin_init_data(void) +{ + /* + * PUTTING SERDES PERIPHERAL IN RESET + */ + /* + * PUTTING USB0 IN RESET + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - Power-up Request Interrupt Enable for PL - PSU_PMU_GLOBAL_REQ_PWRUP_INT_EN_PL 1 + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X1 - Power-up Request Interrupt Enable Register. Writing a 1 to this location will unmask the interrupt. - (OFFSET, MASK, VALUE) (0XFFD80118, 0x00800000U ,0x00800000U) - RegMask = (PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK | 0 ); + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X1 - RegVal = ((0x00000001U << PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET ,0x00800000U ,0x00800000U); - /*############################################################################################################################ */ + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X1 - /*Register : REQ_PWRUP_TRIG @ 0XFFD80120

      + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000540U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000540U, 0x00000540U); +/*##################################################################### */ - Power-up Request Trigger for PL - PSU_PMU_GLOBAL_REQ_PWRUP_TRIG_PL 1 + /* + * PUTTING GEM0 IN RESET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 - Power-up Request Trigger Register. A write of one to this location will generate a power-up request to the PMU. - (OFFSET, MASK, VALUE) (0XFFD80120, 0x00800000U ,0x00800000U) - RegMask = (PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK | 0 ); + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X1 - RegVal = ((0x00000001U << PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET ,0x00800000U ,0x00800000U); - /*############################################################################################################################ */ + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000008U); +/*##################################################################### */ - // : POLL ON PL POWER STATUS - /*Register : REQ_PWRUP_STATUS @ 0XFFD80110

      + /* + * PUTTING SATA IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - Power-up Request Status for PL - PSU_PMU_GLOBAL_REQ_PWRUP_STATUS_PL 1 - (OFFSET, MASK, VALUE) (0XFFD80110, 0x00800000U ,0x00000000U) */ - mask_pollOnValue(PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET,0x00800000U,0x00000000U); + * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X1 - /*############################################################################################################################ */ + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000002U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00000002U, 0x00000002U); +/*##################################################################### */ + + /* + * PUTTING PCIE IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X1 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X1 + + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X1 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000E0000U ,0x000E0000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000E0000U, 0x000E0000U); +/*##################################################################### */ + + /* + * PUTTING DP IN RESET + */ + /* + * Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238 + + * Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 + * PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0XA + + * Control PHY Power down + * (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x0000000AU) + */ + PSU_Mask_Write(DP_DP_TX_PHY_POWER_DOWN_OFFSET, + 0x0000000FU, 0x0000000AU); +/*##################################################################### */ + + /* + * Register : DP_PHY_RESET @ 0XFD4A0200 + + * Set to '1' to hold the GT in reset. Clear to release. + * PSU_DP_DP_PHY_RESET_GT_RESET 0X1 + + * Reset the transmitter PHY. + * (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000002U) + */ + PSU_Mask_Write(DP_DP_PHY_RESET_OFFSET, 0x00000002U, 0x00000002U); +/*##################################################################### */ + + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X1 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00010000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00010000U, 0x00010000U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ps_pl_reset_config_data() { - // : PS PL RESET SEQUENCE - // : FABRIC RESET USING EMIO - /*Register : MASK_DATA_5_MSW @ 0XFF0A002C

      +unsigned long psu_ps_pl_isolation_removal_data(void) +{ + /* + * PS-PL POWER UP REQUEST + */ + /* + * Register : REQ_PWRUP_INT_EN @ 0XFFD80118 - Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] - PSU_GPIO_MASK_DATA_5_MSW_MASK_5_MSW 0x8000 + * Power-up Request Interrupt Enable for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_INT_EN_PL 1 - Maskable Output Data (GPIO Bank5, EMIO, Upper 16bits) - (OFFSET, MASK, VALUE) (0XFF0A002C, 0xFFFF0000U ,0x80000000U) - RegMask = (GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK | 0 ); + * Power-up Request Interrupt Enable Register. Writing a 1 to this location + * will unmask the interrupt. + * (OFFSET, MASK, VALUE) (0XFFD80118, 0x00800000U ,0x00800000U) + */ + PSU_Mask_Write(PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET, + 0x00800000U, 0x00800000U); +/*##################################################################### */ - RegVal = ((0x00008000U << GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_MASK_DATA_5_MSW_OFFSET ,0xFFFF0000U ,0x80000000U); - /*############################################################################################################################ */ + /* + * Register : REQ_PWRUP_TRIG @ 0XFFD80120 - /*Register : DIRM_5 @ 0XFF0A0344

      + * Power-up Request Trigger for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_TRIG_PL 1 - Operation is the same as DIRM_0[DIRECTION_0] - PSU_GPIO_DIRM_5_DIRECTION_5 0x80000000 + * Power-up Request Trigger Register. A write of one to this location will + * generate a power-up request to the PMU. + * (OFFSET, MASK, VALUE) (0XFFD80120, 0x00800000U ,0x00800000U) + */ + PSU_Mask_Write(PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET, + 0x00800000U, 0x00800000U); +/*##################################################################### */ - Direction mode (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0344, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DIRM_5_DIRECTION_5_MASK | 0 ); + /* + * POLL ON PL POWER STATUS + */ + /* + * Register : REQ_PWRUP_STATUS @ 0XFFD80110 - RegVal = ((0x80000000U << GPIO_DIRM_5_DIRECTION_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DIRM_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * Power-up Request Status for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_STATUS_PL 1 + * (OFFSET, MASK, VALUE) (0XFFD80110, 0x00800000U ,0x00000000U) + */ + mask_pollOnValue(PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET, + 0x00800000U, 0x00000000U); - /*Register : OEN_5 @ 0XFF0A0348

      +/*##################################################################### */ - Operation is the same as OEN_0[OP_ENABLE_0] - PSU_GPIO_OEN_5_OP_ENABLE_5 0x80000000 - Output enable (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0348, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_OEN_5_OP_ENABLE_5_MASK | 0 ); + return 1; +} +unsigned long psu_afi_config(void) +{ + /* + * AFI RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - RegVal = ((0x80000000U << GPIO_OEN_5_OP_ENABLE_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_OEN_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * AF_FM0 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM0_RESET 0 - /*Register : DATA_5 @ 0XFF0A0054

      + * AF_FM1 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM1_RESET 0 - Output Data - PSU_GPIO_DATA_5_DATA_5 0x80000000 + * AF_FM2 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM2_RESET 0 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); + * AF_FM3 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM3_RESET 0 - RegVal = ((0x80000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * AF_FM4 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM4_RESET 0 + + * AF_FM5 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM5_RESET 0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00001F80U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00001F80U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * AFI FM 6 + * PSU_CRL_APB_RST_LPD_TOP_AFI_FM6_RESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00080000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00080000U, 0x00000000U); +/*##################################################################### */ + + /* + * AFIFM INTERFACE WIDTH + */ + /* + * Register : afi_fs @ 0XFD615000 + + * Select the 32/64/128-bit data width selection for the Slave 0 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved + * PSU_FPD_SLCR_AFI_FS_DW_SS0_SEL 0x2 + + * Select the 32/64/128-bit data width selection for the Slave 1 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved + * PSU_FPD_SLCR_AFI_FS_DW_SS1_SEL 0x2 + + * afi fs SLCR control register. This register is static and should not be + * modified during operation. + * (OFFSET, MASK, VALUE) (0XFD615000, 0x00000F00U ,0x00000A00U) + */ + PSU_Mask_Write(FPD_SLCR_AFI_FS_OFFSET, 0x00000F00U, 0x00000A00U); +/*##################################################################### */ + + + return 1; +} +unsigned long psu_ps_pl_reset_config_data(void) +{ + /* + * PS PL RESET SEQUENCE + */ + /* + * FABRIC RESET USING EMIO + */ + /* + * Register : MASK_DATA_5_MSW @ 0XFF0A002C + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_5_MSW_MASK_5_MSW 0x8000 + + * Maskable Output Data (GPIO Bank5, EMIO, Upper 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A002C, 0xFFFF0000U ,0x80000000U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_5_MSW_OFFSET, + 0xFFFF0000U, 0x80000000U); +/*##################################################################### */ + + /* + * Register : DIRM_5 @ 0XFF0A0344 + + * Operation is the same as DIRM_0[DIRECTION_0] + * PSU_GPIO_DIRM_5_DIRECTION_5 0x80000000 + + * Direction mode (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0344, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DIRM_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ + + /* + * Register : OEN_5 @ 0XFF0A0348 + + * Operation is the same as OEN_0[OP_ENABLE_0] + * PSU_GPIO_OEN_5_OP_ENABLE_5 0x80000000 + + * Output enable (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0348, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_OEN_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ + + /* + * Register : DATA_5 @ 0XFF0A0054 + + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0x80000000 + + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ mask_delay(1); - /*############################################################################################################################ */ +/*##################################################################### */ - // : FABRIC RESET USING DATA_5 TOGGLE - /*Register : DATA_5 @ 0XFF0A0054

      + /* + * FABRIC RESET USING DATA_5 TOGGLE + */ + /* + * Register : DATA_5 @ 0XFF0A0054 - Output Data - PSU_GPIO_DATA_5_DATA_5 0X00000000 + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0X00000000 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x00000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); - - RegVal = ((0x00000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ mask_delay(1); - /*############################################################################################################################ */ +/*##################################################################### */ - // : FABRIC RESET USING DATA_5 TOGGLE - /*Register : DATA_5 @ 0XFF0A0054

      + /* + * FABRIC RESET USING DATA_5 TOGGLE + */ + /* + * Register : DATA_5 @ 0XFF0A0054 - Output Data - PSU_GPIO_DATA_5_DATA_5 0x80000000 + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0x80000000 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); - - RegVal = ((0x80000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ddr_phybringup_data() { +unsigned long psu_ddr_phybringup_data(void) +{ + + + unsigned int regval = 0; + + unsigned int pll_retry = 10; + + unsigned int pll_locked = 0; + + + while ((pll_retry > 0) && (!pll_locked)) { + + Xil_Out32(0xFD080004, 0x00040010);/*PIR*/ + Xil_Out32(0xFD080004, 0x00040011);/*PIR*/ + + while ((Xil_In32(0xFD080030) & 0x1) != 1) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + + pll_locked = (Xil_In32(0xFD080030) & 0x80000000) + >> 31;/*PGSR0*/ + pll_locked &= (Xil_In32(0xFD0807E0) & 0x10000) + >> 16;/*DX0GSR0*/ + pll_locked &= (Xil_In32(0xFD0809E0) & 0x10000) + >> 16;/*DX2GSR0*/ + pll_locked &= (Xil_In32(0xFD080BE0) & 0x10000) + >> 16;/*DX4GSR0*/ + pll_locked &= (Xil_In32(0xFD080DE0) & 0x10000) + >> 16;/*DX6GSR0*/ + pll_retry--; + } + Xil_Out32(0xFD0800C0, Xil_In32(0xFD0800C0) | + (pll_retry << 16));/*GPR0*/ + Xil_Out32(0xFD080004U, 0x00040063U); + /* PHY BRINGUP SEQ */ + while ((Xil_In32(0xFD080030U) & 0x0000000FU) != 0x0000000FU) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + prog_reg(0xFD080004U, 0x00000001U, 0x00000000U, 0x00000001U); + /* poll for PHY initialization to complete */ + while ((Xil_In32(0xFD080030U) & 0x000000FFU) != 0x0000001FU) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } - unsigned int regval = 0; - int dpll_divisor; - dpll_divisor = (Xil_In32(0xFD1A0080U) & 0x00003F00U) >> 0x00000008U; - prog_reg (0xFD1A0080U, 0x00003F00U, 0x00000008U, 0x00000005U); - prog_reg (0xFD080028U, 0x00000001U, 0x00000000U, 0x00000001U); - Xil_Out32(0xFD080004U, 0x00040003U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - prog_reg (0xFD080684U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806A4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806C4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806E4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD1A0080, 0x3F00, 0x8, dpll_divisor); - Xil_Out32(0xFD080004U, 0x40040071U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - Xil_Out32(0xFD080004U, 0x40040001U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - // PHY BRINGUP SEQ - while ((Xil_In32(0xFD080030U) & 0x0000000FU) != 0x0000000FU); - prog_reg (0xFD080004U, 0x00000001U, 0x00000000U, 0x00000001U); - //poll for PHY initialization to complete - while ((Xil_In32(0xFD080030U) & 0x000000FFU) != 0x0000001FU); - Xil_Out32(0xFD0701B0U, 0x00000001U); Xil_Out32(0xFD070320U, 0x00000001U); - while ((Xil_In32(0xFD070004U) & 0x0000000FU) != 0x00000001U); - prog_reg (0xFD080014U, 0x00000040U, 0x00000006U, 0x00000001U); - Xil_Out32(0xFD080004, 0x0004FE01); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while(regval != 0x80000FFF){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } + while ((Xil_In32(0xFD070004U) & 0x0000000FU) != 0x00000001U) { + /*****TODO*****/ - - // Run Vref training in static read mode + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + prog_reg(0xFD080014U, 0x00000040U, 0x00000006U, 0x00000001U); + Xil_Out32(0xFD080004, 0x0004FE01); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while (regval != 0x80000FFF) + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + +/* Run Vref training in static read mode*/ Xil_Out32(0xFD080200U, 0x100091C7U); - Xil_Out32(0xFD080018U, 0x00F01EF2U); - Xil_Out32(0xFD08001CU, 0x55AA5498U); - Xil_Out32(0xFD08142CU, 0x00041830U); - Xil_Out32(0xFD08146CU, 0x00041830U); - Xil_Out32(0xFD0814ACU, 0x00041830U); - Xil_Out32(0xFD0814ECU, 0x00041830U); - Xil_Out32(0xFD08152CU, 0x00041830U); - + Xil_Out32(0xFD080018U, 0x00F01EEFU); + prog_reg(0xFD08001CU, 0x00000018U, 0x00000003U, 0x00000003U); + prog_reg(0xFD08142CU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD08146CU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD0814ACU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD0814ECU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD08152CU, 0x00000030U, 0x00000004U, 0x00000003U); - Xil_Out32(0xFD080004, 0x00060001); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while((regval & 0x80004001) != 0x80004001){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } - // Vref training is complete, disabling static read mode + Xil_Out32(0xFD080004, 0x00060001); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while ((regval & 0x80004001) != 0x80004001) { + /*PUB_PGSR0*/ + regval = Xil_In32(0xFD080030); + } + + prog_reg(0xFD08001CU, 0x00000018U, 0x00000003U, 0x00000000U); + prog_reg(0xFD08142CU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD08146CU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD0814ACU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD0814ECU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD08152CU, 0x00000030U, 0x00000004U, 0x00000000U); +/*Vref training is complete, disabling static read mode*/ Xil_Out32(0xFD080200U, 0x800091C7U); - Xil_Out32(0xFD080018U, 0x00F12302U); - Xil_Out32(0xFD08001CU, 0x55AA5480U); - Xil_Out32(0xFD08142CU, 0x00041800U); - Xil_Out32(0xFD08146CU, 0x00041800U); - Xil_Out32(0xFD0814ACU, 0x00041800U); - Xil_Out32(0xFD0814ECU, 0x00041800U); - Xil_Out32(0xFD08152CU, 0x00041800U); - + Xil_Out32(0xFD080018U, 0x00F122E7U); - Xil_Out32(0xFD080004, 0x0000C001); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while((regval & 0x80000C01) != 0x80000C01){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } + + Xil_Out32(0xFD080004, 0x0000C001); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while ((regval & 0x80000C01) != 0x80000C01) { + /*PUB_PGSR0*/ + regval = Xil_In32(0xFD080030); + } Xil_Out32(0xFD070180U, 0x01000040U); Xil_Out32(0xFD070060U, 0x00000000U); - prog_reg (0xFD080014U, 0x00000040U, 0x00000006U, 0x00000000U); + prog_reg(0xFD080014U, 0x00000040U, 0x00000006U, 0x00000000U); -return 1; +return 1; } /** * CRL_APB Base Address */ #define CRL_APB_BASEADDR 0XFF5E0000U -#define CRL_APB_RST_LPD_IOU0 ( ( CRL_APB_BASEADDR ) + 0X00000230U ) -#define CRL_APB_RST_LPD_IOU1 ( ( CRL_APB_BASEADDR ) + 0X00000234U ) -#define CRL_APB_RST_LPD_IOU2 ( ( CRL_APB_BASEADDR ) + 0X00000238U ) -#define CRL_APB_RST_LPD_TOP ( ( CRL_APB_BASEADDR ) + 0X0000023CU ) -#define CRL_APB_IOU_SWITCH_CTRL ( ( CRL_APB_BASEADDR ) + 0X0000009CU ) +#define CRL_APB_RST_LPD_IOU0 ((CRL_APB_BASEADDR) + 0X00000230U) +#define CRL_APB_RST_LPD_IOU1 ((CRL_APB_BASEADDR) + 0X00000234U) +#define CRL_APB_RST_LPD_IOU2 ((CRL_APB_BASEADDR) + 0X00000238U) +#define CRL_APB_RST_LPD_TOP ((CRL_APB_BASEADDR) + 0X0000023CU) +#define CRL_APB_IOU_SWITCH_CTRL ((CRL_APB_BASEADDR) + 0X0000009CU) /** * CRF_APB Base Address */ #define CRF_APB_BASEADDR 0XFD1A0000U -#define CRF_APB_RST_FPD_TOP ( ( CRF_APB_BASEADDR ) + 0X00000100U ) -#define CRF_APB_GPU_REF_CTRL ( ( CRF_APB_BASEADDR ) + 0X00000084U ) -#define CRF_APB_RST_DDR_SS ( ( CRF_APB_BASEADDR ) + 0X00000108U ) +#define CRF_APB_RST_FPD_TOP ((CRF_APB_BASEADDR) + 0X00000100U) +#define CRF_APB_GPU_REF_CTRL ((CRF_APB_BASEADDR) + 0X00000084U) +#define CRF_APB_RST_DDR_SS ((CRF_APB_BASEADDR) + 0X00000108U) #define PSU_MASK_POLL_TIME 1100000 +/** + * * Register: CRF_APB_DPLL_CTRL + */ +#define CRF_APB_DPLL_CTRL ((CRF_APB_BASEADDR) + 0X0000002C) -int mask_pollOnValue(u32 add , u32 mask, u32 value ) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; + +#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_DPLL_CTRL_DIV2_WIDTH 1 + +#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_DPLL_CTRL_FBDIV_WIDTH 7 + +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_WIDTH 1 + +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_WIDTH 1 + +/** + * * Register: CRF_APB_DPLL_CFG + */ +#define CRF_APB_DPLL_CFG ((CRF_APB_BASEADDR) + 0X00000030) + +#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_DPLL_CFG_LOCK_DLY_WIDTH 7 + +#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_DPLL_CFG_LOCK_CNT_WIDTH 10 + +#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_DPLL_CFG_LFHF_WIDTH 2 + +#define CRF_APB_DPLL_CFG_CP_SHIFT 5 +#define CRF_APB_DPLL_CFG_CP_WIDTH 4 + +#define CRF_APB_DPLL_CFG_RES_SHIFT 0 +#define CRF_APB_DPLL_CFG_RES_WIDTH 4 + +/** + * Register: CRF_APB_PLL_STATUS + */ +#define CRF_APB_PLL_STATUS ((CRF_APB_BASEADDR) + 0X00000044) + + +static int mask_pollOnValue(u32 add, u32 mask, u32 value) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; int i = 0; - while ((*addr & mask)!= value) { - if (i == PSU_MASK_POLL_TIME) { + + while ((*addr & mask) != value) { + if (i == PSU_MASK_POLL_TIME) return 0; - } i++; } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); + return 1; } -int mask_poll(u32 add , u32 mask) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; +static int mask_poll(u32 add, u32 mask) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; int i = 0; + while (!(*addr & mask)) { - if (i == PSU_MASK_POLL_TIME) { + if (i == PSU_MASK_POLL_TIME) return 0; - } i++; } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); + return 1; } -void mask_delay(u32 delay) { - usleep (delay); +static void mask_delay(u32 delay) +{ + usleep(delay); } -u32 mask_read(u32 add , u32 mask ) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; - u32 val = (*addr & mask); - //xil_printf("MaskRead : 0x%x --> 0x%x \n \r" , add, val); - return val; +static u32 mask_read(u32 add, u32 mask) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; + u32 val = (*addr & mask); + return val; } +static void dpll_prog(int ddr_pll_fbdiv, int d_lock_dly, int d_lock_cnt, + int d_lfhf, int d_cp, int d_res) { -//Following SERDES programming sequences that a user need to follow to work around the known limitation with SERDES. -//These sequences should done before STEP 1 and STEP 2 as described in previous section. These programming steps are -//required for current silicon version and are likely to undergo further changes with subsequent silicon versions. + unsigned int pll_ctrl_regval; + unsigned int pll_status_regval; + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_DIV2_MASK); + pll_ctrl_regval = pll_ctrl_regval | (1 << CRF_APB_DPLL_CTRL_DIV2_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LOCK_DLY_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lock_dly << CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LOCK_CNT_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lock_cnt << CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LFHF_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lfhf << CRF_APB_DPLL_CFG_LFHF_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_CP_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_cp << CRF_APB_DPLL_CFG_CP_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_RES_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_res << CRF_APB_DPLL_CFG_RES_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_FBDIV_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (ddr_pll_fbdiv << CRF_APB_DPLL_CTRL_FBDIV_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Setting PLL BYPASS*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_BYPASS_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (1 << CRF_APB_DPLL_CTRL_BYPASS_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Setting PLL RESET*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_RESET_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (1 << CRF_APB_DPLL_CTRL_RESET_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Clearing PLL RESET*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_RESET_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (0 << CRF_APB_DPLL_CTRL_RESET_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Checking PLL lock*/ + pll_status_regval = 0x00000000; + while ((pll_status_regval & CRF_APB_PLL_STATUS_DPLL_LOCK_MASK) != + CRF_APB_PLL_STATUS_DPLL_LOCK_MASK) + pll_status_regval = Xil_In32(CRF_APB_PLL_STATUS); -int serdes_fixcal_code() { + + /*Clearing PLL BYPASS*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_BYPASS_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (0 << CRF_APB_DPLL_CTRL_BYPASS_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + +} + +/*Following SERDES programming sequences that a user need to follow to work + * around the known limitation with SERDES. These sequences should done + * before STEP 1 and STEP 2 as described in previous section. These + * programming steps are *required for current silicon version and are + * likely to undergo further changes with subsequent silicon versions. + */ + + +static int serdes_enb_coarse_saturation(void) +{ + /*Enable PLL Coarse Code saturation Logic*/ + Xil_Out32(0xFD402094, 0x00000010); + Xil_Out32(0xFD406094, 0x00000010); + Xil_Out32(0xFD40A094, 0x00000010); + Xil_Out32(0xFD40E094, 0x00000010); + return 1; +} + +int serdes_fixcal_code(void) +{ int MaskStatus = 1; - // L3_TM_CALIB_DIG19 - Xil_Out32(0xFD40EC4C,0x00000020); - //ICM_CFG0 - Xil_Out32(0xFD410010,0x00000001); + unsigned int rdata = 0; + + /*The valid codes are from 0x26 to 0x3C. + *There are 23 valid codes in total. + */ + /*Each element of array stands for count of occurence of valid code.*/ + unsigned int match_pmos_code[23]; + /*Each element of array stands for count of occurence of valid code.*/ + /*The valid codes are from 0xC to 0x12. + *There are 7 valid codes in total. + */ + unsigned int match_nmos_code[23]; + /*Each element of array stands for count of occurence of valid code.*/ + /*The valid codes are from 0x6 to 0xC. + * There are 7 valid codes in total. + */ + unsigned int match_ical_code[7]; + /*Each element of array stands for count of occurence of valid code.*/ + unsigned int match_rcal_code[7]; - //is calibration done, polling on L3_CALIB_DONE_STATUS - MaskStatus = mask_poll(0xFD40EF14, 0x2); - - if (MaskStatus == 0) - { - xil_printf("SERDES initialization timed out\n\r"); - } - - unsigned int tmp_0_1; - tmp_0_1 = mask_read(0xFD400B0C, 0x3F); - - unsigned int tmp_0_2 = tmp_0_1 & (0x7); - unsigned int tmp_0_3 = tmp_0_1 & (0x38); - //Configure ICM for de-asserting CMN_Resetn - Xil_Out32(0xFD410010,0x00000000); - Xil_Out32(0xFD410014,0x00000000); - - unsigned int tmp_0_2_mod = (tmp_0_2 <<1) | (0x1); - tmp_0_2_mod = (tmp_0_2_mod <<4); - - tmp_0_3 = tmp_0_3 >>3; - Xil_Out32(0xFD40EC4C,tmp_0_3); + unsigned int p_code = 0; + unsigned int n_code = 0; + unsigned int i_code = 0; + unsigned int r_code = 0; + unsigned int repeat_count = 0; + unsigned int L3_TM_CALIB_DIG20 = 0; + unsigned int L3_TM_CALIB_DIG19 = 0; + unsigned int L3_TM_CALIB_DIG18 = 0; + unsigned int L3_TM_CALIB_DIG16 = 0; + unsigned int L3_TM_CALIB_DIG15 = 0; + unsigned int L3_TM_CALIB_DIG14 = 0; - //L3_TM_CALIB_DIG18 - Xil_Out32(0xFD40EC48,tmp_0_2_mod); - return MaskStatus; + int i = 0; + rdata = Xil_In32(0XFD40289C); + rdata = rdata & ~0x03; + rdata = rdata | 0x1; + Xil_Out32(0XFD40289C, rdata); + // check supply good status before starting AFE sequencing + int count = 0; + do + { + if (count == PSU_MASK_POLL_TIME) + break; + rdata = Xil_In32(0xFD402B1C); + count++; + }while((rdata&0x0000000E) !=0x0000000E); + + for (i = 0; i < 23; i++) { + match_pmos_code[i] = 0; + match_nmos_code[i] = 0; + } + for (i = 0; i < 7; i++) { + match_ical_code[i] = 0; + match_rcal_code[i] = 0; + } + + + do { + /*Clear ICM_CFG value*/ + Xil_Out32(0xFD410010, 0x00000000); + Xil_Out32(0xFD410014, 0x00000000); + + /*Set ICM_CFG value*/ + /*This will trigger recalibration of all stages*/ + Xil_Out32(0xFD410010, 0x00000001); + Xil_Out32(0xFD410014, 0x00000000); + + /*is calibration done? polling on L3_CALIB_DONE_STATUS*/ + MaskStatus = mask_poll(0xFD40EF14, 0x2); + if (MaskStatus == 0) { + /*failure here is because of calibration done timeout*/ + xil_printf("#SERDES initialization timed out\n\r"); + return MaskStatus; + } + + p_code = mask_read(0xFD40EF18, 0xFFFFFFFF);/*PMOS code*/ + n_code = mask_read(0xFD40EF1C, 0xFFFFFFFF);/*NMOS code*/ + /*m_code = mask_read(0xFD40EF20, 0xFFFFFFFF)*/;/*MPHY code*/ + i_code = mask_read(0xFD40EF24, 0xFFFFFFFF);/*ICAL code*/ + r_code = mask_read(0xFD40EF28, 0xFFFFFFFF);/*RX code*/ + /*u_code = mask_read(0xFD40EF2C, 0xFFFFFFFF)*/;/*USB2 code*/ + + /*PMOS code in acceptable range*/ + if ((p_code >= 0x26) && (p_code <= 0x3C)) + match_pmos_code[p_code - 0x26] += 1; + + /*NMOS code in acceptable range*/ + if ((n_code >= 0x26) && (n_code <= 0x3C)) + match_nmos_code[n_code - 0x26] += 1; + + /*PMOS code in acceptable range*/ + if ((i_code >= 0xC) && (i_code <= 0x12)) + match_ical_code[i_code - 0xC] += 1; + + /*NMOS code in acceptable range*/ + if ((r_code >= 0x6) && (r_code <= 0xC)) + match_rcal_code[r_code - 0x6] += 1; + + + } while (repeat_count++ < 10); + + /*find the valid code which resulted in maximum times in 10 iterations*/ + for (i = 0; i < 23; i++) { + if (match_pmos_code[i] >= match_pmos_code[0]) { + match_pmos_code[0] = match_pmos_code[i]; + p_code = 0x26 + i; + } + if (match_nmos_code[i] >= match_nmos_code[0]) { + match_nmos_code[0] = match_nmos_code[i]; + n_code = 0x26 + i; + } + } + + for (i = 0; i < 7; i++) { + if (match_ical_code[i] >= match_ical_code[0]) { + match_ical_code[0] = match_ical_code[i]; + i_code = 0xC + i; + } + if (match_rcal_code[i] >= match_rcal_code[0]) { + match_rcal_code[0] = match_rcal_code[i]; + r_code = 0x6 + i; + } + } + /*L3_TM_CALIB_DIG20[3] PSW MSB Override*/ + /*L3_TM_CALIB_DIG20[2:0] PSW Code [4:2]*/ + L3_TM_CALIB_DIG20 = mask_read(0xFD40EC50, 0xFFFFFFF0);/*read DIG20*/ + L3_TM_CALIB_DIG20 = L3_TM_CALIB_DIG20 | 0x8 | ((p_code >> 2) & 0x7); + + + /*L3_TM_CALIB_DIG19[7:6] PSW Code [1:0]*/ + /*L3_TM_CALIB_DIG19[5] PSW Override*/ + /*L3_TM_CALIB_DIG19[2] NSW MSB Override*/ + /*L3_TM_CALIB_DIG19[1:0] NSW Code [4:3]*/ + L3_TM_CALIB_DIG19 = mask_read(0xFD40EC4C, 0xFFFFFF18);/*read DIG19*/ + L3_TM_CALIB_DIG19 = L3_TM_CALIB_DIG19 | ((p_code & 0x3) << 6) + | 0x20 | 0x4 | ((n_code >> 3) & 0x3); + + /*L3_TM_CALIB_DIG18[7:5] NSW Code [2:0]*/ + /*L3_TM_CALIB_DIG18[4] NSW Override*/ + L3_TM_CALIB_DIG18 = mask_read(0xFD40EC48, 0xFFFFFF0F);/*read DIG18*/ + L3_TM_CALIB_DIG18 = L3_TM_CALIB_DIG18 | ((n_code & 0x7) << 5) | 0x10; + + + /*L3_TM_CALIB_DIG16[2:0] RX Code [3:1]*/ + L3_TM_CALIB_DIG16 = mask_read(0xFD40EC40, 0xFFFFFFF8);/*read DIG16*/ + L3_TM_CALIB_DIG16 = L3_TM_CALIB_DIG16 | ((r_code >> 1) & 0x7); + + /*L3_TM_CALIB_DIG15[7] RX Code [0]*/ + /*L3_TM_CALIB_DIG15[6] RX CODE Override*/ + /*L3_TM_CALIB_DIG15[3] ICAL MSB Override*/ + /*L3_TM_CALIB_DIG15[2:0] ICAL Code [3:1]*/ + L3_TM_CALIB_DIG15 = mask_read(0xFD40EC3C, 0xFFFFFF30);/*read DIG15*/ + L3_TM_CALIB_DIG15 = L3_TM_CALIB_DIG15 | ((r_code & 0x1) << 7) + | 0x40 | 0x8 | ((i_code >> 1) & 0x7); + + /*L3_TM_CALIB_DIG14[7] ICAL Code [0]*/ + /*L3_TM_CALIB_DIG14[6] ICAL Override*/ + L3_TM_CALIB_DIG14 = mask_read(0xFD40EC38, 0xFFFFFF3F);/*read DIG14*/ + L3_TM_CALIB_DIG14 = L3_TM_CALIB_DIG14 | ((i_code & 0x1) << 7) | 0x40; + + /*Forces the calibration values*/ + Xil_Out32(0xFD40EC50, L3_TM_CALIB_DIG20); + Xil_Out32(0xFD40EC4C, L3_TM_CALIB_DIG19); + Xil_Out32(0xFD40EC48, L3_TM_CALIB_DIG18); + Xil_Out32(0xFD40EC40, L3_TM_CALIB_DIG16); + Xil_Out32(0xFD40EC3C, L3_TM_CALIB_DIG15); + Xil_Out32(0xFD40EC38, L3_TM_CALIB_DIG14); + return MaskStatus; } - -int serdes_enb_coarse_saturation() { - //Enable PLL Coarse Code saturation Logic - Xil_Out32(0xFD402094,0x00000010); - Xil_Out32(0xFD406094,0x00000010); - Xil_Out32(0xFD40A094,0x00000010); - Xil_Out32(0xFD40E094,0x00000010); - return 1; -} - -int init_serdes() { +static int init_serdes(void) +{ int status = 1; + status &= psu_resetin_init_data(); status &= serdes_fixcal_code(); status &= serdes_enb_coarse_saturation(); - status &= psu_serdes_init_data(); + status &= psu_serdes_init_data(); status &= psu_resetout_init_data(); return status; } - - - - -void init_peripheral() +static void init_peripheral(void) { - unsigned int RegValue; - - /* Turn on IOU Clock */ - //Xil_Out32( CRL_APB_IOU_SWITCH_CTRL, 0x01001500); - - /* Release all resets in the IOU */ - Xil_Out32( CRL_APB_RST_LPD_IOU0, 0x00000000); - Xil_Out32( CRL_APB_RST_LPD_IOU1, 0x00000000); - Xil_Out32( CRL_APB_RST_LPD_IOU2, 0x00000000); - - /* Activate GPU clocks */ - //Xil_Out32(CRF_APB_GPU_REF_CTRL, 0x07001500); - - /* Take LPD out of reset except R5 */ - RegValue = Xil_In32(CRL_APB_RST_LPD_TOP); - RegValue &= 0x7; - Xil_Out32( CRL_APB_RST_LPD_TOP, RegValue); - - /* Take most of FPD out of reset */ - Xil_Out32( CRF_APB_RST_FPD_TOP, 0x00000000); - - /* Making DPDMA as secure */ - unsigned int tmp_regval; - tmp_regval = Xil_In32(0xFD690040); - tmp_regval &= ~0x00000001; - Xil_Out32(0xFD690040, tmp_regval); - - /* Making PCIe as secure */ - tmp_regval = Xil_In32(0xFD690030); - tmp_regval &= ~0x00000001; - Xil_Out32(0xFD690030, tmp_regval); +/*SMMU_REG Interrrupt Enable: Followig register need to be written all the time to properly catch SMMU messages.*/ + PSU_Mask_Write(0xFD5F0018, 0x8000001FU, 0x8000001FU); } -int psu_init_xppu_aper_ram() { - unsigned long APER_OFFSET = 0xFF981000; - int i = 0; - for (; i <= 400; i++) { - PSU_Mask_Write (APER_OFFSET ,0xF80FFFFFU ,0x08080000U); - APER_OFFSET = APER_OFFSET + 0x4; - } +static int psu_init_xppu_aper_ram(void) +{ return 0; } -int psu_lpd_protection() { - psu_init_xppu_aper_ram(); - psu_lpd_xppu_data(); - return 0; +int psu_lpd_protection(void) +{ + psu_init_xppu_aper_ram(); + return 0; } -int psu_ddr_protection() { - psu_ddr_xmpu0_data(); - psu_ddr_xmpu1_data(); - psu_ddr_xmpu2_data(); - psu_ddr_xmpu3_data(); - psu_ddr_xmpu4_data(); - psu_ddr_xmpu5_data(); - return 0; +int psu_ddr_protection(void) +{ + psu_ddr_xmpu0_data(); + psu_ddr_xmpu1_data(); + psu_ddr_xmpu2_data(); + psu_ddr_xmpu3_data(); + psu_ddr_xmpu4_data(); + psu_ddr_xmpu5_data(); + return 0; } -int psu_ocm_protection() { - psu_ocm_xmpu_data(); - return 0; +int psu_ocm_protection(void) +{ + psu_ocm_xmpu_data(); + return 0; } -int psu_fpd_protection() { - psu_fpd_xmpu_data(); - return 0; +int psu_fpd_protection(void) +{ + psu_fpd_xmpu_data(); + return 0; } -int psu_protection_lock() { - psu_protection_lock_data(); - return 0; +int psu_protection_lock(void) +{ + psu_protection_lock_data(); + return 0; } -int psu_protection() { - psu_ddr_protection(); - psu_ocm_protection(); - psu_fpd_protection(); - psu_lpd_protection(); - return 0; +int psu_protection(void) +{ + psu_apply_master_tz(); + psu_ddr_protection(); + psu_ocm_protection(); + psu_fpd_protection(); + psu_lpd_protection(); + return 0; } - - int -psu_init() +psu_init(void) { - int status = 1; - status &= psu_mio_init_data (); - status &= psu_pll_init_data (); - status &= psu_clock_init_data (); - - status &= psu_ddr_init_data (); - status &= psu_ddr_phybringup_data (); - status &= psu_peripherals_init_data (); + int status = 1; + status &= psu_mio_init_data(); + status &= psu_pll_init_data(); + status &= psu_clock_init_data(); + status &= psu_ddr_init_data(); + status &= psu_ddr_phybringup_data(); + status &= psu_peripherals_init_data(); status &= init_serdes(); - init_peripheral (); + init_peripheral(); - status &= psu_peripherals_powerdwn_data (); - - if (status == 0) { + status &= psu_peripherals_powerdwn_data(); + status &= psu_afi_config(); + psu_ddr_qos_init_data(); + + if (status == 0) return 1; - } return 0; } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.h index e9741eb2f..591552936 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.h @@ -34,7 +34,7 @@ * * @file psu_init.h * -* This file is automatically generated +* This file is automatically generated * *****************************************************************************/ @@ -53,8 +53,6 @@ #define CRL_APB_RPLL_CTRL_OFFSET 0XFF5E0030 #undef CRL_APB_RPLL_TO_FPD_CTRL_OFFSET #define CRL_APB_RPLL_TO_FPD_CTRL_OFFSET 0XFF5E0048 -#undef CRL_APB_RPLL_FRAC_CFG_OFFSET -#define CRL_APB_RPLL_FRAC_CFG_OFFSET 0XFF5E0038 #undef CRL_APB_IOPLL_CFG_OFFSET #define CRL_APB_IOPLL_CFG_OFFSET 0XFF5E0024 #undef CRL_APB_IOPLL_CTRL_OFFSET @@ -69,8 +67,6 @@ #define CRL_APB_IOPLL_CTRL_OFFSET 0XFF5E0020 #undef CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET #define CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET 0XFF5E0044 -#undef CRL_APB_IOPLL_FRAC_CFG_OFFSET -#define CRL_APB_IOPLL_FRAC_CFG_OFFSET 0XFF5E0028 #undef CRF_APB_APLL_CFG_OFFSET #define CRF_APB_APLL_CFG_OFFSET 0XFD1A0024 #undef CRF_APB_APLL_CTRL_OFFSET @@ -85,8 +81,6 @@ #define CRF_APB_APLL_CTRL_OFFSET 0XFD1A0020 #undef CRF_APB_APLL_TO_LPD_CTRL_OFFSET #define CRF_APB_APLL_TO_LPD_CTRL_OFFSET 0XFD1A0048 -#undef CRF_APB_APLL_FRAC_CFG_OFFSET -#define CRF_APB_APLL_FRAC_CFG_OFFSET 0XFD1A0028 #undef CRF_APB_DPLL_CFG_OFFSET #define CRF_APB_DPLL_CFG_OFFSET 0XFD1A0030 #undef CRF_APB_DPLL_CTRL_OFFSET @@ -101,8 +95,6 @@ #define CRF_APB_DPLL_CTRL_OFFSET 0XFD1A002C #undef CRF_APB_DPLL_TO_LPD_CTRL_OFFSET #define CRF_APB_DPLL_TO_LPD_CTRL_OFFSET 0XFD1A004C -#undef CRF_APB_DPLL_FRAC_CFG_OFFSET -#define CRF_APB_DPLL_FRAC_CFG_OFFSET 0XFD1A0034 #undef CRF_APB_VPLL_CFG_OFFSET #define CRF_APB_VPLL_CFG_OFFSET 0XFD1A003C #undef CRF_APB_VPLL_CTRL_OFFSET @@ -117,675 +109,770 @@ #define CRF_APB_VPLL_CTRL_OFFSET 0XFD1A0038 #undef CRF_APB_VPLL_TO_LPD_CTRL_OFFSET #define CRF_APB_VPLL_TO_LPD_CTRL_OFFSET 0XFD1A0050 -#undef CRF_APB_VPLL_FRAC_CFG_OFFSET -#define CRF_APB_VPLL_FRAC_CFG_OFFSET 0XFD1A0040 -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRL_APB_RPLL_CFG_RES_DEFVAL #undef CRL_APB_RPLL_CFG_RES_SHIFT #undef CRL_APB_RPLL_CFG_RES_MASK -#define CRL_APB_RPLL_CFG_RES_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_RES_SHIFT 0 -#define CRL_APB_RPLL_CFG_RES_MASK 0x0000000FU +#define CRL_APB_RPLL_CFG_RES_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_RES_SHIFT 0 +#define CRL_APB_RPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRL_APB_RPLL_CFG_CP_DEFVAL #undef CRL_APB_RPLL_CFG_CP_SHIFT #undef CRL_APB_RPLL_CFG_CP_MASK -#define CRL_APB_RPLL_CFG_CP_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_CP_SHIFT 5 -#define CRL_APB_RPLL_CFG_CP_MASK 0x000001E0U +#define CRL_APB_RPLL_CFG_CP_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_CP_SHIFT 5 +#define CRL_APB_RPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRL_APB_RPLL_CFG_LFHF_DEFVAL #undef CRL_APB_RPLL_CFG_LFHF_SHIFT #undef CRL_APB_RPLL_CFG_LFHF_MASK -#define CRL_APB_RPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LFHF_SHIFT 10 -#define CRL_APB_RPLL_CFG_LFHF_MASK 0x00000C00U +#define CRL_APB_RPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LFHF_SHIFT 10 +#define CRL_APB_RPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL #undef CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT #undef CRL_APB_RPLL_CFG_LOCK_CNT_MASK -#define CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRL_APB_RPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRL_APB_RPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL #undef CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT #undef CRL_APB_RPLL_CFG_LOCK_DLY_MASK -#define CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRL_APB_RPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRL_APB_RPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL #undef CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT #undef CRL_APB_RPLL_CTRL_PRE_SRC_MASK -#define CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRL_APB_RPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRL_APB_RPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRL_APB_RPLL_CTRL_FBDIV_DEFVAL #undef CRL_APB_RPLL_CTRL_FBDIV_SHIFT #undef CRL_APB_RPLL_CTRL_FBDIV_MASK -#define CRL_APB_RPLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_FBDIV_SHIFT 8 -#define CRL_APB_RPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRL_APB_RPLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_FBDIV_SHIFT 8 +#define CRL_APB_RPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRL_APB_RPLL_CTRL_DIV2_DEFVAL #undef CRL_APB_RPLL_CTRL_DIV2_SHIFT #undef CRL_APB_RPLL_CTRL_DIV2_MASK -#define CRL_APB_RPLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_DIV2_SHIFT 16 -#define CRL_APB_RPLL_CTRL_DIV2_MASK 0x00010000U +#define CRL_APB_RPLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_DIV2_SHIFT 16 +#define CRL_APB_RPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_RPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_RPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_RPLL_CTRL_BYPASS_MASK -#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_RPLL_CTRL_RESET_DEFVAL #undef CRL_APB_RPLL_CTRL_RESET_SHIFT #undef CRL_APB_RPLL_CTRL_RESET_MASK -#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_RPLL_CTRL_RESET_DEFVAL #undef CRL_APB_RPLL_CTRL_RESET_SHIFT #undef CRL_APB_RPLL_CTRL_RESET_MASK -#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U -/*RPLL is locked*/ +/* +* RPLL is locked +*/ #undef CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL #undef CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT #undef CRL_APB_PLL_STATUS_RPLL_LOCK_MASK -#define CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL 0x00000018 -#define CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT 1 -#define CRL_APB_PLL_STATUS_RPLL_LOCK_MASK 0x00000002U +#define CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL 0x00000018 +#define CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT 1 +#define CRL_APB_PLL_STATUS_RPLL_LOCK_MASK 0x00000002U #define CRL_APB_PLL_STATUS_OFFSET 0XFF5E0040 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_RPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_RPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_RPLL_CTRL_BYPASS_MASK -#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRL_APB_RPLL_FRAC_CFG_DATA_DEFVAL -#undef CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT -#undef CRL_APB_RPLL_FRAC_CFG_DATA_MASK -#define CRL_APB_RPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRL_APB_RPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRL_APB_IOPLL_CFG_RES_DEFVAL #undef CRL_APB_IOPLL_CFG_RES_SHIFT #undef CRL_APB_IOPLL_CFG_RES_MASK -#define CRL_APB_IOPLL_CFG_RES_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_RES_SHIFT 0 -#define CRL_APB_IOPLL_CFG_RES_MASK 0x0000000FU +#define CRL_APB_IOPLL_CFG_RES_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_RES_SHIFT 0 +#define CRL_APB_IOPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRL_APB_IOPLL_CFG_CP_DEFVAL #undef CRL_APB_IOPLL_CFG_CP_SHIFT #undef CRL_APB_IOPLL_CFG_CP_MASK -#define CRL_APB_IOPLL_CFG_CP_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_CP_SHIFT 5 -#define CRL_APB_IOPLL_CFG_CP_MASK 0x000001E0U +#define CRL_APB_IOPLL_CFG_CP_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_CP_SHIFT 5 +#define CRL_APB_IOPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRL_APB_IOPLL_CFG_LFHF_DEFVAL #undef CRL_APB_IOPLL_CFG_LFHF_SHIFT #undef CRL_APB_IOPLL_CFG_LFHF_MASK -#define CRL_APB_IOPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LFHF_SHIFT 10 -#define CRL_APB_IOPLL_CFG_LFHF_MASK 0x00000C00U +#define CRL_APB_IOPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LFHF_SHIFT 10 +#define CRL_APB_IOPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL #undef CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT #undef CRL_APB_IOPLL_CFG_LOCK_CNT_MASK -#define CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRL_APB_IOPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRL_APB_IOPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL #undef CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT #undef CRL_APB_IOPLL_CFG_LOCK_DLY_MASK -#define CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRL_APB_IOPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRL_APB_IOPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL #undef CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT #undef CRL_APB_IOPLL_CTRL_PRE_SRC_MASK -#define CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRL_APB_IOPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRL_APB_IOPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL #undef CRL_APB_IOPLL_CTRL_FBDIV_SHIFT #undef CRL_APB_IOPLL_CTRL_FBDIV_MASK -#define CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_FBDIV_SHIFT 8 -#define CRL_APB_IOPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_FBDIV_SHIFT 8 +#define CRL_APB_IOPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRL_APB_IOPLL_CTRL_DIV2_DEFVAL #undef CRL_APB_IOPLL_CTRL_DIV2_SHIFT #undef CRL_APB_IOPLL_CTRL_DIV2_MASK -#define CRL_APB_IOPLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_DIV2_SHIFT 16 -#define CRL_APB_IOPLL_CTRL_DIV2_MASK 0x00010000U +#define CRL_APB_IOPLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_DIV2_SHIFT 16 +#define CRL_APB_IOPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_IOPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_IOPLL_CTRL_BYPASS_MASK -#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_IOPLL_CTRL_RESET_DEFVAL #undef CRL_APB_IOPLL_CTRL_RESET_SHIFT #undef CRL_APB_IOPLL_CTRL_RESET_MASK -#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_IOPLL_CTRL_RESET_DEFVAL #undef CRL_APB_IOPLL_CTRL_RESET_SHIFT #undef CRL_APB_IOPLL_CTRL_RESET_MASK -#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U -/*IOPLL is locked*/ +/* +* IOPLL is locked +*/ #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL 0x00000018 -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT 0 -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK 0x00000001U +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL 0x00000018 +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT 0 +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK 0x00000001U #define CRL_APB_PLL_STATUS_OFFSET 0XFF5E0040 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_IOPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_IOPLL_CTRL_BYPASS_MASK -#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_DEFVAL -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_MASK -#define CRL_APB_IOPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRL_APB_IOPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_APLL_CFG_RES_DEFVAL #undef CRF_APB_APLL_CFG_RES_SHIFT #undef CRF_APB_APLL_CFG_RES_MASK -#define CRF_APB_APLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_RES_SHIFT 0 -#define CRF_APB_APLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_APLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_RES_SHIFT 0 +#define CRF_APB_APLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_APLL_CFG_CP_DEFVAL #undef CRF_APB_APLL_CFG_CP_SHIFT #undef CRF_APB_APLL_CFG_CP_MASK -#define CRF_APB_APLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_CP_SHIFT 5 -#define CRF_APB_APLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_APLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_CP_SHIFT 5 +#define CRF_APB_APLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_APLL_CFG_LFHF_DEFVAL #undef CRF_APB_APLL_CFG_LFHF_SHIFT #undef CRF_APB_APLL_CFG_LFHF_MASK -#define CRF_APB_APLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_APLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_APLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_APLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_APLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_APLL_CFG_LOCK_CNT_MASK -#define CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_APLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_APLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_APLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_APLL_CFG_LOCK_DLY_MASK -#define CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_APLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_APLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_APLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_APLL_CTRL_PRE_SRC_MASK -#define CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_APLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_APLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_APLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_APLL_CTRL_FBDIV_SHIFT #undef CRF_APB_APLL_CTRL_FBDIV_MASK -#define CRF_APB_APLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_APLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_APLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_APLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_APLL_CTRL_DIV2_DEFVAL #undef CRF_APB_APLL_CTRL_DIV2_SHIFT #undef CRF_APB_APLL_CTRL_DIV2_MASK -#define CRF_APB_APLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_APLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_APLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_APLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_APLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_APLL_CTRL_BYPASS_SHIFT #undef CRF_APB_APLL_CTRL_BYPASS_MASK -#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_APLL_CTRL_RESET_DEFVAL #undef CRF_APB_APLL_CTRL_RESET_SHIFT #undef CRF_APB_APLL_CTRL_RESET_MASK -#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_APLL_CTRL_RESET_DEFVAL #undef CRF_APB_APLL_CTRL_RESET_SHIFT #undef CRF_APB_APLL_CTRL_RESET_MASK -#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U -/*APLL is locked*/ +/* +* APLL is locked +*/ #undef CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_APLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT 0 -#define CRF_APB_PLL_STATUS_APLL_LOCK_MASK 0x00000001U +#define CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT 0 +#define CRF_APB_PLL_STATUS_APLL_LOCK_MASK 0x00000001U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_APLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_APLL_CTRL_BYPASS_SHIFT #undef CRF_APB_APLL_CTRL_BYPASS_MASK -#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_APLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_APLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_APLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_APLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_APLL_FRAC_CFG_DATA_MASK -#define CRF_APB_APLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_APLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_APLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_DPLL_CFG_RES_DEFVAL #undef CRF_APB_DPLL_CFG_RES_SHIFT #undef CRF_APB_DPLL_CFG_RES_MASK -#define CRF_APB_DPLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_RES_SHIFT 0 -#define CRF_APB_DPLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_DPLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_RES_SHIFT 0 +#define CRF_APB_DPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_DPLL_CFG_CP_DEFVAL #undef CRF_APB_DPLL_CFG_CP_SHIFT #undef CRF_APB_DPLL_CFG_CP_MASK -#define CRF_APB_DPLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_CP_SHIFT 5 -#define CRF_APB_DPLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_DPLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_CP_SHIFT 5 +#define CRF_APB_DPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_DPLL_CFG_LFHF_DEFVAL #undef CRF_APB_DPLL_CFG_LFHF_SHIFT #undef CRF_APB_DPLL_CFG_LFHF_MASK -#define CRF_APB_DPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_DPLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_DPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_DPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_DPLL_CFG_LOCK_CNT_MASK -#define CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_DPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_DPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_DPLL_CFG_LOCK_DLY_MASK -#define CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_DPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_DPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_DPLL_CTRL_PRE_SRC_MASK -#define CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_DPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_DPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_DPLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_DPLL_CTRL_FBDIV_SHIFT #undef CRF_APB_DPLL_CTRL_FBDIV_MASK -#define CRF_APB_DPLL_CTRL_FBDIV_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_DPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_DPLL_CTRL_FBDIV_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_DPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_DPLL_CTRL_DIV2_DEFVAL #undef CRF_APB_DPLL_CTRL_DIV2_SHIFT #undef CRF_APB_DPLL_CTRL_DIV2_MASK -#define CRF_APB_DPLL_CTRL_DIV2_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_DPLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_DPLL_CTRL_DIV2_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_DPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_DPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_DPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_DPLL_CTRL_BYPASS_MASK -#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_DPLL_CTRL_RESET_DEFVAL #undef CRF_APB_DPLL_CTRL_RESET_SHIFT #undef CRF_APB_DPLL_CTRL_RESET_MASK -#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_DPLL_CTRL_RESET_DEFVAL #undef CRF_APB_DPLL_CTRL_RESET_SHIFT #undef CRF_APB_DPLL_CTRL_RESET_MASK -#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U -/*DPLL is locked*/ +/* +* DPLL is locked +*/ #undef CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_DPLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT 1 -#define CRF_APB_PLL_STATUS_DPLL_LOCK_MASK 0x00000002U +#define CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT 1 +#define CRF_APB_PLL_STATUS_DPLL_LOCK_MASK 0x00000002U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_DPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_DPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_DPLL_CTRL_BYPASS_MASK -#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_DPLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_DPLL_FRAC_CFG_DATA_MASK -#define CRF_APB_DPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_DPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_VPLL_CFG_RES_DEFVAL #undef CRF_APB_VPLL_CFG_RES_SHIFT #undef CRF_APB_VPLL_CFG_RES_MASK -#define CRF_APB_VPLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_RES_SHIFT 0 -#define CRF_APB_VPLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_VPLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_RES_SHIFT 0 +#define CRF_APB_VPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_VPLL_CFG_CP_DEFVAL #undef CRF_APB_VPLL_CFG_CP_SHIFT #undef CRF_APB_VPLL_CFG_CP_MASK -#define CRF_APB_VPLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_CP_SHIFT 5 -#define CRF_APB_VPLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_VPLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_CP_SHIFT 5 +#define CRF_APB_VPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_VPLL_CFG_LFHF_DEFVAL #undef CRF_APB_VPLL_CFG_LFHF_SHIFT #undef CRF_APB_VPLL_CFG_LFHF_MASK -#define CRF_APB_VPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_VPLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_VPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_VPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_VPLL_CFG_LOCK_CNT_MASK -#define CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_VPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_VPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_VPLL_CFG_LOCK_DLY_MASK -#define CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_VPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_VPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_VPLL_CTRL_PRE_SRC_MASK -#define CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_VPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_VPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_VPLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_VPLL_CTRL_FBDIV_SHIFT #undef CRF_APB_VPLL_CTRL_FBDIV_MASK -#define CRF_APB_VPLL_CTRL_FBDIV_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_VPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_VPLL_CTRL_FBDIV_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_VPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_VPLL_CTRL_DIV2_DEFVAL #undef CRF_APB_VPLL_CTRL_DIV2_SHIFT #undef CRF_APB_VPLL_CTRL_DIV2_MASK -#define CRF_APB_VPLL_CTRL_DIV2_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_VPLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_VPLL_CTRL_DIV2_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_VPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_VPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_VPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_VPLL_CTRL_BYPASS_MASK -#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_VPLL_CTRL_RESET_DEFVAL #undef CRF_APB_VPLL_CTRL_RESET_SHIFT #undef CRF_APB_VPLL_CTRL_RESET_MASK -#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_VPLL_CTRL_RESET_DEFVAL #undef CRF_APB_VPLL_CTRL_RESET_SHIFT #undef CRF_APB_VPLL_CTRL_RESET_MASK -#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U -/*VPLL is locked*/ +/* +* VPLL is locked +*/ #undef CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_VPLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT 2 -#define CRF_APB_PLL_STATUS_VPLL_LOCK_MASK 0x00000004U +#define CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT 2 +#define CRF_APB_PLL_STATUS_VPLL_LOCK_MASK 0x00000004U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_VPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_VPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_VPLL_CTRL_BYPASS_MASK -#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U - -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_VPLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_VPLL_FRAC_CFG_DATA_MASK -#define CRF_APB_VPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_VPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U #undef CRL_APB_GEM3_REF_CTRL_OFFSET #define CRL_APB_GEM3_REF_CTRL_OFFSET 0XFF5E005C +#undef CRL_APB_GEM_TSU_REF_CTRL_OFFSET +#define CRL_APB_GEM_TSU_REF_CTRL_OFFSET 0XFF5E0100 #undef CRL_APB_USB0_BUS_REF_CTRL_OFFSET #define CRL_APB_USB0_BUS_REF_CTRL_OFFSET 0XFF5E0060 #undef CRL_APB_USB3_DUAL_REF_CTRL_OFFSET @@ -822,12 +909,6 @@ #define CRL_APB_ADMA_REF_CTRL_OFFSET 0XFF5E00B8 #undef CRL_APB_PL0_REF_CTRL_OFFSET #define CRL_APB_PL0_REF_CTRL_OFFSET 0XFF5E00C0 -#undef CRL_APB_PL1_REF_CTRL_OFFSET -#define CRL_APB_PL1_REF_CTRL_OFFSET 0XFF5E00C4 -#undef CRL_APB_PL2_REF_CTRL_OFFSET -#define CRL_APB_PL2_REF_CTRL_OFFSET 0XFF5E00C8 -#undef CRL_APB_PL3_REF_CTRL_OFFSET -#define CRL_APB_PL3_REF_CTRL_OFFSET 0XFF5E00CC #undef CRL_APB_AMS_REF_CTRL_OFFSET #define CRL_APB_AMS_REF_CTRL_OFFSET 0XFF5E0108 #undef CRL_APB_DLL_REF_CTRL_OFFSET @@ -846,8 +927,6 @@ #define CRF_APB_DP_STC_REF_CTRL_OFFSET 0XFD1A007C #undef CRF_APB_ACPU_CTRL_OFFSET #define CRF_APB_ACPU_CTRL_OFFSET 0XFD1A0060 -#undef CRF_APB_DBG_TRACE_CTRL_OFFSET -#define CRF_APB_DBG_TRACE_CTRL_OFFSET 0XFD1A0064 #undef CRF_APB_DBG_FPD_CTRL_OFFSET #define CRF_APB_DBG_FPD_CTRL_OFFSET 0XFD1A0068 #undef CRF_APB_DDR_CTRL_OFFSET @@ -873,1195 +952,1418 @@ #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET #define LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET 0XFF410050 -/*Clock active for the RX channel*/ +/* +* Clock active for the RX channel +*/ #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT 26 -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK 0x04000000U +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT 26 +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK 0x04000000U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_GEM3_REF_CTRL_CLKACT_MASK -#define CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_GEM3_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_GEM3_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* 6 bit divider +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_MASK 0x00003F00U + +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_MASK 0x00000007U + +/* +* 6 bit divider +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_MASK 0x003F0000U + +/* +* Clock active signal. Switch to 0 to disable the clock +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_MASK 0x01000000U + +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_QSPI_REF_CTRL_CLKACT_MASK -#define CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_QSPI_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_QSPI_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO [51] 1: MIO [76]*/ +/* +* MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO + * [51] 1: MIO [76] +*/ #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT 17 -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK 0x00020000U +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT 17 +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK 0x00020000U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_UART0_REF_CTRL_CLKACT_MASK -#define CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_UART0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_UART0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_UART0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_UART0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_UART0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_UART1_REF_CTRL_CLKACT_MASK -#define CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_UART1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_UART1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_UART1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_UART1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_UART1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_I2C0_REF_CTRL_CLKACT_MASK -#define CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_I2C0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_I2C0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_I2C1_REF_CTRL_CLKACT_MASK -#define CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_I2C1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_I2C1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_CAN1_REF_CTRL_CLKACT_MASK -#define CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_CAN1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_CAN1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Turing this off will shut down the OCM, some parts of the APM, and prevent transactions going from the FPD to the LPD and cou - d lead to system hang*/ +/* +* Turing this off will shut down the OCM, some parts of the APM, and preve + * nt transactions going from the FPD to the LPD and could lead to system h + * ang +*/ #undef CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL #undef CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT #undef CRL_APB_CPU_R5_CTRL_CLKACT_MASK -#define CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_CPU_R5_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_CPU_R5_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL #undef CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT #undef CRL_APB_CPU_R5_CTRL_SRCSEL_MASK -#define CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_CPU_R5_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_CPU_R5_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_PCAP_CTRL_CLKACT_DEFVAL #undef CRL_APB_PCAP_CTRL_CLKACT_SHIFT #undef CRL_APB_PCAP_CTRL_CLKACT_MASK -#define CRL_APB_PCAP_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PCAP_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_PCAP_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_PCAP_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT #undef CRL_APB_PCAP_CTRL_DIVISOR0_MASK -#define CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PCAP_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_PCAP_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL #undef CRL_APB_PCAP_CTRL_SRCSEL_SHIFT #undef CRL_APB_PCAP_CTRL_SRCSEL_MASK -#define CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PCAP_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_PCAP_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT #undef CRL_APB_DBG_LPD_CTRL_CLKACT_MASK -#define CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_DBG_LPD_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_DBG_LPD_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_ADMA_REF_CTRL_CLKACT_MASK -#define CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_ADMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_ADMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_PL0_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_PL0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_PL0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_PL0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL1_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL1_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL1_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL1_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL1_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL1_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL2_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL2_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL2_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL2_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL2_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL2_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL3_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL3_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL3_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL3_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL3_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL3_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_AMS_REF_CTRL_SRCSEL_MASK -#define CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_AMS_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_AMS_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_AMS_REF_CTRL_CLKACT_MASK -#define CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_AMS_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_AMS_REF_CTRL_CLKACT_MASK 0x01000000U -/*000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an + * issue, but designers must be aware.) +*/ #undef CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_DLL_REF_CTRL_SRCSEL_MASK -#define CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL 0x00000000 -#define CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_DLL_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL 0x00000000 +#define CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_DLL_REF_CTRL_SRCSEL_MASK 0x00000007U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and - cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may + * only be toggled after 4 cycles of the old clock and 4 cycles of the new + * clock. This is not usually an issue, but designers must be aware.) +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK 0x01000000U -/*000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_SATA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_SATA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_SATA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_SATA_REF_CTRL_CLKACT_MASK -#define CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_SATA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_SATA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cyc - es of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only + * be toggled after 4 cycles of the old clock and 4 cycles of the new cloc + * k. This is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_PCIE_REF_CTRL_CLKACT_MASK -#define CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_PCIE_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_PCIE_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of t - e new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be togg + * led after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT #undef CRF_APB_ACPU_CTRL_DIVISOR0_MASK -#define CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_ACPU_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_ACPU_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL #undef CRF_APB_ACPU_CTRL_SRCSEL_SHIFT #undef CRF_APB_ACPU_CTRL_SRCSEL_MASK -#define CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_ACPU_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_ACPU_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock. For the half speed APU Clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock. For the half spee + * d APU Clock +*/ #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT 25 -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK 0x02000000U +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT 25 +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK 0x02000000U -/*Clock active signal. Switch to 0 to disable the clock. For the full speed ACPUX Clock. This will shut off the high speed cloc - to the entire APU*/ +/* +* Clock active signal. Switch to 0 to disable the clock. For the full spee + * d ACPUX Clock. This will shut off the high speed clock to the entire APU +*/ #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT 24 -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK 0x01000000U +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT 24 +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK 0x01000000U -/*6 bit divider*/ -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT #undef CRF_APB_DBG_FPD_CTRL_CLKACT_MASK -#define CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DBG_FPD_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DBG_FPD_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DDR_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DDR_CTRL_DIVISOR0_MASK -#define CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_DDR_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DDR_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_DDR_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DDR_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - s not usually an issue, but designers must be aware.)*/ +/* +* 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an i + * ssue, but designers must be aware.) +*/ #undef CRF_APB_DDR_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DDR_CTRL_SRCSEL_SHIFT #undef CRF_APB_DDR_CTRL_SRCSEL_MASK -#define CRF_APB_DDR_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_DDR_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DDR_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DDR_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_DDR_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DDR_CTRL_SRCSEL_MASK 0x00000007U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_GPU_REF_CTRL_SRCSEL_MASK -#define CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_GPU_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_GPU_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock, which will stop clock for GPU (and both Pixel Processors).*/ +/* +* Clock active signal. Switch to 0 to disable the clock, which will stop c + * lock for GPU (and both Pixel Processors). +*/ #undef CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_GPU_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_GPU_REF_CTRL_CLKACT_MASK 0x01000000U -/*Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor*/ +/* +* Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor +*/ #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT 25 -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK 0x02000000U +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT 25 +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK 0x02000000U -/*Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor*/ +/* +* Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor +*/ #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT 26 -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK 0x04000000U +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT 26 +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK 0x04000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_GDMA_REF_CTRL_CLKACT_MASK -#define CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_GDMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_GDMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL 0x00000A00 -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL 0x00000A00 +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL 0x00000A00 -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL 0x00000A00 +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK 0x00000007U -/*00" = Select the APB switch clock for the APB interface of TTC0'01" = Select the PLL ref clock for the APB interface of TTC0' - 0" = Select the R5 clock for the APB interface of TTC0*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC0'01" = Se + * lect the PLL ref clock for the APB interface of TTC0'10" = Select the R5 + * clock for the APB interface of TTC0 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT 0 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK 0x00000003U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT 0 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK 0x00000003U -/*00" = Select the APB switch clock for the APB interface of TTC1'01" = Select the PLL ref clock for the APB interface of TTC1' - 0" = Select the R5 clock for the APB interface of TTC1*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC1'01" = Se + * lect the PLL ref clock for the APB interface of TTC1'10" = Select the R5 + * clock for the APB interface of TTC1 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT 2 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK 0x0000000CU +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT 2 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK 0x0000000CU -/*00" = Select the APB switch clock for the APB interface of TTC2'01" = Select the PLL ref clock for the APB interface of TTC2' - 0" = Select the R5 clock for the APB interface of TTC2*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC2'01" = Se + * lect the PLL ref clock for the APB interface of TTC2'10" = Select the R5 + * clock for the APB interface of TTC2 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT 4 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK 0x00000030U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT 4 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK 0x00000030U -/*00" = Select the APB switch clock for the APB interface of TTC3'01" = Select the PLL ref clock for the APB interface of TTC3' - 0" = Select the R5 clock for the APB interface of TTC3*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC3'01" = Se + * lect the PLL ref clock for the APB interface of TTC3'10" = Select the R5 + * clock for the APB interface of TTC3 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT 6 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK 0x000000C0U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT 6 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK 0x000000C0U -/*System watchdog timer clock source selection: 0: Internal APB clock 1: External (PL clock via EMIO or Pinout clock via MIO)*/ +/* +* System watchdog timer clock source selection: 0: Internal APB clock 1: E + * xternal (PL clock via EMIO or Pinout clock via MIO) +*/ #undef FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL #undef FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT #undef FPD_SLCR_WDT_CLK_SEL_SELECT_MASK -#define FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 -#define FPD_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 +#define FPD_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U -/*System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock from PL via EMIO, or from pinout - ia MIO*/ +/* +* System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock from PL via EMIO, or from pinout via MIO +*/ #undef IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL #undef IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT #undef IOU_SLCR_WDT_CLK_SEL_SELECT_MASK -#define IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 -#define IOU_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 +#define IOU_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U -/*System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock pss_ref_clk*/ +/* +* System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock pss_ref_clk +*/ #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT 0 -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT 0 +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK 0x00000001U #undef CRF_APB_RST_DDR_SS_OFFSET #define CRF_APB_RST_DDR_SS_OFFSET 0XFD1A0108 #undef DDRC_MSTR_OFFSET @@ -2078,6 +2380,8 @@ #define DDRC_PWRTMG_OFFSET 0XFD070034 #undef DDRC_RFSHCTL0_OFFSET #define DDRC_RFSHCTL0_OFFSET 0XFD070050 +#undef DDRC_RFSHCTL1_OFFSET +#define DDRC_RFSHCTL1_OFFSET 0XFD070054 #undef DDRC_RFSHCTL3_OFFSET #define DDRC_RFSHCTL3_OFFSET 0XFD070060 #undef DDRC_RFSHTMG_OFFSET @@ -2146,6 +2450,8 @@ #define DDRC_DFILPCFG0_OFFSET 0XFD070198 #undef DDRC_DFILPCFG1_OFFSET #define DDRC_DFILPCFG1_OFFSET 0XFD07019C +#undef DDRC_DFIUPD0_OFFSET +#define DDRC_DFIUPD0_OFFSET 0XFD0701A0 #undef DDRC_DFIUPD1_OFFSET #define DDRC_DFIUPD1_OFFSET 0XFD0701A4 #undef DDRC_DFIMISC_OFFSET @@ -2188,6 +2494,16 @@ #define DDRC_PERFLPR1_OFFSET 0XFD070264 #undef DDRC_PERFWR1_OFFSET #define DDRC_PERFWR1_OFFSET 0XFD07026C +#undef DDRC_DQMAP0_OFFSET +#define DDRC_DQMAP0_OFFSET 0XFD070280 +#undef DDRC_DQMAP1_OFFSET +#define DDRC_DQMAP1_OFFSET 0XFD070284 +#undef DDRC_DQMAP2_OFFSET +#define DDRC_DQMAP2_OFFSET 0XFD070288 +#undef DDRC_DQMAP3_OFFSET +#define DDRC_DQMAP3_OFFSET 0XFD07028C +#undef DDRC_DQMAP4_OFFSET +#define DDRC_DQMAP4_OFFSET 0XFD070290 #undef DDRC_DQMAP5_OFFSET #define DDRC_DQMAP5_OFFSET 0XFD070294 #undef DDRC_DBG0_OFFSET @@ -2294,8 +2610,12 @@ #define DDR_PHY_PTR0_OFFSET 0XFD080040 #undef DDR_PHY_PTR1_OFFSET #define DDR_PHY_PTR1_OFFSET 0XFD080044 +#undef DDR_PHY_PLLCR0_OFFSET +#define DDR_PHY_PLLCR0_OFFSET 0XFD080068 #undef DDR_PHY_DSGCR_OFFSET #define DDR_PHY_DSGCR_OFFSET 0XFD080090 +#undef DDR_PHY_GPR0_OFFSET +#define DDR_PHY_GPR0_OFFSET 0XFD0800C0 #undef DDR_PHY_DCR_OFFSET #define DDR_PHY_DCR_OFFSET 0XFD080100 #undef DDR_PHY_DTPR0_OFFSET @@ -2350,6 +2670,8 @@ #define DDR_PHY_DTCR1_OFFSET 0XFD080204 #undef DDR_PHY_CATR0_OFFSET #define DDR_PHY_CATR0_OFFSET 0XFD080240 +#undef DDR_PHY_DQSDR0_OFFSET +#define DDR_PHY_DQSDR0_OFFSET 0XFD080250 #undef DDR_PHY_BISTLSR_OFFSET #define DDR_PHY_BISTLSR_OFFSET 0XFD080414 #undef DDR_PHY_RIOCR5_OFFSET @@ -2398,10 +2720,6 @@ #define DDR_PHY_DX0GCR5_OFFSET 0XFD080714 #undef DDR_PHY_DX0GCR6_OFFSET #define DDR_PHY_DX0GCR6_OFFSET 0XFD080718 -#undef DDR_PHY_DX0LCDLR2_OFFSET -#define DDR_PHY_DX0LCDLR2_OFFSET 0XFD080788 -#undef DDR_PHY_DX0GTR0_OFFSET -#define DDR_PHY_DX0GTR0_OFFSET 0XFD0807C0 #undef DDR_PHY_DX1GCR0_OFFSET #define DDR_PHY_DX1GCR0_OFFSET 0XFD080800 #undef DDR_PHY_DX1GCR4_OFFSET @@ -2410,10 +2728,6 @@ #define DDR_PHY_DX1GCR5_OFFSET 0XFD080814 #undef DDR_PHY_DX1GCR6_OFFSET #define DDR_PHY_DX1GCR6_OFFSET 0XFD080818 -#undef DDR_PHY_DX1LCDLR2_OFFSET -#define DDR_PHY_DX1LCDLR2_OFFSET 0XFD080888 -#undef DDR_PHY_DX1GTR0_OFFSET -#define DDR_PHY_DX1GTR0_OFFSET 0XFD0808C0 #undef DDR_PHY_DX2GCR0_OFFSET #define DDR_PHY_DX2GCR0_OFFSET 0XFD080900 #undef DDR_PHY_DX2GCR1_OFFSET @@ -2424,10 +2738,6 @@ #define DDR_PHY_DX2GCR5_OFFSET 0XFD080914 #undef DDR_PHY_DX2GCR6_OFFSET #define DDR_PHY_DX2GCR6_OFFSET 0XFD080918 -#undef DDR_PHY_DX2LCDLR2_OFFSET -#define DDR_PHY_DX2LCDLR2_OFFSET 0XFD080988 -#undef DDR_PHY_DX2GTR0_OFFSET -#define DDR_PHY_DX2GTR0_OFFSET 0XFD0809C0 #undef DDR_PHY_DX3GCR0_OFFSET #define DDR_PHY_DX3GCR0_OFFSET 0XFD080A00 #undef DDR_PHY_DX3GCR1_OFFSET @@ -2438,10 +2748,6 @@ #define DDR_PHY_DX3GCR5_OFFSET 0XFD080A14 #undef DDR_PHY_DX3GCR6_OFFSET #define DDR_PHY_DX3GCR6_OFFSET 0XFD080A18 -#undef DDR_PHY_DX3LCDLR2_OFFSET -#define DDR_PHY_DX3LCDLR2_OFFSET 0XFD080A88 -#undef DDR_PHY_DX3GTR0_OFFSET -#define DDR_PHY_DX3GTR0_OFFSET 0XFD080AC0 #undef DDR_PHY_DX4GCR0_OFFSET #define DDR_PHY_DX4GCR0_OFFSET 0XFD080B00 #undef DDR_PHY_DX4GCR1_OFFSET @@ -2452,10 +2758,6 @@ #define DDR_PHY_DX4GCR5_OFFSET 0XFD080B14 #undef DDR_PHY_DX4GCR6_OFFSET #define DDR_PHY_DX4GCR6_OFFSET 0XFD080B18 -#undef DDR_PHY_DX4LCDLR2_OFFSET -#define DDR_PHY_DX4LCDLR2_OFFSET 0XFD080B88 -#undef DDR_PHY_DX4GTR0_OFFSET -#define DDR_PHY_DX4GTR0_OFFSET 0XFD080BC0 #undef DDR_PHY_DX5GCR0_OFFSET #define DDR_PHY_DX5GCR0_OFFSET 0XFD080C00 #undef DDR_PHY_DX5GCR1_OFFSET @@ -2466,10 +2768,6 @@ #define DDR_PHY_DX5GCR5_OFFSET 0XFD080C14 #undef DDR_PHY_DX5GCR6_OFFSET #define DDR_PHY_DX5GCR6_OFFSET 0XFD080C18 -#undef DDR_PHY_DX5LCDLR2_OFFSET -#define DDR_PHY_DX5LCDLR2_OFFSET 0XFD080C88 -#undef DDR_PHY_DX5GTR0_OFFSET -#define DDR_PHY_DX5GTR0_OFFSET 0XFD080CC0 #undef DDR_PHY_DX6GCR0_OFFSET #define DDR_PHY_DX6GCR0_OFFSET 0XFD080D00 #undef DDR_PHY_DX6GCR1_OFFSET @@ -2480,10 +2778,6 @@ #define DDR_PHY_DX6GCR5_OFFSET 0XFD080D14 #undef DDR_PHY_DX6GCR6_OFFSET #define DDR_PHY_DX6GCR6_OFFSET 0XFD080D18 -#undef DDR_PHY_DX6LCDLR2_OFFSET -#define DDR_PHY_DX6LCDLR2_OFFSET 0XFD080D88 -#undef DDR_PHY_DX6GTR0_OFFSET -#define DDR_PHY_DX6GTR0_OFFSET 0XFD080DC0 #undef DDR_PHY_DX7GCR0_OFFSET #define DDR_PHY_DX7GCR0_OFFSET 0XFD080E00 #undef DDR_PHY_DX7GCR1_OFFSET @@ -2494,10 +2788,6 @@ #define DDR_PHY_DX7GCR5_OFFSET 0XFD080E14 #undef DDR_PHY_DX7GCR6_OFFSET #define DDR_PHY_DX7GCR6_OFFSET 0XFD080E18 -#undef DDR_PHY_DX7LCDLR2_OFFSET -#define DDR_PHY_DX7LCDLR2_OFFSET 0XFD080E88 -#undef DDR_PHY_DX7GTR0_OFFSET -#define DDR_PHY_DX7GTR0_OFFSET 0XFD080EC0 #undef DDR_PHY_DX8GCR0_OFFSET #define DDR_PHY_DX8GCR0_OFFSET 0XFD080F00 #undef DDR_PHY_DX8GCR1_OFFSET @@ -2508,12 +2798,10 @@ #define DDR_PHY_DX8GCR5_OFFSET 0XFD080F14 #undef DDR_PHY_DX8GCR6_OFFSET #define DDR_PHY_DX8GCR6_OFFSET 0XFD080F18 -#undef DDR_PHY_DX8LCDLR2_OFFSET -#define DDR_PHY_DX8LCDLR2_OFFSET 0XFD080F88 -#undef DDR_PHY_DX8GTR0_OFFSET -#define DDR_PHY_DX8GTR0_OFFSET 0XFD080FC0 #undef DDR_PHY_DX8SL0OSC_OFFSET #define DDR_PHY_DX8SL0OSC_OFFSET 0XFD081400 +#undef DDR_PHY_DX8SL0PLLCR0_OFFSET +#define DDR_PHY_DX8SL0PLLCR0_OFFSET 0XFD081404 #undef DDR_PHY_DX8SL0DQSCTL_OFFSET #define DDR_PHY_DX8SL0DQSCTL_OFFSET 0XFD08141C #undef DDR_PHY_DX8SL0DXCTL2_OFFSET @@ -2522,6 +2810,8 @@ #define DDR_PHY_DX8SL0IOCR_OFFSET 0XFD081430 #undef DDR_PHY_DX8SL1OSC_OFFSET #define DDR_PHY_DX8SL1OSC_OFFSET 0XFD081440 +#undef DDR_PHY_DX8SL1PLLCR0_OFFSET +#define DDR_PHY_DX8SL1PLLCR0_OFFSET 0XFD081444 #undef DDR_PHY_DX8SL1DQSCTL_OFFSET #define DDR_PHY_DX8SL1DQSCTL_OFFSET 0XFD08145C #undef DDR_PHY_DX8SL1DXCTL2_OFFSET @@ -2530,6 +2820,8 @@ #define DDR_PHY_DX8SL1IOCR_OFFSET 0XFD081470 #undef DDR_PHY_DX8SL2OSC_OFFSET #define DDR_PHY_DX8SL2OSC_OFFSET 0XFD081480 +#undef DDR_PHY_DX8SL2PLLCR0_OFFSET +#define DDR_PHY_DX8SL2PLLCR0_OFFSET 0XFD081484 #undef DDR_PHY_DX8SL2DQSCTL_OFFSET #define DDR_PHY_DX8SL2DQSCTL_OFFSET 0XFD08149C #undef DDR_PHY_DX8SL2DXCTL2_OFFSET @@ -2538,6 +2830,8 @@ #define DDR_PHY_DX8SL2IOCR_OFFSET 0XFD0814B0 #undef DDR_PHY_DX8SL3OSC_OFFSET #define DDR_PHY_DX8SL3OSC_OFFSET 0XFD0814C0 +#undef DDR_PHY_DX8SL3PLLCR0_OFFSET +#define DDR_PHY_DX8SL3PLLCR0_OFFSET 0XFD0814C4 #undef DDR_PHY_DX8SL3DQSCTL_OFFSET #define DDR_PHY_DX8SL3DQSCTL_OFFSET 0XFD0814DC #undef DDR_PHY_DX8SL3DXCTL2_OFFSET @@ -2546,14391 +2840,18570 @@ #define DDR_PHY_DX8SL3IOCR_OFFSET 0XFD0814F0 #undef DDR_PHY_DX8SL4OSC_OFFSET #define DDR_PHY_DX8SL4OSC_OFFSET 0XFD081500 +#undef DDR_PHY_DX8SL4PLLCR0_OFFSET +#define DDR_PHY_DX8SL4PLLCR0_OFFSET 0XFD081504 #undef DDR_PHY_DX8SL4DQSCTL_OFFSET #define DDR_PHY_DX8SL4DQSCTL_OFFSET 0XFD08151C #undef DDR_PHY_DX8SL4DXCTL2_OFFSET #define DDR_PHY_DX8SL4DXCTL2_OFFSET 0XFD08152C #undef DDR_PHY_DX8SL4IOCR_OFFSET #define DDR_PHY_DX8SL4IOCR_OFFSET 0XFD081530 +#undef DDR_PHY_DX8SLBPLLCR0_OFFSET +#define DDR_PHY_DX8SLBPLLCR0_OFFSET 0XFD0817C4 #undef DDR_PHY_DX8SLBDQSCTL_OFFSET #define DDR_PHY_DX8SLBDQSCTL_OFFSET 0XFD0817DC -#undef DDR_PHY_PIR_OFFSET -#define DDR_PHY_PIR_OFFSET 0XFD080004 -/*DDR block level reset inside of the DDR Sub System*/ +/* +* DDR block level reset inside of the DDR Sub System +*/ #undef CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL #undef CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT #undef CRF_APB_RST_DDR_SS_DDR_RESET_MASK -#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F -#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 -#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U +#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 +#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U -/*Indicates the configuration of the device used in the system. - 00 - x4 device - 01 - x8 device - 10 - x16 device - 11 - x32 - evice*/ +/* +* Indicates the configuration of the device used in the system. - 00 - x4 + * device - 01 - x8 device - 10 - x16 device - 11 - x32 device +*/ #undef DDRC_MSTR_DEVICE_CONFIG_DEFVAL #undef DDRC_MSTR_DEVICE_CONFIG_SHIFT #undef DDRC_MSTR_DEVICE_CONFIG_MASK -#define DDRC_MSTR_DEVICE_CONFIG_DEFVAL 0x03040001 -#define DDRC_MSTR_DEVICE_CONFIG_SHIFT 30 -#define DDRC_MSTR_DEVICE_CONFIG_MASK 0xC0000000U +#define DDRC_MSTR_DEVICE_CONFIG_DEFVAL 0x03040001 +#define DDRC_MSTR_DEVICE_CONFIG_SHIFT 30 +#define DDRC_MSTR_DEVICE_CONFIG_MASK 0xC0000000U -/*Choose which registers are used. - 0 - Original registers - 1 - Shadow registers*/ +/* +* Choose which registers are used. - 0 - Original registers - 1 - Shadow r + * egisters +*/ #undef DDRC_MSTR_FREQUENCY_MODE_DEFVAL #undef DDRC_MSTR_FREQUENCY_MODE_SHIFT #undef DDRC_MSTR_FREQUENCY_MODE_MASK -#define DDRC_MSTR_FREQUENCY_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_FREQUENCY_MODE_SHIFT 29 -#define DDRC_MSTR_FREQUENCY_MODE_MASK 0x20000000U +#define DDRC_MSTR_FREQUENCY_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_FREQUENCY_MODE_SHIFT 29 +#define DDRC_MSTR_FREQUENCY_MODE_MASK 0x20000000U -/*Only present for multi-rank configurations. Each bit represents one rank. For two-rank configurations, only bits[25:24] are p - esent. - 1 - populated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks following combinations are legal: - 01 - - ne rank - 11 - Two ranks - Others - Reserved. For 4 ranks following combinations are legal: - 0001 - One rank - 0011 - Two ra - ks - 1111 - Four ranks*/ +/* +* Only present for multi-rank configurations. Each bit represents one rank + * . For two-rank configurations, only bits[25:24] are present. - 1 - popul + * ated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks follow + * ing combinations are legal: - 01 - One rank - 11 - Two ranks - Others - + * Reserved. For 4 ranks following combinations are legal: - 0001 - One ran + * k - 0011 - Two ranks - 1111 - Four ranks +*/ #undef DDRC_MSTR_ACTIVE_RANKS_DEFVAL #undef DDRC_MSTR_ACTIVE_RANKS_SHIFT #undef DDRC_MSTR_ACTIVE_RANKS_MASK -#define DDRC_MSTR_ACTIVE_RANKS_DEFVAL 0x03040001 -#define DDRC_MSTR_ACTIVE_RANKS_SHIFT 24 -#define DDRC_MSTR_ACTIVE_RANKS_MASK 0x03000000U +#define DDRC_MSTR_ACTIVE_RANKS_DEFVAL 0x03040001 +#define DDRC_MSTR_ACTIVE_RANKS_SHIFT 24 +#define DDRC_MSTR_ACTIVE_RANKS_MASK 0x03000000U -/*SDRAM burst length used: - 0001 - Burst length of 2 (only supported for mDDR) - 0010 - Burst length of 4 - 0100 - Burst lengt - of 8 - 1000 - Burst length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other values are reserved. This controls - he burst size used to access the SDRAM. This must match the burst length mode register setting in the SDRAM. (For BC4/8 on-th - -fly mode of DDR3 and DDR4, set this field to 0x0100) Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGT - is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1*/ +/* +* SDRAM burst length used: - 0001 - Burst length of 2 (only supported for + * mDDR) - 0010 - Burst length of 4 - 0100 - Burst length of 8 - 1000 - Bur + * st length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other + * values are reserved. This controls the burst size used to access the SDR + * AM. This must match the burst length mode register setting in the SDRAM. + * (For BC4/8 on-the-fly mode of DDR3 and DDR4, set this field to 0x0100) + * Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGTH + * is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 +*/ #undef DDRC_MSTR_BURST_RDWR_DEFVAL #undef DDRC_MSTR_BURST_RDWR_SHIFT #undef DDRC_MSTR_BURST_RDWR_MASK -#define DDRC_MSTR_BURST_RDWR_DEFVAL 0x03040001 -#define DDRC_MSTR_BURST_RDWR_SHIFT 16 -#define DDRC_MSTR_BURST_RDWR_MASK 0x000F0000U +#define DDRC_MSTR_BURST_RDWR_DEFVAL 0x03040001 +#define DDRC_MSTR_BURST_RDWR_SHIFT 16 +#define DDRC_MSTR_BURST_RDWR_MASK 0x000F0000U -/*Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low frequency operation. Set to 0 to put uMCTL2 and DRAM - n DLL-on mode for normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d - l_off_mode is not supported, and this bit must be set to '0'.*/ +/* +* Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low + * frequency operation. Set to 0 to put uMCTL2 and DRAM in DLL-on mode for + * normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARC + * TL1.crc_parity_retry_enable = 1), dll_off_mode is not supported, and thi + * s bit must be set to '0'. +*/ #undef DDRC_MSTR_DLL_OFF_MODE_DEFVAL #undef DDRC_MSTR_DLL_OFF_MODE_SHIFT #undef DDRC_MSTR_DLL_OFF_MODE_MASK -#define DDRC_MSTR_DLL_OFF_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_DLL_OFF_MODE_SHIFT 15 -#define DDRC_MSTR_DLL_OFF_MODE_MASK 0x00008000U +#define DDRC_MSTR_DLL_OFF_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_DLL_OFF_MODE_SHIFT 15 +#define DDRC_MSTR_DLL_OFF_MODE_MASK 0x00008000U -/*Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full DQ bus width to SDRAM - 01 - Half DQ bus width to SD - AM - 10 - Quarter DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is only supported when the SDRAM bus w - dth is a multiple of 16, and quarter bus width mode is only supported when the SDRAM bus width is a multiple of 32 and the co - figuration parameter MEMC_QBUS_SUPPORT is set. Bus width refers to DQ bus width (excluding any ECC width).*/ +/* +* Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full + * DQ bus width to SDRAM - 01 - Half DQ bus width to SDRAM - 10 - Quarter + * DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is + * only supported when the SDRAM bus width is a multiple of 16, and quarter + * bus width mode is only supported when the SDRAM bus width is a multiple + * of 32 and the configuration parameter MEMC_QBUS_SUPPORT is set. Bus wid + * th refers to DQ bus width (excluding any ECC width). +*/ #undef DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL #undef DDRC_MSTR_DATA_BUS_WIDTH_SHIFT #undef DDRC_MSTR_DATA_BUS_WIDTH_MASK -#define DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL 0x03040001 -#define DDRC_MSTR_DATA_BUS_WIDTH_SHIFT 12 -#define DDRC_MSTR_DATA_BUS_WIDTH_MASK 0x00003000U +#define DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL 0x03040001 +#define DDRC_MSTR_DATA_BUS_WIDTH_SHIFT 12 +#define DDRC_MSTR_DATA_BUS_WIDTH_MASK 0x00003000U -/*1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the DRAM in normal mode (1N). This register can be changed - only when the Controller is in self-refresh mode. This signal must be set the same value as MR3 bit A3. Note: Geardown mode - s not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set*/ +/* +* 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the D + * RAM in normal mode (1N). This register can be changed, only when the Con + * troller is in self-refresh mode. This signal must be set the same value + * as MR3 bit A3. Note: Geardown mode is not supported if the configuration + * parameter MEMC_CMD_RTN2IDLE is set +*/ #undef DDRC_MSTR_GEARDOWN_MODE_DEFVAL #undef DDRC_MSTR_GEARDOWN_MODE_SHIFT #undef DDRC_MSTR_GEARDOWN_MODE_MASK -#define DDRC_MSTR_GEARDOWN_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_GEARDOWN_MODE_SHIFT 11 -#define DDRC_MSTR_GEARDOWN_MODE_MASK 0x00000800U +#define DDRC_MSTR_GEARDOWN_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_GEARDOWN_MODE_SHIFT 11 +#define DDRC_MSTR_GEARDOWN_MODE_MASK 0x00000800U -/*If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timing, all command signals (except chip select) are held - or 2 clocks on the SDRAM bus. Chip select is asserted on the second cycle of the command Note: 2T timing is not supported in - PDDR2/LPDDR3/LPDDR4 mode Note: 2T timing is not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set Note: 2T ti - ing is not supported in DDR4 geardown mode.*/ +/* +* If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timin + * g, all command signals (except chip select) are held for 2 clocks on the + * SDRAM bus. Chip select is asserted on the second cycle of the command N + * ote: 2T timing is not supported in LPDDR2/LPDDR3/LPDDR4 mode Note: 2T ti + * ming is not supported if the configuration parameter MEMC_CMD_RTN2IDLE i + * s set Note: 2T timing is not supported in DDR4 geardown mode. +*/ #undef DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL #undef DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT #undef DDRC_MSTR_EN_2T_TIMING_MODE_MASK -#define DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT 10 -#define DDRC_MSTR_EN_2T_TIMING_MODE_MASK 0x00000400U +#define DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT 10 +#define DDRC_MSTR_EN_2T_TIMING_MODE_MASK 0x00000400U -/*When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exercised only in HIF configurations (UMCTL2_INCL_ARB not s - t) and if in full bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exercised only if Partial Writes enable - (UMCTL2_PARTIAL_WR=1) and if CRC is disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabled (CRCPARCTL1.cr - _parity_retry_enable = 1), burst chop is not supported, and this bit must be set to '0'*/ +/* +* When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exerci + * sed only in HIF configurations (UMCTL2_INCL_ARB not set) and if in full + * bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exer + * cised only if Partial Writes enabled (UMCTL2_PARTIAL_WR=1) and if CRC is + * disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabl + * ed (CRCPARCTL1.crc_parity_retry_enable = 1), burst chop is not supported + * , and this bit must be set to '0' +*/ #undef DDRC_MSTR_BURSTCHOP_DEFVAL #undef DDRC_MSTR_BURSTCHOP_SHIFT #undef DDRC_MSTR_BURSTCHOP_MASK -#define DDRC_MSTR_BURSTCHOP_DEFVAL 0x03040001 -#define DDRC_MSTR_BURSTCHOP_SHIFT 9 -#define DDRC_MSTR_BURSTCHOP_MASK 0x00000200U +#define DDRC_MSTR_BURSTCHOP_DEFVAL 0x03040001 +#define DDRC_MSTR_BURSTCHOP_SHIFT 9 +#define DDRC_MSTR_BURSTCHOP_MASK 0x00000200U -/*Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 device in use Present only in designs configured to su - port LPDDR4.*/ +/* +* Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 d + * evice in use Present only in designs configured to support LPDDR4. +*/ #undef DDRC_MSTR_LPDDR4_DEFVAL #undef DDRC_MSTR_LPDDR4_SHIFT #undef DDRC_MSTR_LPDDR4_MASK -#define DDRC_MSTR_LPDDR4_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR4_SHIFT 5 -#define DDRC_MSTR_LPDDR4_MASK 0x00000020U +#define DDRC_MSTR_LPDDR4_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR4_SHIFT 5 +#define DDRC_MSTR_LPDDR4_MASK 0x00000020U -/*Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device in use Present only in designs configured to support - DR4.*/ +/* +* Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device + * in use Present only in designs configured to support DDR4. +*/ #undef DDRC_MSTR_DDR4_DEFVAL #undef DDRC_MSTR_DDR4_SHIFT #undef DDRC_MSTR_DDR4_MASK -#define DDRC_MSTR_DDR4_DEFVAL 0x03040001 -#define DDRC_MSTR_DDR4_SHIFT 4 -#define DDRC_MSTR_DDR4_MASK 0x00000010U +#define DDRC_MSTR_DDR4_DEFVAL 0x03040001 +#define DDRC_MSTR_DDR4_SHIFT 4 +#define DDRC_MSTR_DDR4_MASK 0x00000010U -/*Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 device in use Present only in designs configured to su - port LPDDR3.*/ +/* +* Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 d + * evice in use Present only in designs configured to support LPDDR3. +*/ #undef DDRC_MSTR_LPDDR3_DEFVAL #undef DDRC_MSTR_LPDDR3_SHIFT #undef DDRC_MSTR_LPDDR3_MASK -#define DDRC_MSTR_LPDDR3_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR3_SHIFT 3 -#define DDRC_MSTR_LPDDR3_MASK 0x00000008U +#define DDRC_MSTR_LPDDR3_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR3_SHIFT 3 +#define DDRC_MSTR_LPDDR3_MASK 0x00000008U -/*Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 device in use Present only in designs configured to su - port LPDDR2.*/ +/* +* Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 d + * evice in use Present only in designs configured to support LPDDR2. +*/ #undef DDRC_MSTR_LPDDR2_DEFVAL #undef DDRC_MSTR_LPDDR2_SHIFT #undef DDRC_MSTR_LPDDR2_MASK -#define DDRC_MSTR_LPDDR2_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR2_SHIFT 2 -#define DDRC_MSTR_LPDDR2_MASK 0x00000004U +#define DDRC_MSTR_LPDDR2_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR2_SHIFT 2 +#define DDRC_MSTR_LPDDR2_MASK 0x00000004U -/*Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM device in use Only present in designs that support DDR3 - */ +/* +* Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM de + * vice in use Only present in designs that support DDR3. +*/ #undef DDRC_MSTR_DDR3_DEFVAL #undef DDRC_MSTR_DDR3_SHIFT #undef DDRC_MSTR_DDR3_MASK -#define DDRC_MSTR_DDR3_DEFVAL 0x03040001 -#define DDRC_MSTR_DDR3_SHIFT 0 -#define DDRC_MSTR_DDR3_MASK 0x00000001U +#define DDRC_MSTR_DDR3_DEFVAL 0x03040001 +#define DDRC_MSTR_DDR3_SHIFT 0 +#define DDRC_MSTR_DDR3_MASK 0x00000001U -/*Setting this register bit to 1 triggers a mode register read or write operation. When the MR operation is complete, the uMCTL - automatically clears this bit. The other register fields of this register must be written in a separate APB transaction, bef - re setting this mr_wr bit. It is recommended NOT to set this signal if in Init, Deep power-down or MPSM operating modes.*/ +/* +* Setting this register bit to 1 triggers a mode register read or write op + * eration. When the MR operation is complete, the uMCTL2 automatically cle + * ars this bit. The other register fields of this register must be written + * in a separate APB transaction, before setting this mr_wr bit. It is rec + * ommended NOT to set this signal if in Init, Deep power-down or MPSM oper + * ating modes. +*/ #undef DDRC_MRCTRL0_MR_WR_DEFVAL #undef DDRC_MRCTRL0_MR_WR_SHIFT #undef DDRC_MRCTRL0_MR_WR_MASK -#define DDRC_MRCTRL0_MR_WR_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_WR_SHIFT 31 -#define DDRC_MRCTRL0_MR_WR_MASK 0x80000000U +#define DDRC_MRCTRL0_MR_WR_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_WR_SHIFT 31 +#define DDRC_MRCTRL0_MR_WR_MASK 0x80000000U -/*Address of the mode register that is to be written to. - 0000 - MR0 - 0001 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 010 - - MR5 - 0110 - MR6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data for mode register addressing in LPD - R2/LPDDR3/LPDDR4) This signal is also used for writing to control words of RDIMMs. In that case, it corresponds to the bank a - dress bits sent to the RDIMM In case of DDR4, the bit[3:2] corresponds to the bank group bits. Therefore, the bit[3] as well - s the bit[2:0] must be set to an appropriate value which is considered both the Address Mirroring of UDIMMs/RDIMMs and the Ou - put Inversion of RDIMMs.*/ +/* +* Address of the mode register that is to be written to. - 0000 - MR0 - 00 + * 01 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 0101 - MR5 - 0110 - MR + * 6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data + * for mode register addressing in LPDDR2/LPDDR3/LPDDR4) This signal is als + * o used for writing to control words of RDIMMs. In that case, it correspo + * nds to the bank address bits sent to the RDIMM In case of DDR4, the bit[ + * 3:2] corresponds to the bank group bits. Therefore, the bit[3] as well a + * s the bit[2:0] must be set to an appropriate value which is considered b + * oth the Address Mirroring of UDIMMs/RDIMMs and the Output Inversion of R + * DIMMs. +*/ #undef DDRC_MRCTRL0_MR_ADDR_DEFVAL #undef DDRC_MRCTRL0_MR_ADDR_SHIFT #undef DDRC_MRCTRL0_MR_ADDR_MASK -#define DDRC_MRCTRL0_MR_ADDR_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_ADDR_SHIFT 12 -#define DDRC_MRCTRL0_MR_ADDR_MASK 0x0000F000U +#define DDRC_MRCTRL0_MR_ADDR_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_ADDR_SHIFT 12 +#define DDRC_MRCTRL0_MR_ADDR_MASK 0x0000F000U -/*Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desired to access all ranks, so all bits should be set to 1 - However, for multi-rank UDIMMs/RDIMMs which implement address mirroring, it may be necessary to access ranks individually. E - amples (assume uMCTL2 is configured for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x5 - select ranks - and 2 - 0xA - select ranks 1 and 3 - 0xF - select ranks 0, 1, 2 and 3*/ +/* +* Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desire + * d to access all ranks, so all bits should be set to 1. However, for mult + * i-rank UDIMMs/RDIMMs which implement address mirroring, it may be necess + * ary to access ranks individually. Examples (assume uMCTL2 is configured + * for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x + * 5 - select ranks 0 and 2 - 0xA - select ranks 1 and 3 - 0xF - select ran + * ks 0, 1, 2 and 3 +*/ #undef DDRC_MRCTRL0_MR_RANK_DEFVAL #undef DDRC_MRCTRL0_MR_RANK_SHIFT #undef DDRC_MRCTRL0_MR_RANK_MASK -#define DDRC_MRCTRL0_MR_RANK_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_RANK_SHIFT 4 -#define DDRC_MRCTRL0_MR_RANK_MASK 0x00000030U +#define DDRC_MRCTRL0_MR_RANK_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_RANK_SHIFT 4 +#define DDRC_MRCTRL0_MR_RANK_MASK 0x00000030U -/*Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 before automatic SDRAM initialization routine or not. - or DDR4, this bit can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM initialization. For LPDDR4, this bit ca - be used to program additional mode registers before automatic SDRAM initialization if necessary. Note: This must be cleared - o 0 after completing Software operation. Otherwise, SDRAM initialization routine will not re-start. - 0 - Software interventi - n is not allowed - 1 - Software intervention is allowed*/ +/* +* Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 b + * efore automatic SDRAM initialization routine or not. For DDR4, this bit + * can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM init + * ialization. For LPDDR4, this bit can be used to program additional mode + * registers before automatic SDRAM initialization if necessary. Note: This + * must be cleared to 0 after completing Software operation. Otherwise, SD + * RAM initialization routine will not re-start. - 0 - Software interventio + * n is not allowed - 1 - Software intervention is allowed +*/ #undef DDRC_MRCTRL0_SW_INIT_INT_DEFVAL #undef DDRC_MRCTRL0_SW_INIT_INT_SHIFT #undef DDRC_MRCTRL0_SW_INIT_INT_MASK -#define DDRC_MRCTRL0_SW_INIT_INT_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_SW_INIT_INT_SHIFT 3 -#define DDRC_MRCTRL0_SW_INIT_INT_MASK 0x00000008U +#define DDRC_MRCTRL0_SW_INIT_INT_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_SW_INIT_INT_SHIFT 3 +#define DDRC_MRCTRL0_SW_INIT_INT_MASK 0x00000008U -/*Indicates whether the mode register operation is MRS in PDA mode or not - 0 - MRS - 1 - MRS in Per DRAM Addressability mode*/ +/* +* Indicates whether the mode register operation is MRS in PDA mode or not + * - 0 - MRS - 1 - MRS in Per DRAM Addressability mode +*/ #undef DDRC_MRCTRL0_PDA_EN_DEFVAL #undef DDRC_MRCTRL0_PDA_EN_SHIFT #undef DDRC_MRCTRL0_PDA_EN_MASK -#define DDRC_MRCTRL0_PDA_EN_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_PDA_EN_SHIFT 2 -#define DDRC_MRCTRL0_PDA_EN_MASK 0x00000004U +#define DDRC_MRCTRL0_PDA_EN_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_PDA_EN_SHIFT 2 +#define DDRC_MRCTRL0_PDA_EN_MASK 0x00000004U -/*Indicates whether the mode register operation is MRS or WR/RD for MPR (only supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR*/ +/* +* Indicates whether the mode register operation is MRS or WR/RD for MPR (o + * nly supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR +*/ #undef DDRC_MRCTRL0_MPR_EN_DEFVAL #undef DDRC_MRCTRL0_MPR_EN_SHIFT #undef DDRC_MRCTRL0_MPR_EN_MASK -#define DDRC_MRCTRL0_MPR_EN_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MPR_EN_SHIFT 1 -#define DDRC_MRCTRL0_MPR_EN_MASK 0x00000002U +#define DDRC_MRCTRL0_MPR_EN_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MPR_EN_SHIFT 1 +#define DDRC_MRCTRL0_MPR_EN_MASK 0x00000002U -/*Indicates whether the mode register operation is read or write. Only used for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Re - d*/ +/* +* Indicates whether the mode register operation is read or write. Only use + * d for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Read +*/ #undef DDRC_MRCTRL0_MR_TYPE_DEFVAL #undef DDRC_MRCTRL0_MR_TYPE_SHIFT #undef DDRC_MRCTRL0_MR_TYPE_MASK -#define DDRC_MRCTRL0_MR_TYPE_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_TYPE_SHIFT 0 -#define DDRC_MRCTRL0_MR_TYPE_MASK 0x00000001U +#define DDRC_MRCTRL0_MR_TYPE_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_TYPE_SHIFT 0 +#define DDRC_MRCTRL0_MR_TYPE_MASK 0x00000001U -/*Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating uses +2. - 2 - Derating uses +3. - 3 - Derating uses +4 - Present only in designs configured to support LPDDR4. The required number of cycles for derating can be determined by dividi - g 3.75ns by the core_ddrc_core_clk period, and rounding up the next integer.*/ +/* +* Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating us + * es +2. - 2 - Derating uses +3. - 3 - Derating uses +4. Present only in d + * esigns configured to support LPDDR4. The required number of cycles for d + * erating can be determined by dividing 3.75ns by the core_ddrc_core_clk p + * eriod, and rounding up the next integer. +*/ #undef DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL #undef DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT #undef DDRC_DERATEEN_RC_DERATE_VALUE_MASK -#define DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT 8 -#define DDRC_DERATEEN_RC_DERATE_VALUE_MASK 0x00000300U +#define DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT 8 +#define DDRC_DERATEEN_RC_DERATE_VALUE_MASK 0x00000300U -/*Derate byte Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 Indicates which byte of the MRR data is used f - r derating. The maximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH.*/ +/* +* Derate byte Present only in designs configured to support LPDDR2/LPDDR3/ + * LPDDR4 Indicates which byte of the MRR data is used for derating. The ma + * ximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. +*/ #undef DDRC_DERATEEN_DERATE_BYTE_DEFVAL #undef DDRC_DERATEEN_DERATE_BYTE_SHIFT #undef DDRC_DERATEEN_DERATE_BYTE_MASK -#define DDRC_DERATEEN_DERATE_BYTE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_BYTE_SHIFT 4 -#define DDRC_DERATEEN_DERATE_BYTE_MASK 0x000000F0U +#define DDRC_DERATEEN_DERATE_BYTE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_BYTE_SHIFT 4 +#define DDRC_DERATEEN_DERATE_BYTE_MASK 0x000000F0U -/*Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present only in designs configured to support LPDDR2/LPDDR3/LPDD - 4 Set to 0 for all LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ddrc_core_clk period. Can be 0 or 1 - for LPDDR3/LPDDR4, depending if +1.875 ns is less than a core_ddrc_core_clk period or not.*/ +/* +* Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present onl + * y in designs configured to support LPDDR2/LPDDR3/LPDDR4 Set to 0 for all + * LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ + * ddrc_core_clk period. Can be 0 or 1 for LPDDR3/LPDDR4, depending if +1.8 + * 75 ns is less than a core_ddrc_core_clk period or not. +*/ #undef DDRC_DERATEEN_DERATE_VALUE_DEFVAL #undef DDRC_DERATEEN_DERATE_VALUE_SHIFT #undef DDRC_DERATEEN_DERATE_VALUE_MASK -#define DDRC_DERATEEN_DERATE_VALUE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_VALUE_SHIFT 1 -#define DDRC_DERATEEN_DERATE_VALUE_MASK 0x00000002U +#define DDRC_DERATEEN_DERATE_VALUE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_VALUE_SHIFT 1 +#define DDRC_DERATEEN_DERATE_VALUE_MASK 0x00000002U -/*Enables derating - 0 - Timing parameter derating is disabled - 1 - Timing parameter derating is enabled using MR4 read value. - Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set to '0' for non-LPDDR2/LPDDR3/LPDDR4 - mode.*/ +/* +* Enables derating - 0 - Timing parameter derating is disabled - 1 - Timin + * g parameter derating is enabled using MR4 read value. Present only in de + * signs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set + * to '0' for non-LPDDR2/LPDDR3/LPDDR4 mode. +*/ #undef DDRC_DERATEEN_DERATE_ENABLE_DEFVAL #undef DDRC_DERATEEN_DERATE_ENABLE_SHIFT #undef DDRC_DERATEEN_DERATE_ENABLE_MASK -#define DDRC_DERATEEN_DERATE_ENABLE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_ENABLE_SHIFT 0 -#define DDRC_DERATEEN_DERATE_ENABLE_MASK 0x00000001U +#define DDRC_DERATEEN_DERATE_ENABLE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_ENABLE_SHIFT 0 +#define DDRC_DERATEEN_DERATE_ENABLE_MASK 0x00000001U -/*Interval between two MR4 reads, used to derate the timing parameters. Present only in designs configured to support LPDDR2/LP - DR3/LPDDR4. This register must not be set to zero*/ +/* +* Interval between two MR4 reads, used to derate the timing parameters. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4. This r + * egister must not be set to zero +*/ #undef DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL #undef DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT #undef DDRC_DERATEINT_MR4_READ_INTERVAL_MASK -#define DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL -#define DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT 0 -#define DDRC_DERATEINT_MR4_READ_INTERVAL_MASK 0xFFFFFFFFU +#define DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL +#define DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT 0 +#define DDRC_DERATEINT_MR4_READ_INTERVAL_MASK 0xFFFFFFFFU -/*Self refresh state is an intermediate state to enter to Self refresh power down state or exit Self refresh power down state f - r LPDDR4. This register controls transition from the Self refresh state. - 1 - Prohibit transition from Self refresh state - - - Allow transition from Self refresh state*/ +/* +* Self refresh state is an intermediate state to enter to Self refresh pow + * er down state or exit Self refresh power down state for LPDDR4. This reg + * ister controls transition from the Self refresh state. - 1 - Prohibit tr + * ansition from Self refresh state - 0 - Allow transition from Self refres + * h state +*/ #undef DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL #undef DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT #undef DDRC_PWRCTL_STAY_IN_SELFREF_MASK -#define DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL 0x00000000 -#define DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT 6 -#define DDRC_PWRCTL_STAY_IN_SELFREF_MASK 0x00000040U +#define DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL 0x00000000 +#define DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT 6 +#define DDRC_PWRCTL_STAY_IN_SELFREF_MASK 0x00000040U -/*A value of 1 to this register causes system to move to Self Refresh state immediately, as long as it is not in INIT or DPD/MP - M operating_mode. This is referred to as Software Entry/Exit to Self Refresh. - 1 - Software Entry to Self Refresh - 0 - Soft - are Exit from Self Refresh*/ +/* +* A value of 1 to this register causes system to move to Self Refresh stat + * e immediately, as long as it is not in INIT or DPD/MPSM operating_mode. + * This is referred to as Software Entry/Exit to Self Refresh. - 1 - Softwa + * re Entry to Self Refresh - 0 - Software Exit from Self Refresh +*/ #undef DDRC_PWRCTL_SELFREF_SW_DEFVAL #undef DDRC_PWRCTL_SELFREF_SW_SHIFT #undef DDRC_PWRCTL_SELFREF_SW_MASK -#define DDRC_PWRCTL_SELFREF_SW_DEFVAL 0x00000000 -#define DDRC_PWRCTL_SELFREF_SW_SHIFT 5 -#define DDRC_PWRCTL_SELFREF_SW_MASK 0x00000020U +#define DDRC_PWRCTL_SELFREF_SW_DEFVAL 0x00000000 +#define DDRC_PWRCTL_SELFREF_SW_SHIFT 5 +#define DDRC_PWRCTL_SELFREF_SW_MASK 0x00000020U -/*When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode when the transaction store is empty. This register m - st be reset to '0' to bring uMCTL2 out of maximum power saving mode. Present only in designs configured to support DDR4. For - on-DDR4, this register should not be set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if the PHY parameter - DWC_AC_CS_USE is disabled, as the MPSM exit sequence requires the chip-select signal to toggle. FOR PERFORMANCE ONLY.*/ +/* +* When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode + * when the transaction store is empty. This register must be reset to '0' + * to bring uMCTL2 out of maximum power saving mode. Present only in desig + * ns configured to support DDR4. For non-DDR4, this register should not be + * set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if + * the PHY parameter DWC_AC_CS_USE is disabled, as the MPSM exit sequence r + * equires the chip-select signal to toggle. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRCTL_MPSM_EN_DEFVAL #undef DDRC_PWRCTL_MPSM_EN_SHIFT #undef DDRC_PWRCTL_MPSM_EN_MASK -#define DDRC_PWRCTL_MPSM_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_MPSM_EN_SHIFT 4 -#define DDRC_PWRCTL_MPSM_EN_MASK 0x00000010U +#define DDRC_PWRCTL_MPSM_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_MPSM_EN_SHIFT 4 +#define DDRC_PWRCTL_MPSM_EN_MASK 0x00000010U -/*Enable the assertion of dfi_dram_clk_disable whenever a clock is not required by the SDRAM. If set to 0, dfi_dram_clk_disable - is never asserted. Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only be asserted in Self Refresh. In DD - 4, can be asserted in following: - in Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, can be asserted in - ollowing: - in Self Refresh - in Power Down - in Deep Power Down - during Normal operation (Clock Stop) In LPDDR4, can be ass - rted in following: - in Self Refresh Power Down - in Power Down - during Normal operation (Clock Stop)*/ +/* +* Enable the assertion of dfi_dram_clk_disable whenever a clock is not req + * uired by the SDRAM. If set to 0, dfi_dram_clk_disable is never asserted. + * Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only + * be asserted in Self Refresh. In DDR4, can be asserted in following: - i + * n Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, ca + * n be asserted in following: - in Self Refresh - in Power Down - in Deep + * Power Down - during Normal operation (Clock Stop) In LPDDR4, can be asse + * rted in following: - in Self Refresh Power Down - in Power Down - during + * Normal operation (Clock Stop) +*/ #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL 0x00000000 -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT 3 -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK 0x00000008U +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL 0x00000000 +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT 3 +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK 0x00000008U -/*When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the transaction store is empty. This register must be re - et to '0' to bring uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM initialization on deep power-down - xit. Present only in designs configured to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPDDR3, this registe - should not be set to 1. FOR PERFORMANCE ONLY.*/ +/* +* When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the + * transaction store is empty. This register must be reset to '0' to bring + * uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM + * initialization on deep power-down exit. Present only in designs configu + * red to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPD + * DR3, this register should not be set to 1. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT 2 -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK 0x00000004U +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT 2 +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK 0x00000004U -/*If true then the uMCTL2 goes into power-down after a programmable number of cycles 'maximum idle clocks before power down' (P - RTMG.powerdown_to_x32). This register bit may be re-programmed during the course of normal operation.*/ +/* +* If true then the uMCTL2 goes into power-down after a programmable number + * of cycles 'maximum idle clocks before power down' (PWRTMG.powerdown_to_ + * x32). This register bit may be re-programmed during the course of normal + * operation. +*/ #undef DDRC_PWRCTL_POWERDOWN_EN_DEFVAL #undef DDRC_PWRCTL_POWERDOWN_EN_SHIFT #undef DDRC_PWRCTL_POWERDOWN_EN_MASK -#define DDRC_PWRCTL_POWERDOWN_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_POWERDOWN_EN_SHIFT 1 -#define DDRC_PWRCTL_POWERDOWN_EN_MASK 0x00000002U +#define DDRC_PWRCTL_POWERDOWN_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_POWERDOWN_EN_SHIFT 1 +#define DDRC_PWRCTL_POWERDOWN_EN_MASK 0x00000002U -/*If true then the uMCTL2 puts the SDRAM into Self Refresh after a programmable number of cycles 'maximum idle clocks before Se - f Refresh (PWRTMG.selfref_to_x32)'. This register bit may be re-programmed during the course of normal operation.*/ +/* +* If true then the uMCTL2 puts the SDRAM into Self Refresh after a program + * mable number of cycles 'maximum idle clocks before Self Refresh (PWRTMG. + * selfref_to_x32)'. This register bit may be re-programmed during the cour + * se of normal operation. +*/ #undef DDRC_PWRCTL_SELFREF_EN_DEFVAL #undef DDRC_PWRCTL_SELFREF_EN_SHIFT #undef DDRC_PWRCTL_SELFREF_EN_MASK -#define DDRC_PWRCTL_SELFREF_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_SELFREF_EN_SHIFT 0 -#define DDRC_PWRCTL_SELFREF_EN_MASK 0x00000001U +#define DDRC_PWRCTL_SELFREF_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_SELFREF_EN_SHIFT 0 +#define DDRC_PWRCTL_SELFREF_EN_MASK 0x00000001U -/*After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into Self Refresh. This must be enabled in - he PWRCTL.selfref_en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY.*/ +/* +* After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into Self Refresh. This must be enabled in the PWRCTL.selfref_ + * en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL #undef DDRC_PWRTMG_SELFREF_TO_X32_SHIFT #undef DDRC_PWRTMG_SELFREF_TO_X32_MASK -#define DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL 0x00402010 -#define DDRC_PWRTMG_SELFREF_TO_X32_SHIFT 16 -#define DDRC_PWRTMG_SELFREF_TO_X32_MASK 0x00FF0000U +#define DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL 0x00402010 +#define DDRC_PWRTMG_SELFREF_TO_X32_SHIFT 16 +#define DDRC_PWRTMG_SELFREF_TO_X32_MASK 0x00FF0000U -/*Minimum deep power-down time. For mDDR, value from the JEDEC specification is 0 as mDDR exits from deep power-down mode immed - ately after PWRCTL.deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDEC specification is 500us. Unit: Mul - iples of 4096 clocks. Present only in designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE ONLY.*/ +/* +* Minimum deep power-down time. For mDDR, value from the JEDEC specificati + * on is 0 as mDDR exits from deep power-down mode immediately after PWRCTL + * .deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDE + * C specification is 500us. Unit: Multiples of 4096 clocks. Present only i + * n designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE + * ONLY. +*/ #undef DDRC_PWRTMG_T_DPD_X4096_DEFVAL #undef DDRC_PWRTMG_T_DPD_X4096_SHIFT #undef DDRC_PWRTMG_T_DPD_X4096_MASK -#define DDRC_PWRTMG_T_DPD_X4096_DEFVAL 0x00402010 -#define DDRC_PWRTMG_T_DPD_X4096_SHIFT 8 -#define DDRC_PWRTMG_T_DPD_X4096_MASK 0x0000FF00U +#define DDRC_PWRTMG_T_DPD_X4096_DEFVAL 0x00402010 +#define DDRC_PWRTMG_T_DPD_X4096_SHIFT 8 +#define DDRC_PWRTMG_T_DPD_X4096_MASK 0x0000FF00U -/*After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into power-down. This must be enabled in th - PWRCTL.powerdown_en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY.*/ +/* +* After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into power-down. This must be enabled in the PWRCTL.powerdown_ + * en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL #undef DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT #undef DDRC_PWRTMG_POWERDOWN_TO_X32_MASK -#define DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL 0x00402010 -#define DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT 0 -#define DDRC_PWRTMG_POWERDOWN_TO_X32_MASK 0x0000001FU +#define DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL 0x00402010 +#define DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT 0 +#define DDRC_PWRTMG_POWERDOWN_TO_X32_MASK 0x0000001FU -/*Threshold value in number of clock cycles before the critical refresh or page timer expires. A critical refresh is to be issu - d before this threshold is reached. It is recommended that this not be changed from the default value, currently shown as 0x2 - It must always be less than internally used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally used t_rfc_nom_x32 - may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating is enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_ - om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clocks.*/ +/* +* Threshold value in number of clock cycles before the critical refresh or + * page timer expires. A critical refresh is to be issued before this thre + * shold is reached. It is recommended that this not be changed from the de + * fault value, currently shown as 0x2. It must always be less than interna + * lly used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally u + * sed t_rfc_nom_x32 may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating i + * s enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_n + * om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clo + * cks. +*/ #undef DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT #undef DDRC_RFSHCTL0_REFRESH_MARGIN_MASK -#define DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT 20 -#define DDRC_RFSHCTL0_REFRESH_MARGIN_MASK 0x00F00000U +#define DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT 20 +#define DDRC_RFSHCTL0_REFRESH_MARGIN_MASK 0x00F00000U -/*If the refresh timer (tRFCnom, also known as tREFI) has expired at least once, but it has not expired (RFSHCTL0.refresh_burst - 1) times yet, then a speculative refresh may be performed. A speculative refresh is a refresh performed at a time when refres - would be useful, but before it is absolutely required. When the SDRAM bus is idle for a period of time determined by this RF - HCTL0.refresh_to_x32 and the refresh timer has expired at least once since the last refresh, then a speculative refresh is pe - formed. Speculative refreshes continues successively until there are no refreshes pending or until new reads or writes are is - ued to the uMCTL2. FOR PERFORMANCE ONLY.*/ +/* +* If the refresh timer (tRFCnom, also known as tREFI) has expired at least + * once, but it has not expired (RFSHCTL0.refresh_burst+1) times yet, then + * a speculative refresh may be performed. A speculative refresh is a refr + * esh performed at a time when refresh would be useful, but before it is a + * bsolutely required. When the SDRAM bus is idle for a period of time dete + * rmined by this RFSHCTL0.refresh_to_x32 and the refresh timer has expired + * at least once since the last refresh, then a speculative refresh is per + * formed. Speculative refreshes continues successively until there are no + * refreshes pending or until new reads or writes are issued to the uMCTL2. + * FOR PERFORMANCE ONLY. +*/ #undef DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT #undef DDRC_RFSHCTL0_REFRESH_TO_X32_MASK -#define DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT 12 -#define DDRC_RFSHCTL0_REFRESH_TO_X32_MASK 0x0001F000U +#define DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT 12 +#define DDRC_RFSHCTL0_REFRESH_TO_X32_MASK 0x0001F000U -/*The programmed value + 1 is the number of refresh timeouts that is allowed to accumulate before traffic is blocked and the re - reshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of re - reshes. Therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for - RFSHCTL.refresh_burst slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshe - . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh For information on burst refresh feature refer to se - tion 3.9 of DDR2 JEDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always per-rank and not per-bank. The rank r - fresh can be accumulated over 8*tREFI cycles using the burst refresh feature. In DDR4 mode, according to Fine Granularity fea - ure, 8 refreshes can be postponed in 1X mode, 16 refreshes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upd - tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ensure that tRFCmax is not violated due to a PHY-initiat - d update occurring shortly before a refresh burst was due. In this situation, the refresh burst will be delayed until the PHY - initiated update is complete.*/ +/* +* The programmed value + 1 is the number of refresh timeouts that is allow + * ed to accumulate before traffic is blocked and the refreshes are forced + * to execute. Closing pages to perform a refresh is a one-time penalty tha + * t must be paid for each group of refreshes. Therefore, performing refres + * hes in a burst reduces the per-refresh penalty of these page closings. H + * igher numbers for RFSHCTL.refresh_burst slightly increases utilization; + * lower numbers decreases the worst-case latency associated with refreshes + * . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh + * For information on burst refresh feature refer to section 3.9 of DDR2 J + * EDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always pe + * r-rank and not per-bank. The rank refresh can be accumulated over 8*tREF + * I cycles using the burst refresh feature. In DDR4 mode, according to Fin + * e Granularity feature, 8 refreshes can be postponed in 1X mode, 16 refre + * shes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upda + * tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ens + * ure that tRFCmax is not violated due to a PHY-initiated update occurring + * shortly before a refresh burst was due. In this situation, the refresh + * burst will be delayed until the PHY-initiated update is complete. +*/ #undef DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_BURST_SHIFT #undef DDRC_RFSHCTL0_REFRESH_BURST_MASK -#define DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_BURST_SHIFT 4 -#define DDRC_RFSHCTL0_REFRESH_BURST_MASK 0x000001F0U +#define DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_BURST_SHIFT 4 +#define DDRC_RFSHCTL0_REFRESH_BURST_MASK 0x000001F0U -/*- 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows traffic to flow to other banks. Per bank refresh is n - t supported by all LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Present only in designs configured to - support LPDDR2/LPDDR3/LPDDR4*/ +/* +* - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows + * traffic to flow to other banks. Per bank refresh is not supported by all + * LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4 +*/ #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT 2 -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK 0x00000004U +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT 2 +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK 0x00000004U -/*Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fixed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x ( - ot supported) - 110 - Enable on the fly 4x (not supported) - Everything else - reserved Note: The on-the-fly modes is not sup - orted in this version of the uMCTL2. Note: This must be set up while the Controller is in reset or while the Controller is in - self-refresh mode. Changing this during normal operation is not allowed. Making this a dynamic register will be supported in - uture version of the uMCTL2.*/ +/* +* Refresh timer start for rank 1 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_DEFVAL +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_SHIFT +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_MASK +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_DEFVAL 0x00000000 +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_SHIFT 16 +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_MASK 0x0FFF0000U + +/* +* Refresh timer start for rank 0 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_DEFVAL +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_SHIFT +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_MASK +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_DEFVAL 0x00000000 +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_SHIFT 0 +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_MASK 0x00000FFFU + +/* +* Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fix + * ed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x (not supported) - 11 + * 0 - Enable on the fly 4x (not supported) - Everything else - reserved No + * te: The on-the-fly modes is not supported in this version of the uMCTL2. + * Note: This must be set up while the Controller is in reset or while the + * Controller is in self-refresh mode. Changing this during normal operati + * on is not allowed. Making this a dynamic register will be supported in f + * uture version of the uMCTL2. +*/ #undef DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL #undef DDRC_RFSHCTL3_REFRESH_MODE_SHIFT #undef DDRC_RFSHCTL3_REFRESH_MODE_MASK -#define DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_REFRESH_MODE_SHIFT 4 -#define DDRC_RFSHCTL3_REFRESH_MODE_MASK 0x00000070U +#define DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_REFRESH_MODE_SHIFT 4 +#define DDRC_RFSHCTL3_REFRESH_MODE_MASK 0x00000070U -/*Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that the refresh register(s) have been updated. The value - s automatically updated when exiting reset, so it does not need to be toggled initially.*/ +/* +* Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that + * the refresh register(s) have been updated. The value is automatically up + * dated when exiting reset, so it does not need to be toggled initially. +*/ #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT 1 -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK 0x00000002U +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT 1 +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK 0x00000002U -/*When '1', disable auto-refresh generated by the uMCTL2. When auto-refresh is disabled, the SoC core must generate refreshes u - ing the registers reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh and reg_ddrc_rank3_refresh. When dis - auto_refresh transitions from 0 to 1, any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 CRC/parity retry - is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), disable auto-refresh is not supported, and this bit must be set to '0'. - his register field is changeable on the fly.*/ +/* +* When '1', disable auto-refresh generated by the uMCTL2. When auto-refres + * h is disabled, the SoC core must generate refreshes using the registers + * reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh a + * nd reg_ddrc_rank3_refresh. When dis_auto_refresh transitions from 0 to 1 + * , any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 + * CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d + * isable auto-refresh is not supported, and this bit must be set to '0'. T + * his register field is changeable on the fly. +*/ #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT 0 -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK 0x00000001U +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT 0 +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK 0x00000001U -/*tREFI: Average time interval between refreshes per rank (Specification: 7.8us for DDR2, DDR3 and DDR4. See JEDEC specificatio - for mDDR, LPDDR2, LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refreshes (RFSHCTL0.per_bank_refresh = 0 - , this register should be set to tREFIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this register should - e set to tREFIpb For configurations with MEMC_FREQ_RATIO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI va - ue is different depending on the refresh mode. The user should program the appropriate value from the spec based on the value - programmed in the refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be greater than RFSHTMG.t_rfc_min, and RFS - TMG.t_rfc_nom_x32 must be greater than 0x1. Unit: Multiples of 32 clocks.*/ +/* +* tREFI: Average time interval between refreshes per rank (Specification: + * 7.8us for DDR2, DDR3 and DDR4. See JEDEC specification for mDDR, LPDDR2, + * LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refre + * shes (RFSHCTL0.per_bank_refresh = 0), this register should be set to tRE + * FIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this + * register should be set to tREFIpb For configurations with MEMC_FREQ_RAT + * IO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI val + * ue is different depending on the refresh mode. The user should program t + * he appropriate value from the spec based on the value programmed in the + * refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be grea + * ter than RFSHTMG.t_rfc_min, and RFSHTMG.t_rfc_nom_x32 must be greater th + * an 0x1. Unit: Multiples of 32 clocks. +*/ #undef DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL #undef DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT #undef DDRC_RFSHTMG_T_RFC_NOM_X32_MASK -#define DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT 16 -#define DDRC_RFSHTMG_T_RFC_NOM_X32_MASK 0x0FFF0000U +#define DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT 16 +#define DDRC_RFSHTMG_T_RFC_NOM_X32_MASK 0x0FFF0000U -/*Used only when LPDDR3 memory type is connected. Should only be changed when uMCTL2 is in reset. Specifies whether to use the - REFBW parameter (required by some LPDDR3 devices which comply with earlier versions of the LPDDR3 JEDEC specification) or not - - 0 - tREFBW parameter not used - 1 - tREFBW parameter used*/ +/* +* Used only when LPDDR3 memory type is connected. Should only be changed w + * hen uMCTL2 is in reset. Specifies whether to use the tREFBW parameter (r + * equired by some LPDDR3 devices which comply with earlier versions of the + * LPDDR3 JEDEC specification) or not: - 0 - tREFBW parameter not used - 1 + * - tREFBW parameter used +*/ #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT 15 -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK 0x00008000U +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT 15 +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK 0x00008000U -/*tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_FREQ_RATIO=1 configurations, t_rfc_min should be set t - RoundUp(tRFCmin/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to RoundUp(RoundUp(tRFCmin/tCK)/2). In L - DDR2/LPDDR3/LPDDR4 mode: - if using all-bank refreshes, the tRFCmin value in the above equations is equal to tRFCab - if usin - per-bank refreshes, the tRFCmin value in the above equations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above - equations is different depending on the refresh mode (fixed 1X,2X,4X) and the device density. The user should program the app - opriate value from the spec based on the 'refresh_mode' and the device density that is used. Unit: Clocks.*/ +/* +* tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_F + * REQ_RATIO=1 configurations, t_rfc_min should be set to RoundUp(tRFCmin/t + * CK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to Ro + * undUp(RoundUp(tRFCmin/tCK)/2). In LPDDR2/LPDDR3/LPDDR4 mode: - if using + * all-bank refreshes, the tRFCmin value in the above equations is equal to + * tRFCab - if using per-bank refreshes, the tRFCmin value in the above eq + * uations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above + * equations is different depending on the refresh mode (fixed 1X,2X,4X) an + * d the device density. The user should program the appropriate value from + * the spec based on the 'refresh_mode' and the device density that is use + * d. Unit: Clocks. +*/ #undef DDRC_RFSHTMG_T_RFC_MIN_DEFVAL #undef DDRC_RFSHTMG_T_RFC_MIN_SHIFT #undef DDRC_RFSHTMG_T_RFC_MIN_MASK -#define DDRC_RFSHTMG_T_RFC_MIN_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_T_RFC_MIN_SHIFT 0 -#define DDRC_RFSHTMG_T_RFC_MIN_MASK 0x000003FFU +#define DDRC_RFSHTMG_T_RFC_MIN_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_T_RFC_MIN_SHIFT 0 +#define DDRC_RFSHTMG_T_RFC_MIN_MASK 0x000003FFU -/*Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_USE_RMW is defined*/ +/* +* Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_U + * SE_RMW is defined +*/ #undef DDRC_ECCCFG0_DIS_SCRUB_DEFVAL #undef DDRC_ECCCFG0_DIS_SCRUB_SHIFT #undef DDRC_ECCCFG0_DIS_SCRUB_MASK -#define DDRC_ECCCFG0_DIS_SCRUB_DEFVAL 0x00000000 -#define DDRC_ECCCFG0_DIS_SCRUB_SHIFT 4 -#define DDRC_ECCCFG0_DIS_SCRUB_MASK 0x00000010U +#define DDRC_ECCCFG0_DIS_SCRUB_DEFVAL 0x00000000 +#define DDRC_ECCCFG0_DIS_SCRUB_SHIFT 4 +#define DDRC_ECCCFG0_DIS_SCRUB_MASK 0x00000010U -/*ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED over 1 beat - all other settings are reserved for futur - use*/ +/* +* ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED ov + * er 1 beat - all other settings are reserved for future use +*/ #undef DDRC_ECCCFG0_ECC_MODE_DEFVAL #undef DDRC_ECCCFG0_ECC_MODE_SHIFT #undef DDRC_ECCCFG0_ECC_MODE_MASK -#define DDRC_ECCCFG0_ECC_MODE_DEFVAL 0x00000000 -#define DDRC_ECCCFG0_ECC_MODE_SHIFT 0 -#define DDRC_ECCCFG0_ECC_MODE_MASK 0x00000007U +#define DDRC_ECCCFG0_ECC_MODE_DEFVAL 0x00000000 +#define DDRC_ECCCFG0_ECC_MODE_SHIFT 0 +#define DDRC_ECCCFG0_ECC_MODE_MASK 0x00000007U -/*Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) data poisoning, if 1 -> 1-bit (correctable) data poison - ng, if ECCCFG1.data_poison_en=1*/ +/* +* Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) da + * ta poisoning, if 1 -> 1-bit (correctable) data poisoning, if ECCCFG1.dat + * a_poison_en=1 +*/ #undef DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL #undef DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT #undef DDRC_ECCCFG1_DATA_POISON_BIT_MASK -#define DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL 0x00000000 -#define DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT 1 -#define DDRC_ECCCFG1_DATA_POISON_BIT_MASK 0x00000002U +#define DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL 0x00000000 +#define DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT 1 +#define DDRC_ECCCFG1_DATA_POISON_BIT_MASK 0x00000002U -/*Enable ECC data poisoning - introduces ECC errors on writes to address specified by the ECCPOISONADDR0/1 registers*/ +/* +* Enable ECC data poisoning - introduces ECC errors on writes to address s + * pecified by the ECCPOISONADDR0/1 registers +*/ #undef DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL #undef DDRC_ECCCFG1_DATA_POISON_EN_SHIFT #undef DDRC_ECCCFG1_DATA_POISON_EN_MASK -#define DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL 0x00000000 -#define DDRC_ECCCFG1_DATA_POISON_EN_SHIFT 0 -#define DDRC_ECCCFG1_DATA_POISON_EN_MASK 0x00000001U +#define DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL 0x00000000 +#define DDRC_ECCCFG1_DATA_POISON_EN_SHIFT 0 +#define DDRC_ECCCFG1_DATA_POISON_EN_MASK 0x00000001U -/*The maximum number of DFI PHY clock cycles allowed from the assertion of the dfi_rddata_en signal to the assertion of each of - the corresponding bits of the dfi_rddata_valid signal. This corresponds to the DFI timing parameter tphy_rdlat. Refer to PHY - pecification for correct value. This value it only used for detecting read data timeout when DDR4 retry is enabled by CRCPARC - L1.crc_parity_retry_enable=1. Maximum supported value: - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ - dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mo - e ANDAND DFITMG0.dfi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_rdlat < 'd114 Unit: DFI Clocks*/ +/* +* The maximum number of DFI PHY clock cycles allowed from the assertion of + * the dfi_rddata_en signal to the assertion of each of the corresponding + * bits of the dfi_rddata_valid signal. This corresponds to the DFI timing + * parameter tphy_rdlat. Refer to PHY specification for correct value. This + * value it only used for detecting read data timeout when DDR4 retry is e + * nabled by CRCPARCTL1.crc_parity_retry_enable=1. Maximum supported value: + * - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_r + * dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 + * : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mode ANDAND DFITMG0.d + * fi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ + * rdlat < 'd114 Unit: DFI Clocks +*/ #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT 24 -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK 0x3F000000U +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT 24 +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK 0x3F000000U -/*After a Parity or CRC error is flagged on dfi_alert_n signal, the software has an option to read the mode registers in the DR - M before the hardware begins the retry process - 1: Wait for software to read/write the mode registers before hardware begins - the retry. After software is done with its operations, it will clear the alert interrupt register bit - 0: Hardware can begin - the retry right away after the dfi_alert_n pulse goes away. The value on this register is valid only when retry is enabled (P - RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if the software doesn't clear the interrupt register afte - handling the parity/CRC error, then the hardware will not begin the retry process and the system will hang. In the case of P - rity/CRC error, there are two possibilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persistent parity' mode re - ister bit is NOT set: the commands sent during retry and normal operation are executed without parity checking. The value in - he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent parity' mode register bit is SET: Parity checking is - one for commands sent during retry and normal operation. If multiple errors occur before MR5[4] is cleared, the error log in - PR Page 1 should be treated as 'Don't care'.*/ +/* +* After a Parity or CRC error is flagged on dfi_alert_n signal, the softwa + * re has an option to read the mode registers in the DRAM before the hardw + * are begins the retry process - 1: Wait for software to read/write the mo + * de registers before hardware begins the retry. After software is done wi + * th its operations, it will clear the alert interrupt register bit - 0: H + * ardware can begin the retry right away after the dfi_alert_n pulse goes + * away. The value on this register is valid only when retry is enabled (PA + * RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if t + * he software doesn't clear the interrupt register after handling the pari + * ty/CRC error, then the hardware will not begin the retry process and the + * system will hang. In the case of Parity/CRC error, there are two possib + * ilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persisten + * t parity' mode register bit is NOT set: the commands sent during retry a + * nd normal operation are executed without parity checking. The value in t + * he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent + * parity' mode register bit is SET: Parity checking is done for commands s + * ent during retry and normal operation. If multiple errors occur before M + * R5[4] is cleared, the error log in MPR Page 1 should be treated as 'Don' + * t care'. +*/ #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT 9 -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK 0x00000200U +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT 9 +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK 0x00000200U -/*- 1: Enable command retry mechanism in case of C/A Parity or CRC error - 0: Disable command retry mechanism when C/A Parity o - CRC features are enabled. Note that retry functionality is not supported if burst chop is enabled (MSTR.burstchop = 1) and/o - disable auto-refresh is enabled (RFSHCTL3.dis_auto_refresh = 1)*/ +/* +* - 1: Enable command retry mechanism in case of C/A Parity or CRC error - + * 0: Disable command retry mechanism when C/A Parity or CRC features are + * enabled. Note that retry functionality is not supported if burst chop is + * enabled (MSTR.burstchop = 1) and/or disable auto-refresh is enabled (RF + * SHCTL3.dis_auto_refresh = 1) +*/ #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT 8 -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK 0x00000100U +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT 8 +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK 0x00000100U -/*CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC not includes DM signal Present only in designs configur - d to support DDR4.*/ +/* +* CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC no + * t includes DM signal Present only in designs configured to support DDR4. +*/ #undef DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL #undef DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT #undef DDRC_CRCPARCTL1_CRC_INC_DM_MASK -#define DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT 7 -#define DDRC_CRCPARCTL1_CRC_INC_DM_MASK 0x00000080U +#define DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT 7 +#define DDRC_CRCPARCTL1_CRC_INC_DM_MASK 0x00000080U -/*CRC enable Register - 1: Enable generation of CRC - 0: Disable generation of CRC The setting of this register should match th - CRC mode register setting in the DRAM.*/ +/* +* CRC enable Register - 1: Enable generation of CRC - 0: Disable generatio + * n of CRC The setting of this register should match the CRC mode register + * setting in the DRAM. +*/ #undef DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_CRC_ENABLE_MASK -#define DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT 4 -#define DDRC_CRCPARCTL1_CRC_ENABLE_MASK 0x00000010U +#define DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT 4 +#define DDRC_CRCPARCTL1_CRC_ENABLE_MASK 0x00000010U -/*C/A Parity enable register - 1: Enable generation of C/A parity and detection of C/A parity error - 0: Disable generation of - /A parity and disable detection of C/A parity error If RCD's parity error detection or SDRAM's parity detection is enabled, t - is register should be 1.*/ +/* +* C/A Parity enable register - 1: Enable generation of C/A parity and dete + * ction of C/A parity error - 0: Disable generation of C/A parity and disa + * ble detection of C/A parity error If RCD's parity error detection or SDR + * AM's parity detection is enabled, this register should be 1. +*/ #undef DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_PARITY_ENABLE_MASK -#define DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT 0 -#define DDRC_CRCPARCTL1_PARITY_ENABLE_MASK 0x00000001U +#define DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT 0 +#define DDRC_CRCPARCTL1_PARITY_ENABLE_MASK 0x00000001U -/*Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a parity error occurs. Recommended values - - tPAR_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT_PW.MAX/2 and round up to next inte - er value. Values of 0, 1 and 2 are illegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max.*/ +/* +* Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a parity error occurs. Recommended values: - tPAR_ALERT_PW.M + * AX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT + * _PW.MAX/2 and round up to next integer value. Values of 0, 1 and 2 are i + * llegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. +*/ #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT 16 -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK 0x01FF0000U +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT 16 +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK 0x01FF0000U -/*Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a CRC error occurs. Recommended values: - - tCRC_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW.MAX/2 and round up to next integer - value. Values of 0, 1 and 2 are illegal. This value must be less than CRCPARCTL2.t_par_alert_pw_max.*/ +/* +* Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a CRC error occurs. Recommended values: - tCRC_ALERT_PW.MAX + * For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW + * .MAX/2 and round up to next integer value. Values of 0, 1 and 2 are ille + * gal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. +*/ #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT 8 -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK 0x00001F00U +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT 8 +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK 0x00001F00U -/*Indicates the maximum duration in number of DRAM clock cycles for which a command should be held in the Command Retry FIFO be - ore it is popped out. Every location in the Command Retry FIFO has an associated down counting timer that will use this regis - er as the start value. The down counting starts when a command is loaded into the FIFO. The timer counts down every 4 DRAM cy - les. When the counter reaches zero, the entry is popped from the FIFO. All the counters are frozen, if a C/A Parity or CRC er - or occurs before the counter reaches zero. The counter is reset to 0, after all the commands in the FIFO are retried. Recomme - ded(minimum) values: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + tPAR_ALERT_ON - max + tPAR_UNKNOWN + PHY Alert Latency(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enabled/ Only CRC is en - bled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) - + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be in terms of DRAM Clock and round up Note 2: Board de - ay(Command/Alert_n) should be considered. Note 3: Use the worst case(longer) value for PHY Latencies/Board delay Note 4: The - ecommended values are minimum value to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max value can be set - to this register is defined below: - MEMC_BURST_LENGTH == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH- - Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_D - PTH-4 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CM - _FIFO_DEPTH-8 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 Full bus Mode (C - C=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mo - e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarte - bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEP - H-6 Values of 0, 1 and 2 are illegal.*/ +/* +* Indicates the maximum duration in number of DRAM clock cycles for which + * a command should be held in the Command Retry FIFO before it is popped o + * ut. Every location in the Command Retry FIFO has an associated down coun + * ting timer that will use this register as the start value. The down coun + * ting starts when a command is loaded into the FIFO. The timer counts dow + * n every 4 DRAM cycles. When the counter reaches zero, the entry is poppe + * d from the FIFO. All the counters are frozen, if a C/A Parity or CRC err + * or occurs before the counter reaches zero. The counter is reset to 0, af + * ter all the commands in the FIFO are retried. Recommended(minimum) value + * s: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + * + CAL + RDIMM delay + tPAR_ALERT_ON.max + tPAR_UNKNOWN + PHY Alert Laten + * cy(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enable + * d/ Only CRC is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + R + * DIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) + * + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be + * in terms of DRAM Clock and round up Note 2: Board delay(Command/Alert_n + * ) should be considered. Note 3: Use the worst case(longer) value for PHY + * Latencies/Board delay Note 4: The Recommended values are minimum value + * to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max + * value can be set to this register is defined below: - MEMC_BURST_LENGTH + * == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 + * Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half b + * us Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Half bus Mod + * e (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (C + * RC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-8 Quarter bus Mode (CRC= + * ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 + * Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full + * bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mod + * e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC + * =ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarter bus Mode (CRC=OFF + * ) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Ma + * x value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Values of 0, 1 and 2 are illegal + * . +*/ #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT 0 -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK 0x0000003FU +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT 0 +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK 0x0000003FU -/*If lower bit is enabled the SDRAM initialization routine is skipped. The upper bit decides what state the controller starts u - in when reset is removed - 00 - SDRAM Intialization routine is run after power-up - 01 - SDRAM Intialization routine is skip - ed after power-up. Controller starts up in Normal Mode - 11 - SDRAM Intialization routine is skipped after power-up. Controll - r starts up in Self-refresh Mode - 10 - SDRAM Intialization routine is run after power-up. Note: The only 2'b00 is supported - or LPDDR4 in this version of the uMCTL2.*/ +/* +* If lower bit is enabled the SDRAM initialization routine is skipped. The + * upper bit decides what state the controller starts up in when reset is + * removed - 00 - SDRAM Intialization routine is run after power-up - 01 - + * SDRAM Intialization routine is skipped after power-up. Controller starts + * up in Normal Mode - 11 - SDRAM Intialization routine is skipped after p + * ower-up. Controller starts up in Self-refresh Mode - 10 - SDRAM Intializ + * ation routine is run after power-up. Note: The only 2'b00 is supported f + * or LPDDR4 in this version of the uMCTL2. +*/ #undef DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL #undef DDRC_INIT0_SKIP_DRAM_INIT_SHIFT #undef DDRC_INIT0_SKIP_DRAM_INIT_MASK -#define DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL 0x0002004E -#define DDRC_INIT0_SKIP_DRAM_INIT_SHIFT 30 -#define DDRC_INIT0_SKIP_DRAM_INIT_MASK 0xC0000000U +#define DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL 0x0002004E +#define DDRC_INIT0_SKIP_DRAM_INIT_SHIFT 30 +#define DDRC_INIT0_SKIP_DRAM_INIT_MASK 0xC0000000U -/*Cycles to wait after driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clocks. DDR2 typically requires - 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDDR3 typically requires this to be pr - grammed for a delay of 200 us. LPDDR4 typically requires this to be programmed for a delay of 2 us. For configurations with M - MC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it up to next integer value.*/ +/* +* Cycles to wait after driving CKE high to start the SDRAM initialization + * sequence. Unit: 1024 clocks. DDR2 typically requires a 400 ns delay, req + * uiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDD + * R3 typically requires this to be programmed for a delay of 200 us. LPDDR + * 4 typically requires this to be programmed for a delay of 2 us. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divi + * ded by 2, and round it up to next integer value. +*/ #undef DDRC_INIT0_POST_CKE_X1024_DEFVAL #undef DDRC_INIT0_POST_CKE_X1024_SHIFT #undef DDRC_INIT0_POST_CKE_X1024_MASK -#define DDRC_INIT0_POST_CKE_X1024_DEFVAL 0x0002004E -#define DDRC_INIT0_POST_CKE_X1024_SHIFT 16 -#define DDRC_INIT0_POST_CKE_X1024_MASK 0x03FF0000U +#define DDRC_INIT0_POST_CKE_X1024_DEFVAL 0x0002004E +#define DDRC_INIT0_POST_CKE_X1024_SHIFT 16 +#define DDRC_INIT0_POST_CKE_X1024_MASK 0x03FF0000U -/*Cycles to wait after reset before driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clock cycles. DDR2 - pecifications typically require this to be programmed for a delay of >= 200 us. LPDDR2/LPDDR3: tINIT1 of 100 ns (min) LPDDR4: - tINIT3 of 2 ms (min) For configurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it u - to next integer value.*/ +/* +* Cycles to wait after reset before driving CKE high to start the SDRAM in + * itialization sequence. Unit: 1024 clock cycles. DDR2 specifications typi + * cally require this to be programmed for a delay of >= 200 us. LPDDR2/LPD + * DR3: tINIT1 of 100 ns (min) LPDDR4: tINIT3 of 2 ms (min) For configurati + * ons with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by + * 2, and round it up to next integer value. +*/ #undef DDRC_INIT0_PRE_CKE_X1024_DEFVAL #undef DDRC_INIT0_PRE_CKE_X1024_SHIFT #undef DDRC_INIT0_PRE_CKE_X1024_MASK -#define DDRC_INIT0_PRE_CKE_X1024_DEFVAL 0x0002004E -#define DDRC_INIT0_PRE_CKE_X1024_SHIFT 0 -#define DDRC_INIT0_PRE_CKE_X1024_MASK 0x00000FFFU +#define DDRC_INIT0_PRE_CKE_X1024_DEFVAL 0x0002004E +#define DDRC_INIT0_PRE_CKE_X1024_SHIFT 0 +#define DDRC_INIT0_PRE_CKE_X1024_MASK 0x00000FFFU -/*Number of cycles to assert SDRAM reset signal during init sequence. This is only present for designs supporting DDR3, DDR4 or - LPDDR4 devices. For use with a DDR PHY, this should be set to a minimum of 1*/ +/* +* Number of cycles to assert SDRAM reset signal during init sequence. This + * is only present for designs supporting DDR3, DDR4 or LPDDR4 devices. Fo + * r use with a DDR PHY, this should be set to a minimum of 1 +*/ #undef DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL #undef DDRC_INIT1_DRAM_RSTN_X1024_SHIFT #undef DDRC_INIT1_DRAM_RSTN_X1024_MASK -#define DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL 0x00000000 -#define DDRC_INIT1_DRAM_RSTN_X1024_SHIFT 16 -#define DDRC_INIT1_DRAM_RSTN_X1024_MASK 0x01FF0000U +#define DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL 0x00000000 +#define DDRC_INIT1_DRAM_RSTN_X1024_SHIFT 16 +#define DDRC_INIT1_DRAM_RSTN_X1024_MASK 0x01FF0000U -/*Cycles to wait after completing the SDRAM initialization sequence before starting the dynamic scheduler. Unit: Counts of a gl - bal timer that pulses every 32 clock cycles. There is no known specific requirement for this; it may be set to zero.*/ +/* +* Cycles to wait after completing the SDRAM initialization sequence before + * starting the dynamic scheduler. Unit: Counts of a global timer that pul + * ses every 32 clock cycles. There is no known specific requirement for th + * is; it may be set to zero. +*/ #undef DDRC_INIT1_FINAL_WAIT_X32_DEFVAL #undef DDRC_INIT1_FINAL_WAIT_X32_SHIFT #undef DDRC_INIT1_FINAL_WAIT_X32_MASK -#define DDRC_INIT1_FINAL_WAIT_X32_DEFVAL 0x00000000 -#define DDRC_INIT1_FINAL_WAIT_X32_SHIFT 8 -#define DDRC_INIT1_FINAL_WAIT_X32_MASK 0x00007F00U +#define DDRC_INIT1_FINAL_WAIT_X32_DEFVAL 0x00000000 +#define DDRC_INIT1_FINAL_WAIT_X32_SHIFT 8 +#define DDRC_INIT1_FINAL_WAIT_X32_MASK 0x00007F00U -/*Wait period before driving the OCD complete command to SDRAM. Unit: Counts of a global timer that pulses every 32 clock cycle - . There is no known specific requirement for this; it may be set to zero.*/ +/* +* Wait period before driving the OCD complete command to SDRAM. Unit: Coun + * ts of a global timer that pulses every 32 clock cycles. There is no know + * n specific requirement for this; it may be set to zero. +*/ #undef DDRC_INIT1_PRE_OCD_X32_DEFVAL #undef DDRC_INIT1_PRE_OCD_X32_SHIFT #undef DDRC_INIT1_PRE_OCD_X32_MASK -#define DDRC_INIT1_PRE_OCD_X32_DEFVAL 0x00000000 -#define DDRC_INIT1_PRE_OCD_X32_SHIFT 0 -#define DDRC_INIT1_PRE_OCD_X32_MASK 0x0000000FU +#define DDRC_INIT1_PRE_OCD_X32_DEFVAL 0x00000000 +#define DDRC_INIT1_PRE_OCD_X32_SHIFT 0 +#define DDRC_INIT1_PRE_OCD_X32_MASK 0x0000000FU -/*Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Unit: 32 clock cycles.*/ +/* +* Idle time after the reset command, tINIT4. Present only in designs confi + * gured to support LPDDR2. Unit: 32 clock cycles. +*/ #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL 0x00000D05 -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT 8 -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK 0x0000FF00U +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL 0x00000D05 +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT 8 +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK 0x0000FF00U -/*Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2/LPDDR3. Unit: 1 clock cyc - e. LPDDR2/LPDDR3 typically requires 5 x tCK delay.*/ +/* +* Time to wait after the first CKE high, tINIT2. Present only in designs c + * onfigured to support LPDDR2/LPDDR3. Unit: 1 clock cycle. LPDDR2/LPDDR3 t + * ypically requires 5 x tCK delay. +*/ #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL 0x00000D05 -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT 0 -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK 0x0000000FU +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL 0x00000D05 +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT 0 +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK 0x0000000FU -/*DDR2: Value to write to MR register. Bit 8 is for DLL and the setting here is ignored. The uMCTL2 sets this bit appropriately - DDR3/DDR4: Value loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LPDDR3/LPDDR4 - Value to write to MR1 - register*/ +/* +* DDR2: Value to write to MR register. Bit 8 is for DLL and the setting he + * re is ignored. The uMCTL2 sets this bit appropriately. DDR3/DDR4: Value + * loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LP + * DDR3/LPDDR4 - Value to write to MR1 register +*/ #undef DDRC_INIT3_MR_DEFVAL #undef DDRC_INIT3_MR_SHIFT #undef DDRC_INIT3_MR_MASK -#define DDRC_INIT3_MR_DEFVAL 0x00000510 -#define DDRC_INIT3_MR_SHIFT 16 -#define DDRC_INIT3_MR_MASK 0xFFFF0000U +#define DDRC_INIT3_MR_DEFVAL 0x00000510 +#define DDRC_INIT3_MR_SHIFT 16 +#define DDRC_INIT3_MR_MASK 0xFFFF0000U -/*DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setting in this register is ignored. The uMCTL2 sets those - bits appropriately. DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evaluation mode training is enabled, thi - bit is set appropriately by the uMCTL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/LPDDR3/LPDDR4 - V - lue to write to MR2 register*/ +/* +* DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setti + * ng in this register is ignored. The uMCTL2 sets those bits appropriately + * . DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evalu + * ation mode training is enabled, this bit is set appropriately by the uMC + * TL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/ + * LPDDR3/LPDDR4 - Value to write to MR2 register +*/ #undef DDRC_INIT3_EMR_DEFVAL #undef DDRC_INIT3_EMR_SHIFT #undef DDRC_INIT3_EMR_MASK -#define DDRC_INIT3_EMR_DEFVAL 0x00000510 -#define DDRC_INIT3_EMR_SHIFT 0 -#define DDRC_INIT3_EMR_MASK 0x0000FFFFU +#define DDRC_INIT3_EMR_DEFVAL 0x00000510 +#define DDRC_INIT3_EMR_SHIFT 0 +#define DDRC_INIT3_EMR_MASK 0x0000FFFFU -/*DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 - egister mDDR: Unused*/ +/* +* DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 + * register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 register mDDR: Unus + * ed +*/ #undef DDRC_INIT4_EMR2_DEFVAL #undef DDRC_INIT4_EMR2_SHIFT #undef DDRC_INIT4_EMR2_MASK -#define DDRC_INIT4_EMR2_DEFVAL 0x00000000 -#define DDRC_INIT4_EMR2_SHIFT 16 -#define DDRC_INIT4_EMR2_MASK 0xFFFF0000U +#define DDRC_INIT4_EMR2_DEFVAL 0x00000000 +#define DDRC_INIT4_EMR2_SHIFT 16 +#define DDRC_INIT4_EMR2_MASK 0xFFFF0000U -/*DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to - rite to MR13 register*/ +/* +* DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 + * register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to write to MR13 regis + * ter +*/ #undef DDRC_INIT4_EMR3_DEFVAL #undef DDRC_INIT4_EMR3_SHIFT #undef DDRC_INIT4_EMR3_MASK -#define DDRC_INIT4_EMR3_DEFVAL 0x00000000 -#define DDRC_INIT4_EMR3_SHIFT 0 -#define DDRC_INIT4_EMR3_MASK 0x0000FFFFU +#define DDRC_INIT4_EMR3_DEFVAL 0x00000000 +#define DDRC_INIT4_EMR3_SHIFT 0 +#define DDRC_INIT4_EMR3_MASK 0x0000FFFFU -/*ZQ initial calibration, tZQINIT. Present only in designs configured to support DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock - ycles. DDR3 typically requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requires 1 us.*/ +/* +* ZQ initial calibration, tZQINIT. Present only in designs configured to s + * upport DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock cycles. DDR3 typica + * lly requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requir + * es 1 us. +*/ #undef DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL #undef DDRC_INIT5_DEV_ZQINIT_X32_SHIFT #undef DDRC_INIT5_DEV_ZQINIT_X32_MASK -#define DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL 0x00100004 -#define DDRC_INIT5_DEV_ZQINIT_X32_SHIFT 16 -#define DDRC_INIT5_DEV_ZQINIT_X32_MASK 0x00FF0000U +#define DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL 0x00100004 +#define DDRC_INIT5_DEV_ZQINIT_X32_SHIFT 16 +#define DDRC_INIT5_DEV_ZQINIT_X32_MASK 0x00FF0000U -/*Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2/LPDDR3. LPDDR2/LPDD - 3 typically requires 10 us.*/ +/* +* Maximum duration of the auto initialization, tINIT5. Present only in des + * igns configured to support LPDDR2/LPDDR3. LPDDR2/LPDDR3 typically requir + * es 10 us. +*/ #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL 0x00100004 -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT 0 -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK 0x000003FFU +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL 0x00100004 +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT 0 +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK 0x000003FFU -/*DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT6_MR4_DEFVAL #undef DDRC_INIT6_MR4_SHIFT #undef DDRC_INIT6_MR4_MASK -#define DDRC_INIT6_MR4_DEFVAL 0x00000000 -#define DDRC_INIT6_MR4_SHIFT 16 -#define DDRC_INIT6_MR4_MASK 0xFFFF0000U +#define DDRC_INIT6_MR4_DEFVAL 0x00000000 +#define DDRC_INIT6_MR4_SHIFT 16 +#define DDRC_INIT6_MR4_MASK 0xFFFF0000U -/*DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT6_MR5_DEFVAL #undef DDRC_INIT6_MR5_SHIFT #undef DDRC_INIT6_MR5_MASK -#define DDRC_INIT6_MR5_DEFVAL 0x00000000 -#define DDRC_INIT6_MR5_SHIFT 0 -#define DDRC_INIT6_MR5_MASK 0x0000FFFFU +#define DDRC_INIT6_MR5_DEFVAL 0x00000000 +#define DDRC_INIT6_MR5_SHIFT 0 +#define DDRC_INIT6_MR5_MASK 0x0000FFFFU -/*DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT7_MR6_DEFVAL #undef DDRC_INIT7_MR6_SHIFT #undef DDRC_INIT7_MR6_MASK -#define DDRC_INIT7_MR6_DEFVAL -#define DDRC_INIT7_MR6_SHIFT 16 -#define DDRC_INIT7_MR6_MASK 0xFFFF0000U +#define DDRC_INIT7_MR6_DEFVAL +#define DDRC_INIT7_MR6_SHIFT 16 +#define DDRC_INIT7_MR6_MASK 0xFFFF0000U -/*Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enab - ed. This will be required for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapped. - 0 - BG0 and BG1 are swapped i - address mirroring is enabled.*/ +/* +* Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and + * BG1 are NOT swapped even if Address Mirroring is enabled. This will be r + * equired for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapp + * ed. - 0 - BG0 and BG1 are swapped if address mirroring is enabled. +*/ #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT 5 -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK 0x00000020U +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT 5 +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK 0x00000020U -/*Enable for BG1 bit of MRS command. BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output - nversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit. Note: This has no - effect on the address of any other memory accesses, or of software-driven mode register accesses. If address mirroring is ena - led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - Enabled - 0 - Disabled*/ +/* +* Enable for BG1 bit of MRS command. BG1 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have BG1 are attached and + * both the CA parity and the Output Inversion are enabled, this must be s + * et to 0, so that the calculation of CA parity will not include BG1 bit. + * Note: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. If address mirroring is enab + * led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - En + * abled - 0 - Disabled +*/ #undef DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL #undef DDRC_DIMMCTL_MRS_BG1_EN_SHIFT #undef DDRC_DIMMCTL_MRS_BG1_EN_MASK -#define DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_MRS_BG1_EN_SHIFT 4 -#define DDRC_DIMMCTL_MRS_BG1_EN_MASK 0x00000010U +#define DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_MRS_BG1_EN_SHIFT 4 +#define DDRC_DIMMCTL_MRS_BG1_EN_MASK 0x00000010U -/*Enable for A17 bit of MRS command. A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, - his must be set to 0, so that the calculation of CA parity will not include A17 bit. Note: This has no effect on the address - f any other memory accesses, or of software-driven mode register accesses. - 1 - Enabled - 0 - Disabled*/ +/* +* Enable for A17 bit of MRS command. A17 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have A17 are attached and + * the Output Inversion are enabled, this must be set to 0, so that the ca + * lculation of CA parity will not include A17 bit. Note: This has no effec + * t on the address of any other memory accesses, or of software-driven mod + * e register accesses. - 1 - Enabled - 0 - Disabled +*/ #undef DDRC_DIMMCTL_MRS_A17_EN_DEFVAL #undef DDRC_DIMMCTL_MRS_A17_EN_SHIFT #undef DDRC_DIMMCTL_MRS_A17_EN_MASK -#define DDRC_DIMMCTL_MRS_A17_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_MRS_A17_EN_SHIFT 3 -#define DDRC_DIMMCTL_MRS_A17_EN_MASK 0x00000008U +#define DDRC_DIMMCTL_MRS_A17_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_MRS_A17_EN_SHIFT 3 +#define DDRC_DIMMCTL_MRS_A17_EN_MASK 0x00000008U -/*Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIMM implements the Output Inversion feature by default, - which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, - A0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the uMCTL2 during the automatic initi - lization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. - or B-side mode register accesses, these bits are inverted within the uMCTL2 to compensate for this RDIMM inversion. Note: Thi - has no effect on the address of any other memory accesses, or of software-driven mode register accesses. - 1 - Implement out - ut inversion for B-side DRAMs. - 0 - Do not implement output inversion for B-side DRAMs.*/ +/* +* Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIM + * M implements the Output Inversion feature by default, which means that t + * he following address, bank address and bank group bits of B-side DRAMs a + * re inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit en + * sures that, for mode register accesses generated by the uMCTL2 during th + * e automatic initialization routine and enabling of a particular DDR4 fea + * ture, separate A-side and B-side mode register accesses are generated. F + * or B-side mode register accesses, these bits are inverted within the uMC + * TL2 to compensate for this RDIMM inversion. Note: This has no effect on + * the address of any other memory accesses, or of software-driven mode reg + * ister accesses. - 1 - Implement output inversion for B-side DRAMs. - 0 - + * Do not implement output inversion for B-side DRAMs. +*/ #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT 2 -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK 0x00000004U +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT 2 +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK 0x00000004U -/*Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations). Some UDIMMs and DD - 4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits - re swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures t - at, for mode register accesses during the automatic initialization routine, these bits are swapped within the uMCTL2 to compe - sate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they ar - swapped during the automatic MRS access to enable/disable of a particular DDR4 feature. Note: This has no effect on the addr - ss of any other memory accesses, or of software-driven mode register accesses. This is not supported for mDDR, LPDDR2, LPDDR3 - or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, - hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ranks, implement address mirroring for MRS commands to d - ring initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring) - 0 - Do - not implement address mirroring*/ +/* +* Address Mirroring Enable (for multi-rank UDIMM implementations and multi + * -rank DDR4 RDIMM implementations). Some UDIMMs and DDR4 RDIMMs implement + * address mirroring for odd ranks, which means that the following address + * , bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, + * A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting t + * his bit ensures that, for mode register accesses during the automatic in + * itialization routine, these bits are swapped within the uMCTL2 to compen + * sate for this UDIMM/RDIMM swapping. In addition to the automatic initial + * ization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during th + * e automatic MRS access to enable/disable of a particular DDR4 feature. N + * ote: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. This is not supported for mDD + * R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 + * output of MRS for the odd ranks is same as BG0 because BG1 is invalid, + * hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ran + * ks, implement address mirroring for MRS commands to during initializatio + * n and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM imp + * lements address mirroring) - 0 - Do not implement address mirroring +*/ #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT 1 -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK 0x00000002U +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT 1 +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK 0x00000002U -/*Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only). This is not supported for mD - R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of software driven MR commands (via M - CTRL0/MRCTRL1), where software is responsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Send MRS commands t - each ranks seperately - 1 - (non-DDR4) Send all commands to even and odd ranks seperately - 0 - Do not stagger accesses*/ +/* +* Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIM + * M implementations only). This is not supported for mDDR, LPDDR2, LPDDR3 + * or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of + * software driven MR commands (via MRCTRL0/MRCTRL1), where software is re + * sponsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Se + * nd MRS commands to each ranks seperately - 1 - (non-DDR4) Send all comma + * nds to even and odd ranks seperately - 0 - Do not stagger accesses +*/ #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT 0 -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK 0x00000001U +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT 0 +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK 0x00000001U -/*Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e writes to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should c - nsider both PHY requirement and ODT requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for value of tphy_wrcs - ap) If CRC feature is enabled, should be increased by 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increa - ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be increased by 1. - ODT requirement: The value programmed - n this register takes care of the ODT switch off timing requirement when switching ranks during writes. For LPDDR4, the requi - ement is ODTLoff - ODTLon - BL/2 + 1 For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY requirement - or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and round it u - to the next integer.*/ +/* +* Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive writes to differ + * ent ranks. This is used to switch the delays in the PHY to match the ran + * k requirements. This value should consider both PHY requirement and ODT + * requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for v + * alue of tphy_wrcsgap) If CRC feature is enabled, should be increased by + * 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increas + * ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be inc + * reased by 1. - ODT requirement: The value programmed in this register ta + * kes care of the ODT switch off timing requirement when switching ranks d + * uring writes. For LPDDR4, the requirement is ODTLoff - ODTLon - BL/2 + 1 + * For configurations with MEMC_FREQ_RATIO=1, program this to the larger o + * f PHY requirement or ODT requirement. For configurations with MEMC_FREQ_ + * RATIO=2, program this to the larger value divided by two and round it up + * to the next integer. +*/ #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL 0x0000066F -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT 8 -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK 0x00000F00U +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL 0x0000066F +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT 8 +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK 0x00000F00U -/*Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e reads to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should co - sider both PHY requirement and ODT requirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for value of tphy_rdcsg - p) If read preamble is set to 2tCK(DDR4/LPDDR4 only), should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 onl - ), should be increased by 1. - ODT requirement: The value programmed in this register takes care of the ODT switch off timing - requirement when switching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY r - quirement or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and - ound it up to the next integer.*/ +/* +* Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive reads to differe + * nt ranks. This is used to switch the delays in the PHY to match the rank + * requirements. This value should consider both PHY requirement and ODT r + * equirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for va + * lue of tphy_rdcsgap) If read preamble is set to 2tCK(DDR4/LPDDR4 only), + * should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 only + * ), should be increased by 1. - ODT requirement: The value programmed in + * this register takes care of the ODT switch off timing requirement when s + * witching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, + * program this to the larger of PHY requirement or ODT requirement. For co + * nfigurations with MEMC_FREQ_RATIO=2, program this to the larger value di + * vided by two and round it up to the next integer. +*/ #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL 0x0000066F -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT 4 -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK 0x000000F0U +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL 0x0000066F +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT 4 +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK 0x000000F0U -/*Only present for multi-rank configurations. Background: Reads to the same rank can be performed back-to-back. Reads to differ - nt ranks require additional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is to avoid possible data bus content - on as well as to give PHY enough time to switch the delay when changing ranks. The uMCTL2 arbitrates for bus access on a cycl - -by-cycle basis; therefore after a read is scheduled, there are few clock cycles (determined by the value on RANKCTL.diff_ran - _rd_gap register) in which only reads from the same rank are eligible to be scheduled. This prevents reads from other ranks f - om having fair access to the data bus. This parameter represents the maximum number of reads that can be scheduled consecutiv - ly to the same rank. After this number is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by the scheduler to - llow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fair - ess. This feature can be DISABLED by setting this register to 0. When set to 0, the Controller will stay on the same rank as - ong as commands are available for it. Minimum programmable value is 0 (feature disabled) and maximum programmable value is 0x - . FOR PERFORMANCE ONLY.*/ +/* +* Only present for multi-rank configurations. Background: Reads to the sam + * e rank can be performed back-to-back. Reads to different ranks require a + * dditional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is + * to avoid possible data bus contention as well as to give PHY enough tim + * e to switch the delay when changing ranks. The uMCTL2 arbitrates for bus + * access on a cycle-by-cycle basis; therefore after a read is scheduled, + * there are few clock cycles (determined by the value on RANKCTL.diff_rank + * _rd_gap register) in which only reads from the same rank are eligible to + * be scheduled. This prevents reads from other ranks from having fair acc + * ess to the data bus. This parameter represents the maximum number of rea + * ds that can be scheduled consecutively to the same rank. After this numb + * er is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by + * the scheduler to allow all ranks a fair opportunity to be scheduled. Hig + * her numbers increase bandwidth utilization, lower numbers increase fairn + * ess. This feature can be DISABLED by setting this register to 0. When se + * t to 0, the Controller will stay on the same rank as long as commands ar + * e available for it. Minimum programmable value is 0 (feature disabled) a + * nd maximum programmable value is 0xF. FOR PERFORMANCE ONLY. +*/ #undef DDRC_RANKCTL_MAX_RANK_RD_DEFVAL #undef DDRC_RANKCTL_MAX_RANK_RD_SHIFT #undef DDRC_RANKCTL_MAX_RANK_RD_MASK -#define DDRC_RANKCTL_MAX_RANK_RD_DEFVAL 0x0000066F -#define DDRC_RANKCTL_MAX_RANK_RD_SHIFT 0 -#define DDRC_RANKCTL_MAX_RANK_RD_MASK 0x0000000FU +#define DDRC_RANKCTL_MAX_RANK_RD_DEFVAL 0x0000066F +#define DDRC_RANKCTL_MAX_RANK_RD_SHIFT 0 +#define DDRC_RANKCTL_MAX_RANK_RD_MASK 0x0000000FU -/*Minimum time between write and precharge to same bank. Unit: Clocks Specifications: WL + BL/2 + tWR = approximately 8 cycles - 15 ns = 14 clocks @400MHz and less for lower frequencies where: - WL = write latency - BL = burst length. This must match th - value programmed in the BL bit of the mode register to the SDRAM. BST (burst terminate) is not supported at present. - tWR = - Write recovery time. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this - arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For configurations - with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer value.*/ +/* +* Minimum time between write and precharge to same bank. Unit: Clocks Spec + * ifications: WL + BL/2 + tWR = approximately 8 cycles + 15 ns = 14 clocks + * @400MHz and less for lower frequencies where: - WL = write latency - BL + * = burst length. This must match the value programmed in the BL bit of t + * he mode register to the SDRAM. BST (burst terminate) is not supported at + * present. - tWR = Write recovery time. This comes directly from the SDRA + * M specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this p + * arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the + * above value by 2. No rounding up. For configurations with MEMC_FREQ_RAT + * IO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it u + * p to the next integer value. +*/ #undef DDRC_DRAMTMG0_WR2PRE_DEFVAL #undef DDRC_DRAMTMG0_WR2PRE_SHIFT #undef DDRC_DRAMTMG0_WR2PRE_MASK -#define DDRC_DRAMTMG0_WR2PRE_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_WR2PRE_SHIFT 24 -#define DDRC_DRAMTMG0_WR2PRE_MASK 0x7F000000U +#define DDRC_DRAMTMG0_WR2PRE_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_WR2PRE_SHIFT 24 +#define DDRC_DRAMTMG0_WR2PRE_MASK 0x7F000000U -/*tFAW Valid only when 8 or more banks(or banks x bank groups) are present. In 8-bank design, at most 4 banks must be activated - in a rolling window of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program this to (tFAW/2) and round up to next - nteger value. In a 4-bank design, set this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. Unit: Clocks*/ +/* +* tFAW Valid only when 8 or more banks(or banks x bank groups) are present + * . In 8-bank design, at most 4 banks must be activated in a rolling windo + * w of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tFAW/2) and round up to next integer value. In a 4-bank design, se + * t this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. + * Unit: Clocks +*/ #undef DDRC_DRAMTMG0_T_FAW_DEFVAL #undef DDRC_DRAMTMG0_T_FAW_SHIFT #undef DDRC_DRAMTMG0_T_FAW_MASK -#define DDRC_DRAMTMG0_T_FAW_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_FAW_SHIFT 16 -#define DDRC_DRAMTMG0_T_FAW_MASK 0x003F0000U +#define DDRC_DRAMTMG0_T_FAW_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_FAW_SHIFT 16 +#define DDRC_DRAMTMG0_T_FAW_MASK 0x003F0000U -/*tRAS(max): Maximum time between activate and precharge to same bank. This is the maximum time that a page can be kept open Mi - imum value of this register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO=2, program this to (tRAS(max)-1)/2 - No rounding up. Unit: Multiples of 1024 clocks.*/ +/* +* tRAS(max): Maximum time between activate and precharge to same bank. Thi + * s is the maximum time that a page can be kept open Minimum value of this + * register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO + * =2, program this to (tRAS(max)-1)/2. No rounding up. Unit: Multiples of + * 1024 clocks. +*/ #undef DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL #undef DDRC_DRAMTMG0_T_RAS_MAX_SHIFT #undef DDRC_DRAMTMG0_T_RAS_MAX_MASK -#define DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_RAS_MAX_SHIFT 8 -#define DDRC_DRAMTMG0_T_RAS_MAX_MASK 0x00007F00U +#define DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_RAS_MAX_SHIFT 8 +#define DDRC_DRAMTMG0_T_RAS_MAX_MASK 0x00007F00U -/*tRAS(min): Minimum time between activate and precharge to the same bank. For configurations with MEMC_FREQ_RATIO=2, 1T mode, - rogram this to tRAS(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, program this t - (tRAS(min)/2) and round it up to the next integer value. Unit: Clocks*/ +/* +* tRAS(min): Minimum time between activate and precharge to the same bank. + * For configurations with MEMC_FREQ_RATIO=2, 1T mode, program this to tRA + * S(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T + * mode or LPDDR4 mode, program this to (tRAS(min)/2) and round it up to th + * e next integer value. Unit: Clocks +*/ #undef DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL #undef DDRC_DRAMTMG0_T_RAS_MIN_SHIFT #undef DDRC_DRAMTMG0_T_RAS_MIN_MASK -#define DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_RAS_MIN_SHIFT 0 -#define DDRC_DRAMTMG0_T_RAS_MIN_MASK 0x0000003FU +#define DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_RAS_MIN_SHIFT 0 +#define DDRC_DRAMTMG0_T_RAS_MIN_MASK 0x0000003FU -/*tXP: Minimum time after power-down exit to any operation. For DDR3, this should be programmed to tXPDLL if slow powerdown exi - is selected in MR0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For configurations with MEMC_FREQ_RATIO=2, - rogram this to (tXP/2) and round it up to the next integer value. Units: Clocks*/ +/* +* tXP: Minimum time after power-down exit to any operation. For DDR3, this + * should be programmed to tXPDLL if slow powerdown exit is selected in MR + * 0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to (tXP/2) and round it + * up to the next integer value. Units: Clocks +*/ #undef DDRC_DRAMTMG1_T_XP_DEFVAL #undef DDRC_DRAMTMG1_T_XP_SHIFT #undef DDRC_DRAMTMG1_T_XP_MASK -#define DDRC_DRAMTMG1_T_XP_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_T_XP_SHIFT 16 -#define DDRC_DRAMTMG1_T_XP_MASK 0x001F0000U +#define DDRC_DRAMTMG1_T_XP_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_T_XP_SHIFT 16 +#define DDRC_DRAMTMG1_T_XP_MASK 0x001F0000U -/*tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL/2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - D - R4: Max of following two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 - LPDDR2: Depends on if it's LPDDR2 - S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + tRTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) - 4 - LPDDR4: BL - 2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For conf - gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer val - e. Unit: Clocks.*/ +/* +* tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL + * /2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - DDR4: Max of followi + * ng two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 + * - LPDDR2: Depends on if it's LPDDR2-S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + t + * RTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) + * - 4 - LPDDR4: BL/2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_ + * RATIO=2, 1T mode, divide the above value by 2. No rounding up. For confi + * gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the abo + * ve value by 2 and round it up to the next integer value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG1_RD2PRE_DEFVAL #undef DDRC_DRAMTMG1_RD2PRE_SHIFT #undef DDRC_DRAMTMG1_RD2PRE_MASK -#define DDRC_DRAMTMG1_RD2PRE_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_RD2PRE_SHIFT 8 -#define DDRC_DRAMTMG1_RD2PRE_MASK 0x00001F00U +#define DDRC_DRAMTMG1_RD2PRE_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_RD2PRE_SHIFT 8 +#define DDRC_DRAMTMG1_RD2PRE_MASK 0x00001F00U -/*tRC: Minimum time between activates to same bank. For configurations with MEMC_FREQ_RATIO=2, program this to (tRC/2) and roun - up to next integer value. Unit: Clocks.*/ +/* +* tRC: Minimum time between activates to same bank. For configurations wit + * h MEMC_FREQ_RATIO=2, program this to (tRC/2) and round up to next intege + * r value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG1_T_RC_DEFVAL #undef DDRC_DRAMTMG1_T_RC_SHIFT #undef DDRC_DRAMTMG1_T_RC_MASK -#define DDRC_DRAMTMG1_T_RC_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_T_RC_SHIFT 0 -#define DDRC_DRAMTMG1_T_RC_MASK 0x0000007FU +#define DDRC_DRAMTMG1_T_RC_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_T_RC_SHIFT 0 +#define DDRC_DRAMTMG1_T_RC_MASK 0x0000007FU -/*Set to WL Time from write command to write data on SDRAM interface. This must be set to WL. For mDDR, it should normally be s - t to 1. Note that, depending on the PHY, if using RDIMM, it may be necessary to use a value of WL + 1 to compensate for the e - tra cycle of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above - equation by 2, and round it up to next integer. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAININ - is set), as the DFI read and write latencies defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks*/ +/* +* Set to WL Time from write command to write data on SDRAM interface. This + * must be set to WL. For mDDR, it should normally be set to 1. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use a valu + * e of WL + 1 to compensate for the extra cycle of latency through the RDI + * MM For configurations with MEMC_FREQ_RATIO=2, divide the value calculate + * d using the above equation by 2, and round it up to next integer. This r + * egister field is not required for DDR2 and DDR3 (except if MEMC_TRAINING + * is set), as the DFI read and write latencies defined in DFITMG0 and DFI + * TMG1 are sufficient for those protocols Unit: clocks +*/ #undef DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL #undef DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT #undef DDRC_DRAMTMG2_WRITE_LATENCY_MASK -#define DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT 24 -#define DDRC_DRAMTMG2_WRITE_LATENCY_MASK 0x3F000000U +#define DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT 24 +#define DDRC_DRAMTMG2_WRITE_LATENCY_MASK 0x3F000000U -/*Set to RL Time from read command to read data on SDRAM interface. This must be set to RL. Note that, depending on the PHY, if - using RDIMM, it mat be necessary to use a value of RL + 1 to compensate for the extra cycle of latency through the RDIMM For - onfigurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next inte - er. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAINING is set), as the DFI read and write latenci - s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks*/ +/* +* Set to RL Time from read command to read data on SDRAM interface. This m + * ust be set to RL. Note that, depending on the PHY, if using RDIMM, it ma + * t be necessary to use a value of RL + 1 to compensate for the extra cycl + * e of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2 + * , divide the value calculated using the above equation by 2, and round i + * t up to next integer. This register field is not required for DDR2 and D + * DR3 (except if MEMC_TRAINING is set), as the DFI read and write latencie + * s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit + * : clocks +*/ #undef DDRC_DRAMTMG2_READ_LATENCY_DEFVAL #undef DDRC_DRAMTMG2_READ_LATENCY_SHIFT #undef DDRC_DRAMTMG2_READ_LATENCY_MASK -#define DDRC_DRAMTMG2_READ_LATENCY_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_READ_LATENCY_SHIFT 16 -#define DDRC_DRAMTMG2_READ_LATENCY_MASK 0x003F0000U +#define DDRC_DRAMTMG2_READ_LATENCY_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_READ_LATENCY_SHIFT 16 +#define DDRC_DRAMTMG2_READ_LATENCY_MASK 0x003F0000U -/*DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL LPDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL - PDDR4(DQ ODT is Disabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL LPDDR4(DQ ODT is Enabled) : RL + B - /2 + RU(tDQSCKmax/tCK) + RD_POSTAMBLE - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write command. Include - time for bus turnaround and all per-bank, per-rank, and global constraints. Unit: Clocks. Where: - WL = write latency - BL = - urst length. This must match the value programmed in the BL bit of the mode register to the SDRAM - RL = read latency = CAS l - tency - WR_PREAMBLE = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = read postamble. This is unique to L - DDR4. For LPDDR2/LPDDR3/LPDDR4, if derating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should be used. For conf - gurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer.*/ +/* +* DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL L + * PDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL LPDDR4(DQ ODT is Di + * sabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL + * LPDDR4(DQ ODT is Enabled) : RL + BL/2 + RU(tDQSCKmax/tCK) + RD_POSTAMBL + * E - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write + * command. Include time for bus turnaround and all per-bank, per-rank, an + * d global constraints. Unit: Clocks. Where: - WL = write latency - BL = b + * urst length. This must match the value programmed in the BL bit of the m + * ode register to the SDRAM - RL = read latency = CAS latency - WR_PREAMBL + * E = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = + * read postamble. This is unique to LPDDR4. For LPDDR2/LPDDR3/LPDDR4, if d + * erating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should + * be used. For configurations with MEMC_FREQ_RATIO=2, divide the value cal + * culated using the above equation by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG2_RD2WR_DEFVAL #undef DDRC_DRAMTMG2_RD2WR_SHIFT #undef DDRC_DRAMTMG2_RD2WR_MASK -#define DDRC_DRAMTMG2_RD2WR_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_RD2WR_SHIFT 8 -#define DDRC_DRAMTMG2_RD2WR_MASK 0x00003F00U +#define DDRC_DRAMTMG2_RD2WR_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_RD2WR_SHIFT 8 +#define DDRC_DRAMTMG2_RD2WR_MASK 0x00003F00U -/*DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimum time from write command to read command for same ba - k group. In others, minimum time from write command to read command. Includes time for bus turnaround, recovery times, and al - per-bank, per-rank, and global constraints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burs - length. This must match the value programmed in the BL bit of the mode register to the SDRAM - tWTR_L = internal write to re - d command delay for same bank group. This comes directly from the SDRAM specification. - tWTR = internal write to read comman - delay. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 operation. For configu - ations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer.*/ +/* +* DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimu + * m time from write command to read command for same bank group. In others + * , minimum time from write command to read command. Includes time for bus + * turnaround, recovery times, and all per-bank, per-rank, and global cons + * traints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity la + * tency - BL = burst length. This must match the value programmed in the B + * L bit of the mode register to the SDRAM - tWTR_L = internal write to rea + * d command delay for same bank group. This comes directly from the SDRAM + * specification. - tWTR = internal write to read command delay. This comes + * directly from the SDRAM specification. Add one extra cycle for LPDDR2/L + * PDDR3/LPDDR4 operation. For configurations with MEMC_FREQ_RATIO=2, divid + * e the value calculated using the above equation by 2, and round it up to + * next integer. +*/ #undef DDRC_DRAMTMG2_WR2RD_DEFVAL #undef DDRC_DRAMTMG2_WR2RD_SHIFT #undef DDRC_DRAMTMG2_WR2RD_MASK -#define DDRC_DRAMTMG2_WR2RD_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_WR2RD_SHIFT 0 -#define DDRC_DRAMTMG2_WR2RD_MASK 0x0000003FU +#define DDRC_DRAMTMG2_WR2RD_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_WR2RD_SHIFT 0 +#define DDRC_DRAMTMG2_WR2RD_MASK 0x0000003FU -/*Time to wait after a mode register write or read (MRW or MRR). Present only in designs configured to support LPDDR2, LPDDR3 o - LPDDR4. LPDDR2 typically requires value of 5. LPDDR3 typically requires value of 10. LPDDR4: Set this to the larger of tMRW - nd tMRWCKEL. For LPDDR2, this register is used for the time from a MRW/MRR to all other commands. For LDPDR3, this register i - used for the time from a MRW/MRR to a MRW/MRR.*/ +/* +* Time to wait after a mode register write or read (MRW or MRR). Present o + * nly in designs configured to support LPDDR2, LPDDR3 or LPDDR4. LPDDR2 ty + * pically requires value of 5. LPDDR3 typically requires value of 10. LPDD + * R4: Set this to the larger of tMRW and tMRWCKEL. For LPDDR2, this regist + * er is used for the time from a MRW/MRR to all other commands. For LDPDR3 + * , this register is used for the time from a MRW/MRR to a MRW/MRR. +*/ #undef DDRC_DRAMTMG3_T_MRW_DEFVAL #undef DDRC_DRAMTMG3_T_MRW_SHIFT #undef DDRC_DRAMTMG3_T_MRW_MASK -#define DDRC_DRAMTMG3_T_MRW_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MRW_SHIFT 20 -#define DDRC_DRAMTMG3_T_MRW_MASK 0x3FF00000U +#define DDRC_DRAMTMG3_T_MRW_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MRW_SHIFT 20 +#define DDRC_DRAMTMG3_T_MRW_MASK 0x3FF00000U -/*tMRD: Cycles to wait after a mode register write or read. Depending on the connected SDRAM, tMRD represents: DDR2/mDDR: Time - rom MRS to any command DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Time from MRS to non-MRS command For c - nfigurations with MEMC_FREQ_RATIO=2, program this to (tMRD/2) and round it up to the next integer value. If C/A parity for DD - 4 is used, set to tMRD_PAR(tMOD+PL) instead.*/ +/* +* tMRD: Cycles to wait after a mode register write or read. Depending on t + * he connected SDRAM, tMRD represents: DDR2/mDDR: Time from MRS to any com + * mand DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Tim + * e from MRS to non-MRS command For configurations with MEMC_FREQ_RATIO=2, + * program this to (tMRD/2) and round it up to the next integer value. If + * C/A parity for DDR4 is used, set to tMRD_PAR(tMOD+PL) instead. +*/ #undef DDRC_DRAMTMG3_T_MRD_DEFVAL #undef DDRC_DRAMTMG3_T_MRD_SHIFT #undef DDRC_DRAMTMG3_T_MRD_MASK -#define DDRC_DRAMTMG3_T_MRD_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MRD_SHIFT 12 -#define DDRC_DRAMTMG3_T_MRD_MASK 0x0003F000U +#define DDRC_DRAMTMG3_T_MRD_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MRD_SHIFT 12 +#define DDRC_DRAMTMG3_T_MRD_MASK 0x0003F000U -/*tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode command and following non-load mode command. If C/A pari - y for DDR4 is used, set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or tMOD/2 (rounded up to next integer - if MEMC_FREQ_RATIO=2. Note that if using RDIMM, depending on the PHY, it may be necessary to use a value of tMOD + 1 or (tMO - + 1)/2 to compensate for the extra cycle of latency applied to mode register writes by the RDIMM chip.*/ +/* +* tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode com + * mand and following non-load mode command. If C/A parity for DDR4 is used + * , set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or + * tMOD/2 (rounded up to next integer) if MEMC_FREQ_RATIO=2. Note that if + * using RDIMM, depending on the PHY, it may be necessary to use a value of + * tMOD + 1 or (tMOD + 1)/2 to compensate for the extra cycle of latency a + * pplied to mode register writes by the RDIMM chip. +*/ #undef DDRC_DRAMTMG3_T_MOD_DEFVAL #undef DDRC_DRAMTMG3_T_MOD_SHIFT #undef DDRC_DRAMTMG3_T_MOD_MASK -#define DDRC_DRAMTMG3_T_MOD_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MOD_SHIFT 0 -#define DDRC_DRAMTMG3_T_MOD_MASK 0x000003FFU +#define DDRC_DRAMTMG3_T_MOD_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MOD_SHIFT 0 +#define DDRC_DRAMTMG3_T_MOD_MASK 0x000003FFU -/*tRCD - tAL: Minimum time from activate to read or write command to same bank. For configurations with MEMC_FREQ_RATIO=2, prog - am this to ((tRCD - tAL)/2) and round it up to the next integer value. Minimum value allowed for this register is 1, which im - lies minimum (tRCD - tAL) value to be 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks.*/ +/* +* tRCD - tAL: Minimum time from activate to read or write command to same + * bank. For configurations with MEMC_FREQ_RATIO=2, program this to ((tRCD + * - tAL)/2) and round it up to the next integer value. Minimum value allow + * ed for this register is 1, which implies minimum (tRCD - tAL) value to b + * e 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RCD_DEFVAL #undef DDRC_DRAMTMG4_T_RCD_SHIFT #undef DDRC_DRAMTMG4_T_RCD_MASK -#define DDRC_DRAMTMG4_T_RCD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RCD_SHIFT 24 -#define DDRC_DRAMTMG4_T_RCD_MASK 0x1F000000U +#define DDRC_DRAMTMG4_T_RCD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RCD_SHIFT 24 +#define DDRC_DRAMTMG4_T_RCD_MASK 0x1F000000U -/*DDR4: tCCD_L: This is the minimum time between two reads or two writes for same bank group. Others: tCCD: This is the minimum - time between two reads or two writes. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_L/2 or tCCD/2) and rou - d it up to the next integer value. Unit: clocks.*/ +/* +* DDR4: tCCD_L: This is the minimum time between two reads or two writes f + * or same bank group. Others: tCCD: This is the minimum time between two r + * eads or two writes. For configurations with MEMC_FREQ_RATIO=2, program t + * his to (tCCD_L/2 or tCCD/2) and round it up to the next integer value. U + * nit: clocks. +*/ #undef DDRC_DRAMTMG4_T_CCD_DEFVAL #undef DDRC_DRAMTMG4_T_CCD_SHIFT #undef DDRC_DRAMTMG4_T_CCD_MASK -#define DDRC_DRAMTMG4_T_CCD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_CCD_SHIFT 16 -#define DDRC_DRAMTMG4_T_CCD_MASK 0x000F0000U +#define DDRC_DRAMTMG4_T_CCD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_CCD_SHIFT 16 +#define DDRC_DRAMTMG4_T_CCD_MASK 0x000F0000U -/*DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' for same bank group. Others: tRRD: Minimum time betwee - activates from bank 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program this to (tRRD_L/2 or tRRD/2) and round - it up to the next integer value. Unit: Clocks.*/ +/* +* DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' f + * or same bank group. Others: tRRD: Minimum time between activates from ba + * nk 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tRRD_L/2 or tRRD/2) and round it up to the next integer value. Uni + * t: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RRD_DEFVAL #undef DDRC_DRAMTMG4_T_RRD_SHIFT #undef DDRC_DRAMTMG4_T_RRD_MASK -#define DDRC_DRAMTMG4_T_RRD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RRD_SHIFT 8 -#define DDRC_DRAMTMG4_T_RRD_MASK 0x00000F00U +#define DDRC_DRAMTMG4_T_RRD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RRD_SHIFT 8 +#define DDRC_DRAMTMG4_T_RRD_MASK 0x00000F00U -/*tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ_RATIO=1 configurations, t_rp should be set to RoundU - (tRP/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(tRP/tCK)/2) + 1. For MEMC_FREQ_RATIO - 2 configurations in LPDDR4, t_rp should be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks.*/ +/* +* tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ + * _RATIO=1 configurations, t_rp should be set to RoundUp(tRP/tCK). For MEM + * C_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(t + * RP/tCK)/2) + 1. For MEMC_FREQ_RATIO=2 configurations in LPDDR4, t_rp sho + * uld be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RP_DEFVAL #undef DDRC_DRAMTMG4_T_RP_SHIFT #undef DDRC_DRAMTMG4_T_RP_MASK -#define DDRC_DRAMTMG4_T_RP_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RP_SHIFT 0 -#define DDRC_DRAMTMG4_T_RP_MASK 0x0000001FU +#define DDRC_DRAMTMG4_T_RP_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RP_SHIFT 0 +#define DDRC_DRAMTMG4_T_RP_MASK 0x0000001FU -/*This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stab - e time before SRX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEH - DDR2: 1 - DDR3: tCKSRX - DDR4: - tCKSRX For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next in - eger.*/ +/* +* This is the time before Self Refresh Exit that CK is maintained as a val + * id clock before issuing SRX. Specifies the clock stable time before SRX. + * Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCK + * EH - DDR2: 1 - DDR3: tCKSRX - DDR4: tCKSRX For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKSRX_DEFVAL #undef DDRC_DRAMTMG5_T_CKSRX_SHIFT #undef DDRC_DRAMTMG5_T_CKSRX_MASK -#define DDRC_DRAMTMG5_T_CKSRX_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKSRX_SHIFT 24 -#define DDRC_DRAMTMG5_T_CKSRX_MASK 0x0F000000U +#define DDRC_DRAMTMG5_T_CKSRX_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKSRX_SHIFT 24 +#define DDRC_DRAMTMG5_T_CKSRX_MASK 0x0F000000U -/*This is the time after Self Refresh Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay afte - SRE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 - DDR3: max (10 ns, 5 tCK) - DDR4: - ax (10 ns, 5 tCK) For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up - to next integer.*/ +/* +* This is the time after Self Refresh Down Entry that CK is maintained as + * a valid clock. Specifies the clock disable delay after SRE. Recommended + * settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 + * - DDR3: max (10 ns, 5 tCK) - DDR4: max (10 ns, 5 tCK) For configurations + * with MEMC_FREQ_RATIO=2, program this to recommended value divided by tw + * o and round it up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKSRE_DEFVAL #undef DDRC_DRAMTMG5_T_CKSRE_SHIFT #undef DDRC_DRAMTMG5_T_CKSRE_MASK -#define DDRC_DRAMTMG5_T_CKSRE_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKSRE_SHIFT 16 -#define DDRC_DRAMTMG5_T_CKSRE_MASK 0x000F0000U +#define DDRC_DRAMTMG5_T_CKSRE_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKSRE_SHIFT 16 +#define DDRC_DRAMTMG5_T_CKSRE_MASK 0x000F0000U -/*Minimum CKE low width for Self refresh or Self refresh power down entry to exit timing in memory clock cycles. Recommended se - tings: - mDDR: tRFC - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: tCKE - DDR3: tCKE + 1 - DDR4: tCKE - 1 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next intege - .*/ +/* +* Minimum CKE low width for Self refresh or Self refresh power down entry + * to exit timing in memory clock cycles. Recommended settings: - mDDR: tRF + * C - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: + * tCKE - DDR3: tCKE + 1 - DDR4: tCKE + 1 For configurations with MEMC_FREQ + * _RATIO=2, program this to recommended value divided by two and round it + * up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKESR_DEFVAL #undef DDRC_DRAMTMG5_T_CKESR_SHIFT #undef DDRC_DRAMTMG5_T_CKESR_MASK -#define DDRC_DRAMTMG5_T_CKESR_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKESR_SHIFT 8 -#define DDRC_DRAMTMG5_T_CKESR_MASK 0x00003F00U +#define DDRC_DRAMTMG5_T_CKESR_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKESR_SHIFT 8 +#define DDRC_DRAMTMG5_T_CKESR_MASK 0x00003F00U -/*Minimum number of cycles of CKE HIGH/LOW during power-down and self refresh. - LPDDR2/LPDDR3 mode: Set this to the larger of - CKE or tCKESR - LPDDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/non-LPDDR3/non-LPDDR4 designs: Set - his to tCKE value. For configurations with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and round it up to th - next integer value. Unit: Clocks.*/ +/* +* Minimum number of cycles of CKE HIGH/LOW during power-down and self refr + * esh. - LPDDR2/LPDDR3 mode: Set this to the larger of tCKE or tCKESR - LP + * DDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/ + * non-LPDDR3/non-LPDDR4 designs: Set this to tCKE value. For configuration + * s with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and + * round it up to the next integer value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG5_T_CKE_DEFVAL #undef DDRC_DRAMTMG5_T_CKE_SHIFT #undef DDRC_DRAMTMG5_T_CKE_MASK -#define DDRC_DRAMTMG5_T_CKE_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKE_SHIFT 0 -#define DDRC_DRAMTMG5_T_CKE_MASK 0x0000001FU +#define DDRC_DRAMTMG5_T_CKE_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKE_SHIFT 0 +#define DDRC_DRAMTMG5_T_CKE_MASK 0x0000001FU -/*This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after - PDE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, program this to recom - ended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3 - devices.*/ +/* +* This is the time after Deep Power Down Entry that CK is maintained as a + * valid clock. Specifies the clock disable delay after DPDE. Recommended s + * ettings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. This is only present for designs supporting mDDR + * or LPDDR2/LPDDR3 devices. +*/ #undef DDRC_DRAMTMG6_T_CKDPDE_DEFVAL #undef DDRC_DRAMTMG6_T_CKDPDE_SHIFT #undef DDRC_DRAMTMG6_T_CKDPDE_MASK -#define DDRC_DRAMTMG6_T_CKDPDE_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKDPDE_SHIFT 24 -#define DDRC_DRAMTMG6_T_CKDPDE_MASK 0x0F000000U +#define DDRC_DRAMTMG6_T_CKDPDE_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKDPDE_SHIFT 24 +#define DDRC_DRAMTMG6_T_CKDPDE_MASK 0x0F000000U -/*This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock - table time before DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, pr - gram this to recommended value divided by two and round it up to next integer. This is only present for designs supporting mD - R or LPDDR2 devices.*/ +/* +* This is the time before Deep Power Down Exit that CK is maintained as a + * valid clock before issuing DPDX. Specifies the clock stable time before + * DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For config + * urations with MEMC_FREQ_RATIO=2, program this to recommended value divid + * ed by two and round it up to next integer. This is only present for desi + * gns supporting mDDR or LPDDR2 devices. +*/ #undef DDRC_DRAMTMG6_T_CKDPDX_DEFVAL #undef DDRC_DRAMTMG6_T_CKDPDX_SHIFT #undef DDRC_DRAMTMG6_T_CKDPDX_MASK -#define DDRC_DRAMTMG6_T_CKDPDX_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKDPDX_SHIFT 16 -#define DDRC_DRAMTMG6_T_CKDPDX_MASK 0x000F0000U +#define DDRC_DRAMTMG6_T_CKDPDX_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKDPDX_SHIFT 16 +#define DDRC_DRAMTMG6_T_CKDPDX_MASK 0x000F0000U -/*This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing Clock Stop Exit. Specifies the - lock stable time before next command after Clock Stop Exit. Recommended settings: - mDDR: 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + - 2 - LPDDR4: tXP + 2 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it - p to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time before Clock Stop Exit that CK is maintained as a valid + * clock before issuing Clock Stop Exit. Specifies the clock stable time b + * efore next command after Clock Stop Exit. Recommended settings: - mDDR: + * 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + 2 - LPDDR4: tXP + 2 For configuratio + * ns with MEMC_FREQ_RATIO=2, program this to recommended value divided by + * two and round it up to next integer. This is only present for designs su + * pporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG6_T_CKCSX_DEFVAL #undef DDRC_DRAMTMG6_T_CKCSX_SHIFT #undef DDRC_DRAMTMG6_T_CKCSX_MASK -#define DDRC_DRAMTMG6_T_CKCSX_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKCSX_SHIFT 0 -#define DDRC_DRAMTMG6_T_CKCSX_MASK 0x0000000FU +#define DDRC_DRAMTMG6_T_CKCSX_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKCSX_SHIFT 0 +#define DDRC_DRAMTMG6_T_CKCSX_MASK 0x0000000FU -/*This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. - ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configurations with MEMC_FREQ_RATIO=2, program t - is to recommended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or L - DDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time after Power Down Entry that CK is maintained as a valid + * clock. Specifies the clock disable delay after PDE. Recommended setting + * s: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configuration + * s with MEMC_FREQ_RATIO=2, program this to recommended value divided by t + * wo and round it up to next integer. This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG7_T_CKPDE_DEFVAL #undef DDRC_DRAMTMG7_T_CKPDE_SHIFT #undef DDRC_DRAMTMG7_T_CKPDE_MASK -#define DDRC_DRAMTMG7_T_CKPDE_DEFVAL 0x00000202 -#define DDRC_DRAMTMG7_T_CKPDE_SHIFT 8 -#define DDRC_DRAMTMG7_T_CKPDE_MASK 0x00000F00U +#define DDRC_DRAMTMG7_T_CKPDE_DEFVAL 0x00000202 +#define DDRC_DRAMTMG7_T_CKPDE_SHIFT 8 +#define DDRC_DRAMTMG7_T_CKPDE_MASK 0x00000F00U -/*This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable - time before PDX. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For configurations with MEMC_FREQ_RATIO= - , program this to recommended value divided by two and round it up to next integer. This is only present for designs supporti - g mDDR or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time before Power Down Exit that CK is maintained as a valid + * clock before issuing PDX. Specifies the clock stable time before PDX. R + * ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For c + * onfigurations with MEMC_FREQ_RATIO=2, program this to recommended value + * divided by two and round it up to next integer. This is only present for + * designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG7_T_CKPDX_DEFVAL #undef DDRC_DRAMTMG7_T_CKPDX_SHIFT #undef DDRC_DRAMTMG7_T_CKPDX_MASK -#define DDRC_DRAMTMG7_T_CKPDX_DEFVAL 0x00000202 -#define DDRC_DRAMTMG7_T_CKPDX_SHIFT 0 -#define DDRC_DRAMTMG7_T_CKPDX_MASK 0x0000000FU +#define DDRC_DRAMTMG7_T_CKPDX_DEFVAL 0x00000202 +#define DDRC_DRAMTMG7_T_CKPDX_SHIFT 0 +#define DDRC_DRAMTMG7_T_CKPDX_MASK 0x0000000FU -/*tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and Geardown mode). For configurations with MEMC_FREQ_RAT - O=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Thi - is applicable to only ZQCL/ZQCS commands. Note: Ensure this is less than or equal to t_xs_x32.*/ +/* +* tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and + * Geardown mode). For configurations with MEMC_FREQ_RATIO=2, program this + * to the above value divided by 2 and round up to next integer value. Unit + * : Multiples of 32 clocks. Note: This is applicable to only ZQCL/ZQCS com + * mands. Note: Ensure this is less than or equal to t_xs_x32. +*/ #undef DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_FAST_X32_MASK -#define DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT 24 -#define DDRC_DRAMTMG8_T_XS_FAST_X32_MASK 0x7F000000U +#define DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT 24 +#define DDRC_DRAMTMG8_T_XS_FAST_X32_MASK 0x7F000000U -/*tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in Self Refresh Abort. For configurations with MEMC_FREQ_ - ATIO=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: - nsure this is less than or equal to t_xs_x32.*/ +/* +* tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in S + * elf Refresh Abort. For configurations with MEMC_FREQ_RATIO=2, program th + * is to the above value divided by 2 and round up to next integer value. U + * nit: Multiples of 32 clocks. Note: Ensure this is less than or equal to + * t_xs_x32. +*/ #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT 16 -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK 0x007F0000U +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT 16 +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK 0x007F0000U -/*tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - bove value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DR4 SDRAMs.*/ +/* +* tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For config + * urations with MEMC_FREQ_RATIO=2, program this to the above value divided + * by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. +*/ #undef DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_DLL_X32_MASK -#define DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT 8 -#define DDRC_DRAMTMG8_T_XS_DLL_X32_MASK 0x00007F00U +#define DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT 8 +#define DDRC_DRAMTMG8_T_XS_DLL_X32_MASK 0x00007F00U -/*tXS: Exit Self Refresh to commands not requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DDR4 SDRAMs.*/ +/* +* tXS: Exit Self Refresh to commands not requiring a locked DLL. For confi + * gurations with MEMC_FREQ_RATIO=2, program this to the above value divide + * d by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. +*/ #undef DDRC_DRAMTMG8_T_XS_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_X32_MASK -#define DDRC_DRAMTMG8_T_XS_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_X32_SHIFT 0 -#define DDRC_DRAMTMG8_T_XS_X32_MASK 0x0000007FU +#define DDRC_DRAMTMG8_T_XS_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_X32_SHIFT 0 +#define DDRC_DRAMTMG8_T_XS_X32_MASK 0x0000007FU -/*DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present only with MEMC_FREQ_RATIO=2*/ +/* +* DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present o + * nly with MEMC_FREQ_RATIO=2 +*/ #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT 30 -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK 0x40000000U +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT 30 +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK 0x40000000U -/*tCCD_S: This is the minimum time between two reads or two writes for different bank group. For bank switching (from bank 'a' - o bank 'b'), the minimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_S/2) and ro - nd it up to the next integer value. Present only in designs configured to support DDR4. Unit: clocks.*/ +/* +* tCCD_S: This is the minimum time between two reads or two writes for dif + * ferent bank group. For bank switching (from bank 'a' to bank 'b'), the m + * inimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2 + * , program this to (tCCD_S/2) and round it up to the next integer value. + * Present only in designs configured to support DDR4. Unit: clocks. +*/ #undef DDRC_DRAMTMG9_T_CCD_S_DEFVAL #undef DDRC_DRAMTMG9_T_CCD_S_SHIFT #undef DDRC_DRAMTMG9_T_CCD_S_MASK -#define DDRC_DRAMTMG9_T_CCD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_T_CCD_S_SHIFT 16 -#define DDRC_DRAMTMG9_T_CCD_S_MASK 0x00070000U +#define DDRC_DRAMTMG9_T_CCD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_T_CCD_S_SHIFT 16 +#define DDRC_DRAMTMG9_T_CCD_S_MASK 0x00070000U -/*tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for different bank group. For configurations with MEMC_FREQ_ - ATIO=2, program this to (tRRD_S/2) and round it up to the next integer value. Present only in designs configured to support D - R4. Unit: Clocks.*/ +/* +* tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for dif + * ferent bank group. For configurations with MEMC_FREQ_RATIO=2, program th + * is to (tRRD_S/2) and round it up to the next integer value. Present only + * in designs configured to support DDR4. Unit: Clocks. +*/ #undef DDRC_DRAMTMG9_T_RRD_S_DEFVAL #undef DDRC_DRAMTMG9_T_RRD_S_SHIFT #undef DDRC_DRAMTMG9_T_RRD_S_MASK -#define DDRC_DRAMTMG9_T_RRD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_T_RRD_S_SHIFT 8 -#define DDRC_DRAMTMG9_T_RRD_S_MASK 0x00000F00U +#define DDRC_DRAMTMG9_T_RRD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_T_RRD_S_SHIFT 8 +#define DDRC_DRAMTMG9_T_RRD_S_MASK 0x00000F00U -/*CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command for different bank group. Includes time for bus turn - round, recovery times, and all per-bank, per-rank, and global constraints. Present only in designs configured to support DDR4 - Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burst length. This must match the value programm - d in the BL bit of the mode register to the SDRAM - tWTR_S = internal write to read command delay for different bank group. T - is comes directly from the SDRAM specification. For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using - he above equation by 2, and round it up to next integer.*/ +/* +* CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command + * for different bank group. Includes time for bus turnaround, recovery ti + * mes, and all per-bank, per-rank, and global constraints. Present only in + * designs configured to support DDR4. Unit: Clocks. Where: - CWL = CAS wr + * ite latency - PL = Parity latency - BL = burst length. This must match t + * he value programmed in the BL bit of the mode register to the SDRAM - tW + * TR_S = internal write to read command delay for different bank group. Th + * is comes directly from the SDRAM specification. For configurations with + * MEMC_FREQ_RATIO=2, divide the value calculated using the above equation + * by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG9_WR2RD_S_DEFVAL #undef DDRC_DRAMTMG9_WR2RD_S_SHIFT #undef DDRC_DRAMTMG9_WR2RD_S_MASK -#define DDRC_DRAMTMG9_WR2RD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_WR2RD_S_SHIFT 0 -#define DDRC_DRAMTMG9_WR2RD_S_MASK 0x0000003FU +#define DDRC_DRAMTMG9_WR2RD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_WR2RD_S_SHIFT 0 +#define DDRC_DRAMTMG9_WR2RD_S_MASK 0x0000003FU -/*tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program - this to (tXMPDLL/2) and round it up to the next integer value. Present only in designs configured to support DDR4. Unit: Mult - ples of 32 clocks.*/ +/* +* tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DL + * L. For configurations with MEMC_FREQ_RATIO=2, program this to (tXMPDLL/2 + * ) and round it up to the next integer value. Present only in designs con + * figured to support DDR4. Unit: Multiples of 32 clocks. +*/ #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT 24 -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK 0x7F000000U +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT 24 +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK 0x7F000000U -/*tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For configurations with MEMC_FREQ_RATIO=2, program this t - RoundUp(tMPX_LH/2)+1. Present only in designs configured to support DDR4. Unit: clocks.*/ +/* +* tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For + * configurations with MEMC_FREQ_RATIO=2, program this to RoundUp(tMPX_LH/2 + * )+1. Present only in designs configured to support DDR4. Unit: clocks. +*/ #undef DDRC_DRAMTMG11_T_MPX_LH_DEFVAL #undef DDRC_DRAMTMG11_T_MPX_LH_SHIFT #undef DDRC_DRAMTMG11_T_MPX_LH_MASK -#define DDRC_DRAMTMG11_T_MPX_LH_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_MPX_LH_SHIFT 16 -#define DDRC_DRAMTMG11_T_MPX_LH_MASK 0x001F0000U +#define DDRC_DRAMTMG11_T_MPX_LH_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_MPX_LH_SHIFT 16 +#define DDRC_DRAMTMG11_T_MPX_LH_MASK 0x001F0000U -/*tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_FREQ_RATIO=2, program this to (tMPX_S/2) and round it - up to the next integer value. Present only in designs configured to support DDR4. Unit: Clocks.*/ +/* +* tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_ + * FREQ_RATIO=2, program this to (tMPX_S/2) and round it up to the next int + * eger value. Present only in designs configured to support DDR4. Unit: Cl + * ocks. +*/ #undef DDRC_DRAMTMG11_T_MPX_S_DEFVAL #undef DDRC_DRAMTMG11_T_MPX_S_SHIFT #undef DDRC_DRAMTMG11_T_MPX_S_MASK -#define DDRC_DRAMTMG11_T_MPX_S_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_MPX_S_SHIFT 8 -#define DDRC_DRAMTMG11_T_MPX_S_MASK 0x00000300U +#define DDRC_DRAMTMG11_T_MPX_S_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_MPX_S_SHIFT 8 +#define DDRC_DRAMTMG11_T_MPX_S_MASK 0x00000300U -/*tCKMPE: Minimum valid clock requirement after MPSM entry. Present only in designs configured to support DDR4. Unit: Clocks. F - r configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next i - teger.*/ +/* +* tCKMPE: Minimum valid clock requirement after MPSM entry. Present only i + * n designs configured to support DDR4. Unit: Clocks. For configurations w + * ith MEMC_FREQ_RATIO=2, divide the value calculated using the above equat + * ion by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG11_T_CKMPE_DEFVAL #undef DDRC_DRAMTMG11_T_CKMPE_SHIFT #undef DDRC_DRAMTMG11_T_CKMPE_MASK -#define DDRC_DRAMTMG11_T_CKMPE_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_CKMPE_SHIFT 0 -#define DDRC_DRAMTMG11_T_CKMPE_MASK 0x0000001FU +#define DDRC_DRAMTMG11_T_CKMPE_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_CKMPE_SHIFT 0 +#define DDRC_DRAMTMG11_T_CKMPE_MASK 0x0000001FU -/*tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larger of tESCKE or tCMDCKE For configurations with MEMC_ - REQ_RATIO=2, program this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer value.*/ +/* +* tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larg + * er of tESCKE or tCMDCKE For configurations with MEMC_FREQ_RATIO=2, progr + * am this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer valu + * e. +*/ #undef DDRC_DRAMTMG12_T_CMDCKE_DEFVAL #undef DDRC_DRAMTMG12_T_CMDCKE_SHIFT #undef DDRC_DRAMTMG12_T_CMDCKE_MASK -#define DDRC_DRAMTMG12_T_CMDCKE_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_CMDCKE_SHIFT 16 -#define DDRC_DRAMTMG12_T_CMDCKE_MASK 0x00030000U +#define DDRC_DRAMTMG12_T_CMDCKE_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_CMDCKE_SHIFT 16 +#define DDRC_DRAMTMG12_T_CMDCKE_MASK 0x00030000U -/*tCKEHCMD: Valid command requirement after CKE input HIGH. For configurations with MEMC_FREQ_RATIO=2, program this to (tCKEHCM - /2) and round it up to next integer value.*/ +/* +* tCKEHCMD: Valid command requirement after CKE input HIGH. For configurat + * ions with MEMC_FREQ_RATIO=2, program this to (tCKEHCMD/2) and round it u + * p to next integer value. +*/ #undef DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL #undef DDRC_DRAMTMG12_T_CKEHCMD_SHIFT #undef DDRC_DRAMTMG12_T_CKEHCMD_MASK -#define DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_CKEHCMD_SHIFT 8 -#define DDRC_DRAMTMG12_T_CKEHCMD_MASK 0x00000F00U +#define DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_CKEHCMD_SHIFT 8 +#define DDRC_DRAMTMG12_T_CKEHCMD_MASK 0x00000F00U -/*tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. For configurations with MEMC_FREQ_RATIO=2, program th - s to (tMRD_PDA/2) and round it up to next integer value.*/ +/* +* tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. + * For configurations with MEMC_FREQ_RATIO=2, program this to (tMRD_PDA/2) + * and round it up to next integer value. +*/ #undef DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL #undef DDRC_DRAMTMG12_T_MRD_PDA_SHIFT #undef DDRC_DRAMTMG12_T_MRD_PDA_MASK -#define DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_MRD_PDA_SHIFT 0 -#define DDRC_DRAMTMG12_T_MRD_PDA_MASK 0x0000001FU +#define DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_MRD_PDA_SHIFT 0 +#define DDRC_DRAMTMG12_T_MRD_PDA_MASK 0x0000001FU -/*- 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Register DBGCMD.zq_calib_short can be used instead to is - ue ZQ calibration request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibration) commands based on ZQCTL1.t_zq_s - ort_interval_x1024. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Reg + * ister DBGCMD.zq_calib_short can be used instead to issue ZQ calibration + * request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibrati + * on) commands based on ZQCTL1.t_zq_short_interval_x1024. This is only pre + * sent for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT 31 -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK 0x80000000U +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT 31 +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK 0x80000000U -/*- 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Powerdown exit. Only applicable when run in DDR3 - or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Power - own exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present for designs suppo - ting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refres + * h/SR-Powerdown exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 + * or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibratio + * n) command at Self-Refresh/SR-Powerdown exit. Only applicable when run i + * n DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present + * for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT 30 -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK 0x40000000U +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT 30 +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK 0x40000000U -/*- 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQCL/ZQCS/MPC(ZQ calibration) commands are sent to one r - nk at a time with tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that commands to different ranks do not ov - rlap. - 0 - ZQ resistor is not shared. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQC + * L/ZQCS/MPC(ZQ calibration) commands are sent to one rank at a time with + * tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that co + * mmands to different ranks do not overlap. - 0 - ZQ resistor is not share + * d. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR + * 3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT 29 -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK 0x20000000U +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT 29 +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK 0x20000000U -/*- 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. - 0 - Enable - ssuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. This is only present for des - gns supporting DDR4 devices.*/ +/* +* - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. + * Only applicable when run in DDR4 mode. - 0 - Enable issuing of ZQCL com + * mand at Maximum Power Saving Mode exit. Only applicable when run in DDR4 + * mode. This is only present for designs supporting DDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT 28 -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK 0x10000000U +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT 28 +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK 0x10000000U -/*tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Number of cycles of NOP required after a ZQCL (ZQ calibrat - on long)/MPC(ZQ Start) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2: DDR3/DDR4: program this to tZQo - er/2 and round it up to the next integer value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to the next integer va - ue. LPDDR4: program this to tZQCAL/2 and round it up to the next integer value. Unit: Clock cycles. This is only present for - esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Numbe + * r of cycles of NOP required after a ZQCL (ZQ calibration long)/MPC(ZQ St + * art) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO + * =2: DDR3/DDR4: program this to tZQoper/2 and round it up to the next int + * eger value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to th + * e next integer value. LPDDR4: program this to tZQCAL/2 and round it up t + * o the next integer value. Unit: Clock cycles. This is only present for d + * esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT 16 -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK 0x07FF0000U +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT 16 +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK 0x07FF0000U -/*tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of NOP required after a ZQCS (ZQ calibration short)/MPC - ZQ Latch) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program this to tZQCS/2 and round it up to t - e next integer value. Unit: Clock cycles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devic - s.*/ +/* +* tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of + * NOP required after a ZQCS (ZQ calibration short)/MPC(ZQ Latch) command + * is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program t + * his to tZQCS/2 and round it up to the next integer value. Unit: Clock cy + * cles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LP + * DDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT 0 -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK 0x000003FFU +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT 0 +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK 0x000003FFU -/*tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibration Reset) command is issued to SDRAM. For configurati - ns with MEMC_FREQ_RATIO=2, program this to tZQReset/2 and round it up to the next integer value. Unit: Clock cycles. This is - nly present for designs supporting LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibrati + * on Reset) command is issued to SDRAM. For configurations with MEMC_FREQ_ + * RATIO=2, program this to tZQReset/2 and round it up to the next integer + * value. Unit: Clock cycles. This is only present for designs supporting L + * PDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL 0x02000100 -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT 20 -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK 0x3FF00000U +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL 0x02000100 +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT 20 +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK 0x3FF00000U -/*Average interval to wait between automatically issuing ZQCS (ZQ calibration short)/MPC(ZQ calibration) commands to DDR3/DDR4/ - PDDR2/LPDDR3/LPDDR4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles. This is only present for designs - upporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* Average interval to wait between automatically issuing ZQCS (ZQ calibrat + * ion short)/MPC(ZQ calibration) commands to DDR3/DDR4/LPDDR2/LPDDR3/LPDDR + * 4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles + * . This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3 + * /LPDDR4 devices. +*/ #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL 0x02000100 -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT 0 -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK 0x000FFFFFU +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL 0x02000100 +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT 0 +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK 0x000FFFFFU -/*Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock.*/ +/* +* Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. +*/ #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT 24 -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK 0x1F000000U +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT 24 +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK 0x1F000000U -/*Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value.*/ +/* +* Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. +*/ #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT 23 -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK 0x00800000U +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT 23 +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK 0x00800000U -/*Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks*/ +/* +* Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks +*/ #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT 16 -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK 0x003F0000U +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT 16 +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK 0x003F0000U -/*Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e.*/ +/* +* Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. +*/ #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT 15 -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK 0x00008000U +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT 15 +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK 0x00008000U -/*Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks*/ +/* +* Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks +*/ #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT 8 -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK 0x00003F00U +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT 8 +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK 0x00003F00U -/*Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM.*/ +/* +* Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. +*/ #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT 0 -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK 0x0000003FU +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT 0 +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK 0x0000003FU -/*Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated command is driven. - his field is used for CAL mode, should be set to '0' or the value which matches the CAL mode register setting in the DRAM. If - the PHY can add the latency for CAL mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8*/ +/* +* Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated command is driven. This field is used + * for CAL mode, should be set to '0' or the value which matches the CAL mo + * de register setting in the DRAM. If the PHY can add the latency for CAL + * mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 +*/ #undef DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL #undef DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT #undef DDRC_DFITMG1_DFI_T_CMD_LAT_MASK -#define DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT 28 -#define DDRC_DFITMG1_DFI_T_CMD_LAT_MASK 0xF0000000U +#define DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT 28 +#define DDRC_DFITMG1_DFI_T_CMD_LAT_MASK 0xF0000000U -/*Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated dfi_parity_in signa - is driven.*/ +/* +* Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated dfi_parity_in signal is driven. +*/ #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT 24 -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK 0x03000000U +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT 24 +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK 0x03000000U -/*Specifies the number of DFI clocks between when the dfi_wrdata_en signal is asserted and when the corresponding write data tr - nsfer is completed on the DRAM bus. This corresponds to the DFI timing parameter twrdata_delay. Refer to PHY specification fo - correct value. For DFI 3.0 PHY, set to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI 2.1 PHY, set to - phy_wrdata + (delay of DFI write data to the DRAM). Value to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ - RATIO=2, divide PHY's value by 2 and round up to next integer. If using DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Uni - : Clocks*/ +/* +* Specifies the number of DFI clocks between when the dfi_wrdata_en signal + * is asserted and when the corresponding write data transfer is completed + * on the DRAM bus. This corresponds to the DFI timing parameter twrdata_d + * elay. Refer to PHY specification for correct value. For DFI 3.0 PHY, set + * to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI + * 2.1 PHY, set to tphy_wrdata + (delay of DFI write data to the DRAM). Va + * lue to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ_ + * RATIO=2, divide PHY's value by 2 and round up to next integer. If using + * DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Unit: Clocks +*/ #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT 16 -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK 0x001F0000U +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT 16 +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK 0x001F0000U -/*Specifies the number of DFI clock cycles from the assertion of the dfi_dram_clk_disable signal on the DFI until the clock to - he DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase - ligned, this timing parameter should be rounded up to the next integer value.*/ +/* +* Specifies the number of DFI clock cycles from the assertion of the dfi_d + * ram_clk_disable signal on the DFI until the clock to the DRAM memory dev + * ices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock + * and the memory clock are not phase aligned, this timing parameter should + * be rounded up to the next integer value. +*/ #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT 8 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK 0x00000F00U +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT 8 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK 0x00000F00U -/*Specifies the number of DFI clock cycles from the de-assertion of the dfi_dram_clk_disable signal on the DFI until the first - alid rising edge of the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the DFI clock and the memory clock are - not phase aligned, this timing parameter should be rounded up to the next integer value.*/ +/* +* Specifies the number of DFI clock cycles from the de-assertion of the df + * i_dram_clk_disable signal on the DFI until the first valid rising edge o + * f the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the + * DFI clock and the memory clock are not phase aligned, this timing param + * eter should be rounded up to the next integer value. +*/ #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT 0 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK 0x0000000FU +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT 0 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK 0x0000000FU -/*Setting for DFI's tlp_resp time. Same value is used for both Power Down, Self Refresh, Deep Power Down and Maximum Power Savi - g modes. DFI 2.1 specification onwards, recommends using a fixed value of 7 always.*/ +/* +* Setting for DFI's tlp_resp time. Same value is used for both Power Down, + * Self Refresh, Deep Power Down and Maximum Power Saving modes. DFI 2.1 s + * pecification onwards, recommends using a fixed value of 7 always. +*/ #undef DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL #undef DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT #undef DDRC_DFILPCFG0_DFI_TLP_RESP_MASK -#define DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT 24 -#define DDRC_DFILPCFG0_DFI_TLP_RESP_MASK 0x0F000000U +#define DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT 24 +#define DDRC_DFILPCFG0_DFI_TLP_RESP_MASK 0x0F000000U -/*Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 - cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - - 31072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting mDDR or LPDDR2/LPDDR3 device - .*/ +/* +* Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is ente + * red. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 + * cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 5 + * 12 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - + * 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 6553 + * 6 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited T + * his is only present for designs supporting mDDR or LPDDR2/LPDDR3 devices + * . +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT 20 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK 0x00F00000U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT 20 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK 0x00F00000U -/*Enables DFI Low Power interface handshaking during Deep Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled This is only pres - nt for designs supporting mDDR or LPDDR2/LPDDR3 devices.*/ +/* +* Enables DFI Low Power interface handshaking during Deep Power Down Entry + * /Exit. - 0 - Disabled - 1 - Enabled This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3 devices. +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT 16 -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK 0x00010000U +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT 16 +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK 0x00010000U -/*Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cy - les - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 131 - 72 cycles - 0xE - 262144 cycles - 0xF - Unlimited*/ +/* +* Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered + * . Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cyc + * les - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 + * cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 + * - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 c + * ycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT 12 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK 0x0000F000U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT 12 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK 0x0000F000U -/*Enables DFI Low Power interface handshaking during Self Refresh Entry/Exit. - 0 - Disabled - 1 - Enabled*/ +/* +* Enables DFI Low Power interface handshaking during Self Refresh Entry/Ex + * it. - 0 - Disabled - 1 - Enabled +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT 8 -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK 0x00000100U +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT 8 +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK 0x00000100U -/*Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycl - s - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 20 - 8 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 13107 - cycles - 0xE - 262144 cycles - 0xF - Unlimited*/ +/* +* Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. + * Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cycle + * s - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cy + * cles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - + * 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cyc + * les - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT 4 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK 0x000000F0U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT 4 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK 0x000000F0U -/*Enables DFI Low Power interface handshaking during Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled*/ +/* +* Enables DFI Low Power interface handshaking during Power Down Entry/Exit + * . - 0 - Disabled - 1 - Enabled +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT 0 -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK 0x00000001U +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT 0 +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK 0x00000001U -/*Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - - 16 cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0 - D - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting DDR4 devices.*/ +/* +* Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is + * entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 + * - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x + * 5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycl + * es - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - + * 65536 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimi + * ted This is only present for designs supporting DDR4 devices. +*/ #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL 0x00000000 -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT 4 -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK 0x000000F0U +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL 0x00000000 +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT 4 +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK 0x000000F0U -/*Enables DFI Low Power interface handshaking during Maximum Power Saving Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is - only present for designs supporting DDR4 devices.*/ +/* +* Enables DFI Low Power interface handshaking during Maximum Power Saving + * Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is only present for d + * esigns supporting DDR4 devices. +*/ #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL 0x00000000 -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT 0 -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK 0x00000001U +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL 0x00000000 +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT 0 +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK 0x00000001U -/*This is the minimum amount of time between uMCTL2 initiated DFI update requests (which is executed whenever the uMCTL2 is idl - ). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the fir - t read request when the uMCTL2 is idle. Unit: 1024 clocks*/ +/* +* When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * . The core must issue the dfi_ctrlupd_req signal using register reg_ddrc + * _ctrlupd. When '0', uMCTL2 issues dfi_ctrlupd_req periodically. +*/ +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_DEFVAL +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SHIFT +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_MASK +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SHIFT 31 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_MASK 0x80000000U + +/* +* When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * following a self-refresh exit. The core must issue the dfi_ctrlupd_req + * signal using register reg_ddrc_ctrlupd. When '0', uMCTL2 issues a dfi_ct + * rlupd_req after exiting self-refresh. +*/ +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_DEFVAL +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_SHIFT +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_MASK +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_SHIFT 30 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_MASK 0x40000000U + +/* +* Specifies the maximum number of clock cycles that the dfi_ctrlupd_req si + * gnal can assert. Lowest value to assign to this variable is 0x40. Unit: + * Clocks +*/ +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_DEFVAL +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_SHIFT +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_MASK +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_SHIFT 16 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_MASK 0x03FF0000U + +/* +* Specifies the minimum number of clock cycles that the dfi_ctrlupd_req si + * gnal must be asserted. The uMCTL2 expects the PHY to respond within this + * time. If the PHY does not respond, the uMCTL2 will de-assert dfi_ctrlup + * d_req after dfi_t_ctrlup_min + 2 cycles. Lowest value to assign to this + * variable is 0x3. Unit: Clocks +*/ +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_DEFVAL +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_SHIFT +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_MASK +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_SHIFT 0 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_MASK 0x000003FFU + +/* +* This is the minimum amount of time between uMCTL2 initiated DFI update r + * equests (which is executed whenever the uMCTL2 is idle). Set this number + * higher to reduce the frequency of update requests, which can have a sma + * ll impact on the latency of the first read request when the uMCTL2 is id + * le. Unit: 1024 clocks +*/ #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL 0x00000000 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT 16 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK 0x00FF0000U +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL 0x00000000 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT 16 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK 0x00FF0000U -/*This is the maximum amount of time between uMCTL2 initiated DFI update requests. This timer resets with each update request; - hen the timer expires dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd_ackx is received. PHY can use this - idle time to recalibrate the delay lines to the DLLs. The DFI controller update is also used to reset PHY FIFO pointers in ca - e of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. - Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x - 024. Unit: 1024 clocks*/ +/* +* This is the maximum amount of time between uMCTL2 initiated DFI update r + * equests. This timer resets with each update request; when the timer expi + * res dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd + * _ackx is received. PHY can use this idle time to recalibrate the delay l + * ines to the DLLs. The DFI controller update is also used to reset PHY FI + * FO pointers in case of data capture errors. Updates are required to main + * tain calibration over PVT, but frequent updates may impact performance. + * Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must + * be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x1024. Unit: 1024 cl + * ocks +*/ #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL 0x00000000 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT 0 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK 0x000000FFU +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL 0x00000000 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT 0 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK 0x000000FFU -/*Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signals are active low - 1: Signals are active high*/ +/* +* Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signal + * s are active low - 1: Signals are active high +*/ #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL 0x00000001 -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT 2 -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK 0x00000004U +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL 0x00000001 +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT 2 +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK 0x00000004U -/*DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. - 1 - PHY implements DBI functionality. Present only - in designs configured to support DDR4 and LPDDR4.*/ +/* +* DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. + * - 1 - PHY implements DBI functionality. Present only in designs configu + * red to support DDR4 and LPDDR4. +*/ #undef DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL #undef DDRC_DFIMISC_PHY_DBI_MODE_SHIFT #undef DDRC_DFIMISC_PHY_DBI_MODE_MASK -#define DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL 0x00000001 -#define DDRC_DFIMISC_PHY_DBI_MODE_SHIFT 1 -#define DDRC_DFIMISC_PHY_DBI_MODE_MASK 0x00000002U +#define DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL 0x00000001 +#define DDRC_DFIMISC_PHY_DBI_MODE_SHIFT 1 +#define DDRC_DFIMISC_PHY_DBI_MODE_MASK 0x00000002U -/*PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialisa - ion*/ +/* +* PHY initialization complete enable signal. When asserted the dfi_init_co + * mplete signal can be used to trigger SDRAM initialisation +*/ #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL 0x00000001 -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT 0 -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK 0x00000001U +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL 0x00000001 +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT 0 +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK 0x00000001U -/*>Number of clocks between when a read command is sent on the DFI control interface and when the associated dfi_rddata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY specification for correct value.*/ +/* +* >Number of clocks between when a read command is sent on the DFI control + * interface and when the associated dfi_rddata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY spe + * cification for correct value. +*/ #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL 0x00000202 -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT 8 -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK 0x00003F00U +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL 0x00000202 +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT 8 +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK 0x00003F00U -/*Number of clocks between when a write command is sent on the DFI control interface and when the associated dfi_wrdata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY specification for correct value.*/ +/* +* Number of clocks between when a write command is sent on the DFI control + * interface and when the associated dfi_wrdata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY spe + * cification for correct value. +*/ #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL 0x00000202 -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT 0 -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK 0x0000003FU +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL 0x00000202 +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT 0 +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK 0x0000003FU -/*Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read DBI is enabled. This signal must be set the same value - as DRAM's mode register. - DDR4: MR5 bit A12. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[6]*/ +/* +* Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read D + * BI is enabled. This signal must be set the same value as DRAM's mode reg + * ister. - DDR4: MR5 bit A12. When x4 devices are used, this signal must b + * e set to 0. - LPDDR4: MR3[6] +*/ #undef DDRC_DBICTL_RD_DBI_EN_DEFVAL #undef DDRC_DBICTL_RD_DBI_EN_SHIFT #undef DDRC_DBICTL_RD_DBI_EN_MASK -#define DDRC_DBICTL_RD_DBI_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_RD_DBI_EN_SHIFT 2 -#define DDRC_DBICTL_RD_DBI_EN_MASK 0x00000004U +#define DDRC_DBICTL_RD_DBI_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_RD_DBI_EN_SHIFT 2 +#define DDRC_DBICTL_RD_DBI_EN_MASK 0x00000004U -/*Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Write DBI is enabled. This signal must be set the same va - ue as DRAM's mode register. - DDR4: MR5 bit A11. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[7]*/ +/* +* Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Writ + * e DBI is enabled. This signal must be set the same value as DRAM's mode + * register. - DDR4: MR5 bit A11. When x4 devices are used, this signal mus + * t be set to 0. - LPDDR4: MR3[7] +*/ #undef DDRC_DBICTL_WR_DBI_EN_DEFVAL #undef DDRC_DBICTL_WR_DBI_EN_SHIFT #undef DDRC_DBICTL_WR_DBI_EN_MASK -#define DDRC_DBICTL_WR_DBI_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_WR_DBI_EN_SHIFT 1 -#define DDRC_DBICTL_WR_DBI_EN_MASK 0x00000002U +#define DDRC_DBICTL_WR_DBI_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_WR_DBI_EN_SHIFT 1 +#define DDRC_DBICTL_WR_DBI_EN_MASK 0x00000002U -/*DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. This signal must be set the same logical value as DRAM's - mode register. - DDR4: Set this to same value as MR5 bit A10. When x4 devices are used, this signal must be set to 0. - LPDDR - : Set this to inverted value of MR13[5] which is opposite polarity from this signal*/ +/* +* DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. Thi + * s signal must be set the same logical value as DRAM's mode register. - D + * DR4: Set this to same value as MR5 bit A10. When x4 devices are used, th + * is signal must be set to 0. - LPDDR4: Set this to inverted value of MR13 + * [5] which is opposite polarity from this signal +*/ #undef DDRC_DBICTL_DM_EN_DEFVAL #undef DDRC_DBICTL_DM_EN_SHIFT #undef DDRC_DBICTL_DM_EN_MASK -#define DDRC_DBICTL_DM_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_DM_EN_SHIFT 0 -#define DDRC_DBICTL_DM_EN_MASK 0x00000001U +#define DDRC_DBICTL_DM_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_DM_EN_SHIFT 0 +#define DDRC_DBICTL_DM_EN_MASK 0x00000001U -/*Selects the HIF address bit used as rank address bit 0. Valid Range: 0 to 27, and 31 Internal Base: 6 The selected HIF addres - bit is determined by adding the internal base to the value of this field. If set to 31, rank address bit 0 is set to 0.*/ +/* +* Selects the HIF address bit used as rank address bit 0. Valid Range: 0 t + * o 27, and 31 Internal Base: 6 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, r + * ank address bit 0 is set to 0. +*/ #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT 0 -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK 0x0000001FU +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT 0 +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK 0x0000001FU -/*Selects the HIF address bit used as bank address bit 2. Valid Range: 0 to 29 and 31 Internal Base: 4 The selected HIF address - bit is determined by adding the internal base to the value of this field. If set to 31, bank address bit 2 is set to 0.*/ +/* +* Selects the HIF address bit used as bank address bit 2. Valid Range: 0 t + * o 29 and 31 Internal Base: 4 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, ba + * nk address bit 2 is set to 0. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT 16 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK 0x001F0000U +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT 16 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK 0x001F0000U -/*Selects the HIF address bits used as bank address bit 1. Valid Range: 0 to 30 Internal Base: 3 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank address bit 1. Valid Range: 0 + * to 30 Internal Base: 3 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT 8 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK 0x00001F00U +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT 8 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK 0x00001F00U -/*Selects the HIF address bits used as bank address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank address bit 0. Valid Range: 0 + * to 30 Internal Base: 2 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT 0 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK 0x0000001FU +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT 0 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK 0x0000001FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 5. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 6. - Quarter bus width mode: Selects the HIF address bit used as column address bit 7 . Vali - Range: 0 to 7, and 15 Internal Base: 5 The selected HIF address bit is determined by adding the internal base to the value o - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 5. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 6. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 7 . Valid Range: 0 to 7, and 15 Internal Base + * : 5 The selected HIF address bit is determined by adding the internal ba + * se to the value of this field. If set to 15, this column address bit is + * set to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT 24 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK 0x0F000000U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT 24 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK 0x0F000000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 4. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 5. - Quarter bus width mode: Selects the HIF address bit used as column address bit 6. Valid - Range: 0 to 7, and 15 Internal Base: 4 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 4. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 5. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 6. Valid Range: 0 to 7, and 15 Internal Base: + * 4 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT 16 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK 0x000F0000U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT 16 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK 0x000F0000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 3. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 4. - Quarter bus width mode: Selects the HIF address bit used as column address bit 5. Valid - Range: 0 to 7 Internal Base: 3 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=16, it is required to program this to 0, hence register does not exist i - this case.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 3. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 4. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 5. Valid Range: 0 to 7 Internal Base: 3 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=1 + * 6, it is required to program this to 0, hence register does not exist in + * this case. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT 8 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK 0x00000F00U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT 8 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 2. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 3. - Quarter bus width mode: Selects the HIF address bit used as column address bit 4. Valid - Range: 0 to 7 Internal Base: 2 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 or 16, it is required to program this to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 2. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 3. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 4. Valid Range: 0 to 7 Internal Base: 2 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 + * or 16, it is required to program this to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT 0 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK 0x0000000FU +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT 0 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK 0x0000000FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 9. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: Selects the HIF address bit used as - column address bit 13 (11 in LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected HIF address bit i - determined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: - er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source addr - ss bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus an - hence column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 9. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: + * Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/ + * LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected + * HIF address bit is determined by adding the internal base to the value o + * f this field. If set to 15, this column address bit is set to 0. Note: P + * er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved fo + * r indicating auto-precharge, and hence no source address bit can be mapp + * ed to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit + * for auto-precharge in the CA bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT 24 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK 0x0F000000U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT 24 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK 0x0F000000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 8. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 9. - Quarter bus width mode: Selects the HIF address bit used as column address bit 11 (10 i - LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 8 The selected HIF address bit is determined by adding the i - ternal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specif - cation, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to col - mn address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is use - .*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 8. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 9. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). Valid Range: 0 + * to 7, and 15 Internal Base: 8 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specifi + * cation, column address bit 10 is reserved for indicating auto-precharge, + * and hence no source address bit can be mapped to column address bit 10. + * In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA + * bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT 16 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK 0x000F0000U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT 16 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK 0x000F0000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 7. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 8. - Quarter bus width mode: Selects the HIF address bit used as column address bit 9. Valid - Range: 0 to 7, and 15 Internal Base: 7 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 7. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 8. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 9. Valid Range: 0 to 7, and 15 Internal Base: + * 7 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT 8 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK 0x00000F00U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT 8 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 6. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 7. - Quarter bus width mode: Selects the HIF address bit used as column address bit 8. Valid - Range: 0 to 7, and 15 Internal Base: 6 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 6. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 7. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 8. Valid Range: 0 to 7, and 15 Internal Base: + * 6 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT 0 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK 0x0000000FU +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT 0 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK 0x0000000FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Unused. To make it unused, this should be tied to 4'hF. - Quarter bus width mode: Unused. To make it unused, this must - e tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 11 The selected HIF address bit is determined by adding the intern - l base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificati - n, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column a - dress bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width mode: Unused. To m + * ake it unused, this should be tied to 4'hF. - Quarter bus width mode: Un + * used. To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, + * and 15 Internal Base: 11 The selected HIF address bit is determined by + * adding the internal base to the value of this field. If set to 15, this + * column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificatio + * n, column address bit 10 is reserved for indicating auto-precharge, and + * hence no source address bit can be mapped to column address bit 10. In L + * PDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus + * and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL 0x00000000 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT 8 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK 0x00000F00U +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL 0x00000000 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT 8 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: UNUSED. - To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF address bit is d - termined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per - JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source address - bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and h - nce column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width mode: Selects the + * HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode) + * . - Quarter bus width mode: UNUSED. To make it unused, this must be tied + * to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF + * address bit is determined by adding the internal base to the value of t + * his field. If set to 15, this column address bit is set to 0. Note: Per + * JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for i + * ndicating auto-precharge, and hence no source address bit can be mapped + * to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for + * auto-precharge in the CA bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL 0x00000000 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT 0 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK 0x0000000FU +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL 0x00000000 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT 0 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK 0x0000000FU -/*Selects the HIF address bit used as row address bit 11. Valid Range: 0 to 11, and 15 Internal Base: 17 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 11 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 11. Valid Range: 0 t + * o 11, and 15 Internal Base: 17 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 11 is set to 0. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT 24 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK 0x0F000000U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT 24 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bits 2 to 10. Valid Range: 0 to 11, and 15 Internal Base: 8 (for row address - bit 2), 9 (for row address bit 3), 10 (for row address bit 4) etc increasing to 16 (for row address bit 10) The selected HIF - ddress bit for each of the row address bits is determined by adding the internal base to the value of this field. When value - 5 is used the values of row address bits 2 to 10 are defined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11.*/ +/* +* Selects the HIF address bits used as row address bits 2 to 10. Valid Ran + * ge: 0 to 11, and 15 Internal Base: 8 (for row address bit 2), 9 (for row + * address bit 3), 10 (for row address bit 4) etc increasing to 16 (for ro + * w address bit 10) The selected HIF address bit for each of the row addre + * ss bits is determined by adding the internal base to the value of this f + * ield. When value 15 is used the values of row address bits 2 to 10 are d + * efined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT 16 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK 0x000F0000U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT 16 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 1. Valid Range: 0 to 11 Internal Base: 7 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as row address bit 1. Valid Range: 0 t + * o 11 Internal Base: 7 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT 8 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK 0x00000F00U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT 8 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 0. Valid Range: 0 to 11 Internal Base: 6 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as row address bit 0. Valid Range: 0 t + * o 11 Internal Base: 6 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT 0 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK 0x0000000FU +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT 0 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK 0x0000000FU -/*Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address - having row[14:13]==2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. All addresses are valid Present on - y in designs configured to support LPDDR3.*/ +/* +* Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 + * - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address having row[14:13]= + * =2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. + * All addresses are valid Present only in designs configured to support L + * PDDR3. +*/ #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT 31 -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK 0x80000000U +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT 31 +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK 0x80000000U -/*Selects the HIF address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 15 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 15. Valid Range: 0 t + * o 11, and 15 Internal Base: 21 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 15 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT 24 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK 0x0F000000U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT 24 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK 0x0F000000U -/*Selects the HIF address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 20 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 14 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 14. Valid Range: 0 t + * o 11, and 15 Internal Base: 20 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 14 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT 16 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK 0x000F0000U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT 16 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK 0x000F0000U -/*Selects the HIF address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 19 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 13 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 13. Valid Range: 0 t + * o 11, and 15 Internal Base: 19 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 13 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT 8 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK 0x00000F00U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT 8 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK 0x00000F00U -/*Selects the HIF address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 18 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 12 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 12. Valid Range: 0 t + * o 11, and 15 Internal Base: 18 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 12 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT 0 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK 0x0000000FU +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT 0 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK 0x0000000FU -/*Selects the HIF address bit used as row address bit 17. Valid Range: 0 to 10, and 15 Internal Base: 23 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 17 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 17. Valid Range: 0 t + * o 10, and 15 Internal Base: 23 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 17 is set to 0. +*/ #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL 0x00000000 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT 8 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK 0x00000F00U +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL 0x00000000 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT 8 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK 0x00000F00U -/*Selects the HIF address bit used as row address bit 16. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 16 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 16. Valid Range: 0 t + * o 11, and 15 Internal Base: 22 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 16 is set to 0. +*/ #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL 0x00000000 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT 0 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK 0x0000000FU +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL 0x00000000 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT 0 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK 0x0000000FU -/*Selects the HIF address bits used as bank group address bit 1. Valid Range: 0 to 30, and 31 Internal Base: 3 The selected HIF - address bit for each of the bank group address bits is determined by adding the internal base to the value of this field. If - et to 31, bank group address bit 1 is set to 0.*/ +/* +* Selects the HIF address bits used as bank group address bit 1. Valid Ran + * ge: 0 to 30, and 31 Internal Base: 3 The selected HIF address bit for ea + * ch of the bank group address bits is determined by adding the internal b + * ase to the value of this field. If set to 31, bank group address bit 1 i + * s set to 0. +*/ #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT 8 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK 0x00001F00U +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT 8 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK 0x00001F00U -/*Selects the HIF address bits used as bank group address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address - bit for each of the bank group address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank group address bit 0. Valid Ran + * ge: 0 to 30 Internal Base: 2 The selected HIF address bit for each of th + * e bank group address bits is determined by adding the internal base to t + * he value of this field. +*/ #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT 0 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK 0x0000001FU +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT 0 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK 0x0000001FU -/*Selects the HIF address bits used as row address bit 5. Valid Range: 0 to 11 Internal Base: 11 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 5. Valid Range: 0 t + * o 11 Internal Base: 11 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT 24 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK 0x0F000000U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT 24 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bit 4. Valid Range: 0 to 11 Internal Base: 10 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 4. Valid Range: 0 t + * o 11 Internal Base: 10 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT 16 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK 0x000F0000U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT 16 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 3. Valid Range: 0 to 11 Internal Base: 9 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 3. Valid Range: 0 t + * o 11 Internal Base: 9 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT 8 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK 0x00000F00U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT 8 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 2. Valid Range: 0 to 11 Internal Base: 8 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 2. Valid Range: 0 t + * o 11 Internal Base: 8 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT 0 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK 0x0000000FU +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT 0 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK 0x0000000FU -/*Selects the HIF address bits used as row address bit 9. Valid Range: 0 to 11 Internal Base: 15 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 9. Valid Range: 0 t + * o 11 Internal Base: 15 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT 24 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK 0x0F000000U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT 24 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bit 8. Valid Range: 0 to 11 Internal Base: 14 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 8. Valid Range: 0 t + * o 11 Internal Base: 14 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT 16 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK 0x000F0000U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT 16 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 7. Valid Range: 0 to 11 Internal Base: 13 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 7. Valid Range: 0 t + * o 11 Internal Base: 13 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT 8 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK 0x00000F00U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT 8 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 6. Valid Range: 0 to 11 Internal Base: 12 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 6. Valid Range: 0 t + * o 11 Internal Base: 12 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT 0 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK 0x0000000FU +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT 0 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK 0x0000000FU -/*Selects the HIF address bits used as row address bit 10. Valid Range: 0 to 11 Internal Base: 16 The selected HIF address bit - or each of the row address bits is determined by adding the internal base to the value of this field. This register field is - sed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 10. Valid Range: 0 + * to 11 Internal Base: 16 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of + * this field. This register field is used only when ADDRMAP5.addrmap_row_b + * 2_10 is set to value 15. +*/ #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT 0 -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK 0x0000000FU +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT 0 +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK 0x0000000FU -/*Cycles to hold ODT for a write command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/ - 67), 0x6 (DDR2-800), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (DDR2-1066) DDR3: - BL8: 0x6 DDR4: - - L8: 5 + WR_PREAMBLE + CRC_MODE WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 (not CRC mode), 1 - CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK)*/ +/* +* Cycles to hold ODT for a write command. The minimum supported value is 2 + * . Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/667), 0x6 (DDR2-800 + * ), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (D + * DR2-1066) DDR3: - BL8: 0x6 DDR4: - BL8: 5 + WR_PREAMBLE + CRC_MODE WR_PR + * EAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 ( + * not CRC mode), 1 (CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL #undef DDRC_ODTCFG_WR_ODT_HOLD_SHIFT #undef DDRC_ODTCFG_WR_ODT_HOLD_MASK -#define DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL 0x04000400 -#define DDRC_ODTCFG_WR_ODT_HOLD_SHIFT 24 -#define DDRC_ODTCFG_WR_ODT_HOLD_MASK 0x0F000000U +#define DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL 0x04000400 +#define DDRC_ODTCFG_WR_ODT_HOLD_SHIFT 24 +#define DDRC_ODTCFG_WR_ODT_HOLD_MASK 0x0F000000U -/*The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting must - remain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CWL + AL - 3 (DDR2-400/533/ - 67), CWL + AL - 4 (DDR2-800), CWL + AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT for write operation - DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK))*/ +/* +* The delay, in clock cycles, from issuing a write command to setting ODT + * values associated with that command. ODT setting must remain constant fo + * r the entire time that DQS is driven by the uMCTL2. Recommended values: + * DDR2: - CWL + AL - 3 (DDR2-400/533/667), CWL + AL - 4 (DDR2-800), CWL + + * AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT fo + * r write operation. DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust + * for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) +*/ #undef DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL #undef DDRC_ODTCFG_WR_ODT_DELAY_SHIFT #undef DDRC_ODTCFG_WR_ODT_DELAY_MASK -#define DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL 0x04000400 -#define DDRC_ODTCFG_WR_ODT_DELAY_SHIFT 16 -#define DDRC_ODTCFG_WR_ODT_DELAY_MASK 0x001F0000U +#define DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL 0x04000400 +#define DDRC_ODTCFG_WR_ODT_DELAY_SHIFT 16 +#define DDRC_ODTCFG_WR_ODT_DELAY_MASK 0x001F0000U -/*Cycles to hold ODT for a read command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066) - 0x7 (DDR2-1066) - BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8: 5 + RD_PREAMBLE RD_PREAMBLE = 1 ( - tCK write preamble), 2 (2tCK write preamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + RU(tODTon(max)/tC - )*/ +/* +* Cycles to hold ODT for a read command. The minimum supported value is 2. + * Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066), 0x7 (DDR2-1066) - + * BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8 + * : 5 + RD_PREAMBLE RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write p + * reamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + + * RU(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL #undef DDRC_ODTCFG_RD_ODT_HOLD_SHIFT #undef DDRC_ODTCFG_RD_ODT_HOLD_MASK -#define DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL 0x04000400 -#define DDRC_ODTCFG_RD_ODT_HOLD_SHIFT 8 -#define DDRC_ODTCFG_RD_ODT_HOLD_MASK 0x00000F00U +#define DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL 0x04000400 +#define DDRC_ODTCFG_RD_ODT_HOLD_SHIFT 8 +#define DDRC_ODTCFG_RD_ODT_HOLD_MASK 0x00000F00U -/*The delay, in clock cycles, from issuing a read command to setting ODT values associated with that command. ODT setting must - emain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CL + AL - 4 (not DDR2-1066), - CL + AL - 5 (DDR2-1066) If (CL + AL - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - CWL DDR4: - CL - C - L - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK - write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, - uMCTL2 does not support ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - RU(tODTon(max)/tCK)*/ +/* +* The delay, in clock cycles, from issuing a read command to setting ODT v + * alues associated with that command. ODT setting must remain constant for + * the entire time that DQS is driven by the uMCTL2. Recommended values: D + * DR2: - CL + AL - 4 (not DDR2-1066), CL + AL - 5 (DDR2-1066) If (CL + AL + * - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - C + * WL DDR4: - CL - CWL - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat + * (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK + * write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write pre + * amble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, uMCTL2 does not su + * pport ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - R + * U(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL #undef DDRC_ODTCFG_RD_ODT_DELAY_SHIFT #undef DDRC_ODTCFG_RD_ODT_DELAY_MASK -#define DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL 0x04000400 -#define DDRC_ODTCFG_RD_ODT_DELAY_SHIFT 2 -#define DDRC_ODTCFG_RD_ODT_DELAY_MASK 0x0000007CU +#define DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL 0x04000400 +#define DDRC_ODTCFG_RD_ODT_DELAY_SHIFT 2 +#define DDRC_ODTCFG_RD_ODT_DELAY_MASK 0x0000007CU -/*Indicates which remote ODTs must be turned on during a read from rank 1. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks*/ +/* +* Indicates which remote ODTs must be turned on during a read from rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. Present only in configurations that have 2 or more + * ranks +*/ #undef DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL #undef DDRC_ODTMAP_RANK1_RD_ODT_SHIFT #undef DDRC_ODTMAP_RANK1_RD_ODT_MASK -#define DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK1_RD_ODT_SHIFT 12 -#define DDRC_ODTMAP_RANK1_RD_ODT_MASK 0x00003000U +#define DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK1_RD_ODT_SHIFT 12 +#define DDRC_ODTMAP_RANK1_RD_ODT_MASK 0x00003000U -/*Indicates which remote ODTs must be turned on during a write to rank 1. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks*/ +/* +* Indicates which remote ODTs must be turned on during a write to rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. Present only in configurations that have 2 or more r + * anks +*/ #undef DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL #undef DDRC_ODTMAP_RANK1_WR_ODT_SHIFT #undef DDRC_ODTMAP_RANK1_WR_ODT_MASK -#define DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK1_WR_ODT_SHIFT 8 -#define DDRC_ODTMAP_RANK1_WR_ODT_MASK 0x00000300U +#define DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK1_WR_ODT_SHIFT 8 +#define DDRC_ODTMAP_RANK1_WR_ODT_MASK 0x00000300U -/*Indicates which remote ODTs must be turned on during a read from rank 0. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT.*/ +/* +* Indicates which remote ODTs must be turned on during a read from rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. +*/ #undef DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL #undef DDRC_ODTMAP_RANK0_RD_ODT_SHIFT #undef DDRC_ODTMAP_RANK0_RD_ODT_MASK -#define DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK0_RD_ODT_SHIFT 4 -#define DDRC_ODTMAP_RANK0_RD_ODT_MASK 0x00000030U +#define DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK0_RD_ODT_SHIFT 4 +#define DDRC_ODTMAP_RANK0_RD_ODT_MASK 0x00000030U -/*Indicates which remote ODTs must be turned on during a write to rank 0. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT.*/ +/* +* Indicates which remote ODTs must be turned on during a write to rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. +*/ #undef DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL #undef DDRC_ODTMAP_RANK0_WR_ODT_SHIFT #undef DDRC_ODTMAP_RANK0_WR_ODT_MASK -#define DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK0_WR_ODT_SHIFT 0 -#define DDRC_ODTMAP_RANK0_WR_ODT_MASK 0x00000003U +#define DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK0_WR_ODT_SHIFT 0 +#define DDRC_ODTMAP_RANK0_WR_ODT_MASK 0x00000003U -/*When the preferred transaction store is empty for these many clock cycles, switch to the alternate transaction store if it is - non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write t - ansaction store is the alternative store. When prefer write over read is set this is reversed. 0x0 is a legal value for this - egister. When set to 0x0, the transaction store switching will happen immediately when the switching conditions become true. - OR PERFORMANCE ONLY*/ +/* +* When the preferred transaction store is empty for these many clock cycle + * s, switch to the alternate transaction store if it is non-empty. The rea + * d transaction store (both high and low priority) is the default preferre + * d transaction store and the write transaction store is the alternative s + * tore. When prefer write over read is set this is reversed. 0x0 is a lega + * l value for this register. When set to 0x0, the transaction store switch + * ing will happen immediately when the switching conditions become true. F + * OR PERFORMANCE ONLY +*/ #undef DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL #undef DDRC_SCHED_RDWR_IDLE_GAP_SHIFT #undef DDRC_SCHED_RDWR_IDLE_GAP_MASK -#define DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL 0x00002005 -#define DDRC_SCHED_RDWR_IDLE_GAP_SHIFT 24 -#define DDRC_SCHED_RDWR_IDLE_GAP_MASK 0x7F000000U +#define DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL 0x00002005 +#define DDRC_SCHED_RDWR_IDLE_GAP_SHIFT 24 +#define DDRC_SCHED_RDWR_IDLE_GAP_MASK 0x7F000000U -/*UNUSED*/ +/* +* UNUSED +*/ #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL 0x00002005 -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT 16 -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK 0x00FF0000U +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL 0x00002005 +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT 16 +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK 0x00FF0000U -/*Number of entries in the low priority transaction store is this value + 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) i - the number of entries available for the high priority transaction store. Setting this to maximum value allocates all entries - to low priority transaction store. Setting this to 0 allocates 1 entry to low priority transaction store and the rest to high - priority transaction store. Note: In ECC configurations, the numbers of write and low priority read credits issued is one les - than in the non-ECC case. One entry each is reserved in the write and low-priority read CAMs for storing the RMW requests ar - sing out of single bit error correction RMW operation.*/ +/* +* Number of entries in the low priority transaction store is this value + + * 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) is the number of ent + * ries available for the high priority transaction store. Setting this to + * maximum value allocates all entries to low priority transaction store. S + * etting this to 0 allocates 1 entry to low priority transaction store and + * the rest to high priority transaction store. Note: In ECC configuration + * s, the numbers of write and low priority read credits issued is one less + * than in the non-ECC case. One entry each is reserved in the write and l + * ow-priority read CAMs for storing the RMW requests arising out of single + * bit error correction RMW operation. +*/ #undef DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL #undef DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT #undef DDRC_SCHED_LPR_NUM_ENTRIES_MASK -#define DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL 0x00002005 -#define DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT 8 -#define DDRC_SCHED_LPR_NUM_ENTRIES_MASK 0x00003F00U +#define DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL 0x00002005 +#define DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT 8 +#define DDRC_SCHED_LPR_NUM_ENTRIES_MASK 0x00003F00U -/*If true, bank is kept open only while there are page hit transactions available in the CAM to that bank. The last read or wri - e command in the CAM with a bank and page hit will be executed with auto-precharge if SCHED1.pageclose_timer=0. Even if this - egister set to 1 and SCHED1.pageclose_timer is set to 0, explicit precharge (and not auto-precharge) may be issued in some ca - es where there is a mode switch between Write and Read or between LPR and HPR. The Read and Write commands that are executed - s part of the ECC scrub requests are also executed without auto-precharge. If false, the bank remains open until there is a n - ed to close it (to open a different page, or for page timeout or refresh timeout) - also known as open page policy. The open - age policy can be overridden by setting the per-command-autopre bit on the HIF interface (hif_cmd_autopre). The pageclose fea - ure provids a midway between Open and Close page policies. FOR PERFORMANCE ONLY.*/ +/* +* If true, bank is kept open only while there are page hit transactions av + * ailable in the CAM to that bank. The last read or write command in the C + * AM with a bank and page hit will be executed with auto-precharge if SCHE + * D1.pageclose_timer=0. Even if this register set to 1 and SCHED1.pageclos + * e_timer is set to 0, explicit precharge (and not auto-precharge) may be + * issued in some cases where there is a mode switch between Write and Read + * or between LPR and HPR. The Read and Write commands that are executed a + * s part of the ECC scrub requests are also executed without auto-precharg + * e. If false, the bank remains open until there is a need to close it (to + * open a different page, or for page timeout or refresh timeout) - also k + * nown as open page policy. The open page policy can be overridden by sett + * ing the per-command-autopre bit on the HIF interface (hif_cmd_autopre). + * The pageclose feature provids a midway between Open and Close page polic + * ies. FOR PERFORMANCE ONLY. +*/ #undef DDRC_SCHED_PAGECLOSE_DEFVAL #undef DDRC_SCHED_PAGECLOSE_SHIFT #undef DDRC_SCHED_PAGECLOSE_MASK -#define DDRC_SCHED_PAGECLOSE_DEFVAL 0x00002005 -#define DDRC_SCHED_PAGECLOSE_SHIFT 2 -#define DDRC_SCHED_PAGECLOSE_MASK 0x00000004U +#define DDRC_SCHED_PAGECLOSE_DEFVAL 0x00002005 +#define DDRC_SCHED_PAGECLOSE_SHIFT 2 +#define DDRC_SCHED_PAGECLOSE_MASK 0x00000004U -/*If set then the bank selector prefers writes over reads. FOR DEBUG ONLY.*/ +/* +* If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. +*/ #undef DDRC_SCHED_PREFER_WRITE_DEFVAL #undef DDRC_SCHED_PREFER_WRITE_SHIFT #undef DDRC_SCHED_PREFER_WRITE_MASK -#define DDRC_SCHED_PREFER_WRITE_DEFVAL 0x00002005 -#define DDRC_SCHED_PREFER_WRITE_SHIFT 1 -#define DDRC_SCHED_PREFER_WRITE_MASK 0x00000002U +#define DDRC_SCHED_PREFER_WRITE_DEFVAL 0x00002005 +#define DDRC_SCHED_PREFER_WRITE_SHIFT 1 +#define DDRC_SCHED_PREFER_WRITE_MASK 0x00000002U -/*Active low signal. When asserted ('0'), all incoming transactions are forced to low priority. This implies that all High Prio - ity Read (HPR) and Variable Priority Read commands (VPR) will be treated as Low Priority Read (LPR) commands. On the write si - e, all Variable Priority Write (VPW) commands will be treated as Normal Priority Write (NPW) commands. Forcing the incoming t - ansactions to low priority implicitly turns off Bypass path for read commands. FOR PERFORMANCE ONLY.*/ +/* +* Active low signal. When asserted ('0'), all incoming transactions are fo + * rced to low priority. This implies that all High Priority Read (HPR) and + * Variable Priority Read commands (VPR) will be treated as Low Priority R + * ead (LPR) commands. On the write side, all Variable Priority Write (VPW) + * commands will be treated as Normal Priority Write (NPW) commands. Forci + * ng the incoming transactions to low priority implicitly turns off Bypass + * path for read commands. FOR PERFORMANCE ONLY. +*/ #undef DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL #undef DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT #undef DDRC_SCHED_FORCE_LOW_PRI_N_MASK -#define DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL 0x00002005 -#define DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT 0 -#define DDRC_SCHED_FORCE_LOW_PRI_N_MASK 0x00000001U +#define DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL 0x00002005 +#define DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT 0 +#define DDRC_SCHED_FORCE_LOW_PRI_N_MASK 0x00000001U -/*Number of transactions that are serviced once the LPR queue goes critical is the smaller of: - (a) This number - (b) Number o - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY.*/ +/* +* Number of transactions that are serviced once the LPR queue goes critica + * l is the smaller of: - (a) This number - (b) Number of transactions avai + * lable. Unit: Transaction. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL 0x0F00007F -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT 24 -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK 0xFF000000U +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL 0x0F00007F +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT 24 +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK 0xFF000000U -/*Number of clocks that the LPR queue can be starved before it goes critical. The minimum valid functional value for this regis - er is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - be disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY.*/ +/* +* Number of clocks that the LPR queue can be starved before it goes critic + * al. The minimum valid functional value for this register is 0x1. Program + * ming it to 0x0 will disable the starvation functionality; during normal + * operation, this function should not be disabled as it will cause excessi + * ve latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL #undef DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT #undef DDRC_PERFLPR1_LPR_MAX_STARVE_MASK -#define DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL 0x0F00007F -#define DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT 0 -#define DDRC_PERFLPR1_LPR_MAX_STARVE_MASK 0x0000FFFFU +#define DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL 0x0F00007F +#define DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT 0 +#define DDRC_PERFLPR1_LPR_MAX_STARVE_MASK 0x0000FFFFU -/*Number of transactions that are serviced once the WR queue goes critical is the smaller of: - (a) This number - (b) Number of - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY.*/ +/* +* Number of transactions that are serviced once the WR queue goes critical + * is the smaller of: - (a) This number - (b) Number of transactions avail + * able. Unit: Transaction. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL 0x0F00007F -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT 24 -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK 0xFF000000U +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL 0x0F00007F +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT 24 +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK 0xFF000000U -/*Number of clocks that the WR queue can be starved before it goes critical. The minimum valid functional value for this regist - r is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - e disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY.*/ +/* +* Number of clocks that the WR queue can be starved before it goes critica + * l. The minimum valid functional value for this register is 0x1. Programm + * ing it to 0x0 will disable the starvation functionality; during normal o + * peration, this function should not be disabled as it will cause excessiv + * e latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFWR1_W_MAX_STARVE_DEFVAL #undef DDRC_PERFWR1_W_MAX_STARVE_SHIFT #undef DDRC_PERFWR1_W_MAX_STARVE_MASK -#define DDRC_PERFWR1_W_MAX_STARVE_DEFVAL 0x0F00007F -#define DDRC_PERFWR1_W_MAX_STARVE_SHIFT 0 -#define DDRC_PERFWR1_W_MAX_STARVE_MASK 0x0000FFFFU +#define DDRC_PERFWR1_W_MAX_STARVE_DEFVAL 0x0F00007F +#define DDRC_PERFWR1_W_MAX_STARVE_SHIFT 0 +#define DDRC_PERFWR1_W_MAX_STARVE_MASK 0x0000FFFFU -/*All even ranks have the same DQ mapping controled by DQMAP0-4 register as rank 0. This register provides DQ swap function for - all odd ranks to support CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap bit 2 with 3, swap bit 4 with 5 and - wap bit 6 with 7. 1: Disable rank based DQ swapping 0: Enable rank based DQ swapping Present only in designs configured to su - port DDR4.*/ +/* +* DQ nibble map for DQ bits [12-15] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_SHIFT 24 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [8-11] Present only in designs configured to s + * upport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_SHIFT 16 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [4-7] Present only in designs configured to su + * pport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_SHIFT 8 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [0-3] Present only in designs configured to su + * pport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_SHIFT 0 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [28-31] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_SHIFT 24 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [24-27] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_SHIFT 16 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [20-23] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_SHIFT 8 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [16-19] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_SHIFT 0 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [44-47] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_SHIFT 24 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [40-43] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_SHIFT 16 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [36-39] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_SHIFT 8 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [32-35] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_SHIFT 0 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [60-63] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_SHIFT 24 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [56-59] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_SHIFT 16 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [52-55] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_SHIFT 8 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [48-51] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_SHIFT 0 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_MASK 0x000000FFU + +/* +* DQ nibble map for DIMM ECC check bits [4-7] Present only in designs conf + * igured to support DDR4. +*/ +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_DEFVAL +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_SHIFT +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_MASK +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_DEFVAL 0x00000000 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_SHIFT 8 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_MASK 0x0000FF00U + +/* +* DQ nibble map for DIMM ECC check bits [0-3] Present only in designs conf + * igured to support DDR4. +*/ +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_DEFVAL +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_SHIFT +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_MASK +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_DEFVAL 0x00000000 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_SHIFT 0 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_MASK 0x000000FFU + +/* +* All even ranks have the same DQ mapping controled by DQMAP0-4 register a + * s rank 0. This register provides DQ swap function for all odd ranks to s + * upport CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap b + * it 2 with 3, swap bit 4 with 5 and swap bit 6 with 7. 1: Disable rank ba + * sed DQ swapping 0: Enable rank based DQ swapping Present only in designs + * configured to support DDR4. +*/ #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT 0 -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK 0x00000001U +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT 0 +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK 0x00000001U -/*When this is set to '0', auto-precharge is disabled for the flushed command in a collision case. Collision cases are write fo - lowed by read to same address, read followed by write to same address, or write followed by write to same address with DBG0.d - s_wc bit = 1 (where same address comparisons exclude the two address bits representing critical word). FOR DEBUG ONLY.*/ +/* +* When this is set to '0', auto-precharge is disabled for the flushed comm + * and in a collision case. Collision cases are write followed by read to s + * ame address, read followed by write to same address, or write followed b + * y write to same address with DBG0.dis_wc bit = 1 (where same address com + * parisons exclude the two address bits representing critical word). FOR D + * EBUG ONLY. +*/ #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL 0x00000000 -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT 4 -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK 0x00000010U +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL 0x00000000 +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT 4 +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK 0x00000010U -/*When 1, disable write combine. FOR DEBUG ONLY*/ +/* +* When 1, disable write combine. FOR DEBUG ONLY +*/ #undef DDRC_DBG0_DIS_WC_DEFVAL #undef DDRC_DBG0_DIS_WC_SHIFT #undef DDRC_DBG0_DIS_WC_MASK -#define DDRC_DBG0_DIS_WC_DEFVAL 0x00000000 -#define DDRC_DBG0_DIS_WC_SHIFT 0 -#define DDRC_DBG0_DIS_WC_MASK 0x00000001U +#define DDRC_DBG0_DIS_WC_DEFVAL 0x00000000 +#define DDRC_DBG0_DIS_WC_SHIFT 0 +#define DDRC_DBG0_DIS_WC_MASK 0x00000001U -/*Setting this register bit to 1 allows refresh and ZQCS commands to be triggered from hardware via the IOs ext_*. If set to 1, - the fields DBGCMD.zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignored by the uMCTL2 logic. Setting this - register bit to 0 allows refresh and ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_short and DBGCMD.rank - _refresh. If set to 0, the hardware pins ext_* have no function, and are ignored by the uMCTL2 logic. This register is static - and may only be changed when the DDRC reset signal, core_ddrc_rstn, is asserted (0).*/ +/* +* Setting this register bit to 1 allows refresh and ZQCS commands to be tr + * iggered from hardware via the IOs ext_*. If set to 1, the fields DBGCMD. + * zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignore + * d by the uMCTL2 logic. Setting this register bit to 0 allows refresh and + * ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_shor + * t and DBGCMD.rank*_refresh. If set to 0, the hardware pins ext_* have no + * function, and are ignored by the uMCTL2 logic. This register is static, + * and may only be changed when the DDRC reset signal, core_ddrc_rstn, is + * asserted (0). +*/ #undef DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL #undef DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT #undef DDRC_DBGCMD_HW_REF_ZQ_EN_MASK -#define DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL 0x00000000 -#define DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT 31 -#define DDRC_DBGCMD_HW_REF_ZQ_EN_MASK 0x80000000U +#define DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL 0x00000000 +#define DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT 31 +#define DDRC_DBGCMD_HW_REF_ZQ_EN_MASK 0x80000000U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ctrlupd_req to the PHY. When this request is stored in - he uMCTL2, the bit is automatically cleared. This operation must only be performed when DFIUPD0.dis_auto_ctrlupd=1.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ct + * rlupd_req to the PHY. When this request is stored in the uMCTL2, the bit + * is automatically cleared. This operation must only be performed when DF + * IUPD0.dis_auto_ctrlupd=1. +*/ #undef DDRC_DBGCMD_CTRLUPD_DEFVAL #undef DDRC_DBGCMD_CTRLUPD_SHIFT #undef DDRC_DBGCMD_CTRLUPD_MASK -#define DDRC_DBGCMD_CTRLUPD_DEFVAL 0x00000000 -#define DDRC_DBGCMD_CTRLUPD_SHIFT 5 -#define DDRC_DBGCMD_CTRLUPD_MASK 0x00000020U +#define DDRC_DBGCMD_CTRLUPD_DEFVAL 0x00000000 +#define DDRC_DBGCMD_CTRLUPD_SHIFT 5 +#define DDRC_DBGCMD_CTRLUPD_MASK 0x00000020U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS (ZQ calibration short)/MPC(ZQ calibration) command to - he SDRAM. When this request is stored in the uMCTL2, the bit is automatically cleared. This operation can be performed only w - en ZQCTL0.dis_auto_zq=1. It is recommended NOT to set this register bit if in Init operating mode. This register bit is ignor - d when in Self-Refresh(except LPDDR4) and SR-Powerdown(LPDDR4) and Deep power-down operating modes and Maximum Power Saving M - de.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS ( + * ZQ calibration short)/MPC(ZQ calibration) command to the SDRAM. When thi + * s request is stored in the uMCTL2, the bit is automatically cleared. Thi + * s operation can be performed only when ZQCTL0.dis_auto_zq=1. It is recom + * mended NOT to set this register bit if in Init operating mode. This regi + * ster bit is ignored when in Self-Refresh(except LPDDR4) and SR-Powerdown + * (LPDDR4) and Deep power-down operating modes and Maximum Power Saving Mo + * de. +*/ #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL 0x00000000 -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT 4 -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK 0x00000010U +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL 0x00000000 +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT 4 +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK 0x00000010U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 1. Writing to this bit causes DBGSTAT.rank1 - refresh_busy to be set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 1. Writing to this bit causes DBGSTAT.rank1_refresh_busy to be + * set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. +*/ #undef DDRC_DBGCMD_RANK1_REFRESH_DEFVAL #undef DDRC_DBGCMD_RANK1_REFRESH_SHIFT #undef DDRC_DBGCMD_RANK1_REFRESH_MASK -#define DDRC_DBGCMD_RANK1_REFRESH_DEFVAL 0x00000000 -#define DDRC_DBGCMD_RANK1_REFRESH_SHIFT 1 -#define DDRC_DBGCMD_RANK1_REFRESH_MASK 0x00000002U +#define DDRC_DBGCMD_RANK1_REFRESH_DEFVAL 0x00000000 +#define DDRC_DBGCMD_RANK1_REFRESH_SHIFT 1 +#define DDRC_DBGCMD_RANK1_REFRESH_MASK 0x00000002U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 0. Writing to this bit causes DBGSTAT.rank0 - refresh_busy to be set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 0. Writing to this bit causes DBGSTAT.rank0_refresh_busy to be + * set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. +*/ #undef DDRC_DBGCMD_RANK0_REFRESH_DEFVAL #undef DDRC_DBGCMD_RANK0_REFRESH_SHIFT #undef DDRC_DBGCMD_RANK0_REFRESH_MASK -#define DDRC_DBGCMD_RANK0_REFRESH_DEFVAL 0x00000000 -#define DDRC_DBGCMD_RANK0_REFRESH_SHIFT 0 -#define DDRC_DBGCMD_RANK0_REFRESH_MASK 0x00000001U +#define DDRC_DBGCMD_RANK0_REFRESH_DEFVAL 0x00000000 +#define DDRC_DBGCMD_RANK0_REFRESH_SHIFT 0 +#define DDRC_DBGCMD_RANK0_REFRESH_MASK 0x00000001U -/*Enable quasi-dynamic register programming outside reset. Program register to 0 to enable quasi-dynamic programming. Set back - egister to 1 once programming is done.*/ +/* +* Enable quasi-dynamic register programming outside reset. Program registe + * r to 0 to enable quasi-dynamic programming. Set back register to 1 once + * programming is done. +*/ #undef DDRC_SWCTL_SW_DONE_DEFVAL #undef DDRC_SWCTL_SW_DONE_SHIFT #undef DDRC_SWCTL_SW_DONE_MASK -#define DDRC_SWCTL_SW_DONE_DEFVAL -#define DDRC_SWCTL_SW_DONE_SHIFT 0 -#define DDRC_SWCTL_SW_DONE_MASK 0x00000001U +#define DDRC_SWCTL_SW_DONE_DEFVAL +#define DDRC_SWCTL_SW_DONE_SHIFT 0 +#define DDRC_SWCTL_SW_DONE_MASK 0x00000001U -/*Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expands every AXI burst into multiple HIF commands, using t - e memory burst length as a unit. If set to 1, then XPI will use half of the memory burst length as a unit. This applies to bo - h reads and writes. When MSTR.data_bus_width==00, setting bl_exp_mode to 1 has no effect. This can be used in cases where Par - ial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.dis_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_cc - _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionality is not supported in the following cases: - UMCTL2_ - ARTIAL_WR=0 - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 and MSTR.reg_ddrc_burst_rdwr=1000 (LP - DR4 only) - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burst_rdwr=0100 (DDR4 - only), with either MSTR.reg_ddrc_burstchop=0 or CRCPARCTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Share - -AC is enabled*/ +/* +* Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expand + * s every AXI burst into multiple HIF commands, using the memory burst len + * gth as a unit. If set to 1, then XPI will use half of the memory burst l + * ength as a unit. This applies to both reads and writes. When MSTR.data_b + * us_width==00, setting bl_exp_mode to 1 has no effect. This can be used i + * n cases where Partial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.d + * is_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_ccd + * _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionali + * ty is not supported in the following cases: - UMCTL2_PARTIAL_WR=0 - UMCT + * L2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 an + * d MSTR.reg_ddrc_burst_rdwr=1000 (LPDDR4 only) - UMCTL2_PARTIAL_WR=1, MST + * R.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burs + * t_rdwr=0100 (DDR4 only), with either MSTR.reg_ddrc_burstchop=0 or CRCPAR + * CTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Shared + * -AC is enabled +*/ #undef DDRC_PCCFG_BL_EXP_MODE_DEFVAL #undef DDRC_PCCFG_BL_EXP_MODE_SHIFT #undef DDRC_PCCFG_BL_EXP_MODE_MASK -#define DDRC_PCCFG_BL_EXP_MODE_DEFVAL 0x00000000 -#define DDRC_PCCFG_BL_EXP_MODE_SHIFT 8 -#define DDRC_PCCFG_BL_EXP_MODE_MASK 0x00000100U +#define DDRC_PCCFG_BL_EXP_MODE_DEFVAL 0x00000000 +#define DDRC_PCCFG_BL_EXP_MODE_SHIFT 8 +#define DDRC_PCCFG_BL_EXP_MODE_MASK 0x00000100U -/*Page match four limit. If set to 1, limits the number of consecutive same page DDRC transactions that can be granted by the P - rt Arbiter to four when Page Match feature is enabled. If set to 0, there is no limit imposed on number of consecutive same p - ge DDRC transactions.*/ +/* +* Page match four limit. If set to 1, limits the number of consecutive sam + * e page DDRC transactions that can be granted by the Port Arbiter to four + * when Page Match feature is enabled. If set to 0, there is no limit impo + * sed on number of consecutive same page DDRC transactions. +*/ #undef DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL #undef DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT #undef DDRC_PCCFG_PAGEMATCH_LIMIT_MASK -#define DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL 0x00000000 -#define DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT 4 -#define DDRC_PCCFG_PAGEMATCH_LIMIT_MASK 0x00000010U +#define DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL 0x00000000 +#define DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT 4 +#define DDRC_PCCFG_PAGEMATCH_LIMIT_MASK 0x00000010U -/*If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals going to DDRC based - n urgent input (awurgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_go2critical_wr and co_gs_go2critica - _lpr/co_gs_go2critical_hpr signals at DDRC are driven to 1b'0.*/ +/* +* If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_l + * pr/co_gs_go2critical_hpr signals going to DDRC based on urgent input (aw + * urgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_ + * go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals a + * t DDRC are driven to 1b'0. +*/ #undef DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL #undef DDRC_PCCFG_GO2CRITICAL_EN_SHIFT #undef DDRC_PCCFG_GO2CRITICAL_EN_MASK -#define DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL 0x00000000 -#define DDRC_PCCFG_GO2CRITICAL_EN_SHIFT 0 -#define DDRC_PCCFG_GO2CRITICAL_EN_MASK 0x00000001U +#define DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL 0x00000000 +#define DDRC_PCCFG_GO2CRITICAL_EN_SHIFT 0 +#define DDRC_PCCFG_GO2CRITICAL_EN_MASK 0x00000001U -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_0_PORT_EN_DEFVAL #undef DDRC_PCTRL_0_PORT_EN_SHIFT #undef DDRC_PCTRL_0_PORT_EN_MASK -#define DDRC_PCTRL_0_PORT_EN_DEFVAL -#define DDRC_PCTRL_0_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_0_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_0_PORT_EN_DEFVAL +#define DDRC_PCTRL_0_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_0_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_1_PORT_EN_DEFVAL #undef DDRC_PCTRL_1_PORT_EN_SHIFT #undef DDRC_PCTRL_1_PORT_EN_MASK -#define DDRC_PCTRL_1_PORT_EN_DEFVAL -#define DDRC_PCTRL_1_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_1_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_1_PORT_EN_DEFVAL +#define DDRC_PCTRL_1_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_1_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT 24 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK 0x03000000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT 24 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK 0x03000000U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values.*/ +/* +* Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT 8 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK 0x00000F00U +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT 8 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK 0x00000F00U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_2_PORT_EN_DEFVAL #undef DDRC_PCTRL_2_PORT_EN_SHIFT #undef DDRC_PCTRL_2_PORT_EN_MASK -#define DDRC_PCTRL_2_PORT_EN_DEFVAL -#define DDRC_PCTRL_2_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_2_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_2_PORT_EN_DEFVAL +#define DDRC_PCTRL_2_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_2_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT 24 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK 0x03000000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT 24 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK 0x03000000U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values.*/ +/* +* Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT 8 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK 0x00000F00U +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT 8 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK 0x00000F00U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_3_PORT_EN_DEFVAL #undef DDRC_PCTRL_3_PORT_EN_SHIFT #undef DDRC_PCTRL_3_PORT_EN_MASK -#define DDRC_PCTRL_3_PORT_EN_DEFVAL -#define DDRC_PCTRL_3_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_3_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_3_PORT_EN_DEFVAL +#define DDRC_PCTRL_3_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_3_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_4_PORT_EN_DEFVAL #undef DDRC_PCTRL_4_PORT_EN_SHIFT #undef DDRC_PCTRL_4_PORT_EN_MASK -#define DDRC_PCTRL_4_PORT_EN_DEFVAL -#define DDRC_PCTRL_4_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_4_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_4_PORT_EN_DEFVAL +#define DDRC_PCTRL_4_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_4_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_5_PORT_EN_DEFVAL #undef DDRC_PCTRL_5_PORT_EN_SHIFT #undef DDRC_PCTRL_5_PORT_EN_MASK -#define DDRC_PCTRL_5_PORT_EN_DEFVAL -#define DDRC_PCTRL_5_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_5_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_5_PORT_EN_DEFVAL +#define DDRC_PCTRL_5_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_5_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)).*/ +/* +* Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). +*/ #undef DDRC_SARBASE0_BASE_ADDR_DEFVAL #undef DDRC_SARBASE0_BASE_ADDR_SHIFT #undef DDRC_SARBASE0_BASE_ADDR_MASK -#define DDRC_SARBASE0_BASE_ADDR_DEFVAL -#define DDRC_SARBASE0_BASE_ADDR_SHIFT 0 -#define DDRC_SARBASE0_BASE_ADDR_MASK 0x000001FFU +#define DDRC_SARBASE0_BASE_ADDR_DEFVAL +#define DDRC_SARBASE0_BASE_ADDR_SHIFT 0 +#define DDRC_SARBASE0_BASE_ADDR_MASK 0x000001FFU -/*Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block.*/ +/* +* Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. +*/ #undef DDRC_SARSIZE0_NBLOCKS_DEFVAL #undef DDRC_SARSIZE0_NBLOCKS_SHIFT #undef DDRC_SARSIZE0_NBLOCKS_MASK -#define DDRC_SARSIZE0_NBLOCKS_DEFVAL -#define DDRC_SARSIZE0_NBLOCKS_SHIFT 0 -#define DDRC_SARSIZE0_NBLOCKS_MASK 0x000000FFU +#define DDRC_SARSIZE0_NBLOCKS_DEFVAL +#define DDRC_SARSIZE0_NBLOCKS_SHIFT 0 +#define DDRC_SARSIZE0_NBLOCKS_MASK 0x000000FFU -/*Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)).*/ +/* +* Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). +*/ #undef DDRC_SARBASE1_BASE_ADDR_DEFVAL #undef DDRC_SARBASE1_BASE_ADDR_SHIFT #undef DDRC_SARBASE1_BASE_ADDR_MASK -#define DDRC_SARBASE1_BASE_ADDR_DEFVAL -#define DDRC_SARBASE1_BASE_ADDR_SHIFT 0 -#define DDRC_SARBASE1_BASE_ADDR_MASK 0x000001FFU +#define DDRC_SARBASE1_BASE_ADDR_DEFVAL +#define DDRC_SARBASE1_BASE_ADDR_SHIFT 0 +#define DDRC_SARBASE1_BASE_ADDR_MASK 0x000001FFU -/*Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block.*/ +/* +* Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. +*/ #undef DDRC_SARSIZE1_NBLOCKS_DEFVAL #undef DDRC_SARSIZE1_NBLOCKS_SHIFT #undef DDRC_SARSIZE1_NBLOCKS_MASK -#define DDRC_SARSIZE1_NBLOCKS_DEFVAL -#define DDRC_SARSIZE1_NBLOCKS_SHIFT 0 -#define DDRC_SARSIZE1_NBLOCKS_MASK 0x000000FFU +#define DDRC_SARSIZE1_NBLOCKS_DEFVAL +#define DDRC_SARSIZE1_NBLOCKS_SHIFT 0 +#define DDRC_SARSIZE1_NBLOCKS_MASK 0x000000FFU -/*Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock.*/ +/* +* Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT 24 -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK 0x1F000000U +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT 24 +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK 0x1F000000U -/*Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value.*/ +/* +* Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT 23 -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK 0x00800000U +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT 23 +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK 0x00800000U -/*Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks*/ +/* +* Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks +*/ #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT 16 -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK 0x003F0000U +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT 16 +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK 0x003F0000U -/*Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e.*/ +/* +* Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT 15 -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK 0x00008000U +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT 15 +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK 0x00008000U -/*Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks*/ +/* +* Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks +*/ #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT 8 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK 0x00003F00U +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT 8 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK 0x00003F00U -/*Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM.*/ +/* +* Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT 0 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK 0x0000003FU +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT 0 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK 0x0000003FU -/*DDR block level reset inside of the DDR Sub System*/ +/* +* DDR block level reset inside of the DDR Sub System +*/ #undef CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL #undef CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT #undef CRF_APB_RST_DDR_SS_DDR_RESET_MASK -#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F -#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 -#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U +#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 +#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U -/*Address Copy*/ +/* +* APM block level reset inside of the DDR Sub System +*/ +#undef CRF_APB_RST_DDR_SS_APM_RESET_DEFVAL +#undef CRF_APB_RST_DDR_SS_APM_RESET_SHIFT +#undef CRF_APB_RST_DDR_SS_APM_RESET_MASK +#define CRF_APB_RST_DDR_SS_APM_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_APM_RESET_SHIFT 2 +#define CRF_APB_RST_DDR_SS_APM_RESET_MASK 0x00000004U + +/* +* Address Copy +*/ #undef DDR_PHY_PGCR0_ADCP_DEFVAL #undef DDR_PHY_PGCR0_ADCP_SHIFT #undef DDR_PHY_PGCR0_ADCP_MASK -#define DDR_PHY_PGCR0_ADCP_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_ADCP_SHIFT 31 -#define DDR_PHY_PGCR0_ADCP_MASK 0x80000000U +#define DDR_PHY_PGCR0_ADCP_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_ADCP_SHIFT 31 +#define DDR_PHY_PGCR0_ADCP_MASK 0x80000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_30_27_SHIFT #undef DDR_PHY_PGCR0_RESERVED_30_27_MASK -#define DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_30_27_SHIFT 27 -#define DDR_PHY_PGCR0_RESERVED_30_27_MASK 0x78000000U +#define DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_30_27_SHIFT 27 +#define DDR_PHY_PGCR0_RESERVED_30_27_MASK 0x78000000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_PGCR0_PHYFRST_DEFVAL #undef DDR_PHY_PGCR0_PHYFRST_SHIFT #undef DDR_PHY_PGCR0_PHYFRST_MASK -#define DDR_PHY_PGCR0_PHYFRST_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_PHYFRST_SHIFT 26 -#define DDR_PHY_PGCR0_PHYFRST_MASK 0x04000000U +#define DDR_PHY_PGCR0_PHYFRST_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_PHYFRST_SHIFT 26 +#define DDR_PHY_PGCR0_PHYFRST_MASK 0x04000000U -/*Oscillator Mode Address/Command Delay Line Select*/ +/* +* Oscillator Mode Address/Command Delay Line Select +*/ #undef DDR_PHY_PGCR0_OSCACDL_DEFVAL #undef DDR_PHY_PGCR0_OSCACDL_SHIFT #undef DDR_PHY_PGCR0_OSCACDL_MASK -#define DDR_PHY_PGCR0_OSCACDL_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCACDL_SHIFT 24 -#define DDR_PHY_PGCR0_OSCACDL_MASK 0x03000000U +#define DDR_PHY_PGCR0_OSCACDL_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCACDL_SHIFT 24 +#define DDR_PHY_PGCR0_OSCACDL_MASK 0x03000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_23_19_SHIFT #undef DDR_PHY_PGCR0_RESERVED_23_19_MASK -#define DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_23_19_SHIFT 19 -#define DDR_PHY_PGCR0_RESERVED_23_19_MASK 0x00F80000U +#define DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_23_19_SHIFT 19 +#define DDR_PHY_PGCR0_RESERVED_23_19_MASK 0x00F80000U -/*Digital Test Output Select*/ +/* +* Digital Test Output Select +*/ #undef DDR_PHY_PGCR0_DTOSEL_DEFVAL #undef DDR_PHY_PGCR0_DTOSEL_SHIFT #undef DDR_PHY_PGCR0_DTOSEL_MASK -#define DDR_PHY_PGCR0_DTOSEL_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_DTOSEL_SHIFT 14 -#define DDR_PHY_PGCR0_DTOSEL_MASK 0x0007C000U +#define DDR_PHY_PGCR0_DTOSEL_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_DTOSEL_SHIFT 14 +#define DDR_PHY_PGCR0_DTOSEL_MASK 0x0007C000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_13_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_13_SHIFT #undef DDR_PHY_PGCR0_RESERVED_13_MASK -#define DDR_PHY_PGCR0_RESERVED_13_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_13_SHIFT 13 -#define DDR_PHY_PGCR0_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_PGCR0_RESERVED_13_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_13_SHIFT 13 +#define DDR_PHY_PGCR0_RESERVED_13_MASK 0x00002000U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_PGCR0_OSCDIV_DEFVAL #undef DDR_PHY_PGCR0_OSCDIV_SHIFT #undef DDR_PHY_PGCR0_OSCDIV_MASK -#define DDR_PHY_PGCR0_OSCDIV_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCDIV_SHIFT 9 -#define DDR_PHY_PGCR0_OSCDIV_MASK 0x00001E00U +#define DDR_PHY_PGCR0_OSCDIV_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCDIV_SHIFT 9 +#define DDR_PHY_PGCR0_OSCDIV_MASK 0x00001E00U -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_PGCR0_OSCEN_DEFVAL #undef DDR_PHY_PGCR0_OSCEN_SHIFT #undef DDR_PHY_PGCR0_OSCEN_MASK -#define DDR_PHY_PGCR0_OSCEN_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCEN_SHIFT 8 -#define DDR_PHY_PGCR0_OSCEN_MASK 0x00000100U +#define DDR_PHY_PGCR0_OSCEN_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCEN_SHIFT 8 +#define DDR_PHY_PGCR0_OSCEN_MASK 0x00000100U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_7_0_SHIFT #undef DDR_PHY_PGCR0_RESERVED_7_0_MASK -#define DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_7_0_SHIFT 0 -#define DDR_PHY_PGCR0_RESERVED_7_0_MASK 0x000000FFU +#define DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_7_0_SHIFT 0 +#define DDR_PHY_PGCR0_RESERVED_7_0_MASK 0x000000FFU -/*Clear Training Status Registers*/ +/* +* Clear Training Status Registers +*/ #undef DDR_PHY_PGCR2_CLRTSTAT_DEFVAL #undef DDR_PHY_PGCR2_CLRTSTAT_SHIFT #undef DDR_PHY_PGCR2_CLRTSTAT_MASK -#define DDR_PHY_PGCR2_CLRTSTAT_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRTSTAT_SHIFT 31 -#define DDR_PHY_PGCR2_CLRTSTAT_MASK 0x80000000U +#define DDR_PHY_PGCR2_CLRTSTAT_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRTSTAT_SHIFT 31 +#define DDR_PHY_PGCR2_CLRTSTAT_MASK 0x80000000U -/*Clear Impedance Calibration*/ +/* +* Clear Impedance Calibration +*/ #undef DDR_PHY_PGCR2_CLRZCAL_DEFVAL #undef DDR_PHY_PGCR2_CLRZCAL_SHIFT #undef DDR_PHY_PGCR2_CLRZCAL_MASK -#define DDR_PHY_PGCR2_CLRZCAL_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRZCAL_SHIFT 30 -#define DDR_PHY_PGCR2_CLRZCAL_MASK 0x40000000U +#define DDR_PHY_PGCR2_CLRZCAL_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRZCAL_SHIFT 30 +#define DDR_PHY_PGCR2_CLRZCAL_MASK 0x40000000U -/*Clear Parity Error*/ +/* +* Clear Parity Error +*/ #undef DDR_PHY_PGCR2_CLRPERR_DEFVAL #undef DDR_PHY_PGCR2_CLRPERR_SHIFT #undef DDR_PHY_PGCR2_CLRPERR_MASK -#define DDR_PHY_PGCR2_CLRPERR_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRPERR_SHIFT 29 -#define DDR_PHY_PGCR2_CLRPERR_MASK 0x20000000U +#define DDR_PHY_PGCR2_CLRPERR_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRPERR_SHIFT 29 +#define DDR_PHY_PGCR2_CLRPERR_MASK 0x20000000U -/*Initialization Complete Pin Configuration*/ +/* +* Initialization Complete Pin Configuration +*/ #undef DDR_PHY_PGCR2_ICPC_DEFVAL #undef DDR_PHY_PGCR2_ICPC_SHIFT #undef DDR_PHY_PGCR2_ICPC_MASK -#define DDR_PHY_PGCR2_ICPC_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_ICPC_SHIFT 28 -#define DDR_PHY_PGCR2_ICPC_MASK 0x10000000U +#define DDR_PHY_PGCR2_ICPC_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_ICPC_SHIFT 28 +#define DDR_PHY_PGCR2_ICPC_MASK 0x10000000U -/*Data Training PUB Mode Exit Timer*/ +/* +* Data Training PUB Mode Exit Timer +*/ #undef DDR_PHY_PGCR2_DTPMXTMR_DEFVAL #undef DDR_PHY_PGCR2_DTPMXTMR_SHIFT #undef DDR_PHY_PGCR2_DTPMXTMR_MASK -#define DDR_PHY_PGCR2_DTPMXTMR_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_DTPMXTMR_SHIFT 20 -#define DDR_PHY_PGCR2_DTPMXTMR_MASK 0x0FF00000U +#define DDR_PHY_PGCR2_DTPMXTMR_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_DTPMXTMR_SHIFT 20 +#define DDR_PHY_PGCR2_DTPMXTMR_MASK 0x0FF00000U -/*Initialization Bypass*/ +/* +* Initialization Bypass +*/ #undef DDR_PHY_PGCR2_INITFSMBYP_DEFVAL #undef DDR_PHY_PGCR2_INITFSMBYP_SHIFT #undef DDR_PHY_PGCR2_INITFSMBYP_MASK -#define DDR_PHY_PGCR2_INITFSMBYP_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_INITFSMBYP_SHIFT 19 -#define DDR_PHY_PGCR2_INITFSMBYP_MASK 0x00080000U +#define DDR_PHY_PGCR2_INITFSMBYP_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_INITFSMBYP_SHIFT 19 +#define DDR_PHY_PGCR2_INITFSMBYP_MASK 0x00080000U -/*PLL FSM Bypass*/ +/* +* PLL FSM Bypass +*/ #undef DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL #undef DDR_PHY_PGCR2_PLLFSMBYP_SHIFT #undef DDR_PHY_PGCR2_PLLFSMBYP_MASK -#define DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_PLLFSMBYP_SHIFT 18 -#define DDR_PHY_PGCR2_PLLFSMBYP_MASK 0x00040000U +#define DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_PLLFSMBYP_SHIFT 18 +#define DDR_PHY_PGCR2_PLLFSMBYP_MASK 0x00040000U -/*Refresh Period*/ +/* +* Refresh Period +*/ #undef DDR_PHY_PGCR2_TREFPRD_DEFVAL #undef DDR_PHY_PGCR2_TREFPRD_SHIFT #undef DDR_PHY_PGCR2_TREFPRD_MASK -#define DDR_PHY_PGCR2_TREFPRD_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_TREFPRD_SHIFT 0 -#define DDR_PHY_PGCR2_TREFPRD_MASK 0x0003FFFFU +#define DDR_PHY_PGCR2_TREFPRD_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_TREFPRD_SHIFT 0 +#define DDR_PHY_PGCR2_TREFPRD_MASK 0x0003FFFFU -/*CKN Enable*/ +/* +* CKN Enable +*/ #undef DDR_PHY_PGCR3_CKNEN_DEFVAL #undef DDR_PHY_PGCR3_CKNEN_SHIFT #undef DDR_PHY_PGCR3_CKNEN_MASK -#define DDR_PHY_PGCR3_CKNEN_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CKNEN_SHIFT 24 -#define DDR_PHY_PGCR3_CKNEN_MASK 0xFF000000U +#define DDR_PHY_PGCR3_CKNEN_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CKNEN_SHIFT 24 +#define DDR_PHY_PGCR3_CKNEN_MASK 0xFF000000U -/*CK Enable*/ +/* +* CK Enable +*/ #undef DDR_PHY_PGCR3_CKEN_DEFVAL #undef DDR_PHY_PGCR3_CKEN_SHIFT #undef DDR_PHY_PGCR3_CKEN_MASK -#define DDR_PHY_PGCR3_CKEN_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CKEN_SHIFT 16 -#define DDR_PHY_PGCR3_CKEN_MASK 0x00FF0000U +#define DDR_PHY_PGCR3_CKEN_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CKEN_SHIFT 16 +#define DDR_PHY_PGCR3_CKEN_MASK 0x00FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR3_RESERVED_15_DEFVAL #undef DDR_PHY_PGCR3_RESERVED_15_SHIFT #undef DDR_PHY_PGCR3_RESERVED_15_MASK -#define DDR_PHY_PGCR3_RESERVED_15_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RESERVED_15_SHIFT 15 -#define DDR_PHY_PGCR3_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_PGCR3_RESERVED_15_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RESERVED_15_SHIFT 15 +#define DDR_PHY_PGCR3_RESERVED_15_MASK 0x00008000U -/*Enable Clock Gating for AC [0] ctl_rd_clk*/ +/* +* Enable Clock Gating for AC [0] ctl_rd_clk +*/ #undef DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACRDCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACRDCLK_MASK -#define DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACRDCLK_SHIFT 13 -#define DDR_PHY_PGCR3_GATEACRDCLK_MASK 0x00006000U +#define DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACRDCLK_SHIFT 13 +#define DDR_PHY_PGCR3_GATEACRDCLK_MASK 0x00006000U -/*Enable Clock Gating for AC [0] ddr_clk*/ +/* +* Enable Clock Gating for AC [0] ddr_clk +*/ #undef DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACDDRCLK_MASK -#define DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT 11 -#define DDR_PHY_PGCR3_GATEACDDRCLK_MASK 0x00001800U +#define DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT 11 +#define DDR_PHY_PGCR3_GATEACDDRCLK_MASK 0x00001800U -/*Enable Clock Gating for AC [0] ctl_clk*/ +/* +* Enable Clock Gating for AC [0] ctl_clk +*/ #undef DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACCTLCLK_MASK -#define DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT 9 -#define DDR_PHY_PGCR3_GATEACCTLCLK_MASK 0x00000600U +#define DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT 9 +#define DDR_PHY_PGCR3_GATEACCTLCLK_MASK 0x00000600U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR3_RESERVED_8_DEFVAL #undef DDR_PHY_PGCR3_RESERVED_8_SHIFT #undef DDR_PHY_PGCR3_RESERVED_8_MASK -#define DDR_PHY_PGCR3_RESERVED_8_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RESERVED_8_SHIFT 8 -#define DDR_PHY_PGCR3_RESERVED_8_MASK 0x00000100U +#define DDR_PHY_PGCR3_RESERVED_8_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RESERVED_8_SHIFT 8 +#define DDR_PHY_PGCR3_RESERVED_8_MASK 0x00000100U -/*Controls DDL Bypass Modes*/ +/* +* Controls DDL Bypass Modes +*/ #undef DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL #undef DDR_PHY_PGCR3_DDLBYPMODE_SHIFT #undef DDR_PHY_PGCR3_DDLBYPMODE_MASK -#define DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_DDLBYPMODE_SHIFT 6 -#define DDR_PHY_PGCR3_DDLBYPMODE_MASK 0x000000C0U +#define DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_DDLBYPMODE_SHIFT 6 +#define DDR_PHY_PGCR3_DDLBYPMODE_MASK 0x000000C0U -/*IO Loop-Back Select*/ +/* +* IO Loop-Back Select +*/ #undef DDR_PHY_PGCR3_IOLB_DEFVAL #undef DDR_PHY_PGCR3_IOLB_SHIFT #undef DDR_PHY_PGCR3_IOLB_MASK -#define DDR_PHY_PGCR3_IOLB_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_IOLB_SHIFT 5 -#define DDR_PHY_PGCR3_IOLB_MASK 0x00000020U +#define DDR_PHY_PGCR3_IOLB_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_IOLB_SHIFT 5 +#define DDR_PHY_PGCR3_IOLB_MASK 0x00000020U -/*AC Receive FIFO Read Mode*/ +/* +* AC Receive FIFO Read Mode +*/ #undef DDR_PHY_PGCR3_RDMODE_DEFVAL #undef DDR_PHY_PGCR3_RDMODE_SHIFT #undef DDR_PHY_PGCR3_RDMODE_MASK -#define DDR_PHY_PGCR3_RDMODE_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RDMODE_SHIFT 3 -#define DDR_PHY_PGCR3_RDMODE_MASK 0x00000018U +#define DDR_PHY_PGCR3_RDMODE_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RDMODE_SHIFT 3 +#define DDR_PHY_PGCR3_RDMODE_MASK 0x00000018U -/*Read FIFO Reset Disable*/ +/* +* Read FIFO Reset Disable +*/ #undef DDR_PHY_PGCR3_DISRST_DEFVAL #undef DDR_PHY_PGCR3_DISRST_SHIFT #undef DDR_PHY_PGCR3_DISRST_MASK -#define DDR_PHY_PGCR3_DISRST_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_DISRST_SHIFT 2 -#define DDR_PHY_PGCR3_DISRST_MASK 0x00000004U +#define DDR_PHY_PGCR3_DISRST_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_DISRST_SHIFT 2 +#define DDR_PHY_PGCR3_DISRST_MASK 0x00000004U -/*Clock Level when Clock Gating*/ +/* +* Clock Level when Clock Gating +*/ #undef DDR_PHY_PGCR3_CLKLEVEL_DEFVAL #undef DDR_PHY_PGCR3_CLKLEVEL_SHIFT #undef DDR_PHY_PGCR3_CLKLEVEL_MASK -#define DDR_PHY_PGCR3_CLKLEVEL_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CLKLEVEL_SHIFT 0 -#define DDR_PHY_PGCR3_CLKLEVEL_MASK 0x00000003U +#define DDR_PHY_PGCR3_CLKLEVEL_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CLKLEVEL_SHIFT 0 +#define DDR_PHY_PGCR3_CLKLEVEL_MASK 0x00000003U -/*Frequency B Ratio Term*/ +/* +* Frequency B Ratio Term +*/ #undef DDR_PHY_PGCR5_FRQBT_DEFVAL #undef DDR_PHY_PGCR5_FRQBT_SHIFT #undef DDR_PHY_PGCR5_FRQBT_MASK -#define DDR_PHY_PGCR5_FRQBT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_FRQBT_SHIFT 24 -#define DDR_PHY_PGCR5_FRQBT_MASK 0xFF000000U +#define DDR_PHY_PGCR5_FRQBT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_FRQBT_SHIFT 24 +#define DDR_PHY_PGCR5_FRQBT_MASK 0xFF000000U -/*Frequency A Ratio Term*/ +/* +* Frequency A Ratio Term +*/ #undef DDR_PHY_PGCR5_FRQAT_DEFVAL #undef DDR_PHY_PGCR5_FRQAT_SHIFT #undef DDR_PHY_PGCR5_FRQAT_MASK -#define DDR_PHY_PGCR5_FRQAT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_FRQAT_SHIFT 16 -#define DDR_PHY_PGCR5_FRQAT_MASK 0x00FF0000U +#define DDR_PHY_PGCR5_FRQAT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_FRQAT_SHIFT 16 +#define DDR_PHY_PGCR5_FRQAT_MASK 0x00FF0000U -/*DFI Disconnect Time Period*/ +/* +* DFI Disconnect Time Period +*/ #undef DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL #undef DDR_PHY_PGCR5_DISCNPERIOD_SHIFT #undef DDR_PHY_PGCR5_DISCNPERIOD_MASK -#define DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DISCNPERIOD_SHIFT 8 -#define DDR_PHY_PGCR5_DISCNPERIOD_MASK 0x0000FF00U +#define DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DISCNPERIOD_SHIFT 8 +#define DDR_PHY_PGCR5_DISCNPERIOD_MASK 0x0000FF00U -/*Receiver bias core side control*/ +/* +* Receiver bias core side control +*/ #undef DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL #undef DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT #undef DDR_PHY_PGCR5_VREF_RBCTRL_MASK -#define DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT 4 -#define DDR_PHY_PGCR5_VREF_RBCTRL_MASK 0x000000F0U +#define DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT 4 +#define DDR_PHY_PGCR5_VREF_RBCTRL_MASK 0x000000F0U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR5_RESERVED_3_DEFVAL #undef DDR_PHY_PGCR5_RESERVED_3_SHIFT #undef DDR_PHY_PGCR5_RESERVED_3_MASK -#define DDR_PHY_PGCR5_RESERVED_3_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_RESERVED_3_SHIFT 3 -#define DDR_PHY_PGCR5_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_PGCR5_RESERVED_3_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_RESERVED_3_SHIFT 3 +#define DDR_PHY_PGCR5_RESERVED_3_MASK 0x00000008U -/*Internal VREF generator REFSEL ragne select*/ +/* +* Internal VREF generator REFSEL ragne select +*/ #undef DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL #undef DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT #undef DDR_PHY_PGCR5_DXREFISELRANGE_MASK -#define DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT 2 -#define DDR_PHY_PGCR5_DXREFISELRANGE_MASK 0x00000004U +#define DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT 2 +#define DDR_PHY_PGCR5_DXREFISELRANGE_MASK 0x00000004U -/*DDL Page Read Write select*/ +/* +* DDL Page Read Write select +*/ #undef DDR_PHY_PGCR5_DDLPGACT_DEFVAL #undef DDR_PHY_PGCR5_DDLPGACT_SHIFT #undef DDR_PHY_PGCR5_DDLPGACT_MASK -#define DDR_PHY_PGCR5_DDLPGACT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DDLPGACT_SHIFT 1 -#define DDR_PHY_PGCR5_DDLPGACT_MASK 0x00000002U +#define DDR_PHY_PGCR5_DDLPGACT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DDLPGACT_SHIFT 1 +#define DDR_PHY_PGCR5_DDLPGACT_MASK 0x00000002U -/*DDL Page Read Write select*/ +/* +* DDL Page Read Write select +*/ #undef DDR_PHY_PGCR5_DDLPGRW_DEFVAL #undef DDR_PHY_PGCR5_DDLPGRW_SHIFT #undef DDR_PHY_PGCR5_DDLPGRW_MASK -#define DDR_PHY_PGCR5_DDLPGRW_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DDLPGRW_SHIFT 0 -#define DDR_PHY_PGCR5_DDLPGRW_MASK 0x00000001U +#define DDR_PHY_PGCR5_DDLPGRW_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DDLPGRW_SHIFT 0 +#define DDR_PHY_PGCR5_DDLPGRW_MASK 0x00000001U -/*PLL Power-Down Time*/ +/* +* PLL Power-Down Time +*/ #undef DDR_PHY_PTR0_TPLLPD_DEFVAL #undef DDR_PHY_PTR0_TPLLPD_SHIFT #undef DDR_PHY_PTR0_TPLLPD_MASK -#define DDR_PHY_PTR0_TPLLPD_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPLLPD_SHIFT 21 -#define DDR_PHY_PTR0_TPLLPD_MASK 0xFFE00000U +#define DDR_PHY_PTR0_TPLLPD_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPLLPD_SHIFT 21 +#define DDR_PHY_PTR0_TPLLPD_MASK 0xFFE00000U -/*PLL Gear Shift Time*/ +/* +* PLL Gear Shift Time +*/ #undef DDR_PHY_PTR0_TPLLGS_DEFVAL #undef DDR_PHY_PTR0_TPLLGS_SHIFT #undef DDR_PHY_PTR0_TPLLGS_MASK -#define DDR_PHY_PTR0_TPLLGS_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPLLGS_SHIFT 6 -#define DDR_PHY_PTR0_TPLLGS_MASK 0x001FFFC0U +#define DDR_PHY_PTR0_TPLLGS_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPLLGS_SHIFT 6 +#define DDR_PHY_PTR0_TPLLGS_MASK 0x001FFFC0U -/*PHY Reset Time*/ +/* +* PHY Reset Time +*/ #undef DDR_PHY_PTR0_TPHYRST_DEFVAL #undef DDR_PHY_PTR0_TPHYRST_SHIFT #undef DDR_PHY_PTR0_TPHYRST_MASK -#define DDR_PHY_PTR0_TPHYRST_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPHYRST_SHIFT 0 -#define DDR_PHY_PTR0_TPHYRST_MASK 0x0000003FU +#define DDR_PHY_PTR0_TPHYRST_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPHYRST_SHIFT 0 +#define DDR_PHY_PTR0_TPHYRST_MASK 0x0000003FU -/*PLL Lock Time*/ +/* +* PLL Lock Time +*/ #undef DDR_PHY_PTR1_TPLLLOCK_DEFVAL #undef DDR_PHY_PTR1_TPLLLOCK_SHIFT #undef DDR_PHY_PTR1_TPLLLOCK_MASK -#define DDR_PHY_PTR1_TPLLLOCK_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_TPLLLOCK_SHIFT 16 -#define DDR_PHY_PTR1_TPLLLOCK_MASK 0xFFFF0000U +#define DDR_PHY_PTR1_TPLLLOCK_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_TPLLLOCK_SHIFT 16 +#define DDR_PHY_PTR1_TPLLLOCK_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PTR1_RESERVED_15_13_DEFVAL #undef DDR_PHY_PTR1_RESERVED_15_13_SHIFT #undef DDR_PHY_PTR1_RESERVED_15_13_MASK -#define DDR_PHY_PTR1_RESERVED_15_13_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_PTR1_RESERVED_15_13_MASK 0x0000E000U +#define DDR_PHY_PTR1_RESERVED_15_13_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_RESERVED_15_13_SHIFT 13 +#define DDR_PHY_PTR1_RESERVED_15_13_MASK 0x0000E000U -/*PLL Reset Time*/ +/* +* PLL Reset Time +*/ #undef DDR_PHY_PTR1_TPLLRST_DEFVAL #undef DDR_PHY_PTR1_TPLLRST_SHIFT #undef DDR_PHY_PTR1_TPLLRST_MASK -#define DDR_PHY_PTR1_TPLLRST_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_TPLLRST_SHIFT 0 -#define DDR_PHY_PTR1_TPLLRST_MASK 0x00001FFFU +#define DDR_PHY_PTR1_TPLLRST_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_TPLLRST_SHIFT 0 +#define DDR_PHY_PTR1_TPLLRST_MASK 0x00001FFFU -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_PLLCR0_PLLBYP_MASK +#define DDR_PHY_PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_PLLCR0_PLLRST_MASK +#define DDR_PHY_PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_PLLCR0_PLLPD_MASK +#define DDR_PHY_PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_PLLCR0_RSTOPM_MASK +#define DDR_PHY_PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_PLLCR0_FRQSEL_MASK +#define DDR_PHY_PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_PLLCR0_RLOCKM_MASK +#define DDR_PHY_PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_PLLCR0_CPPC_SHIFT +#undef DDR_PHY_PLLCR0_CPPC_MASK +#define DDR_PHY_PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_PLLCR0_CPIC_SHIFT +#undef DDR_PHY_PLLCR0_CPIC_MASK +#define DDR_PHY_PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_PLLCR0_GSHIFT_MASK +#define DDR_PHY_PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable +*/ +#undef DDR_PHY_PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_PLLCR0_ATOEN_MASK +#define DDR_PHY_PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_PLLCR0_ATC_DEFVAL +#undef DDR_PHY_PLLCR0_ATC_SHIFT +#undef DDR_PHY_PLLCR0_ATC_MASK +#define DDR_PHY_PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_PLLCR0_DTC_DEFVAL +#undef DDR_PHY_PLLCR0_DTC_SHIFT +#undef DDR_PHY_PLLCR0_DTC_MASK +#define DDR_PHY_PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_31_28_SHIFT #undef DDR_PHY_DSGCR_RESERVED_31_28_MASK -#define DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_31_28_SHIFT 28 -#define DDR_PHY_DSGCR_RESERVED_31_28_MASK 0xF0000000U +#define DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_31_28_SHIFT 28 +#define DDR_PHY_DSGCR_RESERVED_31_28_MASK 0xF0000000U -/*When RDBI enabled, this bit is used to select RDBI CL calculation, if it is 1b1, calculation will use RDBICL, otherwise use d - fault calculation.*/ +/* +* When RDBI enabled, this bit is used to select RDBI CL calculation, if it + * is 1b1, calculation will use RDBICL, otherwise use default calculation. +*/ #undef DDR_PHY_DSGCR_RDBICLSEL_DEFVAL #undef DDR_PHY_DSGCR_RDBICLSEL_SHIFT #undef DDR_PHY_DSGCR_RDBICLSEL_MASK -#define DDR_PHY_DSGCR_RDBICLSEL_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RDBICLSEL_SHIFT 27 -#define DDR_PHY_DSGCR_RDBICLSEL_MASK 0x08000000U +#define DDR_PHY_DSGCR_RDBICLSEL_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RDBICLSEL_SHIFT 27 +#define DDR_PHY_DSGCR_RDBICLSEL_MASK 0x08000000U -/*When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this value.*/ +/* +* When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this v + * alue. +*/ #undef DDR_PHY_DSGCR_RDBICL_DEFVAL #undef DDR_PHY_DSGCR_RDBICL_SHIFT #undef DDR_PHY_DSGCR_RDBICL_MASK -#define DDR_PHY_DSGCR_RDBICL_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RDBICL_SHIFT 24 -#define DDR_PHY_DSGCR_RDBICL_MASK 0x07000000U +#define DDR_PHY_DSGCR_RDBICL_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RDBICL_SHIFT 24 +#define DDR_PHY_DSGCR_RDBICL_MASK 0x07000000U -/*PHY Impedance Update Enable*/ +/* +* PHY Impedance Update Enable +*/ #undef DDR_PHY_DSGCR_PHYZUEN_DEFVAL #undef DDR_PHY_DSGCR_PHYZUEN_SHIFT #undef DDR_PHY_DSGCR_PHYZUEN_MASK -#define DDR_PHY_DSGCR_PHYZUEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PHYZUEN_SHIFT 23 -#define DDR_PHY_DSGCR_PHYZUEN_MASK 0x00800000U +#define DDR_PHY_DSGCR_PHYZUEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PHYZUEN_SHIFT 23 +#define DDR_PHY_DSGCR_PHYZUEN_MASK 0x00800000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_22_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_22_SHIFT #undef DDR_PHY_DSGCR_RESERVED_22_MASK -#define DDR_PHY_DSGCR_RESERVED_22_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_22_SHIFT 22 -#define DDR_PHY_DSGCR_RESERVED_22_MASK 0x00400000U +#define DDR_PHY_DSGCR_RESERVED_22_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_22_SHIFT 22 +#define DDR_PHY_DSGCR_RESERVED_22_MASK 0x00400000U -/*SDRAM Reset Output Enable*/ +/* +* SDRAM Reset Output Enable +*/ #undef DDR_PHY_DSGCR_RSTOE_DEFVAL #undef DDR_PHY_DSGCR_RSTOE_SHIFT #undef DDR_PHY_DSGCR_RSTOE_MASK -#define DDR_PHY_DSGCR_RSTOE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RSTOE_SHIFT 21 -#define DDR_PHY_DSGCR_RSTOE_MASK 0x00200000U +#define DDR_PHY_DSGCR_RSTOE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RSTOE_SHIFT 21 +#define DDR_PHY_DSGCR_RSTOE_MASK 0x00200000U -/*Single Data Rate Mode*/ +/* +* Single Data Rate Mode +*/ #undef DDR_PHY_DSGCR_SDRMODE_DEFVAL #undef DDR_PHY_DSGCR_SDRMODE_SHIFT #undef DDR_PHY_DSGCR_SDRMODE_MASK -#define DDR_PHY_DSGCR_SDRMODE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_SDRMODE_SHIFT 19 -#define DDR_PHY_DSGCR_SDRMODE_MASK 0x00180000U +#define DDR_PHY_DSGCR_SDRMODE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_SDRMODE_SHIFT 19 +#define DDR_PHY_DSGCR_SDRMODE_MASK 0x00180000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_18_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_18_SHIFT #undef DDR_PHY_DSGCR_RESERVED_18_MASK -#define DDR_PHY_DSGCR_RESERVED_18_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_18_SHIFT 18 -#define DDR_PHY_DSGCR_RESERVED_18_MASK 0x00040000U +#define DDR_PHY_DSGCR_RESERVED_18_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_18_SHIFT 18 +#define DDR_PHY_DSGCR_RESERVED_18_MASK 0x00040000U -/*ATO Analog Test Enable*/ +/* +* ATO Analog Test Enable +*/ #undef DDR_PHY_DSGCR_ATOAE_DEFVAL #undef DDR_PHY_DSGCR_ATOAE_SHIFT #undef DDR_PHY_DSGCR_ATOAE_MASK -#define DDR_PHY_DSGCR_ATOAE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_ATOAE_SHIFT 17 -#define DDR_PHY_DSGCR_ATOAE_MASK 0x00020000U +#define DDR_PHY_DSGCR_ATOAE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_ATOAE_SHIFT 17 +#define DDR_PHY_DSGCR_ATOAE_MASK 0x00020000U -/*DTO Output Enable*/ +/* +* DTO Output Enable +*/ #undef DDR_PHY_DSGCR_DTOOE_DEFVAL #undef DDR_PHY_DSGCR_DTOOE_SHIFT #undef DDR_PHY_DSGCR_DTOOE_MASK -#define DDR_PHY_DSGCR_DTOOE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOOE_SHIFT 16 -#define DDR_PHY_DSGCR_DTOOE_MASK 0x00010000U +#define DDR_PHY_DSGCR_DTOOE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOOE_SHIFT 16 +#define DDR_PHY_DSGCR_DTOOE_MASK 0x00010000U -/*DTO I/O Mode*/ +/* +* DTO I/O Mode +*/ #undef DDR_PHY_DSGCR_DTOIOM_DEFVAL #undef DDR_PHY_DSGCR_DTOIOM_SHIFT #undef DDR_PHY_DSGCR_DTOIOM_MASK -#define DDR_PHY_DSGCR_DTOIOM_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOIOM_SHIFT 15 -#define DDR_PHY_DSGCR_DTOIOM_MASK 0x00008000U +#define DDR_PHY_DSGCR_DTOIOM_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOIOM_SHIFT 15 +#define DDR_PHY_DSGCR_DTOIOM_MASK 0x00008000U -/*DTO Power Down Receiver*/ +/* +* DTO Power Down Receiver +*/ #undef DDR_PHY_DSGCR_DTOPDR_DEFVAL #undef DDR_PHY_DSGCR_DTOPDR_SHIFT #undef DDR_PHY_DSGCR_DTOPDR_MASK -#define DDR_PHY_DSGCR_DTOPDR_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOPDR_SHIFT 14 -#define DDR_PHY_DSGCR_DTOPDR_MASK 0x00004000U +#define DDR_PHY_DSGCR_DTOPDR_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOPDR_SHIFT 14 +#define DDR_PHY_DSGCR_DTOPDR_MASK 0x00004000U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_13_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_13_SHIFT #undef DDR_PHY_DSGCR_RESERVED_13_MASK -#define DDR_PHY_DSGCR_RESERVED_13_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_13_SHIFT 13 -#define DDR_PHY_DSGCR_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_DSGCR_RESERVED_13_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_13_SHIFT 13 +#define DDR_PHY_DSGCR_RESERVED_13_MASK 0x00002000U -/*DTO On-Die Termination*/ +/* +* DTO On-Die Termination +*/ #undef DDR_PHY_DSGCR_DTOODT_DEFVAL #undef DDR_PHY_DSGCR_DTOODT_SHIFT #undef DDR_PHY_DSGCR_DTOODT_MASK -#define DDR_PHY_DSGCR_DTOODT_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOODT_SHIFT 12 -#define DDR_PHY_DSGCR_DTOODT_MASK 0x00001000U +#define DDR_PHY_DSGCR_DTOODT_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOODT_SHIFT 12 +#define DDR_PHY_DSGCR_DTOODT_MASK 0x00001000U -/*PHY Update Acknowledge Delay*/ +/* +* PHY Update Acknowledge Delay +*/ #undef DDR_PHY_DSGCR_PUAD_DEFVAL #undef DDR_PHY_DSGCR_PUAD_SHIFT #undef DDR_PHY_DSGCR_PUAD_MASK -#define DDR_PHY_DSGCR_PUAD_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PUAD_SHIFT 6 -#define DDR_PHY_DSGCR_PUAD_MASK 0x00000FC0U +#define DDR_PHY_DSGCR_PUAD_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PUAD_SHIFT 6 +#define DDR_PHY_DSGCR_PUAD_MASK 0x00000FC0U -/*Controller Update Acknowledge Enable*/ +/* +* Controller Update Acknowledge Enable +*/ #undef DDR_PHY_DSGCR_CUAEN_DEFVAL #undef DDR_PHY_DSGCR_CUAEN_SHIFT #undef DDR_PHY_DSGCR_CUAEN_MASK -#define DDR_PHY_DSGCR_CUAEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_CUAEN_SHIFT 5 -#define DDR_PHY_DSGCR_CUAEN_MASK 0x00000020U +#define DDR_PHY_DSGCR_CUAEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_CUAEN_SHIFT 5 +#define DDR_PHY_DSGCR_CUAEN_MASK 0x00000020U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_4_3_SHIFT #undef DDR_PHY_DSGCR_RESERVED_4_3_MASK -#define DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_4_3_SHIFT 3 -#define DDR_PHY_DSGCR_RESERVED_4_3_MASK 0x00000018U +#define DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_4_3_SHIFT 3 +#define DDR_PHY_DSGCR_RESERVED_4_3_MASK 0x00000018U -/*Controller Impedance Update Enable*/ +/* +* Controller Impedance Update Enable +*/ #undef DDR_PHY_DSGCR_CTLZUEN_DEFVAL #undef DDR_PHY_DSGCR_CTLZUEN_SHIFT #undef DDR_PHY_DSGCR_CTLZUEN_MASK -#define DDR_PHY_DSGCR_CTLZUEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_CTLZUEN_SHIFT 2 -#define DDR_PHY_DSGCR_CTLZUEN_MASK 0x00000004U +#define DDR_PHY_DSGCR_CTLZUEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_CTLZUEN_SHIFT 2 +#define DDR_PHY_DSGCR_CTLZUEN_MASK 0x00000004U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_1_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_1_SHIFT #undef DDR_PHY_DSGCR_RESERVED_1_MASK -#define DDR_PHY_DSGCR_RESERVED_1_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_1_SHIFT 1 -#define DDR_PHY_DSGCR_RESERVED_1_MASK 0x00000002U +#define DDR_PHY_DSGCR_RESERVED_1_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_1_SHIFT 1 +#define DDR_PHY_DSGCR_RESERVED_1_MASK 0x00000002U -/*PHY Update Request Enable*/ +/* +* PHY Update Request Enable +*/ #undef DDR_PHY_DSGCR_PUREN_DEFVAL #undef DDR_PHY_DSGCR_PUREN_SHIFT #undef DDR_PHY_DSGCR_PUREN_MASK -#define DDR_PHY_DSGCR_PUREN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PUREN_SHIFT 0 -#define DDR_PHY_DSGCR_PUREN_MASK 0x00000001U +#define DDR_PHY_DSGCR_PUREN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PUREN_SHIFT 0 +#define DDR_PHY_DSGCR_PUREN_MASK 0x00000001U -/*DDR4 Gear Down Timing.*/ +/* +* General Purpose Register 0 +*/ +#undef DDR_PHY_GPR0_GPR0_DEFVAL +#undef DDR_PHY_GPR0_GPR0_SHIFT +#undef DDR_PHY_GPR0_GPR0_MASK +#define DDR_PHY_GPR0_GPR0_DEFVAL +#define DDR_PHY_GPR0_GPR0_SHIFT 0 +#define DDR_PHY_GPR0_GPR0_MASK 0xFFFFFFFFU + +/* +* DDR4 Gear Down Timing. +*/ #undef DDR_PHY_DCR_GEARDN_DEFVAL #undef DDR_PHY_DCR_GEARDN_SHIFT #undef DDR_PHY_DCR_GEARDN_MASK -#define DDR_PHY_DCR_GEARDN_DEFVAL 0x0000040D -#define DDR_PHY_DCR_GEARDN_SHIFT 31 -#define DDR_PHY_DCR_GEARDN_MASK 0x80000000U +#define DDR_PHY_DCR_GEARDN_DEFVAL 0x0000040D +#define DDR_PHY_DCR_GEARDN_SHIFT 31 +#define DDR_PHY_DCR_GEARDN_MASK 0x80000000U -/*Un-used Bank Group*/ +/* +* Un-used Bank Group +*/ #undef DDR_PHY_DCR_UBG_DEFVAL #undef DDR_PHY_DCR_UBG_SHIFT #undef DDR_PHY_DCR_UBG_MASK -#define DDR_PHY_DCR_UBG_DEFVAL 0x0000040D -#define DDR_PHY_DCR_UBG_SHIFT 30 -#define DDR_PHY_DCR_UBG_MASK 0x40000000U +#define DDR_PHY_DCR_UBG_DEFVAL 0x0000040D +#define DDR_PHY_DCR_UBG_SHIFT 30 +#define DDR_PHY_DCR_UBG_MASK 0x40000000U -/*Un-buffered DIMM Address Mirroring*/ +/* +* Un-buffered DIMM Address Mirroring +*/ #undef DDR_PHY_DCR_UDIMM_DEFVAL #undef DDR_PHY_DCR_UDIMM_SHIFT #undef DDR_PHY_DCR_UDIMM_MASK -#define DDR_PHY_DCR_UDIMM_DEFVAL 0x0000040D -#define DDR_PHY_DCR_UDIMM_SHIFT 29 -#define DDR_PHY_DCR_UDIMM_MASK 0x20000000U +#define DDR_PHY_DCR_UDIMM_DEFVAL 0x0000040D +#define DDR_PHY_DCR_UDIMM_SHIFT 29 +#define DDR_PHY_DCR_UDIMM_MASK 0x20000000U -/*DDR 2T Timing*/ +/* +* DDR 2T Timing +*/ #undef DDR_PHY_DCR_DDR2T_DEFVAL #undef DDR_PHY_DCR_DDR2T_SHIFT #undef DDR_PHY_DCR_DDR2T_MASK -#define DDR_PHY_DCR_DDR2T_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDR2T_SHIFT 28 -#define DDR_PHY_DCR_DDR2T_MASK 0x10000000U +#define DDR_PHY_DCR_DDR2T_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDR2T_SHIFT 28 +#define DDR_PHY_DCR_DDR2T_MASK 0x10000000U -/*No Simultaneous Rank Access*/ +/* +* No Simultaneous Rank Access +*/ #undef DDR_PHY_DCR_NOSRA_DEFVAL #undef DDR_PHY_DCR_NOSRA_SHIFT #undef DDR_PHY_DCR_NOSRA_MASK -#define DDR_PHY_DCR_NOSRA_DEFVAL 0x0000040D -#define DDR_PHY_DCR_NOSRA_SHIFT 27 -#define DDR_PHY_DCR_NOSRA_MASK 0x08000000U +#define DDR_PHY_DCR_NOSRA_DEFVAL 0x0000040D +#define DDR_PHY_DCR_NOSRA_SHIFT 27 +#define DDR_PHY_DCR_NOSRA_MASK 0x08000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DCR_RESERVED_26_18_DEFVAL #undef DDR_PHY_DCR_RESERVED_26_18_SHIFT #undef DDR_PHY_DCR_RESERVED_26_18_MASK -#define DDR_PHY_DCR_RESERVED_26_18_DEFVAL 0x0000040D -#define DDR_PHY_DCR_RESERVED_26_18_SHIFT 18 -#define DDR_PHY_DCR_RESERVED_26_18_MASK 0x07FC0000U +#define DDR_PHY_DCR_RESERVED_26_18_DEFVAL 0x0000040D +#define DDR_PHY_DCR_RESERVED_26_18_SHIFT 18 +#define DDR_PHY_DCR_RESERVED_26_18_MASK 0x07FC0000U -/*Byte Mask*/ +/* +* Byte Mask +*/ #undef DDR_PHY_DCR_BYTEMASK_DEFVAL #undef DDR_PHY_DCR_BYTEMASK_SHIFT #undef DDR_PHY_DCR_BYTEMASK_MASK -#define DDR_PHY_DCR_BYTEMASK_DEFVAL 0x0000040D -#define DDR_PHY_DCR_BYTEMASK_SHIFT 10 -#define DDR_PHY_DCR_BYTEMASK_MASK 0x0003FC00U +#define DDR_PHY_DCR_BYTEMASK_DEFVAL 0x0000040D +#define DDR_PHY_DCR_BYTEMASK_SHIFT 10 +#define DDR_PHY_DCR_BYTEMASK_MASK 0x0003FC00U -/*DDR Type*/ +/* +* DDR Type +*/ #undef DDR_PHY_DCR_DDRTYPE_DEFVAL #undef DDR_PHY_DCR_DDRTYPE_SHIFT #undef DDR_PHY_DCR_DDRTYPE_MASK -#define DDR_PHY_DCR_DDRTYPE_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDRTYPE_SHIFT 8 -#define DDR_PHY_DCR_DDRTYPE_MASK 0x00000300U +#define DDR_PHY_DCR_DDRTYPE_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDRTYPE_SHIFT 8 +#define DDR_PHY_DCR_DDRTYPE_MASK 0x00000300U -/*Multi-Purpose Register (MPR) DQ (DDR3 Only)*/ +/* +* Multi-Purpose Register (MPR) DQ (DDR3 Only) +*/ #undef DDR_PHY_DCR_MPRDQ_DEFVAL #undef DDR_PHY_DCR_MPRDQ_SHIFT #undef DDR_PHY_DCR_MPRDQ_MASK -#define DDR_PHY_DCR_MPRDQ_DEFVAL 0x0000040D -#define DDR_PHY_DCR_MPRDQ_SHIFT 7 -#define DDR_PHY_DCR_MPRDQ_MASK 0x00000080U +#define DDR_PHY_DCR_MPRDQ_DEFVAL 0x0000040D +#define DDR_PHY_DCR_MPRDQ_SHIFT 7 +#define DDR_PHY_DCR_MPRDQ_MASK 0x00000080U -/*Primary DQ (DDR3 Only)*/ +/* +* Primary DQ (DDR3 Only) +*/ #undef DDR_PHY_DCR_PDQ_DEFVAL #undef DDR_PHY_DCR_PDQ_SHIFT #undef DDR_PHY_DCR_PDQ_MASK -#define DDR_PHY_DCR_PDQ_DEFVAL 0x0000040D -#define DDR_PHY_DCR_PDQ_SHIFT 4 -#define DDR_PHY_DCR_PDQ_MASK 0x00000070U +#define DDR_PHY_DCR_PDQ_DEFVAL 0x0000040D +#define DDR_PHY_DCR_PDQ_SHIFT 4 +#define DDR_PHY_DCR_PDQ_MASK 0x00000070U -/*DDR 8-Bank*/ +/* +* DDR 8-Bank +*/ #undef DDR_PHY_DCR_DDR8BNK_DEFVAL #undef DDR_PHY_DCR_DDR8BNK_SHIFT #undef DDR_PHY_DCR_DDR8BNK_MASK -#define DDR_PHY_DCR_DDR8BNK_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDR8BNK_SHIFT 3 -#define DDR_PHY_DCR_DDR8BNK_MASK 0x00000008U +#define DDR_PHY_DCR_DDR8BNK_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDR8BNK_SHIFT 3 +#define DDR_PHY_DCR_DDR8BNK_MASK 0x00000008U -/*DDR Mode*/ +/* +* DDR Mode +*/ #undef DDR_PHY_DCR_DDRMD_DEFVAL #undef DDR_PHY_DCR_DDRMD_SHIFT #undef DDR_PHY_DCR_DDRMD_MASK -#define DDR_PHY_DCR_DDRMD_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDRMD_SHIFT 0 -#define DDR_PHY_DCR_DDRMD_MASK 0x00000007U +#define DDR_PHY_DCR_DDRMD_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDRMD_SHIFT 0 +#define DDR_PHY_DCR_DDRMD_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_31_29_SHIFT #undef DDR_PHY_DTPR0_RESERVED_31_29_MASK -#define DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DTPR0_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DTPR0_RESERVED_31_29_MASK 0xE0000000U -/*Activate to activate command delay (different banks)*/ +/* +* Activate to activate command delay (different banks) +*/ #undef DDR_PHY_DTPR0_TRRD_DEFVAL #undef DDR_PHY_DTPR0_TRRD_SHIFT #undef DDR_PHY_DTPR0_TRRD_MASK -#define DDR_PHY_DTPR0_TRRD_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRRD_SHIFT 24 -#define DDR_PHY_DTPR0_TRRD_MASK 0x1F000000U +#define DDR_PHY_DTPR0_TRRD_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRRD_SHIFT 24 +#define DDR_PHY_DTPR0_TRRD_MASK 0x1F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_23_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_23_SHIFT #undef DDR_PHY_DTPR0_RESERVED_23_MASK -#define DDR_PHY_DTPR0_RESERVED_23_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_23_SHIFT 23 -#define DDR_PHY_DTPR0_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DTPR0_RESERVED_23_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_23_SHIFT 23 +#define DDR_PHY_DTPR0_RESERVED_23_MASK 0x00800000U -/*Activate to precharge command delay*/ +/* +* Activate to precharge command delay +*/ #undef DDR_PHY_DTPR0_TRAS_DEFVAL #undef DDR_PHY_DTPR0_TRAS_SHIFT #undef DDR_PHY_DTPR0_TRAS_MASK -#define DDR_PHY_DTPR0_TRAS_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRAS_SHIFT 16 -#define DDR_PHY_DTPR0_TRAS_MASK 0x007F0000U +#define DDR_PHY_DTPR0_TRAS_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRAS_SHIFT 16 +#define DDR_PHY_DTPR0_TRAS_MASK 0x007F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_15_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_15_SHIFT #undef DDR_PHY_DTPR0_RESERVED_15_MASK -#define DDR_PHY_DTPR0_RESERVED_15_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_15_SHIFT 15 -#define DDR_PHY_DTPR0_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DTPR0_RESERVED_15_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_15_SHIFT 15 +#define DDR_PHY_DTPR0_RESERVED_15_MASK 0x00008000U -/*Precharge command period*/ +/* +* Precharge command period +*/ #undef DDR_PHY_DTPR0_TRP_DEFVAL #undef DDR_PHY_DTPR0_TRP_SHIFT #undef DDR_PHY_DTPR0_TRP_MASK -#define DDR_PHY_DTPR0_TRP_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRP_SHIFT 8 -#define DDR_PHY_DTPR0_TRP_MASK 0x00007F00U +#define DDR_PHY_DTPR0_TRP_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRP_SHIFT 8 +#define DDR_PHY_DTPR0_TRP_MASK 0x00007F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR0_RESERVED_7_5_MASK -#define DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR0_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR0_RESERVED_7_5_MASK 0x000000E0U -/*Internal read to precharge command delay*/ +/* +* Internal read to precharge command delay +*/ #undef DDR_PHY_DTPR0_TRTP_DEFVAL #undef DDR_PHY_DTPR0_TRTP_SHIFT #undef DDR_PHY_DTPR0_TRTP_MASK -#define DDR_PHY_DTPR0_TRTP_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRTP_SHIFT 0 -#define DDR_PHY_DTPR0_TRTP_MASK 0x0000001FU +#define DDR_PHY_DTPR0_TRTP_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRTP_SHIFT 0 +#define DDR_PHY_DTPR0_TRTP_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_31_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_31_SHIFT #undef DDR_PHY_DTPR1_RESERVED_31_MASK -#define DDR_PHY_DTPR1_RESERVED_31_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_31_SHIFT 31 -#define DDR_PHY_DTPR1_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DTPR1_RESERVED_31_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_31_SHIFT 31 +#define DDR_PHY_DTPR1_RESERVED_31_MASK 0x80000000U -/*Minimum delay from when write leveling mode is programmed to the first DQS/DQS# rising edge.*/ +/* +* Minimum delay from when write leveling mode is programmed to the first D + * QS/DQS# rising edge. +*/ #undef DDR_PHY_DTPR1_TWLMRD_DEFVAL #undef DDR_PHY_DTPR1_TWLMRD_SHIFT #undef DDR_PHY_DTPR1_TWLMRD_MASK -#define DDR_PHY_DTPR1_TWLMRD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TWLMRD_SHIFT 24 -#define DDR_PHY_DTPR1_TWLMRD_MASK 0x7F000000U +#define DDR_PHY_DTPR1_TWLMRD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TWLMRD_SHIFT 24 +#define DDR_PHY_DTPR1_TWLMRD_MASK 0x7F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_23_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_23_SHIFT #undef DDR_PHY_DTPR1_RESERVED_23_MASK -#define DDR_PHY_DTPR1_RESERVED_23_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_23_SHIFT 23 -#define DDR_PHY_DTPR1_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DTPR1_RESERVED_23_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_23_SHIFT 23 +#define DDR_PHY_DTPR1_RESERVED_23_MASK 0x00800000U -/*4-bank activate period*/ +/* +* 4-bank activate period +*/ #undef DDR_PHY_DTPR1_TFAW_DEFVAL #undef DDR_PHY_DTPR1_TFAW_SHIFT #undef DDR_PHY_DTPR1_TFAW_MASK -#define DDR_PHY_DTPR1_TFAW_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TFAW_SHIFT 16 -#define DDR_PHY_DTPR1_TFAW_MASK 0x007F0000U +#define DDR_PHY_DTPR1_TFAW_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TFAW_SHIFT 16 +#define DDR_PHY_DTPR1_TFAW_MASK 0x007F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_15_11_SHIFT #undef DDR_PHY_DTPR1_RESERVED_15_11_MASK -#define DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_15_11_SHIFT 11 -#define DDR_PHY_DTPR1_RESERVED_15_11_MASK 0x0000F800U +#define DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_15_11_SHIFT 11 +#define DDR_PHY_DTPR1_RESERVED_15_11_MASK 0x0000F800U -/*Load mode update delay (DDR4 and DDR3 only)*/ +/* +* Load mode update delay (DDR4 and DDR3 only) +*/ #undef DDR_PHY_DTPR1_TMOD_DEFVAL #undef DDR_PHY_DTPR1_TMOD_SHIFT #undef DDR_PHY_DTPR1_TMOD_MASK -#define DDR_PHY_DTPR1_TMOD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TMOD_SHIFT 8 -#define DDR_PHY_DTPR1_TMOD_MASK 0x00000700U +#define DDR_PHY_DTPR1_TMOD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TMOD_SHIFT 8 +#define DDR_PHY_DTPR1_TMOD_MASK 0x00000700U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR1_RESERVED_7_5_MASK -#define DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR1_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR1_RESERVED_7_5_MASK 0x000000E0U -/*Load mode cycle time*/ +/* +* Load mode cycle time +*/ #undef DDR_PHY_DTPR1_TMRD_DEFVAL #undef DDR_PHY_DTPR1_TMRD_SHIFT #undef DDR_PHY_DTPR1_TMRD_MASK -#define DDR_PHY_DTPR1_TMRD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TMRD_SHIFT 0 -#define DDR_PHY_DTPR1_TMRD_MASK 0x0000001FU +#define DDR_PHY_DTPR1_TMRD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TMRD_SHIFT 0 +#define DDR_PHY_DTPR1_TMRD_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_31_29_SHIFT #undef DDR_PHY_DTPR2_RESERVED_31_29_MASK -#define DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DTPR2_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DTPR2_RESERVED_31_29_MASK 0xE0000000U -/*Read to Write command delay. Valid values are*/ +/* +* Read to Write command delay. Valid values are +*/ #undef DDR_PHY_DTPR2_TRTW_DEFVAL #undef DDR_PHY_DTPR2_TRTW_SHIFT #undef DDR_PHY_DTPR2_TRTW_MASK -#define DDR_PHY_DTPR2_TRTW_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TRTW_SHIFT 28 -#define DDR_PHY_DTPR2_TRTW_MASK 0x10000000U +#define DDR_PHY_DTPR2_TRTW_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TRTW_SHIFT 28 +#define DDR_PHY_DTPR2_TRTW_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_27_25_SHIFT #undef DDR_PHY_DTPR2_RESERVED_27_25_MASK -#define DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_27_25_SHIFT 25 -#define DDR_PHY_DTPR2_RESERVED_27_25_MASK 0x0E000000U +#define DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_27_25_SHIFT 25 +#define DDR_PHY_DTPR2_RESERVED_27_25_MASK 0x0E000000U -/*Read to ODT delay (DDR3 only)*/ +/* +* Read to ODT delay (DDR3 only) +*/ #undef DDR_PHY_DTPR2_TRTODT_DEFVAL #undef DDR_PHY_DTPR2_TRTODT_SHIFT #undef DDR_PHY_DTPR2_TRTODT_MASK -#define DDR_PHY_DTPR2_TRTODT_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TRTODT_SHIFT 24 -#define DDR_PHY_DTPR2_TRTODT_MASK 0x01000000U +#define DDR_PHY_DTPR2_TRTODT_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TRTODT_SHIFT 24 +#define DDR_PHY_DTPR2_TRTODT_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_23_20_SHIFT #undef DDR_PHY_DTPR2_RESERVED_23_20_MASK -#define DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DTPR2_RESERVED_23_20_MASK 0x00F00000U +#define DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_23_20_SHIFT 20 +#define DDR_PHY_DTPR2_RESERVED_23_20_MASK 0x00F00000U -/*CKE minimum pulse width*/ +/* +* CKE minimum pulse width +*/ #undef DDR_PHY_DTPR2_TCKE_DEFVAL #undef DDR_PHY_DTPR2_TCKE_SHIFT #undef DDR_PHY_DTPR2_TCKE_MASK -#define DDR_PHY_DTPR2_TCKE_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TCKE_SHIFT 16 -#define DDR_PHY_DTPR2_TCKE_MASK 0x000F0000U +#define DDR_PHY_DTPR2_TCKE_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TCKE_SHIFT 16 +#define DDR_PHY_DTPR2_TCKE_MASK 0x000F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_15_10_SHIFT #undef DDR_PHY_DTPR2_RESERVED_15_10_MASK -#define DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_DTPR2_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_DTPR2_RESERVED_15_10_MASK 0x0000FC00U -/*Self refresh exit delay*/ +/* +* Self refresh exit delay +*/ #undef DDR_PHY_DTPR2_TXS_DEFVAL #undef DDR_PHY_DTPR2_TXS_SHIFT #undef DDR_PHY_DTPR2_TXS_MASK -#define DDR_PHY_DTPR2_TXS_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TXS_SHIFT 0 -#define DDR_PHY_DTPR2_TXS_MASK 0x000003FFU +#define DDR_PHY_DTPR2_TXS_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TXS_SHIFT 0 +#define DDR_PHY_DTPR2_TXS_MASK 0x000003FFU -/*ODT turn-off delay extension*/ +/* +* ODT turn-off delay extension +*/ #undef DDR_PHY_DTPR3_TOFDX_DEFVAL #undef DDR_PHY_DTPR3_TOFDX_SHIFT #undef DDR_PHY_DTPR3_TOFDX_MASK -#define DDR_PHY_DTPR3_TOFDX_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TOFDX_SHIFT 29 -#define DDR_PHY_DTPR3_TOFDX_MASK 0xE0000000U +#define DDR_PHY_DTPR3_TOFDX_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TOFDX_SHIFT 29 +#define DDR_PHY_DTPR3_TOFDX_MASK 0xE0000000U -/*Read to read and write to write command delay*/ +/* +* Read to read and write to write command delay +*/ #undef DDR_PHY_DTPR3_TCCD_DEFVAL #undef DDR_PHY_DTPR3_TCCD_SHIFT #undef DDR_PHY_DTPR3_TCCD_MASK -#define DDR_PHY_DTPR3_TCCD_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TCCD_SHIFT 26 -#define DDR_PHY_DTPR3_TCCD_MASK 0x1C000000U +#define DDR_PHY_DTPR3_TCCD_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TCCD_SHIFT 26 +#define DDR_PHY_DTPR3_TCCD_MASK 0x1C000000U -/*DLL locking time*/ +/* +* DLL locking time +*/ #undef DDR_PHY_DTPR3_TDLLK_DEFVAL #undef DDR_PHY_DTPR3_TDLLK_SHIFT #undef DDR_PHY_DTPR3_TDLLK_MASK -#define DDR_PHY_DTPR3_TDLLK_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDLLK_SHIFT 16 -#define DDR_PHY_DTPR3_TDLLK_MASK 0x03FF0000U +#define DDR_PHY_DTPR3_TDLLK_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDLLK_SHIFT 16 +#define DDR_PHY_DTPR3_TDLLK_MASK 0x03FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL #undef DDR_PHY_DTPR3_RESERVED_15_12_SHIFT #undef DDR_PHY_DTPR3_RESERVED_15_12_MASK -#define DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_RESERVED_15_12_SHIFT 12 -#define DDR_PHY_DTPR3_RESERVED_15_12_MASK 0x0000F000U +#define DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_RESERVED_15_12_SHIFT 12 +#define DDR_PHY_DTPR3_RESERVED_15_12_MASK 0x0000F000U -/*Maximum DQS output access time from CK/CK# (LPDDR2/3 only)*/ +/* +* Maximum DQS output access time from CK/CK# (LPDDR2/3 only) +*/ #undef DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL #undef DDR_PHY_DTPR3_TDQSCKMAX_SHIFT #undef DDR_PHY_DTPR3_TDQSCKMAX_MASK -#define DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDQSCKMAX_SHIFT 8 -#define DDR_PHY_DTPR3_TDQSCKMAX_MASK 0x00000F00U +#define DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDQSCKMAX_SHIFT 8 +#define DDR_PHY_DTPR3_TDQSCKMAX_MASK 0x00000F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL #undef DDR_PHY_DTPR3_RESERVED_7_3_SHIFT #undef DDR_PHY_DTPR3_RESERVED_7_3_MASK -#define DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_RESERVED_7_3_SHIFT 3 -#define DDR_PHY_DTPR3_RESERVED_7_3_MASK 0x000000F8U +#define DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_RESERVED_7_3_SHIFT 3 +#define DDR_PHY_DTPR3_RESERVED_7_3_MASK 0x000000F8U -/*DQS output access time from CK/CK# (LPDDR2/3 only)*/ +/* +* DQS output access time from CK/CK# (LPDDR2/3 only) +*/ #undef DDR_PHY_DTPR3_TDQSCK_DEFVAL #undef DDR_PHY_DTPR3_TDQSCK_SHIFT #undef DDR_PHY_DTPR3_TDQSCK_MASK -#define DDR_PHY_DTPR3_TDQSCK_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDQSCK_SHIFT 0 -#define DDR_PHY_DTPR3_TDQSCK_MASK 0x00000007U +#define DDR_PHY_DTPR3_TDQSCK_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDQSCK_SHIFT 0 +#define DDR_PHY_DTPR3_TDQSCK_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_31_30_SHIFT #undef DDR_PHY_DTPR4_RESERVED_31_30_MASK -#define DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DTPR4_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DTPR4_RESERVED_31_30_MASK 0xC0000000U -/*ODT turn-on/turn-off delays (DDR2 only)*/ +/* +* ODT turn-on/turn-off delays (DDR2 only) +*/ #undef DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL #undef DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT #undef DDR_PHY_DTPR4_TAOND_TAOFD_MASK -#define DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT 28 -#define DDR_PHY_DTPR4_TAOND_TAOFD_MASK 0x30000000U +#define DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT 28 +#define DDR_PHY_DTPR4_TAOND_TAOFD_MASK 0x30000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_27_26_SHIFT #undef DDR_PHY_DTPR4_RESERVED_27_26_MASK -#define DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_27_26_SHIFT 26 -#define DDR_PHY_DTPR4_RESERVED_27_26_MASK 0x0C000000U +#define DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_27_26_SHIFT 26 +#define DDR_PHY_DTPR4_RESERVED_27_26_MASK 0x0C000000U -/*Refresh-to-Refresh*/ +/* +* Refresh-to-Refresh +*/ #undef DDR_PHY_DTPR4_TRFC_DEFVAL #undef DDR_PHY_DTPR4_TRFC_SHIFT #undef DDR_PHY_DTPR4_TRFC_MASK -#define DDR_PHY_DTPR4_TRFC_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TRFC_SHIFT 16 -#define DDR_PHY_DTPR4_TRFC_MASK 0x03FF0000U +#define DDR_PHY_DTPR4_TRFC_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TRFC_SHIFT 16 +#define DDR_PHY_DTPR4_TRFC_MASK 0x03FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_15_14_SHIFT #undef DDR_PHY_DTPR4_RESERVED_15_14_MASK -#define DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DTPR4_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DTPR4_RESERVED_15_14_MASK 0x0000C000U -/*Write leveling output delay*/ +/* +* Write leveling output delay +*/ #undef DDR_PHY_DTPR4_TWLO_DEFVAL #undef DDR_PHY_DTPR4_TWLO_SHIFT #undef DDR_PHY_DTPR4_TWLO_MASK -#define DDR_PHY_DTPR4_TWLO_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TWLO_SHIFT 8 -#define DDR_PHY_DTPR4_TWLO_MASK 0x00003F00U +#define DDR_PHY_DTPR4_TWLO_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TWLO_SHIFT 8 +#define DDR_PHY_DTPR4_TWLO_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR4_RESERVED_7_5_MASK -#define DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR4_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR4_RESERVED_7_5_MASK 0x000000E0U -/*Power down exit delay*/ +/* +* Power down exit delay +*/ #undef DDR_PHY_DTPR4_TXP_DEFVAL #undef DDR_PHY_DTPR4_TXP_SHIFT #undef DDR_PHY_DTPR4_TXP_MASK -#define DDR_PHY_DTPR4_TXP_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TXP_SHIFT 0 -#define DDR_PHY_DTPR4_TXP_MASK 0x0000001FU +#define DDR_PHY_DTPR4_TXP_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TXP_SHIFT 0 +#define DDR_PHY_DTPR4_TXP_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_31_24_SHIFT #undef DDR_PHY_DTPR5_RESERVED_31_24_MASK -#define DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DTPR5_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DTPR5_RESERVED_31_24_MASK 0xFF000000U -/*Activate to activate command delay (same bank)*/ +/* +* Activate to activate command delay (same bank) +*/ #undef DDR_PHY_DTPR5_TRC_DEFVAL #undef DDR_PHY_DTPR5_TRC_SHIFT #undef DDR_PHY_DTPR5_TRC_MASK -#define DDR_PHY_DTPR5_TRC_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TRC_SHIFT 16 -#define DDR_PHY_DTPR5_TRC_MASK 0x00FF0000U +#define DDR_PHY_DTPR5_TRC_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TRC_SHIFT 16 +#define DDR_PHY_DTPR5_TRC_MASK 0x00FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_15_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_15_SHIFT #undef DDR_PHY_DTPR5_RESERVED_15_MASK -#define DDR_PHY_DTPR5_RESERVED_15_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DTPR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DTPR5_RESERVED_15_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DTPR5_RESERVED_15_MASK 0x00008000U -/*Activate to read or write delay*/ +/* +* Activate to read or write delay +*/ #undef DDR_PHY_DTPR5_TRCD_DEFVAL #undef DDR_PHY_DTPR5_TRCD_SHIFT #undef DDR_PHY_DTPR5_TRCD_MASK -#define DDR_PHY_DTPR5_TRCD_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TRCD_SHIFT 8 -#define DDR_PHY_DTPR5_TRCD_MASK 0x00007F00U +#define DDR_PHY_DTPR5_TRCD_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TRCD_SHIFT 8 +#define DDR_PHY_DTPR5_TRCD_MASK 0x00007F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR5_RESERVED_7_5_MASK -#define DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR5_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR5_RESERVED_7_5_MASK 0x000000E0U -/*Internal write to read command delay*/ +/* +* Internal write to read command delay +*/ #undef DDR_PHY_DTPR5_TWTR_DEFVAL #undef DDR_PHY_DTPR5_TWTR_SHIFT #undef DDR_PHY_DTPR5_TWTR_MASK -#define DDR_PHY_DTPR5_TWTR_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TWTR_SHIFT 0 -#define DDR_PHY_DTPR5_TWTR_MASK 0x0000001FU +#define DDR_PHY_DTPR5_TWTR_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TWTR_SHIFT 0 +#define DDR_PHY_DTPR5_TWTR_MASK 0x0000001FU -/*PUB Write Latency Enable*/ +/* +* PUB Write Latency Enable +*/ #undef DDR_PHY_DTPR6_PUBWLEN_DEFVAL #undef DDR_PHY_DTPR6_PUBWLEN_SHIFT #undef DDR_PHY_DTPR6_PUBWLEN_MASK -#define DDR_PHY_DTPR6_PUBWLEN_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBWLEN_SHIFT 31 -#define DDR_PHY_DTPR6_PUBWLEN_MASK 0x80000000U +#define DDR_PHY_DTPR6_PUBWLEN_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBWLEN_SHIFT 31 +#define DDR_PHY_DTPR6_PUBWLEN_MASK 0x80000000U -/*PUB Read Latency Enable*/ +/* +* PUB Read Latency Enable +*/ #undef DDR_PHY_DTPR6_PUBRLEN_DEFVAL #undef DDR_PHY_DTPR6_PUBRLEN_SHIFT #undef DDR_PHY_DTPR6_PUBRLEN_MASK -#define DDR_PHY_DTPR6_PUBRLEN_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBRLEN_SHIFT 30 -#define DDR_PHY_DTPR6_PUBRLEN_MASK 0x40000000U +#define DDR_PHY_DTPR6_PUBRLEN_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBRLEN_SHIFT 30 +#define DDR_PHY_DTPR6_PUBRLEN_MASK 0x40000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL #undef DDR_PHY_DTPR6_RESERVED_29_14_SHIFT #undef DDR_PHY_DTPR6_RESERVED_29_14_MASK -#define DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_RESERVED_29_14_SHIFT 14 -#define DDR_PHY_DTPR6_RESERVED_29_14_MASK 0x3FFFC000U +#define DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_RESERVED_29_14_SHIFT 14 +#define DDR_PHY_DTPR6_RESERVED_29_14_MASK 0x3FFFC000U -/*Write Latency*/ +/* +* Write Latency +*/ #undef DDR_PHY_DTPR6_PUBWL_DEFVAL #undef DDR_PHY_DTPR6_PUBWL_SHIFT #undef DDR_PHY_DTPR6_PUBWL_MASK -#define DDR_PHY_DTPR6_PUBWL_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBWL_SHIFT 8 -#define DDR_PHY_DTPR6_PUBWL_MASK 0x00003F00U +#define DDR_PHY_DTPR6_PUBWL_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBWL_SHIFT 8 +#define DDR_PHY_DTPR6_PUBWL_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DTPR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DTPR6_RESERVED_7_6_MASK -#define DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DTPR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DTPR6_RESERVED_7_6_MASK 0x000000C0U -/*Read Latency*/ +/* +* Read Latency +*/ #undef DDR_PHY_DTPR6_PUBRL_DEFVAL #undef DDR_PHY_DTPR6_PUBRL_SHIFT #undef DDR_PHY_DTPR6_PUBRL_MASK -#define DDR_PHY_DTPR6_PUBRL_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBRL_SHIFT 0 -#define DDR_PHY_DTPR6_PUBRL_MASK 0x0000003FU +#define DDR_PHY_DTPR6_PUBRL_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBRL_SHIFT 0 +#define DDR_PHY_DTPR6_PUBRL_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_31_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT 31 -#define DDR_PHY_RDIMMGCR0_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT 31 +#define DDR_PHY_RDIMMGCR0_RESERVED_31_MASK 0x80000000U -/*RDMIMM Quad CS Enable*/ +/* +* RDMIMM Quad CS Enable +*/ #undef DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL #undef DDR_PHY_RDIMMGCR0_QCSEN_SHIFT #undef DDR_PHY_RDIMMGCR0_QCSEN_MASK -#define DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_QCSEN_SHIFT 30 -#define DDR_PHY_RDIMMGCR0_QCSEN_MASK 0x40000000U +#define DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_QCSEN_SHIFT 30 +#define DDR_PHY_RDIMMGCR0_QCSEN_MASK 0x40000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT 28 -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK 0x30000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT 28 +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK 0x30000000U -/*RDIMM Outputs I/O Mode*/ +/* +* RDIMM Outputs I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT 27 -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK 0x08000000U +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT 27 +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK 0x08000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT 24 -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK 0x07000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT 24 +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK 0x07000000U -/*ERROUT# Output Enable*/ +/* +* ERROUT# Output Enable +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTOE_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT 23 -#define DDR_PHY_RDIMMGCR0_ERROUTOE_MASK 0x00800000U +#define DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT 23 +#define DDR_PHY_RDIMMGCR0_ERROUTOE_MASK 0x00800000U -/*ERROUT# I/O Mode*/ +/* +* ERROUT# I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT 22 -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK 0x00400000U +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT 22 +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK 0x00400000U -/*ERROUT# Power Down Receiver*/ +/* +* ERROUT# Power Down Receiver +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT 21 -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK 0x00200000U +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT 21 +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK 0x00200000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_20_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT 20 -#define DDR_PHY_RDIMMGCR0_RESERVED_20_MASK 0x00100000U +#define DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT 20 +#define DDR_PHY_RDIMMGCR0_RESERVED_20_MASK 0x00100000U -/*ERROUT# On-Die Termination*/ +/* +* ERROUT# On-Die Termination +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTODT_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT 19 -#define DDR_PHY_RDIMMGCR0_ERROUTODT_MASK 0x00080000U +#define DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT 19 +#define DDR_PHY_RDIMMGCR0_ERROUTODT_MASK 0x00080000U -/*Load Reduced DIMM*/ +/* +* Load Reduced DIMM +*/ #undef DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL #undef DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT #undef DDR_PHY_RDIMMGCR0_LRDIMM_MASK -#define DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT 18 -#define DDR_PHY_RDIMMGCR0_LRDIMM_MASK 0x00040000U +#define DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT 18 +#define DDR_PHY_RDIMMGCR0_LRDIMM_MASK 0x00040000U -/*PAR_IN I/O Mode*/ +/* +* PAR_IN I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_PARINIOM_MASK -#define DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT 17 -#define DDR_PHY_RDIMMGCR0_PARINIOM_MASK 0x00020000U +#define DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT 17 +#define DDR_PHY_RDIMMGCR0_PARINIOM_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT 8 -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK 0x0001FF00U +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT 8 +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK 0x0001FF00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT 6 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK 0x000000C0U +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT 6 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK 0x000000C0U -/*Rank Mirror Enable.*/ +/* +* Rank Mirror Enable. +*/ #undef DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL #undef DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT #undef DDR_PHY_RDIMMGCR0_RNKMRREN_MASK -#define DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT 4 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_MASK 0x00000030U +#define DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT 4 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_MASK 0x00000030U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_3_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT 3 -#define DDR_PHY_RDIMMGCR0_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT 3 +#define DDR_PHY_RDIMMGCR0_RESERVED_3_MASK 0x00000008U -/*Stop on Parity Error*/ +/* +* Stop on Parity Error +*/ #undef DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL #undef DDR_PHY_RDIMMGCR0_SOPERR_SHIFT #undef DDR_PHY_RDIMMGCR0_SOPERR_MASK -#define DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_SOPERR_SHIFT 2 -#define DDR_PHY_RDIMMGCR0_SOPERR_MASK 0x00000004U +#define DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_SOPERR_SHIFT 2 +#define DDR_PHY_RDIMMGCR0_SOPERR_MASK 0x00000004U -/*Parity Error No Registering*/ +/* +* Parity Error No Registering +*/ #undef DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT #undef DDR_PHY_RDIMMGCR0_ERRNOREG_MASK -#define DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT 1 -#define DDR_PHY_RDIMMGCR0_ERRNOREG_MASK 0x00000002U +#define DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT 1 +#define DDR_PHY_RDIMMGCR0_ERRNOREG_MASK 0x00000002U -/*Registered DIMM*/ +/* +* Registered DIMM +*/ #undef DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL #undef DDR_PHY_RDIMMGCR0_RDIMM_SHIFT #undef DDR_PHY_RDIMMGCR0_RDIMM_MASK -#define DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RDIMM_SHIFT 0 -#define DDR_PHY_RDIMMGCR0_RDIMM_MASK 0x00000001U +#define DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RDIMM_SHIFT 0 +#define DDR_PHY_RDIMMGCR0_RDIMM_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK 0xE0000000U -/*Address [17] B-side Inversion Disable*/ +/* +* Address [17] B-side Inversion Disable +*/ #undef DDR_PHY_RDIMMGCR1_A17BID_DEFVAL #undef DDR_PHY_RDIMMGCR1_A17BID_SHIFT #undef DDR_PHY_RDIMMGCR1_A17BID_MASK -#define DDR_PHY_RDIMMGCR1_A17BID_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_A17BID_SHIFT 28 -#define DDR_PHY_RDIMMGCR1_A17BID_MASK 0x10000000U +#define DDR_PHY_RDIMMGCR1_A17BID_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_A17BID_SHIFT 28 +#define DDR_PHY_RDIMMGCR1_A17BID_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_27_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT 27 -#define DDR_PHY_RDIMMGCR1_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT 27 +#define DDR_PHY_RDIMMGCR1_RESERVED_27_MASK 0x08000000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT 24 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK 0x07000000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT 24 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK 0x07000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_23_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT 23 -#define DDR_PHY_RDIMMGCR1_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT 23 +#define DDR_PHY_RDIMMGCR1_RESERVED_23_MASK 0x00800000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT 20 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK 0x00700000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT 20 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK 0x00700000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_19_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT 19 -#define DDR_PHY_RDIMMGCR1_RESERVED_19_MASK 0x00080000U +#define DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT 19 +#define DDR_PHY_RDIMMGCR1_RESERVED_19_MASK 0x00080000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT 16 -#define DDR_PHY_RDIMMGCR1_TBCMRD_MASK 0x00070000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT 16 +#define DDR_PHY_RDIMMGCR1_TBCMRD_MASK 0x00070000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK 0x0000C000U -/*Stabilization time*/ +/* +* Stabilization time +*/ #undef DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCSTAB_MASK -#define DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT 0 -#define DDR_PHY_RDIMMGCR1_TBCSTAB_MASK 0x00003FFFU +#define DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT 0 +#define DDR_PHY_RDIMMGCR1_TBCSTAB_MASK 0x00003FFFU -/*DDR4/DDR3 Control Word 7*/ +/* +* DDR4/DDR3 Control Word 7 +*/ #undef DDR_PHY_RDIMMCR0_RC7_DEFVAL #undef DDR_PHY_RDIMMCR0_RC7_SHIFT #undef DDR_PHY_RDIMMCR0_RC7_MASK -#define DDR_PHY_RDIMMCR0_RC7_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC7_SHIFT 28 -#define DDR_PHY_RDIMMCR0_RC7_MASK 0xF0000000U +#define DDR_PHY_RDIMMCR0_RC7_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC7_SHIFT 28 +#define DDR_PHY_RDIMMCR0_RC7_MASK 0xF0000000U -/*DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR0_RC6_DEFVAL #undef DDR_PHY_RDIMMCR0_RC6_SHIFT #undef DDR_PHY_RDIMMCR0_RC6_MASK -#define DDR_PHY_RDIMMCR0_RC6_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC6_SHIFT 24 -#define DDR_PHY_RDIMMCR0_RC6_MASK 0x0F000000U +#define DDR_PHY_RDIMMCR0_RC6_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC6_SHIFT 24 +#define DDR_PHY_RDIMMCR0_RC6_MASK 0x0F000000U -/*DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word)*/ +/* +* DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC5_DEFVAL #undef DDR_PHY_RDIMMCR0_RC5_SHIFT #undef DDR_PHY_RDIMMCR0_RC5_MASK -#define DDR_PHY_RDIMMCR0_RC5_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC5_SHIFT 20 -#define DDR_PHY_RDIMMCR0_RC5_MASK 0x00F00000U +#define DDR_PHY_RDIMMCR0_RC5_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC5_SHIFT 20 +#define DDR_PHY_RDIMMCR0_RC5_MASK 0x00F00000U -/*DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control Word) / DDR3 Control Word 4 (Control Signals Driver C - aracteristics Control Word)*/ +/* +* DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control + * Word) / DDR3 Control Word 4 (Control Signals Driver Characteristics Cont + * rol Word) +*/ #undef DDR_PHY_RDIMMCR0_RC4_DEFVAL #undef DDR_PHY_RDIMMCR0_RC4_SHIFT #undef DDR_PHY_RDIMMCR0_RC4_MASK -#define DDR_PHY_RDIMMCR0_RC4_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC4_SHIFT 16 -#define DDR_PHY_RDIMMCR0_RC4_MASK 0x000F0000U +#define DDR_PHY_RDIMMCR0_RC4_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC4_SHIFT 16 +#define DDR_PHY_RDIMMCR0_RC4_MASK 0x000F0000U -/*DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Word) / DDR3 Control Word 3 (Command/Address Signals Dr - ver Characteristrics Control Word)*/ +/* +* DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Wo + * rd) / DDR3 Control Word 3 (Command/Address Signals Driver Characteristri + * cs Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC3_DEFVAL #undef DDR_PHY_RDIMMCR0_RC3_SHIFT #undef DDR_PHY_RDIMMCR0_RC3_MASK -#define DDR_PHY_RDIMMCR0_RC3_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC3_SHIFT 12 -#define DDR_PHY_RDIMMCR0_RC3_MASK 0x0000F000U +#define DDR_PHY_RDIMMCR0_RC3_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC3_SHIFT 12 +#define DDR_PHY_RDIMMCR0_RC3_MASK 0x0000F000U -/*DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 (Timing Control Word)*/ +/* +* DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 + * (Timing Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC2_DEFVAL #undef DDR_PHY_RDIMMCR0_RC2_SHIFT #undef DDR_PHY_RDIMMCR0_RC2_MASK -#define DDR_PHY_RDIMMCR0_RC2_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC2_SHIFT 8 -#define DDR_PHY_RDIMMCR0_RC2_MASK 0x00000F00U +#define DDR_PHY_RDIMMCR0_RC2_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC2_SHIFT 8 +#define DDR_PHY_RDIMMCR0_RC2_MASK 0x00000F00U -/*DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word)*/ +/* +* DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC1_DEFVAL #undef DDR_PHY_RDIMMCR0_RC1_SHIFT #undef DDR_PHY_RDIMMCR0_RC1_MASK -#define DDR_PHY_RDIMMCR0_RC1_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC1_SHIFT 4 -#define DDR_PHY_RDIMMCR0_RC1_MASK 0x000000F0U +#define DDR_PHY_RDIMMCR0_RC1_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC1_SHIFT 4 +#define DDR_PHY_RDIMMCR0_RC1_MASK 0x000000F0U -/*DDR4/DDR3 Control Word 0 (Global Features Control Word)*/ +/* +* DDR4/DDR3 Control Word 0 (Global Features Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC0_DEFVAL #undef DDR_PHY_RDIMMCR0_RC0_SHIFT #undef DDR_PHY_RDIMMCR0_RC0_MASK -#define DDR_PHY_RDIMMCR0_RC0_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC0_SHIFT 0 -#define DDR_PHY_RDIMMCR0_RC0_MASK 0x0000000FU +#define DDR_PHY_RDIMMCR0_RC0_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC0_SHIFT 0 +#define DDR_PHY_RDIMMCR0_RC0_MASK 0x0000000FU -/*Control Word 15*/ +/* +* Control Word 15 +*/ #undef DDR_PHY_RDIMMCR1_RC15_DEFVAL #undef DDR_PHY_RDIMMCR1_RC15_SHIFT #undef DDR_PHY_RDIMMCR1_RC15_MASK -#define DDR_PHY_RDIMMCR1_RC15_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC15_SHIFT 28 -#define DDR_PHY_RDIMMCR1_RC15_MASK 0xF0000000U +#define DDR_PHY_RDIMMCR1_RC15_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC15_SHIFT 28 +#define DDR_PHY_RDIMMCR1_RC15_MASK 0xF0000000U -/*DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC14_DEFVAL #undef DDR_PHY_RDIMMCR1_RC14_SHIFT #undef DDR_PHY_RDIMMCR1_RC14_MASK -#define DDR_PHY_RDIMMCR1_RC14_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC14_SHIFT 24 -#define DDR_PHY_RDIMMCR1_RC14_MASK 0x0F000000U +#define DDR_PHY_RDIMMCR1_RC14_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC14_SHIFT 24 +#define DDR_PHY_RDIMMCR1_RC14_MASK 0x0F000000U -/*DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC13_DEFVAL #undef DDR_PHY_RDIMMCR1_RC13_SHIFT #undef DDR_PHY_RDIMMCR1_RC13_MASK -#define DDR_PHY_RDIMMCR1_RC13_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC13_SHIFT 20 -#define DDR_PHY_RDIMMCR1_RC13_MASK 0x00F00000U +#define DDR_PHY_RDIMMCR1_RC13_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC13_SHIFT 20 +#define DDR_PHY_RDIMMCR1_RC13_MASK 0x00F00000U -/*DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC12_DEFVAL #undef DDR_PHY_RDIMMCR1_RC12_SHIFT #undef DDR_PHY_RDIMMCR1_RC12_MASK -#define DDR_PHY_RDIMMCR1_RC12_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC12_SHIFT 16 -#define DDR_PHY_RDIMMCR1_RC12_MASK 0x000F0000U +#define DDR_PHY_RDIMMCR1_RC12_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC12_SHIFT 16 +#define DDR_PHY_RDIMMCR1_RC12_MASK 0x000F0000U -/*DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Word) / DDR3 Control Word 11 (Operation Voltage VDD Con - rol Word)*/ +/* +* DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Wo + * rd) / DDR3 Control Word 11 (Operation Voltage VDD Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC11_DEFVAL #undef DDR_PHY_RDIMMCR1_RC11_SHIFT #undef DDR_PHY_RDIMMCR1_RC11_MASK -#define DDR_PHY_RDIMMCR1_RC11_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC11_SHIFT 12 -#define DDR_PHY_RDIMMCR1_RC11_MASK 0x0000F000U +#define DDR_PHY_RDIMMCR1_RC11_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC11_SHIFT 12 +#define DDR_PHY_RDIMMCR1_RC11_MASK 0x0000F000U -/*DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word)*/ +/* +* DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC10_DEFVAL #undef DDR_PHY_RDIMMCR1_RC10_SHIFT #undef DDR_PHY_RDIMMCR1_RC10_MASK -#define DDR_PHY_RDIMMCR1_RC10_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC10_SHIFT 8 -#define DDR_PHY_RDIMMCR1_RC10_MASK 0x00000F00U +#define DDR_PHY_RDIMMCR1_RC10_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC10_SHIFT 8 +#define DDR_PHY_RDIMMCR1_RC10_MASK 0x00000F00U -/*DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word)*/ +/* +* DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC9_DEFVAL #undef DDR_PHY_RDIMMCR1_RC9_SHIFT #undef DDR_PHY_RDIMMCR1_RC9_MASK -#define DDR_PHY_RDIMMCR1_RC9_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC9_SHIFT 4 -#define DDR_PHY_RDIMMCR1_RC9_MASK 0x000000F0U +#define DDR_PHY_RDIMMCR1_RC9_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC9_SHIFT 4 +#define DDR_PHY_RDIMMCR1_RC9_MASK 0x000000F0U -/*DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Control Word 8 (Additional Input Bus Termination Setting - Control Word)*/ +/* +* DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Con + * trol Word 8 (Additional Input Bus Termination Setting Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC8_DEFVAL #undef DDR_PHY_RDIMMCR1_RC8_SHIFT #undef DDR_PHY_RDIMMCR1_RC8_MASK -#define DDR_PHY_RDIMMCR1_RC8_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC8_SHIFT 0 -#define DDR_PHY_RDIMMCR1_RC8_MASK 0x0000000FU +#define DDR_PHY_RDIMMCR1_RC8_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC8_SHIFT 0 +#define DDR_PHY_RDIMMCR1_RC8_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR0_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR0_RESERVED_31_8_SHIFT #undef DDR_PHY_MR0_RESERVED_31_8_MASK -#define DDR_PHY_MR0_RESERVED_31_8_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR0_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR0_RESERVED_31_8_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR0_RESERVED_31_8_MASK 0xFFFFFF00U -/*CA Terminating Rank*/ +/* +* CA Terminating Rank +*/ #undef DDR_PHY_MR0_CATR_DEFVAL #undef DDR_PHY_MR0_CATR_SHIFT #undef DDR_PHY_MR0_CATR_MASK -#define DDR_PHY_MR0_CATR_DEFVAL 0x00000052 -#define DDR_PHY_MR0_CATR_SHIFT 7 -#define DDR_PHY_MR0_CATR_MASK 0x00000080U +#define DDR_PHY_MR0_CATR_DEFVAL 0x00000052 +#define DDR_PHY_MR0_CATR_SHIFT 7 +#define DDR_PHY_MR0_CATR_MASK 0x00000080U -/*Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. +*/ #undef DDR_PHY_MR0_RSVD_6_5_DEFVAL #undef DDR_PHY_MR0_RSVD_6_5_SHIFT #undef DDR_PHY_MR0_RSVD_6_5_MASK -#define DDR_PHY_MR0_RSVD_6_5_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RSVD_6_5_SHIFT 5 -#define DDR_PHY_MR0_RSVD_6_5_MASK 0x00000060U +#define DDR_PHY_MR0_RSVD_6_5_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RSVD_6_5_SHIFT 5 +#define DDR_PHY_MR0_RSVD_6_5_MASK 0x00000060U -/*Built-in Self-Test for RZQ*/ +/* +* Built-in Self-Test for RZQ +*/ #undef DDR_PHY_MR0_RZQI_DEFVAL #undef DDR_PHY_MR0_RZQI_SHIFT #undef DDR_PHY_MR0_RZQI_MASK -#define DDR_PHY_MR0_RZQI_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RZQI_SHIFT 3 -#define DDR_PHY_MR0_RZQI_MASK 0x00000018U +#define DDR_PHY_MR0_RZQI_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RZQI_SHIFT 3 +#define DDR_PHY_MR0_RZQI_MASK 0x00000018U -/*Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. +*/ #undef DDR_PHY_MR0_RSVD_2_0_DEFVAL #undef DDR_PHY_MR0_RSVD_2_0_SHIFT #undef DDR_PHY_MR0_RSVD_2_0_MASK -#define DDR_PHY_MR0_RSVD_2_0_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RSVD_2_0_SHIFT 0 -#define DDR_PHY_MR0_RSVD_2_0_MASK 0x00000007U +#define DDR_PHY_MR0_RSVD_2_0_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RSVD_2_0_SHIFT 0 +#define DDR_PHY_MR0_RSVD_2_0_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR1_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR1_RESERVED_31_8_SHIFT #undef DDR_PHY_MR1_RESERVED_31_8_MASK -#define DDR_PHY_MR1_RESERVED_31_8_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR1_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR1_RESERVED_31_8_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR1_RESERVED_31_8_MASK 0xFFFFFF00U -/*Read Postamble Length*/ +/* +* Read Postamble Length +*/ #undef DDR_PHY_MR1_RDPST_DEFVAL #undef DDR_PHY_MR1_RDPST_SHIFT #undef DDR_PHY_MR1_RDPST_MASK -#define DDR_PHY_MR1_RDPST_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RDPST_SHIFT 7 -#define DDR_PHY_MR1_RDPST_MASK 0x00000080U +#define DDR_PHY_MR1_RDPST_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RDPST_SHIFT 7 +#define DDR_PHY_MR1_RDPST_MASK 0x00000080U -/*Write-recovery for auto-precharge command*/ +/* +* Write-recovery for auto-precharge command +*/ #undef DDR_PHY_MR1_NWR_DEFVAL #undef DDR_PHY_MR1_NWR_SHIFT #undef DDR_PHY_MR1_NWR_MASK -#define DDR_PHY_MR1_NWR_DEFVAL 0x00000004 -#define DDR_PHY_MR1_NWR_SHIFT 4 -#define DDR_PHY_MR1_NWR_MASK 0x00000070U +#define DDR_PHY_MR1_NWR_DEFVAL 0x00000004 +#define DDR_PHY_MR1_NWR_SHIFT 4 +#define DDR_PHY_MR1_NWR_MASK 0x00000070U -/*Read Preamble Length*/ +/* +* Read Preamble Length +*/ #undef DDR_PHY_MR1_RDPRE_DEFVAL #undef DDR_PHY_MR1_RDPRE_SHIFT #undef DDR_PHY_MR1_RDPRE_MASK -#define DDR_PHY_MR1_RDPRE_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RDPRE_SHIFT 3 -#define DDR_PHY_MR1_RDPRE_MASK 0x00000008U +#define DDR_PHY_MR1_RDPRE_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RDPRE_SHIFT 3 +#define DDR_PHY_MR1_RDPRE_MASK 0x00000008U -/*Write Preamble Length*/ +/* +* Write Preamble Length +*/ #undef DDR_PHY_MR1_WRPRE_DEFVAL #undef DDR_PHY_MR1_WRPRE_SHIFT #undef DDR_PHY_MR1_WRPRE_MASK -#define DDR_PHY_MR1_WRPRE_DEFVAL 0x00000004 -#define DDR_PHY_MR1_WRPRE_SHIFT 2 -#define DDR_PHY_MR1_WRPRE_MASK 0x00000004U +#define DDR_PHY_MR1_WRPRE_DEFVAL 0x00000004 +#define DDR_PHY_MR1_WRPRE_SHIFT 2 +#define DDR_PHY_MR1_WRPRE_MASK 0x00000004U -/*Burst Length*/ +/* +* Burst Length +*/ #undef DDR_PHY_MR1_BL_DEFVAL #undef DDR_PHY_MR1_BL_SHIFT #undef DDR_PHY_MR1_BL_MASK -#define DDR_PHY_MR1_BL_DEFVAL 0x00000004 -#define DDR_PHY_MR1_BL_SHIFT 0 -#define DDR_PHY_MR1_BL_MASK 0x00000003U +#define DDR_PHY_MR1_BL_DEFVAL 0x00000004 +#define DDR_PHY_MR1_BL_SHIFT 0 +#define DDR_PHY_MR1_BL_MASK 0x00000003U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR2_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR2_RESERVED_31_8_SHIFT #undef DDR_PHY_MR2_RESERVED_31_8_MASK -#define DDR_PHY_MR2_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR2_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR2_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR2_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR2_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR2_RESERVED_31_8_MASK 0xFFFFFF00U -/*Write Leveling*/ +/* +* Write Leveling +*/ #undef DDR_PHY_MR2_WRL_DEFVAL #undef DDR_PHY_MR2_WRL_SHIFT #undef DDR_PHY_MR2_WRL_MASK -#define DDR_PHY_MR2_WRL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WRL_SHIFT 7 -#define DDR_PHY_MR2_WRL_MASK 0x00000080U +#define DDR_PHY_MR2_WRL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WRL_SHIFT 7 +#define DDR_PHY_MR2_WRL_MASK 0x00000080U -/*Write Latency Set*/ +/* +* Write Latency Set +*/ #undef DDR_PHY_MR2_WLS_DEFVAL #undef DDR_PHY_MR2_WLS_SHIFT #undef DDR_PHY_MR2_WLS_MASK -#define DDR_PHY_MR2_WLS_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WLS_SHIFT 6 -#define DDR_PHY_MR2_WLS_MASK 0x00000040U +#define DDR_PHY_MR2_WLS_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WLS_SHIFT 6 +#define DDR_PHY_MR2_WLS_MASK 0x00000040U -/*Write Latency*/ +/* +* Write Latency +*/ #undef DDR_PHY_MR2_WL_DEFVAL #undef DDR_PHY_MR2_WL_SHIFT #undef DDR_PHY_MR2_WL_MASK -#define DDR_PHY_MR2_WL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WL_SHIFT 3 -#define DDR_PHY_MR2_WL_MASK 0x00000038U +#define DDR_PHY_MR2_WL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WL_SHIFT 3 +#define DDR_PHY_MR2_WL_MASK 0x00000038U -/*Read Latency*/ +/* +* Read Latency +*/ #undef DDR_PHY_MR2_RL_DEFVAL #undef DDR_PHY_MR2_RL_SHIFT #undef DDR_PHY_MR2_RL_MASK -#define DDR_PHY_MR2_RL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_RL_SHIFT 0 -#define DDR_PHY_MR2_RL_MASK 0x00000007U +#define DDR_PHY_MR2_RL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_RL_SHIFT 0 +#define DDR_PHY_MR2_RL_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR3_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR3_RESERVED_31_8_SHIFT #undef DDR_PHY_MR3_RESERVED_31_8_MASK -#define DDR_PHY_MR3_RESERVED_31_8_DEFVAL 0x00000031 -#define DDR_PHY_MR3_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR3_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR3_RESERVED_31_8_DEFVAL 0x00000031 +#define DDR_PHY_MR3_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR3_RESERVED_31_8_MASK 0xFFFFFF00U -/*DBI-Write Enable*/ +/* +* DBI-Write Enable +*/ #undef DDR_PHY_MR3_DBIWR_DEFVAL #undef DDR_PHY_MR3_DBIWR_SHIFT #undef DDR_PHY_MR3_DBIWR_MASK -#define DDR_PHY_MR3_DBIWR_DEFVAL 0x00000031 -#define DDR_PHY_MR3_DBIWR_SHIFT 7 -#define DDR_PHY_MR3_DBIWR_MASK 0x00000080U +#define DDR_PHY_MR3_DBIWR_DEFVAL 0x00000031 +#define DDR_PHY_MR3_DBIWR_SHIFT 7 +#define DDR_PHY_MR3_DBIWR_MASK 0x00000080U -/*DBI-Read Enable*/ +/* +* DBI-Read Enable +*/ #undef DDR_PHY_MR3_DBIRD_DEFVAL #undef DDR_PHY_MR3_DBIRD_SHIFT #undef DDR_PHY_MR3_DBIRD_MASK -#define DDR_PHY_MR3_DBIRD_DEFVAL 0x00000031 -#define DDR_PHY_MR3_DBIRD_SHIFT 6 -#define DDR_PHY_MR3_DBIRD_MASK 0x00000040U +#define DDR_PHY_MR3_DBIRD_DEFVAL 0x00000031 +#define DDR_PHY_MR3_DBIRD_SHIFT 6 +#define DDR_PHY_MR3_DBIRD_MASK 0x00000040U -/*Pull-down Drive Strength*/ +/* +* Pull-down Drive Strength +*/ #undef DDR_PHY_MR3_PDDS_DEFVAL #undef DDR_PHY_MR3_PDDS_SHIFT #undef DDR_PHY_MR3_PDDS_MASK -#define DDR_PHY_MR3_PDDS_DEFVAL 0x00000031 -#define DDR_PHY_MR3_PDDS_SHIFT 3 -#define DDR_PHY_MR3_PDDS_MASK 0x00000038U +#define DDR_PHY_MR3_PDDS_DEFVAL 0x00000031 +#define DDR_PHY_MR3_PDDS_SHIFT 3 +#define DDR_PHY_MR3_PDDS_MASK 0x00000038U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR3_RSVD_DEFVAL #undef DDR_PHY_MR3_RSVD_SHIFT #undef DDR_PHY_MR3_RSVD_MASK -#define DDR_PHY_MR3_RSVD_DEFVAL 0x00000031 -#define DDR_PHY_MR3_RSVD_SHIFT 2 -#define DDR_PHY_MR3_RSVD_MASK 0x00000004U +#define DDR_PHY_MR3_RSVD_DEFVAL 0x00000031 +#define DDR_PHY_MR3_RSVD_SHIFT 2 +#define DDR_PHY_MR3_RSVD_MASK 0x00000004U -/*Write Postamble Length*/ +/* +* Write Postamble Length +*/ #undef DDR_PHY_MR3_WRPST_DEFVAL #undef DDR_PHY_MR3_WRPST_SHIFT #undef DDR_PHY_MR3_WRPST_MASK -#define DDR_PHY_MR3_WRPST_DEFVAL 0x00000031 -#define DDR_PHY_MR3_WRPST_SHIFT 1 -#define DDR_PHY_MR3_WRPST_MASK 0x00000002U +#define DDR_PHY_MR3_WRPST_DEFVAL 0x00000031 +#define DDR_PHY_MR3_WRPST_SHIFT 1 +#define DDR_PHY_MR3_WRPST_MASK 0x00000002U -/*Pull-up Calibration Point*/ +/* +* Pull-up Calibration Point +*/ #undef DDR_PHY_MR3_PUCAL_DEFVAL #undef DDR_PHY_MR3_PUCAL_SHIFT #undef DDR_PHY_MR3_PUCAL_MASK -#define DDR_PHY_MR3_PUCAL_DEFVAL 0x00000031 -#define DDR_PHY_MR3_PUCAL_SHIFT 0 -#define DDR_PHY_MR3_PUCAL_MASK 0x00000001U +#define DDR_PHY_MR3_PUCAL_DEFVAL 0x00000031 +#define DDR_PHY_MR3_PUCAL_SHIFT 0 +#define DDR_PHY_MR3_PUCAL_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR4_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR4_RESERVED_31_16_SHIFT #undef DDR_PHY_MR4_RESERVED_31_16_MASK -#define DDR_PHY_MR4_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR4_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR4_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR4_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR4_RSVD_15_13_DEFVAL #undef DDR_PHY_MR4_RSVD_15_13_SHIFT #undef DDR_PHY_MR4_RSVD_15_13_MASK -#define DDR_PHY_MR4_RSVD_15_13_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD_15_13_SHIFT 13 -#define DDR_PHY_MR4_RSVD_15_13_MASK 0x0000E000U +#define DDR_PHY_MR4_RSVD_15_13_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD_15_13_SHIFT 13 +#define DDR_PHY_MR4_RSVD_15_13_MASK 0x0000E000U -/*Write Preamble*/ +/* +* Write Preamble +*/ #undef DDR_PHY_MR4_WRP_DEFVAL #undef DDR_PHY_MR4_WRP_SHIFT #undef DDR_PHY_MR4_WRP_MASK -#define DDR_PHY_MR4_WRP_DEFVAL 0x00000000 -#define DDR_PHY_MR4_WRP_SHIFT 12 -#define DDR_PHY_MR4_WRP_MASK 0x00001000U +#define DDR_PHY_MR4_WRP_DEFVAL 0x00000000 +#define DDR_PHY_MR4_WRP_SHIFT 12 +#define DDR_PHY_MR4_WRP_MASK 0x00001000U -/*Read Preamble*/ +/* +* Read Preamble +*/ #undef DDR_PHY_MR4_RDP_DEFVAL #undef DDR_PHY_MR4_RDP_SHIFT #undef DDR_PHY_MR4_RDP_MASK -#define DDR_PHY_MR4_RDP_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RDP_SHIFT 11 -#define DDR_PHY_MR4_RDP_MASK 0x00000800U +#define DDR_PHY_MR4_RDP_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RDP_SHIFT 11 +#define DDR_PHY_MR4_RDP_MASK 0x00000800U -/*Read Preamble Training Mode*/ +/* +* Read Preamble Training Mode +*/ #undef DDR_PHY_MR4_RPTM_DEFVAL #undef DDR_PHY_MR4_RPTM_SHIFT #undef DDR_PHY_MR4_RPTM_MASK -#define DDR_PHY_MR4_RPTM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RPTM_SHIFT 10 -#define DDR_PHY_MR4_RPTM_MASK 0x00000400U +#define DDR_PHY_MR4_RPTM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RPTM_SHIFT 10 +#define DDR_PHY_MR4_RPTM_MASK 0x00000400U -/*Self Refresh Abort*/ +/* +* Self Refresh Abort +*/ #undef DDR_PHY_MR4_SRA_DEFVAL #undef DDR_PHY_MR4_SRA_SHIFT #undef DDR_PHY_MR4_SRA_MASK -#define DDR_PHY_MR4_SRA_DEFVAL 0x00000000 -#define DDR_PHY_MR4_SRA_SHIFT 9 -#define DDR_PHY_MR4_SRA_MASK 0x00000200U +#define DDR_PHY_MR4_SRA_DEFVAL 0x00000000 +#define DDR_PHY_MR4_SRA_SHIFT 9 +#define DDR_PHY_MR4_SRA_MASK 0x00000200U -/*CS to Command Latency Mode*/ +/* +* CS to Command Latency Mode +*/ #undef DDR_PHY_MR4_CS2CMDL_DEFVAL #undef DDR_PHY_MR4_CS2CMDL_SHIFT #undef DDR_PHY_MR4_CS2CMDL_MASK -#define DDR_PHY_MR4_CS2CMDL_DEFVAL 0x00000000 -#define DDR_PHY_MR4_CS2CMDL_SHIFT 6 -#define DDR_PHY_MR4_CS2CMDL_MASK 0x000001C0U +#define DDR_PHY_MR4_CS2CMDL_DEFVAL 0x00000000 +#define DDR_PHY_MR4_CS2CMDL_SHIFT 6 +#define DDR_PHY_MR4_CS2CMDL_MASK 0x000001C0U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR4_RSVD1_DEFVAL #undef DDR_PHY_MR4_RSVD1_SHIFT #undef DDR_PHY_MR4_RSVD1_MASK -#define DDR_PHY_MR4_RSVD1_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD1_SHIFT 5 -#define DDR_PHY_MR4_RSVD1_MASK 0x00000020U +#define DDR_PHY_MR4_RSVD1_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD1_SHIFT 5 +#define DDR_PHY_MR4_RSVD1_MASK 0x00000020U -/*Internal VREF Monitor*/ +/* +* Internal VREF Monitor +*/ #undef DDR_PHY_MR4_IVM_DEFVAL #undef DDR_PHY_MR4_IVM_SHIFT #undef DDR_PHY_MR4_IVM_MASK -#define DDR_PHY_MR4_IVM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_IVM_SHIFT 4 -#define DDR_PHY_MR4_IVM_MASK 0x00000010U +#define DDR_PHY_MR4_IVM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_IVM_SHIFT 4 +#define DDR_PHY_MR4_IVM_MASK 0x00000010U -/*Temperature Controlled Refresh Mode*/ +/* +* Temperature Controlled Refresh Mode +*/ #undef DDR_PHY_MR4_TCRM_DEFVAL #undef DDR_PHY_MR4_TCRM_SHIFT #undef DDR_PHY_MR4_TCRM_MASK -#define DDR_PHY_MR4_TCRM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_TCRM_SHIFT 3 -#define DDR_PHY_MR4_TCRM_MASK 0x00000008U +#define DDR_PHY_MR4_TCRM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_TCRM_SHIFT 3 +#define DDR_PHY_MR4_TCRM_MASK 0x00000008U -/*Temperature Controlled Refresh Range*/ +/* +* Temperature Controlled Refresh Range +*/ #undef DDR_PHY_MR4_TCRR_DEFVAL #undef DDR_PHY_MR4_TCRR_SHIFT #undef DDR_PHY_MR4_TCRR_MASK -#define DDR_PHY_MR4_TCRR_DEFVAL 0x00000000 -#define DDR_PHY_MR4_TCRR_SHIFT 2 -#define DDR_PHY_MR4_TCRR_MASK 0x00000004U +#define DDR_PHY_MR4_TCRR_DEFVAL 0x00000000 +#define DDR_PHY_MR4_TCRR_SHIFT 2 +#define DDR_PHY_MR4_TCRR_MASK 0x00000004U -/*Maximum Power Down Mode*/ +/* +* Maximum Power Down Mode +*/ #undef DDR_PHY_MR4_MPDM_DEFVAL #undef DDR_PHY_MR4_MPDM_SHIFT #undef DDR_PHY_MR4_MPDM_MASK -#define DDR_PHY_MR4_MPDM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_MPDM_SHIFT 1 -#define DDR_PHY_MR4_MPDM_MASK 0x00000002U +#define DDR_PHY_MR4_MPDM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_MPDM_SHIFT 1 +#define DDR_PHY_MR4_MPDM_MASK 0x00000002U -/*This is a JEDEC reserved bit and is recommended by JEDEC to be programmed to 0x0.*/ +/* +* This is a JEDEC reserved bit and is recommended by JEDEC to be programme + * d to 0x0. +*/ #undef DDR_PHY_MR4_RSVD_0_DEFVAL #undef DDR_PHY_MR4_RSVD_0_SHIFT #undef DDR_PHY_MR4_RSVD_0_MASK -#define DDR_PHY_MR4_RSVD_0_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD_0_SHIFT 0 -#define DDR_PHY_MR4_RSVD_0_MASK 0x00000001U +#define DDR_PHY_MR4_RSVD_0_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD_0_SHIFT 0 +#define DDR_PHY_MR4_RSVD_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR5_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR5_RESERVED_31_16_SHIFT #undef DDR_PHY_MR5_RESERVED_31_16_MASK -#define DDR_PHY_MR5_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR5_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR5_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR5_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR5_RSVD_DEFVAL #undef DDR_PHY_MR5_RSVD_SHIFT #undef DDR_PHY_MR5_RSVD_MASK -#define DDR_PHY_MR5_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RSVD_SHIFT 13 -#define DDR_PHY_MR5_RSVD_MASK 0x0000E000U +#define DDR_PHY_MR5_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RSVD_SHIFT 13 +#define DDR_PHY_MR5_RSVD_MASK 0x0000E000U -/*Read DBI*/ +/* +* Read DBI +*/ #undef DDR_PHY_MR5_RDBI_DEFVAL #undef DDR_PHY_MR5_RDBI_SHIFT #undef DDR_PHY_MR5_RDBI_MASK -#define DDR_PHY_MR5_RDBI_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RDBI_SHIFT 12 -#define DDR_PHY_MR5_RDBI_MASK 0x00001000U +#define DDR_PHY_MR5_RDBI_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RDBI_SHIFT 12 +#define DDR_PHY_MR5_RDBI_MASK 0x00001000U -/*Write DBI*/ +/* +* Write DBI +*/ #undef DDR_PHY_MR5_WDBI_DEFVAL #undef DDR_PHY_MR5_WDBI_SHIFT #undef DDR_PHY_MR5_WDBI_MASK -#define DDR_PHY_MR5_WDBI_DEFVAL 0x00000000 -#define DDR_PHY_MR5_WDBI_SHIFT 11 -#define DDR_PHY_MR5_WDBI_MASK 0x00000800U +#define DDR_PHY_MR5_WDBI_DEFVAL 0x00000000 +#define DDR_PHY_MR5_WDBI_SHIFT 11 +#define DDR_PHY_MR5_WDBI_MASK 0x00000800U -/*Data Mask*/ +/* +* Data Mask +*/ #undef DDR_PHY_MR5_DM_DEFVAL #undef DDR_PHY_MR5_DM_SHIFT #undef DDR_PHY_MR5_DM_MASK -#define DDR_PHY_MR5_DM_DEFVAL 0x00000000 -#define DDR_PHY_MR5_DM_SHIFT 10 -#define DDR_PHY_MR5_DM_MASK 0x00000400U +#define DDR_PHY_MR5_DM_DEFVAL 0x00000000 +#define DDR_PHY_MR5_DM_SHIFT 10 +#define DDR_PHY_MR5_DM_MASK 0x00000400U -/*CA Parity Persistent Error*/ +/* +* CA Parity Persistent Error +*/ #undef DDR_PHY_MR5_CAPPE_DEFVAL #undef DDR_PHY_MR5_CAPPE_SHIFT #undef DDR_PHY_MR5_CAPPE_MASK -#define DDR_PHY_MR5_CAPPE_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPPE_SHIFT 9 -#define DDR_PHY_MR5_CAPPE_MASK 0x00000200U +#define DDR_PHY_MR5_CAPPE_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPPE_SHIFT 9 +#define DDR_PHY_MR5_CAPPE_MASK 0x00000200U -/*RTT_PARK*/ +/* +* RTT_PARK +*/ #undef DDR_PHY_MR5_RTTPARK_DEFVAL #undef DDR_PHY_MR5_RTTPARK_SHIFT #undef DDR_PHY_MR5_RTTPARK_MASK -#define DDR_PHY_MR5_RTTPARK_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RTTPARK_SHIFT 6 -#define DDR_PHY_MR5_RTTPARK_MASK 0x000001C0U +#define DDR_PHY_MR5_RTTPARK_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RTTPARK_SHIFT 6 +#define DDR_PHY_MR5_RTTPARK_MASK 0x000001C0U -/*ODT Input Buffer during Power Down mode*/ +/* +* ODT Input Buffer during Power Down mode +*/ #undef DDR_PHY_MR5_ODTIBPD_DEFVAL #undef DDR_PHY_MR5_ODTIBPD_SHIFT #undef DDR_PHY_MR5_ODTIBPD_MASK -#define DDR_PHY_MR5_ODTIBPD_DEFVAL 0x00000000 -#define DDR_PHY_MR5_ODTIBPD_SHIFT 5 -#define DDR_PHY_MR5_ODTIBPD_MASK 0x00000020U +#define DDR_PHY_MR5_ODTIBPD_DEFVAL 0x00000000 +#define DDR_PHY_MR5_ODTIBPD_SHIFT 5 +#define DDR_PHY_MR5_ODTIBPD_MASK 0x00000020U -/*C/A Parity Error Status*/ +/* +* C/A Parity Error Status +*/ #undef DDR_PHY_MR5_CAPES_DEFVAL #undef DDR_PHY_MR5_CAPES_SHIFT #undef DDR_PHY_MR5_CAPES_MASK -#define DDR_PHY_MR5_CAPES_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPES_SHIFT 4 -#define DDR_PHY_MR5_CAPES_MASK 0x00000010U +#define DDR_PHY_MR5_CAPES_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPES_SHIFT 4 +#define DDR_PHY_MR5_CAPES_MASK 0x00000010U -/*CRC Error Clear*/ +/* +* CRC Error Clear +*/ #undef DDR_PHY_MR5_CRCEC_DEFVAL #undef DDR_PHY_MR5_CRCEC_SHIFT #undef DDR_PHY_MR5_CRCEC_MASK -#define DDR_PHY_MR5_CRCEC_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CRCEC_SHIFT 3 -#define DDR_PHY_MR5_CRCEC_MASK 0x00000008U +#define DDR_PHY_MR5_CRCEC_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CRCEC_SHIFT 3 +#define DDR_PHY_MR5_CRCEC_MASK 0x00000008U -/*C/A Parity Latency Mode*/ +/* +* C/A Parity Latency Mode +*/ #undef DDR_PHY_MR5_CAPM_DEFVAL #undef DDR_PHY_MR5_CAPM_SHIFT #undef DDR_PHY_MR5_CAPM_MASK -#define DDR_PHY_MR5_CAPM_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPM_SHIFT 0 -#define DDR_PHY_MR5_CAPM_MASK 0x00000007U +#define DDR_PHY_MR5_CAPM_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPM_SHIFT 0 +#define DDR_PHY_MR5_CAPM_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR6_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR6_RESERVED_31_16_SHIFT #undef DDR_PHY_MR6_RESERVED_31_16_MASK -#define DDR_PHY_MR6_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR6_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR6_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR6_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR6_RSVD_15_13_DEFVAL #undef DDR_PHY_MR6_RSVD_15_13_SHIFT #undef DDR_PHY_MR6_RSVD_15_13_MASK -#define DDR_PHY_MR6_RSVD_15_13_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RSVD_15_13_SHIFT 13 -#define DDR_PHY_MR6_RSVD_15_13_MASK 0x0000E000U +#define DDR_PHY_MR6_RSVD_15_13_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RSVD_15_13_SHIFT 13 +#define DDR_PHY_MR6_RSVD_15_13_MASK 0x0000E000U -/*CAS_n to CAS_n command delay for same bank group (tCCD_L)*/ +/* +* CAS_n to CAS_n command delay for same bank group (tCCD_L) +*/ #undef DDR_PHY_MR6_TCCDL_DEFVAL #undef DDR_PHY_MR6_TCCDL_SHIFT #undef DDR_PHY_MR6_TCCDL_MASK -#define DDR_PHY_MR6_TCCDL_DEFVAL 0x00000000 -#define DDR_PHY_MR6_TCCDL_SHIFT 10 -#define DDR_PHY_MR6_TCCDL_MASK 0x00001C00U +#define DDR_PHY_MR6_TCCDL_DEFVAL 0x00000000 +#define DDR_PHY_MR6_TCCDL_SHIFT 10 +#define DDR_PHY_MR6_TCCDL_MASK 0x00001C00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR6_RSVD_9_8_DEFVAL #undef DDR_PHY_MR6_RSVD_9_8_SHIFT #undef DDR_PHY_MR6_RSVD_9_8_MASK -#define DDR_PHY_MR6_RSVD_9_8_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RSVD_9_8_SHIFT 8 -#define DDR_PHY_MR6_RSVD_9_8_MASK 0x00000300U +#define DDR_PHY_MR6_RSVD_9_8_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RSVD_9_8_SHIFT 8 +#define DDR_PHY_MR6_RSVD_9_8_MASK 0x00000300U -/*VrefDQ Training Enable*/ +/* +* VrefDQ Training Enable +*/ #undef DDR_PHY_MR6_VDDQTEN_DEFVAL #undef DDR_PHY_MR6_VDDQTEN_SHIFT #undef DDR_PHY_MR6_VDDQTEN_MASK -#define DDR_PHY_MR6_VDDQTEN_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDDQTEN_SHIFT 7 -#define DDR_PHY_MR6_VDDQTEN_MASK 0x00000080U +#define DDR_PHY_MR6_VDDQTEN_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDDQTEN_SHIFT 7 +#define DDR_PHY_MR6_VDDQTEN_MASK 0x00000080U -/*VrefDQ Training Range*/ +/* +* VrefDQ Training Range +*/ #undef DDR_PHY_MR6_VDQTRG_DEFVAL #undef DDR_PHY_MR6_VDQTRG_SHIFT #undef DDR_PHY_MR6_VDQTRG_MASK -#define DDR_PHY_MR6_VDQTRG_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDQTRG_SHIFT 6 -#define DDR_PHY_MR6_VDQTRG_MASK 0x00000040U +#define DDR_PHY_MR6_VDQTRG_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDQTRG_SHIFT 6 +#define DDR_PHY_MR6_VDQTRG_MASK 0x00000040U -/*VrefDQ Training Values*/ +/* +* VrefDQ Training Values +*/ #undef DDR_PHY_MR6_VDQTVAL_DEFVAL #undef DDR_PHY_MR6_VDQTVAL_SHIFT #undef DDR_PHY_MR6_VDQTVAL_MASK -#define DDR_PHY_MR6_VDQTVAL_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDQTVAL_SHIFT 0 -#define DDR_PHY_MR6_VDQTVAL_MASK 0x0000003FU +#define DDR_PHY_MR6_VDQTVAL_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDQTVAL_SHIFT 0 +#define DDR_PHY_MR6_VDQTVAL_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR11_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR11_RESERVED_31_8_SHIFT #undef DDR_PHY_MR11_RESERVED_31_8_MASK -#define DDR_PHY_MR11_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR11_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR11_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR11_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR11_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR11_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR11_RSVD_DEFVAL #undef DDR_PHY_MR11_RSVD_SHIFT #undef DDR_PHY_MR11_RSVD_MASK -#define DDR_PHY_MR11_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR11_RSVD_SHIFT 3 -#define DDR_PHY_MR11_RSVD_MASK 0x000000F8U +#define DDR_PHY_MR11_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR11_RSVD_SHIFT 3 +#define DDR_PHY_MR11_RSVD_MASK 0x000000F8U -/*Power Down Control*/ +/* +* Power Down Control +*/ #undef DDR_PHY_MR11_PDCTL_DEFVAL #undef DDR_PHY_MR11_PDCTL_SHIFT #undef DDR_PHY_MR11_PDCTL_MASK -#define DDR_PHY_MR11_PDCTL_DEFVAL 0x00000000 -#define DDR_PHY_MR11_PDCTL_SHIFT 2 -#define DDR_PHY_MR11_PDCTL_MASK 0x00000004U +#define DDR_PHY_MR11_PDCTL_DEFVAL 0x00000000 +#define DDR_PHY_MR11_PDCTL_SHIFT 2 +#define DDR_PHY_MR11_PDCTL_MASK 0x00000004U -/*DQ Bus Receiver On-Die-Termination*/ +/* +* DQ Bus Receiver On-Die-Termination +*/ #undef DDR_PHY_MR11_DQODT_DEFVAL #undef DDR_PHY_MR11_DQODT_SHIFT #undef DDR_PHY_MR11_DQODT_MASK -#define DDR_PHY_MR11_DQODT_DEFVAL 0x00000000 -#define DDR_PHY_MR11_DQODT_SHIFT 0 -#define DDR_PHY_MR11_DQODT_MASK 0x00000003U +#define DDR_PHY_MR11_DQODT_DEFVAL 0x00000000 +#define DDR_PHY_MR11_DQODT_SHIFT 0 +#define DDR_PHY_MR11_DQODT_MASK 0x00000003U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR12_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR12_RESERVED_31_8_SHIFT #undef DDR_PHY_MR12_RESERVED_31_8_MASK -#define DDR_PHY_MR12_RESERVED_31_8_DEFVAL 0x0000004D -#define DDR_PHY_MR12_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR12_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR12_RESERVED_31_8_DEFVAL 0x0000004D +#define DDR_PHY_MR12_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR12_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR12_RSVD_DEFVAL #undef DDR_PHY_MR12_RSVD_SHIFT #undef DDR_PHY_MR12_RSVD_MASK -#define DDR_PHY_MR12_RSVD_DEFVAL 0x0000004D -#define DDR_PHY_MR12_RSVD_SHIFT 7 -#define DDR_PHY_MR12_RSVD_MASK 0x00000080U +#define DDR_PHY_MR12_RSVD_DEFVAL 0x0000004D +#define DDR_PHY_MR12_RSVD_SHIFT 7 +#define DDR_PHY_MR12_RSVD_MASK 0x00000080U -/*VREF_CA Range Select.*/ +/* +* VREF_CA Range Select. +*/ #undef DDR_PHY_MR12_VR_CA_DEFVAL #undef DDR_PHY_MR12_VR_CA_SHIFT #undef DDR_PHY_MR12_VR_CA_MASK -#define DDR_PHY_MR12_VR_CA_DEFVAL 0x0000004D -#define DDR_PHY_MR12_VR_CA_SHIFT 6 -#define DDR_PHY_MR12_VR_CA_MASK 0x00000040U +#define DDR_PHY_MR12_VR_CA_DEFVAL 0x0000004D +#define DDR_PHY_MR12_VR_CA_SHIFT 6 +#define DDR_PHY_MR12_VR_CA_MASK 0x00000040U -/*Controls the VREF(ca) levels for Frequency-Set-Point[1:0].*/ +/* +* Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. +*/ #undef DDR_PHY_MR12_VREF_CA_DEFVAL #undef DDR_PHY_MR12_VREF_CA_SHIFT #undef DDR_PHY_MR12_VREF_CA_MASK -#define DDR_PHY_MR12_VREF_CA_DEFVAL 0x0000004D -#define DDR_PHY_MR12_VREF_CA_SHIFT 0 -#define DDR_PHY_MR12_VREF_CA_MASK 0x0000003FU +#define DDR_PHY_MR12_VREF_CA_DEFVAL 0x0000004D +#define DDR_PHY_MR12_VREF_CA_SHIFT 0 +#define DDR_PHY_MR12_VREF_CA_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR13_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR13_RESERVED_31_8_SHIFT #undef DDR_PHY_MR13_RESERVED_31_8_MASK -#define DDR_PHY_MR13_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR13_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR13_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR13_RESERVED_31_8_MASK 0xFFFFFF00U -/*Frequency Set Point Operation Mode*/ +/* +* Frequency Set Point Operation Mode +*/ #undef DDR_PHY_MR13_FSPOP_DEFVAL #undef DDR_PHY_MR13_FSPOP_SHIFT #undef DDR_PHY_MR13_FSPOP_MASK -#define DDR_PHY_MR13_FSPOP_DEFVAL 0x00000000 -#define DDR_PHY_MR13_FSPOP_SHIFT 7 -#define DDR_PHY_MR13_FSPOP_MASK 0x00000080U +#define DDR_PHY_MR13_FSPOP_DEFVAL 0x00000000 +#define DDR_PHY_MR13_FSPOP_SHIFT 7 +#define DDR_PHY_MR13_FSPOP_MASK 0x00000080U -/*Frequency Set Point Write Enable*/ +/* +* Frequency Set Point Write Enable +*/ #undef DDR_PHY_MR13_FSPWR_DEFVAL #undef DDR_PHY_MR13_FSPWR_SHIFT #undef DDR_PHY_MR13_FSPWR_MASK -#define DDR_PHY_MR13_FSPWR_DEFVAL 0x00000000 -#define DDR_PHY_MR13_FSPWR_SHIFT 6 -#define DDR_PHY_MR13_FSPWR_MASK 0x00000040U +#define DDR_PHY_MR13_FSPWR_DEFVAL 0x00000000 +#define DDR_PHY_MR13_FSPWR_SHIFT 6 +#define DDR_PHY_MR13_FSPWR_MASK 0x00000040U -/*Data Mask Enable*/ +/* +* Data Mask Enable +*/ #undef DDR_PHY_MR13_DMD_DEFVAL #undef DDR_PHY_MR13_DMD_SHIFT #undef DDR_PHY_MR13_DMD_MASK -#define DDR_PHY_MR13_DMD_DEFVAL 0x00000000 -#define DDR_PHY_MR13_DMD_SHIFT 5 -#define DDR_PHY_MR13_DMD_MASK 0x00000020U +#define DDR_PHY_MR13_DMD_DEFVAL 0x00000000 +#define DDR_PHY_MR13_DMD_SHIFT 5 +#define DDR_PHY_MR13_DMD_MASK 0x00000020U -/*Refresh Rate Option*/ +/* +* Refresh Rate Option +*/ #undef DDR_PHY_MR13_RRO_DEFVAL #undef DDR_PHY_MR13_RRO_SHIFT #undef DDR_PHY_MR13_RRO_MASK -#define DDR_PHY_MR13_RRO_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RRO_SHIFT 4 -#define DDR_PHY_MR13_RRO_MASK 0x00000010U +#define DDR_PHY_MR13_RRO_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RRO_SHIFT 4 +#define DDR_PHY_MR13_RRO_MASK 0x00000010U -/*VREF Current Generator*/ +/* +* VREF Current Generator +*/ #undef DDR_PHY_MR13_VRCG_DEFVAL #undef DDR_PHY_MR13_VRCG_SHIFT #undef DDR_PHY_MR13_VRCG_MASK -#define DDR_PHY_MR13_VRCG_DEFVAL 0x00000000 -#define DDR_PHY_MR13_VRCG_SHIFT 3 -#define DDR_PHY_MR13_VRCG_MASK 0x00000008U +#define DDR_PHY_MR13_VRCG_DEFVAL 0x00000000 +#define DDR_PHY_MR13_VRCG_SHIFT 3 +#define DDR_PHY_MR13_VRCG_MASK 0x00000008U -/*VREF Output*/ +/* +* VREF Output +*/ #undef DDR_PHY_MR13_VRO_DEFVAL #undef DDR_PHY_MR13_VRO_SHIFT #undef DDR_PHY_MR13_VRO_MASK -#define DDR_PHY_MR13_VRO_DEFVAL 0x00000000 -#define DDR_PHY_MR13_VRO_SHIFT 2 -#define DDR_PHY_MR13_VRO_MASK 0x00000004U +#define DDR_PHY_MR13_VRO_DEFVAL 0x00000000 +#define DDR_PHY_MR13_VRO_SHIFT 2 +#define DDR_PHY_MR13_VRO_MASK 0x00000004U -/*Read Preamble Training Mode*/ +/* +* Read Preamble Training Mode +*/ #undef DDR_PHY_MR13_RPT_DEFVAL #undef DDR_PHY_MR13_RPT_SHIFT #undef DDR_PHY_MR13_RPT_MASK -#define DDR_PHY_MR13_RPT_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RPT_SHIFT 1 -#define DDR_PHY_MR13_RPT_MASK 0x00000002U +#define DDR_PHY_MR13_RPT_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RPT_SHIFT 1 +#define DDR_PHY_MR13_RPT_MASK 0x00000002U -/*Command Bus Training*/ +/* +* Command Bus Training +*/ #undef DDR_PHY_MR13_CBT_DEFVAL #undef DDR_PHY_MR13_CBT_SHIFT #undef DDR_PHY_MR13_CBT_MASK -#define DDR_PHY_MR13_CBT_DEFVAL 0x00000000 -#define DDR_PHY_MR13_CBT_SHIFT 0 -#define DDR_PHY_MR13_CBT_MASK 0x00000001U +#define DDR_PHY_MR13_CBT_DEFVAL 0x00000000 +#define DDR_PHY_MR13_CBT_SHIFT 0 +#define DDR_PHY_MR13_CBT_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR14_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR14_RESERVED_31_8_SHIFT #undef DDR_PHY_MR14_RESERVED_31_8_MASK -#define DDR_PHY_MR14_RESERVED_31_8_DEFVAL 0x0000004D -#define DDR_PHY_MR14_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR14_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR14_RESERVED_31_8_DEFVAL 0x0000004D +#define DDR_PHY_MR14_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR14_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR14_RSVD_DEFVAL #undef DDR_PHY_MR14_RSVD_SHIFT #undef DDR_PHY_MR14_RSVD_MASK -#define DDR_PHY_MR14_RSVD_DEFVAL 0x0000004D -#define DDR_PHY_MR14_RSVD_SHIFT 7 -#define DDR_PHY_MR14_RSVD_MASK 0x00000080U +#define DDR_PHY_MR14_RSVD_DEFVAL 0x0000004D +#define DDR_PHY_MR14_RSVD_SHIFT 7 +#define DDR_PHY_MR14_RSVD_MASK 0x00000080U -/*VREFDQ Range Selects.*/ +/* +* VREFDQ Range Selects. +*/ #undef DDR_PHY_MR14_VR_DQ_DEFVAL #undef DDR_PHY_MR14_VR_DQ_SHIFT #undef DDR_PHY_MR14_VR_DQ_MASK -#define DDR_PHY_MR14_VR_DQ_DEFVAL 0x0000004D -#define DDR_PHY_MR14_VR_DQ_SHIFT 6 -#define DDR_PHY_MR14_VR_DQ_MASK 0x00000040U +#define DDR_PHY_MR14_VR_DQ_DEFVAL 0x0000004D +#define DDR_PHY_MR14_VR_DQ_SHIFT 6 +#define DDR_PHY_MR14_VR_DQ_MASK 0x00000040U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR14_VREF_DQ_DEFVAL #undef DDR_PHY_MR14_VREF_DQ_SHIFT #undef DDR_PHY_MR14_VREF_DQ_MASK -#define DDR_PHY_MR14_VREF_DQ_DEFVAL 0x0000004D -#define DDR_PHY_MR14_VREF_DQ_SHIFT 0 -#define DDR_PHY_MR14_VREF_DQ_MASK 0x0000003FU +#define DDR_PHY_MR14_VREF_DQ_DEFVAL 0x0000004D +#define DDR_PHY_MR14_VREF_DQ_SHIFT 0 +#define DDR_PHY_MR14_VREF_DQ_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR22_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR22_RESERVED_31_8_SHIFT #undef DDR_PHY_MR22_RESERVED_31_8_MASK -#define DDR_PHY_MR22_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR22_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR22_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR22_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR22_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR22_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR22_RSVD_DEFVAL #undef DDR_PHY_MR22_RSVD_SHIFT #undef DDR_PHY_MR22_RSVD_MASK -#define DDR_PHY_MR22_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR22_RSVD_SHIFT 6 -#define DDR_PHY_MR22_RSVD_MASK 0x000000C0U +#define DDR_PHY_MR22_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR22_RSVD_SHIFT 6 +#define DDR_PHY_MR22_RSVD_MASK 0x000000C0U -/*CA ODT termination disable.*/ +/* +* CA ODT termination disable. +*/ #undef DDR_PHY_MR22_ODTD_CA_DEFVAL #undef DDR_PHY_MR22_ODTD_CA_SHIFT #undef DDR_PHY_MR22_ODTD_CA_MASK -#define DDR_PHY_MR22_ODTD_CA_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTD_CA_SHIFT 5 -#define DDR_PHY_MR22_ODTD_CA_MASK 0x00000020U +#define DDR_PHY_MR22_ODTD_CA_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTD_CA_SHIFT 5 +#define DDR_PHY_MR22_ODTD_CA_MASK 0x00000020U -/*ODT CS override.*/ +/* +* ODT CS override. +*/ #undef DDR_PHY_MR22_ODTE_CS_DEFVAL #undef DDR_PHY_MR22_ODTE_CS_SHIFT #undef DDR_PHY_MR22_ODTE_CS_MASK -#define DDR_PHY_MR22_ODTE_CS_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTE_CS_SHIFT 4 -#define DDR_PHY_MR22_ODTE_CS_MASK 0x00000010U +#define DDR_PHY_MR22_ODTE_CS_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTE_CS_SHIFT 4 +#define DDR_PHY_MR22_ODTE_CS_MASK 0x00000010U -/*ODT CK override.*/ +/* +* ODT CK override. +*/ #undef DDR_PHY_MR22_ODTE_CK_DEFVAL #undef DDR_PHY_MR22_ODTE_CK_SHIFT #undef DDR_PHY_MR22_ODTE_CK_MASK -#define DDR_PHY_MR22_ODTE_CK_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTE_CK_SHIFT 3 -#define DDR_PHY_MR22_ODTE_CK_MASK 0x00000008U +#define DDR_PHY_MR22_ODTE_CK_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTE_CK_SHIFT 3 +#define DDR_PHY_MR22_ODTE_CK_MASK 0x00000008U -/*Controller ODT value for VOH calibration.*/ +/* +* Controller ODT value for VOH calibration. +*/ #undef DDR_PHY_MR22_CODT_DEFVAL #undef DDR_PHY_MR22_CODT_SHIFT #undef DDR_PHY_MR22_CODT_MASK -#define DDR_PHY_MR22_CODT_DEFVAL 0x00000000 -#define DDR_PHY_MR22_CODT_SHIFT 0 -#define DDR_PHY_MR22_CODT_MASK 0x00000007U +#define DDR_PHY_MR22_CODT_DEFVAL 0x00000000 +#define DDR_PHY_MR22_CODT_SHIFT 0 +#define DDR_PHY_MR22_CODT_MASK 0x00000007U -/*Refresh During Training*/ +/* +* Refresh During Training +*/ #undef DDR_PHY_DTCR0_RFSHDT_DEFVAL #undef DDR_PHY_DTCR0_RFSHDT_SHIFT #undef DDR_PHY_DTCR0_RFSHDT_MASK -#define DDR_PHY_DTCR0_RFSHDT_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RFSHDT_SHIFT 28 -#define DDR_PHY_DTCR0_RFSHDT_MASK 0xF0000000U +#define DDR_PHY_DTCR0_RFSHDT_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RFSHDT_SHIFT 28 +#define DDR_PHY_DTCR0_RFSHDT_MASK 0xF0000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_27_26_SHIFT #undef DDR_PHY_DTCR0_RESERVED_27_26_MASK -#define DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_27_26_SHIFT 26 -#define DDR_PHY_DTCR0_RESERVED_27_26_MASK 0x0C000000U +#define DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_27_26_SHIFT 26 +#define DDR_PHY_DTCR0_RESERVED_27_26_MASK 0x0C000000U -/*Data Training Debug Rank Select*/ +/* +* Data Training Debug Rank Select +*/ #undef DDR_PHY_DTCR0_DTDRS_DEFVAL #undef DDR_PHY_DTCR0_DTDRS_SHIFT #undef DDR_PHY_DTCR0_DTDRS_MASK -#define DDR_PHY_DTCR0_DTDRS_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDRS_SHIFT 24 -#define DDR_PHY_DTCR0_DTDRS_MASK 0x03000000U +#define DDR_PHY_DTCR0_DTDRS_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDRS_SHIFT 24 +#define DDR_PHY_DTCR0_DTDRS_MASK 0x03000000U -/*Data Training with Early/Extended Gate*/ +/* +* Data Training with Early/Extended Gate +*/ #undef DDR_PHY_DTCR0_DTEXG_DEFVAL #undef DDR_PHY_DTCR0_DTEXG_SHIFT #undef DDR_PHY_DTCR0_DTEXG_MASK -#define DDR_PHY_DTCR0_DTEXG_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTEXG_SHIFT 23 -#define DDR_PHY_DTCR0_DTEXG_MASK 0x00800000U +#define DDR_PHY_DTCR0_DTEXG_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTEXG_SHIFT 23 +#define DDR_PHY_DTCR0_DTEXG_MASK 0x00800000U -/*Data Training Extended Write DQS*/ +/* +* Data Training Extended Write DQS +*/ #undef DDR_PHY_DTCR0_DTEXD_DEFVAL #undef DDR_PHY_DTCR0_DTEXD_SHIFT #undef DDR_PHY_DTCR0_DTEXD_MASK -#define DDR_PHY_DTCR0_DTEXD_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTEXD_SHIFT 22 -#define DDR_PHY_DTCR0_DTEXD_MASK 0x00400000U +#define DDR_PHY_DTCR0_DTEXD_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTEXD_SHIFT 22 +#define DDR_PHY_DTCR0_DTEXD_MASK 0x00400000U -/*Data Training Debug Step*/ +/* +* Data Training Debug Step +*/ #undef DDR_PHY_DTCR0_DTDSTP_DEFVAL #undef DDR_PHY_DTCR0_DTDSTP_SHIFT #undef DDR_PHY_DTCR0_DTDSTP_MASK -#define DDR_PHY_DTCR0_DTDSTP_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDSTP_SHIFT 21 -#define DDR_PHY_DTCR0_DTDSTP_MASK 0x00200000U +#define DDR_PHY_DTCR0_DTDSTP_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDSTP_SHIFT 21 +#define DDR_PHY_DTCR0_DTDSTP_MASK 0x00200000U -/*Data Training Debug Enable*/ +/* +* Data Training Debug Enable +*/ #undef DDR_PHY_DTCR0_DTDEN_DEFVAL #undef DDR_PHY_DTCR0_DTDEN_SHIFT #undef DDR_PHY_DTCR0_DTDEN_MASK -#define DDR_PHY_DTCR0_DTDEN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDEN_SHIFT 20 -#define DDR_PHY_DTCR0_DTDEN_MASK 0x00100000U +#define DDR_PHY_DTCR0_DTDEN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDEN_SHIFT 20 +#define DDR_PHY_DTCR0_DTDEN_MASK 0x00100000U -/*Data Training Debug Byte Select*/ +/* +* Data Training Debug Byte Select +*/ #undef DDR_PHY_DTCR0_DTDBS_DEFVAL #undef DDR_PHY_DTCR0_DTDBS_SHIFT #undef DDR_PHY_DTCR0_DTDBS_MASK -#define DDR_PHY_DTCR0_DTDBS_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDBS_SHIFT 16 -#define DDR_PHY_DTCR0_DTDBS_MASK 0x000F0000U +#define DDR_PHY_DTCR0_DTDBS_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDBS_SHIFT 16 +#define DDR_PHY_DTCR0_DTDBS_MASK 0x000F0000U -/*Data Training read DBI deskewing configuration*/ +/* +* Data Training read DBI deskewing configuration +*/ #undef DDR_PHY_DTCR0_DTRDBITR_DEFVAL #undef DDR_PHY_DTCR0_DTRDBITR_SHIFT #undef DDR_PHY_DTCR0_DTRDBITR_MASK -#define DDR_PHY_DTCR0_DTRDBITR_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTRDBITR_SHIFT 14 -#define DDR_PHY_DTCR0_DTRDBITR_MASK 0x0000C000U +#define DDR_PHY_DTCR0_DTRDBITR_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTRDBITR_SHIFT 14 +#define DDR_PHY_DTCR0_DTRDBITR_MASK 0x0000C000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_13_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_13_SHIFT #undef DDR_PHY_DTCR0_RESERVED_13_MASK -#define DDR_PHY_DTCR0_RESERVED_13_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_13_SHIFT 13 -#define DDR_PHY_DTCR0_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_DTCR0_RESERVED_13_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_13_SHIFT 13 +#define DDR_PHY_DTCR0_RESERVED_13_MASK 0x00002000U -/*Data Training Write Bit Deskew Data Mask*/ +/* +* Data Training Write Bit Deskew Data Mask +*/ #undef DDR_PHY_DTCR0_DTWBDDM_DEFVAL #undef DDR_PHY_DTCR0_DTWBDDM_SHIFT #undef DDR_PHY_DTCR0_DTWBDDM_MASK -#define DDR_PHY_DTCR0_DTWBDDM_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTWBDDM_SHIFT 12 -#define DDR_PHY_DTCR0_DTWBDDM_MASK 0x00001000U +#define DDR_PHY_DTCR0_DTWBDDM_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTWBDDM_SHIFT 12 +#define DDR_PHY_DTCR0_DTWBDDM_MASK 0x00001000U -/*Refreshes Issued During Entry to Training*/ +/* +* Refreshes Issued During Entry to Training +*/ #undef DDR_PHY_DTCR0_RFSHEN_DEFVAL #undef DDR_PHY_DTCR0_RFSHEN_SHIFT #undef DDR_PHY_DTCR0_RFSHEN_MASK -#define DDR_PHY_DTCR0_RFSHEN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RFSHEN_SHIFT 8 -#define DDR_PHY_DTCR0_RFSHEN_MASK 0x00000F00U +#define DDR_PHY_DTCR0_RFSHEN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RFSHEN_SHIFT 8 +#define DDR_PHY_DTCR0_RFSHEN_MASK 0x00000F00U -/*Data Training Compare Data*/ +/* +* Data Training Compare Data +*/ #undef DDR_PHY_DTCR0_DTCMPD_DEFVAL #undef DDR_PHY_DTCR0_DTCMPD_SHIFT #undef DDR_PHY_DTCR0_DTCMPD_MASK -#define DDR_PHY_DTCR0_DTCMPD_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTCMPD_SHIFT 7 -#define DDR_PHY_DTCR0_DTCMPD_MASK 0x00000080U +#define DDR_PHY_DTCR0_DTCMPD_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTCMPD_SHIFT 7 +#define DDR_PHY_DTCR0_DTCMPD_MASK 0x00000080U -/*Data Training Using MPR*/ +/* +* Data Training Using MPR +*/ #undef DDR_PHY_DTCR0_DTMPR_DEFVAL #undef DDR_PHY_DTCR0_DTMPR_SHIFT #undef DDR_PHY_DTCR0_DTMPR_MASK -#define DDR_PHY_DTCR0_DTMPR_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTMPR_SHIFT 6 -#define DDR_PHY_DTCR0_DTMPR_MASK 0x00000040U +#define DDR_PHY_DTCR0_DTMPR_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTMPR_SHIFT 6 +#define DDR_PHY_DTCR0_DTMPR_MASK 0x00000040U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_5_4_SHIFT #undef DDR_PHY_DTCR0_RESERVED_5_4_MASK -#define DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_5_4_SHIFT 4 -#define DDR_PHY_DTCR0_RESERVED_5_4_MASK 0x00000030U +#define DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_5_4_SHIFT 4 +#define DDR_PHY_DTCR0_RESERVED_5_4_MASK 0x00000030U -/*Data Training Repeat Number*/ +/* +* Data Training Repeat Number +*/ #undef DDR_PHY_DTCR0_DTRPTN_DEFVAL #undef DDR_PHY_DTCR0_DTRPTN_SHIFT #undef DDR_PHY_DTCR0_DTRPTN_MASK -#define DDR_PHY_DTCR0_DTRPTN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTRPTN_SHIFT 0 -#define DDR_PHY_DTCR0_DTRPTN_MASK 0x0000000FU +#define DDR_PHY_DTCR0_DTRPTN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTRPTN_SHIFT 0 +#define DDR_PHY_DTCR0_DTRPTN_MASK 0x0000000FU -/*Rank Enable.*/ +/* +* Rank Enable. +*/ #undef DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL #undef DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT #undef DDR_PHY_DTCR1_RANKEN_RSVD_MASK -#define DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT 18 -#define DDR_PHY_DTCR1_RANKEN_RSVD_MASK 0xFFFC0000U +#define DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT 18 +#define DDR_PHY_DTCR1_RANKEN_RSVD_MASK 0xFFFC0000U -/*Rank Enable.*/ +/* +* Rank Enable. +*/ #undef DDR_PHY_DTCR1_RANKEN_DEFVAL #undef DDR_PHY_DTCR1_RANKEN_SHIFT #undef DDR_PHY_DTCR1_RANKEN_MASK -#define DDR_PHY_DTCR1_RANKEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RANKEN_SHIFT 16 -#define DDR_PHY_DTCR1_RANKEN_MASK 0x00030000U +#define DDR_PHY_DTCR1_RANKEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RANKEN_SHIFT 16 +#define DDR_PHY_DTCR1_RANKEN_MASK 0x00030000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_15_14_SHIFT #undef DDR_PHY_DTCR1_RESERVED_15_14_MASK -#define DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DTCR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DTCR1_RESERVED_15_14_MASK 0x0000C000U -/*Data Training Rank*/ +/* +* Data Training Rank +*/ #undef DDR_PHY_DTCR1_DTRANK_DEFVAL #undef DDR_PHY_DTCR1_DTRANK_SHIFT #undef DDR_PHY_DTCR1_DTRANK_MASK -#define DDR_PHY_DTCR1_DTRANK_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_DTRANK_SHIFT 12 -#define DDR_PHY_DTCR1_DTRANK_MASK 0x00003000U +#define DDR_PHY_DTCR1_DTRANK_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_DTRANK_SHIFT 12 +#define DDR_PHY_DTCR1_DTRANK_MASK 0x00003000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_11_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_11_SHIFT #undef DDR_PHY_DTCR1_RESERVED_11_MASK -#define DDR_PHY_DTCR1_RESERVED_11_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_11_SHIFT 11 -#define DDR_PHY_DTCR1_RESERVED_11_MASK 0x00000800U +#define DDR_PHY_DTCR1_RESERVED_11_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_11_SHIFT 11 +#define DDR_PHY_DTCR1_RESERVED_11_MASK 0x00000800U -/*Read Leveling Gate Sampling Difference*/ +/* +* Read Leveling Gate Sampling Difference +*/ #undef DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL #undef DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT #undef DDR_PHY_DTCR1_RDLVLGDIFF_MASK -#define DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT 8 -#define DDR_PHY_DTCR1_RDLVLGDIFF_MASK 0x00000700U +#define DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT 8 +#define DDR_PHY_DTCR1_RDLVLGDIFF_MASK 0x00000700U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_7_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_7_SHIFT #undef DDR_PHY_DTCR1_RESERVED_7_MASK -#define DDR_PHY_DTCR1_RESERVED_7_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_7_SHIFT 7 -#define DDR_PHY_DTCR1_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DTCR1_RESERVED_7_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_7_SHIFT 7 +#define DDR_PHY_DTCR1_RESERVED_7_MASK 0x00000080U -/*Read Leveling Gate Shift*/ +/* +* Read Leveling Gate Shift +*/ #undef DDR_PHY_DTCR1_RDLVLGS_DEFVAL #undef DDR_PHY_DTCR1_RDLVLGS_SHIFT #undef DDR_PHY_DTCR1_RDLVLGS_MASK -#define DDR_PHY_DTCR1_RDLVLGS_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLGS_SHIFT 4 -#define DDR_PHY_DTCR1_RDLVLGS_MASK 0x00000070U +#define DDR_PHY_DTCR1_RDLVLGS_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLGS_SHIFT 4 +#define DDR_PHY_DTCR1_RDLVLGS_MASK 0x00000070U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_3_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_3_SHIFT #undef DDR_PHY_DTCR1_RESERVED_3_MASK -#define DDR_PHY_DTCR1_RESERVED_3_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_3_SHIFT 3 -#define DDR_PHY_DTCR1_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_DTCR1_RESERVED_3_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_3_SHIFT 3 +#define DDR_PHY_DTCR1_RESERVED_3_MASK 0x00000008U -/*Read Preamble Training enable*/ +/* +* Read Preamble Training enable +*/ #undef DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL #undef DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT #undef DDR_PHY_DTCR1_RDPRMVL_TRN_MASK -#define DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT 2 -#define DDR_PHY_DTCR1_RDPRMVL_TRN_MASK 0x00000004U +#define DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT 2 +#define DDR_PHY_DTCR1_RDPRMVL_TRN_MASK 0x00000004U -/*Read Leveling Enable*/ +/* +* Read Leveling Enable +*/ #undef DDR_PHY_DTCR1_RDLVLEN_DEFVAL #undef DDR_PHY_DTCR1_RDLVLEN_SHIFT #undef DDR_PHY_DTCR1_RDLVLEN_MASK -#define DDR_PHY_DTCR1_RDLVLEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLEN_SHIFT 1 -#define DDR_PHY_DTCR1_RDLVLEN_MASK 0x00000002U +#define DDR_PHY_DTCR1_RDLVLEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLEN_SHIFT 1 +#define DDR_PHY_DTCR1_RDLVLEN_MASK 0x00000002U -/*Basic Gate Training Enable*/ +/* +* Basic Gate Training Enable +*/ #undef DDR_PHY_DTCR1_BSTEN_DEFVAL #undef DDR_PHY_DTCR1_BSTEN_SHIFT #undef DDR_PHY_DTCR1_BSTEN_MASK -#define DDR_PHY_DTCR1_BSTEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_BSTEN_SHIFT 0 -#define DDR_PHY_DTCR1_BSTEN_MASK 0x00000001U +#define DDR_PHY_DTCR1_BSTEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_BSTEN_SHIFT 0 +#define DDR_PHY_DTCR1_BSTEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_CATR0_RESERVED_31_21_DEFVAL #undef DDR_PHY_CATR0_RESERVED_31_21_SHIFT #undef DDR_PHY_CATR0_RESERVED_31_21_MASK -#define DDR_PHY_CATR0_RESERVED_31_21_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_RESERVED_31_21_SHIFT 21 -#define DDR_PHY_CATR0_RESERVED_31_21_MASK 0xFFE00000U +#define DDR_PHY_CATR0_RESERVED_31_21_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_RESERVED_31_21_SHIFT 21 +#define DDR_PHY_CATR0_RESERVED_31_21_MASK 0xFFE00000U -/*Minimum time (in terms of number of dram clocks) between two consectuve CA calibration command*/ +/* +* Minimum time (in terms of number of dram clocks) between two consectuve + * CA calibration command +*/ #undef DDR_PHY_CATR0_CACD_DEFVAL #undef DDR_PHY_CATR0_CACD_SHIFT #undef DDR_PHY_CATR0_CACD_MASK -#define DDR_PHY_CATR0_CACD_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CACD_SHIFT 16 -#define DDR_PHY_CATR0_CACD_MASK 0x001F0000U +#define DDR_PHY_CATR0_CACD_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CACD_SHIFT 16 +#define DDR_PHY_CATR0_CACD_MASK 0x001F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_CATR0_RESERVED_15_13_DEFVAL #undef DDR_PHY_CATR0_RESERVED_15_13_SHIFT #undef DDR_PHY_CATR0_RESERVED_15_13_MASK -#define DDR_PHY_CATR0_RESERVED_15_13_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_CATR0_RESERVED_15_13_MASK 0x0000E000U +#define DDR_PHY_CATR0_RESERVED_15_13_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_RESERVED_15_13_SHIFT 13 +#define DDR_PHY_CATR0_RESERVED_15_13_MASK 0x0000E000U -/*Minimum time (in terms of number of dram clocks) PUB should wait before sampling the CA response after Calibration command ha - been sent to the memory*/ +/* +* Minimum time (in terms of number of dram clocks) PUB should wait before + * sampling the CA response after Calibration command has been sent to the + * memory +*/ #undef DDR_PHY_CATR0_CAADR_DEFVAL #undef DDR_PHY_CATR0_CAADR_SHIFT #undef DDR_PHY_CATR0_CAADR_MASK -#define DDR_PHY_CATR0_CAADR_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CAADR_SHIFT 8 -#define DDR_PHY_CATR0_CAADR_MASK 0x00001F00U +#define DDR_PHY_CATR0_CAADR_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CAADR_SHIFT 8 +#define DDR_PHY_CATR0_CAADR_MASK 0x00001F00U -/*CA_1 Response Byte Lane 1*/ +/* +* CA_1 Response Byte Lane 1 +*/ #undef DDR_PHY_CATR0_CA1BYTE1_DEFVAL #undef DDR_PHY_CATR0_CA1BYTE1_SHIFT #undef DDR_PHY_CATR0_CA1BYTE1_MASK -#define DDR_PHY_CATR0_CA1BYTE1_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CA1BYTE1_SHIFT 4 -#define DDR_PHY_CATR0_CA1BYTE1_MASK 0x000000F0U +#define DDR_PHY_CATR0_CA1BYTE1_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CA1BYTE1_SHIFT 4 +#define DDR_PHY_CATR0_CA1BYTE1_MASK 0x000000F0U -/*CA_1 Response Byte Lane 0*/ +/* +* CA_1 Response Byte Lane 0 +*/ #undef DDR_PHY_CATR0_CA1BYTE0_DEFVAL #undef DDR_PHY_CATR0_CA1BYTE0_SHIFT #undef DDR_PHY_CATR0_CA1BYTE0_MASK -#define DDR_PHY_CATR0_CA1BYTE0_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CA1BYTE0_SHIFT 0 -#define DDR_PHY_CATR0_CA1BYTE0_MASK 0x0000000FU +#define DDR_PHY_CATR0_CA1BYTE0_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CA1BYTE0_SHIFT 0 +#define DDR_PHY_CATR0_CA1BYTE0_MASK 0x0000000FU -/*LFSR seed for pseudo-random BIST patterns*/ +/* +* Number of delay taps by which the DQS gate LCDL will be updated when DQS + * drift is detected +*/ +#undef DDR_PHY_DQSDR0_DFTDLY_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDLY_SHIFT +#undef DDR_PHY_DQSDR0_DFTDLY_MASK +#define DDR_PHY_DQSDR0_DFTDLY_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDLY_SHIFT 28 +#define DDR_PHY_DQSDR0_DFTDLY_MASK 0xF0000000U + +/* +* Drift Impedance Update +*/ +#undef DDR_PHY_DQSDR0_DFTZQUP_DEFVAL +#undef DDR_PHY_DQSDR0_DFTZQUP_SHIFT +#undef DDR_PHY_DQSDR0_DFTZQUP_MASK +#define DDR_PHY_DQSDR0_DFTZQUP_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTZQUP_SHIFT 27 +#define DDR_PHY_DQSDR0_DFTZQUP_MASK 0x08000000U + +/* +* Drift DDL Update +*/ +#undef DDR_PHY_DQSDR0_DFTDDLUP_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDDLUP_SHIFT +#undef DDR_PHY_DQSDR0_DFTDDLUP_MASK +#define DDR_PHY_DQSDR0_DFTDDLUP_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDDLUP_SHIFT 26 +#define DDR_PHY_DQSDR0_DFTDDLUP_MASK 0x04000000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DQSDR0_RESERVED_25_22_DEFVAL +#undef DDR_PHY_DQSDR0_RESERVED_25_22_SHIFT +#undef DDR_PHY_DQSDR0_RESERVED_25_22_MASK +#define DDR_PHY_DQSDR0_RESERVED_25_22_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_RESERVED_25_22_SHIFT 22 +#define DDR_PHY_DQSDR0_RESERVED_25_22_MASK 0x03C00000U + +/* +* Drift Read Spacing +*/ +#undef DDR_PHY_DQSDR0_DFTRDSPC_DEFVAL +#undef DDR_PHY_DQSDR0_DFTRDSPC_SHIFT +#undef DDR_PHY_DQSDR0_DFTRDSPC_MASK +#define DDR_PHY_DQSDR0_DFTRDSPC_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTRDSPC_SHIFT 20 +#define DDR_PHY_DQSDR0_DFTRDSPC_MASK 0x00300000U + +/* +* Drift Back-to-Back Reads +*/ +#undef DDR_PHY_DQSDR0_DFTB2BRD_DEFVAL +#undef DDR_PHY_DQSDR0_DFTB2BRD_SHIFT +#undef DDR_PHY_DQSDR0_DFTB2BRD_MASK +#define DDR_PHY_DQSDR0_DFTB2BRD_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTB2BRD_SHIFT 16 +#define DDR_PHY_DQSDR0_DFTB2BRD_MASK 0x000F0000U + +/* +* Drift Idle Reads +*/ +#undef DDR_PHY_DQSDR0_DFTIDLRD_DEFVAL +#undef DDR_PHY_DQSDR0_DFTIDLRD_SHIFT +#undef DDR_PHY_DQSDR0_DFTIDLRD_MASK +#define DDR_PHY_DQSDR0_DFTIDLRD_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTIDLRD_SHIFT 12 +#define DDR_PHY_DQSDR0_DFTIDLRD_MASK 0x0000F000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DQSDR0_RESERVED_11_8_DEFVAL +#undef DDR_PHY_DQSDR0_RESERVED_11_8_SHIFT +#undef DDR_PHY_DQSDR0_RESERVED_11_8_MASK +#define DDR_PHY_DQSDR0_RESERVED_11_8_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_RESERVED_11_8_SHIFT 8 +#define DDR_PHY_DQSDR0_RESERVED_11_8_MASK 0x00000F00U + +/* +* Gate Pulse Enable +*/ +#undef DDR_PHY_DQSDR0_DFTGPULSE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTGPULSE_SHIFT +#undef DDR_PHY_DQSDR0_DFTGPULSE_MASK +#define DDR_PHY_DQSDR0_DFTGPULSE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTGPULSE_SHIFT 4 +#define DDR_PHY_DQSDR0_DFTGPULSE_MASK 0x000000F0U + +/* +* DQS Drift Update Mode +*/ +#undef DDR_PHY_DQSDR0_DFTUPMODE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTUPMODE_SHIFT +#undef DDR_PHY_DQSDR0_DFTUPMODE_MASK +#define DDR_PHY_DQSDR0_DFTUPMODE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTUPMODE_SHIFT 2 +#define DDR_PHY_DQSDR0_DFTUPMODE_MASK 0x0000000CU + +/* +* DQS Drift Detection Mode +*/ +#undef DDR_PHY_DQSDR0_DFTDTMODE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDTMODE_SHIFT +#undef DDR_PHY_DQSDR0_DFTDTMODE_MASK +#define DDR_PHY_DQSDR0_DFTDTMODE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDTMODE_SHIFT 1 +#define DDR_PHY_DQSDR0_DFTDTMODE_MASK 0x00000002U + +/* +* DQS Drift Detection Enable +*/ +#undef DDR_PHY_DQSDR0_DFTDTEN_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDTEN_SHIFT +#undef DDR_PHY_DQSDR0_DFTDTEN_MASK +#define DDR_PHY_DQSDR0_DFTDTEN_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDTEN_SHIFT 0 +#define DDR_PHY_DQSDR0_DFTDTEN_MASK 0x00000001U + +/* +* LFSR seed for pseudo-random BIST patterns +*/ #undef DDR_PHY_BISTLSR_SEED_DEFVAL #undef DDR_PHY_BISTLSR_SEED_SHIFT #undef DDR_PHY_BISTLSR_SEED_MASK -#define DDR_PHY_BISTLSR_SEED_DEFVAL -#define DDR_PHY_BISTLSR_SEED_SHIFT 0 -#define DDR_PHY_BISTLSR_SEED_MASK 0xFFFFFFFFU +#define DDR_PHY_BISTLSR_SEED_DEFVAL +#define DDR_PHY_BISTLSR_SEED_SHIFT 0 +#define DDR_PHY_BISTLSR_SEED_MASK 0xFFFFFFFFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL #undef DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT #undef DDR_PHY_RIOCR5_RESERVED_31_16_MASK -#define DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_RIOCR5_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_RIOCR5_RESERVED_31_16_MASK 0xFFFF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT 4 -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK 0x0000FFF0U +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT 4 +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK 0x0000FFF0U -/*SDRAM On-die Termination Output Enable (OE) Mode Selection.*/ +/* +* SDRAM On-die Termination Output Enable (OE) Mode Selection. +*/ #undef DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL #undef DDR_PHY_RIOCR5_ODTOEMODE_SHIFT #undef DDR_PHY_RIOCR5_ODTOEMODE_MASK -#define DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_ODTOEMODE_SHIFT 0 -#define DDR_PHY_RIOCR5_ODTOEMODE_MASK 0x0000000FU +#define DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_ODTOEMODE_SHIFT 0 +#define DDR_PHY_RIOCR5_ODTOEMODE_MASK 0x0000000FU -/*Address/Command Slew Rate (D3F I/O Only)*/ +/* +* Address/Command Slew Rate (D3F I/O Only) +*/ #undef DDR_PHY_ACIOCR0_ACSR_DEFVAL #undef DDR_PHY_ACIOCR0_ACSR_SHIFT #undef DDR_PHY_ACIOCR0_ACSR_MASK -#define DDR_PHY_ACIOCR0_ACSR_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACSR_SHIFT 30 -#define DDR_PHY_ACIOCR0_ACSR_MASK 0xC0000000U +#define DDR_PHY_ACIOCR0_ACSR_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACSR_SHIFT 30 +#define DDR_PHY_ACIOCR0_ACSR_MASK 0xC0000000U -/*SDRAM Reset I/O Mode*/ +/* +* SDRAM Reset I/O Mode +*/ #undef DDR_PHY_ACIOCR0_RSTIOM_DEFVAL #undef DDR_PHY_ACIOCR0_RSTIOM_SHIFT #undef DDR_PHY_ACIOCR0_RSTIOM_MASK -#define DDR_PHY_ACIOCR0_RSTIOM_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTIOM_SHIFT 29 -#define DDR_PHY_ACIOCR0_RSTIOM_MASK 0x20000000U +#define DDR_PHY_ACIOCR0_RSTIOM_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTIOM_SHIFT 29 +#define DDR_PHY_ACIOCR0_RSTIOM_MASK 0x20000000U -/*SDRAM Reset Power Down Receiver*/ +/* +* SDRAM Reset Power Down Receiver +*/ #undef DDR_PHY_ACIOCR0_RSTPDR_DEFVAL #undef DDR_PHY_ACIOCR0_RSTPDR_SHIFT #undef DDR_PHY_ACIOCR0_RSTPDR_MASK -#define DDR_PHY_ACIOCR0_RSTPDR_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTPDR_SHIFT 28 -#define DDR_PHY_ACIOCR0_RSTPDR_MASK 0x10000000U +#define DDR_PHY_ACIOCR0_RSTPDR_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTPDR_SHIFT 28 +#define DDR_PHY_ACIOCR0_RSTPDR_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_27_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_27_MASK -#define DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_27_SHIFT 27 -#define DDR_PHY_ACIOCR0_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_27_SHIFT 27 +#define DDR_PHY_ACIOCR0_RESERVED_27_MASK 0x08000000U -/*SDRAM Reset On-Die Termination*/ +/* +* SDRAM Reset On-Die Termination +*/ #undef DDR_PHY_ACIOCR0_RSTODT_DEFVAL #undef DDR_PHY_ACIOCR0_RSTODT_SHIFT #undef DDR_PHY_ACIOCR0_RSTODT_MASK -#define DDR_PHY_ACIOCR0_RSTODT_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTODT_SHIFT 26 -#define DDR_PHY_ACIOCR0_RSTODT_MASK 0x04000000U +#define DDR_PHY_ACIOCR0_RSTODT_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTODT_SHIFT 26 +#define DDR_PHY_ACIOCR0_RSTODT_MASK 0x04000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_25_10_MASK -#define DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT 10 -#define DDR_PHY_ACIOCR0_RESERVED_25_10_MASK 0x03FFFC00U +#define DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT 10 +#define DDR_PHY_ACIOCR0_RESERVED_25_10_MASK 0x03FFFC00U -/*CK Duty Cycle Correction*/ +/* +* CK Duty Cycle Correction +*/ #undef DDR_PHY_ACIOCR0_CKDCC_DEFVAL #undef DDR_PHY_ACIOCR0_CKDCC_SHIFT #undef DDR_PHY_ACIOCR0_CKDCC_MASK -#define DDR_PHY_ACIOCR0_CKDCC_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_CKDCC_SHIFT 6 -#define DDR_PHY_ACIOCR0_CKDCC_MASK 0x000003C0U +#define DDR_PHY_ACIOCR0_CKDCC_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_CKDCC_SHIFT 6 +#define DDR_PHY_ACIOCR0_CKDCC_MASK 0x000003C0U -/*AC Power Down Receiver Mode*/ +/* +* AC Power Down Receiver Mode +*/ #undef DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL #undef DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT #undef DDR_PHY_ACIOCR0_ACPDRMODE_MASK -#define DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT 4 -#define DDR_PHY_ACIOCR0_ACPDRMODE_MASK 0x00000030U +#define DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT 4 +#define DDR_PHY_ACIOCR0_ACPDRMODE_MASK 0x00000030U -/*AC On-die Termination Mode*/ +/* +* AC On-die Termination Mode +*/ #undef DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL #undef DDR_PHY_ACIOCR0_ACODTMODE_SHIFT #undef DDR_PHY_ACIOCR0_ACODTMODE_MASK -#define DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACODTMODE_SHIFT 2 -#define DDR_PHY_ACIOCR0_ACODTMODE_MASK 0x0000000CU +#define DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACODTMODE_SHIFT 2 +#define DDR_PHY_ACIOCR0_ACODTMODE_MASK 0x0000000CU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_1_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_1_MASK -#define DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_1_SHIFT 1 -#define DDR_PHY_ACIOCR0_RESERVED_1_MASK 0x00000002U +#define DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_1_SHIFT 1 +#define DDR_PHY_ACIOCR0_RESERVED_1_MASK 0x00000002U -/*Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices.*/ +/* +* Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. +*/ #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT 0 -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK 0x00000001U +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT 0 +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK 0x00000001U -/*Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL slice*/ +/* +* Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL + * slice +*/ #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT 31 -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK 0x80000000U +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT 31 +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK 0x80000000U -/*Clock gating for Output Enable D slices [0]*/ +/* +* Clock gating for Output Enable D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT 30 -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK 0x40000000U +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT 30 +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK 0x40000000U -/*Clock gating for Power Down Receiver D slices [0]*/ +/* +* Clock gating for Power Down Receiver D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT 29 -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK 0x20000000U +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT 29 +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK 0x20000000U -/*Clock gating for Termination Enable D slices [0]*/ +/* +* Clock gating for Termination Enable D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT 28 -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK 0x10000000U +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT 28 +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK 0x10000000U -/*Clock gating for CK# D slices [1:0]*/ +/* +* Clock gating for CK# D slices [1:0] +*/ #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT 26 -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK 0x0C000000U +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT 26 +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK 0x0C000000U -/*Clock gating for CK D slices [1:0]*/ +/* +* Clock gating for CK D slices [1:0] +*/ #undef DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_CKCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT 24 -#define DDR_PHY_ACIOCR2_CKCLKGATE0_MASK 0x03000000U +#define DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT 24 +#define DDR_PHY_ACIOCR2_CKCLKGATE0_MASK 0x03000000U -/*Clock gating for AC D slices [23:0]*/ +/* +* Clock gating for AC D slices [23:0] +*/ #undef DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT 0 -#define DDR_PHY_ACIOCR2_ACCLKGATE0_MASK 0x00FFFFFFU +#define DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT 0 +#define DDR_PHY_ACIOCR2_ACCLKGATE0_MASK 0x00FFFFFFU -/*SDRAM Parity Output Enable (OE) Mode Selection*/ +/* +* SDRAM Parity Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_PAROEMODE_SHIFT #undef DDR_PHY_ACIOCR3_PAROEMODE_MASK -#define DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_PAROEMODE_SHIFT 30 -#define DDR_PHY_ACIOCR3_PAROEMODE_MASK 0xC0000000U +#define DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_PAROEMODE_SHIFT 30 +#define DDR_PHY_ACIOCR3_PAROEMODE_MASK 0xC0000000U -/*SDRAM Bank Group Output Enable (OE) Mode Selection*/ +/* +* SDRAM Bank Group Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_BGOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_BGOEMODE_MASK -#define DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_BGOEMODE_SHIFT 26 -#define DDR_PHY_ACIOCR3_BGOEMODE_MASK 0x3C000000U +#define DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_BGOEMODE_SHIFT 26 +#define DDR_PHY_ACIOCR3_BGOEMODE_MASK 0x3C000000U -/*SDRAM Bank Address Output Enable (OE) Mode Selection*/ +/* +* SDRAM Bank Address Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_BAOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_BAOEMODE_MASK -#define DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_BAOEMODE_SHIFT 22 -#define DDR_PHY_ACIOCR3_BAOEMODE_MASK 0x03C00000U +#define DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_BAOEMODE_SHIFT 22 +#define DDR_PHY_ACIOCR3_BAOEMODE_MASK 0x03C00000U -/*SDRAM A[17] Output Enable (OE) Mode Selection*/ +/* +* SDRAM A[17] Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_A17OEMODE_SHIFT #undef DDR_PHY_ACIOCR3_A17OEMODE_MASK -#define DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_A17OEMODE_SHIFT 20 -#define DDR_PHY_ACIOCR3_A17OEMODE_MASK 0x00300000U +#define DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_A17OEMODE_SHIFT 20 +#define DDR_PHY_ACIOCR3_A17OEMODE_MASK 0x00300000U -/*SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection*/ +/* +* SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_A16OEMODE_SHIFT #undef DDR_PHY_ACIOCR3_A16OEMODE_MASK -#define DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_A16OEMODE_SHIFT 18 -#define DDR_PHY_ACIOCR3_A16OEMODE_MASK 0x000C0000U +#define DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_A16OEMODE_SHIFT 18 +#define DDR_PHY_ACIOCR3_A16OEMODE_MASK 0x000C0000U -/*SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only)*/ +/* +* SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) +*/ #undef DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_ACTOEMODE_MASK -#define DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT 16 -#define DDR_PHY_ACIOCR3_ACTOEMODE_MASK 0x00030000U +#define DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT 16 +#define DDR_PHY_ACIOCR3_ACTOEMODE_MASK 0x00030000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL #undef DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT #undef DDR_PHY_ACIOCR3_RESERVED_15_8_MASK -#define DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT 8 -#define DDR_PHY_ACIOCR3_RESERVED_15_8_MASK 0x0000FF00U +#define DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT 8 +#define DDR_PHY_ACIOCR3_RESERVED_15_8_MASK 0x0000FF00U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT 4 -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK 0x000000F0U +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT 4 +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK 0x000000F0U -/*SDRAM CK Output Enable (OE) Mode Selection.*/ +/* +* SDRAM CK Output Enable (OE) Mode Selection. +*/ #undef DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_CKOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_CKOEMODE_MASK -#define DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_CKOEMODE_SHIFT 0 -#define DDR_PHY_ACIOCR3_CKOEMODE_MASK 0x0000000FU +#define DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_CKOEMODE_SHIFT 0 +#define DDR_PHY_ACIOCR3_CKOEMODE_MASK 0x0000000FU -/*Clock gating for AC LB slices and loopback read valid slices*/ +/* +* Clock gating for AC LB slices and loopback read valid slices +*/ #undef DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL #undef DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT #undef DDR_PHY_ACIOCR4_LBCLKGATE_MASK -#define DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT 31 -#define DDR_PHY_ACIOCR4_LBCLKGATE_MASK 0x80000000U +#define DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT 31 +#define DDR_PHY_ACIOCR4_LBCLKGATE_MASK 0x80000000U -/*Clock gating for Output Enable D slices [1]*/ +/* +* Clock gating for Output Enable D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT 30 -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK 0x40000000U +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT 30 +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK 0x40000000U -/*Clock gating for Power Down Receiver D slices [1]*/ +/* +* Clock gating for Power Down Receiver D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT 29 -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK 0x20000000U +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT 29 +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK 0x20000000U -/*Clock gating for Termination Enable D slices [1]*/ +/* +* Clock gating for Termination Enable D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT 28 -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK 0x10000000U +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT 28 +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK 0x10000000U -/*Clock gating for CK# D slices [3:2]*/ +/* +* Clock gating for CK# D slices [3:2] +*/ #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT 26 -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK 0x0C000000U +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT 26 +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK 0x0C000000U -/*Clock gating for CK D slices [3:2]*/ +/* +* Clock gating for CK D slices [3:2] +*/ #undef DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_CKCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT 24 -#define DDR_PHY_ACIOCR4_CKCLKGATE1_MASK 0x03000000U +#define DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT 24 +#define DDR_PHY_ACIOCR4_CKCLKGATE1_MASK 0x03000000U -/*Clock gating for AC D slices [47:24]*/ +/* +* Clock gating for AC D slices [47:24] +*/ #undef DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT 0 -#define DDR_PHY_ACIOCR4_ACCLKGATE1_MASK 0x00FFFFFFU +#define DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT 0 +#define DDR_PHY_ACIOCR4_ACCLKGATE1_MASK 0x00FFFFFFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL #undef DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT #undef DDR_PHY_IOVCR0_RESERVED_31_29_MASK -#define DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_IOVCR0_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_IOVCR0_RESERVED_31_29_MASK 0xE0000000U -/*Address/command lane VREF Pad Enable*/ +/* +* Address/command lane VREF Pad Enable +*/ #undef DDR_PHY_IOVCR0_ACREFPEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFPEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFPEN_MASK -#define DDR_PHY_IOVCR0_ACREFPEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFPEN_SHIFT 28 -#define DDR_PHY_IOVCR0_ACREFPEN_MASK 0x10000000U +#define DDR_PHY_IOVCR0_ACREFPEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFPEN_SHIFT 28 +#define DDR_PHY_IOVCR0_ACREFPEN_MASK 0x10000000U -/*Address/command lane Internal VREF Enable*/ +/* +* Address/command lane Internal VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFEEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFEEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFEEN_MASK -#define DDR_PHY_IOVCR0_ACREFEEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFEEN_SHIFT 26 -#define DDR_PHY_IOVCR0_ACREFEEN_MASK 0x0C000000U +#define DDR_PHY_IOVCR0_ACREFEEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFEEN_SHIFT 26 +#define DDR_PHY_IOVCR0_ACREFEEN_MASK 0x0C000000U -/*Address/command lane Single-End VREF Enable*/ +/* +* Address/command lane Single-End VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFSEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFSEN_MASK -#define DDR_PHY_IOVCR0_ACREFSEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSEN_SHIFT 25 -#define DDR_PHY_IOVCR0_ACREFSEN_MASK 0x02000000U +#define DDR_PHY_IOVCR0_ACREFSEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSEN_SHIFT 25 +#define DDR_PHY_IOVCR0_ACREFSEN_MASK 0x02000000U -/*Address/command lane Internal VREF Enable*/ +/* +* Address/command lane Internal VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFIEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFIEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFIEN_MASK -#define DDR_PHY_IOVCR0_ACREFIEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFIEN_SHIFT 24 -#define DDR_PHY_IOVCR0_ACREFIEN_MASK 0x01000000U +#define DDR_PHY_IOVCR0_ACREFIEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFIEN_SHIFT 24 +#define DDR_PHY_IOVCR0_ACREFIEN_MASK 0x01000000U -/*External VREF generato REFSEL range select*/ +/* +* External VREF generato REFSEL range select +*/ #undef DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACREFESELRANGE_MASK -#define DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT 23 -#define DDR_PHY_IOVCR0_ACREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT 23 +#define DDR_PHY_IOVCR0_ACREFESELRANGE_MASK 0x00800000U -/*Address/command lane External VREF Select*/ +/* +* Address/command lane External VREF Select +*/ #undef DDR_PHY_IOVCR0_ACREFESEL_DEFVAL #undef DDR_PHY_IOVCR0_ACREFESEL_SHIFT #undef DDR_PHY_IOVCR0_ACREFESEL_MASK -#define DDR_PHY_IOVCR0_ACREFESEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFESEL_SHIFT 16 -#define DDR_PHY_IOVCR0_ACREFESEL_MASK 0x007F0000U +#define DDR_PHY_IOVCR0_ACREFESEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFESEL_SHIFT 16 +#define DDR_PHY_IOVCR0_ACREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT 15 -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT 15 +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK 0x00008000U -/*Address/command lane Single-End VREF Select*/ +/* +* Address/command lane Single-End VREF Select +*/ #undef DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSSEL_SHIFT #undef DDR_PHY_IOVCR0_ACREFSSEL_MASK -#define DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSSEL_SHIFT 8 -#define DDR_PHY_IOVCR0_ACREFSSEL_MASK 0x00007F00U +#define DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSSEL_SHIFT 8 +#define DDR_PHY_IOVCR0_ACREFSSEL_MASK 0x00007F00U -/*Internal VREF generator REFSEL ragne select*/ +/* +* Internal VREF generator REFSEL ragne select +*/ #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT 7 -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK 0x00000080U +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT 7 +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK 0x00000080U -/*REFSEL Control for internal AC IOs*/ +/* +* REFSEL Control for internal AC IOs +*/ #undef DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL #undef DDR_PHY_IOVCR0_ACVREFISEL_SHIFT #undef DDR_PHY_IOVCR0_ACVREFISEL_MASK -#define DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACVREFISEL_SHIFT 0 -#define DDR_PHY_IOVCR0_ACVREFISEL_MASK 0x0000007FU +#define DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACVREFISEL_SHIFT 0 +#define DDR_PHY_IOVCR0_ACVREFISEL_MASK 0x0000007FU -/*Number of ctl_clk required to meet (> 150ns) timing requirements during DRAM DQ VREF training*/ +/* +* Number of ctl_clk required to meet (> 150ns) timing requirements during + * DRAM DQ VREF training +*/ #undef DDR_PHY_VTCR0_TVREF_DEFVAL #undef DDR_PHY_VTCR0_TVREF_SHIFT #undef DDR_PHY_VTCR0_TVREF_MASK -#define DDR_PHY_VTCR0_TVREF_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_TVREF_SHIFT 29 -#define DDR_PHY_VTCR0_TVREF_MASK 0xE0000000U +#define DDR_PHY_VTCR0_TVREF_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_TVREF_SHIFT 29 +#define DDR_PHY_VTCR0_TVREF_MASK 0xE0000000U -/*DRM DQ VREF training Enable*/ +/* +* DRM DQ VREF training Enable +*/ #undef DDR_PHY_VTCR0_DVEN_DEFVAL #undef DDR_PHY_VTCR0_DVEN_SHIFT #undef DDR_PHY_VTCR0_DVEN_MASK -#define DDR_PHY_VTCR0_DVEN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVEN_SHIFT 28 -#define DDR_PHY_VTCR0_DVEN_MASK 0x10000000U +#define DDR_PHY_VTCR0_DVEN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVEN_SHIFT 28 +#define DDR_PHY_VTCR0_DVEN_MASK 0x10000000U -/*Per Device Addressability Enable*/ +/* +* Per Device Addressability Enable +*/ #undef DDR_PHY_VTCR0_PDAEN_DEFVAL #undef DDR_PHY_VTCR0_PDAEN_SHIFT #undef DDR_PHY_VTCR0_PDAEN_MASK -#define DDR_PHY_VTCR0_PDAEN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_PDAEN_SHIFT 27 -#define DDR_PHY_VTCR0_PDAEN_MASK 0x08000000U +#define DDR_PHY_VTCR0_PDAEN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_PDAEN_SHIFT 27 +#define DDR_PHY_VTCR0_PDAEN_MASK 0x08000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR0_RESERVED_26_DEFVAL #undef DDR_PHY_VTCR0_RESERVED_26_SHIFT #undef DDR_PHY_VTCR0_RESERVED_26_MASK -#define DDR_PHY_VTCR0_RESERVED_26_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_RESERVED_26_SHIFT 26 -#define DDR_PHY_VTCR0_RESERVED_26_MASK 0x04000000U +#define DDR_PHY_VTCR0_RESERVED_26_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_RESERVED_26_SHIFT 26 +#define DDR_PHY_VTCR0_RESERVED_26_MASK 0x04000000U -/*VREF Word Count*/ +/* +* VREF Word Count +*/ #undef DDR_PHY_VTCR0_VWCR_DEFVAL #undef DDR_PHY_VTCR0_VWCR_SHIFT #undef DDR_PHY_VTCR0_VWCR_MASK -#define DDR_PHY_VTCR0_VWCR_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_VWCR_SHIFT 22 -#define DDR_PHY_VTCR0_VWCR_MASK 0x03C00000U +#define DDR_PHY_VTCR0_VWCR_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_VWCR_SHIFT 22 +#define DDR_PHY_VTCR0_VWCR_MASK 0x03C00000U -/*DRAM DQ VREF step size used during DRAM VREF training*/ +/* +* DRAM DQ VREF step size used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVSS_DEFVAL #undef DDR_PHY_VTCR0_DVSS_SHIFT #undef DDR_PHY_VTCR0_DVSS_MASK -#define DDR_PHY_VTCR0_DVSS_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVSS_SHIFT 18 -#define DDR_PHY_VTCR0_DVSS_MASK 0x003C0000U +#define DDR_PHY_VTCR0_DVSS_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVSS_SHIFT 18 +#define DDR_PHY_VTCR0_DVSS_MASK 0x003C0000U -/*Maximum VREF limit value used during DRAM VREF training*/ +/* +* Maximum VREF limit value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVMAX_DEFVAL #undef DDR_PHY_VTCR0_DVMAX_SHIFT #undef DDR_PHY_VTCR0_DVMAX_MASK -#define DDR_PHY_VTCR0_DVMAX_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVMAX_SHIFT 12 -#define DDR_PHY_VTCR0_DVMAX_MASK 0x0003F000U +#define DDR_PHY_VTCR0_DVMAX_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVMAX_SHIFT 12 +#define DDR_PHY_VTCR0_DVMAX_MASK 0x0003F000U -/*Minimum VREF limit value used during DRAM VREF training*/ +/* +* Minimum VREF limit value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVMIN_DEFVAL #undef DDR_PHY_VTCR0_DVMIN_SHIFT #undef DDR_PHY_VTCR0_DVMIN_MASK -#define DDR_PHY_VTCR0_DVMIN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVMIN_SHIFT 6 -#define DDR_PHY_VTCR0_DVMIN_MASK 0x00000FC0U +#define DDR_PHY_VTCR0_DVMIN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVMIN_SHIFT 6 +#define DDR_PHY_VTCR0_DVMIN_MASK 0x00000FC0U -/*Initial DRAM DQ VREF value used during DRAM VREF training*/ +/* +* Initial DRAM DQ VREF value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVINIT_DEFVAL #undef DDR_PHY_VTCR0_DVINIT_SHIFT #undef DDR_PHY_VTCR0_DVINIT_MASK -#define DDR_PHY_VTCR0_DVINIT_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVINIT_SHIFT 0 -#define DDR_PHY_VTCR0_DVINIT_MASK 0x0000003FU +#define DDR_PHY_VTCR0_DVINIT_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVINIT_SHIFT 0 +#define DDR_PHY_VTCR0_DVINIT_MASK 0x0000003FU -/*Host VREF step size used during VREF training. The register value of N indicates step size of (N+1)*/ +/* +* Host VREF step size used during VREF training. The register value of N i + * ndicates step size of (N+1) +*/ #undef DDR_PHY_VTCR1_HVSS_DEFVAL #undef DDR_PHY_VTCR1_HVSS_SHIFT #undef DDR_PHY_VTCR1_HVSS_MASK -#define DDR_PHY_VTCR1_HVSS_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVSS_SHIFT 28 -#define DDR_PHY_VTCR1_HVSS_MASK 0xF0000000U +#define DDR_PHY_VTCR1_HVSS_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVSS_SHIFT 28 +#define DDR_PHY_VTCR1_HVSS_MASK 0xF0000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_27_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_27_SHIFT #undef DDR_PHY_VTCR1_RESERVED_27_MASK -#define DDR_PHY_VTCR1_RESERVED_27_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_27_SHIFT 27 -#define DDR_PHY_VTCR1_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_VTCR1_RESERVED_27_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_27_SHIFT 27 +#define DDR_PHY_VTCR1_RESERVED_27_MASK 0x08000000U -/*Maximum VREF limit value used during DRAM VREF training.*/ +/* +* Maximum VREF limit value used during DRAM VREF training. +*/ #undef DDR_PHY_VTCR1_HVMAX_DEFVAL #undef DDR_PHY_VTCR1_HVMAX_SHIFT #undef DDR_PHY_VTCR1_HVMAX_MASK -#define DDR_PHY_VTCR1_HVMAX_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVMAX_SHIFT 20 -#define DDR_PHY_VTCR1_HVMAX_MASK 0x07F00000U +#define DDR_PHY_VTCR1_HVMAX_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVMAX_SHIFT 20 +#define DDR_PHY_VTCR1_HVMAX_MASK 0x07F00000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_19_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_19_SHIFT #undef DDR_PHY_VTCR1_RESERVED_19_MASK -#define DDR_PHY_VTCR1_RESERVED_19_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_19_SHIFT 19 -#define DDR_PHY_VTCR1_RESERVED_19_MASK 0x00080000U +#define DDR_PHY_VTCR1_RESERVED_19_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_19_SHIFT 19 +#define DDR_PHY_VTCR1_RESERVED_19_MASK 0x00080000U -/*Minimum VREF limit value used during DRAM VREF training.*/ +/* +* Minimum VREF limit value used during DRAM VREF training. +*/ #undef DDR_PHY_VTCR1_HVMIN_DEFVAL #undef DDR_PHY_VTCR1_HVMIN_SHIFT #undef DDR_PHY_VTCR1_HVMIN_MASK -#define DDR_PHY_VTCR1_HVMIN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVMIN_SHIFT 12 -#define DDR_PHY_VTCR1_HVMIN_MASK 0x0007F000U +#define DDR_PHY_VTCR1_HVMIN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVMIN_SHIFT 12 +#define DDR_PHY_VTCR1_HVMIN_MASK 0x0007F000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_11_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_11_SHIFT #undef DDR_PHY_VTCR1_RESERVED_11_MASK -#define DDR_PHY_VTCR1_RESERVED_11_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_11_SHIFT 11 -#define DDR_PHY_VTCR1_RESERVED_11_MASK 0x00000800U +#define DDR_PHY_VTCR1_RESERVED_11_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_11_SHIFT 11 +#define DDR_PHY_VTCR1_RESERVED_11_MASK 0x00000800U -/*Static Host Vref Rank Value*/ +/* +* Static Host Vref Rank Value +*/ #undef DDR_PHY_VTCR1_SHRNK_DEFVAL #undef DDR_PHY_VTCR1_SHRNK_SHIFT #undef DDR_PHY_VTCR1_SHRNK_MASK -#define DDR_PHY_VTCR1_SHRNK_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_SHRNK_SHIFT 9 -#define DDR_PHY_VTCR1_SHRNK_MASK 0x00000600U +#define DDR_PHY_VTCR1_SHRNK_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_SHRNK_SHIFT 9 +#define DDR_PHY_VTCR1_SHRNK_MASK 0x00000600U -/*Static Host Vref Rank Enable*/ +/* +* Static Host Vref Rank Enable +*/ #undef DDR_PHY_VTCR1_SHREN_DEFVAL #undef DDR_PHY_VTCR1_SHREN_SHIFT #undef DDR_PHY_VTCR1_SHREN_MASK -#define DDR_PHY_VTCR1_SHREN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_SHREN_SHIFT 8 -#define DDR_PHY_VTCR1_SHREN_MASK 0x00000100U +#define DDR_PHY_VTCR1_SHREN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_SHREN_SHIFT 8 +#define DDR_PHY_VTCR1_SHREN_MASK 0x00000100U -/*Number of ctl_clk required to meet (> 200ns) VREF Settling timing requirements during Host IO VREF training*/ +/* +* Number of ctl_clk required to meet (> 200ns) VREF Settling timing requir + * ements during Host IO VREF training +*/ #undef DDR_PHY_VTCR1_TVREFIO_DEFVAL #undef DDR_PHY_VTCR1_TVREFIO_SHIFT #undef DDR_PHY_VTCR1_TVREFIO_MASK -#define DDR_PHY_VTCR1_TVREFIO_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_TVREFIO_SHIFT 5 -#define DDR_PHY_VTCR1_TVREFIO_MASK 0x000000E0U +#define DDR_PHY_VTCR1_TVREFIO_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_TVREFIO_SHIFT 5 +#define DDR_PHY_VTCR1_TVREFIO_MASK 0x000000E0U -/*Eye LCDL Offset value for VREF training*/ +/* +* Eye LCDL Offset value for VREF training +*/ #undef DDR_PHY_VTCR1_EOFF_DEFVAL #undef DDR_PHY_VTCR1_EOFF_SHIFT #undef DDR_PHY_VTCR1_EOFF_MASK -#define DDR_PHY_VTCR1_EOFF_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_EOFF_SHIFT 3 -#define DDR_PHY_VTCR1_EOFF_MASK 0x00000018U +#define DDR_PHY_VTCR1_EOFF_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_EOFF_SHIFT 3 +#define DDR_PHY_VTCR1_EOFF_MASK 0x00000018U -/*Number of LCDL Eye points for which VREF training is repeated*/ +/* +* Number of LCDL Eye points for which VREF training is repeated +*/ #undef DDR_PHY_VTCR1_ENUM_DEFVAL #undef DDR_PHY_VTCR1_ENUM_SHIFT #undef DDR_PHY_VTCR1_ENUM_MASK -#define DDR_PHY_VTCR1_ENUM_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_ENUM_SHIFT 2 -#define DDR_PHY_VTCR1_ENUM_MASK 0x00000004U +#define DDR_PHY_VTCR1_ENUM_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_ENUM_SHIFT 2 +#define DDR_PHY_VTCR1_ENUM_MASK 0x00000004U -/*HOST (IO) internal VREF training Enable*/ +/* +* HOST (IO) internal VREF training Enable +*/ #undef DDR_PHY_VTCR1_HVEN_DEFVAL #undef DDR_PHY_VTCR1_HVEN_SHIFT #undef DDR_PHY_VTCR1_HVEN_MASK -#define DDR_PHY_VTCR1_HVEN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVEN_SHIFT 1 -#define DDR_PHY_VTCR1_HVEN_MASK 0x00000002U +#define DDR_PHY_VTCR1_HVEN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVEN_SHIFT 1 +#define DDR_PHY_VTCR1_HVEN_MASK 0x00000002U -/*Host IO Type Control*/ +/* +* Host IO Type Control +*/ #undef DDR_PHY_VTCR1_HVIO_DEFVAL #undef DDR_PHY_VTCR1_HVIO_SHIFT #undef DDR_PHY_VTCR1_HVIO_MASK -#define DDR_PHY_VTCR1_HVIO_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVIO_SHIFT 0 -#define DDR_PHY_VTCR1_HVIO_MASK 0x00000001U +#define DDR_PHY_VTCR1_HVIO_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVIO_SHIFT 0 +#define DDR_PHY_VTCR1_HVIO_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR1_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR1_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Parity.*/ +/* +* Delay select for the BDL on Parity. +*/ #undef DDR_PHY_ACBDLR1_PARBD_DEFVAL #undef DDR_PHY_ACBDLR1_PARBD_SHIFT #undef DDR_PHY_ACBDLR1_PARBD_MASK -#define DDR_PHY_ACBDLR1_PARBD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_PARBD_SHIFT 24 -#define DDR_PHY_ACBDLR1_PARBD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR1_PARBD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_PARBD_SHIFT 24 +#define DDR_PHY_ACBDLR1_PARBD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR1_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR1_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[16]. In DDR3 mode this pin is connected to WE.*/ +/* +* Delay select for the BDL on Address A[16]. In DDR3 mode this pin is conn + * ected to WE. +*/ #undef DDR_PHY_ACBDLR1_A16BD_DEFVAL #undef DDR_PHY_ACBDLR1_A16BD_SHIFT #undef DDR_PHY_ACBDLR1_A16BD_MASK -#define DDR_PHY_ACBDLR1_A16BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_A16BD_SHIFT 16 -#define DDR_PHY_ACBDLR1_A16BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR1_A16BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_A16BD_SHIFT 16 +#define DDR_PHY_ACBDLR1_A16BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR1_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[17]. When not in DDR4 modemode this pin is connected to CAS.*/ +/* +* Delay select for the BDL on Address A[17]. When not in DDR4 modemode thi + * s pin is connected to CAS. +*/ #undef DDR_PHY_ACBDLR1_A17BD_DEFVAL #undef DDR_PHY_ACBDLR1_A17BD_SHIFT #undef DDR_PHY_ACBDLR1_A17BD_MASK -#define DDR_PHY_ACBDLR1_A17BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_A17BD_SHIFT 8 -#define DDR_PHY_ACBDLR1_A17BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR1_A17BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_A17BD_SHIFT 8 +#define DDR_PHY_ACBDLR1_A17BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR1_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR1_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on ACTN.*/ +/* +* Delay select for the BDL on ACTN. +*/ #undef DDR_PHY_ACBDLR1_ACTBD_DEFVAL #undef DDR_PHY_ACBDLR1_ACTBD_SHIFT #undef DDR_PHY_ACBDLR1_ACTBD_MASK -#define DDR_PHY_ACBDLR1_ACTBD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_ACTBD_SHIFT 0 -#define DDR_PHY_ACBDLR1_ACTBD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR1_ACTBD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_ACTBD_SHIFT 0 +#define DDR_PHY_ACBDLR1_ACTBD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR2_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR2_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on BG[1].*/ +/* +* Delay select for the BDL on BG[1]. +*/ #undef DDR_PHY_ACBDLR2_BG1BD_DEFVAL #undef DDR_PHY_ACBDLR2_BG1BD_SHIFT #undef DDR_PHY_ACBDLR2_BG1BD_MASK -#define DDR_PHY_ACBDLR2_BG1BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BG1BD_SHIFT 24 -#define DDR_PHY_ACBDLR2_BG1BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR2_BG1BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BG1BD_SHIFT 24 +#define DDR_PHY_ACBDLR2_BG1BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR2_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR2_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on BG[0].*/ +/* +* Delay select for the BDL on BG[0]. +*/ #undef DDR_PHY_ACBDLR2_BG0BD_DEFVAL #undef DDR_PHY_ACBDLR2_BG0BD_SHIFT #undef DDR_PHY_ACBDLR2_BG0BD_MASK -#define DDR_PHY_ACBDLR2_BG0BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BG0BD_SHIFT 16 -#define DDR_PHY_ACBDLR2_BG0BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR2_BG0BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BG0BD_SHIFT 16 +#define DDR_PHY_ACBDLR2_BG0BD_MASK 0x003F0000U -/*Reser.ved Return zeroes on reads.*/ +/* +* Reser.ved Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR2_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR2_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on BA[1].*/ +/* +* Delay select for the BDL on BA[1]. +*/ #undef DDR_PHY_ACBDLR2_BA1BD_DEFVAL #undef DDR_PHY_ACBDLR2_BA1BD_SHIFT #undef DDR_PHY_ACBDLR2_BA1BD_MASK -#define DDR_PHY_ACBDLR2_BA1BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BA1BD_SHIFT 8 -#define DDR_PHY_ACBDLR2_BA1BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR2_BA1BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BA1BD_SHIFT 8 +#define DDR_PHY_ACBDLR2_BA1BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR2_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR2_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on BA[0].*/ +/* +* Delay select for the BDL on BA[0]. +*/ #undef DDR_PHY_ACBDLR2_BA0BD_DEFVAL #undef DDR_PHY_ACBDLR2_BA0BD_SHIFT #undef DDR_PHY_ACBDLR2_BA0BD_MASK -#define DDR_PHY_ACBDLR2_BA0BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BA0BD_SHIFT 0 -#define DDR_PHY_ACBDLR2_BA0BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR2_BA0BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BA0BD_SHIFT 0 +#define DDR_PHY_ACBDLR2_BA0BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR6_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[3].*/ +/* +* Delay select for the BDL on Address A[3]. +*/ #undef DDR_PHY_ACBDLR6_A03BD_DEFVAL #undef DDR_PHY_ACBDLR6_A03BD_SHIFT #undef DDR_PHY_ACBDLR6_A03BD_MASK -#define DDR_PHY_ACBDLR6_A03BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A03BD_SHIFT 24 -#define DDR_PHY_ACBDLR6_A03BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR6_A03BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A03BD_SHIFT 24 +#define DDR_PHY_ACBDLR6_A03BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR6_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[2].*/ +/* +* Delay select for the BDL on Address A[2]. +*/ #undef DDR_PHY_ACBDLR6_A02BD_DEFVAL #undef DDR_PHY_ACBDLR6_A02BD_SHIFT #undef DDR_PHY_ACBDLR6_A02BD_MASK -#define DDR_PHY_ACBDLR6_A02BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A02BD_SHIFT 16 -#define DDR_PHY_ACBDLR6_A02BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR6_A02BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A02BD_SHIFT 16 +#define DDR_PHY_ACBDLR6_A02BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR6_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[1].*/ +/* +* Delay select for the BDL on Address A[1]. +*/ #undef DDR_PHY_ACBDLR6_A01BD_DEFVAL #undef DDR_PHY_ACBDLR6_A01BD_SHIFT #undef DDR_PHY_ACBDLR6_A01BD_MASK -#define DDR_PHY_ACBDLR6_A01BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A01BD_SHIFT 8 -#define DDR_PHY_ACBDLR6_A01BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR6_A01BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A01BD_SHIFT 8 +#define DDR_PHY_ACBDLR6_A01BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR6_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[0].*/ +/* +* Delay select for the BDL on Address A[0]. +*/ #undef DDR_PHY_ACBDLR6_A00BD_DEFVAL #undef DDR_PHY_ACBDLR6_A00BD_SHIFT #undef DDR_PHY_ACBDLR6_A00BD_MASK -#define DDR_PHY_ACBDLR6_A00BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A00BD_SHIFT 0 -#define DDR_PHY_ACBDLR6_A00BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR6_A00BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A00BD_SHIFT 0 +#define DDR_PHY_ACBDLR6_A00BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR7_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR7_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[7].*/ +/* +* Delay select for the BDL on Address A[7]. +*/ #undef DDR_PHY_ACBDLR7_A07BD_DEFVAL #undef DDR_PHY_ACBDLR7_A07BD_SHIFT #undef DDR_PHY_ACBDLR7_A07BD_MASK -#define DDR_PHY_ACBDLR7_A07BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A07BD_SHIFT 24 -#define DDR_PHY_ACBDLR7_A07BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR7_A07BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A07BD_SHIFT 24 +#define DDR_PHY_ACBDLR7_A07BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR7_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR7_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[6].*/ +/* +* Delay select for the BDL on Address A[6]. +*/ #undef DDR_PHY_ACBDLR7_A06BD_DEFVAL #undef DDR_PHY_ACBDLR7_A06BD_SHIFT #undef DDR_PHY_ACBDLR7_A06BD_MASK -#define DDR_PHY_ACBDLR7_A06BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A06BD_SHIFT 16 -#define DDR_PHY_ACBDLR7_A06BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR7_A06BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A06BD_SHIFT 16 +#define DDR_PHY_ACBDLR7_A06BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR7_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR7_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[5].*/ +/* +* Delay select for the BDL on Address A[5]. +*/ #undef DDR_PHY_ACBDLR7_A05BD_DEFVAL #undef DDR_PHY_ACBDLR7_A05BD_SHIFT #undef DDR_PHY_ACBDLR7_A05BD_MASK -#define DDR_PHY_ACBDLR7_A05BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A05BD_SHIFT 8 -#define DDR_PHY_ACBDLR7_A05BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR7_A05BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A05BD_SHIFT 8 +#define DDR_PHY_ACBDLR7_A05BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR7_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR7_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[4].*/ +/* +* Delay select for the BDL on Address A[4]. +*/ #undef DDR_PHY_ACBDLR7_A04BD_DEFVAL #undef DDR_PHY_ACBDLR7_A04BD_SHIFT #undef DDR_PHY_ACBDLR7_A04BD_MASK -#define DDR_PHY_ACBDLR7_A04BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A04BD_SHIFT 0 -#define DDR_PHY_ACBDLR7_A04BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR7_A04BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A04BD_SHIFT 0 +#define DDR_PHY_ACBDLR7_A04BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR8_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR8_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[11].*/ +/* +* Delay select for the BDL on Address A[11]. +*/ #undef DDR_PHY_ACBDLR8_A11BD_DEFVAL #undef DDR_PHY_ACBDLR8_A11BD_SHIFT #undef DDR_PHY_ACBDLR8_A11BD_MASK -#define DDR_PHY_ACBDLR8_A11BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A11BD_SHIFT 24 -#define DDR_PHY_ACBDLR8_A11BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR8_A11BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A11BD_SHIFT 24 +#define DDR_PHY_ACBDLR8_A11BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR8_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR8_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[10].*/ +/* +* Delay select for the BDL on Address A[10]. +*/ #undef DDR_PHY_ACBDLR8_A10BD_DEFVAL #undef DDR_PHY_ACBDLR8_A10BD_SHIFT #undef DDR_PHY_ACBDLR8_A10BD_MASK -#define DDR_PHY_ACBDLR8_A10BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A10BD_SHIFT 16 -#define DDR_PHY_ACBDLR8_A10BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR8_A10BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A10BD_SHIFT 16 +#define DDR_PHY_ACBDLR8_A10BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR8_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR8_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[9].*/ +/* +* Delay select for the BDL on Address A[9]. +*/ #undef DDR_PHY_ACBDLR8_A09BD_DEFVAL #undef DDR_PHY_ACBDLR8_A09BD_SHIFT #undef DDR_PHY_ACBDLR8_A09BD_MASK -#define DDR_PHY_ACBDLR8_A09BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A09BD_SHIFT 8 -#define DDR_PHY_ACBDLR8_A09BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR8_A09BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A09BD_SHIFT 8 +#define DDR_PHY_ACBDLR8_A09BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR8_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR8_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[8].*/ +/* +* Delay select for the BDL on Address A[8]. +*/ #undef DDR_PHY_ACBDLR8_A08BD_DEFVAL #undef DDR_PHY_ACBDLR8_A08BD_SHIFT #undef DDR_PHY_ACBDLR8_A08BD_MASK -#define DDR_PHY_ACBDLR8_A08BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A08BD_SHIFT 0 -#define DDR_PHY_ACBDLR8_A08BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR8_A08BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A08BD_SHIFT 0 +#define DDR_PHY_ACBDLR8_A08BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR9_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR9_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[15].*/ +/* +* Delay select for the BDL on Address A[15]. +*/ #undef DDR_PHY_ACBDLR9_A15BD_DEFVAL #undef DDR_PHY_ACBDLR9_A15BD_SHIFT #undef DDR_PHY_ACBDLR9_A15BD_MASK -#define DDR_PHY_ACBDLR9_A15BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A15BD_SHIFT 24 -#define DDR_PHY_ACBDLR9_A15BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR9_A15BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A15BD_SHIFT 24 +#define DDR_PHY_ACBDLR9_A15BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR9_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR9_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[14].*/ +/* +* Delay select for the BDL on Address A[14]. +*/ #undef DDR_PHY_ACBDLR9_A14BD_DEFVAL #undef DDR_PHY_ACBDLR9_A14BD_SHIFT #undef DDR_PHY_ACBDLR9_A14BD_MASK -#define DDR_PHY_ACBDLR9_A14BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A14BD_SHIFT 16 -#define DDR_PHY_ACBDLR9_A14BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR9_A14BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A14BD_SHIFT 16 +#define DDR_PHY_ACBDLR9_A14BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR9_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR9_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[13].*/ +/* +* Delay select for the BDL on Address A[13]. +*/ #undef DDR_PHY_ACBDLR9_A13BD_DEFVAL #undef DDR_PHY_ACBDLR9_A13BD_SHIFT #undef DDR_PHY_ACBDLR9_A13BD_MASK -#define DDR_PHY_ACBDLR9_A13BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A13BD_SHIFT 8 -#define DDR_PHY_ACBDLR9_A13BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR9_A13BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A13BD_SHIFT 8 +#define DDR_PHY_ACBDLR9_A13BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR9_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR9_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[12].*/ +/* +* Delay select for the BDL on Address A[12]. +*/ #undef DDR_PHY_ACBDLR9_A12BD_DEFVAL #undef DDR_PHY_ACBDLR9_A12BD_SHIFT #undef DDR_PHY_ACBDLR9_A12BD_MASK -#define DDR_PHY_ACBDLR9_A12BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A12BD_SHIFT 0 -#define DDR_PHY_ACBDLR9_A12BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR9_A12BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A12BD_SHIFT 0 +#define DDR_PHY_ACBDLR9_A12BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQCR_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQCR_RESERVED_31_26_MASK -#define DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQCR_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQCR_RESERVED_31_26_MASK 0xFC000000U -/*ZQ VREF Range*/ +/* +* ZQ VREF Range +*/ #undef DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL #undef DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT #undef DDR_PHY_ZQCR_ZQREFISELRANGE_MASK -#define DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT 25 -#define DDR_PHY_ZQCR_ZQREFISELRANGE_MASK 0x02000000U +#define DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT 25 +#define DDR_PHY_ZQCR_ZQREFISELRANGE_MASK 0x02000000U -/*Programmable Wait for Frequency B*/ +/* +* Programmable Wait for Frequency B +*/ #undef DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL #undef DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT #undef DDR_PHY_ZQCR_PGWAIT_FRQB_MASK -#define DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT 19 -#define DDR_PHY_ZQCR_PGWAIT_FRQB_MASK 0x01F80000U +#define DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT 19 +#define DDR_PHY_ZQCR_PGWAIT_FRQB_MASK 0x01F80000U -/*Programmable Wait for Frequency A*/ +/* +* Programmable Wait for Frequency A +*/ #undef DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL #undef DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT #undef DDR_PHY_ZQCR_PGWAIT_FRQA_MASK -#define DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT 13 -#define DDR_PHY_ZQCR_PGWAIT_FRQA_MASK 0x0007E000U +#define DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT 13 +#define DDR_PHY_ZQCR_PGWAIT_FRQA_MASK 0x0007E000U -/*ZQ VREF Pad Enable*/ +/* +* ZQ VREF Pad Enable +*/ #undef DDR_PHY_ZQCR_ZQREFPEN_DEFVAL #undef DDR_PHY_ZQCR_ZQREFPEN_SHIFT #undef DDR_PHY_ZQCR_ZQREFPEN_MASK -#define DDR_PHY_ZQCR_ZQREFPEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFPEN_SHIFT 12 -#define DDR_PHY_ZQCR_ZQREFPEN_MASK 0x00001000U +#define DDR_PHY_ZQCR_ZQREFPEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFPEN_SHIFT 12 +#define DDR_PHY_ZQCR_ZQREFPEN_MASK 0x00001000U -/*ZQ Internal VREF Enable*/ +/* +* ZQ Internal VREF Enable +*/ #undef DDR_PHY_ZQCR_ZQREFIEN_DEFVAL #undef DDR_PHY_ZQCR_ZQREFIEN_SHIFT #undef DDR_PHY_ZQCR_ZQREFIEN_MASK -#define DDR_PHY_ZQCR_ZQREFIEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFIEN_SHIFT 11 -#define DDR_PHY_ZQCR_ZQREFIEN_MASK 0x00000800U +#define DDR_PHY_ZQCR_ZQREFIEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFIEN_SHIFT 11 +#define DDR_PHY_ZQCR_ZQREFIEN_MASK 0x00000800U -/*Choice of termination mode*/ +/* +* Choice of termination mode +*/ #undef DDR_PHY_ZQCR_ODT_MODE_DEFVAL #undef DDR_PHY_ZQCR_ODT_MODE_SHIFT #undef DDR_PHY_ZQCR_ODT_MODE_MASK -#define DDR_PHY_ZQCR_ODT_MODE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ODT_MODE_SHIFT 9 -#define DDR_PHY_ZQCR_ODT_MODE_MASK 0x00000600U +#define DDR_PHY_ZQCR_ODT_MODE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ODT_MODE_SHIFT 9 +#define DDR_PHY_ZQCR_ODT_MODE_MASK 0x00000600U -/*Force ZCAL VT update*/ +/* +* Force ZCAL VT update +*/ #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT 8 -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK 0x00000100U +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT 8 +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK 0x00000100U -/*IO VT Drift Limit*/ +/* +* IO VT Drift Limit +*/ #undef DDR_PHY_ZQCR_IODLMT_DEFVAL #undef DDR_PHY_ZQCR_IODLMT_SHIFT #undef DDR_PHY_ZQCR_IODLMT_MASK -#define DDR_PHY_ZQCR_IODLMT_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_IODLMT_SHIFT 5 -#define DDR_PHY_ZQCR_IODLMT_MASK 0x000000E0U +#define DDR_PHY_ZQCR_IODLMT_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_IODLMT_SHIFT 5 +#define DDR_PHY_ZQCR_IODLMT_MASK 0x000000E0U -/*Averaging algorithm enable, if set, enables averaging algorithm*/ +/* +* Averaging algorithm enable, if set, enables averaging algorithm +*/ #undef DDR_PHY_ZQCR_AVGEN_DEFVAL #undef DDR_PHY_ZQCR_AVGEN_SHIFT #undef DDR_PHY_ZQCR_AVGEN_MASK -#define DDR_PHY_ZQCR_AVGEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_AVGEN_SHIFT 4 -#define DDR_PHY_ZQCR_AVGEN_MASK 0x00000010U +#define DDR_PHY_ZQCR_AVGEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_AVGEN_SHIFT 4 +#define DDR_PHY_ZQCR_AVGEN_MASK 0x00000010U -/*Maximum number of averaging rounds to be used by averaging algorithm*/ +/* +* Maximum number of averaging rounds to be used by averaging algorithm +*/ #undef DDR_PHY_ZQCR_AVGMAX_DEFVAL #undef DDR_PHY_ZQCR_AVGMAX_SHIFT #undef DDR_PHY_ZQCR_AVGMAX_MASK -#define DDR_PHY_ZQCR_AVGMAX_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_AVGMAX_SHIFT 2 -#define DDR_PHY_ZQCR_AVGMAX_MASK 0x0000000CU +#define DDR_PHY_ZQCR_AVGMAX_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_AVGMAX_SHIFT 2 +#define DDR_PHY_ZQCR_AVGMAX_MASK 0x0000000CU -/*ZQ Calibration Type*/ +/* +* ZQ Calibration Type +*/ #undef DDR_PHY_ZQCR_ZCALT_DEFVAL #undef DDR_PHY_ZQCR_ZCALT_SHIFT #undef DDR_PHY_ZQCR_ZCALT_MASK -#define DDR_PHY_ZQCR_ZCALT_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZCALT_SHIFT 1 -#define DDR_PHY_ZQCR_ZCALT_MASK 0x00000002U +#define DDR_PHY_ZQCR_ZCALT_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZCALT_SHIFT 1 +#define DDR_PHY_ZQCR_ZCALT_MASK 0x00000002U -/*ZQ Power Down*/ +/* +* ZQ Power Down +*/ #undef DDR_PHY_ZQCR_ZQPD_DEFVAL #undef DDR_PHY_ZQCR_ZQPD_SHIFT #undef DDR_PHY_ZQCR_ZQPD_MASK -#define DDR_PHY_ZQCR_ZQPD_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQPD_SHIFT 0 -#define DDR_PHY_ZQCR_ZQPD_MASK 0x00000001U +#define DDR_PHY_ZQCR_ZQPD_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQPD_SHIFT 0 +#define DDR_PHY_ZQCR_ZQPD_MASK 0x00000001U -/*Pull-down drive strength ZCTRL over-ride enable*/ +/* +* Pull-down drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT 31 -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK 0x80000000U +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT 31 +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK 0x80000000U -/*Pull-up drive strength ZCTRL over-ride enable*/ +/* +* Pull-up drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT 30 -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK 0x40000000U +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT 30 +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK 0x40000000U -/*Pull-down termination ZCTRL over-ride enable*/ +/* +* Pull-down termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT 29 -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK 0x20000000U +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT 29 +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK 0x20000000U -/*Pull-up termination ZCTRL over-ride enable*/ +/* +* Pull-up termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT 28 -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK 0x10000000U +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT 28 +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK 0x10000000U -/*Calibration segment bypass*/ +/* +* Calibration segment bypass +*/ #undef DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL #undef DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT #undef DDR_PHY_ZQ0PR0_ZSEGBYP_MASK -#define DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT 27 -#define DDR_PHY_ZQ0PR0_ZSEGBYP_MASK 0x08000000U +#define DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT 27 +#define DDR_PHY_ZQ0PR0_ZSEGBYP_MASK 0x08000000U -/*VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB*/ +/* +* VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB +*/ #undef DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL #undef DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT #undef DDR_PHY_ZQ0PR0_ZLE_MODE_MASK -#define DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT 25 -#define DDR_PHY_ZQ0PR0_ZLE_MODE_MASK 0x06000000U +#define DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT 25 +#define DDR_PHY_ZQ0PR0_ZLE_MODE_MASK 0x06000000U -/*Termination adjustment*/ +/* +* Termination adjustment +*/ #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT 22 -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK 0x01C00000U +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT 22 +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK 0x01C00000U -/*Pulldown drive strength adjustment*/ +/* +* Pulldown drive strength adjustment +*/ #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT 19 -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK 0x00380000U +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT 19 +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK 0x00380000U -/*Pullup drive strength adjustment*/ +/* +* Pullup drive strength adjustment +*/ #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT 16 -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK 0x00070000U +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT 16 +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK 0x00070000U -/*DRAM Impedance Divide Ratio*/ +/* +* DRAM Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT 12 -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT 12 +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U -/*HOST Impedance Divide Ratio*/ +/* +* HOST Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT 8 -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK 0x00000F00U +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT 8 +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK 0x00000F00U -/*Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U -/*Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK 0xFC000000U -/*Override value for the pull-up output impedance*/ +/* +* Override value for the pull-up output impedance +*/ #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT 16 -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK 0x03FF0000U +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT 16 +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK 0x03FF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK 0x0000FC00U -/*Override value for the pull-down output impedance*/ +/* +* Override value for the pull-down output impedance +*/ #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT 0 -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK 0x000003FFU +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT 0 +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK 0x000003FFU -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK 0xFC000000U -/*Override value for the pull-up termination*/ +/* +* Override value for the pull-up termination +*/ #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT 16 -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK 0x03FF0000U +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT 16 +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK 0x03FF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK 0x0000FC00U -/*Override value for the pull-down termination*/ +/* +* Override value for the pull-down termination +*/ #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT 0 -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK 0x000003FFU +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT 0 +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK 0x000003FFU -/*Pull-down drive strength ZCTRL over-ride enable*/ +/* +* Pull-down drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT 31 -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK 0x80000000U +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT 31 +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK 0x80000000U -/*Pull-up drive strength ZCTRL over-ride enable*/ +/* +* Pull-up drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT 30 -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK 0x40000000U +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT 30 +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK 0x40000000U -/*Pull-down termination ZCTRL over-ride enable*/ +/* +* Pull-down termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT 29 -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK 0x20000000U +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT 29 +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK 0x20000000U -/*Pull-up termination ZCTRL over-ride enable*/ +/* +* Pull-up termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT 28 -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK 0x10000000U +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT 28 +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK 0x10000000U -/*Calibration segment bypass*/ +/* +* Calibration segment bypass +*/ #undef DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL #undef DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT #undef DDR_PHY_ZQ1PR0_ZSEGBYP_MASK -#define DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT 27 -#define DDR_PHY_ZQ1PR0_ZSEGBYP_MASK 0x08000000U +#define DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT 27 +#define DDR_PHY_ZQ1PR0_ZSEGBYP_MASK 0x08000000U -/*VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB*/ +/* +* VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB +*/ #undef DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL #undef DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT #undef DDR_PHY_ZQ1PR0_ZLE_MODE_MASK -#define DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT 25 -#define DDR_PHY_ZQ1PR0_ZLE_MODE_MASK 0x06000000U +#define DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT 25 +#define DDR_PHY_ZQ1PR0_ZLE_MODE_MASK 0x06000000U -/*Termination adjustment*/ +/* +* Termination adjustment +*/ #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT 22 -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK 0x01C00000U +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT 22 +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK 0x01C00000U -/*Pulldown drive strength adjustment*/ +/* +* Pulldown drive strength adjustment +*/ #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT 19 -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK 0x00380000U +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT 19 +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK 0x00380000U -/*Pullup drive strength adjustment*/ +/* +* Pullup drive strength adjustment +*/ #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT 16 -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK 0x00070000U +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT 16 +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK 0x00070000U -/*DRAM Impedance Divide Ratio*/ +/* +* DRAM Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT 12 -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT 12 +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U -/*HOST Impedance Divide Ratio*/ +/* +* HOST Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT 8 -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK 0x00000F00U +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT 8 +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK 0x00000F00U -/*Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U -/*Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX0GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX0GCR0_CALBYP_SHIFT #undef DDR_PHY_DX0GCR0_CALBYP_MASK -#define DDR_PHY_DX0GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX0GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX0GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX0GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX0GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX0GCR0_MDLEN_SHIFT #undef DDR_PHY_DX0GCR0_MDLEN_MASK -#define DDR_PHY_DX0GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX0GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX0GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX0GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX0GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX0GCR0_CODTSHFT_MASK -#define DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX0GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX0GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX0GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX0GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX0GCR0_DQSDCC_MASK -#define DDR_PHY_DX0GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX0GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX0GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX0GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX0GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX0GCR0_RDDLY_SHIFT #undef DDR_PHY_DX0GCR0_RDDLY_MASK -#define DDR_PHY_DX0GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX0GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX0GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX0GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX0GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX0GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX0GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX0GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX0GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX0GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX0GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX0GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX0GCR0_RTTOAL_MASK -#define DDR_PHY_DX0GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX0GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX0GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX0GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX0GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX0GCR0_RTTOH_SHIFT #undef DDR_PHY_DX0GCR0_RTTOH_MASK -#define DDR_PHY_DX0GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX0GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX0GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX0GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX0GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX0GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX0GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX0GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX0GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX0GCR0_DQSRPD_MASK -#define DDR_PHY_DX0GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX0GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX0GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX0GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSGPDR_MASK -#define DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX0GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX0GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_4_MASK -#define DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX0GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX0GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX0GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX0GCR0_DQSGODT_MASK -#define DDR_PHY_DX0GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX0GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX0GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX0GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX0GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX0GCR0_DQSGOE_MASK -#define DDR_PHY_DX0GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX0GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX0GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX0GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX0GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX0GCR0_RESERVED_1_0_MASK 0x00000003U -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX0GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX0GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFPEN_MASK -#define DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX0GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX0GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFEEN_MASK -#define DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX0GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX0GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSEN_MASK -#define DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX0GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX0GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_24_MASK -#define DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX0GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX0GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX0GCR4_DXREFESEL_MASK -#define DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX0GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX0GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX0GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX0GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX0GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX0GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFIEN_MASK -#define DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX0GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX0GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX0GCR4_DXREFIMON_MASK -#define DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX0GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX0GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_31_MASK -#define DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX0GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX0GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX0GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX0GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_23_MASK -#define DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX0GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX0GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX0GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX0GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_15_MASK -#define DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX0GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX0GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX0GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX0GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_7_MASK -#define DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX0GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX0GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX0GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX0GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX0GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX0GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX0GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX0GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX0GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX0GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX0GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX0GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX0GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX0GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX0GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX0GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX0GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX0GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX0GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX0GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX0LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX0LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX0LCDLR2_DQSGD_MASK -#define DDR_PHY_DX0LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX0LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX0GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX0GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX0GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX0GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX0GTR0_WDQSL_MASK -#define DDR_PHY_DX0GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX0GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX0GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX0GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX0GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX0GTR0_WLSL_SHIFT -#undef DDR_PHY_DX0GTR0_WLSL_MASK -#define DDR_PHY_DX0GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX0GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX0GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX0GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX0GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX0GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX0GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX0GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX0GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX0GTR0_DGSL_SHIFT -#undef DDR_PHY_DX0GTR0_DGSL_MASK -#define DDR_PHY_DX0GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX0GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX1GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX1GCR0_CALBYP_SHIFT #undef DDR_PHY_DX1GCR0_CALBYP_MASK -#define DDR_PHY_DX1GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX1GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX1GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX1GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX1GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX1GCR0_MDLEN_SHIFT #undef DDR_PHY_DX1GCR0_MDLEN_MASK -#define DDR_PHY_DX1GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX1GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX1GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX1GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX1GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX1GCR0_CODTSHFT_MASK -#define DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX1GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX1GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX1GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX1GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX1GCR0_DQSDCC_MASK -#define DDR_PHY_DX1GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX1GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX1GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX1GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX1GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX1GCR0_RDDLY_SHIFT #undef DDR_PHY_DX1GCR0_RDDLY_MASK -#define DDR_PHY_DX1GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX1GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX1GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX1GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX1GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX1GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX1GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX1GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX1GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX1GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX1GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX1GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX1GCR0_RTTOAL_MASK -#define DDR_PHY_DX1GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX1GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX1GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX1GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX1GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX1GCR0_RTTOH_SHIFT #undef DDR_PHY_DX1GCR0_RTTOH_MASK -#define DDR_PHY_DX1GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX1GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX1GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX1GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX1GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX1GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX1GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX1GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX1GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX1GCR0_DQSRPD_MASK -#define DDR_PHY_DX1GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX1GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX1GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX1GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSGPDR_MASK -#define DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX1GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX1GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_4_MASK -#define DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX1GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX1GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX1GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX1GCR0_DQSGODT_MASK -#define DDR_PHY_DX1GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX1GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX1GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX1GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX1GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX1GCR0_DQSGOE_MASK -#define DDR_PHY_DX1GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX1GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX1GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX1GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX1GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX1GCR0_RESERVED_1_0_MASK 0x00000003U -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX1GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX1GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFPEN_MASK -#define DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX1GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX1GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFEEN_MASK -#define DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX1GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX1GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSEN_MASK -#define DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX1GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX1GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_24_MASK -#define DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX1GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX1GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX1GCR4_DXREFESEL_MASK -#define DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX1GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX1GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX1GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX1GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX1GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX1GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFIEN_MASK -#define DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX1GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX1GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX1GCR4_DXREFIMON_MASK -#define DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX1GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX1GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_31_MASK -#define DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX1GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX1GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX1GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX1GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_23_MASK -#define DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX1GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX1GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX1GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX1GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_15_MASK -#define DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX1GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX1GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX1GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX1GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_7_MASK -#define DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX1GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX1GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX1GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX1GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX1GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX1GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX1GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX1GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX1GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX1GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX1GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX1GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX1GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX1GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX1GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX1GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX1GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX1GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX1GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX1GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX1LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX1LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX1LCDLR2_DQSGD_MASK -#define DDR_PHY_DX1LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX1LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX1GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX1GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX1GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX1GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX1GTR0_WDQSL_MASK -#define DDR_PHY_DX1GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX1GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX1GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX1GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX1GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX1GTR0_WLSL_SHIFT -#undef DDR_PHY_DX1GTR0_WLSL_MASK -#define DDR_PHY_DX1GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX1GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX1GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX1GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX1GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX1GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX1GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX1GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX1GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX1GTR0_DGSL_SHIFT -#undef DDR_PHY_DX1GTR0_DGSL_MASK -#define DDR_PHY_DX1GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX1GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX2GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX2GCR0_CALBYP_SHIFT #undef DDR_PHY_DX2GCR0_CALBYP_MASK -#define DDR_PHY_DX2GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX2GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX2GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX2GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX2GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX2GCR0_MDLEN_SHIFT #undef DDR_PHY_DX2GCR0_MDLEN_MASK -#define DDR_PHY_DX2GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX2GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX2GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX2GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX2GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX2GCR0_CODTSHFT_MASK -#define DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX2GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX2GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX2GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX2GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX2GCR0_DQSDCC_MASK -#define DDR_PHY_DX2GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX2GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX2GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX2GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX2GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX2GCR0_RDDLY_SHIFT #undef DDR_PHY_DX2GCR0_RDDLY_MASK -#define DDR_PHY_DX2GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX2GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX2GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX2GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX2GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX2GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX2GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX2GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX2GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX2GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX2GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX2GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX2GCR0_RTTOAL_MASK -#define DDR_PHY_DX2GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX2GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX2GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX2GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX2GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX2GCR0_RTTOH_SHIFT #undef DDR_PHY_DX2GCR0_RTTOH_MASK -#define DDR_PHY_DX2GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX2GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX2GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX2GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX2GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX2GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX2GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX2GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX2GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX2GCR0_DQSRPD_MASK -#define DDR_PHY_DX2GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX2GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX2GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX2GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSGPDR_MASK -#define DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX2GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX2GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_4_MASK -#define DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX2GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX2GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX2GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX2GCR0_DQSGODT_MASK -#define DDR_PHY_DX2GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX2GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX2GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX2GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX2GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX2GCR0_DQSGOE_MASK -#define DDR_PHY_DX2GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX2GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX2GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX2GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX2GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX2GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX2GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX2GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX2GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX2GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX2GCR1_RESERVED_15_MASK -#define DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX2GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX2GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX2GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX2GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX2GCR1_QSNSEL_MASK -#define DDR_PHY_DX2GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX2GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX2GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX2GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX2GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX2GCR1_QSSEL_SHIFT #undef DDR_PHY_DX2GCR1_QSSEL_MASK -#define DDR_PHY_DX2GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX2GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX2GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX2GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX2GCR1_OEEN_DEFVAL #undef DDR_PHY_DX2GCR1_OEEN_SHIFT #undef DDR_PHY_DX2GCR1_OEEN_MASK -#define DDR_PHY_DX2GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX2GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX2GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX2GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX2GCR1_PDREN_DEFVAL #undef DDR_PHY_DX2GCR1_PDREN_SHIFT #undef DDR_PHY_DX2GCR1_PDREN_MASK -#define DDR_PHY_DX2GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX2GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX2GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX2GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX2GCR1_TEEN_DEFVAL #undef DDR_PHY_DX2GCR1_TEEN_SHIFT #undef DDR_PHY_DX2GCR1_TEEN_MASK -#define DDR_PHY_DX2GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX2GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX2GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX2GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX2GCR1_DSEN_DEFVAL #undef DDR_PHY_DX2GCR1_DSEN_SHIFT #undef DDR_PHY_DX2GCR1_DSEN_MASK -#define DDR_PHY_DX2GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX2GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX2GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX2GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX2GCR1_DMEN_DEFVAL #undef DDR_PHY_DX2GCR1_DMEN_SHIFT #undef DDR_PHY_DX2GCR1_DMEN_MASK -#define DDR_PHY_DX2GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX2GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX2GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX2GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX2GCR1_DQEN_DEFVAL #undef DDR_PHY_DX2GCR1_DQEN_SHIFT #undef DDR_PHY_DX2GCR1_DQEN_MASK -#define DDR_PHY_DX2GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX2GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX2GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX2GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX2GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX2GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFPEN_MASK -#define DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX2GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX2GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFEEN_MASK -#define DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX2GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX2GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSEN_MASK -#define DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX2GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX2GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_24_MASK -#define DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX2GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX2GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX2GCR4_DXREFESEL_MASK -#define DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX2GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX2GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX2GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX2GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX2GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX2GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFIEN_MASK -#define DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX2GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX2GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX2GCR4_DXREFIMON_MASK -#define DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX2GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX2GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_31_MASK -#define DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX2GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX2GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX2GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX2GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_23_MASK -#define DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX2GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX2GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX2GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX2GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_15_MASK -#define DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX2GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX2GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX2GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX2GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_7_MASK -#define DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX2GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX2GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX2GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX2GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX2GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX2GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX2GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX2GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX2GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX2GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX2GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX2GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX2GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX2GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX2GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX2GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX2GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX2GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX2GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX2GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX2LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX2LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX2LCDLR2_DQSGD_MASK -#define DDR_PHY_DX2LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX2LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX2GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX2GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX2GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX2GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX2GTR0_WDQSL_MASK -#define DDR_PHY_DX2GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX2GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX2GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX2GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX2GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX2GTR0_WLSL_SHIFT -#undef DDR_PHY_DX2GTR0_WLSL_MASK -#define DDR_PHY_DX2GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX2GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX2GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX2GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX2GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX2GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX2GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX2GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX2GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX2GTR0_DGSL_SHIFT -#undef DDR_PHY_DX2GTR0_DGSL_MASK -#define DDR_PHY_DX2GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX2GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX3GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX3GCR0_CALBYP_SHIFT #undef DDR_PHY_DX3GCR0_CALBYP_MASK -#define DDR_PHY_DX3GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX3GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX3GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX3GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX3GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX3GCR0_MDLEN_SHIFT #undef DDR_PHY_DX3GCR0_MDLEN_MASK -#define DDR_PHY_DX3GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX3GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX3GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX3GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX3GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX3GCR0_CODTSHFT_MASK -#define DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX3GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX3GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX3GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX3GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX3GCR0_DQSDCC_MASK -#define DDR_PHY_DX3GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX3GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX3GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX3GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX3GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX3GCR0_RDDLY_SHIFT #undef DDR_PHY_DX3GCR0_RDDLY_MASK -#define DDR_PHY_DX3GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX3GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX3GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX3GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX3GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX3GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX3GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX3GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX3GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX3GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX3GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX3GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX3GCR0_RTTOAL_MASK -#define DDR_PHY_DX3GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX3GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX3GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX3GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX3GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX3GCR0_RTTOH_SHIFT #undef DDR_PHY_DX3GCR0_RTTOH_MASK -#define DDR_PHY_DX3GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX3GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX3GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX3GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX3GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX3GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX3GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX3GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX3GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX3GCR0_DQSRPD_MASK -#define DDR_PHY_DX3GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX3GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX3GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX3GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSGPDR_MASK -#define DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX3GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX3GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_4_MASK -#define DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX3GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX3GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX3GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX3GCR0_DQSGODT_MASK -#define DDR_PHY_DX3GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX3GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX3GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX3GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX3GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX3GCR0_DQSGOE_MASK -#define DDR_PHY_DX3GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX3GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX3GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX3GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX3GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX3GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX3GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX3GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX3GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX3GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX3GCR1_RESERVED_15_MASK -#define DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX3GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX3GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX3GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX3GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX3GCR1_QSNSEL_MASK -#define DDR_PHY_DX3GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX3GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX3GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX3GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX3GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX3GCR1_QSSEL_SHIFT #undef DDR_PHY_DX3GCR1_QSSEL_MASK -#define DDR_PHY_DX3GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX3GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX3GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX3GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX3GCR1_OEEN_DEFVAL #undef DDR_PHY_DX3GCR1_OEEN_SHIFT #undef DDR_PHY_DX3GCR1_OEEN_MASK -#define DDR_PHY_DX3GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX3GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX3GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX3GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX3GCR1_PDREN_DEFVAL #undef DDR_PHY_DX3GCR1_PDREN_SHIFT #undef DDR_PHY_DX3GCR1_PDREN_MASK -#define DDR_PHY_DX3GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX3GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX3GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX3GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX3GCR1_TEEN_DEFVAL #undef DDR_PHY_DX3GCR1_TEEN_SHIFT #undef DDR_PHY_DX3GCR1_TEEN_MASK -#define DDR_PHY_DX3GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX3GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX3GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX3GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX3GCR1_DSEN_DEFVAL #undef DDR_PHY_DX3GCR1_DSEN_SHIFT #undef DDR_PHY_DX3GCR1_DSEN_MASK -#define DDR_PHY_DX3GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX3GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX3GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX3GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX3GCR1_DMEN_DEFVAL #undef DDR_PHY_DX3GCR1_DMEN_SHIFT #undef DDR_PHY_DX3GCR1_DMEN_MASK -#define DDR_PHY_DX3GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX3GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX3GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX3GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX3GCR1_DQEN_DEFVAL #undef DDR_PHY_DX3GCR1_DQEN_SHIFT #undef DDR_PHY_DX3GCR1_DQEN_MASK -#define DDR_PHY_DX3GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX3GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX3GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX3GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX3GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX3GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFPEN_MASK -#define DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX3GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX3GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFEEN_MASK -#define DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX3GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX3GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSEN_MASK -#define DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX3GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX3GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_24_MASK -#define DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX3GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX3GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX3GCR4_DXREFESEL_MASK -#define DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX3GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX3GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX3GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX3GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX3GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX3GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFIEN_MASK -#define DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX3GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX3GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX3GCR4_DXREFIMON_MASK -#define DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX3GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX3GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_31_MASK -#define DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX3GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX3GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX3GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX3GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_23_MASK -#define DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX3GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX3GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX3GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX3GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_15_MASK -#define DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX3GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX3GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX3GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX3GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_7_MASK -#define DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX3GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX3GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX3GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX3GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX3GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX3GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX3GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX3GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX3GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX3GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX3GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX3GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX3GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX3GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX3GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX3GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX3GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX3GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX3GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX3GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX3LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX3LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX3LCDLR2_DQSGD_MASK -#define DDR_PHY_DX3LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX3LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX3GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX3GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX3GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX3GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX3GTR0_WDQSL_MASK -#define DDR_PHY_DX3GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX3GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX3GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX3GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX3GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX3GTR0_WLSL_SHIFT -#undef DDR_PHY_DX3GTR0_WLSL_MASK -#define DDR_PHY_DX3GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX3GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX3GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX3GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX3GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX3GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX3GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX3GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX3GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX3GTR0_DGSL_SHIFT -#undef DDR_PHY_DX3GTR0_DGSL_MASK -#define DDR_PHY_DX3GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX3GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX4GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX4GCR0_CALBYP_SHIFT #undef DDR_PHY_DX4GCR0_CALBYP_MASK -#define DDR_PHY_DX4GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX4GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX4GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX4GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX4GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX4GCR0_MDLEN_SHIFT #undef DDR_PHY_DX4GCR0_MDLEN_MASK -#define DDR_PHY_DX4GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX4GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX4GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX4GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX4GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX4GCR0_CODTSHFT_MASK -#define DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX4GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX4GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX4GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX4GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX4GCR0_DQSDCC_MASK -#define DDR_PHY_DX4GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX4GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX4GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX4GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX4GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX4GCR0_RDDLY_SHIFT #undef DDR_PHY_DX4GCR0_RDDLY_MASK -#define DDR_PHY_DX4GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX4GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX4GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX4GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX4GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX4GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX4GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX4GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX4GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX4GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX4GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX4GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX4GCR0_RTTOAL_MASK -#define DDR_PHY_DX4GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX4GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX4GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX4GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX4GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX4GCR0_RTTOH_SHIFT #undef DDR_PHY_DX4GCR0_RTTOH_MASK -#define DDR_PHY_DX4GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX4GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX4GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX4GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX4GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX4GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX4GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX4GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX4GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX4GCR0_DQSRPD_MASK -#define DDR_PHY_DX4GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX4GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX4GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX4GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSGPDR_MASK -#define DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX4GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX4GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_4_MASK -#define DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX4GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX4GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX4GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX4GCR0_DQSGODT_MASK -#define DDR_PHY_DX4GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX4GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX4GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX4GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX4GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX4GCR0_DQSGOE_MASK -#define DDR_PHY_DX4GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX4GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX4GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX4GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX4GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX4GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX4GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX4GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX4GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX4GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX4GCR1_RESERVED_15_MASK -#define DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX4GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX4GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX4GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX4GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX4GCR1_QSNSEL_MASK -#define DDR_PHY_DX4GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX4GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX4GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX4GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX4GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX4GCR1_QSSEL_SHIFT #undef DDR_PHY_DX4GCR1_QSSEL_MASK -#define DDR_PHY_DX4GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX4GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX4GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX4GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX4GCR1_OEEN_DEFVAL #undef DDR_PHY_DX4GCR1_OEEN_SHIFT #undef DDR_PHY_DX4GCR1_OEEN_MASK -#define DDR_PHY_DX4GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX4GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX4GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX4GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX4GCR1_PDREN_DEFVAL #undef DDR_PHY_DX4GCR1_PDREN_SHIFT #undef DDR_PHY_DX4GCR1_PDREN_MASK -#define DDR_PHY_DX4GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX4GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX4GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX4GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX4GCR1_TEEN_DEFVAL #undef DDR_PHY_DX4GCR1_TEEN_SHIFT #undef DDR_PHY_DX4GCR1_TEEN_MASK -#define DDR_PHY_DX4GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX4GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX4GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX4GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX4GCR1_DSEN_DEFVAL #undef DDR_PHY_DX4GCR1_DSEN_SHIFT #undef DDR_PHY_DX4GCR1_DSEN_MASK -#define DDR_PHY_DX4GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX4GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX4GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX4GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX4GCR1_DMEN_DEFVAL #undef DDR_PHY_DX4GCR1_DMEN_SHIFT #undef DDR_PHY_DX4GCR1_DMEN_MASK -#define DDR_PHY_DX4GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX4GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX4GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX4GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX4GCR1_DQEN_DEFVAL #undef DDR_PHY_DX4GCR1_DQEN_SHIFT #undef DDR_PHY_DX4GCR1_DQEN_MASK -#define DDR_PHY_DX4GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX4GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX4GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX4GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX4GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX4GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFPEN_MASK -#define DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX4GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX4GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFEEN_MASK -#define DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX4GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX4GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSEN_MASK -#define DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX4GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX4GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_24_MASK -#define DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX4GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX4GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX4GCR4_DXREFESEL_MASK -#define DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX4GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX4GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX4GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX4GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX4GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX4GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFIEN_MASK -#define DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX4GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX4GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX4GCR4_DXREFIMON_MASK -#define DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX4GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX4GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_31_MASK -#define DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX4GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX4GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX4GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX4GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_23_MASK -#define DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX4GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX4GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX4GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX4GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_15_MASK -#define DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX4GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX4GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX4GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX4GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_7_MASK -#define DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX4GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX4GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX4GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX4GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX4GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX4GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX4GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX4GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX4GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX4GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX4GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX4GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX4GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX4GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX4GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX4GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX4GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX4GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX4GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX4GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX4LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX4LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX4LCDLR2_DQSGD_MASK -#define DDR_PHY_DX4LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX4LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX4GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX4GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX4GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX4GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX4GTR0_WDQSL_MASK -#define DDR_PHY_DX4GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX4GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX4GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX4GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX4GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX4GTR0_WLSL_SHIFT -#undef DDR_PHY_DX4GTR0_WLSL_MASK -#define DDR_PHY_DX4GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX4GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX4GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX4GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX4GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX4GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX4GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX4GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX4GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX4GTR0_DGSL_SHIFT -#undef DDR_PHY_DX4GTR0_DGSL_MASK -#define DDR_PHY_DX4GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX4GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX5GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX5GCR0_CALBYP_SHIFT #undef DDR_PHY_DX5GCR0_CALBYP_MASK -#define DDR_PHY_DX5GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX5GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX5GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX5GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX5GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX5GCR0_MDLEN_SHIFT #undef DDR_PHY_DX5GCR0_MDLEN_MASK -#define DDR_PHY_DX5GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX5GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX5GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX5GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX5GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX5GCR0_CODTSHFT_MASK -#define DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX5GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX5GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX5GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX5GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX5GCR0_DQSDCC_MASK -#define DDR_PHY_DX5GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX5GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX5GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX5GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX5GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX5GCR0_RDDLY_SHIFT #undef DDR_PHY_DX5GCR0_RDDLY_MASK -#define DDR_PHY_DX5GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX5GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX5GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX5GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX5GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX5GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX5GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX5GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX5GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX5GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX5GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX5GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX5GCR0_RTTOAL_MASK -#define DDR_PHY_DX5GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX5GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX5GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX5GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX5GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX5GCR0_RTTOH_SHIFT #undef DDR_PHY_DX5GCR0_RTTOH_MASK -#define DDR_PHY_DX5GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX5GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX5GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX5GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX5GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX5GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX5GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX5GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX5GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX5GCR0_DQSRPD_MASK -#define DDR_PHY_DX5GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX5GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX5GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX5GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSGPDR_MASK -#define DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX5GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX5GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_4_MASK -#define DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX5GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX5GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX5GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX5GCR0_DQSGODT_MASK -#define DDR_PHY_DX5GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX5GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX5GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX5GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX5GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX5GCR0_DQSGOE_MASK -#define DDR_PHY_DX5GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX5GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX5GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX5GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX5GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX5GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX5GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX5GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX5GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX5GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX5GCR1_RESERVED_15_MASK -#define DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX5GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX5GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX5GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX5GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX5GCR1_QSNSEL_MASK -#define DDR_PHY_DX5GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX5GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX5GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX5GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX5GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX5GCR1_QSSEL_SHIFT #undef DDR_PHY_DX5GCR1_QSSEL_MASK -#define DDR_PHY_DX5GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX5GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX5GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX5GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX5GCR1_OEEN_DEFVAL #undef DDR_PHY_DX5GCR1_OEEN_SHIFT #undef DDR_PHY_DX5GCR1_OEEN_MASK -#define DDR_PHY_DX5GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX5GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX5GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX5GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX5GCR1_PDREN_DEFVAL #undef DDR_PHY_DX5GCR1_PDREN_SHIFT #undef DDR_PHY_DX5GCR1_PDREN_MASK -#define DDR_PHY_DX5GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX5GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX5GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX5GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX5GCR1_TEEN_DEFVAL #undef DDR_PHY_DX5GCR1_TEEN_SHIFT #undef DDR_PHY_DX5GCR1_TEEN_MASK -#define DDR_PHY_DX5GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX5GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX5GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX5GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX5GCR1_DSEN_DEFVAL #undef DDR_PHY_DX5GCR1_DSEN_SHIFT #undef DDR_PHY_DX5GCR1_DSEN_MASK -#define DDR_PHY_DX5GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX5GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX5GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX5GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX5GCR1_DMEN_DEFVAL #undef DDR_PHY_DX5GCR1_DMEN_SHIFT #undef DDR_PHY_DX5GCR1_DMEN_MASK -#define DDR_PHY_DX5GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX5GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX5GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX5GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX5GCR1_DQEN_DEFVAL #undef DDR_PHY_DX5GCR1_DQEN_SHIFT #undef DDR_PHY_DX5GCR1_DQEN_MASK -#define DDR_PHY_DX5GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX5GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX5GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX5GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX5GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX5GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFPEN_MASK -#define DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX5GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX5GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFEEN_MASK -#define DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX5GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX5GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSEN_MASK -#define DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX5GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX5GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_24_MASK -#define DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX5GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX5GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX5GCR4_DXREFESEL_MASK -#define DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX5GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX5GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX5GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX5GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX5GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX5GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFIEN_MASK -#define DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX5GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX5GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX5GCR4_DXREFIMON_MASK -#define DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX5GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX5GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_31_MASK -#define DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX5GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX5GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX5GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX5GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_23_MASK -#define DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX5GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX5GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX5GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX5GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_15_MASK -#define DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX5GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX5GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX5GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX5GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_7_MASK -#define DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX5GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX5GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX5GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX5GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX5GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX5GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX5GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX5GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX5GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX5GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX5GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX5GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX5GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX5GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX5GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX5GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX5GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX5GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX5GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX5GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX5LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX5LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX5LCDLR2_DQSGD_MASK -#define DDR_PHY_DX5LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX5LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX5GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX5GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX5GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX5GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX5GTR0_WDQSL_MASK -#define DDR_PHY_DX5GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX5GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX5GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX5GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX5GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX5GTR0_WLSL_SHIFT -#undef DDR_PHY_DX5GTR0_WLSL_MASK -#define DDR_PHY_DX5GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX5GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX5GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX5GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX5GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX5GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX5GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX5GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX5GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX5GTR0_DGSL_SHIFT -#undef DDR_PHY_DX5GTR0_DGSL_MASK -#define DDR_PHY_DX5GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX5GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX6GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX6GCR0_CALBYP_SHIFT #undef DDR_PHY_DX6GCR0_CALBYP_MASK -#define DDR_PHY_DX6GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX6GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX6GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX6GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX6GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX6GCR0_MDLEN_SHIFT #undef DDR_PHY_DX6GCR0_MDLEN_MASK -#define DDR_PHY_DX6GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX6GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX6GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX6GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX6GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX6GCR0_CODTSHFT_MASK -#define DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX6GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX6GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX6GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX6GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX6GCR0_DQSDCC_MASK -#define DDR_PHY_DX6GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX6GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX6GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX6GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX6GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX6GCR0_RDDLY_SHIFT #undef DDR_PHY_DX6GCR0_RDDLY_MASK -#define DDR_PHY_DX6GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX6GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX6GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX6GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX6GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX6GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX6GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX6GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX6GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX6GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX6GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX6GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX6GCR0_RTTOAL_MASK -#define DDR_PHY_DX6GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX6GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX6GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX6GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX6GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX6GCR0_RTTOH_SHIFT #undef DDR_PHY_DX6GCR0_RTTOH_MASK -#define DDR_PHY_DX6GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX6GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX6GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX6GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX6GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX6GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX6GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX6GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX6GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX6GCR0_DQSRPD_MASK -#define DDR_PHY_DX6GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX6GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX6GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX6GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSGPDR_MASK -#define DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX6GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX6GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_4_MASK -#define DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX6GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX6GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX6GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX6GCR0_DQSGODT_MASK -#define DDR_PHY_DX6GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX6GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX6GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX6GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX6GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX6GCR0_DQSGOE_MASK -#define DDR_PHY_DX6GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX6GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX6GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX6GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX6GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX6GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX6GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX6GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX6GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX6GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX6GCR1_RESERVED_15_MASK -#define DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX6GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX6GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX6GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX6GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX6GCR1_QSNSEL_MASK -#define DDR_PHY_DX6GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX6GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX6GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX6GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX6GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX6GCR1_QSSEL_SHIFT #undef DDR_PHY_DX6GCR1_QSSEL_MASK -#define DDR_PHY_DX6GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX6GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX6GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX6GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX6GCR1_OEEN_DEFVAL #undef DDR_PHY_DX6GCR1_OEEN_SHIFT #undef DDR_PHY_DX6GCR1_OEEN_MASK -#define DDR_PHY_DX6GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX6GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX6GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX6GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX6GCR1_PDREN_DEFVAL #undef DDR_PHY_DX6GCR1_PDREN_SHIFT #undef DDR_PHY_DX6GCR1_PDREN_MASK -#define DDR_PHY_DX6GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX6GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX6GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX6GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX6GCR1_TEEN_DEFVAL #undef DDR_PHY_DX6GCR1_TEEN_SHIFT #undef DDR_PHY_DX6GCR1_TEEN_MASK -#define DDR_PHY_DX6GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX6GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX6GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX6GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX6GCR1_DSEN_DEFVAL #undef DDR_PHY_DX6GCR1_DSEN_SHIFT #undef DDR_PHY_DX6GCR1_DSEN_MASK -#define DDR_PHY_DX6GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX6GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX6GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX6GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX6GCR1_DMEN_DEFVAL #undef DDR_PHY_DX6GCR1_DMEN_SHIFT #undef DDR_PHY_DX6GCR1_DMEN_MASK -#define DDR_PHY_DX6GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX6GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX6GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX6GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX6GCR1_DQEN_DEFVAL #undef DDR_PHY_DX6GCR1_DQEN_SHIFT #undef DDR_PHY_DX6GCR1_DQEN_MASK -#define DDR_PHY_DX6GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX6GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX6GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX6GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX6GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX6GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFPEN_MASK -#define DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX6GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX6GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFEEN_MASK -#define DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX6GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX6GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSEN_MASK -#define DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX6GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX6GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_24_MASK -#define DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX6GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX6GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX6GCR4_DXREFESEL_MASK -#define DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX6GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX6GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX6GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX6GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX6GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX6GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFIEN_MASK -#define DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX6GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX6GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX6GCR4_DXREFIMON_MASK -#define DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX6GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX6GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_31_MASK -#define DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX6GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX6GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX6GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX6GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_23_MASK -#define DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX6GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX6GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX6GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX6GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_15_MASK -#define DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX6GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX6GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX6GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX6GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_7_MASK -#define DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX6GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX6GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX6GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX6GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX6GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX6GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX6GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX6GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX6GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX6GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX6GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX6GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX6GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX6GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX6GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX6GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX6GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX6GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX6GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX6GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX6LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX6LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX6LCDLR2_DQSGD_MASK -#define DDR_PHY_DX6LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX6LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX6GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX6GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX6GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX6GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX6GTR0_WDQSL_MASK -#define DDR_PHY_DX6GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX6GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX6GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX6GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX6GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX6GTR0_WLSL_SHIFT -#undef DDR_PHY_DX6GTR0_WLSL_MASK -#define DDR_PHY_DX6GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX6GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX6GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX6GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX6GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX6GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX6GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX6GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX6GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX6GTR0_DGSL_SHIFT -#undef DDR_PHY_DX6GTR0_DGSL_MASK -#define DDR_PHY_DX6GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX6GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX7GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX7GCR0_CALBYP_SHIFT #undef DDR_PHY_DX7GCR0_CALBYP_MASK -#define DDR_PHY_DX7GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX7GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX7GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX7GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX7GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX7GCR0_MDLEN_SHIFT #undef DDR_PHY_DX7GCR0_MDLEN_MASK -#define DDR_PHY_DX7GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX7GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX7GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX7GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX7GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX7GCR0_CODTSHFT_MASK -#define DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX7GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX7GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX7GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX7GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX7GCR0_DQSDCC_MASK -#define DDR_PHY_DX7GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX7GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX7GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX7GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX7GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX7GCR0_RDDLY_SHIFT #undef DDR_PHY_DX7GCR0_RDDLY_MASK -#define DDR_PHY_DX7GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX7GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX7GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX7GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX7GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX7GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX7GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX7GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX7GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX7GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX7GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX7GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX7GCR0_RTTOAL_MASK -#define DDR_PHY_DX7GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX7GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX7GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX7GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX7GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX7GCR0_RTTOH_SHIFT #undef DDR_PHY_DX7GCR0_RTTOH_MASK -#define DDR_PHY_DX7GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX7GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX7GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX7GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX7GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX7GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX7GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX7GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX7GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX7GCR0_DQSRPD_MASK -#define DDR_PHY_DX7GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX7GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX7GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX7GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSGPDR_MASK -#define DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX7GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX7GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_4_MASK -#define DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX7GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX7GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX7GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX7GCR0_DQSGODT_MASK -#define DDR_PHY_DX7GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX7GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX7GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX7GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX7GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX7GCR0_DQSGOE_MASK -#define DDR_PHY_DX7GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX7GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX7GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX7GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX7GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX7GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX7GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX7GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX7GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX7GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX7GCR1_RESERVED_15_MASK -#define DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX7GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX7GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX7GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX7GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX7GCR1_QSNSEL_MASK -#define DDR_PHY_DX7GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX7GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX7GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX7GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX7GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX7GCR1_QSSEL_SHIFT #undef DDR_PHY_DX7GCR1_QSSEL_MASK -#define DDR_PHY_DX7GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX7GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX7GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX7GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX7GCR1_OEEN_DEFVAL #undef DDR_PHY_DX7GCR1_OEEN_SHIFT #undef DDR_PHY_DX7GCR1_OEEN_MASK -#define DDR_PHY_DX7GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX7GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX7GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX7GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX7GCR1_PDREN_DEFVAL #undef DDR_PHY_DX7GCR1_PDREN_SHIFT #undef DDR_PHY_DX7GCR1_PDREN_MASK -#define DDR_PHY_DX7GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX7GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX7GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX7GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX7GCR1_TEEN_DEFVAL #undef DDR_PHY_DX7GCR1_TEEN_SHIFT #undef DDR_PHY_DX7GCR1_TEEN_MASK -#define DDR_PHY_DX7GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX7GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX7GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX7GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX7GCR1_DSEN_DEFVAL #undef DDR_PHY_DX7GCR1_DSEN_SHIFT #undef DDR_PHY_DX7GCR1_DSEN_MASK -#define DDR_PHY_DX7GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX7GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX7GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX7GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX7GCR1_DMEN_DEFVAL #undef DDR_PHY_DX7GCR1_DMEN_SHIFT #undef DDR_PHY_DX7GCR1_DMEN_MASK -#define DDR_PHY_DX7GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX7GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX7GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX7GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX7GCR1_DQEN_DEFVAL #undef DDR_PHY_DX7GCR1_DQEN_SHIFT #undef DDR_PHY_DX7GCR1_DQEN_MASK -#define DDR_PHY_DX7GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX7GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX7GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX7GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX7GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX7GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFPEN_MASK -#define DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX7GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX7GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFEEN_MASK -#define DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX7GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX7GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSEN_MASK -#define DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX7GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX7GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_24_MASK -#define DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX7GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX7GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX7GCR4_DXREFESEL_MASK -#define DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX7GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX7GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX7GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX7GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX7GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX7GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFIEN_MASK -#define DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX7GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX7GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX7GCR4_DXREFIMON_MASK -#define DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX7GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX7GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_31_MASK -#define DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX7GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX7GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX7GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX7GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_23_MASK -#define DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX7GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX7GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX7GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX7GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_15_MASK -#define DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX7GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX7GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX7GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX7GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_7_MASK -#define DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX7GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX7GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX7GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX7GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX7GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX7GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX7GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX7GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX7GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX7GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX7GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX7GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX7GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX7GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX7GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX7GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX7GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX7GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX7GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX7GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX7LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX7LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX7LCDLR2_DQSGD_MASK -#define DDR_PHY_DX7LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX7LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX7GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX7GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX7GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX7GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX7GTR0_WDQSL_MASK -#define DDR_PHY_DX7GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX7GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX7GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX7GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX7GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX7GTR0_WLSL_SHIFT -#undef DDR_PHY_DX7GTR0_WLSL_MASK -#define DDR_PHY_DX7GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX7GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX7GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX7GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX7GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX7GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX7GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX7GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX7GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX7GTR0_DGSL_SHIFT -#undef DDR_PHY_DX7GTR0_DGSL_MASK -#define DDR_PHY_DX7GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX7GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX8GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX8GCR0_CALBYP_SHIFT #undef DDR_PHY_DX8GCR0_CALBYP_MASK -#define DDR_PHY_DX8GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX8GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX8GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX8GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX8GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX8GCR0_MDLEN_SHIFT #undef DDR_PHY_DX8GCR0_MDLEN_MASK -#define DDR_PHY_DX8GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX8GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX8GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX8GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX8GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX8GCR0_CODTSHFT_MASK -#define DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX8GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX8GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX8GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX8GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX8GCR0_DQSDCC_MASK -#define DDR_PHY_DX8GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX8GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX8GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX8GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX8GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX8GCR0_RDDLY_SHIFT #undef DDR_PHY_DX8GCR0_RDDLY_MASK -#define DDR_PHY_DX8GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX8GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX8GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX8GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX8GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX8GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX8GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX8GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX8GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX8GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX8GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX8GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX8GCR0_RTTOAL_MASK -#define DDR_PHY_DX8GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX8GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX8GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX8GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX8GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX8GCR0_RTTOH_SHIFT #undef DDR_PHY_DX8GCR0_RTTOH_MASK -#define DDR_PHY_DX8GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX8GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX8GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX8GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX8GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX8GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX8GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX8GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX8GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX8GCR0_DQSRPD_MASK -#define DDR_PHY_DX8GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX8GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX8GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX8GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSGPDR_MASK -#define DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX8GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX8GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_4_MASK -#define DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX8GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX8GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX8GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX8GCR0_DQSGODT_MASK -#define DDR_PHY_DX8GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX8GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX8GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX8GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX8GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX8GCR0_DQSGOE_MASK -#define DDR_PHY_DX8GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX8GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX8GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX8GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX8GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX8GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX8GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX8GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX8GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX8GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX8GCR1_RESERVED_15_MASK -#define DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX8GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX8GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX8GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX8GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX8GCR1_QSNSEL_MASK -#define DDR_PHY_DX8GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX8GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX8GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX8GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX8GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX8GCR1_QSSEL_SHIFT #undef DDR_PHY_DX8GCR1_QSSEL_MASK -#define DDR_PHY_DX8GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX8GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX8GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX8GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX8GCR1_OEEN_DEFVAL #undef DDR_PHY_DX8GCR1_OEEN_SHIFT #undef DDR_PHY_DX8GCR1_OEEN_MASK -#define DDR_PHY_DX8GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX8GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX8GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX8GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX8GCR1_PDREN_DEFVAL #undef DDR_PHY_DX8GCR1_PDREN_SHIFT #undef DDR_PHY_DX8GCR1_PDREN_MASK -#define DDR_PHY_DX8GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX8GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX8GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX8GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX8GCR1_TEEN_DEFVAL #undef DDR_PHY_DX8GCR1_TEEN_SHIFT #undef DDR_PHY_DX8GCR1_TEEN_MASK -#define DDR_PHY_DX8GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX8GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX8GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX8GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX8GCR1_DSEN_DEFVAL #undef DDR_PHY_DX8GCR1_DSEN_SHIFT #undef DDR_PHY_DX8GCR1_DSEN_MASK -#define DDR_PHY_DX8GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX8GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX8GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX8GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX8GCR1_DMEN_DEFVAL #undef DDR_PHY_DX8GCR1_DMEN_SHIFT #undef DDR_PHY_DX8GCR1_DMEN_MASK -#define DDR_PHY_DX8GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX8GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX8GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX8GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX8GCR1_DQEN_DEFVAL #undef DDR_PHY_DX8GCR1_DQEN_SHIFT #undef DDR_PHY_DX8GCR1_DQEN_MASK -#define DDR_PHY_DX8GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX8GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX8GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX8GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX8GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX8GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFPEN_MASK -#define DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX8GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX8GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFEEN_MASK -#define DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX8GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX8GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSEN_MASK -#define DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX8GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX8GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_24_MASK -#define DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX8GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX8GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX8GCR4_DXREFESEL_MASK -#define DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX8GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX8GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX8GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX8GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX8GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX8GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFIEN_MASK -#define DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX8GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX8GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX8GCR4_DXREFIMON_MASK -#define DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX8GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX8GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_31_MASK -#define DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX8GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX8GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_23_MASK -#define DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX8GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX8GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX8GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX8GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_15_MASK -#define DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX8GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX8GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX8GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX8GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_7_MASK -#define DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX8GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX8GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX8GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX8GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX8GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX8GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX8GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX8GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX8GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX8GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX8GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX8GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX8GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX8GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX8GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX8GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX8LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX8LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX8LCDLR2_DQSGD_MASK -#define DDR_PHY_DX8LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX8LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX8GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX8GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX8GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX8GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX8GTR0_WDQSL_MASK -#define DDR_PHY_DX8GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX8GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX8GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX8GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX8GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX8GTR0_WLSL_SHIFT -#undef DDR_PHY_DX8GTR0_WLSL_MASK -#define DDR_PHY_DX8GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX8GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX8GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX8GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX8GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX8GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX8GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX8GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX8GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX8GTR0_DGSL_SHIFT -#undef DDR_PHY_DX8GTR0_DGSL_MASK -#define DDR_PHY_DX8GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX8GTR0_DGSL_MASK 0x0000001FU - -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL0OSC_LBMODE_MASK -#define DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL0OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL0OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL0OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL0OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL0OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL0OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL0OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL0OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL0OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL0OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL0OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL0OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL0OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL0OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL0OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL0OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL0OSC_DLTST_MASK -#define DDR_PHY_DX8SL0OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL0OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL0OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL0OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL0OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL0OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL0OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL0OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL0OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL0OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL0OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL0OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL0OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCEN_MASK -#define DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL0OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL0OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL0PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL0PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL0PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL0PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL0PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL0PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL0PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL0PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL0DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL0DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL0DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL0DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL0DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL0DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL0DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL0DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL0DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL0DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL0DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL0DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL0IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL0IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL0IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL0IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL0IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL0IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL1OSC_LBMODE_MASK -#define DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL1OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL1OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL1OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL1OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL1OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL1OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL1OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL1OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL1OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL1OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL1OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL1OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL1OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL1OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL1OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL1OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL1OSC_DLTST_MASK -#define DDR_PHY_DX8SL1OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL1OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL1OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL1OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL1OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL1OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL1OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL1OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL1OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL1OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL1OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL1OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL1OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCEN_MASK -#define DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL1OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL1OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL1PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL1PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL1PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL1PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL1PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL1PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL1PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL1PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL1DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL1DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL1DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL1DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL1DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL1DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL1DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL1DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL1DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL1DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL1DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL1DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL1IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL1IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL1IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL1IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL1IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL1IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL2OSC_LBMODE_MASK -#define DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL2OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL2OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL2OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL2OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL2OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL2OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL2OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL2OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL2OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL2OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL2OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL2OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL2OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL2OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL2OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL2OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL2OSC_DLTST_MASK -#define DDR_PHY_DX8SL2OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL2OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL2OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL2OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL2OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL2OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL2OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL2OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL2OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL2OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL2OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL2OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL2OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCEN_MASK -#define DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL2OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL2OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL2PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL2PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL2PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL2PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL2PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL2PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL2PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL2PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL2DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL2DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL2DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL2DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL2DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL2DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL2DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL2DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL2DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL2DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL2DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL2DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL2IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL2IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL2IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL2IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL2IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL2IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL3OSC_LBMODE_MASK -#define DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL3OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL3OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL3OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL3OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL3OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL3OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL3OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL3OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL3OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL3OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL3OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL3OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL3OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL3OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL3OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL3OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL3OSC_DLTST_MASK -#define DDR_PHY_DX8SL3OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL3OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL3OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL3OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL3OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL3OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL3OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL3OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL3OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL3OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL3OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL3OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL3OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCEN_MASK -#define DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL3OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL3OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL3PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL3PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL3PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL3PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL3PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL3PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL3PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL3PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL3DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL3DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL3DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL3DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL3DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL3DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL3DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL3DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL3DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL3DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL3DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL3DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL3IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL3IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL3IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL3IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL3IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL3IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL4OSC_LBMODE_MASK -#define DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL4OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL4OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL4OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL4OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL4OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL4OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL4OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL4OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL4OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL4OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL4OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL4OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL4OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL4OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL4OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL4OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL4OSC_DLTST_MASK -#define DDR_PHY_DX8SL4OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL4OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL4OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL4OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL4OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL4OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL4OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL4OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL4OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL4OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL4OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL4OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL4OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCEN_MASK -#define DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL4OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL4OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL4PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL4PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL4PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL4PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL4PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL4PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL4PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL4PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL4DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL4DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL4DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL4DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL4DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL4DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL4DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL4DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL4DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL4DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL4DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL4DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL4IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL4IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL4IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL4IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL4IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL4IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_MASK +#define DDR_PHY_DX8SLBPLLCR0_CPPC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SLBPLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_MASK +#define DDR_PHY_DX8SLBPLLCR0_CPIC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SLBPLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_ATC_MASK +#define DDR_PHY_DX8SLBPLLCR0_ATC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SLBPLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_DTC_MASK +#define DDR_PHY_DX8SLBPLLCR0_DTC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SLBPLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DXSR_MASK -#define DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SLBDQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SLBDQSCTL_DXSR_MASK 0x00000300U -/*DQS# Resistor*/ +/* +* DQS# Resistor +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK 0x0000000FU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_31_DEFVAL -#undef DDR_PHY_PIR_RESERVED_31_SHIFT -#undef DDR_PHY_PIR_RESERVED_31_MASK -#define DDR_PHY_PIR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_31_SHIFT 31 -#define DDR_PHY_PIR_RESERVED_31_MASK 0x80000000U - -/*Impedance Calibration Bypass*/ -#undef DDR_PHY_PIR_ZCALBYP_DEFVAL -#undef DDR_PHY_PIR_ZCALBYP_SHIFT -#undef DDR_PHY_PIR_ZCALBYP_MASK -#define DDR_PHY_PIR_ZCALBYP_DEFVAL 0x00000000 -#define DDR_PHY_PIR_ZCALBYP_SHIFT 30 -#define DDR_PHY_PIR_ZCALBYP_MASK 0x40000000U - -/*Digital Delay Line (DDL) Calibration Pause*/ -#undef DDR_PHY_PIR_DCALPSE_DEFVAL -#undef DDR_PHY_PIR_DCALPSE_SHIFT -#undef DDR_PHY_PIR_DCALPSE_MASK -#define DDR_PHY_PIR_DCALPSE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DCALPSE_SHIFT 29 -#define DDR_PHY_PIR_DCALPSE_MASK 0x20000000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_28_21_DEFVAL -#undef DDR_PHY_PIR_RESERVED_28_21_SHIFT -#undef DDR_PHY_PIR_RESERVED_28_21_MASK -#define DDR_PHY_PIR_RESERVED_28_21_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_28_21_SHIFT 21 -#define DDR_PHY_PIR_RESERVED_28_21_MASK 0x1FE00000U - -/*Write DQS2DQ Training*/ -#undef DDR_PHY_PIR_DQS2DQ_DEFVAL -#undef DDR_PHY_PIR_DQS2DQ_SHIFT -#undef DDR_PHY_PIR_DQS2DQ_MASK -#define DDR_PHY_PIR_DQS2DQ_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DQS2DQ_SHIFT 20 -#define DDR_PHY_PIR_DQS2DQ_MASK 0x00100000U - -/*RDIMM Initialization*/ -#undef DDR_PHY_PIR_RDIMMINIT_DEFVAL -#undef DDR_PHY_PIR_RDIMMINIT_SHIFT -#undef DDR_PHY_PIR_RDIMMINIT_MASK -#define DDR_PHY_PIR_RDIMMINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDIMMINIT_SHIFT 19 -#define DDR_PHY_PIR_RDIMMINIT_MASK 0x00080000U - -/*Controller DRAM Initialization*/ -#undef DDR_PHY_PIR_CTLDINIT_DEFVAL -#undef DDR_PHY_PIR_CTLDINIT_SHIFT -#undef DDR_PHY_PIR_CTLDINIT_MASK -#define DDR_PHY_PIR_CTLDINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_CTLDINIT_SHIFT 18 -#define DDR_PHY_PIR_CTLDINIT_MASK 0x00040000U - -/*VREF Training*/ -#undef DDR_PHY_PIR_VREF_DEFVAL -#undef DDR_PHY_PIR_VREF_SHIFT -#undef DDR_PHY_PIR_VREF_MASK -#define DDR_PHY_PIR_VREF_DEFVAL 0x00000000 -#define DDR_PHY_PIR_VREF_SHIFT 17 -#define DDR_PHY_PIR_VREF_MASK 0x00020000U - -/*Static Read Training*/ -#undef DDR_PHY_PIR_SRD_DEFVAL -#undef DDR_PHY_PIR_SRD_SHIFT -#undef DDR_PHY_PIR_SRD_MASK -#define DDR_PHY_PIR_SRD_DEFVAL 0x00000000 -#define DDR_PHY_PIR_SRD_SHIFT 16 -#define DDR_PHY_PIR_SRD_MASK 0x00010000U - -/*Write Data Eye Training*/ -#undef DDR_PHY_PIR_WREYE_DEFVAL -#undef DDR_PHY_PIR_WREYE_SHIFT -#undef DDR_PHY_PIR_WREYE_MASK -#define DDR_PHY_PIR_WREYE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WREYE_SHIFT 15 -#define DDR_PHY_PIR_WREYE_MASK 0x00008000U - -/*Read Data Eye Training*/ -#undef DDR_PHY_PIR_RDEYE_DEFVAL -#undef DDR_PHY_PIR_RDEYE_SHIFT -#undef DDR_PHY_PIR_RDEYE_MASK -#define DDR_PHY_PIR_RDEYE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDEYE_SHIFT 14 -#define DDR_PHY_PIR_RDEYE_MASK 0x00004000U - -/*Write Data Bit Deskew*/ -#undef DDR_PHY_PIR_WRDSKW_DEFVAL -#undef DDR_PHY_PIR_WRDSKW_SHIFT -#undef DDR_PHY_PIR_WRDSKW_MASK -#define DDR_PHY_PIR_WRDSKW_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WRDSKW_SHIFT 13 -#define DDR_PHY_PIR_WRDSKW_MASK 0x00002000U - -/*Read Data Bit Deskew*/ -#undef DDR_PHY_PIR_RDDSKW_DEFVAL -#undef DDR_PHY_PIR_RDDSKW_SHIFT -#undef DDR_PHY_PIR_RDDSKW_MASK -#define DDR_PHY_PIR_RDDSKW_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDDSKW_SHIFT 12 -#define DDR_PHY_PIR_RDDSKW_MASK 0x00001000U - -/*Write Leveling Adjust*/ -#undef DDR_PHY_PIR_WLADJ_DEFVAL -#undef DDR_PHY_PIR_WLADJ_SHIFT -#undef DDR_PHY_PIR_WLADJ_MASK -#define DDR_PHY_PIR_WLADJ_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WLADJ_SHIFT 11 -#define DDR_PHY_PIR_WLADJ_MASK 0x00000800U - -/*Read DQS Gate Training*/ -#undef DDR_PHY_PIR_QSGATE_DEFVAL -#undef DDR_PHY_PIR_QSGATE_SHIFT -#undef DDR_PHY_PIR_QSGATE_MASK -#define DDR_PHY_PIR_QSGATE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_QSGATE_SHIFT 10 -#define DDR_PHY_PIR_QSGATE_MASK 0x00000400U - -/*Write Leveling*/ -#undef DDR_PHY_PIR_WL_DEFVAL -#undef DDR_PHY_PIR_WL_SHIFT -#undef DDR_PHY_PIR_WL_MASK -#define DDR_PHY_PIR_WL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WL_SHIFT 9 -#define DDR_PHY_PIR_WL_MASK 0x00000200U - -/*DRAM Initialization*/ -#undef DDR_PHY_PIR_DRAMINIT_DEFVAL -#undef DDR_PHY_PIR_DRAMINIT_SHIFT -#undef DDR_PHY_PIR_DRAMINIT_MASK -#define DDR_PHY_PIR_DRAMINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DRAMINIT_SHIFT 8 -#define DDR_PHY_PIR_DRAMINIT_MASK 0x00000100U - -/*DRAM Reset (DDR3/DDR4/LPDDR4 Only)*/ -#undef DDR_PHY_PIR_DRAMRST_DEFVAL -#undef DDR_PHY_PIR_DRAMRST_SHIFT -#undef DDR_PHY_PIR_DRAMRST_MASK -#define DDR_PHY_PIR_DRAMRST_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DRAMRST_SHIFT 7 -#define DDR_PHY_PIR_DRAMRST_MASK 0x00000080U - -/*PHY Reset*/ -#undef DDR_PHY_PIR_PHYRST_DEFVAL -#undef DDR_PHY_PIR_PHYRST_SHIFT -#undef DDR_PHY_PIR_PHYRST_MASK -#define DDR_PHY_PIR_PHYRST_DEFVAL 0x00000000 -#define DDR_PHY_PIR_PHYRST_SHIFT 6 -#define DDR_PHY_PIR_PHYRST_MASK 0x00000040U - -/*Digital Delay Line (DDL) Calibration*/ -#undef DDR_PHY_PIR_DCAL_DEFVAL -#undef DDR_PHY_PIR_DCAL_SHIFT -#undef DDR_PHY_PIR_DCAL_MASK -#define DDR_PHY_PIR_DCAL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DCAL_SHIFT 5 -#define DDR_PHY_PIR_DCAL_MASK 0x00000020U - -/*PLL Initialiazation*/ -#undef DDR_PHY_PIR_PLLINIT_DEFVAL -#undef DDR_PHY_PIR_PLLINIT_SHIFT -#undef DDR_PHY_PIR_PLLINIT_MASK -#define DDR_PHY_PIR_PLLINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_PLLINIT_SHIFT 4 -#define DDR_PHY_PIR_PLLINIT_MASK 0x00000010U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_3_DEFVAL -#undef DDR_PHY_PIR_RESERVED_3_SHIFT -#undef DDR_PHY_PIR_RESERVED_3_MASK -#define DDR_PHY_PIR_RESERVED_3_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_3_SHIFT 3 -#define DDR_PHY_PIR_RESERVED_3_MASK 0x00000008U - -/*CA Training*/ -#undef DDR_PHY_PIR_CA_DEFVAL -#undef DDR_PHY_PIR_CA_SHIFT -#undef DDR_PHY_PIR_CA_MASK -#define DDR_PHY_PIR_CA_DEFVAL 0x00000000 -#define DDR_PHY_PIR_CA_SHIFT 2 -#define DDR_PHY_PIR_CA_MASK 0x00000004U - -/*Impedance Calibration*/ -#undef DDR_PHY_PIR_ZCAL_DEFVAL -#undef DDR_PHY_PIR_ZCAL_SHIFT -#undef DDR_PHY_PIR_ZCAL_MASK -#define DDR_PHY_PIR_ZCAL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_ZCAL_SHIFT 1 -#define DDR_PHY_PIR_ZCAL_MASK 0x00000002U - -/*Initialization Trigger*/ -#undef DDR_PHY_PIR_INIT_DEFVAL -#undef DDR_PHY_PIR_INIT_SHIFT -#undef DDR_PHY_PIR_INIT_MASK -#define DDR_PHY_PIR_INIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_INIT_SHIFT 0 -#define DDR_PHY_PIR_INIT_MASK 0x00000001U +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK 0x0000000FU #undef IOU_SLCR_MIO_PIN_0_OFFSET #define IOU_SLCR_MIO_PIN_0_OFFSET 0XFF180000 #undef IOU_SLCR_MIO_PIN_1_OFFSET @@ -17132,7308 +21605,9482 @@ #undef IOU_SLCR_MIO_LOOPBACK_OFFSET #define IOU_SLCR_MIO_LOOPBACK_OFFSET 0XFF180200 -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- + * (QSPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_0_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_0_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_0_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_0_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[0]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[0]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[0]- (Test Scan Port) = test_scan, Output, test_scan_out[0 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_0_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_0_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_0_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_0_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Data - us)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (Q + * SPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_1_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_1_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_1_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_1_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[1]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[1]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[1]- (Test Scan Port) = test_scan, Output, test_scan_out[1 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_1_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_1_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Ou + * tput, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) +*/ #undef IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_1_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_1_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI + * Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_2_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_2_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_2_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_2_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[2]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[2]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[2]- (Test Scan Port) = test_scan, Output, test_scan_out[2 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_2_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_2_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, Input, ttc2_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, I + * nput, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_2_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_2_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI + * Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_3_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_3_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_3_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_3_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[3]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[3]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[3]- (Test Scan Port) = test_scan, Output, test_scan_out[3 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_3_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_3_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_3_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_3_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Data - us)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- ( + * QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_4_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_4_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_4_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_4_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[4]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[4]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[4]- (Test Scan Port) = test_scan, Output, test_scan_out[4 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_4_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_4_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_4_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_4_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- (QSPI Slave Select)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- + * (QSPI Slave Select) +*/ #undef IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_5_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_5_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_5_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_5_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[5]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[5]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[5]- (Test Scan Port) = test_scan, Output, test_scan_out[5 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_5_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_5_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_5_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_5_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_l + * pbk- (QSPI Clock to be fed-back) +*/ #undef IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_6_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_6_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_6_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_6_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[6]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[6]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[6]- (Test Scan Port) = test_scan, Output, test_scan_out[6 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_6_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_6_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1 - sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, - Output, tracedq[4]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= s + * pi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TT + * C Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, + * Output, tracedq[4]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_6_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_6_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_upper- (QSPI Slave Select upper)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_ + * upper- (QSPI Slave Select upper) +*/ #undef IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_7_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_7_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_7_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_7_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[7]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[7]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[7]- (Test Scan Port) = test_scan, Output, test_scan_out[7 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_7_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_7_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - tc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, - racedq[5]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Ma + * ster Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua + * 0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, t + * racedq[5]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_7_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_7_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [0]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_8_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_8_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_8_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_8_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[8]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[8]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[8]- (Test Scan Port) = test_scan, Output, test_scan_out[8 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_8_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_8_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc - , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tr - ce Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Maste + * r Selects) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_ + * txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tra + * ce Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_8_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_8_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [1]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_9_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_9_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_9_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_9_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[9]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[9]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[9]- (Test Scan Port) = test_scan, Output, test_scan_out[9 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_9_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_9_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - utput, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (U - RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master S + * elects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, + * Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UA + * RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_9_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_9_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [2]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_10_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_10_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_10_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_10_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[10]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[10]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[10]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 10]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_10_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_10_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_10_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_10_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [3]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_11_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_11_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_11_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_11_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[11]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[11]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[11]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 11]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_11_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_11_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_11_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_11_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_ + * upper- (QSPI Upper Clock) +*/ #undef IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_12_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_12_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - */ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) +*/ #undef IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_12_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_12_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[12]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[12]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[12]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 12]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_12_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_12_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cl - ck) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trac - dq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJT + * AG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_ + * sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, O + * utput, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace + * dq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_12_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_12_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_13_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_13_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_13_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_13_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, test_scan_out[13]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, + * test_scan_out[13]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_13_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_13_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave - out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Dat - bus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTA + * G TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, + * Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UAR + * T receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_13_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_13_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_14_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_14_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND Command Latch Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND + * Command Latch Enable) +*/ #undef IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_14_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_14_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, test_scan_out[14]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, + * test_scan_out[14]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_14_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_14_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_ - n- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJT + * AG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, + * Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver + * serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_14_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_14_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_15_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_15_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND Address Latch Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND + * Address Latch Enable) +*/ #undef IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_15_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_15_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, test_scan_out[15]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, + * test_scan_out[15]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_15_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_15_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out - 0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seri - l output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJT + * AG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outp + * ut, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_ou + * t- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seria + * l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_15_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_15_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_16_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_16_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_16_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_16_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, test_scan_out[16]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, + * test_scan_out[16]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_16_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_16_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_16_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_16_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_17_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_17_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_17_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_17_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, test_scan_out[17]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, + * test_scan_out[17]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_17_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_17_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_17_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_17_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_18_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_18_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_18_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_18_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, test_scan_out[18]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, + * test_scan_out[18]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_18_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_18_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_18_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_18_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_19_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_19_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_19_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_19_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, test_scan_out[19]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, + * test_scan_out[19]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_19_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_19_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_19_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_19_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_20_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_20_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_20_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_20_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, test_scan_out[20]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, + * test_scan_out[20]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_20_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_20_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= t - c1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua + * 1_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_20_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_20_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_21_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_21_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_21_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_21_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= test_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, test_scan_out[21]- (Test Scan Port) - = csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= tes + * t_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, t + * est_scan_out[21]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU E + * xt Tamper) +*/ #undef IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_21_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_21_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- - UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc + * 1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- ( + * UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_21_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_21_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_22_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_22_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAND Write Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAN + * D Write Enable) +*/ #undef IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_22_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_22_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- - (Test Scan Port) = test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- (Test Scan Port) = + * test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, c + * su_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_22_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_22_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed +*/ #undef IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_22_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_22_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_23_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_23_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_23_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_23_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= test_scan, Input, test_scan_in - 23]- (Test Scan Port) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper - */ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= test_scan, Input, test_scan_in[23]- (Test Scan Po + * rt) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Inp + * ut, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_23_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_23_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_23_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_23_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_24_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_24_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_24_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_24_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= test_scan, Input, test - scan_in[24]- (Test Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ex - Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= test_scan, Input, test_scan_in[24]- (Test + * Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= + * csu, Input, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_24_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_24_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, - Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= N + * ot Used +*/ #undef IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_24_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_24_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_25_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_25_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAND Read Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAN + * D Read Enable) +*/ #undef IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_25_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_25_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= test_scan, Input, - test_scan_in[25]- (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (C - U Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= test_scan, Input, test_scan_in[25]- + * (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port + * ) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_25_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_25_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_out- (TTC Waveform - lock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_ou + * t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in + * put) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_25_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_25_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_26_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_26_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_26_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_26_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[26]- (Test Sc - n Port) = test_scan, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[26]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_26_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_26_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_26_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_26_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_27_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_27_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_27_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_27_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[27]- (Test Sc - n Port) = test_scan, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[27]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_27_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_27_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_27_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_27_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_28_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_28_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_28_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_28_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[28]- (Test Sc - n Port) = test_scan, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[28]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_28_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_28_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_28_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_28_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_29_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_29_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_29_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_29_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[29]- (Test Sc - n Port) = test_scan, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[29]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_29_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_29_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, + * spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_29_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_29_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_30_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_30_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_30_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_30_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[30]- (Test Sc - n Port) = test_scan, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[30]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_30_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_30_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_so - (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output - tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0 + * , Output, spi0_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock + * ) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, + * tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_30_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_30_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_31_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_31_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_31_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_31_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[31]- (Test Sc - n Port) = test_scan, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[31]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_31_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_31_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi - _si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial out - ut) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TT + * C Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial outp + * ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_31_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_31_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_32_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_32_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - */ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) +*/ #undef IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_32_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_32_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[32]- (Test S - an Port) = test_scan, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[32]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_32_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_32_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi - _sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= - race, Output, tracedq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= t + * race, Output, tracedq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_32_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_32_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_33_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_33_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_33_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_33_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[33]- (Test S - an Port) = test_scan, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[33]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_33_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_33_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= t - c3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, traced - [11]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Mas + * ter Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1 + * , Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq + * [11]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_33_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_33_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_34_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_34_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_34_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_34_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[34]- (Test S - an Port) = test_scan, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[34]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_34_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_34_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc2 - Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace P - rt Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master + * Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rx + * d- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Po + * rt Databus) +*/ #undef IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_34_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_34_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_35_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_35_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_35_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_35_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[35]- (Test S - an Port) = test_scan, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[35]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_35_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_35_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- - UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2 + * , Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- ( + * UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Po + * rt Databus) +*/ #undef IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_35_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_35_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_36_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_36_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_36_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_36_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[36]- (Test S - an Port) = test_scan, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[36]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_36_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_36_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_36_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_36_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_37_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_37_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_37_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_37_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[37]- (Test S - an Port) = test_scan, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[37]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_37_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_37_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_37_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_37_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_38_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_38_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_38_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_38_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_38_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_38_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clo - k) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- - (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTA + * G TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_s + * clk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, In + * put, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- + * (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_38_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_38_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_39_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_39_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_39_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_39_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= sd1, Input, sd1_data_i - [4]- (8-bit Data bus) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= sd1, Input, sd1_data_in[4]- (8-bit Data b + * us) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_39_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_39_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, Output, ttc0_wav - _out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port - Control Signal)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJT + * AG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, + * Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (U + * ART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port + * Control Signal) +*/ #undef IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_39_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_39_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_40_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_40_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_40_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_40_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= sd1, Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[5]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= sd1 + * , Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[ + * 5]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_40_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_40_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3, Input, ttc3_clk - in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJ + * TAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3 + * , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmi + * tter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_40_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_40_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_41_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_41_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_41_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_41_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_out[6]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[6]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_41_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_41_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[ - ]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in - ut) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTA + * G TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outpu + * t, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out + * - (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inp + * ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_41_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_41_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_42_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_42_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_42_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_42_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_out[7]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[7]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_42_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_42_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= sp + * i0, Output, spi0_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_42_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_42_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_43_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_43_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_43_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_43_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_43_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_43_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, s - i0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) + * 4= spi0, Input, spi0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_43_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_43_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_44_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_44_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_44_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_44_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_44_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_44_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, s - i1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4 + * = spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_44_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_44_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_45_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_45_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_45_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_45_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_45_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_45_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_45_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_45_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_46_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_46_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_46_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_46_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_46_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_46_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= tt - 0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_46_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_46_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_47_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_47_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_47_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_47_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_47_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_47_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Maste + * r Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= tt + * c0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_47_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_47_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_48_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_48_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_48_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_48_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_48_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_48_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not U - ed*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Us + * ed +*/ #undef IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_48_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_48_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_49_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_49_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_49_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_49_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8 - bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd + * 1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_49_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_49_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_49_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_49_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) +*/ #undef IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_50_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_50_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_50_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_50_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Input, sd1_c - d_in- (Command Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Input, sd1_cmd_in- (Command Ind + * icator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_50_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_50_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= ttc2, Input, ttc2 - clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= + * ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART rece + * iver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_50_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_50_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) +*/ #undef IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_51_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_51_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_51_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_51_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdio1_clk_out- (SDSDIO clock) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdi + * o1_clk_out- (SDSDIO clock) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_51_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_51_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Data) 4= mdio1, Outp - t, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter - serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Dat + * a) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wa + * ve_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter + * serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_51_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_51_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_52_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_52_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_in- (ULPI Clock)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_i + * n- (ULPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_52_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_52_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_52_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_52_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_52_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_52_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_53_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_53_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- + * (Data bus direction control) +*/ #undef IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_53_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_53_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_53_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_53_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Ou + * tput, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) +*/ #undef IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_53_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_53_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_54_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_54_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[2]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_54_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_54_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_54_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_54_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, I + * nput, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_54_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_54_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_55_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_55_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- + * (Data flow control signal from the PHY) +*/ #undef IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_55_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_55_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_55_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_55_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_55_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_55_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_56_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_56_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[0]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_56_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_56_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_56_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_56_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_56_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_56_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_57_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_57_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[1]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_57_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_57_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_57_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_57_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_57_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_57_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_58_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_58_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- + * (Asserted to end or interrupt transfers) +*/ #undef IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_58_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_58_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_58_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_58_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_58_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_58_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_59_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_59_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[3]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_59_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_59_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_59_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_59_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_59_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_59_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_60_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_60_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[4]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_60_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_60_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_60_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_60_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_60_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_60_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_61_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_61_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[5]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_61_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_61_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_61_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_61_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, spi1_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, + * spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_61_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_61_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_62_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_62_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[6]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_62_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_62_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_62_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_62_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_62_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_62_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_63_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_63_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[7]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_63_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_63_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_63_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_63_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_63_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_63_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_64_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_64_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_in- (ULPI Clock)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_i + * n- (ULPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_64_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_64_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_64_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_64_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, s - i0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - trace, Output, tracedq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4 + * = spi0, Output, spi0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * trace, Output, tracedq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_64_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_64_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_65_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_65_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- + * (Data bus direction control) +*/ #undef IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_65_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_65_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_65_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_65_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= - ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trac - dq[11]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace + * dq[11]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_65_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_65_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_66_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_66_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[2]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_66_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_66_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= Not + * Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_66_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_66_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= tt - 2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace - Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace + * Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_66_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_66_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_67_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_67_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- + * (Data flow control signal from the PHY) +*/ #undef IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_67_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_67_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= N + * ot Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_67_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_67_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Maste + * r Selects) 4= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= tt + * c2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace + * Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_67_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_67_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_68_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_68_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[0]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_68_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_68_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= N + * ot Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_68_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_68_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_68_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_68_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_69_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_69_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[1]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_69_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_69_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_69_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_69_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_69_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_69_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_70_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_70_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- + * (Asserted to end or interrupt transfers) +*/ #undef IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_70_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_70_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_70_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_70_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed +*/ #undef IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_70_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_70_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_71_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_71_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[3]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_71_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_71_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_71_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_71_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_71_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_71_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_72_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_72_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[4]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_72_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_72_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_72_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_72_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= N - t Used 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= Not Used 6= ua1, Output, ua1_txd- (UART transmitter seri + * al output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_72_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_72_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_73_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_73_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[5]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_73_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_73_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_73_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_73_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not + * Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_73_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_73_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_74_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_74_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[6]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_74_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_74_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[3]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_74_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_74_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- ( + * UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_74_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_74_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_75_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_75_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[7]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_75_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_75_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Comma - d Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Command Indicator) = sd1 + * , Output, sdio1_cmd_out- (Command Indicator) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_75_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_75_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_t + * xd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_75_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_75_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_76_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_76_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_76_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_76_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Output, sdio - _clk_out- (SDSDIO clock) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Output, sdio1_clk_out- (SDSDIO + * clock) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_76_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_76_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= mdio0, Output, gem0_mdc- (MDIO Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2_mdc- (MDIO Clock - 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= mdio0, Output, gem0_mdc- (MDI + * O Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2 + * _mdc- (MDIO Clock) 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_76_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_76_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_77_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_77_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_77_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_77_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio + * 1_cd_n- (SD card detect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_77_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_77_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= mdio0, Input, gem0_mdio_in- (MDIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, gem1_mdio_in- (MD - O Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_o - t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Output, gem3_mdio_out- (MDIO Data) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= mdio0, Input, gem0_mdio_in- (M + * DIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, + * gem1_mdio_in- (MDIO Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5 + * = mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_ou + * t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Outp + * ut, gem3_mdio_out- (MDIO Data) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_77_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_77_L3_SEL_MASK 0x000000E0U -/*Master Tri-state Enable for pin 0, active high*/ +/* +* Master Tri-state Enable for pin 0, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 1, active high*/ +/* +* Master Tri-state Enable for pin 1, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 2, active high*/ +/* +* Master Tri-state Enable for pin 2, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 3, active high*/ +/* +* Master Tri-state Enable for pin 3, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 4, active high*/ +/* +* Master Tri-state Enable for pin 4, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 5, active high*/ +/* +* Master Tri-state Enable for pin 5, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 6, active high*/ +/* +* Master Tri-state Enable for pin 6, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 7, active high*/ +/* +* Master Tri-state Enable for pin 7, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 8, active high*/ +/* +* Master Tri-state Enable for pin 8, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 9, active high*/ +/* +* Master Tri-state Enable for pin 9, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 10, active high*/ +/* +* Master Tri-state Enable for pin 10, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 11, active high*/ +/* +* Master Tri-state Enable for pin 11, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 12, active high*/ +/* +* Master Tri-state Enable for pin 12, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 13, active high*/ +/* +* Master Tri-state Enable for pin 13, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK 0x00002000U -/*Master Tri-state Enable for pin 14, active high*/ +/* +* Master Tri-state Enable for pin 14, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT 14 -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK 0x00004000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT 14 +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK 0x00004000U -/*Master Tri-state Enable for pin 15, active high*/ +/* +* Master Tri-state Enable for pin 15, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT 15 -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK 0x00008000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT 15 +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK 0x00008000U -/*Master Tri-state Enable for pin 16, active high*/ +/* +* Master Tri-state Enable for pin 16, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT 16 -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK 0x00010000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT 16 +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK 0x00010000U -/*Master Tri-state Enable for pin 17, active high*/ +/* +* Master Tri-state Enable for pin 17, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT 17 -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK 0x00020000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT 17 +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK 0x00020000U -/*Master Tri-state Enable for pin 18, active high*/ +/* +* Master Tri-state Enable for pin 18, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT 18 -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK 0x00040000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT 18 +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK 0x00040000U -/*Master Tri-state Enable for pin 19, active high*/ +/* +* Master Tri-state Enable for pin 19, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT 19 -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK 0x00080000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT 19 +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK 0x00080000U -/*Master Tri-state Enable for pin 20, active high*/ +/* +* Master Tri-state Enable for pin 20, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT 20 -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK 0x00100000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT 20 +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK 0x00100000U -/*Master Tri-state Enable for pin 21, active high*/ +/* +* Master Tri-state Enable for pin 21, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT 21 -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK 0x00200000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT 21 +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK 0x00200000U -/*Master Tri-state Enable for pin 22, active high*/ +/* +* Master Tri-state Enable for pin 22, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT 22 -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK 0x00400000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT 22 +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK 0x00400000U -/*Master Tri-state Enable for pin 23, active high*/ +/* +* Master Tri-state Enable for pin 23, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT 23 -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK 0x00800000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT 23 +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK 0x00800000U -/*Master Tri-state Enable for pin 24, active high*/ +/* +* Master Tri-state Enable for pin 24, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT 24 -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK 0x01000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT 24 +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK 0x01000000U -/*Master Tri-state Enable for pin 25, active high*/ +/* +* Master Tri-state Enable for pin 25, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT 25 -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK 0x02000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT 25 +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK 0x02000000U -/*Master Tri-state Enable for pin 26, active high*/ +/* +* Master Tri-state Enable for pin 26, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT 26 -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK 0x04000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT 26 +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK 0x04000000U -/*Master Tri-state Enable for pin 27, active high*/ +/* +* Master Tri-state Enable for pin 27, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT 27 -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK 0x08000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT 27 +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK 0x08000000U -/*Master Tri-state Enable for pin 28, active high*/ +/* +* Master Tri-state Enable for pin 28, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT 28 -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK 0x10000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT 28 +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK 0x10000000U -/*Master Tri-state Enable for pin 29, active high*/ +/* +* Master Tri-state Enable for pin 29, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT 29 -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK 0x20000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT 29 +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK 0x20000000U -/*Master Tri-state Enable for pin 30, active high*/ +/* +* Master Tri-state Enable for pin 30, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT 30 -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK 0x40000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT 30 +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK 0x40000000U -/*Master Tri-state Enable for pin 31, active high*/ +/* +* Master Tri-state Enable for pin 31, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT 31 -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK 0x80000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT 31 +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK 0x80000000U -/*Master Tri-state Enable for pin 32, active high*/ +/* +* Master Tri-state Enable for pin 32, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 33, active high*/ +/* +* Master Tri-state Enable for pin 33, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 34, active high*/ +/* +* Master Tri-state Enable for pin 34, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 35, active high*/ +/* +* Master Tri-state Enable for pin 35, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 36, active high*/ +/* +* Master Tri-state Enable for pin 36, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 37, active high*/ +/* +* Master Tri-state Enable for pin 37, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 38, active high*/ +/* +* Master Tri-state Enable for pin 38, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 39, active high*/ +/* +* Master Tri-state Enable for pin 39, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 40, active high*/ +/* +* Master Tri-state Enable for pin 40, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 41, active high*/ +/* +* Master Tri-state Enable for pin 41, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 42, active high*/ +/* +* Master Tri-state Enable for pin 42, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 43, active high*/ +/* +* Master Tri-state Enable for pin 43, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 44, active high*/ +/* +* Master Tri-state Enable for pin 44, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 45, active high*/ +/* +* Master Tri-state Enable for pin 45, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK 0x00002000U -/*Master Tri-state Enable for pin 46, active high*/ +/* +* Master Tri-state Enable for pin 46, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT 14 -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK 0x00004000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT 14 +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK 0x00004000U -/*Master Tri-state Enable for pin 47, active high*/ +/* +* Master Tri-state Enable for pin 47, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT 15 -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK 0x00008000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT 15 +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK 0x00008000U -/*Master Tri-state Enable for pin 48, active high*/ +/* +* Master Tri-state Enable for pin 48, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT 16 -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK 0x00010000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT 16 +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK 0x00010000U -/*Master Tri-state Enable for pin 49, active high*/ +/* +* Master Tri-state Enable for pin 49, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT 17 -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK 0x00020000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT 17 +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK 0x00020000U -/*Master Tri-state Enable for pin 50, active high*/ +/* +* Master Tri-state Enable for pin 50, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT 18 -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK 0x00040000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT 18 +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK 0x00040000U -/*Master Tri-state Enable for pin 51, active high*/ +/* +* Master Tri-state Enable for pin 51, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT 19 -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK 0x00080000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT 19 +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK 0x00080000U -/*Master Tri-state Enable for pin 52, active high*/ +/* +* Master Tri-state Enable for pin 52, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT 20 -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK 0x00100000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT 20 +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK 0x00100000U -/*Master Tri-state Enable for pin 53, active high*/ +/* +* Master Tri-state Enable for pin 53, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT 21 -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK 0x00200000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT 21 +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK 0x00200000U -/*Master Tri-state Enable for pin 54, active high*/ +/* +* Master Tri-state Enable for pin 54, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT 22 -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK 0x00400000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT 22 +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK 0x00400000U -/*Master Tri-state Enable for pin 55, active high*/ +/* +* Master Tri-state Enable for pin 55, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT 23 -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK 0x00800000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT 23 +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK 0x00800000U -/*Master Tri-state Enable for pin 56, active high*/ +/* +* Master Tri-state Enable for pin 56, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT 24 -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK 0x01000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT 24 +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK 0x01000000U -/*Master Tri-state Enable for pin 57, active high*/ +/* +* Master Tri-state Enable for pin 57, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT 25 -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK 0x02000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT 25 +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK 0x02000000U -/*Master Tri-state Enable for pin 58, active high*/ +/* +* Master Tri-state Enable for pin 58, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT 26 -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK 0x04000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT 26 +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK 0x04000000U -/*Master Tri-state Enable for pin 59, active high*/ +/* +* Master Tri-state Enable for pin 59, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT 27 -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK 0x08000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT 27 +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK 0x08000000U -/*Master Tri-state Enable for pin 60, active high*/ +/* +* Master Tri-state Enable for pin 60, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT 28 -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK 0x10000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT 28 +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK 0x10000000U -/*Master Tri-state Enable for pin 61, active high*/ +/* +* Master Tri-state Enable for pin 61, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT 29 -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK 0x20000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT 29 +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK 0x20000000U -/*Master Tri-state Enable for pin 62, active high*/ +/* +* Master Tri-state Enable for pin 62, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT 30 -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK 0x40000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT 30 +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK 0x40000000U -/*Master Tri-state Enable for pin 63, active high*/ +/* +* Master Tri-state Enable for pin 63, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT 31 -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK 0x80000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT 31 +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK 0x80000000U -/*Master Tri-state Enable for pin 64, active high*/ +/* +* Master Tri-state Enable for pin 64, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 65, active high*/ +/* +* Master Tri-state Enable for pin 65, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 66, active high*/ +/* +* Master Tri-state Enable for pin 66, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 67, active high*/ +/* +* Master Tri-state Enable for pin 67, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 68, active high*/ +/* +* Master Tri-state Enable for pin 68, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 69, active high*/ +/* +* Master Tri-state Enable for pin 69, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 70, active high*/ +/* +* Master Tri-state Enable for pin 70, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 71, active high*/ +/* +* Master Tri-state Enable for pin 71, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 72, active high*/ +/* +* Master Tri-state Enable for pin 72, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 73, active high*/ +/* +* Master Tri-state Enable for pin 73, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 74, active high*/ +/* +* Master Tri-state Enable for pin 74, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 75, active high*/ +/* +* Master Tri-state Enable for pin 75, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 76, active high*/ +/* +* Master Tri-state Enable for pin 76, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 77, active high*/ +/* +* Master Tri-state Enable for pin 77, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outp - ts to I2C 0 inputs.*/ +/* +* I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 + * = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outputs to I2C 0 inputs + * . +*/ #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT 3 -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK 0x00000008U +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT 3 +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK 0x00000008U -/*CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 R - .*/ +/* +* CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 + * = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 Rx. +*/ #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT 2 -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK 0x00000004U +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT 2 +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK 0x00000004U -/*UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 - outputs to UART 0 inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD and RI not used.*/ +/* +* UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. + * 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 outputs to UART 0 + * inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD + * and RI not used. +*/ #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT 1 -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK 0x00000002U +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT 1 +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK 0x00000002U -/*SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outp - ts to SPI 0 inputs. The other SPI core will appear on the LS Slave Select.*/ +/* +* SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 + * = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outputs to SPI 0 inputs + * . The other SPI core will appear on the LS Slave Select. +*/ #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT 0 -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK 0x00000001U +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT 0 +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK 0x00000001U +#undef CRF_APB_RST_FPD_TOP_OFFSET +#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 #undef CRL_APB_RST_LPD_IOU2_OFFSET #define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 +#undef CRL_APB_RST_LPD_TOP_OFFSET +#define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET #define CRL_APB_RST_LPD_IOU0_OFFSET 0XFF5E0230 #undef CRL_APB_RST_LPD_IOU2_OFFSET @@ -24442,8 +31089,10 @@ #define IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET 0XFF180390 #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C -#undef CRF_APB_RST_FPD_TOP_OFFSET -#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef USB3_0_FPD_POWER_PRSNT_OFFSET +#define USB3_0_FPD_POWER_PRSNT_OFFSET 0XFF9D0080 +#undef USB3_0_FPD_PIPE_CLK_OFFSET +#define USB3_0_FPD_PIPE_CLK_OFFSET 0XFF9D007C #undef CRL_APB_RST_LPD_IOU2_OFFSET #define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 #undef IOU_SLCR_CTRL_REG_SD_OFFSET @@ -24452,6 +31101,8 @@ #define IOU_SLCR_SD_CONFIG_REG2_OFFSET 0XFF180320 #undef IOU_SLCR_SD_CONFIG_REG1_OFFSET #define IOU_SLCR_SD_CONFIG_REG1_OFFSET 0XFF18031C +#undef IOU_SLCR_SD_DLL_CTRL_OFFSET +#define IOU_SLCR_SD_DLL_CTRL_OFFSET 0XFF180358 #undef IOU_SLCR_SD_CONFIG_REG3_OFFSET #define IOU_SLCR_SD_CONFIG_REG3_OFFSET 0XFF180324 #undef CRL_APB_RST_LPD_IOU2_OFFSET @@ -24480,6 +31131,8 @@ #define UART1_CONTROL_REG0_OFFSET 0XFF010000 #undef UART1_MODE_REG0_OFFSET #define UART1_MODE_REG0_OFFSET 0XFF010004 +#undef CRL_APB_RST_LPD_IOU2_OFFSET +#define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 #undef LPD_SLCR_SECURE_SLCR_ADMA_OFFSET #define LPD_SLCR_SECURE_SLCR_ADMA_OFFSET 0XFF4B0024 #undef CSU_TAMPER_STATUS_OFFSET @@ -24492,782 +31145,1656 @@ #define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET 0XFF260020 #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET #define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET 0XFF260000 +#undef GPIO_DIRM_1_OFFSET +#define GPIO_DIRM_1_OFFSET 0XFF0A0244 +#undef GPIO_OEN_1_OFFSET +#define GPIO_OEN_1_OFFSET 0XFF0A0248 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 -/*Block level reset*/ -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT 20 -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK 0x00100000U - -/*GEM 3 reset*/ -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U - -/*Block level reset*/ -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT 0 -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK 0x00000001U - -/*0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypass the Tap delay on the Rx clock signal of LQSPI*/ -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL 0x00000007 -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT 2 -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK 0x00000004U - -/*USB 0 reset for control registers*/ -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U - -/*USB 0 sleep circuit reset*/ -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U - -/*USB 0 reset*/ -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U - -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U -/*FPD WDT reset*/ +/* +* FPD WDT reset +*/ #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT 15 -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK 0x00008000U +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT 15 +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK 0x00008000U -/*GDMA block level reset*/ +/* +* GDMA block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT 6 -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK 0x00000040U +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT 6 +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK 0x00000040U -/*Pixel Processor (submodule of GPU) block level reset*/ +/* +* Pixel Processor (submodule of GPU) block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT 4 -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK 0x00000010U +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT 4 +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK 0x00000010U -/*Pixel Processor (submodule of GPU) block level reset*/ +/* +* Pixel Processor (submodule of GPU) block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT 5 -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK 0x00000020U +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT 5 +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK 0x00000020U -/*GPU block level reset*/ +/* +* GPU block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT 3 -#define CRF_APB_RST_FPD_TOP_GPU_RESET_MASK 0x00000008U +#define CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT 3 +#define CRF_APB_RST_FPD_TOP_GPU_RESET_MASK 0x00000008U -/*GT block level reset*/ +/* +* GT block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GT_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT 2 -#define CRF_APB_RST_FPD_TOP_GT_RESET_MASK 0x00000004U +#define CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT 2 +#define CRF_APB_RST_FPD_TOP_GT_RESET_MASK 0x00000004U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*Block level reset*/ +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT 20 +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK 0x00100000U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_SHIFT 19 +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_MASK 0x00080000U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_SHIFT 17 +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_MASK 0x00020000U + +/* +* Reset entire full power domain. +*/ +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_MASK +#define CRL_APB_RST_LPD_TOP_FPD_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_FPD_RESET_SHIFT 23 +#define CRL_APB_RST_LPD_TOP_FPD_RESET_MASK 0x00800000U + +/* +* LPD SWDT +*/ +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_MASK +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_SHIFT 20 +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_MASK 0x00100000U + +/* +* Sysmonitor reset +*/ +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_MASK +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_SHIFT 17 +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_MASK 0x00020000U + +/* +* Real Time Clock reset +*/ +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_MASK +#define CRL_APB_RST_LPD_TOP_RTC_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_RTC_RESET_SHIFT 16 +#define CRL_APB_RST_LPD_TOP_RTC_RESET_MASK 0x00010000U + +/* +* APM reset +*/ +#undef CRL_APB_RST_LPD_TOP_APM_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_APM_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_APM_RESET_MASK +#define CRL_APB_RST_LPD_TOP_APM_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_APM_RESET_SHIFT 15 +#define CRL_APB_RST_LPD_TOP_APM_RESET_MASK 0x00008000U + +/* +* IPI reset +*/ +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_MASK +#define CRL_APB_RST_LPD_TOP_IPI_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_IPI_RESET_SHIFT 14 +#define CRL_APB_RST_LPD_TOP_IPI_RESET_MASK 0x00004000U + +/* +* reset entire RPU power island +*/ +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_MASK +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_SHIFT 4 +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_MASK 0x00000010U + +/* +* reset ocm +*/ +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_MASK +#define CRL_APB_RST_LPD_TOP_OCM_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_OCM_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_TOP_OCM_RESET_MASK 0x00000008U + +/* +* GEM 3 reset +*/ +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT 0 +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK 0x00000001U + +/* +* 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypa + * ss the Tap delay on the Rx clock signal of LQSPI +*/ +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL 0x00000007 +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT 2 +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK 0x00000004U + +/* +* USB 0 reset for control registers +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U + +/* +* USB 0 sleep circuit reset +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U + +/* +* USB 0 reset +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U + +/* +* This bit is used to choose between PIPE power present and 1'b1 +*/ +#undef USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL +#undef USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT +#undef USB3_0_FPD_POWER_PRSNT_OPTION_MASK +#define USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL +#define USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT 0 +#define USB3_0_FPD_POWER_PRSNT_OPTION_MASK 0x00000001U + +/* +* This bit is used to choose between PIPE clock coming from SerDes and the + * suspend clk +*/ +#undef USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL +#undef USB3_0_FPD_PIPE_CLK_OPTION_SHIFT +#undef USB3_0_FPD_PIPE_CLK_OPTION_MASK +#define USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL +#define USB3_0_FPD_PIPE_CLK_OPTION_SHIFT 0 +#define USB3_0_FPD_PIPE_CLK_OPTION_MASK 0x00000001U + +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT 6 -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT 6 +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK 0x00000040U -/*SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled*/ +/* +* SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled +*/ #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT 15 -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK 0x00008000U +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT 15 +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK 0x00008000U -/*Should be set based on the final product usage 00 - Removable SCard Slot 01 - Embedded Slot for One Device 10 - Shared Bus Sl - t 11 - Reserved*/ +/* +* Should be set based on the final product usage 00 - Removable SCard Slot + * 01 - Embedded Slot for One Device 10 - Shared Bus Slot 11 - Reserved +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT 28 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK 0x30000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT 28 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK 0x30000000U -/*1.8V Support 1: 1.8V supported 0: 1.8V not supported support*/ +/* +* 1.8V Support 1: 1.8V supported 0: 1.8V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT 25 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK 0x02000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT 25 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK 0x02000000U -/*3.0V Support 1: 3.0V supported 0: 3.0V not supported support*/ +/* +* 3.0V Support 1: 3.0V supported 0: 3.0V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT 24 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK 0x01000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT 24 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK 0x01000000U -/*3.3V Support 1: 3.3V supported 0: 3.3V not supported support*/ +/* +* 3.3V Support 1: 3.3V supported 0: 3.3V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT 23 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK 0x00800000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT 23 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK 0x00800000U -/*Base Clock Frequency for SD Clock. This is the frequency of the xin_clk.*/ +/* +* Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. +*/ #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL 0x32403240 -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT 23 -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK 0x7F800000U +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL 0x32403240 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT 23 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK 0x7F800000U -/*This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. Setting to 4'b0 disables Re-Tuning Timer. 0h - Get inf - rmation via other source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n = 2(n-1) seconds -- Bh = 1024 secon - s Fh - Ch = Reserved*/ +/* +* Configures the Number of Taps (Phases) of the rxclk_in that is supported + * . +*/ +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_DEFVAL +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_SHIFT +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_MASK +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_DEFVAL 0x32403240 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_SHIFT 17 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_MASK 0x007E0000U + +/* +* Reserved. +*/ +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_DEFVAL +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_SHIFT +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_MASK +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_DEFVAL 0x00080008 +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_SHIFT 3 +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_MASK 0x00000008U + +/* +* This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. S + * etting to 4'b0 disables Re-Tuning Timer. 0h - Get information via other + * source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n + * = 2(n-1) seconds -- Bh = 1024 seconds Fh - Ch = Reserved +*/ #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL 0x06070607 -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT 22 -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK 0x03C00000U +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL 0x06070607 +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT 22 +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK 0x03C00000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT 8 -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT 8 +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK 0x00000100U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT 9 -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK 0x00000200U +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT 9 +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK 0x00000200U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK 0x00000400U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT 15 -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK 0x00008000U +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT 15 +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK 0x00008000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT 11 -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK 0x00000800U +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT 11 +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK 0x00000800U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT 12 -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK 0x00001000U +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT 12 +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK 0x00001000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT 13 -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK 0x00002000U +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT 13 +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK 0x00002000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT 14 -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK 0x00004000U +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT 14 +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK 0x00004000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT 1 -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK 0x00000002U +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT 1 +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK 0x00000002U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT 2 -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK 0x00000004U +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT 2 +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK 0x00000004U -/*Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate*/ +/* +* Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +*/ #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU -/*Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample*/ +/* +* Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +*/ #undef UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL #undef UART0_BAUD_RATE_GEN_REG0_CD_SHIFT #undef UART0_BAUD_RATE_GEN_REG0_CD_MASK -#define UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B -#define UART0_BAUD_RATE_GEN_REG0_CD_SHIFT 0 -#define UART0_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU +#define UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B +#define UART0_BAUD_RATE_GEN_REG0_CD_SHIFT 0 +#define UART0_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU -/*Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK.*/ +/* +* Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. +*/ #undef UART0_CONTROL_REG0_STPBRK_DEFVAL #undef UART0_CONTROL_REG0_STPBRK_SHIFT #undef UART0_CONTROL_REG0_STPBRK_MASK -#define UART0_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_STPBRK_SHIFT 8 -#define UART0_CONTROL_REG0_STPBRK_MASK 0x00000100U +#define UART0_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_STPBRK_SHIFT 8 +#define UART0_CONTROL_REG0_STPBRK_MASK 0x00000100U -/*Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high.*/ +/* +* Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. +*/ #undef UART0_CONTROL_REG0_STTBRK_DEFVAL #undef UART0_CONTROL_REG0_STTBRK_SHIFT #undef UART0_CONTROL_REG0_STTBRK_MASK -#define UART0_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_STTBRK_SHIFT 7 -#define UART0_CONTROL_REG0_STTBRK_MASK 0x00000080U +#define UART0_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_STTBRK_SHIFT 7 +#define UART0_CONTROL_REG0_STTBRK_MASK 0x00000080U -/*Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted.*/ +/* +* Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. +*/ #undef UART0_CONTROL_REG0_RSTTO_DEFVAL #undef UART0_CONTROL_REG0_RSTTO_SHIFT #undef UART0_CONTROL_REG0_RSTTO_MASK -#define UART0_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RSTTO_SHIFT 6 -#define UART0_CONTROL_REG0_RSTTO_MASK 0x00000040U +#define UART0_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RSTTO_SHIFT 6 +#define UART0_CONTROL_REG0_RSTTO_MASK 0x00000040U -/*Transmit disable: 0: enable transmitter 1: disable transmitter*/ +/* +* Transmit disable: 0: enable transmitter 1: disable transmitter +*/ #undef UART0_CONTROL_REG0_TXDIS_DEFVAL #undef UART0_CONTROL_REG0_TXDIS_SHIFT #undef UART0_CONTROL_REG0_TXDIS_MASK -#define UART0_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXDIS_SHIFT 5 -#define UART0_CONTROL_REG0_TXDIS_MASK 0x00000020U +#define UART0_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXDIS_SHIFT 5 +#define UART0_CONTROL_REG0_TXDIS_MASK 0x00000020U -/*Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0.*/ +/* +* Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. +*/ #undef UART0_CONTROL_REG0_TXEN_DEFVAL #undef UART0_CONTROL_REG0_TXEN_SHIFT #undef UART0_CONTROL_REG0_TXEN_MASK -#define UART0_CONTROL_REG0_TXEN_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXEN_SHIFT 4 -#define UART0_CONTROL_REG0_TXEN_MASK 0x00000010U +#define UART0_CONTROL_REG0_TXEN_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXEN_SHIFT 4 +#define UART0_CONTROL_REG0_TXEN_MASK 0x00000010U -/*Receive disable: 0: enable 1: disable, regardless of the value of RXEN*/ +/* +* Receive disable: 0: enable 1: disable, regardless of the value of RXEN +*/ #undef UART0_CONTROL_REG0_RXDIS_DEFVAL #undef UART0_CONTROL_REG0_RXDIS_SHIFT #undef UART0_CONTROL_REG0_RXDIS_MASK -#define UART0_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXDIS_SHIFT 3 -#define UART0_CONTROL_REG0_RXDIS_MASK 0x00000008U +#define UART0_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXDIS_SHIFT 3 +#define UART0_CONTROL_REG0_RXDIS_MASK 0x00000008U -/*Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero.*/ +/* +* Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. +*/ #undef UART0_CONTROL_REG0_RXEN_DEFVAL #undef UART0_CONTROL_REG0_RXEN_SHIFT #undef UART0_CONTROL_REG0_RXEN_MASK -#define UART0_CONTROL_REG0_RXEN_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXEN_SHIFT 2 -#define UART0_CONTROL_REG0_RXEN_MASK 0x00000004U +#define UART0_CONTROL_REG0_RXEN_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXEN_SHIFT 2 +#define UART0_CONTROL_REG0_RXEN_MASK 0x00000004U -/*Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed.*/ +/* +* Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. +*/ #undef UART0_CONTROL_REG0_TXRES_DEFVAL #undef UART0_CONTROL_REG0_TXRES_SHIFT #undef UART0_CONTROL_REG0_TXRES_MASK -#define UART0_CONTROL_REG0_TXRES_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXRES_SHIFT 1 -#define UART0_CONTROL_REG0_TXRES_MASK 0x00000002U +#define UART0_CONTROL_REG0_TXRES_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXRES_SHIFT 1 +#define UART0_CONTROL_REG0_TXRES_MASK 0x00000002U -/*Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed.*/ +/* +* Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. +*/ #undef UART0_CONTROL_REG0_RXRES_DEFVAL #undef UART0_CONTROL_REG0_RXRES_SHIFT #undef UART0_CONTROL_REG0_RXRES_MASK -#define UART0_CONTROL_REG0_RXRES_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXRES_SHIFT 0 -#define UART0_CONTROL_REG0_RXRES_MASK 0x00000001U +#define UART0_CONTROL_REG0_RXRES_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXRES_SHIFT 0 +#define UART0_CONTROL_REG0_RXRES_MASK 0x00000001U -/*Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback*/ +/* +* Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback +*/ #undef UART0_MODE_REG0_CHMODE_DEFVAL #undef UART0_MODE_REG0_CHMODE_SHIFT #undef UART0_MODE_REG0_CHMODE_MASK -#define UART0_MODE_REG0_CHMODE_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CHMODE_SHIFT 8 -#define UART0_MODE_REG0_CHMODE_MASK 0x00000300U +#define UART0_MODE_REG0_CHMODE_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CHMODE_SHIFT 8 +#define UART0_MODE_REG0_CHMODE_MASK 0x00000300U -/*Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved*/ +/* +* Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved +*/ #undef UART0_MODE_REG0_NBSTOP_DEFVAL #undef UART0_MODE_REG0_NBSTOP_SHIFT #undef UART0_MODE_REG0_NBSTOP_MASK -#define UART0_MODE_REG0_NBSTOP_DEFVAL 0x00000000 -#define UART0_MODE_REG0_NBSTOP_SHIFT 6 -#define UART0_MODE_REG0_NBSTOP_MASK 0x000000C0U +#define UART0_MODE_REG0_NBSTOP_DEFVAL 0x00000000 +#define UART0_MODE_REG0_NBSTOP_SHIFT 6 +#define UART0_MODE_REG0_NBSTOP_MASK 0x000000C0U -/*Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity*/ +/* +* Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty +*/ #undef UART0_MODE_REG0_PAR_DEFVAL #undef UART0_MODE_REG0_PAR_SHIFT #undef UART0_MODE_REG0_PAR_MASK -#define UART0_MODE_REG0_PAR_DEFVAL 0x00000000 -#define UART0_MODE_REG0_PAR_SHIFT 3 -#define UART0_MODE_REG0_PAR_MASK 0x00000038U +#define UART0_MODE_REG0_PAR_DEFVAL 0x00000000 +#define UART0_MODE_REG0_PAR_SHIFT 3 +#define UART0_MODE_REG0_PAR_MASK 0x00000038U -/*Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits*/ +/* +* Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits +*/ #undef UART0_MODE_REG0_CHRL_DEFVAL #undef UART0_MODE_REG0_CHRL_SHIFT #undef UART0_MODE_REG0_CHRL_MASK -#define UART0_MODE_REG0_CHRL_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CHRL_SHIFT 1 -#define UART0_MODE_REG0_CHRL_MASK 0x00000006U +#define UART0_MODE_REG0_CHRL_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CHRL_SHIFT 1 +#define UART0_MODE_REG0_CHRL_MASK 0x00000006U -/*Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8*/ +/* +* Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 +*/ #undef UART0_MODE_REG0_CLKS_DEFVAL #undef UART0_MODE_REG0_CLKS_SHIFT #undef UART0_MODE_REG0_CLKS_MASK -#define UART0_MODE_REG0_CLKS_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CLKS_SHIFT 0 -#define UART0_MODE_REG0_CLKS_MASK 0x00000001U +#define UART0_MODE_REG0_CLKS_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CLKS_SHIFT 0 +#define UART0_MODE_REG0_CLKS_MASK 0x00000001U -/*Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate*/ +/* +* Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +*/ #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU -/*Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample*/ +/* +* Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +*/ #undef UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL #undef UART1_BAUD_RATE_GEN_REG0_CD_SHIFT #undef UART1_BAUD_RATE_GEN_REG0_CD_MASK -#define UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B -#define UART1_BAUD_RATE_GEN_REG0_CD_SHIFT 0 -#define UART1_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU +#define UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B +#define UART1_BAUD_RATE_GEN_REG0_CD_SHIFT 0 +#define UART1_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU -/*Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK.*/ +/* +* Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. +*/ #undef UART1_CONTROL_REG0_STPBRK_DEFVAL #undef UART1_CONTROL_REG0_STPBRK_SHIFT #undef UART1_CONTROL_REG0_STPBRK_MASK -#define UART1_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_STPBRK_SHIFT 8 -#define UART1_CONTROL_REG0_STPBRK_MASK 0x00000100U +#define UART1_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_STPBRK_SHIFT 8 +#define UART1_CONTROL_REG0_STPBRK_MASK 0x00000100U -/*Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high.*/ +/* +* Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. +*/ #undef UART1_CONTROL_REG0_STTBRK_DEFVAL #undef UART1_CONTROL_REG0_STTBRK_SHIFT #undef UART1_CONTROL_REG0_STTBRK_MASK -#define UART1_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_STTBRK_SHIFT 7 -#define UART1_CONTROL_REG0_STTBRK_MASK 0x00000080U +#define UART1_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_STTBRK_SHIFT 7 +#define UART1_CONTROL_REG0_STTBRK_MASK 0x00000080U -/*Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted.*/ +/* +* Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. +*/ #undef UART1_CONTROL_REG0_RSTTO_DEFVAL #undef UART1_CONTROL_REG0_RSTTO_SHIFT #undef UART1_CONTROL_REG0_RSTTO_MASK -#define UART1_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RSTTO_SHIFT 6 -#define UART1_CONTROL_REG0_RSTTO_MASK 0x00000040U +#define UART1_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RSTTO_SHIFT 6 +#define UART1_CONTROL_REG0_RSTTO_MASK 0x00000040U -/*Transmit disable: 0: enable transmitter 1: disable transmitter*/ +/* +* Transmit disable: 0: enable transmitter 1: disable transmitter +*/ #undef UART1_CONTROL_REG0_TXDIS_DEFVAL #undef UART1_CONTROL_REG0_TXDIS_SHIFT #undef UART1_CONTROL_REG0_TXDIS_MASK -#define UART1_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXDIS_SHIFT 5 -#define UART1_CONTROL_REG0_TXDIS_MASK 0x00000020U +#define UART1_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXDIS_SHIFT 5 +#define UART1_CONTROL_REG0_TXDIS_MASK 0x00000020U -/*Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0.*/ +/* +* Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. +*/ #undef UART1_CONTROL_REG0_TXEN_DEFVAL #undef UART1_CONTROL_REG0_TXEN_SHIFT #undef UART1_CONTROL_REG0_TXEN_MASK -#define UART1_CONTROL_REG0_TXEN_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXEN_SHIFT 4 -#define UART1_CONTROL_REG0_TXEN_MASK 0x00000010U +#define UART1_CONTROL_REG0_TXEN_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXEN_SHIFT 4 +#define UART1_CONTROL_REG0_TXEN_MASK 0x00000010U -/*Receive disable: 0: enable 1: disable, regardless of the value of RXEN*/ +/* +* Receive disable: 0: enable 1: disable, regardless of the value of RXEN +*/ #undef UART1_CONTROL_REG0_RXDIS_DEFVAL #undef UART1_CONTROL_REG0_RXDIS_SHIFT #undef UART1_CONTROL_REG0_RXDIS_MASK -#define UART1_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXDIS_SHIFT 3 -#define UART1_CONTROL_REG0_RXDIS_MASK 0x00000008U +#define UART1_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXDIS_SHIFT 3 +#define UART1_CONTROL_REG0_RXDIS_MASK 0x00000008U -/*Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero.*/ +/* +* Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. +*/ #undef UART1_CONTROL_REG0_RXEN_DEFVAL #undef UART1_CONTROL_REG0_RXEN_SHIFT #undef UART1_CONTROL_REG0_RXEN_MASK -#define UART1_CONTROL_REG0_RXEN_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXEN_SHIFT 2 -#define UART1_CONTROL_REG0_RXEN_MASK 0x00000004U +#define UART1_CONTROL_REG0_RXEN_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXEN_SHIFT 2 +#define UART1_CONTROL_REG0_RXEN_MASK 0x00000004U -/*Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed.*/ +/* +* Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. +*/ #undef UART1_CONTROL_REG0_TXRES_DEFVAL #undef UART1_CONTROL_REG0_TXRES_SHIFT #undef UART1_CONTROL_REG0_TXRES_MASK -#define UART1_CONTROL_REG0_TXRES_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXRES_SHIFT 1 -#define UART1_CONTROL_REG0_TXRES_MASK 0x00000002U +#define UART1_CONTROL_REG0_TXRES_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXRES_SHIFT 1 +#define UART1_CONTROL_REG0_TXRES_MASK 0x00000002U -/*Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed.*/ +/* +* Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. +*/ #undef UART1_CONTROL_REG0_RXRES_DEFVAL #undef UART1_CONTROL_REG0_RXRES_SHIFT #undef UART1_CONTROL_REG0_RXRES_MASK -#define UART1_CONTROL_REG0_RXRES_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXRES_SHIFT 0 -#define UART1_CONTROL_REG0_RXRES_MASK 0x00000001U +#define UART1_CONTROL_REG0_RXRES_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXRES_SHIFT 0 +#define UART1_CONTROL_REG0_RXRES_MASK 0x00000001U -/*Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback*/ +/* +* Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback +*/ #undef UART1_MODE_REG0_CHMODE_DEFVAL #undef UART1_MODE_REG0_CHMODE_SHIFT #undef UART1_MODE_REG0_CHMODE_MASK -#define UART1_MODE_REG0_CHMODE_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CHMODE_SHIFT 8 -#define UART1_MODE_REG0_CHMODE_MASK 0x00000300U +#define UART1_MODE_REG0_CHMODE_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CHMODE_SHIFT 8 +#define UART1_MODE_REG0_CHMODE_MASK 0x00000300U -/*Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved*/ +/* +* Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved +*/ #undef UART1_MODE_REG0_NBSTOP_DEFVAL #undef UART1_MODE_REG0_NBSTOP_SHIFT #undef UART1_MODE_REG0_NBSTOP_MASK -#define UART1_MODE_REG0_NBSTOP_DEFVAL 0x00000000 -#define UART1_MODE_REG0_NBSTOP_SHIFT 6 -#define UART1_MODE_REG0_NBSTOP_MASK 0x000000C0U +#define UART1_MODE_REG0_NBSTOP_DEFVAL 0x00000000 +#define UART1_MODE_REG0_NBSTOP_SHIFT 6 +#define UART1_MODE_REG0_NBSTOP_MASK 0x000000C0U -/*Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity*/ +/* +* Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty +*/ #undef UART1_MODE_REG0_PAR_DEFVAL #undef UART1_MODE_REG0_PAR_SHIFT #undef UART1_MODE_REG0_PAR_MASK -#define UART1_MODE_REG0_PAR_DEFVAL 0x00000000 -#define UART1_MODE_REG0_PAR_SHIFT 3 -#define UART1_MODE_REG0_PAR_MASK 0x00000038U +#define UART1_MODE_REG0_PAR_DEFVAL 0x00000000 +#define UART1_MODE_REG0_PAR_SHIFT 3 +#define UART1_MODE_REG0_PAR_MASK 0x00000038U -/*Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits*/ +/* +* Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits +*/ #undef UART1_MODE_REG0_CHRL_DEFVAL #undef UART1_MODE_REG0_CHRL_SHIFT #undef UART1_MODE_REG0_CHRL_MASK -#define UART1_MODE_REG0_CHRL_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CHRL_SHIFT 1 -#define UART1_MODE_REG0_CHRL_MASK 0x00000006U +#define UART1_MODE_REG0_CHRL_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CHRL_SHIFT 1 +#define UART1_MODE_REG0_CHRL_MASK 0x00000006U -/*Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8*/ +/* +* Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 +*/ #undef UART1_MODE_REG0_CLKS_DEFVAL #undef UART1_MODE_REG0_CLKS_SHIFT #undef UART1_MODE_REG0_CLKS_MASK -#define UART1_MODE_REG0_CLKS_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CLKS_SHIFT 0 -#define UART1_MODE_REG0_CLKS_MASK 0x00000001U +#define UART1_MODE_REG0_CLKS_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CLKS_SHIFT 0 +#define UART1_MODE_REG0_CLKS_MASK 0x00000001U -/*TrustZone Classification for ADMA*/ +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_SHIFT 18 +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_MASK 0x00040000U + +/* +* TrustZone Classification for ADMA +*/ #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU -/*CSU regsiter*/ +/* +* CSU regsiter +*/ #undef CSU_TAMPER_STATUS_TAMPER_0_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_0_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_0_MASK -#define CSU_TAMPER_STATUS_TAMPER_0_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_0_SHIFT 0 -#define CSU_TAMPER_STATUS_TAMPER_0_MASK 0x00000001U +#define CSU_TAMPER_STATUS_TAMPER_0_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_0_SHIFT 0 +#define CSU_TAMPER_STATUS_TAMPER_0_MASK 0x00000001U -/*External MIO*/ +/* +* External MIO +*/ #undef CSU_TAMPER_STATUS_TAMPER_1_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_1_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_1_MASK -#define CSU_TAMPER_STATUS_TAMPER_1_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_1_SHIFT 1 -#define CSU_TAMPER_STATUS_TAMPER_1_MASK 0x00000002U +#define CSU_TAMPER_STATUS_TAMPER_1_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_1_SHIFT 1 +#define CSU_TAMPER_STATUS_TAMPER_1_MASK 0x00000002U -/*JTAG toggle detect*/ +/* +* JTAG toggle detect +*/ #undef CSU_TAMPER_STATUS_TAMPER_2_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_2_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_2_MASK -#define CSU_TAMPER_STATUS_TAMPER_2_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_2_SHIFT 2 -#define CSU_TAMPER_STATUS_TAMPER_2_MASK 0x00000004U +#define CSU_TAMPER_STATUS_TAMPER_2_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_2_SHIFT 2 +#define CSU_TAMPER_STATUS_TAMPER_2_MASK 0x00000004U -/*PL SEU error*/ +/* +* PL SEU error +*/ #undef CSU_TAMPER_STATUS_TAMPER_3_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_3_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_3_MASK -#define CSU_TAMPER_STATUS_TAMPER_3_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_3_SHIFT 3 -#define CSU_TAMPER_STATUS_TAMPER_3_MASK 0x00000008U +#define CSU_TAMPER_STATUS_TAMPER_3_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_3_SHIFT 3 +#define CSU_TAMPER_STATUS_TAMPER_3_MASK 0x00000008U -/*AMS over temperature alarm for LPD*/ +/* +* AMS over temperature alarm for LPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_4_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_4_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_4_MASK -#define CSU_TAMPER_STATUS_TAMPER_4_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_4_SHIFT 4 -#define CSU_TAMPER_STATUS_TAMPER_4_MASK 0x00000010U +#define CSU_TAMPER_STATUS_TAMPER_4_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_4_SHIFT 4 +#define CSU_TAMPER_STATUS_TAMPER_4_MASK 0x00000010U -/*AMS over temperature alarm for APU*/ +/* +* AMS over temperature alarm for APU +*/ #undef CSU_TAMPER_STATUS_TAMPER_5_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_5_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_5_MASK -#define CSU_TAMPER_STATUS_TAMPER_5_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_5_SHIFT 5 -#define CSU_TAMPER_STATUS_TAMPER_5_MASK 0x00000020U +#define CSU_TAMPER_STATUS_TAMPER_5_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_5_SHIFT 5 +#define CSU_TAMPER_STATUS_TAMPER_5_MASK 0x00000020U -/*AMS voltage alarm for VCCPINT_FPD*/ +/* +* AMS voltage alarm for VCCPINT_FPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_6_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_6_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_6_MASK -#define CSU_TAMPER_STATUS_TAMPER_6_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_6_SHIFT 6 -#define CSU_TAMPER_STATUS_TAMPER_6_MASK 0x00000040U +#define CSU_TAMPER_STATUS_TAMPER_6_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_6_SHIFT 6 +#define CSU_TAMPER_STATUS_TAMPER_6_MASK 0x00000040U -/*AMS voltage alarm for VCCPINT_LPD*/ +/* +* AMS voltage alarm for VCCPINT_LPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_7_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_7_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_7_MASK -#define CSU_TAMPER_STATUS_TAMPER_7_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_7_SHIFT 7 -#define CSU_TAMPER_STATUS_TAMPER_7_MASK 0x00000080U +#define CSU_TAMPER_STATUS_TAMPER_7_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_7_SHIFT 7 +#define CSU_TAMPER_STATUS_TAMPER_7_MASK 0x00000080U -/*AMS voltage alarm for VCCPAUX*/ +/* +* AMS voltage alarm for VCCPAUX +*/ #undef CSU_TAMPER_STATUS_TAMPER_8_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_8_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_8_MASK -#define CSU_TAMPER_STATUS_TAMPER_8_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_8_SHIFT 8 -#define CSU_TAMPER_STATUS_TAMPER_8_MASK 0x00000100U +#define CSU_TAMPER_STATUS_TAMPER_8_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_8_SHIFT 8 +#define CSU_TAMPER_STATUS_TAMPER_8_MASK 0x00000100U -/*AMS voltage alarm for DDRPHY*/ +/* +* AMS voltage alarm for DDRPHY +*/ #undef CSU_TAMPER_STATUS_TAMPER_9_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_9_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_9_MASK -#define CSU_TAMPER_STATUS_TAMPER_9_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_9_SHIFT 9 -#define CSU_TAMPER_STATUS_TAMPER_9_MASK 0x00000200U +#define CSU_TAMPER_STATUS_TAMPER_9_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_9_SHIFT 9 +#define CSU_TAMPER_STATUS_TAMPER_9_MASK 0x00000200U -/*AMS voltage alarm for PSIO bank 0/1/2*/ +/* +* AMS voltage alarm for PSIO bank 0/1/2 +*/ #undef CSU_TAMPER_STATUS_TAMPER_10_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_10_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_10_MASK -#define CSU_TAMPER_STATUS_TAMPER_10_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_10_SHIFT 10 -#define CSU_TAMPER_STATUS_TAMPER_10_MASK 0x00000400U +#define CSU_TAMPER_STATUS_TAMPER_10_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_10_SHIFT 10 +#define CSU_TAMPER_STATUS_TAMPER_10_MASK 0x00000400U -/*AMS voltage alarm for PSIO bank 3 (dedicated pins)*/ +/* +* AMS voltage alarm for PSIO bank 3 (dedicated pins) +*/ #undef CSU_TAMPER_STATUS_TAMPER_11_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_11_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_11_MASK -#define CSU_TAMPER_STATUS_TAMPER_11_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_11_SHIFT 11 -#define CSU_TAMPER_STATUS_TAMPER_11_MASK 0x00000800U +#define CSU_TAMPER_STATUS_TAMPER_11_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_11_SHIFT 11 +#define CSU_TAMPER_STATUS_TAMPER_11_MASK 0x00000800U -/*AMS voltaage alarm for GT*/ +/* +* AMS voltaage alarm for GT +*/ #undef CSU_TAMPER_STATUS_TAMPER_12_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_12_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_12_MASK -#define CSU_TAMPER_STATUS_TAMPER_12_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_12_SHIFT 12 -#define CSU_TAMPER_STATUS_TAMPER_12_MASK 0x00001000U +#define CSU_TAMPER_STATUS_TAMPER_12_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_12_SHIFT 12 +#define CSU_TAMPER_STATUS_TAMPER_12_MASK 0x00001000U -/*Set ACE outgoing AWQOS value*/ +/* +* Set ACE outgoing AWQOS value +*/ #undef APU_ACE_CTRL_AWQOS_DEFVAL #undef APU_ACE_CTRL_AWQOS_SHIFT #undef APU_ACE_CTRL_AWQOS_MASK -#define APU_ACE_CTRL_AWQOS_DEFVAL 0x000F000F -#define APU_ACE_CTRL_AWQOS_SHIFT 16 -#define APU_ACE_CTRL_AWQOS_MASK 0x000F0000U +#define APU_ACE_CTRL_AWQOS_DEFVAL 0x000F000F +#define APU_ACE_CTRL_AWQOS_SHIFT 16 +#define APU_ACE_CTRL_AWQOS_MASK 0x000F0000U -/*Set ACE outgoing ARQOS value*/ +/* +* Set ACE outgoing ARQOS value +*/ #undef APU_ACE_CTRL_ARQOS_DEFVAL #undef APU_ACE_CTRL_ARQOS_SHIFT #undef APU_ACE_CTRL_ARQOS_MASK -#define APU_ACE_CTRL_ARQOS_DEFVAL 0x000F000F -#define APU_ACE_CTRL_ARQOS_SHIFT 0 -#define APU_ACE_CTRL_ARQOS_MASK 0x0000000FU +#define APU_ACE_CTRL_ARQOS_DEFVAL 0x000F000F +#define APU_ACE_CTRL_ARQOS_SHIFT 0 +#define APU_ACE_CTRL_ARQOS_MASK 0x0000000FU -/*Enables the RTC. By writing a 0 to this bit, RTC will be powered off and the only module that potentially draws current from - he battery will be BBRAM. The value read through this bit does not necessarily reflect whether RTC is enabled or not. It is e - pected that RTC is enabled every time it is being configured. If RTC is not used in the design, FSBL will disable it by writi - g a 0 to this bit.*/ +/* +* Enables the RTC. By writing a 0 to this bit, RTC will be powered off and + * the only module that potentially draws current from the battery will be + * BBRAM. The value read through this bit does not necessarily reflect whe + * ther RTC is enabled or not. It is expected that RTC is enabled every tim + * e it is being configured. If RTC is not used in the design, FSBL will di + * sable it by writing a 0 to this bit. +*/ #undef RTC_CONTROL_BATTERY_DISABLE_DEFVAL #undef RTC_CONTROL_BATTERY_DISABLE_SHIFT #undef RTC_CONTROL_BATTERY_DISABLE_MASK -#define RTC_CONTROL_BATTERY_DISABLE_DEFVAL 0x01000000 -#define RTC_CONTROL_BATTERY_DISABLE_SHIFT 31 -#define RTC_CONTROL_BATTERY_DISABLE_MASK 0x80000000U +#define RTC_CONTROL_BATTERY_DISABLE_DEFVAL 0x01000000 +#define RTC_CONTROL_BATTERY_DISABLE_SHIFT 31 +#define RTC_CONTROL_BATTERY_DISABLE_MASK 0x80000000U -/*Frequency in number of ticks per second. Valid range from 10 MHz to 100 MHz.*/ +/* +* Frequency in number of ticks per second. Valid range from 10 MHz to 100 + * MHz. +*/ #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT 0 -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK 0xFFFFFFFFU +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT 0 +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK 0xFFFFFFFFU -/*Enable 0: The counter is disabled and not incrementing. 1: The counter is enabled and is incrementing.*/ +/* +* Enable 0: The counter is disabled and not incrementing. 1: The counter i + * s enabled and is incrementing. +*/ #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL 0x00000000 -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT 0 -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK 0x00000001U -#undef LPD_XPPU_CFG_IEN_OFFSET -#define LPD_XPPU_CFG_IEN_OFFSET 0XFF980018 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL 0x00000000 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT 0 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK 0x00000001U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_PARITY_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_PARITY_MASK -#define LPD_XPPU_CFG_IEN_APER_PARITY_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT 7 -#define LPD_XPPU_CFG_IEN_APER_PARITY_MASK 0x00000080U +/* +* Operation is the same as DIRM_0[DIRECTION_0] +*/ +#undef GPIO_DIRM_1_DIRECTION_1_DEFVAL +#undef GPIO_DIRM_1_DIRECTION_1_SHIFT +#undef GPIO_DIRM_1_DIRECTION_1_MASK +#define GPIO_DIRM_1_DIRECTION_1_DEFVAL 0x00000000 +#define GPIO_DIRM_1_DIRECTION_1_SHIFT 0 +#define GPIO_DIRM_1_DIRECTION_1_MASK 0x03FFFFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_TZ_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_TZ_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_TZ_MASK -#define LPD_XPPU_CFG_IEN_APER_TZ_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_TZ_SHIFT 6 -#define LPD_XPPU_CFG_IEN_APER_TZ_MASK 0x00000040U +/* +* Operation is the same as OEN_0[OP_ENABLE_0] +*/ +#undef GPIO_OEN_1_OP_ENABLE_1_DEFVAL +#undef GPIO_OEN_1_OP_ENABLE_1_SHIFT +#undef GPIO_OEN_1_OP_ENABLE_1_MASK +#define GPIO_OEN_1_OP_ENABLE_1_DEFVAL 0x00000000 +#define GPIO_OEN_1_OP_ENABLE_1_SHIFT 0 +#define GPIO_OEN_1_OP_ENABLE_1_MASK 0x03FFFFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_PERM_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_PERM_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_PERM_MASK -#define LPD_XPPU_CFG_IEN_APER_PERM_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_PERM_SHIFT 5 -#define LPD_XPPU_CFG_IEN_APER_PERM_MASK 0x00000020U +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_PARITY_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_PARITY_MASK -#define LPD_XPPU_CFG_IEN_MID_PARITY_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT 3 -#define LPD_XPPU_CFG_IEN_MID_PARITY_MASK 0x00000008U +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_RO_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_RO_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_RO_MASK -#define LPD_XPPU_CFG_IEN_MID_RO_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_RO_SHIFT 2 -#define LPD_XPPU_CFG_IEN_MID_RO_MASK 0x00000004U +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_MISS_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_MISS_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_MISS_MASK -#define LPD_XPPU_CFG_IEN_MID_MISS_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_MISS_SHIFT 1 -#define LPD_XPPU_CFG_IEN_MID_MISS_MASK 0x00000002U +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU +#undef FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET +#define FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET 0XFD690040 +#undef FPD_SLCR_SECURE_SLCR_PCIE_OFFSET +#define FPD_SLCR_SECURE_SLCR_PCIE_OFFSET 0XFD690030 +#undef LPD_SLCR_SECURE_SLCR_USB_OFFSET +#define LPD_SLCR_SECURE_SLCR_USB_OFFSET 0XFF4B0034 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef LPD_SLCR_SECURE_SLCR_ADMA_OFFSET +#define LPD_SLCR_SECURE_SLCR_ADMA_OFFSET 0XFF4B0024 +#undef FPD_SLCR_SECURE_SLCR_GDMA_OFFSET +#define FPD_SLCR_SECURE_SLCR_GDMA_OFFSET 0XFD690050 -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_INV_APB_DEFVAL -#undef LPD_XPPU_CFG_IEN_INV_APB_SHIFT -#undef LPD_XPPU_CFG_IEN_INV_APB_MASK -#define LPD_XPPU_CFG_IEN_INV_APB_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_INV_APB_SHIFT 0 -#define LPD_XPPU_CFG_IEN_INV_APB_MASK 0x00000001U +/* +* TrustZone classification for DisplayPort DMA +*/ +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_SHIFT +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_MASK +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_DEFVAL 0x00000001 +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_MASK 0x00000001U + +/* +* TrustZone classification for DMA Channel 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_SHIFT 21 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_MASK 0x00200000U + +/* +* TrustZone classification for DMA Channel 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_SHIFT 22 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_MASK 0x00400000U + +/* +* TrustZone classification for DMA Channel 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_SHIFT 23 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_MASK 0x00800000U + +/* +* TrustZone classification for DMA Channel 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_SHIFT 24 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_MASK 0x01000000U + +/* +* TrustZone classification for Ingress Address Translation 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_SHIFT 13 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_MASK 0x00002000U + +/* +* TrustZone classification for Ingress Address Translation 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_SHIFT 14 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_MASK 0x00004000U + +/* +* TrustZone classification for Ingress Address Translation 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_SHIFT 15 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_MASK 0x00008000U + +/* +* TrustZone classification for Ingress Address Translation 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_SHIFT 16 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_MASK 0x00010000U + +/* +* TrustZone classification for Ingress Address Translation 4 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_SHIFT 17 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_MASK 0x00020000U + +/* +* TrustZone classification for Ingress Address Translation 5 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_SHIFT 18 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_MASK 0x00040000U + +/* +* TrustZone classification for Ingress Address Translation 6 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_SHIFT 19 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_MASK 0x00080000U + +/* +* TrustZone classification for Ingress Address Translation 7 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_SHIFT 20 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_MASK 0x00100000U + +/* +* TrustZone classification for Egress Address Translation 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_SHIFT 5 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_MASK 0x00000020U + +/* +* TrustZone classification for Egress Address Translation 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_SHIFT 6 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_MASK 0x00000040U + +/* +* TrustZone classification for Egress Address Translation 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_SHIFT 7 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_MASK 0x00000080U + +/* +* TrustZone classification for Egress Address Translation 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_SHIFT 8 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_MASK 0x00000100U + +/* +* TrustZone classification for Egress Address Translation 4 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_SHIFT 9 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_MASK 0x00000200U + +/* +* TrustZone classification for Egress Address Translation 5 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_SHIFT 10 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_MASK 0x00000400U + +/* +* TrustZone classification for Egress Address Translation 6 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_SHIFT 11 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_MASK 0x00000800U + +/* +* TrustZone classification for Egress Address Translation 7 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_SHIFT 12 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_MASK 0x00001000U + +/* +* TrustZone classification for DMA Registers +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_SHIFT 4 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_MASK 0x00000010U + +/* +* TrustZone classification for MSIx Table +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_SHIFT 2 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_MASK 0x00000004U + +/* +* TrustZone classification for MSIx PBA +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_SHIFT 3 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_MASK 0x00000008U + +/* +* TrustZone classification for ECAM +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_SHIFT 1 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_MASK 0x00000002U + +/* +* TrustZone classification for Bridge Common Registers +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_MASK 0x00000001U + +/* +* TrustZone Classification for USB3_0 +*/ +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_SHIFT +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_MASK +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_DEFVAL 0x00000003 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_MASK 0x00000001U + +/* +* TrustZone Classification for USB3_1 +*/ +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_SHIFT +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_MASK +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_DEFVAL 0x00000003 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_SHIFT 1 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_MASK 0x00000002U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_SHIFT 16 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_MASK 0x00070000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_SHIFT 19 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_MASK 0x00380000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_SHIFT 16 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_MASK 0x00070000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_SHIFT 19 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_MASK 0x00380000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_SHIFT 0 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_MASK 0x00000007U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_SHIFT 3 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_MASK 0x00000038U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_SHIFT 6 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_MASK 0x000001C0U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_SHIFT 9 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_MASK 0x00000E00U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_SHIFT 0 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_MASK 0x00000007U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_SHIFT 3 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_MASK 0x00000038U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_SHIFT 6 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_MASK 0x000001C0U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_SHIFT 9 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_MASK 0x00000E00U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_SHIFT 25 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_MASK 0x0E000000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_SHIFT 22 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_MASK 0x01C00000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_SHIFT 22 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_MASK 0x01C00000U + +/* +* TrustZone Classification for ADMA +*/ +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU + +/* +* TrustZone Classification for GDMA +*/ +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_SHIFT +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_MASK +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_DEFVAL +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_MASK 0x000000FFU #undef SERDES_PLL_REF_SEL0_OFFSET #define SERDES_PLL_REF_SEL0_OFFSET 0XFD410000 #undef SERDES_PLL_REF_SEL1_OFFSET @@ -25332,8 +32859,6 @@ #define SERDES_L3_TM_DIG_6_OFFSET 0XFD40D06C #undef SERDES_L3_TX_DIG_TM_61_OFFSET #define SERDES_L3_TX_DIG_TM_61_OFFSET 0XFD40C0F4 -#undef SERDES_L3_TXPMA_ST_0_OFFSET -#define SERDES_L3_TXPMA_ST_0_OFFSET 0XFD40CB00 #undef SERDES_L0_TM_AUX_0_OFFSET #define SERDES_L0_TM_AUX_0_OFFSET 0XFD4010CC #undef SERDES_L2_TM_AUX_0_OFFSET @@ -25372,6 +32897,10 @@ #define SERDES_L0_TM_E_ILL8_OFFSET 0XFD401940 #undef SERDES_L0_TM_E_ILL9_OFFSET #define SERDES_L0_TM_E_ILL9_OFFSET 0XFD401944 +#undef SERDES_L0_TM_ILL13_OFFSET +#define SERDES_L0_TM_ILL13_OFFSET 0XFD401994 +#undef SERDES_L1_TM_ILL13_OFFSET +#define SERDES_L1_TM_ILL13_OFFSET 0XFD405994 #undef SERDES_L2_TM_MISC2_OFFSET #define SERDES_L2_TM_MISC2_OFFSET 0XFD40989C #undef SERDES_L2_TM_IQ_ILL1_OFFSET @@ -25398,6 +32927,8 @@ #define SERDES_L2_TM_E_ILL8_OFFSET 0XFD409940 #undef SERDES_L2_TM_E_ILL9_OFFSET #define SERDES_L2_TM_E_ILL9_OFFSET 0XFD409944 +#undef SERDES_L2_TM_ILL13_OFFSET +#define SERDES_L2_TM_ILL13_OFFSET 0XFD409994 #undef SERDES_L3_TM_MISC2_OFFSET #define SERDES_L3_TM_MISC2_OFFSET 0XFD40D89C #undef SERDES_L3_TM_IQ_ILL1_OFFSET @@ -25426,10 +32957,16 @@ #define SERDES_L3_TM_E_ILL8_OFFSET 0XFD40D940 #undef SERDES_L3_TM_E_ILL9_OFFSET #define SERDES_L3_TM_E_ILL9_OFFSET 0XFD40D944 -#undef SERDES_L0_TM_DIG_21_OFFSET -#define SERDES_L0_TM_DIG_21_OFFSET 0XFD4010A8 +#undef SERDES_L3_TM_ILL13_OFFSET +#define SERDES_L3_TM_ILL13_OFFSET 0XFD40D994 #undef SERDES_L0_TM_DIG_10_OFFSET #define SERDES_L0_TM_DIG_10_OFFSET 0XFD40107C +#undef SERDES_L1_TM_DIG_10_OFFSET +#define SERDES_L1_TM_DIG_10_OFFSET 0XFD40507C +#undef SERDES_L2_TM_DIG_10_OFFSET +#define SERDES_L2_TM_DIG_10_OFFSET 0XFD40907C +#undef SERDES_L3_TM_DIG_10_OFFSET +#define SERDES_L3_TM_DIG_10_OFFSET 0XFD40D07C #undef SERDES_L0_TM_RST_DLY_OFFSET #define SERDES_L0_TM_RST_DLY_OFFSET 0XFD4019A4 #undef SERDES_L0_TM_ANA_BYP_15_OFFSET @@ -25454,6 +32991,24 @@ #define SERDES_L3_TM_ANA_BYP_15_OFFSET 0XFD40D038 #undef SERDES_L3_TM_ANA_BYP_12_OFFSET #define SERDES_L3_TM_ANA_BYP_12_OFFSET 0XFD40D02C +#undef SERDES_L0_TM_MISC3_OFFSET +#define SERDES_L0_TM_MISC3_OFFSET 0XFD4019AC +#undef SERDES_L1_TM_MISC3_OFFSET +#define SERDES_L1_TM_MISC3_OFFSET 0XFD4059AC +#undef SERDES_L2_TM_MISC3_OFFSET +#define SERDES_L2_TM_MISC3_OFFSET 0XFD4099AC +#undef SERDES_L3_TM_MISC3_OFFSET +#define SERDES_L3_TM_MISC3_OFFSET 0XFD40D9AC +#undef SERDES_L0_TM_EQ11_OFFSET +#define SERDES_L0_TM_EQ11_OFFSET 0XFD401978 +#undef SERDES_L1_TM_EQ11_OFFSET +#define SERDES_L1_TM_EQ11_OFFSET 0XFD405978 +#undef SERDES_L2_TM_EQ11_OFFSET +#define SERDES_L2_TM_EQ11_OFFSET 0XFD409978 +#undef SERDES_L3_TM_EQ11_OFFSET +#define SERDES_L3_TM_EQ11_OFFSET 0XFD40D978 +#undef SIOU_ECO_0_OFFSET +#define SIOU_ECO_0_OFFSET 0XFD3D001C #undef SERDES_ICM_CFG0_OFFSET #define SERDES_ICM_CFG0_OFFSET 0XFD410010 #undef SERDES_ICM_CFG1_OFFSET @@ -25479,1055 +33034,1511 @@ #undef SERDES_L3_TX_ANA_TM_18_OFFSET #define SERDES_L3_TX_ANA_TM_18_OFFSET 0XFD40C048 -/*PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL 0x0000000D -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT 0 -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL 0x0000000D +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT 0 +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK 0x0000001FU -/*PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL 0x00000008 -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT 0 -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL 0x00000008 +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT 0 +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK 0x0000001FU -/*PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL 0x0000000F -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT 0 -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL 0x0000000F +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT 0 +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK 0x0000001FU -/*PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL 0x0000000E -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT 0 -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL 0x0000000E +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT 0 +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK 0x0000001FU -/*Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer output. Set to 0 to select lane0 ref clock mux output.*/ +/* +* Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer outp + * ut. Set to 0 to select lane0 ref clock mux output. +*/ #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane1 ref clock mux output.*/ +/* +* Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane1 ref clock mux output. +*/ #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 slicer output from ref clock network*/ +/* +* Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 sli + * cer output from ref clock network +*/ #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL 0x00000080 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT 3 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK 0x00000008U +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL 0x00000080 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT 3 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK 0x00000008U -/*Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane2 ref clock mux output.*/ +/* +* Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane2 ref clock mux output. +*/ #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer output. Set to 0 to select lane3 ref clock mux output.*/ +/* +* Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer outp + * ut. Set to 0 to select lane3 ref clock mux output. +*/ #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 slicer output from ref clock network*/ +/* +* Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 sli + * cer output from ref clock network +*/ #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL 0x00000080 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT 1 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK 0x00000002U +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL 0x00000080 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT 1 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK 0x00000002U -/*Enable/Disable coarse code satureation limiting logic*/ +/* +* Enable/Disable coarse code satureation limiting logic +*/ #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL 0x00000000 -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT 4 -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK 0x00000010U +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL 0x00000000 +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT 4 +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK 0x00000010U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Enable test mode forcing on enable Spread Spectrum*/ +/* +* Enable test mode forcing on enable Spread Spectrum +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT 7 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK 0x00000080U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT 7 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK 0x00000080U -/*Bypass Descrambler*/ +/* +* Bypass Descrambler +*/ #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U -/*Enable Bypass for <1> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <1> TM_DIG_CTRL_6 +*/ #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U -/*Bypass scrambler signal*/ +/* +* Bypass scrambler signal +*/ #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U -/*Enable/disable scrambler bypass signal*/ +/* +* Enable/disable scrambler bypass signal +*/ #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U -/*Enable test mode force on fractional mode enable*/ +/* +* Enable test mode force on fractional mode enable +*/ #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL 0x00000000 -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT 6 -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK 0x00000040U +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL 0x00000000 +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT 6 +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK 0x00000040U -/*Bypass 8b10b decoder*/ +/* +* Bypass 8b10b decoder +*/ #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT 3 -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK 0x00000008U +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT 3 +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK 0x00000008U -/*Enable Bypass for <3> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <3> TM_DIG_CTRL_6 +*/ #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT 2 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK 0x00000004U +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT 2 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK 0x00000004U -/*Bypass Descrambler*/ +/* +* Bypass Descrambler +*/ #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U -/*Enable Bypass for <1> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <1> TM_DIG_CTRL_6 +*/ #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U -/*Enable/disable encoder bypass signal*/ +/* +* Enable/disable encoder bypass signal +*/ #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT 3 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK 0x00000008U +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT 3 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK 0x00000008U -/*Bypass scrambler signal*/ +/* +* Bypass scrambler signal +*/ #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U -/*Enable/disable scrambler bypass signal*/ +/* +* Enable/disable scrambler bypass signal +*/ #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U -/*PHY Mode: 4'b000 - PCIe, 4'b001 - USB3, 4'b0010 - SATA, 4'b0100 - SGMII, 4'b0101 - DP, 4'b1000 - MPHY*/ -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_DEFVAL -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_DEFVAL 0x00000001 -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT 4 -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK 0x000000F0U - -/*Spare- not used*/ +/* +* Spare- not used +*/ #undef SERDES_L0_TM_AUX_0_BIT_2_DEFVAL #undef SERDES_L0_TM_AUX_0_BIT_2_SHIFT #undef SERDES_L0_TM_AUX_0_BIT_2_MASK -#define SERDES_L0_TM_AUX_0_BIT_2_DEFVAL 0x00000000 -#define SERDES_L0_TM_AUX_0_BIT_2_SHIFT 5 -#define SERDES_L0_TM_AUX_0_BIT_2_MASK 0x00000020U +#define SERDES_L0_TM_AUX_0_BIT_2_DEFVAL 0x00000000 +#define SERDES_L0_TM_AUX_0_BIT_2_SHIFT 5 +#define SERDES_L0_TM_AUX_0_BIT_2_MASK 0x00000020U -/*Spare- not used*/ +/* +* Spare- not used +*/ #undef SERDES_L2_TM_AUX_0_BIT_2_DEFVAL #undef SERDES_L2_TM_AUX_0_BIT_2_SHIFT #undef SERDES_L2_TM_AUX_0_BIT_2_MASK -#define SERDES_L2_TM_AUX_0_BIT_2_DEFVAL 0x00000000 -#define SERDES_L2_TM_AUX_0_BIT_2_SHIFT 5 -#define SERDES_L2_TM_AUX_0_BIT_2_MASK 0x00000020U +#define SERDES_L2_TM_AUX_0_BIT_2_DEFVAL 0x00000000 +#define SERDES_L2_TM_AUX_0_BIT_2_SHIFT 5 +#define SERDES_L2_TM_AUX_0_BIT_2_MASK 0x00000020U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*G2A_PCIe1 PLL ctr bypass value*/ +/* +* G2A_PCIe1 PLL ctr bypass value +*/ #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT 4 -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK 0x000000F0U +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT 4 +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK 0x000000F0U -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*pre lock comma count threshold. 2'b 00 : 3, 2'b 01 : 5, 2'b 10 : 10, 2'b 11 : 20*/ -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_DEFVAL -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_DEFVAL 0x00000000 -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT 0 -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK 0x00000003U +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U -/*CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001*/ +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU -/*Delay apb reset by specified amount*/ +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unuse - , 7 - Unused*/ +/* +* CDR fast phase lock control +*/ +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* For future use +*/ +#undef SIOU_ECO_0_FIELD_DEFVAL +#undef SIOU_ECO_0_FIELD_SHIFT +#undef SIOU_ECO_0_FIELD_MASK +#define SIOU_ECO_0_FIELD_DEFVAL +#define SIOU_ECO_0_FIELD_SHIFT 0 +#define SIOU_ECO_0_FIELD_MASK 0xFFFFFFFFU + +/* +* Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT #undef SERDES_ICM_CFG0_L0_ICM_CFG_MASK -#define SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT 0 -#define SERDES_ICM_CFG0_L0_ICM_CFG_MASK 0x00000007U +#define SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT 0 +#define SERDES_ICM_CFG0_L0_ICM_CFG_MASK 0x00000007U -/*Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT #undef SERDES_ICM_CFG0_L1_ICM_CFG_MASK -#define SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT 4 -#define SERDES_ICM_CFG0_L1_ICM_CFG_MASK 0x00000070U +#define SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT 4 +#define SERDES_ICM_CFG0_L1_ICM_CFG_MASK 0x00000070U -/*Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT #undef SERDES_ICM_CFG1_L2_ICM_CFG_MASK -#define SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT 0 -#define SERDES_ICM_CFG1_L2_ICM_CFG_MASK 0x00000007U +#define SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT 0 +#define SERDES_ICM_CFG1_L2_ICM_CFG_MASK 0x00000007U -/*Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, + * 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT #undef SERDES_ICM_CFG1_L3_ICM_CFG_MASK -#define SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT 4 -#define SERDES_ICM_CFG1_L3_ICM_CFG_MASK 0x00000070U +#define SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT 4 +#define SERDES_ICM_CFG1_L3_ICM_CFG_MASK 0x00000070U -/*Enable/disable DP post2 path*/ +/* +* Enable/disable DP post2 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT 5 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK 0x00000020U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT 5 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK 0x00000020U -/*Override enable/disable of DP post2 path*/ +/* +* Override enable/disable of DP post2 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT 4 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK 0x00000010U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT 4 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK 0x00000010U -/*Override enable/disable of DP post1 path*/ +/* +* Override enable/disable of DP post1 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT 2 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK 0x00000004U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT 2 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK 0x00000004U -/*Enable/disable DP main path*/ +/* +* Enable/disable DP main path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT 1 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK 0x00000002U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT 1 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK 0x00000002U -/*Override enable/disable of DP main path*/ +/* +* Override enable/disable of DP main path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT 0 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK 0x00000001U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT 0 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK 0x00000001U -/*Test register force for enabling/disablign TX deemphasis bits <17:0>*/ +/* +* Test register force for enabling/disablign TX deemphasis bits <17:0> +*/ #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U -/*Test register force for enabling/disablign TX deemphasis bits <17:0>*/ +/* +* Test register force for enabling/disablign TX deemphasis bits <17:0> +*/ #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U -/*FPHL FSM accumulate cycles*/ +/* +* FPHL FSM accumulate cycles +*/ #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT 5 -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK 0x000000E0U +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT 5 +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK 0x000000E0U -/*FFL Phase0 int gain aka 2ol SD update rate*/ +/* +* FFL Phase0 int gain aka 2ol SD update rate +*/ #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT 0 -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK 0x0000001FU +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT 0 +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK 0x0000001FU -/*FFL Phase0 prop gain aka 1ol SD update rate*/ +/* +* FFL Phase0 prop gain aka 1ol SD update rate +*/ #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT 0 -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK 0x0000001FU +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT 0 +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK 0x0000001FU -/*EQ stg 2 controls BYPASSED*/ +/* +* EQ stg 2 controls BYPASSED +*/ #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT 5 -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK 0x00000020U +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT 5 +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK 0x00000020U -/*EQ STG2 RL PROG*/ +/* +* EQ STG2 RL PROG +*/ #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT 0 -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK 0x00000003U +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT 0 +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK 0x00000003U -/*EQ stg 2 preamp mode val*/ +/* +* EQ stg 2 preamp mode val +*/ #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT 2 -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK 0x00000004U +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT 2 +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK 0x00000004U -/*Margining factor value*/ +/* +* Margining factor value +*/ #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT 0 -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK 0x0000001FU +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT 0 +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK 0x0000001FU -/*pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved*/ +/* +* pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved +*/ #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU -/*pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved*/ +/* +* pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved +*/ #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C -#undef USB3_0_FPD_POWER_PRSNT_OFFSET -#define USB3_0_FPD_POWER_PRSNT_OFFSET 0XFF9D0080 -#undef USB3_0_FPD_PIPE_CLK_OFFSET -#define USB3_0_FPD_PIPE_CLK_OFFSET 0XFF9D007C #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET @@ -26548,6 +34559,10 @@ #define USB3_0_XHCI_GUSB2PHYCFG_OFFSET 0XFE20C200 #undef USB3_0_XHCI_GFLADJ_OFFSET #define USB3_0_XHCI_GFLADJ_OFFSET 0XFE20C630 +#undef USB3_0_XHCI_GUCTL1_OFFSET +#define USB3_0_XHCI_GUCTL1_OFFSET 0XFE20C11C +#undef USB3_0_XHCI_GUCTL_OFFSET +#define USB3_0_XHCI_GUCTL_OFFSET 0XFE20C12C #undef PCIE_ATTRIB_ATTR_25_OFFSET #define PCIE_ATTRIB_ATTR_25_OFFSET 0XFD480064 #undef PCIE_ATTRIB_ATTR_7_OFFSET @@ -26638,6 +34653,8 @@ #define PCIE_ATTRIB_ATTR_35_OFFSET 0XFD48008C #undef CRF_APB_RST_FPD_TOP_OFFSET #define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 #undef SATA_AHCI_VENDOR_PP2C_OFFSET #define SATA_AHCI_VENDOR_PP2C_OFFSET 0XFD0C00AC #undef SATA_AHCI_VENDOR_PP3C_OFFSET @@ -26647,1015 +34664,1462 @@ #undef SATA_AHCI_VENDOR_PP5C_OFFSET #define SATA_AHCI_VENDOR_PP5C_OFFSET 0XFD0C00B8 -/*USB 0 reset for control registers*/ +/* +* USB 0 reset for control registers +*/ #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U -/*This bit is used to choose between PIPE power present and 1'b1*/ -#undef USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL -#undef USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT -#undef USB3_0_FPD_POWER_PRSNT_OPTION_MASK -#define USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL -#define USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT 0 -#define USB3_0_FPD_POWER_PRSNT_OPTION_MASK 0x00000001U - -/*This bit is used to choose between PIPE clock coming from SerDes and the suspend clk*/ -#undef USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL -#undef USB3_0_FPD_PIPE_CLK_OPTION_SHIFT -#undef USB3_0_FPD_PIPE_CLK_OPTION_MASK -#define USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL -#define USB3_0_FPD_PIPE_CLK_OPTION_SHIFT 0 -#define USB3_0_FPD_PIPE_CLK_OPTION_MASK 0x00000001U - -/*USB 0 sleep circuit reset*/ +/* +* USB 0 sleep circuit reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U -/*USB 0 reset*/ +/* +* USB 0 reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U -/*GEM 3 reset*/ +/* +* GEM 3 reset +*/ #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U -/*Sata PM clock control select*/ +/* +* Sata PM clock control select +*/ #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT 0 -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK 0x00000003U +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT 0 +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK 0x00000003U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U -/*Set to '1' to hold the GT in reset. Clear to release.*/ +/* +* Set to '1' to hold the GT in reset. Clear to release. +*/ #undef DP_DP_PHY_RESET_GT_RESET_DEFVAL #undef DP_DP_PHY_RESET_GT_RESET_SHIFT #undef DP_DP_PHY_RESET_GT_RESET_MASK -#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 -#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 -#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U +#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 +#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 +#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U -/*Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1*/ +/* +* Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 +*/ #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU -/*USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to - he Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). The following are the required values for the minimum S - C bus frequency of 60 MHz. USB turnaround time is a critical certification criteria when using long cables and five hub level - . The required values for this field: - 4'h5: When the MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit - UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround time is not critical, this field can be set to a larger - alue. Note: This field is valid only in device mode.*/ +/* +* USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY cloc + * ks. Specifies the response time for a MAC request to the Packet FIFO Con + * troller (PFC) to fetch data from the DFIFO (SPRAM). The following are th + * e required values for the minimum SoC bus frequency of 60 MHz. USB turna + * round time is a critical certification criteria when using long cables a + * nd five hub levels. The required values for this field: - 4'h5: When the + * MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit + * UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround tim + * e is not critical, this field can be set to a larger value. Note: This f + * ield is valid only in device mode. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT 10 -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK 0x00003C00U +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT 10 +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK 0x00003C00U -/*Transceiver Delay: Enables a delay between the assertion of the UTMI/ULPI Transceiver Select signal (for HS) and the assertio - of the TxValid signal during a HS Chirp. When this bit is set to 1, a delay (of approximately 2.5 us) is introduced from the - time when the Transceiver Select is set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the chirp-K. This de - ay is required for some UTMI/ULPI PHYs. Note: - If you enable the hibernation feature when the device core comes out of power - off, you must re-initialize this bit with the appropriate value because the core does not save and restore this bit value dur - ng hibernation. - This bit is valid only in device mode.*/ +/* +* Transceiver Delay: Enables a delay between the assertion of the UTMI/ULP + * I Transceiver Select signal (for HS) and the assertion of the TxValid si + * gnal during a HS Chirp. When this bit is set to 1, a delay (of approxima + * tely 2.5 us) is introduced from the time when the Transceiver Select is + * set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the + * chirp-K. This delay is required for some UTMI/ULPI PHYs. Note: - If you + * enable the hibernation feature when the device core comes out of power- + * off, you must re-initialize this bit with the appropriate value because + * the core does not save and restore this bit value during hibernation. - + * This bit is valid only in device mode. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT 9 -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK 0x00000200U +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT 9 +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK 0x00000200U -/*Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application uses this bit to control utmi_sleep_n and utmi_l1_suspen - _n assertion to the PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is not transferre - to the external PHY. - 1'b1: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is transferred to the external PHY. - ote: This bit must be set high for Port0 if PHY is used. Note: In Device mode - Before issuing any device endpoint command wh - n operating in 2.0 speeds, disable this bit and enable it after the command completes. Without disabling this bit, if a comma - d is issued when the device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get complet - d.*/ +/* +* Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application use + * s this bit to control utmi_sleep_n and utmi_l1_suspend_n assertion to th + * e PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assert + * ion from the core is not transferred to the external PHY. - 1'b1: utmi_s + * leep_n and utmi_l1_suspend_n assertion from the core is transferred to t + * he external PHY. Note: This bit must be set high for Port0 if PHY is use + * d. Note: In Device mode - Before issuing any device endpoint command whe + * n operating in 2.0 speeds, disable this bit and enable it after the comm + * and completes. Without disabling this bit, if a command is issued when t + * he device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated of + * f, the command will not get completed. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT 8 -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK 0x00000100U +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT 8 +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK 0x00000100U -/*USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select The application uses this bit to select a high-speed P - Y or a full-speed transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is always 0, with Write Only access. - - 'b1: USB 1.1 full-speed serial transceiver. This bit is always 1, with Write Only access. If both interface types are selecte - in coreConsultant (that is, parameters' values are not zero), the application uses this bit to select the active interface i - active, with Read-Write bit access. Note: USB 1.1 full-serial transceiver is not supported. This bit always reads as 1'b0.*/ +/* +* USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select T + * he application uses this bit to select a high-speed PHY or a full-speed + * transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is a + * lways 0, with Write Only access. - 1'b1: USB 1.1 full-speed serial trans + * ceiver. This bit is always 1, with Write Only access. If both interface + * types are selected in coreConsultant (that is, parameters' values are no + * t zero), the application uses this bit to select the active interface is + * active, with Read-Write bit access. Note: USB 1.1 full-serial transceiv + * er is not supported. This bit always reads as 1'b0. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT 7 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK 0x00000080U +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT 7 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK 0x00000080U -/*Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select a unidirectional or bidirectional USB 1.1 - full-speed serial transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial interface. This bit is set to 0 with - ead Only access. - 1'b1: 3-pin bidirectional full-speed serial interface. This bit is set to 0 with Read Only access. Note: U - B 1.1 full-speed serial interface is not supported. This bit always reads as 1'b0.*/ +/* +* Suspend USB2.0 HS/FS/LS PHY (SusPHY) When set, USB2.0 PHY enters Suspend + * mode if Suspend conditions are valid. For DRD/OTG configurations, it is + * recommended that this bit is set to 0 during coreConsultant configurati + * on. If it is set to 1, then the application must clear this bit after po + * wer-on reset. Application needs to set it to 1 after the core initializa + * tion completes. For all other configurations, this bit can be set to 1 d + * uring core configuration. Note: - In host mode, on reset, this bit is se + * t to 1. Software can override this bit after reset. - In device mode, be + * fore issuing any device endpoint command when operating in 2.0 speeds, d + * isable this bit and enable it after the command completes. If you issue + * a command without disabling this bit when the device is in L2 state and + * if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get c + * ompleted. +*/ +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_DEFVAL +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_SHIFT +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_MASK +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_SHIFT 6 +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_MASK 0x00000040U + +/* +* Full-Speed Serial Interface Select (FSIntf) The application uses this bi + * t to select a unidirectional or bidirectional USB 1.1 full-speed serial + * transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial in + * terface. This bit is set to 0 with Read Only access. - 1'b1: 3-pin bidir + * ectional full-speed serial interface. This bit is set to 0 with Read Onl + * y access. Note: USB 1.1 full-speed serial interface is not supported. Th + * is bit always reads as 1'b0. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT 5 -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK 0x00000020U +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT 5 +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK 0x00000020U -/*ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interfa - e - 1'b1: ULPI Interface This bit is writable only if UTMI+ and ULPI is specified for High-Speed PHY Interface(s) in coreCons - ltant configuration (DWC_USB3_HSPHY_INTERFACE = 3). Otherwise, this bit is read-only and the value depends on the interface s - lected through DWC_USB3_HSPHY_INTERFACE.*/ +/* +* ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to se + * lect a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interface - 1'b1: ULPI Int + * erface This bit is writable only if UTMI+ and ULPI is specified for High + * -Speed PHY Interface(s) in coreConsultant configuration (DWC_USB3_HSPHY_ + * INTERFACE = 3). Otherwise, this bit is read-only and the value depends o + * n the interface selected through DWC_USB3_HSPHY_INTERFACE. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT 4 -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK 0x00000010U +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT 4 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK 0x00000010U -/*PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bit to configure the core to support a UTMI+ PHY with a - 8- or 16-bit interface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the enabled 2.0 ports must have the same - lock frequency as Port0 clock frequency (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used together for differen - ports at the same time (that is, all the ports must be in 8-bit mode, or all of them must be in 16-bit mode, at a time). - I - any of the USB 2.0 ports is selected as ULPI port for operation, then all the USB 2.0 ports must be operating at 60 MHz.*/ +/* +* PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bi + * t to configure the core to support a UTMI+ PHY with an 8- or 16-bit inte + * rface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the en + * abled 2.0 ports must have the same clock frequency as Port0 clock freque + * ncy (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used toge + * ther for different ports at the same time (that is, all the ports must b + * e in 8-bit mode, or all of them must be in 16-bit mode, at a time). - If + * any of the USB 2.0 ports is selected as ULPI port for operation, then a + * ll the USB 2.0 ports must be operating at 60 MHz. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT 3 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK 0x00000008U +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT 3 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK 0x00000008U -/*HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicated by the application in this field, is multiplied by - a bit-time factor; this factor is added to the high-speed/full-speed interpacket timeout duration in the core to account for - dditional delays introduced by the PHY. This may be required, since the delay introduced by the PHY in generating the linesta - e condition may vary among PHYs. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. - The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this - ield based on the speed of connection. The number of bit times added per PHY clock are: High-speed operation: - One 30-MHz PH - clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One - 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times*/ +/* +* HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicat + * ed by the application in this field, is multiplied by a bit-time factor; + * this factor is added to the high-speed/full-speed interpacket timeout d + * uration in the core to account for additional delays introduced by the P + * HY. This may be required, since the delay introduced by the PHY in gener + * ating the linestate condition may vary among PHYs. The USB standard time + * out value for high-speed operation is 736 to 816 (inclusive) bit times. + * The USB standard timeout value for full-speed operation is 16 to 18 (inc + * lusive) bit times. The application must program this field based on the + * speed of connection. The number of bit times added per PHY clock are: Hi + * gh-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz P + * HY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0. + * 4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY cloc + * k = 0.25 bit times +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT 0 -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK 0x00000007U +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT 0 +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK 0x00000007U -/*This field indicates the frame length adjustment to be applied when SOF/ITP counter is running on the ref_clk. This register - alue is used to adjust the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP interval when GLADJ.GFLADJ_REFCLK_LP - _SEL is set to '1'. This field must be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set to '1' or GCTL.SOF - TPSYNC is set to '1'. The value is derived as follows: FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_p - riod)) * ref_clk_period where - the ref_clk_period_integer is the integer value of the ref_clk period got by truncating the d - cimal (fractional) value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_clk_period is the ref_clk period inc - uding the fractional value. Examples: If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLADJ_REFCLK_FLADJ = - ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignoring the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_P - RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*20.8333 = 5208 (ignoring the fractional value)*/ +/* +* ULPI External VBUS Drive (ULPIExtVbusDrv) Selects supply source to drive + * 5V on VBUS, in the ULPI PHY. - 1'b0: PHY drives VBUS with internal char + * ge pump (default). - 1'b1: PHY drives VBUS with an external supply. (Onl + * y when RTL parameter DWC_USB3_HSPHY_INTERFACE = 2 or 3) +*/ +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_DEFVAL +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_SHIFT +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_MASK +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_SHIFT 17 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_MASK 0x00020000U + +/* +* This field indicates the frame length adjustment to be applied when SOF/ + * ITP counter is running on the ref_clk. This register value is used to ad + * just the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP i + * nterval when GLADJ.GFLADJ_REFCLK_LPM_SEL is set to '1'. This field must + * be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set t + * o '1' or GCTL.SOFITPSYNC is set to '1'. The value is derived as follows: + * FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_pe + * riod)) * ref_clk_period where - the ref_clk_period_integer is the intege + * r value of the ref_clk period got by truncating the decimal (fractional) + * value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_c + * lk_period is the ref_clk period including the fractional value. Examples + * : If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLA + * DJ_REFCLK_FLADJ = ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignorin + * g the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_PE + * RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*2 + * 0.8333 = 5208 (ignoring the fractional value) +*/ #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL 0x00000000 -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT 8 -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK 0x003FFF00U +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL 0x00000000 +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT 8 +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK 0x003FFF00U -/*If TRUE Completion Timeout Disable is supported. This is required to be TRUE for Endpoint and either setting allowed for Root - ports. Drives Device Capability 2 [4]; EP=0x0001; RP=0x0001*/ +/* +* When this bit is set to '0', termsel, xcvrsel will become 0 during end o + * f resume while the opmode will become 0 once controller completes end of + * resume and enters U0 state (2 separate commandswill be issued). When th + * is bit is set to '1', all the termsel, xcvrsel, opmode becomes 0 during + * end of resume itself (only 1 command will be issued) +*/ +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_DEFVAL +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_SHIFT +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_MASK +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_SHIFT 10 +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_MASK 0x00000400U + +/* +* Reserved +*/ +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_DEFVAL +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_SHIFT +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_MASK +#define USB3_0_XHCI_GUCTL1_RESERVED_9_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL1_RESERVED_9_SHIFT 9 +#define USB3_0_XHCI_GUCTL1_RESERVED_9_MASK 0x00000200U + +/* +* Host IN Auto Retry (USBHstInAutoRetryEn) When set, this field enables th + * e Auto Retry feature. For IN transfers (non-isochronous) that encounter + * data packets with CRC errors or internal overrun scenarios, the auto ret + * ry feature causes the Host core to reply to the device with a non-termin + * ating retry ACK (that is, an ACK transaction packet with Retry = 1 and N + * umP != 0). If the Auto Retry feature is disabled (default), the core wil + * l respond with a terminating retry ACK (that is, an ACK transaction pack + * et with Retry = 1 and NumP = 0). - 1'b0: Auto Retry Disabled - 1'b1: Aut + * o Retry Enabled Note: This bit is also applicable to the device mode. +*/ +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_DEFVAL +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_SHIFT +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_MASK +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_SHIFT 14 +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_MASK 0x00004000U + +/* +* If TRUE Completion Timeout Disable is supported. This is required to be + * TRUE for Endpoint and either setting allowed for Root ports. Drives Devi + * ce Capability 2 [4]; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT 9 -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT 9 +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK 0x00000200U -/*Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0x0004; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0x0004; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT 0 -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT 0 +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0xFFF0; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0xFFF0; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT 0 -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT 0 +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT 0 -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT 0 +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT 0 -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT 0 +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFFF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFFF +*/ #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT 0 -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT 0 +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0x00FF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0x00FF +*/ #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT 0 -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT 0 +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT 0 -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT 0 +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFFF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0xFFFF +*/ #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT 0 -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT 0 +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFF0*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFF0 +*/ #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT 0 -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT 0 +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0xFFF0*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0xFFF0 +*/ #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT 0 -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT 0 +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 +*/ #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT 0 -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT 0 +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 +*/ #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT 0 -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT 0 +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK 0x0000FFFFU -/*Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1- 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred - to the Device Capabilities register. The values: 4-2048 bytes, 5- 4096 bytes are not supported; EP=0x0001; RP=0x0001*/ +/* +* Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1 + * - 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred to the Device Capa + * bilities register. The values: 4-2048 bytes, 5- 4096 bytes are not suppo + * rted; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL 0x00002138 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT 8 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK 0x00000700U +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL 0x00002138 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT 8 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK 0x00000700U -/*Endpoint L1 Acceptable Latency. Records the latency that the endpoint can withstand on transitions from L1 state to L0 (if L1 - state supported). Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to 8us, 4h 8 to 16us, 5h 16 to 32us, 6 - 32 to 64us, 7h more than 64us. For Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000*/ +/* +* Endpoint L1 Acceptable Latency. Records the latency that the endpoint ca + * n withstand on transitions from L1 state to L0 (if L1 state supported). + * Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to + * 8us, 4h 8 to 16us, 5h 16 to 32us, 6h 32 to 64us, 7h more than 64us. For + * Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL 0x00002138 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT 3 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK 0x00000038U +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL 0x00002138 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT 3 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK 0x00000038U -/*Identifies the type of device/port as follows: 0000b PCI Express Endpoint device, 0001b Legacy PCI Express Endpoint device, 0 - 00b Root Port of PCI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110b Downstream Port of PCI Express Sw - tch, 0111b PCIE Express to PCI/PCI-X Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Express Capabilities r - gister. Must be consistent with IS_SWITCH and UPSTREAM_FACING settings.; EP=0x0000; RP=0x0004*/ +/* +* Identifies the type of device/port as follows: 0000b PCI Express Endpoin + * t device, 0001b Legacy PCI Express Endpoint device, 0100b Root Port of P + * CI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110 + * b Downstream Port of PCI Express Switch, 0111b PCIE Express to PCI/PCI-X + * Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Expre + * ss Capabilities register. Must be consistent with IS_SWITCH and UPSTREAM + * _FACING settings.; EP=0x0000; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL 0x00009C02 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT 4 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK 0x000000F0U +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL 0x00009C02 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT 4 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK 0x000000F0U -/*PCIe Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capab - lity.; EP=0x009C; RP=0x0000*/ +/* +* PCIe Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x009C; + * RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL 0x00009C02 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT 8 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK 0x0000FF00U +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL 0x00009C02 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT 8 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK 0x0000FF00U -/*Number of credits that should be advertised for Completion data received on Virtual Channel 0. The bytes advertised must be l - ss than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD*/ +/* +* Number of credits that should be advertised for Completion data received + * on Virtual Channel 0. The bytes advertised must be less than or equal t + * o the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD +*/ #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK 0x000007FFU -/*Number of credits that should be advertised for Completion headers received on Virtual Channel 0. The sum of the posted, non - osted, and completion header credits must be <= 80; EP=0x0048; RP=0x0024*/ +/* +* Number of credits that should be advertised for Completion headers recei + * ved on Virtual Channel 0. The sum of the posted, non posted, and complet + * ion header credits must be <= 80; EP=0x0048; RP=0x0024 +*/ #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL 0x00000248 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK 0x0000007FU +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL 0x00000248 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK 0x0000007FU -/*Number of credits that should be advertised for Non-Posted headers received on Virtual Channel 0. The number of non posted da - a credits advertised by the block is equal to the number of non posted header credits. The sum of the posted, non posted, and - completion header credits must be <= 80; EP=0x0004; RP=0x000C*/ +/* +* Number of credits that should be advertised for Non-Posted headers recei + * ved on Virtual Channel 0. The number of non posted data credits advertis + * ed by the block is equal to the number of non posted header credits. The + * sum of the posted, non posted, and completion header credits must be <= + * 80; EP=0x0004; RP=0x000C +*/ #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL 0x00000248 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT 7 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK 0x00003F80U +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL 0x00000248 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT 7 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK 0x00003F80U -/*Number of credits that should be advertised for Non-Posted data received on Virtual Channel 0. The number of non posted data - redits advertised by the block is equal to two times the number of non posted header credits if atomic operations are support - d or is equal to the number of non posted header credits if atomic operations are not supported. The bytes advertised must be - less than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018*/ +/* +* Number of credits that should be advertised for Non-Posted data received + * on Virtual Channel 0. The number of non posted data credits advertised + * by the block is equal to two times the number of non posted header credi + * ts if atomic operations are supported or is equal to the number of non p + * osted header credits if atomic operations are not supported. The bytes a + * dvertised must be less than or equal to the bram bytes available. See VC + * 0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 +*/ #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK 0x000007FFU -/*Number of credits that should be advertised for Posted data received on Virtual Channel 0. The bytes advertised must be less - han or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5*/ +/* +* Number of credits that should be advertised for Posted data received on + * Virtual Channel 0. The bytes advertised must be less than or equal to th + * e bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 +*/ #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK 0x000007FFU -/*Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x00 - 0*/ +/* +* Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_ + * n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT 15 -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK 0x00008000U +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT 15 +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK 0x00008000U -/*Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim TRUE == trim.; EP=0x0001; RP=0x0001*/ +/* +* Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim + * TRUE == trim.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT 14 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK 0x00004000U +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT 14 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK 0x00004000U -/*Enables ECRC check on received TLP's 0 == don't check 1 == always check 3 == check if enabled by ECRC check enable bit of AER - cap structure; EP=0x0003; RP=0x0003*/ +/* +* Enables ECRC check on received TLP's 0 == don't check 1 == always check + * 3 == check if enabled by ECRC check enable bit of AER cap structure; EP= + * 0x0003; RP=0x0003 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT 12 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK 0x00003000U +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT 12 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK 0x00003000U -/*Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). Calculated from max payload size supported and the n - mber of brams configured for transmit; EP=0x001C; RP=0x001C*/ +/* +* Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). + * Calculated from max payload size supported and the number of brams conf + * igured for transmit; EP=0x001C; RP=0x001C +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT 7 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK 0x00000F80U +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT 7 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK 0x00000F80U -/*Number of credits that should be advertised for Posted headers received on Virtual Channel 0. The sum of the posted, non post - d, and completion header credits must be <= 80; EP=0x0004; RP=0x0020*/ +/* +* Number of credits that should be advertised for Posted headers received + * on Virtual Channel 0. The sum of the posted, non posted, and completion + * header credits must be <= 80; EP=0x0004; RP=0x0020 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK 0x0000007FU +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK 0x0000007FU -/*Specifies values to be transferred to Header Type register. Bit 7 should be set to '0' indicating single-function device. Bit - 0 identifies header as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; RP=0x0001*/ +/* +* Specifies values to be transferred to Header Type register. Bit 7 should + * be set to '0' indicating single-function device. Bit 0 identifies heade + * r as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; + * RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL 0x00000100 -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL 0x00000100 +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK 0x000000FFU -/*PM Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabil - ty.; EP=0x0048; RP=0x0060*/ +/* +* PM Capability's Next Capability Offset pointer to the next item in the c + * apabilities list, or 00h if this is the final capability.; EP=0x0048; RP + * =0x0060 +*/ #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL 0x00003D48 -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT 0 -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL 0x00003D48 +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT 0 +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK 0x000000FFU -/*MSI Per-Vector Masking Capable. The value is transferred to the MSI Control Register[8]. When set, adds Mask and Pending Dwor - to Cap structure; EP=0x0000; RP=0x0000*/ +/* +* MSI Per-Vector Masking Capable. The value is transferred to the MSI Cont + * rol Register[8]. When set, adds Mask and Pending Dword to Cap structure; + * EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT 9 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT 9 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK 0x00000200U -/*Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U -/*MSI Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabi - ity.; EP=0x0060; RP=0x0000*/ +/* +* MSI Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x0060; R + * P=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT 0 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT 0 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK 0x000000FFU -/*Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U -/*Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b x4, 001000b x8.; EP=0x0004; RP=0x0004*/ +/* +* Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b + * x4, 001000b x8.; EP=0x0004; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL 0x00000104 -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK 0x0000003FU +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL 0x00000104 +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK 0x0000003FU -/*Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x00 - 4; RP=0x0004*/ +/* +* Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1 + * ], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x0004; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL 0x00000104 -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT 6 -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK 0x00000FC0U +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL 0x00000104 +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT 6 +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK 0x00000FC0U -/*TRUE specifies upstream-facing port. FALSE specifies downstream-facing port.; EP=0x0001; RP=0x0000*/ +/* +* TRUE specifies upstream-facing port. FALSE specifies downstream-facing p + * ort.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL 0x000000F0 -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT 6 -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK 0x00000040U +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL 0x000000F0 +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT 6 +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK 0x00000040U -/*Enable the routing of message TLPs to the user through the TRN RX interface. A bit value of 1 enables routing of the message - LP to the user. Messages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 - ERR NONFATAL, Bit 2 - ERR FATAL, - Bit 3 - INTA Bit 4 - INTB, Bit 5 - INTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit 10 PME_Turn_Off; - EP=0x0000; RP=0x07FF*/ +/* +* Enable the routing of message TLPs to the user through the TRN RX interf + * ace. A bit value of 1 enables routing of the message TLP to the user. Me + * ssages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 + * - ERR NONFATAL, Bit 2 - ERR FATAL, Bit 3 - INTA Bit 4 - INTB, Bit 5 - I + * NTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit + * 10 PME_Turn_Off; EP=0x0000; RP=0x07FF +*/ #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT 5 -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK 0x0000FFE0U +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT 5 +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK 0x0000FFE0U -/*Disable BAR filtering. Does not change the behavior of the bar hit outputs; EP=0x0000; RP=0x0001*/ +/* +* Disable BAR filtering. Does not change the behavior of the bar hit outpu + * ts; EP=0x0000; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT 1 -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK 0x00000002U +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT 1 +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK 0x00000002U -/*Link Bandwidth notification capability. Indicates support for the link bandwidth notification status and interrupt mechanism. - Required for Root.; EP=0x0000; RP=0x0001*/ +/* +* Link Bandwidth notification capability. Indicates support for the link b + * andwidth notification status and interrupt mechanism. Required for Root. + * ; EP=0x0000; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL 0x000009FF -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT 9 -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL 0x000009FF +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT 9 +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK 0x00000200U -/*Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Optionality ECN. Transferred to the Link Capabilities r - gister.; EP=0x0001; RP=0x0001*/ +/* +* Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Op + * tionality ECN. Transferred to the Link Capabilities register.; EP=0x0001 + * ; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL 0x000009FF -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT 14 -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK 0x00004000U +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL 0x000009FF +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT 14 +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK 0x00004000U -/*Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value (or combined with the built-in value, depending on L - _REPLAY_TIMEOUT_FUNC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000*/ +/* +* Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value + * (or combined with the built-in value, depending on LL_REPLAY_TIMEOUT_FU + * NC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT 15 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK 0x00008000U +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT 15 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK 0x00008000U -/*Sets a user-defined timeout for the Replay Timer to force cause the retransmission of unacknowledged TLPs; refer to LL_REPLAY - TIMEOUT_EN and LL_REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this attribute is in symbol times, which is - 4ns at GEN1 speeds and 2ns at GEN2.; EP=0x0000; RP=0x0000*/ +/* +* Sets a user-defined timeout for the Replay Timer to force cause the retr + * ansmission of unacknowledged TLPs; refer to LL_REPLAY_TIMEOUT_EN and LL_ + * REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this att + * ribute is in symbol times, which is 4ns at GEN1 speeds and 2ns at GEN2.; + * EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT 0 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK 0x00007FFFU +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT 0 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK 0x00007FFFU -/*Device ID for the the PCIe Cap Structure Device ID field*/ +/* +* Device ID for the the PCIe Cap Structure Device ID field +*/ #undef PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL #undef PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT #undef PCIE_ATTRIB_ID_CFG_DEV_ID_MASK -#define PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL 0x10EE7024 -#define PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT 0 -#define PCIE_ATTRIB_ID_CFG_DEV_ID_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL 0x10EE7024 +#define PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT 0 +#define PCIE_ATTRIB_ID_CFG_DEV_ID_MASK 0x0000FFFFU -/*Vendor ID for the PCIe Cap Structure Vendor ID field*/ +/* +* Vendor ID for the PCIe Cap Structure Vendor ID field +*/ #undef PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL #undef PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT #undef PCIE_ATTRIB_ID_CFG_VEND_ID_MASK -#define PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL 0x10EE7024 -#define PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT 16 -#define PCIE_ATTRIB_ID_CFG_VEND_ID_MASK 0xFFFF0000U +#define PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL 0x10EE7024 +#define PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT 16 +#define PCIE_ATTRIB_ID_CFG_VEND_ID_MASK 0xFFFF0000U -/*Subsystem ID for the the PCIe Cap Structure Subsystem ID field*/ +/* +* Subsystem ID for the the PCIe Cap Structure Subsystem ID field +*/ #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL 0x10EE0007 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT 0 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK 0x0000FFFFU +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL 0x10EE0007 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT 0 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK 0x0000FFFFU -/*Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field*/ +/* +* Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field +*/ #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL 0x10EE0007 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT 16 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK 0xFFFF0000U +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL 0x10EE0007 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT 16 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK 0xFFFF0000U -/*Revision ID for the the PCIe Cap Structure*/ +/* +* Revision ID for the the PCIe Cap Structure +*/ #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT 0 -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK 0x000000FFU +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT 0 +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK 0x000000FFU -/*Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 8000; RP=0x8000*/ +/* +* Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x8000; RP=0x8000 +*/ #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK 0x0000FFFFU -/*Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 0005; RP=0x0006*/ +/* +* Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x0005; RP=0x0006 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK 0x000000FFU -/*INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] to be hardwired to 0.; EP=0x0001; RP=0x0001*/ +/* +* INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] + * to be hardwired to 0.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT 8 -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT 8 +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK 0x00000100U -/*Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001*/ +/* +* Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U -/*Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001*/ +/* +* Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U -/*VSEC's Next Capability Offset pointer to the next item in the capabilities list, or 000h if this is the final capability.; EP - 0x0140; RP=0x0140*/ +/* +* VSEC's Next Capability Offset pointer to the next item in the capabiliti + * es list, or 000h if this is the final capability.; EP=0x0140; RP=0x0140 +*/ #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL 0x00002281 -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT 1 -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK 0x00001FFEU +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL 0x00002281 +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT 1 +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK 0x00001FFEU -/*CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the Root Capabilities register.; EP=0x0000; RP=0x0000*/ +/* +* CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the + * Root Capabilities register.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT 5 -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK 0x00000020U +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT 5 +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK 0x00000020U -/*Indicates that the MSIX structures exists. If this is FALSE, then the MSIX structure cannot be accessed via either the link o - the management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSIX structures exists. If this is FALSE, then the MS + * IX structure cannot be accessed via either the link or the management po + * rt.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL 0x00000100 -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL 0x00000100 +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK 0x00000100U -/*MSI-X Table Size. This value is transferred to the MSI-X Message Control[10:0] field. Set to 0 if MSI-X is not enabled. Note - hat the core does not implement the table; that must be implemented in user logic.; EP=0x0003; RP=0x0000*/ +/* +* MSI-X Table Size. This value is transferred to the MSI-X Message Control + * [10:0] field. Set to 0 if MSI-X is not enabled. Note that the core does + * not implement the table; that must be implemented in user logic.; EP=0x0 + * 003; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK 0x000007FFU -/*MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; - P=0x0000*/ +/* +* MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x0000FFFFU -/*MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0000; - P=0x0000*/ +/* +* MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x00001FFFU +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x00001FFFU -/*MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x0001; RP=0x0000*/ +/* +* MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFFFU -/*MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x1000; RP=0x0000*/ +/* +* MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x1000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL 0x00008000 -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 3 -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFF8U +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL 0x00008000 +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 3 +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFF8U -/*DT837748 Enable*/ +/* +* DT837748 Enable +*/ #undef PCIE_ATTRIB_CB_CB1_DEFVAL #undef PCIE_ATTRIB_CB_CB1_SHIFT #undef PCIE_ATTRIB_CB_CB1_MASK -#define PCIE_ATTRIB_CB_CB1_DEFVAL 0x00000001 -#define PCIE_ATTRIB_CB_CB1_SHIFT 1 -#define PCIE_ATTRIB_CB_CB1_MASK 0x00000002U +#define PCIE_ATTRIB_CB_CB1_DEFVAL 0x00000001 +#define PCIE_ATTRIB_CB_CB1_SHIFT 1 +#define PCIE_ATTRIB_CB_CB1_MASK 0x00000002U -/*Active State PM Support. Indicates the level of active state power management supported by the selected PCI Express Link, enc - ded as follows: 0 Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supported.; EP=0x0001; RP=0x0001*/ +/* +* Active State PM Support. Indicates the level of active state power manag + * ement supported by the selected PCI Express Link, encoded as follows: 0 + * Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supporte + * d.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL 0x00001FFD -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT 12 -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK 0x00003000U +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL 0x00001FFD +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT 12 +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK 0x00003000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*Status Read value of PLL Lock*/ +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U + +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU + +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L0_PLL_STATUS_READ_1_OFFSET 0XFD4023E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L1_PLL_STATUS_READ_1_OFFSET 0XFD4063E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L2_PLL_STATUS_READ_1_OFFSET 0XFD40A3E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L3_PLL_STATUS_READ_1_OFFSET 0XFD40E3E4 -/*CIBGMN: COMINIT Burst Gap Minimum.*/ +/* +* CIBGMN: COMINIT Burst Gap Minimum. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT 0 -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT 0 +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK 0x000000FFU -/*CIBGMX: COMINIT Burst Gap Maximum.*/ +/* +* CIBGMX: COMINIT Burst Gap Maximum. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT 8 -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT 8 +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK 0x0000FF00U -/*CIBGN: COMINIT Burst Gap Nominal.*/ +/* +* CIBGN: COMINIT Burst Gap Nominal. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGN_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT 16 -#define SATA_AHCI_VENDOR_PP2C_CIBGN_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT 16 +#define SATA_AHCI_VENDOR_PP2C_CIBGN_MASK 0x00FF0000U -/*CINMP: COMINIT Negate Minimum Period.*/ +/* +* CINMP: COMINIT Negate Minimum Period. +*/ #undef SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CINMP_MASK -#define SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT 24 -#define SATA_AHCI_VENDOR_PP2C_CINMP_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT 24 +#define SATA_AHCI_VENDOR_PP2C_CINMP_MASK 0xFF000000U -/*CWBGMN: COMWAKE Burst Gap Minimum.*/ +/* +* CWBGMN: COMWAKE Burst Gap Minimum. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT 0 -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT 0 +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK 0x000000FFU -/*CWBGMX: COMWAKE Burst Gap Maximum.*/ +/* +* CWBGMX: COMWAKE Burst Gap Maximum. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT 8 -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT 8 +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK 0x0000FF00U -/*CWBGN: COMWAKE Burst Gap Nominal.*/ +/* +* CWBGN: COMWAKE Burst Gap Nominal. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGN_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT 16 -#define SATA_AHCI_VENDOR_PP3C_CWBGN_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT 16 +#define SATA_AHCI_VENDOR_PP3C_CWBGN_MASK 0x00FF0000U -/*CWNMP: COMWAKE Negate Minimum Period.*/ +/* +* CWNMP: COMWAKE Negate Minimum Period. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWNMP_MASK -#define SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT 24 -#define SATA_AHCI_VENDOR_PP3C_CWNMP_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT 24 +#define SATA_AHCI_VENDOR_PP3C_CWNMP_MASK 0xFF000000U -/*BMX: COM Burst Maximum.*/ +/* +* BMX: COM Burst Maximum. +*/ #undef SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_BMX_SHIFT #undef SATA_AHCI_VENDOR_PP4C_BMX_MASK -#define SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_BMX_SHIFT 0 -#define SATA_AHCI_VENDOR_PP4C_BMX_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_BMX_SHIFT 0 +#define SATA_AHCI_VENDOR_PP4C_BMX_MASK 0x000000FFU -/*BNM: COM Burst Nominal.*/ +/* +* BNM: COM Burst Nominal. +*/ #undef SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_BNM_SHIFT #undef SATA_AHCI_VENDOR_PP4C_BNM_MASK -#define SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_BNM_SHIFT 8 -#define SATA_AHCI_VENDOR_PP4C_BNM_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_BNM_SHIFT 8 +#define SATA_AHCI_VENDOR_PP4C_BNM_MASK 0x0000FF00U -/*SFD: Signal Failure Detection, if the signal detection de-asserts for a time greater than this then the OOB detector will det - rmine this is a line idle and cause the PhyInit state machine to exit the Phy Ready State. A value of zero disables the Signa - Failure Detector. The value is based on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving a nominal time of - 500ns based on a 150MHz PMCLK.*/ +/* +* SFD: Signal Failure Detection, if the signal detection de-asserts for a + * time greater than this then the OOB detector will determine this is a li + * ne idle and cause the PhyInit state machine to exit the Phy Ready State. + * A value of zero disables the Signal Failure Detector. The value is base + * d on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving + * a nominal time of 500ns based on a 150MHz PMCLK. +*/ #undef SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_SFD_SHIFT #undef SATA_AHCI_VENDOR_PP4C_SFD_MASK -#define SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_SFD_SHIFT 16 -#define SATA_AHCI_VENDOR_PP4C_SFD_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_SFD_SHIFT 16 +#define SATA_AHCI_VENDOR_PP4C_SFD_MASK 0x00FF0000U -/*PTST: Partial to Slumber timer value, specific delay the controller should apply while in partial before entering slumber. Th - value is bases on the system clock divided by 128, total delay = (Sys Clock Period) * PTST * 128*/ +/* +* PTST: Partial to Slumber timer value, specific delay the controller shou + * ld apply while in partial before entering slumber. The value is bases on + * the system clock divided by 128, total delay = (Sys Clock Period) * PTS + * T * 128 +*/ #undef SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_PTST_SHIFT #undef SATA_AHCI_VENDOR_PP4C_PTST_MASK -#define SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_PTST_SHIFT 24 -#define SATA_AHCI_VENDOR_PP4C_PTST_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_PTST_SHIFT 24 +#define SATA_AHCI_VENDOR_PP4C_PTST_MASK 0xFF000000U -/*RIT: Retry Interval Timer. The calculated value divided by two, the lower digit of precision is not needed.*/ +/* +* RIT: Retry Interval Timer. The calculated value divided by two, the lowe + * r digit of precision is not needed. +*/ #undef SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL #undef SATA_AHCI_VENDOR_PP5C_RIT_SHIFT #undef SATA_AHCI_VENDOR_PP5C_RIT_MASK -#define SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL 0x3FFC96A4 -#define SATA_AHCI_VENDOR_PP5C_RIT_SHIFT 0 -#define SATA_AHCI_VENDOR_PP5C_RIT_MASK 0x000FFFFFU +#define SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL 0x3FFC96A4 +#define SATA_AHCI_VENDOR_PP5C_RIT_SHIFT 0 +#define SATA_AHCI_VENDOR_PP5C_RIT_MASK 0x000FFFFFU -/*RCT: Rate Change Timer, a value based on the 54.2us for which a SATA device will transmit at a fixed rate ALIGNp after OOB ha - completed, for a fast SERDES it is suggested that this value be 54.2us / 4*/ +/* +* RCT: Rate Change Timer, a value based on the 54.2us for which a SATA dev + * ice will transmit at a fixed rate ALIGNp after OOB has completed, for a + * fast SERDES it is suggested that this value be 54.2us / 4 +*/ #undef SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL #undef SATA_AHCI_VENDOR_PP5C_RCT_SHIFT #undef SATA_AHCI_VENDOR_PP5C_RCT_MASK -#define SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL 0x3FFC96A4 -#define SATA_AHCI_VENDOR_PP5C_RCT_SHIFT 20 -#define SATA_AHCI_VENDOR_PP5C_RCT_MASK 0xFFF00000U +#define SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL 0x3FFC96A4 +#define SATA_AHCI_VENDOR_PP5C_RCT_SHIFT 20 +#define SATA_AHCI_VENDOR_PP5C_RCT_MASK 0xFFF00000U #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET @@ -27671,123 +36135,252 @@ #undef CRF_APB_RST_FPD_TOP_OFFSET #define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 -/*USB 0 reset for control registers*/ +/* +* USB 0 reset for control registers +*/ #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U -/*USB 0 sleep circuit reset*/ +/* +* USB 0 sleep circuit reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U -/*USB 0 reset*/ +/* +* USB 0 reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U -/*GEM 3 reset*/ +/* +* GEM 3 reset +*/ #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1*/ +/* +* Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 +*/ #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU -/*Set to '1' to hold the GT in reset. Clear to release.*/ +/* +* Set to '1' to hold the GT in reset. Clear to release. +*/ #undef DP_DP_PHY_RESET_GT_RESET_DEFVAL #undef DP_DP_PHY_RESET_GT_RESET_SHIFT #undef DP_DP_PHY_RESET_GT_RESET_MASK -#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 -#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 -#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U +#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 +#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 +#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET #define PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET 0XFFD80118 #undef PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET #define PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET 0XFFD80120 -/*Power-up Request Interrupt Enable for PL*/ +/* +* Power-up Request Interrupt Enable for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK 0x00800000U -/*Power-up Request Trigger for PL*/ +/* +* Power-up Request Trigger for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK 0x00800000U -/*Power-up Request Status for PL*/ +/* +* Power-up Request Status for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK 0x00800000U #define PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET 0XFFD80110 +#undef CRF_APB_RST_FPD_TOP_OFFSET +#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef CRL_APB_RST_LPD_TOP_OFFSET +#define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C +#undef FPD_SLCR_AFI_FS_OFFSET +#define FPD_SLCR_AFI_FS_OFFSET 0XFD615000 + +/* +* AF_FM0 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_SHIFT 7 +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_MASK 0x00000080U + +/* +* AF_FM1 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_SHIFT 8 +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_MASK 0x00000100U + +/* +* AF_FM2 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_SHIFT 9 +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_MASK 0x00000200U + +/* +* AF_FM3 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_SHIFT 10 +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_MASK 0x00000400U + +/* +* AF_FM4 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_SHIFT 11 +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_MASK 0x00000800U + +/* +* AF_FM5 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_SHIFT 12 +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_MASK 0x00001000U + +/* +* AFI FM 6 +*/ +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_MASK +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_SHIFT 19 +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_MASK 0x00080000U + +/* +* Select the 32/64/128-bit data width selection for the Slave 0 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved +*/ +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_DEFVAL +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_SHIFT +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_MASK +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_DEFVAL 0x00000A00 +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_SHIFT 8 +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_MASK 0x00000300U + +/* +* Select the 32/64/128-bit data width selection for the Slave 1 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved +*/ +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_DEFVAL +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_SHIFT +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_MASK +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_DEFVAL 0x00000A00 +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_SHIFT 10 +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_MASK 0x00000C00U #undef GPIO_MASK_DATA_5_MSW_OFFSET #define GPIO_MASK_DATA_5_MSW_OFFSET 0XFF0A002C #undef GPIO_DIRM_5_OFFSET @@ -27801,53 +36394,65 @@ #undef GPIO_DATA_5_OFFSET #define GPIO_DATA_5_OFFSET 0XFF0A0054 -/*Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW]*/ +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL 0x00000000 -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT 16 -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK 0xFFFF0000U +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT 16 +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK 0xFFFF0000U -/*Operation is the same as DIRM_0[DIRECTION_0]*/ +/* +* Operation is the same as DIRM_0[DIRECTION_0] +*/ #undef GPIO_DIRM_5_DIRECTION_5_DEFVAL #undef GPIO_DIRM_5_DIRECTION_5_SHIFT #undef GPIO_DIRM_5_DIRECTION_5_MASK -#define GPIO_DIRM_5_DIRECTION_5_DEFVAL -#define GPIO_DIRM_5_DIRECTION_5_SHIFT 0 -#define GPIO_DIRM_5_DIRECTION_5_MASK 0xFFFFFFFFU +#define GPIO_DIRM_5_DIRECTION_5_DEFVAL +#define GPIO_DIRM_5_DIRECTION_5_SHIFT 0 +#define GPIO_DIRM_5_DIRECTION_5_MASK 0xFFFFFFFFU -/*Operation is the same as OEN_0[OP_ENABLE_0]*/ +/* +* Operation is the same as OEN_0[OP_ENABLE_0] +*/ #undef GPIO_OEN_5_OP_ENABLE_5_DEFVAL #undef GPIO_OEN_5_OP_ENABLE_5_SHIFT #undef GPIO_OEN_5_OP_ENABLE_5_MASK -#define GPIO_OEN_5_OP_ENABLE_5_DEFVAL -#define GPIO_OEN_5_OP_ENABLE_5_SHIFT 0 -#define GPIO_OEN_5_OP_ENABLE_5_MASK 0xFFFFFFFFU +#define GPIO_OEN_5_OP_ENABLE_5_DEFVAL +#define GPIO_OEN_5_OP_ENABLE_5_SHIFT 0 +#define GPIO_OEN_5_OP_ENABLE_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU #ifdef __cplusplus extern "C" { #endif @@ -27860,6 +36465,7 @@ extern "C" { int psu_ddr_protection(); int psu_lpd_protection(); int psu_protection_lock(); + unsigned long psu_ddr_qos_init_data(void); unsigned long psu_apply_master_tz(); #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.tcl b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.tcl index b6d9c0418..bcdd9de80 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.tcl +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init.tcl @@ -11,7 +11,7 @@ set psu_pll_init_data { # Register : RPLL_CFG @ 0XFF5E0034

      # PLL loop filter resistor control - # PSU_CRL_APB_RPLL_CFG_RES 0x2 + # PSU_CRL_APB_RPLL_CFG_RES 0xc # PLL charge pump control # PSU_CRL_APB_RPLL_CFG_CP 0x3 @@ -20,35 +20,39 @@ set psu_pll_init_data { # PSU_CRL_APB_RPLL_CFG_LFHF 0x3 # Lock circuit counter setting - # PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x258 + # PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x339 # Lock circuit configuration settings for lock windowsize # PSU_CRL_APB_RPLL_CFG_LOCK_DLY 0x3f # Helper data. Values are to be looked up in a table from Data Sheet - #(OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E4B0C62U) */ - mask_write 0XFF5E0034 0xFE7FEDEF 0x7E4B0C62 + #(OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E672C6CU) */ + mask_write 0XFF5E0034 0xFE7FEDEF 0x7E672C6C # : UPDATE FB_DIV # Register : RPLL_CTRL @ 0XFF5E0030

      - # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - # ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + # s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + # ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source # PSU_CRL_APB_RPLL_CTRL_PRE_SRC 0x0 # The integer portion of the feedback divider to the PLL - # PSU_CRL_APB_RPLL_CTRL_FBDIV 0x48 + # PSU_CRL_APB_RPLL_CTRL_FBDIV 0x2d - # This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency + # This turns on the divide by 2 that is inside of the PLL. This does not c + # hange the VCO frequency, just the output frequency # PSU_CRL_APB_RPLL_CTRL_DIV2 0x1 # PLL Basic Control - #(OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00014800U) */ - mask_write 0XFF5E0030 0x00717F00 0x00014800 + #(OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00012D00U) */ + mask_write 0XFF5E0030 0x00717F00 0x00012D00 # : BY PASS PLL # Register : RPLL_CTRL @ 0XFF5E0030

      - # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRL_APB_RPLL_CTRL_BYPASS 1 # PLL Basic Control @@ -57,7 +61,8 @@ set psu_pll_init_data { # : ASSERT RESET # Register : RPLL_CTRL @ 0XFF5E0030

      - # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRL_APB_RPLL_CTRL_RESET 1 # PLL Basic Control @@ -66,7 +71,8 @@ set psu_pll_init_data { # : DEASSERT RESET # Register : RPLL_CTRL @ 0XFF5E0030

      - # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRL_APB_RPLL_CTRL_RESET 0 # PLL Basic Control @@ -81,8 +87,10 @@ set psu_pll_init_data { # : REMOVE PLL BY PASS # Register : RPLL_CTRL @ 0XFF5E0030

      - # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRL_APB_RPLL_CTRL_BYPASS 0 # PLL Basic Control @@ -91,66 +99,59 @@ set psu_pll_init_data { # Register : RPLL_TO_FPD_CTRL @ 0XFF5E0048

      # Divisor value for this clock. - # PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x3 + # PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x2 - # Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. - #(OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000300U) */ - mask_write 0XFF5E0048 0x00003F00 0x00000300 + # Control for a clock that will be generated in the LPD, but used in the F + # PD as a clock source for the peripheral clock muxes. + #(OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000200U) */ + mask_write 0XFF5E0048 0x00003F00 0x00000200 # : RPLL FRAC CFG - # Register : RPLL_FRAC_CFG @ 0XFF5E0038

      - - # Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - # mode and uses DATA of this register for the fractional portion of the feedback divider. - # PSU_CRL_APB_RPLL_FRAC_CFG_ENABLED 0x0 - - # Fractional value for the Feedback value. - # PSU_CRL_APB_RPLL_FRAC_CFG_DATA 0x0 - - # Fractional control for the PLL - #(OFFSET, MASK, VALUE) (0XFF5E0038, 0x8000FFFFU ,0x00000000U) */ - mask_write 0XFF5E0038 0x8000FFFF 0x00000000 # : IOPLL INIT # Register : IOPLL_CFG @ 0XFF5E0024

      # PLL loop filter resistor control - # PSU_CRL_APB_IOPLL_CFG_RES 0xc + # PSU_CRL_APB_IOPLL_CFG_RES 0x2 # PLL charge pump control - # PSU_CRL_APB_IOPLL_CFG_CP 0x3 + # PSU_CRL_APB_IOPLL_CFG_CP 0x4 # PLL loop filter high frequency capacitor control # PSU_CRL_APB_IOPLL_CFG_LFHF 0x3 # Lock circuit counter setting - # PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x339 + # PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x258 # Lock circuit configuration settings for lock windowsize # PSU_CRL_APB_IOPLL_CFG_LOCK_DLY 0x3f # Helper data. Values are to be looked up in a table from Data Sheet - #(OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E672C6CU) */ - mask_write 0XFF5E0024 0xFE7FEDEF 0x7E672C6C + #(OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E4B0C82U) */ + mask_write 0XFF5E0024 0xFE7FEDEF 0x7E4B0C82 # : UPDATE FB_DIV # Register : IOPLL_CTRL @ 0XFF5E0020

      - # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - # ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + # s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + # ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source # PSU_CRL_APB_IOPLL_CTRL_PRE_SRC 0x0 # The integer portion of the feedback divider to the PLL - # PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x2d + # PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x5a - # This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - # PSU_CRL_APB_IOPLL_CTRL_DIV2 0x0 + # This turns on the divide by 2 that is inside of the PLL. This does not c + # hange the VCO frequency, just the output frequency + # PSU_CRL_APB_IOPLL_CTRL_DIV2 0x1 # PLL Basic Control - #(OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00002D00U) */ - mask_write 0XFF5E0020 0x00717F00 0x00002D00 + #(OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00015A00U) */ + mask_write 0XFF5E0020 0x00717F00 0x00015A00 # : BY PASS PLL # Register : IOPLL_CTRL @ 0XFF5E0020

      - # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRL_APB_IOPLL_CTRL_BYPASS 1 # PLL Basic Control @@ -159,7 +160,8 @@ set psu_pll_init_data { # : ASSERT RESET # Register : IOPLL_CTRL @ 0XFF5E0020

      - # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRL_APB_IOPLL_CTRL_RESET 1 # PLL Basic Control @@ -168,7 +170,8 @@ set psu_pll_init_data { # : DEASSERT RESET # Register : IOPLL_CTRL @ 0XFF5E0020

      - # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRL_APB_IOPLL_CTRL_RESET 0 # PLL Basic Control @@ -183,8 +186,10 @@ set psu_pll_init_data { # : REMOVE PLL BY PASS # Register : IOPLL_CTRL @ 0XFF5E0020

      - # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRL_APB_IOPLL_CTRL_BYPASS 0 # PLL Basic Control @@ -195,22 +200,11 @@ set psu_pll_init_data { # Divisor value for this clock. # PSU_CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0 0x3 - # Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. + # Control for a clock that will be generated in the LPD, but used in the F + # PD as a clock source for the peripheral clock muxes. #(OFFSET, MASK, VALUE) (0XFF5E0044, 0x00003F00U ,0x00000300U) */ mask_write 0XFF5E0044 0x00003F00 0x00000300 # : IOPLL FRAC CFG - # Register : IOPLL_FRAC_CFG @ 0XFF5E0028

      - - # Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - # mode and uses DATA of this register for the fractional portion of the feedback divider. - # PSU_CRL_APB_IOPLL_FRAC_CFG_ENABLED 0x0 - - # Fractional value for the Feedback value. - # PSU_CRL_APB_IOPLL_FRAC_CFG_DATA 0x0 - - # Fractional control for the PLL - #(OFFSET, MASK, VALUE) (0XFF5E0028, 0x8000FFFFU ,0x00000000U) */ - mask_write 0XFF5E0028 0x8000FFFF 0x00000000 # : APU_PLL INIT # Register : APLL_CFG @ 0XFD1A0024

      @@ -235,24 +229,28 @@ set psu_pll_init_data { # : UPDATE FB_DIV # Register : APLL_CTRL @ 0XFD1A0020

      - # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - # ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + # s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + # ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source # PSU_CRF_APB_APLL_CTRL_PRE_SRC 0x0 # The integer portion of the feedback divider to the PLL - # PSU_CRF_APB_APLL_CTRL_FBDIV 0x42 + # PSU_CRF_APB_APLL_CTRL_FBDIV 0x48 - # This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency + # This turns on the divide by 2 that is inside of the PLL. This does not c + # hange the VCO frequency, just the output frequency # PSU_CRF_APB_APLL_CTRL_DIV2 0x1 # PLL Basic Control - #(OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014200U) */ - mask_write 0XFD1A0020 0x00717F00 0x00014200 + #(OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014800U) */ + mask_write 0XFD1A0020 0x00717F00 0x00014800 # : BY PASS PLL # Register : APLL_CTRL @ 0XFD1A0020

      - # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_APLL_CTRL_BYPASS 1 # PLL Basic Control @@ -261,7 +259,8 @@ set psu_pll_init_data { # : ASSERT RESET # Register : APLL_CTRL @ 0XFD1A0020

      - # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_APLL_CTRL_RESET 1 # PLL Basic Control @@ -270,7 +269,8 @@ set psu_pll_init_data { # : DEASSERT RESET # Register : APLL_CTRL @ 0XFD1A0020

      - # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_APLL_CTRL_RESET 0 # PLL Basic Control @@ -285,8 +285,10 @@ set psu_pll_init_data { # : REMOVE PLL BY PASS # Register : APLL_CTRL @ 0XFD1A0020

      - # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_APLL_CTRL_BYPASS 0 # PLL Basic Control @@ -297,22 +299,11 @@ set psu_pll_init_data { # Divisor value for this clock. # PSU_CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0 0x3 - # Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. + # Control for a clock that will be generated in the FPD, but used in the L + # PD as a clock source for the peripheral clock muxes. #(OFFSET, MASK, VALUE) (0XFD1A0048, 0x00003F00U ,0x00000300U) */ mask_write 0XFD1A0048 0x00003F00 0x00000300 # : APLL FRAC CFG - # Register : APLL_FRAC_CFG @ 0XFD1A0028

      - - # Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - # mode and uses DATA of this register for the fractional portion of the feedback divider. - # PSU_CRF_APB_APLL_FRAC_CFG_ENABLED 0x0 - - # Fractional value for the Feedback value. - # PSU_CRF_APB_APLL_FRAC_CFG_DATA 0x0 - - # Fractional control for the PLL - #(OFFSET, MASK, VALUE) (0XFD1A0028, 0x8000FFFFU ,0x00000000U) */ - mask_write 0XFD1A0028 0x8000FFFF 0x00000000 # : DDR_PLL INIT # Register : DPLL_CFG @ 0XFD1A0030

      @@ -337,14 +328,16 @@ set psu_pll_init_data { # : UPDATE FB_DIV # Register : DPLL_CTRL @ 0XFD1A002C

      - # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - # ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + # s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + # ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source # PSU_CRF_APB_DPLL_CTRL_PRE_SRC 0x0 # The integer portion of the feedback divider to the PLL # PSU_CRF_APB_DPLL_CTRL_FBDIV 0x40 - # This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency + # This turns on the divide by 2 that is inside of the PLL. This does not c + # hange the VCO frequency, just the output frequency # PSU_CRF_APB_DPLL_CTRL_DIV2 0x1 # PLL Basic Control @@ -353,8 +346,10 @@ set psu_pll_init_data { # : BY PASS PLL # Register : DPLL_CTRL @ 0XFD1A002C

      - # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_DPLL_CTRL_BYPASS 1 # PLL Basic Control @@ -363,7 +358,8 @@ set psu_pll_init_data { # : ASSERT RESET # Register : DPLL_CTRL @ 0XFD1A002C

      - # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_DPLL_CTRL_RESET 1 # PLL Basic Control @@ -372,7 +368,8 @@ set psu_pll_init_data { # : DEASSERT RESET # Register : DPLL_CTRL @ 0XFD1A002C

      - # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_DPLL_CTRL_RESET 0 # PLL Basic Control @@ -387,8 +384,10 @@ set psu_pll_init_data { # : REMOVE PLL BY PASS # Register : DPLL_CTRL @ 0XFD1A002C

      - # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_DPLL_CTRL_BYPASS 0 # PLL Basic Control @@ -397,24 +396,13 @@ set psu_pll_init_data { # Register : DPLL_TO_LPD_CTRL @ 0XFD1A004C

      # Divisor value for this clock. - # PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x3 + # PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x2 - # Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - #(OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000300U) */ - mask_write 0XFD1A004C 0x00003F00 0x00000300 + # Control for a clock that will be generated in the FPD, but used in the L + # PD as a clock source for the peripheral clock muxes. + #(OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000200U) */ + mask_write 0XFD1A004C 0x00003F00 0x00000200 # : DPLL FRAC CFG - # Register : DPLL_FRAC_CFG @ 0XFD1A0034

      - - # Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - # mode and uses DATA of this register for the fractional portion of the feedback divider. - # PSU_CRF_APB_DPLL_FRAC_CFG_ENABLED 0x0 - - # Fractional value for the Feedback value. - # PSU_CRF_APB_DPLL_FRAC_CFG_DATA 0x0 - - # Fractional control for the PLL - #(OFFSET, MASK, VALUE) (0XFD1A0034, 0x8000FFFFU ,0x00000000U) */ - mask_write 0XFD1A0034 0x8000FFFF 0x00000000 # : VIDEO_PLL INIT # Register : VPLL_CFG @ 0XFD1A003C

      @@ -422,41 +410,45 @@ set psu_pll_init_data { # PSU_CRF_APB_VPLL_CFG_RES 0x2 # PLL charge pump control - # PSU_CRF_APB_VPLL_CFG_CP 0x3 + # PSU_CRF_APB_VPLL_CFG_CP 0x4 # PLL loop filter high frequency capacitor control # PSU_CRF_APB_VPLL_CFG_LFHF 0x3 # Lock circuit counter setting - # PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x28a + # PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x258 # Lock circuit configuration settings for lock windowsize # PSU_CRF_APB_VPLL_CFG_LOCK_DLY 0x3f # Helper data. Values are to be looked up in a table from Data Sheet - #(OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E514C62U) */ - mask_write 0XFD1A003C 0xFE7FEDEF 0x7E514C62 + #(OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E4B0C82U) */ + mask_write 0XFD1A003C 0xFE7FEDEF 0x7E4B0C82 # : UPDATE FB_DIV # Register : VPLL_CTRL @ 0XFD1A0038

      - # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - # ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + # Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + # s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + # ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source # PSU_CRF_APB_VPLL_CTRL_PRE_SRC 0x0 # The integer portion of the feedback divider to the PLL - # PSU_CRF_APB_VPLL_CTRL_FBDIV 0x39 + # PSU_CRF_APB_VPLL_CTRL_FBDIV 0x5a - # This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency + # This turns on the divide by 2 that is inside of the PLL. This does not c + # hange the VCO frequency, just the output frequency # PSU_CRF_APB_VPLL_CTRL_DIV2 0x1 # PLL Basic Control - #(OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00013900U) */ - mask_write 0XFD1A0038 0x00717F00 0x00013900 + #(OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00015A00U) */ + mask_write 0XFD1A0038 0x00717F00 0x00015A00 # : BY PASS PLL # Register : VPLL_CTRL @ 0XFD1A0038

      - # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_VPLL_CTRL_BYPASS 1 # PLL Basic Control @@ -465,7 +457,8 @@ set psu_pll_init_data { # : ASSERT RESET # Register : VPLL_CTRL @ 0XFD1A0038

      - # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_VPLL_CTRL_RESET 1 # PLL Basic Control @@ -474,7 +467,8 @@ set psu_pll_init_data { # : DEASSERT RESET # Register : VPLL_CTRL @ 0XFD1A0038

      - # Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. + # Asserts Reset to the PLL. When asserting reset, the PLL must already be + # in BYPASS. # PSU_CRF_APB_VPLL_CTRL_RESET 0 # PLL Basic Control @@ -489,8 +483,10 @@ set psu_pll_init_data { # : REMOVE PLL BY PASS # Register : VPLL_CTRL @ 0XFD1A0038

      - # Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - # cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) + # Bypasses the PLL clock. The usable clock will be determined from the POS + # T_SRC field. (This signal may only be toggled after 4 cycles of the old + # clock and 4 cycles of the new clock. This is not usually an issue, but d + # esigners must be aware.) # PSU_CRF_APB_VPLL_CTRL_BYPASS 0 # PLL Basic Control @@ -501,22 +497,11 @@ set psu_pll_init_data { # Divisor value for this clock. # PSU_CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0 0x3 - # Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. + # Control for a clock that will be generated in the FPD, but used in the L + # PD as a clock source for the peripheral clock muxes. #(OFFSET, MASK, VALUE) (0XFD1A0050, 0x00003F00U ,0x00000300U) */ mask_write 0XFD1A0050 0x00003F00 0x00000300 # : VIDEO FRAC CFG - # Register : VPLL_FRAC_CFG @ 0XFD1A0040

      - - # Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - # mode and uses DATA of this register for the fractional portion of the feedback divider. - # PSU_CRF_APB_VPLL_FRAC_CFG_ENABLED 0x1 - - # Fractional value for the Feedback value. - # PSU_CRF_APB_VPLL_FRAC_CFG_DATA 0x820c - - # Fractional control for the PLL - #(OFFSET, MASK, VALUE) (0XFD1A0040, 0x8000FFFFU ,0x8000820CU) */ - mask_write 0XFD1A0040 0x8000FFFF 0x8000820C } set psu_clock_init_data { @@ -535,13 +520,33 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR0 0xc - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_GEM3_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock #(OFFSET, MASK, VALUE) (0XFF5E005C, 0x063F3F07U ,0x06010C00U) */ mask_write 0XFF5E005C 0x063F3F07 0x06010C00 + # Register : GEM_TSU_REF_CTRL @ 0XFF5E0100

      + + # 6 bit divider + # PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0 0x6 + + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) + # PSU_CRL_APB_GEM_TSU_REF_CTRL_SRCSEL 0x0 + + # 6 bit divider + # PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1 0x1 + + # Clock active signal. Switch to 0 to disable the clock + # PSU_CRL_APB_GEM_TSU_REF_CTRL_CLKACT 0x1 + + # This register controls this reference clock + #(OFFSET, MASK, VALUE) (0XFF5E0100, 0x013F3F07U ,0x01010600U) */ + mask_write 0XFF5E0100 0x013F3F07 0x01010600 # Register : USB0_BUS_REF_CTRL @ 0XFF5E0060

      # Clock active signal. Switch to 0 to disable the clock @@ -553,8 +558,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0 0x6 - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_USB0_BUS_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -566,18 +572,19 @@ set psu_clock_init_data { # PSU_CRL_APB_USB3_DUAL_REF_CTRL_CLKACT 0x1 # 6 bit divider - # PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0xf + # PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0x3 # 6 bit divider - # PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x5 + # PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x19 - # 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x020F0500U) */ - mask_write 0XFF5E004C 0x023F3F07 0x020F0500 + #(OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x02031900U) */ + mask_write 0XFF5E004C 0x023F3F07 0x02031900 # Register : QSPI_REF_CTRL @ 0XFF5E0068

      # Clock active signal. Switch to 0 to disable the clock @@ -589,8 +596,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR0 0xc - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_QSPI_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -605,18 +613,20 @@ set psu_clock_init_data { # PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR1 0x1 # 6 bit divider - # PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x6 + # PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x8 - # 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) - # PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x2 + # 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) + # PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010602U) */ - mask_write 0XFF5E0070 0x013F3F07 0x01010602 + #(OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010800U) */ + mask_write 0XFF5E0070 0x013F3F07 0x01010800 # Register : SDIO_CLK_CTRL @ 0XFF18030C

      - # MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO [51] 1: MIO [76] + # MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO + # [51] 1: MIO [76] # PSU_IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL 0 # SoC Debug Clock Control @@ -633,8 +643,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_UART0_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_UART0_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -651,8 +662,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_UART1_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_UART1_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -669,8 +681,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_I2C0_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -687,8 +700,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_I2C1_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -705,8 +719,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_CAN1_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -714,15 +729,17 @@ set psu_clock_init_data { mask_write 0XFF5E0088 0x013F3F07 0x01010F00 # Register : CPU_R5_CTRL @ 0XFF5E0090

      - # Turing this off will shut down the OCM, some parts of the APM, and prevent transactions going from the FPD to the LPD and cou - # d lead to system hang + # Turing this off will shut down the OCM, some parts of the APM, and preve + # nt transactions going from the FPD to the LPD and could lead to system h + # ang # PSU_CRL_APB_CPU_R5_CTRL_CLKACT 0x1 # 6 bit divider # PSU_CRL_APB_CPU_R5_CTRL_DIVISOR0 0x3 - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_CPU_R5_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -736,8 +753,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_IOU_SWITCH_CTRL_DIVISOR0 0x6 - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_IOU_SWITCH_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -749,15 +767,16 @@ set psu_clock_init_data { # PSU_CRL_APB_PCAP_CTRL_CLKACT 0x1 # 6 bit divider - # PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x6 + # PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x8 - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) - # PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x2 + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) + # PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x0 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000602U) */ - mask_write 0XFF5E00A4 0x01003F07 0x01000602 + #(OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000800U) */ + mask_write 0XFF5E00A4 0x01003F07 0x01000800 # Register : LPD_SWITCH_CTRL @ 0XFF5E00A8

      # Clock active signal. Switch to 0 to disable the clock @@ -766,8 +785,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_LPD_SWITCH_CTRL_DIVISOR0 0x3 - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_LPD_SWITCH_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -781,8 +801,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_LPD_LSBUS_CTRL_DIVISOR0 0xf - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_LPD_LSBUS_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -796,8 +817,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_DBG_LPD_CTRL_DIVISOR0 0x6 - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_DBG_LPD_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -811,8 +833,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_ADMA_REF_CTRL_DIVISOR0 0x3 - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_ADMA_REF_CTRL_SRCSEL 0x2 # This register controls this reference clock @@ -829,89 +852,38 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_PL0_REF_CTRL_DIVISOR0 0xf - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_PL0_REF_CTRL_SRCSEL 0x0 # This register controls this reference clock #(OFFSET, MASK, VALUE) (0XFF5E00C0, 0x013F3F07U ,0x01010F00U) */ mask_write 0XFF5E00C0 0x013F3F07 0x01010F00 - # Register : PL1_REF_CTRL @ 0XFF5E00C4

      - - # Clock active signal. Switch to 0 to disable the clock - # PSU_CRL_APB_PL1_REF_CTRL_CLKACT 0x1 - - # 6 bit divider - # PSU_CRL_APB_PL1_REF_CTRL_DIVISOR1 0x4 - - # 6 bit divider - # PSU_CRL_APB_PL1_REF_CTRL_DIVISOR0 0xf - - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) - # PSU_CRL_APB_PL1_REF_CTRL_SRCSEL 0x0 - - # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E00C4, 0x013F3F07U ,0x01040F00U) */ - mask_write 0XFF5E00C4 0x013F3F07 0x01040F00 - # Register : PL2_REF_CTRL @ 0XFF5E00C8

      - - # Clock active signal. Switch to 0 to disable the clock - # PSU_CRL_APB_PL2_REF_CTRL_CLKACT 0x1 - - # 6 bit divider - # PSU_CRL_APB_PL2_REF_CTRL_DIVISOR1 0x1 - - # 6 bit divider - # PSU_CRL_APB_PL2_REF_CTRL_DIVISOR0 0x4 - - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) - # PSU_CRL_APB_PL2_REF_CTRL_SRCSEL 0x2 - - # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E00C8, 0x013F3F07U ,0x01010402U) */ - mask_write 0XFF5E00C8 0x013F3F07 0x01010402 - # Register : PL3_REF_CTRL @ 0XFF5E00CC

      - - # Clock active signal. Switch to 0 to disable the clock - # PSU_CRL_APB_PL3_REF_CTRL_CLKACT 0x1 - - # 6 bit divider - # PSU_CRL_APB_PL3_REF_CTRL_DIVISOR1 0x1 - - # 6 bit divider - # PSU_CRL_APB_PL3_REF_CTRL_DIVISOR0 0x3 - - # 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) - # PSU_CRL_APB_PL3_REF_CTRL_SRCSEL 0x2 - - # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E00CC, 0x013F3F07U ,0x01010302U) */ - mask_write 0XFF5E00CC 0x013F3F07 0x01010302 # Register : AMS_REF_CTRL @ 0XFF5E0108

      # 6 bit divider # PSU_CRL_APB_AMS_REF_CTRL_DIVISOR1 0x1 # 6 bit divider - # PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1d + # PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1e - # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # clock. This is not usually an issue, but designers must be aware.) + # 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + # ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRL_APB_AMS_REF_CTRL_SRCSEL 0x2 # Clock active signal. Switch to 0 to disable the clock # PSU_CRL_APB_AMS_REF_CTRL_CLKACT 0x1 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011D02U) */ - mask_write 0XFF5E0108 0x013F3F07 0x01011D02 + #(OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011E02U) */ + mask_write 0XFF5E0108 0x013F3F07 0x01011E02 # Register : DLL_REF_CTRL @ 0XFF5E0104

      - # 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - # is not usually an issue, but designers must be aware.) + # 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles + # of the old clock and 4 cycles of the new clock. This is not usually an + # issue, but designers must be aware.) # PSU_CRL_APB_DLL_REF_CTRL_SRCSEL 0 # This register controls this reference clock @@ -922,8 +894,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0 0xf - # 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and - # cycles of the new clock. This is not usually an issue, but designers must be aware.) + # 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may + # only be toggled after 4 cycles of the old clock and 4 cycles of the new + # clock. This is not usually an issue, but designers must be aware.) # PSU_CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -934,8 +907,9 @@ set psu_clock_init_data { mask_write 0XFF5E0128 0x01003F07 0x01000F00 # Register : SATA_REF_CTRL @ 0XFD1A00A0

      - # 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be tog + # gled after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_SATA_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -949,8 +923,9 @@ set psu_clock_init_data { mask_write 0XFD1A00A0 0x01003F07 0x01000200 # Register : PCIE_REF_CTRL @ 0XFD1A00B4

      - # 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cyc - # es of the new clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only + # be toggled after 4 cycles of the old clock and 4 cycles of the new cloc + # k. This is not usually an issue, but designers must be aware.) # PSU_CRF_APB_PCIE_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -968,95 +943,88 @@ set psu_clock_init_data { # PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1 0x1 # 6 bit divider - # PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x3 + # PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x5 - # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - # ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - # PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x3 + # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + # his signal may only be toggled after 4 cycles of the old clock and 4 cyc + # les of the new clock. This is not usually an issue, but designers must b + # e aware.) + # PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock # PSU_CRF_APB_DP_VIDEO_REF_CTRL_CLKACT 0x1 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010303U) */ - mask_write 0XFD1A0070 0x013F3F07 0x01010303 + #(OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010500U) */ + mask_write 0XFD1A0070 0x013F3F07 0x01010500 # Register : DP_AUDIO_REF_CTRL @ 0XFD1A0074

      # 6 bit divider # PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1 0x1 # 6 bit divider - # PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0x27 + # PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0xf - # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - # ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - # PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x0 + # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + # his signal may only be toggled after 4 cycles of the old clock and 4 cyc + # les of the new clock. This is not usually an issue, but designers must b + # e aware.) + # PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x3 # Clock active signal. Switch to 0 to disable the clock # PSU_CRF_APB_DP_AUDIO_REF_CTRL_CLKACT 0x1 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01012700U) */ - mask_write 0XFD1A0074 0x013F3F07 0x01012700 + #(OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01010F03U) */ + mask_write 0XFD1A0074 0x013F3F07 0x01010F03 # Register : DP_STC_REF_CTRL @ 0XFD1A007C

      # 6 bit divider # PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR1 0x1 # 6 bit divider - # PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0x11 + # PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0xe - # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of t - # e new clock. This is not usually an issue, but designers must be aware.) + # 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be togg + # led after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_DP_STC_REF_CTRL_SRCSEL 0x3 # Clock active signal. Switch to 0 to disable the clock # PSU_CRF_APB_DP_STC_REF_CTRL_CLKACT 0x1 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01011103U) */ - mask_write 0XFD1A007C 0x013F3F07 0x01011103 + #(OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01010E03U) */ + mask_write 0XFD1A007C 0x013F3F07 0x01010E03 # Register : ACPU_CTRL @ 0XFD1A0060

      # 6 bit divider # PSU_CRF_APB_ACPU_CTRL_DIVISOR0 0x1 - # 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # lock. This is not usually an issue, but designers must be aware.) + # 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled aft + # er 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRF_APB_ACPU_CTRL_SRCSEL 0x0 - # Clock active signal. Switch to 0 to disable the clock. For the half speed APU Clock + # Clock active signal. Switch to 0 to disable the clock. For the half spee + # d APU Clock # PSU_CRF_APB_ACPU_CTRL_CLKACT_HALF 0x1 - # Clock active signal. Switch to 0 to disable the clock. For the full speed ACPUX Clock. This will shut off the high speed cloc - # to the entire APU + # Clock active signal. Switch to 0 to disable the clock. For the full spee + # d ACPUX Clock. This will shut off the high speed clock to the entire APU # PSU_CRF_APB_ACPU_CTRL_CLKACT_FULL 0x1 # This register controls this reference clock #(OFFSET, MASK, VALUE) (0XFD1A0060, 0x03003F07U ,0x03000100U) */ mask_write 0XFD1A0060 0x03003F07 0x03000100 - # Register : DBG_TRACE_CTRL @ 0XFD1A0064

      - - # 6 bit divider - # PSU_CRF_APB_DBG_TRACE_CTRL_DIVISOR0 0x2 - - # 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) - # PSU_CRF_APB_DBG_TRACE_CTRL_SRCSEL 0x0 - - # Clock active signal. Switch to 0 to disable the clock - # PSU_CRF_APB_DBG_TRACE_CTRL_CLKACT 0x1 - - # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFD1A0064, 0x01003F07U ,0x01000200U) */ - mask_write 0XFD1A0064 0x01003F07 0x01000200 # Register : DBG_FPD_CTRL @ 0XFD1A0068

      # 6 bit divider # PSU_CRF_APB_DBG_FPD_CTRL_DIVISOR0 0x2 - # 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + # gled after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_DBG_FPD_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -1070,8 +1038,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_DDR_CTRL_DIVISOR0 0x2 - # 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - # s not usually an issue, but designers must be aware.) + # 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles + # of the old clock and 4 cycles of the new clock. This is not usually an i + # ssue, but designers must be aware.) # PSU_CRF_APB_DDR_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -1082,17 +1051,21 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_GPU_REF_CTRL_DIVISOR0 0x1 - # 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be tog + # gled after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_GPU_REF_CTRL_SRCSEL 0x0 - # Clock active signal. Switch to 0 to disable the clock, which will stop clock for GPU (and both Pixel Processors). + # Clock active signal. Switch to 0 to disable the clock, which will stop c + # lock for GPU (and both Pixel Processors). # PSU_CRF_APB_GPU_REF_CTRL_CLKACT 0x1 - # Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor + # Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + # k only to this Pixel Processor # PSU_CRF_APB_GPU_REF_CTRL_PP0_CLKACT 0x1 - # Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor + # Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + # k only to this Pixel Processor # PSU_CRF_APB_GPU_REF_CTRL_PP1_CLKACT 0x1 # This register controls this reference clock @@ -1103,8 +1076,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_GDMA_REF_CTRL_DIVISOR0 0x2 - # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # lock. This is not usually an issue, but designers must be aware.) + # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + # er 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRF_APB_GDMA_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -1118,8 +1092,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_DPDMA_REF_CTRL_DIVISOR0 0x2 - # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # lock. This is not usually an issue, but designers must be aware.) + # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + # er 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) # PSU_CRF_APB_DPDMA_REF_CTRL_SRCSEL 0x0 # Clock active signal. Switch to 0 to disable the clock @@ -1133,23 +1108,25 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0 0x2 - # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - # lock. This is not usually an issue, but designers must be aware.) - # PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x2 + # 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + # er 4 cycles of the old clock and 4 cycles of the new clock. This is not + # usually an issue, but designers must be aware.) + # PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x3 # Clock active signal. Switch to 0 to disable the clock # PSU_CRF_APB_TOPSW_MAIN_CTRL_CLKACT 0x1 # This register controls this reference clock - #(OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000202U) */ - mask_write 0XFD1A00C0 0x01003F07 0x01000202 + #(OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000203U) */ + mask_write 0XFD1A00C0 0x01003F07 0x01000203 # Register : TOPSW_LSBUS_CTRL @ 0XFD1A00C4

      # 6 bit divider # PSU_CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0 0x5 - # 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) + # 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be tog + # gled after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL 0x2 # Clock active signal. Switch to 0 to disable the clock @@ -1163,8 +1140,9 @@ set psu_clock_init_data { # 6 bit divider # PSU_CRF_APB_DBG_TSTMP_CTRL_DIVISOR0 0x2 - # 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - # he new clock. This is not usually an issue, but designers must be aware.) + # 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + # gled after 4 cycles of the old clock and 4 cycles of the new clock. This + # is not usually an issue, but designers must be aware.) # PSU_CRF_APB_DBG_TSTMP_CTRL_SRCSEL 0x0 # This register controls this reference clock @@ -1172,20 +1150,24 @@ set psu_clock_init_data { mask_write 0XFD1A00F8 0x00003F07 0x00000200 # Register : IOU_TTC_APB_CLK @ 0XFF180380

      - # 00" = Select the APB switch clock for the APB interface of TTC0'01" = Select the PLL ref clock for the APB interface of TTC0' - # 0" = Select the R5 clock for the APB interface of TTC0 + # 00" = Select the APB switch clock for the APB interface of TTC0'01" = Se + # lect the PLL ref clock for the APB interface of TTC0'10" = Select the R5 + # clock for the APB interface of TTC0 # PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL 0 - # 00" = Select the APB switch clock for the APB interface of TTC1'01" = Select the PLL ref clock for the APB interface of TTC1' - # 0" = Select the R5 clock for the APB interface of TTC1 + # 00" = Select the APB switch clock for the APB interface of TTC1'01" = Se + # lect the PLL ref clock for the APB interface of TTC1'10" = Select the R5 + # clock for the APB interface of TTC1 # PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL 0 - # 00" = Select the APB switch clock for the APB interface of TTC2'01" = Select the PLL ref clock for the APB interface of TTC2' - # 0" = Select the R5 clock for the APB interface of TTC2 + # 00" = Select the APB switch clock for the APB interface of TTC2'01" = Se + # lect the PLL ref clock for the APB interface of TTC2'10" = Select the R5 + # clock for the APB interface of TTC2 # PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL 0 - # 00" = Select the APB switch clock for the APB interface of TTC3'01" = Select the PLL ref clock for the APB interface of TTC3' - # 0" = Select the R5 clock for the APB interface of TTC3 + # 00" = Select the APB switch clock for the APB interface of TTC3'01" = Se + # lect the PLL ref clock for the APB interface of TTC3'10" = Select the R5 + # clock for the APB interface of TTC3 # PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL 0 # TTC APB clock select @@ -1193,7 +1175,8 @@ set psu_clock_init_data { mask_write 0XFF180380 0x000000FF 0x00000000 # Register : WDT_CLK_SEL @ 0XFD610100

      - # System watchdog timer clock source selection: 0: Internal APB clock 1: External (PL clock via EMIO or Pinout clock via MIO) + # System watchdog timer clock source selection: 0: Internal APB clock 1: E + # xternal (PL clock via EMIO or Pinout clock via MIO) # PSU_FPD_SLCR_WDT_CLK_SEL_SELECT 0 # SWDT clock source select @@ -1201,8 +1184,8 @@ set psu_clock_init_data { mask_write 0XFD610100 0x00000001 0x00000000 # Register : WDT_CLK_SEL @ 0XFF180300

      - # System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock from PL via EMIO, or from pinout - # ia MIO + # System watchdog timer clock source selection: 0: internal clock APB cloc + # k 1: external clock from PL via EMIO, or from pinout via MIO # PSU_IOU_SLCR_WDT_CLK_SEL_SELECT 0 # SWDT clock source select @@ -1210,7 +1193,8 @@ set psu_clock_init_data { mask_write 0XFF180300 0x00000001 0x00000000 # Register : CSUPMU_WDT_CLK_SEL @ 0XFF410050

      - # System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock pss_ref_clk + # System watchdog timer clock source selection: 0: internal clock APB cloc + # k 1: external clock pss_ref_clk # PSU_LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT 0 # SWDT clock source select @@ -1231,72 +1215,90 @@ set psu_ddr_init_data { mask_write 0XFD1A0108 0x00000008 0x00000008 # Register : MSTR @ 0XFD070000

      - # Indicates the configuration of the device used in the system. - 00 - x4 device - 01 - x8 device - 10 - x16 device - 11 - x32 - # evice + # Indicates the configuration of the device used in the system. - 00 - x4 + # device - 01 - x8 device - 10 - x16 device - 11 - x32 device # PSU_DDRC_MSTR_DEVICE_CONFIG 0x1 - # Choose which registers are used. - 0 - Original registers - 1 - Shadow registers + # Choose which registers are used. - 0 - Original registers - 1 - Shadow r + # egisters # PSU_DDRC_MSTR_FREQUENCY_MODE 0x0 - # Only present for multi-rank configurations. Each bit represents one rank. For two-rank configurations, only bits[25:24] are p - # esent. - 1 - populated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks following combinations are legal: - 01 - - # ne rank - 11 - Two ranks - Others - Reserved. For 4 ranks following combinations are legal: - 0001 - One rank - 0011 - Two ra - # ks - 1111 - Four ranks + # Only present for multi-rank configurations. Each bit represents one rank + # . For two-rank configurations, only bits[25:24] are present. - 1 - popul + # ated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks follow + # ing combinations are legal: - 01 - One rank - 11 - Two ranks - Others - + # Reserved. For 4 ranks following combinations are legal: - 0001 - One ran + # k - 0011 - Two ranks - 1111 - Four ranks # PSU_DDRC_MSTR_ACTIVE_RANKS 0x1 - # SDRAM burst length used: - 0001 - Burst length of 2 (only supported for mDDR) - 0010 - Burst length of 4 - 0100 - Burst lengt - # of 8 - 1000 - Burst length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other values are reserved. This controls - # he burst size used to access the SDRAM. This must match the burst length mode register setting in the SDRAM. (For BC4/8 on-th - # -fly mode of DDR3 and DDR4, set this field to 0x0100) Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGT - # is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 + # SDRAM burst length used: - 0001 - Burst length of 2 (only supported for + # mDDR) - 0010 - Burst length of 4 - 0100 - Burst length of 8 - 1000 - Bur + # st length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other + # values are reserved. This controls the burst size used to access the SDR + # AM. This must match the burst length mode register setting in the SDRAM. + # (For BC4/8 on-the-fly mode of DDR3 and DDR4, set this field to 0x0100) + # Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGTH + # is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 # PSU_DDRC_MSTR_BURST_RDWR 0x4 - # Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low frequency operation. Set to 0 to put uMCTL2 and DRAM - # n DLL-on mode for normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d - # l_off_mode is not supported, and this bit must be set to '0'. + # Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low + # frequency operation. Set to 0 to put uMCTL2 and DRAM in DLL-on mode for + # normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARC + # TL1.crc_parity_retry_enable = 1), dll_off_mode is not supported, and thi + # s bit must be set to '0'. # PSU_DDRC_MSTR_DLL_OFF_MODE 0x0 - # Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full DQ bus width to SDRAM - 01 - Half DQ bus width to SD - # AM - 10 - Quarter DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is only supported when the SDRAM bus w - # dth is a multiple of 16, and quarter bus width mode is only supported when the SDRAM bus width is a multiple of 32 and the co - # figuration parameter MEMC_QBUS_SUPPORT is set. Bus width refers to DQ bus width (excluding any ECC width). + # Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full + # DQ bus width to SDRAM - 01 - Half DQ bus width to SDRAM - 10 - Quarter + # DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is + # only supported when the SDRAM bus width is a multiple of 16, and quarter + # bus width mode is only supported when the SDRAM bus width is a multiple + # of 32 and the configuration parameter MEMC_QBUS_SUPPORT is set. Bus wid + # th refers to DQ bus width (excluding any ECC width). # PSU_DDRC_MSTR_DATA_BUS_WIDTH 0x0 - # 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the DRAM in normal mode (1N). This register can be changed - # only when the Controller is in self-refresh mode. This signal must be set the same value as MR3 bit A3. Note: Geardown mode - # s not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set + # 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the D + # RAM in normal mode (1N). This register can be changed, only when the Con + # troller is in self-refresh mode. This signal must be set the same value + # as MR3 bit A3. Note: Geardown mode is not supported if the configuration + # parameter MEMC_CMD_RTN2IDLE is set # PSU_DDRC_MSTR_GEARDOWN_MODE 0x0 - # If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timing, all command signals (except chip select) are held - # or 2 clocks on the SDRAM bus. Chip select is asserted on the second cycle of the command Note: 2T timing is not supported in - # PDDR2/LPDDR3/LPDDR4 mode Note: 2T timing is not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set Note: 2T ti - # ing is not supported in DDR4 geardown mode. + # If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timin + # g, all command signals (except chip select) are held for 2 clocks on the + # SDRAM bus. Chip select is asserted on the second cycle of the command N + # ote: 2T timing is not supported in LPDDR2/LPDDR3/LPDDR4 mode Note: 2T ti + # ming is not supported if the configuration parameter MEMC_CMD_RTN2IDLE i + # s set Note: 2T timing is not supported in DDR4 geardown mode. # PSU_DDRC_MSTR_EN_2T_TIMING_MODE 0x0 - # When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exercised only in HIF configurations (UMCTL2_INCL_ARB not s - # t) and if in full bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exercised only if Partial Writes enable - # (UMCTL2_PARTIAL_WR=1) and if CRC is disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabled (CRCPARCTL1.cr - # _parity_retry_enable = 1), burst chop is not supported, and this bit must be set to '0' + # When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exerci + # sed only in HIF configurations (UMCTL2_INCL_ARB not set) and if in full + # bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exer + # cised only if Partial Writes enabled (UMCTL2_PARTIAL_WR=1) and if CRC is + # disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabl + # ed (CRCPARCTL1.crc_parity_retry_enable = 1), burst chop is not supported + # , and this bit must be set to '0' # PSU_DDRC_MSTR_BURSTCHOP 0x0 - # Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 device in use Present only in designs configured to su - # port LPDDR4. + # Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 d + # evice in use Present only in designs configured to support LPDDR4. # PSU_DDRC_MSTR_LPDDR4 0x0 - # Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device in use Present only in designs configured to support - # DR4. + # Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device + # in use Present only in designs configured to support DDR4. # PSU_DDRC_MSTR_DDR4 0x1 - # Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 device in use Present only in designs configured to su - # port LPDDR3. + # Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 d + # evice in use Present only in designs configured to support LPDDR3. # PSU_DDRC_MSTR_LPDDR3 0x0 - # Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 device in use Present only in designs configured to su - # port LPDDR2. + # Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 d + # evice in use Present only in designs configured to support LPDDR2. # PSU_DDRC_MSTR_LPDDR2 0x0 - # Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM device in use Only present in designs that support DDR3 - # + # Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM de + # vice in use Only present in designs that support DDR3. # PSU_DDRC_MSTR_DDR3 0x0 # Master Register @@ -1304,74 +1306,97 @@ set psu_ddr_init_data { mask_write 0XFD070000 0xE30FBE3D 0x41040010 # Register : MRCTRL0 @ 0XFD070010

      - # Setting this register bit to 1 triggers a mode register read or write operation. When the MR operation is complete, the uMCTL - # automatically clears this bit. The other register fields of this register must be written in a separate APB transaction, bef - # re setting this mr_wr bit. It is recommended NOT to set this signal if in Init, Deep power-down or MPSM operating modes. + # Setting this register bit to 1 triggers a mode register read or write op + # eration. When the MR operation is complete, the uMCTL2 automatically cle + # ars this bit. The other register fields of this register must be written + # in a separate APB transaction, before setting this mr_wr bit. It is rec + # ommended NOT to set this signal if in Init, Deep power-down or MPSM oper + # ating modes. # PSU_DDRC_MRCTRL0_MR_WR 0x0 - # Address of the mode register that is to be written to. - 0000 - MR0 - 0001 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 010 - # - MR5 - 0110 - MR6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data for mode register addressing in LPD - # R2/LPDDR3/LPDDR4) This signal is also used for writing to control words of RDIMMs. In that case, it corresponds to the bank a - # dress bits sent to the RDIMM In case of DDR4, the bit[3:2] corresponds to the bank group bits. Therefore, the bit[3] as well - # s the bit[2:0] must be set to an appropriate value which is considered both the Address Mirroring of UDIMMs/RDIMMs and the Ou - # put Inversion of RDIMMs. + # Address of the mode register that is to be written to. - 0000 - MR0 - 00 + # 01 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 0101 - MR5 - 0110 - MR + # 6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data + # for mode register addressing in LPDDR2/LPDDR3/LPDDR4) This signal is als + # o used for writing to control words of RDIMMs. In that case, it correspo + # nds to the bank address bits sent to the RDIMM In case of DDR4, the bit[ + # 3:2] corresponds to the bank group bits. Therefore, the bit[3] as well a + # s the bit[2:0] must be set to an appropriate value which is considered b + # oth the Address Mirroring of UDIMMs/RDIMMs and the Output Inversion of R + # DIMMs. # PSU_DDRC_MRCTRL0_MR_ADDR 0x0 - # Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desired to access all ranks, so all bits should be set to 1 - # However, for multi-rank UDIMMs/RDIMMs which implement address mirroring, it may be necessary to access ranks individually. E - # amples (assume uMCTL2 is configured for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x5 - select ranks - # and 2 - 0xA - select ranks 1 and 3 - 0xF - select ranks 0, 1, 2 and 3 + # Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desire + # d to access all ranks, so all bits should be set to 1. However, for mult + # i-rank UDIMMs/RDIMMs which implement address mirroring, it may be necess + # ary to access ranks individually. Examples (assume uMCTL2 is configured + # for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x + # 5 - select ranks 0 and 2 - 0xA - select ranks 1 and 3 - 0xF - select ran + # ks 0, 1, 2 and 3 # PSU_DDRC_MRCTRL0_MR_RANK 0x3 - # Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 before automatic SDRAM initialization routine or not. - # or DDR4, this bit can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM initialization. For LPDDR4, this bit ca - # be used to program additional mode registers before automatic SDRAM initialization if necessary. Note: This must be cleared - # o 0 after completing Software operation. Otherwise, SDRAM initialization routine will not re-start. - 0 - Software interventi - # n is not allowed - 1 - Software intervention is allowed + # Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 b + # efore automatic SDRAM initialization routine or not. For DDR4, this bit + # can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM init + # ialization. For LPDDR4, this bit can be used to program additional mode + # registers before automatic SDRAM initialization if necessary. Note: This + # must be cleared to 0 after completing Software operation. Otherwise, SD + # RAM initialization routine will not re-start. - 0 - Software interventio + # n is not allowed - 1 - Software intervention is allowed # PSU_DDRC_MRCTRL0_SW_INIT_INT 0x0 - # Indicates whether the mode register operation is MRS in PDA mode or not - 0 - MRS - 1 - MRS in Per DRAM Addressability mode + # Indicates whether the mode register operation is MRS in PDA mode or not + # - 0 - MRS - 1 - MRS in Per DRAM Addressability mode # PSU_DDRC_MRCTRL0_PDA_EN 0x0 - # Indicates whether the mode register operation is MRS or WR/RD for MPR (only supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR + # Indicates whether the mode register operation is MRS or WR/RD for MPR (o + # nly supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR # PSU_DDRC_MRCTRL0_MPR_EN 0x0 - # Indicates whether the mode register operation is read or write. Only used for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Re - # d + # Indicates whether the mode register operation is read or write. Only use + # d for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Read # PSU_DDRC_MRCTRL0_MR_TYPE 0x0 - # Mode Register Read/Write Control Register 0. Note: Do not enable more than one of the following fields simultaneously: - sw_i - # it_int - pda_en - mpr_en + # Mode Register Read/Write Control Register 0. Note: Do not enable more th + # an one of the following fields simultaneously: - sw_init_int - pda_en - + # mpr_en #(OFFSET, MASK, VALUE) (0XFD070010, 0x8000F03FU ,0x00000030U) */ mask_write 0XFD070010 0x8000F03F 0x00000030 # Register : DERATEEN @ 0XFD070020

      - # Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating uses +2. - 2 - Derating uses +3. - 3 - Derating uses +4 - # Present only in designs configured to support LPDDR4. The required number of cycles for derating can be determined by dividi - # g 3.75ns by the core_ddrc_core_clk period, and rounding up the next integer. - # PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x3 + # Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating us + # es +2. - 2 - Derating uses +3. - 3 - Derating uses +4. Present only in d + # esigns configured to support LPDDR4. The required number of cycles for d + # erating can be determined by dividing 3.75ns by the core_ddrc_core_clk p + # eriod, and rounding up the next integer. + # PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x2 - # Derate byte Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 Indicates which byte of the MRR data is used f - # r derating. The maximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. + # Derate byte Present only in designs configured to support LPDDR2/LPDDR3/ + # LPDDR4 Indicates which byte of the MRR data is used for derating. The ma + # ximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. # PSU_DDRC_DERATEEN_DERATE_BYTE 0x0 - # Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present only in designs configured to support LPDDR2/LPDDR3/LPDD - # 4 Set to 0 for all LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ddrc_core_clk period. Can be 0 or 1 - # for LPDDR3/LPDDR4, depending if +1.875 ns is less than a core_ddrc_core_clk period or not. + # Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present onl + # y in designs configured to support LPDDR2/LPDDR3/LPDDR4 Set to 0 for all + # LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ + # ddrc_core_clk period. Can be 0 or 1 for LPDDR3/LPDDR4, depending if +1.8 + # 75 ns is less than a core_ddrc_core_clk period or not. # PSU_DDRC_DERATEEN_DERATE_VALUE 0x0 - # Enables derating - 0 - Timing parameter derating is disabled - 1 - Timing parameter derating is enabled using MR4 read value. - # Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set to '0' for non-LPDDR2/LPDDR3/LPDDR4 - # mode. + # Enables derating - 0 - Timing parameter derating is disabled - 1 - Timin + # g parameter derating is enabled using MR4 read value. Present only in de + # signs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set + # to '0' for non-LPDDR2/LPDDR3/LPDDR4 mode. # PSU_DDRC_DERATEEN_DERATE_ENABLE 0x0 # Temperature Derate Enable Register - #(OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000300U) */ - mask_write 0XFD070020 0x000003F3 0x00000300 + #(OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000200U) */ + mask_write 0XFD070020 0x000003F3 0x00000200 # Register : DERATEINT @ 0XFD070024

      - # Interval between two MR4 reads, used to derate the timing parameters. Present only in designs configured to support LPDDR2/LP - # DR3/LPDDR4. This register must not be set to zero + # Interval between two MR4 reads, used to derate the timing parameters. Pr + # esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4. This r + # egister must not be set to zero # PSU_DDRC_DERATEINT_MR4_READ_INTERVAL 0x800000 # Temperature Derate Interval Register @@ -1379,41 +1404,57 @@ set psu_ddr_init_data { mask_write 0XFD070024 0xFFFFFFFF 0x00800000 # Register : PWRCTL @ 0XFD070030

      - # Self refresh state is an intermediate state to enter to Self refresh power down state or exit Self refresh power down state f - # r LPDDR4. This register controls transition from the Self refresh state. - 1 - Prohibit transition from Self refresh state - - # - Allow transition from Self refresh state + # Self refresh state is an intermediate state to enter to Self refresh pow + # er down state or exit Self refresh power down state for LPDDR4. This reg + # ister controls transition from the Self refresh state. - 1 - Prohibit tr + # ansition from Self refresh state - 0 - Allow transition from Self refres + # h state # PSU_DDRC_PWRCTL_STAY_IN_SELFREF 0x0 - # A value of 1 to this register causes system to move to Self Refresh state immediately, as long as it is not in INIT or DPD/MP - # M operating_mode. This is referred to as Software Entry/Exit to Self Refresh. - 1 - Software Entry to Self Refresh - 0 - Soft - # are Exit from Self Refresh + # A value of 1 to this register causes system to move to Self Refresh stat + # e immediately, as long as it is not in INIT or DPD/MPSM operating_mode. + # This is referred to as Software Entry/Exit to Self Refresh. - 1 - Softwa + # re Entry to Self Refresh - 0 - Software Exit from Self Refresh # PSU_DDRC_PWRCTL_SELFREF_SW 0x0 - # When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode when the transaction store is empty. This register m - # st be reset to '0' to bring uMCTL2 out of maximum power saving mode. Present only in designs configured to support DDR4. For - # on-DDR4, this register should not be set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if the PHY parameter - # DWC_AC_CS_USE is disabled, as the MPSM exit sequence requires the chip-select signal to toggle. FOR PERFORMANCE ONLY. + # When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode + # when the transaction store is empty. This register must be reset to '0' + # to bring uMCTL2 out of maximum power saving mode. Present only in desig + # ns configured to support DDR4. For non-DDR4, this register should not be + # set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if + # the PHY parameter DWC_AC_CS_USE is disabled, as the MPSM exit sequence r + # equires the chip-select signal to toggle. FOR PERFORMANCE ONLY. # PSU_DDRC_PWRCTL_MPSM_EN 0x0 - # Enable the assertion of dfi_dram_clk_disable whenever a clock is not required by the SDRAM. If set to 0, dfi_dram_clk_disable - # is never asserted. Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only be asserted in Self Refresh. In DD - # 4, can be asserted in following: - in Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, can be asserted in - # ollowing: - in Self Refresh - in Power Down - in Deep Power Down - during Normal operation (Clock Stop) In LPDDR4, can be ass - # rted in following: - in Self Refresh Power Down - in Power Down - during Normal operation (Clock Stop) + # Enable the assertion of dfi_dram_clk_disable whenever a clock is not req + # uired by the SDRAM. If set to 0, dfi_dram_clk_disable is never asserted. + # Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only + # be asserted in Self Refresh. In DDR4, can be asserted in following: - i + # n Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, ca + # n be asserted in following: - in Self Refresh - in Power Down - in Deep + # Power Down - during Normal operation (Clock Stop) In LPDDR4, can be asse + # rted in following: - in Self Refresh Power Down - in Power Down - during + # Normal operation (Clock Stop) # PSU_DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE 0x0 - # When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the transaction store is empty. This register must be re - # et to '0' to bring uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM initialization on deep power-down - # xit. Present only in designs configured to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPDDR3, this registe - # should not be set to 1. FOR PERFORMANCE ONLY. + # When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the + # transaction store is empty. This register must be reset to '0' to bring + # uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM + # initialization on deep power-down exit. Present only in designs configu + # red to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPD + # DR3, this register should not be set to 1. FOR PERFORMANCE ONLY. # PSU_DDRC_PWRCTL_DEEPPOWERDOWN_EN 0x0 - # If true then the uMCTL2 goes into power-down after a programmable number of cycles 'maximum idle clocks before power down' (P - # RTMG.powerdown_to_x32). This register bit may be re-programmed during the course of normal operation. + # If true then the uMCTL2 goes into power-down after a programmable number + # of cycles 'maximum idle clocks before power down' (PWRTMG.powerdown_to_ + # x32). This register bit may be re-programmed during the course of normal + # operation. # PSU_DDRC_PWRCTL_POWERDOWN_EN 0x0 - # If true then the uMCTL2 puts the SDRAM into Self Refresh after a programmable number of cycles 'maximum idle clocks before Se - # f Refresh (PWRTMG.selfref_to_x32)'. This register bit may be re-programmed during the course of normal operation. + # If true then the uMCTL2 puts the SDRAM into Self Refresh after a program + # mable number of cycles 'maximum idle clocks before Self Refresh (PWRTMG. + # selfref_to_x32)'. This register bit may be re-programmed during the cour + # se of normal operation. # PSU_DDRC_PWRCTL_SELFREF_EN 0x0 # Low Power Control Register @@ -1421,17 +1462,22 @@ set psu_ddr_init_data { mask_write 0XFD070030 0x0000007F 0x00000000 # Register : PWRTMG @ 0XFD070034

      - # After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into Self Refresh. This must be enabled in - # he PWRCTL.selfref_en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + # After this many clocks of NOP or deselect the uMCTL2 automatically puts + # the SDRAM into Self Refresh. This must be enabled in the PWRCTL.selfref_ + # en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. # PSU_DDRC_PWRTMG_SELFREF_TO_X32 0x40 - # Minimum deep power-down time. For mDDR, value from the JEDEC specification is 0 as mDDR exits from deep power-down mode immed - # ately after PWRCTL.deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDEC specification is 500us. Unit: Mul - # iples of 4096 clocks. Present only in designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE ONLY. + # Minimum deep power-down time. For mDDR, value from the JEDEC specificati + # on is 0 as mDDR exits from deep power-down mode immediately after PWRCTL + # .deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDE + # C specification is 500us. Unit: Multiples of 4096 clocks. Present only i + # n designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE + # ONLY. # PSU_DDRC_PWRTMG_T_DPD_X4096 0x84 - # After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into power-down. This must be enabled in th - # PWRCTL.powerdown_en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. + # After this many clocks of NOP or deselect the uMCTL2 automatically puts + # the SDRAM into power-down. This must be enabled in the PWRCTL.powerdown_ + # en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. # PSU_DDRC_PWRTMG_POWERDOWN_TO_X32 0x10 # Low Power Timing Register @@ -1439,60 +1485,100 @@ set psu_ddr_init_data { mask_write 0XFD070034 0x00FFFF1F 0x00408410 # Register : RFSHCTL0 @ 0XFD070050

      - # Threshold value in number of clock cycles before the critical refresh or page timer expires. A critical refresh is to be issu - # d before this threshold is reached. It is recommended that this not be changed from the default value, currently shown as 0x2 - # It must always be less than internally used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally used t_rfc_nom_x32 - # may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating is enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_ - # om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clocks. + # Threshold value in number of clock cycles before the critical refresh or + # page timer expires. A critical refresh is to be issued before this thre + # shold is reached. It is recommended that this not be changed from the de + # fault value, currently shown as 0x2. It must always be less than interna + # lly used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally u + # sed t_rfc_nom_x32 may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating i + # s enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_n + # om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clo + # cks. # PSU_DDRC_RFSHCTL0_REFRESH_MARGIN 0x2 - # If the refresh timer (tRFCnom, also known as tREFI) has expired at least once, but it has not expired (RFSHCTL0.refresh_burst - # 1) times yet, then a speculative refresh may be performed. A speculative refresh is a refresh performed at a time when refres - # would be useful, but before it is absolutely required. When the SDRAM bus is idle for a period of time determined by this RF - # HCTL0.refresh_to_x32 and the refresh timer has expired at least once since the last refresh, then a speculative refresh is pe - # formed. Speculative refreshes continues successively until there are no refreshes pending or until new reads or writes are is - # ued to the uMCTL2. FOR PERFORMANCE ONLY. + # If the refresh timer (tRFCnom, also known as tREFI) has expired at least + # once, but it has not expired (RFSHCTL0.refresh_burst+1) times yet, then + # a speculative refresh may be performed. A speculative refresh is a refr + # esh performed at a time when refresh would be useful, but before it is a + # bsolutely required. When the SDRAM bus is idle for a period of time dete + # rmined by this RFSHCTL0.refresh_to_x32 and the refresh timer has expired + # at least once since the last refresh, then a speculative refresh is per + # formed. Speculative refreshes continues successively until there are no + # refreshes pending or until new reads or writes are issued to the uMCTL2. + # FOR PERFORMANCE ONLY. # PSU_DDRC_RFSHCTL0_REFRESH_TO_X32 0x10 - # The programmed value + 1 is the number of refresh timeouts that is allowed to accumulate before traffic is blocked and the re - # reshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of re - # reshes. Therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for - # RFSHCTL.refresh_burst slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshe - # . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh For information on burst refresh feature refer to se - # tion 3.9 of DDR2 JEDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always per-rank and not per-bank. The rank r - # fresh can be accumulated over 8*tREFI cycles using the burst refresh feature. In DDR4 mode, according to Fine Granularity fea - # ure, 8 refreshes can be postponed in 1X mode, 16 refreshes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upd - # tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ensure that tRFCmax is not violated due to a PHY-initiat - # d update occurring shortly before a refresh burst was due. In this situation, the refresh burst will be delayed until the PHY - # initiated update is complete. + # The programmed value + 1 is the number of refresh timeouts that is allow + # ed to accumulate before traffic is blocked and the refreshes are forced + # to execute. Closing pages to perform a refresh is a one-time penalty tha + # t must be paid for each group of refreshes. Therefore, performing refres + # hes in a burst reduces the per-refresh penalty of these page closings. H + # igher numbers for RFSHCTL.refresh_burst slightly increases utilization; + # lower numbers decreases the worst-case latency associated with refreshes + # . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh + # For information on burst refresh feature refer to section 3.9 of DDR2 J + # EDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always pe + # r-rank and not per-bank. The rank refresh can be accumulated over 8*tREF + # I cycles using the burst refresh feature. In DDR4 mode, according to Fin + # e Granularity feature, 8 refreshes can be postponed in 1X mode, 16 refre + # shes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upda + # tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ens + # ure that tRFCmax is not violated due to a PHY-initiated update occurring + # shortly before a refresh burst was due. In this situation, the refresh + # burst will be delayed until the PHY-initiated update is complete. # PSU_DDRC_RFSHCTL0_REFRESH_BURST 0x0 - # - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows traffic to flow to other banks. Per bank refresh is n - # t supported by all LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Present only in designs configured to - # support LPDDR2/LPDDR3/LPDDR4 + # - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows + # traffic to flow to other banks. Per bank refresh is not supported by all + # LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Pr + # esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4 # PSU_DDRC_RFSHCTL0_PER_BANK_REFRESH 0x0 # Refresh Control Register 0 #(OFFSET, MASK, VALUE) (0XFD070050, 0x00F1F1F4U ,0x00210000U) */ mask_write 0XFD070050 0x00F1F1F4 0x00210000 + # Register : RFSHCTL1 @ 0XFD070054

      + + # Refresh timer start for rank 1 (only present in multi-rank configuration + # s). This is useful in staggering the refreshes to multiple ranks to help + # traffic to proceed. This is explained in Refresh Controls section of ar + # chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + # PSU_DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32 0x0 + + # Refresh timer start for rank 0 (only present in multi-rank configuration + # s). This is useful in staggering the refreshes to multiple ranks to help + # traffic to proceed. This is explained in Refresh Controls section of ar + # chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + # PSU_DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32 0x0 + + # Refresh Control Register 1 + #(OFFSET, MASK, VALUE) (0XFD070054, 0x0FFF0FFFU ,0x00000000U) */ + mask_write 0XFD070054 0x0FFF0FFF 0x00000000 # Register : RFSHCTL3 @ 0XFD070060

      - # Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fixed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x ( - # ot supported) - 110 - Enable on the fly 4x (not supported) - Everything else - reserved Note: The on-the-fly modes is not sup - # orted in this version of the uMCTL2. Note: This must be set up while the Controller is in reset or while the Controller is in - # self-refresh mode. Changing this during normal operation is not allowed. Making this a dynamic register will be supported in - # uture version of the uMCTL2. + # Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fix + # ed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x (not supported) - 11 + # 0 - Enable on the fly 4x (not supported) - Everything else - reserved No + # te: The on-the-fly modes is not supported in this version of the uMCTL2. + # Note: This must be set up while the Controller is in reset or while the + # Controller is in self-refresh mode. Changing this during normal operati + # on is not allowed. Making this a dynamic register will be supported in f + # uture version of the uMCTL2. # PSU_DDRC_RFSHCTL3_REFRESH_MODE 0x0 - # Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that the refresh register(s) have been updated. The value - # s automatically updated when exiting reset, so it does not need to be toggled initially. + # Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that + # the refresh register(s) have been updated. The value is automatically up + # dated when exiting reset, so it does not need to be toggled initially. # PSU_DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL 0x0 - # When '1', disable auto-refresh generated by the uMCTL2. When auto-refresh is disabled, the SoC core must generate refreshes u - # ing the registers reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh and reg_ddrc_rank3_refresh. When dis - # auto_refresh transitions from 0 to 1, any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 CRC/parity retry - # is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), disable auto-refresh is not supported, and this bit must be set to '0'. - # his register field is changeable on the fly. + # When '1', disable auto-refresh generated by the uMCTL2. When auto-refres + # h is disabled, the SoC core must generate refreshes using the registers + # reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh a + # nd reg_ddrc_rank3_refresh. When dis_auto_refresh transitions from 0 to 1 + # , any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 + # CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d + # isable auto-refresh is not supported, and this bit must be set to '0'. T + # his register field is changeable on the fly. # PSU_DDRC_RFSHCTL3_DIS_AUTO_REFRESH 0x1 # Refresh Control Register 3 @@ -1500,38 +1586,51 @@ set psu_ddr_init_data { mask_write 0XFD070060 0x00000073 0x00000001 # Register : RFSHTMG @ 0XFD070064

      - # tREFI: Average time interval between refreshes per rank (Specification: 7.8us for DDR2, DDR3 and DDR4. See JEDEC specificatio - # for mDDR, LPDDR2, LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refreshes (RFSHCTL0.per_bank_refresh = 0 - # , this register should be set to tREFIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this register should - # e set to tREFIpb For configurations with MEMC_FREQ_RATIO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI va - # ue is different depending on the refresh mode. The user should program the appropriate value from the spec based on the value - # programmed in the refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be greater than RFSHTMG.t_rfc_min, and RFS - # TMG.t_rfc_nom_x32 must be greater than 0x1. Unit: Multiples of 32 clocks. - # PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x82 + # tREFI: Average time interval between refreshes per rank (Specification: + # 7.8us for DDR2, DDR3 and DDR4. See JEDEC specification for mDDR, LPDDR2, + # LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refre + # shes (RFSHCTL0.per_bank_refresh = 0), this register should be set to tRE + # FIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this + # register should be set to tREFIpb For configurations with MEMC_FREQ_RAT + # IO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI val + # ue is different depending on the refresh mode. The user should program t + # he appropriate value from the spec based on the value programmed in the + # refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be grea + # ter than RFSHTMG.t_rfc_min, and RFSHTMG.t_rfc_nom_x32 must be greater th + # an 0x1. Unit: Multiples of 32 clocks. + # PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x81 - # Used only when LPDDR3 memory type is connected. Should only be changed when uMCTL2 is in reset. Specifies whether to use the - # REFBW parameter (required by some LPDDR3 devices which comply with earlier versions of the LPDDR3 JEDEC specification) or not - # - 0 - tREFBW parameter not used - 1 - tREFBW parameter used + # Used only when LPDDR3 memory type is connected. Should only be changed w + # hen uMCTL2 is in reset. Specifies whether to use the tREFBW parameter (r + # equired by some LPDDR3 devices which comply with earlier versions of the + # LPDDR3 JEDEC specification) or not: - 0 - tREFBW parameter not used - 1 + # - tREFBW parameter used # PSU_DDRC_RFSHTMG_LPDDR3_TREFBW_EN 0x1 - # tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_FREQ_RATIO=1 configurations, t_rfc_min should be set t - # RoundUp(tRFCmin/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to RoundUp(RoundUp(tRFCmin/tCK)/2). In L - # DDR2/LPDDR3/LPDDR4 mode: - if using all-bank refreshes, the tRFCmin value in the above equations is equal to tRFCab - if usin - # per-bank refreshes, the tRFCmin value in the above equations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above - # equations is different depending on the refresh mode (fixed 1X,2X,4X) and the device density. The user should program the app - # opriate value from the spec based on the 'refresh_mode' and the device density that is used. Unit: Clocks. + # tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_F + # REQ_RATIO=1 configurations, t_rfc_min should be set to RoundUp(tRFCmin/t + # CK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to Ro + # undUp(RoundUp(tRFCmin/tCK)/2). In LPDDR2/LPDDR3/LPDDR4 mode: - if using + # all-bank refreshes, the tRFCmin value in the above equations is equal to + # tRFCab - if using per-bank refreshes, the tRFCmin value in the above eq + # uations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above + # equations is different depending on the refresh mode (fixed 1X,2X,4X) an + # d the device density. The user should program the appropriate value from + # the spec based on the 'refresh_mode' and the device density that is use + # d. Unit: Clocks. # PSU_DDRC_RFSHTMG_T_RFC_MIN 0x8b # Refresh Timing Register - #(OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0082808BU) */ - mask_write 0XFD070064 0x0FFF83FF 0x0082808B + #(OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0081808BU) */ + mask_write 0XFD070064 0x0FFF83FF 0x0081808B # Register : ECCCFG0 @ 0XFD070070

      - # Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_USE_RMW is defined + # Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_U + # SE_RMW is defined # PSU_DDRC_ECCCFG0_DIS_SCRUB 0x1 - # ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED over 1 beat - all other settings are reserved for futur - # use + # ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED ov + # er 1 beat - all other settings are reserved for future use # PSU_DDRC_ECCCFG0_ECC_MODE 0x0 # ECC Configuration Register 0 @@ -1539,11 +1638,13 @@ set psu_ddr_init_data { mask_write 0XFD070070 0x00000017 0x00000010 # Register : ECCCFG1 @ 0XFD070074

      - # Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) data poisoning, if 1 -> 1-bit (correctable) data poison - # ng, if ECCCFG1.data_poison_en=1 + # Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) da + # ta poisoning, if 1 -> 1-bit (correctable) data poisoning, if ECCCFG1.dat + # a_poison_en=1 # PSU_DDRC_ECCCFG1_DATA_POISON_BIT 0x0 - # Enable ECC data poisoning - introduces ECC errors on writes to address specified by the ECCPOISONADDR0/1 registers + # Enable ECC data poisoning - introduces ECC errors on writes to address s + # pecified by the ECCPOISONADDR0/1 registers # PSU_DDRC_ECCCFG1_DATA_POISON_EN 0x0 # ECC Configuration Register 1 @@ -1551,43 +1652,60 @@ set psu_ddr_init_data { mask_write 0XFD070074 0x00000003 0x00000000 # Register : CRCPARCTL1 @ 0XFD0700C4

      - # The maximum number of DFI PHY clock cycles allowed from the assertion of the dfi_rddata_en signal to the assertion of each of - # the corresponding bits of the dfi_rddata_valid signal. This corresponds to the DFI timing parameter tphy_rdlat. Refer to PHY - # pecification for correct value. This value it only used for detecting read data timeout when DDR4 retry is enabled by CRCPARC - # L1.crc_parity_retry_enable=1. Maximum supported value: - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ - # dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mo - # e ANDAND DFITMG0.dfi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_rdlat < 'd114 Unit: DFI Clocks + # The maximum number of DFI PHY clock cycles allowed from the assertion of + # the dfi_rddata_en signal to the assertion of each of the corresponding + # bits of the dfi_rddata_valid signal. This corresponds to the DFI timing + # parameter tphy_rdlat. Refer to PHY specification for correct value. This + # value it only used for detecting read data timeout when DDR4 retry is e + # nabled by CRCPARCTL1.crc_parity_retry_enable=1. Maximum supported value: + # - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_r + # dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 + # : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mode ANDAND DFITMG0.d + # fi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ + # rdlat < 'd114 Unit: DFI Clocks # PSU_DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT 0x10 - # After a Parity or CRC error is flagged on dfi_alert_n signal, the software has an option to read the mode registers in the DR - # M before the hardware begins the retry process - 1: Wait for software to read/write the mode registers before hardware begins - # the retry. After software is done with its operations, it will clear the alert interrupt register bit - 0: Hardware can begin - # the retry right away after the dfi_alert_n pulse goes away. The value on this register is valid only when retry is enabled (P - # RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if the software doesn't clear the interrupt register afte - # handling the parity/CRC error, then the hardware will not begin the retry process and the system will hang. In the case of P - # rity/CRC error, there are two possibilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persistent parity' mode re - # ister bit is NOT set: the commands sent during retry and normal operation are executed without parity checking. The value in - # he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent parity' mode register bit is SET: Parity checking is - # one for commands sent during retry and normal operation. If multiple errors occur before MR5[4] is cleared, the error log in - # PR Page 1 should be treated as 'Don't care'. + # After a Parity or CRC error is flagged on dfi_alert_n signal, the softwa + # re has an option to read the mode registers in the DRAM before the hardw + # are begins the retry process - 1: Wait for software to read/write the mo + # de registers before hardware begins the retry. After software is done wi + # th its operations, it will clear the alert interrupt register bit - 0: H + # ardware can begin the retry right away after the dfi_alert_n pulse goes + # away. The value on this register is valid only when retry is enabled (PA + # RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if t + # he software doesn't clear the interrupt register after handling the pari + # ty/CRC error, then the hardware will not begin the retry process and the + # system will hang. In the case of Parity/CRC error, there are two possib + # ilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persisten + # t parity' mode register bit is NOT set: the commands sent during retry a + # nd normal operation are executed without parity checking. The value in t + # he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent + # parity' mode register bit is SET: Parity checking is done for commands s + # ent during retry and normal operation. If multiple errors occur before M + # R5[4] is cleared, the error log in MPR Page 1 should be treated as 'Don' + # t care'. # PSU_DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW 0x1 - # - 1: Enable command retry mechanism in case of C/A Parity or CRC error - 0: Disable command retry mechanism when C/A Parity o - # CRC features are enabled. Note that retry functionality is not supported if burst chop is enabled (MSTR.burstchop = 1) and/o - # disable auto-refresh is enabled (RFSHCTL3.dis_auto_refresh = 1) + # - 1: Enable command retry mechanism in case of C/A Parity or CRC error - + # 0: Disable command retry mechanism when C/A Parity or CRC features are + # enabled. Note that retry functionality is not supported if burst chop is + # enabled (MSTR.burstchop = 1) and/or disable auto-refresh is enabled (RF + # SHCTL3.dis_auto_refresh = 1) # PSU_DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE 0x0 - # CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC not includes DM signal Present only in designs configur - # d to support DDR4. + # CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC no + # t includes DM signal Present only in designs configured to support DDR4. # PSU_DDRC_CRCPARCTL1_CRC_INC_DM 0x0 - # CRC enable Register - 1: Enable generation of CRC - 0: Disable generation of CRC The setting of this register should match th - # CRC mode register setting in the DRAM. + # CRC enable Register - 1: Enable generation of CRC - 0: Disable generatio + # n of CRC The setting of this register should match the CRC mode register + # setting in the DRAM. # PSU_DDRC_CRCPARCTL1_CRC_ENABLE 0x0 - # C/A Parity enable register - 1: Enable generation of C/A parity and detection of C/A parity error - 0: Disable generation of - # /A parity and disable detection of C/A parity error If RCD's parity error detection or SDRAM's parity detection is enabled, t - # is register should be 1. + # C/A Parity enable register - 1: Enable generation of C/A parity and dete + # ction of C/A parity error - 0: Disable generation of C/A parity and disa + # ble detection of C/A parity error If RCD's parity error detection or SDR + # AM's parity detection is enabled, this register should be 1. # PSU_DDRC_CRCPARCTL1_PARITY_ENABLE 0x0 # CRC Parity Control Register1 @@ -1595,35 +1713,53 @@ set psu_ddr_init_data { mask_write 0XFD0700C4 0x3F000391 0x10000200 # Register : CRCPARCTL2 @ 0XFD0700C8

      - # Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a parity error occurs. Recommended values - # - tPAR_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT_PW.MAX/2 and round up to next inte - # er value. Values of 0, 1 and 2 are illegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. + # Value from the DRAM spec indicating the maximum width of the dfi_alert_n + # pulse when a parity error occurs. Recommended values: - tPAR_ALERT_PW.M + # AX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT + # _PW.MAX/2 and round up to next integer value. Values of 0, 1 and 2 are i + # llegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. # PSU_DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX 0x40 - # Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a CRC error occurs. Recommended values: - - # tCRC_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW.MAX/2 and round up to next integer - # value. Values of 0, 1 and 2 are illegal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. + # Value from the DRAM spec indicating the maximum width of the dfi_alert_n + # pulse when a CRC error occurs. Recommended values: - tCRC_ALERT_PW.MAX + # For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW + # .MAX/2 and round up to next integer value. Values of 0, 1 and 2 are ille + # gal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. # PSU_DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX 0x5 - # Indicates the maximum duration in number of DRAM clock cycles for which a command should be held in the Command Retry FIFO be - # ore it is popped out. Every location in the Command Retry FIFO has an associated down counting timer that will use this regis - # er as the start value. The down counting starts when a command is loaded into the FIFO. The timer counts down every 4 DRAM cy - # les. When the counter reaches zero, the entry is popped from the FIFO. All the counters are frozen, if a C/A Parity or CRC er - # or occurs before the counter reaches zero. The counter is reset to 0, after all the commands in the FIFO are retried. Recomme - # ded(minimum) values: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + tPAR_ALERT_ON - # max + tPAR_UNKNOWN + PHY Alert Latency(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enabled/ Only CRC is en - # bled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) - # + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be in terms of DRAM Clock and round up Note 2: Board de - # ay(Command/Alert_n) should be considered. Note 3: Use the worst case(longer) value for PHY Latencies/Board delay Note 4: The - # ecommended values are minimum value to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max value can be set - # to this register is defined below: - MEMC_BURST_LENGTH == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH- - # Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_D - # PTH-4 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CM - # _FIFO_DEPTH-8 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 Full bus Mode (C - # C=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mo - # e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarte - # bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEP - # H-6 Values of 0, 1 and 2 are illegal. + # Indicates the maximum duration in number of DRAM clock cycles for which + # a command should be held in the Command Retry FIFO before it is popped o + # ut. Every location in the Command Retry FIFO has an associated down coun + # ting timer that will use this register as the start value. The down coun + # ting starts when a command is loaded into the FIFO. The timer counts dow + # n every 4 DRAM cycles. When the counter reaches zero, the entry is poppe + # d from the FIFO. All the counters are frozen, if a C/A Parity or CRC err + # or occurs before the counter reaches zero. The counter is reset to 0, af + # ter all the commands in the FIFO are retried. Recommended(minimum) value + # s: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + # + CAL + RDIMM delay + tPAR_ALERT_ON.max + tPAR_UNKNOWN + PHY Alert Laten + # cy(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enable + # d/ Only CRC is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + R + # DIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) + # + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be + # in terms of DRAM Clock and round up Note 2: Board delay(Command/Alert_n + # ) should be considered. Note 3: Use the worst case(longer) value for PHY + # Latencies/Board delay Note 4: The Recommended values are minimum value + # to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max + # value can be set to this register is defined below: - MEMC_BURST_LENGTH + # == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 + # Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half b + # us Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Half bus Mod + # e (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (C + # RC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-8 Quarter bus Mode (CRC= + # ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 + # Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full + # bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mod + # e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC + # =ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarter bus Mode (CRC=OFF + # ) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Ma + # x value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Values of 0, 1 and 2 are illegal + # . # PSU_DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4 0x1f # CRC Parity Control Register2 @@ -1631,23 +1767,31 @@ set psu_ddr_init_data { mask_write 0XFD0700C8 0x01FF1F3F 0x0040051F # Register : INIT0 @ 0XFD0700D0

      - # If lower bit is enabled the SDRAM initialization routine is skipped. The upper bit decides what state the controller starts u - # in when reset is removed - 00 - SDRAM Intialization routine is run after power-up - 01 - SDRAM Intialization routine is skip - # ed after power-up. Controller starts up in Normal Mode - 11 - SDRAM Intialization routine is skipped after power-up. Controll - # r starts up in Self-refresh Mode - 10 - SDRAM Intialization routine is run after power-up. Note: The only 2'b00 is supported - # or LPDDR4 in this version of the uMCTL2. + # If lower bit is enabled the SDRAM initialization routine is skipped. The + # upper bit decides what state the controller starts up in when reset is + # removed - 00 - SDRAM Intialization routine is run after power-up - 01 - + # SDRAM Intialization routine is skipped after power-up. Controller starts + # up in Normal Mode - 11 - SDRAM Intialization routine is skipped after p + # ower-up. Controller starts up in Self-refresh Mode - 10 - SDRAM Intializ + # ation routine is run after power-up. Note: The only 2'b00 is supported f + # or LPDDR4 in this version of the uMCTL2. # PSU_DDRC_INIT0_SKIP_DRAM_INIT 0x0 - # Cycles to wait after driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clocks. DDR2 typically requires - # 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDDR3 typically requires this to be pr - # grammed for a delay of 200 us. LPDDR4 typically requires this to be programmed for a delay of 2 us. For configurations with M - # MC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it up to next integer value. + # Cycles to wait after driving CKE high to start the SDRAM initialization + # sequence. Unit: 1024 clocks. DDR2 typically requires a 400 ns delay, req + # uiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDD + # R3 typically requires this to be programmed for a delay of 200 us. LPDDR + # 4 typically requires this to be programmed for a delay of 2 us. For conf + # igurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divi + # ded by 2, and round it up to next integer value. # PSU_DDRC_INIT0_POST_CKE_X1024 0x2 - # Cycles to wait after reset before driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clock cycles. DDR2 - # pecifications typically require this to be programmed for a delay of >= 200 us. LPDDR2/LPDDR3: tINIT1 of 100 ns (min) LPDDR4: - # tINIT3 of 2 ms (min) For configurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it u - # to next integer value. + # Cycles to wait after reset before driving CKE high to start the SDRAM in + # itialization sequence. Unit: 1024 clock cycles. DDR2 specifications typi + # cally require this to be programmed for a delay of >= 200 us. LPDDR2/LPD + # DR3: tINIT1 of 100 ns (min) LPDDR4: tINIT3 of 2 ms (min) For configurati + # ons with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by + # 2, and round it up to next integer value. # PSU_DDRC_INIT0_PRE_CKE_X1024 0x106 # SDRAM Initialization Register 0 @@ -1655,16 +1799,20 @@ set psu_ddr_init_data { mask_write 0XFD0700D0 0xC3FF0FFF 0x00020106 # Register : INIT1 @ 0XFD0700D4

      - # Number of cycles to assert SDRAM reset signal during init sequence. This is only present for designs supporting DDR3, DDR4 or - # LPDDR4 devices. For use with a DDR PHY, this should be set to a minimum of 1 + # Number of cycles to assert SDRAM reset signal during init sequence. This + # is only present for designs supporting DDR3, DDR4 or LPDDR4 devices. Fo + # r use with a DDR PHY, this should be set to a minimum of 1 # PSU_DDRC_INIT1_DRAM_RSTN_X1024 0x2 - # Cycles to wait after completing the SDRAM initialization sequence before starting the dynamic scheduler. Unit: Counts of a gl - # bal timer that pulses every 32 clock cycles. There is no known specific requirement for this; it may be set to zero. + # Cycles to wait after completing the SDRAM initialization sequence before + # starting the dynamic scheduler. Unit: Counts of a global timer that pul + # ses every 32 clock cycles. There is no known specific requirement for th + # is; it may be set to zero. # PSU_DDRC_INIT1_FINAL_WAIT_X32 0x0 - # Wait period before driving the OCD complete command to SDRAM. Unit: Counts of a global timer that pulses every 32 clock cycle - # . There is no known specific requirement for this; it may be set to zero. + # Wait period before driving the OCD complete command to SDRAM. Unit: Coun + # ts of a global timer that pulses every 32 clock cycles. There is no know + # n specific requirement for this; it may be set to zero. # PSU_DDRC_INIT1_PRE_OCD_X32 0x0 # SDRAM Initialization Register 1 @@ -1672,11 +1820,13 @@ set psu_ddr_init_data { mask_write 0XFD0700D4 0x01FF7F0F 0x00020000 # Register : INIT2 @ 0XFD0700D8

      - # Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Unit: 32 clock cycles. + # Idle time after the reset command, tINIT4. Present only in designs confi + # gured to support LPDDR2. Unit: 32 clock cycles. # PSU_DDRC_INIT2_IDLE_AFTER_RESET_X32 0x23 - # Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2/LPDDR3. Unit: 1 clock cyc - # e. LPDDR2/LPDDR3 typically requires 5 x tCK delay. + # Time to wait after the first CKE high, tINIT2. Present only in designs c + # onfigured to support LPDDR2/LPDDR3. Unit: 1 clock cycle. LPDDR2/LPDDR3 t + # ypically requires 5 x tCK delay. # PSU_DDRC_INIT2_MIN_STABLE_CLOCK_X1 0x5 # SDRAM Initialization Register 2 @@ -1684,28 +1834,33 @@ set psu_ddr_init_data { mask_write 0XFD0700D8 0x0000FF0F 0x00002305 # Register : INIT3 @ 0XFD0700DC

      - # DDR2: Value to write to MR register. Bit 8 is for DLL and the setting here is ignored. The uMCTL2 sets this bit appropriately - # DDR3/DDR4: Value loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LPDDR3/LPDDR4 - Value to write to MR1 - # register - # PSU_DDRC_INIT3_MR 0x930 + # DDR2: Value to write to MR register. Bit 8 is for DLL and the setting he + # re is ignored. The uMCTL2 sets this bit appropriately. DDR3/DDR4: Value + # loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LP + # DDR3/LPDDR4 - Value to write to MR1 register + # PSU_DDRC_INIT3_MR 0x730 - # DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setting in this register is ignored. The uMCTL2 sets those - # bits appropriately. DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evaluation mode training is enabled, thi - # bit is set appropriately by the uMCTL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/LPDDR3/LPDDR4 - V - # lue to write to MR2 register + # DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setti + # ng in this register is ignored. The uMCTL2 sets those bits appropriately + # . DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evalu + # ation mode training is enabled, this bit is set appropriately by the uMC + # TL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/ + # LPDDR3/LPDDR4 - Value to write to MR2 register # PSU_DDRC_INIT3_EMR 0x301 # SDRAM Initialization Register 3 - #(OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x09300301U) */ - mask_write 0XFD0700DC 0xFFFFFFFF 0x09300301 + #(OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x07300301U) */ + mask_write 0XFD0700DC 0xFFFFFFFF 0x07300301 # Register : INIT4 @ 0XFD0700E0

      - # DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 - # egister mDDR: Unused + # DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 + # register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 register mDDR: Unus + # ed # PSU_DDRC_INIT4_EMR2 0x20 - # DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to - # rite to MR13 register + # DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 + # register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to write to MR13 regis + # ter # PSU_DDRC_INIT4_EMR3 0x200 # SDRAM Initialization Register 4 @@ -1713,12 +1868,15 @@ set psu_ddr_init_data { mask_write 0XFD0700E0 0xFFFFFFFF 0x00200200 # Register : INIT5 @ 0XFD0700E4

      - # ZQ initial calibration, tZQINIT. Present only in designs configured to support DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock - # ycles. DDR3 typically requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requires 1 us. + # ZQ initial calibration, tZQINIT. Present only in designs configured to s + # upport DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock cycles. DDR3 typica + # lly requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requir + # es 1 us. # PSU_DDRC_INIT5_DEV_ZQINIT_X32 0x21 - # Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2/LPDDR3. LPDDR2/LPDD - # 3 typically requires 10 us. + # Maximum duration of the auto initialization, tINIT5. Present only in des + # igns configured to support LPDDR2/LPDDR3. LPDDR2/LPDDR3 typically requir + # es 10 us. # PSU_DDRC_INIT5_MAX_AUTO_INIT_X1024 0x4 # SDRAM Initialization Register 5 @@ -1726,10 +1884,12 @@ set psu_ddr_init_data { mask_write 0XFD0700E4 0x00FF03FF 0x00210004 # Register : INIT6 @ 0XFD0700E8

      - # DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs only. + # DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs + # only. # PSU_DDRC_INIT6_MR4 0x0 - # DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs only. + # DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs + # only. # PSU_DDRC_INIT6_MR5 0x6c0 # SDRAM Initialization Register 6 @@ -1737,7 +1897,8 @@ set psu_ddr_init_data { mask_write 0XFD0700E8 0xFFFFFFFF 0x000006C0 # Register : INIT7 @ 0XFD0700EC

      - # DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs only. + # DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs + # only. # PSU_DDRC_INIT7_MR6 0x819 # SDRAM Initialization Register 7 @@ -1745,50 +1906,73 @@ set psu_ddr_init_data { mask_write 0XFD0700EC 0xFFFF0000 0x08190000 # Register : DIMMCTL @ 0XFD0700F0

      - # Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enab - # ed. This will be required for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapped. - 0 - BG0 and BG1 are swapped i - # address mirroring is enabled. + # Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and + # BG1 are NOT swapped even if Address Mirroring is enabled. This will be r + # equired for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapp + # ed. - 0 - BG0 and BG1 are swapped if address mirroring is enabled. # PSU_DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING 0x0 - # Enable for BG1 bit of MRS command. BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - # be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output - # nversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit. Note: This has no - # effect on the address of any other memory accesses, or of software-driven mode register accesses. If address mirroring is ena - # led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - Enabled - 0 - Disabled + # Enable for BG1 bit of MRS command. BG1 bit of the mode register address + # is specified as RFU (Reserved for Future Use) and must be programmed to + # 0 during MRS. In case where DRAMs which do not have BG1 are attached and + # both the CA parity and the Output Inversion are enabled, this must be s + # et to 0, so that the calculation of CA parity will not include BG1 bit. + # Note: This has no effect on the address of any other memory accesses, or + # of software-driven mode register accesses. If address mirroring is enab + # led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - En + # abled - 0 - Disabled # PSU_DDRC_DIMMCTL_MRS_BG1_EN 0x1 - # Enable for A17 bit of MRS command. A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - # be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, - # his must be set to 0, so that the calculation of CA parity will not include A17 bit. Note: This has no effect on the address - # f any other memory accesses, or of software-driven mode register accesses. - 1 - Enabled - 0 - Disabled + # Enable for A17 bit of MRS command. A17 bit of the mode register address + # is specified as RFU (Reserved for Future Use) and must be programmed to + # 0 during MRS. In case where DRAMs which do not have A17 are attached and + # the Output Inversion are enabled, this must be set to 0, so that the ca + # lculation of CA parity will not include A17 bit. Note: This has no effec + # t on the address of any other memory accesses, or of software-driven mod + # e register accesses. - 1 - Enabled - 0 - Disabled # PSU_DDRC_DIMMCTL_MRS_A17_EN 0x0 - # Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIMM implements the Output Inversion feature by default, - # which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, - # A0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the uMCTL2 during the automatic initi - # lization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. - # or B-side mode register accesses, these bits are inverted within the uMCTL2 to compensate for this RDIMM inversion. Note: Thi - # has no effect on the address of any other memory accesses, or of software-driven mode register accesses. - 1 - Implement out - # ut inversion for B-side DRAMs. - 0 - Do not implement output inversion for B-side DRAMs. + # Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIM + # M implements the Output Inversion feature by default, which means that t + # he following address, bank address and bank group bits of B-side DRAMs a + # re inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit en + # sures that, for mode register accesses generated by the uMCTL2 during th + # e automatic initialization routine and enabling of a particular DDR4 fea + # ture, separate A-side and B-side mode register accesses are generated. F + # or B-side mode register accesses, these bits are inverted within the uMC + # TL2 to compensate for this RDIMM inversion. Note: This has no effect on + # the address of any other memory accesses, or of software-driven mode reg + # ister accesses. - 1 - Implement output inversion for B-side DRAMs. - 0 - + # Do not implement output inversion for B-side DRAMs. # PSU_DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN 0x0 - # Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations). Some UDIMMs and DD - # 4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits - # re swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures t - # at, for mode register accesses during the automatic initialization routine, these bits are swapped within the uMCTL2 to compe - # sate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they ar - # swapped during the automatic MRS access to enable/disable of a particular DDR4 feature. Note: This has no effect on the addr - # ss of any other memory accesses, or of software-driven mode register accesses. This is not supported for mDDR, LPDDR2, LPDDR3 - # or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, - # hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ranks, implement address mirroring for MRS commands to d - # ring initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring) - 0 - Do - # not implement address mirroring + # Address Mirroring Enable (for multi-rank UDIMM implementations and multi + # -rank DDR4 RDIMM implementations). Some UDIMMs and DDR4 RDIMMs implement + # address mirroring for odd ranks, which means that the following address + # , bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, + # A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting t + # his bit ensures that, for mode register accesses during the automatic in + # itialization routine, these bits are swapped within the uMCTL2 to compen + # sate for this UDIMM/RDIMM swapping. In addition to the automatic initial + # ization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during th + # e automatic MRS access to enable/disable of a particular DDR4 feature. N + # ote: This has no effect on the address of any other memory accesses, or + # of software-driven mode register accesses. This is not supported for mDD + # R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 + # output of MRS for the odd ranks is same as BG0 because BG1 is invalid, + # hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ran + # ks, implement address mirroring for MRS commands to during initializatio + # n and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM imp + # lements address mirroring) - 0 - Do not implement address mirroring # PSU_DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN 0x0 - # Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only). This is not supported for mD - # R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of software driven MR commands (via M - # CTRL0/MRCTRL1), where software is responsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Send MRS commands t - # each ranks seperately - 1 - (non-DDR4) Send all commands to even and odd ranks seperately - 0 - Do not stagger accesses + # Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIM + # M implementations only). This is not supported for mDDR, LPDDR2, LPDDR3 + # or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of + # software driven MR commands (via MRCTRL0/MRCTRL1), where software is re + # sponsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Se + # nd MRS commands to each ranks seperately - 1 - (non-DDR4) Send all comma + # nds to even and odd ranks seperately - 0 - Do not stagger accesses # PSU_DDRC_DIMMCTL_DIMM_STAGGER_CS_EN 0x0 # DIMM Control Register @@ -1796,38 +1980,56 @@ set psu_ddr_init_data { mask_write 0XFD0700F0 0x0000003F 0x00000010 # Register : RANKCTL @ 0XFD0700F4

      - # Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - # e writes to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should c - # nsider both PHY requirement and ODT requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for value of tphy_wrcs - # ap) If CRC feature is enabled, should be increased by 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increa - # ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be increased by 1. - ODT requirement: The value programmed - # n this register takes care of the ODT switch off timing requirement when switching ranks during writes. For LPDDR4, the requi - # ement is ODTLoff - ODTLon - BL/2 + 1 For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY requirement - # or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and round it u - # to the next integer. + # Only present for multi-rank configurations. Indicates the number of cloc + # ks of gap in data responses when performing consecutive writes to differ + # ent ranks. This is used to switch the delays in the PHY to match the ran + # k requirements. This value should consider both PHY requirement and ODT + # requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for v + # alue of tphy_wrcsgap) If CRC feature is enabled, should be increased by + # 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increas + # ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be inc + # reased by 1. - ODT requirement: The value programmed in this register ta + # kes care of the ODT switch off timing requirement when switching ranks d + # uring writes. For LPDDR4, the requirement is ODTLoff - ODTLon - BL/2 + 1 + # For configurations with MEMC_FREQ_RATIO=1, program this to the larger o + # f PHY requirement or ODT requirement. For configurations with MEMC_FREQ_ + # RATIO=2, program this to the larger value divided by two and round it up + # to the next integer. # PSU_DDRC_RANKCTL_DIFF_RANK_WR_GAP 0x6 - # Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - # e reads to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should co - # sider both PHY requirement and ODT requirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for value of tphy_rdcsg - # p) If read preamble is set to 2tCK(DDR4/LPDDR4 only), should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 onl - # ), should be increased by 1. - ODT requirement: The value programmed in this register takes care of the ODT switch off timing - # requirement when switching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY r - # quirement or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and - # ound it up to the next integer. + # Only present for multi-rank configurations. Indicates the number of cloc + # ks of gap in data responses when performing consecutive reads to differe + # nt ranks. This is used to switch the delays in the PHY to match the rank + # requirements. This value should consider both PHY requirement and ODT r + # equirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for va + # lue of tphy_rdcsgap) If read preamble is set to 2tCK(DDR4/LPDDR4 only), + # should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 only + # ), should be increased by 1. - ODT requirement: The value programmed in + # this register takes care of the ODT switch off timing requirement when s + # witching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, + # program this to the larger of PHY requirement or ODT requirement. For co + # nfigurations with MEMC_FREQ_RATIO=2, program this to the larger value di + # vided by two and round it up to the next integer. # PSU_DDRC_RANKCTL_DIFF_RANK_RD_GAP 0x6 - # Only present for multi-rank configurations. Background: Reads to the same rank can be performed back-to-back. Reads to differ - # nt ranks require additional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is to avoid possible data bus content - # on as well as to give PHY enough time to switch the delay when changing ranks. The uMCTL2 arbitrates for bus access on a cycl - # -by-cycle basis; therefore after a read is scheduled, there are few clock cycles (determined by the value on RANKCTL.diff_ran - # _rd_gap register) in which only reads from the same rank are eligible to be scheduled. This prevents reads from other ranks f - # om having fair access to the data bus. This parameter represents the maximum number of reads that can be scheduled consecutiv - # ly to the same rank. After this number is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by the scheduler to - # llow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fair - # ess. This feature can be DISABLED by setting this register to 0. When set to 0, the Controller will stay on the same rank as - # ong as commands are available for it. Minimum programmable value is 0 (feature disabled) and maximum programmable value is 0x - # . FOR PERFORMANCE ONLY. + # Only present for multi-rank configurations. Background: Reads to the sam + # e rank can be performed back-to-back. Reads to different ranks require a + # dditional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is + # to avoid possible data bus contention as well as to give PHY enough tim + # e to switch the delay when changing ranks. The uMCTL2 arbitrates for bus + # access on a cycle-by-cycle basis; therefore after a read is scheduled, + # there are few clock cycles (determined by the value on RANKCTL.diff_rank + # _rd_gap register) in which only reads from the same rank are eligible to + # be scheduled. This prevents reads from other ranks from having fair acc + # ess to the data bus. This parameter represents the maximum number of rea + # ds that can be scheduled consecutively to the same rank. After this numb + # er is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by + # the scheduler to allow all ranks a fair opportunity to be scheduled. Hig + # her numbers increase bandwidth utilization, lower numbers increase fairn + # ess. This feature can be DISABLED by setting this register to 0. When se + # t to 0, the Controller will stay on the same rank as long as commands ar + # e available for it. Minimum programmable value is 0 (feature disabled) a + # nd maximum programmable value is 0xF. FOR PERFORMANCE ONLY. # PSU_DDRC_RANKCTL_MAX_RANK_RD 0xf # Rank Control Register @@ -1835,110 +2037,155 @@ set psu_ddr_init_data { mask_write 0XFD0700F4 0x00000FFF 0x0000066F # Register : DRAMTMG0 @ 0XFD070100

      - # Minimum time between write and precharge to same bank. Unit: Clocks Specifications: WL + BL/2 + tWR = approximately 8 cycles - # 15 ns = 14 clocks @400MHz and less for lower frequencies where: - WL = write latency - BL = burst length. This must match th - # value programmed in the BL bit of the mode register to the SDRAM. BST (burst terminate) is not supported at present. - tWR = - # Write recovery time. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this - # arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For configurations - # with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer value. + # Minimum time between write and precharge to same bank. Unit: Clocks Spec + # ifications: WL + BL/2 + tWR = approximately 8 cycles + 15 ns = 14 clocks + # @400MHz and less for lower frequencies where: - WL = write latency - BL + # = burst length. This must match the value programmed in the BL bit of t + # he mode register to the SDRAM. BST (burst terminate) is not supported at + # present. - tWR = Write recovery time. This comes directly from the SDRA + # M specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this p + # arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the + # above value by 2. No rounding up. For configurations with MEMC_FREQ_RAT + # IO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it u + # p to the next integer value. # PSU_DDRC_DRAMTMG0_WR2PRE 0x11 - # tFAW Valid only when 8 or more banks(or banks x bank groups) are present. In 8-bank design, at most 4 banks must be activated - # in a rolling window of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program this to (tFAW/2) and round up to next - # nteger value. In a 4-bank design, set this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. Unit: Clocks - # PSU_DDRC_DRAMTMG0_T_FAW 0xc + # tFAW Valid only when 8 or more banks(or banks x bank groups) are present + # . In 8-bank design, at most 4 banks must be activated in a rolling windo + # w of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program thi + # s to (tFAW/2) and round up to next integer value. In a 4-bank design, se + # t this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. + # Unit: Clocks + # PSU_DDRC_DRAMTMG0_T_FAW 0x10 - # tRAS(max): Maximum time between activate and precharge to same bank. This is the maximum time that a page can be kept open Mi - # imum value of this register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO=2, program this to (tRAS(max)-1)/2 - # No rounding up. Unit: Multiples of 1024 clocks. + # tRAS(max): Maximum time between activate and precharge to same bank. Thi + # s is the maximum time that a page can be kept open Minimum value of this + # register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO + # =2, program this to (tRAS(max)-1)/2. No rounding up. Unit: Multiples of + # 1024 clocks. # PSU_DDRC_DRAMTMG0_T_RAS_MAX 0x24 - # tRAS(min): Minimum time between activate and precharge to the same bank. For configurations with MEMC_FREQ_RATIO=2, 1T mode, - # rogram this to tRAS(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, program this t - # (tRAS(min)/2) and round it up to the next integer value. Unit: Clocks + # tRAS(min): Minimum time between activate and precharge to the same bank. + # For configurations with MEMC_FREQ_RATIO=2, 1T mode, program this to tRA + # S(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T + # mode or LPDDR4 mode, program this to (tRAS(min)/2) and round it up to th + # e next integer value. Unit: Clocks # PSU_DDRC_DRAMTMG0_T_RAS_MIN 0x12 # SDRAM Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x110C2412U) */ - mask_write 0XFD070100 0x7F3F7F3F 0x110C2412 + #(OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x11102412U) */ + mask_write 0XFD070100 0x7F3F7F3F 0x11102412 # Register : DRAMTMG1 @ 0XFD070104

      - # tXP: Minimum time after power-down exit to any operation. For DDR3, this should be programmed to tXPDLL if slow powerdown exi - # is selected in MR0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For configurations with MEMC_FREQ_RATIO=2, - # rogram this to (tXP/2) and round it up to the next integer value. Units: Clocks + # tXP: Minimum time after power-down exit to any operation. For DDR3, this + # should be programmed to tXPDLL if slow powerdown exit is selected in MR + # 0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For conf + # igurations with MEMC_FREQ_RATIO=2, program this to (tXP/2) and round it + # up to the next integer value. Units: Clocks # PSU_DDRC_DRAMTMG1_T_XP 0x4 - # tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL/2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - D - # R4: Max of following two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 - LPDDR2: Depends on if it's LPDDR2 - # S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + tRTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) - 4 - LPDDR4: BL - # 2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For conf - # gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer val - # e. Unit: Clocks. + # tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL + # /2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - DDR4: Max of followi + # ng two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 + # - LPDDR2: Depends on if it's LPDDR2-S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + t + # RTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) + # - 4 - LPDDR4: BL/2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_ + # RATIO=2, 1T mode, divide the above value by 2. No rounding up. For confi + # gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the abo + # ve value by 2 and round it up to the next integer value. Unit: Clocks. # PSU_DDRC_DRAMTMG1_RD2PRE 0x4 - # tRC: Minimum time between activates to same bank. For configurations with MEMC_FREQ_RATIO=2, program this to (tRC/2) and roun - # up to next integer value. Unit: Clocks. - # PSU_DDRC_DRAMTMG1_T_RC 0x19 + # tRC: Minimum time between activates to same bank. For configurations wit + # h MEMC_FREQ_RATIO=2, program this to (tRC/2) and round up to next intege + # r value. Unit: Clocks. + # PSU_DDRC_DRAMTMG1_T_RC 0x1a # SDRAM Timing Register 1 - #(OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x00040419U) */ - mask_write 0XFD070104 0x001F1F7F 0x00040419 + #(OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x0004041AU) */ + mask_write 0XFD070104 0x001F1F7F 0x0004041A # Register : DRAMTMG2 @ 0XFD070108

      - # Set to WL Time from write command to write data on SDRAM interface. This must be set to WL. For mDDR, it should normally be s - # t to 1. Note that, depending on the PHY, if using RDIMM, it may be necessary to use a value of WL + 1 to compensate for the e - # tra cycle of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above - # equation by 2, and round it up to next integer. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAININ - # is set), as the DFI read and write latencies defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks + # Set to WL Time from write command to write data on SDRAM interface. This + # must be set to WL. For mDDR, it should normally be set to 1. Note that, + # depending on the PHY, if using RDIMM, it may be necessary to use a valu + # e of WL + 1 to compensate for the extra cycle of latency through the RDI + # MM For configurations with MEMC_FREQ_RATIO=2, divide the value calculate + # d using the above equation by 2, and round it up to next integer. This r + # egister field is not required for DDR2 and DDR3 (except if MEMC_TRAINING + # is set), as the DFI read and write latencies defined in DFITMG0 and DFI + # TMG1 are sufficient for those protocols Unit: clocks # PSU_DDRC_DRAMTMG2_WRITE_LATENCY 0x7 - # Set to RL Time from read command to read data on SDRAM interface. This must be set to RL. Note that, depending on the PHY, if - # using RDIMM, it mat be necessary to use a value of RL + 1 to compensate for the extra cycle of latency through the RDIMM For - # onfigurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next inte - # er. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAINING is set), as the DFI read and write latenci - # s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks + # Set to RL Time from read command to read data on SDRAM interface. This m + # ust be set to RL. Note that, depending on the PHY, if using RDIMM, it ma + # t be necessary to use a value of RL + 1 to compensate for the extra cycl + # e of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2 + # , divide the value calculated using the above equation by 2, and round i + # t up to next integer. This register field is not required for DDR2 and D + # DR3 (except if MEMC_TRAINING is set), as the DFI read and write latencie + # s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit + # : clocks # PSU_DDRC_DRAMTMG2_READ_LATENCY 0x8 - # DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL LPDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL - # PDDR4(DQ ODT is Disabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL LPDDR4(DQ ODT is Enabled) : RL + B - # /2 + RU(tDQSCKmax/tCK) + RD_POSTAMBLE - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write command. Include - # time for bus turnaround and all per-bank, per-rank, and global constraints. Unit: Clocks. Where: - WL = write latency - BL = - # urst length. This must match the value programmed in the BL bit of the mode register to the SDRAM - RL = read latency = CAS l - # tency - WR_PREAMBLE = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = read postamble. This is unique to L - # DDR4. For LPDDR2/LPDDR3/LPDDR4, if derating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should be used. For conf - # gurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. + # DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL L + # PDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL LPDDR4(DQ ODT is Di + # sabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL + # LPDDR4(DQ ODT is Enabled) : RL + BL/2 + RU(tDQSCKmax/tCK) + RD_POSTAMBL + # E - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write + # command. Include time for bus turnaround and all per-bank, per-rank, an + # d global constraints. Unit: Clocks. Where: - WL = write latency - BL = b + # urst length. This must match the value programmed in the BL bit of the m + # ode register to the SDRAM - RL = read latency = CAS latency - WR_PREAMBL + # E = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = + # read postamble. This is unique to LPDDR4. For LPDDR2/LPDDR3/LPDDR4, if d + # erating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should + # be used. For configurations with MEMC_FREQ_RATIO=2, divide the value cal + # culated using the above equation by 2, and round it up to next integer. # PSU_DDRC_DRAMTMG2_RD2WR 0x6 - # DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimum time from write command to read command for same ba - # k group. In others, minimum time from write command to read command. Includes time for bus turnaround, recovery times, and al - # per-bank, per-rank, and global constraints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burs - # length. This must match the value programmed in the BL bit of the mode register to the SDRAM - tWTR_L = internal write to re - # d command delay for same bank group. This comes directly from the SDRAM specification. - tWTR = internal write to read comman - # delay. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 operation. For configu - # ations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. - # PSU_DDRC_DRAMTMG2_WR2RD 0xe + # DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimu + # m time from write command to read command for same bank group. In others + # , minimum time from write command to read command. Includes time for bus + # turnaround, recovery times, and all per-bank, per-rank, and global cons + # traints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity la + # tency - BL = burst length. This must match the value programmed in the B + # L bit of the mode register to the SDRAM - tWTR_L = internal write to rea + # d command delay for same bank group. This comes directly from the SDRAM + # specification. - tWTR = internal write to read command delay. This comes + # directly from the SDRAM specification. Add one extra cycle for LPDDR2/L + # PDDR3/LPDDR4 operation. For configurations with MEMC_FREQ_RATIO=2, divid + # e the value calculated using the above equation by 2, and round it up to + # next integer. + # PSU_DDRC_DRAMTMG2_WR2RD 0xd # SDRAM Timing Register 2 - #(OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060EU) */ - mask_write 0XFD070108 0x3F3F3F3F 0x0708060E + #(OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060DU) */ + mask_write 0XFD070108 0x3F3F3F3F 0x0708060D # Register : DRAMTMG3 @ 0XFD07010C

      - # Time to wait after a mode register write or read (MRW or MRR). Present only in designs configured to support LPDDR2, LPDDR3 o - # LPDDR4. LPDDR2 typically requires value of 5. LPDDR3 typically requires value of 10. LPDDR4: Set this to the larger of tMRW - # nd tMRWCKEL. For LPDDR2, this register is used for the time from a MRW/MRR to all other commands. For LDPDR3, this register i - # used for the time from a MRW/MRR to a MRW/MRR. + # Time to wait after a mode register write or read (MRW or MRR). Present o + # nly in designs configured to support LPDDR2, LPDDR3 or LPDDR4. LPDDR2 ty + # pically requires value of 5. LPDDR3 typically requires value of 10. LPDD + # R4: Set this to the larger of tMRW and tMRWCKEL. For LPDDR2, this regist + # er is used for the time from a MRW/MRR to all other commands. For LDPDR3 + # , this register is used for the time from a MRW/MRR to a MRW/MRR. # PSU_DDRC_DRAMTMG3_T_MRW 0x5 - # tMRD: Cycles to wait after a mode register write or read. Depending on the connected SDRAM, tMRD represents: DDR2/mDDR: Time - # rom MRS to any command DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Time from MRS to non-MRS command For c - # nfigurations with MEMC_FREQ_RATIO=2, program this to (tMRD/2) and round it up to the next integer value. If C/A parity for DD - # 4 is used, set to tMRD_PAR(tMOD+PL) instead. + # tMRD: Cycles to wait after a mode register write or read. Depending on t + # he connected SDRAM, tMRD represents: DDR2/mDDR: Time from MRS to any com + # mand DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Tim + # e from MRS to non-MRS command For configurations with MEMC_FREQ_RATIO=2, + # program this to (tMRD/2) and round it up to the next integer value. If + # C/A parity for DDR4 is used, set to tMRD_PAR(tMOD+PL) instead. # PSU_DDRC_DRAMTMG3_T_MRD 0x4 - # tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode command and following non-load mode command. If C/A pari - # y for DDR4 is used, set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or tMOD/2 (rounded up to next integer - # if MEMC_FREQ_RATIO=2. Note that if using RDIMM, depending on the PHY, it may be necessary to use a value of tMOD + 1 or (tMO - # + 1)/2 to compensate for the extra cycle of latency applied to mode register writes by the RDIMM chip. + # tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode com + # mand and following non-load mode command. If C/A parity for DDR4 is used + # , set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or + # tMOD/2 (rounded up to next integer) if MEMC_FREQ_RATIO=2. Note that if + # using RDIMM, depending on the PHY, it may be necessary to use a value of + # tMOD + 1 or (tMOD + 1)/2 to compensate for the extra cycle of latency a + # pplied to mode register writes by the RDIMM chip. # PSU_DDRC_DRAMTMG3_T_MOD 0xc # SDRAM Timing Register 3 @@ -1946,24 +2193,32 @@ set psu_ddr_init_data { mask_write 0XFD07010C 0x3FF3F3FF 0x0050400C # Register : DRAMTMG4 @ 0XFD070110

      - # tRCD - tAL: Minimum time from activate to read or write command to same bank. For configurations with MEMC_FREQ_RATIO=2, prog - # am this to ((tRCD - tAL)/2) and round it up to the next integer value. Minimum value allowed for this register is 1, which im - # lies minimum (tRCD - tAL) value to be 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. + # tRCD - tAL: Minimum time from activate to read or write command to same + # bank. For configurations with MEMC_FREQ_RATIO=2, program this to ((tRCD + # - tAL)/2) and round it up to the next integer value. Minimum value allow + # ed for this register is 1, which implies minimum (tRCD - tAL) value to b + # e 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. # PSU_DDRC_DRAMTMG4_T_RCD 0x8 - # DDR4: tCCD_L: This is the minimum time between two reads or two writes for same bank group. Others: tCCD: This is the minimum - # time between two reads or two writes. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_L/2 or tCCD/2) and rou - # d it up to the next integer value. Unit: clocks. + # DDR4: tCCD_L: This is the minimum time between two reads or two writes f + # or same bank group. Others: tCCD: This is the minimum time between two r + # eads or two writes. For configurations with MEMC_FREQ_RATIO=2, program t + # his to (tCCD_L/2 or tCCD/2) and round it up to the next integer value. U + # nit: clocks. # PSU_DDRC_DRAMTMG4_T_CCD 0x3 - # DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' for same bank group. Others: tRRD: Minimum time betwee - # activates from bank 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program this to (tRRD_L/2 or tRRD/2) and round - # it up to the next integer value. Unit: Clocks. + # DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' f + # or same bank group. Others: tRRD: Minimum time between activates from ba + # nk 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program thi + # s to (tRRD_L/2 or tRRD/2) and round it up to the next integer value. Uni + # t: Clocks. # PSU_DDRC_DRAMTMG4_T_RRD 0x3 - # tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ_RATIO=1 configurations, t_rp should be set to RoundU - # (tRP/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(tRP/tCK)/2) + 1. For MEMC_FREQ_RATIO - # 2 configurations in LPDDR4, t_rp should be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. + # tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ + # _RATIO=1 configurations, t_rp should be set to RoundUp(tRP/tCK). For MEM + # C_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(t + # RP/tCK)/2) + 1. For MEMC_FREQ_RATIO=2 configurations in LPDDR4, t_rp sho + # uld be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. # PSU_DDRC_DRAMTMG4_T_RP 0x9 # SDRAM Timing Register 4 @@ -1971,28 +2226,36 @@ set psu_ddr_init_data { mask_write 0XFD070110 0x1F0F0F1F 0x08030309 # Register : DRAMTMG5 @ 0XFD070114

      - # This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stab - # e time before SRX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEH - DDR2: 1 - DDR3: tCKSRX - DDR4: - # tCKSRX For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next in - # eger. + # This is the time before Self Refresh Exit that CK is maintained as a val + # id clock before issuing SRX. Specifies the clock stable time before SRX. + # Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCK + # EH - DDR2: 1 - DDR3: tCKSRX - DDR4: tCKSRX For configurations with MEMC_ + # FREQ_RATIO=2, program this to recommended value divided by two and round + # it up to next integer. # PSU_DDRC_DRAMTMG5_T_CKSRX 0x6 - # This is the time after Self Refresh Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay afte - # SRE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 - DDR3: max (10 ns, 5 tCK) - DDR4: - # ax (10 ns, 5 tCK) For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up - # to next integer. + # This is the time after Self Refresh Down Entry that CK is maintained as + # a valid clock. Specifies the clock disable delay after SRE. Recommended + # settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 + # - DDR3: max (10 ns, 5 tCK) - DDR4: max (10 ns, 5 tCK) For configurations + # with MEMC_FREQ_RATIO=2, program this to recommended value divided by tw + # o and round it up to next integer. # PSU_DDRC_DRAMTMG5_T_CKSRE 0x6 - # Minimum CKE low width for Self refresh or Self refresh power down entry to exit timing in memory clock cycles. Recommended se - # tings: - mDDR: tRFC - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: tCKE - DDR3: tCKE + 1 - DDR4: tCKE - # 1 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next intege - # . + # Minimum CKE low width for Self refresh or Self refresh power down entry + # to exit timing in memory clock cycles. Recommended settings: - mDDR: tRF + # C - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: + # tCKE - DDR3: tCKE + 1 - DDR4: tCKE + 1 For configurations with MEMC_FREQ + # _RATIO=2, program this to recommended value divided by two and round it + # up to next integer. # PSU_DDRC_DRAMTMG5_T_CKESR 0x4 - # Minimum number of cycles of CKE HIGH/LOW during power-down and self refresh. - LPDDR2/LPDDR3 mode: Set this to the larger of - # CKE or tCKESR - LPDDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/non-LPDDR3/non-LPDDR4 designs: Set - # his to tCKE value. For configurations with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and round it up to th - # next integer value. Unit: Clocks. + # Minimum number of cycles of CKE HIGH/LOW during power-down and self refr + # esh. - LPDDR2/LPDDR3 mode: Set this to the larger of tCKE or tCKESR - LP + # DDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/ + # non-LPDDR3/non-LPDDR4 designs: Set this to tCKE value. For configuration + # s with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and + # round it up to the next integer value. Unit: Clocks. # PSU_DDRC_DRAMTMG5_T_CKE 0x3 # SDRAM Timing Register 5 @@ -2000,22 +2263,29 @@ set psu_ddr_init_data { mask_write 0XFD070114 0x0F0F3F1F 0x06060403 # Register : DRAMTMG6 @ 0XFD070118

      - # This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after - # PDE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, program this to recom - # ended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3 - # devices. + # This is the time after Deep Power Down Entry that CK is maintained as a + # valid clock. Specifies the clock disable delay after DPDE. Recommended s + # ettings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_ + # FREQ_RATIO=2, program this to recommended value divided by two and round + # it up to next integer. This is only present for designs supporting mDDR + # or LPDDR2/LPDDR3 devices. # PSU_DDRC_DRAMTMG6_T_CKDPDE 0x1 - # This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock - # table time before DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, pr - # gram this to recommended value divided by two and round it up to next integer. This is only present for designs supporting mD - # R or LPDDR2 devices. + # This is the time before Deep Power Down Exit that CK is maintained as a + # valid clock before issuing DPDX. Specifies the clock stable time before + # DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For config + # urations with MEMC_FREQ_RATIO=2, program this to recommended value divid + # ed by two and round it up to next integer. This is only present for desi + # gns supporting mDDR or LPDDR2 devices. # PSU_DDRC_DRAMTMG6_T_CKDPDX 0x1 - # This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing Clock Stop Exit. Specifies the - # lock stable time before next command after Clock Stop Exit. Recommended settings: - mDDR: 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + - # 2 - LPDDR4: tXP + 2 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it - # p to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + # This is the time before Clock Stop Exit that CK is maintained as a valid + # clock before issuing Clock Stop Exit. Specifies the clock stable time b + # efore next command after Clock Stop Exit. Recommended settings: - mDDR: + # 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + 2 - LPDDR4: tXP + 2 For configuratio + # ns with MEMC_FREQ_RATIO=2, program this to recommended value divided by + # two and round it up to next integer. This is only present for designs su + # pporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_DRAMTMG6_T_CKCSX 0x4 # SDRAM Timing Register 6 @@ -2023,16 +2293,20 @@ set psu_ddr_init_data { mask_write 0XFD070118 0x0F0F000F 0x01010004 # Register : DRAMTMG7 @ 0XFD07011C

      - # This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. - # ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configurations with MEMC_FREQ_RATIO=2, program t - # is to recommended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or L - # DDR2/LPDDR3/LPDDR4 devices. + # This is the time after Power Down Entry that CK is maintained as a valid + # clock. Specifies the clock disable delay after PDE. Recommended setting + # s: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configuration + # s with MEMC_FREQ_RATIO=2, program this to recommended value divided by t + # wo and round it up to next integer. This is only present for designs sup + # porting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_DRAMTMG7_T_CKPDE 0x6 - # This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable - # time before PDX. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For configurations with MEMC_FREQ_RATIO= - # , program this to recommended value divided by two and round it up to next integer. This is only present for designs supporti - # g mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + # This is the time before Power Down Exit that CK is maintained as a valid + # clock before issuing PDX. Specifies the clock stable time before PDX. R + # ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For c + # onfigurations with MEMC_FREQ_RATIO=2, program this to recommended value + # divided by two and round it up to next integer. This is only present for + # designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_DRAMTMG7_T_CKPDX 0x6 # SDRAM Timing Register 7 @@ -2040,50 +2314,64 @@ set psu_ddr_init_data { mask_write 0XFD07011C 0x00000F0F 0x00000606 # Register : DRAMTMG8 @ 0XFD070120

      - # tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and Geardown mode). For configurations with MEMC_FREQ_RAT - # O=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Thi - # is applicable to only ZQCL/ZQCS commands. Note: Ensure this is less than or equal to t_xs_x32. - # PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x4 + # tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and + # Geardown mode). For configurations with MEMC_FREQ_RATIO=2, program this + # to the above value divided by 2 and round up to next integer value. Unit + # : Multiples of 32 clocks. Note: This is applicable to only ZQCL/ZQCS com + # mands. Note: Ensure this is less than or equal to t_xs_x32. + # PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x3 - # tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in Self Refresh Abort. For configurations with MEMC_FREQ_ - # ATIO=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: - # nsure this is less than or equal to t_xs_x32. - # PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x4 + # tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in S + # elf Refresh Abort. For configurations with MEMC_FREQ_RATIO=2, program th + # is to the above value divided by 2 and round up to next integer value. U + # nit: Multiples of 32 clocks. Note: Ensure this is less than or equal to + # t_xs_x32. + # PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x3 - # tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - # bove value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - # DR4 SDRAMs. + # tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For config + # urations with MEMC_FREQ_RATIO=2, program this to the above value divided + # by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + # Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. # PSU_DDRC_DRAMTMG8_T_XS_DLL_X32 0xd - # tXS: Exit Self Refresh to commands not requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - # above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - # DDR4 SDRAMs. + # tXS: Exit Self Refresh to commands not requiring a locked DLL. For confi + # gurations with MEMC_FREQ_RATIO=2, program this to the above value divide + # d by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + # Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. # PSU_DDRC_DRAMTMG8_T_XS_X32 0x6 # SDRAM Timing Register 8 - #(OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x04040D06U) */ - mask_write 0XFD070120 0x7F7F7F7F 0x04040D06 + #(OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x03030D06U) */ + mask_write 0XFD070120 0x7F7F7F7F 0x03030D06 # Register : DRAMTMG9 @ 0XFD070124

      - # DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present only with MEMC_FREQ_RATIO=2 + # DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present o + # nly with MEMC_FREQ_RATIO=2 # PSU_DDRC_DRAMTMG9_DDR4_WR_PREAMBLE 0x0 - # tCCD_S: This is the minimum time between two reads or two writes for different bank group. For bank switching (from bank 'a' - # o bank 'b'), the minimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_S/2) and ro - # nd it up to the next integer value. Present only in designs configured to support DDR4. Unit: clocks. + # tCCD_S: This is the minimum time between two reads or two writes for dif + # ferent bank group. For bank switching (from bank 'a' to bank 'b'), the m + # inimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2 + # , program this to (tCCD_S/2) and round it up to the next integer value. + # Present only in designs configured to support DDR4. Unit: clocks. # PSU_DDRC_DRAMTMG9_T_CCD_S 0x2 - # tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for different bank group. For configurations with MEMC_FREQ_ - # ATIO=2, program this to (tRRD_S/2) and round it up to the next integer value. Present only in designs configured to support D - # R4. Unit: Clocks. + # tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for dif + # ferent bank group. For configurations with MEMC_FREQ_RATIO=2, program th + # is to (tRRD_S/2) and round it up to the next integer value. Present only + # in designs configured to support DDR4. Unit: Clocks. # PSU_DDRC_DRAMTMG9_T_RRD_S 0x2 - # CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command for different bank group. Includes time for bus turn - # round, recovery times, and all per-bank, per-rank, and global constraints. Present only in designs configured to support DDR4 - # Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burst length. This must match the value programm - # d in the BL bit of the mode register to the SDRAM - tWTR_S = internal write to read command delay for different bank group. T - # is comes directly from the SDRAM specification. For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using - # he above equation by 2, and round it up to next integer. + # CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command + # for different bank group. Includes time for bus turnaround, recovery ti + # mes, and all per-bank, per-rank, and global constraints. Present only in + # designs configured to support DDR4. Unit: Clocks. Where: - CWL = CAS wr + # ite latency - PL = Parity latency - BL = burst length. This must match t + # he value programmed in the BL bit of the mode register to the SDRAM - tW + # TR_S = internal write to read command delay for different bank group. Th + # is comes directly from the SDRAM specification. For configurations with + # MEMC_FREQ_RATIO=2, divide the value calculated using the above equation + # by 2, and round it up to next integer. # PSU_DDRC_DRAMTMG9_WR2RD_S 0xb # SDRAM Timing Register 9 @@ -2091,39 +2379,48 @@ set psu_ddr_init_data { mask_write 0XFD070124 0x40070F3F 0x0002020B # Register : DRAMTMG11 @ 0XFD07012C

      - # tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program - # this to (tXMPDLL/2) and round it up to the next integer value. Present only in designs configured to support DDR4. Unit: Mult - # ples of 32 clocks. - # PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x6f + # tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DL + # L. For configurations with MEMC_FREQ_RATIO=2, program this to (tXMPDLL/2 + # ) and round it up to the next integer value. Present only in designs con + # figured to support DDR4. Unit: Multiples of 32 clocks. + # PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x70 - # tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For configurations with MEMC_FREQ_RATIO=2, program this t - # RoundUp(tMPX_LH/2)+1. Present only in designs configured to support DDR4. Unit: clocks. + # tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For + # configurations with MEMC_FREQ_RATIO=2, program this to RoundUp(tMPX_LH/2 + # )+1. Present only in designs configured to support DDR4. Unit: clocks. # PSU_DDRC_DRAMTMG11_T_MPX_LH 0x7 - # tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_FREQ_RATIO=2, program this to (tMPX_S/2) and round it - # up to the next integer value. Present only in designs configured to support DDR4. Unit: Clocks. + # tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_ + # FREQ_RATIO=2, program this to (tMPX_S/2) and round it up to the next int + # eger value. Present only in designs configured to support DDR4. Unit: Cl + # ocks. # PSU_DDRC_DRAMTMG11_T_MPX_S 0x1 - # tCKMPE: Minimum valid clock requirement after MPSM entry. Present only in designs configured to support DDR4. Unit: Clocks. F - # r configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next i - # teger. + # tCKMPE: Minimum valid clock requirement after MPSM entry. Present only i + # n designs configured to support DDR4. Unit: Clocks. For configurations w + # ith MEMC_FREQ_RATIO=2, divide the value calculated using the above equat + # ion by 2, and round it up to next integer. # PSU_DDRC_DRAMTMG11_T_CKMPE 0xe # SDRAM Timing Register 11 - #(OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x6F07010EU) */ - mask_write 0XFD07012C 0x7F1F031F 0x6F07010E + #(OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x7007010EU) */ + mask_write 0XFD07012C 0x7F1F031F 0x7007010E # Register : DRAMTMG12 @ 0XFD070130

      - # tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larger of tESCKE or tCMDCKE For configurations with MEMC_ - # REQ_RATIO=2, program this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer value. + # tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larg + # er of tESCKE or tCMDCKE For configurations with MEMC_FREQ_RATIO=2, progr + # am this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer valu + # e. # PSU_DDRC_DRAMTMG12_T_CMDCKE 0x2 - # tCKEHCMD: Valid command requirement after CKE input HIGH. For configurations with MEMC_FREQ_RATIO=2, program this to (tCKEHCM - # /2) and round it up to next integer value. + # tCKEHCMD: Valid command requirement after CKE input HIGH. For configurat + # ions with MEMC_FREQ_RATIO=2, program this to (tCKEHCMD/2) and round it u + # p to next integer value. # PSU_DDRC_DRAMTMG12_T_CKEHCMD 0x6 - # tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. For configurations with MEMC_FREQ_RATIO=2, program th - # s to (tMRD_PDA/2) and round it up to next integer value. + # tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. + # For configurations with MEMC_FREQ_RATIO=2, program this to (tMRD_PDA/2) + # and round it up to next integer value. # PSU_DDRC_DRAMTMG12_T_MRD_PDA 0x8 # SDRAM Timing Register 12 @@ -2131,38 +2428,51 @@ set psu_ddr_init_data { mask_write 0XFD070130 0x00030F1F 0x00020608 # Register : ZQCTL0 @ 0XFD070180

      - # - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Register DBGCMD.zq_calib_short can be used instead to is - # ue ZQ calibration request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibration) commands based on ZQCTL1.t_zq_s - # ort_interval_x1024. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + # - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Reg + # ister DBGCMD.zq_calib_short can be used instead to issue ZQ calibration + # request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibrati + # on) commands based on ZQCTL1.t_zq_short_interval_x1024. This is only pre + # sent for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_ZQCTL0_DIS_AUTO_ZQ 0x1 - # - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Powerdown exit. Only applicable when run in DDR3 - # or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Power - # own exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present for designs suppo - # ting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + # - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refres + # h/SR-Powerdown exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 + # or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibratio + # n) command at Self-Refresh/SR-Powerdown exit. Only applicable when run i + # n DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present + # for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_ZQCTL0_DIS_SRX_ZQCL 0x0 - # - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQCL/ZQCS/MPC(ZQ calibration) commands are sent to one r - # nk at a time with tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that commands to different ranks do not ov - # rlap. - 0 - ZQ resistor is not shared. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + # - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQC + # L/ZQCS/MPC(ZQ calibration) commands are sent to one rank at a time with + # tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that co + # mmands to different ranks do not overlap. - 0 - ZQ resistor is not share + # d. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR + # 3/LPDDR4 devices. # PSU_DDRC_ZQCTL0_ZQ_RESISTOR_SHARED 0x0 - # - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. - 0 - Enable - # ssuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. This is only present for des - # gns supporting DDR4 devices. + # - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. + # Only applicable when run in DDR4 mode. - 0 - Enable issuing of ZQCL com + # mand at Maximum Power Saving Mode exit. Only applicable when run in DDR4 + # mode. This is only present for designs supporting DDR4 devices. # PSU_DDRC_ZQCTL0_DIS_MPSMX_ZQCL 0x0 - # tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Number of cycles of NOP required after a ZQCL (ZQ calibrat - # on long)/MPC(ZQ Start) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2: DDR3/DDR4: program this to tZQo - # er/2 and round it up to the next integer value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to the next integer va - # ue. LPDDR4: program this to tZQCAL/2 and round it up to the next integer value. Unit: Clock cycles. This is only present for - # esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + # tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Numbe + # r of cycles of NOP required after a ZQCL (ZQ calibration long)/MPC(ZQ St + # art) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO + # =2: DDR3/DDR4: program this to tZQoper/2 and round it up to the next int + # eger value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to th + # e next integer value. LPDDR4: program this to tZQCAL/2 and round it up t + # o the next integer value. Unit: Clock cycles. This is only present for d + # esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_ZQCTL0_T_ZQ_LONG_NOP 0x100 - # tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of NOP required after a ZQCS (ZQ calibration short)/MPC - # ZQ Latch) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program this to tZQCS/2 and round it up to t - # e next integer value. Unit: Clock cycles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devic - # s. + # tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of + # NOP required after a ZQCS (ZQ calibration short)/MPC(ZQ Latch) command + # is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program t + # his to tZQCS/2 and round it up to the next integer value. Unit: Clock cy + # cles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LP + # DDR3/LPDDR4 devices. # PSU_DDRC_ZQCTL0_T_ZQ_SHORT_NOP 0x40 # ZQ Control Register 0 @@ -2170,53 +2480,70 @@ set psu_ddr_init_data { mask_write 0XFD070180 0xF7FF03FF 0x81000040 # Register : ZQCTL1 @ 0XFD070184

      - # tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibration Reset) command is issued to SDRAM. For configurati - # ns with MEMC_FREQ_RATIO=2, program this to tZQReset/2 and round it up to the next integer value. Unit: Clock cycles. This is - # nly present for designs supporting LPDDR2/LPDDR3/LPDDR4 devices. + # tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibrati + # on Reset) command is issued to SDRAM. For configurations with MEMC_FREQ_ + # RATIO=2, program this to tZQReset/2 and round it up to the next integer + # value. Unit: Clock cycles. This is only present for designs supporting L + # PDDR2/LPDDR3/LPDDR4 devices. # PSU_DDRC_ZQCTL1_T_ZQ_RESET_NOP 0x20 - # Average interval to wait between automatically issuing ZQCS (ZQ calibration short)/MPC(ZQ calibration) commands to DDR3/DDR4/ - # PDDR2/LPDDR3/LPDDR4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles. This is only present for designs - # upporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - # PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x19707 + # Average interval to wait between automatically issuing ZQCS (ZQ calibrat + # ion short)/MPC(ZQ calibration) commands to DDR3/DDR4/LPDDR2/LPDDR3/LPDDR + # 4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles + # . This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3 + # /LPDDR4 devices. + # PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x196dc # ZQ Control Register 1 - #(OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x02019707U) */ - mask_write 0XFD070184 0x3FFFFFFF 0x02019707 + #(OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x020196DCU) */ + mask_write 0XFD070184 0x3FFFFFFF 0x020196DC # Register : DFITMG0 @ 0XFD070190

      - # Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - # s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - # , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - # this parameter by RDIMM's extra cycle of latency in terms of DFI clock. + # Specifies the number of DFI clock cycles after an assertion or de-assert + # ion of the DFI control signals that the control signals at the PHY-DRAM + # interface reflect the assertion or de-assertion. If the DFI clock and th + # e memory clock are not phase-aligned, this timing parameter should be ro + # unded up to the next integer value. Note that if using RDIMM, it is nece + # ssary to increment this parameter by RDIMM's extra cycle of latency in t + # erms of DFI clock. # PSU_DDRC_DFITMG0_DFI_T_CTRL_DELAY 0x4 - # Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - # 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - # fer to PHY specification for correct value. + # Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + # sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + # is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + # - 1 in terms of SDR clock cycles Refer to PHY specification for correct + # value. # PSU_DDRC_DFITMG0_DFI_RDDATA_USE_SDR 0x1 - # Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - # ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - # , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - # latency through the RDIMM. Unit: Clocks + # Time from the assertion of a read command on the DFI interface to the as + # sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + # ect value. This corresponds to the DFI parameter trddata_en. Note that, + # depending on the PHY, if using RDIMM, it may be necessary to use the val + # ue (CL + 1) in the calculation of trddata_en. This is to compensate for + # the extra cycle of latency through the RDIMM. Unit: Clocks # PSU_DDRC_DFITMG0_DFI_T_RDDATA_EN 0xb - # Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - # .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - # HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - # e. + # Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + # ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + # in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + # i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + # clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + # n for correct value. # PSU_DDRC_DFITMG0_DFI_WRDATA_USE_SDR 0x1 - # Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - # dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - # te, max supported value is 8. Unit: Clocks + # Specifies the number of clock cycles between when dfi_wrdata_en is asser + # ted to when the associated write data is driven on the dfi_wrdata signal + # . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + # specification for correct value. Note, max supported value is 8. Unit: + # Clocks # PSU_DDRC_DFITMG0_DFI_TPHY_WRDATA 0x2 - # Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - # parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - # necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - # rough the RDIMM. + # Write latency Number of clocks from the write command to write data enab + # le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + # lat. Refer to PHY specification for correct value.Note that, depending o + # n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + # in the calculation of tphy_wrlat. This is to compensate for the extra c + # ycle of latency through the RDIMM. # PSU_DDRC_DFITMG0_DFI_TPHY_WRLAT 0xb # DFI Timing Register 0 @@ -2224,31 +2551,40 @@ set psu_ddr_init_data { mask_write 0XFD070190 0x1FBFBF3F 0x048B820B # Register : DFITMG1 @ 0XFD070194

      - # Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated command is driven. - # his field is used for CAL mode, should be set to '0' or the value which matches the CAL mode register setting in the DRAM. If - # the PHY can add the latency for CAL mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 + # Specifies the number of DFI PHY clocks between when the dfi_cs signal is + # asserted and when the associated command is driven. This field is used + # for CAL mode, should be set to '0' or the value which matches the CAL mo + # de register setting in the DRAM. If the PHY can add the latency for CAL + # mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 # PSU_DDRC_DFITMG1_DFI_T_CMD_LAT 0x0 - # Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated dfi_parity_in signa - # is driven. + # Specifies the number of DFI PHY clocks between when the dfi_cs signal is + # asserted and when the associated dfi_parity_in signal is driven. # PSU_DDRC_DFITMG1_DFI_T_PARIN_LAT 0x0 - # Specifies the number of DFI clocks between when the dfi_wrdata_en signal is asserted and when the corresponding write data tr - # nsfer is completed on the DRAM bus. This corresponds to the DFI timing parameter twrdata_delay. Refer to PHY specification fo - # correct value. For DFI 3.0 PHY, set to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI 2.1 PHY, set to - # phy_wrdata + (delay of DFI write data to the DRAM). Value to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ - # RATIO=2, divide PHY's value by 2 and round up to next integer. If using DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Uni - # : Clocks + # Specifies the number of DFI clocks between when the dfi_wrdata_en signal + # is asserted and when the corresponding write data transfer is completed + # on the DRAM bus. This corresponds to the DFI timing parameter twrdata_d + # elay. Refer to PHY specification for correct value. For DFI 3.0 PHY, set + # to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI + # 2.1 PHY, set to tphy_wrdata + (delay of DFI write data to the DRAM). Va + # lue to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ_ + # RATIO=2, divide PHY's value by 2 and round up to next integer. If using + # DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Unit: Clocks # PSU_DDRC_DFITMG1_DFI_T_WRDATA_DELAY 0x3 - # Specifies the number of DFI clock cycles from the assertion of the dfi_dram_clk_disable signal on the DFI until the clock to - # he DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase - # ligned, this timing parameter should be rounded up to the next integer value. + # Specifies the number of DFI clock cycles from the assertion of the dfi_d + # ram_clk_disable signal on the DFI until the clock to the DRAM memory dev + # ices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock + # and the memory clock are not phase aligned, this timing parameter should + # be rounded up to the next integer value. # PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE 0x3 - # Specifies the number of DFI clock cycles from the de-assertion of the dfi_dram_clk_disable signal on the DFI until the first - # alid rising edge of the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the DFI clock and the memory clock are - # not phase aligned, this timing parameter should be rounded up to the next integer value. + # Specifies the number of DFI clock cycles from the de-assertion of the df + # i_dram_clk_disable signal on the DFI until the first valid rising edge o + # f the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the + # DFI clock and the memory clock are not phase aligned, this timing param + # eter should be rounded up to the next integer value. # PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE 0x4 # DFI Timing Register 1 @@ -2256,37 +2592,48 @@ set psu_ddr_init_data { mask_write 0XFD070194 0xF31F0F0F 0x00030304 # Register : DFILPCFG0 @ 0XFD070198

      - # Setting for DFI's tlp_resp time. Same value is used for both Power Down, Self Refresh, Deep Power Down and Maximum Power Savi - # g modes. DFI 2.1 specification onwards, recommends using a fixed value of 7 always. + # Setting for DFI's tlp_resp time. Same value is used for both Power Down, + # Self Refresh, Deep Power Down and Maximum Power Saving modes. DFI 2.1 s + # pecification onwards, recommends using a fixed value of 7 always. # PSU_DDRC_DFILPCFG0_DFI_TLP_RESP 0x7 - # Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 - # cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - # - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - - # 31072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting mDDR or LPDDR2/LPDDR3 device - # . + # Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is ente + # red. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 + # cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 5 + # 12 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - + # 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 6553 + # 6 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited T + # his is only present for designs supporting mDDR or LPDDR2/LPDDR3 devices + # . # PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD 0x0 - # Enables DFI Low Power interface handshaking during Deep Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled This is only pres - # nt for designs supporting mDDR or LPDDR2/LPDDR3 devices. + # Enables DFI Low Power interface handshaking during Deep Power Down Entry + # /Exit. - 0 - Disabled - 1 - Enabled This is only present for designs sup + # porting mDDR or LPDDR2/LPDDR3 devices. # PSU_DDRC_DFILPCFG0_DFI_LP_EN_DPD 0x0 - # Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cy - # les - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - # 048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 131 - # 72 cycles - 0xE - 262144 cycles - 0xF - Unlimited + # Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered + # . Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cyc + # les - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 + # cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 + # - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 c + # ycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited # PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR 0x0 - # Enables DFI Low Power interface handshaking during Self Refresh Entry/Exit. - 0 - Disabled - 1 - Enabled + # Enables DFI Low Power interface handshaking during Self Refresh Entry/Ex + # it. - 0 - Disabled - 1 - Enabled # PSU_DDRC_DFILPCFG0_DFI_LP_EN_SR 0x1 - # Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycl - # s - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 20 - # 8 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 13107 - # cycles - 0xE - 262144 cycles - 0xF - Unlimited + # Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. + # Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cycle + # s - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cy + # cles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - + # 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cyc + # les - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited # PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD 0x0 - # Enables DFI Low Power interface handshaking during Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled + # Enables DFI Low Power interface handshaking during Power Down Entry/Exit + # . - 0 - Disabled - 1 - Enabled # PSU_DDRC_DFILPCFG0_DFI_LP_EN_PD 0x1 # DFI Low Power Configuration Register 0 @@ -2294,48 +2641,88 @@ set psu_ddr_init_data { mask_write 0XFD070198 0x0FF1F1F1 0x07000101 # Register : DFILPCFG1 @ 0XFD07019C

      - # Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - # - 16 cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - # 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0 - # D - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting DDR4 devices. + # Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is + # entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 + # - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x + # 5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycl + # es - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - + # 65536 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimi + # ted This is only present for designs supporting DDR4 devices. # PSU_DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM 0x2 - # Enables DFI Low Power interface handshaking during Maximum Power Saving Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is - # only present for designs supporting DDR4 devices. + # Enables DFI Low Power interface handshaking during Maximum Power Saving + # Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is only present for d + # esigns supporting DDR4 devices. # PSU_DDRC_DFILPCFG1_DFI_LP_EN_MPSM 0x1 # DFI Low Power Configuration Register 1 #(OFFSET, MASK, VALUE) (0XFD07019C, 0x000000F1U ,0x00000021U) */ mask_write 0XFD07019C 0x000000F1 0x00000021 + # Register : DFIUPD0 @ 0XFD0701A0

      + + # When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + # . The core must issue the dfi_ctrlupd_req signal using register reg_ddrc + # _ctrlupd. When '0', uMCTL2 issues dfi_ctrlupd_req periodically. + # PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD 0x0 + + # When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + # following a self-refresh exit. The core must issue the dfi_ctrlupd_req + # signal using register reg_ddrc_ctrlupd. When '0', uMCTL2 issues a dfi_ct + # rlupd_req after exiting self-refresh. + # PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX 0x0 + + # Specifies the maximum number of clock cycles that the dfi_ctrlupd_req si + # gnal can assert. Lowest value to assign to this variable is 0x40. Unit: + # Clocks + # PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MAX 0x40 + + # Specifies the minimum number of clock cycles that the dfi_ctrlupd_req si + # gnal must be asserted. The uMCTL2 expects the PHY to respond within this + # time. If the PHY does not respond, the uMCTL2 will de-assert dfi_ctrlup + # d_req after dfi_t_ctrlup_min + 2 cycles. Lowest value to assign to this + # variable is 0x3. Unit: Clocks + # PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MIN 0x3 + + # DFI Update Register 0 + #(OFFSET, MASK, VALUE) (0XFD0701A0, 0xC3FF03FFU ,0x00400003U) */ + mask_write 0XFD0701A0 0xC3FF03FF 0x00400003 # Register : DFIUPD1 @ 0XFD0701A4

      - # This is the minimum amount of time between uMCTL2 initiated DFI update requests (which is executed whenever the uMCTL2 is idl - # ). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the fir - # t read request when the uMCTL2 is idle. Unit: 1024 clocks + # This is the minimum amount of time between uMCTL2 initiated DFI update r + # equests (which is executed whenever the uMCTL2 is idle). Set this number + # higher to reduce the frequency of update requests, which can have a sma + # ll impact on the latency of the first read request when the uMCTL2 is id + # le. Unit: 1024 clocks # PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024 0x41 - # This is the maximum amount of time between uMCTL2 initiated DFI update requests. This timer resets with each update request; - # hen the timer expires dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd_ackx is received. PHY can use this - # idle time to recalibrate the delay lines to the DLLs. The DFI controller update is also used to reset PHY FIFO pointers in ca - # e of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. - # Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x - # 024. Unit: 1024 clocks - # PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe2 + # This is the maximum amount of time between uMCTL2 initiated DFI update r + # equests. This timer resets with each update request; when the timer expi + # res dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd + # _ackx is received. PHY can use this idle time to recalibrate the delay l + # ines to the DLLs. The DFI controller update is also used to reset PHY FI + # FO pointers in case of data capture errors. Updates are required to main + # tain calibration over PVT, but frequent updates may impact performance. + # Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must + # be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x1024. Unit: 1024 cl + # ocks + # PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe1 # DFI Update Register 1 - #(OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E2U) */ - mask_write 0XFD0701A4 0x00FF00FF 0x004100E2 + #(OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E1U) */ + mask_write 0XFD0701A4 0x00FF00FF 0x004100E1 # Register : DFIMISC @ 0XFD0701B0

      - # Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signals are active low - 1: Signals are active high + # Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signal + # s are active low - 1: Signals are active high # PSU_DDRC_DFIMISC_DFI_DATA_CS_POLARITY 0x0 - # DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. - 1 - PHY implements DBI functionality. Present only - # in designs configured to support DDR4 and LPDDR4. + # DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. + # - 1 - PHY implements DBI functionality. Present only in designs configu + # red to support DDR4 and LPDDR4. # PSU_DDRC_DFIMISC_PHY_DBI_MODE 0x0 - # PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialisa - # ion + # PHY initialization complete enable signal. When asserted the dfi_init_co + # mplete signal can be used to trigger SDRAM initialisation # PSU_DDRC_DFIMISC_DFI_INIT_COMPLETE_EN 0x0 # DFI Miscellaneous Control Register @@ -2343,12 +2730,16 @@ set psu_ddr_init_data { mask_write 0XFD0701B0 0x00000007 0x00000000 # Register : DFITMG2 @ 0XFD0701B4

      - # >Number of clocks between when a read command is sent on the DFI control interface and when the associated dfi_rddata_cs sign - # l is asserted. This corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY specification for correct value. + # >Number of clocks between when a read command is sent on the DFI control + # interface and when the associated dfi_rddata_cs signal is asserted. Thi + # s corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY spe + # cification for correct value. # PSU_DDRC_DFITMG2_DFI_TPHY_RDCSLAT 0x9 - # Number of clocks between when a write command is sent on the DFI control interface and when the associated dfi_wrdata_cs sign - # l is asserted. This corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY specification for correct value. + # Number of clocks between when a write command is sent on the DFI control + # interface and when the associated dfi_wrdata_cs signal is asserted. Thi + # s corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY spe + # cification for correct value. # PSU_DDRC_DFITMG2_DFI_TPHY_WRCSLAT 0x6 # DFI Timing Register 2 @@ -2356,17 +2747,23 @@ set psu_ddr_init_data { mask_write 0XFD0701B4 0x00003F3F 0x00000906 # Register : DBICTL @ 0XFD0701C0

      - # Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read DBI is enabled. This signal must be set the same value - # as DRAM's mode register. - DDR4: MR5 bit A12. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[6] + # Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read D + # BI is enabled. This signal must be set the same value as DRAM's mode reg + # ister. - DDR4: MR5 bit A12. When x4 devices are used, this signal must b + # e set to 0. - LPDDR4: MR3[6] # PSU_DDRC_DBICTL_RD_DBI_EN 0x0 - # Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Write DBI is enabled. This signal must be set the same va - # ue as DRAM's mode register. - DDR4: MR5 bit A11. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[7] + # Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Writ + # e DBI is enabled. This signal must be set the same value as DRAM's mode + # register. - DDR4: MR5 bit A11. When x4 devices are used, this signal mus + # t be set to 0. - LPDDR4: MR3[7] # PSU_DDRC_DBICTL_WR_DBI_EN 0x0 - # DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. This signal must be set the same logical value as DRAM's - # mode register. - DDR4: Set this to same value as MR5 bit A10. When x4 devices are used, this signal must be set to 0. - LPDDR - # : Set this to inverted value of MR13[5] which is opposite polarity from this signal + # DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. Thi + # s signal must be set the same logical value as DRAM's mode register. - D + # DR4: Set this to same value as MR5 bit A10. When x4 devices are used, th + # is signal must be set to 0. - LPDDR4: Set this to inverted value of MR13 + # [5] which is opposite polarity from this signal # PSU_DDRC_DBICTL_DM_EN 0x1 # DM/DBI Control Register @@ -2374,8 +2771,10 @@ set psu_ddr_init_data { mask_write 0XFD0701C0 0x00000007 0x00000001 # Register : ADDRMAP0 @ 0XFD070200

      - # Selects the HIF address bit used as rank address bit 0. Valid Range: 0 to 27, and 31 Internal Base: 6 The selected HIF addres - # bit is determined by adding the internal base to the value of this field. If set to 31, rank address bit 0 is set to 0. + # Selects the HIF address bit used as rank address bit 0. Valid Range: 0 t + # o 27, and 31 Internal Base: 6 The selected HIF address bit is determined + # by adding the internal base to the value of this field. If set to 31, r + # ank address bit 0 is set to 0. # PSU_DDRC_ADDRMAP0_ADDRMAP_CS_BIT0 0x1f # Address Map Register 0 @@ -2383,16 +2782,22 @@ set psu_ddr_init_data { mask_write 0XFD070200 0x0000001F 0x0000001F # Register : ADDRMAP1 @ 0XFD070204

      - # Selects the HIF address bit used as bank address bit 2. Valid Range: 0 to 29 and 31 Internal Base: 4 The selected HIF address - # bit is determined by adding the internal base to the value of this field. If set to 31, bank address bit 2 is set to 0. + # Selects the HIF address bit used as bank address bit 2. Valid Range: 0 t + # o 29 and 31 Internal Base: 4 The selected HIF address bit is determined + # by adding the internal base to the value of this field. If set to 31, ba + # nk address bit 2 is set to 0. # PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B2 0x1f - # Selects the HIF address bits used as bank address bit 1. Valid Range: 0 to 30 Internal Base: 3 The selected HIF address bit f - # r each of the bank address bits is determined by adding the internal base to the value of this field. + # Selects the HIF address bits used as bank address bit 1. Valid Range: 0 + # to 30 Internal Base: 3 The selected HIF address bit for each of the bank + # address bits is determined by adding the internal base to the value of + # this field. # PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B1 0xa - # Selects the HIF address bits used as bank address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address bit f - # r each of the bank address bits is determined by adding the internal base to the value of this field. + # Selects the HIF address bits used as bank address bit 0. Valid Range: 0 + # to 30 Internal Base: 2 The selected HIF address bit for each of the bank + # address bits is determined by adding the internal base to the value of + # this field. # PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B0 0xa # Address Map Register 1 @@ -2400,29 +2805,41 @@ set psu_ddr_init_data { mask_write 0XFD070204 0x001F1F1F 0x001F0A0A # Register : ADDRMAP2 @ 0XFD070208

      - # - Full bus width mode: Selects the HIF address bit used as column address bit 5. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 6. - Quarter bus width mode: Selects the HIF address bit used as column address bit 7 . Vali - # Range: 0 to 7, and 15 Internal Base: 5 The selected HIF address bit is determined by adding the internal base to the value o - # this field. If set to 15, this column address bit is set to 0. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 5. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 6. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 7 . Valid Range: 0 to 7, and 15 Internal Base + # : 5 The selected HIF address bit is determined by adding the internal ba + # se to the value of this field. If set to 15, this column address bit is + # set to 0. # PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B5 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 4. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 5. - Quarter bus width mode: Selects the HIF address bit used as column address bit 6. Valid - # Range: 0 to 7, and 15 Internal Base: 4 The selected HIF address bit is determined by adding the internal base to the value of - # this field. If set to 15, this column address bit is set to 0. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 4. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 5. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 6. Valid Range: 0 to 7, and 15 Internal Base: + # 4 The selected HIF address bit is determined by adding the internal bas + # e to the value of this field. If set to 15, this column address bit is s + # et to 0. # PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B4 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 3. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 4. - Quarter bus width mode: Selects the HIF address bit used as column address bit 5. Valid - # Range: 0 to 7 Internal Base: 3 The selected HIF address bit is determined by adding the internal base to the value of this fi - # ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=16, it is required to program this to 0, hence register does not exist i - # this case. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 3. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 4. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 5. Valid Range: 0 to 7 Internal Base: 3 The s + # elected HIF address bit is determined by adding the internal base to the + # value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=1 + # 6, it is required to program this to 0, hence register does not exist in + # this case. # PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B3 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 2. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 3. - Quarter bus width mode: Selects the HIF address bit used as column address bit 4. Valid - # Range: 0 to 7 Internal Base: 2 The selected HIF address bit is determined by adding the internal base to the value of this fi - # ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 or 16, it is required to program this to 0. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 2. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 3. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 4. Valid Range: 0 to 7 Internal Base: 2 The s + # elected HIF address bit is determined by adding the internal base to the + # value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 + # or 16, it is required to program this to 0. # PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B2 0x0 # Address Map Register 2 @@ -2430,34 +2847,48 @@ set psu_ddr_init_data { mask_write 0XFD070208 0x0F0F0F0F 0x00000000 # Register : ADDRMAP3 @ 0XFD07020C

      - # - Full bus width mode: Selects the HIF address bit used as column address bit 9. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: Selects the HIF address bit used as - # column address bit 13 (11 in LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected HIF address bit i - # determined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: - # er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source addr - # ss bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus an - # hence column bit 10 is used. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 9. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: + # Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/ + # LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected + # HIF address bit is determined by adding the internal base to the value o + # f this field. If set to 15, this column address bit is set to 0. Note: P + # er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved fo + # r indicating auto-precharge, and hence no source address bit can be mapp + # ed to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit + # for auto-precharge in the CA bus and hence column bit 10 is used. # PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B9 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 8. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 9. - Quarter bus width mode: Selects the HIF address bit used as column address bit 11 (10 i - # LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 8 The selected HIF address bit is determined by adding the i - # ternal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specif - # cation, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to col - # mn address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is use - # . + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 8. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 9. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). Valid Range: 0 + # to 7, and 15 Internal Base: 8 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specifi + # cation, column address bit 10 is reserved for indicating auto-precharge, + # and hence no source address bit can be mapped to column address bit 10. + # In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA + # bus and hence column bit 10 is used. # PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B8 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 7. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 8. - Quarter bus width mode: Selects the HIF address bit used as column address bit 9. Valid - # Range: 0 to 7, and 15 Internal Base: 7 The selected HIF address bit is determined by adding the internal base to the value of - # this field. If set to 15, this column address bit is set to 0. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 7. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 8. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 9. Valid Range: 0 to 7, and 15 Internal Base: + # 7 The selected HIF address bit is determined by adding the internal bas + # e to the value of this field. If set to 15, this column address bit is s + # et to 0. # PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B7 0x0 - # - Full bus width mode: Selects the HIF address bit used as column address bit 6. - Half bus width mode: Selects the HIF addre - # s bit used as column address bit 7. - Quarter bus width mode: Selects the HIF address bit used as column address bit 8. Valid - # Range: 0 to 7, and 15 Internal Base: 6 The selected HIF address bit is determined by adding the internal base to the value of - # this field. If set to 15, this column address bit is set to 0. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 6. - Half bus width mode: Selects the HIF address bit used as colu + # mn address bit 7. - Quarter bus width mode: Selects the HIF address bit + # used as column address bit 8. Valid Range: 0 to 7, and 15 Internal Base: + # 6 The selected HIF address bit is determined by adding the internal bas + # e to the value of this field. If set to 15, this column address bit is s + # et to 0. # PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B6 0x0 # Address Map Register 3 @@ -2465,21 +2896,30 @@ set psu_ddr_init_data { mask_write 0XFD07020C 0x0F0F0F0F 0x00000000 # Register : ADDRMAP4 @ 0XFD070210

      - # - Full bus width mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width - # mode: Unused. To make it unused, this should be tied to 4'hF. - Quarter bus width mode: Unused. To make it unused, this must - # e tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 11 The selected HIF address bit is determined by adding the intern - # l base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificati - # n, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column a - # dress bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is used. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width mode: Unused. To m + # ake it unused, this should be tied to 4'hF. - Quarter bus width mode: Un + # used. To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, + # and 15 Internal Base: 11 The selected HIF address bit is determined by + # adding the internal base to the value of this field. If set to 15, this + # column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificatio + # n, column address bit 10 is reserved for indicating auto-precharge, and + # hence no source address bit can be mapped to column address bit 10. In L + # PDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus + # and hence column bit 10 is used. # PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B11 0xf - # - Full bus width mode: Selects the HIF address bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width - # mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: UNUSED. - # To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF address bit is d - # termined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per - # JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source address - # bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and h - # nce column bit 10 is used. + # - Full bus width mode: Selects the HIF address bit used as column addres + # s bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width mode: Selects the + # HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode) + # . - Quarter bus width mode: UNUSED. To make it unused, this must be tied + # to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF + # address bit is determined by adding the internal base to the value of t + # his field. If set to 15, this column address bit is set to 0. Note: Per + # JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for i + # ndicating auto-precharge, and hence no source address bit can be mapped + # to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for + # auto-precharge in the CA bus and hence column bit 10 is used. # PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B10 0xf # Address Map Register 4 @@ -2487,22 +2927,31 @@ set psu_ddr_init_data { mask_write 0XFD070210 0x00000F0F 0x00000F0F # Register : ADDRMAP5 @ 0XFD070214

      - # Selects the HIF address bit used as row address bit 11. Valid Range: 0 to 11, and 15 Internal Base: 17 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 11 is set to 0. + # Selects the HIF address bit used as row address bit 11. Valid Range: 0 t + # o 11, and 15 Internal Base: 17 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 11 is set to 0. # PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B11 0x8 - # Selects the HIF address bits used as row address bits 2 to 10. Valid Range: 0 to 11, and 15 Internal Base: 8 (for row address - # bit 2), 9 (for row address bit 3), 10 (for row address bit 4) etc increasing to 16 (for row address bit 10) The selected HIF - # ddress bit for each of the row address bits is determined by adding the internal base to the value of this field. When value - # 5 is used the values of row address bits 2 to 10 are defined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. + # Selects the HIF address bits used as row address bits 2 to 10. Valid Ran + # ge: 0 to 11, and 15 Internal Base: 8 (for row address bit 2), 9 (for row + # address bit 3), 10 (for row address bit 4) etc increasing to 16 (for ro + # w address bit 10) The selected HIF address bit for each of the row addre + # ss bits is determined by adding the internal base to the value of this f + # ield. When value 15 is used the values of row address bits 2 to 10 are d + # efined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. # PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10 0xf - # Selects the HIF address bits used as row address bit 1. Valid Range: 0 to 11 Internal Base: 7 The selected HIF address bit fo - # each of the row address bits is determined by adding the internal base to the value of this field. + # Selects the HIF address bits used as row address bit 1. Valid Range: 0 t + # o 11 Internal Base: 7 The selected HIF address bit for each of the row a + # ddress bits is determined by adding the internal base to the value of th + # is field. # PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B1 0x8 - # Selects the HIF address bits used as row address bit 0. Valid Range: 0 to 11 Internal Base: 6 The selected HIF address bit fo - # each of the row address bits is determined by adding the internal base to the value of this field. + # Selects the HIF address bits used as row address bit 0. Valid Range: 0 t + # o 11 Internal Base: 6 The selected HIF address bit for each of the row a + # ddress bits is determined by adding the internal base to the value of th + # is field. # PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B0 0x8 # Address Map Register 5 @@ -2510,25 +2959,35 @@ set psu_ddr_init_data { mask_write 0XFD070214 0x0F0F0F0F 0x080F0808 # Register : ADDRMAP6 @ 0XFD070218

      - # Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address - # having row[14:13]==2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. All addresses are valid Present on - # y in designs configured to support LPDDR3. + # Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 + # - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address having row[14:13]= + # =2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. + # All addresses are valid Present only in designs configured to support L + # PDDR3. # PSU_DDRC_ADDRMAP6_LPDDR3_6GB_12GB 0x0 - # Selects the HIF address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 15 is set to 0. + # Selects the HIF address bit used as row address bit 15. Valid Range: 0 t + # o 11, and 15 Internal Base: 21 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 15 is set to 0. # PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B15 0xf - # Selects the HIF address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 20 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 14 is set to 0. + # Selects the HIF address bit used as row address bit 14. Valid Range: 0 t + # o 11, and 15 Internal Base: 20 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 14 is set to 0. # PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B14 0x8 - # Selects the HIF address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 19 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 13 is set to 0. + # Selects the HIF address bit used as row address bit 13. Valid Range: 0 t + # o 11, and 15 Internal Base: 19 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 13 is set to 0. # PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B13 0x8 - # Selects the HIF address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 18 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 12 is set to 0. + # Selects the HIF address bit used as row address bit 12. Valid Range: 0 t + # o 11, and 15 Internal Base: 18 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 12 is set to 0. # PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B12 0x8 # Address Map Register 6 @@ -2536,12 +2995,16 @@ set psu_ddr_init_data { mask_write 0XFD070218 0x8F0F0F0F 0x0F080808 # Register : ADDRMAP7 @ 0XFD07021C

      - # Selects the HIF address bit used as row address bit 17. Valid Range: 0 to 10, and 15 Internal Base: 23 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 17 is set to 0. + # Selects the HIF address bit used as row address bit 17. Valid Range: 0 t + # o 10, and 15 Internal Base: 23 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 17 is set to 0. # PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B17 0xf - # Selects the HIF address bit used as row address bit 16. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected HIF addre - # s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 16 is set to 0. + # Selects the HIF address bit used as row address bit 16. Valid Range: 0 t + # o 11, and 15 Internal Base: 22 The selected HIF address bit is determine + # d by adding the internal base to the value of this field. If set to 15, + # row address bit 16 is set to 0. # PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B16 0xf # Address Map Register 7 @@ -2549,13 +3012,17 @@ set psu_ddr_init_data { mask_write 0XFD07021C 0x00000F0F 0x00000F0F # Register : ADDRMAP8 @ 0XFD070220

      - # Selects the HIF address bits used as bank group address bit 1. Valid Range: 0 to 30, and 31 Internal Base: 3 The selected HIF - # address bit for each of the bank group address bits is determined by adding the internal base to the value of this field. If - # et to 31, bank group address bit 1 is set to 0. + # Selects the HIF address bits used as bank group address bit 1. Valid Ran + # ge: 0 to 30, and 31 Internal Base: 3 The selected HIF address bit for ea + # ch of the bank group address bits is determined by adding the internal b + # ase to the value of this field. If set to 31, bank group address bit 1 i + # s set to 0. # PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B1 0x8 - # Selects the HIF address bits used as bank group address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address - # bit for each of the bank group address bits is determined by adding the internal base to the value of this field. + # Selects the HIF address bits used as bank group address bit 0. Valid Ran + # ge: 0 to 30 Internal Base: 2 The selected HIF address bit for each of th + # e bank group address bits is determined by adding the internal base to t + # he value of this field. # PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B0 0x8 # Address Map Register 8 @@ -2563,24 +3030,32 @@ set psu_ddr_init_data { mask_write 0XFD070220 0x00001F1F 0x00000808 # Register : ADDRMAP9 @ 0XFD070224

      - # Selects the HIF address bits used as row address bit 5. Valid Range: 0 to 11 Internal Base: 11 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 5. Valid Range: 0 t + # o 11 Internal Base: 11 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B5 0x8 - # Selects the HIF address bits used as row address bit 4. Valid Range: 0 to 11 Internal Base: 10 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 4. Valid Range: 0 t + # o 11 Internal Base: 10 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B4 0x8 - # Selects the HIF address bits used as row address bit 3. Valid Range: 0 to 11 Internal Base: 9 The selected HIF address bit fo - # each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - # d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 3. Valid Range: 0 t + # o 11 Internal Base: 9 The selected HIF address bit for each of the row a + # ddress bits is determined by adding the internal base to the value of th + # is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + # 10 is set to value 15. # PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B3 0x8 - # Selects the HIF address bits used as row address bit 2. Valid Range: 0 to 11 Internal Base: 8 The selected HIF address bit fo - # each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - # d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 2. Valid Range: 0 t + # o 11 Internal Base: 8 The selected HIF address bit for each of the row a + # ddress bits is determined by adding the internal base to the value of th + # is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + # 10 is set to value 15. # PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B2 0x8 # Address Map Register 9 @@ -2588,24 +3063,32 @@ set psu_ddr_init_data { mask_write 0XFD070224 0x0F0F0F0F 0x08080808 # Register : ADDRMAP10 @ 0XFD070228

      - # Selects the HIF address bits used as row address bit 9. Valid Range: 0 to 11 Internal Base: 15 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 9. Valid Range: 0 t + # o 11 Internal Base: 15 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B9 0x8 - # Selects the HIF address bits used as row address bit 8. Valid Range: 0 to 11 Internal Base: 14 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 8. Valid Range: 0 t + # o 11 Internal Base: 14 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B8 0x8 - # Selects the HIF address bits used as row address bit 7. Valid Range: 0 to 11 Internal Base: 13 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 7. Valid Range: 0 t + # o 11 Internal Base: 13 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B7 0x8 - # Selects the HIF address bits used as row address bit 6. Valid Range: 0 to 11 Internal Base: 12 The selected HIF address bit f - # r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - # ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 6. Valid Range: 0 t + # o 11 Internal Base: 12 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of t + # his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + # _10 is set to value 15. # PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B6 0x8 # Address Map Register 10 @@ -2613,9 +3096,11 @@ set psu_ddr_init_data { mask_write 0XFD070228 0x0F0F0F0F 0x08080808 # Register : ADDRMAP11 @ 0XFD07022C

      - # Selects the HIF address bits used as row address bit 10. Valid Range: 0 to 11 Internal Base: 16 The selected HIF address bit - # or each of the row address bits is determined by adding the internal base to the value of this field. This register field is - # sed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. + # Selects the HIF address bits used as row address bit 10. Valid Range: 0 + # to 11 Internal Base: 16 The selected HIF address bit for each of the row + # address bits is determined by adding the internal base to the value of + # this field. This register field is used only when ADDRMAP5.addrmap_row_b + # 2_10 is set to value 15. # PSU_DDRC_ADDRMAP11_ADDRMAP_ROW_B10 0x8 # Address Map Register 11 @@ -2623,30 +3108,42 @@ set psu_ddr_init_data { mask_write 0XFD07022C 0x0000000F 0x00000008 # Register : ODTCFG @ 0XFD070240

      - # Cycles to hold ODT for a write command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/ - # 67), 0x6 (DDR2-800), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (DDR2-1066) DDR3: - BL8: 0x6 DDR4: - - # L8: 5 + WR_PREAMBLE + CRC_MODE WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 (not CRC mode), 1 - # CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) + # Cycles to hold ODT for a write command. The minimum supported value is 2 + # . Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/667), 0x6 (DDR2-800 + # ), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (D + # DR2-1066) DDR3: - BL8: 0x6 DDR4: - BL8: 5 + WR_PREAMBLE + CRC_MODE WR_PR + # EAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 ( + # not CRC mode), 1 (CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) # PSU_DDRC_ODTCFG_WR_ODT_HOLD 0x6 - # The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting must - # remain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CWL + AL - 3 (DDR2-400/533/ - # 67), CWL + AL - 4 (DDR2-800), CWL + AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT for write operation - # DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) + # The delay, in clock cycles, from issuing a write command to setting ODT + # values associated with that command. ODT setting must remain constant fo + # r the entire time that DQS is driven by the uMCTL2. Recommended values: + # DDR2: - CWL + AL - 3 (DDR2-400/533/667), CWL + AL - 4 (DDR2-800), CWL + + # AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT fo + # r write operation. DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust + # for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) # PSU_DDRC_ODTCFG_WR_ODT_DELAY 0x0 - # Cycles to hold ODT for a read command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066) - # 0x7 (DDR2-1066) - BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8: 5 + RD_PREAMBLE RD_PREAMBLE = 1 ( - # tCK write preamble), 2 (2tCK write preamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + RU(tODTon(max)/tC - # ) + # Cycles to hold ODT for a read command. The minimum supported value is 2. + # Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066), 0x7 (DDR2-1066) - + # BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8 + # : 5 + RD_PREAMBLE RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write p + # reamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + + # RU(tODTon(max)/tCK) # PSU_DDRC_ODTCFG_RD_ODT_HOLD 0x6 - # The delay, in clock cycles, from issuing a read command to setting ODT values associated with that command. ODT setting must - # emain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CL + AL - 4 (not DDR2-1066), - # CL + AL - 5 (DDR2-1066) If (CL + AL - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - CWL DDR4: - CL - C - # L - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK - # write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, - # uMCTL2 does not support ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - RU(tODTon(max)/tCK) + # The delay, in clock cycles, from issuing a read command to setting ODT v + # alues associated with that command. ODT setting must remain constant for + # the entire time that DQS is driven by the uMCTL2. Recommended values: D + # DR2: - CL + AL - 4 (not DDR2-1066), CL + AL - 5 (DDR2-1066) If (CL + AL + # - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - C + # WL DDR4: - CL - CWL - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat + # (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK + # write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write pre + # amble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, uMCTL2 does not su + # pport ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - R + # U(tODTon(max)/tCK) # PSU_DDRC_ODTCFG_RD_ODT_DELAY 0x0 # ODT Configuration Register @@ -2654,24 +3151,34 @@ set psu_ddr_init_data { mask_write 0XFD070240 0x0F1F0F7C 0x06000600 # Register : ODTMAP @ 0XFD070244

      - # Indicates which remote ODTs must be turned on during a read from rank 1. Each rank has a remote ODT (in the SDRAM) which can - # e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - # etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks + # Indicates which remote ODTs must be turned on during a read from rank 1. + # Each rank has a remote ODT (in the SDRAM) which can be turned on by set + # ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + # s controlled by bit next to the LSB, etc. For each rank, set its bit to + # 1 to enable its ODT. Present only in configurations that have 2 or more + # ranks # PSU_DDRC_ODTMAP_RANK1_RD_ODT 0x0 - # Indicates which remote ODTs must be turned on during a write to rank 1. Each rank has a remote ODT (in the SDRAM) which can b - # turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - # etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks + # Indicates which remote ODTs must be turned on during a write to rank 1. + # Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + # ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + # controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + # to enable its ODT. Present only in configurations that have 2 or more r + # anks # PSU_DDRC_ODTMAP_RANK1_WR_ODT 0x0 - # Indicates which remote ODTs must be turned on during a read from rank 0. Each rank has a remote ODT (in the SDRAM) which can - # e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - # etc. For each rank, set its bit to 1 to enable its ODT. + # Indicates which remote ODTs must be turned on during a read from rank 0. + # Each rank has a remote ODT (in the SDRAM) which can be turned on by set + # ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + # s controlled by bit next to the LSB, etc. For each rank, set its bit to + # 1 to enable its ODT. # PSU_DDRC_ODTMAP_RANK0_RD_ODT 0x0 - # Indicates which remote ODTs must be turned on during a write to rank 0. Each rank has a remote ODT (in the SDRAM) which can b - # turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - # etc. For each rank, set its bit to 1 to enable its ODT. + # Indicates which remote ODTs must be turned on during a write to rank 0. + # Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + # ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + # controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + # to enable its ODT. # PSU_DDRC_ODTMAP_RANK0_WR_ODT 0x1 # ODT/Rank Map Register @@ -2679,41 +3186,57 @@ set psu_ddr_init_data { mask_write 0XFD070244 0x00003333 0x00000001 # Register : SCHED @ 0XFD070250

      - # When the preferred transaction store is empty for these many clock cycles, switch to the alternate transaction store if it is - # non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write t - # ansaction store is the alternative store. When prefer write over read is set this is reversed. 0x0 is a legal value for this - # egister. When set to 0x0, the transaction store switching will happen immediately when the switching conditions become true. - # OR PERFORMANCE ONLY + # When the preferred transaction store is empty for these many clock cycle + # s, switch to the alternate transaction store if it is non-empty. The rea + # d transaction store (both high and low priority) is the default preferre + # d transaction store and the write transaction store is the alternative s + # tore. When prefer write over read is set this is reversed. 0x0 is a lega + # l value for this register. When set to 0x0, the transaction store switch + # ing will happen immediately when the switching conditions become true. F + # OR PERFORMANCE ONLY # PSU_DDRC_SCHED_RDWR_IDLE_GAP 0x1 # UNUSED # PSU_DDRC_SCHED_GO2CRITICAL_HYSTERESIS 0x0 - # Number of entries in the low priority transaction store is this value + 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) i - # the number of entries available for the high priority transaction store. Setting this to maximum value allocates all entries - # to low priority transaction store. Setting this to 0 allocates 1 entry to low priority transaction store and the rest to high - # priority transaction store. Note: In ECC configurations, the numbers of write and low priority read credits issued is one les - # than in the non-ECC case. One entry each is reserved in the write and low-priority read CAMs for storing the RMW requests ar - # sing out of single bit error correction RMW operation. + # Number of entries in the low priority transaction store is this value + + # 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) is the number of ent + # ries available for the high priority transaction store. Setting this to + # maximum value allocates all entries to low priority transaction store. S + # etting this to 0 allocates 1 entry to low priority transaction store and + # the rest to high priority transaction store. Note: In ECC configuration + # s, the numbers of write and low priority read credits issued is one less + # than in the non-ECC case. One entry each is reserved in the write and l + # ow-priority read CAMs for storing the RMW requests arising out of single + # bit error correction RMW operation. # PSU_DDRC_SCHED_LPR_NUM_ENTRIES 0x20 - # If true, bank is kept open only while there are page hit transactions available in the CAM to that bank. The last read or wri - # e command in the CAM with a bank and page hit will be executed with auto-precharge if SCHED1.pageclose_timer=0. Even if this - # egister set to 1 and SCHED1.pageclose_timer is set to 0, explicit precharge (and not auto-precharge) may be issued in some ca - # es where there is a mode switch between Write and Read or between LPR and HPR. The Read and Write commands that are executed - # s part of the ECC scrub requests are also executed without auto-precharge. If false, the bank remains open until there is a n - # ed to close it (to open a different page, or for page timeout or refresh timeout) - also known as open page policy. The open - # age policy can be overridden by setting the per-command-autopre bit on the HIF interface (hif_cmd_autopre). The pageclose fea - # ure provids a midway between Open and Close page policies. FOR PERFORMANCE ONLY. + # If true, bank is kept open only while there are page hit transactions av + # ailable in the CAM to that bank. The last read or write command in the C + # AM with a bank and page hit will be executed with auto-precharge if SCHE + # D1.pageclose_timer=0. Even if this register set to 1 and SCHED1.pageclos + # e_timer is set to 0, explicit precharge (and not auto-precharge) may be + # issued in some cases where there is a mode switch between Write and Read + # or between LPR and HPR. The Read and Write commands that are executed a + # s part of the ECC scrub requests are also executed without auto-precharg + # e. If false, the bank remains open until there is a need to close it (to + # open a different page, or for page timeout or refresh timeout) - also k + # nown as open page policy. The open page policy can be overridden by sett + # ing the per-command-autopre bit on the HIF interface (hif_cmd_autopre). + # The pageclose feature provids a midway between Open and Close page polic + # ies. FOR PERFORMANCE ONLY. # PSU_DDRC_SCHED_PAGECLOSE 0x0 # If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. # PSU_DDRC_SCHED_PREFER_WRITE 0x0 - # Active low signal. When asserted ('0'), all incoming transactions are forced to low priority. This implies that all High Prio - # ity Read (HPR) and Variable Priority Read commands (VPR) will be treated as Low Priority Read (LPR) commands. On the write si - # e, all Variable Priority Write (VPW) commands will be treated as Normal Priority Write (NPW) commands. Forcing the incoming t - # ansactions to low priority implicitly turns off Bypass path for read commands. FOR PERFORMANCE ONLY. + # Active low signal. When asserted ('0'), all incoming transactions are fo + # rced to low priority. This implies that all High Priority Read (HPR) and + # Variable Priority Read commands (VPR) will be treated as Low Priority R + # ead (LPR) commands. On the write side, all Variable Priority Write (VPW) + # commands will be treated as Normal Priority Write (NPW) commands. Forci + # ng the incoming transactions to low priority implicitly turns off Bypass + # path for read commands. FOR PERFORMANCE ONLY. # PSU_DDRC_SCHED_FORCE_LOW_PRI_N 0x1 # Scheduler Control Register @@ -2721,13 +3244,16 @@ set psu_ddr_init_data { mask_write 0XFD070250 0x7FFF3F07 0x01002001 # Register : PERFLPR1 @ 0XFD070264

      - # Number of transactions that are serviced once the LPR queue goes critical is the smaller of: - (a) This number - (b) Number o - # transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. + # Number of transactions that are serviced once the LPR queue goes critica + # l is the smaller of: - (a) This number - (b) Number of transactions avai + # lable. Unit: Transaction. FOR PERFORMANCE ONLY. # PSU_DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH 0x8 - # Number of clocks that the LPR queue can be starved before it goes critical. The minimum valid functional value for this regis - # er is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - # be disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + # Number of clocks that the LPR queue can be starved before it goes critic + # al. The minimum valid functional value for this register is 0x1. Program + # ming it to 0x0 will disable the starvation functionality; during normal + # operation, this function should not be disabled as it will cause excessi + # ve latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. # PSU_DDRC_PERFLPR1_LPR_MAX_STARVE 0x40 # Low Priority Read CAM Register 1 @@ -2735,24 +3261,126 @@ set psu_ddr_init_data { mask_write 0XFD070264 0xFF00FFFF 0x08000040 # Register : PERFWR1 @ 0XFD07026C

      - # Number of transactions that are serviced once the WR queue goes critical is the smaller of: - (a) This number - (b) Number of - # transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. + # Number of transactions that are serviced once the WR queue goes critical + # is the smaller of: - (a) This number - (b) Number of transactions avail + # able. Unit: Transaction. FOR PERFORMANCE ONLY. # PSU_DDRC_PERFWR1_W_XACT_RUN_LENGTH 0x8 - # Number of clocks that the WR queue can be starved before it goes critical. The minimum valid functional value for this regist - # r is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - # e disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + # Number of clocks that the WR queue can be starved before it goes critica + # l. The minimum valid functional value for this register is 0x1. Programm + # ing it to 0x0 will disable the starvation functionality; during normal o + # peration, this function should not be disabled as it will cause excessiv + # e latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. # PSU_DDRC_PERFWR1_W_MAX_STARVE 0x40 # Write CAM Register 1 #(OFFSET, MASK, VALUE) (0XFD07026C, 0xFF00FFFFU ,0x08000040U) */ mask_write 0XFD07026C 0xFF00FFFF 0x08000040 + # Register : DQMAP0 @ 0XFD070280

      + + # DQ nibble map for DQ bits [12-15] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15 0x0 + + # DQ nibble map for DQ bits [8-11] Present only in designs configured to s + # upport DDR4. + # PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11 0x0 + + # DQ nibble map for DQ bits [4-7] Present only in designs configured to su + # pport DDR4. + # PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7 0x0 + + # DQ nibble map for DQ bits [0-3] Present only in designs configured to su + # pport DDR4. + # PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3 0x0 + + # DQ Map Register 0 + #(OFFSET, MASK, VALUE) (0XFD070280, 0xFFFFFFFFU ,0x00000000U) */ + mask_write 0XFD070280 0xFFFFFFFF 0x00000000 + # Register : DQMAP1 @ 0XFD070284

      + + # DQ nibble map for DQ bits [28-31] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31 0x0 + + # DQ nibble map for DQ bits [24-27] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27 0x0 + + # DQ nibble map for DQ bits [20-23] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23 0x0 + + # DQ nibble map for DQ bits [16-19] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19 0x0 + + # DQ Map Register 1 + #(OFFSET, MASK, VALUE) (0XFD070284, 0xFFFFFFFFU ,0x00000000U) */ + mask_write 0XFD070284 0xFFFFFFFF 0x00000000 + # Register : DQMAP2 @ 0XFD070288

      + + # DQ nibble map for DQ bits [44-47] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47 0x0 + + # DQ nibble map for DQ bits [40-43] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43 0x0 + + # DQ nibble map for DQ bits [36-39] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39 0x0 + + # DQ nibble map for DQ bits [32-35] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35 0x0 + + # DQ Map Register 2 + #(OFFSET, MASK, VALUE) (0XFD070288, 0xFFFFFFFFU ,0x00000000U) */ + mask_write 0XFD070288 0xFFFFFFFF 0x00000000 + # Register : DQMAP3 @ 0XFD07028C

      + + # DQ nibble map for DQ bits [60-63] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63 0x0 + + # DQ nibble map for DQ bits [56-59] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59 0x0 + + # DQ nibble map for DQ bits [52-55] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55 0x0 + + # DQ nibble map for DQ bits [48-51] Present only in designs configured to + # support DDR4. + # PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51 0x0 + + # DQ Map Register 3 + #(OFFSET, MASK, VALUE) (0XFD07028C, 0xFFFFFFFFU ,0x00000000U) */ + mask_write 0XFD07028C 0xFFFFFFFF 0x00000000 + # Register : DQMAP4 @ 0XFD070290

      + + # DQ nibble map for DIMM ECC check bits [4-7] Present only in designs conf + # igured to support DDR4. + # PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7 0x0 + + # DQ nibble map for DIMM ECC check bits [0-3] Present only in designs conf + # igured to support DDR4. + # PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3 0x0 + + # DQ Map Register 4 + #(OFFSET, MASK, VALUE) (0XFD070290, 0x0000FFFFU ,0x00000000U) */ + mask_write 0XFD070290 0x0000FFFF 0x00000000 # Register : DQMAP5 @ 0XFD070294

      - # All even ranks have the same DQ mapping controled by DQMAP0-4 register as rank 0. This register provides DQ swap function for - # all odd ranks to support CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap bit 2 with 3, swap bit 4 with 5 and - # wap bit 6 with 7. 1: Disable rank based DQ swapping 0: Enable rank based DQ swapping Present only in designs configured to su - # port DDR4. + # All even ranks have the same DQ mapping controled by DQMAP0-4 register a + # s rank 0. This register provides DQ swap function for all odd ranks to s + # upport CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap b + # it 2 with 3, swap bit 4 with 5 and swap bit 6 with 7. 1: Disable rank ba + # sed DQ swapping 0: Enable rank based DQ swapping Present only in designs + # configured to support DDR4. # PSU_DDRC_DQMAP5_DIS_DQ_RANK_SWAP 0x1 # DQ Map Register 5 @@ -2760,9 +3388,12 @@ set psu_ddr_init_data { mask_write 0XFD070294 0x00000001 0x00000001 # Register : DBG0 @ 0XFD070300

      - # When this is set to '0', auto-precharge is disabled for the flushed command in a collision case. Collision cases are write fo - # lowed by read to same address, read followed by write to same address, or write followed by write to same address with DBG0.d - # s_wc bit = 1 (where same address comparisons exclude the two address bits representing critical word). FOR DEBUG ONLY. + # When this is set to '0', auto-precharge is disabled for the flushed comm + # and in a collision case. Collision cases are write followed by read to s + # ame address, read followed by write to same address, or write followed b + # y write to same address with DBG0.dis_wc bit = 1 (where same address com + # parisons exclude the two address bits representing critical word). FOR D + # EBUG ONLY. # PSU_DDRC_DBG0_DIS_COLLISION_PAGE_OPT 0x0 # When 1, disable write combine. FOR DEBUG ONLY @@ -2773,34 +3404,47 @@ set psu_ddr_init_data { mask_write 0XFD070300 0x00000011 0x00000000 # Register : DBGCMD @ 0XFD07030C

      - # Setting this register bit to 1 allows refresh and ZQCS commands to be triggered from hardware via the IOs ext_*. If set to 1, - # the fields DBGCMD.zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignored by the uMCTL2 logic. Setting this - # register bit to 0 allows refresh and ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_short and DBGCMD.rank - # _refresh. If set to 0, the hardware pins ext_* have no function, and are ignored by the uMCTL2 logic. This register is static - # and may only be changed when the DDRC reset signal, core_ddrc_rstn, is asserted (0). + # Setting this register bit to 1 allows refresh and ZQCS commands to be tr + # iggered from hardware via the IOs ext_*. If set to 1, the fields DBGCMD. + # zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignore + # d by the uMCTL2 logic. Setting this register bit to 0 allows refresh and + # ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_shor + # t and DBGCMD.rank*_refresh. If set to 0, the hardware pins ext_* have no + # function, and are ignored by the uMCTL2 logic. This register is static, + # and may only be changed when the DDRC reset signal, core_ddrc_rstn, is + # asserted (0). # PSU_DDRC_DBGCMD_HW_REF_ZQ_EN 0x0 - # Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ctrlupd_req to the PHY. When this request is stored in - # he uMCTL2, the bit is automatically cleared. This operation must only be performed when DFIUPD0.dis_auto_ctrlupd=1. + # Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ct + # rlupd_req to the PHY. When this request is stored in the uMCTL2, the bit + # is automatically cleared. This operation must only be performed when DF + # IUPD0.dis_auto_ctrlupd=1. # PSU_DDRC_DBGCMD_CTRLUPD 0x0 - # Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS (ZQ calibration short)/MPC(ZQ calibration) command to - # he SDRAM. When this request is stored in the uMCTL2, the bit is automatically cleared. This operation can be performed only w - # en ZQCTL0.dis_auto_zq=1. It is recommended NOT to set this register bit if in Init operating mode. This register bit is ignor - # d when in Self-Refresh(except LPDDR4) and SR-Powerdown(LPDDR4) and Deep power-down operating modes and Maximum Power Saving M - # de. + # Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS ( + # ZQ calibration short)/MPC(ZQ calibration) command to the SDRAM. When thi + # s request is stored in the uMCTL2, the bit is automatically cleared. Thi + # s operation can be performed only when ZQCTL0.dis_auto_zq=1. It is recom + # mended NOT to set this register bit if in Init operating mode. This regi + # ster bit is ignored when in Self-Refresh(except LPDDR4) and SR-Powerdown + # (LPDDR4) and Deep power-down operating modes and Maximum Power Saving Mo + # de. # PSU_DDRC_DBGCMD_ZQ_CALIB_SHORT 0x0 - # Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 1. Writing to this bit causes DBGSTAT.rank1 - # refresh_busy to be set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - # be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - # wn operating modes or Maximum Power Saving Mode. + # Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + # h to rank 1. Writing to this bit causes DBGSTAT.rank1_refresh_busy to be + # set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been s + # tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + # auto_refresh=1. It is recommended NOT to set this register bit if in Ini + # t or Deep power-down operating modes or Maximum Power Saving Mode. # PSU_DDRC_DBGCMD_RANK1_REFRESH 0x0 - # Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 0. Writing to this bit causes DBGSTAT.rank0 - # refresh_busy to be set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - # be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - # wn operating modes or Maximum Power Saving Mode. + # Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + # h to rank 0. Writing to this bit causes DBGSTAT.rank0_refresh_busy to be + # set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been s + # tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + # auto_refresh=1. It is recommended NOT to set this register bit if in Ini + # t or Deep power-down operating modes or Maximum Power Saving Mode. # PSU_DDRC_DBGCMD_RANK0_REFRESH 0x0 # Command Debug Register @@ -2808,8 +3452,9 @@ set psu_ddr_init_data { mask_write 0XFD07030C 0x80000033 0x00000000 # Register : SWCTL @ 0XFD070320

      - # Enable quasi-dynamic register programming outside reset. Program register to 0 to enable quasi-dynamic programming. Set back - # egister to 1 once programming is done. + # Enable quasi-dynamic register programming outside reset. Program registe + # r to 0 to enable quasi-dynamic programming. Set back register to 1 once + # programming is done. # PSU_DDRC_SWCTL_SW_DONE 0x0 # Software register programming control enable @@ -2817,25 +3462,34 @@ set psu_ddr_init_data { mask_write 0XFD070320 0x00000001 0x00000000 # Register : PCCFG @ 0XFD070400

      - # Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expands every AXI burst into multiple HIF commands, using t - # e memory burst length as a unit. If set to 1, then XPI will use half of the memory burst length as a unit. This applies to bo - # h reads and writes. When MSTR.data_bus_width==00, setting bl_exp_mode to 1 has no effect. This can be used in cases where Par - # ial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.dis_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_cc - # _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionality is not supported in the following cases: - UMCTL2_ - # ARTIAL_WR=0 - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 and MSTR.reg_ddrc_burst_rdwr=1000 (LP - # DR4 only) - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burst_rdwr=0100 (DDR4 - # only), with either MSTR.reg_ddrc_burstchop=0 or CRCPARCTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Share - # -AC is enabled + # Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expand + # s every AXI burst into multiple HIF commands, using the memory burst len + # gth as a unit. If set to 1, then XPI will use half of the memory burst l + # ength as a unit. This applies to both reads and writes. When MSTR.data_b + # us_width==00, setting bl_exp_mode to 1 has no effect. This can be used i + # n cases where Partial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.d + # is_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_ccd + # _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionali + # ty is not supported in the following cases: - UMCTL2_PARTIAL_WR=0 - UMCT + # L2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 an + # d MSTR.reg_ddrc_burst_rdwr=1000 (LPDDR4 only) - UMCTL2_PARTIAL_WR=1, MST + # R.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burs + # t_rdwr=0100 (DDR4 only), with either MSTR.reg_ddrc_burstchop=0 or CRCPAR + # CTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Shared + # -AC is enabled # PSU_DDRC_PCCFG_BL_EXP_MODE 0x0 - # Page match four limit. If set to 1, limits the number of consecutive same page DDRC transactions that can be granted by the P - # rt Arbiter to four when Page Match feature is enabled. If set to 0, there is no limit imposed on number of consecutive same p - # ge DDRC transactions. + # Page match four limit. If set to 1, limits the number of consecutive sam + # e page DDRC transactions that can be granted by the Port Arbiter to four + # when Page Match feature is enabled. If set to 0, there is no limit impo + # sed on number of consecutive same page DDRC transactions. # PSU_DDRC_PCCFG_PAGEMATCH_LIMIT 0x0 - # If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals going to DDRC based - # n urgent input (awurgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_go2critical_wr and co_gs_go2critica - # _lpr/co_gs_go2critical_hpr signals at DDRC are driven to 1b'0. + # If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_l + # pr/co_gs_go2critical_hpr signals going to DDRC based on urgent input (aw + # urgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_ + # go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals a + # t DDRC are driven to 1b'0. # PSU_DDRC_PCCFG_GO2CRITICAL_EN 0x1 # Port Common Configuration Register @@ -2843,30 +3497,41 @@ set psu_ddr_init_data { mask_write 0XFD070400 0x00000111 0x00000001 # Register : PCFGR_0 @ 0XFD070404

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. # PSU_DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_0_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_0_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_0_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register @@ -2874,33 +3539,42 @@ set psu_ddr_init_data { mask_write 0XFD070404 0x000073FF 0x0000200F # Register : PCFGW_0 @ 0XFD070408

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_0_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_0_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_0_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD070408 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD070408 0x000073FF 0x0000200F # Register : PCTRL_0 @ 0XFD070490

      # Enables port n. @@ -2911,20 +3585,28 @@ set psu_ddr_init_data { mask_write 0XFD070490 0x00000001 0x00000001 # Register : PCFGQOS0_0 @ 0XFD070494

      - # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION1 0x2 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION0 0x0 - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1 0xb # Port n Read QoS Configuration Register 0 @@ -2932,10 +3614,12 @@ set psu_ddr_init_data { mask_write 0XFD070494 0x0033000F 0x0020000B # Register : PCFGQOS1_0 @ 0XFD070498

      - # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB 0x0 # Port n Read QoS Configuration Register 1 @@ -2943,30 +3627,41 @@ set psu_ddr_init_data { mask_write 0XFD070498 0x07FF07FF 0x00000000 # Register : PCFGR_1 @ 0XFD0704B4

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. # PSU_DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_1_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_1_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_1_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register @@ -2974,33 +3669,42 @@ set psu_ddr_init_data { mask_write 0XFD0704B4 0x000073FF 0x0000200F # Register : PCFGW_1 @ 0XFD0704B8

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_1_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_1_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_1_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD0704B8 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD0704B8 0x000073FF 0x0000200F # Register : PCTRL_1 @ 0XFD070540

      # Enables port n. @@ -3011,31 +3715,43 @@ set psu_ddr_init_data { mask_write 0XFD070540 0x00000001 0x00000001 # Register : PCFGQOS0_1 @ 0XFD070544

      - # This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - # ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - # s set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region2. For dual address q + # ueue configurations, region2 maps to the red address queue. Valid values + # are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + # = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + # ased to LPR traffic. # PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION2 0x2 - # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION1 0x0 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION0 0x0 - # Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - # el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - # directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - # ust be set to distinct values. + # Separation level2 indicating the end of region1 mapping; start of region + # 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + # ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + # that for PA, arqos values are used directly as port priorities, where t + # he higher the value corresponds to higher port priority. All of the map_ + # level* registers must be set to distinct values. # PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2 0xb - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1 0x3 # Port n Read QoS Configuration Register 0 @@ -3043,10 +3759,12 @@ set psu_ddr_init_data { mask_write 0XFD070544 0x03330F0F 0x02000B03 # Register : PCFGQOS1_1 @ 0XFD070548

      - # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB 0x0 # Port n Read QoS Configuration Register 1 @@ -3054,30 +3772,41 @@ set psu_ddr_init_data { mask_write 0XFD070548 0x07FF07FF 0x00000000 # Register : PCFGR_2 @ 0XFD070564

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. # PSU_DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_2_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_2_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_2_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register @@ -3085,33 +3814,42 @@ set psu_ddr_init_data { mask_write 0XFD070564 0x000073FF 0x0000200F # Register : PCFGW_2 @ 0XFD070568

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_2_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_2_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_2_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD070568 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD070568 0x000073FF 0x0000200F # Register : PCTRL_2 @ 0XFD0705F0

      # Enables port n. @@ -3122,31 +3860,43 @@ set psu_ddr_init_data { mask_write 0XFD0705F0 0x00000001 0x00000001 # Register : PCFGQOS0_2 @ 0XFD0705F4

      - # This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - # ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - # s set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region2. For dual address q + # ueue configurations, region2 maps to the red address queue. Valid values + # are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + # = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + # ased to LPR traffic. # PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION2 0x2 - # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION1 0x0 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION0 0x0 - # Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - # el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - # directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - # ust be set to distinct values. + # Separation level2 indicating the end of region1 mapping; start of region + # 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + # ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + # that for PA, arqos values are used directly as port priorities, where t + # he higher the value corresponds to higher port priority. All of the map_ + # level* registers must be set to distinct values. # PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2 0xb - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1 0x3 # Port n Read QoS Configuration Register 0 @@ -3154,10 +3904,12 @@ set psu_ddr_init_data { mask_write 0XFD0705F4 0x03330F0F 0x02000B03 # Register : PCFGQOS1_2 @ 0XFD0705F8

      - # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB 0x0 # Port n Read QoS Configuration Register 1 @@ -3165,30 +3917,41 @@ set psu_ddr_init_data { mask_write 0XFD0705F8 0x07FF07FF 0x00000000 # Register : PCFGR_3 @ 0XFD070614

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. # PSU_DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_3_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_3_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_3_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register @@ -3196,33 +3959,42 @@ set psu_ddr_init_data { mask_write 0XFD070614 0x000073FF 0x0000200F # Register : PCFGW_3 @ 0XFD070618

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_3_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_3_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_3_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD070618 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD070618 0x000073FF 0x0000200F # Register : PCTRL_3 @ 0XFD0706A0

      # Enables port n. @@ -3233,20 +4005,28 @@ set psu_ddr_init_data { mask_write 0XFD0706A0 0x00000001 0x00000001 # Register : PCFGQOS0_3 @ 0XFD0706A4

      - # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION0 0x0 - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1 0x3 # Port n Read QoS Configuration Register 0 @@ -3254,10 +4034,12 @@ set psu_ddr_init_data { mask_write 0XFD0706A4 0x0033000F 0x00100003 # Register : PCFGQOS1_3 @ 0XFD0706A8

      - # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB 0x4f # Port n Read QoS Configuration Register 1 @@ -3265,17 +4047,22 @@ set psu_ddr_init_data { mask_write 0XFD0706A8 0x07FF07FF 0x0000004F # Register : PCFGWQOS0_3 @ 0XFD0706AC

      - # This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + # traffic. # PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + # traffic. # PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0 0x0 - # Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - # rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - # s to higher port priority. + # Separation level indicating the end of region0 mapping; start of region0 + # is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + # . Note that for PA, awqos values are used directly as port priorities, w + # here the higher the value corresponds to higher port priority. # PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL 0x3 # Port n Write QoS Configuration Register 0 @@ -3291,64 +4078,84 @@ set psu_ddr_init_data { mask_write 0XFD0706B0 0x000007FF 0x0000004F # Register : PCFGR_4 @ 0XFD0706C4

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_4_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_4_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_4_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register - #(OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD0706C4 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD0706C4 0x000073FF 0x0000200F # Register : PCFGW_4 @ 0XFD0706C8

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_4_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_4_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_4_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD0706C8 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD0706C8 0x000073FF 0x0000200F # Register : PCTRL_4 @ 0XFD070750

      # Enables port n. @@ -3359,20 +4166,28 @@ set psu_ddr_init_data { mask_write 0XFD070750 0x00000001 0x00000001 # Register : PCFGQOS0_4 @ 0XFD070754

      - # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION0 0x0 - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1 0x3 # Port n Read QoS Configuration Register 0 @@ -3380,10 +4195,12 @@ set psu_ddr_init_data { mask_write 0XFD070754 0x0033000F 0x00100003 # Register : PCFGQOS1_4 @ 0XFD070758

      - # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB 0x4f # Port n Read QoS Configuration Register 1 @@ -3391,17 +4208,22 @@ set psu_ddr_init_data { mask_write 0XFD070758 0x07FF07FF 0x0000004F # Register : PCFGWQOS0_4 @ 0XFD07075C

      - # This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + # traffic. # PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + # traffic. # PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0 0x0 - # Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - # rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - # s to higher port priority. + # Separation level indicating the end of region0 mapping; start of region0 + # is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + # . Note that for PA, awqos values are used directly as port priorities, w + # here the higher the value corresponds to higher port priority. # PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL 0x3 # Port n Write QoS Configuration Register 0 @@ -3417,30 +4239,41 @@ set psu_ddr_init_data { mask_write 0XFD070760 0x000007FF 0x0000004F # Register : PCFGR_5 @ 0XFD070774

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. # PSU_DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - # o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - # ess handshaking (it is not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + # bled and arurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + # RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + # urgent signal can be asserted anytime and as long as required which is i + # ndependent of address handshaking (it is not associated with any particu + # lar command). # PSU_DDRC_PCFGR_5_RD_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the read channel of the port. # PSU_DDRC_PCFGR_5_RD_PORT_AGING_EN 0x0 - # Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - # ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - # will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - # ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - # aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - # ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - # ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - # RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - # he two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of read aging counters. These counters + # will be parallel loaded after reset, or after each grant to the corresp + # onding port. The aging counters down-count every clock cycle where the p + # ort is requesting but not granted. The higher significant 5-bits of the + # read aging counter sets the priority of the read channel of a given port + # . Port's priority will increase as the higher significant 5-bits of the + # counter starts to decrease. When the aging counter becomes 0, the corres + # ponding port channel will have the highest priority level (timeout condi + # tion - Priority0). For multi-port configurations, the aging counters can + # not be used to set port priorities when external dynamic priority inputs + # (arqos) are enabled (timeout is still applicable). For single port conf + # igurations, the aging counters are only used when they timeout (become 0 + # ) to force read-write direction switching. In this case, external dynami + # c priority input, arqos (for reads only) can still be used to set the DD + # RC read priority (2 priority levels: low priority read - LPR, high prior + # ity read - HPR) on a command by command basis. Note: The two LSBs of thi + # s register field are tied internally to 2'b00. # PSU_DDRC_PCFGR_5_RD_PORT_PRIORITY 0xf # Port n Configuration Read Register @@ -3448,33 +4281,42 @@ set psu_ddr_init_data { mask_write 0XFD070774 0x000073FF 0x0000200F # Register : PCFGW_5 @ 0XFD070778

      - # If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - # d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - # imit register. - # PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x1 + # If set to 1, enables the Page Match feature. If enabled, once a requesti + # ng port is granted, the port is continued to be granted if the following + # immediate commands are to the same memory page (same bank and same row) + # . See also related PCCFG.pagematch_limit register. + # PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x0 - # If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - # becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - # Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - # not associated with any particular command). + # If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + # bled and awurgent is asserted by the master, that port becomes the highe + # st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + # ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + # serted anytime and as long as required which is independent of address h + # andshaking (it is not associated with any particular command). # PSU_DDRC_PCFGW_5_WR_PORT_URGENT_EN 0x1 # If set to 1, enables aging function for the write channel of the port. # PSU_DDRC_PCFGW_5_WR_PORT_AGING_EN 0x0 - # Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - # rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - # The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - # s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - # the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - # be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - # ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - # ng. Note: The two LSBs of this register field are tied internally to 2'b00. + # Determines the initial load value of write aging counters. These counter + # s will be parallel loaded after reset, or after each grant to the corres + # ponding port. The aging counters down-count every clock cycle where the + # port is requesting but not granted. The higher significant 5-bits of the + # write aging counter sets the initial priority of the write channel of a + # given port. Port's priority will increase as the higher significant 5-b + # its of the counter starts to decrease. When the aging counter becomes 0, + # the corresponding port channel will have the highest priority level. Fo + # r multi-port configurations, the aging counters cannot be used to set po + # rt priorities when external dynamic priority inputs (awqos) are enabled + # (timeout is still applicable). For single port configurations, the aging + # counters are only used when they timeout (become 0) to force read-write + # direction switching. Note: The two LSBs of this register field are tied + # internally to 2'b00. # PSU_DDRC_PCFGW_5_WR_PORT_PRIORITY 0xf # Port n Configuration Write Register - #(OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000600FU) */ - mask_write 0XFD070778 0x000073FF 0x0000600F + #(OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000200FU) */ + mask_write 0XFD070778 0x000073FF 0x0000200F # Register : PCTRL_5 @ 0XFD070800

      # Enables port n. @@ -3485,20 +4327,28 @@ set psu_ddr_init_data { mask_write 0XFD070800 0x00000001 0x00000001 # Register : PCFGQOS0_5 @ 0XFD070804

      - # This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - # gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + # maps to the blue address queue. In this case, valid values are 0: LPR a + # nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + # ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - # urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - # disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + # maps to the blue address queue. In this case, valid values are: 0: LPR + # and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + # affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + # traffic. # PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION0 0x0 - # Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - # al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - # ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - # values. + # Separation level1 indicating the end of region0 mapping; start of region + # 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + # (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + # lues are used directly as port priorities, where the higher the value co + # rresponds to higher port priority. All of the map_level* registers must + # be set to distinct values. # PSU_DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1 0x3 # Port n Read QoS Configuration Register 0 @@ -3506,10 +4356,12 @@ set psu_ddr_init_data { mask_write 0XFD070804 0x0033000F 0x00100003 # Register : PCFGQOS1_5 @ 0XFD070808

      - # Specifies the timeout value for transactions mapped to the red address queue. + # Specifies the timeout value for transactions mapped to the red address q + # ueue. # PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR 0x0 - # Specifies the timeout value for transactions mapped to the blue address queue. + # Specifies the timeout value for transactions mapped to the blue address + # queue. # PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB 0x4f # Port n Read QoS Configuration Register 1 @@ -3517,17 +4369,22 @@ set psu_ddr_init_data { mask_write 0XFD070808 0x07FF07FF 0x0000004F # Register : PCFGWQOS0_5 @ 0XFD07080C

      - # This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. + # This bitfield indicates the traffic class of region 1. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + # traffic. # PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1 0x1 - # This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - # VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. + # This bitfield indicates the traffic class of region 0. Valid values are: + # 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + # affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + # traffic. # PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0 0x0 - # Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - # rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - # s to higher port priority. + # Separation level indicating the end of region0 mapping; start of region0 + # is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + # . Note that for PA, awqos values are used directly as port priorities, w + # here the higher the value corresponds to higher port priority. # PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL 0x3 # Port n Write QoS Configuration Register 0 @@ -3543,8 +4400,9 @@ set psu_ddr_init_data { mask_write 0XFD070810 0x000007FF 0x0000004F # Register : SARBASE0 @ 0XFD070F04

      - # Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - # by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + # Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + # ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + # ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). # PSU_DDRC_SARBASE0_BASE_ADDR 0x0 # SAR Base Address Register n @@ -3552,9 +4410,11 @@ set psu_ddr_init_data { mask_write 0XFD070F04 0x000001FF 0x00000000 # Register : SARSIZE0 @ 0XFD070F08

      - # Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - # e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - # or example, if register is programmed to 0, region will have 1 block. + # Number of blocks for address region n. This register determines the tota + # l size of the region in multiples of minimum block size as specified by + # the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + # as number of blocks = nblocks + 1. For example, if register is programme + # d to 0, region will have 1 block. # PSU_DDRC_SARSIZE0_NBLOCKS 0x0 # SAR Size Register n @@ -3562,8 +4422,9 @@ set psu_ddr_init_data { mask_write 0XFD070F08 0x000000FF 0x00000000 # Register : SARBASE1 @ 0XFD070F0C

      - # Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - # by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + # Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + # ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + # ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). # PSU_DDRC_SARBASE1_BASE_ADDR 0x10 # SAR Base Address Register n @@ -3571,9 +4432,11 @@ set psu_ddr_init_data { mask_write 0XFD070F0C 0x000001FF 0x00000010 # Register : SARSIZE1 @ 0XFD070F10

      - # Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - # e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - # or example, if register is programmed to 0, region will have 1 block. + # Number of blocks for address region n. This register determines the tota + # l size of the region in multiples of minimum block size as specified by + # the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + # as number of blocks = nblocks + 1. For example, if register is programme + # d to 0, region will have 1 block. # PSU_DDRC_SARSIZE1_NBLOCKS 0xf # SAR Size Register n @@ -3581,38 +4444,51 @@ set psu_ddr_init_data { mask_write 0XFD070F10 0x000000FF 0x0000000F # Register : DFITMG0_SHADOW @ 0XFD072190

      - # Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - # s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - # , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - # this parameter by RDIMM's extra cycle of latency in terms of DFI clock. + # Specifies the number of DFI clock cycles after an assertion or de-assert + # ion of the DFI control signals that the control signals at the PHY-DRAM + # interface reflect the assertion or de-assertion. If the DFI clock and th + # e memory clock are not phase-aligned, this timing parameter should be ro + # unded up to the next integer value. Note that if using RDIMM, it is nece + # ssary to increment this parameter by RDIMM's extra cycle of latency in t + # erms of DFI clock. # PSU_DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY 0x7 - # Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - # 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - # fer to PHY specification for correct value. + # Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + # sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + # is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + # - 1 in terms of SDR clock cycles Refer to PHY specification for correct + # value. # PSU_DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR 0x1 - # Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - # ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - # , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - # latency through the RDIMM. Unit: Clocks + # Time from the assertion of a read command on the DFI interface to the as + # sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + # ect value. This corresponds to the DFI parameter trddata_en. Note that, + # depending on the PHY, if using RDIMM, it may be necessary to use the val + # ue (CL + 1) in the calculation of trddata_en. This is to compensate for + # the extra cycle of latency through the RDIMM. Unit: Clocks # PSU_DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN 0x2 - # Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - # .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - # HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - # e. + # Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + # ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + # in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + # i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + # clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + # n for correct value. # PSU_DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR 0x1 - # Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - # dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - # te, max supported value is 8. Unit: Clocks + # Specifies the number of clock cycles between when dfi_wrdata_en is asser + # ted to when the associated write data is driven on the dfi_wrdata signal + # . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + # specification for correct value. Note, max supported value is 8. Unit: + # Clocks # PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA 0x0 - # Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - # parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - # necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - # rough the RDIMM. + # Write latency Number of clocks from the write command to write data enab + # le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + # lat. Refer to PHY specification for correct value.Note that, depending o + # n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + # in the calculation of tphy_wrlat. This is to compensate for the extra c + # ycle of latency through the RDIMM. # PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT 0x2 # DFI Timing Shadow Register 0 @@ -3624,9 +4500,12 @@ set psu_ddr_init_data { # DDR block level reset inside of the DDR Sub System # PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X0 + # APM block level reset inside of the DDR Sub System + # PSU_CRF_APB_RST_DDR_SS_APM_RESET 0X0 + # DDR sub system block level reset - #(OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000000U) */ - mask_write 0XFD1A0108 0x00000008 0x00000000 + #(OFFSET, MASK, VALUE) (0XFD1A0108, 0x0000000CU ,0x00000000U) */ + mask_write 0XFD1A0108 0x0000000C 0x00000000 # : DDR PHY # Register : PGCR0 @ 0XFD080010

      @@ -3687,11 +4566,11 @@ set psu_ddr_init_data { # PSU_DDR_PHY_PGCR2_PLLFSMBYP 0x0 # Refresh Period - # PSU_DDR_PHY_PGCR2_TREFPRD 0x10028 + # PSU_DDR_PHY_PGCR2_TREFPRD 0x10010 # PHY General Configuration Register 2 - #(OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10028U) */ - mask_write 0XFD080018 0xFFFFFFFF 0x00F10028 + #(OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10010U) */ + mask_write 0XFD080018 0xFFFFFFFF 0x00F10010 # Register : PGCR3 @ 0XFD08001C

      # CKN Enable @@ -3765,41 +4644,86 @@ set psu_ddr_init_data { # Register : PTR0 @ 0XFD080040

      # PLL Power-Down Time - # PSU_DDR_PHY_PTR0_TPLLPD 0x2f0 + # PSU_DDR_PHY_PTR0_TPLLPD 0x56 # PLL Gear Shift Time - # PSU_DDR_PHY_PTR0_TPLLGS 0x60 + # PSU_DDR_PHY_PTR0_TPLLGS 0x2155 # PHY Reset Time # PSU_DDR_PHY_PTR0_TPHYRST 0x10 # PHY Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x5E001810U) */ - mask_write 0XFD080040 0xFFFFFFFF 0x5E001810 + #(OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x0AC85550U) */ + mask_write 0XFD080040 0xFFFFFFFF 0x0AC85550 # Register : PTR1 @ 0XFD080044

      # PLL Lock Time - # PSU_DDR_PHY_PTR1_TPLLLOCK 0x80 + # PSU_DDR_PHY_PTR1_TPLLLOCK 0x4141 # Reserved. Returns zeroes on reads. # PSU_DDR_PHY_PTR1_RESERVED_15_13 0x0 # PLL Reset Time - # PSU_DDR_PHY_PTR1_TPLLRST 0x5f0 + # PSU_DDR_PHY_PTR1_TPLLRST 0xaff # PHY Timing Register 1 - #(OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x008005F0U) */ - mask_write 0XFD080044 0xFFFFFFFF 0x008005F0 + #(OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x41410AFFU) */ + mask_write 0XFD080044 0xFFFFFFFF 0x41410AFF + # Register : PLLCR0 @ 0XFD080068

      + + # PLL Bypass + # PSU_DDR_PHY_PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable + # PSU_DDR_PHY_PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_PLLCR0_DTC 0x0 + + # PLL Control Register 0 (Type B PLL Only) + #(OFFSET, MASK, VALUE) (0XFD080068, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD080068 0xFFFFFFFF 0x01100000 # Register : DSGCR @ 0XFD080090

      # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DSGCR_RESERVED_31_28 0x0 - # When RDBI enabled, this bit is used to select RDBI CL calculation, if it is 1b1, calculation will use RDBICL, otherwise use d - # fault calculation. + # When RDBI enabled, this bit is used to select RDBI CL calculation, if it + # is 1b1, calculation will use RDBICL, otherwise use default calculation. # PSU_DDR_PHY_DSGCR_RDBICLSEL 0x0 - # When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this value. + # When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this v + # alue. # PSU_DDR_PHY_DSGCR_RDBICL 0x2 # PHY Impedance Update Enable @@ -3836,7 +4760,7 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DSGCR_DTOODT 0x0 # PHY Update Acknowledge Delay - # PSU_DDR_PHY_DSGCR_PUAD 0x4 + # PSU_DDR_PHY_DSGCR_PUAD 0x5 # Controller Update Acknowledge Enable # PSU_DDR_PHY_DSGCR_CUAEN 0x1 @@ -3854,8 +4778,16 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DSGCR_PUREN 0x1 # DDR System General Configuration Register - #(OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04121U) */ - mask_write 0XFD080090 0xFFFFFFFF 0x02A04121 + #(OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04161U) */ + mask_write 0XFD080090 0xFFFFFFFF 0x02A04161 + # Register : GPR0 @ 0XFD0800C0

      + + # General Purpose Register 0 + # PSU_DDR_PHY_GPR0_GPR0 0xd3 + + # General Purpose Register 0 + #(OFFSET, MASK, VALUE) (0XFD0800C0, 0xFFFFFFFFU ,0x000000D3U) */ + mask_write 0XFD0800C0 0xFFFFFFFF 0x000000D3 # Register : DCR @ 0XFD080100

      # DDR4 Gear Down Timing. @@ -3921,30 +4853,31 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DTPR0_RESERVED_7_5 0x0 # Internal read to precharge command delay - # PSU_DDR_PHY_DTPR0_TRTP 0x9 + # PSU_DDR_PHY_DTPR0_TRTP 0x8 # DRAM Timing Parameters Register 0 - #(OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F09U) */ - mask_write 0XFD080110 0xFFFFFFFF 0x06240F09 + #(OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F08U) */ + mask_write 0XFD080110 0xFFFFFFFF 0x06240F08 # Register : DTPR1 @ 0XFD080114

      # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR1_RESERVED_31 0x0 - # Minimum delay from when write leveling mode is programmed to the first DQS/DQS# rising edge. + # Minimum delay from when write leveling mode is programmed to the first D + # QS/DQS# rising edge. # PSU_DDR_PHY_DTPR1_TWLMRD 0x28 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR1_RESERVED_23 0x0 # 4-bank activate period - # PSU_DDR_PHY_DTPR1_TFAW 0x18 + # PSU_DDR_PHY_DTPR1_TFAW 0x20 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR1_RESERVED_15_11 0x0 # Load mode update delay (DDR4 and DDR3 only) - # PSU_DDR_PHY_DTPR1_TMOD 0x7 + # PSU_DDR_PHY_DTPR1_TMOD 0x0 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR1_RESERVED_7_5 0x0 @@ -3953,8 +4886,8 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DTPR1_TMRD 0x8 # DRAM Timing Parameters Register 1 - #(OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28180708U) */ - mask_write 0XFD080114 0xFFFFFFFF 0x28180708 + #(OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28200008U) */ + mask_write 0XFD080114 0xFFFFFFFF 0x28200008 # Register : DTPR2 @ 0XFD080118

      # Reserved. Return zeroes on reads. @@ -3973,17 +4906,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DTPR2_RESERVED_23_20 0x0 # CKE minimum pulse width - # PSU_DDR_PHY_DTPR2_TCKE 0x8 + # PSU_DDR_PHY_DTPR2_TCKE 0x7 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR2_RESERVED_15_10 0x0 # Self refresh exit delay - # PSU_DDR_PHY_DTPR2_TXS 0x200 + # PSU_DDR_PHY_DTPR2_TXS 0x300 # DRAM Timing Parameters Register 2 - #(OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00080200U) */ - mask_write 0XFD080118 0xFFFFFFFF 0x00080200 + #(OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00070300U) */ + mask_write 0XFD080118 0xFFFFFFFF 0x00070300 # Register : DTPR3 @ 0XFD08011C

      # ODT turn-off delay extension @@ -4034,18 +4967,18 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DTPR4_RESERVED_7_5 0x0 # Power down exit delay - # PSU_DDR_PHY_DTPR4_TXP 0x8 + # PSU_DDR_PHY_DTPR4_TXP 0x7 # DRAM Timing Parameters Register 4 - #(OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B08U) */ - mask_write 0XFD080120 0xFFFFFFFF 0x01162B08 + #(OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B07U) */ + mask_write 0XFD080120 0xFFFFFFFF 0x01162B07 # Register : DTPR5 @ 0XFD080124

      # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR5_RESERVED_31_24 0x0 # Activate to activate command delay (same bank) - # PSU_DDR_PHY_DTPR5_TRC 0x32 + # PSU_DDR_PHY_DTPR5_TRC 0x33 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_DTPR5_RESERVED_15 0x0 @@ -4057,11 +4990,11 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DTPR5_RESERVED_7_5 0x0 # Internal write to read command delay - # PSU_DDR_PHY_DTPR5_TWTR 0x9 + # PSU_DDR_PHY_DTPR5_TWTR 0x8 # DRAM Timing Parameters Register 5 - #(OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00320F09U) */ - mask_write 0XFD080124 0xFFFFFFFF 0x00320F09 + #(OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00330F08U) */ + mask_write 0XFD080124 0xFFFFFFFF 0x00330F08 # Register : DTPR6 @ 0XFD080128

      # PUB Write Latency Enable @@ -4193,15 +5126,18 @@ set psu_ddr_init_data { # DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) # PSU_DDR_PHY_RDIMMCR0_RC5 0x0 - # DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control Word) / DDR3 Control Word 4 (Control Signals Driver C - # aracteristics Control Word) + # DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control + # Word) / DDR3 Control Word 4 (Control Signals Driver Characteristics Cont + # rol Word) # PSU_DDR_PHY_RDIMMCR0_RC4 0x0 - # DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Word) / DDR3 Control Word 3 (Command/Address Signals Dr - # ver Characteristrics Control Word) + # DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Wo + # rd) / DDR3 Control Word 3 (Command/Address Signals Driver Characteristri + # cs Control Word) # PSU_DDR_PHY_RDIMMCR0_RC3 0x0 - # DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 (Timing Control Word) + # DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 + # (Timing Control Word) # PSU_DDR_PHY_RDIMMCR0_RC2 0x0 # DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) @@ -4227,8 +5163,8 @@ set psu_ddr_init_data { # DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved # PSU_DDR_PHY_RDIMMCR1_RC12 0x0 - # DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Word) / DDR3 Control Word 11 (Operation Voltage VDD Con - # rol Word) + # DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Wo + # rd) / DDR3 Control Word 11 (Operation Voltage VDD Control Word) # PSU_DDR_PHY_RDIMMCR1_RC11 0x0 # DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) @@ -4237,8 +5173,8 @@ set psu_ddr_init_data { # DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) # PSU_DDR_PHY_RDIMMCR1_RC9 0x0 - # DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Control Word 8 (Additional Input Bus Termination Setting - # Control Word) + # DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Con + # trol Word 8 (Additional Input Bus Termination Setting Control Word) # PSU_DDR_PHY_RDIMMCR1_RC8 0x0 # RDIMM Control Register 1 @@ -4247,23 +5183,25 @@ set psu_ddr_init_data { # Register : MR0 @ 0XFD080180

      # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_MR0_RESERVED_31_8 0x8 + # PSU_DDR_PHY_MR0_RESERVED_31_8 0x6 # CA Terminating Rank # PSU_DDR_PHY_MR0_CATR 0x0 - # Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + # be programmed to 0x0. # PSU_DDR_PHY_MR0_RSVD_6_5 0x1 # Built-in Self-Test for RZQ # PSU_DDR_PHY_MR0_RZQI 0x2 - # Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + # be programmed to 0x0. # PSU_DDR_PHY_MR0_RSVD_2_0 0x0 # LPDDR4 Mode Register 0 - #(OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000830U) */ - mask_write 0XFD080180 0xFFFFFFFF 0x00000830 + #(OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000630U) */ + mask_write 0XFD080180 0xFFFFFFFF 0x00000630 # Register : MR1 @ 0XFD080184

      # Reserved. Return zeroes on reads. @@ -4321,7 +5259,8 @@ set psu_ddr_init_data { # Pull-down Drive Strength # PSU_DDR_PHY_MR3_PDDS 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR3_RSVD 0x0 # Write Postamble Length @@ -4338,7 +5277,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR4_RESERVED_31_16 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR4_RSVD_15_13 0x0 # Write Preamble @@ -4356,7 +5296,8 @@ set psu_ddr_init_data { # CS to Command Latency Mode # PSU_DDR_PHY_MR4_CS2CMDL 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR4_RSVD1 0x0 # Internal VREF Monitor @@ -4371,7 +5312,8 @@ set psu_ddr_init_data { # Maximum Power Down Mode # PSU_DDR_PHY_MR4_MPDM 0x0 - # This is a JEDEC reserved bit and is recommended by JEDEC to be programmed to 0x0. + # This is a JEDEC reserved bit and is recommended by JEDEC to be programme + # d to 0x0. # PSU_DDR_PHY_MR4_RSVD_0 0x0 # DDR4 Mode Register 4 @@ -4382,7 +5324,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR5_RESERVED_31_16 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR5_RSVD 0x0 # Read DBI @@ -4420,13 +5363,15 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR6_RESERVED_31_16 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR6_RSVD_15_13 0x0 # CAS_n to CAS_n command delay for same bank group (tCCD_L) # PSU_DDR_PHY_MR6_TCCDL 0x2 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR6_RSVD_9_8 0x0 # VrefDQ Training Enable @@ -4446,7 +5391,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR11_RESERVED_31_8 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR11_RSVD 0x0 # Power Down Control @@ -4463,7 +5409,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR12_RESERVED_31_8 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR12_RSVD 0x0 # VREF_CA Range Select. @@ -4512,7 +5459,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR14_RESERVED_31_8 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR14_RSVD 0x0 # VREFDQ Range Selects. @@ -4529,7 +5477,8 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_MR22_RESERVED_31_8 0x0 - # These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. + # These are JEDEC reserved bits and are recommended by JEDEC to be program + # med to 0x0. # PSU_DDR_PHY_MR22_RSVD 0x0 # CA ODT termination disable. @@ -4646,14 +5595,16 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_CATR0_RESERVED_31_21 0x0 - # Minimum time (in terms of number of dram clocks) between two consectuve CA calibration command + # Minimum time (in terms of number of dram clocks) between two consectuve + # CA calibration command # PSU_DDR_PHY_CATR0_CACD 0x14 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_CATR0_RESERVED_15_13 0x0 - # Minimum time (in terms of number of dram clocks) PUB should wait before sampling the CA response after Calibration command ha - # been sent to the memory + # Minimum time (in terms of number of dram clocks) PUB should wait before + # sampling the CA response after Calibration command has been sent to the + # memory # PSU_DDR_PHY_CATR0_CAADR 0x10 # CA_1 Response Byte Lane 1 @@ -4665,6 +5616,48 @@ set psu_ddr_init_data { # CA Training Register 0 #(OFFSET, MASK, VALUE) (0XFD080240, 0xFFFFFFFFU ,0x00141054U) */ mask_write 0XFD080240 0xFFFFFFFF 0x00141054 + # Register : DQSDR0 @ 0XFD080250

      + + # Number of delay taps by which the DQS gate LCDL will be updated when DQS + # drift is detected + # PSU_DDR_PHY_DQSDR0_DFTDLY 0x0 + + # Drift Impedance Update + # PSU_DDR_PHY_DQSDR0_DFTZQUP 0x0 + + # Drift DDL Update + # PSU_DDR_PHY_DQSDR0_DFTDDLUP 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DQSDR0_RESERVED_25_22 0x0 + + # Drift Read Spacing + # PSU_DDR_PHY_DQSDR0_DFTRDSPC 0x0 + + # Drift Back-to-Back Reads + # PSU_DDR_PHY_DQSDR0_DFTB2BRD 0x8 + + # Drift Idle Reads + # PSU_DDR_PHY_DQSDR0_DFTIDLRD 0x8 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DQSDR0_RESERVED_11_8 0x0 + + # Gate Pulse Enable + # PSU_DDR_PHY_DQSDR0_DFTGPULSE 0x0 + + # DQS Drift Update Mode + # PSU_DDR_PHY_DQSDR0_DFTUPMODE 0x0 + + # DQS Drift Detection Mode + # PSU_DDR_PHY_DQSDR0_DFTDTMODE 0x0 + + # DQS Drift Detection Enable + # PSU_DDR_PHY_DQSDR0_DFTDTEN 0x0 + + # DQS Drift Register 0 + #(OFFSET, MASK, VALUE) (0XFD080250, 0xFFFFFFFFU ,0x00088000U) */ + mask_write 0XFD080250 0xFFFFFFFF 0x00088000 # Register : BISTLSR @ 0XFD080414

      # LFSR seed for pseudo-random BIST patterns @@ -4727,7 +5720,8 @@ set psu_ddr_init_data { mask_write 0XFD080500 0xFFFFFFFF 0x30000028 # Register : ACIOCR2 @ 0XFD080508

      - # Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL slice + # Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL + # slice # PSU_DDR_PHY_ACIOCR2_CLKGENCLKGATE 0x0 # Clock gating for Output Enable D slices [0] @@ -4842,14 +5836,15 @@ set psu_ddr_init_data { # PSU_DDR_PHY_IOVCR0_ACVREFISELRANGE 0x1 # REFSEL Control for internal AC IOs - # PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x30 + # PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x4e # IO VREF Control Register 0 - #(OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0B0U) */ - mask_write 0XFD080520 0xFFFFFFFF 0x0300B0B0 + #(OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0CEU) */ + mask_write 0XFD080520 0xFFFFFFFF 0x0300B0CE # Register : VTCR0 @ 0XFD080528

      - # Number of ctl_clk required to meet (> 150ns) timing requirements during DRAM DQ VREF training + # Number of ctl_clk required to meet (> 150ns) timing requirements during + # DRAM DQ VREF training # PSU_DDR_PHY_VTCR0_TVREF 0x7 # DRM DQ VREF training Enable @@ -4881,7 +5876,8 @@ set psu_ddr_init_data { mask_write 0XFD080528 0xFFFFFFFF 0xF9032019 # Register : VTCR1 @ 0XFD08052C

      - # Host VREF step size used during VREF training. The register value of N indicates step size of (N+1) + # Host VREF step size used during VREF training. The register value of N i + # ndicates step size of (N+1) # PSU_DDR_PHY_VTCR1_HVSS 0x0 # Reserved. Returns zeroes on reads. @@ -4905,7 +5901,8 @@ set psu_ddr_init_data { # Static Host Vref Rank Enable # PSU_DDR_PHY_VTCR1_SHREN 0x1 - # Number of ctl_clk required to meet (> 200ns) VREF Settling timing requirements during Host IO VREF training + # Number of ctl_clk required to meet (> 200ns) VREF Settling timing requir + # ements during Host IO VREF training # PSU_DDR_PHY_VTCR1_TVREFIO 0x7 # Eye LCDL Offset value for VREF training @@ -4934,13 +5931,15 @@ set psu_ddr_init_data { # Reserved. Return zeroes on reads. # PSU_DDR_PHY_ACBDLR1_RESERVED_23_22 0x0 - # Delay select for the BDL on Address A[16]. In DDR3 mode this pin is connected to WE. + # Delay select for the BDL on Address A[16]. In DDR3 mode this pin is conn + # ected to WE. # PSU_DDR_PHY_ACBDLR1_A16BD 0x0 # Reserved. Return zeroes on reads. # PSU_DDR_PHY_ACBDLR1_RESERVED_15_14 0x0 - # Delay select for the BDL on Address A[17]. When not in DDR4 modemode this pin is connected to CAS. + # Delay select for the BDL on Address A[17]. When not in DDR4 modemode thi + # s pin is connected to CAS. # PSU_DDR_PHY_ACBDLR1_A17BD 0x0 # Reserved. Return zeroes on reads. @@ -5109,7 +6108,7 @@ set psu_ddr_init_data { # PSU_DDR_PHY_ZQCR_PGWAIT_FRQB 0x11 # Programmable Wait for Frequency A - # PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x11 + # PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x15 # ZQ VREF Pad Enable # PSU_DDR_PHY_ZQCR_ZQREFPEN 0x0 @@ -5139,8 +6138,8 @@ set psu_ddr_init_data { # PSU_DDR_PHY_ZQCR_ZQPD 0x0 # ZQ Impedance Control Register - #(OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008A2A58U) */ - mask_write 0XFD080680 0xFFFFFFFF 0x008A2A58 + #(OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008AAA58U) */ + mask_write 0XFD080680 0xFFFFFFFF 0x008AAA58 # Register : ZQ0PR0 @ 0XFD080684

      # Pull-down drive strength ZCTRL over-ride enable @@ -5158,7 +6157,8 @@ set psu_ddr_init_data { # Calibration segment bypass # PSU_DDR_PHY_ZQ0PR0_ZSEGBYP 0x0 - # VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB + # VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + # is driven by the PUB # PSU_DDR_PHY_ZQ0PR0_ZLE_MODE 0x0 # Termination adjustment @@ -5174,17 +6174,19 @@ set psu_ddr_init_data { # PSU_DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT 0x7 # HOST Impedance Divide Ratio - # PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x7 + # PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x9 - # Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) + # Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + # ve strength calibration) # PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD 0xd - # Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) + # Impedance Divide Ratio (pullup drive calibration during asymmetric drive + # strength calibration) # PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU 0xd # ZQ n Impedance Control Program Register 0 - #(OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000077DDU) */ - mask_write 0XFD080684 0xFFFFFFFF 0x000077DD + #(OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000079DDU) */ + mask_write 0XFD080684 0xFFFFFFFF 0x000079DD # Register : ZQ0OR0 @ 0XFD080694

      # Reserved. Return zeros on reads. @@ -5236,7 +6238,8 @@ set psu_ddr_init_data { # Calibration segment bypass # PSU_DDR_PHY_ZQ1PR0_ZSEGBYP 0x0 - # VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB + # VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + # is driven by the PUB # PSU_DDR_PHY_ZQ1PR0_ZLE_MODE 0x0 # Termination adjustment @@ -5254,10 +6257,12 @@ set psu_ddr_init_data { # HOST Impedance Divide Ratio # PSU_DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT 0xb - # Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) + # Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + # ve strength calibration) # PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD 0xd - # Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) + # Impedance Divide Ratio (pullup drive calibration during asymmetric drive + # strength calibration) # PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU 0xb # ZQ n Impedance Control Program Register 0 @@ -5277,7 +6282,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX0GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX0GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -5378,17 +6384,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX0GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX0GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080714 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080714 0xFFFFFFFF 0x09095555 # Register : DX0GCR6 @ 0XFD080718

      # Reserved. Returns zeros on reads. @@ -5418,52 +6424,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080718, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080718 0xFFFFFFFF 0x09092B2B - # Register : DX0LCDLR2 @ 0XFD080788

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX0LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX0LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX0LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX0LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080788, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080788 0xFFFFFFFF 0x00000000 - # Register : DX0GTR0 @ 0XFD0807C0

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX0GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX0GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX0GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX0GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX0GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX0GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX0GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX0GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD0807C0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD0807C0 0xFFFFFFFF 0x00020000 # Register : DX1GCR0 @ 0XFD080800

      # Calibration Bypass @@ -5478,7 +6438,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX1GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX1GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -5579,17 +6540,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX1GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX1GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080814 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080814 0xFFFFFFFF 0x09095555 # Register : DX1GCR6 @ 0XFD080818

      # Reserved. Returns zeros on reads. @@ -5619,52 +6580,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080818, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080818 0xFFFFFFFF 0x09092B2B - # Register : DX1LCDLR2 @ 0XFD080888

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX1LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX1LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX1LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX1LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080888, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080888 0xFFFFFFFF 0x00000000 - # Register : DX1GTR0 @ 0XFD0808C0

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX1GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX1GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX1GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX1GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX1GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX1GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX1GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX1GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD0808C0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD0808C0 0xFFFFFFFF 0x00020000 # Register : DX2GCR0 @ 0XFD080900

      # Calibration Bypass @@ -5679,7 +6594,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX2GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX2GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -5815,17 +6731,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX2GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX2GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080914 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080914 0xFFFFFFFF 0x09095555 # Register : DX2GCR6 @ 0XFD080918

      # Reserved. Returns zeros on reads. @@ -5855,52 +6771,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080918, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080918 0xFFFFFFFF 0x09092B2B - # Register : DX2LCDLR2 @ 0XFD080988

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX2LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX2LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX2LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX2LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080988, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080988 0xFFFFFFFF 0x00000000 - # Register : DX2GTR0 @ 0XFD0809C0

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX2GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX2GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX2GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX2GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX2GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX2GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX2GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX2GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD0809C0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD0809C0 0xFFFFFFFF 0x00020000 # Register : DX3GCR0 @ 0XFD080A00

      # Calibration Bypass @@ -5915,7 +6785,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX3GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX3GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -6051,17 +6922,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX3GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX3GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080A14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080A14 0xFFFFFFFF 0x09095555 # Register : DX3GCR6 @ 0XFD080A18

      # Reserved. Returns zeros on reads. @@ -6091,52 +6962,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080A18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080A18 0xFFFFFFFF 0x09092B2B - # Register : DX3LCDLR2 @ 0XFD080A88

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX3LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX3LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX3LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX3LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080A88, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080A88 0xFFFFFFFF 0x00000000 - # Register : DX3GTR0 @ 0XFD080AC0

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX3GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX3GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX3GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX3GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX3GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX3GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX3GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX3GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080AC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080AC0 0xFFFFFFFF 0x00020000 # Register : DX4GCR0 @ 0XFD080B00

      # Calibration Bypass @@ -6151,7 +6976,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX4GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX4GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -6287,17 +7113,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX4GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX4GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080B14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080B14 0xFFFFFFFF 0x09095555 # Register : DX4GCR6 @ 0XFD080B18

      # Reserved. Returns zeros on reads. @@ -6327,52 +7153,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080B18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080B18 0xFFFFFFFF 0x09092B2B - # Register : DX4LCDLR2 @ 0XFD080B88

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX4LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX4LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX4LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX4LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080B88, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080B88 0xFFFFFFFF 0x00000000 - # Register : DX4GTR0 @ 0XFD080BC0

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX4GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX4GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX4GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX4GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX4GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX4GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX4GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX4GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080BC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080BC0 0xFFFFFFFF 0x00020000 # Register : DX5GCR0 @ 0XFD080C00

      # Calibration Bypass @@ -6387,7 +7167,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX5GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX5GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -6523,17 +7304,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX5GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX5GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080C14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080C14 0xFFFFFFFF 0x09095555 # Register : DX5GCR6 @ 0XFD080C18

      # Reserved. Returns zeros on reads. @@ -6563,52 +7344,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080C18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080C18 0xFFFFFFFF 0x09092B2B - # Register : DX5LCDLR2 @ 0XFD080C88

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX5LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX5LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX5LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX5LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080C88, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080C88 0xFFFFFFFF 0x00000000 - # Register : DX5GTR0 @ 0XFD080CC0

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX5GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX5GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX5GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX5GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX5GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX5GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX5GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX5GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080CC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080CC0 0xFFFFFFFF 0x00020000 # Register : DX6GCR0 @ 0XFD080D00

      # Calibration Bypass @@ -6623,7 +7358,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX6GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX6GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -6759,17 +7495,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX6GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX6GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080D14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080D14 0xFFFFFFFF 0x09095555 # Register : DX6GCR6 @ 0XFD080D18

      # Reserved. Returns zeros on reads. @@ -6799,52 +7535,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080D18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080D18 0xFFFFFFFF 0x09092B2B - # Register : DX6LCDLR2 @ 0XFD080D88

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX6LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX6LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX6LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX6LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080D88, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080D88 0xFFFFFFFF 0x00000000 - # Register : DX6GTR0 @ 0XFD080DC0

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX6GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX6GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX6GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX6GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX6GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX6GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX6GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX6GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080DC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080DC0 0xFFFFFFFF 0x00020000 # Register : DX7GCR0 @ 0XFD080E00

      # Calibration Bypass @@ -6859,7 +7549,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX7GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX7GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -6995,17 +7686,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX7GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX7GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080E14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080E14 0xFFFFFFFF 0x09095555 # Register : DX7GCR6 @ 0XFD080E18

      # Reserved. Returns zeros on reads. @@ -7035,52 +7726,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080E18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080E18 0xFFFFFFFF 0x09092B2B - # Register : DX7LCDLR2 @ 0XFD080E88

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX7LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX7LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX7LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX7LCDLR2_DQSGD 0xa - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080E88, 0xFFFFFFFFU ,0x0000000AU) */ - mask_write 0XFD080E88 0xFFFFFFFF 0x0000000A - # Register : DX7GTR0 @ 0XFD080EC0

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX7GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX7GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX7GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX7GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX7GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX7GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX7GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX7GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080EC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080EC0 0xFFFFFFFF 0x00020000 # Register : DX8GCR0 @ 0XFD080F00

      # Calibration Bypass @@ -7095,7 +7740,8 @@ set psu_ddr_init_data { # DQS Duty Cycle Correction # PSU_DDR_PHY_DX8GCR0_DQSDCC 0x0 - # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY + # Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + # input for the respective bypte lane of the PHY # PSU_DDR_PHY_DX8GCR0_RDDLY 0x8 # Reserved. Return zeroes on reads. @@ -7231,17 +7877,17 @@ set psu_ddr_init_data { # PSU_DDR_PHY_DX8GCR5_RESERVED_15 0x0 # Byte Lane internal VREF Select for Rank 1 - # PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x4f + # PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x55 # Reserved. Returns zeros on reads. # PSU_DDR_PHY_DX8GCR5_RESERVED_7 0x0 # Byte Lane internal VREF Select for Rank 0 - # PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x4f + # PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x55 # DATX8 n General Configuration Register 5 - #(OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09094F4FU) */ - mask_write 0XFD080F14 0xFFFFFFFF 0x09094F4F + #(OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09095555U) */ + mask_write 0XFD080F14 0xFFFFFFFF 0x09095555 # Register : DX8GCR6 @ 0XFD080F18

      # Reserved. Returns zeros on reads. @@ -7271,52 +7917,6 @@ set psu_ddr_init_data { # DATX8 n General Configuration Register 6 #(OFFSET, MASK, VALUE) (0XFD080F18, 0xFFFFFFFFU ,0x09092B2BU) */ mask_write 0XFD080F18 0xFFFFFFFF 0x09092B2B - # Register : DX8LCDLR2 @ 0XFD080F88

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX8LCDLR2_RESERVED_31_25 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX8LCDLR2_RESERVED_24_16 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX8LCDLR2_RESERVED_15_9 0x0 - - # Read DQS Gating Delay - # PSU_DDR_PHY_DX8LCDLR2_DQSGD 0x0 - - # DATX8 n Local Calibrated Delay Line Register 2 - #(OFFSET, MASK, VALUE) (0XFD080F88, 0xFFFFFFFFU ,0x00000000U) */ - mask_write 0XFD080F88 0xFFFFFFFF 0x00000000 - # Register : DX8GTR0 @ 0XFD080FC0

      - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX8GTR0_RESERVED_31_24 0x0 - - # DQ Write Path Latency Pipeline - # PSU_DDR_PHY_DX8GTR0_WDQSL 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX8GTR0_RESERVED_23_20 0x0 - - # Write Leveling System Latency - # PSU_DDR_PHY_DX8GTR0_WLSL 0x2 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX8GTR0_RESERVED_15_13 0x0 - - # Reserved. Caution, do not write to this register field. - # PSU_DDR_PHY_DX8GTR0_RESERVED_12_8 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_DX8GTR0_RESERVED_7_5 0x0 - - # DQS Gating System Latency - # PSU_DDR_PHY_DX8GTR0_DGSL 0x0 - - # DATX8 n General Timing Register 0 - #(OFFSET, MASK, VALUE) (0XFD080FC0, 0xFFFFFFFFU ,0x00020000U) */ - mask_write 0XFD080FC0 0xFFFFFFFF 0x00020000 # Register : DX8SL0OSC @ 0XFD081400

      # Reserved. Return zeroes on reads. @@ -7331,7 +7931,8 @@ set psu_ddr_init_data { # Enable Clock Gating for DX ctl_clk # PSU_DDR_PHY_DX8SL0OSC_GATEDXCTLCLK 0x2 - # Selects the level to which clocks will be stalled when clock gating is enabled. + # Selects the level to which clocks will be stalled when clock gating is e + # nabled. # PSU_DDR_PHY_DX8SL0OSC_CLKLEVEL 0x0 # Loopback Mode @@ -7376,9 +7977,54 @@ set psu_ddr_init_data { # Oscillator Enable # PSU_DDR_PHY_DX8SL0OSC_OSCEN 0x0 - # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register + # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + # opback, and Gated Clock Control Register #(OFFSET, MASK, VALUE) (0XFD081400, 0xFFFFFFFFU ,0x2A019FFEU) */ mask_write 0XFD081400 0xFFFFFFFF 0x2A019FFE + # Register : DX8SL0PLLCR0 @ 0XFD081404

      + + # PLL Bypass + # PSU_DDR_PHY_DX8SL0PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SL0PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SL0PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SL0PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SL0PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SL0PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SL0PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SL0PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SL0PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SL0PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SL0PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SL0PLLCR0_DTC 0x0 + + # DAXT8 0-1 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD081404, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD081404 0xFFFFFFFF 0x01100000 # Register : DX8SL0DQSCTL @ 0XFD08141C

      # Reserved. Return zeroes on reads. @@ -7516,7 +8162,8 @@ set psu_ddr_init_data { # Enable Clock Gating for DX ctl_clk # PSU_DDR_PHY_DX8SL1OSC_GATEDXCTLCLK 0x2 - # Selects the level to which clocks will be stalled when clock gating is enabled. + # Selects the level to which clocks will be stalled when clock gating is e + # nabled. # PSU_DDR_PHY_DX8SL1OSC_CLKLEVEL 0x0 # Loopback Mode @@ -7561,9 +8208,54 @@ set psu_ddr_init_data { # Oscillator Enable # PSU_DDR_PHY_DX8SL1OSC_OSCEN 0x0 - # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register + # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + # opback, and Gated Clock Control Register #(OFFSET, MASK, VALUE) (0XFD081440, 0xFFFFFFFFU ,0x2A019FFEU) */ mask_write 0XFD081440 0xFFFFFFFF 0x2A019FFE + # Register : DX8SL1PLLCR0 @ 0XFD081444

      + + # PLL Bypass + # PSU_DDR_PHY_DX8SL1PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SL1PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SL1PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SL1PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SL1PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SL1PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SL1PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SL1PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SL1PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SL1PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SL1PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SL1PLLCR0_DTC 0x0 + + # DAXT8 0-1 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD081444, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD081444 0xFFFFFFFF 0x01100000 # Register : DX8SL1DQSCTL @ 0XFD08145C

      # Reserved. Return zeroes on reads. @@ -7701,7 +8393,8 @@ set psu_ddr_init_data { # Enable Clock Gating for DX ctl_clk # PSU_DDR_PHY_DX8SL2OSC_GATEDXCTLCLK 0x2 - # Selects the level to which clocks will be stalled when clock gating is enabled. + # Selects the level to which clocks will be stalled when clock gating is e + # nabled. # PSU_DDR_PHY_DX8SL2OSC_CLKLEVEL 0x0 # Loopback Mode @@ -7746,9 +8439,54 @@ set psu_ddr_init_data { # Oscillator Enable # PSU_DDR_PHY_DX8SL2OSC_OSCEN 0x0 - # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register + # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + # opback, and Gated Clock Control Register #(OFFSET, MASK, VALUE) (0XFD081480, 0xFFFFFFFFU ,0x2A019FFEU) */ mask_write 0XFD081480 0xFFFFFFFF 0x2A019FFE + # Register : DX8SL2PLLCR0 @ 0XFD081484

      + + # PLL Bypass + # PSU_DDR_PHY_DX8SL2PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SL2PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SL2PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SL2PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SL2PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SL2PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SL2PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SL2PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SL2PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SL2PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SL2PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SL2PLLCR0_DTC 0x0 + + # DAXT8 0-1 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD081484, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD081484 0xFFFFFFFF 0x01100000 # Register : DX8SL2DQSCTL @ 0XFD08149C

      # Reserved. Return zeroes on reads. @@ -7886,7 +8624,8 @@ set psu_ddr_init_data { # Enable Clock Gating for DX ctl_clk # PSU_DDR_PHY_DX8SL3OSC_GATEDXCTLCLK 0x2 - # Selects the level to which clocks will be stalled when clock gating is enabled. + # Selects the level to which clocks will be stalled when clock gating is e + # nabled. # PSU_DDR_PHY_DX8SL3OSC_CLKLEVEL 0x0 # Loopback Mode @@ -7931,9 +8670,54 @@ set psu_ddr_init_data { # Oscillator Enable # PSU_DDR_PHY_DX8SL3OSC_OSCEN 0x0 - # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register + # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + # opback, and Gated Clock Control Register #(OFFSET, MASK, VALUE) (0XFD0814C0, 0xFFFFFFFFU ,0x2A019FFEU) */ mask_write 0XFD0814C0 0xFFFFFFFF 0x2A019FFE + # Register : DX8SL3PLLCR0 @ 0XFD0814C4

      + + # PLL Bypass + # PSU_DDR_PHY_DX8SL3PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SL3PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SL3PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SL3PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SL3PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SL3PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SL3PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SL3PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SL3PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SL3PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SL3PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SL3PLLCR0_DTC 0x0 + + # DAXT8 0-1 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD0814C4, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD0814C4 0xFFFFFFFF 0x01100000 # Register : DX8SL3DQSCTL @ 0XFD0814DC

      # Reserved. Return zeroes on reads. @@ -8071,7 +8855,8 @@ set psu_ddr_init_data { # Enable Clock Gating for DX ctl_clk # PSU_DDR_PHY_DX8SL4OSC_GATEDXCTLCLK 0x2 - # Selects the level to which clocks will be stalled when clock gating is enabled. + # Selects the level to which clocks will be stalled when clock gating is e + # nabled. # PSU_DDR_PHY_DX8SL4OSC_CLKLEVEL 0x0 # Loopback Mode @@ -8116,9 +8901,54 @@ set psu_ddr_init_data { # Oscillator Enable # PSU_DDR_PHY_DX8SL4OSC_OSCEN 0x0 - # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register + # DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + # opback, and Gated Clock Control Register #(OFFSET, MASK, VALUE) (0XFD081500, 0xFFFFFFFFU ,0x2A019FFEU) */ mask_write 0XFD081500 0xFFFFFFFF 0x2A019FFE + # Register : DX8SL4PLLCR0 @ 0XFD081504

      + + # PLL Bypass + # PSU_DDR_PHY_DX8SL4PLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SL4PLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SL4PLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SL4PLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SL4PLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SL4PLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SL4PLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SL4PLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SL4PLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SL4PLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SL4PLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SL4PLLCR0_DTC 0x0 + + # DAXT8 0-1 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD081504, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD081504 0xFFFFFFFF 0x01100000 # Register : DX8SL4DQSCTL @ 0XFD08151C

      # Reserved. Return zeroes on reads. @@ -8242,6 +9072,50 @@ set psu_ddr_init_data { # DATX8 0-1 I/O Configuration Register #(OFFSET, MASK, VALUE) (0XFD081530, 0xFFFFFFFFU ,0x70800000U) */ mask_write 0XFD081530 0xFFFFFFFF 0x70800000 + # Register : DX8SLbPLLCR0 @ 0XFD0817C4

      + + # PLL Bypass + # PSU_DDR_PHY_DX8SLBPLLCR0_PLLBYP 0x0 + + # PLL Reset + # PSU_DDR_PHY_DX8SLBPLLCR0_PLLRST 0x0 + + # PLL Power Down + # PSU_DDR_PHY_DX8SLBPLLCR0_PLLPD 0x0 + + # Reference Stop Mode + # PSU_DDR_PHY_DX8SLBPLLCR0_RSTOPM 0x0 + + # PLL Frequency Select + # PSU_DDR_PHY_DX8SLBPLLCR0_FRQSEL 0x1 + + # Relock Mode + # PSU_DDR_PHY_DX8SLBPLLCR0_RLOCKM 0x0 + + # Charge Pump Proportional Current Control + # PSU_DDR_PHY_DX8SLBPLLCR0_CPPC 0x8 + + # Charge Pump Integrating Current Control + # PSU_DDR_PHY_DX8SLBPLLCR0_CPIC 0x0 + + # Gear Shift + # PSU_DDR_PHY_DX8SLBPLLCR0_GSHIFT 0x0 + + # Reserved. Return zeroes on reads. + # PSU_DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9 0x0 + + # Analog Test Enable (ATOEN) + # PSU_DDR_PHY_DX8SLBPLLCR0_ATOEN 0x0 + + # Analog Test Control + # PSU_DDR_PHY_DX8SLBPLLCR0_ATC 0x0 + + # Digital Test Control + # PSU_DDR_PHY_DX8SLBPLLCR0_DTC 0x0 + + # DAXT8 0-8 PLL Control Register 0 + #(OFFSET, MASK, VALUE) (0XFD0817C4, 0xFFFFFFFFU ,0x01100000U) */ + mask_write 0XFD0817C4 0xFFFFFFFF 0x01100000 # Register : DX8SLbDQSCTL @ 0XFD0817DC

      # Reserved. Return zeroes on reads. @@ -8289,107 +9163,35 @@ set psu_ddr_init_data { # DATX8 0-8 DQS Control Register #(OFFSET, MASK, VALUE) (0XFD0817DC, 0xFFFFFFFFU ,0x012643C4U) */ mask_write 0XFD0817DC 0xFFFFFFFF 0x012643C4 - # Register : PIR @ 0XFD080004

      +} - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_PIR_RESERVED_31 0x0 - - # Impedance Calibration Bypass - # PSU_DDR_PHY_PIR_ZCALBYP 0x0 - - # Digital Delay Line (DDL) Calibration Pause - # PSU_DDR_PHY_PIR_DCALPSE 0x0 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_PIR_RESERVED_28_21 0x0 - - # Write DQS2DQ Training - # PSU_DDR_PHY_PIR_DQS2DQ 0x0 - - # RDIMM Initialization - # PSU_DDR_PHY_PIR_RDIMMINIT 0x0 - - # Controller DRAM Initialization - # PSU_DDR_PHY_PIR_CTLDINIT 0x1 - - # VREF Training - # PSU_DDR_PHY_PIR_VREF 0x0 - - # Static Read Training - # PSU_DDR_PHY_PIR_SRD 0x0 - - # Write Data Eye Training - # PSU_DDR_PHY_PIR_WREYE 0x0 - - # Read Data Eye Training - # PSU_DDR_PHY_PIR_RDEYE 0x0 - - # Write Data Bit Deskew - # PSU_DDR_PHY_PIR_WRDSKW 0x0 - - # Read Data Bit Deskew - # PSU_DDR_PHY_PIR_RDDSKW 0x0 - - # Write Leveling Adjust - # PSU_DDR_PHY_PIR_WLADJ 0x0 - - # Read DQS Gate Training - # PSU_DDR_PHY_PIR_QSGATE 0x0 - - # Write Leveling - # PSU_DDR_PHY_PIR_WL 0x0 - - # DRAM Initialization - # PSU_DDR_PHY_PIR_DRAMINIT 0x0 - - # DRAM Reset (DDR3/DDR4/LPDDR4 Only) - # PSU_DDR_PHY_PIR_DRAMRST 0x0 - - # PHY Reset - # PSU_DDR_PHY_PIR_PHYRST 0x1 - - # Digital Delay Line (DDL) Calibration - # PSU_DDR_PHY_PIR_DCAL 0x1 - - # PLL Initialiazation - # PSU_DDR_PHY_PIR_PLLINIT 0x1 - - # Reserved. Return zeroes on reads. - # PSU_DDR_PHY_PIR_RESERVED_3 0x0 - - # CA Training - # PSU_DDR_PHY_PIR_CA 0x0 - - # Impedance Calibration - # PSU_DDR_PHY_PIR_ZCAL 0x1 - - # Initialization Trigger - # PSU_DDR_PHY_PIR_INIT 0x1 - - # PHY Initialization Register - #(OFFSET, MASK, VALUE) (0XFD080004, 0xFFFFFFFFU ,0x00040073U) */ - mask_write 0XFD080004 0xFFFFFFFF 0x00040073 +set psu_ddr_qos_init_data { } set psu_mio_init_data { # : MIO PROGRAMMING # Register : MIO_PIN_0 @ 0XFF180000

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- + # (QSPI Clock) # PSU_IOU_SLCR_MIO_PIN_0_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_0_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[0]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[0]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[0]- (Test Scan Port) = test_scan, Output, test_scan_out[0 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_0_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - # ) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - # lk- (Trace Port Clock) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + # TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + # lk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Out + # put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + # lk- (Trace Port Clock) # PSU_IOU_SLCR_MIO_PIN_0_L3_SEL 0 # Configures MIO Pin 0 peripheral interface mapping. S @@ -8397,22 +9199,26 @@ set psu_mio_init_data { mask_write 0XFF180000 0x000000FE 0x00000002 # Register : MIO_PIN_1 @ 0XFF180004

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Data - # us) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (Q + # SPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) # PSU_IOU_SLCR_MIO_PIN_1_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_1_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[1]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[1]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[1]- (Test Scan Port) = test_scan, Output, test_scan_out[1 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_1_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_o - # t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - # Signal) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + # TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Ou + # tput, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + # receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + # Signal) # PSU_IOU_SLCR_MIO_PIN_1_L3_SEL 0 # Configures MIO Pin 1 peripheral interface mapping @@ -8420,20 +9226,25 @@ set psu_mio_init_data { mask_write 0XFF180004 0x000000FE 0x00000002 # Register : MIO_PIN_2 @ 0XFF180008

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI + # Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) # PSU_IOU_SLCR_MIO_PIN_2_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_2_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[2]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[2]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[2]- (Test Scan Port) = test_scan, Output, test_scan_out[2 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_2_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, Input, ttc2_clk_in - # (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + # TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, I + # nput, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + # rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_2_L3_SEL 0 # Configures MIO Pin 2 peripheral interface mapping @@ -8441,21 +9252,26 @@ set psu_mio_init_data { mask_write 0XFF180008 0x000000FE 0x00000002 # Register : MIO_PIN_3 @ 0XFF18000C

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI + # Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) # PSU_IOU_SLCR_MIO_PIN_3_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_3_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[3]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[3]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[3]- (Test Scan Port) = test_scan, Output, test_scan_out[3 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_3_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - # - (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - # output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + # TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + # , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- + # (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + # output) 7= trace, Output, tracedq[1]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_3_L3_SEL 0 # Configures MIO Pin 3 peripheral interface mapping @@ -8463,22 +9279,26 @@ set psu_mio_init_data { mask_write 0XFF18000C 0x000000FE 0x00000002 # Register : MIO_PIN_4 @ 0XFF180010

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Data - # us) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- ( + # QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) # PSU_IOU_SLCR_MIO_PIN_4_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_4_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[4]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[4]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[4]- (Test Scan Port) = test_scan, Output, test_scan_out[4 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_4_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - # - (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - # utput, tracedq[2]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + # tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + # 0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cloc + # k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + # utput, tracedq[2]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_4_L3_SEL 0 # Configures MIO Pin 4 peripheral interface mapping @@ -8486,21 +9306,26 @@ set psu_mio_init_data { mask_write 0XFF180010 0x000000FE 0x00000002 # Register : MIO_PIN_5 @ 0XFF180014

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- (QSPI Slave Select) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- + # (QSPI Slave Select) # PSU_IOU_SLCR_MIO_PIN_5_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_5_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[5]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[5]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[5]- (Test Scan Port) = test_scan, Output, test_scan_out[5 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_5_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - # si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - # trace, Output, tracedq[3]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + # atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + # spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC + # Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + # trace, Output, tracedq[3]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_5_L3_SEL 0 # Configures MIO Pin 5 peripheral interface mapping @@ -8508,21 +9333,26 @@ set psu_mio_init_data { mask_write 0XFF180014 0x000000FE 0x00000002 # Register : MIO_PIN_6 @ 0XFF180018

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_l + # pbk- (QSPI Clock to be fed-back) # PSU_IOU_SLCR_MIO_PIN_6_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_6_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[6]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[6]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[6]- (Test Scan Port) = test_scan, Output, test_scan_out[6 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_6_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1 - # sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, - # Output, tracedq[4]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + # ch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= s + # pi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TT + # C Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, + # Output, tracedq[4]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_6_L3_SEL 0 # Configures MIO Pin 6 peripheral interface mapping @@ -8530,21 +9360,26 @@ set psu_mio_init_data { mask_write 0XFF180018 0x000000FE 0x00000002 # Register : MIO_PIN_7 @ 0XFF18001C

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_upper- (QSPI Slave Select upper) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_ + # upper- (QSPI Slave Select upper) # PSU_IOU_SLCR_MIO_PIN_7_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_7_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[7]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[7]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[7]- (Test Scan Port) = test_scan, Output, test_scan_out[7 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_7_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - # tc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, - # racedq[5]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + # Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Ma + # ster Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua + # 0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, t + # racedq[5]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_7_L3_SEL 0 # Configures MIO Pin 7 peripheral interface mapping @@ -8552,22 +9387,27 @@ set psu_mio_init_data { mask_write 0XFF18001C 0x000000FE 0x00000002 # Register : MIO_PIN_8 @ 0XFF180020

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - # [0]- (QSPI Upper Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0 + # ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper D + # atabus) # PSU_IOU_SLCR_MIO_PIN_8_L0_SEL 1 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_8_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[8]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[8]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[8]- (Test Scan Port) = test_scan, Output, test_scan_out[8 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_8_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc - # , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tr - # ce Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + # tch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Maste + # r Selects) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_ + # txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tra + # ce Port Databus) # PSU_IOU_SLCR_MIO_PIN_8_L3_SEL 0 # Configures MIO Pin 8 peripheral interface mapping @@ -8575,22 +9415,29 @@ set psu_mio_init_data { mask_write 0XFF180020 0x000000FE 0x00000002 # Register : MIO_PIN_9 @ 0XFF180024

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - # [1]- (QSPI Upper Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1 + # ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper D + # atabus) # PSU_IOU_SLCR_MIO_PIN_9_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + # ND chip enable) # PSU_IOU_SLCR_MIO_PIN_9_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[9]- (Test Scan Port) = test_scan, Outp - # t, test_scan_out[9]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[9]- (Test Scan Port) = test_scan, Output, test_scan_out[9 + # ]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_9_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - # utput, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (U - # RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= g + # pio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + # atch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master S + # elects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, + # Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UA + # RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Data + # bus) # PSU_IOU_SLCR_MIO_PIN_9_L3_SEL 0 # Configures MIO Pin 9 peripheral interface mapping @@ -8598,22 +9445,28 @@ set psu_mio_init_data { mask_write 0XFF180024 0x000000FE 0x00000002 # Register : MIO_PIN_10 @ 0XFF180028

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - # [2]- (QSPI Upper Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2 + # ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper D + # atabus) # PSU_IOU_SLCR_MIO_PIN_10_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + # AND Ready/Busy) # PSU_IOU_SLCR_MIO_PIN_10_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[10]- (Test Scan Port) = test_scan, Out - # ut, test_scan_out[10]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[10]- (Test Scan Port) = test_scan, Output, test_scan_out[ + # 10]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_10_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - # o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - # t, tracedq[8]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + # i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + # ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + # t, tracedq[8]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_10_L3_SEL 0 # Configures MIO Pin 10 peripheral interface mapping @@ -8621,22 +9474,28 @@ set psu_mio_init_data { mask_write 0XFF180028 0x000000FE 0x00000002 # Register : MIO_PIN_11 @ 0XFF18002C

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - # [3]- (QSPI Upper Databus) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3 + # ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper D + # atabus) # PSU_IOU_SLCR_MIO_PIN_11_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + # AND Ready/Busy) # PSU_IOU_SLCR_MIO_PIN_11_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[11]- (Test Scan Port) = test_scan, Out - # ut, test_scan_out[11]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[11]- (Test Scan Port) = test_scan, Output, test_scan_out[ + # 11]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_11_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - # i1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - # tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + # 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + # TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + # tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_11_L3_SEL 0 # Configures MIO Pin 11 peripheral interface mapping @@ -8644,22 +9503,27 @@ set psu_mio_init_data { mask_write 0XFF18002C 0x000000FE 0x00000002 # Register : MIO_PIN_12 @ 0XFF180030

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_ + # upper- (QSPI Upper Clock) # PSU_IOU_SLCR_MIO_PIN_12_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - # + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + # ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) # PSU_IOU_SLCR_MIO_PIN_12_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[12]- (Test Scan Port) = test_scan, Out - # ut, test_scan_out[12]- (Test Scan Port) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + # , test_scan_in[12]- (Test Scan Port) = test_scan, Output, test_scan_out[ + # 12]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_12_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cl - # ck) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trac - # dq[10]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJT + # AG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_ + # sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, O + # utput, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace + # dq[10]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_12_L3_SEL 0 # Configures MIO Pin 12 peripheral interface mapping @@ -8670,19 +9534,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_13_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NAND chip enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NA + # ND chip enable) # PSU_IOU_SLCR_MIO_PIN_13_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, test_scan_out[13]- (Test Scan Port - # 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, + # test_scan_out[13]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_13_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave - # out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Dat - # bus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTA + # G TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, + # Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UAR + # T receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Data + # bus) # PSU_IOU_SLCR_MIO_PIN_13_L3_SEL 0 # Configures MIO Pin 13 peripheral interface mapping @@ -8693,18 +9562,23 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_14_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND Command Latch Enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND + # Command Latch Enable) # PSU_IOU_SLCR_MIO_PIN_14_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, test_scan_out[14]- (Test Scan Port - # 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, + # test_scan_out[14]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_14_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_ - # n- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJT + # AG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, + # Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver + # serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_14_L3_SEL 2 # Configures MIO Pin 14 peripheral interface mapping @@ -8715,19 +9589,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_15_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND Address Latch Enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND + # Address Latch Enable) # PSU_IOU_SLCR_MIO_PIN_15_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, test_scan_out[15]- (Test Scan Port - # 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, + # test_scan_out[15]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_15_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out - # 0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seri - # l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJT + # AG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outp + # ut, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_ou + # t- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seria + # l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_15_L3_SEL 2 # Configures MIO Pin 15 peripheral interface mapping @@ -8738,20 +9617,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_16_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_16_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, test_scan_out[16]- (Test Scan Port - # 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, + # test_scan_out[16]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_16_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - # so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - # Output, tracedq[14]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + # pi0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + # ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + # Output, tracedq[14]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_16_L3_SEL 2 # Configures MIO Pin 16 peripheral interface mapping @@ -8762,20 +9645,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_17_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_17_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, test_scan_out[17]- (Test Scan Port - # 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, + # test_scan_out[17]- (Test Scan Port) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_17_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - # 0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - # 7= trace, Output, tracedq[15]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + # = spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + # TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + # 7= trace, Output, tracedq[15]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_17_L3_SEL 2 # Configures MIO Pin 17 peripheral interface mapping @@ -8786,19 +9673,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_18_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_18_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, test_scan_out[18]- (Test Scan Port - # 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, + # test_scan_out[18]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + # Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_18_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - # o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + # i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + # ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_18_L3_SEL 6 # Configures MIO Pin 18 peripheral interface mapping @@ -8809,19 +9701,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_19_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_19_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, test_scan_out[19]- (Test Scan Port - # 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, + # test_scan_out[19]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + # Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_19_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - # ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + # Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= + # ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_19_L3_SEL 6 # Configures MIO Pin 19 peripheral interface mapping @@ -8832,19 +9729,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_20_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_20_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - # bit Data bus) 2= test_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, test_scan_out[20]- (Test Scan Port - # 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= t + # est_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, + # test_scan_out[20]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + # Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_20_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= t - # c1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + # ter Selects) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua + # 1_txd- (UART transmitter serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_20_L3_SEL 6 # Configures MIO Pin 20 peripheral interface mapping @@ -8855,20 +9757,25 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_21_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_21_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - # Indicator) 2= test_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, test_scan_out[21]- (Test Scan Port) - # = csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + # mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= tes + # t_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, t + # est_scan_out[21]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU E + # xt Tamper) # PSU_IOU_SLCR_MIO_PIN_21_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - # Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- - # UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + # Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc + # 1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- ( + # UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_21_L3_SEL 6 # Configures MIO Pin 21 peripheral interface mapping @@ -8879,18 +9786,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_22_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAND Write Enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAN + # D Write Enable) # PSU_IOU_SLCR_MIO_PIN_22_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- - # (Test Scan Port) = test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + # (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- (Test Scan Port) = + # test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, c + # su_ext_tamper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_22_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - # 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - # sed + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + # spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + # TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + # sed # PSU_IOU_SLCR_MIO_PIN_22_L3_SEL 0 # Configures MIO Pin 22 peripheral interface mapping @@ -8901,20 +9814,24 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_23_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_23_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= test_scan, Input, test_scan_in - # 23]- (Test Scan Port) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper - # + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + # (SD card bus power) 2= test_scan, Input, test_scan_in[23]- (Test Scan Po + # rt) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Inp + # ut, csu_ext_tamper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_23_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - # i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - # tput) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + # 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + # TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + # tput) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_23_L3_SEL 0 # Configures MIO Pin 23 peripheral interface mapping @@ -8925,19 +9842,23 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_24_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND - # ata Bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- ( + # NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND Data Bus) # PSU_IOU_SLCR_MIO_PIN_24_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= test_scan, Input, test - # scan_in[24]- (Test Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ex - # Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + # card detect from connector) 2= test_scan, Input, test_scan_in[24]- (Test + # Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= + # csu, Input, csu_ext_tamper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_24_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, - # Output, ua1_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (T + # TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= N + # ot Used # PSU_IOU_SLCR_MIO_PIN_24_L3_SEL 1 # Configures MIO Pin 24 peripheral interface mapping @@ -8948,18 +9869,23 @@ set psu_mio_init_data { # Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_25_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAND Read Enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAN + # D Read Enable) # PSU_IOU_SLCR_MIO_PIN_25_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= test_scan, Input, - # test_scan_in[25]- (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (C - # U Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + # rd write protect from connector) 2= test_scan, Input, test_scan_in[25]- + # (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port + # ) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_25_L2_SEL 0 - # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_out- (TTC Waveform - # lock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= + # gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_ou + # t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in + # put) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_25_L3_SEL 1 # Configures MIO Pin 25 peripheral interface mapping @@ -8967,21 +9893,28 @@ set psu_mio_init_data { mask_write 0XFF180064 0x000000FE 0x00000020 # Register : MIO_PIN_26 @ 0XFF180068

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + # clk- (TX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_26_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + # ND chip enable) # PSU_IOU_SLCR_MIO_PIN_26_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[26]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[26]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_ta + # mper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_26_L2_SEL 0 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clock - # 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - # Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + # TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_scl + # k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + # t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + # Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_26_L3_SEL 0 # Configures MIO Pin 26 peripheral interface mapping @@ -8989,22 +9922,28 @@ set psu_mio_init_data { mask_write 0XFF180068 0x000000FE 0x00000000 # Register : MIO_PIN_27 @ 0XFF18006C

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + # [0]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_27_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + # AND Ready/Busy) # PSU_IOU_SLCR_MIO_PIN_27_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[27]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - # t, dp_aux_data_out- (Dp Aux Data) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[27]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + # ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) # PSU_IOU_SLCR_MIO_PIN_27_L2_SEL 3 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - # ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - # atabus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + # TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + # utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + # T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + # atabus) # PSU_IOU_SLCR_MIO_PIN_27_L3_SEL 0 # Configures MIO Pin 27 peripheral interface mapping @@ -9012,20 +9951,27 @@ set psu_mio_init_data { mask_write 0XFF18006C 0x000000FE 0x00000018 # Register : MIO_PIN_28 @ 0XFF180070

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + # [1]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_28_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + # AND Ready/Busy) # PSU_IOU_SLCR_MIO_PIN_28_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[28]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[28]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + # lug_detect- (Dp Aux Hot Plug) # PSU_IOU_SLCR_MIO_PIN_28_L2_SEL 3 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - # - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + # G TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + # Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + # er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_28_L3_SEL 0 # Configures MIO Pin 28 peripheral interface mapping @@ -9033,22 +9979,28 @@ set psu_mio_init_data { mask_write 0XFF180070 0x000000FE 0x00000018 # Register : MIO_PIN_29 @ 0XFF180074

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + # [2]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_29_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_29_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[29]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - # t, dp_aux_data_out- (Dp Aux Data) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[29]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + # ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) # PSU_IOU_SLCR_MIO_PIN_29_L2_SEL 3 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0] - # (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - # ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + # TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, + # spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + # (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + # ) 7= trace, Output, tracedq[7]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_29_L3_SEL 0 # Configures MIO Pin 29 peripheral interface mapping @@ -9056,21 +10008,28 @@ set psu_mio_init_data { mask_write 0XFF180074 0x000000FE 0x00000018 # Register : MIO_PIN_30 @ 0XFF180078

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + # [3]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_30_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_30_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[30]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[30]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + # lug_detect- (Dp Aux Hot Plug) # PSU_IOU_SLCR_MIO_PIN_30_L2_SEL 3 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_so - # (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output - # tracedq[8]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + # ch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0 + # , Output, spi0_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock + # ) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, + # tracedq[8]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_30_L3_SEL 0 # Configures MIO Pin 30 peripheral interface mapping @@ -9078,21 +10037,28 @@ set psu_mio_init_data { mask_write 0XFF180078 0x000000FE 0x00000018 # Register : MIO_PIN_31 @ 0XFF18007C

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + # ctl- (TX RGMII control) # PSU_IOU_SLCR_MIO_PIN_31_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_31_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[31]- (Test Sc - # n Port) = test_scan, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU + # GPI) 2= test_scan, Input, test_scan_in[31]- (Test Scan Port) = test_sca + # n, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_ta + # mper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_31_L2_SEL 0 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi - # _si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial out - # ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + # Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + # spi0, Input, spi0_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TT + # C Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial outp + # ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_31_L3_SEL 0 # Configures MIO Pin 31 peripheral interface mapping @@ -9100,22 +10066,28 @@ set psu_mio_init_data { mask_write 0XFF18007C 0x000000FE 0x00000000 # Register : MIO_PIN_32 @ 0XFF180080

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + # lk- (RX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_32_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - # + # Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + # ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) # PSU_IOU_SLCR_MIO_PIN_32_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[32]- (Test S - # an Port) = test_scan, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[32]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_t + # amper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_32_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi - # _sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= - # race, Output, tracedq[10]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + # tch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + # spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (T + # TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= t + # race, Output, tracedq[10]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_32_L3_SEL 0 # Configures MIO Pin 32 peripheral interface mapping @@ -9123,21 +10095,28 @@ set psu_mio_init_data { mask_write 0XFF180080 0x000000FE 0x00000008 # Register : MIO_PIN_33 @ 0XFF180084

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + # 0]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_33_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_33_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[33]- (Test S - # an Port) = test_scan, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[33]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_t + # amper- (CSU Ext Tamper) # PSU_IOU_SLCR_MIO_PIN_33_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= t - # c3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, traced - # [11]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + # atch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Mas + # ter Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1 + # , Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq + # [11]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_33_L3_SEL 0 # Configures MIO Pin 33 peripheral interface mapping @@ -9145,22 +10124,28 @@ set psu_mio_init_data { mask_write 0XFF180084 0x000000FE 0x00000008 # Register : MIO_PIN_34 @ 0XFF180088

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + # 1]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_34_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_34_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[34]- (Test S - # an Port) = test_scan, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - # ut, dp_aux_data_out- (Dp Aux Data) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[34]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + # data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) # PSU_IOU_SLCR_MIO_PIN_34_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc2 - # Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace P - # rt Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + # ch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master + # Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rx + # d- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Po + # rt Databus) # PSU_IOU_SLCR_MIO_PIN_34_L3_SEL 0 # Configures MIO Pin 34 peripheral interface mapping @@ -9168,21 +10153,29 @@ set psu_mio_init_data { mask_write 0XFF180088 0x000000FE 0x00000008 # Register : MIO_PIN_35 @ 0XFF18008C

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + # 2]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_35_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_35_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[35]- (Test S - # an Port) = test_scan, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[35]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + # plug_detect- (Dp Aux Hot Plug) # PSU_IOU_SLCR_MIO_PIN_35_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - # Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- - # UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= g + # pio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + # Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + # Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2 + # , Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- ( + # UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Po + # rt Databus) # PSU_IOU_SLCR_MIO_PIN_35_L3_SEL 0 # Configures MIO Pin 35 peripheral interface mapping @@ -9190,22 +10183,28 @@ set psu_mio_init_data { mask_write 0XFF18008C 0x000000FE 0x00000008 # Register : MIO_PIN_36 @ 0XFF180090

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + # 3]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_36_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_36_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[36]- (Test S - # an Port) = test_scan, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - # ut, dp_aux_data_out- (Dp Aux Data) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[36]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + # data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) # PSU_IOU_SLCR_MIO_PIN_36_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - # so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - # Output, tracedq[14]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + # pi1, Output, spi1_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + # ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + # Output, tracedq[14]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_36_L3_SEL 0 # Configures MIO Pin 36 peripheral interface mapping @@ -9213,21 +10212,28 @@ set psu_mio_init_data { mask_write 0XFF180090 0x000000FE 0x00000008 # Register : MIO_PIN_37 @ 0XFF180094

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + # tl- (RX RGMII control ) # PSU_IOU_SLCR_MIO_PIN_37_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) + # Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + # PCIE Reset signal) # PSU_IOU_SLCR_MIO_PIN_37_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[37]- (Test S - # an Port) = test_scan, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) + # Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PM + # U GPI) 2= test_scan, Input, test_scan_in[37]- (Test Scan Port) = test_sc + # an, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + # plug_detect- (Dp Aux Hot Plug) # PSU_IOU_SLCR_MIO_PIN_37_L2_SEL 1 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - # 1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - # 7= trace, Output, tracedq[15]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + # = spi1, Input, spi1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + # TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + # 7= trace, Output, tracedq[15]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_37_L3_SEL 0 # Configures MIO Pin 37 peripheral interface mapping @@ -9235,20 +10241,25 @@ set psu_mio_init_data { mask_write 0XFF180094 0x000000FE 0x00000008 # Register : MIO_PIN_38 @ 0XFF180098

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + # clk- (TX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_38_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_38_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + # (SDSDIO clock) 2= Not Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_38_L2_SEL 0 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clo - # k) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- - # (Trace Port Clock) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTA + # G TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_s + # clk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, In + # put, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- + # (Trace Port Clock) # PSU_IOU_SLCR_MIO_PIN_38_L3_SEL 0 # Configures MIO Pin 38 peripheral interface mapping @@ -9256,130 +10267,163 @@ set psu_mio_init_data { mask_write 0XFF180098 0x000000FE 0x00000000 # Register : MIO_PIN_39 @ 0XFF18009C

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + # [0]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_39_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_39_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= sd1, Input, sd1_data_i - # [4]- (8-bit Data bus) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used - # PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 0 + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + # card detect from connector) 2= sd1, Input, sd1_data_in[4]- (8-bit Data b + # us) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used + # PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, Output, ttc0_wav - # _out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port - # Control Signal) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJT + # AG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, + # Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (U + # ART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port + # Control Signal) # PSU_IOU_SLCR_MIO_PIN_39_L3_SEL 0 # Configures MIO Pin 39 peripheral interface mapping - #(OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000000U) */ - mask_write 0XFF18009C 0x000000FE 0x00000000 + #(OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000010U) */ + mask_write 0XFF18009C 0x000000FE 0x00000010 # Register : MIO_PIN_40 @ 0XFF1800A0

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + # [1]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_40_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_40_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - # Indicator) 2= sd1, Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[5]- (8-bit Data bus) 3= Not Used - # PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 0 + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + # mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= sd1 + # , Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[ + # 5]- (8-bit Data bus) 3= Not Used + # PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3, Input, ttc3_clk - # in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJ + # TAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3 + # , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmi + # tter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_40_L3_SEL 0 # Configures MIO Pin 40 peripheral interface mapping - #(OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000000U) */ - mask_write 0XFF1800A0 0x000000FE 0x00000000 + #(OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000010U) */ + mask_write 0XFF1800A0 0x000000FE 0x00000010 # Register : MIO_PIN_41 @ 0XFF1800A4

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + # [2]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_41_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_41_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_out[6]- (8-bit Data bus) 3= Not Used - # PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 0 + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[6]- (8-bit Data bus) 3= Not Used + # PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[ - # ]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in - # ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTA + # G TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outpu + # t, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out + # - (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inp + # ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_41_L3_SEL 0 # Configures MIO Pin 41 peripheral interface mapping - #(OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000000U) */ - mask_write 0XFF1800A4 0x000000FE 0x00000000 + #(OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000010U) */ + mask_write 0XFF1800A4 0x000000FE 0x00000010 # Register : MIO_PIN_42 @ 0XFF1800A8

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + # [3]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_42_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_42_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_out[7]- (8-bit Data bus) 3= Not Used - # PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 0 + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[7]- (8-bit Data bus) 3= Not Used + # PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_ - # o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - # t, tracedq[2]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= sp + # i0, Output, spi0_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + # ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + # t, tracedq[2]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_42_L3_SEL 0 # Configures MIO Pin 42 peripheral interface mapping - #(OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000000U) */ - mask_write 0XFF1800A8 0x000000FE 0x00000000 + #(OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000010U) */ + mask_write 0XFF1800A8 0x000000FE 0x00000010 # Register : MIO_PIN_43 @ 0XFF1800AC

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + # ctl- (TX RGMII control) # PSU_IOU_SLCR_MIO_PIN_43_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_43_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - # bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used - # PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 2 + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + # d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + # PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 0 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, s - # i0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - # tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) + # 4= spi0, Input, spi0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + # TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + # tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_43_L3_SEL 0 # Configures MIO Pin 43 peripheral interface mapping - #(OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000010U) */ - mask_write 0XFF1800AC 0x000000FE 0x00000010 + #(OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000000U) */ + mask_write 0XFF1800AC 0x000000FE 0x00000000 # Register : MIO_PIN_44 @ 0XFF1800B0

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + # lk- (RX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_44_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_44_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - # bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + # d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_44_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, s - # i1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - # Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4 + # = spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- + # (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + # Not Used # PSU_IOU_SLCR_MIO_PIN_44_L3_SEL 0 # Configures MIO Pin 44 peripheral interface mapping @@ -9387,20 +10431,25 @@ set psu_mio_init_data { mask_write 0XFF1800B0 0x000000FE 0x00000010 # Register : MIO_PIN_45 @ 0XFF1800B4

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + # 0]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_45_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_45_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - # bit Data bus) 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + # d1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_45_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - # ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI M + # aster Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= u + # a1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_45_L3_SEL 0 # Configures MIO Pin 45 peripheral interface mapping @@ -9408,20 +10457,26 @@ set psu_mio_init_data { mask_write 0XFF1800B4 0x000000FE 0x00000010 # Register : MIO_PIN_46 @ 0XFF1800B8

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + # 1]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_46_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_46_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[0]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_46_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= tt - # 0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mast + # er Selects) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + # rxd- (UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_46_L3_SEL 0 # Configures MIO Pin 46 peripheral interface mapping @@ -9429,21 +10484,27 @@ set psu_mio_init_data { mask_write 0XFF1800B8 0x000000FE 0x00000010 # Register : MIO_PIN_47 @ 0XFF1800BC

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + # 2]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_47_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_47_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[1]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_47_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi - # , Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - # (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Maste + # r Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= tt + # c0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + # (UART transmitter serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_47_L3_SEL 0 # Configures MIO Pin 47 peripheral interface mapping @@ -9451,21 +10512,27 @@ set psu_mio_init_data { mask_write 0XFF1800BC 0x000000FE 0x00000010 # Register : MIO_PIN_48 @ 0XFF1800C0

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + # 3]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_48_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_48_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[2]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_48_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - # so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not U - # ed + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + # pi1, Output, spi1_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + # ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Us + # ed # PSU_IOU_SLCR_MIO_PIN_48_L3_SEL 0 # Configures MIO Pin 48 peripheral interface mapping @@ -9473,21 +10540,26 @@ set psu_mio_init_data { mask_write 0XFF1800C0 0x000000FE 0x00000010 # Register : MIO_PIN_49 @ 0XFF1800C4

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control ) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + # tl- (RX RGMII control ) # PSU_IOU_SLCR_MIO_PIN_49_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_49_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8 - # bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + # (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd + # 1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_49_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - # 1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - # 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + # = spi1, Input, spi1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + # TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + # 7= Not Used # PSU_IOU_SLCR_MIO_PIN_49_L3_SEL 0 # Configures MIO Pin 49 peripheral interface mapping @@ -9495,20 +10567,25 @@ set psu_mio_init_data { mask_write 0XFF1800C4 0x000000FE 0x00000010 # Register : MIO_PIN_50 @ 0XFF1800C8

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + # (TSU clock) # PSU_IOU_SLCR_MIO_PIN_50_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_50_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Input, sd1_c - # d_in- (Command Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + # rd write protect from connector) 2= sd1, Input, sd1_cmd_in- (Command Ind + # icator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_50_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= ttc2, Input, ttc2 - # clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= + # ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART rece + # iver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_50_L3_SEL 0 # Configures MIO Pin 50 peripheral interface mapping @@ -9516,20 +10593,25 @@ set psu_mio_init_data { mask_write 0XFF1800C8 0x000000FE 0x00000010 # Register : MIO_PIN_51 @ 0XFF1800CC

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + # (TSU clock) # PSU_IOU_SLCR_MIO_PIN_51_L0_SEL 0 # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_51_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdio1_clk_out- (SDSDIO clock) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdi + # o1_clk_out- (SDSDIO clock) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_51_L2_SEL 2 - # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Data) 4= mdio1, Outp - # t, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter - # serial output) 7= Not Used + # Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= + # gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Dat + # a) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wa + # ve_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter + # serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_51_L3_SEL 0 # Configures MIO Pin 51 peripheral interface mapping @@ -9537,20 +10619,26 @@ set psu_mio_init_data { mask_write 0XFF1800CC 0x000000FE 0x00000010 # Register : MIO_PIN_52 @ 0XFF1800D0

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_clk- (TX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + # clk- (TX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_52_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_in- (ULPI Clock) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_i + # n- (ULPI Clock) # PSU_IOU_SLCR_MIO_PIN_52_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_52_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - # ) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - # lk- (Trace Port Clock) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + # TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + # lk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Out + # put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + # lk- (Trace Port Clock) # PSU_IOU_SLCR_MIO_PIN_52_L3_SEL 0 # Configures MIO Pin 52 peripheral interface mapping @@ -9558,20 +10646,26 @@ set psu_mio_init_data { mask_write 0XFF1800D0 0x000000FE 0x00000004 # Register : MIO_PIN_53 @ 0XFF1800D4

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[0]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + # [0]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_53_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- + # (Data bus direction control) # PSU_IOU_SLCR_MIO_PIN_53_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_53_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_o - # t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - # Signal) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + # TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Ou + # tput, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + # receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + # Signal) # PSU_IOU_SLCR_MIO_PIN_53_L3_SEL 0 # Configures MIO Pin 53 peripheral interface mapping @@ -9579,20 +10673,26 @@ set psu_mio_init_data { mask_write 0XFF1800D4 0x000000FE 0x00000004 # Register : MIO_PIN_54 @ 0XFF1800D8

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[1]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + # [1]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_54_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[2]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_54_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_54_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_in - # (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + # TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, I + # nput, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + # rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_54_L3_SEL 0 # Configures MIO Pin 54 peripheral interface mapping @@ -9600,20 +10700,26 @@ set psu_mio_init_data { mask_write 0XFF1800D8 0x000000FE 0x00000004 # Register : MIO_PIN_55 @ 0XFF1800DC

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[2]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + # [2]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_55_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- + # (Data flow control signal from the PHY) # PSU_IOU_SLCR_MIO_PIN_55_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_55_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - # - (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - # output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + # TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + # , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- + # (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + # output) 7= trace, Output, tracedq[1]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_55_L3_SEL 0 # Configures MIO Pin 55 peripheral interface mapping @@ -9621,21 +10727,27 @@ set psu_mio_init_data { mask_write 0XFF1800DC 0x000000FE 0x00000004 # Register : MIO_PIN_56 @ 0XFF1800E0

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[3]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + # [3]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_56_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[0]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_56_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_56_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - # - (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - # utput, tracedq[2]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + # tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + # 0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cloc + # k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + # utput, tracedq[2]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_56_L3_SEL 0 # Configures MIO Pin 56 peripheral interface mapping @@ -9643,21 +10755,27 @@ set psu_mio_init_data { mask_write 0XFF1800E0 0x000000FE 0x00000004 # Register : MIO_PIN_57 @ 0XFF1800E4

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ctl- (TX RGMII control) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + # ctl- (TX RGMII control) # PSU_IOU_SLCR_MIO_PIN_57_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[1]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_57_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_57_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - # si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - # trace, Output, tracedq[3]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + # atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + # spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC + # Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + # trace, Output, tracedq[3]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_57_L3_SEL 0 # Configures MIO Pin 57 peripheral interface mapping @@ -9665,20 +10783,26 @@ set psu_mio_init_data { mask_write 0XFF1800E4 0x000000FE 0x00000004 # Register : MIO_PIN_58 @ 0XFF1800E8

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_clk- (RX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + # lk- (RX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_58_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- + # (Asserted to end or interrupt transfers) # PSU_IOU_SLCR_MIO_PIN_58_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_58_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can - # , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - # 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_sclk_out- (SPI Clock - # 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - # Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can0, Input, can0_phy_ + # rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + # , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + # TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_scl + # k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + # t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + # Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_58_L3_SEL 0 # Configures MIO Pin 58 peripheral interface mapping @@ -9686,21 +10810,27 @@ set psu_mio_init_data { mask_write 0XFF1800E8 0x000000FE 0x00000004 # Register : MIO_PIN_59 @ 0XFF1800EC

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[0]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + # 0]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_59_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[3]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_59_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_59_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can - # , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - # ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - # ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - # atabus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can0, Output, can0_phy + # _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + # 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + # TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + # utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + # T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + # atabus) # PSU_IOU_SLCR_MIO_PIN_59_L3_SEL 0 # Configures MIO Pin 59 peripheral interface mapping @@ -9708,20 +10838,26 @@ set psu_mio_init_data { mask_write 0XFF1800EC 0x000000FE 0x00000004 # Register : MIO_PIN_60 @ 0XFF1800F0

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[1]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + # 1]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_60_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[4]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_60_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_60_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can - # , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - # ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - # - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can1, Output, can1_phy + # _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + # 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + # G TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + # Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + # er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_60_L3_SEL 0 # Configures MIO Pin 60 peripheral interface mapping @@ -9729,21 +10865,27 @@ set psu_mio_init_data { mask_write 0XFF1800F0 0x000000FE 0x00000004 # Register : MIO_PIN_61 @ 0XFF1800F4

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[2]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + # 2]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_61_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[5]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_61_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_61_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can - # , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - # 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, spi1_n_ss_out[0] - # (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - # ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= g + # pio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can1, Input, can1_phy_ + # rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + # , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + # TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, + # spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + # (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + # ) 7= trace, Output, tracedq[7]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_61_L3_SEL 0 # Configures MIO Pin 61 peripheral interface mapping @@ -9751,21 +10893,27 @@ set psu_mio_init_data { mask_write 0XFF1800F4 0x000000FE 0x00000004 # Register : MIO_PIN_62 @ 0XFF1800F8

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[3]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + # 3]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_62_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[6]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_62_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_62_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - # o- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - # t, tracedq[8]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + # i1, Output, spi1_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clo + # ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + # t, tracedq[8]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_62_L3_SEL 0 # Configures MIO Pin 62 peripheral interface mapping @@ -9773,21 +10921,27 @@ set psu_mio_init_data { mask_write 0XFF1800F8 0x000000FE 0x00000004 # Register : MIO_PIN_63 @ 0XFF1800FC

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_ctl- (RX RGMII control ) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + # tl- (RX RGMII control ) # PSU_IOU_SLCR_MIO_PIN_63_L0_SEL 0 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - # ata[7]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + # ta[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_63_L1_SEL 1 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + # Used # PSU_IOU_SLCR_MIO_PIN_63_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - # i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - # tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + # 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + # TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + # tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_63_L3_SEL 0 # Configures MIO Pin 63 peripheral interface mapping @@ -9795,20 +10949,26 @@ set psu_mio_init_data { mask_write 0XFF1800FC 0x000000FE 0x00000004 # Register : MIO_PIN_64 @ 0XFF180100

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_clk- (TX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + # clk- (TX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_64_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_in- (ULPI Clock) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_i + # n- (ULPI Clock) # PSU_IOU_SLCR_MIO_PIN_64_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + # (SDSDIO clock) 2= Not Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_64_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, s - # i0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - # trace, Output, tracedq[10]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4 + # = spi0, Output, spi0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- + # (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + # trace, Output, tracedq[10]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_64_L3_SEL 0 # Configures MIO Pin 64 peripheral interface mapping @@ -9816,20 +10976,26 @@ set psu_mio_init_data { mask_write 0XFF180100 0x000000FE 0x00000002 # Register : MIO_PIN_65 @ 0XFF180104

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[0]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + # [0]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_65_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- + # (Data bus direction control) # PSU_IOU_SLCR_MIO_PIN_65_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + # card detect from connector) 2= Not Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_65_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= - # ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trac - # dq[11]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI M + # aster Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= u + # a1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace + # dq[11]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_65_L3_SEL 0 # Configures MIO Pin 65 peripheral interface mapping @@ -9837,22 +11003,28 @@ set psu_mio_init_data { mask_write 0XFF180104 0x000000FE 0x00000002 # Register : MIO_PIN_66 @ 0XFF180108

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[1]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + # [1]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_66_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[2]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_66_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - # Indicator) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + # mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= Not + # Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_66_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= tt - # 2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace - # Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Mast + # er Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + # rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace + # Port Databus) # PSU_IOU_SLCR_MIO_PIN_66_L3_SEL 0 # Configures MIO Pin 66 peripheral interface mapping @@ -9860,21 +11032,28 @@ set psu_mio_init_data { mask_write 0XFF180108 0x000000FE 0x00000002 # Register : MIO_PIN_67 @ 0XFF18010C

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[2]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + # [2]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_67_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- + # (Data flow control signal from the PHY) # PSU_IOU_SLCR_MIO_PIN_67_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - # bit Data bus) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= N + # ot Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_67_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi - # , Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - # (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Maste + # r Selects) 4= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= tt + # c2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + # (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace + # Port Databus) # PSU_IOU_SLCR_MIO_PIN_67_L3_SEL 0 # Configures MIO Pin 67 peripheral interface mapping @@ -9882,22 +11061,28 @@ set psu_mio_init_data { mask_write 0XFF18010C 0x000000FE 0x00000002 # Register : MIO_PIN_68 @ 0XFF180110

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[3]- (TX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + # [3]- (TX RGMII data) # PSU_IOU_SLCR_MIO_PIN_68_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[0]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_68_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - # bit Data bus) 2= Not Used 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= N + # ot Used 3= Not Used # PSU_IOU_SLCR_MIO_PIN_68_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - # so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - # Output, tracedq[14]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + # pi0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + # ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + # Output, tracedq[14]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_68_L3_SEL 0 # Configures MIO Pin 68 peripheral interface mapping @@ -9905,22 +11090,28 @@ set psu_mio_init_data { mask_write 0XFF180110 0x000000FE 0x00000002 # Register : MIO_PIN_69 @ 0XFF180114

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ctl- (TX RGMII control) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + # ctl- (TX RGMII control) # PSU_IOU_SLCR_MIO_PIN_69_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[1]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_69_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - # bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + # d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_69_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - # 0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - # 7= trace, Output, tracedq[15]- (Trace Port Databus) + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + # = spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + # TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + # 7= trace, Output, tracedq[15]- (Trace Port Databus) # PSU_IOU_SLCR_MIO_PIN_69_L3_SEL 0 # Configures MIO Pin 69 peripheral interface mapping @@ -9928,21 +11119,27 @@ set psu_mio_init_data { mask_write 0XFF180114 0x000000FE 0x00000002 # Register : MIO_PIN_70 @ 0XFF180118

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_clk- (RX RGMII clock) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + # lk- (RX RGMII clock) # PSU_IOU_SLCR_MIO_PIN_70_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- + # (Asserted to end or interrupt transfers) # PSU_IOU_SLCR_MIO_PIN_70_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - # bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + # d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_70_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - # 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - # sed + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + # spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + # TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + # sed # PSU_IOU_SLCR_MIO_PIN_70_L3_SEL 0 # Configures MIO Pin 70 peripheral interface mapping @@ -9950,21 +11147,28 @@ set psu_mio_init_data { mask_write 0XFF180118 0x000000FE 0x00000002 # Register : MIO_PIN_71 @ 0XFF18011C

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[0]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + # 0]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_71_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[3]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_71_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[0]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_71_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - # ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + # Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= + # ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_71_L3_SEL 0 # Configures MIO Pin 71 peripheral interface mapping @@ -9972,21 +11176,28 @@ set psu_mio_init_data { mask_write 0XFF18011C 0x000000FE 0x00000002 # Register : MIO_PIN_72 @ 0XFF180120

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[1]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + # 1]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_72_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[4]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_72_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[1]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_72_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= N - # t Used 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + # Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + # ter Selects) 5= Not Used 6= ua1, Output, ua1_txd- (UART transmitter seri + # al output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_72_L3_SEL 0 # Configures MIO Pin 72 peripheral interface mapping @@ -9994,21 +11205,28 @@ set psu_mio_init_data { mask_write 0XFF180120 0x000000FE 0x00000002 # Register : MIO_PIN_73 @ 0XFF180124

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[2]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + # 2]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_73_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[5]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_73_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[2]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_73_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - # Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + # Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not + # Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_73_L3_SEL 0 # Configures MIO Pin 73 peripheral interface mapping @@ -10016,21 +11234,28 @@ set psu_mio_init_data { mask_write 0XFF180124 0x000000FE 0x00000002 # Register : MIO_PIN_74 @ 0XFF180128

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[3]- (RX RGMII data) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + # 3]- (RX RGMII data) # PSU_IOU_SLCR_MIO_PIN_74_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[6]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_74_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - # bit Data bus) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + # (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + # d1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + # t[3]- (8-bit Data bus) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_74_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= c - # n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - # l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - # o- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= can0, Input, can0_ph + # y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + # c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + # atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + # i1, Output, spi1_so- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- ( + # UART receiver serial input) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_74_L3_SEL 0 # Configures MIO Pin 74 peripheral interface mapping @@ -10038,21 +11263,27 @@ set psu_mio_init_data { mask_write 0XFF180128 0x000000FE 0x00000002 # Register : MIO_PIN_75 @ 0XFF18012C

      - # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_ctl- (RX RGMII control ) + # Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + # tl- (RX RGMII control ) # PSU_IOU_SLCR_MIO_PIN_75_L0_SEL 1 - # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - # ata[7]- (ULPI data bus) + # Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + # ta[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data + # bus) # PSU_IOU_SLCR_MIO_PIN_75_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Comma - # d Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + # (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Command Indicator) = sd1 + # , Output, sdio1_cmd_out- (Command Indicator) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_75_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= c - # n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - # al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - # i1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= can0, Output, can0_p + # hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + # 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + # (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + # 4= spi1, Input, spi1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_t + # xd- (UART transmitter serial output) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_75_L3_SEL 0 # Configures MIO Pin 75 peripheral interface mapping @@ -10066,14 +11297,17 @@ set psu_mio_init_data { # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_76_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Output, sdio - # _clk_out- (SDSDIO clock) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + # rd write protect from connector) 2= sd1, Output, sdio1_clk_out- (SDSDIO + # clock) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_76_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= c - # n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - # al) 3= mdio0, Output, gem0_mdc- (MDIO Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2_mdc- (MDIO Clock - # 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= can1, Output, can1_p + # hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + # 2c1, Output, i2c1_scl_out- (SCL signal) 3= mdio0, Output, gem0_mdc- (MDI + # O Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2 + # _mdc- (MDIO Clock) 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_76_L3_SEL 6 # Configures MIO Pin 76 peripheral interface mapping @@ -10087,14 +11321,19 @@ set psu_mio_init_data { # Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used # PSU_IOU_SLCR_MIO_PIN_77_L1_SEL 0 - # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used + # Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio + # 1_cd_n- (SD card detect from connector) 3= Not Used # PSU_IOU_SLCR_MIO_PIN_77_L2_SEL 0 - # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= c - # n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - # l) 3= mdio0, Input, gem0_mdio_in- (MDIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, gem1_mdio_in- (MD - # O Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_o - # t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Output, gem3_mdio_out- (MDIO Data) 7= Not Used + # Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= + # gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= can1, Input, can1_ph + # y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + # c1, Output, i2c1_sda_out- (SDA signal) 3= mdio0, Input, gem0_mdio_in- (M + # DIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, + # gem1_mdio_in- (MDIO Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5 + # = mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_ou + # t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Outp + # ut, gem3_mdio_out- (MDIO Data) 7= Not Used # PSU_IOU_SLCR_MIO_PIN_77_L3_SEL 6 # Configures MIO Pin 77 peripheral interface mapping @@ -10678,7 +11917,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[0]. # PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - # When mio_bank0_pull_enable is set, this selects pull up or pull down for MIO Bank 0 - control MIO[25:0] + # When mio_bank0_pull_enable is set, this selects pull up or pull down for + # MIO Bank 0 - control MIO[25:0] #(OFFSET, MASK, VALUE) (0XFF180144, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF180144 0x03FFFFFF 0x03FFFFFF # Register : bank0_ctrl5 @ 0XFF180148

      @@ -10761,7 +12001,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[0]. # PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25 1 - # When set, this enables mio_bank0_pullupdown to selects pull up or pull down for MIO Bank 0 - control MIO[25:0] + # When set, this enables mio_bank0_pullupdown to selects pull up or pull d + # own for MIO Bank 0 - control MIO[25:0] #(OFFSET, MASK, VALUE) (0XFF180148, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF180148 0x03FFFFFF 0x03FFFFFF # Register : bank0_ctrl6 @ 0XFF18014C

      @@ -11176,7 +12417,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[26]. # PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - # When mio_bank1_pull_enable is set, this selects pull up or pull down for MIO Bank 1 - control MIO[51:26] + # When mio_bank1_pull_enable is set, this selects pull up or pull down for + # MIO Bank 1 - control MIO[51:26] #(OFFSET, MASK, VALUE) (0XFF180160, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF180160 0x03FFFFFF 0x03FFFFFF # Register : bank1_ctrl5 @ 0XFF180164

      @@ -11259,7 +12501,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[26]. # PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25 1 - # When set, this enables mio_bank1_pullupdown to selects pull up or pull down for MIO Bank 1 - control MIO[51:26] + # When set, this enables mio_bank1_pullupdown to selects pull up or pull d + # own for MIO Bank 1 - control MIO[51:26] #(OFFSET, MASK, VALUE) (0XFF180164, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF180164 0x03FFFFFF 0x03FFFFFF # Register : bank1_ctrl6 @ 0XFF180168

      @@ -11674,7 +12917,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[52]. # PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - # When mio_bank2_pull_enable is set, this selects pull up or pull down for MIO Bank 2 - control MIO[77:52] + # When mio_bank2_pull_enable is set, this selects pull up or pull down for + # MIO Bank 2 - control MIO[77:52] #(OFFSET, MASK, VALUE) (0XFF18017C, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF18017C 0x03FFFFFF 0x03FFFFFF # Register : bank2_ctrl5 @ 0XFF180180

      @@ -11757,7 +13001,8 @@ set psu_mio_init_data { # Each bit applies to a single IO. Bit 0 for MIO[52]. # PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25 1 - # When set, this enables mio_bank2_pullupdown to selects pull up or pull down for MIO Bank 2 - control MIO[77:52] + # When set, this enables mio_bank2_pullupdown to selects pull up or pull d + # own for MIO Bank 2 - control MIO[77:52] #(OFFSET, MASK, VALUE) (0XFF180180, 0x03FFFFFFU ,0x03FFFFFFU) */ mask_write 0XFF180180 0x03FFFFFF 0x03FFFFFF # Register : bank2_ctrl6 @ 0XFF180184

      @@ -11846,20 +13091,24 @@ set psu_mio_init_data { # : LOOPBACK # Register : MIO_LOOPBACK @ 0XFF180200

      - # I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outp - # ts to I2C 0 inputs. + # I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 + # = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outputs to I2C 0 inputs + # . # PSU_IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1 0 - # CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 R - # . + # CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 + # = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 Rx. # PSU_IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1 0 - # UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 - # outputs to UART 0 inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD and RI not used. + # UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. + # 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 outputs to UART 0 + # inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD + # and RI not used. # PSU_IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1 0 - # SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outp - # ts to SPI 0 inputs. The other SPI core will appear on the LS Slave Select. + # SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 + # = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outputs to SPI 0 inputs + # . The other SPI core will appear on the LS Slave Select. # PSU_IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1 0 # Loopback function within MIO @@ -11868,59 +13117,7 @@ set psu_mio_init_data { } set psu_peripherals_init_data { - # : RESET BLOCKS - # : TIMESTAMP - # Register : RST_LPD_IOU2 @ 0XFF5E0238

      - - # Block level reset - # PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 - - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00100000U ,0x00000000U) */ - mask_write 0XFF5E0238 0x00100000 0x00000000 - # : ENET - # Register : RST_LPD_IOU0 @ 0XFF5E0230

      - - # GEM 3 reset - # PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 - - # Software controlled reset for the GEMs - #(OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) */ - mask_write 0XFF5E0230 0x00000008 0x00000000 - # : QSPI - # Register : RST_LPD_IOU2 @ 0XFF5E0238

      - - # Block level reset - # PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 - - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) */ - mask_write 0XFF5E0238 0x00000001 0x00000000 - # : QSPI TAP DELAY - # Register : IOU_TAPDLY_BYPASS @ 0XFF180390

      - - # 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypass the Tap delay on the Rx clock signal of LQSPI - # PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 - - # IOU tap delay bypass for the LQSPI and NAND controllers - #(OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) */ - mask_write 0XFF180390 0x00000004 0x00000004 - # : NAND - # : USB - # Register : RST_LPD_TOP @ 0XFF5E023C

      - - # USB 0 reset for control registers - # PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 - - # USB 0 sleep circuit reset - # PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 - - # USB 0 reset - # PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 - - # Software control register for the LPD block. - #(OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) */ - mask_write 0XFF5E023C 0x00000540 0x00000000 + # : COHERENCY # : FPD RESET # Register : RST_FPD_TOP @ 0XFD1A0100

      @@ -11960,13 +13157,123 @@ set psu_peripherals_init_data { # FPD Block level software controlled reset #(OFFSET, MASK, VALUE) (0XFD1A0100, 0x000F807EU ,0x00000000U) */ mask_write 0XFD1A0100 0x000F807E 0x00000000 + # : RESET BLOCKS + # : TIMESTAMP + # Register : RST_LPD_IOU2 @ 0XFF5E0238

      + + # Block level reset + # PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 + + # Block level reset + # PSU_CRL_APB_RST_LPD_IOU2_IOU_CC_RESET 0 + + # Block level reset + # PSU_CRL_APB_RST_LPD_IOU2_ADMA_RESET 0 + + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. + #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x001A0000U ,0x00000000U) */ + mask_write 0XFF5E0238 0x001A0000 0x00000000 + # Register : RST_LPD_TOP @ 0XFF5E023C

      + + # Reset entire full power domain. + # PSU_CRL_APB_RST_LPD_TOP_FPD_RESET 0 + + # LPD SWDT + # PSU_CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET 0 + + # Sysmonitor reset + # PSU_CRL_APB_RST_LPD_TOP_SYSMON_RESET 0 + + # Real Time Clock reset + # PSU_CRL_APB_RST_LPD_TOP_RTC_RESET 0 + + # APM reset + # PSU_CRL_APB_RST_LPD_TOP_APM_RESET 0 + + # IPI reset + # PSU_CRL_APB_RST_LPD_TOP_IPI_RESET 0 + + # reset entire RPU power island + # PSU_CRL_APB_RST_LPD_TOP_RPU_PGE_RESET 0 + + # reset ocm + # PSU_CRL_APB_RST_LPD_TOP_OCM_RESET 0 + + # Software control register for the LPD block. + #(OFFSET, MASK, VALUE) (0XFF5E023C, 0x0093C018U ,0x00000000U) */ + mask_write 0XFF5E023C 0x0093C018 0x00000000 + # : ENET + # Register : RST_LPD_IOU0 @ 0XFF5E0230

      + + # GEM 3 reset + # PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 + + # Software controlled reset for the GEMs + #(OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) */ + mask_write 0XFF5E0230 0x00000008 0x00000000 + # : QSPI + # Register : RST_LPD_IOU2 @ 0XFF5E0238

      + + # Block level reset + # PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 + + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. + #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) */ + mask_write 0XFF5E0238 0x00000001 0x00000000 + # : QSPI TAP DELAY + # Register : IOU_TAPDLY_BYPASS @ 0XFF180390

      + + # 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypa + # ss the Tap delay on the Rx clock signal of LQSPI + # PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 + + # IOU tap delay bypass for the LQSPI and NAND controllers + #(OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) */ + mask_write 0XFF180390 0x00000004 0x00000004 + # : NAND + # : USB + # Register : RST_LPD_TOP @ 0XFF5E023C

      + + # USB 0 reset for control registers + # PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 + + # USB 0 sleep circuit reset + # PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 + + # USB 0 reset + # PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 + + # Software control register for the LPD block. + #(OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) */ + mask_write 0XFF5E023C 0x00000540 0x00000000 + # : USB0 PIPE POWER PRESENT + # Register : fpd_power_prsnt @ 0XFF9D0080

      + + # This bit is used to choose between PIPE power present and 1'b1 + # PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 + + # fpd_power_prsnt + #(OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) */ + mask_write 0XFF9D0080 0x00000001 0x00000001 + # Register : fpd_pipe_clk @ 0XFF9D007C

      + + # This bit is used to choose between PIPE clock coming from SerDes and the + # suspend clk + # PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 + + # fpd_pipe_clk + #(OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) */ + mask_write 0XFF9D007C 0x00000001 0x00000000 # : SD # Register : RST_LPD_IOU2 @ 0XFF5E0238

      # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_SDIO1_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000040U ,0x00000000U) */ mask_write 0XFF5E0238 0x00000040 0x00000000 # Register : CTRL_REG_SD @ 0XFF180310

      @@ -11979,12 +13286,12 @@ set psu_peripherals_init_data { mask_write 0XFF180310 0x00008000 0x00000000 # Register : SD_CONFIG_REG2 @ 0XFF180320

      - # Should be set based on the final product usage 00 - Removable SCard Slot 01 - Embedded Slot for One Device 10 - Shared Bus Sl - # t 11 - Reserved + # Should be set based on the final product usage 00 - Removable SCard Slot + # 01 - Embedded Slot for One Device 10 - Shared Bus Slot 11 - Reserved # PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE 0 # 1.8V Support 1: 1.8V supported 0: 1.8V not supported support - # PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 0 + # PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 1 # 3.0V Support 1: 3.0V supported 0: 3.0V not supported support # PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V 0 @@ -11993,23 +13300,36 @@ set psu_peripherals_init_data { # PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V 1 # SD Config Register 2 - #(OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x00800000U) */ - mask_write 0XFF180320 0x33800000 0x00800000 + #(OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x02800000U) */ + mask_write 0XFF180320 0x33800000 0x02800000 # : SD1 BASE CLOCK # Register : SD_CONFIG_REG1 @ 0XFF18031C

      # Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. - # PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc7 + # PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc8 + + # Configures the Number of Taps (Phases) of the rxclk_in that is supported + # . + # PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT 0x28 # SD Config Register 1 - #(OFFSET, MASK, VALUE) (0XFF18031C, 0x7F800000U ,0x63800000U) */ - mask_write 0XFF18031C 0x7F800000 0x63800000 + #(OFFSET, MASK, VALUE) (0XFF18031C, 0x7FFE0000U ,0x64500000U) */ + mask_write 0XFF18031C 0x7FFE0000 0x64500000 + # Register : SD_DLL_CTRL @ 0XFF180358

      + + # Reserved. + # PSU_IOU_SLCR_SD_DLL_CTRL_RESERVED 1 + + # SDIO status register + #(OFFSET, MASK, VALUE) (0XFF180358, 0x00000008U ,0x00000008U) */ + mask_write 0XFF180358 0x00000008 0x00000008 # : SD1 RETUNER # Register : SD_CONFIG_REG3 @ 0XFF180324

      - # This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. Setting to 4'b0 disables Re-Tuning Timer. 0h - Get inf - # rmation via other source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n = 2(n-1) seconds -- Bh = 1024 secon - # s Fh - Ch = Reserved + # This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. S + # etting to 4'b0 disables Re-Tuning Timer. 0h - Get information via other + # source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n + # = 2(n-1) seconds -- Bh = 1024 seconds Fh - Ch = Reserved # PSU_IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR 0X0 # SD Config Register 3 @@ -12021,7 +13341,8 @@ set psu_peripherals_init_data { # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_CAN1_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000100U ,0x00000000U) */ mask_write 0XFF5E0238 0x00000100 0x00000000 # : I2C @@ -12033,7 +13354,8 @@ set psu_peripherals_init_data { # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_I2C1_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000600U ,0x00000000U) */ mask_write 0XFF5E0238 0x00000600 0x00000000 # : SWDT @@ -12042,7 +13364,8 @@ set psu_peripherals_init_data { # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_SWDT_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00008000U ,0x00000000U) */ mask_write 0XFF5E0238 0x00008000 0x00000000 # : SPI @@ -12061,7 +13384,8 @@ set psu_peripherals_init_data { # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_TTC3_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00007800U ,0x00000000U) */ mask_write 0XFF5E0238 0x00007800 0x00000000 # : UART @@ -12073,7 +13397,8 @@ set psu_peripherals_init_data { # Block level reset # PSU_CRL_APB_RST_LPD_IOU2_UART1_RESET 0 - # Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000006U ,0x00000000U) */ mask_write 0XFF5E0238 0x00000006 0x00000000 # : UART BAUD RATE @@ -12087,7 +13412,8 @@ set psu_peripherals_init_data { mask_write 0XFF000034 0x000000FF 0x00000005 # Register : Baud_rate_gen_reg0 @ 0XFF000018

      - # Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + # Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + # bypass (baud_sample = sel_clk) 2 - 65535: baud_sample # PSU_UART0_BAUD_RATE_GEN_REG0_CD 0x8f # Baud Rate Generator Register. @@ -12095,36 +13421,43 @@ set psu_peripherals_init_data { mask_write 0XFF000018 0x0000FFFF 0x0000008F # Register : Control_reg0 @ 0XFF000000

      - # Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - # high level during 12 bit periods. It can be set regardless of the value of STTBRK. + # Stop transmitter break: 0: no affect 1: stop transmission of the break a + # fter a minimum of one character length and transmit a high level during + # 12 bit periods. It can be set regardless of the value of STTBRK. # PSU_UART0_CONTROL_REG0_STPBRK 0x0 - # Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - # transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. + # Start transmitter break: 0: no affect 1: start to transmit a break after + # the characters currently present in the FIFO and the transmit shift reg + # ister have been transmitted. It can only be set if STPBRK (Stop transmit + # ter break) is not high. # PSU_UART0_CONTROL_REG0_STTBRK 0x0 - # Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - # pleted. + # Restart receiver timeout counter: 1: receiver timeout counter is restart + # ed. This bit is self clearing once the restart has completed. # PSU_UART0_CONTROL_REG0_RSTTO 0x0 # Transmit disable: 0: enable transmitter 1: disable transmitter # PSU_UART0_CONTROL_REG0_TXDIS 0x0 - # Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. + # Transmit enable: 0: disable transmitter 1: enable transmitter, provided + # the TXDIS field is set to 0. # PSU_UART0_CONTROL_REG0_TXEN 0x1 # Receive disable: 0: enable 1: disable, regardless of the value of RXEN # PSU_UART0_CONTROL_REG0_RXDIS 0x0 - # Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. + # Receive enable: 0: disable 1: enable When set to one, the receiver logic + # is enabled, provided the RXDIS field is set to zero. # PSU_UART0_CONTROL_REG0_RXEN 0x1 - # Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - # bit is self clearing once the reset has completed. + # Software reset for Tx data path: 0: no affect 1: transmitter logic is re + # set and all pending transmitter data is discarded This bit is self clear + # ing once the reset has completed. # PSU_UART0_CONTROL_REG0_TXRES 0x1 - # Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - # is self clearing once the reset has completed. + # Software reset for Rx data path: 0: no affect 1: receiver logic is reset + # and all pending receiver data is discarded. This bit is self clearing o + # nce the reset has completed. # PSU_UART0_CONTROL_REG0_RXRES 0x1 # UART Control Register @@ -12132,22 +13465,28 @@ set psu_peripherals_init_data { mask_write 0XFF000000 0x000001FF 0x00000017 # Register : mode_reg0 @ 0XFF000004

      - # Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback + # Channel mode: Defines the mode of operation of the UART. 00: normal 01: + # automatic echo 10: local loopback 11: remote loopback # PSU_UART0_MODE_REG0_CHMODE 0x0 - # Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - # stop bits 10: 2 stop bits 11: reserved + # Number of stop bits: Defines the number of stop bits to detect on receiv + # e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + # op bits 11: reserved # PSU_UART0_MODE_REG0_NBSTOP 0x0 - # Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - # 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity + # Parity type select: Defines the expected parity to check on receive and + # the parity to generate on transmit. 000: even parity 001: odd parity 010 + # : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + # ty # PSU_UART0_MODE_REG0_PAR 0x4 - # Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits + # Character length select: Defines the number of bits in each character. 1 + # 1: 6 bits 10: 7 bits 0x: 8 bits # PSU_UART0_MODE_REG0_CHRL 0x0 - # Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - # source is uart_ref_clk 1: clock source is uart_ref_clk/8 + # Clock source select: This field defines whether a pre-scalar of 8 is app + # lied to the baud rate generator input clock. 0: clock source is uart_ref + # _clk 1: clock source is uart_ref_clk/8 # PSU_UART0_MODE_REG0_CLKS 0x0 # UART Mode Register @@ -12163,7 +13502,8 @@ set psu_peripherals_init_data { mask_write 0XFF010034 0x000000FF 0x00000005 # Register : Baud_rate_gen_reg0 @ 0XFF010018

      - # Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + # Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + # bypass (baud_sample = sel_clk) 2 - 65535: baud_sample # PSU_UART1_BAUD_RATE_GEN_REG0_CD 0x8f # Baud Rate Generator Register. @@ -12171,36 +13511,43 @@ set psu_peripherals_init_data { mask_write 0XFF010018 0x0000FFFF 0x0000008F # Register : Control_reg0 @ 0XFF010000

      - # Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - # high level during 12 bit periods. It can be set regardless of the value of STTBRK. + # Stop transmitter break: 0: no affect 1: stop transmission of the break a + # fter a minimum of one character length and transmit a high level during + # 12 bit periods. It can be set regardless of the value of STTBRK. # PSU_UART1_CONTROL_REG0_STPBRK 0x0 - # Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - # transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. + # Start transmitter break: 0: no affect 1: start to transmit a break after + # the characters currently present in the FIFO and the transmit shift reg + # ister have been transmitted. It can only be set if STPBRK (Stop transmit + # ter break) is not high. # PSU_UART1_CONTROL_REG0_STTBRK 0x0 - # Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - # pleted. + # Restart receiver timeout counter: 1: receiver timeout counter is restart + # ed. This bit is self clearing once the restart has completed. # PSU_UART1_CONTROL_REG0_RSTTO 0x0 # Transmit disable: 0: enable transmitter 1: disable transmitter # PSU_UART1_CONTROL_REG0_TXDIS 0x0 - # Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. + # Transmit enable: 0: disable transmitter 1: enable transmitter, provided + # the TXDIS field is set to 0. # PSU_UART1_CONTROL_REG0_TXEN 0x1 # Receive disable: 0: enable 1: disable, regardless of the value of RXEN # PSU_UART1_CONTROL_REG0_RXDIS 0x0 - # Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. + # Receive enable: 0: disable 1: enable When set to one, the receiver logic + # is enabled, provided the RXDIS field is set to zero. # PSU_UART1_CONTROL_REG0_RXEN 0x1 - # Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - # bit is self clearing once the reset has completed. + # Software reset for Tx data path: 0: no affect 1: transmitter logic is re + # set and all pending transmitter data is discarded This bit is self clear + # ing once the reset has completed. # PSU_UART1_CONTROL_REG0_TXRES 0x1 - # Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - # is self clearing once the reset has completed. + # Software reset for Rx data path: 0: no affect 1: receiver logic is reset + # and all pending receiver data is discarded. This bit is self clearing o + # nce the reset has completed. # PSU_UART1_CONTROL_REG0_RXRES 0x1 # UART Control Register @@ -12208,28 +13555,43 @@ set psu_peripherals_init_data { mask_write 0XFF010000 0x000001FF 0x00000017 # Register : mode_reg0 @ 0XFF010004

      - # Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback + # Channel mode: Defines the mode of operation of the UART. 00: normal 01: + # automatic echo 10: local loopback 11: remote loopback # PSU_UART1_MODE_REG0_CHMODE 0x0 - # Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - # stop bits 10: 2 stop bits 11: reserved + # Number of stop bits: Defines the number of stop bits to detect on receiv + # e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + # op bits 11: reserved # PSU_UART1_MODE_REG0_NBSTOP 0x0 - # Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - # 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity + # Parity type select: Defines the expected parity to check on receive and + # the parity to generate on transmit. 000: even parity 001: odd parity 010 + # : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + # ty # PSU_UART1_MODE_REG0_PAR 0x4 - # Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits + # Character length select: Defines the number of bits in each character. 1 + # 1: 6 bits 10: 7 bits 0x: 8 bits # PSU_UART1_MODE_REG0_CHRL 0x0 - # Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - # source is uart_ref_clk 1: clock source is uart_ref_clk/8 + # Clock source select: This field defines whether a pre-scalar of 8 is app + # lied to the baud rate generator input clock. 0: clock source is uart_ref + # _clk 1: clock source is uart_ref_clk/8 # PSU_UART1_MODE_REG0_CLKS 0x0 # UART Mode Register #(OFFSET, MASK, VALUE) (0XFF010004, 0x000003FFU ,0x00000020U) */ mask_write 0XFF010004 0x000003FF 0x00000020 # : GPIO + # Register : RST_LPD_IOU2 @ 0XFF5E0238

      + + # Block level reset + # PSU_CRL_APB_RST_LPD_IOU2_GPIO_RESET 0 + + # Software control register for the IOU block. Each bit will cause a singl + # erperipheral or part of the peripheral to be reset. + #(OFFSET, MASK, VALUE) (0XFF5E0238, 0x00040000U ,0x00000000U) */ + mask_write 0XFF5E0238 0x00040000 0x00000000 # : ADMA TZ # Register : slcr_adma @ 0XFF4B0024

      @@ -12286,7 +13648,6 @@ set psu_peripherals_init_data { #(OFFSET, MASK, VALUE) (0XFFCA5000, 0x00001FFFU ,0x00000000U) */ mask_write 0XFFCA5000 0x00001FFF 0x00000000 # : CSU TAMPER RESPONSE - # : AFIFM INTERFACE WIDTH # : CPU QOS DEFAULT # Register : ACE_CTRL @ 0XFD5C0060

      @@ -12302,10 +13663,12 @@ set psu_peripherals_init_data { # : ENABLES RTC SWITCH TO BATTERY WHEN VCC_PSAUX IS NOT AVAILABLE # Register : CONTROL @ 0XFFA60040

      - # Enables the RTC. By writing a 0 to this bit, RTC will be powered off and the only module that potentially draws current from - # he battery will be BBRAM. The value read through this bit does not necessarily reflect whether RTC is enabled or not. It is e - # pected that RTC is enabled every time it is being configured. If RTC is not used in the design, FSBL will disable it by writi - # g a 0 to this bit. + # Enables the RTC. By writing a 0 to this bit, RTC will be powered off and + # the only module that potentially draws current from the battery will be + # BBRAM. The value read through this bit does not necessarily reflect whe + # ther RTC is enabled or not. It is expected that RTC is enabled every tim + # e it is being configured. If RTC is not used in the design, FSBL will di + # sable it by writing a 0 to this bit. # PSU_RTC_CONTROL_BATTERY_DISABLE 0X1 # This register controls various functionalities within the RTC @@ -12314,22 +13677,89 @@ set psu_peripherals_init_data { # : TIMESTAMP COUNTER # Register : base_frequency_ID_register @ 0XFF260020

      - # Frequency in number of ticks per second. Valid range from 10 MHz to 100 MHz. - # PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5e100 + # Frequency in number of ticks per second. Valid range from 10 MHz to 100 + # MHz. + # PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5b9f0 - # Program this register to match the clock frequency of the timestamp generator, in ticks per second. For example, for a 50 MHz - # clock, program 0x02FAF080. This register is not accessible to the read-only programming interface. - #(OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5E100U) */ - mask_write 0XFF260020 0xFFFFFFFF 0x05F5E100 + # Program this register to match the clock frequency of the timestamp gene + # rator, in ticks per second. For example, for a 50 MHz clock, program 0x0 + # 2FAF080. This register is not accessible to the read-only programming in + # terface. + #(OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5B9F0U) */ + mask_write 0XFF260020 0xFFFFFFFF 0x05F5B9F0 # Register : counter_control_register @ 0XFF260000

      - # Enable 0: The counter is disabled and not incrementing. 1: The counter is enabled and is incrementing. + # Enable 0: The counter is disabled and not incrementing. 1: The counter i + # s enabled and is incrementing. # PSU_IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN 0x1 - # Controls the counter increments. This register is not accessible to the read-only programming interface. + # Controls the counter increments. This register is not accessible to the + # read-only programming interface. #(OFFSET, MASK, VALUE) (0XFF260000, 0x00000001U ,0x00000001U) */ mask_write 0XFF260000 0x00000001 0x00000001 # : TTC SRC SELECT + # : PCIE GPIO RESET + # : PCIE RESET + # : DIR MODE BANK 0 + # : DIR MODE BANK 1 + # Register : DIRM_1 @ 0XFF0A0244

      + + # Operation is the same as DIRM_0[DIRECTION_0] + # PSU_GPIO_DIRM_1_DIRECTION_1 0x20 + + # Direction mode (GPIO Bank1, MIO) + #(OFFSET, MASK, VALUE) (0XFF0A0244, 0x03FFFFFFU ,0x00000020U) */ + mask_write 0XFF0A0244 0x03FFFFFF 0x00000020 + # : DIR MODE BANK 2 + # : OUTPUT ENABLE BANK 0 + # : OUTPUT ENABLE BANK 1 + # Register : OEN_1 @ 0XFF0A0248

      + + # Operation is the same as OEN_0[OP_ENABLE_0] + # PSU_GPIO_OEN_1_OP_ENABLE_1 0x20 + + # Output enable (GPIO Bank1, MIO) + #(OFFSET, MASK, VALUE) (0XFF0A0248, 0x03FFFFFFU ,0x00000020U) */ + mask_write 0XFF0A0248 0x03FFFFFF 0x00000020 + # : OUTPUT ENABLE BANK 2 + # : MASK_DATA_0_LSW LOW BANK [15:0] + # : MASK_DATA_0_MSW LOW BANK [25:16] + # : MASK_DATA_1_LSW LOW BANK [41:26] + # Register : MASK_DATA_1_LSW @ 0XFF0A0008

      + + # Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + # Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + # Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + #(OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) */ + mask_write 0XFF0A0008 0xFFFFFFFF 0xFFDF0020 + # : MASK_DATA_1_MSW HIGH BANK [51:42] + # : MASK_DATA_1_LSW HIGH BANK [67:52] + # : MASK_DATA_1_LSW HIGH BANK [77:68] + # : ADD 1 MS DELAY + mask_delay 0x00000000 1 + # : MASK_DATA_0_LSW LOW BANK [15:0] + # : MASK_DATA_0_MSW LOW BANK [25:16] + # : MASK_DATA_1_LSW LOW BANK [41:26] + # Register : MASK_DATA_1_LSW @ 0XFF0A0008

      + + # Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + # Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x0 + + # Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + #(OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0000U) */ + mask_write 0XFF0A0008 0xFFFFFFFF 0xFFDF0000 + # : MASK_DATA_1_MSW HIGH BANK [51:42] + # : MASK_DATA_1_LSW HIGH BANK [67:52] + # : MASK_DATA_1_LSW HIGH BANK [77:68] + # : ADD 5 MS DELAY + mask_delay 0x00000000 5 } set psu_post_config_data { @@ -12342,72 +13772,695 @@ set psu_peripherals_powerdwn_data { } set psu_lpd_xppu_data { - # : XPPU INTERRUPT ENABLE - # Register : IEN @ 0XFF980018

      - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_APER_PARITY 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_APER_TZ 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_APER_PERM 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_MID_PARITY 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_MID_RO 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_MID_MISS 0X1 - - # See Interuppt Status Register for details - # PSU_LPD_XPPU_CFG_IEN_INV_APB 0X1 - - # Interrupt Enable Register - #(OFFSET, MASK, VALUE) (0XFF980018, 0x000000EFU ,0x000000EFU) */ - mask_write 0XFF980018 0x000000EF 0x000000EF + # : MASTER ID LIST + # : APERTURE PERMISIION LIST + # : APERTURE NAME: UART0, START ADDRESS: FF000000, END ADDRESS: FF00FFFF + # : APERTURE NAME: UART1, START ADDRESS: FF010000, END ADDRESS: FF01FFFF + # : APERTURE NAME: I2C0, START ADDRESS: FF020000, END ADDRESS: FF02FFFF + # : APERTURE NAME: I2C1, START ADDRESS: FF030000, END ADDRESS: FF03FFFF + # : APERTURE NAME: SPI0, START ADDRESS: FF040000, END ADDRESS: FF04FFFF + # : APERTURE NAME: SPI1, START ADDRESS: FF050000, END ADDRESS: FF05FFFF + # : APERTURE NAME: CAN0, START ADDRESS: FF060000, END ADDRESS: FF06FFFF + # : APERTURE NAME: CAN1, START ADDRESS: FF070000, END ADDRESS: FF07FFFF + # : APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09FFFF + # : APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09FFFF + # : APERTURE NAME: GPIO, START ADDRESS: FF0A0000, END ADDRESS: FF0AFFFF + # : APERTURE NAME: GEM0, START ADDRESS: FF0B0000, END ADDRESS: FF0BFFFF + # : APERTURE NAME: GEM1, START ADDRESS: FF0C0000, END ADDRESS: FF0CFFFF + # : APERTURE NAME: GEM2, START ADDRESS: FF0D0000, END ADDRESS: FF0DFFFF + # : APERTURE NAME: GEM3, START ADDRESS: FF0E0000, END ADDRESS: FF0EFFFF + # : APERTURE NAME: QSPI, START ADDRESS: FF0F0000, END ADDRESS: FF0FFFFF + # : APERTURE NAME: NAND, START ADDRESS: FF100000, END ADDRESS: FF10FFFF + # : APERTURE NAME: TTC0, START ADDRESS: FF110000, END ADDRESS: FF11FFFF + # : APERTURE NAME: TTC1, START ADDRESS: FF120000, END ADDRESS: FF12FFFF + # : APERTURE NAME: TTC2, START ADDRESS: FF130000, END ADDRESS: FF13FFFF + # : APERTURE NAME: TTC3, START ADDRESS: FF140000, END ADDRESS: FF14FFFF + # : APERTURE NAME: SWDT, START ADDRESS: FF150000, END ADDRESS: FF15FFFF + # : APERTURE NAME: SD0, START ADDRESS: FF160000, END ADDRESS: FF16FFFF + # : APERTURE NAME: SD1, START ADDRESS: FF170000, END ADDRESS: FF17FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + # : APERTURE NAME: IOU_SECURE_SLCR, START ADDRESS: FF240000, END ADDRESS: FF24FFFF + # : APERTURE NAME: IOU_SCNTR, START ADDRESS: FF250000, END ADDRESS: FF25FFFF + # : APERTURE NAME: IOU_SCNTRS, START ADDRESS: FF260000, END ADDRESS: FF26FFFF + # : APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2AFFFF + # : APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2AFFFF + # : APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2AFFFF + # : APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2AFFFF + # : APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2FFFFF + # : APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2FFFFF + # : APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2FFFFF + # : APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2FFFFF + # : APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2FFFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + # : APERTURE NAME: LPD_UNUSED_1, START ADDRESS: FF400000, END ADDRESS: FF40FFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + # : APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF4DFFFF + # : APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF4DFFFF + # : APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF4DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DFFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95FFFF + # : APERTURE NAME: OCM_SLCR, START ADDRESS: FF960000, END ADDRESS: FF96FFFF + # : APERTURE NAME: LPD_UNUSED_4, START ADDRESS: FF970000, END ADDRESS: FF97FFFF + # : APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + # : APERTURE NAME: RPU, START ADDRESS: FF9A0000, END ADDRESS: FF9AFFFF + # : APERTURE NAME: AFIFM6, START ADDRESS: FF9B0000, END ADDRESS: FF9BFFFF + # : APERTURE NAME: LPD_XPPU_SINK, START ADDRESS: FF9C0000, END ADDRESS: FF9CFFFF + # : APERTURE NAME: USB3_0, START ADDRESS: FF9D0000, END ADDRESS: FF9DFFFF + # : APERTURE NAME: USB3_1, START ADDRESS: FF9E0000, END ADDRESS: FF9EFFFF + # : APERTURE NAME: LPD_UNUSED_5, START ADDRESS: FF9F0000, END ADDRESS: FF9FFFFF + # : APERTURE NAME: APM0, START ADDRESS: FFA00000, END ADDRESS: FFA0FFFF + # : APERTURE NAME: APM1, START ADDRESS: FFA10000, END ADDRESS: FFA1FFFF + # : APERTURE NAME: APM_INTC_IOU, START ADDRESS: FFA20000, END ADDRESS: FFA2FFFF + # : APERTURE NAME: APM_FPD_LPD, START ADDRESS: FFA30000, END ADDRESS: FFA3FFFF + # : APERTURE NAME: LPD_UNUSED_6, START ADDRESS: FFA40000, END ADDRESS: FFA4FFFF + # : APERTURE NAME: AMS, START ADDRESS: FFA50000, END ADDRESS: FFA5FFFF + # : APERTURE NAME: RTC, START ADDRESS: FFA60000, END ADDRESS: FFA6FFFF + # : APERTURE NAME: OCM_XMPU_CFG, START ADDRESS: FFA70000, END ADDRESS: FFA7FFFF + # : APERTURE NAME: ADMA_0, START ADDRESS: FFA80000, END ADDRESS: FFA8FFFF + # : APERTURE NAME: ADMA_1, START ADDRESS: FFA90000, END ADDRESS: FFA9FFFF + # : APERTURE NAME: ADMA_2, START ADDRESS: FFAA0000, END ADDRESS: FFAAFFFF + # : APERTURE NAME: ADMA_3, START ADDRESS: FFAB0000, END ADDRESS: FFABFFFF + # : APERTURE NAME: ADMA_4, START ADDRESS: FFAC0000, END ADDRESS: FFACFFFF + # : APERTURE NAME: ADMA_5, START ADDRESS: FFAD0000, END ADDRESS: FFADFFFF + # : APERTURE NAME: ADMA_6, START ADDRESS: FFAE0000, END ADDRESS: FFAEFFFF + # : APERTURE NAME: ADMA_7, START ADDRESS: FFAF0000, END ADDRESS: FFAFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFFFFF + # : APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + # : APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + # : APERTURE NAME: CSU_LOCAL, START ADDRESS: FFC20000, END ADDRESS: FFC2FFFF + # : APERTURE NAME: PUF, START ADDRESS: FFC30000, END ADDRESS: FFC3FFFF + # : APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + # : APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + # : APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7FFFF + # : APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7FFFF + # : APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + # : APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + # : APERTURE NAME: CSU, START ADDRESS: FFCA0000, END ADDRESS: FFCAFFFF + # : APERTURE NAME: CSU_WDT, START ADDRESS: FFCB0000, END ADDRESS: FFCBFFFF + # : APERTURE NAME: EFUSE, START ADDRESS: FFCC0000, END ADDRESS: FFCCFFFF + # : APERTURE NAME: BBRAM, START ADDRESS: FFCD0000, END ADDRESS: FFCDFFFF + # : APERTURE NAME: RSA_CORE, START ADDRESS: FFCE0000, END ADDRESS: FFCEFFFF + # : APERTURE NAME: MBISTJTAG, START ADDRESS: FFCF0000, END ADDRESS: FFCFFFFF + # : APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + # : APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + # : APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + # : APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + # : APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5FFFF + # : APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5FFFF + # : APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + # : APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + # : APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFFF + # : APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFFF + # : APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFFF + # : APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFFF + # : APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + # : APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + # : APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + # : APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + # : APERTURE NAME: R5_0_ATCM, START ADDRESS: FFE00000, END ADDRESS: FFE0FFFF + # : APERTURE NAME: R5_0_ATCM_LOCKSTEP, START ADDRESS: FFE10000, END ADDRESS: FFE1FFFF + # : APERTURE NAME: R5_0_BTCM, START ADDRESS: FFE20000, END ADDRESS: FFE2FFFF + # : APERTURE NAME: R5_0_BTCM_LOCKSTEP, START ADDRESS: FFE30000, END ADDRESS: FFE3FFFF + # : APERTURE NAME: R5_0_INSTRUCTION_CACHE, START ADDRESS: FFE40000, END ADDRESS: FFE4FFFF + # : APERTURE NAME: R5_0_DATA_CACHE, START ADDRESS: FFE50000, END ADDRESS: FFE5FFFF + # : APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8FFFF + # : APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8FFFF + # : APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8FFFF + # : APERTURE NAME: R5_1_ATCM_, START ADDRESS: FFE90000, END ADDRESS: FFE9FFFF + # : APERTURE NAME: RPU_UNUSED_10, START ADDRESS: FFEA0000, END ADDRESS: FFEAFFFF + # : APERTURE NAME: R5_1_BTCM_, START ADDRESS: FFEB0000, END ADDRESS: FFEBFFFF + # : APERTURE NAME: R5_1_INSTRUCTION_CACHE, START ADDRESS: FFEC0000, END ADDRESS: FFECFFFF + # : APERTURE NAME: R5_1_DATA_CACHE, START ADDRESS: FFED0000, END ADDRESS: FFEDFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBFFFF + # : APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFFFFFF + # : APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFFFFFF + # : APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFFFFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + # : APERTURE NAME: IOU_GPV, START ADDRESS: FE000000, END ADDRESS: FE0FFFFF + # : APERTURE NAME: LPD_GPV, START ADDRESS: FE100000, END ADDRESS: FE1FFFFF + # : APERTURE NAME: USB3_0_XHCI, START ADDRESS: FE200000, END ADDRESS: FE2FFFFF + # : APERTURE NAME: USB3_1_XHCI, START ADDRESS: FE300000, END ADDRESS: FE3FFFFF + # : APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7FFFFF + # : APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7FFFFF + # : APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7FFFFF + # : APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7FFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + # : APERTURE NAME: QSPI_LINEAR_ADDRESS, START ADDRESS: C0000000, END ADDRESS: DFFFFFFF + # : XPPU CONTROL } set psu_ddr_xmpu0_data { + # : DDR XMPU0 } set psu_ddr_xmpu1_data { + # : DDR XMPU1 } set psu_ddr_xmpu2_data { + # : DDR XMPU2 } set psu_ddr_xmpu3_data { + # : DDR XMPU3 } set psu_ddr_xmpu4_data { + # : DDR XMPU4 } set psu_ddr_xmpu5_data { + # : DDR XMPU5 } set psu_ocm_xmpu_data { + # : OCM XMPU } set psu_fpd_xmpu_data { + # : FPD XMPU } set psu_protection_lock_data { + # : LOCKING PROTECTION MODULE + # : XPPU LOCK + # : APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + # : XMPU LOCK + # : LOCK OCM XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK FPD XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + # : LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER } set psu_apply_master_tz { # : RPU # : DP TZ + # Register : slcr_dpdma @ 0XFD690040

      + + # TrustZone classification for DisplayPort DMA + # PSU_FPD_SLCR_SECURE_SLCR_DPDMA_TZ 1 + + # DPDMA TrustZone Settings + #(OFFSET, MASK, VALUE) (0XFD690040, 0x00000001U ,0x00000001U) */ + mask_write 0XFD690040 0x00000001 0x00000001 # : SATA TZ # : PCIE TZ + # Register : slcr_pcie @ 0XFD690030

      + + # TrustZone classification for DMA Channel 0 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0 1 + + # TrustZone classification for DMA Channel 1 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1 1 + + # TrustZone classification for DMA Channel 2 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2 1 + + # TrustZone classification for DMA Channel 3 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3 1 + + # TrustZone classification for Ingress Address Translation 0 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0 1 + + # TrustZone classification for Ingress Address Translation 1 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1 1 + + # TrustZone classification for Ingress Address Translation 2 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2 1 + + # TrustZone classification for Ingress Address Translation 3 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3 1 + + # TrustZone classification for Ingress Address Translation 4 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4 1 + + # TrustZone classification for Ingress Address Translation 5 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5 1 + + # TrustZone classification for Ingress Address Translation 6 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6 1 + + # TrustZone classification for Ingress Address Translation 7 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7 1 + + # TrustZone classification for Egress Address Translation 0 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0 1 + + # TrustZone classification for Egress Address Translation 1 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1 1 + + # TrustZone classification for Egress Address Translation 2 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2 1 + + # TrustZone classification for Egress Address Translation 3 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3 1 + + # TrustZone classification for Egress Address Translation 4 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4 1 + + # TrustZone classification for Egress Address Translation 5 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5 1 + + # TrustZone classification for Egress Address Translation 6 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6 1 + + # TrustZone classification for Egress Address Translation 7 + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7 1 + + # TrustZone classification for DMA Registers + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS 1 + + # TrustZone classification for MSIx Table + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE 1 + + # TrustZone classification for MSIx PBA + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA 1 + + # TrustZone classification for ECAM + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM 1 + + # TrustZone classification for Bridge Common Registers + # PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS 1 + + # PCIe TrustZone settings. This register may only be modified during bootu + # p (while PCIe block is disabled) + #(OFFSET, MASK, VALUE) (0XFD690030, 0x01FFFFFFU ,0x01FFFFFFU) */ + mask_write 0XFD690030 0x01FFFFFF 0x01FFFFFF # : USB TZ + # Register : slcr_usb @ 0XFF4B0034

      + + # TrustZone Classification for USB3_0 + # PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0 1 + + # TrustZone Classification for USB3_1 + # PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1 1 + + # USB3 TrustZone settings + #(OFFSET, MASK, VALUE) (0XFF4B0034, 0x00000003U ,0x00000003U) */ + mask_write 0XFF4B0034 0x00000003 0x00000003 # : SD TZ + # Register : IOU_AXI_RPRTCN @ 0XFF240004

      + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT 2 + + # AXI read protection type selection + #(OFFSET, MASK, VALUE) (0XFF240004, 0x003F0000U ,0x00120000U) */ + mask_write 0XFF240004 0x003F0000 0x00120000 + # Register : IOU_AXI_WPRTCN @ 0XFF240000

      + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT 2 + + # AXI write protection type selection + #(OFFSET, MASK, VALUE) (0XFF240000, 0x003F0000U ,0x00120000U) */ + mask_write 0XFF240000 0x003F0000 0x00120000 # : GEM TZ + # Register : IOU_AXI_RPRTCN @ 0XFF240004

      + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT 2 + + # AXI read protection type selection + #(OFFSET, MASK, VALUE) (0XFF240004, 0x00000FFFU ,0x00000492U) */ + mask_write 0XFF240004 0x00000FFF 0x00000492 + # Register : IOU_AXI_WPRTCN @ 0XFF240000

      + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT 2 + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT 2 + + # AXI write protection type selection + #(OFFSET, MASK, VALUE) (0XFF240000, 0x00000FFFU ,0x00000492U) */ + mask_write 0XFF240000 0x00000FFF 0x00000492 # : QSPI TZ + # Register : IOU_AXI_WPRTCN @ 0XFF240000

      + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT 2 + + # AXI write protection type selection + #(OFFSET, MASK, VALUE) (0XFF240000, 0x0E000000U ,0x04000000U) */ + mask_write 0XFF240000 0x0E000000 0x04000000 # : NAND TZ + # Register : IOU_AXI_RPRTCN @ 0XFF240004

      + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT 2 + + # AXI read protection type selection + #(OFFSET, MASK, VALUE) (0XFF240004, 0x01C00000U ,0x00800000U) */ + mask_write 0XFF240004 0x01C00000 0x00800000 + # Register : IOU_AXI_WPRTCN @ 0XFF240000

      + + # AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + # 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + # ccess [2] = '1'' : Instruction access + # PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT 2 + + # AXI write protection type selection + #(OFFSET, MASK, VALUE) (0XFF240000, 0x01C00000U ,0x00800000U) */ + mask_write 0XFF240000 0x01C00000 0x00800000 + # : DMA TZ + # Register : slcr_adma @ 0XFF4B0024

      + + # TrustZone Classification for ADMA + # PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0xFF + + # RPU TrustZone settings + #(OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) */ + mask_write 0XFF4B0024 0x000000FF 0x000000FF + # Register : slcr_gdma @ 0XFD690050

      + + # TrustZone Classification for GDMA + # PSU_FPD_SLCR_SECURE_SLCR_GDMA_TZ 0xFF + + # GDMA Trustzone Settings + #(OFFSET, MASK, VALUE) (0XFD690050, 0x000000FFU ,0x000000FFU) */ + mask_write 0XFD690050 0x000000FF 0x000000FF } set psu_serdes_init_data { @@ -12415,9 +14468,11 @@ set psu_serdes_init_data { # : GT REFERENCE CLOCK SOURCE SELECTION # Register : PLL_REF_SEL0 @ 0XFD410000

      - # PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - # 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - # Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved + # PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + # 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + # 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + # - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + # eserved # PSU_SERDES_PLL_REF_SEL0_PLLREFSEL0 0xD # PLL0 Reference Selection Register @@ -12425,9 +14480,11 @@ set psu_serdes_init_data { mask_write 0XFD410000 0x0000001F 0x0000000D # Register : PLL_REF_SEL1 @ 0XFD410004

      - # PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - # 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - # Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved + # PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + # 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + # 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + # - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + # eserved # PSU_SERDES_PLL_REF_SEL1_PLLREFSEL1 0x9 # PLL1 Reference Selection Register @@ -12435,9 +14492,11 @@ set psu_serdes_init_data { mask_write 0XFD410004 0x0000001F 0x00000009 # Register : PLL_REF_SEL2 @ 0XFD410008

      - # PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - # 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - # Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved + # PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + # 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + # 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + # - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + # eserved # PSU_SERDES_PLL_REF_SEL2_PLLREFSEL2 0x8 # PLL2 Reference Selection Register @@ -12445,9 +14504,11 @@ set psu_serdes_init_data { mask_write 0XFD410008 0x0000001F 0x00000008 # Register : PLL_REF_SEL3 @ 0XFD41000C

      - # PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - # 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - # Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved + # PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + # 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + # 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + # - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + # eserved # PSU_SERDES_PLL_REF_SEL3_PLLREFSEL3 0xF # PLL3 Reference Selection Register @@ -12456,7 +14517,8 @@ set psu_serdes_init_data { # : GT REFERENCE CLOCK FREQUENCY SELECTION # Register : L0_L0_REF_CLK_SEL @ 0XFD402860

      - # Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer output. Set to 0 to select lane0 ref clock mux output. + # Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer outp + # ut. Set to 0 to select lane0 ref clock mux output. # PSU_SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL 0x1 # Lane0 Ref Clock Selection Register @@ -12464,10 +14526,12 @@ set psu_serdes_init_data { mask_write 0XFD402860 0x00000080 0x00000080 # Register : L0_L1_REF_CLK_SEL @ 0XFD402864

      - # Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane1 ref clock mux output. + # Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer outp + # ut. Set to 0 to select lane1 ref clock mux output. # PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL 0x0 - # Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 slicer output from ref clock network + # Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 sli + # cer output from ref clock network # PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3 0x1 # Lane1 Ref Clock Selection Register @@ -12475,7 +14539,8 @@ set psu_serdes_init_data { mask_write 0XFD402864 0x00000088 0x00000008 # Register : L0_L2_REF_CLK_SEL @ 0XFD402868

      - # Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane2 ref clock mux output. + # Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer outp + # ut. Set to 0 to select lane2 ref clock mux output. # PSU_SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL 0x1 # Lane2 Ref Clock Selection Register @@ -12483,10 +14548,12 @@ set psu_serdes_init_data { mask_write 0XFD402868 0x00000080 0x00000080 # Register : L0_L3_REF_CLK_SEL @ 0XFD40286C

      - # Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer output. Set to 0 to select lane3 ref clock mux output. + # Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer outp + # ut. Set to 0 to select lane3 ref clock mux output. # PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL 0x0 - # Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 slicer output from ref clock network + # Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 sli + # cer output from ref clock network # PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1 0x1 # Lane3 Ref Clock Selection Register @@ -12693,7 +14760,8 @@ set psu_serdes_init_data { # Enable test mode force on fractional mode enable # PSU_SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC 0x1 - # Fractional feedback division control and fractional value for feedback division bits 26:24 + # Fractional feedback division control and fractional value for feedback d + # ivision bits 26:24 #(OFFSET, MASK, VALUE) (0XFD40E360, 0x00000040U ,0x00000040U) */ mask_write 0XFD40E360 0x00000040 0x00000040 # Register : L3_TM_DIG_6 @ 0XFD40D06C

      @@ -12727,14 +14795,6 @@ set psu_serdes_init_data { # MPHY PLL Gear and bypass scrambler #(OFFSET, MASK, VALUE) (0XFD40C0F4, 0x0000000BU ,0x0000000BU) */ mask_write 0XFD40C0F4 0x0000000B 0x0000000B - # Register : L3_TXPMA_ST_0 @ 0XFD40CB00

      - - # PHY Mode: 4'b000 - PCIe, 4'b001 - USB3, 4'b0010 - SATA, 4'b0100 - SGMII, 4'b0101 - DP, 4'b1000 - MPHY - # PSU_SERDES_L3_TXPMA_ST_0_TX_PHY_MODE 0x21 - - # Opmode Info - #(OFFSET, MASK, VALUE) (0XFD40CB00, 0x000000F0U ,0x000000F0U) */ - mask_write 0XFD40CB00 0x000000F0 0x000000F0 # : ENABLE CHICKEN BIT FOR PCIE AND USB # Register : L0_TM_AUX_0 @ 0XFD4010CC

      @@ -12796,7 +14856,8 @@ set psu_serdes_init_data { mask_write 0XFD40189C 0x00000080 0x00000080 # Register : L0_TM_IQ_ILL1 @ 0XFD4018F8

      - # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + # USB3 : SS # PSU_SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x64 # iqpi cal code @@ -12820,7 +14881,8 @@ set psu_serdes_init_data { mask_write 0XFD401990 0x000000FF 0x00000011 # Register : L0_TM_E_ILL1 @ 0XFD401924

      - # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + # SB3 : SS # PSU_SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x4 # epi cal code @@ -12890,6 +14952,22 @@ set psu_serdes_init_data { # enables for lf,constant gm trim and polytirm #(OFFSET, MASK, VALUE) (0XFD401944, 0x00000001U ,0x00000001U) */ mask_write 0XFD401944 0x00000001 0x00000001 + # Register : L0_TM_ILL13 @ 0XFD401994

      + + # ILL cal idle val refcnt + # PSU_SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + # ill cal idle value count + #(OFFSET, MASK, VALUE) (0XFD401994, 0x00000007U ,0x00000007U) */ + mask_write 0XFD401994 0x00000007 0x00000007 + # Register : L1_TM_ILL13 @ 0XFD405994

      + + # ILL cal idle val refcnt + # PSU_SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + # ill cal idle value count + #(OFFSET, MASK, VALUE) (0XFD405994, 0x00000007U ,0x00000007U) */ + mask_write 0XFD405994 0x00000007 0x00000007 # Register : L2_TM_MISC2 @ 0XFD40989C

      # ILL calib counts BYPASSED with calcode bits @@ -12900,7 +14978,8 @@ set psu_serdes_init_data { mask_write 0XFD40989C 0x00000080 0x00000080 # Register : L2_TM_IQ_ILL1 @ 0XFD4098F8

      - # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + # USB3 : SS # PSU_SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x1A # iqpi cal code @@ -12924,7 +15003,8 @@ set psu_serdes_init_data { mask_write 0XFD409990 0x000000FF 0x00000010 # Register : L2_TM_E_ILL1 @ 0XFD409924

      - # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + # SB3 : SS # PSU_SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0xFE # epi cal code @@ -12994,6 +15074,14 @@ set psu_serdes_init_data { # enables for lf,constant gm trim and polytirm #(OFFSET, MASK, VALUE) (0XFD409944, 0x00000001U ,0x00000001U) */ mask_write 0XFD409944 0x00000001 0x00000001 + # Register : L2_TM_ILL13 @ 0XFD409994

      + + # ILL cal idle val refcnt + # PSU_SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + # ill cal idle value count + #(OFFSET, MASK, VALUE) (0XFD409994, 0x00000007U ,0x00000007U) */ + mask_write 0XFD409994 0x00000007 0x00000007 # Register : L3_TM_MISC2 @ 0XFD40D89C

      # ILL calib counts BYPASSED with calcode bits @@ -13004,7 +15092,8 @@ set psu_serdes_init_data { mask_write 0XFD40D89C 0x00000080 0x00000080 # Register : L3_TM_IQ_ILL1 @ 0XFD40D8F8

      - # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + # USB3 : SS # PSU_SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x7D # iqpi cal code @@ -13028,7 +15117,8 @@ set psu_serdes_init_data { mask_write 0XFD40D990 0x000000FF 0x00000001 # Register : L3_TM_E_ILL1 @ 0XFD40D924

      - # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS + # E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + # SB3 : SS # PSU_SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x9C # epi cal code @@ -13106,23 +15196,47 @@ set psu_serdes_init_data { # enables for lf,constant gm trim and polytirm #(OFFSET, MASK, VALUE) (0XFD40D944, 0x00000001U ,0x00000001U) */ mask_write 0XFD40D944 0x00000001 0x00000001 + # Register : L3_TM_ILL13 @ 0XFD40D994

      + + # ILL cal idle val refcnt + # PSU_SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + # ill cal idle value count + #(OFFSET, MASK, VALUE) (0XFD40D994, 0x00000007U ,0x00000007U) */ + mask_write 0XFD40D994 0x00000007 0x00000007 # : SYMBOL LOCK AND WAIT - # Register : L0_TM_DIG_21 @ 0XFD4010A8

      - - # pre lock comma count threshold. 2'b 00 : 3, 2'b 01 : 5, 2'b 10 : 10, 2'b 11 : 20 - # PSU_SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH 0x11 - - # Control symbol alignment locking - wait counts - #(OFFSET, MASK, VALUE) (0XFD4010A8, 0x00000003U ,0x00000003U) */ - mask_write 0XFD4010A8 0x00000003 0x00000003 # Register : L0_TM_DIG_10 @ 0XFD40107C

      # CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 - # PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0xF + # PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 # test control for changing cdr lock wait time - #(OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x0000000FU) */ - mask_write 0XFD40107C 0x0000000F 0x0000000F + #(OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x00000001U) */ + mask_write 0XFD40107C 0x0000000F 0x00000001 + # Register : L1_TM_DIG_10 @ 0XFD40507C

      + + # CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + # PSU_SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + # test control for changing cdr lock wait time + #(OFFSET, MASK, VALUE) (0XFD40507C, 0x0000000FU ,0x00000001U) */ + mask_write 0XFD40507C 0x0000000F 0x00000001 + # Register : L2_TM_DIG_10 @ 0XFD40907C

      + + # CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + # PSU_SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + # test control for changing cdr lock wait time + #(OFFSET, MASK, VALUE) (0XFD40907C, 0x0000000FU ,0x00000001U) */ + mask_write 0XFD40907C 0x0000000F 0x00000001 + # Register : L3_TM_DIG_10 @ 0XFD40D07C

      + + # CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + # PSU_SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + # test control for changing cdr lock wait time + #(OFFSET, MASK, VALUE) (0XFD40D07C, 0x0000000FU ,0x00000001U) */ + mask_write 0XFD40D07C 0x0000000F 0x00000001 # : SIOU SETTINGS FOR BYPASS CONTROL,HSRX-DIG # Register : L0_TM_RST_DLY @ 0XFD4019A4

      @@ -13137,7 +15251,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_15 # PSU_SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - # Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c + # Bypass control for pcs-pma interface. EQ supplies, main master supply an + # d ps for samp c2c #(OFFSET, MASK, VALUE) (0XFD401038, 0x00000040U ,0x00000040U) */ mask_write 0XFD401038 0x00000040 0x00000040 # Register : L0_TM_ANA_BYP_12 @ 0XFD40102C

      @@ -13145,7 +15260,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_12 # PSU_SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls + # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + # ble controls #(OFFSET, MASK, VALUE) (0XFD40102C, 0x00000040U ,0x00000040U) */ mask_write 0XFD40102C 0x00000040 0x00000040 # Register : L1_TM_RST_DLY @ 0XFD4059A4

      @@ -13161,7 +15277,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_15 # PSU_SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - # Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c + # Bypass control for pcs-pma interface. EQ supplies, main master supply an + # d ps for samp c2c #(OFFSET, MASK, VALUE) (0XFD405038, 0x00000040U ,0x00000040U) */ mask_write 0XFD405038 0x00000040 0x00000040 # Register : L1_TM_ANA_BYP_12 @ 0XFD40502C

      @@ -13169,7 +15286,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_12 # PSU_SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls + # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + # ble controls #(OFFSET, MASK, VALUE) (0XFD40502C, 0x00000040U ,0x00000040U) */ mask_write 0XFD40502C 0x00000040 0x00000040 # Register : L2_TM_RST_DLY @ 0XFD4099A4

      @@ -13185,7 +15303,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_15 # PSU_SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - # Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c + # Bypass control for pcs-pma interface. EQ supplies, main master supply an + # d ps for samp c2c #(OFFSET, MASK, VALUE) (0XFD409038, 0x00000040U ,0x00000040U) */ mask_write 0XFD409038 0x00000040 0x00000040 # Register : L2_TM_ANA_BYP_12 @ 0XFD40902C

      @@ -13193,7 +15312,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_12 # PSU_SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls + # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + # ble controls #(OFFSET, MASK, VALUE) (0XFD40902C, 0x00000040U ,0x00000040U) */ mask_write 0XFD40902C 0x00000040 0x00000040 # Register : L3_TM_RST_DLY @ 0XFD40D9A4

      @@ -13209,7 +15329,8 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_15 # PSU_SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - # Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c + # Bypass control for pcs-pma interface. EQ supplies, main master supply an + # d ps for samp c2c #(OFFSET, MASK, VALUE) (0XFD40D038, 0x00000040U ,0x00000040U) */ mask_write 0XFD40D038 0x00000040 0x00000040 # Register : L3_TM_ANA_BYP_12 @ 0XFD40D02C

      @@ -13217,18 +15338,106 @@ set psu_serdes_init_data { # Enable Bypass for <7> of TM_ANA_BYPS_12 # PSU_SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls + # Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + # ble controls #(OFFSET, MASK, VALUE) (0XFD40D02C, 0x00000040U ,0x00000040U) */ mask_write 0XFD40D02C 0x00000040 0x00000040 + # : DISABLE FPL/FFL + # Register : L0_TM_MISC3 @ 0XFD4019AC

      + + # CDR fast phase lock control + # PSU_SERDES_L0_TM_MISC3_CDR_EN_FPL 0x0 + + # CDR fast frequency lock control + # PSU_SERDES_L0_TM_MISC3_CDR_EN_FFL 0x0 + + # debug bus selection bit, cdr fast phase and freq controls + #(OFFSET, MASK, VALUE) (0XFD4019AC, 0x00000003U ,0x00000000U) */ + mask_write 0XFD4019AC 0x00000003 0x00000000 + # Register : L1_TM_MISC3 @ 0XFD4059AC

      + + # CDR fast phase lock control + # PSU_SERDES_L1_TM_MISC3_CDR_EN_FPL 0x0 + + # CDR fast frequency lock control + # PSU_SERDES_L1_TM_MISC3_CDR_EN_FFL 0x0 + + # debug bus selection bit, cdr fast phase and freq controls + #(OFFSET, MASK, VALUE) (0XFD4059AC, 0x00000003U ,0x00000000U) */ + mask_write 0XFD4059AC 0x00000003 0x00000000 + # Register : L2_TM_MISC3 @ 0XFD4099AC

      + + # CDR fast phase lock control + # PSU_SERDES_L2_TM_MISC3_CDR_EN_FPL 0x0 + + # CDR fast frequency lock control + # PSU_SERDES_L2_TM_MISC3_CDR_EN_FFL 0x0 + + # debug bus selection bit, cdr fast phase and freq controls + #(OFFSET, MASK, VALUE) (0XFD4099AC, 0x00000003U ,0x00000000U) */ + mask_write 0XFD4099AC 0x00000003 0x00000000 + # Register : L3_TM_MISC3 @ 0XFD40D9AC

      + + # CDR fast phase lock control + # PSU_SERDES_L3_TM_MISC3_CDR_EN_FPL 0x0 + + # CDR fast frequency lock control + # PSU_SERDES_L3_TM_MISC3_CDR_EN_FFL 0x0 + + # debug bus selection bit, cdr fast phase and freq controls + #(OFFSET, MASK, VALUE) (0XFD40D9AC, 0x00000003U ,0x00000000U) */ + mask_write 0XFD40D9AC 0x00000003 0x00000000 + # : DISABLE DYNAMIC OFFSET CALIBRATION + # Register : L0_TM_EQ11 @ 0XFD401978

      + + # Force EQ offset correction algo off if not forced on + # PSU_SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + # eq dynamic offset correction + #(OFFSET, MASK, VALUE) (0XFD401978, 0x00000010U ,0x00000010U) */ + mask_write 0XFD401978 0x00000010 0x00000010 + # Register : L1_TM_EQ11 @ 0XFD405978

      + + # Force EQ offset correction algo off if not forced on + # PSU_SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + # eq dynamic offset correction + #(OFFSET, MASK, VALUE) (0XFD405978, 0x00000010U ,0x00000010U) */ + mask_write 0XFD405978 0x00000010 0x00000010 + # Register : L2_TM_EQ11 @ 0XFD409978

      + + # Force EQ offset correction algo off if not forced on + # PSU_SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + # eq dynamic offset correction + #(OFFSET, MASK, VALUE) (0XFD409978, 0x00000010U ,0x00000010U) */ + mask_write 0XFD409978 0x00000010 0x00000010 + # Register : L3_TM_EQ11 @ 0XFD40D978

      + + # Force EQ offset correction algo off if not forced on + # PSU_SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + # eq dynamic offset correction + #(OFFSET, MASK, VALUE) (0XFD40D978, 0x00000010U ,0x00000010U) */ + mask_write 0XFD40D978 0x00000010 0x00000010 + # : DISABLE ECO FOR PCIE + # Register : eco_0 @ 0XFD3D001C

      + + # For future use + # PSU_SIOU_ECO_0_FIELD 0x1 + + # ECO Register for future use + #(OFFSET, MASK, VALUE) (0XFD3D001C, 0xFFFFFFFFU ,0x00000001U) */ + mask_write 0XFD3D001C 0xFFFFFFFF 0x00000001 # : GT LANE SETTINGS # Register : ICM_CFG0 @ 0XFD410010

      - # Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unuse - # , 7 - Unused + # Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, + # 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unused, 7 - Unused # PSU_SERDES_ICM_CFG0_L0_ICM_CFG 1 - # Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused - # 7 - Unused + # Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + # 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused, 7 - Unused # PSU_SERDES_ICM_CFG0_L1_ICM_CFG 4 # ICM Configuration Register 0 @@ -13236,12 +15445,12 @@ set psu_serdes_init_data { mask_write 0XFD410010 0x00000077 0x00000041 # Register : ICM_CFG1 @ 0XFD410014

      - # Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused - # 7 - Unused + # Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + # 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused, 7 - Unused # PSU_SERDES_ICM_CFG1_L2_ICM_CFG 3 - # Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused - # 7 - Unused + # Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, + # 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused, 7 - Unused # PSU_SERDES_ICM_CFG1_L3_ICM_CFG 2 # ICM Configuration Register 1 @@ -13294,7 +15503,8 @@ set psu_serdes_init_data { # FFL Phase0 int gain aka 2ol SD update rate # PSU_SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN 0x6 - # Fast phase lock controls -- FSM accumulator cycle control and phase 0 int gain control. + # Fast phase lock controls -- FSM accumulator cycle control and phase 0 in + # t gain control. #(OFFSET, MASK, VALUE) (0XFD40DC14, 0x000000FFU ,0x000000E6U) */ mask_write 0XFD40DC14 0x000000FF 0x000000E6 # Register : L3_TM_CDR16 @ 0XFD40DC40

      @@ -13336,7 +15546,8 @@ set psu_serdes_init_data { mask_write 0XFD404CC0 0x0000001F 0x00000000 # Register : L1_TX_ANA_TM_18 @ 0XFD404048

      - # pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved + # pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + # phasis, Others: reserved # PSU_SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0 # Override for PIPE TX de-emphasis @@ -13344,7 +15555,8 @@ set psu_serdes_init_data { mask_write 0XFD404048 0x000000FF 0x00000000 # Register : L3_TX_ANA_TM_18 @ 0XFD40C048

      - # pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved + # pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + # phasis, Others: reserved # PSU_SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0x1 # Override for PIPE TX de-emphasis @@ -13363,24 +15575,7 @@ set psu_resetout_init_data { # Software control register for the LPD block. #(OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000400U ,0x00000000U) */ mask_write 0XFF5E023C 0x00000400 0x00000000 - # : USB0 PIPE POWER PRESENT - # Register : fpd_power_prsnt @ 0XFF9D0080

      - - # This bit is used to choose between PIPE power present and 1'b1 - # PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 - - # fpd_power_prsnt - #(OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) */ - mask_write 0XFF9D0080 0x00000001 0x00000001 - # Register : fpd_pipe_clk @ 0XFF9D007C

      - - # This bit is used to choose between PIPE clock coming from SerDes and the suspend clk - # PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 - - # fpd_pipe_clk - #(OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) */ - mask_write 0XFF9D007C 0x00000001 0x00000000 - # : + # : HIBERREST # Register : RST_LPD_TOP @ 0XFF5E023C

      # USB 0 sleep circuit reset @@ -13407,7 +15602,8 @@ set psu_resetout_init_data { # Sata PM clock control select # PSU_SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL 0x3 - # Misc Contorls for SATA.This register may only be modified during bootup (while SATA block is disabled) + # Misc Contorls for SATA.This register may only be modified during bootup + # (while SATA block is disabled) #(OFFSET, MASK, VALUE) (0XFD3D0100, 0x00000003U ,0x00000003U) */ mask_write 0XFD3D0100 0x00000003 0x00000003 # Register : RST_FPD_TOP @ 0XFD1A0100

      @@ -13449,8 +15645,9 @@ set psu_resetout_init_data { mask_write 0XFD4A0200 0x00000002 0x00000000 # Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

      - # Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - # ane0 Bits [3:2] - lane 1 + # Two bits per lane. When set to 11, moves the GT to power down mode. When + # set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + # lane 1 # PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0X0 # Control PHY Power down @@ -13459,96 +15656,194 @@ set psu_resetout_init_data { # : USB0 GFLADJ # Register : GUSB2PHYCFG @ 0XFE20C200

      - # USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to - # he Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). The following are the required values for the minimum S - # C bus frequency of 60 MHz. USB turnaround time is a critical certification criteria when using long cables and five hub level - # . The required values for this field: - 4'h5: When the MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit - # UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround time is not critical, this field can be set to a larger - # alue. Note: This field is valid only in device mode. + # USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY cloc + # ks. Specifies the response time for a MAC request to the Packet FIFO Con + # troller (PFC) to fetch data from the DFIFO (SPRAM). The following are th + # e required values for the minimum SoC bus frequency of 60 MHz. USB turna + # round time is a critical certification criteria when using long cables a + # nd five hub levels. The required values for this field: - 4'h5: When the + # MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit + # UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround tim + # e is not critical, this field can be set to a larger value. Note: This f + # ield is valid only in device mode. # PSU_USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM 0x9 - # Transceiver Delay: Enables a delay between the assertion of the UTMI/ULPI Transceiver Select signal (for HS) and the assertio - # of the TxValid signal during a HS Chirp. When this bit is set to 1, a delay (of approximately 2.5 us) is introduced from the - # time when the Transceiver Select is set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the chirp-K. This de - # ay is required for some UTMI/ULPI PHYs. Note: - If you enable the hibernation feature when the device core comes out of power - # off, you must re-initialize this bit with the appropriate value because the core does not save and restore this bit value dur - # ng hibernation. - This bit is valid only in device mode. + # Transceiver Delay: Enables a delay between the assertion of the UTMI/ULP + # I Transceiver Select signal (for HS) and the assertion of the TxValid si + # gnal during a HS Chirp. When this bit is set to 1, a delay (of approxima + # tely 2.5 us) is introduced from the time when the Transceiver Select is + # set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the + # chirp-K. This delay is required for some UTMI/ULPI PHYs. Note: - If you + # enable the hibernation feature when the device core comes out of power- + # off, you must re-initialize this bit with the appropriate value because + # the core does not save and restore this bit value during hibernation. - + # This bit is valid only in device mode. # PSU_USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY 0x0 - # Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application uses this bit to control utmi_sleep_n and utmi_l1_suspen - # _n assertion to the PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is not transferre - # to the external PHY. - 1'b1: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is transferred to the external PHY. - # ote: This bit must be set high for Port0 if PHY is used. Note: In Device mode - Before issuing any device endpoint command wh - # n operating in 2.0 speeds, disable this bit and enable it after the command completes. Without disabling this bit, if a comma - # d is issued when the device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get complet - # d. + # Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application use + # s this bit to control utmi_sleep_n and utmi_l1_suspend_n assertion to th + # e PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assert + # ion from the core is not transferred to the external PHY. - 1'b1: utmi_s + # leep_n and utmi_l1_suspend_n assertion from the core is transferred to t + # he external PHY. Note: This bit must be set high for Port0 if PHY is use + # d. Note: In Device mode - Before issuing any device endpoint command whe + # n operating in 2.0 speeds, disable this bit and enable it after the comm + # and completes. Without disabling this bit, if a command is issued when t + # he device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated of + # f, the command will not get completed. # PSU_USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM 0x0 - # USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select The application uses this bit to select a high-speed P - # Y or a full-speed transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is always 0, with Write Only access. - - # 'b1: USB 1.1 full-speed serial transceiver. This bit is always 1, with Write Only access. If both interface types are selecte - # in coreConsultant (that is, parameters' values are not zero), the application uses this bit to select the active interface i - # active, with Read-Write bit access. Note: USB 1.1 full-serial transceiver is not supported. This bit always reads as 1'b0. + # USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select T + # he application uses this bit to select a high-speed PHY or a full-speed + # transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is a + # lways 0, with Write Only access. - 1'b1: USB 1.1 full-speed serial trans + # ceiver. This bit is always 1, with Write Only access. If both interface + # types are selected in coreConsultant (that is, parameters' values are no + # t zero), the application uses this bit to select the active interface is + # active, with Read-Write bit access. Note: USB 1.1 full-serial transceiv + # er is not supported. This bit always reads as 1'b0. # PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYSEL 0x0 - # Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select a unidirectional or bidirectional USB 1.1 - # full-speed serial transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial interface. This bit is set to 0 with - # ead Only access. - 1'b1: 3-pin bidirectional full-speed serial interface. This bit is set to 0 with Read Only access. Note: U - # B 1.1 full-speed serial interface is not supported. This bit always reads as 1'b0. + # Suspend USB2.0 HS/FS/LS PHY (SusPHY) When set, USB2.0 PHY enters Suspend + # mode if Suspend conditions are valid. For DRD/OTG configurations, it is + # recommended that this bit is set to 0 during coreConsultant configurati + # on. If it is set to 1, then the application must clear this bit after po + # wer-on reset. Application needs to set it to 1 after the core initializa + # tion completes. For all other configurations, this bit can be set to 1 d + # uring core configuration. Note: - In host mode, on reset, this bit is se + # t to 1. Software can override this bit after reset. - In device mode, be + # fore issuing any device endpoint command when operating in 2.0 speeds, d + # isable this bit and enable it after the command completes. If you issue + # a command without disabling this bit when the device is in L2 state and + # if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get c + # ompleted. + # PSU_USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20 0x1 + + # Full-Speed Serial Interface Select (FSIntf) The application uses this bi + # t to select a unidirectional or bidirectional USB 1.1 full-speed serial + # transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial in + # terface. This bit is set to 0 with Read Only access. - 1'b1: 3-pin bidir + # ectional full-speed serial interface. This bit is set to 0 with Read Onl + # y access. Note: USB 1.1 full-speed serial interface is not supported. Th + # is bit always reads as 1'b0. # PSU_USB3_0_XHCI_GUSB2PHYCFG_FSINTF 0x0 - # ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interfa - # e - 1'b1: ULPI Interface This bit is writable only if UTMI+ and ULPI is specified for High-Speed PHY Interface(s) in coreCons - # ltant configuration (DWC_USB3_HSPHY_INTERFACE = 3). Otherwise, this bit is read-only and the value depends on the interface s - # lected through DWC_USB3_HSPHY_INTERFACE. + # ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to se + # lect a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interface - 1'b1: ULPI Int + # erface This bit is writable only if UTMI+ and ULPI is specified for High + # -Speed PHY Interface(s) in coreConsultant configuration (DWC_USB3_HSPHY_ + # INTERFACE = 3). Otherwise, this bit is read-only and the value depends o + # n the interface selected through DWC_USB3_HSPHY_INTERFACE. # PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL 0x1 - # PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bit to configure the core to support a UTMI+ PHY with a - # 8- or 16-bit interface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the enabled 2.0 ports must have the same - # lock frequency as Port0 clock frequency (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used together for differen - # ports at the same time (that is, all the ports must be in 8-bit mode, or all of them must be in 16-bit mode, at a time). - I - # any of the USB 2.0 ports is selected as ULPI port for operation, then all the USB 2.0 ports must be operating at 60 MHz. + # PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bi + # t to configure the core to support a UTMI+ PHY with an 8- or 16-bit inte + # rface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the en + # abled 2.0 ports must have the same clock frequency as Port0 clock freque + # ncy (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used toge + # ther for different ports at the same time (that is, all the ports must b + # e in 8-bit mode, or all of them must be in 16-bit mode, at a time). - If + # any of the USB 2.0 ports is selected as ULPI port for operation, then a + # ll the USB 2.0 ports must be operating at 60 MHz. # PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYIF 0x0 - # HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicated by the application in this field, is multiplied by - # a bit-time factor; this factor is added to the high-speed/full-speed interpacket timeout duration in the core to account for - # dditional delays introduced by the PHY. This may be required, since the delay introduced by the PHY in generating the linesta - # e condition may vary among PHYs. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. - # The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this - # ield based on the speed of connection. The number of bit times added per PHY clock are: High-speed operation: - One 30-MHz PH - # clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One - # 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times + # HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicat + # ed by the application in this field, is multiplied by a bit-time factor; + # this factor is added to the high-speed/full-speed interpacket timeout d + # uration in the core to account for additional delays introduced by the P + # HY. This may be required, since the delay introduced by the PHY in gener + # ating the linestate condition may vary among PHYs. The USB standard time + # out value for high-speed operation is 736 to 816 (inclusive) bit times. + # The USB standard timeout value for full-speed operation is 16 to 18 (inc + # lusive) bit times. The application must program this field based on the + # speed of connection. The number of bit times added per PHY clock are: Hi + # gh-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz P + # HY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0. + # 4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY cloc + # k = 0.25 bit times # PSU_USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL 0x7 - # Global USB2 PHY Configuration Register The application must program this register before starting any transactions on either - # he SoC bus or the USB. In Device-only configurations, only one register is needed. In Host mode, per-port registers are imple - # ented. - #(OFFSET, MASK, VALUE) (0XFE20C200, 0x00003FBFU ,0x00002417U) */ - mask_write 0XFE20C200 0x00003FBF 0x00002417 + # ULPI External VBUS Drive (ULPIExtVbusDrv) Selects supply source to drive + # 5V on VBUS, in the ULPI PHY. - 1'b0: PHY drives VBUS with internal char + # ge pump (default). - 1'b1: PHY drives VBUS with an external supply. (Onl + # y when RTL parameter DWC_USB3_HSPHY_INTERFACE = 2 or 3) + # PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV 0x1 + + # Global USB2 PHY Configuration Register The application must program this + # register before starting any transactions on either the SoC bus or the + # USB. In Device-only configurations, only one register is needed. In Host + # mode, per-port registers are implemented. + #(OFFSET, MASK, VALUE) (0XFE20C200, 0x00023FFFU ,0x00022457U) */ + mask_write 0XFE20C200 0x00023FFF 0x00022457 # Register : GFLADJ @ 0XFE20C630

      - # This field indicates the frame length adjustment to be applied when SOF/ITP counter is running on the ref_clk. This register - # alue is used to adjust the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP interval when GLADJ.GFLADJ_REFCLK_LP - # _SEL is set to '1'. This field must be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set to '1' or GCTL.SOF - # TPSYNC is set to '1'. The value is derived as follows: FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_p - # riod)) * ref_clk_period where - the ref_clk_period_integer is the integer value of the ref_clk period got by truncating the d - # cimal (fractional) value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_clk_period is the ref_clk period inc - # uding the fractional value. Examples: If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLADJ_REFCLK_FLADJ = - # ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignoring the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_P - # RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*20.8333 = 5208 (ignoring the fractional value) + # This field indicates the frame length adjustment to be applied when SOF/ + # ITP counter is running on the ref_clk. This register value is used to ad + # just the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP i + # nterval when GLADJ.GFLADJ_REFCLK_LPM_SEL is set to '1'. This field must + # be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set t + # o '1' or GCTL.SOFITPSYNC is set to '1'. The value is derived as follows: + # FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_pe + # riod)) * ref_clk_period where - the ref_clk_period_integer is the intege + # r value of the ref_clk period got by truncating the decimal (fractional) + # value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_c + # lk_period is the ref_clk period including the fractional value. Examples + # : If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLA + # DJ_REFCLK_FLADJ = ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignorin + # g the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_PE + # RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*2 + # 0.8333 = 5208 (ignoring the fractional value) # PSU_USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ 0x0 - # Global Frame Length Adjustment Register This register provides options for the software to control the core behavior with res - # ect to SOF (Start of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer functionality. It provides an optio - # to override the fladj_30mhz_reg sideband signal. In addition, it enables running SOF or ITP frame timer counters completely - # rom the ref_clk. This facilitates hardware LPM in host mode with the SOF or ITP counters being run from the ref_clk signal. + # Global Frame Length Adjustment Register This register provides options f + # or the software to control the core behavior with respect to SOF (Start + # of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer + # functionality. It provides an option to override the fladj_30mhz_reg sid + # eband signal. In addition, it enables running SOF or ITP frame timer cou + # nters completely from the ref_clk. This facilitates hardware LPM in host + # mode with the SOF or ITP counters being run from the ref_clk signal. #(OFFSET, MASK, VALUE) (0XFE20C630, 0x003FFF00U ,0x00000000U) */ mask_write 0XFE20C630 0x003FFF00 0x00000000 + # Register : GUCTL1 @ 0XFE20C11C

      + + # When this bit is set to '0', termsel, xcvrsel will become 0 during end o + # f resume while the opmode will become 0 once controller completes end of + # resume and enters U0 state (2 separate commandswill be issued). When th + # is bit is set to '1', all the termsel, xcvrsel, opmode becomes 0 during + # end of resume itself (only 1 command will be issued) + # PSU_USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY 0x1 + + # Reserved + # PSU_USB3_0_XHCI_GUCTL1_RESERVED_9 0x1 + + # Global User Control Register 1 + #(OFFSET, MASK, VALUE) (0XFE20C11C, 0x00000600U ,0x00000600U) */ + mask_write 0XFE20C11C 0x00000600 0x00000600 + # Register : GUCTL @ 0XFE20C12C

      + + # Host IN Auto Retry (USBHstInAutoRetryEn) When set, this field enables th + # e Auto Retry feature. For IN transfers (non-isochronous) that encounter + # data packets with CRC errors or internal overrun scenarios, the auto ret + # ry feature causes the Host core to reply to the device with a non-termin + # ating retry ACK (that is, an ACK transaction packet with Retry = 1 and N + # umP != 0). If the Auto Retry feature is disabled (default), the core wil + # l respond with a terminating retry ACK (that is, an ACK transaction pack + # et with Retry = 1 and NumP = 0). - 1'b0: Auto Retry Disabled - 1'b1: Aut + # o Retry Enabled Note: This bit is also applicable to the device mode. + # PSU_USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN 0x1 + + # Global User Control Register: This register provides a few options for t + # he software to control the core behavior in the Host mode. Most of the o + # ptions are used to improve host inter-operability with different devices + # . + #(OFFSET, MASK, VALUE) (0XFE20C12C, 0x00004000U ,0x00004000U) */ + mask_write 0XFE20C12C 0x00004000 0x00004000 # : UPDATING TWO PCIE REGISTERS DEFAULT VALUES, AS THESE REGISTERS HAVE INCORRECT RESET VALUES IN SILICON. # Register : ATTR_25 @ 0XFD480064

      - # If TRUE Completion Timeout Disable is supported. This is required to be TRUE for Endpoint and either setting allowed for Root - # ports. Drives Device Capability 2 [4]; EP=0x0001; RP=0x0001 + # If TRUE Completion Timeout Disable is supported. This is required to be + # TRUE for Endpoint and either setting allowed for Root ports. Drives Devi + # ce Capability 2 [4]; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED 0X1 # ATTR_25 @@ -13557,12 +15852,16 @@ set psu_resetout_init_data { # : PCIE SETTINGS # Register : ATTR_7 @ 0XFD48001C

      - # Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - # ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - # Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - # erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - # set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - # re size in bytes.; EP=0x0004; RP=0x0000 + # Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + # to be implemented, set to 32'h00000000. Bits are defined as follows: Me + # mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + # 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + # for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + # here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + # n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + # set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + # AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + # EP=0x0004; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_7_ATTR_BAR0 0x0 # ATTR_7 @@ -13570,12 +15869,16 @@ set psu_resetout_init_data { mask_write 0XFD48001C 0x0000FFFF 0x00000000 # Register : ATTR_8 @ 0XFD480020

      - # Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - # ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - # Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - # erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - # set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - # re size in bytes.; EP=0xFFF0; RP=0x0000 + # Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + # to be implemented, set to 32'h00000000. Bits are defined as follows: Me + # mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + # 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + # for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + # here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + # n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + # set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + # AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + # EP=0xFFF0; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_8_ATTR_BAR0 0x0 # ATTR_8 @@ -13583,13 +15886,18 @@ set psu_resetout_init_data { mask_write 0XFD480020 0x0000FFFF 0x00000000 # Register : ATTR_9 @ 0XFD480024

      - # Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - # AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - # bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - # o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - # 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - # '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - # ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + # Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + # 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + # R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + # ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + # ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + # e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + # [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + # 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + # in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + # o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + # to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + # o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_9_ATTR_BAR1 0x0 # ATTR_9 @@ -13597,13 +15905,18 @@ set psu_resetout_init_data { mask_write 0XFD480024 0x0000FFFF 0x00000000 # Register : ATTR_10 @ 0XFD480028

      - # Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - # AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - # bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - # o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - # 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - # '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - # ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + # Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + # 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + # R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + # ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + # ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + # e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + # [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + # 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + # in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + # o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + # to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + # o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_10_ATTR_BAR1 0x0 # ATTR_10 @@ -13611,14 +15924,20 @@ set psu_resetout_init_data { mask_write 0XFD480028 0x0000FFFF 0x00000000 # Register : ATTR_11 @ 0XFD48002C

      - # For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - # AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - # , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - # most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - # . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - # ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFFF + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + # R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR1 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + # F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + # pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + # ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + # 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + # 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + # or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + # of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + # es.; EP=0x0004; RP=0xFFFF # PSU_PCIE_ATTRIB_ATTR_11_ATTR_BAR2 0xFFFF # ATTR_11 @@ -13626,14 +15945,20 @@ set psu_resetout_init_data { mask_write 0XFD48002C 0x0000FFFF 0x0000FFFF # Register : ATTR_12 @ 0XFD480030

      - # For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - # AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - # , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - # most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - # . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - # ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0x00FF + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + # R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR1 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + # F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + # pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + # ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + # 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + # 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + # or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + # of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + # es.; EP=0xFFF0; RP=0x00FF # PSU_PCIE_ATTRIB_ATTR_12_ATTR_BAR2 0xFF # ATTR_12 @@ -13641,15 +15966,22 @@ set psu_resetout_init_data { mask_write 0XFD480030 0x0000FFFF 0x000000FF # Register : ATTR_13 @ 0XFD480034

      - # For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - # AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - # Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - # t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - # t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - # if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - # f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - # bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + # R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR2 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + # 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + # egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + # t decode For an endpoint, bits are defined as follows: Memory Space BAR + # (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + # pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + # 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + # ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + # ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + # ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + # bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + # in bytes.; EP=0xFFFF; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_13_ATTR_BAR3 0x0 # ATTR_13 @@ -13657,15 +15989,22 @@ set psu_resetout_init_data { mask_write 0XFD480034 0x0000FFFF 0x00000000 # Register : ATTR_14 @ 0XFD480038

      - # For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - # AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - # Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - # t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - # t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - # if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - # f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - # bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFFF + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + # R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR2 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + # 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + # egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + # t decode For an endpoint, bits are defined as follows: Memory Space BAR + # (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + # pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + # 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + # ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + # ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + # ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + # bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + # in bytes.; EP=0xFFFF; RP=0xFFFF # PSU_PCIE_ATTRIB_ATTR_14_ATTR_BAR3 0xFFFF # ATTR_14 @@ -13673,14 +16012,20 @@ set psu_resetout_init_data { mask_write 0XFD480038 0x0000FFFF 0x0000FFFF # Register : ATTR_15 @ 0XFD48003C

      - # For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - # AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - # , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - # most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - # . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - # ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFF0 + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + # R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR3 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + # 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + # pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + # ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + # 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + # 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + # or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + # of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + # es.; EP=0x0004; RP=0xFFF0 # PSU_PCIE_ATTRIB_ATTR_15_ATTR_BAR4 0xFFF0 # ATTR_15 @@ -13688,14 +16033,20 @@ set psu_resetout_init_data { mask_write 0XFD48003C 0x0000FFFF 0x0000FFF0 # Register : ATTR_16 @ 0XFD480040

      - # For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - # AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - # , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - # most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - # . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - # ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0xFFF0 + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + # R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR3 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + # 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + # pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + # ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + # ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + # 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + # 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + # or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + # of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + # es.; EP=0xFFF0; RP=0xFFF0 # PSU_PCIE_ATTRIB_ATTR_16_ATTR_BAR4 0xFFF0 # ATTR_16 @@ -13703,15 +16054,22 @@ set psu_resetout_init_data { mask_write 0XFD480040 0x0000FFFF 0x0000FFF0 # Register : ATTR_17 @ 0XFD480044

      - # For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - # AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - # Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - # refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - # R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - # refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - # ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - # permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + # R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR4 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + # 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + # = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + # refetchable Memory Limit/Base implemented For an endpoint, bits are defi + # ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + # e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + # lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + # or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + # aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + # [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + # permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + # ; RP=0xFFF1 # PSU_PCIE_ATTRIB_ATTR_17_ATTR_BAR5 0xFFF1 # ATTR_17 @@ -13719,15 +16077,22 @@ set psu_resetout_init_data { mask_write 0XFD480044 0x0000FFFF 0x0000FFF1 # Register : ATTR_18 @ 0XFD480048

      - # For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - # AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - # tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - # Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - # refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - # R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - # refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - # ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - # permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 + # For an endpoint, specifies mask/settings for Base Address Register (BAR) + # 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + # R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + # et to 32'h00000000. See BAR4 description if this functions as the upper + # bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + # 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + # = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + # refetchable Memory Limit/Base implemented For an endpoint, bits are defi + # ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + # e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + # lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + # or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + # aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + # [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + # permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + # ; RP=0xFFF1 # PSU_PCIE_ATTRIB_ATTR_18_ATTR_BAR5 0xFFF1 # ATTR_18 @@ -13735,13 +16100,17 @@ set psu_resetout_init_data { mask_write 0XFD480048 0x0000FFFF 0x0000FFF1 # Register : ATTR_27 @ 0XFD48006C

      - # Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1- 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred - # to the Device Capabilities register. The values: 4-2048 bytes, 5- 4096 bytes are not supported; EP=0x0001; RP=0x0001 + # Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1 + # - 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred to the Device Capa + # bilities register. The values: 4-2048 bytes, 5- 4096 bytes are not suppo + # rted; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED 1 - # Endpoint L1 Acceptable Latency. Records the latency that the endpoint can withstand on transitions from L1 state to L0 (if L1 - # state supported). Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to 8us, 4h 8 to 16us, 5h 16 to 32us, 6 - # 32 to 64us, 7h more than 64us. For Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 + # Endpoint L1 Acceptable Latency. Records the latency that the endpoint ca + # n withstand on transitions from L1 state to L0 (if L1 state supported). + # Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to + # 8us, 4h 8 to 16us, 5h 16 to 32us, 6h 32 to 64us, 7h more than 64us. For + # Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY 0x0 # ATTR_27 @@ -13749,14 +16118,18 @@ set psu_resetout_init_data { mask_write 0XFD48006C 0x00000738 0x00000100 # Register : ATTR_50 @ 0XFD4800C8

      - # Identifies the type of device/port as follows: 0000b PCI Express Endpoint device, 0001b Legacy PCI Express Endpoint device, 0 - # 00b Root Port of PCI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110b Downstream Port of PCI Express Sw - # tch, 0111b PCIE Express to PCI/PCI-X Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Express Capabilities r - # gister. Must be consistent with IS_SWITCH and UPSTREAM_FACING settings.; EP=0x0000; RP=0x0004 + # Identifies the type of device/port as follows: 0000b PCI Express Endpoin + # t device, 0001b Legacy PCI Express Endpoint device, 0100b Root Port of P + # CI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110 + # b Downstream Port of PCI Express Switch, 0111b PCIE Express to PCI/PCI-X + # Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Expre + # ss Capabilities register. Must be consistent with IS_SWITCH and UPSTREAM + # _FACING settings.; EP=0x0000; RP=0x0004 # PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE 4 - # PCIe Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capab - # lity.; EP=0x009C; RP=0x0000 + # PCIe Capability's Next Capability Offset pointer to the next item in the + # capabilities list, or 00h if this is the final capability.; EP=0x009C; + # RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR 0 # ATTR_50 @@ -13764,8 +16137,9 @@ set psu_resetout_init_data { mask_write 0XFD4800C8 0x0000FFF0 0x00000040 # Register : ATTR_105 @ 0XFD4801A4

      - # Number of credits that should be advertised for Completion data received on Virtual Channel 0. The bytes advertised must be l - # ss than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD + # Number of credits that should be advertised for Completion data received + # on Virtual Channel 0. The bytes advertised must be less than or equal t + # o the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD # PSU_PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD 0xCD # ATTR_105 @@ -13773,13 +16147,16 @@ set psu_resetout_init_data { mask_write 0XFD4801A4 0x000007FF 0x000000CD # Register : ATTR_106 @ 0XFD4801A8

      - # Number of credits that should be advertised for Completion headers received on Virtual Channel 0. The sum of the posted, non - # osted, and completion header credits must be <= 80; EP=0x0048; RP=0x0024 + # Number of credits that should be advertised for Completion headers recei + # ved on Virtual Channel 0. The sum of the posted, non posted, and complet + # ion header credits must be <= 80; EP=0x0048; RP=0x0024 # PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH 0x24 - # Number of credits that should be advertised for Non-Posted headers received on Virtual Channel 0. The number of non posted da - # a credits advertised by the block is equal to the number of non posted header credits. The sum of the posted, non posted, and - # completion header credits must be <= 80; EP=0x0004; RP=0x000C + # Number of credits that should be advertised for Non-Posted headers recei + # ved on Virtual Channel 0. The number of non posted data credits advertis + # ed by the block is equal to the number of non posted header credits. The + # sum of the posted, non posted, and completion header credits must be <= + # 80; EP=0x0004; RP=0x000C # PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH 0xC # ATTR_106 @@ -13787,10 +16164,13 @@ set psu_resetout_init_data { mask_write 0XFD4801A8 0x00003FFF 0x00000624 # Register : ATTR_107 @ 0XFD4801AC

      - # Number of credits that should be advertised for Non-Posted data received on Virtual Channel 0. The number of non posted data - # redits advertised by the block is equal to two times the number of non posted header credits if atomic operations are support - # d or is equal to the number of non posted header credits if atomic operations are not supported. The bytes advertised must be - # less than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 + # Number of credits that should be advertised for Non-Posted data received + # on Virtual Channel 0. The number of non posted data credits advertised + # by the block is equal to two times the number of non posted header credi + # ts if atomic operations are supported or is equal to the number of non p + # osted header credits if atomic operations are not supported. The bytes a + # dvertised must be less than or equal to the bram bytes available. See VC + # 0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 # PSU_PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD 0x18 # ATTR_107 @@ -13798,8 +16178,9 @@ set psu_resetout_init_data { mask_write 0XFD4801AC 0x000007FF 0x00000018 # Register : ATTR_108 @ 0XFD4801B0

      - # Number of credits that should be advertised for Posted data received on Virtual Channel 0. The bytes advertised must be less - # han or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 + # Number of credits that should be advertised for Posted data received on + # Virtual Channel 0. The bytes advertised must be less than or equal to th + # e bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 # PSU_PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD 0xB5 # ATTR_108 @@ -13807,23 +16188,27 @@ set psu_resetout_init_data { mask_write 0XFD4801B0 0x000007FF 0x000000B5 # Register : ATTR_109 @ 0XFD4801B4

      - # Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x00 - # 0 + # Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_ + # n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV 0x0 - # Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim TRUE == trim.; EP=0x0001; RP=0x0001 + # Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim + # TRUE == trim.; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM 0x1 - # Enables ECRC check on received TLP's 0 == don't check 1 == always check 3 == check if enabled by ECRC check enable bit of AER - # cap structure; EP=0x0003; RP=0x0003 + # Enables ECRC check on received TLP's 0 == don't check 1 == always check + # 3 == check if enabled by ECRC check enable bit of AER cap structure; EP= + # 0x0003; RP=0x0003 # PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK 0x3 - # Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). Calculated from max payload size supported and the n - # mber of brams configured for transmit; EP=0x001C; RP=0x001C + # Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). + # Calculated from max payload size supported and the number of brams conf + # igured for transmit; EP=0x001C; RP=0x001C # PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET 0x1c - # Number of credits that should be advertised for Posted headers received on Virtual Channel 0. The sum of the posted, non post - # d, and completion header credits must be <= 80; EP=0x0004; RP=0x0020 + # Number of credits that should be advertised for Posted headers received + # on Virtual Channel 0. The sum of the posted, non posted, and completion + # header credits must be <= 80; EP=0x0004; RP=0x0020 # PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH 0x20 # ATTR_109 @@ -13831,8 +16216,10 @@ set psu_resetout_init_data { mask_write 0XFD4801B4 0x0000FFFF 0x00007E20 # Register : ATTR_34 @ 0XFD480088

      - # Specifies values to be transferred to Header Type register. Bit 7 should be set to '0' indicating single-function device. Bit - # 0 identifies header as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; RP=0x0001 + # Specifies values to be transferred to Header Type register. Bit 7 should + # be set to '0' indicating single-function device. Bit 0 identifies heade + # r as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; + # RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE 0x1 # ATTR_34 @@ -13840,8 +16227,9 @@ set psu_resetout_init_data { mask_write 0XFD480088 0x000000FF 0x00000001 # Register : ATTR_53 @ 0XFD4800D4

      - # PM Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabil - # ty.; EP=0x0048; RP=0x0060 + # PM Capability's Next Capability Offset pointer to the next item in the c + # apabilities list, or 00h if this is the final capability.; EP=0x0048; RP + # =0x0060 # PSU_PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR 0x60 # ATTR_53 @@ -13849,20 +16237,24 @@ set psu_resetout_init_data { mask_write 0XFD4800D4 0x000000FF 0x00000060 # Register : ATTR_41 @ 0XFD4800A4

      - # MSI Per-Vector Masking Capable. The value is transferred to the MSI Control Register[8]. When set, adds Mask and Pending Dwor - # to Cap structure; EP=0x0000; RP=0x0000 + # MSI Per-Vector Masking Capable. The value is transferred to the MSI Cont + # rol Register[8]. When set, adds Mask and Pending Dword to Cap structure; + # EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE 0x0 - # Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - # he management port.; EP=0x0001; RP=0x0000 + # Indicates that the MSI structures exists. If this is FALSE, then the MSI + # structure cannot be accessed via either the link or the management port + # .; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 - # MSI Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabi - # ity.; EP=0x0060; RP=0x0000 + # MSI Capability's Next Capability Offset pointer to the next item in the + # capabilities list, or 00h if this is the final capability.; EP=0x0060; R + # P=0x0000 # PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR 0x0 - # Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - # he management port.; EP=0x0001; RP=0x0000 + # Indicates that the MSI structures exists. If this is FALSE, then the MSI + # structure cannot be accessed via either the link or the management port + # .; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 # ATTR_41 @@ -13870,11 +16262,12 @@ set psu_resetout_init_data { mask_write 0XFD4800A4 0x000003FF 0x00000000 # Register : ATTR_97 @ 0XFD480184

      - # Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b x4, 001000b x8.; EP=0x0004; RP=0x0004 + # Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b + # x4, 001000b x8.; EP=0x0004; RP=0x0004 # PSU_PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH 0x1 - # Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x00 - # 4; RP=0x0004 + # Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1 + # ], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x0004; RP=0x0004 # PSU_PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH 0x1 # ATTR_97 @@ -13882,7 +16275,8 @@ set psu_resetout_init_data { mask_write 0XFD480184 0x00000FFF 0x00000041 # Register : ATTR_100 @ 0XFD480190

      - # TRUE specifies upstream-facing port. FALSE specifies downstream-facing port.; EP=0x0001; RP=0x0000 + # TRUE specifies upstream-facing port. FALSE specifies downstream-facing p + # ort.; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING 0x0 # ATTR_100 @@ -13890,13 +16284,16 @@ set psu_resetout_init_data { mask_write 0XFD480190 0x00000040 0x00000000 # Register : ATTR_101 @ 0XFD480194

      - # Enable the routing of message TLPs to the user through the TRN RX interface. A bit value of 1 enables routing of the message - # LP to the user. Messages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 - ERR NONFATAL, Bit 2 - ERR FATAL, - # Bit 3 - INTA Bit 4 - INTB, Bit 5 - INTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit 10 PME_Turn_Off; - # EP=0x0000; RP=0x07FF + # Enable the routing of message TLPs to the user through the TRN RX interf + # ace. A bit value of 1 enables routing of the message TLP to the user. Me + # ssages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 + # - ERR NONFATAL, Bit 2 - ERR FATAL, Bit 3 - INTA Bit 4 - INTB, Bit 5 - I + # NTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit + # 10 PME_Turn_Off; EP=0x0000; RP=0x07FF # PSU_PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE 0x7FF - # Disable BAR filtering. Does not change the behavior of the bar hit outputs; EP=0x0000; RP=0x0001 + # Disable BAR filtering. Does not change the behavior of the bar hit outpu + # ts; EP=0x0000; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING 0x1 # ATTR_101 @@ -13904,12 +16301,14 @@ set psu_resetout_init_data { mask_write 0XFD480194 0x0000FFE2 0x0000FFE2 # Register : ATTR_37 @ 0XFD480094

      - # Link Bandwidth notification capability. Indicates support for the link bandwidth notification status and interrupt mechanism. - # Required for Root.; EP=0x0000; RP=0x0001 + # Link Bandwidth notification capability. Indicates support for the link b + # andwidth notification status and interrupt mechanism. Required for Root. + # ; EP=0x0000; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP 0x1 - # Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Optionality ECN. Transferred to the Link Capabilities r - # gister.; EP=0x0001; RP=0x0001 + # Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Op + # tionality ECN. Transferred to the Link Capabilities register.; EP=0x0001 + # ; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY 0x1 # ATTR_37 @@ -13917,13 +16316,16 @@ set psu_resetout_init_data { mask_write 0XFD480094 0x00004200 0x00004200 # Register : ATTR_93 @ 0XFD480174

      - # Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value (or combined with the built-in value, depending on L - # _REPLAY_TIMEOUT_FUNC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 + # Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value + # (or combined with the built-in value, depending on LL_REPLAY_TIMEOUT_FU + # NC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN 0x1 - # Sets a user-defined timeout for the Replay Timer to force cause the retransmission of unacknowledged TLPs; refer to LL_REPLAY - # TIMEOUT_EN and LL_REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this attribute is in symbol times, which is - # 4ns at GEN1 speeds and 2ns at GEN2.; EP=0x0000; RP=0x0000 + # Sets a user-defined timeout for the Replay Timer to force cause the retr + # ansmission of unacknowledged TLPs; refer to LL_REPLAY_TIMEOUT_EN and LL_ + # REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this att + # ribute is in symbol times, which is 4ns at GEN1 speeds and 2ns at GEN2.; + # EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT 0x1000 # ATTR_93 @@ -13961,8 +16363,8 @@ set psu_resetout_init_data { mask_write 0XFD480208 0x000000FF 0x00000000 # Register : ATTR_24 @ 0XFD480060

      - # Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - # 8000; RP=0x8000 + # Code identifying basic function, subclass and applicable programming int + # erface. Transferred to the Class Code register.; EP=0x8000; RP=0x8000 # PSU_PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE 0x400 # ATTR_24 @@ -13970,11 +16372,12 @@ set psu_resetout_init_data { mask_write 0XFD480060 0x0000FFFF 0x00000400 # Register : ATTR_25 @ 0XFD480064

      - # Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - # 0005; RP=0x0006 + # Code identifying basic function, subclass and applicable programming int + # erface. Transferred to the Class Code register.; EP=0x0005; RP=0x0006 # PSU_PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE 0x6 - # INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] to be hardwired to 0.; EP=0x0001; RP=0x0001 + # INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] + # to be hardwired to 0.; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED 0 # ATTR_25 @@ -13982,14 +16385,18 @@ set psu_resetout_init_data { mask_write 0XFD480064 0x000001FF 0x00000006 # Register : ATTR_4 @ 0XFD480010

      - # Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - # he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - # ges are sent if an error is detected).; EP=0x0001; RP=0x0001 + # Indicates that the AER structures exists. If this is FALSE, then the AER + # structure cannot be accessed via either the link or the management port + # , and AER will be considered to not be present for error management task + # s (such as what types of error messages are sent if an error is detected + # ).; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 - # Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - # he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - # ges are sent if an error is detected).; EP=0x0001; RP=0x0001 + # Indicates that the AER structures exists. If this is FALSE, then the AER + # structure cannot be accessed via either the link or the management port + # , and AER will be considered to not be present for error management task + # s (such as what types of error messages are sent if an error is detected + # ).; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 # ATTR_4 @@ -13997,8 +16404,8 @@ set psu_resetout_init_data { mask_write 0XFD480010 0x00001000 0x00000000 # Register : ATTR_89 @ 0XFD480164

      - # VSEC's Next Capability Offset pointer to the next item in the capabilities list, or 000h if this is the final capability.; EP - # 0x0140; RP=0x0140 + # VSEC's Next Capability Offset pointer to the next item in the capabiliti + # es list, or 000h if this is the final capability.; EP=0x0140; RP=0x0140 # PSU_PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR 0 # ATTR_89 @@ -14006,7 +16413,8 @@ set psu_resetout_init_data { mask_write 0XFD480164 0x00001FFE 0x00000000 # Register : ATTR_79 @ 0XFD48013C

      - # CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the Root Capabilities register.; EP=0x0000; RP=0x0000 + # CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the + # Root Capabilities register.; EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY 1 # ATTR_79 @@ -14014,8 +16422,9 @@ set psu_resetout_init_data { mask_write 0XFD48013C 0x00000020 0x00000020 # Register : ATTR_43 @ 0XFD4800AC

      - # Indicates that the MSIX structures exists. If this is FALSE, then the MSIX structure cannot be accessed via either the link o - # the management port.; EP=0x0001; RP=0x0000 + # Indicates that the MSIX structures exists. If this is FALSE, then the MS + # IX structure cannot be accessed via either the link or the management po + # rt.; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON 0 # ATTR_43 @@ -14023,8 +16432,10 @@ set psu_resetout_init_data { mask_write 0XFD4800AC 0x00000100 0x00000000 # Register : ATTR_48 @ 0XFD4800C0

      - # MSI-X Table Size. This value is transferred to the MSI-X Message Control[10:0] field. Set to 0 if MSI-X is not enabled. Note - # hat the core does not implement the table; that must be implemented in user logic.; EP=0x0003; RP=0x0000 + # MSI-X Table Size. This value is transferred to the MSI-X Message Control + # [10:0] field. Set to 0 if MSI-X is not enabled. Note that the core does + # not implement the table; that must be implemented in user logic.; EP=0x0 + # 003; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE 0 # ATTR_48 @@ -14032,8 +16443,8 @@ set psu_resetout_init_data { mask_write 0XFD4800C0 0x000007FF 0x00000000 # Register : ATTR_46 @ 0XFD4800B8

      - # MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; - # P=0x0000 + # MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + # field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET 0 # ATTR_46 @@ -14041,8 +16452,8 @@ set psu_resetout_init_data { mask_write 0XFD4800B8 0x0000FFFF 0x00000000 # Register : ATTR_47 @ 0XFD4800BC

      - # MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0000; - # P=0x0000 + # MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + # field. Set to 0 if MSI-X is not enabled.; EP=0x0000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET 0 # ATTR_47 @@ -14050,8 +16461,8 @@ set psu_resetout_init_data { mask_write 0XFD4800BC 0x00001FFF 0x00000000 # Register : ATTR_44 @ 0XFD4800B0

      - # MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - # 0x0001; RP=0x0000 + # MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + # A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET 0 # ATTR_44 @@ -14059,8 +16470,8 @@ set psu_resetout_init_data { mask_write 0XFD4800B0 0x0000FFFF 0x00000000 # Register : ATTR_45 @ 0XFD4800B4

      - # MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - # 0x1000; RP=0x0000 + # MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + # A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x1000; RP=0x0000 # PSU_PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET 0 # ATTR_45 @@ -14076,8 +16487,10 @@ set psu_resetout_init_data { mask_write 0XFD48031C 0x00000002 0x00000000 # Register : ATTR_35 @ 0XFD48008C

      - # Active State PM Support. Indicates the level of active state power management supported by the selected PCI Express Link, enc - # ded as follows: 0 Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supported.; EP=0x0001; RP=0x0001 + # Active State PM Support. Indicates the level of active state power manag + # ement supported by the selected PCI Express Link, encoded as follows: 0 + # Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supporte + # d.; EP=0x0001; RP=0x0001 # PSU_PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT 0x0 # ATTR_35 @@ -14092,6 +16505,24 @@ set psu_resetout_init_data { # FPD Block level software controlled reset #(OFFSET, MASK, VALUE) (0XFD1A0100, 0x00020000U ,0x00000000U) */ mask_write 0XFD1A0100 0x00020000 0x00000000 + # : PCIE GPIO RESET + # : MASK_DATA_0_LSW LOW BANK [15:0] + # : MASK_DATA_0_MSW LOW BANK [25:16] + # : MASK_DATA_1_LSW LOW BANK [41:26] + # Register : MASK_DATA_1_LSW @ 0XFF0A0008

      + + # Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + # Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + # PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + # Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + #(OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) */ + mask_write 0XFF0A0008 0xFFFFFFFF 0xFFDF0020 + # : MASK_DATA_1_MSW HIGH BANK [51:42] + # : MASK_DATA_1_LSW HIGH BANK [67:52] + # : MASK_DATA_1_LSW HIGH BANK [77:68] # : CHECK PLL LOCK FOR LANE0 # Register : L0_PLL_STATUS_READ_1 @ 0XFD4023E4

      @@ -14131,8 +16562,10 @@ set psu_resetout_init_data { # CINMP: COMINIT Negate Minimum Period. # PSU_SATA_AHCI_VENDOR_PP2C_CINMP 0x28 - # PP2C - Port Phy2Cfg Register. This register controls the configuration of the Phy Control OOB timing for the COMINIT paramete - # s for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. + # PP2C - Port Phy2Cfg Register. This register controls the configuration o + # f the Phy Control OOB timing for the COMINIT parameters for either Port + # 0 or Port 1. The Port configured is controlled by the value programmed i + # nto the Port Config Register. #(OFFSET, MASK, VALUE) (0XFD0C00AC, 0xFFFFFFFFU ,0x28184018U) */ mask_write 0XFD0C00AC 0xFFFFFFFF 0x28184018 # Register : PP3C @ 0XFD0C00B0

      @@ -14149,8 +16582,10 @@ set psu_resetout_init_data { # CWNMP: COMWAKE Negate Minimum Period. # PSU_SATA_AHCI_VENDOR_PP3C_CWNMP 0x0E - # PP3C - Port Phy3CfgRegister. This register controls the configuration of the Phy Control OOB timing for the COMWAKE parameter - # for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. + # PP3C - Port Phy3CfgRegister. This register controls the configuration of + # the Phy Control OOB timing for the COMWAKE parameters for either Port 0 + # or Port 1. The Port configured is controlled by the value programmed in + # to the Port Config Register. #(OFFSET, MASK, VALUE) (0XFD0C00B0, 0xFFFFFFFFU ,0x0E081406U) */ mask_write 0XFD0C00B0 0xFFFFFFFF 0x0E081406 # Register : PP4C @ 0XFD0C00B4

      @@ -14161,31 +16596,41 @@ set psu_resetout_init_data { # BNM: COM Burst Nominal. # PSU_SATA_AHCI_VENDOR_PP4C_BNM 0x08 - # SFD: Signal Failure Detection, if the signal detection de-asserts for a time greater than this then the OOB detector will det - # rmine this is a line idle and cause the PhyInit state machine to exit the Phy Ready State. A value of zero disables the Signa - # Failure Detector. The value is based on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving a nominal time of - # 500ns based on a 150MHz PMCLK. + # SFD: Signal Failure Detection, if the signal detection de-asserts for a + # time greater than this then the OOB detector will determine this is a li + # ne idle and cause the PhyInit state machine to exit the Phy Ready State. + # A value of zero disables the Signal Failure Detector. The value is base + # d on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving + # a nominal time of 500ns based on a 150MHz PMCLK. # PSU_SATA_AHCI_VENDOR_PP4C_SFD 0x4A - # PTST: Partial to Slumber timer value, specific delay the controller should apply while in partial before entering slumber. Th - # value is bases on the system clock divided by 128, total delay = (Sys Clock Period) * PTST * 128 + # PTST: Partial to Slumber timer value, specific delay the controller shou + # ld apply while in partial before entering slumber. The value is bases on + # the system clock divided by 128, total delay = (Sys Clock Period) * PTS + # T * 128 # PSU_SATA_AHCI_VENDOR_PP4C_PTST 0x06 - # PP4C - Port Phy4Cfg Register. This register controls the configuration of the Phy Control Burst timing for the COM parameters - # for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. + # PP4C - Port Phy4Cfg Register. This register controls the configuration o + # f the Phy Control Burst timing for the COM parameters for either Port 0 + # or Port 1. The Port configured is controlled by the value programmed int + # o the Port Config Register. #(OFFSET, MASK, VALUE) (0XFD0C00B4, 0xFFFFFFFFU ,0x064A0813U) */ mask_write 0XFD0C00B4 0xFFFFFFFF 0x064A0813 # Register : PP5C @ 0XFD0C00B8

      - # RIT: Retry Interval Timer. The calculated value divided by two, the lower digit of precision is not needed. + # RIT: Retry Interval Timer. The calculated value divided by two, the lowe + # r digit of precision is not needed. # PSU_SATA_AHCI_VENDOR_PP5C_RIT 0xC96A4 - # RCT: Rate Change Timer, a value based on the 54.2us for which a SATA device will transmit at a fixed rate ALIGNp after OOB ha - # completed, for a fast SERDES it is suggested that this value be 54.2us / 4 + # RCT: Rate Change Timer, a value based on the 54.2us for which a SATA dev + # ice will transmit at a fixed rate ALIGNp after OOB has completed, for a + # fast SERDES it is suggested that this value be 54.2us / 4 # PSU_SATA_AHCI_VENDOR_PP5C_RCT 0x3FF - # PP5C - Port Phy5Cfg Register. This register controls the configuration of the Phy Control Retry Interval timing for either Po - # t 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. + # PP5C - Port Phy5Cfg Register. This register controls the configuration o + # f the Phy Control Retry Interval timing for either Port 0 or Port 1. The + # Port configured is controlled by the value programmed into the Port Con + # fig Register. #(OFFSET, MASK, VALUE) (0XFD0C00B8, 0xFFFFFFFFU ,0x3FFC96A4U) */ mask_write 0XFD0C00B8 0xFFFFFFFF 0x3FFC96A4 } @@ -14243,8 +16688,9 @@ set psu_resetin_init_data { # : PUTTING DP IN RESET # Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

      - # Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - # ane0 Bits [3:2] - lane 1 + # Two bits per lane. When set to 11, moves the GT to power down mode. When + # set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + # lane 1 # PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0XA # Control PHY Power down @@ -14275,7 +16721,8 @@ set psu_ps_pl_isolation_removal_data { # Power-up Request Interrupt Enable for PL # PSU_PMU_GLOBAL_REQ_PWRUP_INT_EN_PL 1 - # Power-up Request Interrupt Enable Register. Writing a 1 to this location will unmask the interrupt. + # Power-up Request Interrupt Enable Register. Writing a 1 to this location + # will unmask the interrupt. #(OFFSET, MASK, VALUE) (0XFFD80118, 0x00800000U ,0x00800000U) */ mask_write 0XFFD80118 0x00800000 0x00800000 # Register : REQ_PWRUP_TRIG @ 0XFFD80120

      @@ -14283,7 +16730,8 @@ set psu_ps_pl_isolation_removal_data { # Power-up Request Trigger for PL # PSU_PMU_GLOBAL_REQ_PWRUP_TRIG_PL 1 - # Power-up Request Trigger Register. A write of one to this location will generate a power-up request to the PMU. + # Power-up Request Trigger Register. A write of one to this location will + # generate a power-up request to the PMU. #(OFFSET, MASK, VALUE) (0XFFD80120, 0x00800000U ,0x00800000U) */ mask_write 0XFFD80120 0x00800000 0x00800000 # : POLL ON PL POWER STATUS @@ -14294,6 +16742,58 @@ set psu_ps_pl_isolation_removal_data { mask_poll 0XFFD80110 0x00800000 0x00000000 } +set psu_afi_config { + # : AFI RESET + # Register : RST_FPD_TOP @ 0XFD1A0100

      + + # AF_FM0 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM0_RESET 0 + + # AF_FM1 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM1_RESET 0 + + # AF_FM2 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM2_RESET 0 + + # AF_FM3 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM3_RESET 0 + + # AF_FM4 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM4_RESET 0 + + # AF_FM5 block level reset + # PSU_CRF_APB_RST_FPD_TOP_AFI_FM5_RESET 0 + + # FPD Block level software controlled reset + #(OFFSET, MASK, VALUE) (0XFD1A0100, 0x00001F80U ,0x00000000U) */ + mask_write 0XFD1A0100 0x00001F80 0x00000000 + # Register : RST_LPD_TOP @ 0XFF5E023C

      + + # AFI FM 6 + # PSU_CRL_APB_RST_LPD_TOP_AFI_FM6_RESET 0 + + # Software control register for the LPD block. + #(OFFSET, MASK, VALUE) (0XFF5E023C, 0x00080000U ,0x00000000U) */ + mask_write 0XFF5E023C 0x00080000 0x00000000 + # : AFIFM INTERFACE WIDTH + # Register : afi_fs @ 0XFD615000

      + + # Select the 32/64/128-bit data width selection for the Slave 0 00: 32-bit + # AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + # width 11: reserved + # PSU_FPD_SLCR_AFI_FS_DW_SS0_SEL 0x2 + + # Select the 32/64/128-bit data width selection for the Slave 1 00: 32-bit + # AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + # width 11: reserved + # PSU_FPD_SLCR_AFI_FS_DW_SS1_SEL 0x2 + + # afi fs SLCR control register. This register is static and should not be + # modified during operation. + #(OFFSET, MASK, VALUE) (0XFD615000, 0x00000F00U ,0x00000A00U) */ + mask_write 0XFD615000 0x00000F00 0x00000A00 +} + set psu_ps_pl_reset_config_data { # : PS PL RESET SEQUENCE # : FABRIC RESET USING EMIO @@ -14366,6 +16866,7 @@ proc psu_init {} { variable psu_serdes_init_data variable psu_resetin_init_data variable psu_peripherals_powerdwn_data + variable psu_afi_config init_ps [subst {$psu_mio_init_data $psu_pll_init_data $psu_clock_init_data $psu_ddr_init_data }] psu_ddr_phybringup_data @@ -14374,6 +16875,7 @@ proc psu_init {} { init_ps [subst {$psu_serdes_init_data $psu_resetout_init_data }] init_peripheral init_ps [subst {$psu_peripherals_powerdwn_data }] + init_ps [subst {$psu_afi_config }] # restore original mode configparams force-mem-accesses $saved_mode } @@ -14409,7 +16911,7 @@ proc mask_poll { addr mask } { set curval "0x[string range [mrd -force $addr] end-8 end]" set maskedval [expr {$curval & $mask}] set count [ expr { $count + 1 } ] - if { $count == 100000000 } { + if { $count == 1000 } { puts "Timeout Reached. Mask poll failed at ADDRESS: $addr MASK: $mask" break } @@ -14424,48 +16926,195 @@ proc psu_mask_write { addr mask value } { mwr -force $addr $maskedval } +proc serdes_fixcal_code {} { + + set MaskStatus 1 + array set match_pmos_code {} + array set match_nmos_code {} + array set match_ical_code {} + array set match_rcal_code {} + set p_code 0 + set n_code 0 + set i_code 0 + set r_code 0 + set repeat_count 0 + set L3_TM_CALIB_DIG20 0 + set L3_TM_CALIB_DIG19 0 + set L3_TM_CALIB_DIG18 0 + set L3_TM_CALIB_DIG16 0 + set L3_TM_CALIB_DIG15 0 + set L3_TM_CALIB_DIG14 0 -proc serdes_fixcal_code {} { - #/* - # * L3_TM_CALIB_DIG19 - # */ - mask_write 0xFD40EC4C 0xFFFFFFFF 0x00000020 + set rdata 0 + + set rdata [mask_read 0XFD40289C 0xFFFFFFFF] + set rdata [expr $rdata & ~0x03 ] + set rdata [expr $rdata | 0x1] + mask_write 0XFD40289C 0xFFFFFFFF $rdata + #check supply good status before starting AFE sequencing + set count 1 + while 1 { + set rdata [mask_read 0xFD402B1C 0xFFFFFFFF] + set count [ expr { $count + 1 } ] + if { [expr $rdata & 0x0000000E] == 0x0000000E } { + break; + } + if { $count == 1000 } { + break; + } + } + + + for {set i 0} {$i<23 } {incr i } { + set match_pmos_code($i) 0; + set match_nmos_code($i) 0; + } + + for {set i 0} {$i<7} {incr i} { + set match_ical_code($i) 0; + set match_rcal_code($i) 0; + } + + while 1 { + #Clear ICM_CFG value + mask_write 0xFD410010 0xFFFFFFFF 0x00000000 + mask_write 0xFD410014 0xFFFFFFFF 0x00000000 + + #Set ICM_CFG value + #This will trigger recalibration of all stages + mask_write 0xFD410010 0xFFFFFFFF 0x00000001 + mask_write 0xFD410014 0xFFFFFFFF 0x00000000; + + #is calibration done? polling on L3_CALIB_DONE_STATUS + mask_poll 0xFD40EF14 0x2; + + #PMOS code + set p_code [mask_read 0xFD40EF18 0xFFFFFFFF]; + #NMOS code + set n_code [mask_read 0xFD40EF1C 0xFFFFFFFF]; + #ICAL code + set i_code [mask_read 0xFD40EF24 0xFFFFFFFF]; + #RX code + set r_code [mask_read 0xFD40EF28 0xFFFFFFFF]; + + + #xil_printf("#SERDES initialization VALUES NMOS = 0x%x, PMOS = 0x%x, ICAL = 0x%x, RCAL = 0x%x\n\r", p_code, n_code, i_code, r_code); + #PMOS code in acceptable range + if {($p_code >= 0x26) && ($p_code <= 0x3C)} { + set index [expr $p_code - 0x26] + set value $match_pmos_code($index) + incr value + set match_pmos_code($index) $value; + } + #NMOS code in acceptable range + if {($n_code >= 0x26) && ($n_code <= 0x3C)} { + set index [expr $n_code - 0x26] + set value $match_nmos_code($index) + incr value + set match_nmos_code($index) $value; + } + #PMOS code in acceptable range + if {($i_code >= 0xC) && ($i_code <= 0x12)} { + + set index [expr $i_code - 0xC] + set value $match_ical_code($index) + incr value + set match_ical_code($index) $value; + + } + #NMOS code in acceptable range + if {($r_code >= 0x6) && ($r_code <= 0xC)} { + set index [expr $r_code - 0x6] + set value $match_rcal_code($index) + incr value + set match_rcal_code($index) $value; + } + + incr repeat_count + if {$repeat_count > 10} { + break + } + } + + + #find the valid code which resulted in maximum times in 10 iterations + for {set i 0 } {$i < 23} {incr i} { - #/* - # * ICM_CFG0 - # */ - mask_write 0xFD410010 0xFFFFFFFF 0x00000001 + if {$match_pmos_code($i) >= $match_pmos_code(0) } { + set match_pmos_code(0) $match_pmos_code($i) + set p_code [expr 0x26 + $i] + } + if {$match_nmos_code($i) >= $match_nmos_code(0)} { + + set match_nmos_code(0) $match_nmos_code($i) + set n_code [expr 0x26 + $i]; + } + } - - #/* - # * is calibration done, polling on L3_CALIB_DONE_STATUS - # */ - mask_poll 0xFD40EF14 0x2 - - #unsigned int tmp_0_1; - set tmp_0_1 [mrd -force -value 0xFD400B0C] - set tmp_0_1 [expr {$tmp_0_1 & 0x3F}] - - set tmp_0_2 [expr {$tmp_0_1 & 0x7}] - set tmp_0_3 [expr {$tmp_0_1 & 0x38}] - - #Configure ICM for de-asserting CMN_Resetn - mask_write 0xFD410010 0xFFFFFFFF 0x00000000 - mask_write 0xFD410014 0xFFFFFFFF 0x00000000 - - set tmp_0_2_mod [expr {($tmp_0_2 << 1) | (0x1)}] - set tmp_0_2_mod [expr {$tmp_0_2_mod << 4}] - - set tmp_0_3 [expr {$tmp_0_3 >> 3}] - mask_write 0xFD40EC4C 0xFFFFFFFF $tmp_0_3 - - #L3_TM_CALIB_DIG18 - mask_write 0xFD40EC48 0xFFFFFFFF $tmp_0_2_mod + for {set $i 0} {$i<7} {incr i} { + if {$match_ical_code($i) >= $match_ical_code(0)} { + set match_ical_code(0) $match_ical_code($i) + set i_code [expr 0xC + $i] + } + if {$match_rcal_code($i) >= $match_rcal_code(0)} { + set match_rcal_code(0) $match_rcal_code($i) + set r_code [expr 0x6 + $i] + } + } + #xil_printf("#SERDES initialization PASSED NMOS = 0x%x, PMOS = 0x%x, ICAL = 0x%x, RCAL = 0x%x\n\r", p_code, n_code, i_code, r_code); + #L3_TM_CALIB_DIG20[3] PSW MSB Override + #L3_TM_CALIB_DIG20[2:0] PSW Code [4:2] + #read DIG20 + set L3_TM_CALIB_DIG20 [mask_read 0xFD40EC50 0xFFFFFFF0]; + set L3_TM_CALIB_DIG20 [expr $L3_TM_CALIB_DIG20 | 0x8 | (($p_code>>2)&0x7)] -} + #L3_TM_CALIB_DIG19[7:6] PSW Code [1:0] + #L3_TM_CALIB_DIG19[5] PSW Override + #L3_TM_CALIB_DIG19[2] NSW MSB Override + #L3_TM_CALIB_DIG19[1:0] NSW Code [4:3] + #read DIG19 + set L3_TM_CALIB_DIG19 [mask_read 0xFD40EC4C 0xFFFFFF18] + set L3_TM_CALIB_DIG19 [expr $L3_TM_CALIB_DIG19 | (($p_code&0x3)<<6) | 0x20 | 0x4 | (($n_code>>3)&0x3)] + #L3_TM_CALIB_DIG18[7:5] NSW Code [2:0] + #L3_TM_CALIB_DIG18[4] NSW Override + #read DIG18 + set L3_TM_CALIB_DIG18 [mask_read 0xFD40EC48 0xFFFFFF0F] + set L3_TM_CALIB_DIG18 [expr $L3_TM_CALIB_DIG18 | (($n_code&0x7)<<5) | 0x10] + + + #L3_TM_CALIB_DIG16[2:0] RX Code [3:1] + #read DIG16 + set L3_TM_CALIB_DIG16 [mask_read 0xFD40EC40 0xFFFFFFF8] + set L3_TM_CALIB_DIG16 [expr $L3_TM_CALIB_DIG16 | (($r_code>>1)&0x7)] + + #L3_TM_CALIB_DIG15[7] RX Code [0] + #L3_TM_CALIB_DIG15[6] RX CODE Override + #L3_TM_CALIB_DIG15[3] ICAL MSB Override + #L3_TM_CALIB_DIG15[2:0] ICAL Code [3:1] + #read DIG15 + set L3_TM_CALIB_DIG15 [mask_read 0xFD40EC3C 0xFFFFFF30] + set L3_TM_CALIB_DIG15 [expr $L3_TM_CALIB_DIG15 | (($r_code&0x1)<<7) | 0x40 | 0x8 | (($i_code>>1)&0x7)] + + #L3_TM_CALIB_DIG14[7] ICAL Code [0] + #L3_TM_CALIB_DIG14[6] ICAL Override + #read DIG14 + set L3_TM_CALIB_DIG14 [mask_read 0xFD40EC38 0xFFFFFF3F] + set L3_TM_CALIB_DIG14 [expr $L3_TM_CALIB_DIG14 | (($i_code&0x1)<<7) | 0x40] + + #Forces the calibration values + mask_write 0xFD40EC50 0xFFFFFFFF $L3_TM_CALIB_DIG20 + mask_write 0xFD40EC4C 0xFFFFFFFF $L3_TM_CALIB_DIG19 + mask_write 0xFD40EC48 0xFFFFFFFF $L3_TM_CALIB_DIG18 + mask_write 0xFD40EC40 0xFFFFFFFF $L3_TM_CALIB_DIG16 + mask_write 0xFD40EC3C 0xFFFFFFFF $L3_TM_CALIB_DIG15 + mask_write 0xFD40EC38 0xFFFFFFFF $L3_TM_CALIB_DIG14 + + + return $MaskStatus; + } proc serdes_enb_coarse_saturation {} { #/* # * Enable PLL Coarse Code saturation Logic @@ -14477,9 +17126,7 @@ proc serdes_enb_coarse_saturation {} { } - proc init_serdes {} { - serdes_fixcal_code serdes_enb_coarse_saturation @@ -14501,48 +17148,15 @@ proc poll { addr mask data} { } proc init_peripheral {} { - - # Release all resets in the IOU */ - mask_write 0xFF5E0230 0xFFFFFFFF 0x00000000 - mask_write 0xFF5E0234 0xFFFFFFFF 0x00000000 - mask_write 0xFF5E0238 0xFFFFFFFF 0x00000000 - - # Take LPD out of reset except R5 */ - set tmp_0_1 [mrd -force -value 0xFF5E023C] - set tmp_0_1 [expr {$tmp_0_1 & 0x7}] - mask_write 0xFF5E023C 0xFFFFFFFF $tmp_0_1 - - # Take most of FPD out of reset */ - mask_write 0XFD1A0100 0xFFFFFFFF 0x00000000 - - # Making DPDMA as secure - mask_write 0xFD690040 0x00000001 0x00000000 - # Making PCIe as secure - mask_write 0xFD690030 0x00000001 0x00000000 - +#SMMU_REG Interrrupt Enable: Followig register need to be written all the time to properly catch SMMU messages. + mask_write 0xFD5F0018 0x8000001F 0x8000001F } proc psu_init_xppu_aper_ram {} { - set APER_OFFSET 0xFF981000 - set i 0 - while { $i <= 400 } { - mask_write $APER_OFFSET 0xF80FFFFF 0x08080000 - set APER_OFFSET [ expr $APER_OFFSET + 4 ] - set APER_OFFSET "0x[format %08X [ expr $APER_OFFSET] ]" - set i [ expr { $i + 1 } ] - } } proc psu_lpd_protection {} { - set saved_mode [configparams force-mem-accesses] - configparams force-mem-accesses 1 - - psu_init_xppu_aper_ram; - variable psu_lpd_xppu_data - init_ps [subst {$psu_lpd_xppu_data }] - - configparams force-mem-accesses $saved_mode } proc psu_ddr_protection {} { @@ -14591,6 +17205,8 @@ proc psu_protection_lock {} { } proc psu_protection {} { + variable psu_apply_master_tz + init_ps [subst {$psu_apply_master_tz }] psu_ddr_protection psu_ocm_protection psu_fpd_protection @@ -14598,26 +17214,34 @@ proc psu_protection {} { } proc psu_ddr_phybringup_data {} { -set dpll_divisor [expr {(0x00003F00 & [mrd -force -value 0xFD1A0080]) >> 0x00000008 }] - psu_mask_write 0xFD1A0080 0x00003F00 0x00000500 - psu_mask_write 0xFD080028 0x00000001 0x00000001 -mwr -force 0xFD080004 0x00040003 -mask_poll 0xFD080030 0x00000001 - psu_mask_write 0xFD080684 0x06000000 0x02000000 - psu_mask_write 0xFD0806A4 0x06000000 0x02000000 - psu_mask_write 0xFD0806C4 0x06000000 0x02000000 - psu_mask_write 0xFD0806E4 0x06000000 0x02000000 - psu_mask_write 0xFD1A0080 0x3F00 [expr {($dpll_divisor << 8)}] -mwr -force 0xFD080004 0x40040071 -mask_poll 0xFD080030 0x00000001 -mwr -force 0xFD080004 0x40040001 -mask_poll 0xFD080030 0x00000001 +mwr -force 0xFD080004 0x00040073 poll 0xFD080030 0x0000000F 0x0000000F psu_mask_write 0xFD080004 0x00000001 0x00000001 #poll for PHY initialization to complete poll 0xFD080030 0x000000FF 0x0000001F + psu_mask_write 0xFD070010 0x00000008 0x00000008 + psu_mask_write 0xFD0701B0 0x00000001 0x00000001 + psu_mask_write 0xFD070010 0x00000030 0x00000010 + psu_mask_write 0xFD070010 0x00000001 0x00000000 + psu_mask_write 0xFD070010 0x0000F000 0x00006000 + psu_mask_write 0xFD070014 0x0003FFFF 0x00000819 + psu_mask_write 0xFD070010 0x80000000 0x80000000 +poll 0xFD070018 0x00000001 0 + psu_mask_write 0xFD070010 0x00000030 0x00000010 + psu_mask_write 0xFD070010 0x00000001 0x00000000 + psu_mask_write 0xFD070010 0x0000F000 0x00006000 + psu_mask_write 0xFD070014 0x0003FFFF 0x00000899 + psu_mask_write 0xFD070010 0x80000000 0x80000000 +poll 0xFD070018 0x00000001 0 + psu_mask_write 0xFD070010 0x00000030 0x00000010 + psu_mask_write 0xFD070010 0x00000001 0x00000000 + psu_mask_write 0xFD070010 0x0000F000 0x00006000 + psu_mask_write 0xFD070014 0x0003FFFF 0x00000819 + psu_mask_write 0xFD070010 0x80000000 0x80000000 +poll 0xFD070018 0x00000001 0 + psu_mask_write 0xFD070010 0x00000008 0x00000000 mwr -force 0xFD0701B0 0x00000001 mwr -force 0xFD070320 0x00000001 #//poll for DDR initialization to complete @@ -14646,31 +17270,29 @@ poll 0xFD080030 0x00000FFF 0x00000FFF # Run Vref training in static read mode mwr -force 0xFD080200 0x100091C7 -mwr -force 0xFD080018 0x00F01EF2 -mwr -force 0xFD08001C 0x55AA5498 -mwr -force 0xFD08142C 0x00041830 -mwr -force 0xFD08146C 0x00041830 -mwr -force 0xFD0814AC 0x00041830 -mwr -force 0xFD0814EC 0x00041830 -mwr -force 0xFD08152C 0x00041830 +mwr -force 0xFD080018 0x00F01EEF + psu_mask_write 0xFD08142C 0x00000030 0x00000030 + psu_mask_write 0xFD08146C 0x00000030 0x00000030 + psu_mask_write 0xFD0814AC 0x00000030 0x00000030 + psu_mask_write 0xFD0814EC 0x00000030 0x00000030 + psu_mask_write 0xFD08152C 0x00000030 0x00000030 psu_mask_write 0xFD080004 0xFFFFFFFF 0x00060001 #trigger VreFPHY training -poll 0xFD080030 0x00000C01 0x00000C01 +poll 0xFD080030 0x00004001 0x00004001 #//Poll PUB_PGSR0 for Trng complete mwr -force 0xFD080200 0x800091C7 -mwr -force 0xFD080018 0x00F12302 -mwr -force 0xFD08001C 0x55AA5480 -mwr -force 0xFD08142C 0x00041800 -mwr -force 0xFD08146C 0x00041800 -mwr -force 0xFD0814AC 0x00041800 -mwr -force 0xFD0814EC 0x00041800 -mwr -force 0xFD08152C 0x00041800 +mwr -force 0xFD080018 0x00F122E7 + psu_mask_write 0xFD08142C 0x00000030 0x00000000 + psu_mask_write 0xFD08146C 0x00000030 0x00000000 + psu_mask_write 0xFD0814AC 0x00000030 0x00000000 + psu_mask_write 0xFD0814EC 0x00000030 0x00000000 + psu_mask_write 0xFD08152C 0x00000030 0x00000000 psu_mask_write 0xFD080004 0xFFFFFFFF 0x0000C001 #trigger VreFPHY training -poll 0xFD080030 0x00004001 0x00004001 +poll 0xFD080030 0x00000C01 0x00000C01 #//Poll PUB_PGSR0 for Trng complete mwr -force 0xFD070180 0x01000040 diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.c b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.c index 8ed7cf1dc..d75ebacb3 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.c +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Copyright (C) 2015 Xilinx, Inc. All rights reserved. -* +* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -11,21103 +11,21793 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License along * with this program; if not, see -* -* -******************************************************************************/ +* +* +******************************************************************************/ #include #include #include "psu_init_gpl.h" +#define DPLL_CFG_LOCK_DLY 63 +#define DPLL_CFG_LOCK_CNT 625 +#define DPLL_CFG_LFHF 3 +#define DPLL_CFG_CP 3 +#define DPLL_CFG_RES 2 -int mask_pollOnValue(u32 add , u32 mask, u32 value ); +static int mask_pollOnValue(u32 add, u32 mask, u32 value); -int mask_poll(u32 add , u32 mask ); +static int mask_poll(u32 add, u32 mask); -void mask_delay(u32 delay); +static void mask_delay(u32 delay); -u32 mask_read(u32 add , u32 mask ); +static u32 mask_read(u32 add, u32 mask); -static void PSU_Mask_Write (unsigned long offset, unsigned long mask, unsigned long val) +static void dpll_prog(int ddr_pll_fbdiv, int d_lock_dly, + int d_lock_cnt, int d_lfhf, int d_cp, int d_res); + +static +void PSU_Mask_Write(unsigned long offset, unsigned long mask, + unsigned long val) { unsigned long RegVal = 0x0; - RegVal = Xil_In32 (offset); + + RegVal = Xil_In32(offset); RegVal &= ~(mask); RegVal |= (val & mask); - Xil_Out32 (offset, RegVal); + Xil_Out32(offset, RegVal); } - void prog_reg (unsigned long addr, unsigned long mask, unsigned long shift, unsigned long value) { - int rdata =0; +static +void prog_reg(unsigned long addr, unsigned long mask, + unsigned long shift, + unsigned long value) +{ + int rdata = 0; + rdata = Xil_In32(addr); rdata = rdata & (~mask); rdata = rdata | (value << shift); - Xil_Out32(addr,rdata); - } - -unsigned long psu_pll_init_data() { - // : RPLL INIT - /*Register : RPLL_CFG @ 0XFF5E0034

      - - PLL loop filter resistor control - PSU_CRL_APB_RPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRL_APB_RPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRL_APB_RPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRL_APB_RPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRL_APB_RPLL_CFG_RES_MASK | CRL_APB_RPLL_CFG_CP_MASK | CRL_APB_RPLL_CFG_LFHF_MASK | CRL_APB_RPLL_CFG_LOCK_CNT_MASK | CRL_APB_RPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRL_APB_RPLL_CFG_RES_SHIFT - | 0x00000003U << CRL_APB_RPLL_CFG_CP_SHIFT - | 0x00000003U << CRL_APB_RPLL_CFG_LFHF_SHIFT - | 0x00000258U << CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : RPLL_CTRL @ 0XFF5E0030

      - - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRL_APB_RPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRL_APB_RPLL_CTRL_FBDIV 0x48 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRL_APB_RPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00014800U) - RegMask = (CRL_APB_RPLL_CTRL_PRE_SRC_MASK | CRL_APB_RPLL_CTRL_FBDIV_MASK | CRL_APB_RPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT - | 0x00000048U << CRL_APB_RPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRL_APB_RPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00717F00U ,0x00014800U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : RPLL_CTRL @ 0XFF5E0030

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_RPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_RPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_RPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : RPLL_CTRL @ 0XFF5E0030

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_RPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000001U) - RegMask = (CRL_APB_RPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_RPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : RPLL_CTRL @ 0XFF5E0030

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_RPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_RPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFF5E0040

      - - RPLL is locked - PSU_CRL_APB_PLL_STATUS_RPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000002U ,0x00000002U) */ - mask_poll(CRL_APB_PLL_STATUS_OFFSET,0x00000002U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : RPLL_CTRL @ 0XFF5E0030

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_RPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : RPLL_TO_FPD_CTRL @ 0XFF5E0048

      - - Divisor value for this clock. - PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000300U) - RegMask = (CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_TO_FPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : RPLL FRAC CFG - /*Register : RPLL_FRAC_CFG @ 0XFF5E0038

      - - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRL_APB_RPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRL_APB_RPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFF5E0038, 0x8000FFFFU ,0x00000000U) - RegMask = (CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK | CRL_APB_RPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : IOPLL INIT - /*Register : IOPLL_CFG @ 0XFF5E0024

      - - PLL loop filter resistor control - PSU_CRL_APB_IOPLL_CFG_RES 0xc - - PLL charge pump control - PSU_CRL_APB_IOPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRL_APB_IOPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x339 - - Lock circuit configuration settings for lock windowsize - PSU_CRL_APB_IOPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E672C6CU) - RegMask = (CRL_APB_IOPLL_CFG_RES_MASK | CRL_APB_IOPLL_CFG_CP_MASK | CRL_APB_IOPLL_CFG_LFHF_MASK | CRL_APB_IOPLL_CFG_LOCK_CNT_MASK | CRL_APB_IOPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x0000000CU << CRL_APB_IOPLL_CFG_RES_SHIFT - | 0x00000003U << CRL_APB_IOPLL_CFG_CP_SHIFT - | 0x00000003U << CRL_APB_IOPLL_CFG_LFHF_SHIFT - | 0x00000339U << CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E672C6CU); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : IOPLL_CTRL @ 0XFF5E0020

      - - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRL_APB_IOPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x2d - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRL_APB_IOPLL_CTRL_DIV2 0x0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00002D00U) - RegMask = (CRL_APB_IOPLL_CTRL_PRE_SRC_MASK | CRL_APB_IOPLL_CTRL_FBDIV_MASK | CRL_APB_IOPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT - | 0x0000002DU << CRL_APB_IOPLL_CTRL_FBDIV_SHIFT - | 0x00000000U << CRL_APB_IOPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00717F00U ,0x00002D00U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : IOPLL_CTRL @ 0XFF5E0020

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_IOPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : IOPLL_CTRL @ 0XFF5E0020

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_IOPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000001U) - RegMask = (CRL_APB_IOPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : IOPLL_CTRL @ 0XFF5E0020

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRL_APB_IOPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_IOPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFF5E0040

      - - IOPLL is locked - PSU_CRL_APB_PLL_STATUS_IOPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000001U ,0x00000001U) */ - mask_poll(CRL_APB_PLL_STATUS_OFFSET,0x00000001U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : IOPLL_CTRL @ 0XFF5E0020

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_IOPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : IOPLL_TO_FPD_CTRL @ 0XFF5E0044

      - - Divisor value for this clock. - PSU_CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the LPD, but used in the FPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFF5E0044, 0x00003F00U ,0x00000300U) - RegMask = (CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : IOPLL FRAC CFG - /*Register : IOPLL_FRAC_CFG @ 0XFF5E0028

      - - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRL_APB_IOPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRL_APB_IOPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFF5E0028, 0x8000FFFFU ,0x00000000U) - RegMask = (CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK | CRL_APB_IOPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : APU_PLL INIT - /*Register : APLL_CFG @ 0XFD1A0024

      - - PLL loop filter resistor control - PSU_CRF_APB_APLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_APLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_APLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_APLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_APLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A0024, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRF_APB_APLL_CFG_RES_MASK | CRF_APB_APLL_CFG_CP_MASK | CRF_APB_APLL_CFG_LFHF_MASK | CRF_APB_APLL_CFG_LOCK_CNT_MASK | CRF_APB_APLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_APLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_APLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_APLL_CFG_LFHF_SHIFT - | 0x00000258U << CRF_APB_APLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_APLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : APLL_CTRL @ 0XFD1A0020

      - - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_APLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_APLL_CTRL_FBDIV 0x42 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_APLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014200U) - RegMask = (CRF_APB_APLL_CTRL_PRE_SRC_MASK | CRF_APB_APLL_CTRL_FBDIV_MASK | CRF_APB_APLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_PRE_SRC_SHIFT - | 0x00000042U << CRF_APB_APLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_APLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00717F00U ,0x00014200U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : APLL_CTRL @ 0XFD1A0020

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_APLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_APLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_APLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : APLL_CTRL @ 0XFD1A0020

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_APLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_APLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_APLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : APLL_CTRL @ 0XFD1A0020

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_APLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_APLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

      - - APLL is locked - PSU_CRF_APB_PLL_STATUS_APLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000001U ,0x00000001U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000001U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : APLL_CTRL @ 0XFD1A0020

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_APLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_APLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : APLL_TO_LPD_CTRL @ 0XFD1A0048

      - - Divisor value for this clock. - PSU_CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A0048, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : APLL FRAC CFG - /*Register : APLL_FRAC_CFG @ 0XFD1A0028

      - - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_APLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRF_APB_APLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0028, 0x8000FFFFU ,0x00000000U) - RegMask = (CRF_APB_APLL_FRAC_CFG_ENABLED_MASK | CRF_APB_APLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRF_APB_APLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_APLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : DDR_PLL INIT - /*Register : DPLL_CFG @ 0XFD1A0030

      - - PLL loop filter resistor control - PSU_CRF_APB_DPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_DPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_DPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_DPLL_CFG_LOCK_CNT 0x258 - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_DPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A0030, 0xFE7FEDEFU ,0x7E4B0C62U) - RegMask = (CRF_APB_DPLL_CFG_RES_MASK | CRF_APB_DPLL_CFG_CP_MASK | CRF_APB_DPLL_CFG_LFHF_MASK | CRF_APB_DPLL_CFG_LOCK_CNT_MASK | CRF_APB_DPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DPLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_DPLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_DPLL_CFG_LFHF_SHIFT - | 0x00000258U << CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E4B0C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : DPLL_CTRL @ 0XFD1A002C

      - - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_DPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_DPLL_CTRL_FBDIV 0x40 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_DPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00717F00U ,0x00014000U) - RegMask = (CRF_APB_DPLL_CTRL_PRE_SRC_MASK | CRF_APB_DPLL_CTRL_FBDIV_MASK | CRF_APB_DPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT - | 0x00000040U << CRF_APB_DPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_DPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00717F00U ,0x00014000U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : DPLL_CTRL @ 0XFD1A002C

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_DPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : DPLL_CTRL @ 0XFD1A002C

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_DPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_DPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : DPLL_CTRL @ 0XFD1A002C

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_DPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_DPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

      - - DPLL is locked - PSU_CRF_APB_PLL_STATUS_DPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000002U ,0x00000002U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000002U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : DPLL_CTRL @ 0XFD1A002C

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_DPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DPLL_TO_LPD_CTRL @ 0XFD1A004C

      - - Divisor value for this clock. - PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : DPLL FRAC CFG - /*Register : DPLL_FRAC_CFG @ 0XFD1A0034

      - - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_DPLL_FRAC_CFG_ENABLED 0x0 - - Fractional value for the Feedback value. - PSU_CRF_APB_DPLL_FRAC_CFG_DATA 0x0 - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0034, 0x8000FFFFU ,0x00000000U) - RegMask = (CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK | CRF_APB_DPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT - | 0x00000000U << CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : VIDEO_PLL INIT - /*Register : VPLL_CFG @ 0XFD1A003C

      - - PLL loop filter resistor control - PSU_CRF_APB_VPLL_CFG_RES 0x2 - - PLL charge pump control - PSU_CRF_APB_VPLL_CFG_CP 0x3 - - PLL loop filter high frequency capacitor control - PSU_CRF_APB_VPLL_CFG_LFHF 0x3 - - Lock circuit counter setting - PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x28a - - Lock circuit configuration settings for lock windowsize - PSU_CRF_APB_VPLL_CFG_LOCK_DLY 0x3f - - Helper data. Values are to be looked up in a table from Data Sheet - (OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E514C62U) - RegMask = (CRF_APB_VPLL_CFG_RES_MASK | CRF_APB_VPLL_CFG_CP_MASK | CRF_APB_VPLL_CFG_LFHF_MASK | CRF_APB_VPLL_CFG_LOCK_CNT_MASK | CRF_APB_VPLL_CFG_LOCK_DLY_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_VPLL_CFG_RES_SHIFT - | 0x00000003U << CRF_APB_VPLL_CFG_CP_SHIFT - | 0x00000003U << CRF_APB_VPLL_CFG_LFHF_SHIFT - | 0x0000028AU << CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT - | 0x0000003FU << CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CFG_OFFSET ,0xFE7FEDEFU ,0x7E514C62U); - /*############################################################################################################################ */ - - // : UPDATE FB_DIV - /*Register : VPLL_CTRL @ 0XFD1A0038

      - - Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source - PSU_CRF_APB_VPLL_CTRL_PRE_SRC 0x0 - - The integer portion of the feedback divider to the PLL - PSU_CRF_APB_VPLL_CTRL_FBDIV 0x39 - - This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency - PSU_CRF_APB_VPLL_CTRL_DIV2 0x1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00013900U) - RegMask = (CRF_APB_VPLL_CTRL_PRE_SRC_MASK | CRF_APB_VPLL_CTRL_FBDIV_MASK | CRF_APB_VPLL_CTRL_DIV2_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT - | 0x00000039U << CRF_APB_VPLL_CTRL_FBDIV_SHIFT - | 0x00000001U << CRF_APB_VPLL_CTRL_DIV2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00717F00U ,0x00013900U); - /*############################################################################################################################ */ - - // : BY PASS PLL - /*Register : VPLL_CTRL @ 0XFD1A0038

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_VPLL_CTRL_BYPASS 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_VPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - // : ASSERT RESET - /*Register : VPLL_CTRL @ 0XFD1A0038

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_VPLL_CTRL_RESET 1 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000001U) - RegMask = (CRF_APB_VPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : DEASSERT RESET - /*Register : VPLL_CTRL @ 0XFD1A0038

      - - Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS. - PSU_CRF_APB_VPLL_CTRL_RESET 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000000U) - RegMask = (CRF_APB_VPLL_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL STATUS - /*Register : PLL_STATUS @ 0XFD1A0044

      - - VPLL is locked - PSU_CRF_APB_PLL_STATUS_VPLL_LOCK 1 - (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000004U ,0x00000004U) */ - mask_poll(CRF_APB_PLL_STATUS_OFFSET,0x00000004U); - - /*############################################################################################################################ */ - - // : REMOVE PLL BY PASS - /*Register : VPLL_CTRL @ 0XFD1A0038

      - - Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_VPLL_CTRL_BYPASS 0 - - PLL Basic Control - (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_VPLL_CTRL_BYPASS_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_VPLL_CTRL_BYPASS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_CTRL_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : VPLL_TO_LPD_CTRL @ 0XFD1A0050

      - - Divisor value for this clock. - PSU_CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0 0x3 - - Control for a clock that will be generated in the FPD, but used in the LPD as a clock source for the peripheral clock muxes. - (OFFSET, MASK, VALUE) (0XFD1A0050, 0x00003F00U ,0x00000300U) - RegMask = (CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000003U << CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_TO_LPD_CTRL_OFFSET ,0x00003F00U ,0x00000300U); - /*############################################################################################################################ */ - - // : VIDEO FRAC CFG - /*Register : VPLL_FRAC_CFG @ 0XFD1A0040

      - - Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider. - PSU_CRF_APB_VPLL_FRAC_CFG_ENABLED 0x1 - - Fractional value for the Feedback value. - PSU_CRF_APB_VPLL_FRAC_CFG_DATA 0x820c - - Fractional control for the PLL - (OFFSET, MASK, VALUE) (0XFD1A0040, 0x8000FFFFU ,0x8000820CU) - RegMask = (CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK | CRF_APB_VPLL_FRAC_CFG_DATA_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT - | 0x0000820CU << CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_VPLL_FRAC_CFG_OFFSET ,0x8000FFFFU ,0x8000820CU); - /*############################################################################################################################ */ - - - return 1; + Xil_Out32(addr, rdata); + } + +unsigned long psu_pll_init_data(void) +{ + /* + * RPLL INIT + */ + /* + * Register : RPLL_CFG @ 0XFF5E0034 + + * PLL loop filter resistor control + * PSU_CRL_APB_RPLL_CFG_RES 0xc + + * PLL charge pump control + * PSU_CRL_APB_RPLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRL_APB_RPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRL_APB_RPLL_CFG_LOCK_CNT 0x339 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRL_APB_RPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFF5E0034, 0xFE7FEDEFU ,0x7E672C6CU) + */ + PSU_Mask_Write(CRL_APB_RPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E672C6CU); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRL_APB_RPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRL_APB_RPLL_CTRL_FBDIV 0x2d + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRL_APB_RPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00717F00U ,0x00012D00U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00717F00U, 0x00012D00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_RPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_RPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_RPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFF5E0040 + + * RPLL is locked + * PSU_CRL_APB_PLL_STATUS_RPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000002U ,0x00000002U) + */ + mask_poll(CRL_APB_PLL_STATUS_OFFSET, 0x00000002U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : RPLL_CTRL @ 0XFF5E0030 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_RPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0030, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RPLL_TO_FPD_CTRL @ 0XFF5E0048 + + * Divisor value for this clock. + * PSU_CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0 0x2 + + * Control for a clock that will be generated in the LPD, but used in the F + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFF5E0048, 0x00003F00U ,0x00000200U) + */ + PSU_Mask_Write(CRL_APB_RPLL_TO_FPD_CTRL_OFFSET, + 0x00003F00U, 0x00000200U); +/*##################################################################### */ + + /* + * RPLL FRAC CFG + */ + /* + * IOPLL INIT + */ + /* + * Register : IOPLL_CFG @ 0XFF5E0024 + + * PLL loop filter resistor control + * PSU_CRL_APB_IOPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRL_APB_IOPLL_CFG_CP 0x4 + + * PLL loop filter high frequency capacitor control + * PSU_CRL_APB_IOPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRL_APB_IOPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRL_APB_IOPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFF5E0024, 0xFE7FEDEFU ,0x7E4B0C82U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C82U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRL_APB_IOPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRL_APB_IOPLL_CTRL_FBDIV 0x5a + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRL_APB_IOPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00717F00U ,0x00015A00U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00717F00U, 0x00015A00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_IOPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_IOPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRL_APB_IOPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFF5E0040 + + * IOPLL is locked + * PSU_CRL_APB_PLL_STATUS_IOPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFF5E0040, 0x00000001U ,0x00000001U) + */ + mask_poll(CRL_APB_PLL_STATUS_OFFSET, 0x00000001U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : IOPLL_CTRL @ 0XFF5E0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRL_APB_IOPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFF5E0020, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : IOPLL_TO_FPD_CTRL @ 0XFF5E0044 + + * Divisor value for this clock. + * PSU_CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the LPD, but used in the F + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFF5E0044, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * IOPLL FRAC CFG + */ + /* + * APU_PLL INIT + */ + /* + * Register : APLL_CFG @ 0XFD1A0024 + + * PLL loop filter resistor control + * PSU_CRF_APB_APLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_APLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_APLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_APLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_APLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A0024, 0xFE7FEDEFU ,0x7E4B0C62U) + */ + PSU_Mask_Write(CRF_APB_APLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C62U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_APLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_APLL_CTRL_FBDIV 0x48 + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_APLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00717F00U ,0x00014800U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00717F00U, 0x00014800U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_APLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_APLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_APLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * APLL is locked + * PSU_CRF_APB_PLL_STATUS_APLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000001U ,0x00000001U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000001U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : APLL_CTRL @ 0XFD1A0020 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_APLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0020, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_APLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : APLL_TO_LPD_CTRL @ 0XFD1A0048 + + * Divisor value for this clock. + * PSU_CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A0048, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRF_APB_APLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * APLL FRAC CFG + */ + /* + * DDR_PLL INIT + */ + /* + * Register : DPLL_CFG @ 0XFD1A0030 + + * PLL loop filter resistor control + * PSU_CRF_APB_DPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_DPLL_CFG_CP 0x3 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_DPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_DPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_DPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A0030, 0xFE7FEDEFU ,0x7E4B0C62U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C62U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_DPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_DPLL_CTRL_FBDIV 0x40 + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_DPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00717F00U ,0x00014000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00717F00U, 0x00014000U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_DPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_DPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_DPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * DPLL is locked + * PSU_CRF_APB_PLL_STATUS_DPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000002U ,0x00000002U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000002U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : DPLL_CTRL @ 0XFD1A002C + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_DPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A002C, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_DPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DPLL_TO_LPD_CTRL @ 0XFD1A004C + + * Divisor value for this clock. + * PSU_CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0 0x2 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A004C, 0x00003F00U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DPLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000200U); +/*##################################################################### */ + + /* + * DPLL FRAC CFG + */ + /* + * VIDEO_PLL INIT + */ + /* + * Register : VPLL_CFG @ 0XFD1A003C + + * PLL loop filter resistor control + * PSU_CRF_APB_VPLL_CFG_RES 0x2 + + * PLL charge pump control + * PSU_CRF_APB_VPLL_CFG_CP 0x4 + + * PLL loop filter high frequency capacitor control + * PSU_CRF_APB_VPLL_CFG_LFHF 0x3 + + * Lock circuit counter setting + * PSU_CRF_APB_VPLL_CFG_LOCK_CNT 0x258 + + * Lock circuit configuration settings for lock windowsize + * PSU_CRF_APB_VPLL_CFG_LOCK_DLY 0x3f + + * Helper data. Values are to be looked up in a table from Data Sheet + * (OFFSET, MASK, VALUE) (0XFD1A003C, 0xFE7FEDEFU ,0x7E4B0C82U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CFG_OFFSET, 0xFE7FEDEFU, 0x7E4B0C82U); +/*##################################################################### */ + + /* + * UPDATE FB_DIV + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source + * PSU_CRF_APB_VPLL_CTRL_PRE_SRC 0x0 + + * The integer portion of the feedback divider to the PLL + * PSU_CRF_APB_VPLL_CTRL_FBDIV 0x5a + + * This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency + * PSU_CRF_APB_VPLL_CTRL_DIV2 0x1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00717F00U ,0x00015A00U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00717F00U, 0x00015A00U); +/*##################################################################### */ + + /* + * BY PASS PLL + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_VPLL_CTRL_BYPASS 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * ASSERT RESET + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_VPLL_CTRL_RESET 1 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * DEASSERT RESET + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. + * PSU_CRF_APB_VPLL_CTRL_RESET 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * CHECK PLL STATUS + */ + /* + * Register : PLL_STATUS @ 0XFD1A0044 + + * VPLL is locked + * PSU_CRF_APB_PLL_STATUS_VPLL_LOCK 1 + * (OFFSET, MASK, VALUE) (0XFD1A0044, 0x00000004U ,0x00000004U) + */ + mask_poll(CRF_APB_PLL_STATUS_OFFSET, 0x00000004U); + +/*##################################################################### */ + + /* + * REMOVE PLL BY PASS + */ + /* + * Register : VPLL_CTRL @ 0XFD1A0038 + + * Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) + * PSU_CRF_APB_VPLL_CTRL_BYPASS 0 + + * PLL Basic Control + * (OFFSET, MASK, VALUE) (0XFD1A0038, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_VPLL_CTRL_OFFSET, 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : VPLL_TO_LPD_CTRL @ 0XFD1A0050 + + * Divisor value for this clock. + * PSU_CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0 0x3 + + * Control for a clock that will be generated in the FPD, but used in the L + * PD as a clock source for the peripheral clock muxes. + * (OFFSET, MASK, VALUE) (0XFD1A0050, 0x00003F00U ,0x00000300U) + */ + PSU_Mask_Write(CRF_APB_VPLL_TO_LPD_CTRL_OFFSET, + 0x00003F00U, 0x00000300U); +/*##################################################################### */ + + /* + * VIDEO FRAC CFG + */ + + return 1; } -unsigned long psu_clock_init_data() { - // : CLOCK CONTROL SLCR REGISTER - /*Register : GEM3_REF_CTRL @ 0XFF5E005C

      +unsigned long psu_clock_init_data(void) +{ + /* + * CLOCK CONTROL SLCR REGISTER + */ + /* + * Register : GEM3_REF_CTRL @ 0XFF5E005C + + * Clock active for the RX channel + * PSU_CRL_APB_GEM3_REF_CTRL_RX_CLKACT 0x1 - Clock active for the RX channel - PSU_CRL_APB_GEM3_REF_CTRL_RX_CLKACT 0x1 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_GEM3_REF_CTRL_CLKACT 0x1 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_GEM3_REF_CTRL_CLKACT 0x1 + * 6 bit divider + * PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR1 0x1 - 6 bit divider - PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR1 0x1 + * 6 bit divider + * PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR0 0xc + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_GEM3_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E005C, 0x063F3F07U ,0x06010C00U) + */ + PSU_Mask_Write(CRL_APB_GEM3_REF_CTRL_OFFSET, + 0x063F3F07U, 0x06010C00U); +/*##################################################################### */ + + /* + * Register : GEM_TSU_REF_CTRL @ 0XFF5E0100 - 6 bit divider - PSU_CRL_APB_GEM3_REF_CTRL_DIVISOR0 0xc + * 6 bit divider + * PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0 0x6 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_GEM3_REF_CTRL_SRCSEL 0x0 + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_GEM_TSU_REF_CTRL_SRCSEL 0x0 - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E005C, 0x063F3F07U ,0x06010C00U) - RegMask = (CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK | CRL_APB_GEM3_REF_CTRL_CLKACT_MASK | CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK | CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK | CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK | 0 ); + * 6 bit divider + * PSU_CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1 0x1 - RegVal = ((0x00000001U << CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT - | 0x00000001U << CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000CU << CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_GEM3_REF_CTRL_OFFSET ,0x063F3F07U ,0x06010C00U); - /*############################################################################################################################ */ + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_GEM_TSU_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0100, 0x013F3F07U ,0x01010600U) + */ + PSU_Mask_Write(CRL_APB_GEM_TSU_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010600U); +/*##################################################################### */ + + /* + * Register : USB0_BUS_REF_CTRL @ 0XFF5E0060 - /*Register : USB0_BUS_REF_CTRL @ 0XFF5E0060

      + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_USB0_BUS_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0 0x6 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_USB0_BUS_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0060, 0x023F3F07U ,0x02010600U) + */ + PSU_Mask_Write(CRL_APB_USB0_BUS_REF_CTRL_OFFSET, + 0x023F3F07U, 0x02010600U); +/*##################################################################### */ + + /* + * Register : USB3_DUAL_REF_CTRL @ 0XFF5E004C - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_USB0_BUS_REF_CTRL_CLKACT 0x1 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0x3 + + * 6 bit divider + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x19 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x02031900U) + */ + PSU_Mask_Write(CRL_APB_USB3_DUAL_REF_CTRL_OFFSET, + 0x023F3F07U, 0x02031900U); +/*##################################################################### */ - 6 bit divider - PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1 0x1 + /* + * Register : QSPI_REF_CTRL @ 0XFF5E0068 - 6 bit divider - PSU_CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0 0x6 + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_QSPI_REF_CTRL_CLKACT 0x1 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_USB0_BUS_REF_CTRL_SRCSEL 0x0 + * 6 bit divider + * PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR0 0xc + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_QSPI_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0068, 0x013F3F07U ,0x01010C00U) + */ + PSU_Mask_Write(CRL_APB_QSPI_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010C00U); +/*##################################################################### */ - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0060, 0x023F3F07U ,0x02010600U) - RegMask = (CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK | CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK | CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK | CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK | 0 ); + /* + * Register : SDIO1_REF_CTRL @ 0XFF5E0070 - RegVal = ((0x00000001U << CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT - | 0x00000006U << CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_USB0_BUS_REF_CTRL_OFFSET ,0x023F3F07U ,0x02010600U); - /*############################################################################################################################ */ + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_SDIO1_REF_CTRL_CLKACT 0x1 - /*Register : USB3_DUAL_REF_CTRL @ 0XFF5E004C

      + * 6 bit divider + * PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x8 + + * 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x0 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_USB3_DUAL_REF_CTRL_CLKACT 0x1 + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010800U) + */ + PSU_Mask_Write(CRL_APB_SDIO1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010800U); +/*##################################################################### */ - 6 bit divider - PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1 0xf + /* + * Register : SDIO_CLK_CTRL @ 0XFF18030C - 6 bit divider - PSU_CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0 0x5 + * MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO + * [51] 1: MIO [76] + * PSU_IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL 0 - 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL 0x0 + * SoC Debug Clock Control + * (OFFSET, MASK, VALUE) (0XFF18030C, 0x00020000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_SDIO_CLK_CTRL_OFFSET, + 0x00020000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : UART0_REF_CTRL @ 0XFF5E0074 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_UART0_REF_CTRL_CLKACT 0x1 - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E004C, 0x023F3F07U ,0x020F0500U) - RegMask = (CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK | CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK | CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK | CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK | 0 ); + * 6 bit divider + * PSU_CRL_APB_UART0_REF_CTRL_DIVISOR1 0x1 - RegVal = ((0x00000001U << CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT - | 0x0000000FU << CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT - | 0x00000005U << CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_USB3_DUAL_REF_CTRL_OFFSET ,0x023F3F07U ,0x020F0500U); - /*############################################################################################################################ */ + * 6 bit divider + * PSU_CRL_APB_UART0_REF_CTRL_DIVISOR0 0xf - /*Register : QSPI_REF_CTRL @ 0XFF5E0068

      + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_UART0_REF_CTRL_SRCSEL 0x0 - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_QSPI_REF_CTRL_CLKACT 0x1 + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0074, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_UART0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : UART1_REF_CTRL @ 0XFF5E0078 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_UART1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_UART1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_UART1_REF_CTRL_DIVISOR0 0xf - 6 bit divider - PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR1 0x1 + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_UART1_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0078, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_UART1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : I2C0_REF_CTRL @ 0XFF5E0120 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_I2C0_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_I2C0_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0120, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_I2C0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : I2C1_REF_CTRL @ 0XFF5E0124 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_I2C1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_I2C1_REF_CTRL_SRCSEL 0x0 - 6 bit divider - PSU_CRL_APB_QSPI_REF_CTRL_DIVISOR0 0xc + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0124, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_I2C1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : CAN1_REF_CTRL @ 0XFF5E0088 - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_QSPI_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0068, 0x013F3F07U ,0x01010C00U) - RegMask = (CRL_APB_QSPI_REF_CTRL_CLKACT_MASK | CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK | CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK | CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000CU << CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_QSPI_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010C00U); - /*############################################################################################################################ */ - - /*Register : SDIO1_REF_CTRL @ 0XFF5E0070

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_SDIO1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_SDIO1_REF_CTRL_DIVISOR0 0x6 - - 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_SDIO1_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0070, 0x013F3F07U ,0x01010602U) - RegMask = (CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK | CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK | CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK | CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT - | 0x00000006U << CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_SDIO1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010602U); - /*############################################################################################################################ */ - - /*Register : SDIO_CLK_CTRL @ 0XFF18030C

      - - MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO [51] 1: MIO [76] - PSU_IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL 0 - - SoC Debug Clock Control - (OFFSET, MASK, VALUE) (0XFF18030C, 0x00020000U ,0x00000000U) - RegMask = (IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SDIO_CLK_CTRL_OFFSET ,0x00020000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : UART0_REF_CTRL @ 0XFF5E0074

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_UART0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_UART0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_UART0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_UART0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0074, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_UART0_REF_CTRL_CLKACT_MASK | CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK | CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK | CRL_APB_UART0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_UART0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : UART1_REF_CTRL @ 0XFF5E0078

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_UART1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_UART1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_UART1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_UART1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0078, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_UART1_REF_CTRL_CLKACT_MASK | CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK | CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK | CRL_APB_UART1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_UART1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : I2C0_REF_CTRL @ 0XFF5E0120

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_I2C0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_I2C0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_I2C0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0120, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_I2C0_REF_CTRL_CLKACT_MASK | CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK | CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK | CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_I2C0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : I2C1_REF_CTRL @ 0XFF5E0124

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_I2C1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_I2C1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_I2C1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0124, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_I2C1_REF_CTRL_CLKACT_MASK | CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK | CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK | CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_I2C1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : CAN1_REF_CTRL @ 0XFF5E0088

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_CAN1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_CAN1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0088, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_CAN1_REF_CTRL_CLKACT_MASK | CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK | CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK | CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_CAN1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : CPU_R5_CTRL @ 0XFF5E0090

      - - Turing this off will shut down the OCM, some parts of the APM, and prevent transactions going from the FPD to the LPD and cou - d lead to system hang - PSU_CRL_APB_CPU_R5_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_CPU_R5_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_CPU_R5_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0090, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_CPU_R5_CTRL_CLKACT_MASK | CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK | CRL_APB_CPU_R5_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_CPU_R5_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : IOU_SWITCH_CTRL @ 0XFF5E009C

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_IOU_SWITCH_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_IOU_SWITCH_CTRL_DIVISOR0 0x6 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_IOU_SWITCH_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E009C, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK | CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK | CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_IOU_SWITCH_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : PCAP_CTRL @ 0XFF5E00A4

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PCAP_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x6 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_PCAP_CTRL_CLKACT_MASK | CRL_APB_PCAP_CTRL_DIVISOR0_MASK | CRL_APB_PCAP_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PCAP_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PCAP_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PCAP_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : LPD_SWITCH_CTRL @ 0XFF5E00A8

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_LPD_SWITCH_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_LPD_SWITCH_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_LPD_SWITCH_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00A8, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK | CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK | CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_LPD_SWITCH_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : LPD_LSBUS_CTRL @ 0XFF5E00AC

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_LPD_LSBUS_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_LPD_LSBUS_CTRL_DIVISOR0 0xf - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_LPD_LSBUS_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00AC, 0x01003F07U ,0x01000F02U) - RegMask = (CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK | CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK | CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT - | 0x0000000FU << CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_LPD_LSBUS_CTRL_OFFSET ,0x01003F07U ,0x01000F02U); - /*############################################################################################################################ */ - - /*Register : DBG_LPD_CTRL @ 0XFF5E00B0

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_DBG_LPD_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_DBG_LPD_CTRL_DIVISOR0 0x6 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_DBG_LPD_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00B0, 0x01003F07U ,0x01000602U) - RegMask = (CRL_APB_DBG_LPD_CTRL_CLKACT_MASK | CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK | CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT - | 0x00000006U << CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_DBG_LPD_CTRL_OFFSET ,0x01003F07U ,0x01000602U); - /*############################################################################################################################ */ - - /*Register : ADMA_REF_CTRL @ 0XFF5E00B8

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_ADMA_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_ADMA_REF_CTRL_DIVISOR0 0x3 - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_ADMA_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00B8, 0x01003F07U ,0x01000302U) - RegMask = (CRL_APB_ADMA_REF_CTRL_CLKACT_MASK | CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK | CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT - | 0x00000003U << CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_ADMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000302U); - /*############################################################################################################################ */ - - /*Register : PL0_REF_CTRL @ 0XFF5E00C0

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL0_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL0_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL0_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL0_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C0, 0x013F3F07U ,0x01010F00U) - RegMask = (CRL_APB_PL0_REF_CTRL_CLKACT_MASK | CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL0_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL0_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010F00U); - /*############################################################################################################################ */ - - /*Register : PL1_REF_CTRL @ 0XFF5E00C4

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL1_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL1_REF_CTRL_DIVISOR1 0x4 - - 6 bit divider - PSU_CRL_APB_PL1_REF_CTRL_DIVISOR0 0xf - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL1_REF_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C4, 0x013F3F07U ,0x01040F00U) - RegMask = (CRL_APB_PL1_REF_CTRL_CLKACT_MASK | CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL1_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT - | 0x00000004U << CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT - | 0x0000000FU << CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL1_REF_CTRL_OFFSET ,0x013F3F07U ,0x01040F00U); - /*############################################################################################################################ */ - - /*Register : PL2_REF_CTRL @ 0XFF5E00C8

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL2_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL2_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL2_REF_CTRL_DIVISOR0 0x4 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL2_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00C8, 0x013F3F07U ,0x01010402U) - RegMask = (CRL_APB_PL2_REF_CTRL_CLKACT_MASK | CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL2_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT - | 0x00000004U << CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL2_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010402U); - /*############################################################################################################################ */ - - /*Register : PL3_REF_CTRL @ 0XFF5E00CC

      - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_PL3_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRL_APB_PL3_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_PL3_REF_CTRL_DIVISOR0 0x3 - - 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_PL3_REF_CTRL_SRCSEL 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E00CC, 0x013F3F07U ,0x01010302U) - RegMask = (CRL_APB_PL3_REF_CTRL_CLKACT_MASK | CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK | CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK | CRL_APB_PL3_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT - | 0x00000003U << CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_PL3_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010302U); - /*############################################################################################################################ */ - - /*Register : AMS_REF_CTRL @ 0XFF5E0108

      - - 6 bit divider - PSU_CRL_APB_AMS_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1d - - 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_AMS_REF_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_AMS_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011D02U) - RegMask = (CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK | CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK | CRL_APB_AMS_REF_CTRL_SRCSEL_MASK | CRL_APB_AMS_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT - | 0x0000001DU << CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_AMS_REF_CTRL_OFFSET ,0x013F3F07U ,0x01011D02U); - /*############################################################################################################################ */ - - /*Register : DLL_REF_CTRL @ 0XFF5E0104

      - - 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - is not usually an issue, but designers must be aware.) - PSU_CRL_APB_DLL_REF_CTRL_SRCSEL 0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0104, 0x00000007U ,0x00000000U) - RegMask = (CRL_APB_DLL_REF_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000000U << CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_DLL_REF_CTRL_OFFSET ,0x00000007U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : TIMESTAMP_REF_CTRL @ 0XFF5E0128

      - - 6 bit divider - PSU_CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0 0xf - - 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and - cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFF5E0128, 0x01003F07U ,0x01000F00U) - RegMask = (CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK | CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK | CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x0000000FU << CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_TIMESTAMP_REF_CTRL_OFFSET ,0x01003F07U ,0x01000F00U); - /*############################################################################################################################ */ - - /*Register : SATA_REF_CTRL @ 0XFD1A00A0

      - - 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_SATA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_SATA_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRF_APB_SATA_REF_CTRL_DIVISOR0 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00A0, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_SATA_REF_CTRL_SRCSEL_MASK | CRF_APB_SATA_REF_CTRL_CLKACT_MASK | CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT - | 0x00000002U << CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_SATA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : PCIE_REF_CTRL @ 0XFD1A00B4

      - - 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cyc - es of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_PCIE_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_PCIE_REF_CTRL_CLKACT 0x1 - - 6 bit divider - PSU_CRF_APB_PCIE_REF_CTRL_DIVISOR0 0x2 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00B4, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK | CRF_APB_PCIE_REF_CTRL_CLKACT_MASK | CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT - | 0x00000002U << CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_PCIE_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DP_VIDEO_REF_CTRL @ 0XFD1A0070

      - - 6 bit divider - PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x3 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x3 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_VIDEO_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010303U) - RegMask = (CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT - | 0x00000003U << CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT - | 0x00000003U << CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_VIDEO_REF_CTRL_OFFSET ,0x013F3F07U ,0x01010303U); - /*############################################################################################################################ */ - - /*Register : DP_AUDIO_REF_CTRL @ 0XFD1A0074

      - - 6 bit divider - PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0x27 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_AUDIO_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01012700U) - RegMask = (CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT - | 0x00000027U << CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_AUDIO_REF_CTRL_OFFSET ,0x013F3F07U ,0x01012700U); - /*############################################################################################################################ */ - - /*Register : DP_STC_REF_CTRL @ 0XFD1A007C

      - - 6 bit divider - PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR1 0x1 - - 6 bit divider - PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0x11 - - 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of t - e new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DP_STC_REF_CTRL_SRCSEL 0x3 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DP_STC_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01011103U) - RegMask = (CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK | CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK | CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK | CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT - | 0x00000011U << CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT - | 0x00000003U << CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DP_STC_REF_CTRL_OFFSET ,0x013F3F07U ,0x01011103U); - /*############################################################################################################################ */ - - /*Register : ACPU_CTRL @ 0XFD1A0060

      - - 6 bit divider - PSU_CRF_APB_ACPU_CTRL_DIVISOR0 0x1 - - 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_ACPU_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock. For the half speed APU Clock - PSU_CRF_APB_ACPU_CTRL_CLKACT_HALF 0x1 - - Clock active signal. Switch to 0 to disable the clock. For the full speed ACPUX Clock. This will shut off the high speed cloc - to the entire APU - PSU_CRF_APB_ACPU_CTRL_CLKACT_FULL 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0060, 0x03003F07U ,0x03000100U) - RegMask = (CRF_APB_ACPU_CTRL_DIVISOR0_MASK | CRF_APB_ACPU_CTRL_SRCSEL_MASK | CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK | CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_ACPU_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT - | 0x00000001U << CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_ACPU_CTRL_OFFSET ,0x03003F07U ,0x03000100U); - /*############################################################################################################################ */ - - /*Register : DBG_TRACE_CTRL @ 0XFD1A0064

      - - 6 bit divider - PSU_CRF_APB_DBG_TRACE_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_TRACE_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DBG_TRACE_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0064, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK | CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK | CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_TRACE_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DBG_FPD_CTRL @ 0XFD1A0068

      - - 6 bit divider - PSU_CRF_APB_DBG_FPD_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_FPD_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DBG_FPD_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0068, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK | CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK | CRF_APB_DBG_FPD_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_FPD_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DDR_CTRL @ 0XFD1A0080

      - - 6 bit divider - PSU_CRF_APB_DDR_CTRL_DIVISOR0 0x2 - - 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - s not usually an issue, but designers must be aware.) - PSU_CRF_APB_DDR_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0080, 0x00003F07U ,0x00000200U) - RegMask = (CRF_APB_DDR_CTRL_DIVISOR0_MASK | CRF_APB_DDR_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DDR_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DDR_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DDR_CTRL_OFFSET ,0x00003F07U ,0x00000200U); - /*############################################################################################################################ */ - - /*Register : GPU_REF_CTRL @ 0XFD1A0084

      - - 6 bit divider - PSU_CRF_APB_GPU_REF_CTRL_DIVISOR0 0x1 - - 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_GPU_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock, which will stop clock for GPU (and both Pixel Processors). - PSU_CRF_APB_GPU_REF_CTRL_CLKACT 0x1 - - Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor - PSU_CRF_APB_GPU_REF_CTRL_PP0_CLKACT 0x1 - - Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor - PSU_CRF_APB_GPU_REF_CTRL_PP1_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A0084, 0x07003F07U ,0x07000100U) - RegMask = (CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK | CRF_APB_GPU_REF_CTRL_SRCSEL_MASK | CRF_APB_GPU_REF_CTRL_CLKACT_MASK | CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK | CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT - | 0x00000001U << CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_GPU_REF_CTRL_OFFSET ,0x07003F07U ,0x07000100U); - /*############################################################################################################################ */ - - /*Register : GDMA_REF_CTRL @ 0XFD1A00B8

      - - 6 bit divider - PSU_CRF_APB_GDMA_REF_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_GDMA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_GDMA_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00B8, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK | CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK | CRF_APB_GDMA_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_GDMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : DPDMA_REF_CTRL @ 0XFD1A00BC

      - - 6 bit divider - PSU_CRF_APB_DPDMA_REF_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DPDMA_REF_CTRL_SRCSEL 0x0 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_DPDMA_REF_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00BC, 0x01003F07U ,0x01000200U) - RegMask = (CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK | CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK | CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DPDMA_REF_CTRL_OFFSET ,0x01003F07U ,0x01000200U); - /*############################################################################################################################ */ - - /*Register : TOPSW_MAIN_CTRL @ 0XFD1A00C0

      - - 6 bit divider - PSU_CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0 0x2 - - 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_TOPSW_MAIN_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000202U) - RegMask = (CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK | CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK | CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_TOPSW_MAIN_CTRL_OFFSET ,0x01003F07U ,0x01000202U); - /*############################################################################################################################ */ - - /*Register : TOPSW_LSBUS_CTRL @ 0XFD1A00C4

      - - 6 bit divider - PSU_CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0 0x5 - - 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL 0x2 - - Clock active signal. Switch to 0 to disable the clock - PSU_CRF_APB_TOPSW_LSBUS_CTRL_CLKACT 0x1 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00C4, 0x01003F07U ,0x01000502U) - RegMask = (CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK | CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK | CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK | 0 ); - - RegVal = ((0x00000005U << CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT - | 0x00000002U << CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT - | 0x00000001U << CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_TOPSW_LSBUS_CTRL_OFFSET ,0x01003F07U ,0x01000502U); - /*############################################################################################################################ */ - - /*Register : DBG_TSTMP_CTRL @ 0XFD1A00F8

      - - 6 bit divider - PSU_CRF_APB_DBG_TSTMP_CTRL_DIVISOR0 0x2 - - 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.) - PSU_CRF_APB_DBG_TSTMP_CTRL_SRCSEL 0x0 - - This register controls this reference clock - (OFFSET, MASK, VALUE) (0XFD1A00F8, 0x00003F07U ,0x00000200U) - RegMask = (CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK | CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK | 0 ); - - RegVal = ((0x00000002U << CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT - | 0x00000000U << CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_DBG_TSTMP_CTRL_OFFSET ,0x00003F07U ,0x00000200U); - /*############################################################################################################################ */ - - /*Register : IOU_TTC_APB_CLK @ 0XFF180380

      - - 00" = Select the APB switch clock for the APB interface of TTC0'01" = Select the PLL ref clock for the APB interface of TTC0' - 0" = Select the R5 clock for the APB interface of TTC0 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC1'01" = Select the PLL ref clock for the APB interface of TTC1' - 0" = Select the R5 clock for the APB interface of TTC1 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC2'01" = Select the PLL ref clock for the APB interface of TTC2' - 0" = Select the R5 clock for the APB interface of TTC2 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL 0 - - 00" = Select the APB switch clock for the APB interface of TTC3'01" = Select the PLL ref clock for the APB interface of TTC3' - 0" = Select the R5 clock for the APB interface of TTC3 - PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL 0 - - TTC APB clock select - (OFFSET, MASK, VALUE) (0XFF180380, 0x000000FFU ,0x00000000U) - RegMask = (IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK | IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_IOU_TTC_APB_CLK_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : WDT_CLK_SEL @ 0XFD610100

      - - System watchdog timer clock source selection: 0: Internal APB clock 1: External (PL clock via EMIO or Pinout clock via MIO) - PSU_FPD_SLCR_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFD610100, 0x00000001U ,0x00000000U) - RegMask = (FPD_SLCR_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (FPD_SLCR_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : WDT_CLK_SEL @ 0XFF180300

      - - System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock from PL via EMIO, or from pinout - ia MIO - PSU_IOU_SLCR_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFF180300, 0x00000001U ,0x00000000U) - RegMask = (IOU_SLCR_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CSUPMU_WDT_CLK_SEL @ 0XFF410050

      - - System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock pss_ref_clk - PSU_LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT 0 - - SWDT clock source select - (OFFSET, MASK, VALUE) (0XFF410050, 0x00000001U ,0x00000000U) - RegMask = (LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK | 0 ); - - RegVal = ((0x00000000U << LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - - return 1; + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_CAN1_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_CAN1_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_CAN1_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0088, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_CAN1_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : CPU_R5_CTRL @ 0XFF5E0090 + + * Turing this off will shut down the OCM, some parts of the APM, and preve + * nt transactions going from the FPD to the LPD and could lead to system h + * ang + * PSU_CRL_APB_CPU_R5_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_CPU_R5_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_CPU_R5_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0090, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_CPU_R5_CTRL_OFFSET, 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : IOU_SWITCH_CTRL @ 0XFF5E009C + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_IOU_SWITCH_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_IOU_SWITCH_CTRL_DIVISOR0 0x6 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_IOU_SWITCH_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E009C, 0x01003F07U ,0x01000602U) + */ + PSU_Mask_Write(CRL_APB_IOU_SWITCH_CTRL_OFFSET, + 0x01003F07U, 0x01000602U); +/*##################################################################### */ + + /* + * Register : PCAP_CTRL @ 0XFF5E00A4 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_PCAP_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_PCAP_CTRL_DIVISOR0 0x8 + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_PCAP_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00A4, 0x01003F07U ,0x01000800U) + */ + PSU_Mask_Write(CRL_APB_PCAP_CTRL_OFFSET, 0x01003F07U, 0x01000800U); +/*##################################################################### */ + + /* + * Register : LPD_SWITCH_CTRL @ 0XFF5E00A8 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_LPD_SWITCH_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_LPD_SWITCH_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_LPD_SWITCH_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00A8, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_LPD_SWITCH_CTRL_OFFSET, + 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : LPD_LSBUS_CTRL @ 0XFF5E00AC + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_LPD_LSBUS_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_LPD_LSBUS_CTRL_DIVISOR0 0xf + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_LPD_LSBUS_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00AC, 0x01003F07U ,0x01000F02U) + */ + PSU_Mask_Write(CRL_APB_LPD_LSBUS_CTRL_OFFSET, + 0x01003F07U, 0x01000F02U); +/*##################################################################### */ + + /* + * Register : DBG_LPD_CTRL @ 0XFF5E00B0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_DBG_LPD_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_DBG_LPD_CTRL_DIVISOR0 0x6 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_DBG_LPD_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00B0, 0x01003F07U ,0x01000602U) + */ + PSU_Mask_Write(CRL_APB_DBG_LPD_CTRL_OFFSET, + 0x01003F07U, 0x01000602U); +/*##################################################################### */ + + /* + * Register : ADMA_REF_CTRL @ 0XFF5E00B8 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_ADMA_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_ADMA_REF_CTRL_DIVISOR0 0x3 + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_ADMA_REF_CTRL_SRCSEL 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00B8, 0x01003F07U ,0x01000302U) + */ + PSU_Mask_Write(CRL_APB_ADMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000302U); +/*##################################################################### */ + + /* + * Register : PL0_REF_CTRL @ 0XFF5E00C0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_PL0_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRL_APB_PL0_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_PL0_REF_CTRL_DIVISOR0 0xf + + * 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_PL0_REF_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E00C0, 0x013F3F07U ,0x01010F00U) + */ + PSU_Mask_Write(CRL_APB_PL0_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F00U); +/*##################################################################### */ + + /* + * Register : AMS_REF_CTRL @ 0XFF5E0108 + + * 6 bit divider + * PSU_CRL_APB_AMS_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRL_APB_AMS_REF_CTRL_DIVISOR0 0x1e + + * 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRL_APB_AMS_REF_CTRL_SRCSEL 0x2 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_AMS_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0108, 0x013F3F07U ,0x01011E02U) + */ + PSU_Mask_Write(CRL_APB_AMS_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01011E02U); +/*##################################################################### */ + + /* + * Register : DLL_REF_CTRL @ 0XFF5E0104 + + * 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an + * issue, but designers must be aware.) + * PSU_CRL_APB_DLL_REF_CTRL_SRCSEL 0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0104, 0x00000007U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_DLL_REF_CTRL_OFFSET, + 0x00000007U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : TIMESTAMP_REF_CTRL @ 0XFF5E0128 + + * 6 bit divider + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0 0xf + + * 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may + * only be toggled after 4 cycles of the old clock and 4 cycles of the new + * clock. This is not usually an issue, but designers must be aware.) + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFF5E0128, 0x01003F07U ,0x01000F00U) + */ + PSU_Mask_Write(CRL_APB_TIMESTAMP_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000F00U); +/*##################################################################### */ + + /* + * Register : SATA_REF_CTRL @ 0XFD1A00A0 + + * 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_SATA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_SATA_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRF_APB_SATA_REF_CTRL_DIVISOR0 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00A0, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_SATA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : PCIE_REF_CTRL @ 0XFD1A00B4 + + * 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only + * be toggled after 4 cycles of the old clock and 4 cycles of the new cloc + * k. This is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_PCIE_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_PCIE_REF_CTRL_CLKACT 0x1 + + * 6 bit divider + * PSU_CRF_APB_PCIE_REF_CTRL_DIVISOR0 0x2 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00B4, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_PCIE_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DP_VIDEO_REF_CTRL @ 0XFD1A0070 + + * 6 bit divider + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0 0x5 + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_VIDEO_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0070, 0x013F3F07U ,0x01010500U) + */ + PSU_Mask_Write(CRF_APB_DP_VIDEO_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010500U); +/*##################################################################### */ + + /* + * Register : DP_AUDIO_REF_CTRL @ 0XFD1A0074 + + * 6 bit divider + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0 0xf + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_AUDIO_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0074, 0x013F3F07U ,0x01010F03U) + */ + PSU_Mask_Write(CRF_APB_DP_AUDIO_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010F03U); +/*##################################################################### */ + + /* + * Register : DP_STC_REF_CTRL @ 0XFD1A007C + + * 6 bit divider + * PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR1 0x1 + + * 6 bit divider + * PSU_CRF_APB_DP_STC_REF_CTRL_DIVISOR0 0xe + + * 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be togg + * led after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DP_STC_REF_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DP_STC_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A007C, 0x013F3F07U ,0x01010E03U) + */ + PSU_Mask_Write(CRF_APB_DP_STC_REF_CTRL_OFFSET, + 0x013F3F07U, 0x01010E03U); +/*##################################################################### */ + + /* + * Register : ACPU_CTRL @ 0XFD1A0060 + + * 6 bit divider + * PSU_CRF_APB_ACPU_CTRL_DIVISOR0 0x1 + + * 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_ACPU_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock. For the half spee + * d APU Clock + * PSU_CRF_APB_ACPU_CTRL_CLKACT_HALF 0x1 + + * Clock active signal. Switch to 0 to disable the clock. For the full spee + * d ACPUX Clock. This will shut off the high speed clock to the entire APU + * PSU_CRF_APB_ACPU_CTRL_CLKACT_FULL 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0060, 0x03003F07U ,0x03000100U) + */ + PSU_Mask_Write(CRF_APB_ACPU_CTRL_OFFSET, 0x03003F07U, 0x03000100U); +/*##################################################################### */ + + /* + * Register : DBG_FPD_CTRL @ 0XFD1A0068 + + * 6 bit divider + * PSU_CRF_APB_DBG_FPD_CTRL_DIVISOR0 0x2 + + * 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DBG_FPD_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DBG_FPD_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0068, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_DBG_FPD_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DDR_CTRL @ 0XFD1A0080 + + * 6 bit divider + * PSU_CRF_APB_DDR_CTRL_DIVISOR0 0x2 + + * 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an i + * ssue, but designers must be aware.) + * PSU_CRF_APB_DDR_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0080, 0x00003F07U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DDR_CTRL_OFFSET, 0x00003F07U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : GPU_REF_CTRL @ 0XFD1A0084 + + * 6 bit divider + * PSU_CRF_APB_GPU_REF_CTRL_DIVISOR0 0x1 + + * 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_GPU_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock, which will stop c + * lock for GPU (and both Pixel Processors). + * PSU_CRF_APB_GPU_REF_CTRL_CLKACT 0x1 + + * Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor + * PSU_CRF_APB_GPU_REF_CTRL_PP0_CLKACT 0x1 + + * Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor + * PSU_CRF_APB_GPU_REF_CTRL_PP1_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A0084, 0x07003F07U ,0x07000100U) + */ + PSU_Mask_Write(CRF_APB_GPU_REF_CTRL_OFFSET, + 0x07003F07U, 0x07000100U); +/*##################################################################### */ + + /* + * Register : GDMA_REF_CTRL @ 0XFD1A00B8 + + * 6 bit divider + * PSU_CRF_APB_GDMA_REF_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_GDMA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_GDMA_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00B8, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_GDMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : DPDMA_REF_CTRL @ 0XFD1A00BC + + * 6 bit divider + * PSU_CRF_APB_DPDMA_REF_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_DPDMA_REF_CTRL_SRCSEL 0x0 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_DPDMA_REF_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00BC, 0x01003F07U ,0x01000200U) + */ + PSU_Mask_Write(CRF_APB_DPDMA_REF_CTRL_OFFSET, + 0x01003F07U, 0x01000200U); +/*##################################################################### */ + + /* + * Register : TOPSW_MAIN_CTRL @ 0XFD1A00C0 + + * 6 bit divider + * PSU_CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0 0x2 + + * 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) + * PSU_CRF_APB_TOPSW_MAIN_CTRL_SRCSEL 0x3 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_TOPSW_MAIN_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00C0, 0x01003F07U ,0x01000203U) + */ + PSU_Mask_Write(CRF_APB_TOPSW_MAIN_CTRL_OFFSET, + 0x01003F07U, 0x01000203U); +/*##################################################################### */ + + /* + * Register : TOPSW_LSBUS_CTRL @ 0XFD1A00C4 + + * 6 bit divider + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0 0x5 + + * 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL 0x2 + + * Clock active signal. Switch to 0 to disable the clock + * PSU_CRF_APB_TOPSW_LSBUS_CTRL_CLKACT 0x1 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00C4, 0x01003F07U ,0x01000502U) + */ + PSU_Mask_Write(CRF_APB_TOPSW_LSBUS_CTRL_OFFSET, + 0x01003F07U, 0x01000502U); +/*##################################################################### */ + + /* + * Register : DBG_TSTMP_CTRL @ 0XFD1A00F8 + + * 6 bit divider + * PSU_CRF_APB_DBG_TSTMP_CTRL_DIVISOR0 0x2 + + * 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) + * PSU_CRF_APB_DBG_TSTMP_CTRL_SRCSEL 0x0 + + * This register controls this reference clock + * (OFFSET, MASK, VALUE) (0XFD1A00F8, 0x00003F07U ,0x00000200U) + */ + PSU_Mask_Write(CRF_APB_DBG_TSTMP_CTRL_OFFSET, + 0x00003F07U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : IOU_TTC_APB_CLK @ 0XFF180380 + + * 00" = Select the APB switch clock for the APB interface of TTC0'01" = Se + * lect the PLL ref clock for the APB interface of TTC0'10" = Select the R5 + * clock for the APB interface of TTC0 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC1'01" = Se + * lect the PLL ref clock for the APB interface of TTC1'10" = Select the R5 + * clock for the APB interface of TTC1 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC2'01" = Se + * lect the PLL ref clock for the APB interface of TTC2'10" = Select the R5 + * clock for the APB interface of TTC2 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL 0 + + * 00" = Select the APB switch clock for the APB interface of TTC3'01" = Se + * lect the PLL ref clock for the APB interface of TTC3'10" = Select the R5 + * clock for the APB interface of TTC3 + * PSU_IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL 0 + + * TTC APB clock select + * (OFFSET, MASK, VALUE) (0XFF180380, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_IOU_TTC_APB_CLK_OFFSET, + 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : WDT_CLK_SEL @ 0XFD610100 + + * System watchdog timer clock source selection: 0: Internal APB clock 1: E + * xternal (PL clock via EMIO or Pinout clock via MIO) + * PSU_FPD_SLCR_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFD610100, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(FPD_SLCR_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : WDT_CLK_SEL @ 0XFF180300 + + * System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock from PL via EMIO, or from pinout via MIO + * PSU_IOU_SLCR_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFF180300, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CSUPMU_WDT_CLK_SEL @ 0XFF410050 + + * System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock pss_ref_clk + * PSU_LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT 0 + + * SWDT clock source select + * (OFFSET, MASK, VALUE) (0XFF410050, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_ddr_init_data() { - // : DDR INITIALIZATION - // : DDR CONTROLLER RESET - /*Register : RST_DDR_SS @ 0XFD1A0108

      - - DDR block level reset inside of the DDR Sub System - PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X1 - - DDR sub system block level reset - (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000008U) - RegMask = (CRF_APB_RST_DDR_SS_DDR_RESET_MASK | 0 ); - - RegVal = ((0x00000001U << CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_DDR_SS_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MSTR @ 0XFD070000

      - - Indicates the configuration of the device used in the system. - 00 - x4 device - 01 - x8 device - 10 - x16 device - 11 - x32 - evice - PSU_DDRC_MSTR_DEVICE_CONFIG 0x1 - - Choose which registers are used. - 0 - Original registers - 1 - Shadow registers - PSU_DDRC_MSTR_FREQUENCY_MODE 0x0 - - Only present for multi-rank configurations. Each bit represents one rank. For two-rank configurations, only bits[25:24] are p - esent. - 1 - populated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks following combinations are legal: - 01 - - ne rank - 11 - Two ranks - Others - Reserved. For 4 ranks following combinations are legal: - 0001 - One rank - 0011 - Two ra - ks - 1111 - Four ranks - PSU_DDRC_MSTR_ACTIVE_RANKS 0x1 - - SDRAM burst length used: - 0001 - Burst length of 2 (only supported for mDDR) - 0010 - Burst length of 4 - 0100 - Burst lengt - of 8 - 1000 - Burst length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other values are reserved. This controls - he burst size used to access the SDRAM. This must match the burst length mode register setting in the SDRAM. (For BC4/8 on-th - -fly mode of DDR3 and DDR4, set this field to 0x0100) Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGT - is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 - PSU_DDRC_MSTR_BURST_RDWR 0x4 - - Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low frequency operation. Set to 0 to put uMCTL2 and DRAM - n DLL-on mode for normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d - l_off_mode is not supported, and this bit must be set to '0'. - PSU_DDRC_MSTR_DLL_OFF_MODE 0x0 - - Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full DQ bus width to SDRAM - 01 - Half DQ bus width to SD - AM - 10 - Quarter DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is only supported when the SDRAM bus w - dth is a multiple of 16, and quarter bus width mode is only supported when the SDRAM bus width is a multiple of 32 and the co - figuration parameter MEMC_QBUS_SUPPORT is set. Bus width refers to DQ bus width (excluding any ECC width). - PSU_DDRC_MSTR_DATA_BUS_WIDTH 0x0 - - 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the DRAM in normal mode (1N). This register can be changed - only when the Controller is in self-refresh mode. This signal must be set the same value as MR3 bit A3. Note: Geardown mode - s not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set - PSU_DDRC_MSTR_GEARDOWN_MODE 0x0 - - If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timing, all command signals (except chip select) are held - or 2 clocks on the SDRAM bus. Chip select is asserted on the second cycle of the command Note: 2T timing is not supported in - PDDR2/LPDDR3/LPDDR4 mode Note: 2T timing is not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set Note: 2T ti - ing is not supported in DDR4 geardown mode. - PSU_DDRC_MSTR_EN_2T_TIMING_MODE 0x0 - - When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exercised only in HIF configurations (UMCTL2_INCL_ARB not s - t) and if in full bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exercised only if Partial Writes enable - (UMCTL2_PARTIAL_WR=1) and if CRC is disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabled (CRCPARCTL1.cr - _parity_retry_enable = 1), burst chop is not supported, and this bit must be set to '0' - PSU_DDRC_MSTR_BURSTCHOP 0x0 - - Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 device in use Present only in designs configured to su - port LPDDR4. - PSU_DDRC_MSTR_LPDDR4 0x0 - - Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device in use Present only in designs configured to support - DR4. - PSU_DDRC_MSTR_DDR4 0x1 - - Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 device in use Present only in designs configured to su - port LPDDR3. - PSU_DDRC_MSTR_LPDDR3 0x0 - - Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 device in use Present only in designs configured to su - port LPDDR2. - PSU_DDRC_MSTR_LPDDR2 0x0 - - Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM device in use Only present in designs that support DDR3 - - PSU_DDRC_MSTR_DDR3 0x0 - - Master Register - (OFFSET, MASK, VALUE) (0XFD070000, 0xE30FBE3DU ,0x41040010U) - RegMask = (DDRC_MSTR_DEVICE_CONFIG_MASK | DDRC_MSTR_FREQUENCY_MODE_MASK | DDRC_MSTR_ACTIVE_RANKS_MASK | DDRC_MSTR_BURST_RDWR_MASK | DDRC_MSTR_DLL_OFF_MODE_MASK | DDRC_MSTR_DATA_BUS_WIDTH_MASK | DDRC_MSTR_GEARDOWN_MODE_MASK | DDRC_MSTR_EN_2T_TIMING_MODE_MASK | DDRC_MSTR_BURSTCHOP_MASK | DDRC_MSTR_LPDDR4_MASK | DDRC_MSTR_DDR4_MASK | DDRC_MSTR_LPDDR3_MASK | DDRC_MSTR_LPDDR2_MASK | DDRC_MSTR_DDR3_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_MSTR_DEVICE_CONFIG_SHIFT - | 0x00000000U << DDRC_MSTR_FREQUENCY_MODE_SHIFT - | 0x00000001U << DDRC_MSTR_ACTIVE_RANKS_SHIFT - | 0x00000004U << DDRC_MSTR_BURST_RDWR_SHIFT - | 0x00000000U << DDRC_MSTR_DLL_OFF_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_DATA_BUS_WIDTH_SHIFT - | 0x00000000U << DDRC_MSTR_GEARDOWN_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT - | 0x00000000U << DDRC_MSTR_BURSTCHOP_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR4_SHIFT - | 0x00000001U << DDRC_MSTR_DDR4_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR3_SHIFT - | 0x00000000U << DDRC_MSTR_LPDDR2_SHIFT - | 0x00000000U << DDRC_MSTR_DDR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_MSTR_OFFSET ,0xE30FBE3DU ,0x41040010U); - /*############################################################################################################################ */ - - /*Register : MRCTRL0 @ 0XFD070010

      - - Setting this register bit to 1 triggers a mode register read or write operation. When the MR operation is complete, the uMCTL - automatically clears this bit. The other register fields of this register must be written in a separate APB transaction, bef - re setting this mr_wr bit. It is recommended NOT to set this signal if in Init, Deep power-down or MPSM operating modes. - PSU_DDRC_MRCTRL0_MR_WR 0x0 - - Address of the mode register that is to be written to. - 0000 - MR0 - 0001 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 010 - - MR5 - 0110 - MR6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data for mode register addressing in LPD - R2/LPDDR3/LPDDR4) This signal is also used for writing to control words of RDIMMs. In that case, it corresponds to the bank a - dress bits sent to the RDIMM In case of DDR4, the bit[3:2] corresponds to the bank group bits. Therefore, the bit[3] as well - s the bit[2:0] must be set to an appropriate value which is considered both the Address Mirroring of UDIMMs/RDIMMs and the Ou - put Inversion of RDIMMs. - PSU_DDRC_MRCTRL0_MR_ADDR 0x0 - - Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desired to access all ranks, so all bits should be set to 1 - However, for multi-rank UDIMMs/RDIMMs which implement address mirroring, it may be necessary to access ranks individually. E - amples (assume uMCTL2 is configured for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x5 - select ranks - and 2 - 0xA - select ranks 1 and 3 - 0xF - select ranks 0, 1, 2 and 3 - PSU_DDRC_MRCTRL0_MR_RANK 0x3 - - Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 before automatic SDRAM initialization routine or not. - or DDR4, this bit can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM initialization. For LPDDR4, this bit ca - be used to program additional mode registers before automatic SDRAM initialization if necessary. Note: This must be cleared - o 0 after completing Software operation. Otherwise, SDRAM initialization routine will not re-start. - 0 - Software interventi - n is not allowed - 1 - Software intervention is allowed - PSU_DDRC_MRCTRL0_SW_INIT_INT 0x0 - - Indicates whether the mode register operation is MRS in PDA mode or not - 0 - MRS - 1 - MRS in Per DRAM Addressability mode - PSU_DDRC_MRCTRL0_PDA_EN 0x0 - - Indicates whether the mode register operation is MRS or WR/RD for MPR (only supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR - PSU_DDRC_MRCTRL0_MPR_EN 0x0 - - Indicates whether the mode register operation is read or write. Only used for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Re - d - PSU_DDRC_MRCTRL0_MR_TYPE 0x0 - - Mode Register Read/Write Control Register 0. Note: Do not enable more than one of the following fields simultaneously: - sw_i - it_int - pda_en - mpr_en - (OFFSET, MASK, VALUE) (0XFD070010, 0x8000F03FU ,0x00000030U) - RegMask = (DDRC_MRCTRL0_MR_WR_MASK | DDRC_MRCTRL0_MR_ADDR_MASK | DDRC_MRCTRL0_MR_RANK_MASK | DDRC_MRCTRL0_SW_INIT_INT_MASK | DDRC_MRCTRL0_PDA_EN_MASK | DDRC_MRCTRL0_MPR_EN_MASK | DDRC_MRCTRL0_MR_TYPE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_MRCTRL0_MR_WR_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MR_ADDR_SHIFT - | 0x00000003U << DDRC_MRCTRL0_MR_RANK_SHIFT - | 0x00000000U << DDRC_MRCTRL0_SW_INIT_INT_SHIFT - | 0x00000000U << DDRC_MRCTRL0_PDA_EN_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MPR_EN_SHIFT - | 0x00000000U << DDRC_MRCTRL0_MR_TYPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_MRCTRL0_OFFSET ,0x8000F03FU ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : DERATEEN @ 0XFD070020

      - - Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating uses +2. - 2 - Derating uses +3. - 3 - Derating uses +4 - Present only in designs configured to support LPDDR4. The required number of cycles for derating can be determined by dividi - g 3.75ns by the core_ddrc_core_clk period, and rounding up the next integer. - PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x3 - - Derate byte Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 Indicates which byte of the MRR data is used f - r derating. The maximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. - PSU_DDRC_DERATEEN_DERATE_BYTE 0x0 - - Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present only in designs configured to support LPDDR2/LPDDR3/LPDD - 4 Set to 0 for all LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ddrc_core_clk period. Can be 0 or 1 - for LPDDR3/LPDDR4, depending if +1.875 ns is less than a core_ddrc_core_clk period or not. - PSU_DDRC_DERATEEN_DERATE_VALUE 0x0 - - Enables derating - 0 - Timing parameter derating is disabled - 1 - Timing parameter derating is enabled using MR4 read value. - Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set to '0' for non-LPDDR2/LPDDR3/LPDDR4 - mode. - PSU_DDRC_DERATEEN_DERATE_ENABLE 0x0 - - Temperature Derate Enable Register - (OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000300U) - RegMask = (DDRC_DERATEEN_RC_DERATE_VALUE_MASK | DDRC_DERATEEN_DERATE_BYTE_MASK | DDRC_DERATEEN_DERATE_VALUE_MASK | DDRC_DERATEEN_DERATE_ENABLE_MASK | 0 ); - - RegVal = ((0x00000003U << DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_BYTE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_VALUE_SHIFT - | 0x00000000U << DDRC_DERATEEN_DERATE_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DERATEEN_OFFSET ,0x000003F3U ,0x00000300U); - /*############################################################################################################################ */ - - /*Register : DERATEINT @ 0XFD070024

      - - Interval between two MR4 reads, used to derate the timing parameters. Present only in designs configured to support LPDDR2/LP - DR3/LPDDR4. This register must not be set to zero - PSU_DDRC_DERATEINT_MR4_READ_INTERVAL 0x800000 - - Temperature Derate Interval Register - (OFFSET, MASK, VALUE) (0XFD070024, 0xFFFFFFFFU ,0x00800000U) - RegMask = (DDRC_DERATEINT_MR4_READ_INTERVAL_MASK | 0 ); - - RegVal = ((0x00800000U << DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DERATEINT_OFFSET ,0xFFFFFFFFU ,0x00800000U); - /*############################################################################################################################ */ - - /*Register : PWRCTL @ 0XFD070030

      - - Self refresh state is an intermediate state to enter to Self refresh power down state or exit Self refresh power down state f - r LPDDR4. This register controls transition from the Self refresh state. - 1 - Prohibit transition from Self refresh state - - - Allow transition from Self refresh state - PSU_DDRC_PWRCTL_STAY_IN_SELFREF 0x0 - - A value of 1 to this register causes system to move to Self Refresh state immediately, as long as it is not in INIT or DPD/MP - M operating_mode. This is referred to as Software Entry/Exit to Self Refresh. - 1 - Software Entry to Self Refresh - 0 - Soft - are Exit from Self Refresh - PSU_DDRC_PWRCTL_SELFREF_SW 0x0 - - When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode when the transaction store is empty. This register m - st be reset to '0' to bring uMCTL2 out of maximum power saving mode. Present only in designs configured to support DDR4. For - on-DDR4, this register should not be set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if the PHY parameter - DWC_AC_CS_USE is disabled, as the MPSM exit sequence requires the chip-select signal to toggle. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRCTL_MPSM_EN 0x0 - - Enable the assertion of dfi_dram_clk_disable whenever a clock is not required by the SDRAM. If set to 0, dfi_dram_clk_disable - is never asserted. Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only be asserted in Self Refresh. In DD - 4, can be asserted in following: - in Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, can be asserted in - ollowing: - in Self Refresh - in Power Down - in Deep Power Down - during Normal operation (Clock Stop) In LPDDR4, can be ass - rted in following: - in Self Refresh Power Down - in Power Down - during Normal operation (Clock Stop) - PSU_DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE 0x0 - - When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the transaction store is empty. This register must be re - et to '0' to bring uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM initialization on deep power-down - xit. Present only in designs configured to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPDDR3, this registe - should not be set to 1. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRCTL_DEEPPOWERDOWN_EN 0x0 - - If true then the uMCTL2 goes into power-down after a programmable number of cycles 'maximum idle clocks before power down' (P - RTMG.powerdown_to_x32). This register bit may be re-programmed during the course of normal operation. - PSU_DDRC_PWRCTL_POWERDOWN_EN 0x0 - - If true then the uMCTL2 puts the SDRAM into Self Refresh after a programmable number of cycles 'maximum idle clocks before Se - f Refresh (PWRTMG.selfref_to_x32)'. This register bit may be re-programmed during the course of normal operation. - PSU_DDRC_PWRCTL_SELFREF_EN 0x0 - - Low Power Control Register - (OFFSET, MASK, VALUE) (0XFD070030, 0x0000007FU ,0x00000000U) - RegMask = (DDRC_PWRCTL_STAY_IN_SELFREF_MASK | DDRC_PWRCTL_SELFREF_SW_MASK | DDRC_PWRCTL_MPSM_EN_MASK | DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK | DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK | DDRC_PWRCTL_POWERDOWN_EN_MASK | DDRC_PWRCTL_SELFREF_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT - | 0x00000000U << DDRC_PWRCTL_SELFREF_SW_SHIFT - | 0x00000000U << DDRC_PWRCTL_MPSM_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT - | 0x00000000U << DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_POWERDOWN_EN_SHIFT - | 0x00000000U << DDRC_PWRCTL_SELFREF_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PWRCTL_OFFSET ,0x0000007FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PWRTMG @ 0XFD070034

      - - After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into Self Refresh. This must be enabled in - he PWRCTL.selfref_en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_SELFREF_TO_X32 0x40 - - Minimum deep power-down time. For mDDR, value from the JEDEC specification is 0 as mDDR exits from deep power-down mode immed - ately after PWRCTL.deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDEC specification is 500us. Unit: Mul - iples of 4096 clocks. Present only in designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_T_DPD_X4096 0x84 - - After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into power-down. This must be enabled in th - PWRCTL.powerdown_en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. - PSU_DDRC_PWRTMG_POWERDOWN_TO_X32 0x10 - - Low Power Timing Register - (OFFSET, MASK, VALUE) (0XFD070034, 0x00FFFF1FU ,0x00408410U) - RegMask = (DDRC_PWRTMG_SELFREF_TO_X32_MASK | DDRC_PWRTMG_T_DPD_X4096_MASK | DDRC_PWRTMG_POWERDOWN_TO_X32_MASK | 0 ); - - RegVal = ((0x00000040U << DDRC_PWRTMG_SELFREF_TO_X32_SHIFT - | 0x00000084U << DDRC_PWRTMG_T_DPD_X4096_SHIFT - | 0x00000010U << DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PWRTMG_OFFSET ,0x00FFFF1FU ,0x00408410U); - /*############################################################################################################################ */ - - /*Register : RFSHCTL0 @ 0XFD070050

      - - Threshold value in number of clock cycles before the critical refresh or page timer expires. A critical refresh is to be issu - d before this threshold is reached. It is recommended that this not be changed from the default value, currently shown as 0x2 - It must always be less than internally used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally used t_rfc_nom_x32 - may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating is enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_ - om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clocks. - PSU_DDRC_RFSHCTL0_REFRESH_MARGIN 0x2 - - If the refresh timer (tRFCnom, also known as tREFI) has expired at least once, but it has not expired (RFSHCTL0.refresh_burst - 1) times yet, then a speculative refresh may be performed. A speculative refresh is a refresh performed at a time when refres - would be useful, but before it is absolutely required. When the SDRAM bus is idle for a period of time determined by this RF - HCTL0.refresh_to_x32 and the refresh timer has expired at least once since the last refresh, then a speculative refresh is pe - formed. Speculative refreshes continues successively until there are no refreshes pending or until new reads or writes are is - ued to the uMCTL2. FOR PERFORMANCE ONLY. - PSU_DDRC_RFSHCTL0_REFRESH_TO_X32 0x10 - - The programmed value + 1 is the number of refresh timeouts that is allowed to accumulate before traffic is blocked and the re - reshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of re - reshes. Therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for - RFSHCTL.refresh_burst slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshe - . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh For information on burst refresh feature refer to se - tion 3.9 of DDR2 JEDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always per-rank and not per-bank. The rank r - fresh can be accumulated over 8*tREFI cycles using the burst refresh feature. In DDR4 mode, according to Fine Granularity fea - ure, 8 refreshes can be postponed in 1X mode, 16 refreshes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upd - tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ensure that tRFCmax is not violated due to a PHY-initiat - d update occurring shortly before a refresh burst was due. In this situation, the refresh burst will be delayed until the PHY - initiated update is complete. - PSU_DDRC_RFSHCTL0_REFRESH_BURST 0x0 - - - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows traffic to flow to other banks. Per bank refresh is n - t supported by all LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Present only in designs configured to - support LPDDR2/LPDDR3/LPDDR4 - PSU_DDRC_RFSHCTL0_PER_BANK_REFRESH 0x0 - - Refresh Control Register 0 - (OFFSET, MASK, VALUE) (0XFD070050, 0x00F1F1F4U ,0x00210000U) - RegMask = (DDRC_RFSHCTL0_REFRESH_MARGIN_MASK | DDRC_RFSHCTL0_REFRESH_TO_X32_MASK | DDRC_RFSHCTL0_REFRESH_BURST_MASK | DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT - | 0x00000010U << DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT - | 0x00000000U << DDRC_RFSHCTL0_REFRESH_BURST_SHIFT - | 0x00000000U << DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHCTL0_OFFSET ,0x00F1F1F4U ,0x00210000U); - /*############################################################################################################################ */ - - /*Register : RFSHCTL3 @ 0XFD070060

      - - Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fixed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x ( - ot supported) - 110 - Enable on the fly 4x (not supported) - Everything else - reserved Note: The on-the-fly modes is not sup - orted in this version of the uMCTL2. Note: This must be set up while the Controller is in reset or while the Controller is in - self-refresh mode. Changing this during normal operation is not allowed. Making this a dynamic register will be supported in - uture version of the uMCTL2. - PSU_DDRC_RFSHCTL3_REFRESH_MODE 0x0 - - Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that the refresh register(s) have been updated. The value - s automatically updated when exiting reset, so it does not need to be toggled initially. - PSU_DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL 0x0 - - When '1', disable auto-refresh generated by the uMCTL2. When auto-refresh is disabled, the SoC core must generate refreshes u - ing the registers reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh and reg_ddrc_rank3_refresh. When dis - auto_refresh transitions from 0 to 1, any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 CRC/parity retry - is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), disable auto-refresh is not supported, and this bit must be set to '0'. - his register field is changeable on the fly. - PSU_DDRC_RFSHCTL3_DIS_AUTO_REFRESH 0x1 - - Refresh Control Register 3 - (OFFSET, MASK, VALUE) (0XFD070060, 0x00000073U ,0x00000001U) - RegMask = (DDRC_RFSHCTL3_REFRESH_MODE_MASK | DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK | DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_RFSHCTL3_REFRESH_MODE_SHIFT - | 0x00000000U << DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT - | 0x00000001U << DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHCTL3_OFFSET ,0x00000073U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : RFSHTMG @ 0XFD070064

      - - tREFI: Average time interval between refreshes per rank (Specification: 7.8us for DDR2, DDR3 and DDR4. See JEDEC specificatio - for mDDR, LPDDR2, LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refreshes (RFSHCTL0.per_bank_refresh = 0 - , this register should be set to tREFIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this register should - e set to tREFIpb For configurations with MEMC_FREQ_RATIO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI va - ue is different depending on the refresh mode. The user should program the appropriate value from the spec based on the value - programmed in the refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be greater than RFSHTMG.t_rfc_min, and RFS - TMG.t_rfc_nom_x32 must be greater than 0x1. Unit: Multiples of 32 clocks. - PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x82 - - Used only when LPDDR3 memory type is connected. Should only be changed when uMCTL2 is in reset. Specifies whether to use the - REFBW parameter (required by some LPDDR3 devices which comply with earlier versions of the LPDDR3 JEDEC specification) or not - - 0 - tREFBW parameter not used - 1 - tREFBW parameter used - PSU_DDRC_RFSHTMG_LPDDR3_TREFBW_EN 0x1 - - tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_FREQ_RATIO=1 configurations, t_rfc_min should be set t - RoundUp(tRFCmin/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to RoundUp(RoundUp(tRFCmin/tCK)/2). In L - DDR2/LPDDR3/LPDDR4 mode: - if using all-bank refreshes, the tRFCmin value in the above equations is equal to tRFCab - if usin - per-bank refreshes, the tRFCmin value in the above equations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above - equations is different depending on the refresh mode (fixed 1X,2X,4X) and the device density. The user should program the app - opriate value from the spec based on the 'refresh_mode' and the device density that is used. Unit: Clocks. - PSU_DDRC_RFSHTMG_T_RFC_MIN 0x8b - - Refresh Timing Register - (OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0082808BU) - RegMask = (DDRC_RFSHTMG_T_RFC_NOM_X32_MASK | DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK | DDRC_RFSHTMG_T_RFC_MIN_MASK | 0 ); - - RegVal = ((0x00000082U << DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT - | 0x00000001U << DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT - | 0x0000008BU << DDRC_RFSHTMG_T_RFC_MIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RFSHTMG_OFFSET ,0x0FFF83FFU ,0x0082808BU); - /*############################################################################################################################ */ - - /*Register : ECCCFG0 @ 0XFD070070

      - - Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_USE_RMW is defined - PSU_DDRC_ECCCFG0_DIS_SCRUB 0x1 - - ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED over 1 beat - all other settings are reserved for futur - use - PSU_DDRC_ECCCFG0_ECC_MODE 0x0 - - ECC Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070070, 0x00000017U ,0x00000010U) - RegMask = (DDRC_ECCCFG0_DIS_SCRUB_MASK | DDRC_ECCCFG0_ECC_MODE_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_ECCCFG0_DIS_SCRUB_SHIFT - | 0x00000000U << DDRC_ECCCFG0_ECC_MODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ECCCFG0_OFFSET ,0x00000017U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : ECCCFG1 @ 0XFD070074

      - - Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) data poisoning, if 1 -> 1-bit (correctable) data poison - ng, if ECCCFG1.data_poison_en=1 - PSU_DDRC_ECCCFG1_DATA_POISON_BIT 0x0 - - Enable ECC data poisoning - introduces ECC errors on writes to address specified by the ECCPOISONADDR0/1 registers - PSU_DDRC_ECCCFG1_DATA_POISON_EN 0x0 - - ECC Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070074, 0x00000003U ,0x00000000U) - RegMask = (DDRC_ECCCFG1_DATA_POISON_BIT_MASK | DDRC_ECCCFG1_DATA_POISON_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT - | 0x00000000U << DDRC_ECCCFG1_DATA_POISON_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ECCCFG1_OFFSET ,0x00000003U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CRCPARCTL1 @ 0XFD0700C4

      - - The maximum number of DFI PHY clock cycles allowed from the assertion of the dfi_rddata_en signal to the assertion of each of - the corresponding bits of the dfi_rddata_valid signal. This corresponds to the DFI timing parameter tphy_rdlat. Refer to PHY - pecification for correct value. This value it only used for detecting read data timeout when DDR4 retry is enabled by CRCPARC - L1.crc_parity_retry_enable=1. Maximum supported value: - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ - dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mo - e ANDAND DFITMG0.dfi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_rdlat < 'd114 Unit: DFI Clocks - PSU_DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT 0x10 - - After a Parity or CRC error is flagged on dfi_alert_n signal, the software has an option to read the mode registers in the DR - M before the hardware begins the retry process - 1: Wait for software to read/write the mode registers before hardware begins - the retry. After software is done with its operations, it will clear the alert interrupt register bit - 0: Hardware can begin - the retry right away after the dfi_alert_n pulse goes away. The value on this register is valid only when retry is enabled (P - RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if the software doesn't clear the interrupt register afte - handling the parity/CRC error, then the hardware will not begin the retry process and the system will hang. In the case of P - rity/CRC error, there are two possibilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persistent parity' mode re - ister bit is NOT set: the commands sent during retry and normal operation are executed without parity checking. The value in - he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent parity' mode register bit is SET: Parity checking is - one for commands sent during retry and normal operation. If multiple errors occur before MR5[4] is cleared, the error log in - PR Page 1 should be treated as 'Don't care'. - PSU_DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW 0x1 - - - 1: Enable command retry mechanism in case of C/A Parity or CRC error - 0: Disable command retry mechanism when C/A Parity o - CRC features are enabled. Note that retry functionality is not supported if burst chop is enabled (MSTR.burstchop = 1) and/o - disable auto-refresh is enabled (RFSHCTL3.dis_auto_refresh = 1) - PSU_DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE 0x0 - - CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC not includes DM signal Present only in designs configur - d to support DDR4. - PSU_DDRC_CRCPARCTL1_CRC_INC_DM 0x0 - - CRC enable Register - 1: Enable generation of CRC - 0: Disable generation of CRC The setting of this register should match th - CRC mode register setting in the DRAM. - PSU_DDRC_CRCPARCTL1_CRC_ENABLE 0x0 - - C/A Parity enable register - 1: Enable generation of C/A parity and detection of C/A parity error - 0: Disable generation of - /A parity and disable detection of C/A parity error If RCD's parity error detection or SDRAM's parity detection is enabled, t - is register should be 1. - PSU_DDRC_CRCPARCTL1_PARITY_ENABLE 0x0 - - CRC Parity Control Register1 - (OFFSET, MASK, VALUE) (0XFD0700C4, 0x3F000391U ,0x10000200U) - RegMask = (DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK | DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK | DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK | DDRC_CRCPARCTL1_CRC_INC_DM_MASK | DDRC_CRCPARCTL1_CRC_ENABLE_MASK | DDRC_CRCPARCTL1_PARITY_ENABLE_MASK | 0 ); - - RegVal = ((0x00000010U << DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT - | 0x00000001U << DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT - | 0x00000000U << DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_CRCPARCTL1_OFFSET ,0x3F000391U ,0x10000200U); - /*############################################################################################################################ */ - - /*Register : CRCPARCTL2 @ 0XFD0700C8

      - - Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a parity error occurs. Recommended values - - tPAR_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT_PW.MAX/2 and round up to next inte - er value. Values of 0, 1 and 2 are illegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. - PSU_DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX 0x40 - - Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a CRC error occurs. Recommended values: - - tCRC_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW.MAX/2 and round up to next integer - value. Values of 0, 1 and 2 are illegal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. - PSU_DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX 0x5 - - Indicates the maximum duration in number of DRAM clock cycles for which a command should be held in the Command Retry FIFO be - ore it is popped out. Every location in the Command Retry FIFO has an associated down counting timer that will use this regis - er as the start value. The down counting starts when a command is loaded into the FIFO. The timer counts down every 4 DRAM cy - les. When the counter reaches zero, the entry is popped from the FIFO. All the counters are frozen, if a C/A Parity or CRC er - or occurs before the counter reaches zero. The counter is reset to 0, after all the commands in the FIFO are retried. Recomme - ded(minimum) values: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + tPAR_ALERT_ON - max + tPAR_UNKNOWN + PHY Alert Latency(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enabled/ Only CRC is en - bled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) - + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be in terms of DRAM Clock and round up Note 2: Board de - ay(Command/Alert_n) should be considered. Note 3: Use the worst case(longer) value for PHY Latencies/Board delay Note 4: The - ecommended values are minimum value to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max value can be set - to this register is defined below: - MEMC_BURST_LENGTH == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH- - Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_D - PTH-4 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CM - _FIFO_DEPTH-8 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 Full bus Mode (C - C=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mo - e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarte - bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEP - H-6 Values of 0, 1 and 2 are illegal. - PSU_DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4 0x1f - - CRC Parity Control Register2 - (OFFSET, MASK, VALUE) (0XFD0700C8, 0x01FF1F3FU ,0x0040051FU) - RegMask = (DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK | DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK | DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK | 0 ); - - RegVal = ((0x00000040U << DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT - | 0x00000005U << DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT - | 0x0000001FU << DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_CRCPARCTL2_OFFSET ,0x01FF1F3FU ,0x0040051FU); - /*############################################################################################################################ */ - - /*Register : INIT0 @ 0XFD0700D0

      - - If lower bit is enabled the SDRAM initialization routine is skipped. The upper bit decides what state the controller starts u - in when reset is removed - 00 - SDRAM Intialization routine is run after power-up - 01 - SDRAM Intialization routine is skip - ed after power-up. Controller starts up in Normal Mode - 11 - SDRAM Intialization routine is skipped after power-up. Controll - r starts up in Self-refresh Mode - 10 - SDRAM Intialization routine is run after power-up. Note: The only 2'b00 is supported - or LPDDR4 in this version of the uMCTL2. - PSU_DDRC_INIT0_SKIP_DRAM_INIT 0x0 - - Cycles to wait after driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clocks. DDR2 typically requires - 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDDR3 typically requires this to be pr - grammed for a delay of 200 us. LPDDR4 typically requires this to be programmed for a delay of 2 us. For configurations with M - MC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it up to next integer value. - PSU_DDRC_INIT0_POST_CKE_X1024 0x2 - - Cycles to wait after reset before driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clock cycles. DDR2 - pecifications typically require this to be programmed for a delay of >= 200 us. LPDDR2/LPDDR3: tINIT1 of 100 ns (min) LPDDR4: - tINIT3 of 2 ms (min) For configurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it u - to next integer value. - PSU_DDRC_INIT0_PRE_CKE_X1024 0x106 - - SDRAM Initialization Register 0 - (OFFSET, MASK, VALUE) (0XFD0700D0, 0xC3FF0FFFU ,0x00020106U) - RegMask = (DDRC_INIT0_SKIP_DRAM_INIT_MASK | DDRC_INIT0_POST_CKE_X1024_MASK | DDRC_INIT0_PRE_CKE_X1024_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_INIT0_SKIP_DRAM_INIT_SHIFT - | 0x00000002U << DDRC_INIT0_POST_CKE_X1024_SHIFT - | 0x00000106U << DDRC_INIT0_PRE_CKE_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT0_OFFSET ,0xC3FF0FFFU ,0x00020106U); - /*############################################################################################################################ */ - - /*Register : INIT1 @ 0XFD0700D4

      - - Number of cycles to assert SDRAM reset signal during init sequence. This is only present for designs supporting DDR3, DDR4 or - LPDDR4 devices. For use with a DDR PHY, this should be set to a minimum of 1 - PSU_DDRC_INIT1_DRAM_RSTN_X1024 0x2 - - Cycles to wait after completing the SDRAM initialization sequence before starting the dynamic scheduler. Unit: Counts of a gl - bal timer that pulses every 32 clock cycles. There is no known specific requirement for this; it may be set to zero. - PSU_DDRC_INIT1_FINAL_WAIT_X32 0x0 - - Wait period before driving the OCD complete command to SDRAM. Unit: Counts of a global timer that pulses every 32 clock cycle - . There is no known specific requirement for this; it may be set to zero. - PSU_DDRC_INIT1_PRE_OCD_X32 0x0 - - SDRAM Initialization Register 1 - (OFFSET, MASK, VALUE) (0XFD0700D4, 0x01FF7F0FU ,0x00020000U) - RegMask = (DDRC_INIT1_DRAM_RSTN_X1024_MASK | DDRC_INIT1_FINAL_WAIT_X32_MASK | DDRC_INIT1_PRE_OCD_X32_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_INIT1_DRAM_RSTN_X1024_SHIFT - | 0x00000000U << DDRC_INIT1_FINAL_WAIT_X32_SHIFT - | 0x00000000U << DDRC_INIT1_PRE_OCD_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT1_OFFSET ,0x01FF7F0FU ,0x00020000U); - /*############################################################################################################################ */ - - /*Register : INIT2 @ 0XFD0700D8

      - - Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Unit: 32 clock cycles. - PSU_DDRC_INIT2_IDLE_AFTER_RESET_X32 0x23 - - Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2/LPDDR3. Unit: 1 clock cyc - e. LPDDR2/LPDDR3 typically requires 5 x tCK delay. - PSU_DDRC_INIT2_MIN_STABLE_CLOCK_X1 0x5 - - SDRAM Initialization Register 2 - (OFFSET, MASK, VALUE) (0XFD0700D8, 0x0000FF0FU ,0x00002305U) - RegMask = (DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK | DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK | 0 ); - - RegVal = ((0x00000023U << DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT - | 0x00000005U << DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT2_OFFSET ,0x0000FF0FU ,0x00002305U); - /*############################################################################################################################ */ - - /*Register : INIT3 @ 0XFD0700DC

      - - DDR2: Value to write to MR register. Bit 8 is for DLL and the setting here is ignored. The uMCTL2 sets this bit appropriately - DDR3/DDR4: Value loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LPDDR3/LPDDR4 - Value to write to MR1 - register - PSU_DDRC_INIT3_MR 0x930 - - DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setting in this register is ignored. The uMCTL2 sets those - bits appropriately. DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evaluation mode training is enabled, thi - bit is set appropriately by the uMCTL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/LPDDR3/LPDDR4 - V - lue to write to MR2 register - PSU_DDRC_INIT3_EMR 0x301 - - SDRAM Initialization Register 3 - (OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x09300301U) - RegMask = (DDRC_INIT3_MR_MASK | DDRC_INIT3_EMR_MASK | 0 ); - - RegVal = ((0x00000930U << DDRC_INIT3_MR_SHIFT - | 0x00000301U << DDRC_INIT3_EMR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT3_OFFSET ,0xFFFFFFFFU ,0x09300301U); - /*############################################################################################################################ */ - - /*Register : INIT4 @ 0XFD0700E0

      - - DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 - egister mDDR: Unused - PSU_DDRC_INIT4_EMR2 0x20 - - DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to - rite to MR13 register - PSU_DDRC_INIT4_EMR3 0x200 - - SDRAM Initialization Register 4 - (OFFSET, MASK, VALUE) (0XFD0700E0, 0xFFFFFFFFU ,0x00200200U) - RegMask = (DDRC_INIT4_EMR2_MASK | DDRC_INIT4_EMR3_MASK | 0 ); - - RegVal = ((0x00000020U << DDRC_INIT4_EMR2_SHIFT - | 0x00000200U << DDRC_INIT4_EMR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT4_OFFSET ,0xFFFFFFFFU ,0x00200200U); - /*############################################################################################################################ */ - - /*Register : INIT5 @ 0XFD0700E4

      - - ZQ initial calibration, tZQINIT. Present only in designs configured to support DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock - ycles. DDR3 typically requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requires 1 us. - PSU_DDRC_INIT5_DEV_ZQINIT_X32 0x21 - - Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2/LPDDR3. LPDDR2/LPDD - 3 typically requires 10 us. - PSU_DDRC_INIT5_MAX_AUTO_INIT_X1024 0x4 - - SDRAM Initialization Register 5 - (OFFSET, MASK, VALUE) (0XFD0700E4, 0x00FF03FFU ,0x00210004U) - RegMask = (DDRC_INIT5_DEV_ZQINIT_X32_MASK | DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK | 0 ); - - RegVal = ((0x00000021U << DDRC_INIT5_DEV_ZQINIT_X32_SHIFT - | 0x00000004U << DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT5_OFFSET ,0x00FF03FFU ,0x00210004U); - /*############################################################################################################################ */ - - /*Register : INIT6 @ 0XFD0700E8

      - - DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs only. - PSU_DDRC_INIT6_MR4 0x0 - - DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs only. - PSU_DDRC_INIT6_MR5 0x6c0 - - SDRAM Initialization Register 6 - (OFFSET, MASK, VALUE) (0XFD0700E8, 0xFFFFFFFFU ,0x000006C0U) - RegMask = (DDRC_INIT6_MR4_MASK | DDRC_INIT6_MR5_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_INIT6_MR4_SHIFT - | 0x000006C0U << DDRC_INIT6_MR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT6_OFFSET ,0xFFFFFFFFU ,0x000006C0U); - /*############################################################################################################################ */ - - /*Register : INIT7 @ 0XFD0700EC

      - - DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs only. - PSU_DDRC_INIT7_MR6 0x819 - - SDRAM Initialization Register 7 - (OFFSET, MASK, VALUE) (0XFD0700EC, 0xFFFF0000U ,0x08190000U) - RegMask = (DDRC_INIT7_MR6_MASK | 0 ); - - RegVal = ((0x00000819U << DDRC_INIT7_MR6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_INIT7_OFFSET ,0xFFFF0000U ,0x08190000U); - /*############################################################################################################################ */ - - /*Register : DIMMCTL @ 0XFD0700F0

      - - Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enab - ed. This will be required for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapped. - 0 - BG0 and BG1 are swapped i - address mirroring is enabled. - PSU_DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING 0x0 - - Enable for BG1 bit of MRS command. BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output - nversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit. Note: This has no - effect on the address of any other memory accesses, or of software-driven mode register accesses. If address mirroring is ena - led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - Enabled - 0 - Disabled - PSU_DDRC_DIMMCTL_MRS_BG1_EN 0x1 - - Enable for A17 bit of MRS command. A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, - his must be set to 0, so that the calculation of CA parity will not include A17 bit. Note: This has no effect on the address - f any other memory accesses, or of software-driven mode register accesses. - 1 - Enabled - 0 - Disabled - PSU_DDRC_DIMMCTL_MRS_A17_EN 0x0 - - Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIMM implements the Output Inversion feature by default, - which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, - A0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the uMCTL2 during the automatic initi - lization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. - or B-side mode register accesses, these bits are inverted within the uMCTL2 to compensate for this RDIMM inversion. Note: Thi - has no effect on the address of any other memory accesses, or of software-driven mode register accesses. - 1 - Implement out - ut inversion for B-side DRAMs. - 0 - Do not implement output inversion for B-side DRAMs. - PSU_DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN 0x0 - - Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations). Some UDIMMs and DD - 4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits - re swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures t - at, for mode register accesses during the automatic initialization routine, these bits are swapped within the uMCTL2 to compe - sate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they ar - swapped during the automatic MRS access to enable/disable of a particular DDR4 feature. Note: This has no effect on the addr - ss of any other memory accesses, or of software-driven mode register accesses. This is not supported for mDDR, LPDDR2, LPDDR3 - or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, - hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ranks, implement address mirroring for MRS commands to d - ring initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring) - 0 - Do - not implement address mirroring - PSU_DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN 0x0 - - Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only). This is not supported for mD - R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of software driven MR commands (via M - CTRL0/MRCTRL1), where software is responsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Send MRS commands t - each ranks seperately - 1 - (non-DDR4) Send all commands to even and odd ranks seperately - 0 - Do not stagger accesses - PSU_DDRC_DIMMCTL_DIMM_STAGGER_CS_EN 0x0 - - DIMM Control Register - (OFFSET, MASK, VALUE) (0XFD0700F0, 0x0000003FU ,0x00000010U) - RegMask = (DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK | DDRC_DIMMCTL_MRS_BG1_EN_MASK | DDRC_DIMMCTL_MRS_A17_EN_MASK | DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK | DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK | DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT - | 0x00000001U << DDRC_DIMMCTL_MRS_BG1_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_MRS_A17_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT - | 0x00000000U << DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DIMMCTL_OFFSET ,0x0000003FU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : RANKCTL @ 0XFD0700F4

      - - Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e writes to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should c - nsider both PHY requirement and ODT requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for value of tphy_wrcs - ap) If CRC feature is enabled, should be increased by 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increa - ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be increased by 1. - ODT requirement: The value programmed - n this register takes care of the ODT switch off timing requirement when switching ranks during writes. For LPDDR4, the requi - ement is ODTLoff - ODTLon - BL/2 + 1 For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY requirement - or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and round it u - to the next integer. - PSU_DDRC_RANKCTL_DIFF_RANK_WR_GAP 0x6 - - Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e reads to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should co - sider both PHY requirement and ODT requirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for value of tphy_rdcsg - p) If read preamble is set to 2tCK(DDR4/LPDDR4 only), should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 onl - ), should be increased by 1. - ODT requirement: The value programmed in this register takes care of the ODT switch off timing - requirement when switching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY r - quirement or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and - ound it up to the next integer. - PSU_DDRC_RANKCTL_DIFF_RANK_RD_GAP 0x6 - - Only present for multi-rank configurations. Background: Reads to the same rank can be performed back-to-back. Reads to differ - nt ranks require additional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is to avoid possible data bus content - on as well as to give PHY enough time to switch the delay when changing ranks. The uMCTL2 arbitrates for bus access on a cycl - -by-cycle basis; therefore after a read is scheduled, there are few clock cycles (determined by the value on RANKCTL.diff_ran - _rd_gap register) in which only reads from the same rank are eligible to be scheduled. This prevents reads from other ranks f - om having fair access to the data bus. This parameter represents the maximum number of reads that can be scheduled consecutiv - ly to the same rank. After this number is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by the scheduler to - llow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fair - ess. This feature can be DISABLED by setting this register to 0. When set to 0, the Controller will stay on the same rank as - ong as commands are available for it. Minimum programmable value is 0 (feature disabled) and maximum programmable value is 0x - . FOR PERFORMANCE ONLY. - PSU_DDRC_RANKCTL_MAX_RANK_RD 0xf - - Rank Control Register - (OFFSET, MASK, VALUE) (0XFD0700F4, 0x00000FFFU ,0x0000066FU) - RegMask = (DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK | DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK | DDRC_RANKCTL_MAX_RANK_RD_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT - | 0x00000006U << DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT - | 0x0000000FU << DDRC_RANKCTL_MAX_RANK_RD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_RANKCTL_OFFSET ,0x00000FFFU ,0x0000066FU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG0 @ 0XFD070100

      - - Minimum time between write and precharge to same bank. Unit: Clocks Specifications: WL + BL/2 + tWR = approximately 8 cycles - 15 ns = 14 clocks @400MHz and less for lower frequencies where: - WL = write latency - BL = burst length. This must match th - value programmed in the BL bit of the mode register to the SDRAM. BST (burst terminate) is not supported at present. - tWR = - Write recovery time. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this - arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For configurations - with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer value. - PSU_DDRC_DRAMTMG0_WR2PRE 0x11 - - tFAW Valid only when 8 or more banks(or banks x bank groups) are present. In 8-bank design, at most 4 banks must be activated - in a rolling window of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program this to (tFAW/2) and round up to next - nteger value. In a 4-bank design, set this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. Unit: Clocks - PSU_DDRC_DRAMTMG0_T_FAW 0xc - - tRAS(max): Maximum time between activate and precharge to same bank. This is the maximum time that a page can be kept open Mi - imum value of this register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO=2, program this to (tRAS(max)-1)/2 - No rounding up. Unit: Multiples of 1024 clocks. - PSU_DDRC_DRAMTMG0_T_RAS_MAX 0x24 - - tRAS(min): Minimum time between activate and precharge to the same bank. For configurations with MEMC_FREQ_RATIO=2, 1T mode, - rogram this to tRAS(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, program this t - (tRAS(min)/2) and round it up to the next integer value. Unit: Clocks - PSU_DDRC_DRAMTMG0_T_RAS_MIN 0x12 - - SDRAM Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x110C2412U) - RegMask = (DDRC_DRAMTMG0_WR2PRE_MASK | DDRC_DRAMTMG0_T_FAW_MASK | DDRC_DRAMTMG0_T_RAS_MAX_MASK | DDRC_DRAMTMG0_T_RAS_MIN_MASK | 0 ); - - RegVal = ((0x00000011U << DDRC_DRAMTMG0_WR2PRE_SHIFT - | 0x0000000CU << DDRC_DRAMTMG0_T_FAW_SHIFT - | 0x00000024U << DDRC_DRAMTMG0_T_RAS_MAX_SHIFT - | 0x00000012U << DDRC_DRAMTMG0_T_RAS_MIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG0_OFFSET ,0x7F3F7F3FU ,0x110C2412U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG1 @ 0XFD070104

      - - tXP: Minimum time after power-down exit to any operation. For DDR3, this should be programmed to tXPDLL if slow powerdown exi - is selected in MR0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For configurations with MEMC_FREQ_RATIO=2, - rogram this to (tXP/2) and round it up to the next integer value. Units: Clocks - PSU_DDRC_DRAMTMG1_T_XP 0x4 - - tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL/2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - D - R4: Max of following two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 - LPDDR2: Depends on if it's LPDDR2 - S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + tRTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) - 4 - LPDDR4: BL - 2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For conf - gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer val - e. Unit: Clocks. - PSU_DDRC_DRAMTMG1_RD2PRE 0x4 - - tRC: Minimum time between activates to same bank. For configurations with MEMC_FREQ_RATIO=2, program this to (tRC/2) and roun - up to next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG1_T_RC 0x19 - - SDRAM Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x00040419U) - RegMask = (DDRC_DRAMTMG1_T_XP_MASK | DDRC_DRAMTMG1_RD2PRE_MASK | DDRC_DRAMTMG1_T_RC_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DRAMTMG1_T_XP_SHIFT - | 0x00000004U << DDRC_DRAMTMG1_RD2PRE_SHIFT - | 0x00000019U << DDRC_DRAMTMG1_T_RC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG1_OFFSET ,0x001F1F7FU ,0x00040419U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG2 @ 0XFD070108

      - - Set to WL Time from write command to write data on SDRAM interface. This must be set to WL. For mDDR, it should normally be s - t to 1. Note that, depending on the PHY, if using RDIMM, it may be necessary to use a value of WL + 1 to compensate for the e - tra cycle of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above - equation by 2, and round it up to next integer. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAININ - is set), as the DFI read and write latencies defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks - PSU_DDRC_DRAMTMG2_WRITE_LATENCY 0x7 - - Set to RL Time from read command to read data on SDRAM interface. This must be set to RL. Note that, depending on the PHY, if - using RDIMM, it mat be necessary to use a value of RL + 1 to compensate for the extra cycle of latency through the RDIMM For - onfigurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next inte - er. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAINING is set), as the DFI read and write latenci - s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks - PSU_DDRC_DRAMTMG2_READ_LATENCY 0x8 - - DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL LPDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL - PDDR4(DQ ODT is Disabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL LPDDR4(DQ ODT is Enabled) : RL + B - /2 + RU(tDQSCKmax/tCK) + RD_POSTAMBLE - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write command. Include - time for bus turnaround and all per-bank, per-rank, and global constraints. Unit: Clocks. Where: - WL = write latency - BL = - urst length. This must match the value programmed in the BL bit of the mode register to the SDRAM - RL = read latency = CAS l - tency - WR_PREAMBLE = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = read postamble. This is unique to L - DDR4. For LPDDR2/LPDDR3/LPDDR4, if derating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should be used. For conf - gurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG2_RD2WR 0x6 - - DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimum time from write command to read command for same ba - k group. In others, minimum time from write command to read command. Includes time for bus turnaround, recovery times, and al - per-bank, per-rank, and global constraints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burs - length. This must match the value programmed in the BL bit of the mode register to the SDRAM - tWTR_L = internal write to re - d command delay for same bank group. This comes directly from the SDRAM specification. - tWTR = internal write to read comman - delay. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 operation. For configu - ations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG2_WR2RD 0xe - - SDRAM Timing Register 2 - (OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060EU) - RegMask = (DDRC_DRAMTMG2_WRITE_LATENCY_MASK | DDRC_DRAMTMG2_READ_LATENCY_MASK | DDRC_DRAMTMG2_RD2WR_MASK | DDRC_DRAMTMG2_WR2RD_MASK | 0 ); - - RegVal = ((0x00000007U << DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT - | 0x00000008U << DDRC_DRAMTMG2_READ_LATENCY_SHIFT - | 0x00000006U << DDRC_DRAMTMG2_RD2WR_SHIFT - | 0x0000000EU << DDRC_DRAMTMG2_WR2RD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG2_OFFSET ,0x3F3F3F3FU ,0x0708060EU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG3 @ 0XFD07010C

      - - Time to wait after a mode register write or read (MRW or MRR). Present only in designs configured to support LPDDR2, LPDDR3 o - LPDDR4. LPDDR2 typically requires value of 5. LPDDR3 typically requires value of 10. LPDDR4: Set this to the larger of tMRW - nd tMRWCKEL. For LPDDR2, this register is used for the time from a MRW/MRR to all other commands. For LDPDR3, this register i - used for the time from a MRW/MRR to a MRW/MRR. - PSU_DDRC_DRAMTMG3_T_MRW 0x5 - - tMRD: Cycles to wait after a mode register write or read. Depending on the connected SDRAM, tMRD represents: DDR2/mDDR: Time - rom MRS to any command DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Time from MRS to non-MRS command For c - nfigurations with MEMC_FREQ_RATIO=2, program this to (tMRD/2) and round it up to the next integer value. If C/A parity for DD - 4 is used, set to tMRD_PAR(tMOD+PL) instead. - PSU_DDRC_DRAMTMG3_T_MRD 0x4 - - tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode command and following non-load mode command. If C/A pari - y for DDR4 is used, set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or tMOD/2 (rounded up to next integer - if MEMC_FREQ_RATIO=2. Note that if using RDIMM, depending on the PHY, it may be necessary to use a value of tMOD + 1 or (tMO - + 1)/2 to compensate for the extra cycle of latency applied to mode register writes by the RDIMM chip. - PSU_DDRC_DRAMTMG3_T_MOD 0xc - - SDRAM Timing Register 3 - (OFFSET, MASK, VALUE) (0XFD07010C, 0x3FF3F3FFU ,0x0050400CU) - RegMask = (DDRC_DRAMTMG3_T_MRW_MASK | DDRC_DRAMTMG3_T_MRD_MASK | DDRC_DRAMTMG3_T_MOD_MASK | 0 ); - - RegVal = ((0x00000005U << DDRC_DRAMTMG3_T_MRW_SHIFT - | 0x00000004U << DDRC_DRAMTMG3_T_MRD_SHIFT - | 0x0000000CU << DDRC_DRAMTMG3_T_MOD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG3_OFFSET ,0x3FF3F3FFU ,0x0050400CU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG4 @ 0XFD070110

      - - tRCD - tAL: Minimum time from activate to read or write command to same bank. For configurations with MEMC_FREQ_RATIO=2, prog - am this to ((tRCD - tAL)/2) and round it up to the next integer value. Minimum value allowed for this register is 1, which im - lies minimum (tRCD - tAL) value to be 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RCD 0x8 - - DDR4: tCCD_L: This is the minimum time between two reads or two writes for same bank group. Others: tCCD: This is the minimum - time between two reads or two writes. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_L/2 or tCCD/2) and rou - d it up to the next integer value. Unit: clocks. - PSU_DDRC_DRAMTMG4_T_CCD 0x3 - - DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' for same bank group. Others: tRRD: Minimum time betwee - activates from bank 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program this to (tRRD_L/2 or tRRD/2) and round - it up to the next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RRD 0x3 - - tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ_RATIO=1 configurations, t_rp should be set to RoundU - (tRP/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(tRP/tCK)/2) + 1. For MEMC_FREQ_RATIO - 2 configurations in LPDDR4, t_rp should be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. - PSU_DDRC_DRAMTMG4_T_RP 0x9 - - SDRAM Timing Register 4 - (OFFSET, MASK, VALUE) (0XFD070110, 0x1F0F0F1FU ,0x08030309U) - RegMask = (DDRC_DRAMTMG4_T_RCD_MASK | DDRC_DRAMTMG4_T_CCD_MASK | DDRC_DRAMTMG4_T_RRD_MASK | DDRC_DRAMTMG4_T_RP_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_DRAMTMG4_T_RCD_SHIFT - | 0x00000003U << DDRC_DRAMTMG4_T_CCD_SHIFT - | 0x00000003U << DDRC_DRAMTMG4_T_RRD_SHIFT - | 0x00000009U << DDRC_DRAMTMG4_T_RP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG4_OFFSET ,0x1F0F0F1FU ,0x08030309U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG5 @ 0XFD070114

      - - This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stab - e time before SRX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEH - DDR2: 1 - DDR3: tCKSRX - DDR4: - tCKSRX For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next in - eger. - PSU_DDRC_DRAMTMG5_T_CKSRX 0x6 - - This is the time after Self Refresh Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay afte - SRE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 - DDR3: max (10 ns, 5 tCK) - DDR4: - ax (10 ns, 5 tCK) For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up - to next integer. - PSU_DDRC_DRAMTMG5_T_CKSRE 0x6 - - Minimum CKE low width for Self refresh or Self refresh power down entry to exit timing in memory clock cycles. Recommended se - tings: - mDDR: tRFC - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: tCKE - DDR3: tCKE + 1 - DDR4: tCKE - 1 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next intege - . - PSU_DDRC_DRAMTMG5_T_CKESR 0x4 - - Minimum number of cycles of CKE HIGH/LOW during power-down and self refresh. - LPDDR2/LPDDR3 mode: Set this to the larger of - CKE or tCKESR - LPDDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/non-LPDDR3/non-LPDDR4 designs: Set - his to tCKE value. For configurations with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and round it up to th - next integer value. Unit: Clocks. - PSU_DDRC_DRAMTMG5_T_CKE 0x3 - - SDRAM Timing Register 5 - (OFFSET, MASK, VALUE) (0XFD070114, 0x0F0F3F1FU ,0x06060403U) - RegMask = (DDRC_DRAMTMG5_T_CKSRX_MASK | DDRC_DRAMTMG5_T_CKSRE_MASK | DDRC_DRAMTMG5_T_CKESR_MASK | DDRC_DRAMTMG5_T_CKE_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_DRAMTMG5_T_CKSRX_SHIFT - | 0x00000006U << DDRC_DRAMTMG5_T_CKSRE_SHIFT - | 0x00000004U << DDRC_DRAMTMG5_T_CKESR_SHIFT - | 0x00000003U << DDRC_DRAMTMG5_T_CKE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG5_OFFSET ,0x0F0F3F1FU ,0x06060403U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG6 @ 0XFD070118

      - - This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after - PDE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, program this to recom - ended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3 - devices. - PSU_DDRC_DRAMTMG6_T_CKDPDE 0x1 - - This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock - table time before DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, pr - gram this to recommended value divided by two and round it up to next integer. This is only present for designs supporting mD - R or LPDDR2 devices. - PSU_DDRC_DRAMTMG6_T_CKDPDX 0x1 - - This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing Clock Stop Exit. Specifies the - lock stable time before next command after Clock Stop Exit. Recommended settings: - mDDR: 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + - 2 - LPDDR4: tXP + 2 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it - p to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG6_T_CKCSX 0x4 - - SDRAM Timing Register 6 - (OFFSET, MASK, VALUE) (0XFD070118, 0x0F0F000FU ,0x01010004U) - RegMask = (DDRC_DRAMTMG6_T_CKDPDE_MASK | DDRC_DRAMTMG6_T_CKDPDX_MASK | DDRC_DRAMTMG6_T_CKCSX_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_DRAMTMG6_T_CKDPDE_SHIFT - | 0x00000001U << DDRC_DRAMTMG6_T_CKDPDX_SHIFT - | 0x00000004U << DDRC_DRAMTMG6_T_CKCSX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG6_OFFSET ,0x0F0F000FU ,0x01010004U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG7 @ 0XFD07011C

      - - This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. - ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configurations with MEMC_FREQ_RATIO=2, program t - is to recommended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or L - DDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG7_T_CKPDE 0x6 - - This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable - time before PDX. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For configurations with MEMC_FREQ_RATIO= - , program this to recommended value divided by two and round it up to next integer. This is only present for designs supporti - g mDDR or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_DRAMTMG7_T_CKPDX 0x6 - - SDRAM Timing Register 7 - (OFFSET, MASK, VALUE) (0XFD07011C, 0x00000F0FU ,0x00000606U) - RegMask = (DDRC_DRAMTMG7_T_CKPDE_MASK | DDRC_DRAMTMG7_T_CKPDX_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_DRAMTMG7_T_CKPDE_SHIFT - | 0x00000006U << DDRC_DRAMTMG7_T_CKPDX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG7_OFFSET ,0x00000F0FU ,0x00000606U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG8 @ 0XFD070120

      - - tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and Geardown mode). For configurations with MEMC_FREQ_RAT - O=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Thi - is applicable to only ZQCL/ZQCS commands. Note: Ensure this is less than or equal to t_xs_x32. - PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x4 - - tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in Self Refresh Abort. For configurations with MEMC_FREQ_ - ATIO=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: - nsure this is less than or equal to t_xs_x32. - PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x4 - - tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - bove value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DR4 SDRAMs. - PSU_DDRC_DRAMTMG8_T_XS_DLL_X32 0xd - - tXS: Exit Self Refresh to commands not requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DDR4 SDRAMs. - PSU_DDRC_DRAMTMG8_T_XS_X32 0x6 - - SDRAM Timing Register 8 - (OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x04040D06U) - RegMask = (DDRC_DRAMTMG8_T_XS_FAST_X32_MASK | DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK | DDRC_DRAMTMG8_T_XS_DLL_X32_MASK | DDRC_DRAMTMG8_T_XS_X32_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT - | 0x00000004U << DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT - | 0x0000000DU << DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT - | 0x00000006U << DDRC_DRAMTMG8_T_XS_X32_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG8_OFFSET ,0x7F7F7F7FU ,0x04040D06U); - /*############################################################################################################################ */ - - /*Register : DRAMTMG9 @ 0XFD070124

      - - DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present only with MEMC_FREQ_RATIO=2 - PSU_DDRC_DRAMTMG9_DDR4_WR_PREAMBLE 0x0 - - tCCD_S: This is the minimum time between two reads or two writes for different bank group. For bank switching (from bank 'a' - o bank 'b'), the minimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_S/2) and ro - nd it up to the next integer value. Present only in designs configured to support DDR4. Unit: clocks. - PSU_DDRC_DRAMTMG9_T_CCD_S 0x2 - - tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for different bank group. For configurations with MEMC_FREQ_ - ATIO=2, program this to (tRRD_S/2) and round it up to the next integer value. Present only in designs configured to support D - R4. Unit: Clocks. - PSU_DDRC_DRAMTMG9_T_RRD_S 0x2 - - CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command for different bank group. Includes time for bus turn - round, recovery times, and all per-bank, per-rank, and global constraints. Present only in designs configured to support DDR4 - Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burst length. This must match the value programm - d in the BL bit of the mode register to the SDRAM - tWTR_S = internal write to read command delay for different bank group. T - is comes directly from the SDRAM specification. For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using - he above equation by 2, and round it up to next integer. - PSU_DDRC_DRAMTMG9_WR2RD_S 0xb - - SDRAM Timing Register 9 - (OFFSET, MASK, VALUE) (0XFD070124, 0x40070F3FU ,0x0002020BU) - RegMask = (DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK | DDRC_DRAMTMG9_T_CCD_S_MASK | DDRC_DRAMTMG9_T_RRD_S_MASK | DDRC_DRAMTMG9_WR2RD_S_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT - | 0x00000002U << DDRC_DRAMTMG9_T_CCD_S_SHIFT - | 0x00000002U << DDRC_DRAMTMG9_T_RRD_S_SHIFT - | 0x0000000BU << DDRC_DRAMTMG9_WR2RD_S_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG9_OFFSET ,0x40070F3FU ,0x0002020BU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG11 @ 0XFD07012C

      - - tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program - this to (tXMPDLL/2) and round it up to the next integer value. Present only in designs configured to support DDR4. Unit: Mult - ples of 32 clocks. - PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x6f - - tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For configurations with MEMC_FREQ_RATIO=2, program this t - RoundUp(tMPX_LH/2)+1. Present only in designs configured to support DDR4. Unit: clocks. - PSU_DDRC_DRAMTMG11_T_MPX_LH 0x7 - - tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_FREQ_RATIO=2, program this to (tMPX_S/2) and round it - up to the next integer value. Present only in designs configured to support DDR4. Unit: Clocks. - PSU_DDRC_DRAMTMG11_T_MPX_S 0x1 - - tCKMPE: Minimum valid clock requirement after MPSM entry. Present only in designs configured to support DDR4. Unit: Clocks. F - r configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next i - teger. - PSU_DDRC_DRAMTMG11_T_CKMPE 0xe - - SDRAM Timing Register 11 - (OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x6F07010EU) - RegMask = (DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK | DDRC_DRAMTMG11_T_MPX_LH_MASK | DDRC_DRAMTMG11_T_MPX_S_MASK | DDRC_DRAMTMG11_T_CKMPE_MASK | 0 ); - - RegVal = ((0x0000006FU << DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT - | 0x00000007U << DDRC_DRAMTMG11_T_MPX_LH_SHIFT - | 0x00000001U << DDRC_DRAMTMG11_T_MPX_S_SHIFT - | 0x0000000EU << DDRC_DRAMTMG11_T_CKMPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG11_OFFSET ,0x7F1F031FU ,0x6F07010EU); - /*############################################################################################################################ */ - - /*Register : DRAMTMG12 @ 0XFD070130

      - - tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larger of tESCKE or tCMDCKE For configurations with MEMC_ - REQ_RATIO=2, program this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_CMDCKE 0x2 - - tCKEHCMD: Valid command requirement after CKE input HIGH. For configurations with MEMC_FREQ_RATIO=2, program this to (tCKEHCM - /2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_CKEHCMD 0x6 - - tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. For configurations with MEMC_FREQ_RATIO=2, program th - s to (tMRD_PDA/2) and round it up to next integer value. - PSU_DDRC_DRAMTMG12_T_MRD_PDA 0x8 - - SDRAM Timing Register 12 - (OFFSET, MASK, VALUE) (0XFD070130, 0x00030F1FU ,0x00020608U) - RegMask = (DDRC_DRAMTMG12_T_CMDCKE_MASK | DDRC_DRAMTMG12_T_CKEHCMD_MASK | DDRC_DRAMTMG12_T_MRD_PDA_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_DRAMTMG12_T_CMDCKE_SHIFT - | 0x00000006U << DDRC_DRAMTMG12_T_CKEHCMD_SHIFT - | 0x00000008U << DDRC_DRAMTMG12_T_MRD_PDA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DRAMTMG12_OFFSET ,0x00030F1FU ,0x00020608U); - /*############################################################################################################################ */ - - /*Register : ZQCTL0 @ 0XFD070180

      - - - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Register DBGCMD.zq_calib_short can be used instead to is - ue ZQ calibration request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibration) commands based on ZQCTL1.t_zq_s - ort_interval_x1024. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_DIS_AUTO_ZQ 0x1 - - - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Powerdown exit. Only applicable when run in DDR3 - or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Power - own exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present for designs suppo - ting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_DIS_SRX_ZQCL 0x0 - - - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQCL/ZQCS/MPC(ZQ calibration) commands are sent to one r - nk at a time with tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that commands to different ranks do not ov - rlap. - 0 - ZQ resistor is not shared. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_ZQ_RESISTOR_SHARED 0x0 - - - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. - 0 - Enable - ssuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. This is only present for des - gns supporting DDR4 devices. - PSU_DDRC_ZQCTL0_DIS_MPSMX_ZQCL 0x0 - - tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Number of cycles of NOP required after a ZQCL (ZQ calibrat - on long)/MPC(ZQ Start) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2: DDR3/DDR4: program this to tZQo - er/2 and round it up to the next integer value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to the next integer va - ue. LPDDR4: program this to tZQCAL/2 and round it up to the next integer value. Unit: Clock cycles. This is only present for - esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL0_T_ZQ_LONG_NOP 0x100 - - tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of NOP required after a ZQCS (ZQ calibration short)/MPC - ZQ Latch) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program this to tZQCS/2 and round it up to t - e next integer value. Unit: Clock cycles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devic - s. - PSU_DDRC_ZQCTL0_T_ZQ_SHORT_NOP 0x40 - - ZQ Control Register 0 - (OFFSET, MASK, VALUE) (0XFD070180, 0xF7FF03FFU ,0x81000040U) - RegMask = (DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK | DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK | DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK | DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK | DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK | DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT - | 0x00000000U << DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT - | 0x00000000U << DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT - | 0x00000000U << DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT - | 0x00000100U << DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT - | 0x00000040U << DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ZQCTL0_OFFSET ,0xF7FF03FFU ,0x81000040U); - /*############################################################################################################################ */ - - /*Register : ZQCTL1 @ 0XFD070184

      - - tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibration Reset) command is issued to SDRAM. For configurati - ns with MEMC_FREQ_RATIO=2, program this to tZQReset/2 and round it up to the next integer value. Unit: Clock cycles. This is - nly present for designs supporting LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL1_T_ZQ_RESET_NOP 0x20 - - Average interval to wait between automatically issuing ZQCS (ZQ calibration short)/MPC(ZQ calibration) commands to DDR3/DDR4/ - PDDR2/LPDDR3/LPDDR4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles. This is only present for designs - upporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. - PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x19707 - - ZQ Control Register 1 - (OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x02019707U) - RegMask = (DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK | DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK | 0 ); - - RegVal = ((0x00000020U << DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT - | 0x00019707U << DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ZQCTL1_OFFSET ,0x3FFFFFFFU ,0x02019707U); - /*############################################################################################################################ */ - - /*Register : DFITMG0 @ 0XFD070190

      - - Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock. - PSU_DDRC_DFITMG0_DFI_T_CTRL_DELAY 0x4 - - Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value. - PSU_DDRC_DFITMG0_DFI_RDDATA_USE_SDR 0x1 - - Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks - PSU_DDRC_DFITMG0_DFI_T_RDDATA_EN 0xb - - Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e. - PSU_DDRC_DFITMG0_DFI_WRDATA_USE_SDR 0x1 - - Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks - PSU_DDRC_DFITMG0_DFI_TPHY_WRDATA 0x2 - - Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM. - PSU_DDRC_DFITMG0_DFI_TPHY_WRLAT 0xb - - DFI Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD070190, 0x1FBFBF3FU ,0x048B820BU) - RegMask = (DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK | DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK | DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK | DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK | DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK | DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK | 0 ); - - RegVal = ((0x00000004U << DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT - | 0x00000001U << DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT - | 0x0000000BU << DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT - | 0x00000001U << DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT - | 0x00000002U << DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT - | 0x0000000BU << DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG0_OFFSET ,0x1FBFBF3FU ,0x048B820BU); - /*############################################################################################################################ */ - - /*Register : DFITMG1 @ 0XFD070194

      - - Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated command is driven. - his field is used for CAL mode, should be set to '0' or the value which matches the CAL mode register setting in the DRAM. If - the PHY can add the latency for CAL mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 - PSU_DDRC_DFITMG1_DFI_T_CMD_LAT 0x0 - - Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated dfi_parity_in signa - is driven. - PSU_DDRC_DFITMG1_DFI_T_PARIN_LAT 0x0 - - Specifies the number of DFI clocks between when the dfi_wrdata_en signal is asserted and when the corresponding write data tr - nsfer is completed on the DRAM bus. This corresponds to the DFI timing parameter twrdata_delay. Refer to PHY specification fo - correct value. For DFI 3.0 PHY, set to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI 2.1 PHY, set to - phy_wrdata + (delay of DFI write data to the DRAM). Value to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ - RATIO=2, divide PHY's value by 2 and round up to next integer. If using DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Uni - : Clocks - PSU_DDRC_DFITMG1_DFI_T_WRDATA_DELAY 0x3 - - Specifies the number of DFI clock cycles from the assertion of the dfi_dram_clk_disable signal on the DFI until the clock to - he DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase - ligned, this timing parameter should be rounded up to the next integer value. - PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE 0x3 - - Specifies the number of DFI clock cycles from the de-assertion of the dfi_dram_clk_disable signal on the DFI until the first - alid rising edge of the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the DFI clock and the memory clock are - not phase aligned, this timing parameter should be rounded up to the next integer value. - PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE 0x4 - - DFI Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD070194, 0xF31F0F0FU ,0x00030304U) - RegMask = (DDRC_DFITMG1_DFI_T_CMD_LAT_MASK | DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK | DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK | DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK | DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT - | 0x00000000U << DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT - | 0x00000003U << DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT - | 0x00000003U << DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT - | 0x00000004U << DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG1_OFFSET ,0xF31F0F0FU ,0x00030304U); - /*############################################################################################################################ */ - - /*Register : DFILPCFG0 @ 0XFD070198

      - - Setting for DFI's tlp_resp time. Same value is used for both Power Down, Self Refresh, Deep Power Down and Maximum Power Savi - g modes. DFI 2.1 specification onwards, recommends using a fixed value of 7 always. - PSU_DDRC_DFILPCFG0_DFI_TLP_RESP 0x7 - - Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 - cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - - 31072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting mDDR or LPDDR2/LPDDR3 device - . - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD 0x0 - - Enables DFI Low Power interface handshaking during Deep Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled This is only pres - nt for designs supporting mDDR or LPDDR2/LPDDR3 devices. - PSU_DDRC_DFILPCFG0_DFI_LP_EN_DPD 0x0 - - Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cy - les - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 131 - 72 cycles - 0xE - 262144 cycles - 0xF - Unlimited - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR 0x0 - - Enables DFI Low Power interface handshaking during Self Refresh Entry/Exit. - 0 - Disabled - 1 - Enabled - PSU_DDRC_DFILPCFG0_DFI_LP_EN_SR 0x1 - - Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycl - s - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 20 - 8 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 13107 - cycles - 0xE - 262144 cycles - 0xF - Unlimited - PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD 0x0 - - Enables DFI Low Power interface handshaking during Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled - PSU_DDRC_DFILPCFG0_DFI_LP_EN_PD 0x1 - - DFI Low Power Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070198, 0x0FF1F1F1U ,0x07000101U) - RegMask = (DDRC_DFILPCFG0_DFI_TLP_RESP_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK | DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK | DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK | DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK | DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK | 0 ); - - RegVal = ((0x00000007U << DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT - | 0x00000001U << DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT - | 0x00000000U << DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT - | 0x00000001U << DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFILPCFG0_OFFSET ,0x0FF1F1F1U ,0x07000101U); - /*############################################################################################################################ */ - - /*Register : DFILPCFG1 @ 0XFD07019C

      - - Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - - 16 cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0 - D - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting DDR4 devices. - PSU_DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM 0x2 - - Enables DFI Low Power interface handshaking during Maximum Power Saving Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is - only present for designs supporting DDR4 devices. - PSU_DDRC_DFILPCFG1_DFI_LP_EN_MPSM 0x1 - - DFI Low Power Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD07019C, 0x000000F1U ,0x00000021U) - RegMask = (DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK | DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT - | 0x00000001U << DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFILPCFG1_OFFSET ,0x000000F1U ,0x00000021U); - /*############################################################################################################################ */ - - /*Register : DFIUPD1 @ 0XFD0701A4

      - - This is the minimum amount of time between uMCTL2 initiated DFI update requests (which is executed whenever the uMCTL2 is idl - ). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the fir - t read request when the uMCTL2 is idle. Unit: 1024 clocks - PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024 0x41 - - This is the maximum amount of time between uMCTL2 initiated DFI update requests. This timer resets with each update request; - hen the timer expires dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd_ackx is received. PHY can use this - idle time to recalibrate the delay lines to the DLLs. The DFI controller update is also used to reset PHY FIFO pointers in ca - e of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. - Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x - 024. Unit: 1024 clocks - PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe2 - - DFI Update Register 1 - (OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E2U) - RegMask = (DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK | DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK | 0 ); - - RegVal = ((0x00000041U << DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT - | 0x000000E2U << DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFIUPD1_OFFSET ,0x00FF00FFU ,0x004100E2U); - /*############################################################################################################################ */ - - /*Register : DFIMISC @ 0XFD0701B0

      - - Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signals are active low - 1: Signals are active high - PSU_DDRC_DFIMISC_DFI_DATA_CS_POLARITY 0x0 - - DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. - 1 - PHY implements DBI functionality. Present only - in designs configured to support DDR4 and LPDDR4. - PSU_DDRC_DFIMISC_PHY_DBI_MODE 0x0 - - PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialisa - ion - PSU_DDRC_DFIMISC_DFI_INIT_COMPLETE_EN 0x0 - - DFI Miscellaneous Control Register - (OFFSET, MASK, VALUE) (0XFD0701B0, 0x00000007U ,0x00000000U) - RegMask = (DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK | DDRC_DFIMISC_PHY_DBI_MODE_MASK | DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT - | 0x00000000U << DDRC_DFIMISC_PHY_DBI_MODE_SHIFT - | 0x00000000U << DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFIMISC_OFFSET ,0x00000007U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DFITMG2 @ 0XFD0701B4

      - - >Number of clocks between when a read command is sent on the DFI control interface and when the associated dfi_rddata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY specification for correct value. - PSU_DDRC_DFITMG2_DFI_TPHY_RDCSLAT 0x9 - - Number of clocks between when a write command is sent on the DFI control interface and when the associated dfi_wrdata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY specification for correct value. - PSU_DDRC_DFITMG2_DFI_TPHY_WRCSLAT 0x6 - - DFI Timing Register 2 - (OFFSET, MASK, VALUE) (0XFD0701B4, 0x00003F3FU ,0x00000906U) - RegMask = (DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK | DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK | 0 ); - - RegVal = ((0x00000009U << DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT - | 0x00000006U << DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG2_OFFSET ,0x00003F3FU ,0x00000906U); - /*############################################################################################################################ */ - - /*Register : DBICTL @ 0XFD0701C0

      - - Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read DBI is enabled. This signal must be set the same value - as DRAM's mode register. - DDR4: MR5 bit A12. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[6] - PSU_DDRC_DBICTL_RD_DBI_EN 0x0 - - Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Write DBI is enabled. This signal must be set the same va - ue as DRAM's mode register. - DDR4: MR5 bit A11. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[7] - PSU_DDRC_DBICTL_WR_DBI_EN 0x0 - - DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. This signal must be set the same logical value as DRAM's - mode register. - DDR4: Set this to same value as MR5 bit A10. When x4 devices are used, this signal must be set to 0. - LPDDR - : Set this to inverted value of MR13[5] which is opposite polarity from this signal - PSU_DDRC_DBICTL_DM_EN 0x1 - - DM/DBI Control Register - (OFFSET, MASK, VALUE) (0XFD0701C0, 0x00000007U ,0x00000001U) - RegMask = (DDRC_DBICTL_RD_DBI_EN_MASK | DDRC_DBICTL_WR_DBI_EN_MASK | DDRC_DBICTL_DM_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBICTL_RD_DBI_EN_SHIFT - | 0x00000000U << DDRC_DBICTL_WR_DBI_EN_SHIFT - | 0x00000001U << DDRC_DBICTL_DM_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBICTL_OFFSET ,0x00000007U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP0 @ 0XFD070200

      - - Selects the HIF address bit used as rank address bit 0. Valid Range: 0 to 27, and 31 Internal Base: 6 The selected HIF addres - bit is determined by adding the internal base to the value of this field. If set to 31, rank address bit 0 is set to 0. - PSU_DDRC_ADDRMAP0_ADDRMAP_CS_BIT0 0x1f - - Address Map Register 0 - (OFFSET, MASK, VALUE) (0XFD070200, 0x0000001FU ,0x0000001FU) - RegMask = (DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK | 0 ); - - RegVal = ((0x0000001FU << DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP0_OFFSET ,0x0000001FU ,0x0000001FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP1 @ 0XFD070204

      - - Selects the HIF address bit used as bank address bit 2. Valid Range: 0 to 29 and 31 Internal Base: 4 The selected HIF address - bit is determined by adding the internal base to the value of this field. If set to 31, bank address bit 2 is set to 0. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B2 0x1f - - Selects the HIF address bits used as bank address bit 1. Valid Range: 0 to 30 Internal Base: 3 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B1 0xa - - Selects the HIF address bits used as bank address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B0 0xa - - Address Map Register 1 - (OFFSET, MASK, VALUE) (0XFD070204, 0x001F1F1FU ,0x001F0A0AU) - RegMask = (DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK | DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK | DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK | 0 ); - - RegVal = ((0x0000001FU << DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT - | 0x0000000AU << DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT - | 0x0000000AU << DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP1_OFFSET ,0x001F1F1FU ,0x001F0A0AU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP2 @ 0XFD070208

      - - - Full bus width mode: Selects the HIF address bit used as column address bit 5. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 6. - Quarter bus width mode: Selects the HIF address bit used as column address bit 7 . Vali - Range: 0 to 7, and 15 Internal Base: 5 The selected HIF address bit is determined by adding the internal base to the value o - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B5 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 4. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 5. - Quarter bus width mode: Selects the HIF address bit used as column address bit 6. Valid - Range: 0 to 7, and 15 Internal Base: 4 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B4 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 3. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 4. - Quarter bus width mode: Selects the HIF address bit used as column address bit 5. Valid - Range: 0 to 7 Internal Base: 3 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=16, it is required to program this to 0, hence register does not exist i - this case. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B3 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 2. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 3. - Quarter bus width mode: Selects the HIF address bit used as column address bit 4. Valid - Range: 0 to 7 Internal Base: 2 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 or 16, it is required to program this to 0. - PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B2 0x0 - - Address Map Register 2 - (OFFSET, MASK, VALUE) (0XFD070208, 0x0F0F0F0FU ,0x00000000U) - RegMask = (DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK | DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT - | 0x00000000U << DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP2_OFFSET ,0x0F0F0F0FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP3 @ 0XFD07020C

      - - - Full bus width mode: Selects the HIF address bit used as column address bit 9. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: Selects the HIF address bit used as - column address bit 13 (11 in LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected HIF address bit i - determined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: - er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source addr - ss bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus an - hence column bit 10 is used. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B9 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 8. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 9. - Quarter bus width mode: Selects the HIF address bit used as column address bit 11 (10 i - LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 8 The selected HIF address bit is determined by adding the i - ternal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specif - cation, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to col - mn address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is use - . - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B8 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 7. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 8. - Quarter bus width mode: Selects the HIF address bit used as column address bit 9. Valid - Range: 0 to 7, and 15 Internal Base: 7 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B7 0x0 - - - Full bus width mode: Selects the HIF address bit used as column address bit 6. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 7. - Quarter bus width mode: Selects the HIF address bit used as column address bit 8. Valid - Range: 0 to 7, and 15 Internal Base: 6 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0. - PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B6 0x0 - - Address Map Register 3 - (OFFSET, MASK, VALUE) (0XFD07020C, 0x0F0F0F0FU ,0x00000000U) - RegMask = (DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK | DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT - | 0x00000000U << DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP3_OFFSET ,0x0F0F0F0FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP4 @ 0XFD070210

      - - - Full bus width mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Unused. To make it unused, this should be tied to 4'hF. - Quarter bus width mode: Unused. To make it unused, this must - e tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 11 The selected HIF address bit is determined by adding the intern - l base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificati - n, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column a - dress bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is used. - PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B11 0xf - - - Full bus width mode: Selects the HIF address bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: UNUSED. - To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF address bit is d - termined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per - JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source address - bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and h - nce column bit 10 is used. - PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B10 0xf - - Address Map Register 4 - (OFFSET, MASK, VALUE) (0XFD070210, 0x00000F0FU ,0x00000F0FU) - RegMask = (DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK | DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK | 0 ); - - RegVal = ((0x0000000FU << DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT - | 0x0000000FU << DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP4_OFFSET ,0x00000F0FU ,0x00000F0FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP5 @ 0XFD070214

      - - Selects the HIF address bit used as row address bit 11. Valid Range: 0 to 11, and 15 Internal Base: 17 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 11 is set to 0. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B11 0x8 - - Selects the HIF address bits used as row address bits 2 to 10. Valid Range: 0 to 11, and 15 Internal Base: 8 (for row address - bit 2), 9 (for row address bit 3), 10 (for row address bit 4) etc increasing to 16 (for row address bit 10) The selected HIF - ddress bit for each of the row address bits is determined by adding the internal base to the value of this field. When value - 5 is used the values of row address bits 2 to 10 are defined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10 0xf - - Selects the HIF address bits used as row address bit 1. Valid Range: 0 to 11 Internal Base: 7 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B1 0x8 - - Selects the HIF address bits used as row address bit 0. Valid Range: 0 to 11 Internal Base: 6 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B0 0x8 - - Address Map Register 5 - (OFFSET, MASK, VALUE) (0XFD070214, 0x0F0F0F0FU ,0x080F0808U) - RegMask = (DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK | DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT - | 0x0000000FU << DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT - | 0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT - | 0x00000008U << DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP5_OFFSET ,0x0F0F0F0FU ,0x080F0808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP6 @ 0XFD070218

      - - Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address - having row[14:13]==2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. All addresses are valid Present on - y in designs configured to support LPDDR3. - PSU_DDRC_ADDRMAP6_LPDDR3_6GB_12GB 0x0 - - Selects the HIF address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 15 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B15 0xf - - Selects the HIF address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 20 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 14 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B14 0x8 - - Selects the HIF address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 19 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 13 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B13 0x8 - - Selects the HIF address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 18 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 12 is set to 0. - PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B12 0x8 - - Address Map Register 6 - (OFFSET, MASK, VALUE) (0XFD070218, 0x8F0F0F0FU ,0x0F080808U) - RegMask = (DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK | DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT - | 0x0000000FU << DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT - | 0x00000008U << DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP6_OFFSET ,0x8F0F0F0FU ,0x0F080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP7 @ 0XFD07021C

      - - Selects the HIF address bit used as row address bit 17. Valid Range: 0 to 10, and 15 Internal Base: 23 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 17 is set to 0. - PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B17 0xf - - Selects the HIF address bit used as row address bit 16. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 16 is set to 0. - PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B16 0xf - - Address Map Register 7 - (OFFSET, MASK, VALUE) (0XFD07021C, 0x00000F0FU ,0x00000F0FU) - RegMask = (DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK | DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK | 0 ); - - RegVal = ((0x0000000FU << DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT - | 0x0000000FU << DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP7_OFFSET ,0x00000F0FU ,0x00000F0FU); - /*############################################################################################################################ */ - - /*Register : ADDRMAP8 @ 0XFD070220

      - - Selects the HIF address bits used as bank group address bit 1. Valid Range: 0 to 30, and 31 Internal Base: 3 The selected HIF - address bit for each of the bank group address bits is determined by adding the internal base to the value of this field. If - et to 31, bank group address bit 1 is set to 0. - PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B1 0x8 - - Selects the HIF address bits used as bank group address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address - bit for each of the bank group address bits is determined by adding the internal base to the value of this field. - PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B0 0x8 - - Address Map Register 8 - (OFFSET, MASK, VALUE) (0XFD070220, 0x00001F1FU ,0x00000808U) - RegMask = (DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK | DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT - | 0x00000008U << DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP8_OFFSET ,0x00001F1FU ,0x00000808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP9 @ 0XFD070224

      - - Selects the HIF address bits used as row address bit 5. Valid Range: 0 to 11 Internal Base: 11 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B5 0x8 - - Selects the HIF address bits used as row address bit 4. Valid Range: 0 to 11 Internal Base: 10 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B4 0x8 - - Selects the HIF address bits used as row address bit 3. Valid Range: 0 to 11 Internal Base: 9 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B3 0x8 - - Selects the HIF address bits used as row address bit 2. Valid Range: 0 to 11 Internal Base: 8 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B2 0x8 - - Address Map Register 9 - (OFFSET, MASK, VALUE) (0XFD070224, 0x0F0F0F0FU ,0x08080808U) - RegMask = (DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK | DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT - | 0x00000008U << DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP9_OFFSET ,0x0F0F0F0FU ,0x08080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP10 @ 0XFD070228

      - - Selects the HIF address bits used as row address bit 9. Valid Range: 0 to 11 Internal Base: 15 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B9 0x8 - - Selects the HIF address bits used as row address bit 8. Valid Range: 0 to 11 Internal Base: 14 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B8 0x8 - - Selects the HIF address bits used as row address bit 7. Valid Range: 0 to 11 Internal Base: 13 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B7 0x8 - - Selects the HIF address bits used as row address bit 6. Valid Range: 0 to 11 Internal Base: 12 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B6 0x8 - - Address Map Register 10 - (OFFSET, MASK, VALUE) (0XFD070228, 0x0F0F0F0FU ,0x08080808U) - RegMask = (DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK | DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT - | 0x00000008U << DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP10_OFFSET ,0x0F0F0F0FU ,0x08080808U); - /*############################################################################################################################ */ - - /*Register : ADDRMAP11 @ 0XFD07022C

      - - Selects the HIF address bits used as row address bit 10. Valid Range: 0 to 11 Internal Base: 16 The selected HIF address bit - or each of the row address bits is determined by adding the internal base to the value of this field. This register field is - sed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15. - PSU_DDRC_ADDRMAP11_ADDRMAP_ROW_B10 0x8 - - Address Map Register 11 - (OFFSET, MASK, VALUE) (0XFD07022C, 0x0000000FU ,0x00000008U) - RegMask = (DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ADDRMAP11_OFFSET ,0x0000000FU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : ODTCFG @ 0XFD070240

      - - Cycles to hold ODT for a write command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/ - 67), 0x6 (DDR2-800), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (DDR2-1066) DDR3: - BL8: 0x6 DDR4: - - L8: 5 + WR_PREAMBLE + CRC_MODE WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 (not CRC mode), 1 - CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) - PSU_DDRC_ODTCFG_WR_ODT_HOLD 0x6 - - The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting must - remain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CWL + AL - 3 (DDR2-400/533/ - 67), CWL + AL - 4 (DDR2-800), CWL + AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT for write operation - DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) - PSU_DDRC_ODTCFG_WR_ODT_DELAY 0x0 - - Cycles to hold ODT for a read command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066) - 0x7 (DDR2-1066) - BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8: 5 + RD_PREAMBLE RD_PREAMBLE = 1 ( - tCK write preamble), 2 (2tCK write preamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + RU(tODTon(max)/tC - ) - PSU_DDRC_ODTCFG_RD_ODT_HOLD 0x6 - - The delay, in clock cycles, from issuing a read command to setting ODT values associated with that command. ODT setting must - emain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CL + AL - 4 (not DDR2-1066), - CL + AL - 5 (DDR2-1066) If (CL + AL - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - CWL DDR4: - CL - C - L - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK - write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, - uMCTL2 does not support ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - RU(tODTon(max)/tCK) - PSU_DDRC_ODTCFG_RD_ODT_DELAY 0x0 - - ODT Configuration Register - (OFFSET, MASK, VALUE) (0XFD070240, 0x0F1F0F7CU ,0x06000600U) - RegMask = (DDRC_ODTCFG_WR_ODT_HOLD_MASK | DDRC_ODTCFG_WR_ODT_DELAY_MASK | DDRC_ODTCFG_RD_ODT_HOLD_MASK | DDRC_ODTCFG_RD_ODT_DELAY_MASK | 0 ); - - RegVal = ((0x00000006U << DDRC_ODTCFG_WR_ODT_HOLD_SHIFT - | 0x00000000U << DDRC_ODTCFG_WR_ODT_DELAY_SHIFT - | 0x00000006U << DDRC_ODTCFG_RD_ODT_HOLD_SHIFT - | 0x00000000U << DDRC_ODTCFG_RD_ODT_DELAY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ODTCFG_OFFSET ,0x0F1F0F7CU ,0x06000600U); - /*############################################################################################################################ */ - - /*Register : ODTMAP @ 0XFD070244

      - - Indicates which remote ODTs must be turned on during a read from rank 1. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks - PSU_DDRC_ODTMAP_RANK1_RD_ODT 0x0 - - Indicates which remote ODTs must be turned on during a write to rank 1. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks - PSU_DDRC_ODTMAP_RANK1_WR_ODT 0x0 - - Indicates which remote ODTs must be turned on during a read from rank 0. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. - PSU_DDRC_ODTMAP_RANK0_RD_ODT 0x0 - - Indicates which remote ODTs must be turned on during a write to rank 0. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. - PSU_DDRC_ODTMAP_RANK0_WR_ODT 0x1 - - ODT/Rank Map Register - (OFFSET, MASK, VALUE) (0XFD070244, 0x00003333U ,0x00000001U) - RegMask = (DDRC_ODTMAP_RANK1_RD_ODT_MASK | DDRC_ODTMAP_RANK1_WR_ODT_MASK | DDRC_ODTMAP_RANK0_RD_ODT_MASK | DDRC_ODTMAP_RANK0_WR_ODT_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_ODTMAP_RANK1_RD_ODT_SHIFT - | 0x00000000U << DDRC_ODTMAP_RANK1_WR_ODT_SHIFT - | 0x00000000U << DDRC_ODTMAP_RANK0_RD_ODT_SHIFT - | 0x00000001U << DDRC_ODTMAP_RANK0_WR_ODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_ODTMAP_OFFSET ,0x00003333U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : SCHED @ 0XFD070250

      - - When the preferred transaction store is empty for these many clock cycles, switch to the alternate transaction store if it is - non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write t - ansaction store is the alternative store. When prefer write over read is set this is reversed. 0x0 is a legal value for this - egister. When set to 0x0, the transaction store switching will happen immediately when the switching conditions become true. - OR PERFORMANCE ONLY - PSU_DDRC_SCHED_RDWR_IDLE_GAP 0x1 - - UNUSED - PSU_DDRC_SCHED_GO2CRITICAL_HYSTERESIS 0x0 - - Number of entries in the low priority transaction store is this value + 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) i - the number of entries available for the high priority transaction store. Setting this to maximum value allocates all entries - to low priority transaction store. Setting this to 0 allocates 1 entry to low priority transaction store and the rest to high - priority transaction store. Note: In ECC configurations, the numbers of write and low priority read credits issued is one les - than in the non-ECC case. One entry each is reserved in the write and low-priority read CAMs for storing the RMW requests ar - sing out of single bit error correction RMW operation. - PSU_DDRC_SCHED_LPR_NUM_ENTRIES 0x20 - - If true, bank is kept open only while there are page hit transactions available in the CAM to that bank. The last read or wri - e command in the CAM with a bank and page hit will be executed with auto-precharge if SCHED1.pageclose_timer=0. Even if this - egister set to 1 and SCHED1.pageclose_timer is set to 0, explicit precharge (and not auto-precharge) may be issued in some ca - es where there is a mode switch between Write and Read or between LPR and HPR. The Read and Write commands that are executed - s part of the ECC scrub requests are also executed without auto-precharge. If false, the bank remains open until there is a n - ed to close it (to open a different page, or for page timeout or refresh timeout) - also known as open page policy. The open - age policy can be overridden by setting the per-command-autopre bit on the HIF interface (hif_cmd_autopre). The pageclose fea - ure provids a midway between Open and Close page policies. FOR PERFORMANCE ONLY. - PSU_DDRC_SCHED_PAGECLOSE 0x0 - - If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. - PSU_DDRC_SCHED_PREFER_WRITE 0x0 - - Active low signal. When asserted ('0'), all incoming transactions are forced to low priority. This implies that all High Prio - ity Read (HPR) and Variable Priority Read commands (VPR) will be treated as Low Priority Read (LPR) commands. On the write si - e, all Variable Priority Write (VPW) commands will be treated as Normal Priority Write (NPW) commands. Forcing the incoming t - ansactions to low priority implicitly turns off Bypass path for read commands. FOR PERFORMANCE ONLY. - PSU_DDRC_SCHED_FORCE_LOW_PRI_N 0x1 - - Scheduler Control Register - (OFFSET, MASK, VALUE) (0XFD070250, 0x7FFF3F07U ,0x01002001U) - RegMask = (DDRC_SCHED_RDWR_IDLE_GAP_MASK | DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK | DDRC_SCHED_LPR_NUM_ENTRIES_MASK | DDRC_SCHED_PAGECLOSE_MASK | DDRC_SCHED_PREFER_WRITE_MASK | DDRC_SCHED_FORCE_LOW_PRI_N_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_SCHED_RDWR_IDLE_GAP_SHIFT - | 0x00000000U << DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT - | 0x00000020U << DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT - | 0x00000000U << DDRC_SCHED_PAGECLOSE_SHIFT - | 0x00000000U << DDRC_SCHED_PREFER_WRITE_SHIFT - | 0x00000001U << DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SCHED_OFFSET ,0x7FFF3F07U ,0x01002001U); - /*############################################################################################################################ */ - - /*Register : PERFLPR1 @ 0XFD070264

      - - Number of transactions that are serviced once the LPR queue goes critical is the smaller of: - (a) This number - (b) Number o - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH 0x8 - - Number of clocks that the LPR queue can be starved before it goes critical. The minimum valid functional value for this regis - er is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - be disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFLPR1_LPR_MAX_STARVE 0x40 - - Low Priority Read CAM Register 1 - (OFFSET, MASK, VALUE) (0XFD070264, 0xFF00FFFFU ,0x08000040U) - RegMask = (DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK | DDRC_PERFLPR1_LPR_MAX_STARVE_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT - | 0x00000040U << DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PERFLPR1_OFFSET ,0xFF00FFFFU ,0x08000040U); - /*############################################################################################################################ */ - - /*Register : PERFWR1 @ 0XFD07026C

      - - Number of transactions that are serviced once the WR queue goes critical is the smaller of: - (a) This number - (b) Number of - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFWR1_W_XACT_RUN_LENGTH 0x8 - - Number of clocks that the WR queue can be starved before it goes critical. The minimum valid functional value for this regist - r is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - e disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. - PSU_DDRC_PERFWR1_W_MAX_STARVE 0x40 - - Write CAM Register 1 - (OFFSET, MASK, VALUE) (0XFD07026C, 0xFF00FFFFU ,0x08000040U) - RegMask = (DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK | DDRC_PERFWR1_W_MAX_STARVE_MASK | 0 ); - - RegVal = ((0x00000008U << DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT - | 0x00000040U << DDRC_PERFWR1_W_MAX_STARVE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PERFWR1_OFFSET ,0xFF00FFFFU ,0x08000040U); - /*############################################################################################################################ */ - - /*Register : DQMAP5 @ 0XFD070294

      - - All even ranks have the same DQ mapping controled by DQMAP0-4 register as rank 0. This register provides DQ swap function for - all odd ranks to support CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap bit 2 with 3, swap bit 4 with 5 and - wap bit 6 with 7. 1: Disable rank based DQ swapping 0: Enable rank based DQ swapping Present only in designs configured to su - port DDR4. - PSU_DDRC_DQMAP5_DIS_DQ_RANK_SWAP 0x1 - - DQ Map Register 5 - (OFFSET, MASK, VALUE) (0XFD070294, 0x00000001U ,0x00000001U) - RegMask = (DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DQMAP5_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : DBG0 @ 0XFD070300

      - - When this is set to '0', auto-precharge is disabled for the flushed command in a collision case. Collision cases are write fo - lowed by read to same address, read followed by write to same address, or write followed by write to same address with DBG0.d - s_wc bit = 1 (where same address comparisons exclude the two address bits representing critical word). FOR DEBUG ONLY. - PSU_DDRC_DBG0_DIS_COLLISION_PAGE_OPT 0x0 - - When 1, disable write combine. FOR DEBUG ONLY - PSU_DDRC_DBG0_DIS_WC 0x0 - - Debug Register 0 - (OFFSET, MASK, VALUE) (0XFD070300, 0x00000011U ,0x00000000U) - RegMask = (DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK | DDRC_DBG0_DIS_WC_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT - | 0x00000000U << DDRC_DBG0_DIS_WC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBG0_OFFSET ,0x00000011U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DBGCMD @ 0XFD07030C

      - - Setting this register bit to 1 allows refresh and ZQCS commands to be triggered from hardware via the IOs ext_*. If set to 1, - the fields DBGCMD.zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignored by the uMCTL2 logic. Setting this - register bit to 0 allows refresh and ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_short and DBGCMD.rank - _refresh. If set to 0, the hardware pins ext_* have no function, and are ignored by the uMCTL2 logic. This register is static - and may only be changed when the DDRC reset signal, core_ddrc_rstn, is asserted (0). - PSU_DDRC_DBGCMD_HW_REF_ZQ_EN 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ctrlupd_req to the PHY. When this request is stored in - he uMCTL2, the bit is automatically cleared. This operation must only be performed when DFIUPD0.dis_auto_ctrlupd=1. - PSU_DDRC_DBGCMD_CTRLUPD 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS (ZQ calibration short)/MPC(ZQ calibration) command to - he SDRAM. When this request is stored in the uMCTL2, the bit is automatically cleared. This operation can be performed only w - en ZQCTL0.dis_auto_zq=1. It is recommended NOT to set this register bit if in Init operating mode. This register bit is ignor - d when in Self-Refresh(except LPDDR4) and SR-Powerdown(LPDDR4) and Deep power-down operating modes and Maximum Power Saving M - de. - PSU_DDRC_DBGCMD_ZQ_CALIB_SHORT 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 1. Writing to this bit causes DBGSTAT.rank1 - refresh_busy to be set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode. - PSU_DDRC_DBGCMD_RANK1_REFRESH 0x0 - - Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 0. Writing to this bit causes DBGSTAT.rank0 - refresh_busy to be set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode. - PSU_DDRC_DBGCMD_RANK0_REFRESH 0x0 - - Command Debug Register - (OFFSET, MASK, VALUE) (0XFD07030C, 0x80000033U ,0x00000000U) - RegMask = (DDRC_DBGCMD_HW_REF_ZQ_EN_MASK | DDRC_DBGCMD_CTRLUPD_MASK | DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK | DDRC_DBGCMD_RANK1_REFRESH_MASK | DDRC_DBGCMD_RANK0_REFRESH_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT - | 0x00000000U << DDRC_DBGCMD_CTRLUPD_SHIFT - | 0x00000000U << DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT - | 0x00000000U << DDRC_DBGCMD_RANK1_REFRESH_SHIFT - | 0x00000000U << DDRC_DBGCMD_RANK0_REFRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DBGCMD_OFFSET ,0x80000033U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SWCTL @ 0XFD070320

      - - Enable quasi-dynamic register programming outside reset. Program register to 0 to enable quasi-dynamic programming. Set back - egister to 1 once programming is done. - PSU_DDRC_SWCTL_SW_DONE 0x0 - - Software register programming control enable - (OFFSET, MASK, VALUE) (0XFD070320, 0x00000001U ,0x00000000U) - RegMask = (DDRC_SWCTL_SW_DONE_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SWCTL_SW_DONE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SWCTL_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCCFG @ 0XFD070400

      - - Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expands every AXI burst into multiple HIF commands, using t - e memory burst length as a unit. If set to 1, then XPI will use half of the memory burst length as a unit. This applies to bo - h reads and writes. When MSTR.data_bus_width==00, setting bl_exp_mode to 1 has no effect. This can be used in cases where Par - ial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.dis_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_cc - _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionality is not supported in the following cases: - UMCTL2_ - ARTIAL_WR=0 - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 and MSTR.reg_ddrc_burst_rdwr=1000 (LP - DR4 only) - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burst_rdwr=0100 (DDR4 - only), with either MSTR.reg_ddrc_burstchop=0 or CRCPARCTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Share - -AC is enabled - PSU_DDRC_PCCFG_BL_EXP_MODE 0x0 - - Page match four limit. If set to 1, limits the number of consecutive same page DDRC transactions that can be granted by the P - rt Arbiter to four when Page Match feature is enabled. If set to 0, there is no limit imposed on number of consecutive same p - ge DDRC transactions. - PSU_DDRC_PCCFG_PAGEMATCH_LIMIT 0x0 - - If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals going to DDRC based - n urgent input (awurgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_go2critical_wr and co_gs_go2critica - _lpr/co_gs_go2critical_hpr signals at DDRC are driven to 1b'0. - PSU_DDRC_PCCFG_GO2CRITICAL_EN 0x1 - - Port Common Configuration Register - (OFFSET, MASK, VALUE) (0XFD070400, 0x00000111U ,0x00000001U) - RegMask = (DDRC_PCCFG_BL_EXP_MODE_MASK | DDRC_PCCFG_PAGEMATCH_LIMIT_MASK | DDRC_PCCFG_GO2CRITICAL_EN_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCCFG_BL_EXP_MODE_SHIFT - | 0x00000000U << DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT - | 0x00000001U << DDRC_PCCFG_GO2CRITICAL_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCCFG_OFFSET ,0x00000111U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGR_0 @ 0XFD070404

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_0_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_0_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_0_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070404, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_0_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_0 @ 0XFD070408

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_0_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_0_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_0_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_0_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_0 @ 0XFD070490

      - - Enables port n. - PSU_DDRC_PCTRL_0_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070490, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_0_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_0_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_0_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_0 @ 0XFD070494

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION1 0x2 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1 0xb - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070494, 0x0033000FU ,0x0020000BU) - RegMask = (DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_0_OFFSET ,0x0033000FU ,0x0020000BU); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_0 @ 0XFD070498

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070498, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_0_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_1 @ 0XFD0704B4

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_1_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_1_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_1_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD0704B4, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_1_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_1 @ 0XFD0704B8

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_1_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_1_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_1_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_1_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_1 @ 0XFD070540

      - - Enables port n. - PSU_DDRC_PCTRL_1_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070540, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_1_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_1_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_1_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_1 @ 0XFD070544

      - - This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION2 0x2 - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION1 0x0 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION0 0x0 - - Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2 0xb - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070544, 0x03330F0FU ,0x02000B03U) - RegMask = (DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK | DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_1_OFFSET ,0x03330F0FU ,0x02000B03U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_1 @ 0XFD070548

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070548, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_1_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_2 @ 0XFD070564

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_2_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_2_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_2_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070564, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_2_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_2 @ 0XFD070568

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_2_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_2_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_2_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_2_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_2 @ 0XFD0705F0

      - - Enables port n. - PSU_DDRC_PCTRL_2_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD0705F0, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_2_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_2_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_2_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_2 @ 0XFD0705F4

      - - This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION2 0x2 - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION1 0x0 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION0 0x0 - - Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2 0xb - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0705F4, 0x03330F0FU ,0x02000B03U) - RegMask = (DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK | DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000002U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT - | 0x0000000BU << DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_2_OFFSET ,0x03330F0FU ,0x02000B03U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_2 @ 0XFD0705F8

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB 0x0 - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0705F8, 0x07FF07FFU ,0x00000000U) - RegMask = (DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT - | 0x00000000U << DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_2_OFFSET ,0x07FF07FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : PCFGR_3 @ 0XFD070614

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_3_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_3_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_3_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070614, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_3_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_3 @ 0XFD070618

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_3_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_3_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_3_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_3_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_3 @ 0XFD0706A0

      - - Enables port n. - PSU_DDRC_PCTRL_3_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD0706A0, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_3_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_3_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_3_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_3 @ 0XFD0706A4

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0706A4, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_3_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_3 @ 0XFD0706A8

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0706A8, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_3_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_3 @ 0XFD0706AC

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD0706AC, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_3_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_3 @ 0XFD0706B0

      - - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD0706B0, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_3_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGR_4 @ 0XFD0706C4

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_4_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_4_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_4_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_4_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_4 @ 0XFD0706C8

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_4_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_4_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_4_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_4_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_4 @ 0XFD070750

      - - Enables port n. - PSU_DDRC_PCTRL_4_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070750, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_4_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_4_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_4_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_4 @ 0XFD070754

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070754, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_4_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_4 @ 0XFD070758

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070758, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_4_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_4 @ 0XFD07075C

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD07075C, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_4_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_4 @ 0XFD070760

      - - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070760, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_4_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGR_5 @ 0XFD070774

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN 0x0 - - If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command). - PSU_DDRC_PCFGR_5_RD_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the read channel of the port. - PSU_DDRC_PCFGR_5_RD_PORT_AGING_EN 0x0 - - Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGR_5_RD_PORT_PRIORITY 0xf - - Port n Configuration Read Register - (OFFSET, MASK, VALUE) (0XFD070774, 0x000073FFU ,0x0000200FU) - RegMask = (DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK | DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK | DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGR_5_OFFSET ,0x000073FFU ,0x0000200FU); - /*############################################################################################################################ */ - - /*Register : PCFGW_5 @ 0XFD070778

      - - If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register. - PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x1 - - If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command). - PSU_DDRC_PCFGW_5_WR_PORT_URGENT_EN 0x1 - - If set to 1, enables aging function for the write channel of the port. - PSU_DDRC_PCFGW_5_WR_PORT_AGING_EN 0x0 - - Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00. - PSU_DDRC_PCFGW_5_WR_PORT_PRIORITY 0xf - - Port n Configuration Write Register - (OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000600FU) - RegMask = (DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK | DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK | DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK | DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT - | 0x00000001U << DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT - | 0x00000000U << DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT - | 0x0000000FU << DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGW_5_OFFSET ,0x000073FFU ,0x0000600FU); - /*############################################################################################################################ */ - - /*Register : PCTRL_5 @ 0XFD070800

      - - Enables port n. - PSU_DDRC_PCTRL_5_PORT_EN 0x1 - - Port n Control Register - (OFFSET, MASK, VALUE) (0XFD070800, 0x00000001U ,0x00000001U) - RegMask = (DDRC_PCTRL_5_PORT_EN_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCTRL_5_PORT_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCTRL_5_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS0_5 @ 0XFD070804

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION0 0x0 - - Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values. - PSU_DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1 0x3 - - Port n Read QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD070804, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK | DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK | DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS0_5_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGQOS1_5 @ 0XFD070808

      - - Specifies the timeout value for transactions mapped to the red address queue. - PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR 0x0 - - Specifies the timeout value for transactions mapped to the blue address queue. - PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB 0x4f - - Port n Read QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070808, 0x07FF07FFU ,0x0000004FU) - RegMask = (DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK | DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT - | 0x0000004FU << DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGQOS1_5_OFFSET ,0x07FF07FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS0_5 @ 0XFD07080C

      - - This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1 0x1 - - This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0 0x0 - - Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority. - PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL 0x3 - - Port n Write QoS Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD07080C, 0x0033000FU ,0x00100003U) - RegMask = (DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK | DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK | DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK | 0 ); - - RegVal = ((0x00000001U << DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT - | 0x00000000U << DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT - | 0x00000003U << DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS0_5_OFFSET ,0x0033000FU ,0x00100003U); - /*############################################################################################################################ */ - - /*Register : PCFGWQOS1_5 @ 0XFD070810

      - - Specifies the timeout value for write transactions. - PSU_DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT 0x4f - - Port n Write QoS Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD070810, 0x000007FFU ,0x0000004FU) - RegMask = (DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK | 0 ); - - RegVal = ((0x0000004FU << DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_PCFGWQOS1_5_OFFSET ,0x000007FFU ,0x0000004FU); - /*############################################################################################################################ */ - - /*Register : SARBASE0 @ 0XFD070F04

      - - Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). - PSU_DDRC_SARBASE0_BASE_ADDR 0x0 - - SAR Base Address Register n - (OFFSET, MASK, VALUE) (0XFD070F04, 0x000001FFU ,0x00000000U) - RegMask = (DDRC_SARBASE0_BASE_ADDR_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SARBASE0_BASE_ADDR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARBASE0_OFFSET ,0x000001FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SARSIZE0 @ 0XFD070F08

      - - Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block. - PSU_DDRC_SARSIZE0_NBLOCKS 0x0 - - SAR Size Register n - (OFFSET, MASK, VALUE) (0XFD070F08, 0x000000FFU ,0x00000000U) - RegMask = (DDRC_SARSIZE0_NBLOCKS_MASK | 0 ); - - RegVal = ((0x00000000U << DDRC_SARSIZE0_NBLOCKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARSIZE0_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : SARBASE1 @ 0XFD070F0C

      - - Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). - PSU_DDRC_SARBASE1_BASE_ADDR 0x10 - - SAR Base Address Register n - (OFFSET, MASK, VALUE) (0XFD070F0C, 0x000001FFU ,0x00000010U) - RegMask = (DDRC_SARBASE1_BASE_ADDR_MASK | 0 ); - - RegVal = ((0x00000010U << DDRC_SARBASE1_BASE_ADDR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARBASE1_OFFSET ,0x000001FFU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : SARSIZE1 @ 0XFD070F10

      - - Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block. - PSU_DDRC_SARSIZE1_NBLOCKS 0xf - - SAR Size Register n - (OFFSET, MASK, VALUE) (0XFD070F10, 0x000000FFU ,0x0000000FU) - RegMask = (DDRC_SARSIZE1_NBLOCKS_MASK | 0 ); +unsigned long psu_ddr_init_data(void) +{ + /* + * DDR INITIALIZATION + */ + /* + * DDR CONTROLLER RESET + */ + /* + * Register : RST_DDR_SS @ 0XFD1A0108 + + * DDR block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X1 + + * DDR sub system block level reset + * (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRF_APB_RST_DDR_SS_OFFSET, 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MSTR @ 0XFD070000 + + * Indicates the configuration of the device used in the system. - 00 - x4 + * device - 01 - x8 device - 10 - x16 device - 11 - x32 device + * PSU_DDRC_MSTR_DEVICE_CONFIG 0x1 + + * Choose which registers are used. - 0 - Original registers - 1 - Shadow r + * egisters + * PSU_DDRC_MSTR_FREQUENCY_MODE 0x0 + + * Only present for multi-rank configurations. Each bit represents one rank + * . For two-rank configurations, only bits[25:24] are present. - 1 - popul + * ated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks follow + * ing combinations are legal: - 01 - One rank - 11 - Two ranks - Others - + * Reserved. For 4 ranks following combinations are legal: - 0001 - One ran + * k - 0011 - Two ranks - 1111 - Four ranks + * PSU_DDRC_MSTR_ACTIVE_RANKS 0x1 + + * SDRAM burst length used: - 0001 - Burst length of 2 (only supported for + * mDDR) - 0010 - Burst length of 4 - 0100 - Burst length of 8 - 1000 - Bur + * st length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other + * values are reserved. This controls the burst size used to access the SDR + * AM. This must match the burst length mode register setting in the SDRAM. + * (For BC4/8 on-the-fly mode of DDR3 and DDR4, set this field to 0x0100) + * Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGTH + * is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 + * PSU_DDRC_MSTR_BURST_RDWR 0x4 + + * Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low + * frequency operation. Set to 0 to put uMCTL2 and DRAM in DLL-on mode for + * normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARC + * TL1.crc_parity_retry_enable = 1), dll_off_mode is not supported, and thi + * s bit must be set to '0'. + * PSU_DDRC_MSTR_DLL_OFF_MODE 0x0 + + * Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full + * DQ bus width to SDRAM - 01 - Half DQ bus width to SDRAM - 10 - Quarter + * DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is + * only supported when the SDRAM bus width is a multiple of 16, and quarter + * bus width mode is only supported when the SDRAM bus width is a multiple + * of 32 and the configuration parameter MEMC_QBUS_SUPPORT is set. Bus wid + * th refers to DQ bus width (excluding any ECC width). + * PSU_DDRC_MSTR_DATA_BUS_WIDTH 0x0 + + * 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the D + * RAM in normal mode (1N). This register can be changed, only when the Con + * troller is in self-refresh mode. This signal must be set the same value + * as MR3 bit A3. Note: Geardown mode is not supported if the configuration + * parameter MEMC_CMD_RTN2IDLE is set + * PSU_DDRC_MSTR_GEARDOWN_MODE 0x0 + + * If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timin + * g, all command signals (except chip select) are held for 2 clocks on the + * SDRAM bus. Chip select is asserted on the second cycle of the command N + * ote: 2T timing is not supported in LPDDR2/LPDDR3/LPDDR4 mode Note: 2T ti + * ming is not supported if the configuration parameter MEMC_CMD_RTN2IDLE i + * s set Note: 2T timing is not supported in DDR4 geardown mode. + * PSU_DDRC_MSTR_EN_2T_TIMING_MODE 0x0 + + * When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exerci + * sed only in HIF configurations (UMCTL2_INCL_ARB not set) and if in full + * bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exer + * cised only if Partial Writes enabled (UMCTL2_PARTIAL_WR=1) and if CRC is + * disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabl + * ed (CRCPARCTL1.crc_parity_retry_enable = 1), burst chop is not supported + * , and this bit must be set to '0' + * PSU_DDRC_MSTR_BURSTCHOP 0x0 + + * Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 d + * evice in use Present only in designs configured to support LPDDR4. + * PSU_DDRC_MSTR_LPDDR4 0x0 + + * Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device + * in use Present only in designs configured to support DDR4. + * PSU_DDRC_MSTR_DDR4 0x1 + + * Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 d + * evice in use Present only in designs configured to support LPDDR3. + * PSU_DDRC_MSTR_LPDDR3 0x0 + + * Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 d + * evice in use Present only in designs configured to support LPDDR2. + * PSU_DDRC_MSTR_LPDDR2 0x0 + + * Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM de + * vice in use Only present in designs that support DDR3. + * PSU_DDRC_MSTR_DDR3 0x0 + + * Master Register + * (OFFSET, MASK, VALUE) (0XFD070000, 0xE30FBE3DU ,0x41040010U) + */ + PSU_Mask_Write(DDRC_MSTR_OFFSET, 0xE30FBE3DU, 0x41040010U); +/*##################################################################### */ + + /* + * Register : MRCTRL0 @ 0XFD070010 + + * Setting this register bit to 1 triggers a mode register read or write op + * eration. When the MR operation is complete, the uMCTL2 automatically cle + * ars this bit. The other register fields of this register must be written + * in a separate APB transaction, before setting this mr_wr bit. It is rec + * ommended NOT to set this signal if in Init, Deep power-down or MPSM oper + * ating modes. + * PSU_DDRC_MRCTRL0_MR_WR 0x0 + + * Address of the mode register that is to be written to. - 0000 - MR0 - 00 + * 01 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 0101 - MR5 - 0110 - MR + * 6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data + * for mode register addressing in LPDDR2/LPDDR3/LPDDR4) This signal is als + * o used for writing to control words of RDIMMs. In that case, it correspo + * nds to the bank address bits sent to the RDIMM In case of DDR4, the bit[ + * 3:2] corresponds to the bank group bits. Therefore, the bit[3] as well a + * s the bit[2:0] must be set to an appropriate value which is considered b + * oth the Address Mirroring of UDIMMs/RDIMMs and the Output Inversion of R + * DIMMs. + * PSU_DDRC_MRCTRL0_MR_ADDR 0x0 + + * Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desire + * d to access all ranks, so all bits should be set to 1. However, for mult + * i-rank UDIMMs/RDIMMs which implement address mirroring, it may be necess + * ary to access ranks individually. Examples (assume uMCTL2 is configured + * for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x + * 5 - select ranks 0 and 2 - 0xA - select ranks 1 and 3 - 0xF - select ran + * ks 0, 1, 2 and 3 + * PSU_DDRC_MRCTRL0_MR_RANK 0x3 + + * Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 b + * efore automatic SDRAM initialization routine or not. For DDR4, this bit + * can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM init + * ialization. For LPDDR4, this bit can be used to program additional mode + * registers before automatic SDRAM initialization if necessary. Note: This + * must be cleared to 0 after completing Software operation. Otherwise, SD + * RAM initialization routine will not re-start. - 0 - Software interventio + * n is not allowed - 1 - Software intervention is allowed + * PSU_DDRC_MRCTRL0_SW_INIT_INT 0x0 + + * Indicates whether the mode register operation is MRS in PDA mode or not + * - 0 - MRS - 1 - MRS in Per DRAM Addressability mode + * PSU_DDRC_MRCTRL0_PDA_EN 0x0 + + * Indicates whether the mode register operation is MRS or WR/RD for MPR (o + * nly supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR + * PSU_DDRC_MRCTRL0_MPR_EN 0x0 + + * Indicates whether the mode register operation is read or write. Only use + * d for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Read + * PSU_DDRC_MRCTRL0_MR_TYPE 0x0 + + * Mode Register Read/Write Control Register 0. Note: Do not enable more th + * an one of the following fields simultaneously: - sw_init_int - pda_en - + * mpr_en + * (OFFSET, MASK, VALUE) (0XFD070010, 0x8000F03FU ,0x00000030U) + */ + PSU_Mask_Write(DDRC_MRCTRL0_OFFSET, 0x8000F03FU, 0x00000030U); +/*##################################################################### */ + + /* + * Register : DERATEEN @ 0XFD070020 + + * Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating us + * es +2. - 2 - Derating uses +3. - 3 - Derating uses +4. Present only in d + * esigns configured to support LPDDR4. The required number of cycles for d + * erating can be determined by dividing 3.75ns by the core_ddrc_core_clk p + * eriod, and rounding up the next integer. + * PSU_DDRC_DERATEEN_RC_DERATE_VALUE 0x2 + + * Derate byte Present only in designs configured to support LPDDR2/LPDDR3/ + * LPDDR4 Indicates which byte of the MRR data is used for derating. The ma + * ximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. + * PSU_DDRC_DERATEEN_DERATE_BYTE 0x0 + + * Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present onl + * y in designs configured to support LPDDR2/LPDDR3/LPDDR4 Set to 0 for all + * LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ + * ddrc_core_clk period. Can be 0 or 1 for LPDDR3/LPDDR4, depending if +1.8 + * 75 ns is less than a core_ddrc_core_clk period or not. + * PSU_DDRC_DERATEEN_DERATE_VALUE 0x0 + + * Enables derating - 0 - Timing parameter derating is disabled - 1 - Timin + * g parameter derating is enabled using MR4 read value. Present only in de + * signs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set + * to '0' for non-LPDDR2/LPDDR3/LPDDR4 mode. + * PSU_DDRC_DERATEEN_DERATE_ENABLE 0x0 + + * Temperature Derate Enable Register + * (OFFSET, MASK, VALUE) (0XFD070020, 0x000003F3U ,0x00000200U) + */ + PSU_Mask_Write(DDRC_DERATEEN_OFFSET, 0x000003F3U, 0x00000200U); +/*##################################################################### */ + + /* + * Register : DERATEINT @ 0XFD070024 + + * Interval between two MR4 reads, used to derate the timing parameters. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4. This r + * egister must not be set to zero + * PSU_DDRC_DERATEINT_MR4_READ_INTERVAL 0x800000 + + * Temperature Derate Interval Register + * (OFFSET, MASK, VALUE) (0XFD070024, 0xFFFFFFFFU ,0x00800000U) + */ + PSU_Mask_Write(DDRC_DERATEINT_OFFSET, 0xFFFFFFFFU, 0x00800000U); +/*##################################################################### */ + + /* + * Register : PWRCTL @ 0XFD070030 + + * Self refresh state is an intermediate state to enter to Self refresh pow + * er down state or exit Self refresh power down state for LPDDR4. This reg + * ister controls transition from the Self refresh state. - 1 - Prohibit tr + * ansition from Self refresh state - 0 - Allow transition from Self refres + * h state + * PSU_DDRC_PWRCTL_STAY_IN_SELFREF 0x0 + + * A value of 1 to this register causes system to move to Self Refresh stat + * e immediately, as long as it is not in INIT or DPD/MPSM operating_mode. + * This is referred to as Software Entry/Exit to Self Refresh. - 1 - Softwa + * re Entry to Self Refresh - 0 - Software Exit from Self Refresh + * PSU_DDRC_PWRCTL_SELFREF_SW 0x0 + + * When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode + * when the transaction store is empty. This register must be reset to '0' + * to bring uMCTL2 out of maximum power saving mode. Present only in desig + * ns configured to support DDR4. For non-DDR4, this register should not be + * set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if + * the PHY parameter DWC_AC_CS_USE is disabled, as the MPSM exit sequence r + * equires the chip-select signal to toggle. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRCTL_MPSM_EN 0x0 + + * Enable the assertion of dfi_dram_clk_disable whenever a clock is not req + * uired by the SDRAM. If set to 0, dfi_dram_clk_disable is never asserted. + * Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only + * be asserted in Self Refresh. In DDR4, can be asserted in following: - i + * n Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, ca + * n be asserted in following: - in Self Refresh - in Power Down - in Deep + * Power Down - during Normal operation (Clock Stop) In LPDDR4, can be asse + * rted in following: - in Self Refresh Power Down - in Power Down - during + * Normal operation (Clock Stop) + * PSU_DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE 0x0 + + * When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the + * transaction store is empty. This register must be reset to '0' to bring + * uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM + * initialization on deep power-down exit. Present only in designs configu + * red to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPD + * DR3, this register should not be set to 1. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRCTL_DEEPPOWERDOWN_EN 0x0 + + * If true then the uMCTL2 goes into power-down after a programmable number + * of cycles 'maximum idle clocks before power down' (PWRTMG.powerdown_to_ + * x32). This register bit may be re-programmed during the course of normal + * operation. + * PSU_DDRC_PWRCTL_POWERDOWN_EN 0x0 + + * If true then the uMCTL2 puts the SDRAM into Self Refresh after a program + * mable number of cycles 'maximum idle clocks before Self Refresh (PWRTMG. + * selfref_to_x32)'. This register bit may be re-programmed during the cour + * se of normal operation. + * PSU_DDRC_PWRCTL_SELFREF_EN 0x0 + + * Low Power Control Register + * (OFFSET, MASK, VALUE) (0XFD070030, 0x0000007FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PWRCTL_OFFSET, 0x0000007FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PWRTMG @ 0XFD070034 + + * After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into Self Refresh. This must be enabled in the PWRCTL.selfref_ + * en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRTMG_SELFREF_TO_X32 0x40 + + * Minimum deep power-down time. For mDDR, value from the JEDEC specificati + * on is 0 as mDDR exits from deep power-down mode immediately after PWRCTL + * .deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDE + * C specification is 500us. Unit: Multiples of 4096 clocks. Present only i + * n designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE + * ONLY. + * PSU_DDRC_PWRTMG_T_DPD_X4096 0x84 + + * After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into power-down. This must be enabled in the PWRCTL.powerdown_ + * en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. + * PSU_DDRC_PWRTMG_POWERDOWN_TO_X32 0x10 + + * Low Power Timing Register + * (OFFSET, MASK, VALUE) (0XFD070034, 0x00FFFF1FU ,0x00408410U) + */ + PSU_Mask_Write(DDRC_PWRTMG_OFFSET, 0x00FFFF1FU, 0x00408410U); +/*##################################################################### */ + + /* + * Register : RFSHCTL0 @ 0XFD070050 + + * Threshold value in number of clock cycles before the critical refresh or + * page timer expires. A critical refresh is to be issued before this thre + * shold is reached. It is recommended that this not be changed from the de + * fault value, currently shown as 0x2. It must always be less than interna + * lly used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally u + * sed t_rfc_nom_x32 may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating i + * s enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_n + * om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clo + * cks. + * PSU_DDRC_RFSHCTL0_REFRESH_MARGIN 0x2 + + * If the refresh timer (tRFCnom, also known as tREFI) has expired at least + * once, but it has not expired (RFSHCTL0.refresh_burst+1) times yet, then + * a speculative refresh may be performed. A speculative refresh is a refr + * esh performed at a time when refresh would be useful, but before it is a + * bsolutely required. When the SDRAM bus is idle for a period of time dete + * rmined by this RFSHCTL0.refresh_to_x32 and the refresh timer has expired + * at least once since the last refresh, then a speculative refresh is per + * formed. Speculative refreshes continues successively until there are no + * refreshes pending or until new reads or writes are issued to the uMCTL2. + * FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL0_REFRESH_TO_X32 0x10 + + * The programmed value + 1 is the number of refresh timeouts that is allow + * ed to accumulate before traffic is blocked and the refreshes are forced + * to execute. Closing pages to perform a refresh is a one-time penalty tha + * t must be paid for each group of refreshes. Therefore, performing refres + * hes in a burst reduces the per-refresh penalty of these page closings. H + * igher numbers for RFSHCTL.refresh_burst slightly increases utilization; + * lower numbers decreases the worst-case latency associated with refreshes + * . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh + * For information on burst refresh feature refer to section 3.9 of DDR2 J + * EDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always pe + * r-rank and not per-bank. The rank refresh can be accumulated over 8*tREF + * I cycles using the burst refresh feature. In DDR4 mode, according to Fin + * e Granularity feature, 8 refreshes can be postponed in 1X mode, 16 refre + * shes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upda + * tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ens + * ure that tRFCmax is not violated due to a PHY-initiated update occurring + * shortly before a refresh burst was due. In this situation, the refresh + * burst will be delayed until the PHY-initiated update is complete. + * PSU_DDRC_RFSHCTL0_REFRESH_BURST 0x0 + + * - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows + * traffic to flow to other banks. Per bank refresh is not supported by all + * LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4 + * PSU_DDRC_RFSHCTL0_PER_BANK_REFRESH 0x0 + + * Refresh Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD070050, 0x00F1F1F4U ,0x00210000U) + */ + PSU_Mask_Write(DDRC_RFSHCTL0_OFFSET, 0x00F1F1F4U, 0x00210000U); +/*##################################################################### */ + + /* + * Register : RFSHCTL1 @ 0XFD070054 + + * Refresh timer start for rank 1 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32 0x0 + + * Refresh timer start for rank 0 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. + * PSU_DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32 0x0 + + * Refresh Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD070054, 0x0FFF0FFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_RFSHCTL1_OFFSET, 0x0FFF0FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RFSHCTL3 @ 0XFD070060 + + * Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fix + * ed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x (not supported) - 11 + * 0 - Enable on the fly 4x (not supported) - Everything else - reserved No + * te: The on-the-fly modes is not supported in this version of the uMCTL2. + * Note: This must be set up while the Controller is in reset or while the + * Controller is in self-refresh mode. Changing this during normal operati + * on is not allowed. Making this a dynamic register will be supported in f + * uture version of the uMCTL2. + * PSU_DDRC_RFSHCTL3_REFRESH_MODE 0x0 + + * Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that + * the refresh register(s) have been updated. The value is automatically up + * dated when exiting reset, so it does not need to be toggled initially. + * PSU_DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL 0x0 + + * When '1', disable auto-refresh generated by the uMCTL2. When auto-refres + * h is disabled, the SoC core must generate refreshes using the registers + * reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh a + * nd reg_ddrc_rank3_refresh. When dis_auto_refresh transitions from 0 to 1 + * , any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 + * CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d + * isable auto-refresh is not supported, and this bit must be set to '0'. T + * his register field is changeable on the fly. + * PSU_DDRC_RFSHCTL3_DIS_AUTO_REFRESH 0x1 + + * Refresh Control Register 3 + * (OFFSET, MASK, VALUE) (0XFD070060, 0x00000073U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_RFSHCTL3_OFFSET, 0x00000073U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : RFSHTMG @ 0XFD070064 + + * tREFI: Average time interval between refreshes per rank (Specification: + * 7.8us for DDR2, DDR3 and DDR4. See JEDEC specification for mDDR, LPDDR2, + * LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refre + * shes (RFSHCTL0.per_bank_refresh = 0), this register should be set to tRE + * FIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this + * register should be set to tREFIpb For configurations with MEMC_FREQ_RAT + * IO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI val + * ue is different depending on the refresh mode. The user should program t + * he appropriate value from the spec based on the value programmed in the + * refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be grea + * ter than RFSHTMG.t_rfc_min, and RFSHTMG.t_rfc_nom_x32 must be greater th + * an 0x1. Unit: Multiples of 32 clocks. + * PSU_DDRC_RFSHTMG_T_RFC_NOM_X32 0x81 + + * Used only when LPDDR3 memory type is connected. Should only be changed w + * hen uMCTL2 is in reset. Specifies whether to use the tREFBW parameter (r + * equired by some LPDDR3 devices which comply with earlier versions of the + * LPDDR3 JEDEC specification) or not: - 0 - tREFBW parameter not used - 1 + * - tREFBW parameter used + * PSU_DDRC_RFSHTMG_LPDDR3_TREFBW_EN 0x1 + + * tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_F + * REQ_RATIO=1 configurations, t_rfc_min should be set to RoundUp(tRFCmin/t + * CK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to Ro + * undUp(RoundUp(tRFCmin/tCK)/2). In LPDDR2/LPDDR3/LPDDR4 mode: - if using + * all-bank refreshes, the tRFCmin value in the above equations is equal to + * tRFCab - if using per-bank refreshes, the tRFCmin value in the above eq + * uations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above + * equations is different depending on the refresh mode (fixed 1X,2X,4X) an + * d the device density. The user should program the appropriate value from + * the spec based on the 'refresh_mode' and the device density that is use + * d. Unit: Clocks. + * PSU_DDRC_RFSHTMG_T_RFC_MIN 0x8b + + * Refresh Timing Register + * (OFFSET, MASK, VALUE) (0XFD070064, 0x0FFF83FFU ,0x0081808BU) + */ + PSU_Mask_Write(DDRC_RFSHTMG_OFFSET, 0x0FFF83FFU, 0x0081808BU); +/*##################################################################### */ + + /* + * Register : ECCCFG0 @ 0XFD070070 + + * Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_U + * SE_RMW is defined + * PSU_DDRC_ECCCFG0_DIS_SCRUB 0x1 + + * ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED ov + * er 1 beat - all other settings are reserved for future use + * PSU_DDRC_ECCCFG0_ECC_MODE 0x0 + + * ECC Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070070, 0x00000017U ,0x00000010U) + */ + PSU_Mask_Write(DDRC_ECCCFG0_OFFSET, 0x00000017U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : ECCCFG1 @ 0XFD070074 + + * Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) da + * ta poisoning, if 1 -> 1-bit (correctable) data poisoning, if ECCCFG1.dat + * a_poison_en=1 + * PSU_DDRC_ECCCFG1_DATA_POISON_BIT 0x0 + + * Enable ECC data poisoning - introduces ECC errors on writes to address s + * pecified by the ECCPOISONADDR0/1 registers + * PSU_DDRC_ECCCFG1_DATA_POISON_EN 0x0 + + * ECC Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070074, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ECCCFG1_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CRCPARCTL1 @ 0XFD0700C4 + + * The maximum number of DFI PHY clock cycles allowed from the assertion of + * the dfi_rddata_en signal to the assertion of each of the corresponding + * bits of the dfi_rddata_valid signal. This corresponds to the DFI timing + * parameter tphy_rdlat. Refer to PHY specification for correct value. This + * value it only used for detecting read data timeout when DDR4 retry is e + * nabled by CRCPARCTL1.crc_parity_retry_enable=1. Maximum supported value: + * - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_r + * dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 + * : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mode ANDAND DFITMG0.d + * fi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ + * rdlat < 'd114 Unit: DFI Clocks + * PSU_DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT 0x10 + + * After a Parity or CRC error is flagged on dfi_alert_n signal, the softwa + * re has an option to read the mode registers in the DRAM before the hardw + * are begins the retry process - 1: Wait for software to read/write the mo + * de registers before hardware begins the retry. After software is done wi + * th its operations, it will clear the alert interrupt register bit - 0: H + * ardware can begin the retry right away after the dfi_alert_n pulse goes + * away. The value on this register is valid only when retry is enabled (PA + * RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if t + * he software doesn't clear the interrupt register after handling the pari + * ty/CRC error, then the hardware will not begin the retry process and the + * system will hang. In the case of Parity/CRC error, there are two possib + * ilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persisten + * t parity' mode register bit is NOT set: the commands sent during retry a + * nd normal operation are executed without parity checking. The value in t + * he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent + * parity' mode register bit is SET: Parity checking is done for commands s + * ent during retry and normal operation. If multiple errors occur before M + * R5[4] is cleared, the error log in MPR Page 1 should be treated as 'Don' + * t care'. + * PSU_DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW 0x1 + + * - 1: Enable command retry mechanism in case of C/A Parity or CRC error - + * 0: Disable command retry mechanism when C/A Parity or CRC features are + * enabled. Note that retry functionality is not supported if burst chop is + * enabled (MSTR.burstchop = 1) and/or disable auto-refresh is enabled (RF + * SHCTL3.dis_auto_refresh = 1) + * PSU_DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE 0x0 + + * CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC no + * t includes DM signal Present only in designs configured to support DDR4. + * PSU_DDRC_CRCPARCTL1_CRC_INC_DM 0x0 + + * CRC enable Register - 1: Enable generation of CRC - 0: Disable generatio + * n of CRC The setting of this register should match the CRC mode register + * setting in the DRAM. + * PSU_DDRC_CRCPARCTL1_CRC_ENABLE 0x0 + + * C/A Parity enable register - 1: Enable generation of C/A parity and dete + * ction of C/A parity error - 0: Disable generation of C/A parity and disa + * ble detection of C/A parity error If RCD's parity error detection or SDR + * AM's parity detection is enabled, this register should be 1. + * PSU_DDRC_CRCPARCTL1_PARITY_ENABLE 0x0 + + * CRC Parity Control Register1 + * (OFFSET, MASK, VALUE) (0XFD0700C4, 0x3F000391U ,0x10000200U) + */ + PSU_Mask_Write(DDRC_CRCPARCTL1_OFFSET, 0x3F000391U, 0x10000200U); +/*##################################################################### */ + + /* + * Register : CRCPARCTL2 @ 0XFD0700C8 + + * Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a parity error occurs. Recommended values: - tPAR_ALERT_PW.M + * AX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT + * _PW.MAX/2 and round up to next integer value. Values of 0, 1 and 2 are i + * llegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. + * PSU_DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX 0x40 + + * Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a CRC error occurs. Recommended values: - tCRC_ALERT_PW.MAX + * For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW + * .MAX/2 and round up to next integer value. Values of 0, 1 and 2 are ille + * gal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. + * PSU_DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX 0x5 + + * Indicates the maximum duration in number of DRAM clock cycles for which + * a command should be held in the Command Retry FIFO before it is popped o + * ut. Every location in the Command Retry FIFO has an associated down coun + * ting timer that will use this register as the start value. The down coun + * ting starts when a command is loaded into the FIFO. The timer counts dow + * n every 4 DRAM cycles. When the counter reaches zero, the entry is poppe + * d from the FIFO. All the counters are frozen, if a C/A Parity or CRC err + * or occurs before the counter reaches zero. The counter is reset to 0, af + * ter all the commands in the FIFO are retried. Recommended(minimum) value + * s: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + * + CAL + RDIMM delay + tPAR_ALERT_ON.max + tPAR_UNKNOWN + PHY Alert Laten + * cy(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enable + * d/ Only CRC is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + R + * DIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) + * + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be + * in terms of DRAM Clock and round up Note 2: Board delay(Command/Alert_n + * ) should be considered. Note 3: Use the worst case(longer) value for PHY + * Latencies/Board delay Note 4: The Recommended values are minimum value + * to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max + * value can be set to this register is defined below: - MEMC_BURST_LENGTH + * == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 + * Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half b + * us Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Half bus Mod + * e (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (C + * RC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-8 Quarter bus Mode (CRC= + * ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 + * Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full + * bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mod + * e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC + * =ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarter bus Mode (CRC=OFF + * ) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Ma + * x value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Values of 0, 1 and 2 are illegal + * . + * PSU_DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4 0x1f + + * CRC Parity Control Register2 + * (OFFSET, MASK, VALUE) (0XFD0700C8, 0x01FF1F3FU ,0x0040051FU) + */ + PSU_Mask_Write(DDRC_CRCPARCTL2_OFFSET, 0x01FF1F3FU, 0x0040051FU); +/*##################################################################### */ + + /* + * Register : INIT0 @ 0XFD0700D0 + + * If lower bit is enabled the SDRAM initialization routine is skipped. The + * upper bit decides what state the controller starts up in when reset is + * removed - 00 - SDRAM Intialization routine is run after power-up - 01 - + * SDRAM Intialization routine is skipped after power-up. Controller starts + * up in Normal Mode - 11 - SDRAM Intialization routine is skipped after p + * ower-up. Controller starts up in Self-refresh Mode - 10 - SDRAM Intializ + * ation routine is run after power-up. Note: The only 2'b00 is supported f + * or LPDDR4 in this version of the uMCTL2. + * PSU_DDRC_INIT0_SKIP_DRAM_INIT 0x0 + + * Cycles to wait after driving CKE high to start the SDRAM initialization + * sequence. Unit: 1024 clocks. DDR2 typically requires a 400 ns delay, req + * uiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDD + * R3 typically requires this to be programmed for a delay of 200 us. LPDDR + * 4 typically requires this to be programmed for a delay of 2 us. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divi + * ded by 2, and round it up to next integer value. + * PSU_DDRC_INIT0_POST_CKE_X1024 0x2 + + * Cycles to wait after reset before driving CKE high to start the SDRAM in + * itialization sequence. Unit: 1024 clock cycles. DDR2 specifications typi + * cally require this to be programmed for a delay of >= 200 us. LPDDR2/LPD + * DR3: tINIT1 of 100 ns (min) LPDDR4: tINIT3 of 2 ms (min) For configurati + * ons with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by + * 2, and round it up to next integer value. + * PSU_DDRC_INIT0_PRE_CKE_X1024 0x106 + + * SDRAM Initialization Register 0 + * (OFFSET, MASK, VALUE) (0XFD0700D0, 0xC3FF0FFFU ,0x00020106U) + */ + PSU_Mask_Write(DDRC_INIT0_OFFSET, 0xC3FF0FFFU, 0x00020106U); +/*##################################################################### */ + + /* + * Register : INIT1 @ 0XFD0700D4 + + * Number of cycles to assert SDRAM reset signal during init sequence. This + * is only present for designs supporting DDR3, DDR4 or LPDDR4 devices. Fo + * r use with a DDR PHY, this should be set to a minimum of 1 + * PSU_DDRC_INIT1_DRAM_RSTN_X1024 0x2 + + * Cycles to wait after completing the SDRAM initialization sequence before + * starting the dynamic scheduler. Unit: Counts of a global timer that pul + * ses every 32 clock cycles. There is no known specific requirement for th + * is; it may be set to zero. + * PSU_DDRC_INIT1_FINAL_WAIT_X32 0x0 + + * Wait period before driving the OCD complete command to SDRAM. Unit: Coun + * ts of a global timer that pulses every 32 clock cycles. There is no know + * n specific requirement for this; it may be set to zero. + * PSU_DDRC_INIT1_PRE_OCD_X32 0x0 + + * SDRAM Initialization Register 1 + * (OFFSET, MASK, VALUE) (0XFD0700D4, 0x01FF7F0FU ,0x00020000U) + */ + PSU_Mask_Write(DDRC_INIT1_OFFSET, 0x01FF7F0FU, 0x00020000U); +/*##################################################################### */ + + /* + * Register : INIT2 @ 0XFD0700D8 + + * Idle time after the reset command, tINIT4. Present only in designs confi + * gured to support LPDDR2. Unit: 32 clock cycles. + * PSU_DDRC_INIT2_IDLE_AFTER_RESET_X32 0x23 + + * Time to wait after the first CKE high, tINIT2. Present only in designs c + * onfigured to support LPDDR2/LPDDR3. Unit: 1 clock cycle. LPDDR2/LPDDR3 t + * ypically requires 5 x tCK delay. + * PSU_DDRC_INIT2_MIN_STABLE_CLOCK_X1 0x5 + + * SDRAM Initialization Register 2 + * (OFFSET, MASK, VALUE) (0XFD0700D8, 0x0000FF0FU ,0x00002305U) + */ + PSU_Mask_Write(DDRC_INIT2_OFFSET, 0x0000FF0FU, 0x00002305U); +/*##################################################################### */ + + /* + * Register : INIT3 @ 0XFD0700DC + + * DDR2: Value to write to MR register. Bit 8 is for DLL and the setting he + * re is ignored. The uMCTL2 sets this bit appropriately. DDR3/DDR4: Value + * loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LP + * DDR3/LPDDR4 - Value to write to MR1 register + * PSU_DDRC_INIT3_MR 0x730 + + * DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setti + * ng in this register is ignored. The uMCTL2 sets those bits appropriately + * . DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evalu + * ation mode training is enabled, this bit is set appropriately by the uMC + * TL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/ + * LPDDR3/LPDDR4 - Value to write to MR2 register + * PSU_DDRC_INIT3_EMR 0x301 + + * SDRAM Initialization Register 3 + * (OFFSET, MASK, VALUE) (0XFD0700DC, 0xFFFFFFFFU ,0x07300301U) + */ + PSU_Mask_Write(DDRC_INIT3_OFFSET, 0xFFFFFFFFU, 0x07300301U); +/*##################################################################### */ + + /* + * Register : INIT4 @ 0XFD0700E0 + + * DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 + * register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 register mDDR: Unus + * ed + * PSU_DDRC_INIT4_EMR2 0x20 + + * DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 + * register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to write to MR13 regis + * ter + * PSU_DDRC_INIT4_EMR3 0x200 + + * SDRAM Initialization Register 4 + * (OFFSET, MASK, VALUE) (0XFD0700E0, 0xFFFFFFFFU ,0x00200200U) + */ + PSU_Mask_Write(DDRC_INIT4_OFFSET, 0xFFFFFFFFU, 0x00200200U); +/*##################################################################### */ + + /* + * Register : INIT5 @ 0XFD0700E4 + + * ZQ initial calibration, tZQINIT. Present only in designs configured to s + * upport DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock cycles. DDR3 typica + * lly requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requir + * es 1 us. + * PSU_DDRC_INIT5_DEV_ZQINIT_X32 0x21 + + * Maximum duration of the auto initialization, tINIT5. Present only in des + * igns configured to support LPDDR2/LPDDR3. LPDDR2/LPDDR3 typically requir + * es 10 us. + * PSU_DDRC_INIT5_MAX_AUTO_INIT_X1024 0x4 + + * SDRAM Initialization Register 5 + * (OFFSET, MASK, VALUE) (0XFD0700E4, 0x00FF03FFU ,0x00210004U) + */ + PSU_Mask_Write(DDRC_INIT5_OFFSET, 0x00FF03FFU, 0x00210004U); +/*##################################################################### */ + + /* + * Register : INIT6 @ 0XFD0700E8 + + * DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT6_MR4 0x0 + + * DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT6_MR5 0x6c0 + + * SDRAM Initialization Register 6 + * (OFFSET, MASK, VALUE) (0XFD0700E8, 0xFFFFFFFFU ,0x000006C0U) + */ + PSU_Mask_Write(DDRC_INIT6_OFFSET, 0xFFFFFFFFU, 0x000006C0U); +/*##################################################################### */ + + /* + * Register : INIT7 @ 0XFD0700EC + + * DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs + * only. + * PSU_DDRC_INIT7_MR6 0x819 + + * SDRAM Initialization Register 7 + * (OFFSET, MASK, VALUE) (0XFD0700EC, 0xFFFF0000U ,0x08190000U) + */ + PSU_Mask_Write(DDRC_INIT7_OFFSET, 0xFFFF0000U, 0x08190000U); +/*##################################################################### */ + + /* + * Register : DIMMCTL @ 0XFD0700F0 + + * Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and + * BG1 are NOT swapped even if Address Mirroring is enabled. This will be r + * equired for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapp + * ed. - 0 - BG0 and BG1 are swapped if address mirroring is enabled. + * PSU_DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING 0x0 + + * Enable for BG1 bit of MRS command. BG1 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have BG1 are attached and + * both the CA parity and the Output Inversion are enabled, this must be s + * et to 0, so that the calculation of CA parity will not include BG1 bit. + * Note: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. If address mirroring is enab + * led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - En + * abled - 0 - Disabled + * PSU_DDRC_DIMMCTL_MRS_BG1_EN 0x1 + + * Enable for A17 bit of MRS command. A17 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have A17 are attached and + * the Output Inversion are enabled, this must be set to 0, so that the ca + * lculation of CA parity will not include A17 bit. Note: This has no effec + * t on the address of any other memory accesses, or of software-driven mod + * e register accesses. - 1 - Enabled - 0 - Disabled + * PSU_DDRC_DIMMCTL_MRS_A17_EN 0x0 + + * Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIM + * M implements the Output Inversion feature by default, which means that t + * he following address, bank address and bank group bits of B-side DRAMs a + * re inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit en + * sures that, for mode register accesses generated by the uMCTL2 during th + * e automatic initialization routine and enabling of a particular DDR4 fea + * ture, separate A-side and B-side mode register accesses are generated. F + * or B-side mode register accesses, these bits are inverted within the uMC + * TL2 to compensate for this RDIMM inversion. Note: This has no effect on + * the address of any other memory accesses, or of software-driven mode reg + * ister accesses. - 1 - Implement output inversion for B-side DRAMs. - 0 - + * Do not implement output inversion for B-side DRAMs. + * PSU_DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN 0x0 + + * Address Mirroring Enable (for multi-rank UDIMM implementations and multi + * -rank DDR4 RDIMM implementations). Some UDIMMs and DDR4 RDIMMs implement + * address mirroring for odd ranks, which means that the following address + * , bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, + * A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting t + * his bit ensures that, for mode register accesses during the automatic in + * itialization routine, these bits are swapped within the uMCTL2 to compen + * sate for this UDIMM/RDIMM swapping. In addition to the automatic initial + * ization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during th + * e automatic MRS access to enable/disable of a particular DDR4 feature. N + * ote: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. This is not supported for mDD + * R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 + * output of MRS for the odd ranks is same as BG0 because BG1 is invalid, + * hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ran + * ks, implement address mirroring for MRS commands to during initializatio + * n and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM imp + * lements address mirroring) - 0 - Do not implement address mirroring + * PSU_DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN 0x0 + + * Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIM + * M implementations only). This is not supported for mDDR, LPDDR2, LPDDR3 + * or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of + * software driven MR commands (via MRCTRL0/MRCTRL1), where software is re + * sponsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Se + * nd MRS commands to each ranks seperately - 1 - (non-DDR4) Send all comma + * nds to even and odd ranks seperately - 0 - Do not stagger accesses + * PSU_DDRC_DIMMCTL_DIMM_STAGGER_CS_EN 0x0 + + * DIMM Control Register + * (OFFSET, MASK, VALUE) (0XFD0700F0, 0x0000003FU ,0x00000010U) + */ + PSU_Mask_Write(DDRC_DIMMCTL_OFFSET, 0x0000003FU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : RANKCTL @ 0XFD0700F4 + + * Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive writes to differ + * ent ranks. This is used to switch the delays in the PHY to match the ran + * k requirements. This value should consider both PHY requirement and ODT + * requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for v + * alue of tphy_wrcsgap) If CRC feature is enabled, should be increased by + * 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increas + * ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be inc + * reased by 1. - ODT requirement: The value programmed in this register ta + * kes care of the ODT switch off timing requirement when switching ranks d + * uring writes. For LPDDR4, the requirement is ODTLoff - ODTLon - BL/2 + 1 + * For configurations with MEMC_FREQ_RATIO=1, program this to the larger o + * f PHY requirement or ODT requirement. For configurations with MEMC_FREQ_ + * RATIO=2, program this to the larger value divided by two and round it up + * to the next integer. + * PSU_DDRC_RANKCTL_DIFF_RANK_WR_GAP 0x6 + + * Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive reads to differe + * nt ranks. This is used to switch the delays in the PHY to match the rank + * requirements. This value should consider both PHY requirement and ODT r + * equirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for va + * lue of tphy_rdcsgap) If read preamble is set to 2tCK(DDR4/LPDDR4 only), + * should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 only + * ), should be increased by 1. - ODT requirement: The value programmed in + * this register takes care of the ODT switch off timing requirement when s + * witching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, + * program this to the larger of PHY requirement or ODT requirement. For co + * nfigurations with MEMC_FREQ_RATIO=2, program this to the larger value di + * vided by two and round it up to the next integer. + * PSU_DDRC_RANKCTL_DIFF_RANK_RD_GAP 0x6 + + * Only present for multi-rank configurations. Background: Reads to the sam + * e rank can be performed back-to-back. Reads to different ranks require a + * dditional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is + * to avoid possible data bus contention as well as to give PHY enough tim + * e to switch the delay when changing ranks. The uMCTL2 arbitrates for bus + * access on a cycle-by-cycle basis; therefore after a read is scheduled, + * there are few clock cycles (determined by the value on RANKCTL.diff_rank + * _rd_gap register) in which only reads from the same rank are eligible to + * be scheduled. This prevents reads from other ranks from having fair acc + * ess to the data bus. This parameter represents the maximum number of rea + * ds that can be scheduled consecutively to the same rank. After this numb + * er is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by + * the scheduler to allow all ranks a fair opportunity to be scheduled. Hig + * her numbers increase bandwidth utilization, lower numbers increase fairn + * ess. This feature can be DISABLED by setting this register to 0. When se + * t to 0, the Controller will stay on the same rank as long as commands ar + * e available for it. Minimum programmable value is 0 (feature disabled) a + * nd maximum programmable value is 0xF. FOR PERFORMANCE ONLY. + * PSU_DDRC_RANKCTL_MAX_RANK_RD 0xf + + * Rank Control Register + * (OFFSET, MASK, VALUE) (0XFD0700F4, 0x00000FFFU ,0x0000066FU) + */ + PSU_Mask_Write(DDRC_RANKCTL_OFFSET, 0x00000FFFU, 0x0000066FU); +/*##################################################################### */ + + /* + * Register : DRAMTMG0 @ 0XFD070100 + + * Minimum time between write and precharge to same bank. Unit: Clocks Spec + * ifications: WL + BL/2 + tWR = approximately 8 cycles + 15 ns = 14 clocks + * @400MHz and less for lower frequencies where: - WL = write latency - BL + * = burst length. This must match the value programmed in the BL bit of t + * he mode register to the SDRAM. BST (burst terminate) is not supported at + * present. - tWR = Write recovery time. This comes directly from the SDRA + * M specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this p + * arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the + * above value by 2. No rounding up. For configurations with MEMC_FREQ_RAT + * IO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it u + * p to the next integer value. + * PSU_DDRC_DRAMTMG0_WR2PRE 0x11 + + * tFAW Valid only when 8 or more banks(or banks x bank groups) are present + * . In 8-bank design, at most 4 banks must be activated in a rolling windo + * w of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tFAW/2) and round up to next integer value. In a 4-bank design, se + * t this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. + * Unit: Clocks + * PSU_DDRC_DRAMTMG0_T_FAW 0x10 + + * tRAS(max): Maximum time between activate and precharge to same bank. Thi + * s is the maximum time that a page can be kept open Minimum value of this + * register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO + * =2, program this to (tRAS(max)-1)/2. No rounding up. Unit: Multiples of + * 1024 clocks. + * PSU_DDRC_DRAMTMG0_T_RAS_MAX 0x24 + + * tRAS(min): Minimum time between activate and precharge to the same bank. + * For configurations with MEMC_FREQ_RATIO=2, 1T mode, program this to tRA + * S(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T + * mode or LPDDR4 mode, program this to (tRAS(min)/2) and round it up to th + * e next integer value. Unit: Clocks + * PSU_DDRC_DRAMTMG0_T_RAS_MIN 0x12 + + * SDRAM Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD070100, 0x7F3F7F3FU ,0x11102412U) + */ + PSU_Mask_Write(DDRC_DRAMTMG0_OFFSET, 0x7F3F7F3FU, 0x11102412U); +/*##################################################################### */ + + /* + * Register : DRAMTMG1 @ 0XFD070104 + + * tXP: Minimum time after power-down exit to any operation. For DDR3, this + * should be programmed to tXPDLL if slow powerdown exit is selected in MR + * 0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to (tXP/2) and round it + * up to the next integer value. Units: Clocks + * PSU_DDRC_DRAMTMG1_T_XP 0x4 + + * tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL + * /2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - DDR4: Max of followi + * ng two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 + * - LPDDR2: Depends on if it's LPDDR2-S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + t + * RTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) + * - 4 - LPDDR4: BL/2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_ + * RATIO=2, 1T mode, divide the above value by 2. No rounding up. For confi + * gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the abo + * ve value by 2 and round it up to the next integer value. Unit: Clocks. + * PSU_DDRC_DRAMTMG1_RD2PRE 0x4 + + * tRC: Minimum time between activates to same bank. For configurations wit + * h MEMC_FREQ_RATIO=2, program this to (tRC/2) and round up to next intege + * r value. Unit: Clocks. + * PSU_DDRC_DRAMTMG1_T_RC 0x1a + + * SDRAM Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD070104, 0x001F1F7FU ,0x0004041AU) + */ + PSU_Mask_Write(DDRC_DRAMTMG1_OFFSET, 0x001F1F7FU, 0x0004041AU); +/*##################################################################### */ + + /* + * Register : DRAMTMG2 @ 0XFD070108 + + * Set to WL Time from write command to write data on SDRAM interface. This + * must be set to WL. For mDDR, it should normally be set to 1. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use a valu + * e of WL + 1 to compensate for the extra cycle of latency through the RDI + * MM For configurations with MEMC_FREQ_RATIO=2, divide the value calculate + * d using the above equation by 2, and round it up to next integer. This r + * egister field is not required for DDR2 and DDR3 (except if MEMC_TRAINING + * is set), as the DFI read and write latencies defined in DFITMG0 and DFI + * TMG1 are sufficient for those protocols Unit: clocks + * PSU_DDRC_DRAMTMG2_WRITE_LATENCY 0x7 + + * Set to RL Time from read command to read data on SDRAM interface. This m + * ust be set to RL. Note that, depending on the PHY, if using RDIMM, it ma + * t be necessary to use a value of RL + 1 to compensate for the extra cycl + * e of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2 + * , divide the value calculated using the above equation by 2, and round i + * t up to next integer. This register field is not required for DDR2 and D + * DR3 (except if MEMC_TRAINING is set), as the DFI read and write latencie + * s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit + * : clocks + * PSU_DDRC_DRAMTMG2_READ_LATENCY 0x8 + + * DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL L + * PDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL LPDDR4(DQ ODT is Di + * sabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL + * LPDDR4(DQ ODT is Enabled) : RL + BL/2 + RU(tDQSCKmax/tCK) + RD_POSTAMBL + * E - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write + * command. Include time for bus turnaround and all per-bank, per-rank, an + * d global constraints. Unit: Clocks. Where: - WL = write latency - BL = b + * urst length. This must match the value programmed in the BL bit of the m + * ode register to the SDRAM - RL = read latency = CAS latency - WR_PREAMBL + * E = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = + * read postamble. This is unique to LPDDR4. For LPDDR2/LPDDR3/LPDDR4, if d + * erating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should + * be used. For configurations with MEMC_FREQ_RATIO=2, divide the value cal + * culated using the above equation by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG2_RD2WR 0x6 + + * DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimu + * m time from write command to read command for same bank group. In others + * , minimum time from write command to read command. Includes time for bus + * turnaround, recovery times, and all per-bank, per-rank, and global cons + * traints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity la + * tency - BL = burst length. This must match the value programmed in the B + * L bit of the mode register to the SDRAM - tWTR_L = internal write to rea + * d command delay for same bank group. This comes directly from the SDRAM + * specification. - tWTR = internal write to read command delay. This comes + * directly from the SDRAM specification. Add one extra cycle for LPDDR2/L + * PDDR3/LPDDR4 operation. For configurations with MEMC_FREQ_RATIO=2, divid + * e the value calculated using the above equation by 2, and round it up to + * next integer. + * PSU_DDRC_DRAMTMG2_WR2RD 0xd + + * SDRAM Timing Register 2 + * (OFFSET, MASK, VALUE) (0XFD070108, 0x3F3F3F3FU ,0x0708060DU) + */ + PSU_Mask_Write(DDRC_DRAMTMG2_OFFSET, 0x3F3F3F3FU, 0x0708060DU); +/*##################################################################### */ + + /* + * Register : DRAMTMG3 @ 0XFD07010C + + * Time to wait after a mode register write or read (MRW or MRR). Present o + * nly in designs configured to support LPDDR2, LPDDR3 or LPDDR4. LPDDR2 ty + * pically requires value of 5. LPDDR3 typically requires value of 10. LPDD + * R4: Set this to the larger of tMRW and tMRWCKEL. For LPDDR2, this regist + * er is used for the time from a MRW/MRR to all other commands. For LDPDR3 + * , this register is used for the time from a MRW/MRR to a MRW/MRR. + * PSU_DDRC_DRAMTMG3_T_MRW 0x5 + + * tMRD: Cycles to wait after a mode register write or read. Depending on t + * he connected SDRAM, tMRD represents: DDR2/mDDR: Time from MRS to any com + * mand DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Tim + * e from MRS to non-MRS command For configurations with MEMC_FREQ_RATIO=2, + * program this to (tMRD/2) and round it up to the next integer value. If + * C/A parity for DDR4 is used, set to tMRD_PAR(tMOD+PL) instead. + * PSU_DDRC_DRAMTMG3_T_MRD 0x4 + + * tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode com + * mand and following non-load mode command. If C/A parity for DDR4 is used + * , set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or + * tMOD/2 (rounded up to next integer) if MEMC_FREQ_RATIO=2. Note that if + * using RDIMM, depending on the PHY, it may be necessary to use a value of + * tMOD + 1 or (tMOD + 1)/2 to compensate for the extra cycle of latency a + * pplied to mode register writes by the RDIMM chip. + * PSU_DDRC_DRAMTMG3_T_MOD 0xc + + * SDRAM Timing Register 3 + * (OFFSET, MASK, VALUE) (0XFD07010C, 0x3FF3F3FFU ,0x0050400CU) + */ + PSU_Mask_Write(DDRC_DRAMTMG3_OFFSET, 0x3FF3F3FFU, 0x0050400CU); +/*##################################################################### */ + + /* + * Register : DRAMTMG4 @ 0XFD070110 + + * tRCD - tAL: Minimum time from activate to read or write command to same + * bank. For configurations with MEMC_FREQ_RATIO=2, program this to ((tRCD + * - tAL)/2) and round it up to the next integer value. Minimum value allow + * ed for this register is 1, which implies minimum (tRCD - tAL) value to b + * e 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. + * PSU_DDRC_DRAMTMG4_T_RCD 0x8 + + * DDR4: tCCD_L: This is the minimum time between two reads or two writes f + * or same bank group. Others: tCCD: This is the minimum time between two r + * eads or two writes. For configurations with MEMC_FREQ_RATIO=2, program t + * his to (tCCD_L/2 or tCCD/2) and round it up to the next integer value. U + * nit: clocks. + * PSU_DDRC_DRAMTMG4_T_CCD 0x3 + + * DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' f + * or same bank group. Others: tRRD: Minimum time between activates from ba + * nk 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tRRD_L/2 or tRRD/2) and round it up to the next integer value. Uni + * t: Clocks. + * PSU_DDRC_DRAMTMG4_T_RRD 0x3 + + * tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ + * _RATIO=1 configurations, t_rp should be set to RoundUp(tRP/tCK). For MEM + * C_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(t + * RP/tCK)/2) + 1. For MEMC_FREQ_RATIO=2 configurations in LPDDR4, t_rp sho + * uld be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. + * PSU_DDRC_DRAMTMG4_T_RP 0x9 + + * SDRAM Timing Register 4 + * (OFFSET, MASK, VALUE) (0XFD070110, 0x1F0F0F1FU ,0x08030309U) + */ + PSU_Mask_Write(DDRC_DRAMTMG4_OFFSET, 0x1F0F0F1FU, 0x08030309U); +/*##################################################################### */ + + /* + * Register : DRAMTMG5 @ 0XFD070114 + + * This is the time before Self Refresh Exit that CK is maintained as a val + * id clock before issuing SRX. Specifies the clock stable time before SRX. + * Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCK + * EH - DDR2: 1 - DDR3: tCKSRX - DDR4: tCKSRX For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKSRX 0x6 + + * This is the time after Self Refresh Down Entry that CK is maintained as + * a valid clock. Specifies the clock disable delay after SRE. Recommended + * settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 + * - DDR3: max (10 ns, 5 tCK) - DDR4: max (10 ns, 5 tCK) For configurations + * with MEMC_FREQ_RATIO=2, program this to recommended value divided by tw + * o and round it up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKSRE 0x6 + + * Minimum CKE low width for Self refresh or Self refresh power down entry + * to exit timing in memory clock cycles. Recommended settings: - mDDR: tRF + * C - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: + * tCKE - DDR3: tCKE + 1 - DDR4: tCKE + 1 For configurations with MEMC_FREQ + * _RATIO=2, program this to recommended value divided by two and round it + * up to next integer. + * PSU_DDRC_DRAMTMG5_T_CKESR 0x4 + + * Minimum number of cycles of CKE HIGH/LOW during power-down and self refr + * esh. - LPDDR2/LPDDR3 mode: Set this to the larger of tCKE or tCKESR - LP + * DDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/ + * non-LPDDR3/non-LPDDR4 designs: Set this to tCKE value. For configuration + * s with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and + * round it up to the next integer value. Unit: Clocks. + * PSU_DDRC_DRAMTMG5_T_CKE 0x3 + + * SDRAM Timing Register 5 + * (OFFSET, MASK, VALUE) (0XFD070114, 0x0F0F3F1FU ,0x06060403U) + */ + PSU_Mask_Write(DDRC_DRAMTMG5_OFFSET, 0x0F0F3F1FU, 0x06060403U); +/*##################################################################### */ + + /* + * Register : DRAMTMG6 @ 0XFD070118 + + * This is the time after Deep Power Down Entry that CK is maintained as a + * valid clock. Specifies the clock disable delay after DPDE. Recommended s + * ettings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. This is only present for designs supporting mDDR + * or LPDDR2/LPDDR3 devices. + * PSU_DDRC_DRAMTMG6_T_CKDPDE 0x1 + + * This is the time before Deep Power Down Exit that CK is maintained as a + * valid clock before issuing DPDX. Specifies the clock stable time before + * DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For config + * urations with MEMC_FREQ_RATIO=2, program this to recommended value divid + * ed by two and round it up to next integer. This is only present for desi + * gns supporting mDDR or LPDDR2 devices. + * PSU_DDRC_DRAMTMG6_T_CKDPDX 0x1 + + * This is the time before Clock Stop Exit that CK is maintained as a valid + * clock before issuing Clock Stop Exit. Specifies the clock stable time b + * efore next command after Clock Stop Exit. Recommended settings: - mDDR: + * 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + 2 - LPDDR4: tXP + 2 For configuratio + * ns with MEMC_FREQ_RATIO=2, program this to recommended value divided by + * two and round it up to next integer. This is only present for designs su + * pporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG6_T_CKCSX 0x4 + + * SDRAM Timing Register 6 + * (OFFSET, MASK, VALUE) (0XFD070118, 0x0F0F000FU ,0x01010004U) + */ + PSU_Mask_Write(DDRC_DRAMTMG6_OFFSET, 0x0F0F000FU, 0x01010004U); +/*##################################################################### */ + + /* + * Register : DRAMTMG7 @ 0XFD07011C + + * This is the time after Power Down Entry that CK is maintained as a valid + * clock. Specifies the clock disable delay after PDE. Recommended setting + * s: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configuration + * s with MEMC_FREQ_RATIO=2, program this to recommended value divided by t + * wo and round it up to next integer. This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG7_T_CKPDE 0x6 + + * This is the time before Power Down Exit that CK is maintained as a valid + * clock before issuing PDX. Specifies the clock stable time before PDX. R + * ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For c + * onfigurations with MEMC_FREQ_RATIO=2, program this to recommended value + * divided by two and round it up to next integer. This is only present for + * designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_DRAMTMG7_T_CKPDX 0x6 + + * SDRAM Timing Register 7 + * (OFFSET, MASK, VALUE) (0XFD07011C, 0x00000F0FU ,0x00000606U) + */ + PSU_Mask_Write(DDRC_DRAMTMG7_OFFSET, 0x00000F0FU, 0x00000606U); +/*##################################################################### */ + + /* + * Register : DRAMTMG8 @ 0XFD070120 + + * tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and + * Geardown mode). For configurations with MEMC_FREQ_RATIO=2, program this + * to the above value divided by 2 and round up to next integer value. Unit + * : Multiples of 32 clocks. Note: This is applicable to only ZQCL/ZQCS com + * mands. Note: Ensure this is less than or equal to t_xs_x32. + * PSU_DDRC_DRAMTMG8_T_XS_FAST_X32 0x3 + + * tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in S + * elf Refresh Abort. For configurations with MEMC_FREQ_RATIO=2, program th + * is to the above value divided by 2 and round up to next integer value. U + * nit: Multiples of 32 clocks. Note: Ensure this is less than or equal to + * t_xs_x32. + * PSU_DDRC_DRAMTMG8_T_XS_ABORT_X32 0x3 + + * tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For config + * urations with MEMC_FREQ_RATIO=2, program this to the above value divided + * by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. + * PSU_DDRC_DRAMTMG8_T_XS_DLL_X32 0xd + + * tXS: Exit Self Refresh to commands not requiring a locked DLL. For confi + * gurations with MEMC_FREQ_RATIO=2, program this to the above value divide + * d by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. + * PSU_DDRC_DRAMTMG8_T_XS_X32 0x6 + + * SDRAM Timing Register 8 + * (OFFSET, MASK, VALUE) (0XFD070120, 0x7F7F7F7FU ,0x03030D06U) + */ + PSU_Mask_Write(DDRC_DRAMTMG8_OFFSET, 0x7F7F7F7FU, 0x03030D06U); +/*##################################################################### */ + + /* + * Register : DRAMTMG9 @ 0XFD070124 + + * DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present o + * nly with MEMC_FREQ_RATIO=2 + * PSU_DDRC_DRAMTMG9_DDR4_WR_PREAMBLE 0x0 + + * tCCD_S: This is the minimum time between two reads or two writes for dif + * ferent bank group. For bank switching (from bank 'a' to bank 'b'), the m + * inimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2 + * , program this to (tCCD_S/2) and round it up to the next integer value. + * Present only in designs configured to support DDR4. Unit: clocks. + * PSU_DDRC_DRAMTMG9_T_CCD_S 0x2 + + * tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for dif + * ferent bank group. For configurations with MEMC_FREQ_RATIO=2, program th + * is to (tRRD_S/2) and round it up to the next integer value. Present only + * in designs configured to support DDR4. Unit: Clocks. + * PSU_DDRC_DRAMTMG9_T_RRD_S 0x2 + + * CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command + * for different bank group. Includes time for bus turnaround, recovery ti + * mes, and all per-bank, per-rank, and global constraints. Present only in + * designs configured to support DDR4. Unit: Clocks. Where: - CWL = CAS wr + * ite latency - PL = Parity latency - BL = burst length. This must match t + * he value programmed in the BL bit of the mode register to the SDRAM - tW + * TR_S = internal write to read command delay for different bank group. Th + * is comes directly from the SDRAM specification. For configurations with + * MEMC_FREQ_RATIO=2, divide the value calculated using the above equation + * by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG9_WR2RD_S 0xb + + * SDRAM Timing Register 9 + * (OFFSET, MASK, VALUE) (0XFD070124, 0x40070F3FU ,0x0002020BU) + */ + PSU_Mask_Write(DDRC_DRAMTMG9_OFFSET, 0x40070F3FU, 0x0002020BU); +/*##################################################################### */ + + /* + * Register : DRAMTMG11 @ 0XFD07012C + + * tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DL + * L. For configurations with MEMC_FREQ_RATIO=2, program this to (tXMPDLL/2 + * ) and round it up to the next integer value. Present only in designs con + * figured to support DDR4. Unit: Multiples of 32 clocks. + * PSU_DDRC_DRAMTMG11_POST_MPSM_GAP_X32 0x70 + + * tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For + * configurations with MEMC_FREQ_RATIO=2, program this to RoundUp(tMPX_LH/2 + * )+1. Present only in designs configured to support DDR4. Unit: clocks. + * PSU_DDRC_DRAMTMG11_T_MPX_LH 0x7 + + * tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_ + * FREQ_RATIO=2, program this to (tMPX_S/2) and round it up to the next int + * eger value. Present only in designs configured to support DDR4. Unit: Cl + * ocks. + * PSU_DDRC_DRAMTMG11_T_MPX_S 0x1 + + * tCKMPE: Minimum valid clock requirement after MPSM entry. Present only i + * n designs configured to support DDR4. Unit: Clocks. For configurations w + * ith MEMC_FREQ_RATIO=2, divide the value calculated using the above equat + * ion by 2, and round it up to next integer. + * PSU_DDRC_DRAMTMG11_T_CKMPE 0xe + + * SDRAM Timing Register 11 + * (OFFSET, MASK, VALUE) (0XFD07012C, 0x7F1F031FU ,0x7007010EU) + */ + PSU_Mask_Write(DDRC_DRAMTMG11_OFFSET, 0x7F1F031FU, 0x7007010EU); +/*##################################################################### */ + + /* + * Register : DRAMTMG12 @ 0XFD070130 + + * tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larg + * er of tESCKE or tCMDCKE For configurations with MEMC_FREQ_RATIO=2, progr + * am this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer valu + * e. + * PSU_DDRC_DRAMTMG12_T_CMDCKE 0x2 + + * tCKEHCMD: Valid command requirement after CKE input HIGH. For configurat + * ions with MEMC_FREQ_RATIO=2, program this to (tCKEHCMD/2) and round it u + * p to next integer value. + * PSU_DDRC_DRAMTMG12_T_CKEHCMD 0x6 + + * tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. + * For configurations with MEMC_FREQ_RATIO=2, program this to (tMRD_PDA/2) + * and round it up to next integer value. + * PSU_DDRC_DRAMTMG12_T_MRD_PDA 0x8 + + * SDRAM Timing Register 12 + * (OFFSET, MASK, VALUE) (0XFD070130, 0x00030F1FU ,0x00020608U) + */ + PSU_Mask_Write(DDRC_DRAMTMG12_OFFSET, 0x00030F1FU, 0x00020608U); +/*##################################################################### */ + + /* + * Register : ZQCTL0 @ 0XFD070180 + + * - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Reg + * ister DBGCMD.zq_calib_short can be used instead to issue ZQ calibration + * request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibrati + * on) commands based on ZQCTL1.t_zq_short_interval_x1024. This is only pre + * sent for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_AUTO_ZQ 0x1 + + * - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refres + * h/SR-Powerdown exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 + * or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibratio + * n) command at Self-Refresh/SR-Powerdown exit. Only applicable when run i + * n DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present + * for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_SRX_ZQCL 0x0 + + * - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQC + * L/ZQCS/MPC(ZQ calibration) commands are sent to one rank at a time with + * tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that co + * mmands to different ranks do not overlap. - 0 - ZQ resistor is not share + * d. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR + * 3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_ZQ_RESISTOR_SHARED 0x0 + + * - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. + * Only applicable when run in DDR4 mode. - 0 - Enable issuing of ZQCL com + * mand at Maximum Power Saving Mode exit. Only applicable when run in DDR4 + * mode. This is only present for designs supporting DDR4 devices. + * PSU_DDRC_ZQCTL0_DIS_MPSMX_ZQCL 0x0 + + * tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Numbe + * r of cycles of NOP required after a ZQCL (ZQ calibration long)/MPC(ZQ St + * art) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO + * =2: DDR3/DDR4: program this to tZQoper/2 and round it up to the next int + * eger value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to th + * e next integer value. LPDDR4: program this to tZQCAL/2 and round it up t + * o the next integer value. Unit: Clock cycles. This is only present for d + * esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_T_ZQ_LONG_NOP 0x100 + + * tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of + * NOP required after a ZQCS (ZQ calibration short)/MPC(ZQ Latch) command + * is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program t + * his to tZQCS/2 and round it up to the next integer value. Unit: Clock cy + * cles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LP + * DDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL0_T_ZQ_SHORT_NOP 0x40 + + * ZQ Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD070180, 0xF7FF03FFU ,0x81000040U) + */ + PSU_Mask_Write(DDRC_ZQCTL0_OFFSET, 0xF7FF03FFU, 0x81000040U); +/*##################################################################### */ + + /* + * Register : ZQCTL1 @ 0XFD070184 + + * tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibrati + * on Reset) command is issued to SDRAM. For configurations with MEMC_FREQ_ + * RATIO=2, program this to tZQReset/2 and round it up to the next integer + * value. Unit: Clock cycles. This is only present for designs supporting L + * PDDR2/LPDDR3/LPDDR4 devices. + * PSU_DDRC_ZQCTL1_T_ZQ_RESET_NOP 0x20 + + * Average interval to wait between automatically issuing ZQCS (ZQ calibrat + * ion short)/MPC(ZQ calibration) commands to DDR3/DDR4/LPDDR2/LPDDR3/LPDDR + * 4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles + * . This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3 + * /LPDDR4 devices. + * PSU_DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024 0x196dc + + * ZQ Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD070184, 0x3FFFFFFFU ,0x020196DCU) + */ + PSU_Mask_Write(DDRC_ZQCTL1_OFFSET, 0x3FFFFFFFU, 0x020196DCU); +/*##################################################################### */ + + /* + * Register : DFITMG0 @ 0XFD070190 + + * Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. + * PSU_DDRC_DFITMG0_DFI_T_CTRL_DELAY 0x4 + + * Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. + * PSU_DDRC_DFITMG0_DFI_RDDATA_USE_SDR 0x1 + + * Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks + * PSU_DDRC_DFITMG0_DFI_T_RDDATA_EN 0xb + + * Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. + * PSU_DDRC_DFITMG0_DFI_WRDATA_USE_SDR 0x1 + + * Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks + * PSU_DDRC_DFITMG0_DFI_TPHY_WRDATA 0x2 + + * Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. + * PSU_DDRC_DFITMG0_DFI_TPHY_WRLAT 0xb + + * DFI Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD070190, 0x1FBFBF3FU ,0x048B820BU) + */ + PSU_Mask_Write(DDRC_DFITMG0_OFFSET, 0x1FBFBF3FU, 0x048B820BU); +/*##################################################################### */ + + /* + * Register : DFITMG1 @ 0XFD070194 + + * Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated command is driven. This field is used + * for CAL mode, should be set to '0' or the value which matches the CAL mo + * de register setting in the DRAM. If the PHY can add the latency for CAL + * mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 + * PSU_DDRC_DFITMG1_DFI_T_CMD_LAT 0x0 + + * Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated dfi_parity_in signal is driven. + * PSU_DDRC_DFITMG1_DFI_T_PARIN_LAT 0x0 + + * Specifies the number of DFI clocks between when the dfi_wrdata_en signal + * is asserted and when the corresponding write data transfer is completed + * on the DRAM bus. This corresponds to the DFI timing parameter twrdata_d + * elay. Refer to PHY specification for correct value. For DFI 3.0 PHY, set + * to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI + * 2.1 PHY, set to tphy_wrdata + (delay of DFI write data to the DRAM). Va + * lue to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ_ + * RATIO=2, divide PHY's value by 2 and round up to next integer. If using + * DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Unit: Clocks + * PSU_DDRC_DFITMG1_DFI_T_WRDATA_DELAY 0x3 + + * Specifies the number of DFI clock cycles from the assertion of the dfi_d + * ram_clk_disable signal on the DFI until the clock to the DRAM memory dev + * ices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock + * and the memory clock are not phase aligned, this timing parameter should + * be rounded up to the next integer value. + * PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE 0x3 + + * Specifies the number of DFI clock cycles from the de-assertion of the df + * i_dram_clk_disable signal on the DFI until the first valid rising edge o + * f the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the + * DFI clock and the memory clock are not phase aligned, this timing param + * eter should be rounded up to the next integer value. + * PSU_DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE 0x4 + + * DFI Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD070194, 0xF31F0F0FU ,0x00030304U) + */ + PSU_Mask_Write(DDRC_DFITMG1_OFFSET, 0xF31F0F0FU, 0x00030304U); +/*##################################################################### */ + + /* + * Register : DFILPCFG0 @ 0XFD070198 + + * Setting for DFI's tlp_resp time. Same value is used for both Power Down, + * Self Refresh, Deep Power Down and Maximum Power Saving modes. DFI 2.1 s + * pecification onwards, recommends using a fixed value of 7 always. + * PSU_DDRC_DFILPCFG0_DFI_TLP_RESP 0x7 + + * Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is ente + * red. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 + * cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 5 + * 12 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - + * 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 6553 + * 6 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited T + * his is only present for designs supporting mDDR or LPDDR2/LPDDR3 devices + * . + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD 0x0 + + * Enables DFI Low Power interface handshaking during Deep Power Down Entry + * /Exit. - 0 - Disabled - 1 - Enabled This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3 devices. + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_DPD 0x0 + + * Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered + * . Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cyc + * les - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 + * cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 + * - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 c + * ycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR 0x0 + + * Enables DFI Low Power interface handshaking during Self Refresh Entry/Ex + * it. - 0 - Disabled - 1 - Enabled + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_SR 0x1 + + * Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. + * Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cycle + * s - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cy + * cles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - + * 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cyc + * les - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited + * PSU_DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD 0x0 + + * Enables DFI Low Power interface handshaking during Power Down Entry/Exit + * . - 0 - Disabled - 1 - Enabled + * PSU_DDRC_DFILPCFG0_DFI_LP_EN_PD 0x1 + + * DFI Low Power Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070198, 0x0FF1F1F1U ,0x07000101U) + */ + PSU_Mask_Write(DDRC_DFILPCFG0_OFFSET, 0x0FF1F1F1U, 0x07000101U); +/*##################################################################### */ + + /* + * Register : DFILPCFG1 @ 0XFD07019C + + * Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is + * entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 + * - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x + * 5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycl + * es - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - + * 65536 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimi + * ted This is only present for designs supporting DDR4 devices. + * PSU_DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM 0x2 + + * Enables DFI Low Power interface handshaking during Maximum Power Saving + * Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is only present for d + * esigns supporting DDR4 devices. + * PSU_DDRC_DFILPCFG1_DFI_LP_EN_MPSM 0x1 + + * DFI Low Power Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD07019C, 0x000000F1U ,0x00000021U) + */ + PSU_Mask_Write(DDRC_DFILPCFG1_OFFSET, 0x000000F1U, 0x00000021U); +/*##################################################################### */ + + /* + * Register : DFIUPD0 @ 0XFD0701A0 + + * When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * . The core must issue the dfi_ctrlupd_req signal using register reg_ddrc + * _ctrlupd. When '0', uMCTL2 issues dfi_ctrlupd_req periodically. + * PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD 0x0 + + * When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * following a self-refresh exit. The core must issue the dfi_ctrlupd_req + * signal using register reg_ddrc_ctrlupd. When '0', uMCTL2 issues a dfi_ct + * rlupd_req after exiting self-refresh. + * PSU_DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX 0x0 + + * Specifies the maximum number of clock cycles that the dfi_ctrlupd_req si + * gnal can assert. Lowest value to assign to this variable is 0x40. Unit: + * Clocks + * PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MAX 0x40 + + * Specifies the minimum number of clock cycles that the dfi_ctrlupd_req si + * gnal must be asserted. The uMCTL2 expects the PHY to respond within this + * time. If the PHY does not respond, the uMCTL2 will de-assert dfi_ctrlup + * d_req after dfi_t_ctrlup_min + 2 cycles. Lowest value to assign to this + * variable is 0x3. Unit: Clocks + * PSU_DDRC_DFIUPD0_DFI_T_CTRLUP_MIN 0x3 + + * DFI Update Register 0 + * (OFFSET, MASK, VALUE) (0XFD0701A0, 0xC3FF03FFU ,0x00400003U) + */ + PSU_Mask_Write(DDRC_DFIUPD0_OFFSET, 0xC3FF03FFU, 0x00400003U); +/*##################################################################### */ + + /* + * Register : DFIUPD1 @ 0XFD0701A4 + + * This is the minimum amount of time between uMCTL2 initiated DFI update r + * equests (which is executed whenever the uMCTL2 is idle). Set this number + * higher to reduce the frequency of update requests, which can have a sma + * ll impact on the latency of the first read request when the uMCTL2 is id + * le. Unit: 1024 clocks + * PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024 0x41 + + * This is the maximum amount of time between uMCTL2 initiated DFI update r + * equests. This timer resets with each update request; when the timer expi + * res dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd + * _ackx is received. PHY can use this idle time to recalibrate the delay l + * ines to the DLLs. The DFI controller update is also used to reset PHY FI + * FO pointers in case of data capture errors. Updates are required to main + * tain calibration over PVT, but frequent updates may impact performance. + * Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must + * be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x1024. Unit: 1024 cl + * ocks + * PSU_DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024 0xe1 + + * DFI Update Register 1 + * (OFFSET, MASK, VALUE) (0XFD0701A4, 0x00FF00FFU ,0x004100E1U) + */ + PSU_Mask_Write(DDRC_DFIUPD1_OFFSET, 0x00FF00FFU, 0x004100E1U); +/*##################################################################### */ + + /* + * Register : DFIMISC @ 0XFD0701B0 + + * Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signal + * s are active low - 1: Signals are active high + * PSU_DDRC_DFIMISC_DFI_DATA_CS_POLARITY 0x0 + + * DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. + * - 1 - PHY implements DBI functionality. Present only in designs configu + * red to support DDR4 and LPDDR4. + * PSU_DDRC_DFIMISC_PHY_DBI_MODE 0x0 + + * PHY initialization complete enable signal. When asserted the dfi_init_co + * mplete signal can be used to trigger SDRAM initialisation + * PSU_DDRC_DFIMISC_DFI_INIT_COMPLETE_EN 0x0 + + * DFI Miscellaneous Control Register + * (OFFSET, MASK, VALUE) (0XFD0701B0, 0x00000007U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DFIMISC_OFFSET, 0x00000007U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DFITMG2 @ 0XFD0701B4 + + * >Number of clocks between when a read command is sent on the DFI control + * interface and when the associated dfi_rddata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY spe + * cification for correct value. + * PSU_DDRC_DFITMG2_DFI_TPHY_RDCSLAT 0x9 + + * Number of clocks between when a write command is sent on the DFI control + * interface and when the associated dfi_wrdata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY spe + * cification for correct value. + * PSU_DDRC_DFITMG2_DFI_TPHY_WRCSLAT 0x6 + + * DFI Timing Register 2 + * (OFFSET, MASK, VALUE) (0XFD0701B4, 0x00003F3FU ,0x00000906U) + */ + PSU_Mask_Write(DDRC_DFITMG2_OFFSET, 0x00003F3FU, 0x00000906U); +/*##################################################################### */ + + /* + * Register : DBICTL @ 0XFD0701C0 + + * Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read D + * BI is enabled. This signal must be set the same value as DRAM's mode reg + * ister. - DDR4: MR5 bit A12. When x4 devices are used, this signal must b + * e set to 0. - LPDDR4: MR3[6] + * PSU_DDRC_DBICTL_RD_DBI_EN 0x0 + + * Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Writ + * e DBI is enabled. This signal must be set the same value as DRAM's mode + * register. - DDR4: MR5 bit A11. When x4 devices are used, this signal mus + * t be set to 0. - LPDDR4: MR3[7] + * PSU_DDRC_DBICTL_WR_DBI_EN 0x0 + + * DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. Thi + * s signal must be set the same logical value as DRAM's mode register. - D + * DR4: Set this to same value as MR5 bit A10. When x4 devices are used, th + * is signal must be set to 0. - LPDDR4: Set this to inverted value of MR13 + * [5] which is opposite polarity from this signal + * PSU_DDRC_DBICTL_DM_EN 0x1 + + * DM/DBI Control Register + * (OFFSET, MASK, VALUE) (0XFD0701C0, 0x00000007U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_DBICTL_OFFSET, 0x00000007U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : ADDRMAP0 @ 0XFD070200 + + * Selects the HIF address bit used as rank address bit 0. Valid Range: 0 t + * o 27, and 31 Internal Base: 6 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, r + * ank address bit 0 is set to 0. + * PSU_DDRC_ADDRMAP0_ADDRMAP_CS_BIT0 0x1f + + * Address Map Register 0 + * (OFFSET, MASK, VALUE) (0XFD070200, 0x0000001FU ,0x0000001FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP0_OFFSET, 0x0000001FU, 0x0000001FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP1 @ 0XFD070204 + + * Selects the HIF address bit used as bank address bit 2. Valid Range: 0 t + * o 29 and 31 Internal Base: 4 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, ba + * nk address bit 2 is set to 0. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B2 0x1f + + * Selects the HIF address bits used as bank address bit 1. Valid Range: 0 + * to 30 Internal Base: 3 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B1 0xa + + * Selects the HIF address bits used as bank address bit 0. Valid Range: 0 + * to 30 Internal Base: 2 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. + * PSU_DDRC_ADDRMAP1_ADDRMAP_BANK_B0 0xa + + * Address Map Register 1 + * (OFFSET, MASK, VALUE) (0XFD070204, 0x001F1F1FU ,0x001F0A0AU) + */ + PSU_Mask_Write(DDRC_ADDRMAP1_OFFSET, 0x001F1F1FU, 0x001F0A0AU); +/*##################################################################### */ + + /* + * Register : ADDRMAP2 @ 0XFD070208 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 5. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 6. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 7 . Valid Range: 0 to 7, and 15 Internal Base + * : 5 The selected HIF address bit is determined by adding the internal ba + * se to the value of this field. If set to 15, this column address bit is + * set to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B5 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 4. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 5. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 6. Valid Range: 0 to 7, and 15 Internal Base: + * 4 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B4 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 3. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 4. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 5. Valid Range: 0 to 7 Internal Base: 3 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=1 + * 6, it is required to program this to 0, hence register does not exist in + * this case. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B3 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 2. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 3. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 4. Valid Range: 0 to 7 Internal Base: 2 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 + * or 16, it is required to program this to 0. + * PSU_DDRC_ADDRMAP2_ADDRMAP_COL_B2 0x0 + + * Address Map Register 2 + * (OFFSET, MASK, VALUE) (0XFD070208, 0x0F0F0F0FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ADDRMAP2_OFFSET, 0x0F0F0F0FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ADDRMAP3 @ 0XFD07020C + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 9. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: + * Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/ + * LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected + * HIF address bit is determined by adding the internal base to the value o + * f this field. If set to 15, this column address bit is set to 0. Note: P + * er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved fo + * r indicating auto-precharge, and hence no source address bit can be mapp + * ed to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit + * for auto-precharge in the CA bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B9 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 8. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 9. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). Valid Range: 0 + * to 7, and 15 Internal Base: 8 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specifi + * cation, column address bit 10 is reserved for indicating auto-precharge, + * and hence no source address bit can be mapped to column address bit 10. + * In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA + * bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B8 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 7. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 8. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 9. Valid Range: 0 to 7, and 15 Internal Base: + * 7 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B7 0x0 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 6. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 7. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 8. Valid Range: 0 to 7, and 15 Internal Base: + * 6 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. + * PSU_DDRC_ADDRMAP3_ADDRMAP_COL_B6 0x0 + + * Address Map Register 3 + * (OFFSET, MASK, VALUE) (0XFD07020C, 0x0F0F0F0FU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_ADDRMAP3_OFFSET, 0x0F0F0F0FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ADDRMAP4 @ 0XFD070210 + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width mode: Unused. To m + * ake it unused, this should be tied to 4'hF. - Quarter bus width mode: Un + * used. To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, + * and 15 Internal Base: 11 The selected HIF address bit is determined by + * adding the internal base to the value of this field. If set to 15, this + * column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificatio + * n, column address bit 10 is reserved for indicating auto-precharge, and + * hence no source address bit can be mapped to column address bit 10. In L + * PDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus + * and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B11 0xf + + * - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width mode: Selects the + * HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode) + * . - Quarter bus width mode: UNUSED. To make it unused, this must be tied + * to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF + * address bit is determined by adding the internal base to the value of t + * his field. If set to 15, this column address bit is set to 0. Note: Per + * JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for i + * ndicating auto-precharge, and hence no source address bit can be mapped + * to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for + * auto-precharge in the CA bus and hence column bit 10 is used. + * PSU_DDRC_ADDRMAP4_ADDRMAP_COL_B10 0xf + + * Address Map Register 4 + * (OFFSET, MASK, VALUE) (0XFD070210, 0x00000F0FU ,0x00000F0FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP4_OFFSET, 0x00000F0FU, 0x00000F0FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP5 @ 0XFD070214 + + * Selects the HIF address bit used as row address bit 11. Valid Range: 0 t + * o 11, and 15 Internal Base: 17 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 11 is set to 0. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B11 0x8 + + * Selects the HIF address bits used as row address bits 2 to 10. Valid Ran + * ge: 0 to 11, and 15 Internal Base: 8 (for row address bit 2), 9 (for row + * address bit 3), 10 (for row address bit 4) etc increasing to 16 (for ro + * w address bit 10) The selected HIF address bit for each of the row addre + * ss bits is determined by adding the internal base to the value of this f + * ield. When value 15 is used the values of row address bits 2 to 10 are d + * efined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10 0xf + + * Selects the HIF address bits used as row address bit 1. Valid Range: 0 t + * o 11 Internal Base: 7 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B1 0x8 + + * Selects the HIF address bits used as row address bit 0. Valid Range: 0 t + * o 11 Internal Base: 6 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. + * PSU_DDRC_ADDRMAP5_ADDRMAP_ROW_B0 0x8 + + * Address Map Register 5 + * (OFFSET, MASK, VALUE) (0XFD070214, 0x0F0F0F0FU ,0x080F0808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP5_OFFSET, 0x0F0F0F0FU, 0x080F0808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP6 @ 0XFD070218 + + * Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 + * - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address having row[14:13]= + * =2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. + * All addresses are valid Present only in designs configured to support L + * PDDR3. + * PSU_DDRC_ADDRMAP6_LPDDR3_6GB_12GB 0x0 + + * Selects the HIF address bit used as row address bit 15. Valid Range: 0 t + * o 11, and 15 Internal Base: 21 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 15 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B15 0xf + + * Selects the HIF address bit used as row address bit 14. Valid Range: 0 t + * o 11, and 15 Internal Base: 20 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 14 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B14 0x8 + + * Selects the HIF address bit used as row address bit 13. Valid Range: 0 t + * o 11, and 15 Internal Base: 19 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 13 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B13 0x8 + + * Selects the HIF address bit used as row address bit 12. Valid Range: 0 t + * o 11, and 15 Internal Base: 18 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 12 is set to 0. + * PSU_DDRC_ADDRMAP6_ADDRMAP_ROW_B12 0x8 + + * Address Map Register 6 + * (OFFSET, MASK, VALUE) (0XFD070218, 0x8F0F0F0FU ,0x0F080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP6_OFFSET, 0x8F0F0F0FU, 0x0F080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP7 @ 0XFD07021C + + * Selects the HIF address bit used as row address bit 17. Valid Range: 0 t + * o 10, and 15 Internal Base: 23 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 17 is set to 0. + * PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B17 0xf + + * Selects the HIF address bit used as row address bit 16. Valid Range: 0 t + * o 11, and 15 Internal Base: 22 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 16 is set to 0. + * PSU_DDRC_ADDRMAP7_ADDRMAP_ROW_B16 0xf + + * Address Map Register 7 + * (OFFSET, MASK, VALUE) (0XFD07021C, 0x00000F0FU ,0x00000F0FU) + */ + PSU_Mask_Write(DDRC_ADDRMAP7_OFFSET, 0x00000F0FU, 0x00000F0FU); +/*##################################################################### */ + + /* + * Register : ADDRMAP8 @ 0XFD070220 + + * Selects the HIF address bits used as bank group address bit 1. Valid Ran + * ge: 0 to 30, and 31 Internal Base: 3 The selected HIF address bit for ea + * ch of the bank group address bits is determined by adding the internal b + * ase to the value of this field. If set to 31, bank group address bit 1 i + * s set to 0. + * PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B1 0x8 + + * Selects the HIF address bits used as bank group address bit 0. Valid Ran + * ge: 0 to 30 Internal Base: 2 The selected HIF address bit for each of th + * e bank group address bits is determined by adding the internal base to t + * he value of this field. + * PSU_DDRC_ADDRMAP8_ADDRMAP_BG_B0 0x8 + + * Address Map Register 8 + * (OFFSET, MASK, VALUE) (0XFD070220, 0x00001F1FU ,0x00000808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP8_OFFSET, 0x00001F1FU, 0x00000808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP9 @ 0XFD070224 + + * Selects the HIF address bits used as row address bit 5. Valid Range: 0 t + * o 11 Internal Base: 11 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B5 0x8 + + * Selects the HIF address bits used as row address bit 4. Valid Range: 0 t + * o 11 Internal Base: 10 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B4 0x8 + + * Selects the HIF address bits used as row address bit 3. Valid Range: 0 t + * o 11 Internal Base: 9 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B3 0x8 + + * Selects the HIF address bits used as row address bit 2. Valid Range: 0 t + * o 11 Internal Base: 8 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. + * PSU_DDRC_ADDRMAP9_ADDRMAP_ROW_B2 0x8 + + * Address Map Register 9 + * (OFFSET, MASK, VALUE) (0XFD070224, 0x0F0F0F0FU ,0x08080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP9_OFFSET, 0x0F0F0F0FU, 0x08080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP10 @ 0XFD070228 + + * Selects the HIF address bits used as row address bit 9. Valid Range: 0 t + * o 11 Internal Base: 15 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B9 0x8 + + * Selects the HIF address bits used as row address bit 8. Valid Range: 0 t + * o 11 Internal Base: 14 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B8 0x8 + + * Selects the HIF address bits used as row address bit 7. Valid Range: 0 t + * o 11 Internal Base: 13 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B7 0x8 + + * Selects the HIF address bits used as row address bit 6. Valid Range: 0 t + * o 11 Internal Base: 12 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. + * PSU_DDRC_ADDRMAP10_ADDRMAP_ROW_B6 0x8 + + * Address Map Register 10 + * (OFFSET, MASK, VALUE) (0XFD070228, 0x0F0F0F0FU ,0x08080808U) + */ + PSU_Mask_Write(DDRC_ADDRMAP10_OFFSET, 0x0F0F0F0FU, 0x08080808U); +/*##################################################################### */ + + /* + * Register : ADDRMAP11 @ 0XFD07022C + + * Selects the HIF address bits used as row address bit 10. Valid Range: 0 + * to 11 Internal Base: 16 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of + * this field. This register field is used only when ADDRMAP5.addrmap_row_b + * 2_10 is set to value 15. + * PSU_DDRC_ADDRMAP11_ADDRMAP_ROW_B10 0x8 + + * Address Map Register 11 + * (OFFSET, MASK, VALUE) (0XFD07022C, 0x0000000FU ,0x00000008U) + */ + PSU_Mask_Write(DDRC_ADDRMAP11_OFFSET, 0x0000000FU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : ODTCFG @ 0XFD070240 + + * Cycles to hold ODT for a write command. The minimum supported value is 2 + * . Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/667), 0x6 (DDR2-800 + * ), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (D + * DR2-1066) DDR3: - BL8: 0x6 DDR4: - BL8: 5 + WR_PREAMBLE + CRC_MODE WR_PR + * EAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 ( + * not CRC mode), 1 (CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_WR_ODT_HOLD 0x6 + + * The delay, in clock cycles, from issuing a write command to setting ODT + * values associated with that command. ODT setting must remain constant fo + * r the entire time that DQS is driven by the uMCTL2. Recommended values: + * DDR2: - CWL + AL - 3 (DDR2-400/533/667), CWL + AL - 4 (DDR2-800), CWL + + * AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT fo + * r write operation. DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust + * for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) + * PSU_DDRC_ODTCFG_WR_ODT_DELAY 0x0 + + * Cycles to hold ODT for a read command. The minimum supported value is 2. + * Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066), 0x7 (DDR2-1066) - + * BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8 + * : 5 + RD_PREAMBLE RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write p + * reamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + + * RU(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_RD_ODT_HOLD 0x6 + + * The delay, in clock cycles, from issuing a read command to setting ODT v + * alues associated with that command. ODT setting must remain constant for + * the entire time that DQS is driven by the uMCTL2. Recommended values: D + * DR2: - CL + AL - 4 (not DDR2-1066), CL + AL - 5 (DDR2-1066) If (CL + AL + * - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - C + * WL DDR4: - CL - CWL - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat + * (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK + * write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write pre + * amble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, uMCTL2 does not su + * pport ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - R + * U(tODTon(max)/tCK) + * PSU_DDRC_ODTCFG_RD_ODT_DELAY 0x0 + + * ODT Configuration Register + * (OFFSET, MASK, VALUE) (0XFD070240, 0x0F1F0F7CU ,0x06000600U) + */ + PSU_Mask_Write(DDRC_ODTCFG_OFFSET, 0x0F1F0F7CU, 0x06000600U); +/*##################################################################### */ + + /* + * Register : ODTMAP @ 0XFD070244 + + * Indicates which remote ODTs must be turned on during a read from rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. Present only in configurations that have 2 or more + * ranks + * PSU_DDRC_ODTMAP_RANK1_RD_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a write to rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. Present only in configurations that have 2 or more r + * anks + * PSU_DDRC_ODTMAP_RANK1_WR_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a read from rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. + * PSU_DDRC_ODTMAP_RANK0_RD_ODT 0x0 + + * Indicates which remote ODTs must be turned on during a write to rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. + * PSU_DDRC_ODTMAP_RANK0_WR_ODT 0x1 + + * ODT/Rank Map Register + * (OFFSET, MASK, VALUE) (0XFD070244, 0x00003333U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_ODTMAP_OFFSET, 0x00003333U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : SCHED @ 0XFD070250 + + * When the preferred transaction store is empty for these many clock cycle + * s, switch to the alternate transaction store if it is non-empty. The rea + * d transaction store (both high and low priority) is the default preferre + * d transaction store and the write transaction store is the alternative s + * tore. When prefer write over read is set this is reversed. 0x0 is a lega + * l value for this register. When set to 0x0, the transaction store switch + * ing will happen immediately when the switching conditions become true. F + * OR PERFORMANCE ONLY + * PSU_DDRC_SCHED_RDWR_IDLE_GAP 0x1 + + * UNUSED + * PSU_DDRC_SCHED_GO2CRITICAL_HYSTERESIS 0x0 + + * Number of entries in the low priority transaction store is this value + + * 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) is the number of ent + * ries available for the high priority transaction store. Setting this to + * maximum value allocates all entries to low priority transaction store. S + * etting this to 0 allocates 1 entry to low priority transaction store and + * the rest to high priority transaction store. Note: In ECC configuration + * s, the numbers of write and low priority read credits issued is one less + * than in the non-ECC case. One entry each is reserved in the write and l + * ow-priority read CAMs for storing the RMW requests arising out of single + * bit error correction RMW operation. + * PSU_DDRC_SCHED_LPR_NUM_ENTRIES 0x20 + + * If true, bank is kept open only while there are page hit transactions av + * ailable in the CAM to that bank. The last read or write command in the C + * AM with a bank and page hit will be executed with auto-precharge if SCHE + * D1.pageclose_timer=0. Even if this register set to 1 and SCHED1.pageclos + * e_timer is set to 0, explicit precharge (and not auto-precharge) may be + * issued in some cases where there is a mode switch between Write and Read + * or between LPR and HPR. The Read and Write commands that are executed a + * s part of the ECC scrub requests are also executed without auto-precharg + * e. If false, the bank remains open until there is a need to close it (to + * open a different page, or for page timeout or refresh timeout) - also k + * nown as open page policy. The open page policy can be overridden by sett + * ing the per-command-autopre bit on the HIF interface (hif_cmd_autopre). + * The pageclose feature provids a midway between Open and Close page polic + * ies. FOR PERFORMANCE ONLY. + * PSU_DDRC_SCHED_PAGECLOSE 0x0 + + * If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. + * PSU_DDRC_SCHED_PREFER_WRITE 0x0 + + * Active low signal. When asserted ('0'), all incoming transactions are fo + * rced to low priority. This implies that all High Priority Read (HPR) and + * Variable Priority Read commands (VPR) will be treated as Low Priority R + * ead (LPR) commands. On the write side, all Variable Priority Write (VPW) + * commands will be treated as Normal Priority Write (NPW) commands. Forci + * ng the incoming transactions to low priority implicitly turns off Bypass + * path for read commands. FOR PERFORMANCE ONLY. + * PSU_DDRC_SCHED_FORCE_LOW_PRI_N 0x1 + + * Scheduler Control Register + * (OFFSET, MASK, VALUE) (0XFD070250, 0x7FFF3F07U ,0x01002001U) + */ + PSU_Mask_Write(DDRC_SCHED_OFFSET, 0x7FFF3F07U, 0x01002001U); +/*##################################################################### */ + + /* + * Register : PERFLPR1 @ 0XFD070264 + + * Number of transactions that are serviced once the LPR queue goes critica + * l is the smaller of: - (a) This number - (b) Number of transactions avai + * lable. Unit: Transaction. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH 0x8 + + * Number of clocks that the LPR queue can be starved before it goes critic + * al. The minimum valid functional value for this register is 0x1. Program + * ming it to 0x0 will disable the starvation functionality; during normal + * operation, this function should not be disabled as it will cause excessi + * ve latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFLPR1_LPR_MAX_STARVE 0x40 + + * Low Priority Read CAM Register 1 + * (OFFSET, MASK, VALUE) (0XFD070264, 0xFF00FFFFU ,0x08000040U) + */ + PSU_Mask_Write(DDRC_PERFLPR1_OFFSET, 0xFF00FFFFU, 0x08000040U); +/*##################################################################### */ + + /* + * Register : PERFWR1 @ 0XFD07026C + + * Number of transactions that are serviced once the WR queue goes critical + * is the smaller of: - (a) This number - (b) Number of transactions avail + * able. Unit: Transaction. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFWR1_W_XACT_RUN_LENGTH 0x8 + + * Number of clocks that the WR queue can be starved before it goes critica + * l. The minimum valid functional value for this register is 0x1. Programm + * ing it to 0x0 will disable the starvation functionality; during normal o + * peration, this function should not be disabled as it will cause excessiv + * e latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. + * PSU_DDRC_PERFWR1_W_MAX_STARVE 0x40 + + * Write CAM Register 1 + * (OFFSET, MASK, VALUE) (0XFD07026C, 0xFF00FFFFU ,0x08000040U) + */ + PSU_Mask_Write(DDRC_PERFWR1_OFFSET, 0xFF00FFFFU, 0x08000040U); +/*##################################################################### */ + + /* + * Register : DQMAP0 @ 0XFD070280 + + * DQ nibble map for DQ bits [12-15] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15 0x0 + + * DQ nibble map for DQ bits [8-11] Present only in designs configured to s + * upport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11 0x0 + + * DQ nibble map for DQ bits [4-7] Present only in designs configured to su + * pport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7 0x0 + + * DQ nibble map for DQ bits [0-3] Present only in designs configured to su + * pport DDR4. + * PSU_DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3 0x0 + + * DQ Map Register 0 + * (OFFSET, MASK, VALUE) (0XFD070280, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP0_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP1 @ 0XFD070284 + + * DQ nibble map for DQ bits [28-31] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31 0x0 + + * DQ nibble map for DQ bits [24-27] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27 0x0 + + * DQ nibble map for DQ bits [20-23] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23 0x0 + + * DQ nibble map for DQ bits [16-19] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19 0x0 + + * DQ Map Register 1 + * (OFFSET, MASK, VALUE) (0XFD070284, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP1_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP2 @ 0XFD070288 + + * DQ nibble map for DQ bits [44-47] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47 0x0 + + * DQ nibble map for DQ bits [40-43] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43 0x0 + + * DQ nibble map for DQ bits [36-39] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39 0x0 + + * DQ nibble map for DQ bits [32-35] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35 0x0 + + * DQ Map Register 2 + * (OFFSET, MASK, VALUE) (0XFD070288, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP2_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP3 @ 0XFD07028C + + * DQ nibble map for DQ bits [60-63] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63 0x0 + + * DQ nibble map for DQ bits [56-59] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59 0x0 + + * DQ nibble map for DQ bits [52-55] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55 0x0 + + * DQ nibble map for DQ bits [48-51] Present only in designs configured to + * support DDR4. + * PSU_DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51 0x0 + + * DQ Map Register 3 + * (OFFSET, MASK, VALUE) (0XFD07028C, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP3_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP4 @ 0XFD070290 + + * DQ nibble map for DIMM ECC check bits [4-7] Present only in designs conf + * igured to support DDR4. + * PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7 0x0 + + * DQ nibble map for DIMM ECC check bits [0-3] Present only in designs conf + * igured to support DDR4. + * PSU_DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3 0x0 + + * DQ Map Register 4 + * (OFFSET, MASK, VALUE) (0XFD070290, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DQMAP4_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DQMAP5 @ 0XFD070294 + + * All even ranks have the same DQ mapping controled by DQMAP0-4 register a + * s rank 0. This register provides DQ swap function for all odd ranks to s + * upport CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap b + * it 2 with 3, swap bit 4 with 5 and swap bit 6 with 7. 1: Disable rank ba + * sed DQ swapping 0: Enable rank based DQ swapping Present only in designs + * configured to support DDR4. + * PSU_DDRC_DQMAP5_DIS_DQ_RANK_SWAP 0x1 + + * DQ Map Register 5 + * (OFFSET, MASK, VALUE) (0XFD070294, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_DQMAP5_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : DBG0 @ 0XFD070300 + + * When this is set to '0', auto-precharge is disabled for the flushed comm + * and in a collision case. Collision cases are write followed by read to s + * ame address, read followed by write to same address, or write followed b + * y write to same address with DBG0.dis_wc bit = 1 (where same address com + * parisons exclude the two address bits representing critical word). FOR D + * EBUG ONLY. + * PSU_DDRC_DBG0_DIS_COLLISION_PAGE_OPT 0x0 + + * When 1, disable write combine. FOR DEBUG ONLY + * PSU_DDRC_DBG0_DIS_WC 0x0 + + * Debug Register 0 + * (OFFSET, MASK, VALUE) (0XFD070300, 0x00000011U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DBG0_OFFSET, 0x00000011U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : DBGCMD @ 0XFD07030C + + * Setting this register bit to 1 allows refresh and ZQCS commands to be tr + * iggered from hardware via the IOs ext_*. If set to 1, the fields DBGCMD. + * zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignore + * d by the uMCTL2 logic. Setting this register bit to 0 allows refresh and + * ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_shor + * t and DBGCMD.rank*_refresh. If set to 0, the hardware pins ext_* have no + * function, and are ignored by the uMCTL2 logic. This register is static, + * and may only be changed when the DDRC reset signal, core_ddrc_rstn, is + * asserted (0). + * PSU_DDRC_DBGCMD_HW_REF_ZQ_EN 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ct + * rlupd_req to the PHY. When this request is stored in the uMCTL2, the bit + * is automatically cleared. This operation must only be performed when DF + * IUPD0.dis_auto_ctrlupd=1. + * PSU_DDRC_DBGCMD_CTRLUPD 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS ( + * ZQ calibration short)/MPC(ZQ calibration) command to the SDRAM. When thi + * s request is stored in the uMCTL2, the bit is automatically cleared. Thi + * s operation can be performed only when ZQCTL0.dis_auto_zq=1. It is recom + * mended NOT to set this register bit if in Init operating mode. This regi + * ster bit is ignored when in Self-Refresh(except LPDDR4) and SR-Powerdown + * (LPDDR4) and Deep power-down operating modes and Maximum Power Saving Mo + * de. + * PSU_DDRC_DBGCMD_ZQ_CALIB_SHORT 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 1. Writing to this bit causes DBGSTAT.rank1_refresh_busy to be + * set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. + * PSU_DDRC_DBGCMD_RANK1_REFRESH 0x0 + + * Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 0. Writing to this bit causes DBGSTAT.rank0_refresh_busy to be + * set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. + * PSU_DDRC_DBGCMD_RANK0_REFRESH 0x0 + + * Command Debug Register + * (OFFSET, MASK, VALUE) (0XFD07030C, 0x80000033U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_DBGCMD_OFFSET, 0x80000033U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SWCTL @ 0XFD070320 + + * Enable quasi-dynamic register programming outside reset. Program registe + * r to 0 to enable quasi-dynamic programming. Set back register to 1 once + * programming is done. + * PSU_DDRC_SWCTL_SW_DONE 0x0 + + * Software register programming control enable + * (OFFSET, MASK, VALUE) (0XFD070320, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SWCTL_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCCFG @ 0XFD070400 + + * Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expand + * s every AXI burst into multiple HIF commands, using the memory burst len + * gth as a unit. If set to 1, then XPI will use half of the memory burst l + * ength as a unit. This applies to both reads and writes. When MSTR.data_b + * us_width==00, setting bl_exp_mode to 1 has no effect. This can be used i + * n cases where Partial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.d + * is_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_ccd + * _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionali + * ty is not supported in the following cases: - UMCTL2_PARTIAL_WR=0 - UMCT + * L2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 an + * d MSTR.reg_ddrc_burst_rdwr=1000 (LPDDR4 only) - UMCTL2_PARTIAL_WR=1, MST + * R.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burs + * t_rdwr=0100 (DDR4 only), with either MSTR.reg_ddrc_burstchop=0 or CRCPAR + * CTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Shared + * -AC is enabled + * PSU_DDRC_PCCFG_BL_EXP_MODE 0x0 + + * Page match four limit. If set to 1, limits the number of consecutive sam + * e page DDRC transactions that can be granted by the Port Arbiter to four + * when Page Match feature is enabled. If set to 0, there is no limit impo + * sed on number of consecutive same page DDRC transactions. + * PSU_DDRC_PCCFG_PAGEMATCH_LIMIT 0x0 + + * If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_l + * pr/co_gs_go2critical_hpr signals going to DDRC based on urgent input (aw + * urgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_ + * go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals a + * t DDRC are driven to 1b'0. + * PSU_DDRC_PCCFG_GO2CRITICAL_EN 0x1 + + * Port Common Configuration Register + * (OFFSET, MASK, VALUE) (0XFD070400, 0x00000111U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCCFG_OFFSET, 0x00000111U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGR_0 @ 0XFD070404 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_0_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_0_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_0_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070404, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_0_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_0 @ 0XFD070408 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_0_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_0_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_0_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070408, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_0_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_0 @ 0XFD070490 + + * Enables port n. + * PSU_DDRC_PCTRL_0_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070490, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_0_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_0 @ 0XFD070494 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION1 0x2 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1 0xb + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070494, 0x0033000FU ,0x0020000BU) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_0_OFFSET, 0x0033000FU, 0x0020000BU); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_0 @ 0XFD070498 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070498, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_0_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_1 @ 0XFD0704B4 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_1_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_1_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_1_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD0704B4, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_1_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_1 @ 0XFD0704B8 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_1_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_1_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_1_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD0704B8, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_1_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_1 @ 0XFD070540 + + * Enables port n. + * PSU_DDRC_PCTRL_1_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070540, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_1_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_1 @ 0XFD070544 + + * This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION2 0x2 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION1 0x0 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_REGION0 0x0 + + * Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2 0xb + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070544, 0x03330F0FU ,0x02000B03U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_1_OFFSET, 0x03330F0FU, 0x02000B03U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_1 @ 0XFD070548 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070548, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_1_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_2 @ 0XFD070564 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_2_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_2_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_2_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070564, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_2_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_2 @ 0XFD070568 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_2_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_2_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_2_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070568, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_2_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_2 @ 0XFD0705F0 + + * Enables port n. + * PSU_DDRC_PCTRL_2_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD0705F0, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_2_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_2 @ 0XFD0705F4 + + * This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION2 0x2 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION1 0x0 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_REGION0 0x0 + + * Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2 0xb + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0705F4, 0x03330F0FU ,0x02000B03U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_2_OFFSET, 0x03330F0FU, 0x02000B03U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_2 @ 0XFD0705F8 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB 0x0 + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0705F8, 0x07FF07FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_2_OFFSET, 0x07FF07FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : PCFGR_3 @ 0XFD070614 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_3_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_3_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_3_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070614, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_3_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_3 @ 0XFD070618 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_3_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_3_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_3_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070618, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_3_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_3 @ 0XFD0706A0 + + * Enables port n. + * PSU_DDRC_PCTRL_3_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD0706A0, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_3_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_3 @ 0XFD0706A4 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0706A4, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_3_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_3 @ 0XFD0706A8 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0706A8, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_3_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_3 @ 0XFD0706AC + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD0706AC, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_3_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_3 @ 0XFD0706B0 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD0706B0, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_3_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGR_4 @ 0XFD0706C4 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_4_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_4_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_4_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD0706C4, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_4_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_4 @ 0XFD0706C8 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_4_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_4_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_4_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD0706C8, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_4_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_4 @ 0XFD070750 + + * Enables port n. + * PSU_DDRC_PCTRL_4_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070750, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_4_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_4 @ 0XFD070754 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070754, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_4_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_4 @ 0XFD070758 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070758, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_4_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_4 @ 0XFD07075C + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD07075C, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_4_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_4 @ 0XFD070760 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070760, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_4_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGR_5 @ 0XFD070774 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). + * PSU_DDRC_PCFGR_5_RD_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the read channel of the port. + * PSU_DDRC_PCFGR_5_RD_PORT_AGING_EN 0x0 + + * Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. + * PSU_DDRC_PCFGR_5_RD_PORT_PRIORITY 0xf + + * Port n Configuration Read Register + * (OFFSET, MASK, VALUE) (0XFD070774, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGR_5_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCFGW_5 @ 0XFD070778 + + * If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. + * PSU_DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN 0x0 + + * If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). + * PSU_DDRC_PCFGW_5_WR_PORT_URGENT_EN 0x1 + + * If set to 1, enables aging function for the write channel of the port. + * PSU_DDRC_PCFGW_5_WR_PORT_AGING_EN 0x0 + + * Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. + * PSU_DDRC_PCFGW_5_WR_PORT_PRIORITY 0xf + + * Port n Configuration Write Register + * (OFFSET, MASK, VALUE) (0XFD070778, 0x000073FFU ,0x0000200FU) + */ + PSU_Mask_Write(DDRC_PCFGW_5_OFFSET, 0x000073FFU, 0x0000200FU); +/*##################################################################### */ + + /* + * Register : PCTRL_5 @ 0XFD070800 + + * Enables port n. + * PSU_DDRC_PCTRL_5_PORT_EN 0x1 + + * Port n Control Register + * (OFFSET, MASK, VALUE) (0XFD070800, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(DDRC_PCTRL_5_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : PCFGQOS0_5 @ 0XFD070804 + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_REGION0 0x0 + + * Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. + * PSU_DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1 0x3 + + * Port n Read QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD070804, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGQOS0_5_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGQOS1_5 @ 0XFD070808 + + * Specifies the timeout value for transactions mapped to the red address q + * ueue. + * PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR 0x0 + + * Specifies the timeout value for transactions mapped to the blue address + * queue. + * PSU_DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB 0x4f + + * Port n Read QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070808, 0x07FF07FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGQOS1_5_OFFSET, 0x07FF07FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : PCFGWQOS0_5 @ 0XFD07080C + + * This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1 0x1 + + * This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0 0x0 + + * Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. + * PSU_DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL 0x3 + + * Port n Write QoS Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD07080C, 0x0033000FU ,0x00100003U) + */ + PSU_Mask_Write(DDRC_PCFGWQOS0_5_OFFSET, 0x0033000FU, 0x00100003U); +/*##################################################################### */ + + /* + * Register : PCFGWQOS1_5 @ 0XFD070810 + + * Specifies the timeout value for write transactions. + * PSU_DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT 0x4f + + * Port n Write QoS Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD070810, 0x000007FFU ,0x0000004FU) + */ + PSU_Mask_Write(DDRC_PCFGWQOS1_5_OFFSET, 0x000007FFU, 0x0000004FU); +/*##################################################################### */ + + /* + * Register : SARBASE0 @ 0XFD070F04 + + * Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + * PSU_DDRC_SARBASE0_BASE_ADDR 0x0 + + * SAR Base Address Register n + * (OFFSET, MASK, VALUE) (0XFD070F04, 0x000001FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SARBASE0_OFFSET, 0x000001FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SARSIZE0 @ 0XFD070F08 + + * Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. + * PSU_DDRC_SARSIZE0_NBLOCKS 0x0 + + * SAR Size Register n + * (OFFSET, MASK, VALUE) (0XFD070F08, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(DDRC_SARSIZE0_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SARBASE1 @ 0XFD070F0C + + * Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). + * PSU_DDRC_SARBASE1_BASE_ADDR 0x10 + + * SAR Base Address Register n + * (OFFSET, MASK, VALUE) (0XFD070F0C, 0x000001FFU ,0x00000010U) + */ + PSU_Mask_Write(DDRC_SARBASE1_OFFSET, 0x000001FFU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : SARSIZE1 @ 0XFD070F10 + + * Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. + * PSU_DDRC_SARSIZE1_NBLOCKS 0xf + + * SAR Size Register n + * (OFFSET, MASK, VALUE) (0XFD070F10, 0x000000FFU ,0x0000000FU) + */ + PSU_Mask_Write(DDRC_SARSIZE1_OFFSET, 0x000000FFU, 0x0000000FU); +/*##################################################################### */ + + /* + * Register : DFITMG0_SHADOW @ 0XFD072190 + + * Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. + * PSU_DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY 0x7 + + * Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. + * PSU_DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR 0x1 + + * Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks + * PSU_DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN 0x2 + + * Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. + * PSU_DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR 0x1 + + * Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks + * PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA 0x0 + + * Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. + * PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT 0x2 + + * DFI Timing Shadow Register 0 + * (OFFSET, MASK, VALUE) (0XFD072190, 0x1FBFBF3FU ,0x07828002U) + */ + PSU_Mask_Write(DDRC_DFITMG0_SHADOW_OFFSET, 0x1FBFBF3FU, 0x07828002U); +/*##################################################################### */ + + /* + * DDR CONTROLLER RESET + */ + /* + * Register : RST_DDR_SS @ 0XFD1A0108 + + * DDR block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X0 + + * APM block level reset inside of the DDR Sub System + * PSU_CRF_APB_RST_DDR_SS_APM_RESET 0X0 + + * DDR sub system block level reset + * (OFFSET, MASK, VALUE) (0XFD1A0108, 0x0000000CU ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_DDR_SS_OFFSET, 0x0000000CU, 0x00000000U); +/*##################################################################### */ + + /* + * DDR PHY + */ + /* + * Register : PGCR0 @ 0XFD080010 + + * Address Copy + * PSU_DDR_PHY_PGCR0_ADCP 0x0 + + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_30_27 0x0 + + * PHY FIFO Reset + * PSU_DDR_PHY_PGCR0_PHYFRST 0x1 + + * Oscillator Mode Address/Command Delay Line Select + * PSU_DDR_PHY_PGCR0_OSCACDL 0x3 + + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_23_19 0x0 + + * Digital Test Output Select + * PSU_DDR_PHY_PGCR0_DTOSEL 0x0 - RegVal = ((0x0000000FU << DDRC_SARSIZE1_NBLOCKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_SARSIZE1_OFFSET ,0x000000FFU ,0x0000000FU); - /*############################################################################################################################ */ + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_13 0x0 - /*Register : DFITMG0_SHADOW @ 0XFD072190

      + * Oscillator Mode Division + * PSU_DDR_PHY_PGCR0_OSCDIV 0xf - Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock. - PSU_DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY 0x7 - - Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value. - PSU_DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR 0x1 - - Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks - PSU_DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN 0x2 - - Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e. - PSU_DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR 0x1 - - Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks - PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA 0x0 - - Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM. - PSU_DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT 0x2 + * Oscillator Enable + * PSU_DDR_PHY_PGCR0_OSCEN 0x0 - DFI Timing Shadow Register 0 - (OFFSET, MASK, VALUE) (0XFD072190, 0x1FBFBF3FU ,0x07828002U) - RegMask = (DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK | DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK | DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK | DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK | DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK | DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK | 0 ); + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PGCR0_RESERVED_7_0 0x0 - RegVal = ((0x00000007U << DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT - | 0x00000001U << DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT - | 0x00000002U << DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT - | 0x00000001U << DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT - | 0x00000000U << DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT - | 0x00000002U << DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDRC_DFITMG0_SHADOW_OFFSET ,0x1FBFBF3FU ,0x07828002U); - /*############################################################################################################################ */ - - // : DDR CONTROLLER RESET - /*Register : RST_DDR_SS @ 0XFD1A0108

      - - DDR block level reset inside of the DDR Sub System - PSU_CRF_APB_RST_DDR_SS_DDR_RESET 0X0 - - DDR sub system block level reset - (OFFSET, MASK, VALUE) (0XFD1A0108, 0x00000008U ,0x00000000U) - RegMask = (CRF_APB_RST_DDR_SS_DDR_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_DDR_SS_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ - - // : DDR PHY - /*Register : PGCR0 @ 0XFD080010

      - - Address Copy - PSU_DDR_PHY_PGCR0_ADCP 0x0 - - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_30_27 0x0 - - PHY FIFO Reset - PSU_DDR_PHY_PGCR0_PHYFRST 0x1 - - Oscillator Mode Address/Command Delay Line Select - PSU_DDR_PHY_PGCR0_OSCACDL 0x3 - - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_23_19 0x0 + * PHY General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080010, 0xFFFFFFFFU ,0x07001E00U) + */ + PSU_Mask_Write(DDR_PHY_PGCR0_OFFSET, 0xFFFFFFFFU, 0x07001E00U); +/*##################################################################### */ - Digital Test Output Select - PSU_DDR_PHY_PGCR0_DTOSEL 0x0 + /* + * Register : PGCR2 @ 0XFD080018 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_13 0x0 + * Clear Training Status Registers + * PSU_DDR_PHY_PGCR2_CLRTSTAT 0x0 - Oscillator Mode Division - PSU_DDR_PHY_PGCR0_OSCDIV 0xf + * Clear Impedance Calibration + * PSU_DDR_PHY_PGCR2_CLRZCAL 0x0 - Oscillator Enable - PSU_DDR_PHY_PGCR0_OSCEN 0x0 + * Clear Parity Error + * PSU_DDR_PHY_PGCR2_CLRPERR 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PGCR0_RESERVED_7_0 0x0 + * Initialization Complete Pin Configuration + * PSU_DDR_PHY_PGCR2_ICPC 0x0 - PHY General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080010, 0xFFFFFFFFU ,0x07001E00U) - RegMask = (DDR_PHY_PGCR0_ADCP_MASK | DDR_PHY_PGCR0_RESERVED_30_27_MASK | DDR_PHY_PGCR0_PHYFRST_MASK | DDR_PHY_PGCR0_OSCACDL_MASK | DDR_PHY_PGCR0_RESERVED_23_19_MASK | DDR_PHY_PGCR0_DTOSEL_MASK | DDR_PHY_PGCR0_RESERVED_13_MASK | DDR_PHY_PGCR0_OSCDIV_MASK | DDR_PHY_PGCR0_OSCEN_MASK | DDR_PHY_PGCR0_RESERVED_7_0_MASK | 0 ); + * Data Training PUB Mode Exit Timer + * PSU_DDR_PHY_PGCR2_DTPMXTMR 0xf - RegVal = ((0x00000000U << DDR_PHY_PGCR0_ADCP_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_30_27_SHIFT - | 0x00000001U << DDR_PHY_PGCR0_PHYFRST_SHIFT - | 0x00000003U << DDR_PHY_PGCR0_OSCACDL_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_23_19_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_DTOSEL_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_13_SHIFT - | 0x0000000FU << DDR_PHY_PGCR0_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_OSCEN_SHIFT - | 0x00000000U << DDR_PHY_PGCR0_RESERVED_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR0_OFFSET ,0xFFFFFFFFU ,0x07001E00U); - /*############################################################################################################################ */ - - /*Register : PGCR2 @ 0XFD080018

      + * Initialization Bypass + * PSU_DDR_PHY_PGCR2_INITFSMBYP 0x0 - Clear Training Status Registers - PSU_DDR_PHY_PGCR2_CLRTSTAT 0x0 + * PLL FSM Bypass + * PSU_DDR_PHY_PGCR2_PLLFSMBYP 0x0 - Clear Impedance Calibration - PSU_DDR_PHY_PGCR2_CLRZCAL 0x0 + * Refresh Period + * PSU_DDR_PHY_PGCR2_TREFPRD 0x10010 - Clear Parity Error - PSU_DDR_PHY_PGCR2_CLRPERR 0x0 + * PHY General Configuration Register 2 + * (OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10010U) + */ + PSU_Mask_Write(DDR_PHY_PGCR2_OFFSET, 0xFFFFFFFFU, 0x00F10010U); +/*##################################################################### */ - Initialization Complete Pin Configuration - PSU_DDR_PHY_PGCR2_ICPC 0x0 + /* + * Register : PGCR3 @ 0XFD08001C - Data Training PUB Mode Exit Timer - PSU_DDR_PHY_PGCR2_DTPMXTMR 0xf + * CKN Enable + * PSU_DDR_PHY_PGCR3_CKNEN 0x55 - Initialization Bypass - PSU_DDR_PHY_PGCR2_INITFSMBYP 0x0 + * CK Enable + * PSU_DDR_PHY_PGCR3_CKEN 0xaa - PLL FSM Bypass - PSU_DDR_PHY_PGCR2_PLLFSMBYP 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR3_RESERVED_15 0x0 - Refresh Period - PSU_DDR_PHY_PGCR2_TREFPRD 0x10028 + * Enable Clock Gating for AC [0] ctl_rd_clk + * PSU_DDR_PHY_PGCR3_GATEACRDCLK 0x2 - PHY General Configuration Register 2 - (OFFSET, MASK, VALUE) (0XFD080018, 0xFFFFFFFFU ,0x00F10028U) - RegMask = (DDR_PHY_PGCR2_CLRTSTAT_MASK | DDR_PHY_PGCR2_CLRZCAL_MASK | DDR_PHY_PGCR2_CLRPERR_MASK | DDR_PHY_PGCR2_ICPC_MASK | DDR_PHY_PGCR2_DTPMXTMR_MASK | DDR_PHY_PGCR2_INITFSMBYP_MASK | DDR_PHY_PGCR2_PLLFSMBYP_MASK | DDR_PHY_PGCR2_TREFPRD_MASK | 0 ); + * Enable Clock Gating for AC [0] ddr_clk + * PSU_DDR_PHY_PGCR3_GATEACDDRCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_PGCR2_CLRTSTAT_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_CLRZCAL_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_CLRPERR_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_ICPC_SHIFT - | 0x0000000FU << DDR_PHY_PGCR2_DTPMXTMR_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_INITFSMBYP_SHIFT - | 0x00000000U << DDR_PHY_PGCR2_PLLFSMBYP_SHIFT - | 0x00010028U << DDR_PHY_PGCR2_TREFPRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR2_OFFSET ,0xFFFFFFFFU ,0x00F10028U); - /*############################################################################################################################ */ + * Enable Clock Gating for AC [0] ctl_clk + * PSU_DDR_PHY_PGCR3_GATEACCTLCLK 0x2 - /*Register : PGCR3 @ 0XFD08001C

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR3_RESERVED_8 0x0 - CKN Enable - PSU_DDR_PHY_PGCR3_CKNEN 0x55 + * Controls DDL Bypass Modes + * PSU_DDR_PHY_PGCR3_DDLBYPMODE 0x2 - CK Enable - PSU_DDR_PHY_PGCR3_CKEN 0xaa + * IO Loop-Back Select + * PSU_DDR_PHY_PGCR3_IOLB 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR3_RESERVED_15 0x0 + * AC Receive FIFO Read Mode + * PSU_DDR_PHY_PGCR3_RDMODE 0x0 - Enable Clock Gating for AC [0] ctl_rd_clk - PSU_DDR_PHY_PGCR3_GATEACRDCLK 0x2 + * Read FIFO Reset Disable + * PSU_DDR_PHY_PGCR3_DISRST 0x0 - Enable Clock Gating for AC [0] ddr_clk - PSU_DDR_PHY_PGCR3_GATEACDDRCLK 0x2 + * Clock Level when Clock Gating + * PSU_DDR_PHY_PGCR3_CLKLEVEL 0x0 - Enable Clock Gating for AC [0] ctl_clk - PSU_DDR_PHY_PGCR3_GATEACCTLCLK 0x2 + * PHY General Configuration Register 3 + * (OFFSET, MASK, VALUE) (0XFD08001C, 0xFFFFFFFFU ,0x55AA5480U) + */ + PSU_Mask_Write(DDR_PHY_PGCR3_OFFSET, 0xFFFFFFFFU, 0x55AA5480U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR3_RESERVED_8 0x0 + /* + * Register : PGCR5 @ 0XFD080024 - Controls DDL Bypass Modes - PSU_DDR_PHY_PGCR3_DDLBYPMODE 0x2 + * Frequency B Ratio Term + * PSU_DDR_PHY_PGCR5_FRQBT 0x1 - IO Loop-Back Select - PSU_DDR_PHY_PGCR3_IOLB 0x0 + * Frequency A Ratio Term + * PSU_DDR_PHY_PGCR5_FRQAT 0x1 - AC Receive FIFO Read Mode - PSU_DDR_PHY_PGCR3_RDMODE 0x0 + * DFI Disconnect Time Period + * PSU_DDR_PHY_PGCR5_DISCNPERIOD 0x0 - Read FIFO Reset Disable - PSU_DDR_PHY_PGCR3_DISRST 0x0 + * Receiver bias core side control + * PSU_DDR_PHY_PGCR5_VREF_RBCTRL 0xf - Clock Level when Clock Gating - PSU_DDR_PHY_PGCR3_CLKLEVEL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PGCR5_RESERVED_3 0x0 - PHY General Configuration Register 3 - (OFFSET, MASK, VALUE) (0XFD08001C, 0xFFFFFFFFU ,0x55AA5480U) - RegMask = (DDR_PHY_PGCR3_CKNEN_MASK | DDR_PHY_PGCR3_CKEN_MASK | DDR_PHY_PGCR3_RESERVED_15_MASK | DDR_PHY_PGCR3_GATEACRDCLK_MASK | DDR_PHY_PGCR3_GATEACDDRCLK_MASK | DDR_PHY_PGCR3_GATEACCTLCLK_MASK | DDR_PHY_PGCR3_RESERVED_8_MASK | DDR_PHY_PGCR3_DDLBYPMODE_MASK | DDR_PHY_PGCR3_IOLB_MASK | DDR_PHY_PGCR3_RDMODE_MASK | DDR_PHY_PGCR3_DISRST_MASK | DDR_PHY_PGCR3_CLKLEVEL_MASK | 0 ); + * Internal VREF generator REFSEL ragne select + * PSU_DDR_PHY_PGCR5_DXREFISELRANGE 0x1 - RegVal = ((0x00000055U << DDR_PHY_PGCR3_CKNEN_SHIFT - | 0x000000AAU << DDR_PHY_PGCR3_CKEN_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RESERVED_15_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACRDCLK_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RESERVED_8_SHIFT - | 0x00000002U << DDR_PHY_PGCR3_DDLBYPMODE_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_IOLB_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_DISRST_SHIFT - | 0x00000000U << DDR_PHY_PGCR3_CLKLEVEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR3_OFFSET ,0xFFFFFFFFU ,0x55AA5480U); - /*############################################################################################################################ */ + * DDL Page Read Write select + * PSU_DDR_PHY_PGCR5_DDLPGACT 0x0 - /*Register : PGCR5 @ 0XFD080024

      + * DDL Page Read Write select + * PSU_DDR_PHY_PGCR5_DDLPGRW 0x0 - Frequency B Ratio Term - PSU_DDR_PHY_PGCR5_FRQBT 0x1 + * PHY General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080024, 0xFFFFFFFFU ,0x010100F4U) + */ + PSU_Mask_Write(DDR_PHY_PGCR5_OFFSET, 0xFFFFFFFFU, 0x010100F4U); +/*##################################################################### */ - Frequency A Ratio Term - PSU_DDR_PHY_PGCR5_FRQAT 0x1 + /* + * Register : PTR0 @ 0XFD080040 - DFI Disconnect Time Period - PSU_DDR_PHY_PGCR5_DISCNPERIOD 0x0 + * PLL Power-Down Time + * PSU_DDR_PHY_PTR0_TPLLPD 0x56 - Receiver bias core side control - PSU_DDR_PHY_PGCR5_VREF_RBCTRL 0xf + * PLL Gear Shift Time + * PSU_DDR_PHY_PTR0_TPLLGS 0x2155 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PGCR5_RESERVED_3 0x0 + * PHY Reset Time + * PSU_DDR_PHY_PTR0_TPHYRST 0x10 - Internal VREF generator REFSEL ragne select - PSU_DDR_PHY_PGCR5_DXREFISELRANGE 0x1 + * PHY Timing Register 0 + * (OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x0AC85550U) + */ + PSU_Mask_Write(DDR_PHY_PTR0_OFFSET, 0xFFFFFFFFU, 0x0AC85550U); +/*##################################################################### */ - DDL Page Read Write select - PSU_DDR_PHY_PGCR5_DDLPGACT 0x0 + /* + * Register : PTR1 @ 0XFD080044 - DDL Page Read Write select - PSU_DDR_PHY_PGCR5_DDLPGRW 0x0 + * PLL Lock Time + * PSU_DDR_PHY_PTR1_TPLLLOCK 0x4141 - PHY General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080024, 0xFFFFFFFFU ,0x010100F4U) - RegMask = (DDR_PHY_PGCR5_FRQBT_MASK | DDR_PHY_PGCR5_FRQAT_MASK | DDR_PHY_PGCR5_DISCNPERIOD_MASK | DDR_PHY_PGCR5_VREF_RBCTRL_MASK | DDR_PHY_PGCR5_RESERVED_3_MASK | DDR_PHY_PGCR5_DXREFISELRANGE_MASK | DDR_PHY_PGCR5_DDLPGACT_MASK | DDR_PHY_PGCR5_DDLPGRW_MASK | 0 ); + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_PTR1_RESERVED_15_13 0x0 - RegVal = ((0x00000001U << DDR_PHY_PGCR5_FRQBT_SHIFT - | 0x00000001U << DDR_PHY_PGCR5_FRQAT_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DISCNPERIOD_SHIFT - | 0x0000000FU << DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_RESERVED_3_SHIFT - | 0x00000001U << DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DDLPGACT_SHIFT - | 0x00000000U << DDR_PHY_PGCR5_DDLPGRW_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PGCR5_OFFSET ,0xFFFFFFFFU ,0x010100F4U); - /*############################################################################################################################ */ + * PLL Reset Time + * PSU_DDR_PHY_PTR1_TPLLRST 0xaff - /*Register : PTR0 @ 0XFD080040

      + * PHY Timing Register 1 + * (OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x41410AFFU) + */ + PSU_Mask_Write(DDR_PHY_PTR1_OFFSET, 0xFFFFFFFFU, 0x41410AFFU); +/*##################################################################### */ - PLL Power-Down Time - PSU_DDR_PHY_PTR0_TPLLPD 0x2f0 + /* + * Register : PLLCR0 @ 0XFD080068 - PLL Gear Shift Time - PSU_DDR_PHY_PTR0_TPLLGS 0x60 + * PLL Bypass + * PSU_DDR_PHY_PLLCR0_PLLBYP 0x0 - PHY Reset Time - PSU_DDR_PHY_PTR0_TPHYRST 0x10 + * PLL Reset + * PSU_DDR_PHY_PLLCR0_PLLRST 0x0 - PHY Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080040, 0xFFFFFFFFU ,0x5E001810U) - RegMask = (DDR_PHY_PTR0_TPLLPD_MASK | DDR_PHY_PTR0_TPLLGS_MASK | DDR_PHY_PTR0_TPHYRST_MASK | 0 ); + * PLL Power Down + * PSU_DDR_PHY_PLLCR0_PLLPD 0x0 - RegVal = ((0x000002F0U << DDR_PHY_PTR0_TPLLPD_SHIFT - | 0x00000060U << DDR_PHY_PTR0_TPLLGS_SHIFT - | 0x00000010U << DDR_PHY_PTR0_TPHYRST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PTR0_OFFSET ,0xFFFFFFFFU ,0x5E001810U); - /*############################################################################################################################ */ + * Reference Stop Mode + * PSU_DDR_PHY_PLLCR0_RSTOPM 0x0 - /*Register : PTR1 @ 0XFD080044

      + * PLL Frequency Select + * PSU_DDR_PHY_PLLCR0_FRQSEL 0x1 - PLL Lock Time - PSU_DDR_PHY_PTR1_TPLLLOCK 0x80 + * Relock Mode + * PSU_DDR_PHY_PLLCR0_RLOCKM 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_PTR1_RESERVED_15_13 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_PLLCR0_CPPC 0x8 - PLL Reset Time - PSU_DDR_PHY_PTR1_TPLLRST 0x5f0 - - PHY Timing Register 1 - (OFFSET, MASK, VALUE) (0XFD080044, 0xFFFFFFFFU ,0x008005F0U) - RegMask = (DDR_PHY_PTR1_TPLLLOCK_MASK | DDR_PHY_PTR1_RESERVED_15_13_MASK | DDR_PHY_PTR1_TPLLRST_MASK | 0 ); + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_PLLCR0_CPIC 0x0 - RegVal = ((0x00000080U << DDR_PHY_PTR1_TPLLLOCK_SHIFT - | 0x00000000U << DDR_PHY_PTR1_RESERVED_15_13_SHIFT - | 0x000005F0U << DDR_PHY_PTR1_TPLLRST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PTR1_OFFSET ,0xFFFFFFFFU ,0x008005F0U); - /*############################################################################################################################ */ + * Gear Shift + * PSU_DDR_PHY_PLLCR0_GSHIFT 0x0 - /*Register : DSGCR @ 0XFD080090

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_PLLCR0_RESERVED_11_9 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_31_28 0x0 + * Analog Test Enable + * PSU_DDR_PHY_PLLCR0_ATOEN 0x0 - When RDBI enabled, this bit is used to select RDBI CL calculation, if it is 1b1, calculation will use RDBICL, otherwise use d - fault calculation. - PSU_DDR_PHY_DSGCR_RDBICLSEL 0x0 + * Analog Test Control + * PSU_DDR_PHY_PLLCR0_ATC 0x0 - When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this value. - PSU_DDR_PHY_DSGCR_RDBICL 0x2 + * Digital Test Control + * PSU_DDR_PHY_PLLCR0_DTC 0x0 - PHY Impedance Update Enable - PSU_DDR_PHY_DSGCR_PHYZUEN 0x1 + * PLL Control Register 0 (Type B PLL Only) + * (OFFSET, MASK, VALUE) (0XFD080068, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_PLLCR0_OFFSET, 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_22 0x0 + /* + * Register : DSGCR @ 0XFD080090 - SDRAM Reset Output Enable - PSU_DDR_PHY_DSGCR_RSTOE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_31_28 0x0 - Single Data Rate Mode - PSU_DDR_PHY_DSGCR_SDRMODE 0x0 + * When RDBI enabled, this bit is used to select RDBI CL calculation, if it + * is 1b1, calculation will use RDBICL, otherwise use default calculation. + * PSU_DDR_PHY_DSGCR_RDBICLSEL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DSGCR_RESERVED_18 0x0 + * When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this v + * alue. + * PSU_DDR_PHY_DSGCR_RDBICL 0x2 - ATO Analog Test Enable - PSU_DDR_PHY_DSGCR_ATOAE 0x0 + * PHY Impedance Update Enable + * PSU_DDR_PHY_DSGCR_PHYZUEN 0x1 - DTO Output Enable - PSU_DDR_PHY_DSGCR_DTOOE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_22 0x0 - DTO I/O Mode - PSU_DDR_PHY_DSGCR_DTOIOM 0x0 + * SDRAM Reset Output Enable + * PSU_DDR_PHY_DSGCR_RSTOE 0x1 - DTO Power Down Receiver - PSU_DDR_PHY_DSGCR_DTOPDR 0x1 + * Single Data Rate Mode + * PSU_DDR_PHY_DSGCR_SDRMODE 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_13 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DSGCR_RESERVED_18 0x0 - DTO On-Die Termination - PSU_DDR_PHY_DSGCR_DTOODT 0x0 + * ATO Analog Test Enable + * PSU_DDR_PHY_DSGCR_ATOAE 0x0 - PHY Update Acknowledge Delay - PSU_DDR_PHY_DSGCR_PUAD 0x4 + * DTO Output Enable + * PSU_DDR_PHY_DSGCR_DTOOE 0x0 - Controller Update Acknowledge Enable - PSU_DDR_PHY_DSGCR_CUAEN 0x1 + * DTO I/O Mode + * PSU_DDR_PHY_DSGCR_DTOIOM 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_4_3 0x0 + * DTO Power Down Receiver + * PSU_DDR_PHY_DSGCR_DTOPDR 0x1 - Controller Impedance Update Enable - PSU_DDR_PHY_DSGCR_CTLZUEN 0x0 + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_13 0x0 - Reserved. Return zeroes on reads - PSU_DDR_PHY_DSGCR_RESERVED_1 0x0 + * DTO On-Die Termination + * PSU_DDR_PHY_DSGCR_DTOODT 0x0 - PHY Update Request Enable - PSU_DDR_PHY_DSGCR_PUREN 0x1 + * PHY Update Acknowledge Delay + * PSU_DDR_PHY_DSGCR_PUAD 0x5 - DDR System General Configuration Register - (OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04121U) - RegMask = (DDR_PHY_DSGCR_RESERVED_31_28_MASK | DDR_PHY_DSGCR_RDBICLSEL_MASK | DDR_PHY_DSGCR_RDBICL_MASK | DDR_PHY_DSGCR_PHYZUEN_MASK | DDR_PHY_DSGCR_RESERVED_22_MASK | DDR_PHY_DSGCR_RSTOE_MASK | DDR_PHY_DSGCR_SDRMODE_MASK | DDR_PHY_DSGCR_RESERVED_18_MASK | DDR_PHY_DSGCR_ATOAE_MASK | DDR_PHY_DSGCR_DTOOE_MASK | DDR_PHY_DSGCR_DTOIOM_MASK | DDR_PHY_DSGCR_DTOPDR_MASK | DDR_PHY_DSGCR_RESERVED_13_MASK | DDR_PHY_DSGCR_DTOODT_MASK | DDR_PHY_DSGCR_PUAD_MASK | DDR_PHY_DSGCR_CUAEN_MASK | DDR_PHY_DSGCR_RESERVED_4_3_MASK | DDR_PHY_DSGCR_CTLZUEN_MASK | DDR_PHY_DSGCR_RESERVED_1_MASK | DDR_PHY_DSGCR_PUREN_MASK | 0 ); + * Controller Update Acknowledge Enable + * PSU_DDR_PHY_DSGCR_CUAEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DSGCR_RESERVED_31_28_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RDBICLSEL_SHIFT - | 0x00000002U << DDR_PHY_DSGCR_RDBICL_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_PHYZUEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_22_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_RSTOE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_SDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_18_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_ATOAE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOOE_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOIOM_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_DTOPDR_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_13_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_DTOODT_SHIFT - | 0x00000004U << DDR_PHY_DSGCR_PUAD_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_CUAEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_4_3_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_CTLZUEN_SHIFT - | 0x00000000U << DDR_PHY_DSGCR_RESERVED_1_SHIFT - | 0x00000001U << DDR_PHY_DSGCR_PUREN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DSGCR_OFFSET ,0xFFFFFFFFU ,0x02A04121U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_4_3 0x0 - /*Register : DCR @ 0XFD080100

      + * Controller Impedance Update Enable + * PSU_DDR_PHY_DSGCR_CTLZUEN 0x0 - DDR4 Gear Down Timing. - PSU_DDR_PHY_DCR_GEARDN 0x0 + * Reserved. Return zeroes on reads + * PSU_DDR_PHY_DSGCR_RESERVED_1 0x0 - Un-used Bank Group - PSU_DDR_PHY_DCR_UBG 0x0 + * PHY Update Request Enable + * PSU_DDR_PHY_DSGCR_PUREN 0x1 - Un-buffered DIMM Address Mirroring - PSU_DDR_PHY_DCR_UDIMM 0x0 + * DDR System General Configuration Register + * (OFFSET, MASK, VALUE) (0XFD080090, 0xFFFFFFFFU ,0x02A04161U) + */ + PSU_Mask_Write(DDR_PHY_DSGCR_OFFSET, 0xFFFFFFFFU, 0x02A04161U); +/*##################################################################### */ - DDR 2T Timing - PSU_DDR_PHY_DCR_DDR2T 0x0 + /* + * Register : GPR0 @ 0XFD0800C0 - No Simultaneous Rank Access - PSU_DDR_PHY_DCR_NOSRA 0x1 + * General Purpose Register 0 + * PSU_DDR_PHY_GPR0_GPR0 0xd3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DCR_RESERVED_26_18 0x0 + * General Purpose Register 0 + * (OFFSET, MASK, VALUE) (0XFD0800C0, 0xFFFFFFFFU ,0x000000D3U) + */ + PSU_Mask_Write(DDR_PHY_GPR0_OFFSET, 0xFFFFFFFFU, 0x000000D3U); +/*##################################################################### */ - Byte Mask - PSU_DDR_PHY_DCR_BYTEMASK 0x1 + /* + * Register : DCR @ 0XFD080100 - DDR Type - PSU_DDR_PHY_DCR_DDRTYPE 0x0 + * DDR4 Gear Down Timing. + * PSU_DDR_PHY_DCR_GEARDN 0x0 - Multi-Purpose Register (MPR) DQ (DDR3 Only) - PSU_DDR_PHY_DCR_MPRDQ 0x0 + * Un-used Bank Group + * PSU_DDR_PHY_DCR_UBG 0x0 - Primary DQ (DDR3 Only) - PSU_DDR_PHY_DCR_PDQ 0x0 + * Un-buffered DIMM Address Mirroring + * PSU_DDR_PHY_DCR_UDIMM 0x0 - DDR 8-Bank - PSU_DDR_PHY_DCR_DDR8BNK 0x1 + * DDR 2T Timing + * PSU_DDR_PHY_DCR_DDR2T 0x0 - DDR Mode - PSU_DDR_PHY_DCR_DDRMD 0x4 + * No Simultaneous Rank Access + * PSU_DDR_PHY_DCR_NOSRA 0x1 - DRAM Configuration Register - (OFFSET, MASK, VALUE) (0XFD080100, 0xFFFFFFFFU ,0x0800040CU) - RegMask = (DDR_PHY_DCR_GEARDN_MASK | DDR_PHY_DCR_UBG_MASK | DDR_PHY_DCR_UDIMM_MASK | DDR_PHY_DCR_DDR2T_MASK | DDR_PHY_DCR_NOSRA_MASK | DDR_PHY_DCR_RESERVED_26_18_MASK | DDR_PHY_DCR_BYTEMASK_MASK | DDR_PHY_DCR_DDRTYPE_MASK | DDR_PHY_DCR_MPRDQ_MASK | DDR_PHY_DCR_PDQ_MASK | DDR_PHY_DCR_DDR8BNK_MASK | DDR_PHY_DCR_DDRMD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DCR_RESERVED_26_18 0x0 - RegVal = ((0x00000000U << DDR_PHY_DCR_GEARDN_SHIFT - | 0x00000000U << DDR_PHY_DCR_UBG_SHIFT - | 0x00000000U << DDR_PHY_DCR_UDIMM_SHIFT - | 0x00000000U << DDR_PHY_DCR_DDR2T_SHIFT - | 0x00000001U << DDR_PHY_DCR_NOSRA_SHIFT - | 0x00000000U << DDR_PHY_DCR_RESERVED_26_18_SHIFT - | 0x00000001U << DDR_PHY_DCR_BYTEMASK_SHIFT - | 0x00000000U << DDR_PHY_DCR_DDRTYPE_SHIFT - | 0x00000000U << DDR_PHY_DCR_MPRDQ_SHIFT - | 0x00000000U << DDR_PHY_DCR_PDQ_SHIFT - | 0x00000001U << DDR_PHY_DCR_DDR8BNK_SHIFT - | 0x00000004U << DDR_PHY_DCR_DDRMD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DCR_OFFSET ,0xFFFFFFFFU ,0x0800040CU); - /*############################################################################################################################ */ - - /*Register : DTPR0 @ 0XFD080110

      + * Byte Mask + * PSU_DDR_PHY_DCR_BYTEMASK 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_31_29 0x0 + * DDR Type + * PSU_DDR_PHY_DCR_DDRTYPE 0x0 - Activate to activate command delay (different banks) - PSU_DDR_PHY_DTPR0_TRRD 0x6 + * Multi-Purpose Register (MPR) DQ (DDR3 Only) + * PSU_DDR_PHY_DCR_MPRDQ 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_23 0x0 + * Primary DQ (DDR3 Only) + * PSU_DDR_PHY_DCR_PDQ 0x0 - Activate to precharge command delay - PSU_DDR_PHY_DTPR0_TRAS 0x24 + * DDR 8-Bank + * PSU_DDR_PHY_DCR_DDR8BNK 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_15 0x0 - - Precharge command period - PSU_DDR_PHY_DTPR0_TRP 0xf - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR0_RESERVED_7_5 0x0 - - Internal read to precharge command delay - PSU_DDR_PHY_DTPR0_TRTP 0x9 - - DRAM Timing Parameters Register 0 - (OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F09U) - RegMask = (DDR_PHY_DTPR0_RESERVED_31_29_MASK | DDR_PHY_DTPR0_TRRD_MASK | DDR_PHY_DTPR0_RESERVED_23_MASK | DDR_PHY_DTPR0_TRAS_MASK | DDR_PHY_DTPR0_RESERVED_15_MASK | DDR_PHY_DTPR0_TRP_MASK | DDR_PHY_DTPR0_RESERVED_7_5_MASK | DDR_PHY_DTPR0_TRTP_MASK | 0 ); + * DDR Mode + * PSU_DDR_PHY_DCR_DDRMD 0x4 - RegVal = ((0x00000000U << DDR_PHY_DTPR0_RESERVED_31_29_SHIFT - | 0x00000006U << DDR_PHY_DTPR0_TRRD_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_23_SHIFT - | 0x00000024U << DDR_PHY_DTPR0_TRAS_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_15_SHIFT - | 0x0000000FU << DDR_PHY_DTPR0_TRP_SHIFT - | 0x00000000U << DDR_PHY_DTPR0_RESERVED_7_5_SHIFT - | 0x00000009U << DDR_PHY_DTPR0_TRTP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR0_OFFSET ,0xFFFFFFFFU ,0x06240F09U); - /*############################################################################################################################ */ + * DRAM Configuration Register + * (OFFSET, MASK, VALUE) (0XFD080100, 0xFFFFFFFFU ,0x0800040CU) + */ + PSU_Mask_Write(DDR_PHY_DCR_OFFSET, 0xFFFFFFFFU, 0x0800040CU); +/*##################################################################### */ - /*Register : DTPR1 @ 0XFD080114

      + /* + * Register : DTPR0 @ 0XFD080110 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_31 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_31_29 0x0 - Minimum delay from when write leveling mode is programmed to the first DQS/DQS# rising edge. - PSU_DDR_PHY_DTPR1_TWLMRD 0x28 + * Activate to activate command delay (different banks) + * PSU_DDR_PHY_DTPR0_TRRD 0x6 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_23 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_23 0x0 - 4-bank activate period - PSU_DDR_PHY_DTPR1_TFAW 0x18 + * Activate to precharge command delay + * PSU_DDR_PHY_DTPR0_TRAS 0x24 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_15_11 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_15 0x0 - Load mode update delay (DDR4 and DDR3 only) - PSU_DDR_PHY_DTPR1_TMOD 0x7 + * Precharge command period + * PSU_DDR_PHY_DTPR0_TRP 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR1_RESERVED_7_5 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR0_RESERVED_7_5 0x0 - Load mode cycle time - PSU_DDR_PHY_DTPR1_TMRD 0x8 + * Internal read to precharge command delay + * PSU_DDR_PHY_DTPR0_TRTP 0x8 - DRAM Timing Parameters Register 1 - (OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28180708U) - RegMask = (DDR_PHY_DTPR1_RESERVED_31_MASK | DDR_PHY_DTPR1_TWLMRD_MASK | DDR_PHY_DTPR1_RESERVED_23_MASK | DDR_PHY_DTPR1_TFAW_MASK | DDR_PHY_DTPR1_RESERVED_15_11_MASK | DDR_PHY_DTPR1_TMOD_MASK | DDR_PHY_DTPR1_RESERVED_7_5_MASK | DDR_PHY_DTPR1_TMRD_MASK | 0 ); + * DRAM Timing Parameters Register 0 + * (OFFSET, MASK, VALUE) (0XFD080110, 0xFFFFFFFFU ,0x06240F08U) + */ + PSU_Mask_Write(DDR_PHY_DTPR0_OFFSET, 0xFFFFFFFFU, 0x06240F08U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DTPR1_RESERVED_31_SHIFT - | 0x00000028U << DDR_PHY_DTPR1_TWLMRD_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_23_SHIFT - | 0x00000018U << DDR_PHY_DTPR1_TFAW_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_15_11_SHIFT - | 0x00000007U << DDR_PHY_DTPR1_TMOD_SHIFT - | 0x00000000U << DDR_PHY_DTPR1_RESERVED_7_5_SHIFT - | 0x00000008U << DDR_PHY_DTPR1_TMRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR1_OFFSET ,0xFFFFFFFFU ,0x28180708U); - /*############################################################################################################################ */ + /* + * Register : DTPR1 @ 0XFD080114 - /*Register : DTPR2 @ 0XFD080118

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_31 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_31_29 0x0 + * Minimum delay from when write leveling mode is programmed to the first D + * QS/DQS# rising edge. + * PSU_DDR_PHY_DTPR1_TWLMRD 0x28 - Read to Write command delay. Valid values are - PSU_DDR_PHY_DTPR2_TRTW 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_23 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_27_25 0x0 + * 4-bank activate period + * PSU_DDR_PHY_DTPR1_TFAW 0x20 - Read to ODT delay (DDR3 only) - PSU_DDR_PHY_DTPR2_TRTODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_15_11 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_23_20 0x0 + * Load mode update delay (DDR4 and DDR3 only) + * PSU_DDR_PHY_DTPR1_TMOD 0x0 - CKE minimum pulse width - PSU_DDR_PHY_DTPR2_TCKE 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR1_RESERVED_7_5 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR2_RESERVED_15_10 0x0 + * Load mode cycle time + * PSU_DDR_PHY_DTPR1_TMRD 0x8 - Self refresh exit delay - PSU_DDR_PHY_DTPR2_TXS 0x200 + * DRAM Timing Parameters Register 1 + * (OFFSET, MASK, VALUE) (0XFD080114, 0xFFFFFFFFU ,0x28200008U) + */ + PSU_Mask_Write(DDR_PHY_DTPR1_OFFSET, 0xFFFFFFFFU, 0x28200008U); +/*##################################################################### */ - DRAM Timing Parameters Register 2 - (OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00080200U) - RegMask = (DDR_PHY_DTPR2_RESERVED_31_29_MASK | DDR_PHY_DTPR2_TRTW_MASK | DDR_PHY_DTPR2_RESERVED_27_25_MASK | DDR_PHY_DTPR2_TRTODT_MASK | DDR_PHY_DTPR2_RESERVED_23_20_MASK | DDR_PHY_DTPR2_TCKE_MASK | DDR_PHY_DTPR2_RESERVED_15_10_MASK | DDR_PHY_DTPR2_TXS_MASK | 0 ); + /* + * Register : DTPR2 @ 0XFD080118 - RegVal = ((0x00000000U << DDR_PHY_DTPR2_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_TRTW_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_27_25_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_TRTODT_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_23_20_SHIFT - | 0x00000008U << DDR_PHY_DTPR2_TCKE_SHIFT - | 0x00000000U << DDR_PHY_DTPR2_RESERVED_15_10_SHIFT - | 0x00000200U << DDR_PHY_DTPR2_TXS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR2_OFFSET ,0xFFFFFFFFU ,0x00080200U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_31_29 0x0 - /*Register : DTPR3 @ 0XFD08011C

      + * Read to Write command delay. Valid values are + * PSU_DDR_PHY_DTPR2_TRTW 0x0 - ODT turn-off delay extension - PSU_DDR_PHY_DTPR3_TOFDX 0x4 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_27_25 0x0 - Read to read and write to write command delay - PSU_DDR_PHY_DTPR3_TCCD 0x0 + * Read to ODT delay (DDR3 only) + * PSU_DDR_PHY_DTPR2_TRTODT 0x0 - DLL locking time - PSU_DDR_PHY_DTPR3_TDLLK 0x300 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_23_20 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR3_RESERVED_15_12 0x0 + * CKE minimum pulse width + * PSU_DDR_PHY_DTPR2_TCKE 0x7 - Maximum DQS output access time from CK/CK# (LPDDR2/3 only) - PSU_DDR_PHY_DTPR3_TDQSCKMAX 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR2_RESERVED_15_10 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR3_RESERVED_7_3 0x0 + * Self refresh exit delay + * PSU_DDR_PHY_DTPR2_TXS 0x300 - DQS output access time from CK/CK# (LPDDR2/3 only) - PSU_DDR_PHY_DTPR3_TDQSCK 0x0 + * DRAM Timing Parameters Register 2 + * (OFFSET, MASK, VALUE) (0XFD080118, 0xFFFFFFFFU ,0x00070300U) + */ + PSU_Mask_Write(DDR_PHY_DTPR2_OFFSET, 0xFFFFFFFFU, 0x00070300U); +/*##################################################################### */ - DRAM Timing Parameters Register 3 - (OFFSET, MASK, VALUE) (0XFD08011C, 0xFFFFFFFFU ,0x83000800U) - RegMask = (DDR_PHY_DTPR3_TOFDX_MASK | DDR_PHY_DTPR3_TCCD_MASK | DDR_PHY_DTPR3_TDLLK_MASK | DDR_PHY_DTPR3_RESERVED_15_12_MASK | DDR_PHY_DTPR3_TDQSCKMAX_MASK | DDR_PHY_DTPR3_RESERVED_7_3_MASK | DDR_PHY_DTPR3_TDQSCK_MASK | 0 ); + /* + * Register : DTPR3 @ 0XFD08011C - RegVal = ((0x00000004U << DDR_PHY_DTPR3_TOFDX_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_TCCD_SHIFT - | 0x00000300U << DDR_PHY_DTPR3_TDLLK_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_RESERVED_15_12_SHIFT - | 0x00000008U << DDR_PHY_DTPR3_TDQSCKMAX_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_RESERVED_7_3_SHIFT - | 0x00000000U << DDR_PHY_DTPR3_TDQSCK_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR3_OFFSET ,0xFFFFFFFFU ,0x83000800U); - /*############################################################################################################################ */ + * ODT turn-off delay extension + * PSU_DDR_PHY_DTPR3_TOFDX 0x4 - /*Register : DTPR4 @ 0XFD080120

      + * Read to read and write to write command delay + * PSU_DDR_PHY_DTPR3_TCCD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_31_30 0x0 + * DLL locking time + * PSU_DDR_PHY_DTPR3_TDLLK 0x300 - ODT turn-on/turn-off delays (DDR2 only) - PSU_DDR_PHY_DTPR4_TAOND_TAOFD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR3_RESERVED_15_12 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_27_26 0x0 + * Maximum DQS output access time from CK/CK# (LPDDR2/3 only) + * PSU_DDR_PHY_DTPR3_TDQSCKMAX 0x8 - Refresh-to-Refresh - PSU_DDR_PHY_DTPR4_TRFC 0x116 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR3_RESERVED_7_3 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_15_14 0x0 + * DQS output access time from CK/CK# (LPDDR2/3 only) + * PSU_DDR_PHY_DTPR3_TDQSCK 0x0 - Write leveling output delay - PSU_DDR_PHY_DTPR4_TWLO 0x2b + * DRAM Timing Parameters Register 3 + * (OFFSET, MASK, VALUE) (0XFD08011C, 0xFFFFFFFFU ,0x83000800U) + */ + PSU_Mask_Write(DDR_PHY_DTPR3_OFFSET, 0xFFFFFFFFU, 0x83000800U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR4_RESERVED_7_5 0x0 + /* + * Register : DTPR4 @ 0XFD080120 - Power down exit delay - PSU_DDR_PHY_DTPR4_TXP 0x8 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_31_30 0x0 - DRAM Timing Parameters Register 4 - (OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B08U) - RegMask = (DDR_PHY_DTPR4_RESERVED_31_30_MASK | DDR_PHY_DTPR4_TAOND_TAOFD_MASK | DDR_PHY_DTPR4_RESERVED_27_26_MASK | DDR_PHY_DTPR4_TRFC_MASK | DDR_PHY_DTPR4_RESERVED_15_14_MASK | DDR_PHY_DTPR4_TWLO_MASK | DDR_PHY_DTPR4_RESERVED_7_5_MASK | DDR_PHY_DTPR4_TXP_MASK | 0 ); + * ODT turn-on/turn-off delays (DDR2 only) + * PSU_DDR_PHY_DTPR4_TAOND_TAOFD 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR4_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_27_26_SHIFT - | 0x00000116U << DDR_PHY_DTPR4_TRFC_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DTPR4_TWLO_SHIFT - | 0x00000000U << DDR_PHY_DTPR4_RESERVED_7_5_SHIFT - | 0x00000008U << DDR_PHY_DTPR4_TXP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR4_OFFSET ,0xFFFFFFFFU ,0x01162B08U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_27_26 0x0 - /*Register : DTPR5 @ 0XFD080124

      + * Refresh-to-Refresh + * PSU_DDR_PHY_DTPR4_TRFC 0x116 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_31_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_15_14 0x0 - Activate to activate command delay (same bank) - PSU_DDR_PHY_DTPR5_TRC 0x32 + * Write leveling output delay + * PSU_DDR_PHY_DTPR4_TWLO 0x2b - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_15 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR4_RESERVED_7_5 0x0 - Activate to read or write delay - PSU_DDR_PHY_DTPR5_TRCD 0xf + * Power down exit delay + * PSU_DDR_PHY_DTPR4_TXP 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR5_RESERVED_7_5 0x0 + * DRAM Timing Parameters Register 4 + * (OFFSET, MASK, VALUE) (0XFD080120, 0xFFFFFFFFU ,0x01162B07U) + */ + PSU_Mask_Write(DDR_PHY_DTPR4_OFFSET, 0xFFFFFFFFU, 0x01162B07U); +/*##################################################################### */ - Internal write to read command delay - PSU_DDR_PHY_DTPR5_TWTR 0x9 + /* + * Register : DTPR5 @ 0XFD080124 - DRAM Timing Parameters Register 5 - (OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00320F09U) - RegMask = (DDR_PHY_DTPR5_RESERVED_31_24_MASK | DDR_PHY_DTPR5_TRC_MASK | DDR_PHY_DTPR5_RESERVED_15_MASK | DDR_PHY_DTPR5_TRCD_MASK | DDR_PHY_DTPR5_RESERVED_7_5_MASK | DDR_PHY_DTPR5_TWTR_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_31_24 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR5_RESERVED_31_24_SHIFT - | 0x00000032U << DDR_PHY_DTPR5_TRC_SHIFT - | 0x00000000U << DDR_PHY_DTPR5_RESERVED_15_SHIFT - | 0x0000000FU << DDR_PHY_DTPR5_TRCD_SHIFT - | 0x00000000U << DDR_PHY_DTPR5_RESERVED_7_5_SHIFT - | 0x00000009U << DDR_PHY_DTPR5_TWTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR5_OFFSET ,0xFFFFFFFFU ,0x00320F09U); - /*############################################################################################################################ */ + * Activate to activate command delay (same bank) + * PSU_DDR_PHY_DTPR5_TRC 0x33 - /*Register : DTPR6 @ 0XFD080128

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_15 0x0 - PUB Write Latency Enable - PSU_DDR_PHY_DTPR6_PUBWLEN 0x0 + * Activate to read or write delay + * PSU_DDR_PHY_DTPR5_TRCD 0xf - PUB Read Latency Enable - PSU_DDR_PHY_DTPR6_PUBRLEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR5_RESERVED_7_5 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR6_RESERVED_29_14 0x0 + * Internal write to read command delay + * PSU_DDR_PHY_DTPR5_TWTR 0x8 - Write Latency - PSU_DDR_PHY_DTPR6_PUBWL 0xe + * DRAM Timing Parameters Register 5 + * (OFFSET, MASK, VALUE) (0XFD080124, 0xFFFFFFFFU ,0x00330F08U) + */ + PSU_Mask_Write(DDR_PHY_DTPR5_OFFSET, 0xFFFFFFFFU, 0x00330F08U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTPR6_RESERVED_7_6 0x0 + /* + * Register : DTPR6 @ 0XFD080128 - Read Latency - PSU_DDR_PHY_DTPR6_PUBRL 0xf + * PUB Write Latency Enable + * PSU_DDR_PHY_DTPR6_PUBWLEN 0x0 - DRAM Timing Parameters Register 6 - (OFFSET, MASK, VALUE) (0XFD080128, 0xFFFFFFFFU ,0x00000E0FU) - RegMask = (DDR_PHY_DTPR6_PUBWLEN_MASK | DDR_PHY_DTPR6_PUBRLEN_MASK | DDR_PHY_DTPR6_RESERVED_29_14_MASK | DDR_PHY_DTPR6_PUBWL_MASK | DDR_PHY_DTPR6_RESERVED_7_6_MASK | DDR_PHY_DTPR6_PUBRL_MASK | 0 ); + * PUB Read Latency Enable + * PSU_DDR_PHY_DTPR6_PUBRLEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_DTPR6_PUBWLEN_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_PUBRLEN_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_RESERVED_29_14_SHIFT - | 0x0000000EU << DDR_PHY_DTPR6_PUBWL_SHIFT - | 0x00000000U << DDR_PHY_DTPR6_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DTPR6_PUBRL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTPR6_OFFSET ,0xFFFFFFFFU ,0x00000E0FU); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR6_RESERVED_29_14 0x0 - /*Register : RDIMMGCR0 @ 0XFD080140

      + * Write Latency + * PSU_DDR_PHY_DTPR6_PUBWL 0xe - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_31 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTPR6_RESERVED_7_6 0x0 - RDMIMM Quad CS Enable - PSU_DDR_PHY_RDIMMGCR0_QCSEN 0x0 + * Read Latency + * PSU_DDR_PHY_DTPR6_PUBRL 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_29_28 0x0 + * DRAM Timing Parameters Register 6 + * (OFFSET, MASK, VALUE) (0XFD080128, 0xFFFFFFFFU ,0x00000E0FU) + */ + PSU_Mask_Write(DDR_PHY_DTPR6_OFFSET, 0xFFFFFFFFU, 0x00000E0FU); +/*##################################################################### */ - RDIMM Outputs I/O Mode - PSU_DDR_PHY_RDIMMGCR0_RDIMMIOM 0x1 + /* + * Register : RDIMMGCR0 @ 0XFD080140 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_26_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_31 0x0 - ERROUT# Output Enable - PSU_DDR_PHY_RDIMMGCR0_ERROUTOE 0x0 + * RDMIMM Quad CS Enable + * PSU_DDR_PHY_RDIMMGCR0_QCSEN 0x0 - ERROUT# I/O Mode - PSU_DDR_PHY_RDIMMGCR0_ERROUTIOM 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_29_28 0x0 - ERROUT# Power Down Receiver - PSU_DDR_PHY_RDIMMGCR0_ERROUTPDR 0x0 + * RDIMM Outputs I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_RDIMMIOM 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_20 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_26_24 0x0 - ERROUT# On-Die Termination - PSU_DDR_PHY_RDIMMGCR0_ERROUTODT 0x0 + * ERROUT# Output Enable + * PSU_DDR_PHY_RDIMMGCR0_ERROUTOE 0x0 - Load Reduced DIMM - PSU_DDR_PHY_RDIMMGCR0_LRDIMM 0x0 + * ERROUT# I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_ERROUTIOM 0x1 - PAR_IN I/O Mode - PSU_DDR_PHY_RDIMMGCR0_PARINIOM 0x0 + * ERROUT# Power Down Receiver + * PSU_DDR_PHY_RDIMMGCR0_ERROUTPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_16_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_20 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD 0x0 + * ERROUT# On-Die Termination + * PSU_DDR_PHY_RDIMMGCR0_ERROUTODT 0x0 - Rank Mirror Enable. - PSU_DDR_PHY_RDIMMGCR0_RNKMRREN 0x2 + * Load Reduced DIMM + * PSU_DDR_PHY_RDIMMGCR0_LRDIMM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR0_RESERVED_3 0x0 + * PAR_IN I/O Mode + * PSU_DDR_PHY_RDIMMGCR0_PARINIOM 0x0 - Stop on Parity Error - PSU_DDR_PHY_RDIMMGCR0_SOPERR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_16_8 0x0 - Parity Error No Registering - PSU_DDR_PHY_RDIMMGCR0_ERRNOREG 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD 0x0 - Registered DIMM - PSU_DDR_PHY_RDIMMGCR0_RDIMM 0x0 + * Rank Mirror Enable. + * PSU_DDR_PHY_RDIMMGCR0_RNKMRREN 0x2 - RDIMM General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080140, 0xFFFFFFFFU ,0x08400020U) - RegMask = (DDR_PHY_RDIMMGCR0_RESERVED_31_MASK | DDR_PHY_RDIMMGCR0_QCSEN_MASK | DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK | DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK | DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK | DDR_PHY_RDIMMGCR0_ERROUTOE_MASK | DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK | DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK | DDR_PHY_RDIMMGCR0_RESERVED_20_MASK | DDR_PHY_RDIMMGCR0_ERROUTODT_MASK | DDR_PHY_RDIMMGCR0_LRDIMM_MASK | DDR_PHY_RDIMMGCR0_PARINIOM_MASK | DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK | DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK | DDR_PHY_RDIMMGCR0_RNKMRREN_MASK | DDR_PHY_RDIMMGCR0_RESERVED_3_MASK | DDR_PHY_RDIMMGCR0_SOPERR_MASK | DDR_PHY_RDIMMGCR0_ERRNOREG_MASK | DDR_PHY_RDIMMGCR0_RDIMM_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR0_RESERVED_3 0x0 - RegVal = ((0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_QCSEN_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT - | 0x00000001U << DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT - | 0x00000001U << DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT - | 0x00000002U << DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_SOPERR_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR0_RDIMM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMGCR0_OFFSET ,0xFFFFFFFFU ,0x08400020U); - /*############################################################################################################################ */ + * Stop on Parity Error + * PSU_DDR_PHY_RDIMMGCR0_SOPERR 0x0 - /*Register : RDIMMGCR1 @ 0XFD080144

      + * Parity Error No Registering + * PSU_DDR_PHY_RDIMMGCR0_ERRNOREG 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_31_29 0x0 + * Registered DIMM + * PSU_DDR_PHY_RDIMMGCR0_RDIMM 0x0 - Address [17] B-side Inversion Disable - PSU_DDR_PHY_RDIMMGCR1_A17BID 0x0 + * RDIMM General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080140, 0xFFFFFFFFU ,0x08400020U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMGCR0_OFFSET, 0xFFFFFFFFU, 0x08400020U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_27 0x0 + /* + * Register : RDIMMGCR1 @ 0XFD080144 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L2 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_31_29 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_23 0x0 + * Address [17] B-side Inversion Disable + * PSU_DDR_PHY_RDIMMGCR1_A17BID 0x0 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_27 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_19 0x0 + * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L2 0x0 - Command word to command word programming delay - PSU_DDR_PHY_RDIMMGCR1_TBCMRD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_23 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RDIMMGCR1_RESERVED_15_14 0x0 + * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD_L 0x0 - Stabilization time - PSU_DDR_PHY_RDIMMGCR1_TBCSTAB 0xc80 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_19 0x0 - RDIMM General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080144, 0xFFFFFFFFU ,0x00000C80U) - RegMask = (DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK | DDR_PHY_RDIMMGCR1_A17BID_MASK | DDR_PHY_RDIMMGCR1_RESERVED_27_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK | DDR_PHY_RDIMMGCR1_RESERVED_23_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK | DDR_PHY_RDIMMGCR1_RESERVED_19_MASK | DDR_PHY_RDIMMGCR1_TBCMRD_MASK | DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK | DDR_PHY_RDIMMGCR1_TBCSTAB_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_A17BID_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT - | 0x00000000U << DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT - | 0x00000C80U << DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMGCR1_OFFSET ,0xFFFFFFFFU ,0x00000C80U); - /*############################################################################################################################ */ - - /*Register : RDIMMCR0 @ 0XFD080150

      + * Command word to command word programming delay + * PSU_DDR_PHY_RDIMMGCR1_TBCMRD 0x0 - DDR4/DDR3 Control Word 7 - PSU_DDR_PHY_RDIMMCR0_RC7 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RDIMMGCR1_RESERVED_15_14 0x0 - DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR0_RC6 0x0 - - DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC5 0x0 - - DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control Word) / DDR3 Control Word 4 (Control Signals Driver C - aracteristics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC4 0x0 - - DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Word) / DDR3 Control Word 3 (Command/Address Signals Dr - ver Characteristrics Control Word) - PSU_DDR_PHY_RDIMMCR0_RC3 0x0 - - DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 (Timing Control Word) - PSU_DDR_PHY_RDIMMCR0_RC2 0x0 - - DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) - PSU_DDR_PHY_RDIMMCR0_RC1 0x0 - - DDR4/DDR3 Control Word 0 (Global Features Control Word) - PSU_DDR_PHY_RDIMMCR0_RC0 0x0 - - RDIMM Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080150, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_RDIMMCR0_RC7_MASK | DDR_PHY_RDIMMCR0_RC6_MASK | DDR_PHY_RDIMMCR0_RC5_MASK | DDR_PHY_RDIMMCR0_RC4_MASK | DDR_PHY_RDIMMCR0_RC3_MASK | DDR_PHY_RDIMMCR0_RC2_MASK | DDR_PHY_RDIMMCR0_RC1_MASK | DDR_PHY_RDIMMCR0_RC0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_RDIMMCR0_RC7_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC6_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC5_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC4_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC3_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC2_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC1_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR0_RC0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMCR0_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Stabilization time + * PSU_DDR_PHY_RDIMMGCR1_TBCSTAB 0xc80 - /*Register : RDIMMCR1 @ 0XFD080154

      + * RDIMM General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080144, 0xFFFFFFFFU ,0x00000C80U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMGCR1_OFFSET, 0xFFFFFFFFU, 0x00000C80U); +/*##################################################################### */ - Control Word 15 - PSU_DDR_PHY_RDIMMCR1_RC15 0x0 + /* + * Register : RDIMMCR0 @ 0XFD080150 - DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC14 0x0 + * DDR4/DDR3 Control Word 7 + * PSU_DDR_PHY_RDIMMCR0_RC7 0x0 - DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC13 0x0 + * DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR0_RC6 0x0 - DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved - PSU_DDR_PHY_RDIMMCR1_RC12 0x0 + * DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC5 0x0 - DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Word) / DDR3 Control Word 11 (Operation Voltage VDD Con - rol Word) - PSU_DDR_PHY_RDIMMCR1_RC11 0x0 + * DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control + * Word) / DDR3 Control Word 4 (Control Signals Driver Characteristics Cont + * rol Word) + * PSU_DDR_PHY_RDIMMCR0_RC4 0x0 - DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) - PSU_DDR_PHY_RDIMMCR1_RC10 0x2 + * DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Wo + * rd) / DDR3 Control Word 3 (Command/Address Signals Driver Characteristri + * cs Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC3 0x0 - DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) - PSU_DDR_PHY_RDIMMCR1_RC9 0x0 + * DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 + * (Timing Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC2 0x0 - DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Control Word 8 (Additional Input Bus Termination Setting - Control Word) - PSU_DDR_PHY_RDIMMCR1_RC8 0x0 + * DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC1 0x0 - RDIMM Control Register 1 - (OFFSET, MASK, VALUE) (0XFD080154, 0xFFFFFFFFU ,0x00000200U) - RegMask = (DDR_PHY_RDIMMCR1_RC15_MASK | DDR_PHY_RDIMMCR1_RC14_MASK | DDR_PHY_RDIMMCR1_RC13_MASK | DDR_PHY_RDIMMCR1_RC12_MASK | DDR_PHY_RDIMMCR1_RC11_MASK | DDR_PHY_RDIMMCR1_RC10_MASK | DDR_PHY_RDIMMCR1_RC9_MASK | DDR_PHY_RDIMMCR1_RC8_MASK | 0 ); + * DDR4/DDR3 Control Word 0 (Global Features Control Word) + * PSU_DDR_PHY_RDIMMCR0_RC0 0x0 - RegVal = ((0x00000000U << DDR_PHY_RDIMMCR1_RC15_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC14_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC13_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC12_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC11_SHIFT - | 0x00000002U << DDR_PHY_RDIMMCR1_RC10_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC9_SHIFT - | 0x00000000U << DDR_PHY_RDIMMCR1_RC8_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RDIMMCR1_OFFSET ,0xFFFFFFFFU ,0x00000200U); - /*############################################################################################################################ */ + * RDIMM Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080150, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMCR0_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - /*Register : MR0 @ 0XFD080180

      + /* + * Register : RDIMMCR1 @ 0XFD080154 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR0_RESERVED_31_8 0x8 + * Control Word 15 + * PSU_DDR_PHY_RDIMMCR1_RC15 0x0 - CA Terminating Rank - PSU_DDR_PHY_MR0_CATR 0x0 + * DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC14 0x0 - Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR0_RSVD_6_5 0x1 + * DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC13 0x0 - Built-in Self-Test for RZQ - PSU_DDR_PHY_MR0_RZQI 0x2 + * DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved + * PSU_DDR_PHY_RDIMMCR1_RC12 0x0 - Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR0_RSVD_2_0 0x0 + * DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Wo + * rd) / DDR3 Control Word 11 (Operation Voltage VDD Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC11 0x0 - LPDDR4 Mode Register 0 - (OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000830U) - RegMask = (DDR_PHY_MR0_RESERVED_31_8_MASK | DDR_PHY_MR0_CATR_MASK | DDR_PHY_MR0_RSVD_6_5_MASK | DDR_PHY_MR0_RZQI_MASK | DDR_PHY_MR0_RSVD_2_0_MASK | 0 ); + * DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC10 0x2 - RegVal = ((0x00000008U << DDR_PHY_MR0_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR0_CATR_SHIFT - | 0x00000001U << DDR_PHY_MR0_RSVD_6_5_SHIFT - | 0x00000002U << DDR_PHY_MR0_RZQI_SHIFT - | 0x00000000U << DDR_PHY_MR0_RSVD_2_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR0_OFFSET ,0xFFFFFFFFU ,0x00000830U); - /*############################################################################################################################ */ + * DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC9 0x0 - /*Register : MR1 @ 0XFD080184

      + * DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Con + * trol Word 8 (Additional Input Bus Termination Setting Control Word) + * PSU_DDR_PHY_RDIMMCR1_RC8 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR1_RESERVED_31_8 0x3 + * RDIMM Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD080154, 0xFFFFFFFFU ,0x00000200U) + */ + PSU_Mask_Write(DDR_PHY_RDIMMCR1_OFFSET, 0xFFFFFFFFU, 0x00000200U); +/*##################################################################### */ - Read Postamble Length - PSU_DDR_PHY_MR1_RDPST 0x0 + /* + * Register : MR0 @ 0XFD080180 - Write-recovery for auto-precharge command - PSU_DDR_PHY_MR1_NWR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR0_RESERVED_31_8 0x6 - Read Preamble Length - PSU_DDR_PHY_MR1_RDPRE 0x0 + * CA Terminating Rank + * PSU_DDR_PHY_MR0_CATR 0x0 - Write Preamble Length - PSU_DDR_PHY_MR1_WRPRE 0x0 + * Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. + * PSU_DDR_PHY_MR0_RSVD_6_5 0x1 - Burst Length - PSU_DDR_PHY_MR1_BL 0x1 + * Built-in Self-Test for RZQ + * PSU_DDR_PHY_MR0_RZQI 0x2 - LPDDR4 Mode Register 1 - (OFFSET, MASK, VALUE) (0XFD080184, 0xFFFFFFFFU ,0x00000301U) - RegMask = (DDR_PHY_MR1_RESERVED_31_8_MASK | DDR_PHY_MR1_RDPST_MASK | DDR_PHY_MR1_NWR_MASK | DDR_PHY_MR1_RDPRE_MASK | DDR_PHY_MR1_WRPRE_MASK | DDR_PHY_MR1_BL_MASK | 0 ); + * Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. + * PSU_DDR_PHY_MR0_RSVD_2_0 0x0 - RegVal = ((0x00000003U << DDR_PHY_MR1_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR1_RDPST_SHIFT - | 0x00000000U << DDR_PHY_MR1_NWR_SHIFT - | 0x00000000U << DDR_PHY_MR1_RDPRE_SHIFT - | 0x00000000U << DDR_PHY_MR1_WRPRE_SHIFT - | 0x00000001U << DDR_PHY_MR1_BL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR1_OFFSET ,0xFFFFFFFFU ,0x00000301U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 0 + * (OFFSET, MASK, VALUE) (0XFD080180, 0xFFFFFFFFU ,0x00000630U) + */ + PSU_Mask_Write(DDR_PHY_MR0_OFFSET, 0xFFFFFFFFU, 0x00000630U); +/*##################################################################### */ - /*Register : MR2 @ 0XFD080188

      + /* + * Register : MR1 @ 0XFD080184 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR2_RESERVED_31_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR1_RESERVED_31_8 0x3 - Write Leveling - PSU_DDR_PHY_MR2_WRL 0x0 + * Read Postamble Length + * PSU_DDR_PHY_MR1_RDPST 0x0 - Write Latency Set - PSU_DDR_PHY_MR2_WLS 0x0 + * Write-recovery for auto-precharge command + * PSU_DDR_PHY_MR1_NWR 0x0 - Write Latency - PSU_DDR_PHY_MR2_WL 0x4 + * Read Preamble Length + * PSU_DDR_PHY_MR1_RDPRE 0x0 - Read Latency - PSU_DDR_PHY_MR2_RL 0x0 + * Write Preamble Length + * PSU_DDR_PHY_MR1_WRPRE 0x0 - LPDDR4 Mode Register 2 - (OFFSET, MASK, VALUE) (0XFD080188, 0xFFFFFFFFU ,0x00000020U) - RegMask = (DDR_PHY_MR2_RESERVED_31_8_MASK | DDR_PHY_MR2_WRL_MASK | DDR_PHY_MR2_WLS_MASK | DDR_PHY_MR2_WL_MASK | DDR_PHY_MR2_RL_MASK | 0 ); + * Burst Length + * PSU_DDR_PHY_MR1_BL 0x1 - RegVal = ((0x00000000U << DDR_PHY_MR2_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR2_WRL_SHIFT - | 0x00000000U << DDR_PHY_MR2_WLS_SHIFT - | 0x00000004U << DDR_PHY_MR2_WL_SHIFT - | 0x00000000U << DDR_PHY_MR2_RL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR2_OFFSET ,0xFFFFFFFFU ,0x00000020U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 1 + * (OFFSET, MASK, VALUE) (0XFD080184, 0xFFFFFFFFU ,0x00000301U) + */ + PSU_Mask_Write(DDR_PHY_MR1_OFFSET, 0xFFFFFFFFU, 0x00000301U); +/*##################################################################### */ - /*Register : MR3 @ 0XFD08018C

      + /* + * Register : MR2 @ 0XFD080188 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR3_RESERVED_31_8 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR2_RESERVED_31_8 0x0 - DBI-Write Enable - PSU_DDR_PHY_MR3_DBIWR 0x0 + * Write Leveling + * PSU_DDR_PHY_MR2_WRL 0x0 - DBI-Read Enable - PSU_DDR_PHY_MR3_DBIRD 0x0 + * Write Latency Set + * PSU_DDR_PHY_MR2_WLS 0x0 - Pull-down Drive Strength - PSU_DDR_PHY_MR3_PDDS 0x0 + * Write Latency + * PSU_DDR_PHY_MR2_WL 0x4 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR3_RSVD 0x0 + * Read Latency + * PSU_DDR_PHY_MR2_RL 0x0 - Write Postamble Length - PSU_DDR_PHY_MR3_WRPST 0x0 + * LPDDR4 Mode Register 2 + * (OFFSET, MASK, VALUE) (0XFD080188, 0xFFFFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(DDR_PHY_MR2_OFFSET, 0xFFFFFFFFU, 0x00000020U); +/*##################################################################### */ - Pull-up Calibration Point - PSU_DDR_PHY_MR3_PUCAL 0x0 + /* + * Register : MR3 @ 0XFD08018C - LPDDR4 Mode Register 3 - (OFFSET, MASK, VALUE) (0XFD08018C, 0xFFFFFFFFU ,0x00000200U) - RegMask = (DDR_PHY_MR3_RESERVED_31_8_MASK | DDR_PHY_MR3_DBIWR_MASK | DDR_PHY_MR3_DBIRD_MASK | DDR_PHY_MR3_PDDS_MASK | DDR_PHY_MR3_RSVD_MASK | DDR_PHY_MR3_WRPST_MASK | DDR_PHY_MR3_PUCAL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR3_RESERVED_31_8 0x2 - RegVal = ((0x00000002U << DDR_PHY_MR3_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR3_DBIWR_SHIFT - | 0x00000000U << DDR_PHY_MR3_DBIRD_SHIFT - | 0x00000000U << DDR_PHY_MR3_PDDS_SHIFT - | 0x00000000U << DDR_PHY_MR3_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR3_WRPST_SHIFT - | 0x00000000U << DDR_PHY_MR3_PUCAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR3_OFFSET ,0xFFFFFFFFU ,0x00000200U); - /*############################################################################################################################ */ + * DBI-Write Enable + * PSU_DDR_PHY_MR3_DBIWR 0x0 - /*Register : MR4 @ 0XFD080190

      + * DBI-Read Enable + * PSU_DDR_PHY_MR3_DBIRD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR4_RESERVED_31_16 0x0 + * Pull-down Drive Strength + * PSU_DDR_PHY_MR3_PDDS 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD_15_13 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR3_RSVD 0x0 - Write Preamble - PSU_DDR_PHY_MR4_WRP 0x0 + * Write Postamble Length + * PSU_DDR_PHY_MR3_WRPST 0x0 - Read Preamble - PSU_DDR_PHY_MR4_RDP 0x0 + * Pull-up Calibration Point + * PSU_DDR_PHY_MR3_PUCAL 0x0 - Read Preamble Training Mode - PSU_DDR_PHY_MR4_RPTM 0x0 + * LPDDR4 Mode Register 3 + * (OFFSET, MASK, VALUE) (0XFD08018C, 0xFFFFFFFFU ,0x00000200U) + */ + PSU_Mask_Write(DDR_PHY_MR3_OFFSET, 0xFFFFFFFFU, 0x00000200U); +/*##################################################################### */ - Self Refresh Abort - PSU_DDR_PHY_MR4_SRA 0x0 + /* + * Register : MR4 @ 0XFD080190 - CS to Command Latency Mode - PSU_DDR_PHY_MR4_CS2CMDL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR4_RESERVED_31_16 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD1 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR4_RSVD_15_13 0x0 - Internal VREF Monitor - PSU_DDR_PHY_MR4_IVM 0x0 + * Write Preamble + * PSU_DDR_PHY_MR4_WRP 0x0 - Temperature Controlled Refresh Mode - PSU_DDR_PHY_MR4_TCRM 0x0 + * Read Preamble + * PSU_DDR_PHY_MR4_RDP 0x0 - Temperature Controlled Refresh Range - PSU_DDR_PHY_MR4_TCRR 0x0 + * Read Preamble Training Mode + * PSU_DDR_PHY_MR4_RPTM 0x0 - Maximum Power Down Mode - PSU_DDR_PHY_MR4_MPDM 0x0 + * Self Refresh Abort + * PSU_DDR_PHY_MR4_SRA 0x0 - This is a JEDEC reserved bit and is recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR4_RSVD_0 0x0 + * CS to Command Latency Mode + * PSU_DDR_PHY_MR4_CS2CMDL 0x0 - DDR4 Mode Register 4 - (OFFSET, MASK, VALUE) (0XFD080190, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR4_RESERVED_31_16_MASK | DDR_PHY_MR4_RSVD_15_13_MASK | DDR_PHY_MR4_WRP_MASK | DDR_PHY_MR4_RDP_MASK | DDR_PHY_MR4_RPTM_MASK | DDR_PHY_MR4_SRA_MASK | DDR_PHY_MR4_CS2CMDL_MASK | DDR_PHY_MR4_RSVD1_MASK | DDR_PHY_MR4_IVM_MASK | DDR_PHY_MR4_TCRM_MASK | DDR_PHY_MR4_TCRR_MASK | DDR_PHY_MR4_MPDM_MASK | DDR_PHY_MR4_RSVD_0_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR4_RSVD1 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR4_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD_15_13_SHIFT - | 0x00000000U << DDR_PHY_MR4_WRP_SHIFT - | 0x00000000U << DDR_PHY_MR4_RDP_SHIFT - | 0x00000000U << DDR_PHY_MR4_RPTM_SHIFT - | 0x00000000U << DDR_PHY_MR4_SRA_SHIFT - | 0x00000000U << DDR_PHY_MR4_CS2CMDL_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD1_SHIFT - | 0x00000000U << DDR_PHY_MR4_IVM_SHIFT - | 0x00000000U << DDR_PHY_MR4_TCRM_SHIFT - | 0x00000000U << DDR_PHY_MR4_TCRR_SHIFT - | 0x00000000U << DDR_PHY_MR4_MPDM_SHIFT - | 0x00000000U << DDR_PHY_MR4_RSVD_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR4_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Internal VREF Monitor + * PSU_DDR_PHY_MR4_IVM 0x0 - /*Register : MR5 @ 0XFD080194

      + * Temperature Controlled Refresh Mode + * PSU_DDR_PHY_MR4_TCRM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR5_RESERVED_31_16 0x0 + * Temperature Controlled Refresh Range + * PSU_DDR_PHY_MR4_TCRR 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR5_RSVD 0x0 + * Maximum Power Down Mode + * PSU_DDR_PHY_MR4_MPDM 0x0 - Read DBI - PSU_DDR_PHY_MR5_RDBI 0x0 + * This is a JEDEC reserved bit and is recommended by JEDEC to be programme + * d to 0x0. + * PSU_DDR_PHY_MR4_RSVD_0 0x0 - Write DBI - PSU_DDR_PHY_MR5_WDBI 0x0 + * DDR4 Mode Register 4 + * (OFFSET, MASK, VALUE) (0XFD080190, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR4_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Data Mask - PSU_DDR_PHY_MR5_DM 0x1 + /* + * Register : MR5 @ 0XFD080194 - CA Parity Persistent Error - PSU_DDR_PHY_MR5_CAPPE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR5_RESERVED_31_16 0x0 - RTT_PARK - PSU_DDR_PHY_MR5_RTTPARK 0x3 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR5_RSVD 0x0 - ODT Input Buffer during Power Down mode - PSU_DDR_PHY_MR5_ODTIBPD 0x0 + * Read DBI + * PSU_DDR_PHY_MR5_RDBI 0x0 - C/A Parity Error Status - PSU_DDR_PHY_MR5_CAPES 0x0 + * Write DBI + * PSU_DDR_PHY_MR5_WDBI 0x0 - CRC Error Clear - PSU_DDR_PHY_MR5_CRCEC 0x0 + * Data Mask + * PSU_DDR_PHY_MR5_DM 0x1 - C/A Parity Latency Mode - PSU_DDR_PHY_MR5_CAPM 0x0 + * CA Parity Persistent Error + * PSU_DDR_PHY_MR5_CAPPE 0x1 - DDR4 Mode Register 5 - (OFFSET, MASK, VALUE) (0XFD080194, 0xFFFFFFFFU ,0x000006C0U) - RegMask = (DDR_PHY_MR5_RESERVED_31_16_MASK | DDR_PHY_MR5_RSVD_MASK | DDR_PHY_MR5_RDBI_MASK | DDR_PHY_MR5_WDBI_MASK | DDR_PHY_MR5_DM_MASK | DDR_PHY_MR5_CAPPE_MASK | DDR_PHY_MR5_RTTPARK_MASK | DDR_PHY_MR5_ODTIBPD_MASK | DDR_PHY_MR5_CAPES_MASK | DDR_PHY_MR5_CRCEC_MASK | DDR_PHY_MR5_CAPM_MASK | 0 ); + * RTT_PARK + * PSU_DDR_PHY_MR5_RTTPARK 0x3 - RegVal = ((0x00000000U << DDR_PHY_MR5_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR5_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR5_RDBI_SHIFT - | 0x00000000U << DDR_PHY_MR5_WDBI_SHIFT - | 0x00000001U << DDR_PHY_MR5_DM_SHIFT - | 0x00000001U << DDR_PHY_MR5_CAPPE_SHIFT - | 0x00000003U << DDR_PHY_MR5_RTTPARK_SHIFT - | 0x00000000U << DDR_PHY_MR5_ODTIBPD_SHIFT - | 0x00000000U << DDR_PHY_MR5_CAPES_SHIFT - | 0x00000000U << DDR_PHY_MR5_CRCEC_SHIFT - | 0x00000000U << DDR_PHY_MR5_CAPM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR5_OFFSET ,0xFFFFFFFFU ,0x000006C0U); - /*############################################################################################################################ */ + * ODT Input Buffer during Power Down mode + * PSU_DDR_PHY_MR5_ODTIBPD 0x0 - /*Register : MR6 @ 0XFD080198

      + * C/A Parity Error Status + * PSU_DDR_PHY_MR5_CAPES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR6_RESERVED_31_16 0x0 + * CRC Error Clear + * PSU_DDR_PHY_MR5_CRCEC 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR6_RSVD_15_13 0x0 + * C/A Parity Latency Mode + * PSU_DDR_PHY_MR5_CAPM 0x0 - CAS_n to CAS_n command delay for same bank group (tCCD_L) - PSU_DDR_PHY_MR6_TCCDL 0x2 + * DDR4 Mode Register 5 + * (OFFSET, MASK, VALUE) (0XFD080194, 0xFFFFFFFFU ,0x000006C0U) + */ + PSU_Mask_Write(DDR_PHY_MR5_OFFSET, 0xFFFFFFFFU, 0x000006C0U); +/*##################################################################### */ - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR6_RSVD_9_8 0x0 + /* + * Register : MR6 @ 0XFD080198 - VrefDQ Training Enable - PSU_DDR_PHY_MR6_VDDQTEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR6_RESERVED_31_16 0x0 - VrefDQ Training Range - PSU_DDR_PHY_MR6_VDQTRG 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR6_RSVD_15_13 0x0 - VrefDQ Training Values - PSU_DDR_PHY_MR6_VDQTVAL 0x19 + * CAS_n to CAS_n command delay for same bank group (tCCD_L) + * PSU_DDR_PHY_MR6_TCCDL 0x2 - DDR4 Mode Register 6 - (OFFSET, MASK, VALUE) (0XFD080198, 0xFFFFFFFFU ,0x00000819U) - RegMask = (DDR_PHY_MR6_RESERVED_31_16_MASK | DDR_PHY_MR6_RSVD_15_13_MASK | DDR_PHY_MR6_TCCDL_MASK | DDR_PHY_MR6_RSVD_9_8_MASK | DDR_PHY_MR6_VDDQTEN_MASK | DDR_PHY_MR6_VDQTRG_MASK | DDR_PHY_MR6_VDQTVAL_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR6_RSVD_9_8 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR6_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_MR6_RSVD_15_13_SHIFT - | 0x00000002U << DDR_PHY_MR6_TCCDL_SHIFT - | 0x00000000U << DDR_PHY_MR6_RSVD_9_8_SHIFT - | 0x00000000U << DDR_PHY_MR6_VDDQTEN_SHIFT - | 0x00000000U << DDR_PHY_MR6_VDQTRG_SHIFT - | 0x00000019U << DDR_PHY_MR6_VDQTVAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR6_OFFSET ,0xFFFFFFFFU ,0x00000819U); - /*############################################################################################################################ */ + * VrefDQ Training Enable + * PSU_DDR_PHY_MR6_VDDQTEN 0x0 - /*Register : MR11 @ 0XFD0801AC

      + * VrefDQ Training Range + * PSU_DDR_PHY_MR6_VDQTRG 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR11_RESERVED_31_8 0x0 + * VrefDQ Training Values + * PSU_DDR_PHY_MR6_VDQTVAL 0x19 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR11_RSVD 0x0 + * DDR4 Mode Register 6 + * (OFFSET, MASK, VALUE) (0XFD080198, 0xFFFFFFFFU ,0x00000819U) + */ + PSU_Mask_Write(DDR_PHY_MR6_OFFSET, 0xFFFFFFFFU, 0x00000819U); +/*##################################################################### */ - Power Down Control - PSU_DDR_PHY_MR11_PDCTL 0x0 + /* + * Register : MR11 @ 0XFD0801AC - DQ Bus Receiver On-Die-Termination - PSU_DDR_PHY_MR11_DQODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR11_RESERVED_31_8 0x0 - LPDDR4 Mode Register 11 - (OFFSET, MASK, VALUE) (0XFD0801AC, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR11_RESERVED_31_8_MASK | DDR_PHY_MR11_RSVD_MASK | DDR_PHY_MR11_PDCTL_MASK | DDR_PHY_MR11_DQODT_MASK | 0 ); + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR11_RSVD 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR11_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR11_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR11_PDCTL_SHIFT - | 0x00000000U << DDR_PHY_MR11_DQODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR11_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Power Down Control + * PSU_DDR_PHY_MR11_PDCTL 0x0 - /*Register : MR12 @ 0XFD0801B0

      + * DQ Bus Receiver On-Die-Termination + * PSU_DDR_PHY_MR11_DQODT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR12_RESERVED_31_8 0x0 + * LPDDR4 Mode Register 11 + * (OFFSET, MASK, VALUE) (0XFD0801AC, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR11_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR12_RSVD 0x0 + /* + * Register : MR12 @ 0XFD0801B0 - VREF_CA Range Select. - PSU_DDR_PHY_MR12_VR_CA 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR12_RESERVED_31_8 0x0 - Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. - PSU_DDR_PHY_MR12_VREF_CA 0xd + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR12_RSVD 0x0 - LPDDR4 Mode Register 12 - (OFFSET, MASK, VALUE) (0XFD0801B0, 0xFFFFFFFFU ,0x0000004DU) - RegMask = (DDR_PHY_MR12_RESERVED_31_8_MASK | DDR_PHY_MR12_RSVD_MASK | DDR_PHY_MR12_VR_CA_MASK | DDR_PHY_MR12_VREF_CA_MASK | 0 ); + * VREF_CA Range Select. + * PSU_DDR_PHY_MR12_VR_CA 0x1 - RegVal = ((0x00000000U << DDR_PHY_MR12_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR12_RSVD_SHIFT - | 0x00000001U << DDR_PHY_MR12_VR_CA_SHIFT - | 0x0000000DU << DDR_PHY_MR12_VREF_CA_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR12_OFFSET ,0xFFFFFFFFU ,0x0000004DU); - /*############################################################################################################################ */ + * Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. + * PSU_DDR_PHY_MR12_VREF_CA 0xd - /*Register : MR13 @ 0XFD0801B4

      + * LPDDR4 Mode Register 12 + * (OFFSET, MASK, VALUE) (0XFD0801B0, 0xFFFFFFFFU ,0x0000004DU) + */ + PSU_Mask_Write(DDR_PHY_MR12_OFFSET, 0xFFFFFFFFU, 0x0000004DU); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR13_RESERVED_31_8 0x0 + /* + * Register : MR13 @ 0XFD0801B4 - Frequency Set Point Operation Mode - PSU_DDR_PHY_MR13_FSPOP 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR13_RESERVED_31_8 0x0 - Frequency Set Point Write Enable - PSU_DDR_PHY_MR13_FSPWR 0x0 + * Frequency Set Point Operation Mode + * PSU_DDR_PHY_MR13_FSPOP 0x0 - Data Mask Enable - PSU_DDR_PHY_MR13_DMD 0x0 + * Frequency Set Point Write Enable + * PSU_DDR_PHY_MR13_FSPWR 0x0 - Refresh Rate Option - PSU_DDR_PHY_MR13_RRO 0x0 + * Data Mask Enable + * PSU_DDR_PHY_MR13_DMD 0x0 - VREF Current Generator - PSU_DDR_PHY_MR13_VRCG 0x1 + * Refresh Rate Option + * PSU_DDR_PHY_MR13_RRO 0x0 - VREF Output - PSU_DDR_PHY_MR13_VRO 0x0 + * VREF Current Generator + * PSU_DDR_PHY_MR13_VRCG 0x1 - Read Preamble Training Mode - PSU_DDR_PHY_MR13_RPT 0x0 + * VREF Output + * PSU_DDR_PHY_MR13_VRO 0x0 - Command Bus Training - PSU_DDR_PHY_MR13_CBT 0x0 + * Read Preamble Training Mode + * PSU_DDR_PHY_MR13_RPT 0x0 - LPDDR4 Mode Register 13 - (OFFSET, MASK, VALUE) (0XFD0801B4, 0xFFFFFFFFU ,0x00000008U) - RegMask = (DDR_PHY_MR13_RESERVED_31_8_MASK | DDR_PHY_MR13_FSPOP_MASK | DDR_PHY_MR13_FSPWR_MASK | DDR_PHY_MR13_DMD_MASK | DDR_PHY_MR13_RRO_MASK | DDR_PHY_MR13_VRCG_MASK | DDR_PHY_MR13_VRO_MASK | DDR_PHY_MR13_RPT_MASK | DDR_PHY_MR13_CBT_MASK | 0 ); + * Command Bus Training + * PSU_DDR_PHY_MR13_CBT 0x0 - RegVal = ((0x00000000U << DDR_PHY_MR13_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR13_FSPOP_SHIFT - | 0x00000000U << DDR_PHY_MR13_FSPWR_SHIFT - | 0x00000000U << DDR_PHY_MR13_DMD_SHIFT - | 0x00000000U << DDR_PHY_MR13_RRO_SHIFT - | 0x00000001U << DDR_PHY_MR13_VRCG_SHIFT - | 0x00000000U << DDR_PHY_MR13_VRO_SHIFT - | 0x00000000U << DDR_PHY_MR13_RPT_SHIFT - | 0x00000000U << DDR_PHY_MR13_CBT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR13_OFFSET ,0xFFFFFFFFU ,0x00000008U); - /*############################################################################################################################ */ + * LPDDR4 Mode Register 13 + * (OFFSET, MASK, VALUE) (0XFD0801B4, 0xFFFFFFFFU ,0x00000008U) + */ + PSU_Mask_Write(DDR_PHY_MR13_OFFSET, 0xFFFFFFFFU, 0x00000008U); +/*##################################################################### */ - /*Register : MR14 @ 0XFD0801B8

      + /* + * Register : MR14 @ 0XFD0801B8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR14_RESERVED_31_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR14_RESERVED_31_8 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR14_RSVD 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR14_RSVD 0x0 - VREFDQ Range Selects. - PSU_DDR_PHY_MR14_VR_DQ 0x1 + * VREFDQ Range Selects. + * PSU_DDR_PHY_MR14_VR_DQ 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR14_VREF_DQ 0xd + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR14_VREF_DQ 0xd - LPDDR4 Mode Register 14 - (OFFSET, MASK, VALUE) (0XFD0801B8, 0xFFFFFFFFU ,0x0000004DU) - RegMask = (DDR_PHY_MR14_RESERVED_31_8_MASK | DDR_PHY_MR14_RSVD_MASK | DDR_PHY_MR14_VR_DQ_MASK | DDR_PHY_MR14_VREF_DQ_MASK | 0 ); + * LPDDR4 Mode Register 14 + * (OFFSET, MASK, VALUE) (0XFD0801B8, 0xFFFFFFFFU ,0x0000004DU) + */ + PSU_Mask_Write(DDR_PHY_MR14_OFFSET, 0xFFFFFFFFU, 0x0000004DU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_MR14_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR14_RSVD_SHIFT - | 0x00000001U << DDR_PHY_MR14_VR_DQ_SHIFT - | 0x0000000DU << DDR_PHY_MR14_VREF_DQ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR14_OFFSET ,0xFFFFFFFFU ,0x0000004DU); - /*############################################################################################################################ */ + /* + * Register : MR22 @ 0XFD0801D8 - /*Register : MR22 @ 0XFD0801D8

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_MR22_RESERVED_31_8 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_MR22_RESERVED_31_8 0x0 + * These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. + * PSU_DDR_PHY_MR22_RSVD 0x0 - These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0. - PSU_DDR_PHY_MR22_RSVD 0x0 + * CA ODT termination disable. + * PSU_DDR_PHY_MR22_ODTD_CA 0x0 - CA ODT termination disable. - PSU_DDR_PHY_MR22_ODTD_CA 0x0 + * ODT CS override. + * PSU_DDR_PHY_MR22_ODTE_CS 0x0 - ODT CS override. - PSU_DDR_PHY_MR22_ODTE_CS 0x0 + * ODT CK override. + * PSU_DDR_PHY_MR22_ODTE_CK 0x0 - ODT CK override. - PSU_DDR_PHY_MR22_ODTE_CK 0x0 + * Controller ODT value for VOH calibration. + * PSU_DDR_PHY_MR22_CODT 0x0 - Controller ODT value for VOH calibration. - PSU_DDR_PHY_MR22_CODT 0x0 + * LPDDR4 Mode Register 22 + * (OFFSET, MASK, VALUE) (0XFD0801D8, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_MR22_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - LPDDR4 Mode Register 22 - (OFFSET, MASK, VALUE) (0XFD0801D8, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_MR22_RESERVED_31_8_MASK | DDR_PHY_MR22_RSVD_MASK | DDR_PHY_MR22_ODTD_CA_MASK | DDR_PHY_MR22_ODTE_CS_MASK | DDR_PHY_MR22_ODTE_CK_MASK | DDR_PHY_MR22_CODT_MASK | 0 ); + /* + * Register : DTCR0 @ 0XFD080200 - RegVal = ((0x00000000U << DDR_PHY_MR22_RESERVED_31_8_SHIFT - | 0x00000000U << DDR_PHY_MR22_RSVD_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTD_CA_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTE_CS_SHIFT - | 0x00000000U << DDR_PHY_MR22_ODTE_CK_SHIFT - | 0x00000000U << DDR_PHY_MR22_CODT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_MR22_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Refresh During Training + * PSU_DDR_PHY_DTCR0_RFSHDT 0x8 - /*Register : DTCR0 @ 0XFD080200

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_27_26 0x0 - Refresh During Training - PSU_DDR_PHY_DTCR0_RFSHDT 0x8 + * Data Training Debug Rank Select + * PSU_DDR_PHY_DTCR0_DTDRS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_27_26 0x0 + * Data Training with Early/Extended Gate + * PSU_DDR_PHY_DTCR0_DTEXG 0x0 - Data Training Debug Rank Select - PSU_DDR_PHY_DTCR0_DTDRS 0x0 + * Data Training Extended Write DQS + * PSU_DDR_PHY_DTCR0_DTEXD 0x0 - Data Training with Early/Extended Gate - PSU_DDR_PHY_DTCR0_DTEXG 0x0 + * Data Training Debug Step + * PSU_DDR_PHY_DTCR0_DTDSTP 0x0 - Data Training Extended Write DQS - PSU_DDR_PHY_DTCR0_DTEXD 0x0 + * Data Training Debug Enable + * PSU_DDR_PHY_DTCR0_DTDEN 0x0 - Data Training Debug Step - PSU_DDR_PHY_DTCR0_DTDSTP 0x0 + * Data Training Debug Byte Select + * PSU_DDR_PHY_DTCR0_DTDBS 0x0 - Data Training Debug Enable - PSU_DDR_PHY_DTCR0_DTDEN 0x0 + * Data Training read DBI deskewing configuration + * PSU_DDR_PHY_DTCR0_DTRDBITR 0x2 - Data Training Debug Byte Select - PSU_DDR_PHY_DTCR0_DTDBS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_13 0x0 - Data Training read DBI deskewing configuration - PSU_DDR_PHY_DTCR0_DTRDBITR 0x2 + * Data Training Write Bit Deskew Data Mask + * PSU_DDR_PHY_DTCR0_DTWBDDM 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_13 0x0 + * Refreshes Issued During Entry to Training + * PSU_DDR_PHY_DTCR0_RFSHEN 0x1 - Data Training Write Bit Deskew Data Mask - PSU_DDR_PHY_DTCR0_DTWBDDM 0x1 + * Data Training Compare Data + * PSU_DDR_PHY_DTCR0_DTCMPD 0x1 - Refreshes Issued During Entry to Training - PSU_DDR_PHY_DTCR0_RFSHEN 0x1 + * Data Training Using MPR + * PSU_DDR_PHY_DTCR0_DTMPR 0x1 - Data Training Compare Data - PSU_DDR_PHY_DTCR0_DTCMPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR0_RESERVED_5_4 0x0 - Data Training Using MPR - PSU_DDR_PHY_DTCR0_DTMPR 0x1 + * Data Training Repeat Number + * PSU_DDR_PHY_DTCR0_DTRPTN 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR0_RESERVED_5_4 0x0 + * Data Training Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080200, 0xFFFFFFFFU ,0x800091C7U) + */ + PSU_Mask_Write(DDR_PHY_DTCR0_OFFSET, 0xFFFFFFFFU, 0x800091C7U); +/*##################################################################### */ - Data Training Repeat Number - PSU_DDR_PHY_DTCR0_DTRPTN 0x7 + /* + * Register : DTCR1 @ 0XFD080204 - Data Training Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080200, 0xFFFFFFFFU ,0x800091C7U) - RegMask = (DDR_PHY_DTCR0_RFSHDT_MASK | DDR_PHY_DTCR0_RESERVED_27_26_MASK | DDR_PHY_DTCR0_DTDRS_MASK | DDR_PHY_DTCR0_DTEXG_MASK | DDR_PHY_DTCR0_DTEXD_MASK | DDR_PHY_DTCR0_DTDSTP_MASK | DDR_PHY_DTCR0_DTDEN_MASK | DDR_PHY_DTCR0_DTDBS_MASK | DDR_PHY_DTCR0_DTRDBITR_MASK | DDR_PHY_DTCR0_RESERVED_13_MASK | DDR_PHY_DTCR0_DTWBDDM_MASK | DDR_PHY_DTCR0_RFSHEN_MASK | DDR_PHY_DTCR0_DTCMPD_MASK | DDR_PHY_DTCR0_DTMPR_MASK | DDR_PHY_DTCR0_RESERVED_5_4_MASK | DDR_PHY_DTCR0_DTRPTN_MASK | 0 ); + * Rank Enable. + * PSU_DDR_PHY_DTCR1_RANKEN_RSVD 0x0 - RegVal = ((0x00000008U << DDR_PHY_DTCR0_RFSHDT_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_27_26_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDRS_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTEXG_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTEXD_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDSTP_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_DTDBS_SHIFT - | 0x00000002U << DDR_PHY_DTCR0_DTRDBITR_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_13_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTWBDDM_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_RFSHEN_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTCMPD_SHIFT - | 0x00000001U << DDR_PHY_DTCR0_DTMPR_SHIFT - | 0x00000000U << DDR_PHY_DTCR0_RESERVED_5_4_SHIFT - | 0x00000007U << DDR_PHY_DTCR0_DTRPTN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTCR0_OFFSET ,0xFFFFFFFFU ,0x800091C7U); - /*############################################################################################################################ */ + * Rank Enable. + * PSU_DDR_PHY_DTCR1_RANKEN 0x1 - /*Register : DTCR1 @ 0XFD080204

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_15_14 0x0 - Rank Enable. - PSU_DDR_PHY_DTCR1_RANKEN_RSVD 0x0 + * Data Training Rank + * PSU_DDR_PHY_DTCR1_DTRANK 0x0 - Rank Enable. - PSU_DDR_PHY_DTCR1_RANKEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_11 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_15_14 0x0 + * Read Leveling Gate Sampling Difference + * PSU_DDR_PHY_DTCR1_RDLVLGDIFF 0x2 - Data Training Rank - PSU_DDR_PHY_DTCR1_DTRANK 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_7 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_11 0x0 + * Read Leveling Gate Shift + * PSU_DDR_PHY_DTCR1_RDLVLGS 0x3 - Read Leveling Gate Sampling Difference - PSU_DDR_PHY_DTCR1_RDLVLGDIFF 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DTCR1_RESERVED_3 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_7 0x0 + * Read Preamble Training enable + * PSU_DDR_PHY_DTCR1_RDPRMVL_TRN 0x1 - Read Leveling Gate Shift - PSU_DDR_PHY_DTCR1_RDLVLGS 0x3 + * Read Leveling Enable + * PSU_DDR_PHY_DTCR1_RDLVLEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DTCR1_RESERVED_3 0x0 + * Basic Gate Training Enable + * PSU_DDR_PHY_DTCR1_BSTEN 0x0 - Read Preamble Training enable - PSU_DDR_PHY_DTCR1_RDPRMVL_TRN 0x1 + * Data Training Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080204, 0xFFFFFFFFU ,0x00010236U) + */ + PSU_Mask_Write(DDR_PHY_DTCR1_OFFSET, 0xFFFFFFFFU, 0x00010236U); +/*##################################################################### */ - Read Leveling Enable - PSU_DDR_PHY_DTCR1_RDLVLEN 0x1 + /* + * Register : CATR0 @ 0XFD080240 - Basic Gate Training Enable - PSU_DDR_PHY_DTCR1_BSTEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_CATR0_RESERVED_31_21 0x0 - Data Training Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080204, 0xFFFFFFFFU ,0x00010236U) - RegMask = (DDR_PHY_DTCR1_RANKEN_RSVD_MASK | DDR_PHY_DTCR1_RANKEN_MASK | DDR_PHY_DTCR1_RESERVED_15_14_MASK | DDR_PHY_DTCR1_DTRANK_MASK | DDR_PHY_DTCR1_RESERVED_11_MASK | DDR_PHY_DTCR1_RDLVLGDIFF_MASK | DDR_PHY_DTCR1_RESERVED_7_MASK | DDR_PHY_DTCR1_RDLVLGS_MASK | DDR_PHY_DTCR1_RESERVED_3_MASK | DDR_PHY_DTCR1_RDPRMVL_TRN_MASK | DDR_PHY_DTCR1_RDLVLEN_MASK | DDR_PHY_DTCR1_BSTEN_MASK | 0 ); + * Minimum time (in terms of number of dram clocks) between two consectuve + * CA calibration command + * PSU_DDR_PHY_CATR0_CACD 0x14 - RegVal = ((0x00000000U << DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RANKEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_DTRANK_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_11_SHIFT - | 0x00000002U << DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_7_SHIFT - | 0x00000003U << DDR_PHY_DTCR1_RDLVLGS_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_RESERVED_3_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT - | 0x00000001U << DDR_PHY_DTCR1_RDLVLEN_SHIFT - | 0x00000000U << DDR_PHY_DTCR1_BSTEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DTCR1_OFFSET ,0xFFFFFFFFU ,0x00010236U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_CATR0_RESERVED_15_13 0x0 - /*Register : CATR0 @ 0XFD080240

      + * Minimum time (in terms of number of dram clocks) PUB should wait before + * sampling the CA response after Calibration command has been sent to the + * memory + * PSU_DDR_PHY_CATR0_CAADR 0x10 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_CATR0_RESERVED_31_21 0x0 + * CA_1 Response Byte Lane 1 + * PSU_DDR_PHY_CATR0_CA1BYTE1 0x5 - Minimum time (in terms of number of dram clocks) between two consectuve CA calibration command - PSU_DDR_PHY_CATR0_CACD 0x14 + * CA_1 Response Byte Lane 0 + * PSU_DDR_PHY_CATR0_CA1BYTE0 0x4 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_CATR0_RESERVED_15_13 0x0 + * CA Training Register 0 + * (OFFSET, MASK, VALUE) (0XFD080240, 0xFFFFFFFFU ,0x00141054U) + */ + PSU_Mask_Write(DDR_PHY_CATR0_OFFSET, 0xFFFFFFFFU, 0x00141054U); +/*##################################################################### */ - Minimum time (in terms of number of dram clocks) PUB should wait before sampling the CA response after Calibration command ha - been sent to the memory - PSU_DDR_PHY_CATR0_CAADR 0x10 + /* + * Register : DQSDR0 @ 0XFD080250 - CA_1 Response Byte Lane 1 - PSU_DDR_PHY_CATR0_CA1BYTE1 0x5 + * Number of delay taps by which the DQS gate LCDL will be updated when DQS + * drift is detected + * PSU_DDR_PHY_DQSDR0_DFTDLY 0x0 - CA_1 Response Byte Lane 0 - PSU_DDR_PHY_CATR0_CA1BYTE0 0x4 - - CA Training Register 0 - (OFFSET, MASK, VALUE) (0XFD080240, 0xFFFFFFFFU ,0x00141054U) - RegMask = (DDR_PHY_CATR0_RESERVED_31_21_MASK | DDR_PHY_CATR0_CACD_MASK | DDR_PHY_CATR0_RESERVED_15_13_MASK | DDR_PHY_CATR0_CAADR_MASK | DDR_PHY_CATR0_CA1BYTE1_MASK | DDR_PHY_CATR0_CA1BYTE0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_CATR0_RESERVED_31_21_SHIFT - | 0x00000014U << DDR_PHY_CATR0_CACD_SHIFT - | 0x00000000U << DDR_PHY_CATR0_RESERVED_15_13_SHIFT - | 0x00000010U << DDR_PHY_CATR0_CAADR_SHIFT - | 0x00000005U << DDR_PHY_CATR0_CA1BYTE1_SHIFT - | 0x00000004U << DDR_PHY_CATR0_CA1BYTE0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_CATR0_OFFSET ,0xFFFFFFFFU ,0x00141054U); - /*############################################################################################################################ */ + * Drift Impedance Update + * PSU_DDR_PHY_DQSDR0_DFTZQUP 0x0 - /*Register : BISTLSR @ 0XFD080414

      + * Drift DDL Update + * PSU_DDR_PHY_DQSDR0_DFTDDLUP 0x0 - LFSR seed for pseudo-random BIST patterns - PSU_DDR_PHY_BISTLSR_SEED 0x12341000 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DQSDR0_RESERVED_25_22 0x0 - BIST LFSR Seed Register - (OFFSET, MASK, VALUE) (0XFD080414, 0xFFFFFFFFU ,0x12341000U) - RegMask = (DDR_PHY_BISTLSR_SEED_MASK | 0 ); + * Drift Read Spacing + * PSU_DDR_PHY_DQSDR0_DFTRDSPC 0x0 - RegVal = ((0x12341000U << DDR_PHY_BISTLSR_SEED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_BISTLSR_OFFSET ,0xFFFFFFFFU ,0x12341000U); - /*############################################################################################################################ */ + * Drift Back-to-Back Reads + * PSU_DDR_PHY_DQSDR0_DFTB2BRD 0x8 - /*Register : RIOCR5 @ 0XFD0804F4

      + * Drift Idle Reads + * PSU_DDR_PHY_DQSDR0_DFTIDLRD 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_RIOCR5_RESERVED_31_16 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DQSDR0_RESERVED_11_8 0x0 - Reserved. Return zeros on reads. - PSU_DDR_PHY_RIOCR5_ODTOEMODE_RSVD 0x0 + * Gate Pulse Enable + * PSU_DDR_PHY_DQSDR0_DFTGPULSE 0x0 - SDRAM On-die Termination Output Enable (OE) Mode Selection. - PSU_DDR_PHY_RIOCR5_ODTOEMODE 0x5 + * DQS Drift Update Mode + * PSU_DDR_PHY_DQSDR0_DFTUPMODE 0x0 - Rank I/O Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD0804F4, 0xFFFFFFFFU ,0x00000005U) - RegMask = (DDR_PHY_RIOCR5_RESERVED_31_16_MASK | DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK | DDR_PHY_RIOCR5_ODTOEMODE_MASK | 0 ); + * DQS Drift Detection Mode + * PSU_DDR_PHY_DQSDR0_DFTDTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT - | 0x00000000U << DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT - | 0x00000005U << DDR_PHY_RIOCR5_ODTOEMODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_RIOCR5_OFFSET ,0xFFFFFFFFU ,0x00000005U); - /*############################################################################################################################ */ + * DQS Drift Detection Enable + * PSU_DDR_PHY_DQSDR0_DFTDTEN 0x0 - /*Register : ACIOCR0 @ 0XFD080500

      + * DQS Drift Register 0 + * (OFFSET, MASK, VALUE) (0XFD080250, 0xFFFFFFFFU ,0x00088000U) + */ + PSU_Mask_Write(DDR_PHY_DQSDR0_OFFSET, 0xFFFFFFFFU, 0x00088000U); +/*##################################################################### */ - Address/Command Slew Rate (D3F I/O Only) - PSU_DDR_PHY_ACIOCR0_ACSR 0x0 + /* + * Register : BISTLSR @ 0XFD080414 - SDRAM Reset I/O Mode - PSU_DDR_PHY_ACIOCR0_RSTIOM 0x1 + * LFSR seed for pseudo-random BIST patterns + * PSU_DDR_PHY_BISTLSR_SEED 0x12341000 - SDRAM Reset Power Down Receiver - PSU_DDR_PHY_ACIOCR0_RSTPDR 0x1 + * BIST LFSR Seed Register + * (OFFSET, MASK, VALUE) (0XFD080414, 0xFFFFFFFFU ,0x12341000U) + */ + PSU_Mask_Write(DDR_PHY_BISTLSR_OFFSET, 0xFFFFFFFFU, 0x12341000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_27 0x0 + /* + * Register : RIOCR5 @ 0XFD0804F4 - SDRAM Reset On-Die Termination - PSU_DDR_PHY_ACIOCR0_RSTODT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_RIOCR5_RESERVED_31_16 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_25_10 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_RIOCR5_ODTOEMODE_RSVD 0x0 - CK Duty Cycle Correction - PSU_DDR_PHY_ACIOCR0_CKDCC 0x0 + * SDRAM On-die Termination Output Enable (OE) Mode Selection. + * PSU_DDR_PHY_RIOCR5_ODTOEMODE 0x5 - AC Power Down Receiver Mode - PSU_DDR_PHY_ACIOCR0_ACPDRMODE 0x2 + * Rank I/O Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD0804F4, 0xFFFFFFFFU ,0x00000005U) + */ + PSU_Mask_Write(DDR_PHY_RIOCR5_OFFSET, 0xFFFFFFFFU, 0x00000005U); +/*##################################################################### */ - AC On-die Termination Mode - PSU_DDR_PHY_ACIOCR0_ACODTMODE 0x2 + /* + * Register : ACIOCR0 @ 0XFD080500 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR0_RESERVED_1 0x0 + * Address/Command Slew Rate (D3F I/O Only) + * PSU_DDR_PHY_ACIOCR0_ACSR 0x0 - Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. - PSU_DDR_PHY_ACIOCR0_ACRANKCLKSEL 0x0 + * SDRAM Reset I/O Mode + * PSU_DDR_PHY_ACIOCR0_RSTIOM 0x1 - AC I/O Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080500, 0xFFFFFFFFU ,0x30000028U) - RegMask = (DDR_PHY_ACIOCR0_ACSR_MASK | DDR_PHY_ACIOCR0_RSTIOM_MASK | DDR_PHY_ACIOCR0_RSTPDR_MASK | DDR_PHY_ACIOCR0_RESERVED_27_MASK | DDR_PHY_ACIOCR0_RSTODT_MASK | DDR_PHY_ACIOCR0_RESERVED_25_10_MASK | DDR_PHY_ACIOCR0_CKDCC_MASK | DDR_PHY_ACIOCR0_ACPDRMODE_MASK | DDR_PHY_ACIOCR0_ACODTMODE_MASK | DDR_PHY_ACIOCR0_RESERVED_1_MASK | DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK | 0 ); + * SDRAM Reset Power Down Receiver + * PSU_DDR_PHY_ACIOCR0_RSTPDR 0x1 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR0_ACSR_SHIFT - | 0x00000001U << DDR_PHY_ACIOCR0_RSTIOM_SHIFT - | 0x00000001U << DDR_PHY_ACIOCR0_RSTPDR_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_27_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RSTODT_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_CKDCC_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR0_ACODTMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_RESERVED_1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR0_OFFSET ,0xFFFFFFFFU ,0x30000028U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_27 0x0 - /*Register : ACIOCR2 @ 0XFD080508

      + * SDRAM Reset On-Die Termination + * PSU_DDR_PHY_ACIOCR0_RSTODT 0x0 - Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL slice - PSU_DDR_PHY_ACIOCR2_CLKGENCLKGATE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_25_10 0x0 - Clock gating for Output Enable D slices [0] - PSU_DDR_PHY_ACIOCR2_ACOECLKGATE0 0x0 + * CK Duty Cycle Correction + * PSU_DDR_PHY_ACIOCR0_CKDCC 0x0 - Clock gating for Power Down Receiver D slices [0] - PSU_DDR_PHY_ACIOCR2_ACPDRCLKGATE0 0x0 + * AC Power Down Receiver Mode + * PSU_DDR_PHY_ACIOCR0_ACPDRMODE 0x2 - Clock gating for Termination Enable D slices [0] - PSU_DDR_PHY_ACIOCR2_ACTECLKGATE0 0x0 + * AC On-die Termination Mode + * PSU_DDR_PHY_ACIOCR0_ACODTMODE 0x2 - Clock gating for CK# D slices [1:0] - PSU_DDR_PHY_ACIOCR2_CKNCLKGATE0 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR0_RESERVED_1 0x0 - Clock gating for CK D slices [1:0] - PSU_DDR_PHY_ACIOCR2_CKCLKGATE0 0x2 + * Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. + * PSU_DDR_PHY_ACIOCR0_ACRANKCLKSEL 0x0 - Clock gating for AC D slices [23:0] - PSU_DDR_PHY_ACIOCR2_ACCLKGATE0 0x0 + * AC I/O Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080500, 0xFFFFFFFFU ,0x30000028U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR0_OFFSET, 0xFFFFFFFFU, 0x30000028U); +/*##################################################################### */ - AC I/O Configuration Register 2 - (OFFSET, MASK, VALUE) (0XFD080508, 0xFFFFFFFFU ,0x0A000000U) - RegMask = (DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK | DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK | DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK | DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK | DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK | DDR_PHY_ACIOCR2_CKCLKGATE0_MASK | DDR_PHY_ACIOCR2_ACCLKGATE0_MASK | 0 ); + /* + * Register : ACIOCR2 @ 0XFD080508 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR2_OFFSET ,0xFFFFFFFFU ,0x0A000000U); - /*############################################################################################################################ */ + * Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL + * slice + * PSU_DDR_PHY_ACIOCR2_CLKGENCLKGATE 0x0 - /*Register : ACIOCR3 @ 0XFD08050C

      + * Clock gating for Output Enable D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACOECLKGATE0 0x0 - SDRAM Parity Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_PAROEMODE 0x0 + * Clock gating for Power Down Receiver D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACPDRCLKGATE0 0x0 - SDRAM Bank Group Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_BGOEMODE 0x0 + * Clock gating for Termination Enable D slices [0] + * PSU_DDR_PHY_ACIOCR2_ACTECLKGATE0 0x0 - SDRAM Bank Address Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_BAOEMODE 0x0 + * Clock gating for CK# D slices [1:0] + * PSU_DDR_PHY_ACIOCR2_CKNCLKGATE0 0x2 - SDRAM A[17] Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_A17OEMODE 0x0 + * Clock gating for CK D slices [1:0] + * PSU_DDR_PHY_ACIOCR2_CKCLKGATE0 0x2 - SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection - PSU_DDR_PHY_ACIOCR3_A16OEMODE 0x0 + * Clock gating for AC D slices [23:0] + * PSU_DDR_PHY_ACIOCR2_ACCLKGATE0 0x0 - SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) - PSU_DDR_PHY_ACIOCR3_ACTOEMODE 0x0 + * AC I/O Configuration Register 2 + * (OFFSET, MASK, VALUE) (0XFD080508, 0xFFFFFFFFU ,0x0A000000U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR2_OFFSET, 0xFFFFFFFFU, 0x0A000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACIOCR3_RESERVED_15_8 0x0 + /* + * Register : ACIOCR3 @ 0XFD08050C - Reserved. Return zeros on reads. - PSU_DDR_PHY_ACIOCR3_CKOEMODE_RSVD 0x0 + * SDRAM Parity Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_PAROEMODE 0x0 - SDRAM CK Output Enable (OE) Mode Selection. - PSU_DDR_PHY_ACIOCR3_CKOEMODE 0x9 + * SDRAM Bank Group Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_BGOEMODE 0x0 - AC I/O Configuration Register 3 - (OFFSET, MASK, VALUE) (0XFD08050C, 0xFFFFFFFFU ,0x00000009U) - RegMask = (DDR_PHY_ACIOCR3_PAROEMODE_MASK | DDR_PHY_ACIOCR3_BGOEMODE_MASK | DDR_PHY_ACIOCR3_BAOEMODE_MASK | DDR_PHY_ACIOCR3_A17OEMODE_MASK | DDR_PHY_ACIOCR3_A16OEMODE_MASK | DDR_PHY_ACIOCR3_ACTOEMODE_MASK | DDR_PHY_ACIOCR3_RESERVED_15_8_MASK | DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK | DDR_PHY_ACIOCR3_CKOEMODE_MASK | 0 ); + * SDRAM Bank Address Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_BAOEMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR3_PAROEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_BGOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_BAOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_A17OEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_A16OEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT - | 0x00000009U << DDR_PHY_ACIOCR3_CKOEMODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR3_OFFSET ,0xFFFFFFFFU ,0x00000009U); - /*############################################################################################################################ */ + * SDRAM A[17] Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_A17OEMODE 0x0 - /*Register : ACIOCR4 @ 0XFD080510

      + * SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection + * PSU_DDR_PHY_ACIOCR3_A16OEMODE 0x0 - Clock gating for AC LB slices and loopback read valid slices - PSU_DDR_PHY_ACIOCR4_LBCLKGATE 0x0 + * SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) + * PSU_DDR_PHY_ACIOCR3_ACTOEMODE 0x0 - Clock gating for Output Enable D slices [1] - PSU_DDR_PHY_ACIOCR4_ACOECLKGATE1 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACIOCR3_RESERVED_15_8 0x0 - Clock gating for Power Down Receiver D slices [1] - PSU_DDR_PHY_ACIOCR4_ACPDRCLKGATE1 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ACIOCR3_CKOEMODE_RSVD 0x0 - Clock gating for Termination Enable D slices [1] - PSU_DDR_PHY_ACIOCR4_ACTECLKGATE1 0x0 + * SDRAM CK Output Enable (OE) Mode Selection. + * PSU_DDR_PHY_ACIOCR3_CKOEMODE 0x9 - Clock gating for CK# D slices [3:2] - PSU_DDR_PHY_ACIOCR4_CKNCLKGATE1 0x2 + * AC I/O Configuration Register 3 + * (OFFSET, MASK, VALUE) (0XFD08050C, 0xFFFFFFFFU ,0x00000009U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR3_OFFSET, 0xFFFFFFFFU, 0x00000009U); +/*##################################################################### */ - Clock gating for CK D slices [3:2] - PSU_DDR_PHY_ACIOCR4_CKCLKGATE1 0x2 + /* + * Register : ACIOCR4 @ 0XFD080510 - Clock gating for AC D slices [47:24] - PSU_DDR_PHY_ACIOCR4_ACCLKGATE1 0x0 + * Clock gating for AC LB slices and loopback read valid slices + * PSU_DDR_PHY_ACIOCR4_LBCLKGATE 0x0 - AC I/O Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080510, 0xFFFFFFFFU ,0x0A000000U) - RegMask = (DDR_PHY_ACIOCR4_LBCLKGATE_MASK | DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK | DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK | DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK | DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK | DDR_PHY_ACIOCR4_CKCLKGATE1_MASK | DDR_PHY_ACIOCR4_ACCLKGATE1_MASK | 0 ); + * Clock gating for Output Enable D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACOECLKGATE1 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT - | 0x00000002U << DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT - | 0x00000000U << DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACIOCR4_OFFSET ,0xFFFFFFFFU ,0x0A000000U); - /*############################################################################################################################ */ + * Clock gating for Power Down Receiver D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACPDRCLKGATE1 0x0 - /*Register : IOVCR0 @ 0XFD080520

      + * Clock gating for Termination Enable D slices [1] + * PSU_DDR_PHY_ACIOCR4_ACTECLKGATE1 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_IOVCR0_RESERVED_31_29 0x0 + * Clock gating for CK# D slices [3:2] + * PSU_DDR_PHY_ACIOCR4_CKNCLKGATE1 0x2 - Address/command lane VREF Pad Enable - PSU_DDR_PHY_IOVCR0_ACREFPEN 0x0 + * Clock gating for CK D slices [3:2] + * PSU_DDR_PHY_ACIOCR4_CKCLKGATE1 0x2 - Address/command lane Internal VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFEEN 0x0 + * Clock gating for AC D slices [47:24] + * PSU_DDR_PHY_ACIOCR4_ACCLKGATE1 0x0 - Address/command lane Single-End VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFSEN 0x1 + * AC I/O Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080510, 0xFFFFFFFFU ,0x0A000000U) + */ + PSU_Mask_Write(DDR_PHY_ACIOCR4_OFFSET, 0xFFFFFFFFU, 0x0A000000U); +/*##################################################################### */ - Address/command lane Internal VREF Enable - PSU_DDR_PHY_IOVCR0_ACREFIEN 0x1 + /* + * Register : IOVCR0 @ 0XFD080520 - External VREF generato REFSEL range select - PSU_DDR_PHY_IOVCR0_ACREFESELRANGE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_IOVCR0_RESERVED_31_29 0x0 - Address/command lane External VREF Select - PSU_DDR_PHY_IOVCR0_ACREFESEL 0x0 + * Address/command lane VREF Pad Enable + * PSU_DDR_PHY_IOVCR0_ACREFPEN 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_IOVCR0_ACREFSSELRANGE 0x1 + * Address/command lane Internal VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFEEN 0x0 - Address/command lane Single-End VREF Select - PSU_DDR_PHY_IOVCR0_ACREFSSEL 0x30 + * Address/command lane Single-End VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFSEN 0x1 - Internal VREF generator REFSEL ragne select - PSU_DDR_PHY_IOVCR0_ACVREFISELRANGE 0x1 + * Address/command lane Internal VREF Enable + * PSU_DDR_PHY_IOVCR0_ACREFIEN 0x1 - REFSEL Control for internal AC IOs - PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x30 + * External VREF generato REFSEL range select + * PSU_DDR_PHY_IOVCR0_ACREFESELRANGE 0x0 - IO VREF Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0B0U) - RegMask = (DDR_PHY_IOVCR0_RESERVED_31_29_MASK | DDR_PHY_IOVCR0_ACREFPEN_MASK | DDR_PHY_IOVCR0_ACREFEEN_MASK | DDR_PHY_IOVCR0_ACREFSEN_MASK | DDR_PHY_IOVCR0_ACREFIEN_MASK | DDR_PHY_IOVCR0_ACREFESELRANGE_MASK | DDR_PHY_IOVCR0_ACREFESEL_MASK | DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK | DDR_PHY_IOVCR0_ACREFSSEL_MASK | DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK | DDR_PHY_IOVCR0_ACVREFISEL_MASK | 0 ); + * Address/command lane External VREF Select + * PSU_DDR_PHY_IOVCR0_ACREFESEL 0x0 - RegVal = ((0x00000000U << DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFPEN_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFEEN_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFSEN_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFIEN_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_IOVCR0_ACREFESEL_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_IOVCR0_ACREFSSEL_SHIFT - | 0x00000001U << DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT - | 0x00000030U << DDR_PHY_IOVCR0_ACVREFISEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_IOVCR0_OFFSET ,0xFFFFFFFFU ,0x0300B0B0U); - /*############################################################################################################################ */ + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_IOVCR0_ACREFSSELRANGE 0x1 - /*Register : VTCR0 @ 0XFD080528

      + * Address/command lane Single-End VREF Select + * PSU_DDR_PHY_IOVCR0_ACREFSSEL 0x30 - Number of ctl_clk required to meet (> 150ns) timing requirements during DRAM DQ VREF training - PSU_DDR_PHY_VTCR0_TVREF 0x7 + * Internal VREF generator REFSEL ragne select + * PSU_DDR_PHY_IOVCR0_ACVREFISELRANGE 0x1 - DRM DQ VREF training Enable - PSU_DDR_PHY_VTCR0_DVEN 0x1 + * REFSEL Control for internal AC IOs + * PSU_DDR_PHY_IOVCR0_ACVREFISEL 0x4e - Per Device Addressability Enable - PSU_DDR_PHY_VTCR0_PDAEN 0x1 + * IO VREF Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080520, 0xFFFFFFFFU ,0x0300B0CEU) + */ + PSU_Mask_Write(DDR_PHY_IOVCR0_OFFSET, 0xFFFFFFFFU, 0x0300B0CEU); +/*##################################################################### */ - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR0_RESERVED_26 0x0 + /* + * Register : VTCR0 @ 0XFD080528 - VREF Word Count - PSU_DDR_PHY_VTCR0_VWCR 0x4 + * Number of ctl_clk required to meet (> 150ns) timing requirements during + * DRAM DQ VREF training + * PSU_DDR_PHY_VTCR0_TVREF 0x7 - DRAM DQ VREF step size used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVSS 0x0 + * DRM DQ VREF training Enable + * PSU_DDR_PHY_VTCR0_DVEN 0x1 - Maximum VREF limit value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVMAX 0x32 + * Per Device Addressability Enable + * PSU_DDR_PHY_VTCR0_PDAEN 0x1 - Minimum VREF limit value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVMIN 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR0_RESERVED_26 0x0 - Initial DRAM DQ VREF value used during DRAM VREF training - PSU_DDR_PHY_VTCR0_DVINIT 0x19 + * VREF Word Count + * PSU_DDR_PHY_VTCR0_VWCR 0x4 - VREF Training Control Register 0 - (OFFSET, MASK, VALUE) (0XFD080528, 0xFFFFFFFFU ,0xF9032019U) - RegMask = (DDR_PHY_VTCR0_TVREF_MASK | DDR_PHY_VTCR0_DVEN_MASK | DDR_PHY_VTCR0_PDAEN_MASK | DDR_PHY_VTCR0_RESERVED_26_MASK | DDR_PHY_VTCR0_VWCR_MASK | DDR_PHY_VTCR0_DVSS_MASK | DDR_PHY_VTCR0_DVMAX_MASK | DDR_PHY_VTCR0_DVMIN_MASK | DDR_PHY_VTCR0_DVINIT_MASK | 0 ); + * DRAM DQ VREF step size used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVSS 0x0 - RegVal = ((0x00000007U << DDR_PHY_VTCR0_TVREF_SHIFT - | 0x00000001U << DDR_PHY_VTCR0_DVEN_SHIFT - | 0x00000001U << DDR_PHY_VTCR0_PDAEN_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_RESERVED_26_SHIFT - | 0x00000004U << DDR_PHY_VTCR0_VWCR_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_DVSS_SHIFT - | 0x00000032U << DDR_PHY_VTCR0_DVMAX_SHIFT - | 0x00000000U << DDR_PHY_VTCR0_DVMIN_SHIFT - | 0x00000019U << DDR_PHY_VTCR0_DVINIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_VTCR0_OFFSET ,0xFFFFFFFFU ,0xF9032019U); - /*############################################################################################################################ */ + * Maximum VREF limit value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVMAX 0x32 - /*Register : VTCR1 @ 0XFD08052C

      + * Minimum VREF limit value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVMIN 0x0 - Host VREF step size used during VREF training. The register value of N indicates step size of (N+1) - PSU_DDR_PHY_VTCR1_HVSS 0x0 + * Initial DRAM DQ VREF value used during DRAM VREF training + * PSU_DDR_PHY_VTCR0_DVINIT 0x19 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_27 0x0 + * VREF Training Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD080528, 0xFFFFFFFFU ,0xF9032019U) + */ + PSU_Mask_Write(DDR_PHY_VTCR0_OFFSET, 0xFFFFFFFFU, 0xF9032019U); +/*##################################################################### */ - Maximum VREF limit value used during DRAM VREF training. - PSU_DDR_PHY_VTCR1_HVMAX 0x7f + /* + * Register : VTCR1 @ 0XFD08052C - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_19 0x0 + * Host VREF step size used during VREF training. The register value of N i + * ndicates step size of (N+1) + * PSU_DDR_PHY_VTCR1_HVSS 0x0 - Minimum VREF limit value used during DRAM VREF training. - PSU_DDR_PHY_VTCR1_HVMIN 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_27 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_VTCR1_RESERVED_11 0x0 + * Maximum VREF limit value used during DRAM VREF training. + * PSU_DDR_PHY_VTCR1_HVMAX 0x7f - Static Host Vref Rank Value - PSU_DDR_PHY_VTCR1_SHRNK 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_19 0x0 - Static Host Vref Rank Enable - PSU_DDR_PHY_VTCR1_SHREN 0x1 + * Minimum VREF limit value used during DRAM VREF training. + * PSU_DDR_PHY_VTCR1_HVMIN 0x0 - Number of ctl_clk required to meet (> 200ns) VREF Settling timing requirements during Host IO VREF training - PSU_DDR_PHY_VTCR1_TVREFIO 0x7 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_VTCR1_RESERVED_11 0x0 - Eye LCDL Offset value for VREF training - PSU_DDR_PHY_VTCR1_EOFF 0x0 + * Static Host Vref Rank Value + * PSU_DDR_PHY_VTCR1_SHRNK 0x0 - Number of LCDL Eye points for which VREF training is repeated - PSU_DDR_PHY_VTCR1_ENUM 0x0 + * Static Host Vref Rank Enable + * PSU_DDR_PHY_VTCR1_SHREN 0x1 - HOST (IO) internal VREF training Enable - PSU_DDR_PHY_VTCR1_HVEN 0x1 + * Number of ctl_clk required to meet (> 200ns) VREF Settling timing requir + * ements during Host IO VREF training + * PSU_DDR_PHY_VTCR1_TVREFIO 0x7 - Host IO Type Control - PSU_DDR_PHY_VTCR1_HVIO 0x1 + * Eye LCDL Offset value for VREF training + * PSU_DDR_PHY_VTCR1_EOFF 0x0 - VREF Training Control Register 1 - (OFFSET, MASK, VALUE) (0XFD08052C, 0xFFFFFFFFU ,0x07F001E3U) - RegMask = (DDR_PHY_VTCR1_HVSS_MASK | DDR_PHY_VTCR1_RESERVED_27_MASK | DDR_PHY_VTCR1_HVMAX_MASK | DDR_PHY_VTCR1_RESERVED_19_MASK | DDR_PHY_VTCR1_HVMIN_MASK | DDR_PHY_VTCR1_RESERVED_11_MASK | DDR_PHY_VTCR1_SHRNK_MASK | DDR_PHY_VTCR1_SHREN_MASK | DDR_PHY_VTCR1_TVREFIO_MASK | DDR_PHY_VTCR1_EOFF_MASK | DDR_PHY_VTCR1_ENUM_MASK | DDR_PHY_VTCR1_HVEN_MASK | DDR_PHY_VTCR1_HVIO_MASK | 0 ); + * Number of LCDL Eye points for which VREF training is repeated + * PSU_DDR_PHY_VTCR1_ENUM 0x0 - RegVal = ((0x00000000U << DDR_PHY_VTCR1_HVSS_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_27_SHIFT - | 0x0000007FU << DDR_PHY_VTCR1_HVMAX_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_19_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_HVMIN_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_RESERVED_11_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_SHRNK_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_SHREN_SHIFT - | 0x00000007U << DDR_PHY_VTCR1_TVREFIO_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_EOFF_SHIFT - | 0x00000000U << DDR_PHY_VTCR1_ENUM_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_HVEN_SHIFT - | 0x00000001U << DDR_PHY_VTCR1_HVIO_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_VTCR1_OFFSET ,0xFFFFFFFFU ,0x07F001E3U); - /*############################################################################################################################ */ + * HOST (IO) internal VREF training Enable + * PSU_DDR_PHY_VTCR1_HVEN 0x1 - /*Register : ACBDLR1 @ 0XFD080544

      + * Host IO Type Control + * PSU_DDR_PHY_VTCR1_HVIO 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_31_30 0x0 + * VREF Training Control Register 1 + * (OFFSET, MASK, VALUE) (0XFD08052C, 0xFFFFFFFFU ,0x07F001E3U) + */ + PSU_Mask_Write(DDR_PHY_VTCR1_OFFSET, 0xFFFFFFFFU, 0x07F001E3U); +/*##################################################################### */ - Delay select for the BDL on Parity. - PSU_DDR_PHY_ACBDLR1_PARBD 0x0 + /* + * Register : ACBDLR1 @ 0XFD080544 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_31_30 0x0 - Delay select for the BDL on Address A[16]. In DDR3 mode this pin is connected to WE. - PSU_DDR_PHY_ACBDLR1_A16BD 0x0 + * Delay select for the BDL on Parity. + * PSU_DDR_PHY_ACBDLR1_PARBD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[17]. When not in DDR4 modemode this pin is connected to CAS. - PSU_DDR_PHY_ACBDLR1_A17BD 0x0 + * Delay select for the BDL on Address A[16]. In DDR3 mode this pin is conn + * ected to WE. + * PSU_DDR_PHY_ACBDLR1_A16BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR1_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_15_14 0x0 - Delay select for the BDL on ACTN. - PSU_DDR_PHY_ACBDLR1_ACTBD 0x0 + * Delay select for the BDL on Address A[17]. When not in DDR4 modemode thi + * s pin is connected to CAS. + * PSU_DDR_PHY_ACBDLR1_A17BD 0x0 - AC Bit Delay Line Register 1 - (OFFSET, MASK, VALUE) (0XFD080544, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR1_RESERVED_31_30_MASK | DDR_PHY_ACBDLR1_PARBD_MASK | DDR_PHY_ACBDLR1_RESERVED_23_22_MASK | DDR_PHY_ACBDLR1_A16BD_MASK | DDR_PHY_ACBDLR1_RESERVED_15_14_MASK | DDR_PHY_ACBDLR1_A17BD_MASK | DDR_PHY_ACBDLR1_RESERVED_7_6_MASK | DDR_PHY_ACBDLR1_ACTBD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR1_RESERVED_7_6 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_PARBD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_A16BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_A17BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR1_ACTBD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR1_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Delay select for the BDL on ACTN. + * PSU_DDR_PHY_ACBDLR1_ACTBD 0x0 - /*Register : ACBDLR2 @ 0XFD080548

      + * AC Bit Delay Line Register 1 + * (OFFSET, MASK, VALUE) (0XFD080544, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR1_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_31_30 0x0 + /* + * Register : ACBDLR2 @ 0XFD080548 - Delay select for the BDL on BG[1]. - PSU_DDR_PHY_ACBDLR2_BG1BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_23_22 0x0 + * Delay select for the BDL on BG[1]. + * PSU_DDR_PHY_ACBDLR2_BG1BD 0x0 - Delay select for the BDL on BG[0]. - PSU_DDR_PHY_ACBDLR2_BG0BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_23_22 0x0 - Reser.ved Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_15_14 0x0 + * Delay select for the BDL on BG[0]. + * PSU_DDR_PHY_ACBDLR2_BG0BD 0x0 - Delay select for the BDL on BA[1]. - PSU_DDR_PHY_ACBDLR2_BA1BD 0x0 + * Reser.ved Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR2_RESERVED_7_6 0x0 + * Delay select for the BDL on BA[1]. + * PSU_DDR_PHY_ACBDLR2_BA1BD 0x0 - Delay select for the BDL on BA[0]. - PSU_DDR_PHY_ACBDLR2_BA0BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR2_RESERVED_7_6 0x0 - AC Bit Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080548, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR2_RESERVED_31_30_MASK | DDR_PHY_ACBDLR2_BG1BD_MASK | DDR_PHY_ACBDLR2_RESERVED_23_22_MASK | DDR_PHY_ACBDLR2_BG0BD_MASK | DDR_PHY_ACBDLR2_RESERVED_15_14_MASK | DDR_PHY_ACBDLR2_BA1BD_MASK | DDR_PHY_ACBDLR2_RESERVED_7_6_MASK | DDR_PHY_ACBDLR2_BA0BD_MASK | 0 ); + * Delay select for the BDL on BA[0]. + * PSU_DDR_PHY_ACBDLR2_BA0BD 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BG1BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BG0BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BA1BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR2_BA0BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * AC Bit Delay Line Register 2 + * (OFFSET, MASK, VALUE) (0XFD080548, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR2_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - /*Register : ACBDLR6 @ 0XFD080558

      + /* + * Register : ACBDLR6 @ 0XFD080558 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_31_30 0x0 - Delay select for the BDL on Address A[3]. - PSU_DDR_PHY_ACBDLR6_A03BD 0x0 + * Delay select for the BDL on Address A[3]. + * PSU_DDR_PHY_ACBDLR6_A03BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[2]. - PSU_DDR_PHY_ACBDLR6_A02BD 0x0 + * Delay select for the BDL on Address A[2]. + * PSU_DDR_PHY_ACBDLR6_A02BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_15_14 0x0 - Delay select for the BDL on Address A[1]. - PSU_DDR_PHY_ACBDLR6_A01BD 0x0 + * Delay select for the BDL on Address A[1]. + * PSU_DDR_PHY_ACBDLR6_A01BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR6_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR6_RESERVED_7_6 0x0 - Delay select for the BDL on Address A[0]. - PSU_DDR_PHY_ACBDLR6_A00BD 0x0 + * Delay select for the BDL on Address A[0]. + * PSU_DDR_PHY_ACBDLR6_A00BD 0x0 - AC Bit Delay Line Register 6 - (OFFSET, MASK, VALUE) (0XFD080558, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR6_RESERVED_31_30_MASK | DDR_PHY_ACBDLR6_A03BD_MASK | DDR_PHY_ACBDLR6_RESERVED_23_22_MASK | DDR_PHY_ACBDLR6_A02BD_MASK | DDR_PHY_ACBDLR6_RESERVED_15_14_MASK | DDR_PHY_ACBDLR6_A01BD_MASK | DDR_PHY_ACBDLR6_RESERVED_7_6_MASK | DDR_PHY_ACBDLR6_A00BD_MASK | 0 ); + * AC Bit Delay Line Register 6 + * (OFFSET, MASK, VALUE) (0XFD080558, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR6_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A03BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A02BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A01BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR6_A00BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR6_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : ACBDLR7 @ 0XFD08055C - /*Register : ACBDLR7 @ 0XFD08055C

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_31_30 0x0 + * Delay select for the BDL on Address A[7]. + * PSU_DDR_PHY_ACBDLR7_A07BD 0x0 - Delay select for the BDL on Address A[7]. - PSU_DDR_PHY_ACBDLR7_A07BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_23_22 0x0 + * Delay select for the BDL on Address A[6]. + * PSU_DDR_PHY_ACBDLR7_A06BD 0x0 - Delay select for the BDL on Address A[6]. - PSU_DDR_PHY_ACBDLR7_A06BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_15_14 0x0 + * Delay select for the BDL on Address A[5]. + * PSU_DDR_PHY_ACBDLR7_A05BD 0x0 - Delay select for the BDL on Address A[5]. - PSU_DDR_PHY_ACBDLR7_A05BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR7_RESERVED_7_6 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR7_RESERVED_7_6 0x0 + * Delay select for the BDL on Address A[4]. + * PSU_DDR_PHY_ACBDLR7_A04BD 0x0 - Delay select for the BDL on Address A[4]. - PSU_DDR_PHY_ACBDLR7_A04BD 0x0 + * AC Bit Delay Line Register 7 + * (OFFSET, MASK, VALUE) (0XFD08055C, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR7_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - AC Bit Delay Line Register 7 - (OFFSET, MASK, VALUE) (0XFD08055C, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR7_RESERVED_31_30_MASK | DDR_PHY_ACBDLR7_A07BD_MASK | DDR_PHY_ACBDLR7_RESERVED_23_22_MASK | DDR_PHY_ACBDLR7_A06BD_MASK | DDR_PHY_ACBDLR7_RESERVED_15_14_MASK | DDR_PHY_ACBDLR7_A05BD_MASK | DDR_PHY_ACBDLR7_RESERVED_7_6_MASK | DDR_PHY_ACBDLR7_A04BD_MASK | 0 ); + /* + * Register : ACBDLR8 @ 0XFD080560 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A07BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A06BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A05BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR7_A04BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR7_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_31_30 0x0 - /*Register : ACBDLR8 @ 0XFD080560

      + * Delay select for the BDL on Address A[11]. + * PSU_DDR_PHY_ACBDLR8_A11BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_23_22 0x0 - Delay select for the BDL on Address A[11]. - PSU_DDR_PHY_ACBDLR8_A11BD 0x0 + * Delay select for the BDL on Address A[10]. + * PSU_DDR_PHY_ACBDLR8_A10BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_15_14 0x0 - Delay select for the BDL on Address A[10]. - PSU_DDR_PHY_ACBDLR8_A10BD 0x0 + * Delay select for the BDL on Address A[9]. + * PSU_DDR_PHY_ACBDLR8_A09BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR8_RESERVED_7_6 0x0 - Delay select for the BDL on Address A[9]. - PSU_DDR_PHY_ACBDLR8_A09BD 0x0 + * Delay select for the BDL on Address A[8]. + * PSU_DDR_PHY_ACBDLR8_A08BD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR8_RESERVED_7_6 0x0 + * AC Bit Delay Line Register 8 + * (OFFSET, MASK, VALUE) (0XFD080560, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR8_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Delay select for the BDL on Address A[8]. - PSU_DDR_PHY_ACBDLR8_A08BD 0x0 + /* + * Register : ACBDLR9 @ 0XFD080564 - AC Bit Delay Line Register 8 - (OFFSET, MASK, VALUE) (0XFD080560, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR8_RESERVED_31_30_MASK | DDR_PHY_ACBDLR8_A11BD_MASK | DDR_PHY_ACBDLR8_RESERVED_23_22_MASK | DDR_PHY_ACBDLR8_A10BD_MASK | DDR_PHY_ACBDLR8_RESERVED_15_14_MASK | DDR_PHY_ACBDLR8_A09BD_MASK | DDR_PHY_ACBDLR8_RESERVED_7_6_MASK | DDR_PHY_ACBDLR8_A08BD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A11BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A10BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A09BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR8_A08BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR8_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Delay select for the BDL on Address A[15]. + * PSU_DDR_PHY_ACBDLR9_A15BD 0x0 - /*Register : ACBDLR9 @ 0XFD080564

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_31_30 0x0 + * Delay select for the BDL on Address A[14]. + * PSU_DDR_PHY_ACBDLR9_A14BD 0x0 - Delay select for the BDL on Address A[15]. - PSU_DDR_PHY_ACBDLR9_A15BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_23_22 0x0 + * Delay select for the BDL on Address A[13]. + * PSU_DDR_PHY_ACBDLR9_A13BD 0x0 - Delay select for the BDL on Address A[14]. - PSU_DDR_PHY_ACBDLR9_A14BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ACBDLR9_RESERVED_7_6 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_15_14 0x0 + * Delay select for the BDL on Address A[12]. + * PSU_DDR_PHY_ACBDLR9_A12BD 0x0 - Delay select for the BDL on Address A[13]. - PSU_DDR_PHY_ACBDLR9_A13BD 0x0 + * AC Bit Delay Line Register 9 + * (OFFSET, MASK, VALUE) (0XFD080564, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(DDR_PHY_ACBDLR9_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ACBDLR9_RESERVED_7_6 0x0 + /* + * Register : ZQCR @ 0XFD080680 - Delay select for the BDL on Address A[12]. - PSU_DDR_PHY_ACBDLR9_A12BD 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_ZQCR_RESERVED_31_26 0x0 - AC Bit Delay Line Register 9 - (OFFSET, MASK, VALUE) (0XFD080564, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_ACBDLR9_RESERVED_31_30_MASK | DDR_PHY_ACBDLR9_A15BD_MASK | DDR_PHY_ACBDLR9_RESERVED_23_22_MASK | DDR_PHY_ACBDLR9_A14BD_MASK | DDR_PHY_ACBDLR9_RESERVED_15_14_MASK | DDR_PHY_ACBDLR9_A13BD_MASK | DDR_PHY_ACBDLR9_RESERVED_7_6_MASK | DDR_PHY_ACBDLR9_A12BD_MASK | 0 ); + * ZQ VREF Range + * PSU_DDR_PHY_ZQCR_ZQREFISELRANGE 0x0 - RegVal = ((0x00000000U << DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A15BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A14BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A13BD_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT - | 0x00000000U << DDR_PHY_ACBDLR9_A12BD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ACBDLR9_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Programmable Wait for Frequency B + * PSU_DDR_PHY_ZQCR_PGWAIT_FRQB 0x11 - /*Register : ZQCR @ 0XFD080680

      + * Programmable Wait for Frequency A + * PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x15 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_ZQCR_RESERVED_31_26 0x0 + * ZQ VREF Pad Enable + * PSU_DDR_PHY_ZQCR_ZQREFPEN 0x0 - ZQ VREF Range - PSU_DDR_PHY_ZQCR_ZQREFISELRANGE 0x0 + * ZQ Internal VREF Enable + * PSU_DDR_PHY_ZQCR_ZQREFIEN 0x1 - Programmable Wait for Frequency B - PSU_DDR_PHY_ZQCR_PGWAIT_FRQB 0x11 + * Choice of termination mode + * PSU_DDR_PHY_ZQCR_ODT_MODE 0x1 - Programmable Wait for Frequency A - PSU_DDR_PHY_ZQCR_PGWAIT_FRQA 0x11 + * Force ZCAL VT update + * PSU_DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE 0x0 - ZQ VREF Pad Enable - PSU_DDR_PHY_ZQCR_ZQREFPEN 0x0 + * IO VT Drift Limit + * PSU_DDR_PHY_ZQCR_IODLMT 0x2 - ZQ Internal VREF Enable - PSU_DDR_PHY_ZQCR_ZQREFIEN 0x1 + * Averaging algorithm enable, if set, enables averaging algorithm + * PSU_DDR_PHY_ZQCR_AVGEN 0x1 - Choice of termination mode - PSU_DDR_PHY_ZQCR_ODT_MODE 0x1 + * Maximum number of averaging rounds to be used by averaging algorithm + * PSU_DDR_PHY_ZQCR_AVGMAX 0x2 - Force ZCAL VT update - PSU_DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE 0x0 + * ZQ Calibration Type + * PSU_DDR_PHY_ZQCR_ZCALT 0x0 - IO VT Drift Limit - PSU_DDR_PHY_ZQCR_IODLMT 0x2 + * ZQ Power Down + * PSU_DDR_PHY_ZQCR_ZQPD 0x0 - Averaging algorithm enable, if set, enables averaging algorithm - PSU_DDR_PHY_ZQCR_AVGEN 0x1 + * ZQ Impedance Control Register + * (OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008AAA58U) + */ + PSU_Mask_Write(DDR_PHY_ZQCR_OFFSET, 0xFFFFFFFFU, 0x008AAA58U); +/*##################################################################### */ - Maximum number of averaging rounds to be used by averaging algorithm - PSU_DDR_PHY_ZQCR_AVGMAX 0x2 + /* + * Register : ZQ0PR0 @ 0XFD080684 - ZQ Calibration Type - PSU_DDR_PHY_ZQCR_ZCALT 0x0 + * Pull-down drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PD_DRV_ZDEN 0x0 - ZQ Power Down - PSU_DDR_PHY_ZQCR_ZQPD 0x0 + * Pull-up drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PU_DRV_ZDEN 0x0 - ZQ Impedance Control Register - (OFFSET, MASK, VALUE) (0XFD080680, 0xFFFFFFFFU ,0x008A2A58U) - RegMask = (DDR_PHY_ZQCR_RESERVED_31_26_MASK | DDR_PHY_ZQCR_ZQREFISELRANGE_MASK | DDR_PHY_ZQCR_PGWAIT_FRQB_MASK | DDR_PHY_ZQCR_PGWAIT_FRQA_MASK | DDR_PHY_ZQCR_ZQREFPEN_MASK | DDR_PHY_ZQCR_ZQREFIEN_MASK | DDR_PHY_ZQCR_ODT_MODE_MASK | DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK | DDR_PHY_ZQCR_IODLMT_MASK | DDR_PHY_ZQCR_AVGEN_MASK | DDR_PHY_ZQCR_AVGMAX_MASK | DDR_PHY_ZQCR_ZCALT_MASK | DDR_PHY_ZQCR_ZQPD_MASK | 0 ); + * Pull-down termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PD_ODT_ZDEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQCR_RESERVED_31_26_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT - | 0x00000011U << DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT - | 0x00000011U << DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQREFPEN_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_ZQREFIEN_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_ODT_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT - | 0x00000002U << DDR_PHY_ZQCR_IODLMT_SHIFT - | 0x00000001U << DDR_PHY_ZQCR_AVGEN_SHIFT - | 0x00000002U << DDR_PHY_ZQCR_AVGMAX_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZCALT_SHIFT - | 0x00000000U << DDR_PHY_ZQCR_ZQPD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQCR_OFFSET ,0xFFFFFFFFU ,0x008A2A58U); - /*############################################################################################################################ */ + * Pull-up termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ0PR0_PU_ODT_ZDEN 0x0 - /*Register : ZQ0PR0 @ 0XFD080684

      + * Calibration segment bypass + * PSU_DDR_PHY_ZQ0PR0_ZSEGBYP 0x0 - Pull-down drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PD_DRV_ZDEN 0x0 + * VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB + * PSU_DDR_PHY_ZQ0PR0_ZLE_MODE 0x0 - Pull-up drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PU_DRV_ZDEN 0x0 + * Termination adjustment + * PSU_DDR_PHY_ZQ0PR0_ODT_ADJUST 0x0 - Pull-down termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PD_ODT_ZDEN 0x0 + * Pulldown drive strength adjustment + * PSU_DDR_PHY_ZQ0PR0_PD_DRV_ADJUST 0x0 - Pull-up termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ0PR0_PU_ODT_ZDEN 0x0 + * Pullup drive strength adjustment + * PSU_DDR_PHY_ZQ0PR0_PU_DRV_ADJUST 0x0 - Calibration segment bypass - PSU_DDR_PHY_ZQ0PR0_ZSEGBYP 0x0 + * DRAM Impedance Divide Ratio + * PSU_DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT 0x7 - VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB - PSU_DDR_PHY_ZQ0PR0_ZLE_MODE 0x0 + * HOST Impedance Divide Ratio + * PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x9 - Termination adjustment - PSU_DDR_PHY_ZQ0PR0_ODT_ADJUST 0x0 + * Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) + * PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD 0xd - Pulldown drive strength adjustment - PSU_DDR_PHY_ZQ0PR0_PD_DRV_ADJUST 0x0 + * Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) + * PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU 0xd - Pullup drive strength adjustment - PSU_DDR_PHY_ZQ0PR0_PU_DRV_ADJUST 0x0 + * ZQ n Impedance Control Program Register 0 + * (OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000079DDU) + */ + PSU_Mask_Write(DDR_PHY_ZQ0PR0_OFFSET, 0xFFFFFFFFU, 0x000079DDU); +/*##################################################################### */ - DRAM Impedance Divide Ratio - PSU_DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT 0x7 + /* + * Register : ZQ0OR0 @ 0XFD080694 - HOST Impedance Divide Ratio - PSU_DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT 0x7 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR0_RESERVED_31_26 0x0 - Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD 0xd + * Override value for the pull-up output impedance + * PSU_DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD 0x1e1 - Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU 0xd + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR0_RESERVED_15_10 0x0 - ZQ n Impedance Control Program Register 0 - (OFFSET, MASK, VALUE) (0XFD080684, 0xFFFFFFFFU ,0x000077DDU) - RegMask = (DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK | DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK | DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK | DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK | DDR_PHY_ZQ0PR0_ZSEGBYP_MASK | DDR_PHY_ZQ0PR0_ZLE_MODE_MASK | DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK | DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK | DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK | DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK | DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK | DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK | DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK | 0 ); + * Override value for the pull-down output impedance + * PSU_DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD 0x210 - RegVal = ((0x00000000U << DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT - | 0x00000007U << DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT - | 0x00000007U << DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT - | 0x0000000DU << DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT - | 0x0000000DU << DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0PR0_OFFSET ,0xFFFFFFFFU ,0x000077DDU); - /*############################################################################################################################ */ + * ZQ n Impedance Control Override Data Register 0 + * (OFFSET, MASK, VALUE) (0XFD080694, 0xFFFFFFFFU ,0x01E10210U) + */ + PSU_Mask_Write(DDR_PHY_ZQ0OR0_OFFSET, 0xFFFFFFFFU, 0x01E10210U); +/*##################################################################### */ - /*Register : ZQ0OR0 @ 0XFD080694

      + /* + * Register : ZQ0OR1 @ 0XFD080698 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR0_RESERVED_31_26 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR1_RESERVED_31_26 0x0 - Override value for the pull-up output impedance - PSU_DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD 0x1e1 + * Override value for the pull-up termination + * PSU_DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD 0x1e1 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR0_RESERVED_15_10 0x0 + * Reserved. Return zeros on reads. + * PSU_DDR_PHY_ZQ0OR1_RESERVED_15_10 0x0 - Override value for the pull-down output impedance - PSU_DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD 0x210 + * Override value for the pull-down termination + * PSU_DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD 0x0 - ZQ n Impedance Control Override Data Register 0 - (OFFSET, MASK, VALUE) (0XFD080694, 0xFFFFFFFFU ,0x01E10210U) - RegMask = (DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK | DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK | DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK | DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT - | 0x000001E1U << DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT - | 0x00000210U << DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0OR0_OFFSET ,0xFFFFFFFFU ,0x01E10210U); - /*############################################################################################################################ */ + * ZQ n Impedance Control Override Data Register 1 + * (OFFSET, MASK, VALUE) (0XFD080698, 0xFFFFFFFFU ,0x01E10000U) + */ + PSU_Mask_Write(DDR_PHY_ZQ0OR1_OFFSET, 0xFFFFFFFFU, 0x01E10000U); +/*##################################################################### */ - /*Register : ZQ0OR1 @ 0XFD080698

      + /* + * Register : ZQ1PR0 @ 0XFD0806A4 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR1_RESERVED_31_26 0x0 + * Pull-down drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PD_DRV_ZDEN 0x0 - Override value for the pull-up termination - PSU_DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD 0x1e1 + * Pull-up drive strength ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PU_DRV_ZDEN 0x0 - Reserved. Return zeros on reads. - PSU_DDR_PHY_ZQ0OR1_RESERVED_15_10 0x0 + * Pull-down termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PD_ODT_ZDEN 0x0 - Override value for the pull-down termination - PSU_DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD 0x0 + * Pull-up termination ZCTRL over-ride enable + * PSU_DDR_PHY_ZQ1PR0_PU_ODT_ZDEN 0x0 - ZQ n Impedance Control Override Data Register 1 - (OFFSET, MASK, VALUE) (0XFD080698, 0xFFFFFFFFU ,0x01E10000U) - RegMask = (DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK | DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK | DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK | DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK | 0 ); + * Calibration segment bypass + * PSU_DDR_PHY_ZQ1PR0_ZSEGBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT - | 0x000001E1U << DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT - | 0x00000000U << DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ0OR1_OFFSET ,0xFFFFFFFFU ,0x01E10000U); - /*############################################################################################################################ */ + * VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB + * PSU_DDR_PHY_ZQ1PR0_ZLE_MODE 0x0 - /*Register : ZQ1PR0 @ 0XFD0806A4

      + * Termination adjustment + * PSU_DDR_PHY_ZQ1PR0_ODT_ADJUST 0x0 - Pull-down drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PD_DRV_ZDEN 0x0 + * Pulldown drive strength adjustment + * PSU_DDR_PHY_ZQ1PR0_PD_DRV_ADJUST 0x1 - Pull-up drive strength ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PU_DRV_ZDEN 0x0 + * Pullup drive strength adjustment + * PSU_DDR_PHY_ZQ1PR0_PU_DRV_ADJUST 0x0 - Pull-down termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PD_ODT_ZDEN 0x0 + * DRAM Impedance Divide Ratio + * PSU_DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT 0x7 - Pull-up termination ZCTRL over-ride enable - PSU_DDR_PHY_ZQ1PR0_PU_ODT_ZDEN 0x0 + * HOST Impedance Divide Ratio + * PSU_DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT 0xb - Calibration segment bypass - PSU_DDR_PHY_ZQ1PR0_ZSEGBYP 0x0 + * Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) + * PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD 0xd - VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB - PSU_DDR_PHY_ZQ1PR0_ZLE_MODE 0x0 + * Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) + * PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU 0xb - Termination adjustment - PSU_DDR_PHY_ZQ1PR0_ODT_ADJUST 0x0 + * ZQ n Impedance Control Program Register 0 + * (OFFSET, MASK, VALUE) (0XFD0806A4, 0xFFFFFFFFU ,0x00087BDBU) + */ + PSU_Mask_Write(DDR_PHY_ZQ1PR0_OFFSET, 0xFFFFFFFFU, 0x00087BDBU); +/*##################################################################### */ - Pulldown drive strength adjustment - PSU_DDR_PHY_ZQ1PR0_PD_DRV_ADJUST 0x1 + /* + * Register : DX0GCR0 @ 0XFD080700 - Pullup drive strength adjustment - PSU_DDR_PHY_ZQ1PR0_PU_DRV_ADJUST 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX0GCR0_CALBYP 0x0 - DRAM Impedance Divide Ratio - PSU_DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT 0x7 + * Master Delay Line Enable + * PSU_DDR_PHY_DX0GCR0_MDLEN 0x1 - HOST Impedance Divide Ratio - PSU_DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT 0xb + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX0GCR0_CODTSHFT 0x0 - Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD 0xd + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX0GCR0_DQSDCC 0x0 - Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration) - PSU_DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU 0xb + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX0GCR0_RDDLY 0x8 - ZQ n Impedance Control Program Register 0 - (OFFSET, MASK, VALUE) (0XFD0806A4, 0xFFFFFFFFU ,0x00087BDBU) - RegMask = (DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK | DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK | DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK | DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK | DDR_PHY_ZQ1PR0_ZSEGBYP_MASK | DDR_PHY_ZQ1PR0_ZLE_MODE_MASK | DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK | DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK | DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK | DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK | DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK | DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK | DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_19_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT - | 0x00000001U << DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT - | 0x00000000U << DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT - | 0x00000007U << DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT - | 0x0000000BU << DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT - | 0x0000000DU << DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT - | 0x0000000BU << DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_ZQ1PR0_OFFSET ,0xFFFFFFFFU ,0x00087BDBU); - /*############################################################################################################################ */ + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSNSEPDR 0x0 - /*Register : DX0GCR0 @ 0XFD080700

      + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSSEPDR 0x0 - Calibration Bypass - PSU_DDR_PHY_DX0GCR0_CALBYP 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX0GCR0_RTTOAL 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX0GCR0_MDLEN 0x1 + * RTT Output Hold + * PSU_DDR_PHY_DX0GCR0_RTTOH 0x3 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX0GCR0_CODTSHFT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX0GCR0_CPDRSHFT 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX0GCR0_DQSDCC 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX0GCR0_DQSRPD 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX0GCR0_RDDLY 0x8 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX0GCR0_DQSGPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_4 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSNSEPDR 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX0GCR0_DQSGODT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSSEPDR 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX0GCR0_DQSGOE 0x1 - RTT On Additive Latency - PSU_DDR_PHY_DX0GCR0_RTTOAL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX0GCR0_RESERVED_1_0 0x0 - RTT Output Hold - PSU_DDR_PHY_DX0GCR0_RTTOH 0x3 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080700, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Configurable PDR Phase Shift - PSU_DDR_PHY_DX0GCR0_CPDRSHFT 0x0 + /* + * Register : DX0GCR4 @ 0XFD080710 - DQSR Power Down - PSU_DDR_PHY_DX0GCR0_DQSRPD 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX0GCR4_RESERVED_31_29 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX0GCR0_DQSGPDR 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX0GCR4_DXREFPEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_4 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX0GCR4_DXREFEEN 0x3 - DQSG On-Die Termination - PSU_DDR_PHY_DX0GCR0_DQSGODT 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX0GCR4_DXREFSEN 0x1 - DQSG Output Enable - PSU_DDR_PHY_DX0GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR4_RESERVED_24 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GCR0_RESERVED_1_0 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX0GCR4_DXREFESELRANGE 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080700, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX0GCR0_CALBYP_MASK | DDR_PHY_DX0GCR0_MDLEN_MASK | DDR_PHY_DX0GCR0_CODTSHFT_MASK | DDR_PHY_DX0GCR0_DQSDCC_MASK | DDR_PHY_DX0GCR0_RDDLY_MASK | DDR_PHY_DX0GCR0_RESERVED_19_14_MASK | DDR_PHY_DX0GCR0_DQSNSEPDR_MASK | DDR_PHY_DX0GCR0_DQSSEPDR_MASK | DDR_PHY_DX0GCR0_RTTOAL_MASK | DDR_PHY_DX0GCR0_RTTOH_MASK | DDR_PHY_DX0GCR0_CPDRSHFT_MASK | DDR_PHY_DX0GCR0_DQSRPD_MASK | DDR_PHY_DX0GCR0_DQSGPDR_MASK | DDR_PHY_DX0GCR0_RESERVED_4_MASK | DDR_PHY_DX0GCR0_DQSGODT_MASK | DDR_PHY_DX0GCR0_DQSGOE_MASK | DDR_PHY_DX0GCR0_RESERVED_1_0_MASK | 0 ); + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX0GCR4_DXREFESEL 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX0GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX0GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ - - /*Register : DX0GCR4 @ 0XFD080710

      - - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX0GCR4_RESERVED_31_29 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX0GCR4_DXREFSSELRANGE 0x1 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX0GCR4_DXREFPEN 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX0GCR4_DXREFSSEL 0x30 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX0GCR4_DXREFEEN 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR4_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX0GCR4_DXREFSEN 0x1 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX0GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR4_RESERVED_24 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX0GCR4_DXREFIMON 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX0GCR4_DXREFESELRANGE 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080710, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Byte Lane External VREF Select - PSU_DDR_PHY_DX0GCR4_DXREFESEL 0x0 + /* + * Register : DX0GCR5 @ 0XFD080714 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX0GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_31 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX0GCR4_DXREFSSEL 0x30 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR3 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR4_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_23 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX0GCR4_DXREFIEN 0xf + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR2 0x9 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX0GCR4_DXREFIMON 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_15 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080710, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX0GCR4_RESERVED_31_29_MASK | DDR_PHY_DX0GCR4_DXREFPEN_MASK | DDR_PHY_DX0GCR4_DXREFEEN_MASK | DDR_PHY_DX0GCR4_DXREFSEN_MASK | DDR_PHY_DX0GCR4_RESERVED_24_MASK | DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX0GCR4_DXREFESEL_MASK | DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX0GCR4_DXREFSSEL_MASK | DDR_PHY_DX0GCR4_RESERVED_7_6_MASK | DDR_PHY_DX0GCR4_DXREFIEN_MASK | DDR_PHY_DX0GCR4_DXREFIMON_MASK | 0 ); + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x55 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX0GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX0GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR5_RESERVED_7 0x0 - /*Register : DX0GCR5 @ 0XFD080714

      + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x55 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_31 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX0GCR5_DXREFISELR3 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_23 0x0 - - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX0GCR5_DXREFISELR2 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_15 0x0 - - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX0GCR5_DXREFISELR1 0x4f - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR5_RESERVED_7 0x0 - - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX0GCR5_DXREFISELR0 0x4f + /* + * Register : DX0GCR6 @ 0XFD080718 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080714, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX0GCR5_RESERVED_31_MASK | DDR_PHY_DX0GCR5_DXREFISELR3_MASK | DDR_PHY_DX0GCR5_RESERVED_23_MASK | DDR_PHY_DX0GCR5_DXREFISELR2_MASK | DDR_PHY_DX0GCR5_RESERVED_15_MASK | DDR_PHY_DX0GCR5_DXREFISELR1_MASK | DDR_PHY_DX0GCR5_RESERVED_7_MASK | DDR_PHY_DX0GCR5_DXREFISELR0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR3 0x9 - /*Register : DX0GCR6 @ 0XFD080718

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_23_22 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_31_30 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR2 0x9 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_15_14 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_23_22 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR1 0x2b - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX0GCR6_RESERVED_7_6 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_15_14 0x0 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX0GCR6_DXDQVREFR0 0x2b - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR1 0x2b + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080718, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX0GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX0GCR6_RESERVED_7_6 0x0 + /* + * Register : DX1GCR0 @ 0XFD080800 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX0GCR6_DXDQVREFR0 0x2b + * Calibration Bypass + * PSU_DDR_PHY_DX1GCR0_CALBYP 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080718, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX0GCR6_RESERVED_31_30_MASK | DDR_PHY_DX0GCR6_DXDQVREFR3_MASK | DDR_PHY_DX0GCR6_RESERVED_23_22_MASK | DDR_PHY_DX0GCR6_DXDQVREFR2_MASK | DDR_PHY_DX0GCR6_RESERVED_15_14_MASK | DDR_PHY_DX0GCR6_DXDQVREFR1_MASK | DDR_PHY_DX0GCR6_RESERVED_7_6_MASK | DDR_PHY_DX0GCR6_DXDQVREFR0_MASK | 0 ); + * Master Delay Line Enable + * PSU_DDR_PHY_DX1GCR0_MDLEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX1GCR0_CODTSHFT 0x0 - /*Register : DX0LCDLR2 @ 0XFD080788

      + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX1GCR0_DQSDCC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_31_25 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX1GCR0_RDDLY 0x8 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_24_16 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_19_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0LCDLR2_RESERVED_15_9 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSNSEPDR 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX0LCDLR2_DQSGD 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSSEPDR 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080788, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX0LCDLR2_DQSGD_MASK | 0 ); + * RTT On Additive Latency + * PSU_DDR_PHY_DX1GCR0_RTTOAL 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX0LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * RTT Output Hold + * PSU_DDR_PHY_DX1GCR0_RTTOH 0x3 - /*Register : DX0GTR0 @ 0XFD0807C0

      + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX1GCR0_CPDRSHFT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_31_24 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX1GCR0_DQSRPD 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX0GTR0_WDQSL 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX1GCR0_DQSGPDR 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0GTR0_RESERVED_23_20 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_4 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX0GTR0_WLSL 0x2 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX1GCR0_DQSGODT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_15_13 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX1GCR0_DQSGOE 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX0GTR0_RESERVED_12_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX1GCR0_RESERVED_1_0 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX0GTR0_RESERVED_7_5 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080800, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DQS Gating System Latency - PSU_DDR_PHY_DX0GTR0_DGSL 0x0 + /* + * Register : DX1GCR4 @ 0XFD080810 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0807C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX0GTR0_RESERVED_31_24_MASK | DDR_PHY_DX0GTR0_WDQSL_MASK | DDR_PHY_DX0GTR0_RESERVED_23_20_MASK | DDR_PHY_DX0GTR0_WLSL_MASK | DDR_PHY_DX0GTR0_RESERVED_15_13_MASK | DDR_PHY_DX0GTR0_RESERVED_12_8_MASK | DDR_PHY_DX0GTR0_RESERVED_7_5_MASK | DDR_PHY_DX0GTR0_DGSL_MASK | 0 ); + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX1GCR4_RESERVED_31_29 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX0GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX0GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX0GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX1GCR4_DXREFPEN 0x0 - /*Register : DX1GCR0 @ 0XFD080800

      + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX1GCR4_DXREFEEN 0x3 - Calibration Bypass - PSU_DDR_PHY_DX1GCR0_CALBYP 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX1GCR4_DXREFSEN 0x1 - Master Delay Line Enable - PSU_DDR_PHY_DX1GCR0_MDLEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR4_RESERVED_24 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX1GCR0_CODTSHFT 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX1GCR4_DXREFESELRANGE 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX1GCR0_DQSDCC 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX1GCR4_DXREFESEL 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX1GCR0_RDDLY 0x8 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX1GCR4_DXREFSSELRANGE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_19_14 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX1GCR4_DXREFSSEL 0x30 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSNSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR4_RESERVED_7_6 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSSEPDR 0x0 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX1GCR4_DXREFIEN 0xf - RTT On Additive Latency - PSU_DDR_PHY_DX1GCR0_RTTOAL 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX1GCR4_DXREFIMON 0x0 - RTT Output Hold - PSU_DDR_PHY_DX1GCR0_RTTOH 0x3 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080810, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Configurable PDR Phase Shift - PSU_DDR_PHY_DX1GCR0_CPDRSHFT 0x0 + /* + * Register : DX1GCR5 @ 0XFD080814 - DQSR Power Down - PSU_DDR_PHY_DX1GCR0_DQSRPD 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_31 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX1GCR0_DQSGPDR 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_23 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX1GCR0_DQSGODT 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR2 0x9 - DQSG Output Enable - PSU_DDR_PHY_DX1GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_15 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GCR0_RESERVED_1_0 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x55 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080800, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX1GCR0_CALBYP_MASK | DDR_PHY_DX1GCR0_MDLEN_MASK | DDR_PHY_DX1GCR0_CODTSHFT_MASK | DDR_PHY_DX1GCR0_DQSDCC_MASK | DDR_PHY_DX1GCR0_RDDLY_MASK | DDR_PHY_DX1GCR0_RESERVED_19_14_MASK | DDR_PHY_DX1GCR0_DQSNSEPDR_MASK | DDR_PHY_DX1GCR0_DQSSEPDR_MASK | DDR_PHY_DX1GCR0_RTTOAL_MASK | DDR_PHY_DX1GCR0_RTTOH_MASK | DDR_PHY_DX1GCR0_CPDRSHFT_MASK | DDR_PHY_DX1GCR0_DQSRPD_MASK | DDR_PHY_DX1GCR0_DQSGPDR_MASK | DDR_PHY_DX1GCR0_RESERVED_4_MASK | DDR_PHY_DX1GCR0_DQSGODT_MASK | DDR_PHY_DX1GCR0_DQSGOE_MASK | DDR_PHY_DX1GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR5_RESERVED_7 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX1GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX1GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x55 - /*Register : DX1GCR4 @ 0XFD080810

      + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX1GCR4_RESERVED_31_29 0x0 + /* + * Register : DX1GCR6 @ 0XFD080818 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX1GCR4_DXREFPEN 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_31_30 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX1GCR4_DXREFEEN 0x3 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR3 0x9 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX1GCR4_DXREFSEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_23_22 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR4_RESERVED_24 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR2 0x9 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX1GCR4_DXREFESELRANGE 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_15_14 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX1GCR4_DXREFESEL 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR1 0x2b - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX1GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX1GCR6_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX1GCR4_DXREFSSEL 0x30 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX1GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR4_RESERVED_7_6 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080818, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX1GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX1GCR4_DXREFIEN 0xf + /* + * Register : DX2GCR0 @ 0XFD080900 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX1GCR4_DXREFIMON 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX2GCR0_CALBYP 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080810, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX1GCR4_RESERVED_31_29_MASK | DDR_PHY_DX1GCR4_DXREFPEN_MASK | DDR_PHY_DX1GCR4_DXREFEEN_MASK | DDR_PHY_DX1GCR4_DXREFSEN_MASK | DDR_PHY_DX1GCR4_RESERVED_24_MASK | DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX1GCR4_DXREFESEL_MASK | DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX1GCR4_DXREFSSEL_MASK | DDR_PHY_DX1GCR4_RESERVED_7_6_MASK | DDR_PHY_DX1GCR4_DXREFIEN_MASK | DDR_PHY_DX1GCR4_DXREFIMON_MASK | 0 ); + * Master Delay Line Enable + * PSU_DDR_PHY_DX2GCR0_MDLEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX1GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX1GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX2GCR0_CODTSHFT 0x0 - /*Register : DX1GCR5 @ 0XFD080814

      + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX2GCR0_DQSDCC 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_31 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX2GCR0_RDDLY 0x8 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX1GCR5_DXREFISELR3 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_23 0x0 - - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX1GCR5_DXREFISELR2 0x9 - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_15 0x0 - - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX1GCR5_DXREFISELR1 0x4f - - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR5_RESERVED_7 0x0 - - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX1GCR5_DXREFISELR0 0x4f + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_19_14 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080814, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX1GCR5_RESERVED_31_MASK | DDR_PHY_DX1GCR5_DXREFISELR3_MASK | DDR_PHY_DX1GCR5_RESERVED_23_MASK | DDR_PHY_DX1GCR5_DXREFISELR2_MASK | DDR_PHY_DX1GCR5_RESERVED_15_MASK | DDR_PHY_DX1GCR5_DXREFISELR1_MASK | DDR_PHY_DX1GCR5_RESERVED_7_MASK | DDR_PHY_DX1GCR5_DXREFISELR0_MASK | 0 ); + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSNSEPDR 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSSEPDR 0x0 - /*Register : DX1GCR6 @ 0XFD080818

      + * RTT On Additive Latency + * PSU_DDR_PHY_DX2GCR0_RTTOAL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_31_30 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX2GCR0_RTTOH 0x3 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR3 0x9 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX2GCR0_CPDRSHFT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_23_22 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX2GCR0_DQSRPD 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR2 0x9 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX2GCR0_DQSGPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_15_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_4 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR1 0x2b + * DQSG On-Die Termination + * PSU_DDR_PHY_DX2GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX1GCR6_RESERVED_7_6 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX2GCR0_DQSGOE 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX1GCR6_DXDQVREFR0 0x2b + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX2GCR0_RESERVED_1_0 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080818, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX1GCR6_RESERVED_31_30_MASK | DDR_PHY_DX1GCR6_DXDQVREFR3_MASK | DDR_PHY_DX1GCR6_RESERVED_23_22_MASK | DDR_PHY_DX1GCR6_DXDQVREFR2_MASK | DDR_PHY_DX1GCR6_RESERVED_15_14_MASK | DDR_PHY_DX1GCR6_DXDQVREFR1_MASK | DDR_PHY_DX1GCR6_RESERVED_7_6_MASK | DDR_PHY_DX1GCR6_DXDQVREFR0_MASK | 0 ); + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080900, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + /* + * Register : DX2GCR1 @ 0XFD080904 - /*Register : DX1LCDLR2 @ 0XFD080888

      + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX2GCR1_DXPDRMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_31_25 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX2GCR1_RESERVED_15 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_24_16 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX2GCR1_QSNSEL 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1LCDLR2_RESERVED_15_9 0x0 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX2GCR1_QSSEL 0x1 - Read DQS Gating Delay - PSU_DDR_PHY_DX1LCDLR2_DQSGD 0x0 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX2GCR1_OEEN 0x1 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080888, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX1LCDLR2_DQSGD_MASK | 0 ); + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX2GCR1_PDREN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX1LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX2GCR1_TEEN 0x1 - /*Register : DX1GTR0 @ 0XFD0808C0

      + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX2GCR1_DSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_31_24 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX2GCR1_DMEN 0x1 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX1GTR0_WDQSL 0x0 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX2GCR1_DQEN 0xff - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1GTR0_RESERVED_23_20 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080904, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Write Leveling System Latency - PSU_DDR_PHY_DX1GTR0_WLSL 0x2 + /* + * Register : DX2GCR4 @ 0XFD080910 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_15_13 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX2GCR4_RESERVED_31_29 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX1GTR0_RESERVED_12_8 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX2GCR4_DXREFPEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX1GTR0_RESERVED_7_5 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX2GCR4_DXREFEEN 0x3 - DQS Gating System Latency - PSU_DDR_PHY_DX1GTR0_DGSL 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX2GCR4_DXREFSEN 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0808C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX1GTR0_RESERVED_31_24_MASK | DDR_PHY_DX1GTR0_WDQSL_MASK | DDR_PHY_DX1GTR0_RESERVED_23_20_MASK | DDR_PHY_DX1GTR0_WLSL_MASK | DDR_PHY_DX1GTR0_RESERVED_15_13_MASK | DDR_PHY_DX1GTR0_RESERVED_12_8_MASK | DDR_PHY_DX1GTR0_RESERVED_7_5_MASK | DDR_PHY_DX1GTR0_DGSL_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR4_RESERVED_24 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX1GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX1GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX1GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX2GCR4_DXREFESELRANGE 0x0 - /*Register : DX2GCR0 @ 0XFD080900

      + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX2GCR4_DXREFESEL 0x0 - Calibration Bypass - PSU_DDR_PHY_DX2GCR0_CALBYP 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX2GCR4_DXREFSSELRANGE 0x1 - Master Delay Line Enable - PSU_DDR_PHY_DX2GCR0_MDLEN 0x1 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX2GCR4_DXREFSSEL 0x30 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX2GCR0_CODTSHFT 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR4_RESERVED_7_6 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX2GCR0_DQSDCC 0x0 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX2GCR4_DXREFIEN 0xf - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX2GCR0_RDDLY 0x8 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX2GCR4_DXREFIMON 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_19_14 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080910, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSNSEPDR 0x0 + /* + * Register : DX2GCR5 @ 0XFD080914 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_31 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX2GCR0_RTTOAL 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR3 0x9 - RTT Output Hold - PSU_DDR_PHY_DX2GCR0_RTTOH 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_23 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX2GCR0_CPDRSHFT 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR2 0x9 - DQSR Power Down - PSU_DDR_PHY_DX2GCR0_DQSRPD 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_15 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX2GCR0_DQSGPDR 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x55 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR5_RESERVED_7 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX2GCR0_DQSGODT 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x55 - DQSG Output Enable - PSU_DDR_PHY_DX2GCR0_DQSGOE 0x1 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GCR0_RESERVED_1_0 0x0 + /* + * Register : DX2GCR6 @ 0XFD080918 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080900, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX2GCR0_CALBYP_MASK | DDR_PHY_DX2GCR0_MDLEN_MASK | DDR_PHY_DX2GCR0_CODTSHFT_MASK | DDR_PHY_DX2GCR0_DQSDCC_MASK | DDR_PHY_DX2GCR0_RDDLY_MASK | DDR_PHY_DX2GCR0_RESERVED_19_14_MASK | DDR_PHY_DX2GCR0_DQSNSEPDR_MASK | DDR_PHY_DX2GCR0_DQSSEPDR_MASK | DDR_PHY_DX2GCR0_RTTOAL_MASK | DDR_PHY_DX2GCR0_RTTOH_MASK | DDR_PHY_DX2GCR0_CPDRSHFT_MASK | DDR_PHY_DX2GCR0_DQSRPD_MASK | DDR_PHY_DX2GCR0_DQSGPDR_MASK | DDR_PHY_DX2GCR0_RESERVED_4_MASK | DDR_PHY_DX2GCR0_DQSGODT_MASK | DDR_PHY_DX2GCR0_DQSGOE_MASK | DDR_PHY_DX2GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX2GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX2GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR3 0x9 - /*Register : DX2GCR1 @ 0XFD080904

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_23_22 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX2GCR1_DXPDRMODE 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX2GCR1_RESERVED_15 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_15_14 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX2GCR1_QSNSEL 0x1 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR1 0x2b - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX2GCR1_QSSEL 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX2GCR6_RESERVED_7_6 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX2GCR1_OEEN 0x1 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX2GCR6_DXDQVREFR0 0x2b - Enables PDR in a byte lane - PSU_DDR_PHY_DX2GCR1_PDREN 0x1 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080918, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX2GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX2GCR1_TEEN 0x1 + /* + * Register : DX3GCR0 @ 0XFD080A00 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX2GCR1_DSEN 0x1 + * Calibration Bypass + * PSU_DDR_PHY_DX3GCR0_CALBYP 0x0 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX2GCR1_DMEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX3GCR0_MDLEN 0x1 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX2GCR1_DQEN 0xff + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX3GCR0_CODTSHFT 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080904, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX2GCR1_DXPDRMODE_MASK | DDR_PHY_DX2GCR1_RESERVED_15_MASK | DDR_PHY_DX2GCR1_QSNSEL_MASK | DDR_PHY_DX2GCR1_QSSEL_MASK | DDR_PHY_DX2GCR1_OEEN_MASK | DDR_PHY_DX2GCR1_PDREN_MASK | DDR_PHY_DX2GCR1_TEEN_MASK | DDR_PHY_DX2GCR1_DSEN_MASK | DDR_PHY_DX2GCR1_DMEN_MASK | DDR_PHY_DX2GCR1_DQEN_MASK | 0 ); + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX3GCR0_DQSDCC 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX2GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX3GCR0_RDDLY 0x8 - /*Register : DX2GCR4 @ 0XFD080910

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_19_14 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX2GCR4_RESERVED_31_29 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSNSEPDR 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX2GCR4_DXREFPEN 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSSEPDR 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX2GCR4_DXREFEEN 0x3 + * RTT On Additive Latency + * PSU_DDR_PHY_DX3GCR0_RTTOAL 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX2GCR4_DXREFSEN 0x1 + * RTT Output Hold + * PSU_DDR_PHY_DX3GCR0_RTTOH 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR4_RESERVED_24 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX3GCR0_CPDRSHFT 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX2GCR4_DXREFESELRANGE 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX3GCR0_DQSRPD 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX2GCR4_DXREFESEL 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX3GCR0_DQSGPDR 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX2GCR4_DXREFSSELRANGE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_4 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX2GCR4_DXREFSSEL 0x30 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX3GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR4_RESERVED_7_6 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX3GCR0_DQSGOE 0x1 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX2GCR4_DXREFIEN 0xf + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX3GCR0_RESERVED_1_0 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX2GCR4_DXREFIMON 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080A00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080910, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX2GCR4_RESERVED_31_29_MASK | DDR_PHY_DX2GCR4_DXREFPEN_MASK | DDR_PHY_DX2GCR4_DXREFEEN_MASK | DDR_PHY_DX2GCR4_DXREFSEN_MASK | DDR_PHY_DX2GCR4_RESERVED_24_MASK | DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX2GCR4_DXREFESEL_MASK | DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX2GCR4_DXREFSSEL_MASK | DDR_PHY_DX2GCR4_RESERVED_7_6_MASK | DDR_PHY_DX2GCR4_DXREFIEN_MASK | DDR_PHY_DX2GCR4_DXREFIMON_MASK | 0 ); + /* + * Register : DX3GCR1 @ 0XFD080A04 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX2GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX2GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX3GCR1_DXPDRMODE 0x0 - /*Register : DX2GCR5 @ 0XFD080914

      + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX3GCR1_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_31 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX3GCR1_QSNSEL 0x1 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX2GCR5_DXREFISELR3 0x9 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX3GCR1_QSSEL 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_23 0x0 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX3GCR1_OEEN 0x1 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX2GCR5_DXREFISELR2 0x9 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX3GCR1_PDREN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_15 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX3GCR1_TEEN 0x1 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX2GCR5_DXREFISELR1 0x4f + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX3GCR1_DSEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR5_RESERVED_7 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX3GCR1_DMEN 0x1 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX2GCR5_DXREFISELR0 0x4f + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX3GCR1_DQEN 0xff - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080914, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX2GCR5_RESERVED_31_MASK | DDR_PHY_DX2GCR5_DXREFISELR3_MASK | DDR_PHY_DX2GCR5_RESERVED_23_MASK | DDR_PHY_DX2GCR5_DXREFISELR2_MASK | DDR_PHY_DX2GCR5_RESERVED_15_MASK | DDR_PHY_DX2GCR5_DXREFISELR1_MASK | DDR_PHY_DX2GCR5_RESERVED_7_MASK | DDR_PHY_DX2GCR5_DXREFISELR0_MASK | 0 ); + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080A04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX2GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + /* + * Register : DX3GCR4 @ 0XFD080A10 - /*Register : DX2GCR6 @ 0XFD080918

      + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX3GCR4_RESERVED_31_29 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_31_30 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX3GCR4_DXREFPEN 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR3 0x9 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX3GCR4_DXREFEEN 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_23_22 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX3GCR4_DXREFSEN 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR4_RESERVED_24 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_15_14 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX3GCR4_DXREFESELRANGE 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR1 0x2b + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX3GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX2GCR6_RESERVED_7_6 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX3GCR4_DXREFSSELRANGE 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX2GCR6_DXDQVREFR0 0x2b + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX3GCR4_DXREFSSEL 0x30 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080918, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX2GCR6_RESERVED_31_30_MASK | DDR_PHY_DX2GCR6_DXDQVREFR3_MASK | DDR_PHY_DX2GCR6_RESERVED_23_22_MASK | DDR_PHY_DX2GCR6_DXDQVREFR2_MASK | DDR_PHY_DX2GCR6_RESERVED_15_14_MASK | DDR_PHY_DX2GCR6_DXDQVREFR1_MASK | DDR_PHY_DX2GCR6_RESERVED_7_6_MASK | DDR_PHY_DX2GCR6_DXDQVREFR0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR4_RESERVED_7_6 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX3GCR4_DXREFIEN 0xf - /*Register : DX2LCDLR2 @ 0XFD080988

      + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX3GCR4_DXREFIMON 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_31_25 0x0 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080A10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_24_16 0x0 + /* + * Register : DX3GCR5 @ 0XFD080A14 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2LCDLR2_RESERVED_15_9 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_31 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX2LCDLR2_DQSGD 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR3 0x9 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080988, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX2LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_23 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX2LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR2 0x9 - /*Register : DX2GTR0 @ 0XFD0809C0

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_15 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_31_24 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x55 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX2GTR0_WDQSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR5_RESERVED_7 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2GTR0_RESERVED_23_20 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x55 - Write Leveling System Latency - PSU_DDR_PHY_DX2GTR0_WLSL 0x2 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_15_13 0x0 + /* + * Register : DX3GCR6 @ 0XFD080A18 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX2GTR0_RESERVED_12_8 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX2GTR0_RESERVED_7_5 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR3 0x9 - DQS Gating System Latency - PSU_DDR_PHY_DX2GTR0_DGSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_23_22 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD0809C0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX2GTR0_RESERVED_31_24_MASK | DDR_PHY_DX2GTR0_WDQSL_MASK | DDR_PHY_DX2GTR0_RESERVED_23_20_MASK | DDR_PHY_DX2GTR0_WLSL_MASK | DDR_PHY_DX2GTR0_RESERVED_15_13_MASK | DDR_PHY_DX2GTR0_RESERVED_12_8_MASK | DDR_PHY_DX2GTR0_RESERVED_7_5_MASK | DDR_PHY_DX2GTR0_DGSL_MASK | 0 ); + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR2 0x9 - RegVal = ((0x00000000U << DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX2GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX2GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX2GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_15_14 0x0 - /*Register : DX3GCR0 @ 0XFD080A00

      + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR1 0x2b - Calibration Bypass - PSU_DDR_PHY_DX3GCR0_CALBYP 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX3GCR6_RESERVED_7_6 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX3GCR0_MDLEN 0x1 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX3GCR6_DXDQVREFR0 0x2b - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX3GCR0_CODTSHFT 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080A18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX3GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DQS Duty Cycle Correction - PSU_DDR_PHY_DX3GCR0_DQSDCC 0x0 + /* + * Register : DX4GCR0 @ 0XFD080B00 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX3GCR0_RDDLY 0x8 + * Calibration Bypass + * PSU_DDR_PHY_DX4GCR0_CALBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_19_14 0x0 + * Master Delay Line Enable + * PSU_DDR_PHY_DX4GCR0_MDLEN 0x1 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSNSEPDR 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX4GCR0_CODTSHFT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSSEPDR 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX4GCR0_DQSDCC 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX3GCR0_RTTOAL 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX4GCR0_RDDLY 0x8 - RTT Output Hold - PSU_DDR_PHY_DX3GCR0_RTTOH 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_19_14 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX3GCR0_CPDRSHFT 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSNSEPDR 0x0 - DQSR Power Down - PSU_DDR_PHY_DX3GCR0_DQSRPD 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSSEPDR 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX3GCR0_DQSGPDR 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX4GCR0_RTTOAL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_4 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX4GCR0_RTTOH 0x3 - DQSG On-Die Termination - PSU_DDR_PHY_DX3GCR0_DQSGODT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX4GCR0_CPDRSHFT 0x0 - DQSG Output Enable - PSU_DDR_PHY_DX3GCR0_DQSGOE 0x1 + * DQSR Power Down + * PSU_DDR_PHY_DX4GCR0_DQSRPD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GCR0_RESERVED_1_0 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX4GCR0_DQSGPDR 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080A00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX3GCR0_CALBYP_MASK | DDR_PHY_DX3GCR0_MDLEN_MASK | DDR_PHY_DX3GCR0_CODTSHFT_MASK | DDR_PHY_DX3GCR0_DQSDCC_MASK | DDR_PHY_DX3GCR0_RDDLY_MASK | DDR_PHY_DX3GCR0_RESERVED_19_14_MASK | DDR_PHY_DX3GCR0_DQSNSEPDR_MASK | DDR_PHY_DX3GCR0_DQSSEPDR_MASK | DDR_PHY_DX3GCR0_RTTOAL_MASK | DDR_PHY_DX3GCR0_RTTOH_MASK | DDR_PHY_DX3GCR0_CPDRSHFT_MASK | DDR_PHY_DX3GCR0_DQSRPD_MASK | DDR_PHY_DX3GCR0_DQSGPDR_MASK | DDR_PHY_DX3GCR0_RESERVED_4_MASK | DDR_PHY_DX3GCR0_DQSGODT_MASK | DDR_PHY_DX3GCR0_DQSGOE_MASK | DDR_PHY_DX3GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_4 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX3GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX3GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DQSG On-Die Termination + * PSU_DDR_PHY_DX4GCR0_DQSGODT 0x0 - /*Register : DX3GCR1 @ 0XFD080A04

      + * DQSG Output Enable + * PSU_DDR_PHY_DX4GCR0_DQSGOE 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX3GCR1_DXPDRMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX4GCR0_RESERVED_1_0 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX3GCR1_RESERVED_15 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080B00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX3GCR1_QSNSEL 0x1 + /* + * Register : DX4GCR1 @ 0XFD080B04 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX3GCR1_QSSEL 0x1 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX4GCR1_DXPDRMODE 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX3GCR1_OEEN 0x1 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX4GCR1_RESERVED_15 0x0 - Enables PDR in a byte lane - PSU_DDR_PHY_DX3GCR1_PDREN 0x1 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX4GCR1_QSNSEL 0x1 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX3GCR1_TEEN 0x1 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX4GCR1_QSSEL 0x1 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX3GCR1_DSEN 0x1 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX4GCR1_OEEN 0x1 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX3GCR1_DMEN 0x1 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX4GCR1_PDREN 0x1 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX3GCR1_DQEN 0xff + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX4GCR1_TEEN 0x1 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080A04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX3GCR1_DXPDRMODE_MASK | DDR_PHY_DX3GCR1_RESERVED_15_MASK | DDR_PHY_DX3GCR1_QSNSEL_MASK | DDR_PHY_DX3GCR1_QSSEL_MASK | DDR_PHY_DX3GCR1_OEEN_MASK | DDR_PHY_DX3GCR1_PDREN_MASK | DDR_PHY_DX3GCR1_TEEN_MASK | DDR_PHY_DX3GCR1_DSEN_MASK | DDR_PHY_DX3GCR1_DMEN_MASK | DDR_PHY_DX3GCR1_DQEN_MASK | 0 ); + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX4GCR1_DSEN 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX3GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX4GCR1_DMEN 0x1 - /*Register : DX3GCR4 @ 0XFD080A10

      + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX4GCR1_DQEN 0xff - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX3GCR4_RESERVED_31_29 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080B04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX3GCR4_DXREFPEN 0x0 + /* + * Register : DX4GCR4 @ 0XFD080B10 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX3GCR4_DXREFEEN 0x3 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX4GCR4_RESERVED_31_29 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX3GCR4_DXREFSEN 0x1 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX4GCR4_DXREFPEN 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR4_RESERVED_24 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX4GCR4_DXREFEEN 0x3 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX3GCR4_DXREFESELRANGE 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX4GCR4_DXREFSEN 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX3GCR4_DXREFESEL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR4_RESERVED_24 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX3GCR4_DXREFSSELRANGE 0x1 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX4GCR4_DXREFESELRANGE 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX3GCR4_DXREFSSEL 0x30 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX4GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR4_RESERVED_7_6 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX4GCR4_DXREFSSELRANGE 0x1 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX3GCR4_DXREFIEN 0xf + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX4GCR4_DXREFSSEL 0x30 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX3GCR4_DXREFIMON 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR4_RESERVED_7_6 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080A10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX3GCR4_RESERVED_31_29_MASK | DDR_PHY_DX3GCR4_DXREFPEN_MASK | DDR_PHY_DX3GCR4_DXREFEEN_MASK | DDR_PHY_DX3GCR4_DXREFSEN_MASK | DDR_PHY_DX3GCR4_RESERVED_24_MASK | DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX3GCR4_DXREFESEL_MASK | DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX3GCR4_DXREFSSEL_MASK | DDR_PHY_DX3GCR4_RESERVED_7_6_MASK | DDR_PHY_DX3GCR4_DXREFIEN_MASK | DDR_PHY_DX3GCR4_DXREFIMON_MASK | 0 ); + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX4GCR4_DXREFIEN 0xf - RegVal = ((0x00000000U << DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX3GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX3GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX4GCR4_DXREFIMON 0x0 - /*Register : DX3GCR5 @ 0XFD080A14

      + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080B10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_31 0x0 + /* + * Register : DX4GCR5 @ 0XFD080B14 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX3GCR5_DXREFISELR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_31 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_23 0x0 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR3 0x9 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX3GCR5_DXREFISELR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_23 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_15 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR2 0x9 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX3GCR5_DXREFISELR1 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR5_RESERVED_7 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x55 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX3GCR5_DXREFISELR0 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR5_RESERVED_7 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080A14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX3GCR5_RESERVED_31_MASK | DDR_PHY_DX3GCR5_DXREFISELR3_MASK | DDR_PHY_DX3GCR5_RESERVED_23_MASK | DDR_PHY_DX3GCR5_DXREFISELR2_MASK | DDR_PHY_DX3GCR5_RESERVED_15_MASK | DDR_PHY_DX3GCR5_DXREFISELR1_MASK | DDR_PHY_DX3GCR5_RESERVED_7_MASK | DDR_PHY_DX3GCR5_DXREFISELR0_MASK | 0 ); + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x55 - RegVal = ((0x00000000U << DDR_PHY_DX3GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - /*Register : DX3GCR6 @ 0XFD080A18

      + /* + * Register : DX4GCR6 @ 0XFD080B18 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_31_30 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_31_30 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR3 0x9 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR3 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_23_22 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_23_22 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR2 0x9 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_15_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_15_14 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR1 0x2b + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX3GCR6_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX4GCR6_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX3GCR6_DXDQVREFR0 0x2b + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX4GCR6_DXDQVREFR0 0x2b - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080A18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX3GCR6_RESERVED_31_30_MASK | DDR_PHY_DX3GCR6_DXDQVREFR3_MASK | DDR_PHY_DX3GCR6_RESERVED_23_22_MASK | DDR_PHY_DX3GCR6_DXDQVREFR2_MASK | DDR_PHY_DX3GCR6_RESERVED_15_14_MASK | DDR_PHY_DX3GCR6_DXDQVREFR1_MASK | DDR_PHY_DX3GCR6_RESERVED_7_6_MASK | DDR_PHY_DX3GCR6_DXDQVREFR0_MASK | 0 ); + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080B18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX4GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + /* + * Register : DX5GCR0 @ 0XFD080C00 - /*Register : DX3LCDLR2 @ 0XFD080A88

      + * Calibration Bypass + * PSU_DDR_PHY_DX5GCR0_CALBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_31_25 0x0 + * Master Delay Line Enable + * PSU_DDR_PHY_DX5GCR0_MDLEN 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_24_16 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX5GCR0_CODTSHFT 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3LCDLR2_RESERVED_15_9 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX5GCR0_DQSDCC 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX3LCDLR2_DQSGD 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX5GCR0_RDDLY 0x8 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080A88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX3LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_19_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX3LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSNSEPDR 0x0 - /*Register : DX3GTR0 @ 0XFD080AC0

      + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSSEPDR 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_31_24 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX5GCR0_RTTOAL 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX3GTR0_WDQSL 0x0 + * RTT Output Hold + * PSU_DDR_PHY_DX5GCR0_RTTOH 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3GTR0_RESERVED_23_20 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX5GCR0_CPDRSHFT 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX3GTR0_WLSL 0x2 + * DQSR Power Down + * PSU_DDR_PHY_DX5GCR0_DQSRPD 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_15_13 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX5GCR0_DQSGPDR 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX3GTR0_RESERVED_12_8 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_4 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX3GTR0_RESERVED_7_5 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX5GCR0_DQSGODT 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX3GTR0_DGSL 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX5GCR0_DQSGOE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080AC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX3GTR0_RESERVED_31_24_MASK | DDR_PHY_DX3GTR0_WDQSL_MASK | DDR_PHY_DX3GTR0_RESERVED_23_20_MASK | DDR_PHY_DX3GTR0_WLSL_MASK | DDR_PHY_DX3GTR0_RESERVED_15_13_MASK | DDR_PHY_DX3GTR0_RESERVED_12_8_MASK | DDR_PHY_DX3GTR0_RESERVED_7_5_MASK | DDR_PHY_DX3GTR0_DGSL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX5GCR0_RESERVED_1_0 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX3GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX3GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX3GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080C00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - /*Register : DX4GCR0 @ 0XFD080B00

      + /* + * Register : DX5GCR1 @ 0XFD080C04 - Calibration Bypass - PSU_DDR_PHY_DX4GCR0_CALBYP 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX5GCR1_DXPDRMODE 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX4GCR0_MDLEN 0x1 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX5GCR1_RESERVED_15 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX4GCR0_CODTSHFT 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX5GCR1_QSNSEL 0x1 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX4GCR0_DQSDCC 0x0 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX5GCR1_QSSEL 0x1 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX4GCR0_RDDLY 0x8 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX5GCR1_OEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_19_14 0x0 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX5GCR1_PDREN 0x1 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSNSEPDR 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX5GCR1_TEEN 0x1 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSSEPDR 0x0 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX5GCR1_DSEN 0x1 - RTT On Additive Latency - PSU_DDR_PHY_DX4GCR0_RTTOAL 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX5GCR1_DMEN 0x1 - RTT Output Hold - PSU_DDR_PHY_DX4GCR0_RTTOH 0x3 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX5GCR1_DQEN 0xff - Configurable PDR Phase Shift - PSU_DDR_PHY_DX4GCR0_CPDRSHFT 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080C04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - DQSR Power Down - PSU_DDR_PHY_DX4GCR0_DQSRPD 0x0 + /* + * Register : DX5GCR4 @ 0XFD080C10 - DQSG Power Down Receiver - PSU_DDR_PHY_DX4GCR0_DQSGPDR 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX5GCR4_RESERVED_31_29 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_4 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX5GCR4_DXREFPEN 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX4GCR0_DQSGODT 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX5GCR4_DXREFEEN 0x3 - DQSG Output Enable - PSU_DDR_PHY_DX4GCR0_DQSGOE 0x1 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX5GCR4_DXREFSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GCR0_RESERVED_1_0 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR4_RESERVED_24 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080B00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX4GCR0_CALBYP_MASK | DDR_PHY_DX4GCR0_MDLEN_MASK | DDR_PHY_DX4GCR0_CODTSHFT_MASK | DDR_PHY_DX4GCR0_DQSDCC_MASK | DDR_PHY_DX4GCR0_RDDLY_MASK | DDR_PHY_DX4GCR0_RESERVED_19_14_MASK | DDR_PHY_DX4GCR0_DQSNSEPDR_MASK | DDR_PHY_DX4GCR0_DQSSEPDR_MASK | DDR_PHY_DX4GCR0_RTTOAL_MASK | DDR_PHY_DX4GCR0_RTTOH_MASK | DDR_PHY_DX4GCR0_CPDRSHFT_MASK | DDR_PHY_DX4GCR0_DQSRPD_MASK | DDR_PHY_DX4GCR0_DQSGPDR_MASK | DDR_PHY_DX4GCR0_RESERVED_4_MASK | DDR_PHY_DX4GCR0_DQSGODT_MASK | DDR_PHY_DX4GCR0_DQSGOE_MASK | DDR_PHY_DX4GCR0_RESERVED_1_0_MASK | 0 ); + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX5GCR4_DXREFESELRANGE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX4GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX4GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX5GCR4_DXREFESEL 0x0 - /*Register : DX4GCR1 @ 0XFD080B04

      + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX5GCR4_DXREFSSELRANGE 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX4GCR1_DXPDRMODE 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX5GCR4_DXREFSSEL 0x30 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX4GCR1_RESERVED_15 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR4_RESERVED_7_6 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX4GCR1_QSNSEL 0x1 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX5GCR4_DXREFIEN 0xf - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX4GCR1_QSSEL 0x1 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX5GCR4_DXREFIMON 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX4GCR1_OEEN 0x1 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080C10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Enables PDR in a byte lane - PSU_DDR_PHY_DX4GCR1_PDREN 0x1 + /* + * Register : DX5GCR5 @ 0XFD080C14 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX4GCR1_TEEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_31 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX4GCR1_DSEN 0x1 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR3 0x9 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX4GCR1_DMEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_23 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX4GCR1_DQEN 0xff + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR2 0x9 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080B04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX4GCR1_DXPDRMODE_MASK | DDR_PHY_DX4GCR1_RESERVED_15_MASK | DDR_PHY_DX4GCR1_QSNSEL_MASK | DDR_PHY_DX4GCR1_QSSEL_MASK | DDR_PHY_DX4GCR1_OEEN_MASK | DDR_PHY_DX4GCR1_PDREN_MASK | DDR_PHY_DX4GCR1_TEEN_MASK | DDR_PHY_DX4GCR1_DSEN_MASK | DDR_PHY_DX4GCR1_DMEN_MASK | DDR_PHY_DX4GCR1_DQEN_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_15 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX4GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x55 - /*Register : DX4GCR4 @ 0XFD080B10

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR5_RESERVED_7 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX4GCR4_RESERVED_31_29 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x55 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX4GCR4_DXREFPEN 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX4GCR4_DXREFEEN 0x3 + /* + * Register : DX5GCR6 @ 0XFD080C18 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX4GCR4_DXREFSEN 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_31_30 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR4_RESERVED_24 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR3 0x9 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX4GCR4_DXREFESELRANGE 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_23_22 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX4GCR4_DXREFESEL 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR2 0x9 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX4GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_15_14 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX4GCR4_DXREFSSEL 0x30 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR4_RESERVED_7_6 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX5GCR6_RESERVED_7_6 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX4GCR4_DXREFIEN 0xf + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX5GCR6_DXDQVREFR0 0x2b - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX4GCR4_DXREFIMON 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080C18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX5GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080B10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX4GCR4_RESERVED_31_29_MASK | DDR_PHY_DX4GCR4_DXREFPEN_MASK | DDR_PHY_DX4GCR4_DXREFEEN_MASK | DDR_PHY_DX4GCR4_DXREFSEN_MASK | DDR_PHY_DX4GCR4_RESERVED_24_MASK | DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX4GCR4_DXREFESEL_MASK | DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX4GCR4_DXREFSSEL_MASK | DDR_PHY_DX4GCR4_RESERVED_7_6_MASK | DDR_PHY_DX4GCR4_DXREFIEN_MASK | DDR_PHY_DX4GCR4_DXREFIMON_MASK | 0 ); + /* + * Register : DX6GCR0 @ 0XFD080D00 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX4GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX4GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Calibration Bypass + * PSU_DDR_PHY_DX6GCR0_CALBYP 0x0 - /*Register : DX4GCR5 @ 0XFD080B14

      + * Master Delay Line Enable + * PSU_DDR_PHY_DX6GCR0_MDLEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_31 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX6GCR0_CODTSHFT 0x0 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX4GCR5_DXREFISELR3 0x9 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX6GCR0_DQSDCC 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_23 0x0 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX6GCR0_RDDLY 0x8 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX4GCR5_DXREFISELR2 0x9 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_19_14 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_15 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSNSEPDR 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX4GCR5_DXREFISELR1 0x4f + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSSEPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR5_RESERVED_7 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX6GCR0_RTTOAL 0x0 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX4GCR5_DXREFISELR0 0x4f + * RTT Output Hold + * PSU_DDR_PHY_DX6GCR0_RTTOH 0x3 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080B14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX4GCR5_RESERVED_31_MASK | DDR_PHY_DX4GCR5_DXREFISELR3_MASK | DDR_PHY_DX4GCR5_RESERVED_23_MASK | DDR_PHY_DX4GCR5_DXREFISELR2_MASK | DDR_PHY_DX4GCR5_RESERVED_15_MASK | DDR_PHY_DX4GCR5_DXREFISELR1_MASK | DDR_PHY_DX4GCR5_RESERVED_7_MASK | DDR_PHY_DX4GCR5_DXREFISELR0_MASK | 0 ); + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX6GCR0_CPDRSHFT 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * DQSR Power Down + * PSU_DDR_PHY_DX6GCR0_DQSRPD 0x0 - /*Register : DX4GCR6 @ 0XFD080B18

      + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX6GCR0_DQSGPDR 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_4 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR3 0x9 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX6GCR0_DQSGODT 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_23_22 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX6GCR0_DQSGOE 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR2 0x9 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX6GCR0_RESERVED_1_0 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_15_14 0x0 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080D00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR1 0x2b + /* + * Register : DX6GCR1 @ 0XFD080D04 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX4GCR6_RESERVED_7_6 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX6GCR1_DXPDRMODE 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX4GCR6_DXDQVREFR0 0x2b + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX6GCR1_RESERVED_15 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080B18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX4GCR6_RESERVED_31_30_MASK | DDR_PHY_DX4GCR6_DXDQVREFR3_MASK | DDR_PHY_DX4GCR6_RESERVED_23_22_MASK | DDR_PHY_DX4GCR6_DXDQVREFR2_MASK | DDR_PHY_DX4GCR6_RESERVED_15_14_MASK | DDR_PHY_DX4GCR6_DXDQVREFR1_MASK | DDR_PHY_DX4GCR6_RESERVED_7_6_MASK | DDR_PHY_DX4GCR6_DXDQVREFR0_MASK | 0 ); + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX6GCR1_QSNSEL 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX6GCR1_QSSEL 0x1 - /*Register : DX4LCDLR2 @ 0XFD080B88

      + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX6GCR1_OEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_31_25 0x0 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX6GCR1_PDREN 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_24_16 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX6GCR1_TEEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4LCDLR2_RESERVED_15_9 0x0 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX6GCR1_DSEN 0x1 - Read DQS Gating Delay - PSU_DDR_PHY_DX4LCDLR2_DQSGD 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX6GCR1_DMEN 0x1 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080B88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX4LCDLR2_DQSGD_MASK | 0 ); + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX6GCR1_DQEN 0xff - RegVal = ((0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX4LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080D04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - /*Register : DX4GTR0 @ 0XFD080BC0

      + /* + * Register : DX6GCR4 @ 0XFD080D10 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_31_24 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX6GCR4_RESERVED_31_29 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX4GTR0_WDQSL 0x0 + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX6GCR4_DXREFPEN 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4GTR0_RESERVED_23_20 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX6GCR4_DXREFEEN 0x3 - Write Leveling System Latency - PSU_DDR_PHY_DX4GTR0_WLSL 0x2 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX6GCR4_DXREFSEN 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_15_13 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR4_RESERVED_24 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX4GTR0_RESERVED_12_8 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX6GCR4_DXREFESELRANGE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX4GTR0_RESERVED_7_5 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX6GCR4_DXREFESEL 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX4GTR0_DGSL 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX6GCR4_DXREFSSELRANGE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080BC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX4GTR0_RESERVED_31_24_MASK | DDR_PHY_DX4GTR0_WDQSL_MASK | DDR_PHY_DX4GTR0_RESERVED_23_20_MASK | DDR_PHY_DX4GTR0_WLSL_MASK | DDR_PHY_DX4GTR0_RESERVED_15_13_MASK | DDR_PHY_DX4GTR0_RESERVED_12_8_MASK | DDR_PHY_DX4GTR0_RESERVED_7_5_MASK | DDR_PHY_DX4GTR0_DGSL_MASK | 0 ); + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX6GCR4_DXREFSSEL 0x30 - RegVal = ((0x00000000U << DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX4GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX4GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX4GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR4_RESERVED_7_6 0x0 - /*Register : DX5GCR0 @ 0XFD080C00

      + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX6GCR4_DXREFIEN 0xf - Calibration Bypass - PSU_DDR_PHY_DX5GCR0_CALBYP 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX6GCR4_DXREFIMON 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX5GCR0_MDLEN 0x1 + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080D10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX5GCR0_CODTSHFT 0x0 + /* + * Register : DX6GCR5 @ 0XFD080D14 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX5GCR0_DQSDCC 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_31 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX5GCR0_RDDLY 0x8 + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_19_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_23 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSNSEPDR 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR2 0x9 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSSEPDR 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_15 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX5GCR0_RTTOAL 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x55 - RTT Output Hold - PSU_DDR_PHY_DX5GCR0_RTTOH 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR5_RESERVED_7 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX5GCR0_CPDRSHFT 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x55 - DQSR Power Down - PSU_DDR_PHY_DX5GCR0_DQSRPD 0x0 + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - DQSG Power Down Receiver - PSU_DDR_PHY_DX5GCR0_DQSGPDR 0x0 + /* + * Register : DX6GCR6 @ 0XFD080D18 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_4 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_31_30 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX5GCR0_DQSGODT 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR3 0x9 - DQSG Output Enable - PSU_DDR_PHY_DX5GCR0_DQSGOE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GCR0_RESERVED_1_0 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR2 0x9 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080C00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX5GCR0_CALBYP_MASK | DDR_PHY_DX5GCR0_MDLEN_MASK | DDR_PHY_DX5GCR0_CODTSHFT_MASK | DDR_PHY_DX5GCR0_DQSDCC_MASK | DDR_PHY_DX5GCR0_RDDLY_MASK | DDR_PHY_DX5GCR0_RESERVED_19_14_MASK | DDR_PHY_DX5GCR0_DQSNSEPDR_MASK | DDR_PHY_DX5GCR0_DQSSEPDR_MASK | DDR_PHY_DX5GCR0_RTTOAL_MASK | DDR_PHY_DX5GCR0_RTTOH_MASK | DDR_PHY_DX5GCR0_CPDRSHFT_MASK | DDR_PHY_DX5GCR0_DQSRPD_MASK | DDR_PHY_DX5GCR0_DQSGPDR_MASK | DDR_PHY_DX5GCR0_RESERVED_4_MASK | DDR_PHY_DX5GCR0_DQSGODT_MASK | DDR_PHY_DX5GCR0_DQSGOE_MASK | DDR_PHY_DX5GCR0_RESERVED_1_0_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_15_14 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX5GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX5GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR1 0x2b - /*Register : DX5GCR1 @ 0XFD080C04

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX6GCR6_RESERVED_7_6 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX5GCR1_DXPDRMODE 0x0 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX6GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX5GCR1_RESERVED_15 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080D18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX6GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX5GCR1_QSNSEL 0x1 + /* + * Register : DX7GCR0 @ 0XFD080E00 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX5GCR1_QSSEL 0x1 + * Calibration Bypass + * PSU_DDR_PHY_DX7GCR0_CALBYP 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX5GCR1_OEEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX7GCR0_MDLEN 0x1 - Enables PDR in a byte lane - PSU_DDR_PHY_DX5GCR1_PDREN 0x1 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX7GCR0_CODTSHFT 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX5GCR1_TEEN 0x1 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX7GCR0_DQSDCC 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX5GCR1_DSEN 0x1 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX7GCR0_RDDLY 0x8 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX5GCR1_DMEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_19_14 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX5GCR1_DQEN 0xff + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSNSEPDR 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080C04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX5GCR1_DXPDRMODE_MASK | DDR_PHY_DX5GCR1_RESERVED_15_MASK | DDR_PHY_DX5GCR1_QSNSEL_MASK | DDR_PHY_DX5GCR1_QSSEL_MASK | DDR_PHY_DX5GCR1_OEEN_MASK | DDR_PHY_DX5GCR1_PDREN_MASK | DDR_PHY_DX5GCR1_TEEN_MASK | DDR_PHY_DX5GCR1_DSEN_MASK | DDR_PHY_DX5GCR1_DMEN_MASK | DDR_PHY_DX5GCR1_DQEN_MASK | 0 ); + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSSEPDR 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX5GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * RTT On Additive Latency + * PSU_DDR_PHY_DX7GCR0_RTTOAL 0x0 - /*Register : DX5GCR4 @ 0XFD080C10

      + * RTT Output Hold + * PSU_DDR_PHY_DX7GCR0_RTTOH 0x3 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX5GCR4_RESERVED_31_29 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX7GCR0_CPDRSHFT 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX5GCR4_DXREFPEN 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX7GCR0_DQSRPD 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX5GCR4_DXREFEEN 0x3 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX7GCR0_DQSGPDR 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX5GCR4_DXREFSEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_4 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR4_RESERVED_24 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX7GCR0_DQSGODT 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX5GCR4_DXREFESELRANGE 0x0 + * DQSG Output Enable + * PSU_DDR_PHY_DX7GCR0_DQSGOE 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX5GCR4_DXREFESEL 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX7GCR0_RESERVED_1_0 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX5GCR4_DXREFSSELRANGE 0x1 + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080E00, 0xFFFFFFFFU ,0x40800604U) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR0_OFFSET, 0xFFFFFFFFU, 0x40800604U); +/*##################################################################### */ - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX5GCR4_DXREFSSEL 0x30 + /* + * Register : DX7GCR1 @ 0XFD080E04 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR4_RESERVED_7_6 0x0 + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX7GCR1_DXPDRMODE 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX5GCR4_DXREFIEN 0xf + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX7GCR1_RESERVED_15 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX5GCR4_DXREFIMON 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX7GCR1_QSNSEL 0x1 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080C10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX5GCR4_RESERVED_31_29_MASK | DDR_PHY_DX5GCR4_DXREFPEN_MASK | DDR_PHY_DX5GCR4_DXREFEEN_MASK | DDR_PHY_DX5GCR4_DXREFSEN_MASK | DDR_PHY_DX5GCR4_RESERVED_24_MASK | DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX5GCR4_DXREFESEL_MASK | DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX5GCR4_DXREFSSEL_MASK | DDR_PHY_DX5GCR4_RESERVED_7_6_MASK | DDR_PHY_DX5GCR4_DXREFIEN_MASK | DDR_PHY_DX5GCR4_DXREFIMON_MASK | 0 ); + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX7GCR1_QSSEL 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX5GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX5GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX7GCR1_OEEN 0x1 - /*Register : DX5GCR5 @ 0XFD080C14

      + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX7GCR1_PDREN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_31 0x0 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX7GCR1_TEEN 0x1 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX5GCR5_DXREFISELR3 0x9 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX7GCR1_DSEN 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_23 0x0 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX7GCR1_DMEN 0x1 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX5GCR5_DXREFISELR2 0x9 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX7GCR1_DQEN 0xff - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_15 0x0 + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080E04, 0xFFFFFFFFU ,0x00007FFFU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR1_OFFSET, 0xFFFFFFFFU, 0x00007FFFU); +/*##################################################################### */ - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX5GCR5_DXREFISELR1 0x4f + /* + * Register : DX7GCR4 @ 0XFD080E10 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR5_RESERVED_7 0x0 + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX7GCR4_RESERVED_31_29 0x0 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX5GCR5_DXREFISELR0 0x4f + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX7GCR4_DXREFPEN 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080C14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX5GCR5_RESERVED_31_MASK | DDR_PHY_DX5GCR5_DXREFISELR3_MASK | DDR_PHY_DX5GCR5_RESERVED_23_MASK | DDR_PHY_DX5GCR5_DXREFISELR2_MASK | DDR_PHY_DX5GCR5_RESERVED_15_MASK | DDR_PHY_DX5GCR5_DXREFISELR1_MASK | DDR_PHY_DX5GCR5_RESERVED_7_MASK | DDR_PHY_DX5GCR5_DXREFISELR0_MASK | 0 ); + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX7GCR4_DXREFEEN 0x3 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX7GCR4_DXREFSEN 0x1 - /*Register : DX5GCR6 @ 0XFD080C18

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR4_RESERVED_24 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_31_30 0x0 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX7GCR4_DXREFESELRANGE 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR3 0x9 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX7GCR4_DXREFESEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_23_22 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX7GCR4_DXREFSSELRANGE 0x1 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR2 0x9 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX7GCR4_DXREFSSEL 0x30 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_15_14 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR4_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR1 0x2b + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX7GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX5GCR6_RESERVED_7_6 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX7GCR4_DXREFIMON 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX5GCR6_DXDQVREFR0 0x2b + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080E10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080C18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX5GCR6_RESERVED_31_30_MASK | DDR_PHY_DX5GCR6_DXDQVREFR3_MASK | DDR_PHY_DX5GCR6_RESERVED_23_22_MASK | DDR_PHY_DX5GCR6_DXDQVREFR2_MASK | DDR_PHY_DX5GCR6_RESERVED_15_14_MASK | DDR_PHY_DX5GCR6_DXDQVREFR1_MASK | DDR_PHY_DX5GCR6_RESERVED_7_6_MASK | DDR_PHY_DX5GCR6_DXDQVREFR0_MASK | 0 ); + /* + * Register : DX7GCR5 @ 0XFD080E14 - RegVal = ((0x00000000U << DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_31 0x0 - /*Register : DX5LCDLR2 @ 0XFD080C88

      + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR3 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_31_25 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_23 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_24_16 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR2 0x9 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5LCDLR2_RESERVED_15_9 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_15 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX5LCDLR2_DQSGD 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x55 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080C88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX5LCDLR2_DQSGD_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR5_RESERVED_7 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX5LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x55 - /*Register : DX5GTR0 @ 0XFD080CC0

      + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_31_24 0x0 + /* + * Register : DX7GCR6 @ 0XFD080E18 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX5GTR0_WDQSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_31_30 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5GTR0_RESERVED_23_20 0x0 + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR3 0x9 - Write Leveling System Latency - PSU_DDR_PHY_DX5GTR0_WLSL 0x2 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_15_13 0x0 + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR2 0x9 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX5GTR0_RESERVED_12_8 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_15_14 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX5GTR0_RESERVED_7_5 0x0 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR1 0x2b - DQS Gating System Latency - PSU_DDR_PHY_DX5GTR0_DGSL 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX7GCR6_RESERVED_7_6 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080CC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX5GTR0_RESERVED_31_24_MASK | DDR_PHY_DX5GTR0_WDQSL_MASK | DDR_PHY_DX5GTR0_RESERVED_23_20_MASK | DDR_PHY_DX5GTR0_WLSL_MASK | DDR_PHY_DX5GTR0_RESERVED_15_13_MASK | DDR_PHY_DX5GTR0_RESERVED_12_8_MASK | DDR_PHY_DX5GTR0_RESERVED_7_5_MASK | DDR_PHY_DX5GTR0_DGSL_MASK | 0 ); + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX7GCR6_DXDQVREFR0 0x2b - RegVal = ((0x00000000U << DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX5GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX5GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX5GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080E18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX7GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - /*Register : DX6GCR0 @ 0XFD080D00

      + /* + * Register : DX8GCR0 @ 0XFD080F00 - Calibration Bypass - PSU_DDR_PHY_DX6GCR0_CALBYP 0x0 + * Calibration Bypass + * PSU_DDR_PHY_DX8GCR0_CALBYP 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX6GCR0_MDLEN 0x1 + * Master Delay Line Enable + * PSU_DDR_PHY_DX8GCR0_MDLEN 0x1 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX6GCR0_CODTSHFT 0x0 + * Configurable ODT(TE) Phase Shift + * PSU_DDR_PHY_DX8GCR0_CODTSHFT 0x0 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX6GCR0_DQSDCC 0x0 + * DQS Duty Cycle Correction + * PSU_DDR_PHY_DX8GCR0_DQSDCC 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX6GCR0_RDDLY 0x8 + * Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY + * PSU_DDR_PHY_DX8GCR0_RDDLY 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_19_14 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSNSEPDR 0x0 + * DQSNSE Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSNSEPDR 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSSEPDR 0x0 + * DQSSE Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSSEPDR 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX6GCR0_RTTOAL 0x0 + * RTT On Additive Latency + * PSU_DDR_PHY_DX8GCR0_RTTOAL 0x0 - RTT Output Hold - PSU_DDR_PHY_DX6GCR0_RTTOH 0x3 + * RTT Output Hold + * PSU_DDR_PHY_DX8GCR0_RTTOH 0x3 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX6GCR0_CPDRSHFT 0x0 + * Configurable PDR Phase Shift + * PSU_DDR_PHY_DX8GCR0_CPDRSHFT 0x0 - DQSR Power Down - PSU_DDR_PHY_DX6GCR0_DQSRPD 0x0 + * DQSR Power Down + * PSU_DDR_PHY_DX8GCR0_DQSRPD 0x0 - DQSG Power Down Receiver - PSU_DDR_PHY_DX6GCR0_DQSGPDR 0x0 + * DQSG Power Down Receiver + * PSU_DDR_PHY_DX8GCR0_DQSGPDR 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_4 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX6GCR0_DQSGODT 0x0 + * DQSG On-Die Termination + * PSU_DDR_PHY_DX8GCR0_DQSGODT 0x0 - DQSG Output Enable - PSU_DDR_PHY_DX6GCR0_DQSGOE 0x1 + * DQSG Output Enable + * PSU_DDR_PHY_DX8GCR0_DQSGOE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GCR0_RESERVED_1_0 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8GCR0_RESERVED_1_0 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080D00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX6GCR0_CALBYP_MASK | DDR_PHY_DX6GCR0_MDLEN_MASK | DDR_PHY_DX6GCR0_CODTSHFT_MASK | DDR_PHY_DX6GCR0_DQSDCC_MASK | DDR_PHY_DX6GCR0_RDDLY_MASK | DDR_PHY_DX6GCR0_RESERVED_19_14_MASK | DDR_PHY_DX6GCR0_DQSNSEPDR_MASK | DDR_PHY_DX6GCR0_DQSSEPDR_MASK | DDR_PHY_DX6GCR0_RTTOAL_MASK | DDR_PHY_DX6GCR0_RTTOH_MASK | DDR_PHY_DX6GCR0_CPDRSHFT_MASK | DDR_PHY_DX6GCR0_DQSRPD_MASK | DDR_PHY_DX6GCR0_DQSGPDR_MASK | DDR_PHY_DX6GCR0_RESERVED_4_MASK | DDR_PHY_DX6GCR0_DQSGODT_MASK | DDR_PHY_DX6GCR0_DQSGOE_MASK | DDR_PHY_DX6GCR0_RESERVED_1_0_MASK | 0 ); + * DATX8 n General Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD080F00, 0xFFFFFFFFU ,0x40800624U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR0_OFFSET, 0xFFFFFFFFU, 0x40800624U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX6GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX6GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX6GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + /* + * Register : DX8GCR1 @ 0XFD080F04 - /*Register : DX6GCR1 @ 0XFD080D04

      + * Enables the PDR mode for DQ[7:0] + * PSU_DDR_PHY_DX8GCR1_DXPDRMODE 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX6GCR1_DXPDRMODE 0x0 + * Reserved. Returns zeroes on reads. + * PSU_DDR_PHY_DX8GCR1_RESERVED_15 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX6GCR1_RESERVED_15 0x0 + * Select the delayed or non-delayed read data strobe # + * PSU_DDR_PHY_DX8GCR1_QSNSEL 0x1 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX6GCR1_QSNSEL 0x1 + * Select the delayed or non-delayed read data strobe + * PSU_DDR_PHY_DX8GCR1_QSSEL 0x1 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX6GCR1_QSSEL 0x1 + * Enables Read Data Strobe in a byte lane + * PSU_DDR_PHY_DX8GCR1_OEEN 0x1 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX6GCR1_OEEN 0x1 + * Enables PDR in a byte lane + * PSU_DDR_PHY_DX8GCR1_PDREN 0x1 - Enables PDR in a byte lane - PSU_DDR_PHY_DX6GCR1_PDREN 0x1 + * Enables ODT/TE in a byte lane + * PSU_DDR_PHY_DX8GCR1_TEEN 0x1 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX6GCR1_TEEN 0x1 + * Enables Write Data strobe in a byte lane + * PSU_DDR_PHY_DX8GCR1_DSEN 0x1 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX6GCR1_DSEN 0x1 + * Enables DM pin in a byte lane + * PSU_DDR_PHY_DX8GCR1_DMEN 0x1 - Enables DM pin in a byte lane - PSU_DDR_PHY_DX6GCR1_DMEN 0x1 + * Enables DQ corresponding to each bit in a byte + * PSU_DDR_PHY_DX8GCR1_DQEN 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX6GCR1_DQEN 0xff + * DATX8 n General Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD080F04, 0xFFFFFFFFU ,0x00007F00U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR1_OFFSET, 0xFFFFFFFFU, 0x00007F00U); +/*##################################################################### */ - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080D04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX6GCR1_DXPDRMODE_MASK | DDR_PHY_DX6GCR1_RESERVED_15_MASK | DDR_PHY_DX6GCR1_QSNSEL_MASK | DDR_PHY_DX6GCR1_QSSEL_MASK | DDR_PHY_DX6GCR1_OEEN_MASK | DDR_PHY_DX6GCR1_PDREN_MASK | DDR_PHY_DX6GCR1_TEEN_MASK | DDR_PHY_DX6GCR1_DSEN_MASK | DDR_PHY_DX6GCR1_DMEN_MASK | DDR_PHY_DX6GCR1_DQEN_MASK | 0 ); + /* + * Register : DX8GCR4 @ 0XFD080F10 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX6GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * Byte lane VREF IOM (Used only by D4MU IOs) + * PSU_DDR_PHY_DX8GCR4_RESERVED_31_29 0x0 - /*Register : DX6GCR4 @ 0XFD080D10

      + * Byte Lane VREF Pad Enable + * PSU_DDR_PHY_DX8GCR4_DXREFPEN 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX6GCR4_RESERVED_31_29 0x0 + * Byte Lane Internal VREF Enable + * PSU_DDR_PHY_DX8GCR4_DXREFEEN 0x3 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX6GCR4_DXREFPEN 0x0 + * Byte Lane Single-End VREF Enable + * PSU_DDR_PHY_DX8GCR4_DXREFSEN 0x1 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX6GCR4_DXREFEEN 0x3 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR4_RESERVED_24 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX6GCR4_DXREFSEN 0x1 + * External VREF generator REFSEL range select + * PSU_DDR_PHY_DX8GCR4_DXREFESELRANGE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR4_RESERVED_24 0x0 + * Byte Lane External VREF Select + * PSU_DDR_PHY_DX8GCR4_DXREFESEL 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX6GCR4_DXREFESELRANGE 0x0 + * Single ended VREF generator REFSEL range select + * PSU_DDR_PHY_DX8GCR4_DXREFSSELRANGE 0x1 - Byte Lane External VREF Select - PSU_DDR_PHY_DX6GCR4_DXREFESEL 0x0 + * Byte Lane Single-End VREF Select + * PSU_DDR_PHY_DX8GCR4_DXREFSSEL 0x30 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX6GCR4_DXREFSSELRANGE 0x1 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR4_RESERVED_7_6 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX6GCR4_DXREFSSEL 0x30 + * VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX8GCR4_DXREFIEN 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR4_RESERVED_7_6 0x0 + * VRMON control for DQ IO (Single Ended) buffers of a byte lane. + * PSU_DDR_PHY_DX8GCR4_DXREFIMON 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX6GCR4_DXREFIEN 0xf + * DATX8 n General Configuration Register 4 + * (OFFSET, MASK, VALUE) (0XFD080F10, 0xFFFFFFFFU ,0x0E00B03CU) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR4_OFFSET, 0xFFFFFFFFU, 0x0E00B03CU); +/*##################################################################### */ - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX6GCR4_DXREFIMON 0x0 + /* + * Register : DX8GCR5 @ 0XFD080F14 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080D10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX6GCR4_RESERVED_31_29_MASK | DDR_PHY_DX6GCR4_DXREFPEN_MASK | DDR_PHY_DX6GCR4_DXREFEEN_MASK | DDR_PHY_DX6GCR4_DXREFSEN_MASK | DDR_PHY_DX6GCR4_RESERVED_24_MASK | DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX6GCR4_DXREFESEL_MASK | DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX6GCR4_DXREFSSEL_MASK | DDR_PHY_DX6GCR4_RESERVED_7_6_MASK | DDR_PHY_DX6GCR4_DXREFIEN_MASK | DDR_PHY_DX6GCR4_DXREFIMON_MASK | 0 ); + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_31 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX6GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX6GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Byte Lane internal VREF Select for Rank 3 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR3 0x9 - /*Register : DX6GCR5 @ 0XFD080D14

      + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_23 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_31 0x0 + * Byte Lane internal VREF Select for Rank 2 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR2 0x9 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX6GCR5_DXREFISELR3 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_15 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_23 0x0 + * Byte Lane internal VREF Select for Rank 1 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x55 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX6GCR5_DXREFISELR2 0x9 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR5_RESERVED_7 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_15 0x0 + * Byte Lane internal VREF Select for Rank 0 + * PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x55 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX6GCR5_DXREFISELR1 0x4f + * DATX8 n General Configuration Register 5 + * (OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09095555U) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR5_OFFSET, 0xFFFFFFFFU, 0x09095555U); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR5_RESERVED_7 0x0 + /* + * Register : DX8GCR6 @ 0XFD080F18 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX6GCR5_DXREFISELR0 0x4f + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_31_30 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080D14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX6GCR5_RESERVED_31_MASK | DDR_PHY_DX6GCR5_DXREFISELR3_MASK | DDR_PHY_DX6GCR5_RESERVED_23_MASK | DDR_PHY_DX6GCR5_DXREFISELR2_MASK | DDR_PHY_DX6GCR5_RESERVED_15_MASK | DDR_PHY_DX6GCR5_DXREFISELR1_MASK | DDR_PHY_DX6GCR5_RESERVED_7_MASK | DDR_PHY_DX6GCR5_DXREFISELR0_MASK | 0 ); + * DRAM DQ VREF Select for Rank3 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR3 0x9 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_23_22 0x0 - /*Register : DX6GCR6 @ 0XFD080D18

      + * DRAM DQ VREF Select for Rank2 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR2 0x9 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_31_30 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_15_14 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR3 0x9 + * DRAM DQ VREF Select for Rank1 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR1 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_23_22 0x0 + * Reserved. Returns zeros on reads. + * PSU_DDR_PHY_DX8GCR6_RESERVED_7_6 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR2 0x9 + * DRAM DQ VREF Select for Rank0 + * PSU_DDR_PHY_DX8GCR6_DXDQVREFR0 0x2b - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_15_14 0x0 + * DATX8 n General Configuration Register 6 + * (OFFSET, MASK, VALUE) (0XFD080F18, 0xFFFFFFFFU ,0x09092B2BU) + */ + PSU_Mask_Write(DDR_PHY_DX8GCR6_OFFSET, 0xFFFFFFFFU, 0x09092B2BU); +/*##################################################################### */ - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR1 0x2b + /* + * Register : DX8SL0OSC @ 0XFD081400 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX6GCR6_RESERVED_7_6 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_31_30 0x0 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX6GCR6_DXDQVREFR0 0x2b + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXRDCLK 0x2 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080D18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX6GCR6_RESERVED_31_30_MASK | DDR_PHY_DX6GCR6_DXDQVREFR3_MASK | DDR_PHY_DX6GCR6_RESERVED_23_22_MASK | DDR_PHY_DX6GCR6_DXDQVREFR2_MASK | DDR_PHY_DX6GCR6_RESERVED_15_14_MASK | DDR_PHY_DX6GCR6_DXDQVREFR1_MASK | DDR_PHY_DX6GCR6_RESERVED_7_6_MASK | DDR_PHY_DX6GCR6_DXDQVREFR0_MASK | 0 ); + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXDDRCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL0OSC_GATEDXCTLCLK 0x2 - /*Register : DX6LCDLR2 @ 0XFD080D88

      + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL0OSC_CLKLEVEL 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_31_25 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL0OSC_LBMODE 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_24_16 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL0OSC_LBGSDQS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6LCDLR2_RESERVED_15_9 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL0OSC_LBGDQS 0x0 - Read DQS Gating Delay - PSU_DDR_PHY_DX6LCDLR2_DQSGD 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL0OSC_LBDQSS 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080D88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX6LCDLR2_DQSGD_MASK | 0 ); + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL0OSC_PHYHRST 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX6LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL0OSC_PHYFRST 0x1 - /*Register : DX6GTR0 @ 0XFD080DC0

      + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL0OSC_DLTST 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_31_24 0x0 + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL0OSC_DLTMODE 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX6GTR0_WDQSL 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_12_11 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6GTR0_RESERVED_23_20 0x0 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL0OSC_OSCWDDL 0x3 - Write Leveling System Latency - PSU_DDR_PHY_DX6GTR0_WLSL 0x2 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL0OSC_RESERVED_8_7 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_15_13 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL0OSC_OSCWDL 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX6GTR0_RESERVED_12_8 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL0OSC_OSCDIV 0xf - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX6GTR0_RESERVED_7_5 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL0OSC_OSCEN 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX6GTR0_DGSL 0x0 + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081400, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080DC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX6GTR0_RESERVED_31_24_MASK | DDR_PHY_DX6GTR0_WDQSL_MASK | DDR_PHY_DX6GTR0_RESERVED_23_20_MASK | DDR_PHY_DX6GTR0_WLSL_MASK | DDR_PHY_DX6GTR0_RESERVED_15_13_MASK | DDR_PHY_DX6GTR0_RESERVED_12_8_MASK | DDR_PHY_DX6GTR0_RESERVED_7_5_MASK | DDR_PHY_DX6GTR0_DGSL_MASK | 0 ); + /* + * Register : DX8SL0PLLCR0 @ 0XFD081404 - RegVal = ((0x00000000U << DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX6GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX6GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX6GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * PLL Bypass + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLBYP 0x0 - /*Register : DX7GCR0 @ 0XFD080E00

      + * PLL Reset + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLRST 0x0 - Calibration Bypass - PSU_DDR_PHY_DX7GCR0_CALBYP 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SL0PLLCR0_PLLPD 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX7GCR0_MDLEN 0x1 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL0PLLCR0_RSTOPM 0x0 - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX7GCR0_CODTSHFT 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL0PLLCR0_FRQSEL 0x1 - DQS Duty Cycle Correction - PSU_DDR_PHY_DX7GCR0_DQSDCC 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL0PLLCR0_RLOCKM 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX7GCR0_RDDLY 0x8 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL0PLLCR0_CPPC 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_19_14 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL0PLLCR0_CPIC 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSNSEPDR 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL0PLLCR0_GSHIFT 0x0 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSSEPDR 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX7GCR0_RTTOAL 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL0PLLCR0_ATOEN 0x0 - RTT Output Hold - PSU_DDR_PHY_DX7GCR0_RTTOH 0x3 + * Analog Test Control + * PSU_DDR_PHY_DX8SL0PLLCR0_ATC 0x0 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX7GCR0_CPDRSHFT 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL0PLLCR0_DTC 0x0 - DQSR Power Down - PSU_DDR_PHY_DX7GCR0_DQSRPD 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081404, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - DQSG Power Down Receiver - PSU_DDR_PHY_DX7GCR0_DQSGPDR 0x0 + /* + * Register : DX8SL0DQSCTL @ 0XFD08141C - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX7GCR0_DQSGODT 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_RRRMODE 0x1 - DQSG Output Enable - PSU_DDR_PHY_DX7GCR0_DQSGOE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GCR0_RESERVED_1_0 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_WRRMODE 0x1 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080E00, 0xFFFFFFFFU ,0x40800604U) - RegMask = (DDR_PHY_DX7GCR0_CALBYP_MASK | DDR_PHY_DX7GCR0_MDLEN_MASK | DDR_PHY_DX7GCR0_CODTSHFT_MASK | DDR_PHY_DX7GCR0_DQSDCC_MASK | DDR_PHY_DX7GCR0_RDDLY_MASK | DDR_PHY_DX7GCR0_RESERVED_19_14_MASK | DDR_PHY_DX7GCR0_DQSNSEPDR_MASK | DDR_PHY_DX7GCR0_DQSSEPDR_MASK | DDR_PHY_DX7GCR0_RTTOAL_MASK | DDR_PHY_DX7GCR0_RTTOH_MASK | DDR_PHY_DX7GCR0_CPDRSHFT_MASK | DDR_PHY_DX7GCR0_DQSRPD_MASK | DDR_PHY_DX7GCR0_DQSGPDR_MASK | DDR_PHY_DX7GCR0_RESERVED_4_MASK | DDR_PHY_DX7GCR0_DQSGODT_MASK | DDR_PHY_DX7GCR0_DQSGOE_MASK | DDR_PHY_DX7GCR0_RESERVED_1_0_MASK | 0 ); + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSGX 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX7GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX7GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSRPD_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR0_OFFSET ,0xFFFFFFFFU ,0x40800604U); - /*############################################################################################################################ */ + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL0DQSCTL_LPPLLPD 0x1 - /*Register : DX7GCR1 @ 0XFD080E04

      + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL0DQSCTL_LPIOPD 0x1 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX7GCR1_DXPDRMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX7GCR1_RESERVED_15 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL0DQSCTL_QSCNTEN 0x1 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX7GCR1_QSNSEL 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL0DQSCTL_UDQIOM 0x0 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX7GCR1_QSSEL 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX7GCR1_OEEN 0x1 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL0DQSCTL_DXSR 0x3 - Enables PDR in a byte lane - PSU_DDR_PHY_DX7GCR1_PDREN 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSNRES 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX7GCR1_TEEN 0x1 + * DQS Resistor + * PSU_DDR_PHY_DX8SL0DQSCTL_DQSRES 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX7GCR1_DSEN 0x1 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08141C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Enables DM pin in a byte lane - PSU_DDR_PHY_DX7GCR1_DMEN 0x1 + /* + * Register : DX8SL0DXCTL2 @ 0XFD08142C - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX7GCR1_DQEN 0xff + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080E04, 0xFFFFFFFFU ,0x00007FFFU) - RegMask = (DDR_PHY_DX7GCR1_DXPDRMODE_MASK | DDR_PHY_DX7GCR1_RESERVED_15_MASK | DDR_PHY_DX7GCR1_QSNSEL_MASK | DDR_PHY_DX7GCR1_QSSEL_MASK | DDR_PHY_DX7GCR1_OEEN_MASK | DDR_PHY_DX7GCR1_PDREN_MASK | DDR_PHY_DX7GCR1_TEEN_MASK | DDR_PHY_DX7GCR1_DSEN_MASK | DDR_PHY_DX7GCR1_DMEN_MASK | DDR_PHY_DX7GCR1_DQEN_MASK | 0 ); + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_CRDEN 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR1_DMEN_SHIFT - | 0x000000FFU << DDR_PHY_DX7GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR1_OFFSET ,0xFFFFFFFFU ,0x00007FFFU); - /*############################################################################################################################ */ + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL0DXCTL2_POSOEX 0x0 - /*Register : DX7GCR4 @ 0XFD080E10

      + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL0DXCTL2_PREOEX 0x1 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX7GCR4_RESERVED_31_29 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_17 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX7GCR4_DXREFPEN 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL0DXCTL2_IOAG 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX7GCR4_DXREFEEN 0x3 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL0DXCTL2_IOLB 0x0 - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX7GCR4_DXREFSEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR4_RESERVED_24 0x0 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH 0xc - External VREF generator REFSEL range select - PSU_DDR_PHY_DX7GCR4_DXREFESELRANGE 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_RDBI 0x0 - Byte Lane External VREF Select - PSU_DDR_PHY_DX7GCR4_DXREFESEL 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL0DXCTL2_WDBI 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX7GCR4_DXREFSSELRANGE 0x1 + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL0DXCTL2_PRFBYP 0x0 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX7GCR4_DXREFSSEL 0x30 + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL0DXCTL2_RDMODE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR4_RESERVED_7_6 0x0 + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL0DXCTL2_DISRST 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX7GCR4_DXREFIEN 0xf + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL0DXCTL2_DQSGLB 0x0 - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX7GCR4_DXREFIMON 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_0 0x0 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080E10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX7GCR4_RESERVED_31_29_MASK | DDR_PHY_DX7GCR4_DXREFPEN_MASK | DDR_PHY_DX7GCR4_DXREFEEN_MASK | DDR_PHY_DX7GCR4_DXREFSEN_MASK | DDR_PHY_DX7GCR4_RESERVED_24_MASK | DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX7GCR4_DXREFESEL_MASK | DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX7GCR4_DXREFSSEL_MASK | DDR_PHY_DX7GCR4_RESERVED_7_6_MASK | DDR_PHY_DX7GCR4_DXREFIEN_MASK | DDR_PHY_DX7GCR4_DXREFIMON_MASK | 0 ); + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08142C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX7GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX7GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + /* + * Register : DX8SL0IOCR @ 0XFD081430 - /*Register : DX7GCR5 @ 0XFD080E14

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL0IOCR_RESERVED_31 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_31 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL0IOCR_DXDACRANGE 0x7 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX7GCR5_DXREFISELR3 0x9 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL0IOCR_DXVREFIOM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_23 0x0 + * DX IO Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXIOM 0x2 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX7GCR5_DXREFISELR2 0x9 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXTXM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_15 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL0IOCR_DXRXM 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX7GCR5_DXREFISELR1 0x4f + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081430, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL0IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR5_RESERVED_7 0x0 + /* + * Register : DX8SL1OSC @ 0XFD081440 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX7GCR5_DXREFISELR0 0x4f + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_31_30 0x0 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080E14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX7GCR5_RESERVED_31_MASK | DDR_PHY_DX7GCR5_DXREFISELR3_MASK | DDR_PHY_DX7GCR5_RESERVED_23_MASK | DDR_PHY_DX7GCR5_DXREFISELR2_MASK | DDR_PHY_DX7GCR5_RESERVED_15_MASK | DDR_PHY_DX7GCR5_DXREFISELR1_MASK | DDR_PHY_DX7GCR5_RESERVED_7_MASK | DDR_PHY_DX7GCR5_DXREFISELR0_MASK | 0 ); + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXRDCLK 0x2 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXDDRCLK 0x2 - /*Register : DX7GCR6 @ 0XFD080E18

      + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL1OSC_GATEDXCTLCLK 0x2 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_31_30 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL1OSC_CLKLEVEL 0x0 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR3 0x9 + * Loopback Mode + * PSU_DDR_PHY_DX8SL1OSC_LBMODE 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_23_22 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL1OSC_LBGSDQS 0x0 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR2 0x9 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL1OSC_LBGDQS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_15_14 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL1OSC_LBDQSS 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR1 0x2b + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL1OSC_PHYHRST 0x1 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX7GCR6_RESERVED_7_6 0x0 + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL1OSC_PHYFRST 0x1 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX7GCR6_DXDQVREFR0 0x2b + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL1OSC_DLTST 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080E18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX7GCR6_RESERVED_31_30_MASK | DDR_PHY_DX7GCR6_DXDQVREFR3_MASK | DDR_PHY_DX7GCR6_RESERVED_23_22_MASK | DDR_PHY_DX7GCR6_DXDQVREFR2_MASK | DDR_PHY_DX7GCR6_RESERVED_15_14_MASK | DDR_PHY_DX7GCR6_DXDQVREFR1_MASK | DDR_PHY_DX7GCR6_RESERVED_7_6_MASK | DDR_PHY_DX7GCR6_DXDQVREFR0_MASK | 0 ); + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL1OSC_DLTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_12_11 0x3 - /*Register : DX7LCDLR2 @ 0XFD080E88

      + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL1OSC_OSCWDDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_31_25 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL1OSC_RESERVED_8_7 0x3 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_24_16 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL1OSC_OSCWDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7LCDLR2_RESERVED_15_9 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL1OSC_OSCDIV 0xf - Read DQS Gating Delay - PSU_DDR_PHY_DX7LCDLR2_DQSGD 0xa + * Oscillator Enable + * PSU_DDR_PHY_DX8SL1OSC_OSCEN 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080E88, 0xFFFFFFFFU ,0x0000000AU) - RegMask = (DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX7LCDLR2_DQSGD_MASK | 0 ); + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081440, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT - | 0x0000000AU << DDR_PHY_DX7LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7LCDLR2_OFFSET ,0xFFFFFFFFU ,0x0000000AU); - /*############################################################################################################################ */ + /* + * Register : DX8SL1PLLCR0 @ 0XFD081444 - /*Register : DX7GTR0 @ 0XFD080EC0

      + * PLL Bypass + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_31_24 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLRST 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX7GTR0_WDQSL 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SL1PLLCR0_PLLPD 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7GTR0_RESERVED_23_20 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL1PLLCR0_RSTOPM 0x0 - Write Leveling System Latency - PSU_DDR_PHY_DX7GTR0_WLSL 0x2 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL1PLLCR0_FRQSEL 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_15_13 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL1PLLCR0_RLOCKM 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX7GTR0_RESERVED_12_8 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL1PLLCR0_CPPC 0x8 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX7GTR0_RESERVED_7_5 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL1PLLCR0_CPIC 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX7GTR0_DGSL 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL1PLLCR0_GSHIFT 0x0 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080EC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX7GTR0_RESERVED_31_24_MASK | DDR_PHY_DX7GTR0_WDQSL_MASK | DDR_PHY_DX7GTR0_RESERVED_23_20_MASK | DDR_PHY_DX7GTR0_WLSL_MASK | DDR_PHY_DX7GTR0_RESERVED_15_13_MASK | DDR_PHY_DX7GTR0_RESERVED_12_8_MASK | DDR_PHY_DX7GTR0_RESERVED_7_5_MASK | DDR_PHY_DX7GTR0_DGSL_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX7GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX7GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX7GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL1PLLCR0_ATOEN 0x0 - /*Register : DX8GCR0 @ 0XFD080F00

      + * Analog Test Control + * PSU_DDR_PHY_DX8SL1PLLCR0_ATC 0x0 - Calibration Bypass - PSU_DDR_PHY_DX8GCR0_CALBYP 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL1PLLCR0_DTC 0x0 - Master Delay Line Enable - PSU_DDR_PHY_DX8GCR0_MDLEN 0x1 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081444, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Configurable ODT(TE) Phase Shift - PSU_DDR_PHY_DX8GCR0_CODTSHFT 0x0 + /* + * Register : DX8SL1DQSCTL @ 0XFD08145C - DQS Duty Cycle Correction - PSU_DDR_PHY_DX8GCR0_DQSDCC 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25 0x0 - Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY - PSU_DDR_PHY_DX8GCR0_RDDLY 0x8 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_RRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_19_14 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22 0x0 - DQSNSE Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSNSEPDR 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_WRRMODE 0x1 - DQSSE Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSSEPDR 0x0 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSGX 0x0 - RTT On Additive Latency - PSU_DDR_PHY_DX8GCR0_RTTOAL 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL1DQSCTL_LPPLLPD 0x1 - RTT Output Hold - PSU_DDR_PHY_DX8GCR0_RTTOH 0x3 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL1DQSCTL_LPIOPD 0x1 - Configurable PDR Phase Shift - PSU_DDR_PHY_DX8GCR0_CPDRSHFT 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15 0x0 - DQSR Power Down - PSU_DDR_PHY_DX8GCR0_DQSRPD 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL1DQSCTL_QSCNTEN 0x1 - DQSG Power Down Receiver - PSU_DDR_PHY_DX8GCR0_DQSGPDR 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL1DQSCTL_UDQIOM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_4 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10 0x0 - DQSG On-Die Termination - PSU_DDR_PHY_DX8GCR0_DQSGODT 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL1DQSCTL_DXSR 0x3 - DQSG Output Enable - PSU_DDR_PHY_DX8GCR0_DQSGOE 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSNRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GCR0_RESERVED_1_0 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL1DQSCTL_DQSRES 0x0 - DATX8 n General Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD080F00, 0xFFFFFFFFU ,0x40800624U) - RegMask = (DDR_PHY_DX8GCR0_CALBYP_MASK | DDR_PHY_DX8GCR0_MDLEN_MASK | DDR_PHY_DX8GCR0_CODTSHFT_MASK | DDR_PHY_DX8GCR0_DQSDCC_MASK | DDR_PHY_DX8GCR0_RDDLY_MASK | DDR_PHY_DX8GCR0_RESERVED_19_14_MASK | DDR_PHY_DX8GCR0_DQSNSEPDR_MASK | DDR_PHY_DX8GCR0_DQSSEPDR_MASK | DDR_PHY_DX8GCR0_RTTOAL_MASK | DDR_PHY_DX8GCR0_RTTOH_MASK | DDR_PHY_DX8GCR0_CPDRSHFT_MASK | DDR_PHY_DX8GCR0_DQSRPD_MASK | DDR_PHY_DX8GCR0_DQSGPDR_MASK | DDR_PHY_DX8GCR0_RESERVED_4_MASK | DDR_PHY_DX8GCR0_DQSGODT_MASK | DDR_PHY_DX8GCR0_DQSGOE_MASK | DDR_PHY_DX8GCR0_RESERVED_1_0_MASK | 0 ); + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08145C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8GCR0_CALBYP_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_MDLEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_CODTSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSDCC_SHIFT - | 0x00000008U << DDR_PHY_DX8GCR0_RDDLY_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RTTOAL_SHIFT - | 0x00000003U << DDR_PHY_DX8GCR0_RTTOH_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSRPD_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_DQSGPDR_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_4_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_DQSGODT_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR0_DQSGOE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR0_OFFSET ,0xFFFFFFFFU ,0x40800624U); - /*############################################################################################################################ */ + /* + * Register : DX8SL1DXCTL2 @ 0XFD08146C - /*Register : DX8GCR1 @ 0XFD080F04

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24 0x0 - Enables the PDR mode for DQ[7:0] - PSU_DDR_PHY_DX8GCR1_DXPDRMODE 0x0 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_CRDEN 0x0 - Reserved. Returns zeroes on reads. - PSU_DDR_PHY_DX8GCR1_RESERVED_15 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL1DXCTL2_POSOEX 0x0 - Select the delayed or non-delayed read data strobe # - PSU_DDR_PHY_DX8GCR1_QSNSEL 0x1 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL1DXCTL2_PREOEX 0x1 - Select the delayed or non-delayed read data strobe - PSU_DDR_PHY_DX8GCR1_QSSEL 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_17 0x0 - Enables Read Data Strobe in a byte lane - PSU_DDR_PHY_DX8GCR1_OEEN 0x1 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL1DXCTL2_IOAG 0x0 - Enables PDR in a byte lane - PSU_DDR_PHY_DX8GCR1_PDREN 0x1 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL1DXCTL2_IOLB 0x0 - Enables ODT/TE in a byte lane - PSU_DDR_PHY_DX8GCR1_TEEN 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13 0x0 - Enables Write Data strobe in a byte lane - PSU_DDR_PHY_DX8GCR1_DSEN 0x1 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH 0xc - Enables DM pin in a byte lane - PSU_DDR_PHY_DX8GCR1_DMEN 0x1 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_RDBI 0x0 - Enables DQ corresponding to each bit in a byte - PSU_DDR_PHY_DX8GCR1_DQEN 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL1DXCTL2_WDBI 0x0 - DATX8 n General Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD080F04, 0xFFFFFFFFU ,0x00007F00U) - RegMask = (DDR_PHY_DX8GCR1_DXPDRMODE_MASK | DDR_PHY_DX8GCR1_RESERVED_15_MASK | DDR_PHY_DX8GCR1_QSNSEL_MASK | DDR_PHY_DX8GCR1_QSSEL_MASK | DDR_PHY_DX8GCR1_OEEN_MASK | DDR_PHY_DX8GCR1_PDREN_MASK | DDR_PHY_DX8GCR1_TEEN_MASK | DDR_PHY_DX8GCR1_DSEN_MASK | DDR_PHY_DX8GCR1_DMEN_MASK | DDR_PHY_DX8GCR1_DQEN_MASK | 0 ); + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL1DXCTL2_PRFBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR1_RESERVED_15_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_QSNSEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_QSSEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_OEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_PDREN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_TEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_DSEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR1_DMEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR1_DQEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR1_OFFSET ,0xFFFFFFFFU ,0x00007F00U); - /*############################################################################################################################ */ + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL1DXCTL2_RDMODE 0x0 - /*Register : DX8GCR4 @ 0XFD080F10

      + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL1DXCTL2_DISRST 0x0 - Byte lane VREF IOM (Used only by D4MU IOs) - PSU_DDR_PHY_DX8GCR4_RESERVED_31_29 0x0 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL1DXCTL2_DQSGLB 0x0 - Byte Lane VREF Pad Enable - PSU_DDR_PHY_DX8GCR4_DXREFPEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_0 0x0 - Byte Lane Internal VREF Enable - PSU_DDR_PHY_DX8GCR4_DXREFEEN 0x3 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08146C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - Byte Lane Single-End VREF Enable - PSU_DDR_PHY_DX8GCR4_DXREFSEN 0x1 + /* + * Register : DX8SL1IOCR @ 0XFD081470 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR4_RESERVED_24 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL1IOCR_RESERVED_31 0x0 - External VREF generator REFSEL range select - PSU_DDR_PHY_DX8GCR4_DXREFESELRANGE 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL1IOCR_DXDACRANGE 0x7 - Byte Lane External VREF Select - PSU_DDR_PHY_DX8GCR4_DXREFESEL 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL1IOCR_DXVREFIOM 0x0 - Single ended VREF generator REFSEL range select - PSU_DDR_PHY_DX8GCR4_DXREFSSELRANGE 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXIOM 0x2 - Byte Lane Single-End VREF Select - PSU_DDR_PHY_DX8GCR4_DXREFSSEL 0x30 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXTXM 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR4_RESERVED_7_6 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL1IOCR_DXRXM 0x0 - VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX8GCR4_DXREFIEN 0xf + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081470, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL1IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - VRMON control for DQ IO (Single Ended) buffers of a byte lane. - PSU_DDR_PHY_DX8GCR4_DXREFIMON 0x0 + /* + * Register : DX8SL2OSC @ 0XFD081480 - DATX8 n General Configuration Register 4 - (OFFSET, MASK, VALUE) (0XFD080F10, 0xFFFFFFFFU ,0x0E00B03CU) - RegMask = (DDR_PHY_DX8GCR4_RESERVED_31_29_MASK | DDR_PHY_DX8GCR4_DXREFPEN_MASK | DDR_PHY_DX8GCR4_DXREFEEN_MASK | DDR_PHY_DX8GCR4_DXREFSEN_MASK | DDR_PHY_DX8GCR4_RESERVED_24_MASK | DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK | DDR_PHY_DX8GCR4_DXREFESEL_MASK | DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK | DDR_PHY_DX8GCR4_DXREFSSEL_MASK | DDR_PHY_DX8GCR4_RESERVED_7_6_MASK | DDR_PHY_DX8GCR4_DXREFIEN_MASK | DDR_PHY_DX8GCR4_DXREFIMON_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_31_30 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFPEN_SHIFT - | 0x00000003U << DDR_PHY_DX8GCR4_DXREFEEN_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR4_DXREFSEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_RESERVED_24_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFESEL_SHIFT - | 0x00000001U << DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT - | 0x00000030U << DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT - | 0x0000000FU << DDR_PHY_DX8GCR4_DXREFIEN_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR4_DXREFIMON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR4_OFFSET ,0xFFFFFFFFU ,0x0E00B03CU); - /*############################################################################################################################ */ + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXRDCLK 0x2 - /*Register : DX8GCR5 @ 0XFD080F14

      + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXDDRCLK 0x2 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_31 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL2OSC_GATEDXCTLCLK 0x2 - Byte Lane internal VREF Select for Rank 3 - PSU_DDR_PHY_DX8GCR5_DXREFISELR3 0x9 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL2OSC_CLKLEVEL 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_23 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL2OSC_LBMODE 0x0 - Byte Lane internal VREF Select for Rank 2 - PSU_DDR_PHY_DX8GCR5_DXREFISELR2 0x9 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL2OSC_LBGSDQS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_15 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL2OSC_LBGDQS 0x0 - Byte Lane internal VREF Select for Rank 1 - PSU_DDR_PHY_DX8GCR5_DXREFISELR1 0x4f + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL2OSC_LBDQSS 0x0 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR5_RESERVED_7 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL2OSC_PHYHRST 0x1 - Byte Lane internal VREF Select for Rank 0 - PSU_DDR_PHY_DX8GCR5_DXREFISELR0 0x4f + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL2OSC_PHYFRST 0x1 - DATX8 n General Configuration Register 5 - (OFFSET, MASK, VALUE) (0XFD080F14, 0xFFFFFFFFU ,0x09094F4FU) - RegMask = (DDR_PHY_DX8GCR5_RESERVED_31_MASK | DDR_PHY_DX8GCR5_DXREFISELR3_MASK | DDR_PHY_DX8GCR5_RESERVED_23_MASK | DDR_PHY_DX8GCR5_DXREFISELR2_MASK | DDR_PHY_DX8GCR5_RESERVED_15_MASK | DDR_PHY_DX8GCR5_DXREFISELR1_MASK | DDR_PHY_DX8GCR5_RESERVED_7_MASK | DDR_PHY_DX8GCR5_DXREFISELR0_MASK | 0 ); + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL2OSC_DLTST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR5_RESERVED_31_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_23_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_15_SHIFT - | 0x0000004FU << DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR5_RESERVED_7_SHIFT - | 0x0000004FU << DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR5_OFFSET ,0xFFFFFFFFU ,0x09094F4FU); - /*############################################################################################################################ */ + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL2OSC_DLTMODE 0x0 - /*Register : DX8GCR6 @ 0XFD080F18

      + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_12_11 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_31_30 0x0 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL2OSC_OSCWDDL 0x3 - DRAM DQ VREF Select for Rank3 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR3 0x9 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL2OSC_RESERVED_8_7 0x3 - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_23_22 0x0 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL2OSC_OSCWDL 0x3 - DRAM DQ VREF Select for Rank2 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR2 0x9 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL2OSC_OSCDIV 0xf - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_15_14 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL2OSC_OSCEN 0x0 - DRAM DQ VREF Select for Rank1 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR1 0x2b + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081480, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - Reserved. Returns zeros on reads. - PSU_DDR_PHY_DX8GCR6_RESERVED_7_6 0x0 + /* + * Register : DX8SL2PLLCR0 @ 0XFD081484 - DRAM DQ VREF Select for Rank0 - PSU_DDR_PHY_DX8GCR6_DXDQVREFR0 0x2b + * PLL Bypass + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLBYP 0x0 - DATX8 n General Configuration Register 6 - (OFFSET, MASK, VALUE) (0XFD080F18, 0xFFFFFFFFU ,0x09092B2BU) - RegMask = (DDR_PHY_DX8GCR6_RESERVED_31_30_MASK | DDR_PHY_DX8GCR6_DXDQVREFR3_MASK | DDR_PHY_DX8GCR6_RESERVED_23_22_MASK | DDR_PHY_DX8GCR6_DXDQVREFR2_MASK | DDR_PHY_DX8GCR6_RESERVED_15_14_MASK | DDR_PHY_DX8GCR6_DXDQVREFR1_MASK | DDR_PHY_DX8GCR6_RESERVED_7_6_MASK | DDR_PHY_DX8GCR6_DXDQVREFR0_MASK | 0 ); + * PLL Reset + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT - | 0x00000009U << DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT - | 0x0000002BU << DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT - | 0x00000000U << DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT - | 0x0000002BU << DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GCR6_OFFSET ,0xFFFFFFFFU ,0x09092B2BU); - /*############################################################################################################################ */ + * PLL Power Down + * PSU_DDR_PHY_DX8SL2PLLCR0_PLLPD 0x0 - /*Register : DX8LCDLR2 @ 0XFD080F88

      + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL2PLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_31_25 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL2PLLCR0_FRQSEL 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_24_16 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL2PLLCR0_RLOCKM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8LCDLR2_RESERVED_15_9 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL2PLLCR0_CPPC 0x8 - Read DQS Gating Delay - PSU_DDR_PHY_DX8LCDLR2_DQSGD 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL2PLLCR0_CPIC 0x0 - DATX8 n Local Calibrated Delay Line Register 2 - (OFFSET, MASK, VALUE) (0XFD080F88, 0xFFFFFFFFU ,0x00000000U) - RegMask = (DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK | DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK | DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK | DDR_PHY_DX8LCDLR2_DQSGD_MASK | 0 ); + * Gear Shift + * PSU_DDR_PHY_DX8SL2PLLCR0_GSHIFT 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT - | 0x00000000U << DDR_PHY_DX8LCDLR2_DQSGD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8LCDLR2_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9 0x0 - /*Register : DX8GTR0 @ 0XFD080FC0

      + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL2PLLCR0_ATOEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_31_24 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SL2PLLCR0_ATC 0x0 - DQ Write Path Latency Pipeline - PSU_DDR_PHY_DX8GTR0_WDQSL 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL2PLLCR0_DTC 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8GTR0_RESERVED_23_20 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081484, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Write Leveling System Latency - PSU_DDR_PHY_DX8GTR0_WLSL 0x2 + /* + * Register : DX8SL2DQSCTL @ 0XFD08149C - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_15_13 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8GTR0_RESERVED_12_8 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_RRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8GTR0_RESERVED_7_5 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22 0x0 - DQS Gating System Latency - PSU_DDR_PHY_DX8GTR0_DGSL 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_WRRMODE 0x1 - DATX8 n General Timing Register 0 - (OFFSET, MASK, VALUE) (0XFD080FC0, 0xFFFFFFFFU ,0x00020000U) - RegMask = (DDR_PHY_DX8GTR0_RESERVED_31_24_MASK | DDR_PHY_DX8GTR0_WDQSL_MASK | DDR_PHY_DX8GTR0_RESERVED_23_20_MASK | DDR_PHY_DX8GTR0_WLSL_MASK | DDR_PHY_DX8GTR0_RESERVED_15_13_MASK | DDR_PHY_DX8GTR0_RESERVED_12_8_MASK | DDR_PHY_DX8GTR0_RESERVED_7_5_MASK | DDR_PHY_DX8GTR0_DGSL_MASK | 0 ); + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSGX 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_WDQSL_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT - | 0x00000002U << DDR_PHY_DX8GTR0_WLSL_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT - | 0x00000000U << DDR_PHY_DX8GTR0_DGSL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8GTR0_OFFSET ,0xFFFFFFFFU ,0x00020000U); - /*############################################################################################################################ */ + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL2DQSCTL_LPPLLPD 0x1 - /*Register : DX8SL0OSC @ 0XFD081400

      + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL2DQSCTL_LPIOPD 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXRDCLK 0x2 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL2DQSCTL_QSCNTEN 0x1 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXDDRCLK 0x2 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL2DQSCTL_UDQIOM 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL0OSC_GATEDXCTLCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL0OSC_CLKLEVEL 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL2DQSCTL_DXSR 0x3 - Loopback Mode - PSU_DDR_PHY_DX8SL0OSC_LBMODE 0x0 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSNRES 0x0 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL0OSC_LBGSDQS 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL2DQSCTL_DQSRES 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL0OSC_LBGDQS 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08149C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Loopback DQS Shift - PSU_DDR_PHY_DX8SL0OSC_LBDQSS 0x0 + /* + * Register : DX8SL2DXCTL2 @ 0XFD0814AC - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL0OSC_PHYHRST 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL0OSC_PHYFRST 0x1 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_CRDEN 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL0OSC_DLTST 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL2DXCTL2_POSOEX 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL0OSC_DLTMODE 0x0 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL2DXCTL2_PREOEX 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_12_11 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_17 0x0 - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL0OSC_OSCWDDL 0x3 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL2DXCTL2_IOAG 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL0OSC_RESERVED_8_7 0x3 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL2DXCTL2_IOLB 0x0 - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL0OSC_OSCWDL 0x3 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13 0x0 - Oscillator Mode Division - PSU_DDR_PHY_DX8SL0OSC_OSCDIV 0xf + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH 0xc - Oscillator Enable - PSU_DDR_PHY_DX8SL0OSC_OSCEN 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_RDBI 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081400, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL0OSC_LBMODE_MASK | DDR_PHY_DX8SL0OSC_LBGSDQS_MASK | DDR_PHY_DX8SL0OSC_LBGDQS_MASK | DDR_PHY_DX8SL0OSC_LBDQSS_MASK | DDR_PHY_DX8SL0OSC_PHYHRST_MASK | DDR_PHY_DX8SL0OSC_PHYFRST_MASK | DDR_PHY_DX8SL0OSC_DLTST_MASK | DDR_PHY_DX8SL0OSC_DLTMODE_MASK | DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL0OSC_OSCWDDL_MASK | DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL0OSC_OSCWDL_MASK | DDR_PHY_DX8SL0OSC_OSCDIV_MASK | DDR_PHY_DX8SL0OSC_OSCEN_MASK | 0 ); + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL2DXCTL2_WDBI 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL2DXCTL2_PRFBYP 0x0 - /*Register : DX8SL0DQSCTL @ 0XFD08141C

      + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL2DXCTL2_RDMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25 0x0 + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL2DXCTL2_DISRST 0x0 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL0DQSCTL_RRRMODE 0x1 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL2DXCTL2_DQSGLB 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_0 0x0 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL0DQSCTL_WRRMODE 0x1 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD0814AC, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - DQS Gate Extension - PSU_DDR_PHY_DX8SL0DQSCTL_DQSGX 0x0 + /* + * Register : DX8SL2IOCR @ 0XFD0814B0 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL0DQSCTL_LPPLLPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL2IOCR_RESERVED_31 0x0 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL0DQSCTL_LPIOPD 0x1 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL2IOCR_DXDACRANGE 0x7 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL2IOCR_DXVREFIOM 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL0DQSCTL_QSCNTEN 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXIOM 0x2 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL0DQSCTL_UDQIOM 0x0 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL2IOCR_DXRXM 0x0 - Data Slew Rate - PSU_DDR_PHY_DX8SL0DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL0DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL0DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08141C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL0DQSCTL_DXSR_MASK | DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK | 0 ); + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD0814B0, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL2IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL0DXCTL2 @ 0XFD08142C

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL0DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL0DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL0DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL0DXCTL2_IOAG 0x0 + /* + * Register : DX8SL3OSC @ 0XFD0814C0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL0DXCTL2_IOLB 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_31_30 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13 0x0 + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXRDCLK 0x2 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH 0xc + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXDDRCLK 0x2 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL0DXCTL2_RDBI 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL3OSC_GATEDXCTLCLK 0x2 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL0DXCTL2_WDBI 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL3OSC_CLKLEVEL 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL0DXCTL2_PRFBYP 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL3OSC_LBMODE 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL0DXCTL2_RDMODE 0x0 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL3OSC_LBGSDQS 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL0DXCTL2_DISRST 0x0 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL3OSC_LBGDQS 0x0 - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL0DXCTL2_DQSGLB 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL3OSC_LBDQSS 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0DXCTL2_RESERVED_0 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL3OSC_PHYHRST 0x1 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08142C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL0DXCTL2_IOAG_MASK | DDR_PHY_DX8SL0DXCTL2_IOLB_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL0DXCTL2_RDBI_MASK | DDR_PHY_DX8SL0DXCTL2_WDBI_MASK | DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL0DXCTL2_DISRST_MASK | DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK | 0 ); + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL3OSC_PHYFRST 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL3OSC_DLTST 0x0 - /*Register : DX8SL0IOCR @ 0XFD081430

      + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL3OSC_DLTMODE 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL0IOCR_RESERVED_31 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_12_11 0x3 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL0IOCR_DXDACRANGE 0x7 + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL3OSC_OSCWDDL 0x3 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL0IOCR_DXVREFIOM 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL3OSC_RESERVED_8_7 0x3 - DX IO Mode - PSU_DDR_PHY_DX8SL0IOCR_DXIOM 0x2 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL3OSC_OSCWDL 0x3 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL0IOCR_DXTXM 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL3OSC_OSCDIV 0xf - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL0IOCR_DXRXM 0x0 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL3OSC_OSCEN 0x0 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081430, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL0IOCR_DXIOM_MASK | DDR_PHY_DX8SL0IOCR_DXTXM_MASK | DDR_PHY_DX8SL0IOCR_DXRXM_MASK | 0 ); + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD0814C0, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL0IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + /* + * Register : DX8SL3PLLCR0 @ 0XFD0814C4 - /*Register : DX8SL1OSC @ 0XFD081440

      + * PLL Bypass + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_31_30 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLRST 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXRDCLK 0x2 + * PLL Power Down + * PSU_DDR_PHY_DX8SL3PLLCR0_PLLPD 0x0 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXDDRCLK 0x2 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL3PLLCR0_RSTOPM 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL1OSC_GATEDXCTLCLK 0x2 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL3PLLCR0_FRQSEL 0x1 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL1OSC_CLKLEVEL 0x0 + * Relock Mode + * PSU_DDR_PHY_DX8SL3PLLCR0_RLOCKM 0x0 - Loopback Mode - PSU_DDR_PHY_DX8SL1OSC_LBMODE 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL3PLLCR0_CPPC 0x8 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL1OSC_LBGSDQS 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL3PLLCR0_CPIC 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL1OSC_LBGDQS 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL3PLLCR0_GSHIFT 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL1OSC_LBDQSS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL1OSC_PHYHRST 0x1 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL3PLLCR0_ATOEN 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL1OSC_PHYFRST 0x1 + * Analog Test Control + * PSU_DDR_PHY_DX8SL3PLLCR0_ATC 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL1OSC_DLTST 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL3PLLCR0_DTC 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL1OSC_DLTMODE 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD0814C4, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL1OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL1OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL1OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL1OSC_OSCDIV 0xf + /* + * Register : DX8SL3DQSCTL @ 0XFD0814DC - Oscillator Enable - PSU_DDR_PHY_DX8SL1OSC_OSCEN 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081440, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL1OSC_LBMODE_MASK | DDR_PHY_DX8SL1OSC_LBGSDQS_MASK | DDR_PHY_DX8SL1OSC_LBGDQS_MASK | DDR_PHY_DX8SL1OSC_LBDQSS_MASK | DDR_PHY_DX8SL1OSC_PHYHRST_MASK | DDR_PHY_DX8SL1OSC_PHYFRST_MASK | DDR_PHY_DX8SL1OSC_DLTST_MASK | DDR_PHY_DX8SL1OSC_DLTMODE_MASK | DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL1OSC_OSCWDDL_MASK | DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL1OSC_OSCWDL_MASK | DDR_PHY_DX8SL1OSC_OSCDIV_MASK | DDR_PHY_DX8SL1OSC_OSCEN_MASK | 0 ); + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_RRRMODE 0x1 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22 0x0 - /*Register : DX8SL1DQSCTL @ 0XFD08145C

      + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_WRRMODE 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25 0x0 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSGX 0x0 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL1DQSCTL_RRRMODE 0x1 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL3DQSCTL_LPPLLPD 0x1 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22 0x0 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL3DQSCTL_LPIOPD 0x1 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL1DQSCTL_WRRMODE 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15 0x0 - DQS Gate Extension - PSU_DDR_PHY_DX8SL1DQSCTL_DQSGX 0x0 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL3DQSCTL_QSCNTEN 0x1 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL1DQSCTL_LPPLLPD 0x1 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL3DQSCTL_UDQIOM 0x0 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL1DQSCTL_LPIOPD 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15 0x0 + * Data Slew Rate + * PSU_DDR_PHY_DX8SL3DQSCTL_DXSR 0x3 - QS Counter Enable - PSU_DDR_PHY_DX8SL1DQSCTL_QSCNTEN 0x1 + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSNRES 0x0 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL1DQSCTL_UDQIOM 0x0 + * DQS Resistor + * PSU_DDR_PHY_DX8SL3DQSCTL_DQSRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD0814DC, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Data Slew Rate - PSU_DDR_PHY_DX8SL1DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL1DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL1DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08145C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL1DQSCTL_DXSR_MASK | DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK | 0 ); + /* + * Register : DX8SL3DXCTL2 @ 0XFD0814EC - RegVal = ((0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL1DXCTL2 @ 0XFD08146C

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL1DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL1DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL1DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL1DXCTL2_IOAG 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24 0x0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL1DXCTL2_IOLB 0x0 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_CRDEN 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL3DXCTL2_POSOEX 0x0 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH 0xc + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL3DXCTL2_PREOEX 0x1 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL1DXCTL2_RDBI 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_17 0x0 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL1DXCTL2_WDBI 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL3DXCTL2_IOAG 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL1DXCTL2_PRFBYP 0x0 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL3DXCTL2_IOLB 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL1DXCTL2_RDMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL1DXCTL2_DISRST 0x0 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH 0xc - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL1DXCTL2_DQSGLB 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_RDBI 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1DXCTL2_RESERVED_0 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL3DXCTL2_WDBI 0x0 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08146C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL1DXCTL2_IOAG_MASK | DDR_PHY_DX8SL1DXCTL2_IOLB_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL1DXCTL2_RDBI_MASK | DDR_PHY_DX8SL1DXCTL2_WDBI_MASK | DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL1DXCTL2_DISRST_MASK | DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK | 0 ); + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL3DXCTL2_PRFBYP 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL3DXCTL2_RDMODE 0x0 - /*Register : DX8SL1IOCR @ 0XFD081470

      + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL3DXCTL2_DISRST 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL1IOCR_RESERVED_31 0x0 + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL3DXCTL2_DQSGLB 0x0 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL1IOCR_DXDACRANGE 0x7 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_0 0x0 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL1IOCR_DXVREFIOM 0x0 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD0814EC, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - DX IO Mode - PSU_DDR_PHY_DX8SL1IOCR_DXIOM 0x2 + /* + * Register : DX8SL3IOCR @ 0XFD0814F0 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL1IOCR_DXTXM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL3IOCR_RESERVED_31 0x0 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL1IOCR_DXRXM 0x0 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL3IOCR_DXDACRANGE 0x7 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081470, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL1IOCR_DXIOM_MASK | DDR_PHY_DX8SL1IOCR_DXTXM_MASK | DDR_PHY_DX8SL1IOCR_DXRXM_MASK | 0 ); + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL3IOCR_DXVREFIOM 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL1IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * DX IO Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXIOM 0x2 - /*Register : DX8SL2OSC @ 0XFD081480

      + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_31_30 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL3IOCR_DXRXM 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXRDCLK 0x2 + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD0814F0, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL3IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXDDRCLK 0x2 + /* + * Register : DX8SL4OSC @ 0XFD081500 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL2OSC_GATEDXCTLCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_31_30 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL2OSC_CLKLEVEL 0x0 + * Enable Clock Gating for DX ddr_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXRDCLK 0x2 - Loopback Mode - PSU_DDR_PHY_DX8SL2OSC_LBMODE 0x0 + * Enable Clock Gating for DX ctl_rd_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXDDRCLK 0x2 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL2OSC_LBGSDQS 0x0 + * Enable Clock Gating for DX ctl_clk + * PSU_DDR_PHY_DX8SL4OSC_GATEDXCTLCLK 0x2 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL2OSC_LBGDQS 0x0 + * Selects the level to which clocks will be stalled when clock gating is e + * nabled. + * PSU_DDR_PHY_DX8SL4OSC_CLKLEVEL 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL2OSC_LBDQSS 0x0 + * Loopback Mode + * PSU_DDR_PHY_DX8SL4OSC_LBMODE 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL2OSC_PHYHRST 0x1 + * Load GSDQS LCDL with 2x the calibrated GSDQSPRD value + * PSU_DDR_PHY_DX8SL4OSC_LBGSDQS 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL2OSC_PHYFRST 0x1 + * Loopback DQS Gating + * PSU_DDR_PHY_DX8SL4OSC_LBGDQS 0x0 - Delay Line Test Start - PSU_DDR_PHY_DX8SL2OSC_DLTST 0x0 + * Loopback DQS Shift + * PSU_DDR_PHY_DX8SL4OSC_LBDQSS 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL2OSC_DLTMODE 0x0 + * PHY High-Speed Reset + * PSU_DDR_PHY_DX8SL4OSC_PHYHRST 0x1 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL2OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL2OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL2OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL2OSC_OSCDIV 0xf + * PHY FIFO Reset + * PSU_DDR_PHY_DX8SL4OSC_PHYFRST 0x1 - Oscillator Enable - PSU_DDR_PHY_DX8SL2OSC_OSCEN 0x0 + * Delay Line Test Start + * PSU_DDR_PHY_DX8SL4OSC_DLTST 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081480, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL2OSC_LBMODE_MASK | DDR_PHY_DX8SL2OSC_LBGSDQS_MASK | DDR_PHY_DX8SL2OSC_LBGDQS_MASK | DDR_PHY_DX8SL2OSC_LBDQSS_MASK | DDR_PHY_DX8SL2OSC_PHYHRST_MASK | DDR_PHY_DX8SL2OSC_PHYFRST_MASK | DDR_PHY_DX8SL2OSC_DLTST_MASK | DDR_PHY_DX8SL2OSC_DLTMODE_MASK | DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL2OSC_OSCWDDL_MASK | DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL2OSC_OSCWDL_MASK | DDR_PHY_DX8SL2OSC_OSCDIV_MASK | DDR_PHY_DX8SL2OSC_OSCEN_MASK | 0 ); + * Delay Line Test Mode + * PSU_DDR_PHY_DX8SL4OSC_DLTMODE 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_12_11 0x3 - /*Register : DX8SL2DQSCTL @ 0XFD08149C

      + * Oscillator Mode Write-Data Delay Line Select + * PSU_DDR_PHY_DX8SL4OSC_OSCWDDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25 0x0 + * Reserved. Caution, do not write to this register field. + * PSU_DDR_PHY_DX8SL4OSC_RESERVED_8_7 0x3 - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL2DQSCTL_RRRMODE 0x1 + * Oscillator Mode Write-Leveling Delay Line Select + * PSU_DDR_PHY_DX8SL4OSC_OSCWDL 0x3 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22 0x0 + * Oscillator Mode Division + * PSU_DDR_PHY_DX8SL4OSC_OSCDIV 0xf - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL2DQSCTL_WRRMODE 0x1 + * Oscillator Enable + * PSU_DDR_PHY_DX8SL4OSC_OSCEN 0x0 - DQS Gate Extension - PSU_DDR_PHY_DX8SL2DQSCTL_DQSGX 0x0 + * DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Lo + * opback, and Gated Clock Control Register + * (OFFSET, MASK, VALUE) (0XFD081500, 0xFFFFFFFFU ,0x2A019FFEU) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4OSC_OFFSET, 0xFFFFFFFFU, 0x2A019FFEU); +/*##################################################################### */ - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL2DQSCTL_LPPLLPD 0x1 + /* + * Register : DX8SL4PLLCR0 @ 0XFD081504 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL2DQSCTL_LPIOPD 0x1 + * PLL Bypass + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLBYP 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15 0x0 + * PLL Reset + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLRST 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL2DQSCTL_QSCNTEN 0x1 + * PLL Power Down + * PSU_DDR_PHY_DX8SL4PLLCR0_PLLPD 0x0 - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL2DQSCTL_UDQIOM 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SL4PLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SL4PLLCR0_FRQSEL 0x1 - Data Slew Rate - PSU_DDR_PHY_DX8SL2DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL2DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL2DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08149C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL2DQSCTL_DXSR_MASK | DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK | 0 ); + * Relock Mode + * PSU_DDR_PHY_DX8SL4PLLCR0_RLOCKM 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL2DXCTL2 @ 0XFD0814AC

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL2DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL2DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL2DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL2DXCTL2_IOAG 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SL4PLLCR0_CPPC 0x8 - I/O Loopback Select - PSU_DDR_PHY_DX8SL2DXCTL2_IOLB 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SL4PLLCR0_CPIC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SL4PLLCR0_GSHIFT 0x0 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH 0xc + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9 0x0 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL2DXCTL2_RDBI 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SL4PLLCR0_ATOEN 0x0 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL2DXCTL2_WDBI 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SL4PLLCR0_ATC 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL2DXCTL2_PRFBYP 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SL4PLLCR0_DTC 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL2DXCTL2_RDMODE 0x0 + * DAXT8 0-1 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD081504, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4PLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL2DXCTL2_DISRST 0x0 + /* + * Register : DX8SL4DQSCTL @ 0XFD08151C - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL2DXCTL2_DQSGLB 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2DXCTL2_RESERVED_0 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_RRRMODE 0x1 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD0814AC, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL2DXCTL2_IOAG_MASK | DDR_PHY_DX8SL2DXCTL2_IOLB_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL2DXCTL2_RDBI_MASK | DDR_PHY_DX8SL2DXCTL2_WDBI_MASK | DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL2DXCTL2_DISRST_MASK | DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_WRRMODE 0x1 - /*Register : DX8SL2IOCR @ 0XFD0814B0

      + * DQS Gate Extension + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSGX 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL2IOCR_RESERVED_31 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SL4DQSCTL_LPPLLPD 0x1 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL2IOCR_DXDACRANGE 0x7 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SL4DQSCTL_LPIOPD 0x1 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL2IOCR_DXVREFIOM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15 0x0 - DX IO Mode - PSU_DDR_PHY_DX8SL2IOCR_DXIOM 0x2 + * QS Counter Enable + * PSU_DDR_PHY_DX8SL4DQSCTL_QSCNTEN 0x1 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL2IOCR_DXTXM 0x0 + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SL4DQSCTL_UDQIOM 0x0 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL2IOCR_DXRXM 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10 0x0 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD0814B0, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL2IOCR_DXIOM_MASK | DDR_PHY_DX8SL2IOCR_DXTXM_MASK | DDR_PHY_DX8SL2IOCR_DXRXM_MASK | 0 ); + * Data Slew Rate + * PSU_DDR_PHY_DX8SL4DQSCTL_DXSR 0x3 - RegVal = ((0x00000000U << DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL2IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * DQS_N Resistor + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSNRES 0x0 - /*Register : DX8SL3OSC @ 0XFD0814C0

      + * DQS Resistor + * PSU_DDR_PHY_DX8SL4DQSCTL_DQSRES 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_31_30 0x0 + * DATX8 0-1 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD08151C, 0xFFFFFFFFU ,0x01264300U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4DQSCTL_OFFSET, + 0xFFFFFFFFU, 0x01264300U); +/*##################################################################### */ - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXRDCLK 0x2 + /* + * Register : DX8SL4DXCTL2 @ 0XFD08152C - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXDDRCLK 0x2 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24 0x0 - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL3OSC_GATEDXCTLCLK 0x2 + * Configurable Read Data Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_CRDEN 0x0 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL3OSC_CLKLEVEL 0x0 + * OX Extension during Post-amble + * PSU_DDR_PHY_DX8SL4DXCTL2_POSOEX 0x0 - Loopback Mode - PSU_DDR_PHY_DX8SL3OSC_LBMODE 0x0 + * OE Extension during Pre-amble + * PSU_DDR_PHY_DX8SL4DXCTL2_PREOEX 0x1 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL3OSC_LBGSDQS 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_17 0x0 - Loopback DQS Gating - PSU_DDR_PHY_DX8SL3OSC_LBGDQS 0x0 + * I/O Assisted Gate Select + * PSU_DDR_PHY_DX8SL4DXCTL2_IOAG 0x0 - Loopback DQS Shift - PSU_DDR_PHY_DX8SL3OSC_LBDQSS 0x0 + * I/O Loopback Select + * PSU_DDR_PHY_DX8SL4DXCTL2_IOLB 0x0 - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL3OSC_PHYHRST 0x1 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13 0x0 - PHY FIFO Reset - PSU_DDR_PHY_DX8SL3OSC_PHYFRST 0x1 + * Low Power Wakeup Threshold + * PSU_DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH 0xc - Delay Line Test Start - PSU_DDR_PHY_DX8SL3OSC_DLTST 0x0 + * Read Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_RDBI 0x0 - Delay Line Test Mode - PSU_DDR_PHY_DX8SL3OSC_DLTMODE 0x0 + * Write Data Bus Inversion Enable + * PSU_DDR_PHY_DX8SL4DXCTL2_WDBI 0x0 - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL3OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL3OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL3OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL3OSC_OSCDIV 0xf + * PUB Read FIFO Bypass + * PSU_DDR_PHY_DX8SL4DXCTL2_PRFBYP 0x0 - Oscillator Enable - PSU_DDR_PHY_DX8SL3OSC_OSCEN 0x0 + * DATX8 Receive FIFO Read Mode + * PSU_DDR_PHY_DX8SL4DXCTL2_RDMODE 0x0 - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD0814C0, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL3OSC_LBMODE_MASK | DDR_PHY_DX8SL3OSC_LBGSDQS_MASK | DDR_PHY_DX8SL3OSC_LBGDQS_MASK | DDR_PHY_DX8SL3OSC_LBDQSS_MASK | DDR_PHY_DX8SL3OSC_PHYHRST_MASK | DDR_PHY_DX8SL3OSC_PHYFRST_MASK | DDR_PHY_DX8SL3OSC_DLTST_MASK | DDR_PHY_DX8SL3OSC_DLTMODE_MASK | DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL3OSC_OSCWDDL_MASK | DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL3OSC_OSCWDL_MASK | DDR_PHY_DX8SL3OSC_OSCDIV_MASK | DDR_PHY_DX8SL3OSC_OSCEN_MASK | 0 ); + * Disables the Read FIFO Reset + * PSU_DDR_PHY_DX8SL4DXCTL2_DISRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ + * Read DQS Gate I/O Loopback + * PSU_DDR_PHY_DX8SL4DXCTL2_DQSGLB 0x0 - /*Register : DX8SL3DQSCTL @ 0XFD0814DC

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_0 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25 0x0 + * DATX8 0-1 DX Control Register 2 + * (OFFSET, MASK, VALUE) (0XFD08152C, 0xFFFFFFFFU ,0x00041800U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4DXCTL2_OFFSET, + 0xFFFFFFFFU, 0x00041800U); +/*##################################################################### */ - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL3DQSCTL_RRRMODE 0x1 + /* + * Register : DX8SL4IOCR @ 0XFD081530 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SL4IOCR_RESERVED_31 0x0 - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL3DQSCTL_WRRMODE 0x1 + * PVREF_DAC REFSEL range select + * PSU_DDR_PHY_DX8SL4IOCR_DXDACRANGE 0x7 - DQS Gate Extension - PSU_DDR_PHY_DX8SL3DQSCTL_DQSGX 0x0 + * IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring + * PSU_DDR_PHY_DX8SL4IOCR_DXVREFIOM 0x0 - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL3DQSCTL_LPPLLPD 0x1 + * DX IO Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXIOM 0x2 - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL3DQSCTL_LPIOPD 0x1 + * DX IO Transmitter Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXTXM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15 0x0 + * DX IO Receiver Mode + * PSU_DDR_PHY_DX8SL4IOCR_DXRXM 0x0 - QS Counter Enable - PSU_DDR_PHY_DX8SL3DQSCTL_QSCNTEN 0x1 + * DATX8 0-1 I/O Configuration Register + * (OFFSET, MASK, VALUE) (0XFD081530, 0xFFFFFFFFU ,0x70800000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SL4IOCR_OFFSET, 0xFFFFFFFFU, 0x70800000U); +/*##################################################################### */ - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL3DQSCTL_UDQIOM 0x0 + /* + * Register : DX8SLbPLLCR0 @ 0XFD0817C4 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10 0x0 + * PLL Bypass + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLBYP 0x0 - Data Slew Rate - PSU_DDR_PHY_DX8SL3DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL3DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL3DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD0814DC, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL3DQSCTL_DXSR_MASK | DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK | 0 ); + * PLL Reset + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLRST 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL3DXCTL2 @ 0XFD0814EC

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL3DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL3DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL3DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL3DXCTL2_IOAG 0x0 + * PLL Power Down + * PSU_DDR_PHY_DX8SLBPLLCR0_PLLPD 0x0 - I/O Loopback Select - PSU_DDR_PHY_DX8SL3DXCTL2_IOLB 0x0 + * Reference Stop Mode + * PSU_DDR_PHY_DX8SLBPLLCR0_RSTOPM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13 0x0 + * PLL Frequency Select + * PSU_DDR_PHY_DX8SLBPLLCR0_FRQSEL 0x1 - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH 0xc + * Relock Mode + * PSU_DDR_PHY_DX8SLBPLLCR0_RLOCKM 0x0 - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL3DXCTL2_RDBI 0x0 + * Charge Pump Proportional Current Control + * PSU_DDR_PHY_DX8SLBPLLCR0_CPPC 0x8 - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL3DXCTL2_WDBI 0x0 + * Charge Pump Integrating Current Control + * PSU_DDR_PHY_DX8SLBPLLCR0_CPIC 0x0 - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL3DXCTL2_PRFBYP 0x0 + * Gear Shift + * PSU_DDR_PHY_DX8SLBPLLCR0_GSHIFT 0x0 - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL3DXCTL2_RDMODE 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9 0x0 - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL3DXCTL2_DISRST 0x0 + * Analog Test Enable (ATOEN) + * PSU_DDR_PHY_DX8SLBPLLCR0_ATOEN 0x0 - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL3DXCTL2_DQSGLB 0x0 + * Analog Test Control + * PSU_DDR_PHY_DX8SLBPLLCR0_ATC 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3DXCTL2_RESERVED_0 0x0 + * Digital Test Control + * PSU_DDR_PHY_DX8SLBPLLCR0_DTC 0x0 - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD0814EC, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL3DXCTL2_IOAG_MASK | DDR_PHY_DX8SL3DXCTL2_IOLB_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL3DXCTL2_RDBI_MASK | DDR_PHY_DX8SL3DXCTL2_WDBI_MASK | DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL3DXCTL2_DISRST_MASK | DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK | 0 ); + * DAXT8 0-8 PLL Control Register 0 + * (OFFSET, MASK, VALUE) (0XFD0817C4, 0xFFFFFFFFU ,0x01100000U) + */ + PSU_Mask_Write(DDR_PHY_DX8SLBPLLCR0_OFFSET, + 0xFFFFFFFFU, 0x01100000U); +/*##################################################################### */ - RegVal = ((0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ + /* + * Register : DX8SLbDQSCTL @ 0XFD0817DC - /*Register : DX8SL3IOCR @ 0XFD0814F0

      + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL3IOCR_RESERVED_31 0x0 + * Read Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_RRRMODE 0x1 - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL3IOCR_DXDACRANGE 0x7 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22 0x0 - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL3IOCR_DXVREFIOM 0x0 + * Write Path Rise-to-Rise Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_WRRMODE 0x1 - DX IO Mode - PSU_DDR_PHY_DX8SL3IOCR_DXIOM 0x2 + * DQS Gate Extension + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSGX 0x0 - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL3IOCR_DXTXM 0x0 + * Low Power PLL Power Down + * PSU_DDR_PHY_DX8SLBDQSCTL_LPPLLPD 0x1 - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL3IOCR_DXRXM 0x0 + * Low Power I/O Power Down + * PSU_DDR_PHY_DX8SLBDQSCTL_LPIOPD 0x1 - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD0814F0, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL3IOCR_DXIOM_MASK | DDR_PHY_DX8SL3IOCR_DXTXM_MASK | DDR_PHY_DX8SL3IOCR_DXRXM_MASK | 0 ); + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15 0x0 - RegVal = ((0x00000000U << DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL3IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ + * QS Counter Enable + * PSU_DDR_PHY_DX8SLBDQSCTL_QSCNTEN 0x1 - /*Register : DX8SL4OSC @ 0XFD081500

      + * Unused DQ I/O Mode + * PSU_DDR_PHY_DX8SLBDQSCTL_UDQIOM 0x0 - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_31_30 0x0 + * Reserved. Return zeroes on reads. + * PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10 0x0 - Enable Clock Gating for DX ddr_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXRDCLK 0x2 + * Data Slew Rate + * PSU_DDR_PHY_DX8SLBDQSCTL_DXSR 0x3 - Enable Clock Gating for DX ctl_rd_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXDDRCLK 0x2 + * DQS# Resistor + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSNRES 0xc - Enable Clock Gating for DX ctl_clk - PSU_DDR_PHY_DX8SL4OSC_GATEDXCTLCLK 0x2 + * DQS Resistor + * PSU_DDR_PHY_DX8SLBDQSCTL_DQSRES 0x4 - Selects the level to which clocks will be stalled when clock gating is enabled. - PSU_DDR_PHY_DX8SL4OSC_CLKLEVEL 0x0 + * DATX8 0-8 DQS Control Register + * (OFFSET, MASK, VALUE) (0XFD0817DC, 0xFFFFFFFFU ,0x012643C4U) + */ + PSU_Mask_Write(DDR_PHY_DX8SLBDQSCTL_OFFSET, + 0xFFFFFFFFU, 0x012643C4U); +/*##################################################################### */ - Loopback Mode - PSU_DDR_PHY_DX8SL4OSC_LBMODE 0x0 - Load GSDQS LCDL with 2x the calibrated GSDQSPRD value - PSU_DDR_PHY_DX8SL4OSC_LBGSDQS 0x0 - - Loopback DQS Gating - PSU_DDR_PHY_DX8SL4OSC_LBGDQS 0x0 - - Loopback DQS Shift - PSU_DDR_PHY_DX8SL4OSC_LBDQSS 0x0 - - PHY High-Speed Reset - PSU_DDR_PHY_DX8SL4OSC_PHYHRST 0x1 - - PHY FIFO Reset - PSU_DDR_PHY_DX8SL4OSC_PHYFRST 0x1 - - Delay Line Test Start - PSU_DDR_PHY_DX8SL4OSC_DLTST 0x0 - - Delay Line Test Mode - PSU_DDR_PHY_DX8SL4OSC_DLTMODE 0x0 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_12_11 0x3 - - Oscillator Mode Write-Data Delay Line Select - PSU_DDR_PHY_DX8SL4OSC_OSCWDDL 0x3 - - Reserved. Caution, do not write to this register field. - PSU_DDR_PHY_DX8SL4OSC_RESERVED_8_7 0x3 - - Oscillator Mode Write-Leveling Delay Line Select - PSU_DDR_PHY_DX8SL4OSC_OSCWDL 0x3 - - Oscillator Mode Division - PSU_DDR_PHY_DX8SL4OSC_OSCDIV 0xf - - Oscillator Enable - PSU_DDR_PHY_DX8SL4OSC_OSCEN 0x0 - - DATX8 0-1 Oscillator, Delay Line Test, PHY FIFO and High Speed Reset, Loopback, and Gated Clock Control Register - (OFFSET, MASK, VALUE) (0XFD081500, 0xFFFFFFFFU ,0x2A019FFEU) - RegMask = (DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK | DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK | DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK | DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK | DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK | DDR_PHY_DX8SL4OSC_LBMODE_MASK | DDR_PHY_DX8SL4OSC_LBGSDQS_MASK | DDR_PHY_DX8SL4OSC_LBGDQS_MASK | DDR_PHY_DX8SL4OSC_LBDQSS_MASK | DDR_PHY_DX8SL4OSC_PHYHRST_MASK | DDR_PHY_DX8SL4OSC_PHYFRST_MASK | DDR_PHY_DX8SL4OSC_DLTST_MASK | DDR_PHY_DX8SL4OSC_DLTMODE_MASK | DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK | DDR_PHY_DX8SL4OSC_OSCWDDL_MASK | DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK | DDR_PHY_DX8SL4OSC_OSCWDL_MASK | DDR_PHY_DX8SL4OSC_OSCDIV_MASK | DDR_PHY_DX8SL4OSC_OSCEN_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_DLTST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT - | 0x0000000FU << DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4OSC_OSCEN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4OSC_OFFSET ,0xFFFFFFFFU ,0x2A019FFEU); - /*############################################################################################################################ */ - - /*Register : DX8SL4DQSCTL @ 0XFD08151C

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25 0x0 - - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL4DQSCTL_RRRMODE 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22 0x0 - - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SL4DQSCTL_WRRMODE 0x1 - - DQS Gate Extension - PSU_DDR_PHY_DX8SL4DQSCTL_DQSGX 0x0 - - Low Power PLL Power Down - PSU_DDR_PHY_DX8SL4DQSCTL_LPPLLPD 0x1 - - Low Power I/O Power Down - PSU_DDR_PHY_DX8SL4DQSCTL_LPIOPD 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15 0x0 - - QS Counter Enable - PSU_DDR_PHY_DX8SL4DQSCTL_QSCNTEN 0x1 - - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SL4DQSCTL_UDQIOM 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10 0x0 - - Data Slew Rate - PSU_DDR_PHY_DX8SL4DQSCTL_DXSR 0x3 - - DQS_N Resistor - PSU_DDR_PHY_DX8SL4DQSCTL_DQSNRES 0x0 - - DQS Resistor - PSU_DDR_PHY_DX8SL4DQSCTL_DQSRES 0x0 - - DATX8 0-1 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD08151C, 0xFFFFFFFFU ,0x01264300U) - RegMask = (DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK | DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK | DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK | DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SL4DQSCTL_DXSR_MASK | DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK | DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4DQSCTL_OFFSET ,0xFFFFFFFFU ,0x01264300U); - /*############################################################################################################################ */ - - /*Register : DX8SL4DXCTL2 @ 0XFD08152C

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24 0x0 - - Configurable Read Data Enable - PSU_DDR_PHY_DX8SL4DXCTL2_CRDEN 0x0 - - OX Extension during Post-amble - PSU_DDR_PHY_DX8SL4DXCTL2_POSOEX 0x0 - - OE Extension during Pre-amble - PSU_DDR_PHY_DX8SL4DXCTL2_PREOEX 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_17 0x0 - - I/O Assisted Gate Select - PSU_DDR_PHY_DX8SL4DXCTL2_IOAG 0x0 - - I/O Loopback Select - PSU_DDR_PHY_DX8SL4DXCTL2_IOLB 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13 0x0 - - Low Power Wakeup Threshold - PSU_DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH 0xc - - Read Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL4DXCTL2_RDBI 0x0 - - Write Data Bus Inversion Enable - PSU_DDR_PHY_DX8SL4DXCTL2_WDBI 0x0 - - PUB Read FIFO Bypass - PSU_DDR_PHY_DX8SL4DXCTL2_PRFBYP 0x0 - - DATX8 Receive FIFO Read Mode - PSU_DDR_PHY_DX8SL4DXCTL2_RDMODE 0x0 - - Disables the Read FIFO Reset - PSU_DDR_PHY_DX8SL4DXCTL2_DISRST 0x0 - - Read DQS Gate I/O Loopback - PSU_DDR_PHY_DX8SL4DXCTL2_DQSGLB 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4DXCTL2_RESERVED_0 0x0 - - DATX8 0-1 DX Control Register 2 - (OFFSET, MASK, VALUE) (0XFD08152C, 0xFFFFFFFFU ,0x00041800U) - RegMask = (DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK | DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK | DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK | DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK | DDR_PHY_DX8SL4DXCTL2_IOAG_MASK | DDR_PHY_DX8SL4DXCTL2_IOLB_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK | DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK | DDR_PHY_DX8SL4DXCTL2_RDBI_MASK | DDR_PHY_DX8SL4DXCTL2_WDBI_MASK | DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK | DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK | DDR_PHY_DX8SL4DXCTL2_DISRST_MASK | DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK | DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT - | 0x00000001U << DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT - | 0x0000000CU << DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4DXCTL2_OFFSET ,0xFFFFFFFFU ,0x00041800U); - /*############################################################################################################################ */ - - /*Register : DX8SL4IOCR @ 0XFD081530

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SL4IOCR_RESERVED_31 0x0 - - PVREF_DAC REFSEL range select - PSU_DDR_PHY_DX8SL4IOCR_DXDACRANGE 0x7 - - IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring - PSU_DDR_PHY_DX8SL4IOCR_DXVREFIOM 0x0 - - DX IO Mode - PSU_DDR_PHY_DX8SL4IOCR_DXIOM 0x2 - - DX IO Transmitter Mode - PSU_DDR_PHY_DX8SL4IOCR_DXTXM 0x0 - - DX IO Receiver Mode - PSU_DDR_PHY_DX8SL4IOCR_DXRXM 0x0 - - DATX8 0-1 I/O Configuration Register - (OFFSET, MASK, VALUE) (0XFD081530, 0xFFFFFFFFU ,0x70800000U) - RegMask = (DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK | DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK | DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK | DDR_PHY_DX8SL4IOCR_DXIOM_MASK | DDR_PHY_DX8SL4IOCR_DXTXM_MASK | DDR_PHY_DX8SL4IOCR_DXRXM_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT - | 0x00000007U << DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT - | 0x00000002U << DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT - | 0x00000000U << DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SL4IOCR_OFFSET ,0xFFFFFFFFU ,0x70800000U); - /*############################################################################################################################ */ - - /*Register : DX8SLbDQSCTL @ 0XFD0817DC

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25 0x0 - - Read Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SLBDQSCTL_RRRMODE 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22 0x0 - - Write Path Rise-to-Rise Mode - PSU_DDR_PHY_DX8SLBDQSCTL_WRRMODE 0x1 - - DQS Gate Extension - PSU_DDR_PHY_DX8SLBDQSCTL_DQSGX 0x0 - - Low Power PLL Power Down - PSU_DDR_PHY_DX8SLBDQSCTL_LPPLLPD 0x1 - - Low Power I/O Power Down - PSU_DDR_PHY_DX8SLBDQSCTL_LPIOPD 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15 0x0 - - QS Counter Enable - PSU_DDR_PHY_DX8SLBDQSCTL_QSCNTEN 0x1 - - Unused DQ I/O Mode - PSU_DDR_PHY_DX8SLBDQSCTL_UDQIOM 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10 0x0 - - Data Slew Rate - PSU_DDR_PHY_DX8SLBDQSCTL_DXSR 0x3 - - DQS# Resistor - PSU_DDR_PHY_DX8SLBDQSCTL_DQSNRES 0xc - - DQS Resistor - PSU_DDR_PHY_DX8SLBDQSCTL_DQSRES 0x4 - - DATX8 0-8 DQS Control Register - (OFFSET, MASK, VALUE) (0XFD0817DC, 0xFFFFFFFFU ,0x012643C4U) - RegMask = (DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK | DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK | DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK | DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK | DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK | DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK | DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK | DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK | DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK | DDR_PHY_DX8SLBDQSCTL_DXSR_MASK | DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK | DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT - | 0x00000001U << DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT - | 0x00000000U << DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT - | 0x00000003U << DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT - | 0x0000000CU << DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT - | 0x00000004U << DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_DX8SLBDQSCTL_OFFSET ,0xFFFFFFFFU ,0x012643C4U); - /*############################################################################################################################ */ - - /*Register : PIR @ 0XFD080004

      - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_31 0x0 - - Impedance Calibration Bypass - PSU_DDR_PHY_PIR_ZCALBYP 0x0 - - Digital Delay Line (DDL) Calibration Pause - PSU_DDR_PHY_PIR_DCALPSE 0x0 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_28_21 0x0 - - Write DQS2DQ Training - PSU_DDR_PHY_PIR_DQS2DQ 0x0 - - RDIMM Initialization - PSU_DDR_PHY_PIR_RDIMMINIT 0x0 - - Controller DRAM Initialization - PSU_DDR_PHY_PIR_CTLDINIT 0x1 - - VREF Training - PSU_DDR_PHY_PIR_VREF 0x0 - - Static Read Training - PSU_DDR_PHY_PIR_SRD 0x0 - - Write Data Eye Training - PSU_DDR_PHY_PIR_WREYE 0x0 - - Read Data Eye Training - PSU_DDR_PHY_PIR_RDEYE 0x0 - - Write Data Bit Deskew - PSU_DDR_PHY_PIR_WRDSKW 0x0 - - Read Data Bit Deskew - PSU_DDR_PHY_PIR_RDDSKW 0x0 - - Write Leveling Adjust - PSU_DDR_PHY_PIR_WLADJ 0x0 - - Read DQS Gate Training - PSU_DDR_PHY_PIR_QSGATE 0x0 - - Write Leveling - PSU_DDR_PHY_PIR_WL 0x0 - - DRAM Initialization - PSU_DDR_PHY_PIR_DRAMINIT 0x0 - - DRAM Reset (DDR3/DDR4/LPDDR4 Only) - PSU_DDR_PHY_PIR_DRAMRST 0x0 - - PHY Reset - PSU_DDR_PHY_PIR_PHYRST 0x1 - - Digital Delay Line (DDL) Calibration - PSU_DDR_PHY_PIR_DCAL 0x1 - - PLL Initialiazation - PSU_DDR_PHY_PIR_PLLINIT 0x1 - - Reserved. Return zeroes on reads. - PSU_DDR_PHY_PIR_RESERVED_3 0x0 - - CA Training - PSU_DDR_PHY_PIR_CA 0x0 - - Impedance Calibration - PSU_DDR_PHY_PIR_ZCAL 0x1 - - Initialization Trigger - PSU_DDR_PHY_PIR_INIT 0x1 - - PHY Initialization Register - (OFFSET, MASK, VALUE) (0XFD080004, 0xFFFFFFFFU ,0x00040073U) - RegMask = (DDR_PHY_PIR_RESERVED_31_MASK | DDR_PHY_PIR_ZCALBYP_MASK | DDR_PHY_PIR_DCALPSE_MASK | DDR_PHY_PIR_RESERVED_28_21_MASK | DDR_PHY_PIR_DQS2DQ_MASK | DDR_PHY_PIR_RDIMMINIT_MASK | DDR_PHY_PIR_CTLDINIT_MASK | DDR_PHY_PIR_VREF_MASK | DDR_PHY_PIR_SRD_MASK | DDR_PHY_PIR_WREYE_MASK | DDR_PHY_PIR_RDEYE_MASK | DDR_PHY_PIR_WRDSKW_MASK | DDR_PHY_PIR_RDDSKW_MASK | DDR_PHY_PIR_WLADJ_MASK | DDR_PHY_PIR_QSGATE_MASK | DDR_PHY_PIR_WL_MASK | DDR_PHY_PIR_DRAMINIT_MASK | DDR_PHY_PIR_DRAMRST_MASK | DDR_PHY_PIR_PHYRST_MASK | DDR_PHY_PIR_DCAL_MASK | DDR_PHY_PIR_PLLINIT_MASK | DDR_PHY_PIR_RESERVED_3_MASK | DDR_PHY_PIR_CA_MASK | DDR_PHY_PIR_ZCAL_MASK | DDR_PHY_PIR_INIT_MASK | 0 ); - - RegVal = ((0x00000000U << DDR_PHY_PIR_RESERVED_31_SHIFT - | 0x00000000U << DDR_PHY_PIR_ZCALBYP_SHIFT - | 0x00000000U << DDR_PHY_PIR_DCALPSE_SHIFT - | 0x00000000U << DDR_PHY_PIR_RESERVED_28_21_SHIFT - | 0x00000000U << DDR_PHY_PIR_DQS2DQ_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDIMMINIT_SHIFT - | 0x00000001U << DDR_PHY_PIR_CTLDINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_VREF_SHIFT - | 0x00000000U << DDR_PHY_PIR_SRD_SHIFT - | 0x00000000U << DDR_PHY_PIR_WREYE_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDEYE_SHIFT - | 0x00000000U << DDR_PHY_PIR_WRDSKW_SHIFT - | 0x00000000U << DDR_PHY_PIR_RDDSKW_SHIFT - | 0x00000000U << DDR_PHY_PIR_WLADJ_SHIFT - | 0x00000000U << DDR_PHY_PIR_QSGATE_SHIFT - | 0x00000000U << DDR_PHY_PIR_WL_SHIFT - | 0x00000000U << DDR_PHY_PIR_DRAMINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_DRAMRST_SHIFT - | 0x00000001U << DDR_PHY_PIR_PHYRST_SHIFT - | 0x00000001U << DDR_PHY_PIR_DCAL_SHIFT - | 0x00000001U << DDR_PHY_PIR_PLLINIT_SHIFT - | 0x00000000U << DDR_PHY_PIR_RESERVED_3_SHIFT - | 0x00000000U << DDR_PHY_PIR_CA_SHIFT - | 0x00000001U << DDR_PHY_PIR_ZCAL_SHIFT - | 0x00000001U << DDR_PHY_PIR_INIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DDR_PHY_PIR_OFFSET ,0xFFFFFFFFU ,0x00040073U); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_mio_init_data() { - // : MIO PROGRAMMING - /*Register : MIO_PIN_0 @ 0XFF180000

      +unsigned long psu_ddr_qos_init_data(void) +{ - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock) - PSU_IOU_SLCR_MIO_PIN_0_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_0_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[0]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[0]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_0_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_0_L3_SEL 0 - - Configures MIO Pin 0 peripheral interface mapping. S - (OFFSET, MASK, VALUE) (0XFF180000, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_0_L0_SEL_MASK | IOU_SLCR_MIO_PIN_0_L1_SEL_MASK | IOU_SLCR_MIO_PIN_0_L2_SEL_MASK | IOU_SLCR_MIO_PIN_0_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_0_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_1 @ 0XFF180004

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Data - us) - PSU_IOU_SLCR_MIO_PIN_1_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_1_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[1]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[1]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_1_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal) - PSU_IOU_SLCR_MIO_PIN_1_L3_SEL 0 - - Configures MIO Pin 1 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180004, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_1_L0_SEL_MASK | IOU_SLCR_MIO_PIN_1_L1_SEL_MASK | IOU_SLCR_MIO_PIN_1_L2_SEL_MASK | IOU_SLCR_MIO_PIN_1_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_1_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_2 @ 0XFF180008

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) - PSU_IOU_SLCR_MIO_PIN_2_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_2_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[2]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[2]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_2_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, Input, ttc2_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_2_L3_SEL 0 - - Configures MIO Pin 2 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180008, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_2_L0_SEL_MASK | IOU_SLCR_MIO_PIN_2_L1_SEL_MASK | IOU_SLCR_MIO_PIN_2_L2_SEL_MASK | IOU_SLCR_MIO_PIN_2_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_2_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_3 @ 0XFF18000C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) - PSU_IOU_SLCR_MIO_PIN_3_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_3_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[3]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[3]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_3_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_3_L3_SEL 0 - - Configures MIO Pin 3 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18000C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_3_L0_SEL_MASK | IOU_SLCR_MIO_PIN_3_L1_SEL_MASK | IOU_SLCR_MIO_PIN_3_L2_SEL_MASK | IOU_SLCR_MIO_PIN_3_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_3_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_4 @ 0XFF180010

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Data - us) - PSU_IOU_SLCR_MIO_PIN_4_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_4_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[4]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[4]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_4_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_4_L3_SEL 0 - - Configures MIO Pin 4 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180010, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_4_L0_SEL_MASK | IOU_SLCR_MIO_PIN_4_L1_SEL_MASK | IOU_SLCR_MIO_PIN_4_L2_SEL_MASK | IOU_SLCR_MIO_PIN_4_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_4_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_5 @ 0XFF180014

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- (QSPI Slave Select) - PSU_IOU_SLCR_MIO_PIN_5_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_5_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[5]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[5]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_5_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_5_L3_SEL 0 - - Configures MIO Pin 5 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180014, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_5_L0_SEL_MASK | IOU_SLCR_MIO_PIN_5_L1_SEL_MASK | IOU_SLCR_MIO_PIN_5_L2_SEL_MASK | IOU_SLCR_MIO_PIN_5_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_5_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_6 @ 0XFF180018

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back) - PSU_IOU_SLCR_MIO_PIN_6_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_6_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[6]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[6]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_6_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1 - sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, - Output, tracedq[4]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_6_L3_SEL 0 - - Configures MIO Pin 6 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180018, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_6_L0_SEL_MASK | IOU_SLCR_MIO_PIN_6_L1_SEL_MASK | IOU_SLCR_MIO_PIN_6_L2_SEL_MASK | IOU_SLCR_MIO_PIN_6_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_6_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_7 @ 0XFF18001C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_upper- (QSPI Slave Select upper) - PSU_IOU_SLCR_MIO_PIN_7_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_7_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[7]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[7]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_7_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - tc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, - racedq[5]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_7_L3_SEL 0 - - Configures MIO Pin 7 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18001C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_7_L0_SEL_MASK | IOU_SLCR_MIO_PIN_7_L1_SEL_MASK | IOU_SLCR_MIO_PIN_7_L2_SEL_MASK | IOU_SLCR_MIO_PIN_7_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_7_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_8 @ 0XFF180020

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [0]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_8_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_8_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[8]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[8]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_8_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc - , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tr - ce Port Databus) - PSU_IOU_SLCR_MIO_PIN_8_L3_SEL 0 - - Configures MIO Pin 8 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180020, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_8_L0_SEL_MASK | IOU_SLCR_MIO_PIN_8_L1_SEL_MASK | IOU_SLCR_MIO_PIN_8_L2_SEL_MASK | IOU_SLCR_MIO_PIN_8_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_8_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_9 @ 0XFF180024

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [1]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_9_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_9_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[9]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[9]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_9_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - utput, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (U - RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_9_L3_SEL 0 - - Configures MIO Pin 9 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180024, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_9_L0_SEL_MASK | IOU_SLCR_MIO_PIN_9_L1_SEL_MASK | IOU_SLCR_MIO_PIN_9_L2_SEL_MASK | IOU_SLCR_MIO_PIN_9_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_9_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_10 @ 0XFF180028

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [2]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_10_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_10_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[10]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[10]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_10_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_10_L3_SEL 0 - - Configures MIO Pin 10 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180028, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_10_L0_SEL_MASK | IOU_SLCR_MIO_PIN_10_L1_SEL_MASK | IOU_SLCR_MIO_PIN_10_L2_SEL_MASK | IOU_SLCR_MIO_PIN_10_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_10_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_11 @ 0XFF18002C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [3]- (QSPI Upper Databus) - PSU_IOU_SLCR_MIO_PIN_11_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_11_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[11]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[11]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_11_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_11_L3_SEL 0 - - Configures MIO Pin 11 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18002C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_11_L0_SEL_MASK | IOU_SLCR_MIO_PIN_11_L1_SEL_MASK | IOU_SLCR_MIO_PIN_11_L2_SEL_MASK | IOU_SLCR_MIO_PIN_11_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_11_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_12 @ 0XFF180030

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock) - PSU_IOU_SLCR_MIO_PIN_12_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - - PSU_IOU_SLCR_MIO_PIN_12_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[12]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[12]- (Test Scan Port) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_12_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cl - ck) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trac - dq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_12_L3_SEL 0 - - Configures MIO Pin 12 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180030, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_12_L0_SEL_MASK | IOU_SLCR_MIO_PIN_12_L1_SEL_MASK | IOU_SLCR_MIO_PIN_12_L2_SEL_MASK | IOU_SLCR_MIO_PIN_12_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_12_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_13 @ 0XFF180034

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_13_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_13_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, test_scan_out[13]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_13_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave - out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Dat - bus) - PSU_IOU_SLCR_MIO_PIN_13_L3_SEL 0 - - Configures MIO Pin 13 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180034, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_13_L0_SEL_MASK | IOU_SLCR_MIO_PIN_13_L1_SEL_MASK | IOU_SLCR_MIO_PIN_13_L2_SEL_MASK | IOU_SLCR_MIO_PIN_13_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_13_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_14 @ 0XFF180038

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_14_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND Command Latch Enable) - PSU_IOU_SLCR_MIO_PIN_14_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, test_scan_out[14]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_14_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_ - n- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_14_L3_SEL 2 - - Configures MIO Pin 14 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180038, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_14_L0_SEL_MASK | IOU_SLCR_MIO_PIN_14_L1_SEL_MASK | IOU_SLCR_MIO_PIN_14_L2_SEL_MASK | IOU_SLCR_MIO_PIN_14_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_14_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_15 @ 0XFF18003C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_15_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND Address Latch Enable) - PSU_IOU_SLCR_MIO_PIN_15_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, test_scan_out[15]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_15_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out - 0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seri - l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_15_L3_SEL 2 - - Configures MIO Pin 15 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18003C, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_15_L0_SEL_MASK | IOU_SLCR_MIO_PIN_15_L1_SEL_MASK | IOU_SLCR_MIO_PIN_15_L2_SEL_MASK | IOU_SLCR_MIO_PIN_15_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_15_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_16 @ 0XFF180040

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_16_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_16_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, test_scan_out[16]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_16_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_16_L3_SEL 2 - - Configures MIO Pin 16 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180040, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_16_L0_SEL_MASK | IOU_SLCR_MIO_PIN_16_L1_SEL_MASK | IOU_SLCR_MIO_PIN_16_L2_SEL_MASK | IOU_SLCR_MIO_PIN_16_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_16_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_17 @ 0XFF180044

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_17_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_17_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, test_scan_out[17]- (Test Scan Port - 3= Not Used - PSU_IOU_SLCR_MIO_PIN_17_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_17_L3_SEL 2 - - Configures MIO Pin 17 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180044, 0x000000FEU ,0x00000040U) - RegMask = (IOU_SLCR_MIO_PIN_17_L0_SEL_MASK | IOU_SLCR_MIO_PIN_17_L1_SEL_MASK | IOU_SLCR_MIO_PIN_17_L2_SEL_MASK | IOU_SLCR_MIO_PIN_17_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_17_OFFSET ,0x000000FEU ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_18 @ 0XFF180048

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_18_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_18_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, test_scan_out[18]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_18_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_18_L3_SEL 6 - - Configures MIO Pin 18 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180048, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_18_L0_SEL_MASK | IOU_SLCR_MIO_PIN_18_L1_SEL_MASK | IOU_SLCR_MIO_PIN_18_L2_SEL_MASK | IOU_SLCR_MIO_PIN_18_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_18_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_19 @ 0XFF18004C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_19_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_19_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, test_scan_out[19]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_19_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_19_L3_SEL 6 - - Configures MIO Pin 19 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18004C, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_19_L0_SEL_MASK | IOU_SLCR_MIO_PIN_19_L1_SEL_MASK | IOU_SLCR_MIO_PIN_19_L2_SEL_MASK | IOU_SLCR_MIO_PIN_19_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_19_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_20 @ 0XFF180050

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_20_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_20_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, test_scan_out[20]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_20_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= t - c1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_20_L3_SEL 6 - - Configures MIO Pin 20 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180050, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_20_L0_SEL_MASK | IOU_SLCR_MIO_PIN_20_L1_SEL_MASK | IOU_SLCR_MIO_PIN_20_L2_SEL_MASK | IOU_SLCR_MIO_PIN_20_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_20_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_21 @ 0XFF180054

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_21_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_21_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= test_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, test_scan_out[21]- (Test Scan Port) - = csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_21_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- - UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_21_L3_SEL 6 - - Configures MIO Pin 21 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180054, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_21_L0_SEL_MASK | IOU_SLCR_MIO_PIN_21_L1_SEL_MASK | IOU_SLCR_MIO_PIN_21_L2_SEL_MASK | IOU_SLCR_MIO_PIN_21_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_21_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_22 @ 0XFF180058

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_22_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAND Write Enable) - PSU_IOU_SLCR_MIO_PIN_22_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- - (Test Scan Port) = test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_22_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed - PSU_IOU_SLCR_MIO_PIN_22_L3_SEL 0 - - Configures MIO Pin 22 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180058, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_22_L0_SEL_MASK | IOU_SLCR_MIO_PIN_22_L1_SEL_MASK | IOU_SLCR_MIO_PIN_22_L2_SEL_MASK | IOU_SLCR_MIO_PIN_22_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_22_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_23 @ 0XFF18005C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_23_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_23_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= test_scan, Input, test_scan_in - 23]- (Test Scan Port) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper - - PSU_IOU_SLCR_MIO_PIN_23_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_23_L3_SEL 0 - - Configures MIO Pin 23 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18005C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_23_L0_SEL_MASK | IOU_SLCR_MIO_PIN_23_L1_SEL_MASK | IOU_SLCR_MIO_PIN_23_L2_SEL_MASK | IOU_SLCR_MIO_PIN_23_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_23_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_24 @ 0XFF180060

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_24_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND - ata Bus) - PSU_IOU_SLCR_MIO_PIN_24_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= test_scan, Input, test - scan_in[24]- (Test Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ex - Tamper) - PSU_IOU_SLCR_MIO_PIN_24_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, - Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_24_L3_SEL 1 - - Configures MIO Pin 24 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180060, 0x000000FEU ,0x00000020U) - RegMask = (IOU_SLCR_MIO_PIN_24_L0_SEL_MASK | IOU_SLCR_MIO_PIN_24_L1_SEL_MASK | IOU_SLCR_MIO_PIN_24_L2_SEL_MASK | IOU_SLCR_MIO_PIN_24_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_24_OFFSET ,0x000000FEU ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_25 @ 0XFF180064

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_25_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAND Read Enable) - PSU_IOU_SLCR_MIO_PIN_25_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= test_scan, Input, - test_scan_in[25]- (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (C - U Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_25_L2_SEL 0 - - Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_out- (TTC Waveform - lock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_25_L3_SEL 1 - - Configures MIO Pin 25 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180064, 0x000000FEU ,0x00000020U) - RegMask = (IOU_SLCR_MIO_PIN_25_L0_SEL_MASK | IOU_SLCR_MIO_PIN_25_L1_SEL_MASK | IOU_SLCR_MIO_PIN_25_L2_SEL_MASK | IOU_SLCR_MIO_PIN_25_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_25_OFFSET ,0x000000FEU ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_26 @ 0XFF180068

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_26_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable) - PSU_IOU_SLCR_MIO_PIN_26_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[26]- (Test Sc - n Port) = test_scan, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_26_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_26_L3_SEL 0 - - Configures MIO Pin 26 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180068, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_26_L0_SEL_MASK | IOU_SLCR_MIO_PIN_26_L1_SEL_MASK | IOU_SLCR_MIO_PIN_26_L2_SEL_MASK | IOU_SLCR_MIO_PIN_26_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_26_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_27 @ 0XFF18006C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_27_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_27_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[27]- (Test Sc - n Port) = test_scan, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_27_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus) - PSU_IOU_SLCR_MIO_PIN_27_L3_SEL 0 - - Configures MIO Pin 27 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18006C, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_27_L0_SEL_MASK | IOU_SLCR_MIO_PIN_27_L1_SEL_MASK | IOU_SLCR_MIO_PIN_27_L2_SEL_MASK | IOU_SLCR_MIO_PIN_27_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_27_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_28 @ 0XFF180070

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_28_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy) - PSU_IOU_SLCR_MIO_PIN_28_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[28]- (Test Sc - n Port) = test_scan, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_28_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_28_L3_SEL 0 - - Configures MIO Pin 28 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180070, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_28_L0_SEL_MASK | IOU_SLCR_MIO_PIN_28_L1_SEL_MASK | IOU_SLCR_MIO_PIN_28_L2_SEL_MASK | IOU_SLCR_MIO_PIN_28_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_28_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_29 @ 0XFF180074

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_29_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_29_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[29]- (Test Sc - n Port) = test_scan, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_29_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_29_L3_SEL 0 - - Configures MIO Pin 29 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180074, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_29_L0_SEL_MASK | IOU_SLCR_MIO_PIN_29_L1_SEL_MASK | IOU_SLCR_MIO_PIN_29_L2_SEL_MASK | IOU_SLCR_MIO_PIN_29_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_29_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_30 @ 0XFF180078

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_30_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_30_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[30]- (Test Sc - n Port) = test_scan, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_30_L2_SEL 3 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_so - (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output - tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_30_L3_SEL 0 - - Configures MIO Pin 30 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180078, 0x000000FEU ,0x00000018U) - RegMask = (IOU_SLCR_MIO_PIN_30_L0_SEL_MASK | IOU_SLCR_MIO_PIN_30_L1_SEL_MASK | IOU_SLCR_MIO_PIN_30_L2_SEL_MASK | IOU_SLCR_MIO_PIN_30_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT - | 0x00000003U << IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_30_OFFSET ,0x000000FEU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_31 @ 0XFF18007C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_31_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_31_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[31]- (Test Sc - n Port) = test_scan, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_31_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi - _si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial out - ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_31_L3_SEL 0 - - Configures MIO Pin 31 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18007C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_31_L0_SEL_MASK | IOU_SLCR_MIO_PIN_31_L1_SEL_MASK | IOU_SLCR_MIO_PIN_31_L2_SEL_MASK | IOU_SLCR_MIO_PIN_31_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_31_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_32 @ 0XFF180080

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_32_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - - PSU_IOU_SLCR_MIO_PIN_32_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[32]- (Test S - an Port) = test_scan, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_32_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi - _sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= - race, Output, tracedq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_32_L3_SEL 0 - - Configures MIO Pin 32 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180080, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_32_L0_SEL_MASK | IOU_SLCR_MIO_PIN_32_L1_SEL_MASK | IOU_SLCR_MIO_PIN_32_L2_SEL_MASK | IOU_SLCR_MIO_PIN_32_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_32_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_33 @ 0XFF180084

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_33_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_33_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[33]- (Test S - an Port) = test_scan, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) - PSU_IOU_SLCR_MIO_PIN_33_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= t - c3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, traced - [11]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_33_L3_SEL 0 - - Configures MIO Pin 33 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180084, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_33_L0_SEL_MASK | IOU_SLCR_MIO_PIN_33_L1_SEL_MASK | IOU_SLCR_MIO_PIN_33_L2_SEL_MASK | IOU_SLCR_MIO_PIN_33_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_33_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_34 @ 0XFF180088

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_34_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_34_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[34]- (Test S - an Port) = test_scan, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_34_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc2 - Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace P - rt Databus) - PSU_IOU_SLCR_MIO_PIN_34_L3_SEL 0 - - Configures MIO Pin 34 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180088, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_34_L0_SEL_MASK | IOU_SLCR_MIO_PIN_34_L1_SEL_MASK | IOU_SLCR_MIO_PIN_34_L2_SEL_MASK | IOU_SLCR_MIO_PIN_34_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_34_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_35 @ 0XFF18008C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_35_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_35_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[35]- (Test S - an Port) = test_scan, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_35_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- - UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_35_L3_SEL 0 - - Configures MIO Pin 35 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18008C, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_35_L0_SEL_MASK | IOU_SLCR_MIO_PIN_35_L1_SEL_MASK | IOU_SLCR_MIO_PIN_35_L2_SEL_MASK | IOU_SLCR_MIO_PIN_35_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_35_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_36 @ 0XFF180090

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_36_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_36_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[36]- (Test S - an Port) = test_scan, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data) - PSU_IOU_SLCR_MIO_PIN_36_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_36_L3_SEL 0 - - Configures MIO Pin 36 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180090, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_36_L0_SEL_MASK | IOU_SLCR_MIO_PIN_36_L1_SEL_MASK | IOU_SLCR_MIO_PIN_36_L2_SEL_MASK | IOU_SLCR_MIO_PIN_36_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_36_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_37 @ 0XFF180094

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_37_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal) - PSU_IOU_SLCR_MIO_PIN_37_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[37]- (Test S - an Port) = test_scan, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug) - PSU_IOU_SLCR_MIO_PIN_37_L2_SEL 1 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_37_L3_SEL 0 - - Configures MIO Pin 37 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180094, 0x000000FEU ,0x00000008U) - RegMask = (IOU_SLCR_MIO_PIN_37_L0_SEL_MASK | IOU_SLCR_MIO_PIN_37_L1_SEL_MASK | IOU_SLCR_MIO_PIN_37_L2_SEL_MASK | IOU_SLCR_MIO_PIN_37_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_37_OFFSET ,0x000000FEU ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_38 @ 0XFF180098

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_38_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_38_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_38_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clo - k) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- - (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_38_L3_SEL 0 - - Configures MIO Pin 38 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180098, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_38_L0_SEL_MASK | IOU_SLCR_MIO_PIN_38_L1_SEL_MASK | IOU_SLCR_MIO_PIN_38_L2_SEL_MASK | IOU_SLCR_MIO_PIN_38_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_38_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_39 @ 0XFF18009C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_39_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_39_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= sd1, Input, sd1_data_i - [4]- (8-bit Data bus) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, Output, ttc0_wav - _out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port - Control Signal) - PSU_IOU_SLCR_MIO_PIN_39_L3_SEL 0 - - Configures MIO Pin 39 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_39_L0_SEL_MASK | IOU_SLCR_MIO_PIN_39_L1_SEL_MASK | IOU_SLCR_MIO_PIN_39_L2_SEL_MASK | IOU_SLCR_MIO_PIN_39_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_39_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_40 @ 0XFF1800A0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_40_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_40_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= sd1, Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[5]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3, Input, ttc3_clk - in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_40_L3_SEL 0 - - Configures MIO Pin 40 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_40_L0_SEL_MASK | IOU_SLCR_MIO_PIN_40_L1_SEL_MASK | IOU_SLCR_MIO_PIN_40_L2_SEL_MASK | IOU_SLCR_MIO_PIN_40_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_40_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_41 @ 0XFF1800A4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_41_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_41_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_out[6]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[ - ]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in - ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_41_L3_SEL 0 - - Configures MIO Pin 41 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_41_L0_SEL_MASK | IOU_SLCR_MIO_PIN_41_L1_SEL_MASK | IOU_SLCR_MIO_PIN_41_L2_SEL_MASK | IOU_SLCR_MIO_PIN_41_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_41_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_42 @ 0XFF1800A8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_42_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_42_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_out[7]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 0 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_42_L3_SEL 0 - - Configures MIO Pin 42 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_PIN_42_L0_SEL_MASK | IOU_SLCR_MIO_PIN_42_L1_SEL_MASK | IOU_SLCR_MIO_PIN_42_L2_SEL_MASK | IOU_SLCR_MIO_PIN_42_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_42_OFFSET ,0x000000FEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_43 @ 0XFF1800AC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_43_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_43_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, s - i0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_43_L3_SEL 0 - - Configures MIO Pin 43 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_43_L0_SEL_MASK | IOU_SLCR_MIO_PIN_43_L1_SEL_MASK | IOU_SLCR_MIO_PIN_43_L2_SEL_MASK | IOU_SLCR_MIO_PIN_43_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_43_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_44 @ 0XFF1800B0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_44_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_44_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_44_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, s - i1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - Not Used - PSU_IOU_SLCR_MIO_PIN_44_L3_SEL 0 - - Configures MIO Pin 44 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B0, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_44_L0_SEL_MASK | IOU_SLCR_MIO_PIN_44_L1_SEL_MASK | IOU_SLCR_MIO_PIN_44_L2_SEL_MASK | IOU_SLCR_MIO_PIN_44_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_44_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_45 @ 0XFF1800B4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_45_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_45_L3_SEL 0 - - Configures MIO Pin 45 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B4, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_45_L0_SEL_MASK | IOU_SLCR_MIO_PIN_45_L1_SEL_MASK | IOU_SLCR_MIO_PIN_45_L2_SEL_MASK | IOU_SLCR_MIO_PIN_45_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_45_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_46 @ 0XFF1800B8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_46_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= tt - 0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_46_L3_SEL 0 - - Configures MIO Pin 46 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800B8, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_46_L0_SEL_MASK | IOU_SLCR_MIO_PIN_46_L1_SEL_MASK | IOU_SLCR_MIO_PIN_46_L2_SEL_MASK | IOU_SLCR_MIO_PIN_46_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_46_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_47 @ 0XFF1800BC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_47_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_47_L3_SEL 0 - - Configures MIO Pin 47 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800BC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_47_L0_SEL_MASK | IOU_SLCR_MIO_PIN_47_L1_SEL_MASK | IOU_SLCR_MIO_PIN_47_L2_SEL_MASK | IOU_SLCR_MIO_PIN_47_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_47_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_48 @ 0XFF1800C0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_48_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_48_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_48_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not U - ed - PSU_IOU_SLCR_MIO_PIN_48_L3_SEL 0 - - Configures MIO Pin 48 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C0, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_48_L0_SEL_MASK | IOU_SLCR_MIO_PIN_48_L1_SEL_MASK | IOU_SLCR_MIO_PIN_48_L2_SEL_MASK | IOU_SLCR_MIO_PIN_48_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_48_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_49 @ 0XFF1800C4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_49_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8 - bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= Not Used - PSU_IOU_SLCR_MIO_PIN_49_L3_SEL 0 - - Configures MIO Pin 49 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C4, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_49_L0_SEL_MASK | IOU_SLCR_MIO_PIN_49_L1_SEL_MASK | IOU_SLCR_MIO_PIN_49_L2_SEL_MASK | IOU_SLCR_MIO_PIN_49_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_49_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_50 @ 0XFF1800C8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) - PSU_IOU_SLCR_MIO_PIN_50_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Input, sd1_c - d_in- (Command Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= ttc2, Input, ttc2 - clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_50_L3_SEL 0 - - Configures MIO Pin 50 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800C8, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_50_L0_SEL_MASK | IOU_SLCR_MIO_PIN_50_L1_SEL_MASK | IOU_SLCR_MIO_PIN_50_L2_SEL_MASK | IOU_SLCR_MIO_PIN_50_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_50_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_51 @ 0XFF1800CC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock) - PSU_IOU_SLCR_MIO_PIN_51_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdio1_clk_out- (SDSDIO clock) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L2_SEL 2 - - Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Data) 4= mdio1, Outp - t, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter - serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_51_L3_SEL 0 - - Configures MIO Pin 51 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800CC, 0x000000FEU ,0x00000010U) - RegMask = (IOU_SLCR_MIO_PIN_51_L0_SEL_MASK | IOU_SLCR_MIO_PIN_51_L1_SEL_MASK | IOU_SLCR_MIO_PIN_51_L2_SEL_MASK | IOU_SLCR_MIO_PIN_51_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT - | 0x00000002U << IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_51_OFFSET ,0x000000FEU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_52 @ 0XFF1800D0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_52_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_in- (ULPI Clock) - PSU_IOU_SLCR_MIO_PIN_52_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_52_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock) - PSU_IOU_SLCR_MIO_PIN_52_L3_SEL 0 - - Configures MIO Pin 52 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_52_L0_SEL_MASK | IOU_SLCR_MIO_PIN_52_L1_SEL_MASK | IOU_SLCR_MIO_PIN_52_L2_SEL_MASK | IOU_SLCR_MIO_PIN_52_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_52_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_53 @ 0XFF1800D4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_53_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control) - PSU_IOU_SLCR_MIO_PIN_53_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_53_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal) - PSU_IOU_SLCR_MIO_PIN_53_L3_SEL 0 - - Configures MIO Pin 53 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_53_L0_SEL_MASK | IOU_SLCR_MIO_PIN_53_L1_SEL_MASK | IOU_SLCR_MIO_PIN_53_L2_SEL_MASK | IOU_SLCR_MIO_PIN_53_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_53_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_54 @ 0XFF1800D8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_54_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[2]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_54_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_54_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_54_L3_SEL 0 - - Configures MIO Pin 54 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800D8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_54_L0_SEL_MASK | IOU_SLCR_MIO_PIN_54_L1_SEL_MASK | IOU_SLCR_MIO_PIN_54_L2_SEL_MASK | IOU_SLCR_MIO_PIN_54_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_54_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_55 @ 0XFF1800DC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_55_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY) - PSU_IOU_SLCR_MIO_PIN_55_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_55_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_55_L3_SEL 0 - - Configures MIO Pin 55 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800DC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_55_L0_SEL_MASK | IOU_SLCR_MIO_PIN_55_L1_SEL_MASK | IOU_SLCR_MIO_PIN_55_L2_SEL_MASK | IOU_SLCR_MIO_PIN_55_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_55_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_56 @ 0XFF1800E0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_56_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[0]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_56_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_56_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_56_L3_SEL 0 - - Configures MIO Pin 56 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_56_L0_SEL_MASK | IOU_SLCR_MIO_PIN_56_L1_SEL_MASK | IOU_SLCR_MIO_PIN_56_L2_SEL_MASK | IOU_SLCR_MIO_PIN_56_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_56_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_57 @ 0XFF1800E4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_57_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[1]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_57_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_57_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_57_L3_SEL 0 - - Configures MIO Pin 57 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_57_L0_SEL_MASK | IOU_SLCR_MIO_PIN_57_L1_SEL_MASK | IOU_SLCR_MIO_PIN_57_L2_SEL_MASK | IOU_SLCR_MIO_PIN_57_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_57_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_58 @ 0XFF1800E8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_58_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers) - PSU_IOU_SLCR_MIO_PIN_58_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_58_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_58_L3_SEL 0 - - Configures MIO Pin 58 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800E8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_58_L0_SEL_MASK | IOU_SLCR_MIO_PIN_58_L1_SEL_MASK | IOU_SLCR_MIO_PIN_58_L2_SEL_MASK | IOU_SLCR_MIO_PIN_58_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_58_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_59 @ 0XFF1800EC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_59_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[3]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_59_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_59_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus) - PSU_IOU_SLCR_MIO_PIN_59_L3_SEL 0 - - Configures MIO Pin 59 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800EC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_59_L0_SEL_MASK | IOU_SLCR_MIO_PIN_59_L1_SEL_MASK | IOU_SLCR_MIO_PIN_59_L2_SEL_MASK | IOU_SLCR_MIO_PIN_59_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_59_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_60 @ 0XFF1800F0

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_60_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[4]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_60_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_60_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_60_L3_SEL 0 - - Configures MIO Pin 60 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F0, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_60_L0_SEL_MASK | IOU_SLCR_MIO_PIN_60_L1_SEL_MASK | IOU_SLCR_MIO_PIN_60_L2_SEL_MASK | IOU_SLCR_MIO_PIN_60_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_60_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_61 @ 0XFF1800F4

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_61_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[5]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_61_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_61_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, spi1_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_61_L3_SEL 0 - - Configures MIO Pin 61 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F4, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_61_L0_SEL_MASK | IOU_SLCR_MIO_PIN_61_L1_SEL_MASK | IOU_SLCR_MIO_PIN_61_L2_SEL_MASK | IOU_SLCR_MIO_PIN_61_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_61_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_62 @ 0XFF1800F8

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_62_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[6]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_62_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_62_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_62_L3_SEL 0 - - Configures MIO Pin 62 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800F8, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_62_L0_SEL_MASK | IOU_SLCR_MIO_PIN_62_L1_SEL_MASK | IOU_SLCR_MIO_PIN_62_L2_SEL_MASK | IOU_SLCR_MIO_PIN_62_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_62_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_63 @ 0XFF1800FC

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_63_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[7]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_63_L1_SEL 1 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_63_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_63_L3_SEL 0 - - Configures MIO Pin 63 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF1800FC, 0x000000FEU ,0x00000004U) - RegMask = (IOU_SLCR_MIO_PIN_63_L0_SEL_MASK | IOU_SLCR_MIO_PIN_63_L1_SEL_MASK | IOU_SLCR_MIO_PIN_63_L2_SEL_MASK | IOU_SLCR_MIO_PIN_63_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT - | 0x00000001U << IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_63_OFFSET ,0x000000FEU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_64 @ 0XFF180100

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_clk- (TX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_64_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_in- (ULPI Clock) - PSU_IOU_SLCR_MIO_PIN_64_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_64_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, s - i0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - trace, Output, tracedq[10]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_64_L3_SEL 0 - - Configures MIO Pin 64 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180100, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_64_L0_SEL_MASK | IOU_SLCR_MIO_PIN_64_L1_SEL_MASK | IOU_SLCR_MIO_PIN_64_L2_SEL_MASK | IOU_SLCR_MIO_PIN_64_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_64_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_65 @ 0XFF180104

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[0]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_65_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control) - PSU_IOU_SLCR_MIO_PIN_65_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_65_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= - ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trac - dq[11]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_65_L3_SEL 0 - - Configures MIO Pin 65 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180104, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_65_L0_SEL_MASK | IOU_SLCR_MIO_PIN_65_L1_SEL_MASK | IOU_SLCR_MIO_PIN_65_L2_SEL_MASK | IOU_SLCR_MIO_PIN_65_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_65_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_66 @ 0XFF180108

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[1]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_66_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[2]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_66_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_66_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= tt - 2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace - Port Databus) - PSU_IOU_SLCR_MIO_PIN_66_L3_SEL 0 - - Configures MIO Pin 66 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180108, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_66_L0_SEL_MASK | IOU_SLCR_MIO_PIN_66_L1_SEL_MASK | IOU_SLCR_MIO_PIN_66_L2_SEL_MASK | IOU_SLCR_MIO_PIN_66_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_66_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_67 @ 0XFF18010C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[2]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_67_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY) - PSU_IOU_SLCR_MIO_PIN_67_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_67_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_67_L3_SEL 0 - - Configures MIO Pin 67 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18010C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_67_L0_SEL_MASK | IOU_SLCR_MIO_PIN_67_L1_SEL_MASK | IOU_SLCR_MIO_PIN_67_L2_SEL_MASK | IOU_SLCR_MIO_PIN_67_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_67_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_68 @ 0XFF180110

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[3]- (TX RGMII data) - PSU_IOU_SLCR_MIO_PIN_68_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[0]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_68_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= Not Used 3= Not Used - PSU_IOU_SLCR_MIO_PIN_68_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_68_L3_SEL 0 - - Configures MIO Pin 68 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180110, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_68_L0_SEL_MASK | IOU_SLCR_MIO_PIN_68_L1_SEL_MASK | IOU_SLCR_MIO_PIN_68_L2_SEL_MASK | IOU_SLCR_MIO_PIN_68_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_68_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_69 @ 0XFF180114

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ctl- (TX RGMII control) - PSU_IOU_SLCR_MIO_PIN_69_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[1]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_69_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_69_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus) - PSU_IOU_SLCR_MIO_PIN_69_L3_SEL 0 - - Configures MIO Pin 69 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180114, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_69_L0_SEL_MASK | IOU_SLCR_MIO_PIN_69_L1_SEL_MASK | IOU_SLCR_MIO_PIN_69_L2_SEL_MASK | IOU_SLCR_MIO_PIN_69_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_69_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_70 @ 0XFF180118

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_clk- (RX RGMII clock) - PSU_IOU_SLCR_MIO_PIN_70_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers) - PSU_IOU_SLCR_MIO_PIN_70_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_70_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed - PSU_IOU_SLCR_MIO_PIN_70_L3_SEL 0 - - Configures MIO Pin 70 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180118, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_70_L0_SEL_MASK | IOU_SLCR_MIO_PIN_70_L1_SEL_MASK | IOU_SLCR_MIO_PIN_70_L2_SEL_MASK | IOU_SLCR_MIO_PIN_70_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_70_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_71 @ 0XFF18011C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[0]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_71_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[3]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_71_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_71_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_71_L3_SEL 0 - - Configures MIO Pin 71 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18011C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_71_L0_SEL_MASK | IOU_SLCR_MIO_PIN_71_L1_SEL_MASK | IOU_SLCR_MIO_PIN_71_L2_SEL_MASK | IOU_SLCR_MIO_PIN_71_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_71_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_72 @ 0XFF180120

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[1]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_72_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[4]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_72_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_72_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= N - t Used 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_72_L3_SEL 0 - - Configures MIO Pin 72 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180120, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_72_L0_SEL_MASK | IOU_SLCR_MIO_PIN_72_L1_SEL_MASK | IOU_SLCR_MIO_PIN_72_L2_SEL_MASK | IOU_SLCR_MIO_PIN_72_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_72_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_73 @ 0XFF180124

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[2]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_73_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[5]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_73_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_73_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_73_L3_SEL 0 - - Configures MIO Pin 73 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180124, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_73_L0_SEL_MASK | IOU_SLCR_MIO_PIN_73_L1_SEL_MASK | IOU_SLCR_MIO_PIN_73_L2_SEL_MASK | IOU_SLCR_MIO_PIN_73_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_73_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_74 @ 0XFF180128

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[3]- (RX RGMII data) - PSU_IOU_SLCR_MIO_PIN_74_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[6]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_74_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_74_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_74_L3_SEL 0 - - Configures MIO Pin 74 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180128, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_74_L0_SEL_MASK | IOU_SLCR_MIO_PIN_74_L1_SEL_MASK | IOU_SLCR_MIO_PIN_74_L2_SEL_MASK | IOU_SLCR_MIO_PIN_74_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_74_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_75 @ 0XFF18012C

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_ctl- (RX RGMII control ) - PSU_IOU_SLCR_MIO_PIN_75_L0_SEL 1 - - Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[7]- (ULPI data bus) - PSU_IOU_SLCR_MIO_PIN_75_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Comma - d Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_75_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_75_L3_SEL 0 - - Configures MIO Pin 75 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF18012C, 0x000000FEU ,0x00000002U) - RegMask = (IOU_SLCR_MIO_PIN_75_L0_SEL_MASK | IOU_SLCR_MIO_PIN_75_L1_SEL_MASK | IOU_SLCR_MIO_PIN_75_L2_SEL_MASK | IOU_SLCR_MIO_PIN_75_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_75_OFFSET ,0x000000FEU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_76 @ 0XFF180130

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Output, sdio - _clk_out- (SDSDIO clock) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= mdio0, Output, gem0_mdc- (MDIO Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2_mdc- (MDIO Clock - 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_76_L3_SEL 6 - - Configures MIO Pin 76 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180130, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_76_L0_SEL_MASK | IOU_SLCR_MIO_PIN_76_L1_SEL_MASK | IOU_SLCR_MIO_PIN_76_L2_SEL_MASK | IOU_SLCR_MIO_PIN_76_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_76_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_PIN_77 @ 0XFF180134

      - - Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L0_SEL 0 - - Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L1_SEL 0 - - Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L2_SEL 0 - - Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= mdio0, Input, gem0_mdio_in- (MDIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, gem1_mdio_in- (MD - O Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_o - t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Output, gem3_mdio_out- (MDIO Data) 7= Not Used - PSU_IOU_SLCR_MIO_PIN_77_L3_SEL 6 - - Configures MIO Pin 77 peripheral interface mapping - (OFFSET, MASK, VALUE) (0XFF180134, 0x000000FEU ,0x000000C0U) - RegMask = (IOU_SLCR_MIO_PIN_77_L0_SEL_MASK | IOU_SLCR_MIO_PIN_77_L1_SEL_MASK | IOU_SLCR_MIO_PIN_77_L2_SEL_MASK | IOU_SLCR_MIO_PIN_77_L3_SEL_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT - | 0x00000000U << IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT - | 0x00000006U << IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_PIN_77_OFFSET ,0x000000FEU ,0x000000C0U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI0 @ 0XFF180204

      - - Master Tri-state Enable for pin 0, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI 0 - - Master Tri-state Enable for pin 1, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI 0 - - Master Tri-state Enable for pin 2, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI 0 - - Master Tri-state Enable for pin 3, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI 0 - - Master Tri-state Enable for pin 4, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI 0 - - Master Tri-state Enable for pin 5, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI 0 - - Master Tri-state Enable for pin 6, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI 0 - - Master Tri-state Enable for pin 7, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI 0 - - Master Tri-state Enable for pin 8, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI 0 - - Master Tri-state Enable for pin 9, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI 0 - - Master Tri-state Enable for pin 10, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI 0 - - Master Tri-state Enable for pin 11, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI 0 - - Master Tri-state Enable for pin 12, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI 0 - - Master Tri-state Enable for pin 13, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI 0 - - Master Tri-state Enable for pin 14, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI 0 - - Master Tri-state Enable for pin 15, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI 0 - - Master Tri-state Enable for pin 16, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI 0 - - Master Tri-state Enable for pin 17, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI 0 - - Master Tri-state Enable for pin 18, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI 1 - - Master Tri-state Enable for pin 19, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI 0 - - Master Tri-state Enable for pin 20, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI 0 - - Master Tri-state Enable for pin 21, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI 1 - - Master Tri-state Enable for pin 22, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI 0 - - Master Tri-state Enable for pin 23, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI 0 - - Master Tri-state Enable for pin 24, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI 0 - - Master Tri-state Enable for pin 25, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI 1 - - Master Tri-state Enable for pin 26, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI 0 - - Master Tri-state Enable for pin 27, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI 0 - - Master Tri-state Enable for pin 28, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI 1 - - Master Tri-state Enable for pin 29, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI 0 - - Master Tri-state Enable for pin 30, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI 1 - - Master Tri-state Enable for pin 31, active high - PSU_IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI 0 - - MIO pin Tri-state Enables, 31:0 - (OFFSET, MASK, VALUE) (0XFF180204, 0xFFFFFFFFU ,0x52240000U) - RegMask = (IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK | IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI0_OFFSET ,0xFFFFFFFFU ,0x52240000U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI1 @ 0XFF180208

      - - Master Tri-state Enable for pin 32, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI 0 - - Master Tri-state Enable for pin 33, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI 0 - - Master Tri-state Enable for pin 34, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI 0 - - Master Tri-state Enable for pin 35, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI 0 - - Master Tri-state Enable for pin 36, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI 0 - - Master Tri-state Enable for pin 37, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI 0 - - Master Tri-state Enable for pin 38, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI 0 - - Master Tri-state Enable for pin 39, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI 0 - - Master Tri-state Enable for pin 40, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI 0 - - Master Tri-state Enable for pin 41, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI 0 - - Master Tri-state Enable for pin 42, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI 0 - - Master Tri-state Enable for pin 43, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI 0 - - Master Tri-state Enable for pin 44, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI 1 - - Master Tri-state Enable for pin 45, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI 1 - - Master Tri-state Enable for pin 46, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI 0 - - Master Tri-state Enable for pin 47, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI 0 - - Master Tri-state Enable for pin 48, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI 0 - - Master Tri-state Enable for pin 49, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI 0 - - Master Tri-state Enable for pin 50, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI 0 - - Master Tri-state Enable for pin 51, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI 0 - - Master Tri-state Enable for pin 52, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI 1 - - Master Tri-state Enable for pin 53, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI 1 - - Master Tri-state Enable for pin 54, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI 0 - - Master Tri-state Enable for pin 55, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI 1 - - Master Tri-state Enable for pin 56, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI 0 - - Master Tri-state Enable for pin 57, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI 0 - - Master Tri-state Enable for pin 58, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI 0 - - Master Tri-state Enable for pin 59, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI 0 - - Master Tri-state Enable for pin 60, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI 0 - - Master Tri-state Enable for pin 61, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI 0 - - Master Tri-state Enable for pin 62, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI 0 - - Master Tri-state Enable for pin 63, active high - PSU_IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI 0 - - MIO pin Tri-state Enables, 63:32 - (OFFSET, MASK, VALUE) (0XFF180208, 0xFFFFFFFFU ,0x00B03000U) - RegMask = (IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK | IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI1_OFFSET ,0xFFFFFFFFU ,0x00B03000U); - /*############################################################################################################################ */ - - /*Register : MIO_MST_TRI2 @ 0XFF18020C

      - - Master Tri-state Enable for pin 64, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI 0 - - Master Tri-state Enable for pin 65, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI 0 - - Master Tri-state Enable for pin 66, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI 0 - - Master Tri-state Enable for pin 67, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI 0 - - Master Tri-state Enable for pin 68, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI 0 - - Master Tri-state Enable for pin 69, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI 0 - - Master Tri-state Enable for pin 70, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI 1 - - Master Tri-state Enable for pin 71, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI 1 - - Master Tri-state Enable for pin 72, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI 1 - - Master Tri-state Enable for pin 73, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI 1 - - Master Tri-state Enable for pin 74, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI 1 - - Master Tri-state Enable for pin 75, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI 1 - - Master Tri-state Enable for pin 76, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI 0 - - Master Tri-state Enable for pin 77, active high - PSU_IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI 0 - - MIO pin Tri-state Enables, 77:64 - (OFFSET, MASK, VALUE) (0XFF18020C, 0x00003FFFU ,0x00000FC0U) - RegMask = (IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK | IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT - | 0x00000001U << IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT - | 0x00000000U << IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_MST_TRI2_OFFSET ,0x00003FFFU ,0x00000FC0U); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl0 @ 0XFF180138

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180138, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl1 @ 0XFF18013C

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF18013C, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl3 @ 0XFF180140

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180140, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl4 @ 0XFF180144

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank0_pull_enable is set, this selects pull up or pull down for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180144, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl5 @ 0XFF180148

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank0_pullupdown to selects pull up or pull down for MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF180148, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank0_ctrl6 @ 0XFF18014C

      - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[0]. - PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 0 - control MIO[25:0] - (OFFSET, MASK, VALUE) (0XFF18014C, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK0_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl0 @ 0XFF180154

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180154, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl1 @ 0XFF180158

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180158, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl3 @ 0XFF18015C

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF18015C, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl4 @ 0XFF180160

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank1_pull_enable is set, this selects pull up or pull down for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180160, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl5 @ 0XFF180164

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank1_pullupdown to selects pull up or pull down for MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180164, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank1_ctrl6 @ 0XFF180168

      - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[26]. - PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 1 - control MIO[51:26] - (OFFSET, MASK, VALUE) (0XFF180168, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK1_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl0 @ 0XFF180170

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25 1 - - Drive0 control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180170, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK | IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL0_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl1 @ 0XFF180174

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25 1 - - Drive1 control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180174, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK | IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL1_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl3 @ 0XFF180178

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25 0 - - Selects either Schmitt or CMOS input for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180178, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL3_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl4 @ 0XFF18017C

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 - - When mio_bank2_pull_enable is set, this selects pull up or pull down for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF18017C, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL4_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl5 @ 0XFF180180

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24 1 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25 1 - - When set, this enables mio_bank2_pullupdown to selects pull up or pull down for MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180180, 0x03FFFFFFU ,0x03FFFFFFU) - RegMask = (IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK | IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT - | 0x00000001U << IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL5_OFFSET ,0x03FFFFFFU ,0x03FFFFFFU); - /*############################################################################################################################ */ - - /*Register : bank2_ctrl6 @ 0XFF180184

      - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 - - Each bit applies to a single IO. Bit 0 for MIO[52]. - PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 - - Slew rate control to MIO Bank 2 - control MIO[77:52] - (OFFSET, MASK, VALUE) (0XFF180184, 0x03FFFFFFU ,0x00000000U) - RegMask = (IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK | IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT - | 0x00000000U << IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_BANK2_CTRL6_OFFSET ,0x03FFFFFFU ,0x00000000U); - /*############################################################################################################################ */ - - // : LOOPBACK - /*Register : MIO_LOOPBACK @ 0XFF180200

      - - I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outp - ts to I2C 0 inputs. - PSU_IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1 0 - - CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 R - . - PSU_IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1 0 - - UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 - outputs to UART 0 inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD and RI not used. - PSU_IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1 0 - - SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outp - ts to SPI 0 inputs. The other SPI core will appear on the LS Slave Select. - PSU_IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1 0 - - Loopback function within MIO - (OFFSET, MASK, VALUE) (0XFF180200, 0x0000000FU ,0x00000000U) - RegMask = (IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK | IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK | IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK | IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT - | 0x00000000U << IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_MIO_LOOPBACK_OFFSET ,0x0000000FU ,0x00000000U); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_peripherals_init_data() { - // : RESET BLOCKS - // : TIMESTAMP - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      +unsigned long psu_mio_init_data(void) +{ + /* + * MIO PROGRAMMING + */ + /* + * Register : MIO_PIN_0 @ 0XFF180000 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- + * (QSPI Clock) + * PSU_IOU_SLCR_MIO_PIN_0_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_0_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[0]- (Test Scan Port) = test_scan, Output, test_scan_out[0 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_0_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_0_L3_SEL 0 + + * Configures MIO Pin 0 peripheral interface mapping. S + * (OFFSET, MASK, VALUE) (0XFF180000, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_0_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_1 @ 0XFF180004 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (Q + * SPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_1_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_1_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[1]- (Test Scan Port) = test_scan, Output, test_scan_out[1 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_1_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Ou + * tput, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) + * PSU_IOU_SLCR_MIO_PIN_1_L3_SEL 0 + + * Configures MIO Pin 1 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180004, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_1_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_2 @ 0XFF180008 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI + * Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_2_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_2_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[2]- (Test Scan Port) = test_scan, Output, test_scan_out[2 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_2_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, I + * nput, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_2_L3_SEL 0 + + * Configures MIO Pin 2 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180008, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_2_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_3 @ 0XFF18000C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI + * Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_3_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_3_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[3]- (Test Scan Port) = test_scan, Output, test_scan_out[3 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_3_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_3_L3_SEL 0 + + * Configures MIO Pin 3 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18000C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_3_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_4 @ 0XFF180010 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- ( + * QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) + * PSU_IOU_SLCR_MIO_PIN_4_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_4_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[4]- (Test Scan Port) = test_scan, Output, test_scan_out[4 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_4_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_4_L3_SEL 0 + + * Configures MIO Pin 4 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180010, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_4_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_5 @ 0XFF180014 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- + * (QSPI Slave Select) + * PSU_IOU_SLCR_MIO_PIN_5_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_5_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[5]- (Test Scan Port) = test_scan, Output, test_scan_out[5 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_5_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_5_L3_SEL 0 + + * Configures MIO Pin 5 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180014, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_5_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_6 @ 0XFF180018 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_l + * pbk- (QSPI Clock to be fed-back) + * PSU_IOU_SLCR_MIO_PIN_6_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_6_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[6]- (Test Scan Port) = test_scan, Output, test_scan_out[6 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_6_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= s + * pi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TT + * C Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, + * Output, tracedq[4]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_6_L3_SEL 0 + + * Configures MIO Pin 6 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180018, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_6_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_7 @ 0XFF18001C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_ + * upper- (QSPI Slave Select upper) + * PSU_IOU_SLCR_MIO_PIN_7_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_7_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[7]- (Test Scan Port) = test_scan, Output, test_scan_out[7 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_7_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Ma + * ster Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua + * 0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, t + * racedq[5]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_7_L3_SEL 0 + + * Configures MIO Pin 7 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18001C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_7_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_8 @ 0XFF180020 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_8_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_8_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[8]- (Test Scan Port) = test_scan, Output, test_scan_out[8 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_8_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Maste + * r Selects) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_ + * txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tra + * ce Port Databus) + * PSU_IOU_SLCR_MIO_PIN_8_L3_SEL 0 + + * Configures MIO Pin 8 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180020, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_8_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_9 @ 0XFF180024 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_9_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_9_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[9]- (Test Scan Port) = test_scan, Output, test_scan_out[9 + * ]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_9_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master S + * elects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, + * Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UA + * RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Data + * bus) + * PSU_IOU_SLCR_MIO_PIN_9_L3_SEL 0 + + * Configures MIO Pin 9 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180024, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_9_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_10 @ 0XFF180028 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_10_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_10_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[10]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 10]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_10_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_10_L3_SEL 0 + + * Configures MIO Pin 10 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180028, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_10_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_11 @ 0XFF18002C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_11_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_11_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[11]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 11]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_11_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_11_L3_SEL 0 + + * Configures MIO Pin 11 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18002C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_11_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_12 @ 0XFF180030 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_ + * upper- (QSPI Upper Clock) + * PSU_IOU_SLCR_MIO_PIN_12_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) + * PSU_IOU_SLCR_MIO_PIN_12_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[12]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 12]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_12_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJT + * AG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_ + * sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, O + * utput, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace + * dq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_12_L3_SEL 0 + + * Configures MIO Pin 12 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180030, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_12_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_13 @ 0XFF180034 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_13_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_13_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, + * test_scan_out[13]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_13_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTA + * G TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, + * Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UAR + * T receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Data + * bus) + * PSU_IOU_SLCR_MIO_PIN_13_L3_SEL 0 + + * Configures MIO Pin 13 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180034, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_13_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_14 @ 0XFF180038 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_14_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND + * Command Latch Enable) + * PSU_IOU_SLCR_MIO_PIN_14_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, + * test_scan_out[14]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_14_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJT + * AG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, + * Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver + * serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_14_L3_SEL 2 + + * Configures MIO Pin 14 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180038, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_14_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_15 @ 0XFF18003C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_15_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND + * Address Latch Enable) + * PSU_IOU_SLCR_MIO_PIN_15_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, + * test_scan_out[15]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_15_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJT + * AG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outp + * ut, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_ou + * t- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seria + * l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_15_L3_SEL 2 + + * Configures MIO Pin 15 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18003C, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_15_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_16 @ 0XFF180040 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_16_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_16_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, + * test_scan_out[16]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_16_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_16_L3_SEL 2 + + * Configures MIO Pin 16 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180040, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_16_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_17 @ 0XFF180044 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_17_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_17_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, + * test_scan_out[17]- (Test Scan Port) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_17_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_17_L3_SEL 2 + + * Configures MIO Pin 17 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180044, 0x000000FEU ,0x00000040U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_17_OFFSET, 0x000000FEU, 0x00000040U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_18 @ 0XFF180048 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_18_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_18_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, + * test_scan_out[18]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_18_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_18_L3_SEL 6 + + * Configures MIO Pin 18 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180048, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_18_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_19 @ 0XFF18004C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_19_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_19_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, + * test_scan_out[19]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_19_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_19_L3_SEL 6 + + * Configures MIO Pin 19 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18004C, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_19_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_20 @ 0XFF180050 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_20_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_20_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, + * test_scan_out[20]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_20_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua + * 1_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_20_L3_SEL 6 + + * Configures MIO Pin 20 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180050, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_20_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_21 @ 0XFF180054 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_21_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_21_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= tes + * t_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, t + * est_scan_out[21]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU E + * xt Tamper) + * PSU_IOU_SLCR_MIO_PIN_21_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc + * 1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- ( + * UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_21_L3_SEL 6 + + * Configures MIO Pin 21 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180054, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_21_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_22 @ 0XFF180058 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_22_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAN + * D Write Enable) + * PSU_IOU_SLCR_MIO_PIN_22_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- (Test Scan Port) = + * test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, c + * su_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_22_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed + * PSU_IOU_SLCR_MIO_PIN_22_L3_SEL 0 + + * Configures MIO Pin 22 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180058, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_22_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_23 @ 0XFF18005C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_23_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_23_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= test_scan, Input, test_scan_in[23]- (Test Scan Po + * rt) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Inp + * ut, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_23_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_23_L3_SEL 0 + + * Configures MIO Pin 23 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18005C, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_23_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_24 @ 0XFF180060 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_24_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND Data Bus) + * PSU_IOU_SLCR_MIO_PIN_24_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= test_scan, Input, test_scan_in[24]- (Test + * Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= + * csu, Input, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_24_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= N + * ot Used + * PSU_IOU_SLCR_MIO_PIN_24_L3_SEL 1 + + * Configures MIO Pin 24 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180060, 0x000000FEU ,0x00000020U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_24_OFFSET, 0x000000FEU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_25 @ 0XFF180064 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_25_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAN + * D Read Enable) + * PSU_IOU_SLCR_MIO_PIN_25_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= test_scan, Input, test_scan_in[25]- + * (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port + * ) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_25_L2_SEL 0 + + * Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_ou + * t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in + * put) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_25_L3_SEL 1 + + * Configures MIO Pin 25 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180064, 0x000000FEU ,0x00000020U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_25_OFFSET, 0x000000FEU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_26 @ 0XFF180068 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_26_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) + * PSU_IOU_SLCR_MIO_PIN_26_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[26]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_26_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_26_L3_SEL 0 + + * Configures MIO Pin 26 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180068, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_26_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_27 @ 0XFF18006C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_27_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_27_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[27]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_27_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_27_L3_SEL 0 + + * Configures MIO Pin 27 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18006C, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_27_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_28 @ 0XFF180070 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_28_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) + * PSU_IOU_SLCR_MIO_PIN_28_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[28]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_28_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_28_L3_SEL 0 + + * Configures MIO Pin 28 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180070, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_28_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_29 @ 0XFF180074 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_29_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_29_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[29]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_29_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, + * spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_29_L3_SEL 0 + + * Configures MIO Pin 29 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180074, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_29_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_30 @ 0XFF180078 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_30_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_30_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[30]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_30_L2_SEL 3 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0 + * , Output, spi0_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock + * ) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, + * tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_30_L3_SEL 0 + + * Configures MIO Pin 30 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180078, 0x000000FEU ,0x00000018U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_30_OFFSET, 0x000000FEU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_31 @ 0XFF18007C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_31_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_31_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[31]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_31_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TT + * C Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial outp + * ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_31_L3_SEL 0 + + * Configures MIO Pin 31 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18007C, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_31_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_32 @ 0XFF180080 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_32_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) + * PSU_IOU_SLCR_MIO_PIN_32_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[32]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_32_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= t + * race, Output, tracedq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_32_L3_SEL 0 + + * Configures MIO Pin 32 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180080, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_32_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_33 @ 0XFF180084 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_33_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_33_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[33]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) + * PSU_IOU_SLCR_MIO_PIN_33_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Mas + * ter Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1 + * , Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq + * [11]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_33_L3_SEL 0 + + * Configures MIO Pin 33 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180084, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_33_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_34 @ 0XFF180088 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_34_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_34_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[34]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_34_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master + * Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rx + * d- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Po + * rt Databus) + * PSU_IOU_SLCR_MIO_PIN_34_L3_SEL 0 + + * Configures MIO Pin 34 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180088, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_34_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_35 @ 0XFF18008C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_35_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_35_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[35]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_35_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2 + * , Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- ( + * UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Po + * rt Databus) + * PSU_IOU_SLCR_MIO_PIN_35_L3_SEL 0 + + * Configures MIO Pin 35 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18008C, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_35_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_36 @ 0XFF180090 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_36_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_36_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[36]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) + * PSU_IOU_SLCR_MIO_PIN_36_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_36_L3_SEL 0 + + * Configures MIO Pin 36 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180090, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_36_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_37 @ 0XFF180094 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_37_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) + * PSU_IOU_SLCR_MIO_PIN_37_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[37]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) + * PSU_IOU_SLCR_MIO_PIN_37_L2_SEL 1 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_37_L3_SEL 0 + + * Configures MIO Pin 37 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180094, 0x000000FEU ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_37_OFFSET, 0x000000FEU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_38 @ 0XFF180098 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_38_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_38_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_38_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTA + * G TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_s + * clk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, In + * put, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- + * (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_38_L3_SEL 0 + + * Configures MIO Pin 38 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180098, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_38_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_39 @ 0XFF18009C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_39_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_39_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= sd1, Input, sd1_data_in[4]- (8-bit Data b + * us) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_39_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJT + * AG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, + * Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (U + * ART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port + * Control Signal) + * PSU_IOU_SLCR_MIO_PIN_39_L3_SEL 0 + + * Configures MIO Pin 39 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18009C, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_39_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_40 @ 0XFF1800A0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_40_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_40_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= sd1 + * , Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[ + * 5]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_40_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJ + * TAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3 + * , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmi + * tter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_40_L3_SEL 0 + + * Configures MIO Pin 40 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_40_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_41 @ 0XFF1800A4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_41_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_41_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[6]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_41_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTA + * G TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outpu + * t, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out + * - (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inp + * ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_41_L3_SEL 0 + + * Configures MIO Pin 41 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_41_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_42 @ 0XFF1800A8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_42_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_42_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[7]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_42_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= sp + * i0, Output, spi0_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_42_L3_SEL 0 + + * Configures MIO Pin 42 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800A8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_42_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_43 @ 0XFF1800AC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_43_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_43_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_43_L2_SEL 0 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) + * 4= spi0, Input, spi0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_43_L3_SEL 0 + + * Configures MIO Pin 43 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800AC, 0x000000FEU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_43_OFFSET, 0x000000FEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_44 @ 0XFF1800B0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_44_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4 + * = spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * Not Used + * PSU_IOU_SLCR_MIO_PIN_44_L3_SEL 0 + + * Configures MIO Pin 44 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_44_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_45 @ 0XFF1800B4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_45_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_45_L3_SEL 0 + + * Configures MIO Pin 45 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_45_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_46 @ 0XFF1800B8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_46_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_46_L3_SEL 0 + + * Configures MIO Pin 46 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800B8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_46_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_47 @ 0XFF1800BC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_47_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Maste + * r Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= tt + * c0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_47_L3_SEL 0 + + * Configures MIO Pin 47 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800BC, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_47_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_48 @ 0XFF1800C0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_48_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_48_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_48_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Us + * ed + * PSU_IOU_SLCR_MIO_PIN_48_L3_SEL 0 + + * Configures MIO Pin 48 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C0, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_48_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_49 @ 0XFF1800C4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_49_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd + * 1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_49_L3_SEL 0 + + * Configures MIO Pin 49 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C4, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_49_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_50 @ 0XFF1800C8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) + * PSU_IOU_SLCR_MIO_PIN_50_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Input, sd1_cmd_in- (Command Ind + * icator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= + * ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART rece + * iver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_50_L3_SEL 0 + + * Configures MIO Pin 50 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800C8, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_50_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_51 @ 0XFF1800CC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) + * PSU_IOU_SLCR_MIO_PIN_51_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdi + * o1_clk_out- (SDSDIO clock) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L2_SEL 2 + + * Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Dat + * a) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wa + * ve_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter + * serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_51_L3_SEL 0 + + * Configures MIO Pin 51 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800CC, 0x000000FEU ,0x00000010U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_51_OFFSET, 0x000000FEU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_52 @ 0XFF1800D0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_52_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_i + * n- (ULPI Clock) + * PSU_IOU_SLCR_MIO_PIN_52_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_52_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) + * PSU_IOU_SLCR_MIO_PIN_52_L3_SEL 0 + + * Configures MIO Pin 52 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_52_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_53 @ 0XFF1800D4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_53_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- + * (Data bus direction control) + * PSU_IOU_SLCR_MIO_PIN_53_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_53_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Ou + * tput, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) + * PSU_IOU_SLCR_MIO_PIN_53_L3_SEL 0 + + * Configures MIO Pin 53 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_53_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_54 @ 0XFF1800D8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_54_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_54_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_54_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, I + * nput, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_54_L3_SEL 0 + + * Configures MIO Pin 54 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800D8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_54_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_55 @ 0XFF1800DC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_55_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- + * (Data flow control signal from the PHY) + * PSU_IOU_SLCR_MIO_PIN_55_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_55_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_55_L3_SEL 0 + + * Configures MIO Pin 55 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800DC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_55_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_56 @ 0XFF1800E0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_56_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_56_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_56_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_56_L3_SEL 0 + + * Configures MIO Pin 56 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_56_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_57 @ 0XFF1800E4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_57_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_57_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_57_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_57_L3_SEL 0 + + * Configures MIO Pin 57 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_57_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_58 @ 0XFF1800E8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_58_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- + * (Asserted to end or interrupt transfers) + * PSU_IOU_SLCR_MIO_PIN_58_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_58_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_58_L3_SEL 0 + + * Configures MIO Pin 58 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800E8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_58_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_59 @ 0XFF1800EC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_59_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_59_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_59_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) + * PSU_IOU_SLCR_MIO_PIN_59_L3_SEL 0 + + * Configures MIO Pin 59 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800EC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_59_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_60 @ 0XFF1800F0 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_60_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_60_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_60_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_60_L3_SEL 0 + + * Configures MIO Pin 60 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F0, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_60_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_61 @ 0XFF1800F4 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_61_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_61_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_61_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, + * spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_61_L3_SEL 0 + + * Configures MIO Pin 61 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F4, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_61_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_62 @ 0XFF1800F8 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_62_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_62_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_62_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_62_L3_SEL 0 + + * Configures MIO Pin 62 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800F8, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_62_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_63 @ 0XFF1800FC + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_63_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_63_L1_SEL 1 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used + * PSU_IOU_SLCR_MIO_PIN_63_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_63_L3_SEL 0 + + * Configures MIO Pin 63 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF1800FC, 0x000000FEU ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_63_OFFSET, 0x000000FEU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_64 @ 0XFF180100 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * clk- (TX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_64_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_i + * n- (ULPI Clock) + * PSU_IOU_SLCR_MIO_PIN_64_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_64_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4 + * = spi0, Output, spi0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * trace, Output, tracedq[10]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_64_L3_SEL 0 + + * Configures MIO Pin 64 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180100, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_64_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_65 @ 0XFF180104 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [0]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_65_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- + * (Data bus direction control) + * PSU_IOU_SLCR_MIO_PIN_65_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= Not Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_65_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace + * dq[11]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_65_L3_SEL 0 + + * Configures MIO Pin 65 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180104, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_65_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_66 @ 0XFF180108 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [1]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_66_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_66_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= Not + * Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_66_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace + * Port Databus) + * PSU_IOU_SLCR_MIO_PIN_66_L3_SEL 0 + + * Configures MIO Pin 66 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180108, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_66_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_67 @ 0XFF18010C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [2]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_67_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- + * (Data flow control signal from the PHY) + * PSU_IOU_SLCR_MIO_PIN_67_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= N + * ot Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_67_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Maste + * r Selects) 4= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= tt + * c2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace + * Port Databus) + * PSU_IOU_SLCR_MIO_PIN_67_L3_SEL 0 + + * Configures MIO Pin 67 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18010C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_67_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_68 @ 0XFF180110 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [3]- (TX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_68_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_68_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= N + * ot Used 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_68_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_68_L3_SEL 0 + + * Configures MIO Pin 68 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180110, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_68_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_69 @ 0XFF180114 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * ctl- (TX RGMII control) + * PSU_IOU_SLCR_MIO_PIN_69_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_69_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_69_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) + * PSU_IOU_SLCR_MIO_PIN_69_L3_SEL 0 + + * Configures MIO Pin 69 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180114, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_69_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_70 @ 0XFF180118 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * lk- (RX RGMII clock) + * PSU_IOU_SLCR_MIO_PIN_70_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- + * (Asserted to end or interrupt transfers) + * PSU_IOU_SLCR_MIO_PIN_70_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_70_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed + * PSU_IOU_SLCR_MIO_PIN_70_L3_SEL 0 + + * Configures MIO Pin 70 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180118, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_70_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_71 @ 0XFF18011C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 0]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_71_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_71_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_71_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_71_L3_SEL 0 + + * Configures MIO Pin 71 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18011C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_71_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_72 @ 0XFF180120 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 1]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_72_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_72_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_72_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= Not Used 6= ua1, Output, ua1_txd- (UART transmitter seri + * al output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_72_L3_SEL 0 + + * Configures MIO Pin 72 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180120, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_72_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_73 @ 0XFF180124 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 2]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_73_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_73_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_73_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not + * Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_73_L3_SEL 0 + + * Configures MIO Pin 73 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180124, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_73_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_74 @ 0XFF180128 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 3]- (RX RGMII data) + * PSU_IOU_SLCR_MIO_PIN_74_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_74_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[3]- (8-bit Data bus) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_74_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- ( + * UART receiver serial input) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_74_L3_SEL 0 + + * Configures MIO Pin 74 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180128, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_74_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_75 @ 0XFF18012C + + * Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * tl- (RX RGMII control ) + * PSU_IOU_SLCR_MIO_PIN_75_L0_SEL 1 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data + * bus) + * PSU_IOU_SLCR_MIO_PIN_75_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Command Indicator) = sd1 + * , Output, sdio1_cmd_out- (Command Indicator) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_75_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_t + * xd- (UART transmitter serial output) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_75_L3_SEL 0 + + * Configures MIO Pin 75 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF18012C, 0x000000FEU ,0x00000002U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_75_OFFSET, 0x000000FEU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_76 @ 0XFF180130 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L0_SEL 0 + + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L1_SEL 0 + + * Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Output, sdio1_clk_out- (SDSDIO + * clock) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L2_SEL 0 + + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= mdio0, Output, gem0_mdc- (MDI + * O Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2 + * _mdc- (MDIO Clock) 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_76_L3_SEL 6 + + * Configures MIO Pin 76 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180130, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_76_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ + + /* + * Register : MIO_PIN_77 @ 0XFF180134 + + * Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L0_SEL 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 + * Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L1_SEL 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00100000U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK | 0 ); + * Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio + * 1_cd_n- (SD card detect from connector) 3= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L2_SEL 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00100000U ,0x00000000U); - /*############################################################################################################################ */ + * Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= mdio0, Input, gem0_mdio_in- (M + * DIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, + * gem1_mdio_in- (MDIO Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5 + * = mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_ou + * t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Outp + * ut, gem3_mdio_out- (MDIO Data) 7= Not Used + * PSU_IOU_SLCR_MIO_PIN_77_L3_SEL 6 - // : ENET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

      + * Configures MIO Pin 77 peripheral interface mapping + * (OFFSET, MASK, VALUE) (0XFF180134, 0x000000FEU ,0x000000C0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_PIN_77_OFFSET, 0x000000FEU, 0x000000C0U); +/*##################################################################### */ - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 + /* + * Register : MIO_MST_TRI0 @ 0XFF180204 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 0, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 1, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI 0 - // : QSPI - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 2, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 + * Master Tri-state Enable for pin 3, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 4, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 5, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI 0 - // : QSPI TAP DELAY - /*Register : IOU_TAPDLY_BYPASS @ 0XFF180390

      + * Master Tri-state Enable for pin 6, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI 0 - 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypass the Tap delay on the Rx clock signal of LQSPI - PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 + * Master Tri-state Enable for pin 7, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI 0 - IOU tap delay bypass for the LQSPI and NAND controllers - (OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) - RegMask = (IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK | 0 ); + * Master Tri-state Enable for pin 8, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI 0 - RegVal = ((0x00000001U << IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET ,0x00000004U ,0x00000004U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 9, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI 0 - // : NAND - // : USB - /*Register : RST_LPD_TOP @ 0XFF5E023C

      + * Master Tri-state Enable for pin 10, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI 0 - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 + * Master Tri-state Enable for pin 11, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI 0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 + * Master Tri-state Enable for pin 12, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI 0 - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 + * Master Tri-state Enable for pin 13, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI 0 - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * Master Tri-state Enable for pin 14, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000540U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 15, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI 0 - // : FPD RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      + * Master Tri-state Enable for pin 16, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI 0 - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0 + * Master Tri-state Enable for pin 17, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI 0 - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0 + * Master Tri-state Enable for pin 18, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI 1 - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0 + * Master Tri-state Enable for pin 19, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI 0 - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0 + * Master Tri-state Enable for pin 20, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI 0 - FPD WDT reset - PSU_CRF_APB_RST_FPD_TOP_SWDT_RESET 0 + * Master Tri-state Enable for pin 21, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI 1 - GDMA block level reset - PSU_CRF_APB_RST_FPD_TOP_GDMA_RESET 0 + * Master Tri-state Enable for pin 22, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI 0 - Pixel Processor (submodule of GPU) block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_PP0_RESET 0 + * Master Tri-state Enable for pin 23, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI 0 - Pixel Processor (submodule of GPU) block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_PP1_RESET 0 + * Master Tri-state Enable for pin 24, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI 0 - GPU block level reset - PSU_CRF_APB_RST_FPD_TOP_GPU_RESET 0 + * Master Tri-state Enable for pin 25, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI 1 - GT block level reset - PSU_CRF_APB_RST_FPD_TOP_GT_RESET 0 + * Master Tri-state Enable for pin 26, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI 0 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0 + * Master Tri-state Enable for pin 27, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI 0 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000F807EU ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | CRF_APB_RST_FPD_TOP_DP_RESET_MASK | CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK | CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK | CRF_APB_RST_FPD_TOP_GPU_RESET_MASK | CRF_APB_RST_FPD_TOP_GT_RESET_MASK | CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 28, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI 1 - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000F807EU ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 29, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI 0 - // : SD - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 30, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI 1 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_SDIO1_RESET 0 + * Master Tri-state Enable for pin 31, active high + * PSU_IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000040U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK | 0 ); + * MIO pin Tri-state Enables, 31:0 + * (OFFSET, MASK, VALUE) (0XFF180204, 0xFFFFFFFFU ,0x52240000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI0_OFFSET, + 0xFFFFFFFFU, 0x52240000U); +/*##################################################################### */ - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000040U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : MIO_MST_TRI1 @ 0XFF180208 - /*Register : CTRL_REG_SD @ 0XFF180310

      + * Master Tri-state Enable for pin 32, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI 0 - SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled - PSU_IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL 0 + * Master Tri-state Enable for pin 33, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI 0 - SD eMMC selection - (OFFSET, MASK, VALUE) (0XFF180310, 0x00008000U ,0x00000000U) - RegMask = (IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK | 0 ); + * Master Tri-state Enable for pin 34, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI 0 - RegVal = ((0x00000000U << IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_CTRL_REG_SD_OFFSET ,0x00008000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 35, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI 0 - /*Register : SD_CONFIG_REG2 @ 0XFF180320

      + * Master Tri-state Enable for pin 36, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI 0 - Should be set based on the final product usage 00 - Removable SCard Slot 01 - Embedded Slot for One Device 10 - Shared Bus Sl - t 11 - Reserved - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE 0 + * Master Tri-state Enable for pin 37, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI 0 - 1.8V Support 1: 1.8V supported 0: 1.8V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 0 + * Master Tri-state Enable for pin 38, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI 0 - 3.0V Support 1: 3.0V supported 0: 3.0V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V 0 + * Master Tri-state Enable for pin 39, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI 0 - 3.3V Support 1: 3.3V supported 0: 3.3V not supported support - PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V 1 + * Master Tri-state Enable for pin 40, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI 0 - SD Config Register 2 - (OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x00800000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK | IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK | 0 ); + * Master Tri-state Enable for pin 41, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI 0 - RegVal = ((0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT - | 0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT - | 0x00000000U << IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT - | 0x00000001U << IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG2_OFFSET ,0x33800000U ,0x00800000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 42, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI 0 - // : SD1 BASE CLOCK - /*Register : SD_CONFIG_REG1 @ 0XFF18031C

      + * Master Tri-state Enable for pin 43, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI 0 - Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. - PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc7 + * Master Tri-state Enable for pin 44, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI 1 - SD Config Register 1 - (OFFSET, MASK, VALUE) (0XFF18031C, 0x7F800000U ,0x63800000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK | 0 ); + * Master Tri-state Enable for pin 45, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI 1 - RegVal = ((0x000000C7U << IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG1_OFFSET ,0x7F800000U ,0x63800000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 46, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI 0 - // : SD1 RETUNER - /*Register : SD_CONFIG_REG3 @ 0XFF180324

      + * Master Tri-state Enable for pin 47, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI 0 - This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. Setting to 4'b0 disables Re-Tuning Timer. 0h - Get inf - rmation via other source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n = 2(n-1) seconds -- Bh = 1024 secon - s Fh - Ch = Reserved - PSU_IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR 0X0 + * Master Tri-state Enable for pin 48, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI 0 - SD Config Register 3 - (OFFSET, MASK, VALUE) (0XFF180324, 0x03C00000U ,0x00000000U) - RegMask = (IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK | 0 ); - - RegVal = ((0x00000000U << IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SLCR_SD_CONFIG_REG3_OFFSET ,0x03C00000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 49, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI 0 - // : CAN - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 50, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_CAN1_RESET 0 + * Master Tri-state Enable for pin 51, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000100U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 52, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI 1 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000100U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 53, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI 1 - // : I2C - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 54, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_I2C0_RESET 0 + * Master Tri-state Enable for pin 55, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI 1 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_I2C1_RESET 0 + * Master Tri-state Enable for pin 56, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000600U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK | CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 57, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000600U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 58, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI 0 - // : SWDT - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 59, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_SWDT_RESET 0 + * Master Tri-state Enable for pin 60, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00008000U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 61, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00008000U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 62, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI 0 - // : SPI - // : TTC - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 63, active high + * PSU_IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC0_RESET 0 + * MIO pin Tri-state Enables, 63:32 + * (OFFSET, MASK, VALUE) (0XFF180208, 0xFFFFFFFFU ,0x00B03000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI1_OFFSET, + 0xFFFFFFFFU, 0x00B03000U); +/*##################################################################### */ - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC1_RESET 0 + /* + * Register : MIO_MST_TRI2 @ 0XFF18020C - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC2_RESET 0 + * Master Tri-state Enable for pin 64, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_TTC3_RESET 0 + * Master Tri-state Enable for pin 65, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI 0 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00007800U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK | CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 66, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI 0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00007800U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 67, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI 0 - // : UART - /*Register : RST_LPD_IOU2 @ 0XFF5E0238

      + * Master Tri-state Enable for pin 68, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_UART0_RESET 0 + * Master Tri-state Enable for pin 69, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI 0 - Block level reset - PSU_CRL_APB_RST_LPD_IOU2_UART1_RESET 0 + * Master Tri-state Enable for pin 70, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI 1 - Software control register for the IOU block. Each bit will cause a singlerperipheral or part of the peripheral to be reset. - (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000006U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK | CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK | 0 ); + * Master Tri-state Enable for pin 71, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI 1 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU2_OFFSET ,0x00000006U ,0x00000000U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 72, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI 1 - // : UART BAUD RATE - /*Register : Baud_rate_divider_reg0 @ 0XFF000034

      + * Master Tri-state Enable for pin 73, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI 1 - Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate - PSU_UART0_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + * Master Tri-state Enable for pin 74, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI 1 - Baud Rate Divider Register - (OFFSET, MASK, VALUE) (0XFF000034, 0x000000FFU ,0x00000005U) - RegMask = (UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK | 0 ); + * Master Tri-state Enable for pin 75, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI 1 - RegVal = ((0x00000005U << UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_BAUD_RATE_DIVIDER_REG0_OFFSET ,0x000000FFU ,0x00000005U); - /*############################################################################################################################ */ + * Master Tri-state Enable for pin 76, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI 0 - /*Register : Baud_rate_gen_reg0 @ 0XFF000018

      + * Master Tri-state Enable for pin 77, active high + * PSU_IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI 0 - Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample - PSU_UART0_BAUD_RATE_GEN_REG0_CD 0x8f + * MIO pin Tri-state Enables, 77:64 + * (OFFSET, MASK, VALUE) (0XFF18020C, 0x00003FFFU ,0x00000FC0U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_MST_TRI2_OFFSET, + 0x00003FFFU, 0x00000FC0U); +/*##################################################################### */ - Baud Rate Generator Register. - (OFFSET, MASK, VALUE) (0XFF000018, 0x0000FFFFU ,0x0000008FU) - RegMask = (UART0_BAUD_RATE_GEN_REG0_CD_MASK | 0 ); + /* + * Register : bank0_ctrl0 @ 0XFF180138 - RegVal = ((0x0000008FU << UART0_BAUD_RATE_GEN_REG0_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_BAUD_RATE_GEN_REG0_OFFSET ,0x0000FFFFU ,0x0000008FU); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0 1 - /*Register : Control_reg0 @ 0XFF000000

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1 1 - Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK. - PSU_UART0_CONTROL_REG0_STPBRK 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2 1 - Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. - PSU_UART0_CONTROL_REG0_STTBRK 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3 1 - Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted. - PSU_UART0_CONTROL_REG0_RSTTO 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4 1 - Transmit disable: 0: enable transmitter 1: disable transmitter - PSU_UART0_CONTROL_REG0_TXDIS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5 1 - Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. - PSU_UART0_CONTROL_REG0_TXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6 1 - Receive disable: 0: enable 1: disable, regardless of the value of RXEN - PSU_UART0_CONTROL_REG0_RXDIS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7 1 - Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. - PSU_UART0_CONTROL_REG0_RXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8 1 - Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed. - PSU_UART0_CONTROL_REG0_TXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9 1 - Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed. - PSU_UART0_CONTROL_REG0_RXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10 1 - UART Control Register - (OFFSET, MASK, VALUE) (0XFF000000, 0x000001FFU ,0x00000017U) - RegMask = (UART0_CONTROL_REG0_STPBRK_MASK | UART0_CONTROL_REG0_STTBRK_MASK | UART0_CONTROL_REG0_RSTTO_MASK | UART0_CONTROL_REG0_TXDIS_MASK | UART0_CONTROL_REG0_TXEN_MASK | UART0_CONTROL_REG0_RXDIS_MASK | UART0_CONTROL_REG0_RXEN_MASK | UART0_CONTROL_REG0_TXRES_MASK | UART0_CONTROL_REG0_RXRES_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11 1 - RegVal = ((0x00000000U << UART0_CONTROL_REG0_STPBRK_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_STTBRK_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_RSTTO_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_TXDIS_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_TXEN_SHIFT - | 0x00000000U << UART0_CONTROL_REG0_RXDIS_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_RXEN_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_TXRES_SHIFT - | 0x00000001U << UART0_CONTROL_REG0_RXRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_CONTROL_REG0_OFFSET ,0x000001FFU ,0x00000017U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12 1 - /*Register : mode_reg0 @ 0XFF000004

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13 1 - Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback - PSU_UART0_MODE_REG0_CHMODE 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14 1 - Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved - PSU_UART0_MODE_REG0_NBSTOP 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15 1 - Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity - PSU_UART0_MODE_REG0_PAR 0x4 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16 1 - Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits - PSU_UART0_MODE_REG0_CHRL 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17 1 - Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8 - PSU_UART0_MODE_REG0_CLKS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18 1 - UART Mode Register - (OFFSET, MASK, VALUE) (0XFF000004, 0x000003FFU ,0x00000020U) - RegMask = (UART0_MODE_REG0_CHMODE_MASK | UART0_MODE_REG0_NBSTOP_MASK | UART0_MODE_REG0_PAR_MASK | UART0_MODE_REG0_CHRL_MASK | UART0_MODE_REG0_CLKS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19 1 - RegVal = ((0x00000000U << UART0_MODE_REG0_CHMODE_SHIFT - | 0x00000000U << UART0_MODE_REG0_NBSTOP_SHIFT - | 0x00000004U << UART0_MODE_REG0_PAR_SHIFT - | 0x00000000U << UART0_MODE_REG0_CHRL_SHIFT - | 0x00000000U << UART0_MODE_REG0_CLKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART0_MODE_REG0_OFFSET ,0x000003FFU ,0x00000020U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20 1 - /*Register : Baud_rate_divider_reg0 @ 0XFF010034

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21 1 - Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate - PSU_UART1_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22 1 - Baud Rate Divider Register - (OFFSET, MASK, VALUE) (0XFF010034, 0x000000FFU ,0x00000005U) - RegMask = (UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK | 0 ); - - RegVal = ((0x00000005U << UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_BAUD_RATE_DIVIDER_REG0_OFFSET ,0x000000FFU ,0x00000005U); - /*############################################################################################################################ */ - - /*Register : Baud_rate_gen_reg0 @ 0XFF010018

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23 1 - Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample - PSU_UART1_BAUD_RATE_GEN_REG0_CD 0x8f - - Baud Rate Generator Register. - (OFFSET, MASK, VALUE) (0XFF010018, 0x0000FFFFU ,0x0000008FU) - RegMask = (UART1_BAUD_RATE_GEN_REG0_CD_MASK | 0 ); - - RegVal = ((0x0000008FU << UART1_BAUD_RATE_GEN_REG0_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_BAUD_RATE_GEN_REG0_OFFSET ,0x0000FFFFU ,0x0000008FU); - /*############################################################################################################################ */ - - /*Register : Control_reg0 @ 0XFF010000

      - - Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK. - PSU_UART1_CONTROL_REG0_STPBRK 0x0 - - Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high. - PSU_UART1_CONTROL_REG0_STTBRK 0x0 - - Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted. - PSU_UART1_CONTROL_REG0_RSTTO 0x0 - - Transmit disable: 0: enable transmitter 1: disable transmitter - PSU_UART1_CONTROL_REG0_TXDIS 0x0 - - Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0. - PSU_UART1_CONTROL_REG0_TXEN 0x1 - - Receive disable: 0: enable 1: disable, regardless of the value of RXEN - PSU_UART1_CONTROL_REG0_RXDIS 0x0 - - Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero. - PSU_UART1_CONTROL_REG0_RXEN 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24 1 - Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed. - PSU_UART1_CONTROL_REG0_TXRES 0x1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25 1 - Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed. - PSU_UART1_CONTROL_REG0_RXRES 0x1 + * Drive0 control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180138, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ - UART Control Register - (OFFSET, MASK, VALUE) (0XFF010000, 0x000001FFU ,0x00000017U) - RegMask = (UART1_CONTROL_REG0_STPBRK_MASK | UART1_CONTROL_REG0_STTBRK_MASK | UART1_CONTROL_REG0_RSTTO_MASK | UART1_CONTROL_REG0_TXDIS_MASK | UART1_CONTROL_REG0_TXEN_MASK | UART1_CONTROL_REG0_RXDIS_MASK | UART1_CONTROL_REG0_RXEN_MASK | UART1_CONTROL_REG0_TXRES_MASK | UART1_CONTROL_REG0_RXRES_MASK | 0 ); + /* + * Register : bank0_ctrl1 @ 0XFF18013C - RegVal = ((0x00000000U << UART1_CONTROL_REG0_STPBRK_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_STTBRK_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_RSTTO_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_TXDIS_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_TXEN_SHIFT - | 0x00000000U << UART1_CONTROL_REG0_RXDIS_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_RXEN_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_TXRES_SHIFT - | 0x00000001U << UART1_CONTROL_REG0_RXRES_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_CONTROL_REG0_OFFSET ,0x000001FFU ,0x00000017U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0 1 - /*Register : mode_reg0 @ 0XFF010004

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1 1 - Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback - PSU_UART1_MODE_REG0_CHMODE 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2 1 - Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved - PSU_UART1_MODE_REG0_NBSTOP 0x0 - - Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity - PSU_UART1_MODE_REG0_PAR 0x4 - - Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits - PSU_UART1_MODE_REG0_CHRL 0x0 - - Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8 - PSU_UART1_MODE_REG0_CLKS 0x0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3 1 - UART Mode Register - (OFFSET, MASK, VALUE) (0XFF010004, 0x000003FFU ,0x00000020U) - RegMask = (UART1_MODE_REG0_CHMODE_MASK | UART1_MODE_REG0_NBSTOP_MASK | UART1_MODE_REG0_PAR_MASK | UART1_MODE_REG0_CHRL_MASK | UART1_MODE_REG0_CLKS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4 1 - RegVal = ((0x00000000U << UART1_MODE_REG0_CHMODE_SHIFT - | 0x00000000U << UART1_MODE_REG0_NBSTOP_SHIFT - | 0x00000004U << UART1_MODE_REG0_PAR_SHIFT - | 0x00000000U << UART1_MODE_REG0_CHRL_SHIFT - | 0x00000000U << UART1_MODE_REG0_CLKS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (UART1_MODE_REG0_OFFSET ,0x000003FFU ,0x00000020U); - /*############################################################################################################################ */ - - // : GPIO - // : ADMA TZ - /*Register : slcr_adma @ 0XFF4B0024

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5 1 - TrustZone Classification for ADMA - PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0XFF - - RPU TrustZone settings - (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) - RegMask = (LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK | 0 ); - - RegVal = ((0x000000FFU << LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_SLCR_SECURE_SLCR_ADMA_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - // : CSU TAMPERING - // : CSU TAMPER STATUS - /*Register : tamper_status @ 0XFFCA5000

      - - CSU regsiter - PSU_CSU_TAMPER_STATUS_TAMPER_0 0 - - External MIO - PSU_CSU_TAMPER_STATUS_TAMPER_1 0 - - JTAG toggle detect - PSU_CSU_TAMPER_STATUS_TAMPER_2 0 - - PL SEU error - PSU_CSU_TAMPER_STATUS_TAMPER_3 0 - - AMS over temperature alarm for LPD - PSU_CSU_TAMPER_STATUS_TAMPER_4 0 - - AMS over temperature alarm for APU - PSU_CSU_TAMPER_STATUS_TAMPER_5 0 - - AMS voltage alarm for VCCPINT_FPD - PSU_CSU_TAMPER_STATUS_TAMPER_6 0 - - AMS voltage alarm for VCCPINT_LPD - PSU_CSU_TAMPER_STATUS_TAMPER_7 0 - - AMS voltage alarm for VCCPAUX - PSU_CSU_TAMPER_STATUS_TAMPER_8 0 - - AMS voltage alarm for DDRPHY - PSU_CSU_TAMPER_STATUS_TAMPER_9 0 - - AMS voltage alarm for PSIO bank 0/1/2 - PSU_CSU_TAMPER_STATUS_TAMPER_10 0 - - AMS voltage alarm for PSIO bank 3 (dedicated pins) - PSU_CSU_TAMPER_STATUS_TAMPER_11 0 - - AMS voltaage alarm for GT - PSU_CSU_TAMPER_STATUS_TAMPER_12 0 - - Tamper Response Status - (OFFSET, MASK, VALUE) (0XFFCA5000, 0x00001FFFU ,0x00000000U) - RegMask = (CSU_TAMPER_STATUS_TAMPER_0_MASK | CSU_TAMPER_STATUS_TAMPER_1_MASK | CSU_TAMPER_STATUS_TAMPER_2_MASK | CSU_TAMPER_STATUS_TAMPER_3_MASK | CSU_TAMPER_STATUS_TAMPER_4_MASK | CSU_TAMPER_STATUS_TAMPER_5_MASK | CSU_TAMPER_STATUS_TAMPER_6_MASK | CSU_TAMPER_STATUS_TAMPER_7_MASK | CSU_TAMPER_STATUS_TAMPER_8_MASK | CSU_TAMPER_STATUS_TAMPER_9_MASK | CSU_TAMPER_STATUS_TAMPER_10_MASK | CSU_TAMPER_STATUS_TAMPER_11_MASK | CSU_TAMPER_STATUS_TAMPER_12_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6 1 - RegVal = ((0x00000000U << CSU_TAMPER_STATUS_TAMPER_0_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_1_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_2_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_3_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_4_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_5_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_6_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_7_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_8_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_9_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_10_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_11_SHIFT - | 0x00000000U << CSU_TAMPER_STATUS_TAMPER_12_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CSU_TAMPER_STATUS_OFFSET ,0x00001FFFU ,0x00000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7 1 - // : CSU TAMPER RESPONSE - // : AFIFM INTERFACE WIDTH - // : CPU QOS DEFAULT - /*Register : ACE_CTRL @ 0XFD5C0060

      - - Set ACE outgoing AWQOS value - PSU_APU_ACE_CTRL_AWQOS 0X0 - - Set ACE outgoing ARQOS value - PSU_APU_ACE_CTRL_ARQOS 0X0 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8 1 - ACE Control Register - (OFFSET, MASK, VALUE) (0XFD5C0060, 0x000F000FU ,0x00000000U) - RegMask = (APU_ACE_CTRL_AWQOS_MASK | APU_ACE_CTRL_ARQOS_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9 1 - RegVal = ((0x00000000U << APU_ACE_CTRL_AWQOS_SHIFT - | 0x00000000U << APU_ACE_CTRL_ARQOS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (APU_ACE_CTRL_OFFSET ,0x000F000FU ,0x00000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10 1 - // : ENABLES RTC SWITCH TO BATTERY WHEN VCC_PSAUX IS NOT AVAILABLE - /*Register : CONTROL @ 0XFFA60040

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11 1 - Enables the RTC. By writing a 0 to this bit, RTC will be powered off and the only module that potentially draws current from - he battery will be BBRAM. The value read through this bit does not necessarily reflect whether RTC is enabled or not. It is e - pected that RTC is enabled every time it is being configured. If RTC is not used in the design, FSBL will disable it by writi - g a 0 to this bit. - PSU_RTC_CONTROL_BATTERY_DISABLE 0X1 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12 1 - This register controls various functionalities within the RTC - (OFFSET, MASK, VALUE) (0XFFA60040, 0x80000000U ,0x80000000U) - RegMask = (RTC_CONTROL_BATTERY_DISABLE_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13 1 - RegVal = ((0x00000001U << RTC_CONTROL_BATTERY_DISABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (RTC_CONTROL_OFFSET ,0x80000000U ,0x80000000U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14 1 - // : TIMESTAMP COUNTER - /*Register : base_frequency_ID_register @ 0XFF260020

      + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15 1 - Frequency in number of ticks per second. Valid range from 10 MHz to 100 MHz. - PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5e100 + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16 1 - Program this register to match the clock frequency of the timestamp generator, in ticks per second. For example, for a 50 MHz - clock, program 0x02FAF080. This register is not accessible to the read-only programming interface. - (OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5E100U) - RegMask = (IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK | 0 ); + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17 1 - RegVal = ((0x05F5E100U << IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET ,0xFFFFFFFFU ,0x05F5E100U); - /*############################################################################################################################ */ + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18 1 - /*Register : counter_control_register @ 0XFF260000

      - - Enable 0: The counter is disabled and not incrementing. 1: The counter is enabled and is incrementing. - PSU_IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN 0x1 - - Controls the counter increments. This register is not accessible to the read-only programming interface. - (OFFSET, MASK, VALUE) (0XFF260000, 0x00000001U ,0x00000001U) - RegMask = (IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK | 0 ); - - RegVal = ((0x00000001U << IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : TTC SRC SELECT - - return 1; + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF18013C, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl3 @ 0XFF180140 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180140, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank0_ctrl4 @ 0XFF180144 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank0_pull_enable is set, this selects pull up or pull down for + * MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180144, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl5 @ 0XFF180148 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank0_pullupdown to selects pull up or pull d + * own for MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF180148, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank0_ctrl6 @ 0XFF18014C + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[0]. + * PSU_IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 0 - control MIO[25:0] + * (OFFSET, MASK, VALUE) (0XFF18014C, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK0_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank1_ctrl0 @ 0XFF180154 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25 1 + + * Drive0 control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180154, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl1 @ 0XFF180158 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180158, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl3 @ 0XFF18015C + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF18015C, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank1_ctrl4 @ 0XFF180160 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank1_pull_enable is set, this selects pull up or pull down for + * MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180160, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl5 @ 0XFF180164 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank1_pullupdown to selects pull up or pull d + * own for MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180164, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank1_ctrl6 @ 0XFF180168 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[26]. + * PSU_IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 1 - control MIO[51:26] + * (OFFSET, MASK, VALUE) (0XFF180168, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK1_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank2_ctrl0 @ 0XFF180170 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25 1 + + * Drive0 control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180170, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL0_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl1 @ 0XFF180174 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25 1 + + * Drive1 control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180174, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL1_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl3 @ 0XFF180178 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25 0 + + * Selects either Schmitt or CMOS input for MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180178, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL3_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : bank2_ctrl4 @ 0XFF18017C + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25 1 + + * When mio_bank2_pull_enable is set, this selects pull up or pull down for + * MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF18017C, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL4_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl5 @ 0XFF180180 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24 1 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25 1 + + * When set, this enables mio_bank2_pullupdown to selects pull up or pull d + * own for MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180180, 0x03FFFFFFU ,0x03FFFFFFU) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL5_OFFSET, + 0x03FFFFFFU, 0x03FFFFFFU); +/*##################################################################### */ + + /* + * Register : bank2_ctrl6 @ 0XFF180184 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24 0 + + * Each bit applies to a single IO. Bit 0 for MIO[52]. + * PSU_IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25 0 + + * Slew rate control to MIO Bank 2 - control MIO[77:52] + * (OFFSET, MASK, VALUE) (0XFF180184, 0x03FFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_BANK2_CTRL6_OFFSET, + 0x03FFFFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * LOOPBACK + */ + /* + * Register : MIO_LOOPBACK @ 0XFF180200 + + * I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 + * = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outputs to I2C 0 inputs + * . + * PSU_IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1 0 + + * CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 + * = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 Rx. + * PSU_IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1 0 + + * UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. + * 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 outputs to UART 0 + * inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD + * and RI not used. + * PSU_IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1 0 + + * SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 + * = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outputs to SPI 0 inputs + * . The other SPI core will appear on the LS Slave Select. + * PSU_IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1 0 + + * Loopback function within MIO + * (OFFSET, MASK, VALUE) (0XFF180200, 0x0000000FU ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_MIO_LOOPBACK_OFFSET, + 0x0000000FU, 0x00000000U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_post_config_data() { - // : POST_CONFIG +unsigned long psu_peripherals_init_data(void) +{ + /* + * COHERENCY + */ + /* + * FPD RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - return 1; + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0 + + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0 + + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0 + + * FPD WDT reset + * PSU_CRF_APB_RST_FPD_TOP_SWDT_RESET 0 + + * GDMA block level reset + * PSU_CRF_APB_RST_FPD_TOP_GDMA_RESET 0 + + * Pixel Processor (submodule of GPU) block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_PP0_RESET 0 + + * Pixel Processor (submodule of GPU) block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_PP1_RESET 0 + + * GPU block level reset + * PSU_CRF_APB_RST_FPD_TOP_GPU_RESET 0 + + * GT block level reset + * PSU_CRF_APB_RST_FPD_TOP_GT_RESET 0 + + * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000F807EU ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000F807EU, 0x00000000U); +/*##################################################################### */ + + /* + * RESET BLOCKS + */ + /* + * TIMESTAMP + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_IOU_CC_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_ADMA_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x001A0000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x001A0000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * Reset entire full power domain. + * PSU_CRL_APB_RST_LPD_TOP_FPD_RESET 0 + + * LPD SWDT + * PSU_CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET 0 + + * Sysmonitor reset + * PSU_CRL_APB_RST_LPD_TOP_SYSMON_RESET 0 + + * Real Time Clock reset + * PSU_CRL_APB_RST_LPD_TOP_RTC_RESET 0 + + * APM reset + * PSU_CRL_APB_RST_LPD_TOP_APM_RESET 0 + + * IPI reset + * PSU_CRL_APB_RST_LPD_TOP_IPI_RESET 0 + + * reset entire RPU power island + * PSU_CRL_APB_RST_LPD_TOP_RPU_PGE_RESET 0 + + * reset ocm + * PSU_CRL_APB_RST_LPD_TOP_OCM_RESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x0093C018U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x0093C018U, 0x00000000U); +/*##################################################################### */ + + /* + * ENET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 + + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0 + + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000000U); +/*##################################################################### */ + + /* + * QSPI + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_QSPI_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * QSPI TAP DELAY + */ + /* + * Register : IOU_TAPDLY_BYPASS @ 0XFF180390 + + * 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypa + * ss the Tap delay on the Rx clock signal of LQSPI + * PSU_IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX 1 + + * IOU tap delay bypass for the LQSPI and NAND controllers + * (OFFSET, MASK, VALUE) (0XFF180390, 0x00000004U ,0x00000004U) + */ + PSU_Mask_Write(IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET, + 0x00000004U, 0x00000004U); +/*##################################################################### */ + + /* + * NAND + */ + /* + * USB + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0 + + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0 + + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000540U, 0x00000000U); +/*##################################################################### */ + + /* + * USB0 PIPE POWER PRESENT + */ + /* + * Register : fpd_power_prsnt @ 0XFF9D0080 + + * This bit is used to choose between PIPE power present and 1'b1 + * PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 + + * fpd_power_prsnt + * (OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(USB3_0_FPD_POWER_PRSNT_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : fpd_pipe_clk @ 0XFF9D007C + + * This bit is used to choose between PIPE clock coming from SerDes and the + * suspend clk + * PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 + + * fpd_pipe_clk + * (OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) + */ + PSU_Mask_Write(USB3_0_FPD_PIPE_CLK_OFFSET, 0x00000001U, 0x00000000U); +/*##################################################################### */ + + /* + * SD + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_SDIO1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000040U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000040U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CTRL_REG_SD @ 0XFF180310 + + * SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled + * PSU_IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL 0 + + * SD eMMC selection + * (OFFSET, MASK, VALUE) (0XFF180310, 0x00008000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_CTRL_REG_SD_OFFSET, + 0x00008000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : SD_CONFIG_REG2 @ 0XFF180320 + + * Should be set based on the final product usage 00 - Removable SCard Slot + * 01 - Embedded Slot for One Device 10 - Shared Bus Slot 11 - Reserved + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE 0 + + * 1.8V Support 1: 1.8V supported 0: 1.8V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V 1 + + * 3.0V Support 1: 3.0V supported 0: 3.0V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V 0 + + * 3.3V Support 1: 3.3V supported 0: 3.3V not supported support + * PSU_IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V 1 + + * SD Config Register 2 + * (OFFSET, MASK, VALUE) (0XFF180320, 0x33800000U ,0x02800000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG2_OFFSET, + 0x33800000U, 0x02800000U); +/*##################################################################### */ + + /* + * SD1 BASE CLOCK + */ + /* + * Register : SD_CONFIG_REG1 @ 0XFF18031C + + * Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. + * PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK 0xc8 + + * Configures the Number of Taps (Phases) of the rxclk_in that is supported + * . + * PSU_IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT 0x28 + + * SD Config Register 1 + * (OFFSET, MASK, VALUE) (0XFF18031C, 0x7FFE0000U ,0x64500000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG1_OFFSET, + 0x7FFE0000U, 0x64500000U); +/*##################################################################### */ + + /* + * Register : SD_DLL_CTRL @ 0XFF180358 + + * Reserved. + * PSU_IOU_SLCR_SD_DLL_CTRL_RESERVED 1 + + * SDIO status register + * (OFFSET, MASK, VALUE) (0XFF180358, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(IOU_SLCR_SD_DLL_CTRL_OFFSET, + 0x00000008U, 0x00000008U); +/*##################################################################### */ + + /* + * SD1 RETUNER + */ + /* + * Register : SD_CONFIG_REG3 @ 0XFF180324 + + * This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. S + * etting to 4'b0 disables Re-Tuning Timer. 0h - Get information via other + * source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n + * = 2(n-1) seconds -- Bh = 1024 seconds Fh - Ch = Reserved + * PSU_IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR 0X0 + + * SD Config Register 3 + * (OFFSET, MASK, VALUE) (0XFF180324, 0x03C00000U ,0x00000000U) + */ + PSU_Mask_Write(IOU_SLCR_SD_CONFIG_REG3_OFFSET, + 0x03C00000U, 0x00000000U); +/*##################################################################### */ + + /* + * CAN + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_CAN1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000100U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000100U, 0x00000000U); +/*##################################################################### */ + + /* + * I2C + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_I2C0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_I2C1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000600U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000600U, 0x00000000U); +/*##################################################################### */ + + /* + * SWDT + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_SWDT_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00008000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00008000U, 0x00000000U); +/*##################################################################### */ + + /* + * SPI + */ + /* + * TTC + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC1_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC2_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_TTC3_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00007800U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00007800U, 0x00000000U); +/*##################################################################### */ + + /* + * UART + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_UART0_RESET 0 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_UART1_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00000006U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00000006U, 0x00000000U); +/*##################################################################### */ + + /* + * UART BAUD RATE + */ + /* + * Register : Baud_rate_divider_reg0 @ 0XFF000034 + + * Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate + * PSU_UART0_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + + * Baud Rate Divider Register + * (OFFSET, MASK, VALUE) (0XFF000034, 0x000000FFU ,0x00000005U) + */ + PSU_Mask_Write(UART0_BAUD_RATE_DIVIDER_REG0_OFFSET, + 0x000000FFU, 0x00000005U); +/*##################################################################### */ + + /* + * Register : Baud_rate_gen_reg0 @ 0XFF000018 + + * Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + * PSU_UART0_BAUD_RATE_GEN_REG0_CD 0x8f + + * Baud Rate Generator Register. + * (OFFSET, MASK, VALUE) (0XFF000018, 0x0000FFFFU ,0x0000008FU) + */ + PSU_Mask_Write(UART0_BAUD_RATE_GEN_REG0_OFFSET, + 0x0000FFFFU, 0x0000008FU); +/*##################################################################### */ + + /* + * Register : Control_reg0 @ 0XFF000000 + + * Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. + * PSU_UART0_CONTROL_REG0_STPBRK 0x0 + + * Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. + * PSU_UART0_CONTROL_REG0_STTBRK 0x0 + + * Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. + * PSU_UART0_CONTROL_REG0_RSTTO 0x0 + + * Transmit disable: 0: enable transmitter 1: disable transmitter + * PSU_UART0_CONTROL_REG0_TXDIS 0x0 + + * Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. + * PSU_UART0_CONTROL_REG0_TXEN 0x1 + + * Receive disable: 0: enable 1: disable, regardless of the value of RXEN + * PSU_UART0_CONTROL_REG0_RXDIS 0x0 + + * Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. + * PSU_UART0_CONTROL_REG0_RXEN 0x1 + + * Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. + * PSU_UART0_CONTROL_REG0_TXRES 0x1 + + * Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. + * PSU_UART0_CONTROL_REG0_RXRES 0x1 + + * UART Control Register + * (OFFSET, MASK, VALUE) (0XFF000000, 0x000001FFU ,0x00000017U) + */ + PSU_Mask_Write(UART0_CONTROL_REG0_OFFSET, 0x000001FFU, 0x00000017U); +/*##################################################################### */ + + /* + * Register : mode_reg0 @ 0XFF000004 + + * Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback + * PSU_UART0_MODE_REG0_CHMODE 0x0 + + * Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved + * PSU_UART0_MODE_REG0_NBSTOP 0x0 + + * Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty + * PSU_UART0_MODE_REG0_PAR 0x4 + + * Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits + * PSU_UART0_MODE_REG0_CHRL 0x0 + + * Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 + * PSU_UART0_MODE_REG0_CLKS 0x0 + + * UART Mode Register + * (OFFSET, MASK, VALUE) (0XFF000004, 0x000003FFU ,0x00000020U) + */ + PSU_Mask_Write(UART0_MODE_REG0_OFFSET, 0x000003FFU, 0x00000020U); +/*##################################################################### */ + + /* + * Register : Baud_rate_divider_reg0 @ 0XFF010034 + + * Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate + * PSU_UART1_BAUD_RATE_DIVIDER_REG0_BDIV 0x5 + + * Baud Rate Divider Register + * (OFFSET, MASK, VALUE) (0XFF010034, 0x000000FFU ,0x00000005U) + */ + PSU_Mask_Write(UART1_BAUD_RATE_DIVIDER_REG0_OFFSET, + 0x000000FFU, 0x00000005U); +/*##################################################################### */ + + /* + * Register : Baud_rate_gen_reg0 @ 0XFF010018 + + * Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample + * PSU_UART1_BAUD_RATE_GEN_REG0_CD 0x8f + + * Baud Rate Generator Register. + * (OFFSET, MASK, VALUE) (0XFF010018, 0x0000FFFFU ,0x0000008FU) + */ + PSU_Mask_Write(UART1_BAUD_RATE_GEN_REG0_OFFSET, + 0x0000FFFFU, 0x0000008FU); +/*##################################################################### */ + + /* + * Register : Control_reg0 @ 0XFF010000 + + * Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. + * PSU_UART1_CONTROL_REG0_STPBRK 0x0 + + * Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. + * PSU_UART1_CONTROL_REG0_STTBRK 0x0 + + * Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. + * PSU_UART1_CONTROL_REG0_RSTTO 0x0 + + * Transmit disable: 0: enable transmitter 1: disable transmitter + * PSU_UART1_CONTROL_REG0_TXDIS 0x0 + + * Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. + * PSU_UART1_CONTROL_REG0_TXEN 0x1 + + * Receive disable: 0: enable 1: disable, regardless of the value of RXEN + * PSU_UART1_CONTROL_REG0_RXDIS 0x0 + + * Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. + * PSU_UART1_CONTROL_REG0_RXEN 0x1 + + * Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. + * PSU_UART1_CONTROL_REG0_TXRES 0x1 + + * Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. + * PSU_UART1_CONTROL_REG0_RXRES 0x1 + + * UART Control Register + * (OFFSET, MASK, VALUE) (0XFF010000, 0x000001FFU ,0x00000017U) + */ + PSU_Mask_Write(UART1_CONTROL_REG0_OFFSET, 0x000001FFU, 0x00000017U); +/*##################################################################### */ + + /* + * Register : mode_reg0 @ 0XFF010004 + + * Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback + * PSU_UART1_MODE_REG0_CHMODE 0x0 + + * Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved + * PSU_UART1_MODE_REG0_NBSTOP 0x0 + + * Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty + * PSU_UART1_MODE_REG0_PAR 0x4 + + * Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits + * PSU_UART1_MODE_REG0_CHRL 0x0 + + * Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 + * PSU_UART1_MODE_REG0_CLKS 0x0 + + * UART Mode Register + * (OFFSET, MASK, VALUE) (0XFF010004, 0x000003FFU ,0x00000020U) + */ + PSU_Mask_Write(UART1_MODE_REG0_OFFSET, 0x000003FFU, 0x00000020U); +/*##################################################################### */ + + /* + * GPIO + */ + /* + * Register : RST_LPD_IOU2 @ 0XFF5E0238 + + * Block level reset + * PSU_CRL_APB_RST_LPD_IOU2_GPIO_RESET 0 + + * Software control register for the IOU block. Each bit will cause a singl + * erperipheral or part of the peripheral to be reset. + * (OFFSET, MASK, VALUE) (0XFF5E0238, 0x00040000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU2_OFFSET, + 0x00040000U, 0x00000000U); +/*##################################################################### */ + + /* + * ADMA TZ + */ + /* + * Register : slcr_adma @ 0XFF4B0024 + + * TrustZone Classification for ADMA + * PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0XFF + + * RPU TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_ADMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * CSU TAMPERING + */ + /* + * CSU TAMPER STATUS + */ + /* + * Register : tamper_status @ 0XFFCA5000 + + * CSU regsiter + * PSU_CSU_TAMPER_STATUS_TAMPER_0 0 + + * External MIO + * PSU_CSU_TAMPER_STATUS_TAMPER_1 0 + + * JTAG toggle detect + * PSU_CSU_TAMPER_STATUS_TAMPER_2 0 + + * PL SEU error + * PSU_CSU_TAMPER_STATUS_TAMPER_3 0 + + * AMS over temperature alarm for LPD + * PSU_CSU_TAMPER_STATUS_TAMPER_4 0 + + * AMS over temperature alarm for APU + * PSU_CSU_TAMPER_STATUS_TAMPER_5 0 + + * AMS voltage alarm for VCCPINT_FPD + * PSU_CSU_TAMPER_STATUS_TAMPER_6 0 + + * AMS voltage alarm for VCCPINT_LPD + * PSU_CSU_TAMPER_STATUS_TAMPER_7 0 + + * AMS voltage alarm for VCCPAUX + * PSU_CSU_TAMPER_STATUS_TAMPER_8 0 + + * AMS voltage alarm for DDRPHY + * PSU_CSU_TAMPER_STATUS_TAMPER_9 0 + + * AMS voltage alarm for PSIO bank 0/1/2 + * PSU_CSU_TAMPER_STATUS_TAMPER_10 0 + + * AMS voltage alarm for PSIO bank 3 (dedicated pins) + * PSU_CSU_TAMPER_STATUS_TAMPER_11 0 + + * AMS voltaage alarm for GT + * PSU_CSU_TAMPER_STATUS_TAMPER_12 0 + + * Tamper Response Status + * (OFFSET, MASK, VALUE) (0XFFCA5000, 0x00001FFFU ,0x00000000U) + */ + PSU_Mask_Write(CSU_TAMPER_STATUS_OFFSET, 0x00001FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * CSU TAMPER RESPONSE + */ + /* + * CPU QOS DEFAULT + */ + /* + * Register : ACE_CTRL @ 0XFD5C0060 + + * Set ACE outgoing AWQOS value + * PSU_APU_ACE_CTRL_AWQOS 0X0 + + * Set ACE outgoing ARQOS value + * PSU_APU_ACE_CTRL_ARQOS 0X0 + + * ACE Control Register + * (OFFSET, MASK, VALUE) (0XFD5C0060, 0x000F000FU ,0x00000000U) + */ + PSU_Mask_Write(APU_ACE_CTRL_OFFSET, 0x000F000FU, 0x00000000U); +/*##################################################################### */ + + /* + * ENABLES RTC SWITCH TO BATTERY WHEN VCC_PSAUX IS NOT AVAILABLE + */ + /* + * Register : CONTROL @ 0XFFA60040 + + * Enables the RTC. By writing a 0 to this bit, RTC will be powered off and + * the only module that potentially draws current from the battery will be + * BBRAM. The value read through this bit does not necessarily reflect whe + * ther RTC is enabled or not. It is expected that RTC is enabled every tim + * e it is being configured. If RTC is not used in the design, FSBL will di + * sable it by writing a 0 to this bit. + * PSU_RTC_CONTROL_BATTERY_DISABLE 0X1 + + * This register controls various functionalities within the RTC + * (OFFSET, MASK, VALUE) (0XFFA60040, 0x80000000U ,0x80000000U) + */ + PSU_Mask_Write(RTC_CONTROL_OFFSET, 0x80000000U, 0x80000000U); +/*##################################################################### */ + + /* + * TIMESTAMP COUNTER + */ + /* + * Register : base_frequency_ID_register @ 0XFF260020 + + * Frequency in number of ticks per second. Valid range from 10 MHz to 100 + * MHz. + * PSU_IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ 0x5f5b9f0 + + * Program this register to match the clock frequency of the timestamp gene + * rator, in ticks per second. For example, for a 50 MHz clock, program 0x0 + * 2FAF080. This register is not accessible to the read-only programming in + * terface. + * (OFFSET, MASK, VALUE) (0XFF260020, 0xFFFFFFFFU ,0x05F5B9F0U) + */ + PSU_Mask_Write(IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET, + 0xFFFFFFFFU, 0x05F5B9F0U); +/*##################################################################### */ + + /* + * Register : counter_control_register @ 0XFF260000 + + * Enable 0: The counter is disabled and not incrementing. 1: The counter i + * s enabled and is incrementing. + * PSU_IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN 0x1 + + * Controls the counter increments. This register is not accessible to the + * read-only programming interface. + * (OFFSET, MASK, VALUE) (0XFF260000, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * TTC SRC SELECT + */ + /* + * PCIE GPIO RESET + */ + /* + * PCIE RESET + */ + /* + * DIR MODE BANK 0 + */ + /* + * DIR MODE BANK 1 + */ + /* + * Register : DIRM_1 @ 0XFF0A0244 + + * Operation is the same as DIRM_0[DIRECTION_0] + * PSU_GPIO_DIRM_1_DIRECTION_1 0x20 + + * Direction mode (GPIO Bank1, MIO) + * (OFFSET, MASK, VALUE) (0XFF0A0244, 0x03FFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(GPIO_DIRM_1_OFFSET, 0x03FFFFFFU, 0x00000020U); +/*##################################################################### */ + + /* + * DIR MODE BANK 2 + */ + /* + * OUTPUT ENABLE BANK 0 + */ + /* + * OUTPUT ENABLE BANK 1 + */ + /* + * Register : OEN_1 @ 0XFF0A0248 + + * Operation is the same as OEN_0[OP_ENABLE_0] + * PSU_GPIO_OEN_1_OP_ENABLE_1 0x20 + + * Output enable (GPIO Bank1, MIO) + * (OFFSET, MASK, VALUE) (0XFF0A0248, 0x03FFFFFFU ,0x00000020U) + */ + PSU_Mask_Write(GPIO_OEN_1_OFFSET, 0x03FFFFFFU, 0x00000020U); +/*##################################################################### */ + + /* + * OUTPUT ENABLE BANK 2 + */ + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0020U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * ADD 1 MS DELAY + */ + mask_delay(1); + +/*##################################################################### */ + + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x0 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0000U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0000U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * ADD 5 MS DELAY + */ + mask_delay(5); + +/*##################################################################### */ + + + return 1; } -unsigned long psu_peripherals_powerdwn_data() { - // : POWER DOWN REQUEST INTERRUPT ENABLE - // : POWER DOWN TRIGGER +unsigned long psu_post_config_data(void) +{ + /* + * POST_CONFIG + */ - return 1; + return 1; } -unsigned long psu_lpd_xppu_data() { - // : XPPU INTERRUPT ENABLE - /*Register : IEN @ 0XFF980018

      +unsigned long psu_peripherals_powerdwn_data(void) +{ + /* + * POWER DOWN REQUEST INTERRUPT ENABLE + */ + /* + * POWER DOWN TRIGGER + */ - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_PARITY 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_TZ 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_APER_PERM 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_PARITY 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_RO 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_MID_MISS 0X1 - - See Interuppt Status Register for details - PSU_LPD_XPPU_CFG_IEN_INV_APB 0X1 - - Interrupt Enable Register - (OFFSET, MASK, VALUE) (0XFF980018, 0x000000EFU ,0x000000EFU) - RegMask = (LPD_XPPU_CFG_IEN_APER_PARITY_MASK | LPD_XPPU_CFG_IEN_APER_TZ_MASK | LPD_XPPU_CFG_IEN_APER_PERM_MASK | LPD_XPPU_CFG_IEN_MID_PARITY_MASK | LPD_XPPU_CFG_IEN_MID_RO_MASK | LPD_XPPU_CFG_IEN_MID_MISS_MASK | LPD_XPPU_CFG_IEN_INV_APB_MASK | 0 ); - - RegVal = ((0x00000001U << LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_APER_TZ_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_APER_PERM_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_RO_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_MID_MISS_SHIFT - | 0x00000001U << LPD_XPPU_CFG_IEN_INV_APB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (LPD_XPPU_CFG_IEN_OFFSET ,0x000000EFU ,0x000000EFU); - /*############################################################################################################################ */ - - - return 1; + return 1; } -unsigned long psu_ddr_xmpu0_data() { +unsigned long psu_lpd_xppu_data(void) +{ + /* + * MASTER ID LIST + */ + /* + * APERTURE PERMISIION LIST + */ + /* + * APERTURE NAME: UART0, START ADDRESS: FF000000, END ADDRESS: FF00FFFF + */ + /* + * APERTURE NAME: UART1, START ADDRESS: FF010000, END ADDRESS: FF01FFFF + */ + /* + * APERTURE NAME: I2C0, START ADDRESS: FF020000, END ADDRESS: FF02FFFF + */ + /* + * APERTURE NAME: I2C1, START ADDRESS: FF030000, END ADDRESS: FF03FFFF + */ + /* + * APERTURE NAME: SPI0, START ADDRESS: FF040000, END ADDRESS: FF04FFFF + */ + /* + * APERTURE NAME: SPI1, START ADDRESS: FF050000, END ADDRESS: FF05FFFF + */ + /* + * APERTURE NAME: CAN0, START ADDRESS: FF060000, END ADDRESS: FF06FFFF + */ + /* + * APERTURE NAME: CAN1, START ADDRESS: FF070000, END ADDRESS: FF07FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09 + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_12, START ADDRESS: FF080000, END ADDRESS: FF09 + * FFFF + */ + /* + * APERTURE NAME: GPIO, START ADDRESS: FF0A0000, END ADDRESS: FF0AFFFF + */ + /* + * APERTURE NAME: GEM0, START ADDRESS: FF0B0000, END ADDRESS: FF0BFFFF + */ + /* + * APERTURE NAME: GEM1, START ADDRESS: FF0C0000, END ADDRESS: FF0CFFFF + */ + /* + * APERTURE NAME: GEM2, START ADDRESS: FF0D0000, END ADDRESS: FF0DFFFF + */ + /* + * APERTURE NAME: GEM3, START ADDRESS: FF0E0000, END ADDRESS: FF0EFFFF + */ + /* + * APERTURE NAME: QSPI, START ADDRESS: FF0F0000, END ADDRESS: FF0FFFFF + */ + /* + * APERTURE NAME: NAND, START ADDRESS: FF100000, END ADDRESS: FF10FFFF + */ + /* + * APERTURE NAME: TTC0, START ADDRESS: FF110000, END ADDRESS: FF11FFFF + */ + /* + * APERTURE NAME: TTC1, START ADDRESS: FF120000, END ADDRESS: FF12FFFF + */ + /* + * APERTURE NAME: TTC2, START ADDRESS: FF130000, END ADDRESS: FF13FFFF + */ + /* + * APERTURE NAME: TTC3, START ADDRESS: FF140000, END ADDRESS: FF14FFFF + */ + /* + * APERTURE NAME: SWDT, START ADDRESS: FF150000, END ADDRESS: FF15FFFF + */ + /* + * APERTURE NAME: SD0, START ADDRESS: FF160000, END ADDRESS: FF16FFFF + */ + /* + * APERTURE NAME: SD1, START ADDRESS: FF170000, END ADDRESS: FF17FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SLCR, START ADDRESS: FF180000, END ADDRESS: FF23FFFF + */ + /* + * APERTURE NAME: IOU_SECURE_SLCR, START ADDRESS: FF240000, END ADDRESS: FF + * 24FFFF + */ + /* + * APERTURE NAME: IOU_SCNTR, START ADDRESS: FF250000, END ADDRESS: FF25FFFF + */ + /* + * APERTURE NAME: IOU_SCNTRS, START ADDRESS: FF260000, END ADDRESS: FF26FFF + * F + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: RPU_UNUSED_11, START ADDRESS: FF270000, END ADDRESS: FF2A + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_14, START ADDRESS: FF2B0000, END ADDRESS: FF2F + * FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: IPI_CTRL, START ADDRESS: FF380000, END ADDRESS: FF3FFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_1, START ADDRESS: FF400000, END ADDRESS: FF40F + * FFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR, START ADDRESS: FF410000, END ADDRESS: FF4AFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_SLCR_SECURE, START ADDRESS: FF4B0000, END ADDRESS: FF + * 4DFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_2, START ADDRESS: FF4E0000, END ADDRESS: FF5DF + * FFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: CRL_APB, START ADDRESS: FF5E0000, END ADDRESS: FF85FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_3, START ADDRESS: FF860000, END ADDRESS: FF95F + * FFF + */ + /* + * APERTURE NAME: OCM_SLCR, START ADDRESS: FF960000, END ADDRESS: FF96FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_4, START ADDRESS: FF970000, END ADDRESS: FF97F + * FFF + */ + /* + * APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + */ + /* + * APERTURE NAME: RPU, START ADDRESS: FF9A0000, END ADDRESS: FF9AFFFF + */ + /* + * APERTURE NAME: AFIFM6, START ADDRESS: FF9B0000, END ADDRESS: FF9BFFFF + */ + /* + * APERTURE NAME: LPD_XPPU_SINK, START ADDRESS: FF9C0000, END ADDRESS: FF9C + * FFFF + */ + /* + * APERTURE NAME: USB3_0, START ADDRESS: FF9D0000, END ADDRESS: FF9DFFFF + */ + /* + * APERTURE NAME: USB3_1, START ADDRESS: FF9E0000, END ADDRESS: FF9EFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_5, START ADDRESS: FF9F0000, END ADDRESS: FF9FF + * FFF + */ + /* + * APERTURE NAME: APM0, START ADDRESS: FFA00000, END ADDRESS: FFA0FFFF + */ + /* + * APERTURE NAME: APM1, START ADDRESS: FFA10000, END ADDRESS: FFA1FFFF + */ + /* + * APERTURE NAME: APM_INTC_IOU, START ADDRESS: FFA20000, END ADDRESS: FFA2F + * FFF + */ + /* + * APERTURE NAME: APM_FPD_LPD, START ADDRESS: FFA30000, END ADDRESS: FFA3FF + * FF + */ + /* + * APERTURE NAME: LPD_UNUSED_6, START ADDRESS: FFA40000, END ADDRESS: FFA4F + * FFF + */ + /* + * APERTURE NAME: AMS, START ADDRESS: FFA50000, END ADDRESS: FFA5FFFF + */ + /* + * APERTURE NAME: RTC, START ADDRESS: FFA60000, END ADDRESS: FFA6FFFF + */ + /* + * APERTURE NAME: OCM_XMPU_CFG, START ADDRESS: FFA70000, END ADDRESS: FFA7F + * FFF + */ + /* + * APERTURE NAME: ADMA_0, START ADDRESS: FFA80000, END ADDRESS: FFA8FFFF + */ + /* + * APERTURE NAME: ADMA_1, START ADDRESS: FFA90000, END ADDRESS: FFA9FFFF + */ + /* + * APERTURE NAME: ADMA_2, START ADDRESS: FFAA0000, END ADDRESS: FFAAFFFF + */ + /* + * APERTURE NAME: ADMA_3, START ADDRESS: FFAB0000, END ADDRESS: FFABFFFF + */ + /* + * APERTURE NAME: ADMA_4, START ADDRESS: FFAC0000, END ADDRESS: FFACFFFF + */ + /* + * APERTURE NAME: ADMA_5, START ADDRESS: FFAD0000, END ADDRESS: FFADFFFF + */ + /* + * APERTURE NAME: ADMA_6, START ADDRESS: FFAE0000, END ADDRESS: FFAEFFFF + */ + /* + * APERTURE NAME: ADMA_7, START ADDRESS: FFAF0000, END ADDRESS: FFAFFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_7, START ADDRESS: FFB00000, END ADDRESS: FFBFF + * FFF + */ + /* + * APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + */ + /* + * APERTURE NAME: CSU_ROM, START ADDRESS: FFC00000, END ADDRESS: FFC1FFFF + */ + /* + * APERTURE NAME: CSU_LOCAL, START ADDRESS: FFC20000, END ADDRESS: FFC2FFFF + */ + /* + * APERTURE NAME: PUF, START ADDRESS: FFC30000, END ADDRESS: FFC3FFFF + */ + /* + * APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + */ + /* + * APERTURE NAME: CSU_RAM, START ADDRESS: FFC40000, END ADDRESS: FFC5FFFF + */ + /* + * APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7F + * FFF + */ + /* + * APERTURE NAME: CSU_IOMODULE, START ADDRESS: FFC60000, END ADDRESS: FFC7F + * FFF + */ + /* + * APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + */ + /* + * APERTURE NAME: CSUDMA, START ADDRESS: FFC80000, END ADDRESS: FFC9FFFF + */ + /* + * APERTURE NAME: CSU, START ADDRESS: FFCA0000, END ADDRESS: FFCAFFFF + */ + /* + * APERTURE NAME: CSU_WDT, START ADDRESS: FFCB0000, END ADDRESS: FFCBFFFF + */ + /* + * APERTURE NAME: EFUSE, START ADDRESS: FFCC0000, END ADDRESS: FFCCFFFF + */ + /* + * APERTURE NAME: BBRAM, START ADDRESS: FFCD0000, END ADDRESS: FFCDFFFF + */ + /* + * APERTURE NAME: RSA_CORE, START ADDRESS: FFCE0000, END ADDRESS: FFCEFFFF + */ + /* + * APERTURE NAME: MBISTJTAG, START ADDRESS: FFCF0000, END ADDRESS: FFCFFFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_ROM, START ADDRESS: FFD00000, END ADDRESS: FFD3FFFF + */ + /* + * APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5F + * FFF + */ + /* + * APERTURE NAME: PMU_IOMODULE, START ADDRESS: FFD40000, END ADDRESS: FFD5F + * FFF + */ + /* + * APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + */ + /* + * APERTURE NAME: PMU_LOCAL, START ADDRESS: FFD60000, END ADDRESS: FFD7FFFF + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_GLOBAL, START ADDRESS: FFD80000, END ADDRESS: FFDBFFF + * F + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: PMU_RAM, START ADDRESS: FFDC0000, END ADDRESS: FFDFFFFF + */ + /* + * APERTURE NAME: R5_0_ATCM, START ADDRESS: FFE00000, END ADDRESS: FFE0FFFF + */ + /* + * APERTURE NAME: R5_0_ATCM_LOCKSTEP, START ADDRESS: FFE10000, END ADDRESS: + * FFE1FFFF + */ + /* + * APERTURE NAME: R5_0_BTCM, START ADDRESS: FFE20000, END ADDRESS: FFE2FFFF + */ + /* + * APERTURE NAME: R5_0_BTCM_LOCKSTEP, START ADDRESS: FFE30000, END ADDRESS: + * FFE3FFFF + */ + /* + * APERTURE NAME: R5_0_INSTRUCTION_CACHE, START ADDRESS: FFE40000, END ADDR + * ESS: FFE4FFFF + */ + /* + * APERTURE NAME: R5_0_DATA_CACHE, START ADDRESS: FFE50000, END ADDRESS: FF + * E5FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_8, START ADDRESS: FFE60000, END ADDRESS: FFE8F + * FFF + */ + /* + * APERTURE NAME: R5_1_ATCM_, START ADDRESS: FFE90000, END ADDRESS: FFE9FFF + * F + */ + /* + * APERTURE NAME: RPU_UNUSED_10, START ADDRESS: FFEA0000, END ADDRESS: FFEA + * FFFF + */ + /* + * APERTURE NAME: R5_1_BTCM_, START ADDRESS: FFEB0000, END ADDRESS: FFEBFFF + * F + */ + /* + * APERTURE NAME: R5_1_INSTRUCTION_CACHE, START ADDRESS: FFEC0000, END ADDR + * ESS: FFECFFFF + */ + /* + * APERTURE NAME: R5_1_DATA_CACHE, START ADDRESS: FFED0000, END ADDRESS: FF + * EDFFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_9, START ADDRESS: FFEE0000, END ADDRESS: FFFBF + * FFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_15, START ADDRESS: FFFD0000, END ADDRESS: FFFF + * FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_1, START ADDRESS: FF310000, END ADDRESS: FF31FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_2, START ADDRESS: FF320000, END ADDRESS: FF32FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_0, START ADDRESS: FF300000, END ADDRESS: FF30FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_7, START ADDRESS: FF340000, END ADDRESS: FF34FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_8, START ADDRESS: FF350000, END ADDRESS: FF35FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_9, START ADDRESS: FF360000, END ADDRESS: FF36FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_10, START ADDRESS: FF370000, END ADDRESS: FF37FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IPI_PMU, START ADDRESS: FF330000, END ADDRESS: FF33FFFF + */ + /* + * APERTURE NAME: IOU_GPV, START ADDRESS: FE000000, END ADDRESS: FE0FFFFF + */ + /* + * APERTURE NAME: LPD_GPV, START ADDRESS: FE100000, END ADDRESS: FE1FFFFF + */ + /* + * APERTURE NAME: USB3_0_XHCI, START ADDRESS: FE200000, END ADDRESS: FE2FFF + * FF + */ + /* + * APERTURE NAME: USB3_1_XHCI, START ADDRESS: FE300000, END ADDRESS: FE3FFF + * FF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: LPD_UNUSED_13, START ADDRESS: FE400000, END ADDRESS: FE7F + * FFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: CORESIGHT, START ADDRESS: FE800000, END ADDRESS: FEFFFFFF + */ + /* + * APERTURE NAME: QSPI_LINEAR_ADDRESS, START ADDRESS: C0000000, END ADDRESS + * : DFFFFFFF + */ + /* + * XPPU CONTROL + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu1_data() { +unsigned long psu_ddr_xmpu0_data(void) +{ + /* + * DDR XMPU0 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu2_data() { +unsigned long psu_ddr_xmpu1_data(void) +{ + /* + * DDR XMPU1 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu3_data() { +unsigned long psu_ddr_xmpu2_data(void) +{ + /* + * DDR XMPU2 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu4_data() { +unsigned long psu_ddr_xmpu3_data(void) +{ + /* + * DDR XMPU3 + */ - return 1; + return 1; } -unsigned long psu_ddr_xmpu5_data() { +unsigned long psu_ddr_xmpu4_data(void) +{ + /* + * DDR XMPU4 + */ - return 1; + return 1; } -unsigned long psu_ocm_xmpu_data() { +unsigned long psu_ddr_xmpu5_data(void) +{ + /* + * DDR XMPU5 + */ - return 1; + return 1; } -unsigned long psu_fpd_xmpu_data() { +unsigned long psu_ocm_xmpu_data(void) +{ + /* + * OCM XMPU + */ - return 1; + return 1; } -unsigned long psu_protection_lock_data() { +unsigned long psu_fpd_xmpu_data(void) +{ + /* + * FPD XMPU + */ - return 1; + return 1; } -unsigned long psu_apply_master_tz() { - // : RPU - // : DP TZ - // : SATA TZ - // : PCIE TZ - // : USB TZ - // : SD TZ - // : GEM TZ - // : QSPI TZ - // : NAND TZ +unsigned long psu_protection_lock_data(void) +{ + /* + * LOCKING PROTECTION MODULE + */ + /* + * XPPU LOCK + */ + /* + * APERTURE NAME: LPD_XPPU, START ADDRESS: FF980000, END ADDRESS: FF99FFFF + */ + /* + * XMPU LOCK + */ + /* + * LOCK OCM XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK FPD XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ + /* + * LOCK DDR XMPU ONLY IF IT IS NOT PROTECTED BY ANY MASTER + */ - return 1; + return 1; } -unsigned long psu_serdes_init_data() { - // : SERDES INITIALIZATION - // : GT REFERENCE CLOCK SOURCE SELECTION - /*Register : PLL_REF_SEL0 @ 0XFD410000

      +unsigned long psu_apply_master_tz(void) +{ + /* + * RPU + */ + /* + * DP TZ + */ + /* + * Register : slcr_dpdma @ 0XFD690040 - PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL0_PLLREFSEL0 0xD + * TrustZone classification for DisplayPort DMA + * PSU_FPD_SLCR_SECURE_SLCR_DPDMA_TZ 1 - PLL0 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410000, 0x0000001FU ,0x0000000DU) - RegMask = (SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK | 0 ); + * DPDMA TrustZone Settings + * (OFFSET, MASK, VALUE) (0XFD690040, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ - RegVal = ((0x0000000DU << SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL0_OFFSET ,0x0000001FU ,0x0000000DU); - /*############################################################################################################################ */ + /* + * SATA TZ + */ + /* + * PCIE TZ + */ + /* + * Register : slcr_pcie @ 0XFD690030 - /*Register : PLL_REF_SEL1 @ 0XFD410004

      + * TrustZone classification for DMA Channel 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0 1 - PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL1_PLLREFSEL1 0x9 + * TrustZone classification for DMA Channel 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1 1 - PLL1 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410004, 0x0000001FU ,0x00000009U) - RegMask = (SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK | 0 ); + * TrustZone classification for DMA Channel 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2 1 - RegVal = ((0x00000009U << SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL1_OFFSET ,0x0000001FU ,0x00000009U); - /*############################################################################################################################ */ + * TrustZone classification for DMA Channel 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3 1 - /*Register : PLL_REF_SEL2 @ 0XFD410008

      + * TrustZone classification for Ingress Address Translation 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0 1 - PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL2_PLLREFSEL2 0x8 + * TrustZone classification for Ingress Address Translation 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1 1 - PLL2 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD410008, 0x0000001FU ,0x00000008U) - RegMask = (SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK | 0 ); + * TrustZone classification for Ingress Address Translation 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2 1 - RegVal = ((0x00000008U << SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL2_OFFSET ,0x0000001FU ,0x00000008U); - /*############################################################################################################################ */ + * TrustZone classification for Ingress Address Translation 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3 1 + + * TrustZone classification for Ingress Address Translation 4 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4 1 + + * TrustZone classification for Ingress Address Translation 5 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5 1 + + * TrustZone classification for Ingress Address Translation 6 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6 1 - /*Register : PLL_REF_SEL3 @ 0XFD41000C

      - - PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved - PSU_SERDES_PLL_REF_SEL3_PLLREFSEL3 0xF - - PLL3 Reference Selection Register - (OFFSET, MASK, VALUE) (0XFD41000C, 0x0000001FU ,0x0000000FU) - RegMask = (SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK | 0 ); - - RegVal = ((0x0000000FU << SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_PLL_REF_SEL3_OFFSET ,0x0000001FU ,0x0000000FU); - /*############################################################################################################################ */ - - // : GT REFERENCE CLOCK FREQUENCY SELECTION - /*Register : L0_L0_REF_CLK_SEL @ 0XFD402860

      - - Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer output. Set to 0 to select lane0 ref clock mux output. - PSU_SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL 0x1 - - Lane0 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402860, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L0_REF_CLK_SEL_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_L1_REF_CLK_SEL @ 0XFD402864

      - - Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane1 ref clock mux output. - PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL 0x0 - - Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 slicer output from ref clock network - PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3 0x1 - - Lane1 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402864, 0x00000088U ,0x00000008U) - RegMask = (SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK | SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT - | 0x00000001U << SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L1_REF_CLK_SEL_OFFSET ,0x00000088U ,0x00000008U); - /*############################################################################################################################ */ - - /*Register : L0_L2_REF_CLK_SEL @ 0XFD402868

      - - Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane2 ref clock mux output. - PSU_SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL 0x1 - - Lane2 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD402868, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L2_REF_CLK_SEL_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_L3_REF_CLK_SEL @ 0XFD40286C

      - - Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer output. Set to 0 to select lane3 ref clock mux output. - PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL 0x0 - - Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 slicer output from ref clock network - PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1 0x1 - - Lane3 Ref Clock Selection Register - (OFFSET, MASK, VALUE) (0XFD40286C, 0x00000082U ,0x00000002U) - RegMask = (SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK | SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT - | 0x00000001U << SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_L3_REF_CLK_SEL_OFFSET ,0x00000082U ,0x00000002U); - /*############################################################################################################################ */ - - // : ENABLE SPREAD SPECTRUM - /*Register : L2_TM_PLL_DIG_37 @ 0XFD40A094

      - - Enable/Disable coarse code satureation limiting logic - PSU_SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION 0x1 - - Test mode register 37 - (OFFSET, MASK, VALUE) (0XFD40A094, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_PLL_DIG_37_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEPS_0_LSB @ 0XFD40A368

      - - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x38 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD40A368, 0x000000FFU ,0x00000038U) - RegMask = (SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x00000038U << SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x00000038U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEPS_1_MSB @ 0XFD40A36C

      - - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x03 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40A36C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEPS_0_LSB @ 0XFD40E368

      - - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0xE0 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD40E368, 0x000000FFU ,0x000000E0U) - RegMask = (SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x000000E0U << SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x000000E0U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEPS_1_MSB @ 0XFD40E36C

      - - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40E36C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEPS_0_LSB @ 0XFD406368

      - - Spread Spectrum No of Steps [7:0] - PSU_SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x58 - - Spread Spectrum No of Steps bits 7:0 - (OFFSET, MASK, VALUE) (0XFD406368, 0x000000FFU ,0x00000058U) - RegMask = (SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK | 0 ); - - RegVal = ((0x00000058U << SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEPS_0_LSB_OFFSET ,0x000000FFU ,0x00000058U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEPS_1_MSB @ 0XFD40636C

      - - Spread Spectrum No of Steps [10:8] - PSU_SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 - - Spread Spectrum No of Steps bits 10:8 - (OFFSET, MASK, VALUE) (0XFD40636C, 0x00000007U ,0x00000003U) - RegMask = (SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEPS_1_MSB_OFFSET ,0x00000007U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_0_LSB @ 0XFD406370

      - - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0x7C - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD406370, 0x000000FFU ,0x0000007CU) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x0000007CU << SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x0000007CU); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_1 @ 0XFD406374

      - - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x33 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD406374, 0x000000FFU ,0x00000033U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x00000033U << SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x00000033U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_2 @ 0XFD406378

      - - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD406378, 0x000000FFU ,0x00000002U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : L1_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40637C

      - - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40637C, 0x00000033U ,0x00000030U) - RegMask = (SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x00000033U ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40A370

      - - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xF4 - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD40A370, 0x000000FFU ,0x000000F4U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x000000F4U << SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x000000F4U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_1 @ 0XFD40A374

      - - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x31 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD40A374, 0x000000FFU ,0x00000031U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x00000031U << SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x00000031U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_2 @ 0XFD40A378

      - - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD40A378, 0x000000FFU ,0x00000002U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000002U); - /*############################################################################################################################ */ - - /*Register : L2_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40A37C

      - - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40A37C, 0x00000033U ,0x00000030U) - RegMask = (SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x00000033U ,0x00000030U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40E370

      - - Step Size for Spread Spectrum [7:0] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xC9 - - Step Size for Spread Spectrum LSB - (OFFSET, MASK, VALUE) (0XFD40E370, 0x000000FFU ,0x000000C9U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK | 0 ); - - RegVal = ((0x000000C9U << SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_OFFSET ,0x000000FFU ,0x000000C9U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_1 @ 0XFD40E374

      - - Step Size for Spread Spectrum [15:8] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0xD2 - - Step Size for Spread Spectrum 1 - (OFFSET, MASK, VALUE) (0XFD40E374, 0x000000FFU ,0x000000D2U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK | 0 ); - - RegVal = ((0x000000D2U << SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_1_OFFSET ,0x000000FFU ,0x000000D2U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_2 @ 0XFD40E378

      - - Step Size for Spread Spectrum [23:16] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x1 - - Step Size for Spread Spectrum 2 - (OFFSET, MASK, VALUE) (0XFD40E378, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_2_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40E37C

      - - Step Size for Spread Spectrum [25:24] - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - - Enable/Disable test mode force on SS step size - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - - Enable/Disable test mode force on SS no of steps - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 - - Enable test mode forcing on enable Spread Spectrum - PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS 0x1 - - Enable force on enable Spread Spectrum - (OFFSET, MASK, VALUE) (0XFD40E37C, 0x000000B3U ,0x000000B0U) - RegMask = (SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK | SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT - | 0x00000001U << SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_OFFSET ,0x000000B3U ,0x000000B0U); - /*############################################################################################################################ */ - - /*Register : L2_TM_DIG_6 @ 0XFD40906C

      - - Bypass Descrambler - PSU_SERDES_L2_TM_DIG_6_BYPASS_DESCRAM 0x1 - - Enable Bypass for <1> TM_DIG_CTRL_6 - PSU_SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - - Data path test modes in decoder and descram - (OFFSET, MASK, VALUE) (0XFD40906C, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK | SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT - | 0x00000001U << SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_DIG_6_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L2_TX_DIG_TM_61 @ 0XFD4080F4

      - - Bypass scrambler signal - PSU_SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - - Enable/disable scrambler bypass signal - PSU_SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - - MPHY PLL Gear and bypass scrambler - (OFFSET, MASK, VALUE) (0XFD4080F4, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK | SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT - | 0x00000001U << SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TX_DIG_TM_61_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L3_PLL_FBDIV_FRAC_3_MSB @ 0XFD40E360

      - - Enable test mode force on fractional mode enable - PSU_SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC 0x1 - - Fractional feedback division control and fractional value for feedback division bits 26:24 - (OFFSET, MASK, VALUE) (0XFD40E360, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_PLL_FBDIV_FRAC_3_MSB_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_DIG_6 @ 0XFD40D06C

      - - Bypass 8b10b decoder - PSU_SERDES_L3_TM_DIG_6_BYPASS_DECODER 0x1 - - Enable Bypass for <3> TM_DIG_CTRL_6 - PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC 0x1 - - Bypass Descrambler - PSU_SERDES_L3_TM_DIG_6_BYPASS_DESCRAM 0x1 - - Enable Bypass for <1> TM_DIG_CTRL_6 - PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - - Data path test modes in decoder and descram - (OFFSET, MASK, VALUE) (0XFD40D06C, 0x0000000FU ,0x0000000FU) - RegMask = (SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK | SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK | SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK | SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT - | 0x00000001U << SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_DIG_6_OFFSET ,0x0000000FU ,0x0000000FU); - /*############################################################################################################################ */ - - /*Register : L3_TX_DIG_TM_61 @ 0XFD40C0F4

      - - Enable/disable encoder bypass signal - PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_ENC 0x1 - - Bypass scrambler signal - PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - - Enable/disable scrambler bypass signal - PSU_SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - - MPHY PLL Gear and bypass scrambler - (OFFSET, MASK, VALUE) (0XFD40C0F4, 0x0000000BU ,0x0000000BU) - RegMask = (SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK | SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK | SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT - | 0x00000001U << SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT - | 0x00000001U << SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_DIG_TM_61_OFFSET ,0x0000000BU ,0x0000000BU); - /*############################################################################################################################ */ - - /*Register : L3_TXPMA_ST_0 @ 0XFD40CB00

      - - PHY Mode: 4'b000 - PCIe, 4'b001 - USB3, 4'b0010 - SATA, 4'b0100 - SGMII, 4'b0101 - DP, 4'b1000 - MPHY - PSU_SERDES_L3_TXPMA_ST_0_TX_PHY_MODE 0x21 - - Opmode Info - (OFFSET, MASK, VALUE) (0XFD40CB00, 0x000000F0U ,0x000000F0U) - RegMask = (SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK | 0 ); - - RegVal = ((0x00000021U << SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TXPMA_ST_0_OFFSET ,0x000000F0U ,0x000000F0U); - /*############################################################################################################################ */ - - // : ENABLE CHICKEN BIT FOR PCIE AND USB - /*Register : L0_TM_AUX_0 @ 0XFD4010CC

      - - Spare- not used - PSU_SERDES_L0_TM_AUX_0_BIT_2 1 - - Spare registers - (OFFSET, MASK, VALUE) (0XFD4010CC, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L0_TM_AUX_0_BIT_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_AUX_0_BIT_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_AUX_0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L2_TM_AUX_0 @ 0XFD4090CC

      - - Spare- not used - PSU_SERDES_L2_TM_AUX_0_BIT_2 1 - - Spare registers - (OFFSET, MASK, VALUE) (0XFD4090CC, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L2_TM_AUX_0_BIT_2_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_AUX_0_BIT_2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_AUX_0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - // : ENABLING EYE SURF - /*Register : L0_TM_DIG_8 @ 0XFD401074

      - - Enable Eye Surf - PSU_SERDES_L0_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD401074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L1_TM_DIG_8 @ 0XFD405074

      - - Enable Eye Surf - PSU_SERDES_L1_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD405074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_TM_DIG_8 @ 0XFD409074

      - - Enable Eye Surf - PSU_SERDES_L2_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD409074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L3_TM_DIG_8 @ 0XFD40D074

      - - Enable Eye Surf - PSU_SERDES_L3_TM_DIG_8_EYESURF_ENABLE 0x1 - - Test modes for Elastic buffer and enabling Eye Surf - (OFFSET, MASK, VALUE) (0XFD40D074, 0x00000010U ,0x00000010U) - RegMask = (SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_DIG_8_OFFSET ,0x00000010U ,0x00000010U); - /*############################################################################################################################ */ - - // : ILL SETTINGS FOR GAIN AND LOCK SETTINGS - /*Register : L0_TM_MISC2 @ 0XFD40189C

      - - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40189C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL1 @ 0XFD4018F8

      - - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4018F8, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL2 @ 0XFD4018FC

      - - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4018FC, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ILL12 @ 0XFD401990

      - - G1A pll ctr bypass value - PSU_SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x11 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD401990, 0x000000FFU ,0x00000011U) - RegMask = (SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000011U << SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ILL12_OFFSET ,0x000000FFU ,0x00000011U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL1 @ 0XFD401924

      - - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x4 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD401924, 0x000000FFU ,0x00000004U) - RegMask = (SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x00000004U << SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL1_OFFSET ,0x000000FFU ,0x00000004U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL2 @ 0XFD401928

      - - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0xFE - - epi cal code - (OFFSET, MASK, VALUE) (0XFD401928, 0x000000FFU ,0x000000FEU) - RegMask = (SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x000000FEU << SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL2_OFFSET ,0x000000FFU ,0x000000FEU); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL3 @ 0XFD401900

      - - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x64 - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD401900, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL3 @ 0XFD40192C

      - - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40192C, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ILL8 @ 0XFD401980

      - - ILL calibration code change wait time - PSU_SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD401980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL8 @ 0XFD401914

      - - IQ ILL polytrim bypass value - PSU_SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD401914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L0_TM_IQ_ILL9 @ 0XFD401918

      - - bypass IQ polytrim - PSU_SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD401918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL8 @ 0XFD401940

      - - E ILL polytrim bypass value - PSU_SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD401940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L0_TM_E_ILL9 @ 0XFD401944

      - - bypass E polytrim - PSU_SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD401944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L2_TM_MISC2 @ 0XFD40989C

      - - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40989C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL1 @ 0XFD4098F8

      - - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4098F8, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL2 @ 0XFD4098FC

      - - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD4098FC, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_ILL12 @ 0XFD409990

      - - G1A pll ctr bypass value - PSU_SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x10 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD409990, 0x000000FFU ,0x00000010U) - RegMask = (SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000010U << SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ILL12_OFFSET ,0x000000FFU ,0x00000010U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL1 @ 0XFD409924

      - - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0xFE - - epi cal code - (OFFSET, MASK, VALUE) (0XFD409924, 0x000000FFU ,0x000000FEU) - RegMask = (SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x000000FEU << SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL1_OFFSET ,0x000000FFU ,0x000000FEU); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL2 @ 0XFD409928

      - - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD409928, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL2_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL3 @ 0XFD409900

      - - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x1A - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD409900, 0x000000FFU ,0x0000001AU) - RegMask = (SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x0000001AU << SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x0000001AU); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL3 @ 0XFD40992C

      - - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40992C, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L2_TM_ILL8 @ 0XFD409980

      - - ILL calibration code change wait time - PSU_SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD409980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL8 @ 0XFD409914

      - - IQ ILL polytrim bypass value - PSU_SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD409914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L2_TM_IQ_ILL9 @ 0XFD409918

      - - bypass IQ polytrim - PSU_SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD409918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL8 @ 0XFD409940

      - - E ILL polytrim bypass value - PSU_SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD409940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L2_TM_E_ILL9 @ 0XFD409944

      - - bypass E polytrim - PSU_SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD409944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_MISC2 @ 0XFD40D89C

      - - ILL calib counts BYPASSED with calcode bits - PSU_SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 - - sampler cal - (OFFSET, MASK, VALUE) (0XFD40D89C, 0x00000080U ,0x00000080U) - RegMask = (SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_MISC2_OFFSET ,0x00000080U ,0x00000080U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL1 @ 0XFD40D8F8

      - - IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D8F8, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL1_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL2 @ 0XFD40D8FC

      - - IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D8FC, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL2_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL12 @ 0XFD40D990

      - - G1A pll ctr bypass value - PSU_SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x1 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD40D990, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL12_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL1 @ 0XFD40D924

      - - E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS - PSU_SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x9C - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D924, 0x000000FFU ,0x0000009CU) - RegMask = (SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK | 0 ); - - RegVal = ((0x0000009CU << SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL1_OFFSET ,0x000000FFU ,0x0000009CU); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL2 @ 0XFD40D928

      - - E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 - PSU_SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x39 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D928, 0x000000FFU ,0x00000039U) - RegMask = (SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK | 0 ); - - RegVal = ((0x00000039U << SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL2_OFFSET ,0x000000FFU ,0x00000039U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL11 @ 0XFD40D98C

      - - G2A_PCIe1 PLL ctr bypass value - PSU_SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL 0x2 - - ill pll counter values - (OFFSET, MASK, VALUE) (0XFD40D98C, 0x000000F0U ,0x00000020U) - RegMask = (SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL11_OFFSET ,0x000000F0U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL3 @ 0XFD40D900

      - - IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x7D - - iqpi cal code - (OFFSET, MASK, VALUE) (0XFD40D900, 0x000000FFU ,0x0000007DU) - RegMask = (SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x0000007DU << SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL3_OFFSET ,0x000000FFU ,0x0000007DU); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL3 @ 0XFD40D92C

      - - E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 - PSU_SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x64 - - epi cal code - (OFFSET, MASK, VALUE) (0XFD40D92C, 0x000000FFU ,0x00000064U) - RegMask = (SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK | 0 ); - - RegVal = ((0x00000064U << SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL3_OFFSET ,0x000000FFU ,0x00000064U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ILL8 @ 0XFD40D980

      - - ILL calibration code change wait time - PSU_SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF - - ILL cal routine control - (OFFSET, MASK, VALUE) (0XFD40D980, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ILL8_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL8 @ 0XFD40D914

      - - IQ ILL polytrim bypass value - PSU_SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 - - iqpi polytrim - (OFFSET, MASK, VALUE) (0XFD40D914, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L3_TM_IQ_ILL9 @ 0XFD40D918

      - - bypass IQ polytrim - PSU_SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD40D918, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_IQ_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL8 @ 0XFD40D940

      - - E ILL polytrim bypass value - PSU_SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 - - epi polytrim - (OFFSET, MASK, VALUE) (0XFD40D940, 0x000000FFU ,0x000000F7U) - RegMask = (SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK | 0 ); - - RegVal = ((0x000000F7U << SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL8_OFFSET ,0x000000FFU ,0x000000F7U); - /*############################################################################################################################ */ - - /*Register : L3_TM_E_ILL9 @ 0XFD40D944

      - - bypass E polytrim - PSU_SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 - - enables for lf,constant gm trim and polytirm - (OFFSET, MASK, VALUE) (0XFD40D944, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_E_ILL9_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : SYMBOL LOCK AND WAIT - /*Register : L0_TM_DIG_21 @ 0XFD4010A8

      - - pre lock comma count threshold. 2'b 00 : 3, 2'b 01 : 5, 2'b 10 : 10, 2'b 11 : 20 - PSU_SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH 0x11 - - Control symbol alignment locking - wait counts - (OFFSET, MASK, VALUE) (0XFD4010A8, 0x00000003U ,0x00000003U) - RegMask = (SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK | 0 ); - - RegVal = ((0x00000011U << SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_21_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ - - /*Register : L0_TM_DIG_10 @ 0XFD40107C

      - - CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 - PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0xF - - test control for changing cdr lock wait time - (OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x0000000FU) - RegMask = (SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK | 0 ); - - RegVal = ((0x0000000FU << SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_DIG_10_OFFSET ,0x0000000FU ,0x0000000FU); - /*############################################################################################################################ */ - - // : SIOU SETTINGS FOR BYPASS CONTROL,HSRX-DIG - /*Register : L0_TM_RST_DLY @ 0XFD4019A4

      - - Delay apb reset by specified amount - PSU_SERDES_L0_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4019A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L0_TM_ANA_BYP_15 @ 0XFD401038

      - - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD401038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L0_TM_ANA_BYP_12 @ 0XFD40102C

      - - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40102C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L0_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L1_TM_RST_DLY @ 0XFD4059A4

      - - Delay apb reset by specified amount - PSU_SERDES_L1_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4059A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L1_TM_ANA_BYP_15 @ 0XFD405038

      - - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD405038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L1_TM_ANA_BYP_12 @ 0XFD40502C

      - - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40502C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L2_TM_RST_DLY @ 0XFD4099A4

      - - Delay apb reset by specified amount - PSU_SERDES_L2_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD4099A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L2_TM_ANA_BYP_15 @ 0XFD409038

      - - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD409038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L2_TM_ANA_BYP_12 @ 0XFD40902C

      - - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40902C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L2_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_RST_DLY @ 0XFD40D9A4

      - - Delay apb reset by specified amount - PSU_SERDES_L3_TM_RST_DLY_APB_RST_DLY 0xFF - - reset delay for apb reset w.r.t pso of hsrx - (OFFSET, MASK, VALUE) (0XFD40D9A4, 0x000000FFU ,0x000000FFU) - RegMask = (SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK | 0 ); - - RegVal = ((0x000000FFU << SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_RST_DLY_OFFSET ,0x000000FFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : L3_TM_ANA_BYP_15 @ 0XFD40D038

      - - Enable Bypass for <7> of TM_ANA_BYPS_15 - PSU_SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 - - Bypass control for pcs-pma interface. EQ supplies, main master supply and ps for samp c2c - (OFFSET, MASK, VALUE) (0XFD40D038, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ANA_BYP_15_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : L3_TM_ANA_BYP_12 @ 0XFD40D02C

      - - Enable Bypass for <7> of TM_ANA_BYPS_12 - PSU_SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 - - Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr enable controls - (OFFSET, MASK, VALUE) (0XFD40D02C, 0x00000040U ,0x00000040U) - RegMask = (SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_ANA_BYP_12_OFFSET ,0x00000040U ,0x00000040U); - /*############################################################################################################################ */ - - // : GT LANE SETTINGS - /*Register : ICM_CFG0 @ 0XFD410010

      - - Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unuse - , 7 - Unused - PSU_SERDES_ICM_CFG0_L0_ICM_CFG 1 - - Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG0_L1_ICM_CFG 4 - - ICM Configuration Register 0 - (OFFSET, MASK, VALUE) (0XFD410010, 0x00000077U ,0x00000041U) - RegMask = (SERDES_ICM_CFG0_L0_ICM_CFG_MASK | SERDES_ICM_CFG0_L1_ICM_CFG_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT - | 0x00000004U << SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_ICM_CFG0_OFFSET ,0x00000077U ,0x00000041U); - /*############################################################################################################################ */ - - /*Register : ICM_CFG1 @ 0XFD410014

      - - Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG1_L2_ICM_CFG 3 - - Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused - 7 - Unused - PSU_SERDES_ICM_CFG1_L3_ICM_CFG 2 - - ICM Configuration Register 1 - (OFFSET, MASK, VALUE) (0XFD410014, 0x00000077U ,0x00000023U) - RegMask = (SERDES_ICM_CFG1_L2_ICM_CFG_MASK | SERDES_ICM_CFG1_L3_ICM_CFG_MASK | 0 ); - - RegVal = ((0x00000003U << SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT - | 0x00000002U << SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_ICM_CFG1_OFFSET ,0x00000077U ,0x00000023U); - /*############################################################################################################################ */ - - // : CHECKING PLL LOCK - // : ENABLE SERIAL DATA MUX DEEMPH - /*Register : L1_TXPMD_TM_45 @ 0XFD404CB4

      - - Enable/disable DP post2 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH 0x1 - - Override enable/disable of DP post2 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH 0x1 - - Override enable/disable of DP post1 path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH 0x1 - - Enable/disable DP main path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH 0x1 - - Override enable/disable of DP main path - PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH 0x1 - - Post or pre or main DP path selection - (OFFSET, MASK, VALUE) (0XFD404CB4, 0x00000037U ,0x00000037U) - RegMask = (SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK | SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT - | 0x00000001U << SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TXPMD_TM_45_OFFSET ,0x00000037U ,0x00000037U); - /*############################################################################################################################ */ - - /*Register : L1_TX_ANA_TM_118 @ 0XFD4041D8

      - - Test register force for enabling/disablign TX deemphasis bits <17:0> - PSU_SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 - - Enable Override of TX deemphasis - (OFFSET, MASK, VALUE) (0XFD4041D8, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TX_ANA_TM_118_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : L3_TX_ANA_TM_118 @ 0XFD40C1D8

      - - Test register force for enabling/disablign TX deemphasis bits <17:0> - PSU_SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 - - Enable Override of TX deemphasis - (OFFSET, MASK, VALUE) (0XFD40C1D8, 0x00000001U ,0x00000001U) - RegMask = (SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_ANA_TM_118_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ - - // : CDR AND RX EQUALIZATION SETTINGS - /*Register : L3_TM_CDR5 @ 0XFD40DC14

      - - FPHL FSM accumulate cycles - PSU_SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES 0x7 - - FFL Phase0 int gain aka 2ol SD update rate - PSU_SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN 0x6 - - Fast phase lock controls -- FSM accumulator cycle control and phase 0 int gain control. - (OFFSET, MASK, VALUE) (0XFD40DC14, 0x000000FFU ,0x000000E6U) - RegMask = (SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK | SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK | 0 ); - - RegVal = ((0x00000007U << SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT - | 0x00000006U << SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_CDR5_OFFSET ,0x000000FFU ,0x000000E6U); - /*############################################################################################################################ */ - - /*Register : L3_TM_CDR16 @ 0XFD40DC40

      - - FFL Phase0 prop gain aka 1ol SD update rate - PSU_SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN 0xC - - Fast phase lock controls -- phase 0 prop gain - (OFFSET, MASK, VALUE) (0XFD40DC40, 0x0000001FU ,0x0000000CU) - RegMask = (SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK | 0 ); - - RegVal = ((0x0000000CU << SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_CDR16_OFFSET ,0x0000001FU ,0x0000000CU); - /*############################################################################################################################ */ - - /*Register : L3_TM_EQ0 @ 0XFD40D94C

      - - EQ stg 2 controls BYPASSED - PSU_SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP 1 - - eq stg1 and stg2 controls - (OFFSET, MASK, VALUE) (0XFD40D94C, 0x00000020U ,0x00000020U) - RegMask = (SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_EQ0_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : L3_TM_EQ1 @ 0XFD40D950

      - - EQ STG2 RL PROG - PSU_SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG 0x2 - - EQ stg 2 preamp mode val - PSU_SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL 0x1 - - eq stg1 and stg2 controls - (OFFSET, MASK, VALUE) (0XFD40D950, 0x00000007U ,0x00000006U) - RegMask = (SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK | SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK | 0 ); - - RegVal = ((0x00000002U << SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT - | 0x00000001U << SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TM_EQ1_OFFSET ,0x00000007U ,0x00000006U); - /*############################################################################################################################ */ - - // : GEM SERDES SETTINGS - // : ENABLE PRE EMPHAIS AND VOLTAGE SWING - /*Register : L1_TXPMD_TM_48 @ 0XFD404CC0

      - - Margining factor value - PSU_SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR 0 - - Margining factor - (OFFSET, MASK, VALUE) (0XFD404CC0, 0x0000001FU ,0x00000000U) - RegMask = (SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TXPMD_TM_48_OFFSET ,0x0000001FU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L1_TX_ANA_TM_18 @ 0XFD404048

      - - pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved - PSU_SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0 - - Override for PIPE TX de-emphasis - (OFFSET, MASK, VALUE) (0XFD404048, 0x000000FFU ,0x00000000U) - RegMask = (SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK | 0 ); - - RegVal = ((0x00000000U << SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L1_TX_ANA_TM_18_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : L3_TX_ANA_TM_18 @ 0XFD40C048

      - - pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved - PSU_SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0x1 - - Override for PIPE TX de-emphasis - (OFFSET, MASK, VALUE) (0XFD40C048, 0x000000FFU ,0x00000001U) - RegMask = (SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK | 0 ); - - RegVal = ((0x00000001U << SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SERDES_L3_TX_ANA_TM_18_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - - return 1; + * TrustZone classification for Ingress Address Translation 7 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7 1 + + * TrustZone classification for Egress Address Translation 0 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0 1 + + * TrustZone classification for Egress Address Translation 1 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1 1 + + * TrustZone classification for Egress Address Translation 2 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2 1 + + * TrustZone classification for Egress Address Translation 3 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3 1 + + * TrustZone classification for Egress Address Translation 4 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4 1 + + * TrustZone classification for Egress Address Translation 5 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5 1 + + * TrustZone classification for Egress Address Translation 6 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6 1 + + * TrustZone classification for Egress Address Translation 7 + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7 1 + + * TrustZone classification for DMA Registers + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS 1 + + * TrustZone classification for MSIx Table + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE 1 + + * TrustZone classification for MSIx PBA + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA 1 + + * TrustZone classification for ECAM + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM 1 + + * TrustZone classification for Bridge Common Registers + * PSU_FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS 1 + + * PCIe TrustZone settings. This register may only be modified during bootu + * p (while PCIe block is disabled) + * (OFFSET, MASK, VALUE) (0XFD690030, 0x01FFFFFFU ,0x01FFFFFFU) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_PCIE_OFFSET, + 0x01FFFFFFU, 0x01FFFFFFU); +/*##################################################################### */ + + /* + * USB TZ + */ + /* + * Register : slcr_usb @ 0XFF4B0034 + + * TrustZone Classification for USB3_0 + * PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0 1 + + * TrustZone Classification for USB3_1 + * PSU_LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1 1 + + * USB3 TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0034, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_USB_OFFSET, + 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * SD TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x003F0000U ,0x00120000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x003F0000U, 0x00120000U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x003F0000U ,0x00120000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x003F0000U, 0x00120000U); +/*##################################################################### */ + + /* + * GEM TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x00000FFFU ,0x00000492U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x00000FFFU, 0x00000492U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT 2 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x00000FFFU ,0x00000492U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x00000FFFU, 0x00000492U); +/*##################################################################### */ + + /* + * QSPI TZ + */ + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x0E000000U ,0x04000000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x0E000000U, 0x04000000U); +/*##################################################################### */ + + /* + * NAND TZ + */ + /* + * Register : IOU_AXI_RPRTCN @ 0XFF240004 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT 2 + + * AXI read protection type selection + * (OFFSET, MASK, VALUE) (0XFF240004, 0x01C00000U ,0x00800000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET, + 0x01C00000U, 0x00800000U); +/*##################################################################### */ + + /* + * Register : IOU_AXI_WPRTCN @ 0XFF240000 + + * AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access + * PSU_IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT 2 + + * AXI write protection type selection + * (OFFSET, MASK, VALUE) (0XFF240000, 0x01C00000U ,0x00800000U) + */ + PSU_Mask_Write(IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET, + 0x01C00000U, 0x00800000U); +/*##################################################################### */ + + /* + * DMA TZ + */ + /* + * Register : slcr_adma @ 0XFF4B0024 + + * TrustZone Classification for ADMA + * PSU_LPD_SLCR_SECURE_SLCR_ADMA_TZ 0xFF + + * RPU TrustZone settings + * (OFFSET, MASK, VALUE) (0XFF4B0024, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_ADMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : slcr_gdma @ 0XFD690050 + + * TrustZone Classification for GDMA + * PSU_FPD_SLCR_SECURE_SLCR_GDMA_TZ 0xFF + + * GDMA Trustzone Settings + * (OFFSET, MASK, VALUE) (0XFD690050, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_GDMA_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + + return 1; } -unsigned long psu_resetout_init_data() { - // : TAKING SERDES PERIPHERAL OUT OF RESET RESET - // : PUTTING USB0 IN RESET - /*Register : RST_LPD_TOP @ 0XFF5E023C

      +unsigned long psu_serdes_init_data(void) +{ + /* + * SERDES INITIALIZATION + */ + /* + * GT REFERENCE CLOCK SOURCE SELECTION + */ + /* + * Register : PLL_REF_SEL0 @ 0XFD410000 + + * PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL0_PLLREFSEL0 0xD + + * PLL0 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410000, 0x0000001FU ,0x0000000DU) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL0_OFFSET, 0x0000001FU, 0x0000000DU); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL1 @ 0XFD410004 + + * PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL1_PLLREFSEL1 0x9 + + * PLL1 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410004, 0x0000001FU ,0x00000009U) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL1_OFFSET, 0x0000001FU, 0x00000009U); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL2 @ 0XFD410008 + + * PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL2_PLLREFSEL2 0x8 + + * PLL2 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD410008, 0x0000001FU ,0x00000008U) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL2_OFFSET, 0x0000001FU, 0x00000008U); +/*##################################################################### */ + + /* + * Register : PLL_REF_SEL3 @ 0XFD41000C + + * PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved + * PSU_SERDES_PLL_REF_SEL3_PLLREFSEL3 0xF + + * PLL3 Reference Selection Register + * (OFFSET, MASK, VALUE) (0XFD41000C, 0x0000001FU ,0x0000000FU) + */ + PSU_Mask_Write(SERDES_PLL_REF_SEL3_OFFSET, 0x0000001FU, 0x0000000FU); +/*##################################################################### */ + + /* + * GT REFERENCE CLOCK FREQUENCY SELECTION + */ + /* + * Register : L0_L0_REF_CLK_SEL @ 0XFD402860 + + * Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer outp + * ut. Set to 0 to select lane0 ref clock mux output. + * PSU_SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL 0x1 + + * Lane0 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402860, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_L0_REF_CLK_SEL_OFFSET, + 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_L1_REF_CLK_SEL @ 0XFD402864 + + * Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane1 ref clock mux output. + * PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL 0x0 + + * Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 sli + * cer output from ref clock network + * PSU_SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3 0x1 + + * Lane1 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402864, 0x00000088U ,0x00000008U) + */ + PSU_Mask_Write(SERDES_L0_L1_REF_CLK_SEL_OFFSET, + 0x00000088U, 0x00000008U); +/*##################################################################### */ + + /* + * Register : L0_L2_REF_CLK_SEL @ 0XFD402868 + + * Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane2 ref clock mux output. + * PSU_SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL 0x1 + + * Lane2 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD402868, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_L2_REF_CLK_SEL_OFFSET, + 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_L3_REF_CLK_SEL @ 0XFD40286C + + * Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer outp + * ut. Set to 0 to select lane3 ref clock mux output. + * PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL 0x0 + + * Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 sli + * cer output from ref clock network + * PSU_SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1 0x1 + + * Lane3 Ref Clock Selection Register + * (OFFSET, MASK, VALUE) (0XFD40286C, 0x00000082U ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L0_L3_REF_CLK_SEL_OFFSET, + 0x00000082U, 0x00000002U); +/*##################################################################### */ + + /* + * ENABLE SPREAD SPECTRUM + */ + /* + * Register : L2_TM_PLL_DIG_37 @ 0XFD40A094 + + * Enable/Disable coarse code satureation limiting logic + * PSU_SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION 0x1 + + * Test mode register 37 + * (OFFSET, MASK, VALUE) (0XFD40A094, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_PLL_DIG_37_OFFSET, + 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEPS_0_LSB @ 0XFD40A368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x38 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD40A368, 0x000000FFU ,0x00000038U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x00000038U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEPS_1_MSB @ 0XFD40A36C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x03 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40A36C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L3_PLL_SS_STEPS_0_LSB @ 0XFD40E368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0xE0 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD40E368, 0x000000FFU ,0x000000E0U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x000000E0U); +/*##################################################################### */ + + /* + * Register : L3_PLL_SS_STEPS_1_MSB @ 0XFD40E36C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40E36C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEPS_0_LSB @ 0XFD406368 + + * Spread Spectrum No of Steps [7:0] + * PSU_SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB 0x58 + + * Spread Spectrum No of Steps bits 7:0 + * (OFFSET, MASK, VALUE) (0XFD406368, 0x000000FFU ,0x00000058U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEPS_0_LSB_OFFSET, + 0x000000FFU, 0x00000058U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEPS_1_MSB @ 0XFD40636C + + * Spread Spectrum No of Steps [10:8] + * PSU_SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB 0x3 + + * Spread Spectrum No of Steps bits 10:8 + * (OFFSET, MASK, VALUE) (0XFD40636C, 0x00000007U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEPS_1_MSB_OFFSET, + 0x00000007U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_0_LSB @ 0XFD406370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0x7C + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD406370, 0x000000FFU ,0x0000007CU) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x0000007CU); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_1 @ 0XFD406374 + + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x33 + + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD406374, 0x000000FFU ,0x00000033U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x00000033U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_2 @ 0XFD406378 + + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 + + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD406378, 0x000000FFU ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : L1_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40637C + + * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 + + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 + + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40637C, 0x00000033U ,0x00000030U) + */ + PSU_Mask_Write(SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x00000033U, 0x00000030U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40A370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xF4 + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD40A370, 0x000000FFU ,0x000000F4U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x000000F4U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_1 @ 0XFD40A374 + + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0x31 + + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD40A374, 0x000000FFU ,0x00000031U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x00000031U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_2 @ 0XFD40A378 - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X0 + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x2 + + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD40A378, 0x000000FFU ,0x00000002U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000002U); +/*##################################################################### */ + + /* + * Register : L2_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40A37C - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000400U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | 0 ); + * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000400U ,0x00000000U); - /*############################################################################################################################ */ + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 + + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40A37C, 0x00000033U ,0x00000030U) + */ + PSU_Mask_Write(SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x00000033U, 0x00000030U); +/*##################################################################### */ - // : USB0 PIPE POWER PRESENT - /*Register : fpd_power_prsnt @ 0XFF9D0080

      + /* + * Register : L3_PLL_SS_STEP_SIZE_0_LSB @ 0XFD40E370 + + * Step Size for Spread Spectrum [7:0] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB 0xC9 + + * Step Size for Spread Spectrum LSB + * (OFFSET, MASK, VALUE) (0XFD40E370, 0x000000FFU ,0x000000C9U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_OFFSET, + 0x000000FFU, 0x000000C9U); +/*##################################################################### */ - This bit is used to choose between PIPE power present and 1'b1 - PSU_USB3_0_FPD_POWER_PRSNT_OPTION 0X1 + /* + * Register : L3_PLL_SS_STEP_SIZE_1 @ 0XFD40E374 - fpd_power_prsnt - (OFFSET, MASK, VALUE) (0XFF9D0080, 0x00000001U ,0x00000001U) - RegMask = (USB3_0_FPD_POWER_PRSNT_OPTION_MASK | 0 ); + * Step Size for Spread Spectrum [15:8] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1 0xD2 - RegVal = ((0x00000001U << USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_FPD_POWER_PRSNT_OFFSET ,0x00000001U ,0x00000001U); - /*############################################################################################################################ */ + * Step Size for Spread Spectrum 1 + * (OFFSET, MASK, VALUE) (0XFD40E374, 0x000000FFU ,0x000000D2U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_1_OFFSET, + 0x000000FFU, 0x000000D2U); +/*##################################################################### */ - /*Register : fpd_pipe_clk @ 0XFF9D007C

      + /* + * Register : L3_PLL_SS_STEP_SIZE_2 @ 0XFD40E378 - This bit is used to choose between PIPE clock coming from SerDes and the suspend clk - PSU_USB3_0_FPD_PIPE_CLK_OPTION 0x0 + * Step Size for Spread Spectrum [23:16] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2 0x1 - fpd_pipe_clk - (OFFSET, MASK, VALUE) (0XFF9D007C, 0x00000001U ,0x00000000U) - RegMask = (USB3_0_FPD_PIPE_CLK_OPTION_MASK | 0 ); + * Step Size for Spread Spectrum 2 + * (OFFSET, MASK, VALUE) (0XFD40E378, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_2_OFFSET, + 0x000000FFU, 0x00000001U); +/*##################################################################### */ - RegVal = ((0x00000000U << USB3_0_FPD_PIPE_CLK_OPTION_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_FPD_PIPE_CLK_OFFSET ,0x00000001U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : L3_PLL_SS_STEP_SIZE_3_MSB @ 0XFD40E37C - // : - /*Register : RST_LPD_TOP @ 0XFF5E023C

      + * Step Size for Spread Spectrum [25:24] + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB 0x0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X0 + * Enable/Disable test mode force on SS step size + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE 0x1 - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X0 + * Enable/Disable test mode force on SS no of steps + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS 0x1 + + * Enable test mode forcing on enable Spread Spectrum + * PSU_SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS 0x1 - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000140U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * Enable force on enable Spread Spectrum + * (OFFSET, MASK, VALUE) (0XFD40E37C, 0x000000B3U ,0x000000B0U) + */ + PSU_Mask_Write(SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_OFFSET, + 0x000000B3U, 0x000000B0U); +/*##################################################################### */ - RegVal = ((0x00000000U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000000U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000140U ,0x00000000U); - /*############################################################################################################################ */ + /* + * Register : L2_TM_DIG_6 @ 0XFD40906C - // : PUTTING GEM0 IN RESET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

      + * Bypass Descrambler + * PSU_SERDES_L2_TM_DIG_6_BYPASS_DESCRAM 0x1 - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X0 + * Enable Bypass for <1> TM_DIG_CTRL_6 + * PSU_SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * Data path test modes in decoder and descram + * (OFFSET, MASK, VALUE) (0XFD40906C, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_6_OFFSET, 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L2_TX_DIG_TM_61 @ 0XFD4080F4 - RegVal = ((0x00000000U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000000U); - /*############################################################################################################################ */ + * Bypass scrambler signal + * PSU_SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM 0x1 - // : PUTTING SATA IN RESET - /*Register : sata_misc_ctrl @ 0XFD3D0100

      + * Enable/disable scrambler bypass signal + * PSU_SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 + + * MPHY PLL Gear and bypass scrambler + * (OFFSET, MASK, VALUE) (0XFD4080F4, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SERDES_L2_TX_DIG_TM_61_OFFSET, + 0x00000003U, 0x00000003U); +/*##################################################################### */ + + /* + * Register : L3_PLL_FBDIV_FRAC_3_MSB @ 0XFD40E360 + + * Enable test mode force on fractional mode enable + * PSU_SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC 0x1 + + * Fractional feedback division control and fractional value for feedback d + * ivision bits 26:24 + * (OFFSET, MASK, VALUE) (0XFD40E360, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_PLL_FBDIV_FRAC_3_MSB_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ - Sata PM clock control select - PSU_SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL 0x3 + /* + * Register : L3_TM_DIG_6 @ 0XFD40D06C + + * Bypass 8b10b decoder + * PSU_SERDES_L3_TM_DIG_6_BYPASS_DECODER 0x1 - Misc Contorls for SATA.This register may only be modified during bootup (while SATA block is disabled) - (OFFSET, MASK, VALUE) (0XFD3D0100, 0x00000003U ,0x00000003U) - RegMask = (SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK | 0 ); + * Enable Bypass for <3> TM_DIG_CTRL_6 + * PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC 0x1 - RegVal = ((0x00000003U << SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SIOU_SATA_MISC_CTRL_OFFSET ,0x00000003U ,0x00000003U); - /*############################################################################################################################ */ + * Bypass Descrambler + * PSU_SERDES_L3_TM_DIG_6_BYPASS_DESCRAM 0x1 - /*Register : RST_FPD_TOP @ 0XFD1A0100

      + * Enable Bypass for <1> TM_DIG_CTRL_6 + * PSU_SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM 0x1 + + * Data path test modes in decoder and descram + * (OFFSET, MASK, VALUE) (0XFD40D06C, 0x0000000FU ,0x0000000FU) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_6_OFFSET, 0x0000000FU, 0x0000000FU); +/*##################################################################### */ + + /* + * Register : L3_TX_DIG_TM_61 @ 0XFD40C0F4 + + * Enable/disable encoder bypass signal + * PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_ENC 0x1 + + * Bypass scrambler signal + * PSU_SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM 0x1 + + * Enable/disable scrambler bypass signal + * PSU_SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM 0x1 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING PCIE CFG AND BRIDGE IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      - - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X0 - - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000C0000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000C0000U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING DP IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      - - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_DP_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00010000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DP_PHY_RESET @ 0XFD4A0200

      - - Set to '1' to hold the GT in reset. Clear to release. - PSU_DP_DP_PHY_RESET_GT_RESET 0X0 - - Reset the transmitter PHY. - (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000000U) - RegMask = (DP_DP_PHY_RESET_GT_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << DP_DP_PHY_RESET_GT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_PHY_RESET_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

      - - Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1 - PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0X0 - - Control PHY Power down - (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x00000000U) - RegMask = (DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK | 0 ); - - RegVal = ((0x00000000U << DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_TX_PHY_POWER_DOWN_OFFSET ,0x0000000FU ,0x00000000U); - /*############################################################################################################################ */ - - // : USB0 GFLADJ - /*Register : GUSB2PHYCFG @ 0XFE20C200

      - - USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to - he Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). The following are the required values for the minimum S - C bus frequency of 60 MHz. USB turnaround time is a critical certification criteria when using long cables and five hub level - . The required values for this field: - 4'h5: When the MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit - UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround time is not critical, this field can be set to a larger - alue. Note: This field is valid only in device mode. - PSU_USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM 0x9 - - Transceiver Delay: Enables a delay between the assertion of the UTMI/ULPI Transceiver Select signal (for HS) and the assertio - of the TxValid signal during a HS Chirp. When this bit is set to 1, a delay (of approximately 2.5 us) is introduced from the - time when the Transceiver Select is set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the chirp-K. This de - ay is required for some UTMI/ULPI PHYs. Note: - If you enable the hibernation feature when the device core comes out of power - off, you must re-initialize this bit with the appropriate value because the core does not save and restore this bit value dur - ng hibernation. - This bit is valid only in device mode. - PSU_USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY 0x0 - - Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application uses this bit to control utmi_sleep_n and utmi_l1_suspen - _n assertion to the PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is not transferre - to the external PHY. - 1'b1: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is transferred to the external PHY. - ote: This bit must be set high for Port0 if PHY is used. Note: In Device mode - Before issuing any device endpoint command wh - n operating in 2.0 speeds, disable this bit and enable it after the command completes. Without disabling this bit, if a comma - d is issued when the device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get complet - d. - PSU_USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM 0x0 - - USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select The application uses this bit to select a high-speed P - Y or a full-speed transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is always 0, with Write Only access. - - 'b1: USB 1.1 full-speed serial transceiver. This bit is always 1, with Write Only access. If both interface types are selecte - in coreConsultant (that is, parameters' values are not zero), the application uses this bit to select the active interface i - active, with Read-Write bit access. Note: USB 1.1 full-serial transceiver is not supported. This bit always reads as 1'b0. - PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYSEL 0x0 - - Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select a unidirectional or bidirectional USB 1.1 - full-speed serial transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial interface. This bit is set to 0 with - ead Only access. - 1'b1: 3-pin bidirectional full-speed serial interface. This bit is set to 0 with Read Only access. Note: U - B 1.1 full-speed serial interface is not supported. This bit always reads as 1'b0. - PSU_USB3_0_XHCI_GUSB2PHYCFG_FSINTF 0x0 - - ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interfa - e - 1'b1: ULPI Interface This bit is writable only if UTMI+ and ULPI is specified for High-Speed PHY Interface(s) in coreCons - ltant configuration (DWC_USB3_HSPHY_INTERFACE = 3). Otherwise, this bit is read-only and the value depends on the interface s - lected through DWC_USB3_HSPHY_INTERFACE. - PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL 0x1 - - PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bit to configure the core to support a UTMI+ PHY with a - 8- or 16-bit interface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the enabled 2.0 ports must have the same - lock frequency as Port0 clock frequency (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used together for differen - ports at the same time (that is, all the ports must be in 8-bit mode, or all of them must be in 16-bit mode, at a time). - I - any of the USB 2.0 ports is selected as ULPI port for operation, then all the USB 2.0 ports must be operating at 60 MHz. - PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYIF 0x0 - - HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicated by the application in this field, is multiplied by - a bit-time factor; this factor is added to the high-speed/full-speed interpacket timeout duration in the core to account for - dditional delays introduced by the PHY. This may be required, since the delay introduced by the PHY in generating the linesta - e condition may vary among PHYs. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. - The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this - ield based on the speed of connection. The number of bit times added per PHY clock are: High-speed operation: - One 30-MHz PH - clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One - 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times - PSU_USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL 0x7 - - Global USB2 PHY Configuration Register The application must program this register before starting any transactions on either - he SoC bus or the USB. In Device-only configurations, only one register is needed. In Host mode, per-port registers are imple - ented. - (OFFSET, MASK, VALUE) (0XFE20C200, 0x00003FBFU ,0x00002417U) - RegMask = (USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK | USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK | USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK | USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK | USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK | USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK | USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK | USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK | 0 ); - - RegVal = ((0x00000009U << USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT - | 0x00000001U << USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT - | 0x00000000U << USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT - | 0x00000007U << USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_XHCI_GUSB2PHYCFG_OFFSET ,0x00003FBFU ,0x00002417U); - /*############################################################################################################################ */ - - /*Register : GFLADJ @ 0XFE20C630

      - - This field indicates the frame length adjustment to be applied when SOF/ITP counter is running on the ref_clk. This register - alue is used to adjust the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP interval when GLADJ.GFLADJ_REFCLK_LP - _SEL is set to '1'. This field must be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set to '1' or GCTL.SOF - TPSYNC is set to '1'. The value is derived as follows: FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_p - riod)) * ref_clk_period where - the ref_clk_period_integer is the integer value of the ref_clk period got by truncating the d - cimal (fractional) value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_clk_period is the ref_clk period inc - uding the fractional value. Examples: If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLADJ_REFCLK_FLADJ = - ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignoring the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_P - RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*20.8333 = 5208 (ignoring the fractional value) - PSU_USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ 0x0 - - Global Frame Length Adjustment Register This register provides options for the software to control the core behavior with res - ect to SOF (Start of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer functionality. It provides an optio - to override the fladj_30mhz_reg sideband signal. In addition, it enables running SOF or ITP frame timer counters completely - rom the ref_clk. This facilitates hardware LPM in host mode with the SOF or ITP counters being run from the ref_clk signal. - (OFFSET, MASK, VALUE) (0XFE20C630, 0x003FFF00U ,0x00000000U) - RegMask = (USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK | 0 ); - - RegVal = ((0x00000000U << USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (USB3_0_XHCI_GFLADJ_OFFSET ,0x003FFF00U ,0x00000000U); - /*############################################################################################################################ */ - - // : UPDATING TWO PCIE REGISTERS DEFAULT VALUES, AS THESE REGISTERS HAVE INCORRECT RESET VALUES IN SILICON. - /*Register : ATTR_25 @ 0XFD480064

      - - If TRUE Completion Timeout Disable is supported. This is required to be TRUE for Endpoint and either setting allowed for Root - ports. Drives Device Capability 2 [4]; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED 0X1 - - ATTR_25 - (OFFSET, MASK, VALUE) (0XFD480064, 0x00000200U ,0x00000200U) - RegMask = (PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_25_OFFSET ,0x00000200U ,0x00000200U); - /*############################################################################################################################ */ - - // : PCIE SETTINGS - /*Register : ATTR_7 @ 0XFD48001C

      - - Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0x0004; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_7_ATTR_BAR0 0x0 - - ATTR_7 - (OFFSET, MASK, VALUE) (0XFD48001C, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_7_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_8 @ 0XFD480020

      - - Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0xFFF0; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_8_ATTR_BAR0 0x0 - - ATTR_8 - (OFFSET, MASK, VALUE) (0XFD480020, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_8_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_9 @ 0XFD480024

      - - Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_9_ATTR_BAR1 0x0 - - ATTR_9 - (OFFSET, MASK, VALUE) (0XFD480024, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_9_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_10 @ 0XFD480028

      - - Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_10_ATTR_BAR1 0x0 - - ATTR_10 - (OFFSET, MASK, VALUE) (0XFD480028, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_10_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_11 @ 0XFD48002C

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFFF - PSU_PCIE_ATTRIB_ATTR_11_ATTR_BAR2 0xFFFF - - ATTR_11 - (OFFSET, MASK, VALUE) (0XFD48002C, 0x0000FFFFU ,0x0000FFFFU) - RegMask = (PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK | 0 ); - - RegVal = ((0x0000FFFFU << PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_11_OFFSET ,0x0000FFFFU ,0x0000FFFFU); - /*############################################################################################################################ */ - - /*Register : ATTR_12 @ 0XFD480030

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0x00FF - PSU_PCIE_ATTRIB_ATTR_12_ATTR_BAR2 0xFF - - ATTR_12 - (OFFSET, MASK, VALUE) (0XFD480030, 0x0000FFFFU ,0x000000FFU) - RegMask = (PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK | 0 ); - - RegVal = ((0x000000FFU << PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_12_OFFSET ,0x0000FFFFU ,0x000000FFU); - /*############################################################################################################################ */ - - /*Register : ATTR_13 @ 0XFD480034

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_13_ATTR_BAR3 0x0 - - ATTR_13 - (OFFSET, MASK, VALUE) (0XFD480034, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_13_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_14 @ 0XFD480038

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFFF - PSU_PCIE_ATTRIB_ATTR_14_ATTR_BAR3 0xFFFF - - ATTR_14 - (OFFSET, MASK, VALUE) (0XFD480038, 0x0000FFFFU ,0x0000FFFFU) - RegMask = (PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK | 0 ); - - RegVal = ((0x0000FFFFU << PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_14_OFFSET ,0x0000FFFFU ,0x0000FFFFU); - /*############################################################################################################################ */ - - /*Register : ATTR_15 @ 0XFD48003C

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFF0 - PSU_PCIE_ATTRIB_ATTR_15_ATTR_BAR4 0xFFF0 - - ATTR_15 - (OFFSET, MASK, VALUE) (0XFD48003C, 0x0000FFFFU ,0x0000FFF0U) - RegMask = (PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK | 0 ); - - RegVal = ((0x0000FFF0U << PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_15_OFFSET ,0x0000FFFFU ,0x0000FFF0U); - /*############################################################################################################################ */ - - /*Register : ATTR_16 @ 0XFD480040

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0xFFF0 - PSU_PCIE_ATTRIB_ATTR_16_ATTR_BAR4 0xFFF0 - - ATTR_16 - (OFFSET, MASK, VALUE) (0XFD480040, 0x0000FFFFU ,0x0000FFF0U) - RegMask = (PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK | 0 ); - - RegVal = ((0x0000FFF0U << PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_16_OFFSET ,0x0000FFFFU ,0x0000FFF0U); - /*############################################################################################################################ */ - - /*Register : ATTR_17 @ 0XFD480044

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 - PSU_PCIE_ATTRIB_ATTR_17_ATTR_BAR5 0xFFF1 - - ATTR_17 - (OFFSET, MASK, VALUE) (0XFD480044, 0x0000FFFFU ,0x0000FFF1U) - RegMask = (PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK | 0 ); - - RegVal = ((0x0000FFF1U << PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_17_OFFSET ,0x0000FFFFU ,0x0000FFF1U); - /*############################################################################################################################ */ - - /*Register : ATTR_18 @ 0XFD480048

      - - For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1 - PSU_PCIE_ATTRIB_ATTR_18_ATTR_BAR5 0xFFF1 - - ATTR_18 - (OFFSET, MASK, VALUE) (0XFD480048, 0x0000FFFFU ,0x0000FFF1U) - RegMask = (PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK | 0 ); - - RegVal = ((0x0000FFF1U << PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_18_OFFSET ,0x0000FFFFU ,0x0000FFF1U); - /*############################################################################################################################ */ - - /*Register : ATTR_27 @ 0XFD48006C

      - - Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1- 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred - to the Device Capabilities register. The values: 4-2048 bytes, 5- 4096 bytes are not supported; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED 1 - - Endpoint L1 Acceptable Latency. Records the latency that the endpoint can withstand on transitions from L1 state to L0 (if L1 - state supported). Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to 8us, 4h 8 to 16us, 5h 16 to 32us, 6 - 32 to 64us, 7h more than 64us. For Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY 0x0 - - ATTR_27 - (OFFSET, MASK, VALUE) (0XFD48006C, 0x00000738U ,0x00000100U) - RegMask = (PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK | PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_27_OFFSET ,0x00000738U ,0x00000100U); - /*############################################################################################################################ */ - - /*Register : ATTR_50 @ 0XFD4800C8

      - - Identifies the type of device/port as follows: 0000b PCI Express Endpoint device, 0001b Legacy PCI Express Endpoint device, 0 - 00b Root Port of PCI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110b Downstream Port of PCI Express Sw - tch, 0111b PCIE Express to PCI/PCI-X Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Express Capabilities r - gister. Must be consistent with IS_SWITCH and UPSTREAM_FACING settings.; EP=0x0000; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE 4 - - PCIe Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capab - lity.; EP=0x009C; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR 0 - - ATTR_50 - (OFFSET, MASK, VALUE) (0XFD4800C8, 0x0000FFF0U ,0x00000040U) - RegMask = (PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK | PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000004U << PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_50_OFFSET ,0x0000FFF0U ,0x00000040U); - /*############################################################################################################################ */ - - /*Register : ATTR_105 @ 0XFD4801A4

      - - Number of credits that should be advertised for Completion data received on Virtual Channel 0. The bytes advertised must be l - ss than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD - PSU_PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD 0xCD - - ATTR_105 - (OFFSET, MASK, VALUE) (0XFD4801A4, 0x000007FFU ,0x000000CDU) - RegMask = (PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK | 0 ); - - RegVal = ((0x000000CDU << PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_105_OFFSET ,0x000007FFU ,0x000000CDU); - /*############################################################################################################################ */ - - /*Register : ATTR_106 @ 0XFD4801A8

      - - Number of credits that should be advertised for Completion headers received on Virtual Channel 0. The sum of the posted, non - osted, and completion header credits must be <= 80; EP=0x0048; RP=0x0024 - PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH 0x24 - - Number of credits that should be advertised for Non-Posted headers received on Virtual Channel 0. The number of non posted da - a credits advertised by the block is equal to the number of non posted header credits. The sum of the posted, non posted, and - completion header credits must be <= 80; EP=0x0004; RP=0x000C - PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH 0xC - - ATTR_106 - (OFFSET, MASK, VALUE) (0XFD4801A8, 0x00003FFFU ,0x00000624U) - RegMask = (PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK | PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK | 0 ); - - RegVal = ((0x00000024U << PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT - | 0x0000000CU << PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_106_OFFSET ,0x00003FFFU ,0x00000624U); - /*############################################################################################################################ */ - - /*Register : ATTR_107 @ 0XFD4801AC

      - - Number of credits that should be advertised for Non-Posted data received on Virtual Channel 0. The number of non posted data - redits advertised by the block is equal to two times the number of non posted header credits if atomic operations are support - d or is equal to the number of non posted header credits if atomic operations are not supported. The bytes advertised must be - less than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 - PSU_PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD 0x18 - - ATTR_107 - (OFFSET, MASK, VALUE) (0XFD4801AC, 0x000007FFU ,0x00000018U) - RegMask = (PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK | 0 ); - - RegVal = ((0x00000018U << PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_107_OFFSET ,0x000007FFU ,0x00000018U); - /*############################################################################################################################ */ - - /*Register : ATTR_108 @ 0XFD4801B0

      - - Number of credits that should be advertised for Posted data received on Virtual Channel 0. The bytes advertised must be less - han or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 - PSU_PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD 0xB5 - - ATTR_108 - (OFFSET, MASK, VALUE) (0XFD4801B0, 0x000007FFU ,0x000000B5U) - RegMask = (PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK | 0 ); - - RegVal = ((0x000000B5U << PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_108_OFFSET ,0x000007FFU ,0x000000B5U); - /*############################################################################################################################ */ - - /*Register : ATTR_109 @ 0XFD4801B4

      - - Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x00 - 0 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV 0x0 - - Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim TRUE == trim.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM 0x1 - - Enables ECRC check on received TLP's 0 == don't check 1 == always check 3 == check if enabled by ECRC check enable bit of AER - cap structure; EP=0x0003; RP=0x0003 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK 0x3 - - Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). Calculated from max payload size supported and the n - mber of brams configured for transmit; EP=0x001C; RP=0x001C - PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET 0x1c - - Number of credits that should be advertised for Posted headers received on Virtual Channel 0. The sum of the posted, non post - d, and completion header credits must be <= 80; EP=0x0004; RP=0x0020 - PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH 0x20 - - ATTR_109 - (OFFSET, MASK, VALUE) (0XFD4801B4, 0x0000FFFFU ,0x00007E20U) - RegMask = (PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK | PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK | PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK | PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK | PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT - | 0x00000003U << PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT - | 0x0000001CU << PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT - | 0x00000020U << PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_109_OFFSET ,0x0000FFFFU ,0x00007E20U); - /*############################################################################################################################ */ - - /*Register : ATTR_34 @ 0XFD480088

      - - Specifies values to be transferred to Header Type register. Bit 7 should be set to '0' indicating single-function device. Bit - 0 identifies header as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE 0x1 - - ATTR_34 - (OFFSET, MASK, VALUE) (0XFD480088, 0x000000FFU ,0x00000001U) - RegMask = (PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_34_OFFSET ,0x000000FFU ,0x00000001U); - /*############################################################################################################################ */ - - /*Register : ATTR_53 @ 0XFD4800D4

      - - PM Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabil - ty.; EP=0x0048; RP=0x0060 - PSU_PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR 0x60 - - ATTR_53 - (OFFSET, MASK, VALUE) (0XFD4800D4, 0x000000FFU ,0x00000060U) - RegMask = (PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000060U << PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_53_OFFSET ,0x000000FFU ,0x00000060U); - /*############################################################################################################################ */ - - /*Register : ATTR_41 @ 0XFD4800A4

      - - MSI Per-Vector Masking Capable. The value is transferred to the MSI Control Register[8]. When set, adds Mask and Pending Dwor - to Cap structure; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE 0x0 - - Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 - - MSI Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabi - ity.; EP=0x0060; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR 0x0 - - Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 - - ATTR_41 - (OFFSET, MASK, VALUE) (0XFD4800A4, 0x000003FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK | PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_41_OFFSET ,0x000003FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_97 @ 0XFD480184

      - - Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b x4, 001000b x8.; EP=0x0004; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH 0x1 - - Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x00 - 4; RP=0x0004 - PSU_PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH 0x1 - - ATTR_97 - (OFFSET, MASK, VALUE) (0XFD480184, 0x00000FFFU ,0x00000041U) - RegMask = (PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK | PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_97_OFFSET ,0x00000FFFU ,0x00000041U); - /*############################################################################################################################ */ - - /*Register : ATTR_100 @ 0XFD480190

      - - TRUE specifies upstream-facing port. FALSE specifies downstream-facing port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING 0x0 - - ATTR_100 - (OFFSET, MASK, VALUE) (0XFD480190, 0x00000040U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_100_OFFSET ,0x00000040U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_101 @ 0XFD480194

      - - Enable the routing of message TLPs to the user through the TRN RX interface. A bit value of 1 enables routing of the message - LP to the user. Messages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 - ERR NONFATAL, Bit 2 - ERR FATAL, - Bit 3 - INTA Bit 4 - INTB, Bit 5 - INTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit 10 PME_Turn_Off; - EP=0x0000; RP=0x07FF - PSU_PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE 0x7FF - - Disable BAR filtering. Does not change the behavior of the bar hit outputs; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING 0x1 - - ATTR_101 - (OFFSET, MASK, VALUE) (0XFD480194, 0x0000FFE2U ,0x0000FFE2U) - RegMask = (PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK | PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK | 0 ); - - RegVal = ((0x000007FFU << PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_101_OFFSET ,0x0000FFE2U ,0x0000FFE2U); - /*############################################################################################################################ */ - - /*Register : ATTR_37 @ 0XFD480094

      - - Link Bandwidth notification capability. Indicates support for the link bandwidth notification status and interrupt mechanism. - Required for Root.; EP=0x0000; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP 0x1 - - Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Optionality ECN. Transferred to the Link Capabilities r - gister.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY 0x1 - - ATTR_37 - (OFFSET, MASK, VALUE) (0XFD480094, 0x00004200U ,0x00004200U) - RegMask = (PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK | PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT - | 0x00000001U << PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_37_OFFSET ,0x00004200U ,0x00004200U); - /*############################################################################################################################ */ - - /*Register : ATTR_93 @ 0XFD480174

      - - Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value (or combined with the built-in value, depending on L - _REPLAY_TIMEOUT_FUNC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN 0x1 - - Sets a user-defined timeout for the Replay Timer to force cause the retransmission of unacknowledged TLPs; refer to LL_REPLAY - TIMEOUT_EN and LL_REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this attribute is in symbol times, which is - 4ns at GEN1 speeds and 2ns at GEN2.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT 0x1000 - - ATTR_93 - (OFFSET, MASK, VALUE) (0XFD480174, 0x0000FFFFU ,0x00009000U) - RegMask = (PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK | PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT - | 0x00001000U << PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_93_OFFSET ,0x0000FFFFU ,0x00009000U); - /*############################################################################################################################ */ - - /*Register : ID @ 0XFD480200

      - - Device ID for the the PCIe Cap Structure Device ID field - PSU_PCIE_ATTRIB_ID_CFG_DEV_ID 0xd021 - - Vendor ID for the PCIe Cap Structure Vendor ID field - PSU_PCIE_ATTRIB_ID_CFG_VEND_ID 0x10ee - - ID - (OFFSET, MASK, VALUE) (0XFD480200, 0xFFFFFFFFU ,0x10EED021U) - RegMask = (PCIE_ATTRIB_ID_CFG_DEV_ID_MASK | PCIE_ATTRIB_ID_CFG_VEND_ID_MASK | 0 ); - - RegVal = ((0x0000D021U << PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT - | 0x000010EEU << PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ID_OFFSET ,0xFFFFFFFFU ,0x10EED021U); - /*############################################################################################################################ */ - - /*Register : SUBSYS_ID @ 0XFD480204

      - - Subsystem ID for the the PCIe Cap Structure Subsystem ID field - PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID 0x7 - - Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field - PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID 0x10ee - - SUBSYS_ID - (OFFSET, MASK, VALUE) (0XFD480204, 0xFFFFFFFFU ,0x10EE0007U) - RegMask = (PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK | PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK | 0 ); - - RegVal = ((0x00000007U << PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT - | 0x000010EEU << PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_SUBSYS_ID_OFFSET ,0xFFFFFFFFU ,0x10EE0007U); - /*############################################################################################################################ */ - - /*Register : REV_ID @ 0XFD480208

      - - Revision ID for the the PCIe Cap Structure - PSU_PCIE_ATTRIB_REV_ID_CFG_REV_ID 0x0 - - REV_ID - (OFFSET, MASK, VALUE) (0XFD480208, 0x000000FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_REV_ID_OFFSET ,0x000000FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_24 @ 0XFD480060

      - - Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 8000; RP=0x8000 - PSU_PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE 0x400 - - ATTR_24 - (OFFSET, MASK, VALUE) (0XFD480060, 0x0000FFFFU ,0x00000400U) - RegMask = (PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK | 0 ); - - RegVal = ((0x00000400U << PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_24_OFFSET ,0x0000FFFFU ,0x00000400U); - /*############################################################################################################################ */ - - /*Register : ATTR_25 @ 0XFD480064

      - - Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 0005; RP=0x0006 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE 0x6 - - INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] to be hardwired to 0.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED 0 - - ATTR_25 - (OFFSET, MASK, VALUE) (0XFD480064, 0x000001FFU ,0x00000006U) - RegMask = (PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK | PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK | 0 ); - - RegVal = ((0x00000006U << PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_25_OFFSET ,0x000001FFU ,0x00000006U); - /*############################################################################################################################ */ - - /*Register : ATTR_4 @ 0XFD480010

      - - Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 - - Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 - - ATTR_4 - (OFFSET, MASK, VALUE) (0XFD480010, 0x00001000U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK | PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT - | 0x00000000U << PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_4_OFFSET ,0x00001000U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_89 @ 0XFD480164

      - - VSEC's Next Capability Offset pointer to the next item in the capabilities list, or 000h if this is the final capability.; EP - 0x0140; RP=0x0140 - PSU_PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR 0 - - ATTR_89 - (OFFSET, MASK, VALUE) (0XFD480164, 0x00001FFEU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_89_OFFSET ,0x00001FFEU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_79 @ 0XFD48013C

      - - CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the Root Capabilities register.; EP=0x0000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY 1 - - ATTR_79 - (OFFSET, MASK, VALUE) (0XFD48013C, 0x00000020U ,0x00000020U) - RegMask = (PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK | 0 ); - - RegVal = ((0x00000001U << PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_79_OFFSET ,0x00000020U ,0x00000020U); - /*############################################################################################################################ */ - - /*Register : ATTR_43 @ 0XFD4800AC

      - - Indicates that the MSIX structures exists. If this is FALSE, then the MSIX structure cannot be accessed via either the link o - the management port.; EP=0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON 0 - - ATTR_43 - (OFFSET, MASK, VALUE) (0XFD4800AC, 0x00000100U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_43_OFFSET ,0x00000100U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_48 @ 0XFD4800C0

      - - MSI-X Table Size. This value is transferred to the MSI-X Message Control[10:0] field. Set to 0 if MSI-X is not enabled. Note - hat the core does not implement the table; that must be implemented in user logic.; EP=0x0003; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE 0 - - ATTR_48 - (OFFSET, MASK, VALUE) (0XFD4800C0, 0x000007FFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_48_OFFSET ,0x000007FFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_46 @ 0XFD4800B8

      - - MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; - P=0x0000 - PSU_PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET 0 - - ATTR_46 - (OFFSET, MASK, VALUE) (0XFD4800B8, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_46_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_47 @ 0XFD4800BC

      - - MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0000; - P=0x0000 - PSU_PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET 0 - - ATTR_47 - (OFFSET, MASK, VALUE) (0XFD4800BC, 0x00001FFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_47_OFFSET ,0x00001FFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_44 @ 0XFD4800B0

      - - MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x0001; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET 0 - - ATTR_44 - (OFFSET, MASK, VALUE) (0XFD4800B0, 0x0000FFFFU ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_44_OFFSET ,0x0000FFFFU ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_45 @ 0XFD4800B4

      - - MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x1000; RP=0x0000 - PSU_PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET 0 - - ATTR_45 - (OFFSET, MASK, VALUE) (0XFD4800B4, 0x0000FFF8U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_45_OFFSET ,0x0000FFF8U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : CB @ 0XFD48031C

      - - DT837748 Enable - PSU_PCIE_ATTRIB_CB_CB1 0x0 - - ECO Register 1 - (OFFSET, MASK, VALUE) (0XFD48031C, 0x00000002U ,0x00000000U) - RegMask = (PCIE_ATTRIB_CB_CB1_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_CB_CB1_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_CB_OFFSET ,0x00000002U ,0x00000000U); - /*############################################################################################################################ */ - - /*Register : ATTR_35 @ 0XFD48008C

      - - Active State PM Support. Indicates the level of active state power management supported by the selected PCI Express Link, enc - ded as follows: 0 Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supported.; EP=0x0001; RP=0x0001 - PSU_PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT 0x0 - - ATTR_35 - (OFFSET, MASK, VALUE) (0XFD48008C, 0x00003000U ,0x00000000U) - RegMask = (PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK | 0 ); - - RegVal = ((0x00000000U << PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PCIE_ATTRIB_ATTR_35_OFFSET ,0x00003000U ,0x00000000U); - /*############################################################################################################################ */ - - // : PUTTING PCIE CONTROL IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      - - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X0 - - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00020000U ,0x00000000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | 0 ); - - RegVal = ((0x00000000U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00020000U ,0x00000000U); - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE0 - /*Register : L0_PLL_STATUS_READ_1 @ 0XFD4023E4

      - - Status Read value of PLL Lock - PSU_SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD4023E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L0_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE1 - /*Register : L1_PLL_STATUS_READ_1 @ 0XFD4063E4

      - - Status Read value of PLL Lock - PSU_SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD4063E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L1_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE2 - /*Register : L2_PLL_STATUS_READ_1 @ 0XFD40A3E4

      - - Status Read value of PLL Lock - PSU_SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD40A3E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L2_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : CHECK PLL LOCK FOR LANE3 - /*Register : L3_PLL_STATUS_READ_1 @ 0XFD40E3E4

      - - Status Read value of PLL Lock - PSU_SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 - (OFFSET, MASK, VALUE) (0XFD40E3E4, 0x00000010U ,0x00000010U) */ - mask_poll(SERDES_L3_PLL_STATUS_READ_1_OFFSET,0x00000010U); - - /*############################################################################################################################ */ - - // : SATA AHCI VENDOR SETTING - /*Register : PP2C @ 0XFD0C00AC

      - - CIBGMN: COMINIT Burst Gap Minimum. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGMN 0x18 - - CIBGMX: COMINIT Burst Gap Maximum. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGMX 0x40 - - CIBGN: COMINIT Burst Gap Nominal. - PSU_SATA_AHCI_VENDOR_PP2C_CIBGN 0x18 - - CINMP: COMINIT Negate Minimum Period. - PSU_SATA_AHCI_VENDOR_PP2C_CINMP 0x28 - - PP2C - Port Phy2Cfg Register. This register controls the configuration of the Phy Control OOB timing for the COMINIT paramete - s for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00AC, 0xFFFFFFFFU ,0x28184018U) - RegMask = (SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK | SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK | SATA_AHCI_VENDOR_PP2C_CIBGN_MASK | SATA_AHCI_VENDOR_PP2C_CINMP_MASK | 0 ); - - RegVal = ((0x00000018U << SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT - | 0x00000040U << SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT - | 0x00000018U << SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT - | 0x00000028U << SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP2C_OFFSET ,0xFFFFFFFFU ,0x28184018U); - /*############################################################################################################################ */ - - /*Register : PP3C @ 0XFD0C00B0

      - - CWBGMN: COMWAKE Burst Gap Minimum. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGMN 0x06 - - CWBGMX: COMWAKE Burst Gap Maximum. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGMX 0x14 - - CWBGN: COMWAKE Burst Gap Nominal. - PSU_SATA_AHCI_VENDOR_PP3C_CWBGN 0x08 - - CWNMP: COMWAKE Negate Minimum Period. - PSU_SATA_AHCI_VENDOR_PP3C_CWNMP 0x0E - - PP3C - Port Phy3CfgRegister. This register controls the configuration of the Phy Control OOB timing for the COMWAKE parameter - for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B0, 0xFFFFFFFFU ,0x0E081406U) - RegMask = (SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK | SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK | SATA_AHCI_VENDOR_PP3C_CWBGN_MASK | SATA_AHCI_VENDOR_PP3C_CWNMP_MASK | 0 ); - - RegVal = ((0x00000006U << SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT - | 0x00000014U << SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT - | 0x00000008U << SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT - | 0x0000000EU << SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP3C_OFFSET ,0xFFFFFFFFU ,0x0E081406U); - /*############################################################################################################################ */ - - /*Register : PP4C @ 0XFD0C00B4

      - - BMX: COM Burst Maximum. - PSU_SATA_AHCI_VENDOR_PP4C_BMX 0x13 - - BNM: COM Burst Nominal. - PSU_SATA_AHCI_VENDOR_PP4C_BNM 0x08 - - SFD: Signal Failure Detection, if the signal detection de-asserts for a time greater than this then the OOB detector will det - rmine this is a line idle and cause the PhyInit state machine to exit the Phy Ready State. A value of zero disables the Signa - Failure Detector. The value is based on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving a nominal time of - 500ns based on a 150MHz PMCLK. - PSU_SATA_AHCI_VENDOR_PP4C_SFD 0x4A - - PTST: Partial to Slumber timer value, specific delay the controller should apply while in partial before entering slumber. Th - value is bases on the system clock divided by 128, total delay = (Sys Clock Period) * PTST * 128 - PSU_SATA_AHCI_VENDOR_PP4C_PTST 0x06 - - PP4C - Port Phy4Cfg Register. This register controls the configuration of the Phy Control Burst timing for the COM parameters - for either Port 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B4, 0xFFFFFFFFU ,0x064A0813U) - RegMask = (SATA_AHCI_VENDOR_PP4C_BMX_MASK | SATA_AHCI_VENDOR_PP4C_BNM_MASK | SATA_AHCI_VENDOR_PP4C_SFD_MASK | SATA_AHCI_VENDOR_PP4C_PTST_MASK | 0 ); - - RegVal = ((0x00000013U << SATA_AHCI_VENDOR_PP4C_BMX_SHIFT - | 0x00000008U << SATA_AHCI_VENDOR_PP4C_BNM_SHIFT - | 0x0000004AU << SATA_AHCI_VENDOR_PP4C_SFD_SHIFT - | 0x00000006U << SATA_AHCI_VENDOR_PP4C_PTST_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP4C_OFFSET ,0xFFFFFFFFU ,0x064A0813U); - /*############################################################################################################################ */ - - /*Register : PP5C @ 0XFD0C00B8

      - - RIT: Retry Interval Timer. The calculated value divided by two, the lower digit of precision is not needed. - PSU_SATA_AHCI_VENDOR_PP5C_RIT 0xC96A4 - - RCT: Rate Change Timer, a value based on the 54.2us for which a SATA device will transmit at a fixed rate ALIGNp after OOB ha - completed, for a fast SERDES it is suggested that this value be 54.2us / 4 - PSU_SATA_AHCI_VENDOR_PP5C_RCT 0x3FF - - PP5C - Port Phy5Cfg Register. This register controls the configuration of the Phy Control Retry Interval timing for either Po - t 0 or Port 1. The Port configured is controlled by the value programmed into the Port Config Register. - (OFFSET, MASK, VALUE) (0XFD0C00B8, 0xFFFFFFFFU ,0x3FFC96A4U) - RegMask = (SATA_AHCI_VENDOR_PP5C_RIT_MASK | SATA_AHCI_VENDOR_PP5C_RCT_MASK | 0 ); - - RegVal = ((0x000C96A4U << SATA_AHCI_VENDOR_PP5C_RIT_SHIFT - | 0x000003FFU << SATA_AHCI_VENDOR_PP5C_RCT_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (SATA_AHCI_VENDOR_PP5C_OFFSET ,0xFFFFFFFFU ,0x3FFC96A4U); - /*############################################################################################################################ */ - - - return 1; + * MPHY PLL Gear and bypass scrambler + * (OFFSET, MASK, VALUE) (0XFD40C0F4, 0x0000000BU ,0x0000000BU) + */ + PSU_Mask_Write(SERDES_L3_TX_DIG_TM_61_OFFSET, + 0x0000000BU, 0x0000000BU); +/*##################################################################### */ + + /* + * ENABLE CHICKEN BIT FOR PCIE AND USB + */ + /* + * Register : L0_TM_AUX_0 @ 0XFD4010CC + + * Spare- not used + * PSU_SERDES_L0_TM_AUX_0_BIT_2 1 + + * Spare registers + * (OFFSET, MASK, VALUE) (0XFD4010CC, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L0_TM_AUX_0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L2_TM_AUX_0 @ 0XFD4090CC + + * Spare- not used + * PSU_SERDES_L2_TM_AUX_0_BIT_2 1 + + * Spare registers + * (OFFSET, MASK, VALUE) (0XFD4090CC, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L2_TM_AUX_0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * ENABLING EYE SURF + */ + /* + * Register : L0_TM_DIG_8 @ 0XFD401074 + + * Enable Eye Surf + * PSU_SERDES_L0_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD401074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L0_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L1_TM_DIG_8 @ 0XFD405074 + + * Enable Eye Surf + * PSU_SERDES_L1_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD405074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L1_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_DIG_8 @ 0XFD409074 + + * Enable Eye Surf + * PSU_SERDES_L2_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD409074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L3_TM_DIG_8 @ 0XFD40D074 + + * Enable Eye Surf + * PSU_SERDES_L3_TM_DIG_8_EYESURF_ENABLE 0x1 + + * Test modes for Elastic buffer and enabling Eye Surf + * (OFFSET, MASK, VALUE) (0XFD40D074, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_8_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * ILL SETTINGS FOR GAIN AND LOCK SETTINGS + */ + /* + * Register : L0_TM_MISC2 @ 0XFD40189C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40189C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L0_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL1 @ 0XFD4018F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4018F8, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL2 @ 0XFD4018FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4018FC, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL12 @ 0XFD401990 + + * G1A pll ctr bypass value + * PSU_SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x11 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD401990, 0x000000FFU ,0x00000011U) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL12_OFFSET, 0x000000FFU, 0x00000011U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL1 @ 0XFD401924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x4 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD401924, 0x000000FFU ,0x00000004U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL1_OFFSET, 0x000000FFU, 0x00000004U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL2 @ 0XFD401928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0xFE + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD401928, 0x000000FFU ,0x000000FEU) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL2_OFFSET, 0x000000FFU, 0x000000FEU); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL3 @ 0XFD401900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x64 + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD401900, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL3 @ 0XFD40192C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40192C, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL8 @ 0XFD401980 + + * ILL calibration code change wait time + * PSU_SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD401980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL8 @ 0XFD401914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD401914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L0_TM_IQ_ILL9 @ 0XFD401918 + + * bypass IQ polytrim + * PSU_SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD401918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL8 @ 0XFD401940 + + * E ILL polytrim bypass value + * PSU_SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD401940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L0_TM_E_ILL9 @ 0XFD401944 + + * bypass E polytrim + * PSU_SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD401944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L0_TM_ILL13 @ 0XFD401994 + + * ILL cal idle val refcnt + * PSU_SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD401994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L0_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L1_TM_ILL13 @ 0XFD405994 + + * ILL cal idle val refcnt + * PSU_SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD405994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L1_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L2_TM_MISC2 @ 0XFD40989C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40989C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L2_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL1 @ 0XFD4098F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4098F8, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL2 @ 0XFD4098FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD4098FC, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL12 @ 0XFD409990 + + * G1A pll ctr bypass value + * PSU_SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x10 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD409990, 0x000000FFU ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL12_OFFSET, 0x000000FFU, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL1 @ 0XFD409924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0xFE + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD409924, 0x000000FFU ,0x000000FEU) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL1_OFFSET, 0x000000FFU, 0x000000FEU); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL2 @ 0XFD409928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD409928, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL2_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL3 @ 0XFD409900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x1A + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD409900, 0x000000FFU ,0x0000001AU) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x0000001AU); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL3 @ 0XFD40992C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x0 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40992C, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL8 @ 0XFD409980 + + * ILL calibration code change wait time + * PSU_SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD409980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL8 @ 0XFD409914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD409914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L2_TM_IQ_ILL9 @ 0XFD409918 + + * bypass IQ polytrim + * PSU_SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD409918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL8 @ 0XFD409940 + + * E ILL polytrim bypass value + * PSU_SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD409940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L2_TM_E_ILL9 @ 0XFD409944 + + * bypass E polytrim + * PSU_SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD409944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_ILL13 @ 0XFD409994 + + * ILL cal idle val refcnt + * PSU_SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD409994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L2_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * Register : L3_TM_MISC2 @ 0XFD40D89C + + * ILL calib counts BYPASSED with calcode bits + * PSU_SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS 0x1 + + * sampler cal + * (OFFSET, MASK, VALUE) (0XFD40D89C, 0x00000080U ,0x00000080U) + */ + PSU_Mask_Write(SERDES_L3_TM_MISC2_OFFSET, 0x00000080U, 0x00000080U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL1 @ 0XFD40D8F8 + + * IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS + * PSU_SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D8F8, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL1_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL2 @ 0XFD40D8FC + + * IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D8FC, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL2_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL12 @ 0XFD40D990 + + * G1A pll ctr bypass value + * PSU_SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL 0x1 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD40D990, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL12_OFFSET, 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL1 @ 0XFD40D924 + + * E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS + * PSU_SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0 0x9C + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D924, 0x000000FFU ,0x0000009CU) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL1_OFFSET, 0x000000FFU, 0x0000009CU); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL2 @ 0XFD40D928 + + * E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 + * PSU_SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1 0x39 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D928, 0x000000FFU ,0x00000039U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL2_OFFSET, 0x000000FFU, 0x00000039U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL11 @ 0XFD40D98C + + * G2A_PCIe1 PLL ctr bypass value + * PSU_SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL 0x2 + + * ill pll counter values + * (OFFSET, MASK, VALUE) (0XFD40D98C, 0x000000F0U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL11_OFFSET, 0x000000F0U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL3 @ 0XFD40D900 + + * IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2 0x7D + + * iqpi cal code + * (OFFSET, MASK, VALUE) (0XFD40D900, 0x000000FFU ,0x0000007DU) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL3_OFFSET, + 0x000000FFU, 0x0000007DU); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL3 @ 0XFD40D92C + + * E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 + * PSU_SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2 0x64 + + * epi cal code + * (OFFSET, MASK, VALUE) (0XFD40D92C, 0x000000FFU ,0x00000064U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL3_OFFSET, 0x000000FFU, 0x00000064U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL8 @ 0XFD40D980 + + * ILL calibration code change wait time + * PSU_SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT 0xFF + + * ILL cal routine control + * (OFFSET, MASK, VALUE) (0XFD40D980, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL8_OFFSET, 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL8 @ 0XFD40D914 + + * IQ ILL polytrim bypass value + * PSU_SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL 0xF7 + + * iqpi polytrim + * (OFFSET, MASK, VALUE) (0XFD40D914, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL8_OFFSET, + 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L3_TM_IQ_ILL9 @ 0XFD40D918 + + * bypass IQ polytrim + * PSU_SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD40D918, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_IQ_ILL9_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL8 @ 0XFD40D940 + + * E ILL polytrim bypass value + * PSU_SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL 0xF7 + + * epi polytrim + * (OFFSET, MASK, VALUE) (0XFD40D940, 0x000000FFU ,0x000000F7U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL8_OFFSET, 0x000000FFU, 0x000000F7U); +/*##################################################################### */ + + /* + * Register : L3_TM_E_ILL9 @ 0XFD40D944 + + * bypass E polytrim + * PSU_SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM 0x1 + + * enables for lf,constant gm trim and polytirm + * (OFFSET, MASK, VALUE) (0XFD40D944, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_E_ILL9_OFFSET, 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_ILL13 @ 0XFD40D994 + + * ILL cal idle val refcnt + * PSU_SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT 0x7 + + * ill cal idle value count + * (OFFSET, MASK, VALUE) (0XFD40D994, 0x00000007U ,0x00000007U) + */ + PSU_Mask_Write(SERDES_L3_TM_ILL13_OFFSET, 0x00000007U, 0x00000007U); +/*##################################################################### */ + + /* + * SYMBOL LOCK AND WAIT + */ + /* + * Register : L0_TM_DIG_10 @ 0XFD40107C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40107C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L0_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L1_TM_DIG_10 @ 0XFD40507C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40507C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L1_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L2_TM_DIG_10 @ 0XFD40907C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40907C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L2_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TM_DIG_10 @ 0XFD40D07C + + * CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 + * PSU_SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME 0x1 + + * test control for changing cdr lock wait time + * (OFFSET, MASK, VALUE) (0XFD40D07C, 0x0000000FU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TM_DIG_10_OFFSET, 0x0000000FU, 0x00000001U); +/*##################################################################### */ + + /* + * SIOU SETTINGS FOR BYPASS CONTROL,HSRX-DIG + */ + /* + * Register : L0_TM_RST_DLY @ 0XFD4019A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L0_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4019A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L0_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L0_TM_ANA_BYP_15 @ 0XFD401038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD401038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L0_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L0_TM_ANA_BYP_12 @ 0XFD40102C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40102C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L0_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L1_TM_RST_DLY @ 0XFD4059A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L1_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4059A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L1_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L1_TM_ANA_BYP_15 @ 0XFD405038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD405038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L1_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L1_TM_ANA_BYP_12 @ 0XFD40502C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40502C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L1_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L2_TM_RST_DLY @ 0XFD4099A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L2_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD4099A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L2_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L2_TM_ANA_BYP_15 @ 0XFD409038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD409038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L2_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L2_TM_ANA_BYP_12 @ 0XFD40902C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40902C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L2_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L3_TM_RST_DLY @ 0XFD40D9A4 + + * Delay apb reset by specified amount + * PSU_SERDES_L3_TM_RST_DLY_APB_RST_DLY 0xFF + + * reset delay for apb reset w.r.t pso of hsrx + * (OFFSET, MASK, VALUE) (0XFD40D9A4, 0x000000FFU ,0x000000FFU) + */ + PSU_Mask_Write(SERDES_L3_TM_RST_DLY_OFFSET, + 0x000000FFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : L3_TM_ANA_BYP_15 @ 0XFD40D038 + + * Enable Bypass for <7> of TM_ANA_BYPS_15 + * PSU_SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE 0x1 + + * Bypass control for pcs-pma interface. EQ supplies, main master supply an + * d ps for samp c2c + * (OFFSET, MASK, VALUE) (0XFD40D038, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_TM_ANA_BYP_15_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : L3_TM_ANA_BYP_12 @ 0XFD40D02C + + * Enable Bypass for <7> of TM_ANA_BYPS_12 + * PSU_SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG 0x1 + + * Bypass control for pcs-pma interface. Hsrx supply, hsrx des, and cdr ena + * ble controls + * (OFFSET, MASK, VALUE) (0XFD40D02C, 0x00000040U ,0x00000040U) + */ + PSU_Mask_Write(SERDES_L3_TM_ANA_BYP_12_OFFSET, + 0x00000040U, 0x00000040U); +/*##################################################################### */ + + /* + * DISABLE FPL/FFL + */ + /* + * Register : L0_TM_MISC3 @ 0XFD4019AC + + * CDR fast phase lock control + * PSU_SERDES_L0_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L0_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4019AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L0_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L1_TM_MISC3 @ 0XFD4059AC + + * CDR fast phase lock control + * PSU_SERDES_L1_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L1_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4059AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L2_TM_MISC3 @ 0XFD4099AC + + * CDR fast phase lock control + * PSU_SERDES_L2_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L2_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD4099AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L2_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L3_TM_MISC3 @ 0XFD40D9AC + + * CDR fast phase lock control + * PSU_SERDES_L3_TM_MISC3_CDR_EN_FPL 0x0 + + * CDR fast frequency lock control + * PSU_SERDES_L3_TM_MISC3_CDR_EN_FFL 0x0 + + * debug bus selection bit, cdr fast phase and freq controls + * (OFFSET, MASK, VALUE) (0XFD40D9AC, 0x00000003U ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L3_TM_MISC3_OFFSET, 0x00000003U, 0x00000000U); +/*##################################################################### */ + + /* + * DISABLE DYNAMIC OFFSET CALIBRATION + */ + /* + * Register : L0_TM_EQ11 @ 0XFD401978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD401978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L0_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L1_TM_EQ11 @ 0XFD405978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD405978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L1_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L2_TM_EQ11 @ 0XFD409978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD409978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L2_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ11 @ 0XFD40D978 + + * Force EQ offset correction algo off if not forced on + * PSU_SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF 0x1 + + * eq dynamic offset correction + * (OFFSET, MASK, VALUE) (0XFD40D978, 0x00000010U ,0x00000010U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ11_OFFSET, 0x00000010U, 0x00000010U); +/*##################################################################### */ + + /* + * DISABLE ECO FOR PCIE + */ + /* + * Register : eco_0 @ 0XFD3D001C + + * For future use + * PSU_SIOU_ECO_0_FIELD 0x1 + + * ECO Register for future use + * (OFFSET, MASK, VALUE) (0XFD3D001C, 0xFFFFFFFFU ,0x00000001U) + */ + PSU_Mask_Write(SIOU_ECO_0_OFFSET, 0xFFFFFFFFU, 0x00000001U); +/*##################################################################### */ + + /* + * GT LANE SETTINGS + */ + /* + * Register : ICM_CFG0 @ 0XFD410010 + + * Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG0_L0_ICM_CFG 1 + + * Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG0_L1_ICM_CFG 4 + + * ICM Configuration Register 0 + * (OFFSET, MASK, VALUE) (0XFD410010, 0x00000077U ,0x00000041U) + */ + PSU_Mask_Write(SERDES_ICM_CFG0_OFFSET, 0x00000077U, 0x00000041U); +/*##################################################################### */ + + /* + * Register : ICM_CFG1 @ 0XFD410014 + + * Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG1_L2_ICM_CFG 3 + + * Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, + * 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused, 7 - Unused + * PSU_SERDES_ICM_CFG1_L3_ICM_CFG 2 + + * ICM Configuration Register 1 + * (OFFSET, MASK, VALUE) (0XFD410014, 0x00000077U ,0x00000023U) + */ + PSU_Mask_Write(SERDES_ICM_CFG1_OFFSET, 0x00000077U, 0x00000023U); +/*##################################################################### */ + + /* + * CHECKING PLL LOCK + */ + /* + * ENABLE SERIAL DATA MUX DEEMPH + */ + /* + * Register : L1_TXPMD_TM_45 @ 0XFD404CB4 + + * Enable/disable DP post2 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH 0x1 + + * Override enable/disable of DP post2 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH 0x1 + + * Override enable/disable of DP post1 path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH 0x1 + + * Enable/disable DP main path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH 0x1 + + * Override enable/disable of DP main path + * PSU_SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH 0x1 + + * Post or pre or main DP path selection + * (OFFSET, MASK, VALUE) (0XFD404CB4, 0x00000037U ,0x00000037U) + */ + PSU_Mask_Write(SERDES_L1_TXPMD_TM_45_OFFSET, + 0x00000037U, 0x00000037U); +/*##################################################################### */ + + /* + * Register : L1_TX_ANA_TM_118 @ 0XFD4041D8 + + * Test register force for enabling/disablign TX deemphasis bits <17:0> + * PSU_SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 + + * Enable Override of TX deemphasis + * (OFFSET, MASK, VALUE) (0XFD4041D8, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L1_TX_ANA_TM_118_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * Register : L3_TX_ANA_TM_118 @ 0XFD40C1D8 + + * Test register force for enabling/disablign TX deemphasis bits <17:0> + * PSU_SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0 0x1 + + * Enable Override of TX deemphasis + * (OFFSET, MASK, VALUE) (0XFD40C1D8, 0x00000001U ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TX_ANA_TM_118_OFFSET, + 0x00000001U, 0x00000001U); +/*##################################################################### */ + + /* + * CDR AND RX EQUALIZATION SETTINGS + */ + /* + * Register : L3_TM_CDR5 @ 0XFD40DC14 + + * FPHL FSM accumulate cycles + * PSU_SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES 0x7 + + * FFL Phase0 int gain aka 2ol SD update rate + * PSU_SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN 0x6 + + * Fast phase lock controls -- FSM accumulator cycle control and phase 0 in + * t gain control. + * (OFFSET, MASK, VALUE) (0XFD40DC14, 0x000000FFU ,0x000000E6U) + */ + PSU_Mask_Write(SERDES_L3_TM_CDR5_OFFSET, 0x000000FFU, 0x000000E6U); +/*##################################################################### */ + + /* + * Register : L3_TM_CDR16 @ 0XFD40DC40 + + * FFL Phase0 prop gain aka 1ol SD update rate + * PSU_SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN 0xC + + * Fast phase lock controls -- phase 0 prop gain + * (OFFSET, MASK, VALUE) (0XFD40DC40, 0x0000001FU ,0x0000000CU) + */ + PSU_Mask_Write(SERDES_L3_TM_CDR16_OFFSET, 0x0000001FU, 0x0000000CU); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ0 @ 0XFD40D94C + + * EQ stg 2 controls BYPASSED + * PSU_SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP 1 + + * eq stg1 and stg2 controls + * (OFFSET, MASK, VALUE) (0XFD40D94C, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ0_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : L3_TM_EQ1 @ 0XFD40D950 + + * EQ STG2 RL PROG + * PSU_SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG 0x2 + + * EQ stg 2 preamp mode val + * PSU_SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL 0x1 + + * eq stg1 and stg2 controls + * (OFFSET, MASK, VALUE) (0XFD40D950, 0x00000007U ,0x00000006U) + */ + PSU_Mask_Write(SERDES_L3_TM_EQ1_OFFSET, 0x00000007U, 0x00000006U); +/*##################################################################### */ + + /* + * GEM SERDES SETTINGS + */ + /* + * ENABLE PRE EMPHAIS AND VOLTAGE SWING + */ + /* + * Register : L1_TXPMD_TM_48 @ 0XFD404CC0 + + * Margining factor value + * PSU_SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR 0 + + * Margining factor + * (OFFSET, MASK, VALUE) (0XFD404CC0, 0x0000001FU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TXPMD_TM_48_OFFSET, + 0x0000001FU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L1_TX_ANA_TM_18 @ 0XFD404048 + + * pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved + * PSU_SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0 + + * Override for PIPE TX de-emphasis + * (OFFSET, MASK, VALUE) (0XFD404048, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(SERDES_L1_TX_ANA_TM_18_OFFSET, + 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : L3_TX_ANA_TM_18 @ 0XFD40C048 + + * pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved + * PSU_SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0 0x1 + + * Override for PIPE TX de-emphasis + * (OFFSET, MASK, VALUE) (0XFD40C048, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(SERDES_L3_TX_ANA_TM_18_OFFSET, + 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + + return 1; } -unsigned long psu_resetin_init_data() { - // : PUTTING SERDES PERIPHERAL IN RESET - // : PUTTING USB0 IN RESET - /*Register : RST_LPD_TOP @ 0XFF5E023C

      +unsigned long psu_resetout_init_data(void) +{ + /* + * TAKING SERDES PERIPHERAL OUT OF RESET RESET + */ + /* + * PUTTING USB0 IN RESET + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - USB 0 reset for control registers - PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X1 + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X0 - USB 0 sleep circuit reset - PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X1 + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000400U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000400U, 0x00000000U); +/*##################################################################### */ - USB 0 reset - PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X1 + /* + * HIBERREST + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - Software control register for the LPD block. - (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000540U) - RegMask = (CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK | CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK | CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK | 0 ); + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X0 - RegVal = ((0x00000001U << CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT - | 0x00000001U << CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT - | 0x00000001U << CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_TOP_OFFSET ,0x00000540U ,0x00000540U); - /*############################################################################################################################ */ + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X0 - // : PUTTING GEM0 IN RESET - /*Register : RST_LPD_IOU0 @ 0XFF5E0230

      + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000140U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000140U, 0x00000000U); +/*##################################################################### */ - GEM 3 reset - PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X1 + /* + * PUTTING GEM0 IN RESET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 - Software controlled reset for the GEMs - (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000008U) - RegMask = (CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK | 0 ); + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X0 - RegVal = ((0x00000001U << CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRL_APB_RST_LPD_IOU0_OFFSET ,0x00000008U ,0x00000008U); - /*############################################################################################################################ */ + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000000U); +/*##################################################################### */ - // : PUTTING SATA IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      + /* + * PUTTING SATA IN RESET + */ + /* + * Register : sata_misc_ctrl @ 0XFD3D0100 - Sata block level reset - PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X1 + * Sata PM clock control select + * PSU_SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL 0x3 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000002U) - RegMask = (CRF_APB_RST_FPD_TOP_SATA_RESET_MASK | 0 ); + * Misc Contorls for SATA.This register may only be modified during bootup + * (while SATA block is disabled) + * (OFFSET, MASK, VALUE) (0XFD3D0100, 0x00000003U ,0x00000003U) + */ + PSU_Mask_Write(SIOU_SATA_MISC_CTRL_OFFSET, 0x00000003U, 0x00000003U); +/*##################################################################### */ - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00000002U ,0x00000002U); - /*############################################################################################################################ */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - // : PUTTING PCIE IN RESET - /*Register : RST_FPD_TOP @ 0XFD1A0100

      + * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X0 - PCIE config reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X1 + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ - PCIE control block level reset - PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X1 + /* + * PUTTING PCIE CFG AND BRIDGE IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - PCIE bridge block level reset (AXI interface) - PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X1 + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X0 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000E0000U ,0x000E0000U) - RegMask = (CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK | CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK | 0 ); + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X0 - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT - | 0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT - | 0x00000001U << CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x000E0000U ,0x000E0000U); - /*############################################################################################################################ */ + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000C0000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000C0000U, 0x00000000U); +/*##################################################################### */ - // : PUTTING DP IN RESET - /*Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238

      + /* + * PUTTING DP IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1 - PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0XA + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X0 - Control PHY Power down - (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x0000000AU) - RegMask = (DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK | 0 ); + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00010000U, 0x00000000U); +/*##################################################################### */ - RegVal = ((0x0000000AU << DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_TX_PHY_POWER_DOWN_OFFSET ,0x0000000FU ,0x0000000AU); - /*############################################################################################################################ */ + /* + * Register : DP_PHY_RESET @ 0XFD4A0200 - /*Register : DP_PHY_RESET @ 0XFD4A0200

      + * Set to '1' to hold the GT in reset. Clear to release. + * PSU_DP_DP_PHY_RESET_GT_RESET 0X0 - Set to '1' to hold the GT in reset. Clear to release. - PSU_DP_DP_PHY_RESET_GT_RESET 0X1 + * Reset the transmitter PHY. + * (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(DP_DP_PHY_RESET_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ - Reset the transmitter PHY. - (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000002U) - RegMask = (DP_DP_PHY_RESET_GT_RESET_MASK | 0 ); + /* + * Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238 - RegVal = ((0x00000001U << DP_DP_PHY_RESET_GT_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (DP_DP_PHY_RESET_OFFSET ,0x00000002U ,0x00000002U); - /*############################################################################################################################ */ + * Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 + * PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0X0 - /*Register : RST_FPD_TOP @ 0XFD1A0100

      + * Control PHY Power down + * (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x00000000U) + */ + PSU_Mask_Write(DP_DP_TX_PHY_POWER_DOWN_OFFSET, + 0x0000000FU, 0x00000000U); +/*##################################################################### */ - Display Port block level reset (includes DPDMA) - PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X1 + /* + * USB0 GFLADJ + */ + /* + * Register : GUSB2PHYCFG @ 0XFE20C200 - FPD Block level software controlled reset - (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00010000U) - RegMask = (CRF_APB_RST_FPD_TOP_DP_RESET_MASK | 0 ); + * USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY cloc + * ks. Specifies the response time for a MAC request to the Packet FIFO Con + * troller (PFC) to fetch data from the DFIFO (SPRAM). The following are th + * e required values for the minimum SoC bus frequency of 60 MHz. USB turna + * round time is a critical certification criteria when using long cables a + * nd five hub levels. The required values for this field: - 4'h5: When the + * MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit + * UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround tim + * e is not critical, this field can be set to a larger value. Note: This f + * ield is valid only in device mode. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM 0x9 - RegVal = ((0x00000001U << CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (CRF_APB_RST_FPD_TOP_OFFSET ,0x00010000U ,0x00010000U); - /*############################################################################################################################ */ + * Transceiver Delay: Enables a delay between the assertion of the UTMI/ULP + * I Transceiver Select signal (for HS) and the assertion of the TxValid si + * gnal during a HS Chirp. When this bit is set to 1, a delay (of approxima + * tely 2.5 us) is introduced from the time when the Transceiver Select is + * set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the + * chirp-K. This delay is required for some UTMI/ULPI PHYs. Note: - If you + * enable the hibernation feature when the device core comes out of power- + * off, you must re-initialize this bit with the appropriate value because + * the core does not save and restore this bit value during hibernation. - + * This bit is valid only in device mode. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY 0x0 + + * Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application use + * s this bit to control utmi_sleep_n and utmi_l1_suspend_n assertion to th + * e PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assert + * ion from the core is not transferred to the external PHY. - 1'b1: utmi_s + * leep_n and utmi_l1_suspend_n assertion from the core is transferred to t + * he external PHY. Note: This bit must be set high for Port0 if PHY is use + * d. Note: In Device mode - Before issuing any device endpoint command whe + * n operating in 2.0 speeds, disable this bit and enable it after the comm + * and completes. Without disabling this bit, if a command is issued when t + * he device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated of + * f, the command will not get completed. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM 0x0 + + * USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select T + * he application uses this bit to select a high-speed PHY or a full-speed + * transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is a + * lways 0, with Write Only access. - 1'b1: USB 1.1 full-speed serial trans + * ceiver. This bit is always 1, with Write Only access. If both interface + * types are selected in coreConsultant (that is, parameters' values are no + * t zero), the application uses this bit to select the active interface is + * active, with Read-Write bit access. Note: USB 1.1 full-serial transceiv + * er is not supported. This bit always reads as 1'b0. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYSEL 0x0 + + * Suspend USB2.0 HS/FS/LS PHY (SusPHY) When set, USB2.0 PHY enters Suspend + * mode if Suspend conditions are valid. For DRD/OTG configurations, it is + * recommended that this bit is set to 0 during coreConsultant configurati + * on. If it is set to 1, then the application must clear this bit after po + * wer-on reset. Application needs to set it to 1 after the core initializa + * tion completes. For all other configurations, this bit can be set to 1 d + * uring core configuration. Note: - In host mode, on reset, this bit is se + * t to 1. Software can override this bit after reset. - In device mode, be + * fore issuing any device endpoint command when operating in 2.0 speeds, d + * isable this bit and enable it after the command completes. If you issue + * a command without disabling this bit when the device is in L2 state and + * if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get c + * ompleted. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20 0x1 + + * Full-Speed Serial Interface Select (FSIntf) The application uses this bi + * t to select a unidirectional or bidirectional USB 1.1 full-speed serial + * transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial in + * terface. This bit is set to 0 with Read Only access. - 1'b1: 3-pin bidir + * ectional full-speed serial interface. This bit is set to 0 with Read Onl + * y access. Note: USB 1.1 full-speed serial interface is not supported. Th + * is bit always reads as 1'b0. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_FSINTF 0x0 + + * ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to se + * lect a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interface - 1'b1: ULPI Int + * erface This bit is writable only if UTMI+ and ULPI is specified for High + * -Speed PHY Interface(s) in coreConsultant configuration (DWC_USB3_HSPHY_ + * INTERFACE = 3). Otherwise, this bit is read-only and the value depends o + * n the interface selected through DWC_USB3_HSPHY_INTERFACE. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL 0x1 + + * PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bi + * t to configure the core to support a UTMI+ PHY with an 8- or 16-bit inte + * rface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the en + * abled 2.0 ports must have the same clock frequency as Port0 clock freque + * ncy (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used toge + * ther for different ports at the same time (that is, all the ports must b + * e in 8-bit mode, or all of them must be in 16-bit mode, at a time). - If + * any of the USB 2.0 ports is selected as ULPI port for operation, then a + * ll the USB 2.0 ports must be operating at 60 MHz. + * PSU_USB3_0_XHCI_GUSB2PHYCFG_PHYIF 0x0 + + * HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicat + * ed by the application in this field, is multiplied by a bit-time factor; + * this factor is added to the high-speed/full-speed interpacket timeout d + * uration in the core to account for additional delays introduced by the P + * HY. This may be required, since the delay introduced by the PHY in gener + * ating the linestate condition may vary among PHYs. The USB standard time + * out value for high-speed operation is 736 to 816 (inclusive) bit times. + * The USB standard timeout value for full-speed operation is 16 to 18 (inc + * lusive) bit times. The application must program this field based on the + * speed of connection. The number of bit times added per PHY clock are: Hi + * gh-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz P + * HY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0. + * 4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY cloc + * k = 0.25 bit times + * PSU_USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL 0x7 + + * ULPI External VBUS Drive (ULPIExtVbusDrv) Selects supply source to drive + * 5V on VBUS, in the ULPI PHY. - 1'b0: PHY drives VBUS with internal char + * ge pump (default). - 1'b1: PHY drives VBUS with an external supply. (Onl + * y when RTL parameter DWC_USB3_HSPHY_INTERFACE = 2 or 3) + * PSU_USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV 0x1 + + * Global USB2 PHY Configuration Register The application must program this + * register before starting any transactions on either the SoC bus or the + * USB. In Device-only configurations, only one register is needed. In Host + * mode, per-port registers are implemented. + * (OFFSET, MASK, VALUE) (0XFE20C200, 0x00023FFFU ,0x00022457U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUSB2PHYCFG_OFFSET, + 0x00023FFFU, 0x00022457U); +/*##################################################################### */ + + /* + * Register : GFLADJ @ 0XFE20C630 + + * This field indicates the frame length adjustment to be applied when SOF/ + * ITP counter is running on the ref_clk. This register value is used to ad + * just the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP i + * nterval when GLADJ.GFLADJ_REFCLK_LPM_SEL is set to '1'. This field must + * be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set t + * o '1' or GCTL.SOFITPSYNC is set to '1'. The value is derived as follows: + * FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_pe + * riod)) * ref_clk_period where - the ref_clk_period_integer is the intege + * r value of the ref_clk period got by truncating the decimal (fractional) + * value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_c + * lk_period is the ref_clk period including the fractional value. Examples + * : If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLA + * DJ_REFCLK_FLADJ = ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignorin + * g the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_PE + * RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*2 + * 0.8333 = 5208 (ignoring the fractional value) + * PSU_USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ 0x0 + + * Global Frame Length Adjustment Register This register provides options f + * or the software to control the core behavior with respect to SOF (Start + * of Frame) and ITP (Isochronous Timestamp Packet) timers and frame timer + * functionality. It provides an option to override the fladj_30mhz_reg sid + * eband signal. In addition, it enables running SOF or ITP frame timer cou + * nters completely from the ref_clk. This facilitates hardware LPM in host + * mode with the SOF or ITP counters being run from the ref_clk signal. + * (OFFSET, MASK, VALUE) (0XFE20C630, 0x003FFF00U ,0x00000000U) + */ + PSU_Mask_Write(USB3_0_XHCI_GFLADJ_OFFSET, 0x003FFF00U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : GUCTL1 @ 0XFE20C11C + + * When this bit is set to '0', termsel, xcvrsel will become 0 during end o + * f resume while the opmode will become 0 once controller completes end of + * resume and enters U0 state (2 separate commandswill be issued). When th + * is bit is set to '1', all the termsel, xcvrsel, opmode becomes 0 during + * end of resume itself (only 1 command will be issued) + * PSU_USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY 0x1 + + * Reserved + * PSU_USB3_0_XHCI_GUCTL1_RESERVED_9 0x1 + + * Global User Control Register 1 + * (OFFSET, MASK, VALUE) (0XFE20C11C, 0x00000600U ,0x00000600U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUCTL1_OFFSET, 0x00000600U, 0x00000600U); +/*##################################################################### */ + + /* + * Register : GUCTL @ 0XFE20C12C + + * Host IN Auto Retry (USBHstInAutoRetryEn) When set, this field enables th + * e Auto Retry feature. For IN transfers (non-isochronous) that encounter + * data packets with CRC errors or internal overrun scenarios, the auto ret + * ry feature causes the Host core to reply to the device with a non-termin + * ating retry ACK (that is, an ACK transaction packet with Retry = 1 and N + * umP != 0). If the Auto Retry feature is disabled (default), the core wil + * l respond with a terminating retry ACK (that is, an ACK transaction pack + * et with Retry = 1 and NumP = 0). - 1'b0: Auto Retry Disabled - 1'b1: Aut + * o Retry Enabled Note: This bit is also applicable to the device mode. + * PSU_USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN 0x1 + + * Global User Control Register: This register provides a few options for t + * he software to control the core behavior in the Host mode. Most of the o + * ptions are used to improve host inter-operability with different devices + * . + * (OFFSET, MASK, VALUE) (0XFE20C12C, 0x00004000U ,0x00004000U) + */ + PSU_Mask_Write(USB3_0_XHCI_GUCTL_OFFSET, 0x00004000U, 0x00004000U); +/*##################################################################### */ + + /* + * UPDATING TWO PCIE REGISTERS DEFAULT VALUES, AS THESE REGISTERS HAVE INCO + * RRECT RESET VALUES IN SILICON. + */ + /* + * Register : ATTR_25 @ 0XFD480064 + + * If TRUE Completion Timeout Disable is supported. This is required to be + * TRUE for Endpoint and either setting allowed for Root ports. Drives Devi + * ce Capability 2 [4]; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED 0X1 + + * ATTR_25 + * (OFFSET, MASK, VALUE) (0XFD480064, 0x00000200U ,0x00000200U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_25_OFFSET, 0x00000200U, 0x00000200U); +/*##################################################################### */ + + /* + * PCIE SETTINGS + */ + /* + * Register : ATTR_7 @ 0XFD48001C + + * Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0x0004; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_7_ATTR_BAR0 0x0 + + * ATTR_7 + * (OFFSET, MASK, VALUE) (0XFD48001C, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_7_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_8 @ 0XFD480020 + + * Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0xFFF0; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_8_ATTR_BAR0 0x0 + + * ATTR_8 + * (OFFSET, MASK, VALUE) (0XFD480020, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_8_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_9 @ 0XFD480024 + + * Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_9_ATTR_BAR1 0x0 + + * ATTR_9 + * (OFFSET, MASK, VALUE) (0XFD480024, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_9_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_10 @ 0XFD480028 + + * Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_10_ATTR_BAR1 0x0 + + * ATTR_10 + * (OFFSET, MASK, VALUE) (0XFD480028, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_10_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_11 @ 0XFD48002C + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFFF + * PSU_PCIE_ATTRIB_ATTR_11_ATTR_BAR2 0xFFFF + + * ATTR_11 + * (OFFSET, MASK, VALUE) (0XFD48002C, 0x0000FFFFU ,0x0000FFFFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_11_OFFSET, 0x0000FFFFU, 0x0000FFFFU); +/*##################################################################### */ + + /* + * Register : ATTR_12 @ 0XFD480030 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0x00FF + * PSU_PCIE_ATTRIB_ATTR_12_ATTR_BAR2 0xFF + + * ATTR_12 + * (OFFSET, MASK, VALUE) (0XFD480030, 0x0000FFFFU ,0x000000FFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_12_OFFSET, 0x0000FFFFU, 0x000000FFU); +/*##################################################################### */ + + /* + * Register : ATTR_13 @ 0XFD480034 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_13_ATTR_BAR3 0x0 + + * ATTR_13 + * (OFFSET, MASK, VALUE) (0XFD480034, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_13_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_14 @ 0XFD480038 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0xFFFF + * PSU_PCIE_ATTRIB_ATTR_14_ATTR_BAR3 0xFFFF + + * ATTR_14 + * (OFFSET, MASK, VALUE) (0XFD480038, 0x0000FFFFU ,0x0000FFFFU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_14_OFFSET, 0x0000FFFFU, 0x0000FFFFU); +/*##################################################################### */ + + /* + * Register : ATTR_15 @ 0XFD48003C + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFF0 + * PSU_PCIE_ATTRIB_ATTR_15_ATTR_BAR4 0xFFF0 + + * ATTR_15 + * (OFFSET, MASK, VALUE) (0XFD48003C, 0x0000FFFFU ,0x0000FFF0U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_15_OFFSET, 0x0000FFFFU, 0x0000FFF0U); +/*##################################################################### */ + + /* + * Register : ATTR_16 @ 0XFD480040 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0xFFF0 + * PSU_PCIE_ATTRIB_ATTR_16_ATTR_BAR4 0xFFF0 + + * ATTR_16 + * (OFFSET, MASK, VALUE) (0XFD480040, 0x0000FFFFU ,0x0000FFF0U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_16_OFFSET, 0x0000FFFFU, 0x0000FFF0U); +/*##################################################################### */ + + /* + * Register : ATTR_17 @ 0XFD480044 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 + * PSU_PCIE_ATTRIB_ATTR_17_ATTR_BAR5 0xFFF1 + + * ATTR_17 + * (OFFSET, MASK, VALUE) (0XFD480044, 0x0000FFFFU ,0x0000FFF1U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_17_OFFSET, 0x0000FFFFU, 0x0000FFF1U); +/*##################################################################### */ + + /* + * Register : ATTR_18 @ 0XFD480048 + + * For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 + * PSU_PCIE_ATTRIB_ATTR_18_ATTR_BAR5 0xFFF1 + + * ATTR_18 + * (OFFSET, MASK, VALUE) (0XFD480048, 0x0000FFFFU ,0x0000FFF1U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_18_OFFSET, 0x0000FFFFU, 0x0000FFF1U); +/*##################################################################### */ + + /* + * Register : ATTR_27 @ 0XFD48006C + + * Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1 + * - 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred to the Device Capa + * bilities register. The values: 4-2048 bytes, 5- 4096 bytes are not suppo + * rted; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED 1 + + * Endpoint L1 Acceptable Latency. Records the latency that the endpoint ca + * n withstand on transitions from L1 state to L0 (if L1 state supported). + * Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to + * 8us, 4h 8 to 16us, 5h 16 to 32us, 6h 32 to 64us, 7h more than 64us. For + * Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY 0x0 + + * ATTR_27 + * (OFFSET, MASK, VALUE) (0XFD48006C, 0x00000738U ,0x00000100U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_27_OFFSET, 0x00000738U, 0x00000100U); +/*##################################################################### */ + + /* + * Register : ATTR_50 @ 0XFD4800C8 + + * Identifies the type of device/port as follows: 0000b PCI Express Endpoin + * t device, 0001b Legacy PCI Express Endpoint device, 0100b Root Port of P + * CI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110 + * b Downstream Port of PCI Express Switch, 0111b PCIE Express to PCI/PCI-X + * Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Expre + * ss Capabilities register. Must be consistent with IS_SWITCH and UPSTREAM + * _FACING settings.; EP=0x0000; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE 4 + + * PCIe Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x009C; + * RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR 0 + + * ATTR_50 + * (OFFSET, MASK, VALUE) (0XFD4800C8, 0x0000FFF0U ,0x00000040U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_50_OFFSET, 0x0000FFF0U, 0x00000040U); +/*##################################################################### */ + + /* + * Register : ATTR_105 @ 0XFD4801A4 + + * Number of credits that should be advertised for Completion data received + * on Virtual Channel 0. The bytes advertised must be less than or equal t + * o the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD + * PSU_PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD 0xCD + + * ATTR_105 + * (OFFSET, MASK, VALUE) (0XFD4801A4, 0x000007FFU ,0x000000CDU) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_105_OFFSET, + 0x000007FFU, 0x000000CDU); +/*##################################################################### */ + + /* + * Register : ATTR_106 @ 0XFD4801A8 + + * Number of credits that should be advertised for Completion headers recei + * ved on Virtual Channel 0. The sum of the posted, non posted, and complet + * ion header credits must be <= 80; EP=0x0048; RP=0x0024 + * PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH 0x24 + + * Number of credits that should be advertised for Non-Posted headers recei + * ved on Virtual Channel 0. The number of non posted data credits advertis + * ed by the block is equal to the number of non posted header credits. The + * sum of the posted, non posted, and completion header credits must be <= + * 80; EP=0x0004; RP=0x000C + * PSU_PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH 0xC + + * ATTR_106 + * (OFFSET, MASK, VALUE) (0XFD4801A8, 0x00003FFFU ,0x00000624U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_106_OFFSET, + 0x00003FFFU, 0x00000624U); +/*##################################################################### */ + + /* + * Register : ATTR_107 @ 0XFD4801AC + + * Number of credits that should be advertised for Non-Posted data received + * on Virtual Channel 0. The number of non posted data credits advertised + * by the block is equal to two times the number of non posted header credi + * ts if atomic operations are supported or is equal to the number of non p + * osted header credits if atomic operations are not supported. The bytes a + * dvertised must be less than or equal to the bram bytes available. See VC + * 0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 + * PSU_PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD 0x18 + + * ATTR_107 + * (OFFSET, MASK, VALUE) (0XFD4801AC, 0x000007FFU ,0x00000018U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_107_OFFSET, + 0x000007FFU, 0x00000018U); +/*##################################################################### */ + + /* + * Register : ATTR_108 @ 0XFD4801B0 + + * Number of credits that should be advertised for Posted data received on + * Virtual Channel 0. The bytes advertised must be less than or equal to th + * e bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 + * PSU_PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD 0xB5 + + * ATTR_108 + * (OFFSET, MASK, VALUE) (0XFD4801B0, 0x000007FFU ,0x000000B5U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_108_OFFSET, + 0x000007FFU, 0x000000B5U); +/*##################################################################### */ + + /* + * Register : ATTR_109 @ 0XFD4801B4 + + * Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_ + * n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV 0x0 + + * Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim + * TRUE == trim.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM 0x1 + + * Enables ECRC check on received TLP's 0 == don't check 1 == always check + * 3 == check if enabled by ECRC check enable bit of AER cap structure; EP= + * 0x0003; RP=0x0003 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK 0x3 + + * Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). + * Calculated from max payload size supported and the number of brams conf + * igured for transmit; EP=0x001C; RP=0x001C + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET 0x1c + + * Number of credits that should be advertised for Posted headers received + * on Virtual Channel 0. The sum of the posted, non posted, and completion + * header credits must be <= 80; EP=0x0004; RP=0x0020 + * PSU_PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH 0x20 + + * ATTR_109 + * (OFFSET, MASK, VALUE) (0XFD4801B4, 0x0000FFFFU ,0x00007E20U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_109_OFFSET, + 0x0000FFFFU, 0x00007E20U); +/*##################################################################### */ + + /* + * Register : ATTR_34 @ 0XFD480088 + + * Specifies values to be transferred to Header Type register. Bit 7 should + * be set to '0' indicating single-function device. Bit 0 identifies heade + * r as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; + * RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE 0x1 + + * ATTR_34 + * (OFFSET, MASK, VALUE) (0XFD480088, 0x000000FFU ,0x00000001U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_34_OFFSET, 0x000000FFU, 0x00000001U); +/*##################################################################### */ + + /* + * Register : ATTR_53 @ 0XFD4800D4 + + * PM Capability's Next Capability Offset pointer to the next item in the c + * apabilities list, or 00h if this is the final capability.; EP=0x0048; RP + * =0x0060 + * PSU_PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR 0x60 + + * ATTR_53 + * (OFFSET, MASK, VALUE) (0XFD4800D4, 0x000000FFU ,0x00000060U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_53_OFFSET, 0x000000FFU, 0x00000060U); +/*##################################################################### */ + + /* + * Register : ATTR_41 @ 0XFD4800A4 + + * MSI Per-Vector Masking Capable. The value is transferred to the MSI Cont + * rol Register[8]. When set, adds Mask and Pending Dword to Cap structure; + * EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE 0x0 + + * Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 + + * MSI Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x0060; R + * P=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR 0x0 + + * Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON 0 + + * ATTR_41 + * (OFFSET, MASK, VALUE) (0XFD4800A4, 0x000003FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_41_OFFSET, 0x000003FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_97 @ 0XFD480184 + + * Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b + * x4, 001000b x8.; EP=0x0004; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH 0x1 + + * Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1 + * ], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x0004; RP=0x0004 + * PSU_PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH 0x1 + + * ATTR_97 + * (OFFSET, MASK, VALUE) (0XFD480184, 0x00000FFFU ,0x00000041U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_97_OFFSET, 0x00000FFFU, 0x00000041U); +/*##################################################################### */ + + /* + * Register : ATTR_100 @ 0XFD480190 + + * TRUE specifies upstream-facing port. FALSE specifies downstream-facing p + * ort.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING 0x0 + + * ATTR_100 + * (OFFSET, MASK, VALUE) (0XFD480190, 0x00000040U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_100_OFFSET, + 0x00000040U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_101 @ 0XFD480194 + + * Enable the routing of message TLPs to the user through the TRN RX interf + * ace. A bit value of 1 enables routing of the message TLP to the user. Me + * ssages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 + * - ERR NONFATAL, Bit 2 - ERR FATAL, Bit 3 - INTA Bit 4 - INTB, Bit 5 - I + * NTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit + * 10 PME_Turn_Off; EP=0x0000; RP=0x07FF + * PSU_PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE 0x7FF + + * Disable BAR filtering. Does not change the behavior of the bar hit outpu + * ts; EP=0x0000; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING 0x1 + + * ATTR_101 + * (OFFSET, MASK, VALUE) (0XFD480194, 0x0000FFE2U ,0x0000FFE2U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_101_OFFSET, + 0x0000FFE2U, 0x0000FFE2U); +/*##################################################################### */ + + /* + * Register : ATTR_37 @ 0XFD480094 + + * Link Bandwidth notification capability. Indicates support for the link b + * andwidth notification status and interrupt mechanism. Required for Root. + * ; EP=0x0000; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP 0x1 + + * Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Op + * tionality ECN. Transferred to the Link Capabilities register.; EP=0x0001 + * ; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY 0x1 + + * ATTR_37 + * (OFFSET, MASK, VALUE) (0XFD480094, 0x00004200U ,0x00004200U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_37_OFFSET, 0x00004200U, 0x00004200U); +/*##################################################################### */ + + /* + * Register : ATTR_93 @ 0XFD480174 + + * Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value + * (or combined with the built-in value, depending on LL_REPLAY_TIMEOUT_FU + * NC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN 0x1 + + * Sets a user-defined timeout for the Replay Timer to force cause the retr + * ansmission of unacknowledged TLPs; refer to LL_REPLAY_TIMEOUT_EN and LL_ + * REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this att + * ribute is in symbol times, which is 4ns at GEN1 speeds and 2ns at GEN2.; + * EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT 0x1000 + + * ATTR_93 + * (OFFSET, MASK, VALUE) (0XFD480174, 0x0000FFFFU ,0x00009000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_93_OFFSET, 0x0000FFFFU, 0x00009000U); +/*##################################################################### */ + + /* + * Register : ID @ 0XFD480200 + + * Device ID for the the PCIe Cap Structure Device ID field + * PSU_PCIE_ATTRIB_ID_CFG_DEV_ID 0xd021 + + * Vendor ID for the PCIe Cap Structure Vendor ID field + * PSU_PCIE_ATTRIB_ID_CFG_VEND_ID 0x10ee + + * ID + * (OFFSET, MASK, VALUE) (0XFD480200, 0xFFFFFFFFU ,0x10EED021U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ID_OFFSET, 0xFFFFFFFFU, 0x10EED021U); +/*##################################################################### */ + + /* + * Register : SUBSYS_ID @ 0XFD480204 + + * Subsystem ID for the the PCIe Cap Structure Subsystem ID field + * PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID 0x7 + + * Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field + * PSU_PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID 0x10ee + + * SUBSYS_ID + * (OFFSET, MASK, VALUE) (0XFD480204, 0xFFFFFFFFU ,0x10EE0007U) + */ + PSU_Mask_Write(PCIE_ATTRIB_SUBSYS_ID_OFFSET, + 0xFFFFFFFFU, 0x10EE0007U); +/*##################################################################### */ + + /* + * Register : REV_ID @ 0XFD480208 + + * Revision ID for the the PCIe Cap Structure + * PSU_PCIE_ATTRIB_REV_ID_CFG_REV_ID 0x0 + + * REV_ID + * (OFFSET, MASK, VALUE) (0XFD480208, 0x000000FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_REV_ID_OFFSET, 0x000000FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_24 @ 0XFD480060 + + * Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x8000; RP=0x8000 + * PSU_PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE 0x400 + + * ATTR_24 + * (OFFSET, MASK, VALUE) (0XFD480060, 0x0000FFFFU ,0x00000400U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_24_OFFSET, 0x0000FFFFU, 0x00000400U); +/*##################################################################### */ + + /* + * Register : ATTR_25 @ 0XFD480064 + + * Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x0005; RP=0x0006 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE 0x6 + + * INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] + * to be hardwired to 0.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED 0 + + * ATTR_25 + * (OFFSET, MASK, VALUE) (0XFD480064, 0x000001FFU ,0x00000006U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_25_OFFSET, 0x000001FFU, 0x00000006U); +/*##################################################################### */ + + /* + * Register : ATTR_4 @ 0XFD480010 + + * Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 + + * Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON 0 + + * ATTR_4 + * (OFFSET, MASK, VALUE) (0XFD480010, 0x00001000U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_4_OFFSET, 0x00001000U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_89 @ 0XFD480164 + + * VSEC's Next Capability Offset pointer to the next item in the capabiliti + * es list, or 000h if this is the final capability.; EP=0x0140; RP=0x0140 + * PSU_PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR 0 + + * ATTR_89 + * (OFFSET, MASK, VALUE) (0XFD480164, 0x00001FFEU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_89_OFFSET, 0x00001FFEU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_79 @ 0XFD48013C + + * CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the + * Root Capabilities register.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY 1 + + * ATTR_79 + * (OFFSET, MASK, VALUE) (0XFD48013C, 0x00000020U ,0x00000020U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_79_OFFSET, 0x00000020U, 0x00000020U); +/*##################################################################### */ + + /* + * Register : ATTR_43 @ 0XFD4800AC + + * Indicates that the MSIX structures exists. If this is FALSE, then the MS + * IX structure cannot be accessed via either the link or the management po + * rt.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON 0 + + * ATTR_43 + * (OFFSET, MASK, VALUE) (0XFD4800AC, 0x00000100U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_43_OFFSET, 0x00000100U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_48 @ 0XFD4800C0 + + * MSI-X Table Size. This value is transferred to the MSI-X Message Control + * [10:0] field. Set to 0 if MSI-X is not enabled. Note that the core does + * not implement the table; that must be implemented in user logic.; EP=0x0 + * 003; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE 0 + + * ATTR_48 + * (OFFSET, MASK, VALUE) (0XFD4800C0, 0x000007FFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_48_OFFSET, 0x000007FFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_46 @ 0XFD4800B8 + + * MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET 0 + + * ATTR_46 + * (OFFSET, MASK, VALUE) (0XFD4800B8, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_46_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_47 @ 0XFD4800BC + + * MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET 0 + + * ATTR_47 + * (OFFSET, MASK, VALUE) (0XFD4800BC, 0x00001FFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_47_OFFSET, 0x00001FFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_44 @ 0XFD4800B0 + + * MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET 0 + + * ATTR_44 + * (OFFSET, MASK, VALUE) (0XFD4800B0, 0x0000FFFFU ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_44_OFFSET, 0x0000FFFFU, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_45 @ 0XFD4800B4 + + * MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x1000; RP=0x0000 + * PSU_PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET 0 + + * ATTR_45 + * (OFFSET, MASK, VALUE) (0XFD4800B4, 0x0000FFF8U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_45_OFFSET, 0x0000FFF8U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : CB @ 0XFD48031C + + * DT837748 Enable + * PSU_PCIE_ATTRIB_CB_CB1 0x0 + + * ECO Register 1 + * (OFFSET, MASK, VALUE) (0XFD48031C, 0x00000002U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_CB_OFFSET, 0x00000002U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : ATTR_35 @ 0XFD48008C + + * Active State PM Support. Indicates the level of active state power manag + * ement supported by the selected PCI Express Link, encoded as follows: 0 + * Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supporte + * d.; EP=0x0001; RP=0x0001 + * PSU_PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT 0x0 + + * ATTR_35 + * (OFFSET, MASK, VALUE) (0XFD48008C, 0x00003000U ,0x00000000U) + */ + PSU_Mask_Write(PCIE_ATTRIB_ATTR_35_OFFSET, 0x00003000U, 0x00000000U); +/*##################################################################### */ + + /* + * PUTTING PCIE CONTROL IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00020000U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00020000U, 0x00000000U); +/*##################################################################### */ + + /* + * PCIE GPIO RESET + */ + /* + * MASK_DATA_0_LSW LOW BANK [15:0] + */ + /* + * MASK_DATA_0_MSW LOW BANK [25:16] + */ + /* + * MASK_DATA_1_LSW LOW BANK [41:26] + */ + /* + * Register : MASK_DATA_1_LSW @ 0XFF0A0008 + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_MASK_1_LSW 0xffdf + + * Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] + * PSU_GPIO_MASK_DATA_1_LSW_DATA_1_LSW 0x20 + + * Maskable Output Data (GPIO Bank1, MIO, Lower 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A0008, 0xFFFFFFFFU ,0xFFDF0020U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_1_LSW_OFFSET, + 0xFFFFFFFFU, 0xFFDF0020U); +/*##################################################################### */ + + /* + * MASK_DATA_1_MSW HIGH BANK [51:42] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [67:52] + */ + /* + * MASK_DATA_1_LSW HIGH BANK [77:68] + */ + /* + * CHECK PLL LOCK FOR LANE0 + */ + /* + * Register : L0_PLL_STATUS_READ_1 @ 0XFD4023E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD4023E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L0_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE1 + */ + /* + * Register : L1_PLL_STATUS_READ_1 @ 0XFD4063E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD4063E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L1_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE2 + */ + /* + * Register : L2_PLL_STATUS_READ_1 @ 0XFD40A3E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD40A3E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L2_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * CHECK PLL LOCK FOR LANE3 + */ + /* + * Register : L3_PLL_STATUS_READ_1 @ 0XFD40E3E4 + + * Status Read value of PLL Lock + * PSU_SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ 1 + * (OFFSET, MASK, VALUE) (0XFD40E3E4, 0x00000010U ,0x00000010U) + */ + mask_poll(SERDES_L3_PLL_STATUS_READ_1_OFFSET, 0x00000010U); + +/*##################################################################### */ + + /* + * SATA AHCI VENDOR SETTING + */ + /* + * Register : PP2C @ 0XFD0C00AC + + * CIBGMN: COMINIT Burst Gap Minimum. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGMN 0x18 + + * CIBGMX: COMINIT Burst Gap Maximum. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGMX 0x40 + + * CIBGN: COMINIT Burst Gap Nominal. + * PSU_SATA_AHCI_VENDOR_PP2C_CIBGN 0x18 + + * CINMP: COMINIT Negate Minimum Period. + * PSU_SATA_AHCI_VENDOR_PP2C_CINMP 0x28 + + * PP2C - Port Phy2Cfg Register. This register controls the configuration o + * f the Phy Control OOB timing for the COMINIT parameters for either Port + * 0 or Port 1. The Port configured is controlled by the value programmed i + * nto the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00AC, 0xFFFFFFFFU ,0x28184018U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP2C_OFFSET, + 0xFFFFFFFFU, 0x28184018U); +/*##################################################################### */ + + /* + * Register : PP3C @ 0XFD0C00B0 + + * CWBGMN: COMWAKE Burst Gap Minimum. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGMN 0x06 + + * CWBGMX: COMWAKE Burst Gap Maximum. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGMX 0x14 + + * CWBGN: COMWAKE Burst Gap Nominal. + * PSU_SATA_AHCI_VENDOR_PP3C_CWBGN 0x08 + + * CWNMP: COMWAKE Negate Minimum Period. + * PSU_SATA_AHCI_VENDOR_PP3C_CWNMP 0x0E + + * PP3C - Port Phy3CfgRegister. This register controls the configuration of + * the Phy Control OOB timing for the COMWAKE parameters for either Port 0 + * or Port 1. The Port configured is controlled by the value programmed in + * to the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B0, 0xFFFFFFFFU ,0x0E081406U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP3C_OFFSET, + 0xFFFFFFFFU, 0x0E081406U); +/*##################################################################### */ + + /* + * Register : PP4C @ 0XFD0C00B4 + + * BMX: COM Burst Maximum. + * PSU_SATA_AHCI_VENDOR_PP4C_BMX 0x13 + + * BNM: COM Burst Nominal. + * PSU_SATA_AHCI_VENDOR_PP4C_BNM 0x08 + + * SFD: Signal Failure Detection, if the signal detection de-asserts for a + * time greater than this then the OOB detector will determine this is a li + * ne idle and cause the PhyInit state machine to exit the Phy Ready State. + * A value of zero disables the Signal Failure Detector. The value is base + * d on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving + * a nominal time of 500ns based on a 150MHz PMCLK. + * PSU_SATA_AHCI_VENDOR_PP4C_SFD 0x4A + + * PTST: Partial to Slumber timer value, specific delay the controller shou + * ld apply while in partial before entering slumber. The value is bases on + * the system clock divided by 128, total delay = (Sys Clock Period) * PTS + * T * 128 + * PSU_SATA_AHCI_VENDOR_PP4C_PTST 0x06 + + * PP4C - Port Phy4Cfg Register. This register controls the configuration o + * f the Phy Control Burst timing for the COM parameters for either Port 0 + * or Port 1. The Port configured is controlled by the value programmed int + * o the Port Config Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B4, 0xFFFFFFFFU ,0x064A0813U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP4C_OFFSET, + 0xFFFFFFFFU, 0x064A0813U); +/*##################################################################### */ + + /* + * Register : PP5C @ 0XFD0C00B8 + + * RIT: Retry Interval Timer. The calculated value divided by two, the lowe + * r digit of precision is not needed. + * PSU_SATA_AHCI_VENDOR_PP5C_RIT 0xC96A4 + + * RCT: Rate Change Timer, a value based on the 54.2us for which a SATA dev + * ice will transmit at a fixed rate ALIGNp after OOB has completed, for a + * fast SERDES it is suggested that this value be 54.2us / 4 + * PSU_SATA_AHCI_VENDOR_PP5C_RCT 0x3FF + + * PP5C - Port Phy5Cfg Register. This register controls the configuration o + * f the Phy Control Retry Interval timing for either Port 0 or Port 1. The + * Port configured is controlled by the value programmed into the Port Con + * fig Register. + * (OFFSET, MASK, VALUE) (0XFD0C00B8, 0xFFFFFFFFU ,0x3FFC96A4U) + */ + PSU_Mask_Write(SATA_AHCI_VENDOR_PP5C_OFFSET, + 0xFFFFFFFFU, 0x3FFC96A4U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ps_pl_isolation_removal_data() { - // : PS-PL POWER UP REQUEST - /*Register : REQ_PWRUP_INT_EN @ 0XFFD80118

      +unsigned long psu_resetin_init_data(void) +{ + /* + * PUTTING SERDES PERIPHERAL IN RESET + */ + /* + * PUTTING USB0 IN RESET + */ + /* + * Register : RST_LPD_TOP @ 0XFF5E023C - Power-up Request Interrupt Enable for PL - PSU_PMU_GLOBAL_REQ_PWRUP_INT_EN_PL 1 + * USB 0 reset for control registers + * PSU_CRL_APB_RST_LPD_TOP_USB0_APB_RESET 0X1 - Power-up Request Interrupt Enable Register. Writing a 1 to this location will unmask the interrupt. - (OFFSET, MASK, VALUE) (0XFFD80118, 0x00800000U ,0x00800000U) - RegMask = (PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK | 0 ); + * USB 0 sleep circuit reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_HIBERRESET 0X1 - RegVal = ((0x00000001U << PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET ,0x00800000U ,0x00800000U); - /*############################################################################################################################ */ + * USB 0 reset + * PSU_CRL_APB_RST_LPD_TOP_USB0_CORERESET 0X1 - /*Register : REQ_PWRUP_TRIG @ 0XFFD80120

      + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00000540U ,0x00000540U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00000540U, 0x00000540U); +/*##################################################################### */ - Power-up Request Trigger for PL - PSU_PMU_GLOBAL_REQ_PWRUP_TRIG_PL 1 + /* + * PUTTING GEM0 IN RESET + */ + /* + * Register : RST_LPD_IOU0 @ 0XFF5E0230 - Power-up Request Trigger Register. A write of one to this location will generate a power-up request to the PMU. - (OFFSET, MASK, VALUE) (0XFFD80120, 0x00800000U ,0x00800000U) - RegMask = (PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK | 0 ); + * GEM 3 reset + * PSU_CRL_APB_RST_LPD_IOU0_GEM3_RESET 0X1 - RegVal = ((0x00000001U << PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET ,0x00800000U ,0x00800000U); - /*############################################################################################################################ */ + * Software controlled reset for the GEMs + * (OFFSET, MASK, VALUE) (0XFF5E0230, 0x00000008U ,0x00000008U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_IOU0_OFFSET, + 0x00000008U, 0x00000008U); +/*##################################################################### */ - // : POLL ON PL POWER STATUS - /*Register : REQ_PWRUP_STATUS @ 0XFFD80110

      + /* + * PUTTING SATA IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - Power-up Request Status for PL - PSU_PMU_GLOBAL_REQ_PWRUP_STATUS_PL 1 - (OFFSET, MASK, VALUE) (0XFFD80110, 0x00800000U ,0x00000000U) */ - mask_pollOnValue(PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET,0x00800000U,0x00000000U); + * Sata block level reset + * PSU_CRF_APB_RST_FPD_TOP_SATA_RESET 0X1 - /*############################################################################################################################ */ + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00000002U ,0x00000002U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00000002U, 0x00000002U); +/*##################################################################### */ + + /* + * PUTTING PCIE IN RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * PCIE config reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET 0X1 + + * PCIE control block level reset + * PSU_CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET 0X1 + + * PCIE bridge block level reset (AXI interface) + * PSU_CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET 0X1 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x000E0000U ,0x000E0000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x000E0000U, 0x000E0000U); +/*##################################################################### */ + + /* + * PUTTING DP IN RESET + */ + /* + * Register : DP_TX_PHY_POWER_DOWN @ 0XFD4A0238 + + * Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 + * PSU_DP_DP_TX_PHY_POWER_DOWN_POWER_DWN 0XA + + * Control PHY Power down + * (OFFSET, MASK, VALUE) (0XFD4A0238, 0x0000000FU ,0x0000000AU) + */ + PSU_Mask_Write(DP_DP_TX_PHY_POWER_DOWN_OFFSET, + 0x0000000FU, 0x0000000AU); +/*##################################################################### */ + + /* + * Register : DP_PHY_RESET @ 0XFD4A0200 + + * Set to '1' to hold the GT in reset. Clear to release. + * PSU_DP_DP_PHY_RESET_GT_RESET 0X1 + + * Reset the transmitter PHY. + * (OFFSET, MASK, VALUE) (0XFD4A0200, 0x00000002U ,0x00000002U) + */ + PSU_Mask_Write(DP_DP_PHY_RESET_OFFSET, 0x00000002U, 0x00000002U); +/*##################################################################### */ + + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 + + * Display Port block level reset (includes DPDMA) + * PSU_CRF_APB_RST_FPD_TOP_DP_RESET 0X1 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00010000U ,0x00010000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00010000U, 0x00010000U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ps_pl_reset_config_data() { - // : PS PL RESET SEQUENCE - // : FABRIC RESET USING EMIO - /*Register : MASK_DATA_5_MSW @ 0XFF0A002C

      +unsigned long psu_ps_pl_isolation_removal_data(void) +{ + /* + * PS-PL POWER UP REQUEST + */ + /* + * Register : REQ_PWRUP_INT_EN @ 0XFFD80118 - Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] - PSU_GPIO_MASK_DATA_5_MSW_MASK_5_MSW 0x8000 + * Power-up Request Interrupt Enable for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_INT_EN_PL 1 - Maskable Output Data (GPIO Bank5, EMIO, Upper 16bits) - (OFFSET, MASK, VALUE) (0XFF0A002C, 0xFFFF0000U ,0x80000000U) - RegMask = (GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK | 0 ); + * Power-up Request Interrupt Enable Register. Writing a 1 to this location + * will unmask the interrupt. + * (OFFSET, MASK, VALUE) (0XFFD80118, 0x00800000U ,0x00800000U) + */ + PSU_Mask_Write(PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET, + 0x00800000U, 0x00800000U); +/*##################################################################### */ - RegVal = ((0x00008000U << GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_MASK_DATA_5_MSW_OFFSET ,0xFFFF0000U ,0x80000000U); - /*############################################################################################################################ */ + /* + * Register : REQ_PWRUP_TRIG @ 0XFFD80120 - /*Register : DIRM_5 @ 0XFF0A0344

      + * Power-up Request Trigger for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_TRIG_PL 1 - Operation is the same as DIRM_0[DIRECTION_0] - PSU_GPIO_DIRM_5_DIRECTION_5 0x80000000 + * Power-up Request Trigger Register. A write of one to this location will + * generate a power-up request to the PMU. + * (OFFSET, MASK, VALUE) (0XFFD80120, 0x00800000U ,0x00800000U) + */ + PSU_Mask_Write(PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET, + 0x00800000U, 0x00800000U); +/*##################################################################### */ - Direction mode (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0344, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DIRM_5_DIRECTION_5_MASK | 0 ); + /* + * POLL ON PL POWER STATUS + */ + /* + * Register : REQ_PWRUP_STATUS @ 0XFFD80110 - RegVal = ((0x80000000U << GPIO_DIRM_5_DIRECTION_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DIRM_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * Power-up Request Status for PL + * PSU_PMU_GLOBAL_REQ_PWRUP_STATUS_PL 1 + * (OFFSET, MASK, VALUE) (0XFFD80110, 0x00800000U ,0x00000000U) + */ + mask_pollOnValue(PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET, + 0x00800000U, 0x00000000U); - /*Register : OEN_5 @ 0XFF0A0348

      +/*##################################################################### */ - Operation is the same as OEN_0[OP_ENABLE_0] - PSU_GPIO_OEN_5_OP_ENABLE_5 0x80000000 - Output enable (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0348, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_OEN_5_OP_ENABLE_5_MASK | 0 ); + return 1; +} +unsigned long psu_afi_config(void) +{ + /* + * AFI RESET + */ + /* + * Register : RST_FPD_TOP @ 0XFD1A0100 - RegVal = ((0x80000000U << GPIO_OEN_5_OP_ENABLE_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_OEN_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * AF_FM0 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM0_RESET 0 - /*Register : DATA_5 @ 0XFF0A0054

      + * AF_FM1 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM1_RESET 0 - Output Data - PSU_GPIO_DATA_5_DATA_5 0x80000000 + * AF_FM2 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM2_RESET 0 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); + * AF_FM3 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM3_RESET 0 - RegVal = ((0x80000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * AF_FM4 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM4_RESET 0 + + * AF_FM5 block level reset + * PSU_CRF_APB_RST_FPD_TOP_AFI_FM5_RESET 0 + + * FPD Block level software controlled reset + * (OFFSET, MASK, VALUE) (0XFD1A0100, 0x00001F80U ,0x00000000U) + */ + PSU_Mask_Write(CRF_APB_RST_FPD_TOP_OFFSET, 0x00001F80U, 0x00000000U); +/*##################################################################### */ + + /* + * Register : RST_LPD_TOP @ 0XFF5E023C + + * AFI FM 6 + * PSU_CRL_APB_RST_LPD_TOP_AFI_FM6_RESET 0 + + * Software control register for the LPD block. + * (OFFSET, MASK, VALUE) (0XFF5E023C, 0x00080000U ,0x00000000U) + */ + PSU_Mask_Write(CRL_APB_RST_LPD_TOP_OFFSET, 0x00080000U, 0x00000000U); +/*##################################################################### */ + + /* + * AFIFM INTERFACE WIDTH + */ + /* + * Register : afi_fs @ 0XFD615000 + + * Select the 32/64/128-bit data width selection for the Slave 0 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved + * PSU_FPD_SLCR_AFI_FS_DW_SS0_SEL 0x2 + + * Select the 32/64/128-bit data width selection for the Slave 1 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved + * PSU_FPD_SLCR_AFI_FS_DW_SS1_SEL 0x2 + + * afi fs SLCR control register. This register is static and should not be + * modified during operation. + * (OFFSET, MASK, VALUE) (0XFD615000, 0x00000F00U ,0x00000A00U) + */ + PSU_Mask_Write(FPD_SLCR_AFI_FS_OFFSET, 0x00000F00U, 0x00000A00U); +/*##################################################################### */ + + + return 1; +} +unsigned long psu_ps_pl_reset_config_data(void) +{ + /* + * PS PL RESET SEQUENCE + */ + /* + * FABRIC RESET USING EMIO + */ + /* + * Register : MASK_DATA_5_MSW @ 0XFF0A002C + + * Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] + * PSU_GPIO_MASK_DATA_5_MSW_MASK_5_MSW 0x8000 + + * Maskable Output Data (GPIO Bank5, EMIO, Upper 16bits) + * (OFFSET, MASK, VALUE) (0XFF0A002C, 0xFFFF0000U ,0x80000000U) + */ + PSU_Mask_Write(GPIO_MASK_DATA_5_MSW_OFFSET, + 0xFFFF0000U, 0x80000000U); +/*##################################################################### */ + + /* + * Register : DIRM_5 @ 0XFF0A0344 + + * Operation is the same as DIRM_0[DIRECTION_0] + * PSU_GPIO_DIRM_5_DIRECTION_5 0x80000000 + + * Direction mode (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0344, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DIRM_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ + + /* + * Register : OEN_5 @ 0XFF0A0348 + + * Operation is the same as OEN_0[OP_ENABLE_0] + * PSU_GPIO_OEN_5_OP_ENABLE_5 0x80000000 + + * Output enable (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0348, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_OEN_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ + + /* + * Register : DATA_5 @ 0XFF0A0054 + + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0x80000000 + + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ mask_delay(1); - /*############################################################################################################################ */ +/*##################################################################### */ - // : FABRIC RESET USING DATA_5 TOGGLE - /*Register : DATA_5 @ 0XFF0A0054

      + /* + * FABRIC RESET USING DATA_5 TOGGLE + */ + /* + * Register : DATA_5 @ 0XFF0A0054 - Output Data - PSU_GPIO_DATA_5_DATA_5 0X00000000 + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0X00000000 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x00000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); - - RegVal = ((0x00000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x00000000U); - /*############################################################################################################################ */ + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x00000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x00000000U); +/*##################################################################### */ mask_delay(1); - /*############################################################################################################################ */ +/*##################################################################### */ - // : FABRIC RESET USING DATA_5 TOGGLE - /*Register : DATA_5 @ 0XFF0A0054

      + /* + * FABRIC RESET USING DATA_5 TOGGLE + */ + /* + * Register : DATA_5 @ 0XFF0A0054 - Output Data - PSU_GPIO_DATA_5_DATA_5 0x80000000 + * Output Data + * PSU_GPIO_DATA_5_DATA_5 0x80000000 - Output Data (GPIO Bank5, EMIO) - (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) - RegMask = (GPIO_DATA_5_DATA_5_MASK | 0 ); - - RegVal = ((0x80000000U << GPIO_DATA_5_DATA_5_SHIFT - | 0 ) & RegMask); */ - PSU_Mask_Write (GPIO_DATA_5_OFFSET ,0xFFFFFFFFU ,0x80000000U); - /*############################################################################################################################ */ + * Output Data (GPIO Bank5, EMIO) + * (OFFSET, MASK, VALUE) (0XFF0A0054, 0xFFFFFFFFU ,0x80000000U) + */ + PSU_Mask_Write(GPIO_DATA_5_OFFSET, 0xFFFFFFFFU, 0x80000000U); +/*##################################################################### */ - return 1; + return 1; } -unsigned long psu_ddr_phybringup_data() { +unsigned long psu_ddr_phybringup_data(void) +{ + + + unsigned int regval = 0; + + unsigned int pll_retry = 10; + + unsigned int pll_locked = 0; + + + while ((pll_retry > 0) && (!pll_locked)) { + + Xil_Out32(0xFD080004, 0x00040010);/*PIR*/ + Xil_Out32(0xFD080004, 0x00040011);/*PIR*/ + + while ((Xil_In32(0xFD080030) & 0x1) != 1) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + + pll_locked = (Xil_In32(0xFD080030) & 0x80000000) + >> 31;/*PGSR0*/ + pll_locked &= (Xil_In32(0xFD0807E0) & 0x10000) + >> 16;/*DX0GSR0*/ + pll_locked &= (Xil_In32(0xFD0809E0) & 0x10000) + >> 16;/*DX2GSR0*/ + pll_locked &= (Xil_In32(0xFD080BE0) & 0x10000) + >> 16;/*DX4GSR0*/ + pll_locked &= (Xil_In32(0xFD080DE0) & 0x10000) + >> 16;/*DX6GSR0*/ + pll_retry--; + } + Xil_Out32(0xFD0800C0, Xil_In32(0xFD0800C0) | + (pll_retry << 16));/*GPR0*/ + Xil_Out32(0xFD080004U, 0x00040063U); + /* PHY BRINGUP SEQ */ + while ((Xil_In32(0xFD080030U) & 0x0000000FU) != 0x0000000FU) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + prog_reg(0xFD080004U, 0x00000001U, 0x00000000U, 0x00000001U); + /* poll for PHY initialization to complete */ + while ((Xil_In32(0xFD080030U) & 0x000000FFU) != 0x0000001FU) { + /*****TODO*****/ + + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } - unsigned int regval = 0; - int dpll_divisor; - dpll_divisor = (Xil_In32(0xFD1A0080U) & 0x00003F00U) >> 0x00000008U; - prog_reg (0xFD1A0080U, 0x00003F00U, 0x00000008U, 0x00000005U); - prog_reg (0xFD080028U, 0x00000001U, 0x00000000U, 0x00000001U); - Xil_Out32(0xFD080004U, 0x00040003U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - prog_reg (0xFD080684U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806A4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806C4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD0806E4U, 0x06000000U, 0x00000019U, 0x00000001U); - prog_reg (0xFD1A0080, 0x3F00, 0x8, dpll_divisor); - Xil_Out32(0xFD080004U, 0x40040071U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - Xil_Out32(0xFD080004U, 0x40040001U); - while ((Xil_In32(0xFD080030U) & 0x00000001U) != 0x00000001U); - // PHY BRINGUP SEQ - while ((Xil_In32(0xFD080030U) & 0x0000000FU) != 0x0000000FU); - prog_reg (0xFD080004U, 0x00000001U, 0x00000000U, 0x00000001U); - //poll for PHY initialization to complete - while ((Xil_In32(0xFD080030U) & 0x000000FFU) != 0x0000001FU); - Xil_Out32(0xFD0701B0U, 0x00000001U); Xil_Out32(0xFD070320U, 0x00000001U); - while ((Xil_In32(0xFD070004U) & 0x0000000FU) != 0x00000001U); - prog_reg (0xFD080014U, 0x00000040U, 0x00000006U, 0x00000001U); - Xil_Out32(0xFD080004, 0x0004FE01); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while(regval != 0x80000FFF){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } + while ((Xil_In32(0xFD070004U) & 0x0000000FU) != 0x00000001U) { + /*****TODO*****/ - - // Run Vref training in static read mode + /*TIMEOUT poll mechanism need to be inserted in this block*/ + + } + + prog_reg(0xFD080014U, 0x00000040U, 0x00000006U, 0x00000001U); + Xil_Out32(0xFD080004, 0x0004FE01); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while (regval != 0x80000FFF) + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + +/* Run Vref training in static read mode*/ Xil_Out32(0xFD080200U, 0x100091C7U); - Xil_Out32(0xFD080018U, 0x00F01EF2U); - Xil_Out32(0xFD08001CU, 0x55AA5498U); - Xil_Out32(0xFD08142CU, 0x00041830U); - Xil_Out32(0xFD08146CU, 0x00041830U); - Xil_Out32(0xFD0814ACU, 0x00041830U); - Xil_Out32(0xFD0814ECU, 0x00041830U); - Xil_Out32(0xFD08152CU, 0x00041830U); - + Xil_Out32(0xFD080018U, 0x00F01EEFU); + prog_reg(0xFD08001CU, 0x00000018U, 0x00000003U, 0x00000003U); + prog_reg(0xFD08142CU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD08146CU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD0814ACU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD0814ECU, 0x00000030U, 0x00000004U, 0x00000003U); + prog_reg(0xFD08152CU, 0x00000030U, 0x00000004U, 0x00000003U); - Xil_Out32(0xFD080004, 0x00060001); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while((regval & 0x80004001) != 0x80004001){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } - // Vref training is complete, disabling static read mode + Xil_Out32(0xFD080004, 0x00060001); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while ((regval & 0x80004001) != 0x80004001) { + /*PUB_PGSR0*/ + regval = Xil_In32(0xFD080030); + } + + prog_reg(0xFD08001CU, 0x00000018U, 0x00000003U, 0x00000000U); + prog_reg(0xFD08142CU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD08146CU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD0814ACU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD0814ECU, 0x00000030U, 0x00000004U, 0x00000000U); + prog_reg(0xFD08152CU, 0x00000030U, 0x00000004U, 0x00000000U); +/*Vref training is complete, disabling static read mode*/ Xil_Out32(0xFD080200U, 0x800091C7U); - Xil_Out32(0xFD080018U, 0x00F12302U); - Xil_Out32(0xFD08001CU, 0x55AA5480U); - Xil_Out32(0xFD08142CU, 0x00041800U); - Xil_Out32(0xFD08146CU, 0x00041800U); - Xil_Out32(0xFD0814ACU, 0x00041800U); - Xil_Out32(0xFD0814ECU, 0x00041800U); - Xil_Out32(0xFD08152CU, 0x00041800U); - + Xil_Out32(0xFD080018U, 0x00F122E7U); - Xil_Out32(0xFD080004, 0x0000C001); //PUB_PIR - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - while((regval & 0x80000C01) != 0x80000C01){ - regval = Xil_In32(0xFD080030); //PUB_PGSR0 - } + + Xil_Out32(0xFD080004, 0x0000C001); /*PUB_PIR*/ + regval = Xil_In32(0xFD080030); /*PUB_PGSR0*/ + while ((regval & 0x80000C01) != 0x80000C01) { + /*PUB_PGSR0*/ + regval = Xil_In32(0xFD080030); + } Xil_Out32(0xFD070180U, 0x01000040U); Xil_Out32(0xFD070060U, 0x00000000U); - prog_reg (0xFD080014U, 0x00000040U, 0x00000006U, 0x00000000U); + prog_reg(0xFD080014U, 0x00000040U, 0x00000006U, 0x00000000U); -return 1; +return 1; } /** * CRL_APB Base Address */ #define CRL_APB_BASEADDR 0XFF5E0000U -#define CRL_APB_RST_LPD_IOU0 ( ( CRL_APB_BASEADDR ) + 0X00000230U ) -#define CRL_APB_RST_LPD_IOU1 ( ( CRL_APB_BASEADDR ) + 0X00000234U ) -#define CRL_APB_RST_LPD_IOU2 ( ( CRL_APB_BASEADDR ) + 0X00000238U ) -#define CRL_APB_RST_LPD_TOP ( ( CRL_APB_BASEADDR ) + 0X0000023CU ) -#define CRL_APB_IOU_SWITCH_CTRL ( ( CRL_APB_BASEADDR ) + 0X0000009CU ) +#define CRL_APB_RST_LPD_IOU0 ((CRL_APB_BASEADDR) + 0X00000230U) +#define CRL_APB_RST_LPD_IOU1 ((CRL_APB_BASEADDR) + 0X00000234U) +#define CRL_APB_RST_LPD_IOU2 ((CRL_APB_BASEADDR) + 0X00000238U) +#define CRL_APB_RST_LPD_TOP ((CRL_APB_BASEADDR) + 0X0000023CU) +#define CRL_APB_IOU_SWITCH_CTRL ((CRL_APB_BASEADDR) + 0X0000009CU) /** * CRF_APB Base Address */ #define CRF_APB_BASEADDR 0XFD1A0000U -#define CRF_APB_RST_FPD_TOP ( ( CRF_APB_BASEADDR ) + 0X00000100U ) -#define CRF_APB_GPU_REF_CTRL ( ( CRF_APB_BASEADDR ) + 0X00000084U ) -#define CRF_APB_RST_DDR_SS ( ( CRF_APB_BASEADDR ) + 0X00000108U ) +#define CRF_APB_RST_FPD_TOP ((CRF_APB_BASEADDR) + 0X00000100U) +#define CRF_APB_GPU_REF_CTRL ((CRF_APB_BASEADDR) + 0X00000084U) +#define CRF_APB_RST_DDR_SS ((CRF_APB_BASEADDR) + 0X00000108U) #define PSU_MASK_POLL_TIME 1100000 +/** + * * Register: CRF_APB_DPLL_CTRL + */ +#define CRF_APB_DPLL_CTRL ((CRF_APB_BASEADDR) + 0X0000002C) -int mask_pollOnValue(u32 add , u32 mask, u32 value ) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; + +#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_DPLL_CTRL_DIV2_WIDTH 1 + +#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_DPLL_CTRL_FBDIV_WIDTH 7 + +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_WIDTH 1 + +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_WIDTH 1 + +/** + * * Register: CRF_APB_DPLL_CFG + */ +#define CRF_APB_DPLL_CFG ((CRF_APB_BASEADDR) + 0X00000030) + +#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_DPLL_CFG_LOCK_DLY_WIDTH 7 + +#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_DPLL_CFG_LOCK_CNT_WIDTH 10 + +#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_DPLL_CFG_LFHF_WIDTH 2 + +#define CRF_APB_DPLL_CFG_CP_SHIFT 5 +#define CRF_APB_DPLL_CFG_CP_WIDTH 4 + +#define CRF_APB_DPLL_CFG_RES_SHIFT 0 +#define CRF_APB_DPLL_CFG_RES_WIDTH 4 + +/** + * Register: CRF_APB_PLL_STATUS + */ +#define CRF_APB_PLL_STATUS ((CRF_APB_BASEADDR) + 0X00000044) + + +static int mask_pollOnValue(u32 add, u32 mask, u32 value) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; int i = 0; - while ((*addr & mask)!= value) { - if (i == PSU_MASK_POLL_TIME) { + + while ((*addr & mask) != value) { + if (i == PSU_MASK_POLL_TIME) return 0; - } i++; } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); + return 1; } -int mask_poll(u32 add , u32 mask) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; +static int mask_poll(u32 add, u32 mask) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; int i = 0; + while (!(*addr & mask)) { - if (i == PSU_MASK_POLL_TIME) { + if (i == PSU_MASK_POLL_TIME) return 0; - } i++; } - return 1; - //xil_printf("MaskPoll : 0x%x --> 0x%x \n \r" , add, *addr); + return 1; } -void mask_delay(u32 delay) { - usleep (delay); +static void mask_delay(u32 delay) +{ + usleep(delay); } -u32 mask_read(u32 add , u32 mask ) { - volatile u32 *addr = (volatile u32*)(unsigned long) add; - u32 val = (*addr & mask); - //xil_printf("MaskRead : 0x%x --> 0x%x \n \r" , add, val); - return val; +static u32 mask_read(u32 add, u32 mask) +{ + volatile u32 *addr = (volatile u32 *)(unsigned long) add; + u32 val = (*addr & mask); + return val; } +static void dpll_prog(int ddr_pll_fbdiv, int d_lock_dly, int d_lock_cnt, + int d_lfhf, int d_cp, int d_res) { -//Following SERDES programming sequences that a user need to follow to work around the known limitation with SERDES. -//These sequences should done before STEP 1 and STEP 2 as described in previous section. These programming steps are -//required for current silicon version and are likely to undergo further changes with subsequent silicon versions. + unsigned int pll_ctrl_regval; + unsigned int pll_status_regval; + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_DIV2_MASK); + pll_ctrl_regval = pll_ctrl_regval | (1 << CRF_APB_DPLL_CTRL_DIV2_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LOCK_DLY_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lock_dly << CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LOCK_CNT_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lock_cnt << CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_LFHF_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_lfhf << CRF_APB_DPLL_CFG_LFHF_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_CP_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_cp << CRF_APB_DPLL_CFG_CP_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CFG); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CFG_RES_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (d_res << CRF_APB_DPLL_CFG_RES_SHIFT); + Xil_Out32(CRF_APB_DPLL_CFG, pll_ctrl_regval); + + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_FBDIV_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (ddr_pll_fbdiv << CRF_APB_DPLL_CTRL_FBDIV_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Setting PLL BYPASS*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_BYPASS_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (1 << CRF_APB_DPLL_CTRL_BYPASS_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Setting PLL RESET*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_RESET_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (1 << CRF_APB_DPLL_CTRL_RESET_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Clearing PLL RESET*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_RESET_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (0 << CRF_APB_DPLL_CTRL_RESET_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + + /*Checking PLL lock*/ + pll_status_regval = 0x00000000; + while ((pll_status_regval & CRF_APB_PLL_STATUS_DPLL_LOCK_MASK) != + CRF_APB_PLL_STATUS_DPLL_LOCK_MASK) + pll_status_regval = Xil_In32(CRF_APB_PLL_STATUS); -int serdes_fixcal_code() { + + /*Clearing PLL BYPASS*/ + pll_ctrl_regval = Xil_In32(CRF_APB_DPLL_CTRL); + pll_ctrl_regval = pll_ctrl_regval & (~CRF_APB_DPLL_CTRL_BYPASS_MASK); + pll_ctrl_regval = pll_ctrl_regval | + (0 << CRF_APB_DPLL_CTRL_BYPASS_SHIFT); + Xil_Out32(CRF_APB_DPLL_CTRL, pll_ctrl_regval); + +} + +/*Following SERDES programming sequences that a user need to follow to work + * around the known limitation with SERDES. These sequences should done + * before STEP 1 and STEP 2 as described in previous section. These + * programming steps are *required for current silicon version and are + * likely to undergo further changes with subsequent silicon versions. + */ + + +static int serdes_enb_coarse_saturation(void) +{ + /*Enable PLL Coarse Code saturation Logic*/ + Xil_Out32(0xFD402094, 0x00000010); + Xil_Out32(0xFD406094, 0x00000010); + Xil_Out32(0xFD40A094, 0x00000010); + Xil_Out32(0xFD40E094, 0x00000010); + return 1; +} + +int serdes_fixcal_code(void) +{ int MaskStatus = 1; - // L3_TM_CALIB_DIG19 - Xil_Out32(0xFD40EC4C,0x00000020); - //ICM_CFG0 - Xil_Out32(0xFD410010,0x00000001); + unsigned int rdata = 0; + + /*The valid codes are from 0x26 to 0x3C. + *There are 23 valid codes in total. + */ + /*Each element of array stands for count of occurence of valid code.*/ + unsigned int match_pmos_code[23]; + /*Each element of array stands for count of occurence of valid code.*/ + /*The valid codes are from 0xC to 0x12. + *There are 7 valid codes in total. + */ + unsigned int match_nmos_code[23]; + /*Each element of array stands for count of occurence of valid code.*/ + /*The valid codes are from 0x6 to 0xC. + * There are 7 valid codes in total. + */ + unsigned int match_ical_code[7]; + /*Each element of array stands for count of occurence of valid code.*/ + unsigned int match_rcal_code[7]; - //is calibration done, polling on L3_CALIB_DONE_STATUS - MaskStatus = mask_poll(0xFD40EF14, 0x2); - - if (MaskStatus == 0) - { - xil_printf("SERDES initialization timed out\n\r"); - } - - unsigned int tmp_0_1; - tmp_0_1 = mask_read(0xFD400B0C, 0x3F); - - unsigned int tmp_0_2 = tmp_0_1 & (0x7); - unsigned int tmp_0_3 = tmp_0_1 & (0x38); - //Configure ICM for de-asserting CMN_Resetn - Xil_Out32(0xFD410010,0x00000000); - Xil_Out32(0xFD410014,0x00000000); - - unsigned int tmp_0_2_mod = (tmp_0_2 <<1) | (0x1); - tmp_0_2_mod = (tmp_0_2_mod <<4); - - tmp_0_3 = tmp_0_3 >>3; - Xil_Out32(0xFD40EC4C,tmp_0_3); + unsigned int p_code = 0; + unsigned int n_code = 0; + unsigned int i_code = 0; + unsigned int r_code = 0; + unsigned int repeat_count = 0; + unsigned int L3_TM_CALIB_DIG20 = 0; + unsigned int L3_TM_CALIB_DIG19 = 0; + unsigned int L3_TM_CALIB_DIG18 = 0; + unsigned int L3_TM_CALIB_DIG16 = 0; + unsigned int L3_TM_CALIB_DIG15 = 0; + unsigned int L3_TM_CALIB_DIG14 = 0; - //L3_TM_CALIB_DIG18 - Xil_Out32(0xFD40EC48,tmp_0_2_mod); - return MaskStatus; + int i = 0; + rdata = Xil_In32(0XFD40289C); + rdata = rdata & ~0x03; + rdata = rdata | 0x1; + Xil_Out32(0XFD40289C, rdata); + // check supply good status before starting AFE sequencing + int count = 0; + do + { + if (count == PSU_MASK_POLL_TIME) + break; + rdata = Xil_In32(0xFD402B1C); + count++; + }while((rdata&0x0000000E) !=0x0000000E); + + for (i = 0; i < 23; i++) { + match_pmos_code[i] = 0; + match_nmos_code[i] = 0; + } + for (i = 0; i < 7; i++) { + match_ical_code[i] = 0; + match_rcal_code[i] = 0; + } + + + do { + /*Clear ICM_CFG value*/ + Xil_Out32(0xFD410010, 0x00000000); + Xil_Out32(0xFD410014, 0x00000000); + + /*Set ICM_CFG value*/ + /*This will trigger recalibration of all stages*/ + Xil_Out32(0xFD410010, 0x00000001); + Xil_Out32(0xFD410014, 0x00000000); + + /*is calibration done? polling on L3_CALIB_DONE_STATUS*/ + MaskStatus = mask_poll(0xFD40EF14, 0x2); + if (MaskStatus == 0) { + /*failure here is because of calibration done timeout*/ + xil_printf("#SERDES initialization timed out\n\r"); + return MaskStatus; + } + + p_code = mask_read(0xFD40EF18, 0xFFFFFFFF);/*PMOS code*/ + n_code = mask_read(0xFD40EF1C, 0xFFFFFFFF);/*NMOS code*/ + /*m_code = mask_read(0xFD40EF20, 0xFFFFFFFF)*/;/*MPHY code*/ + i_code = mask_read(0xFD40EF24, 0xFFFFFFFF);/*ICAL code*/ + r_code = mask_read(0xFD40EF28, 0xFFFFFFFF);/*RX code*/ + /*u_code = mask_read(0xFD40EF2C, 0xFFFFFFFF)*/;/*USB2 code*/ + + /*PMOS code in acceptable range*/ + if ((p_code >= 0x26) && (p_code <= 0x3C)) + match_pmos_code[p_code - 0x26] += 1; + + /*NMOS code in acceptable range*/ + if ((n_code >= 0x26) && (n_code <= 0x3C)) + match_nmos_code[n_code - 0x26] += 1; + + /*PMOS code in acceptable range*/ + if ((i_code >= 0xC) && (i_code <= 0x12)) + match_ical_code[i_code - 0xC] += 1; + + /*NMOS code in acceptable range*/ + if ((r_code >= 0x6) && (r_code <= 0xC)) + match_rcal_code[r_code - 0x6] += 1; + + + } while (repeat_count++ < 10); + + /*find the valid code which resulted in maximum times in 10 iterations*/ + for (i = 0; i < 23; i++) { + if (match_pmos_code[i] >= match_pmos_code[0]) { + match_pmos_code[0] = match_pmos_code[i]; + p_code = 0x26 + i; + } + if (match_nmos_code[i] >= match_nmos_code[0]) { + match_nmos_code[0] = match_nmos_code[i]; + n_code = 0x26 + i; + } + } + + for (i = 0; i < 7; i++) { + if (match_ical_code[i] >= match_ical_code[0]) { + match_ical_code[0] = match_ical_code[i]; + i_code = 0xC + i; + } + if (match_rcal_code[i] >= match_rcal_code[0]) { + match_rcal_code[0] = match_rcal_code[i]; + r_code = 0x6 + i; + } + } + /*L3_TM_CALIB_DIG20[3] PSW MSB Override*/ + /*L3_TM_CALIB_DIG20[2:0] PSW Code [4:2]*/ + L3_TM_CALIB_DIG20 = mask_read(0xFD40EC50, 0xFFFFFFF0);/*read DIG20*/ + L3_TM_CALIB_DIG20 = L3_TM_CALIB_DIG20 | 0x8 | ((p_code >> 2) & 0x7); + + + /*L3_TM_CALIB_DIG19[7:6] PSW Code [1:0]*/ + /*L3_TM_CALIB_DIG19[5] PSW Override*/ + /*L3_TM_CALIB_DIG19[2] NSW MSB Override*/ + /*L3_TM_CALIB_DIG19[1:0] NSW Code [4:3]*/ + L3_TM_CALIB_DIG19 = mask_read(0xFD40EC4C, 0xFFFFFF18);/*read DIG19*/ + L3_TM_CALIB_DIG19 = L3_TM_CALIB_DIG19 | ((p_code & 0x3) << 6) + | 0x20 | 0x4 | ((n_code >> 3) & 0x3); + + /*L3_TM_CALIB_DIG18[7:5] NSW Code [2:0]*/ + /*L3_TM_CALIB_DIG18[4] NSW Override*/ + L3_TM_CALIB_DIG18 = mask_read(0xFD40EC48, 0xFFFFFF0F);/*read DIG18*/ + L3_TM_CALIB_DIG18 = L3_TM_CALIB_DIG18 | ((n_code & 0x7) << 5) | 0x10; + + + /*L3_TM_CALIB_DIG16[2:0] RX Code [3:1]*/ + L3_TM_CALIB_DIG16 = mask_read(0xFD40EC40, 0xFFFFFFF8);/*read DIG16*/ + L3_TM_CALIB_DIG16 = L3_TM_CALIB_DIG16 | ((r_code >> 1) & 0x7); + + /*L3_TM_CALIB_DIG15[7] RX Code [0]*/ + /*L3_TM_CALIB_DIG15[6] RX CODE Override*/ + /*L3_TM_CALIB_DIG15[3] ICAL MSB Override*/ + /*L3_TM_CALIB_DIG15[2:0] ICAL Code [3:1]*/ + L3_TM_CALIB_DIG15 = mask_read(0xFD40EC3C, 0xFFFFFF30);/*read DIG15*/ + L3_TM_CALIB_DIG15 = L3_TM_CALIB_DIG15 | ((r_code & 0x1) << 7) + | 0x40 | 0x8 | ((i_code >> 1) & 0x7); + + /*L3_TM_CALIB_DIG14[7] ICAL Code [0]*/ + /*L3_TM_CALIB_DIG14[6] ICAL Override*/ + L3_TM_CALIB_DIG14 = mask_read(0xFD40EC38, 0xFFFFFF3F);/*read DIG14*/ + L3_TM_CALIB_DIG14 = L3_TM_CALIB_DIG14 | ((i_code & 0x1) << 7) | 0x40; + + /*Forces the calibration values*/ + Xil_Out32(0xFD40EC50, L3_TM_CALIB_DIG20); + Xil_Out32(0xFD40EC4C, L3_TM_CALIB_DIG19); + Xil_Out32(0xFD40EC48, L3_TM_CALIB_DIG18); + Xil_Out32(0xFD40EC40, L3_TM_CALIB_DIG16); + Xil_Out32(0xFD40EC3C, L3_TM_CALIB_DIG15); + Xil_Out32(0xFD40EC38, L3_TM_CALIB_DIG14); + return MaskStatus; } - -int serdes_enb_coarse_saturation() { - //Enable PLL Coarse Code saturation Logic - Xil_Out32(0xFD402094,0x00000010); - Xil_Out32(0xFD406094,0x00000010); - Xil_Out32(0xFD40A094,0x00000010); - Xil_Out32(0xFD40E094,0x00000010); - return 1; -} - -int init_serdes() { +static int init_serdes(void) +{ int status = 1; + status &= psu_resetin_init_data(); status &= serdes_fixcal_code(); status &= serdes_enb_coarse_saturation(); - status &= psu_serdes_init_data(); + status &= psu_serdes_init_data(); status &= psu_resetout_init_data(); return status; } - - - - -void init_peripheral() +static void init_peripheral(void) { - unsigned int RegValue; - - /* Turn on IOU Clock */ - //Xil_Out32( CRL_APB_IOU_SWITCH_CTRL, 0x01001500); - - /* Release all resets in the IOU */ - Xil_Out32( CRL_APB_RST_LPD_IOU0, 0x00000000); - Xil_Out32( CRL_APB_RST_LPD_IOU1, 0x00000000); - Xil_Out32( CRL_APB_RST_LPD_IOU2, 0x00000000); - - /* Activate GPU clocks */ - //Xil_Out32(CRF_APB_GPU_REF_CTRL, 0x07001500); - - /* Take LPD out of reset except R5 */ - RegValue = Xil_In32(CRL_APB_RST_LPD_TOP); - RegValue &= 0x7; - Xil_Out32( CRL_APB_RST_LPD_TOP, RegValue); - - /* Take most of FPD out of reset */ - Xil_Out32( CRF_APB_RST_FPD_TOP, 0x00000000); - - /* Making DPDMA as secure */ - unsigned int tmp_regval; - tmp_regval = Xil_In32(0xFD690040); - tmp_regval &= ~0x00000001; - Xil_Out32(0xFD690040, tmp_regval); - - /* Making PCIe as secure */ - tmp_regval = Xil_In32(0xFD690030); - tmp_regval &= ~0x00000001; - Xil_Out32(0xFD690030, tmp_regval); +/*SMMU_REG Interrrupt Enable: Followig register need to be written all the time to properly catch SMMU messages.*/ + PSU_Mask_Write(0xFD5F0018, 0x8000001FU, 0x8000001FU); } -int psu_init_xppu_aper_ram() { - unsigned long APER_OFFSET = 0xFF981000; - int i = 0; - for (; i <= 400; i++) { - PSU_Mask_Write (APER_OFFSET ,0xF80FFFFFU ,0x08080000U); - APER_OFFSET = APER_OFFSET + 0x4; - } +static int psu_init_xppu_aper_ram(void) +{ return 0; } -int psu_lpd_protection() { - psu_init_xppu_aper_ram(); - psu_lpd_xppu_data(); - return 0; +int psu_lpd_protection(void) +{ + psu_init_xppu_aper_ram(); + return 0; } -int psu_ddr_protection() { - psu_ddr_xmpu0_data(); - psu_ddr_xmpu1_data(); - psu_ddr_xmpu2_data(); - psu_ddr_xmpu3_data(); - psu_ddr_xmpu4_data(); - psu_ddr_xmpu5_data(); - return 0; +int psu_ddr_protection(void) +{ + psu_ddr_xmpu0_data(); + psu_ddr_xmpu1_data(); + psu_ddr_xmpu2_data(); + psu_ddr_xmpu3_data(); + psu_ddr_xmpu4_data(); + psu_ddr_xmpu5_data(); + return 0; } -int psu_ocm_protection() { - psu_ocm_xmpu_data(); - return 0; +int psu_ocm_protection(void) +{ + psu_ocm_xmpu_data(); + return 0; } -int psu_fpd_protection() { - psu_fpd_xmpu_data(); - return 0; +int psu_fpd_protection(void) +{ + psu_fpd_xmpu_data(); + return 0; } -int psu_protection_lock() { - psu_protection_lock_data(); - return 0; +int psu_protection_lock(void) +{ + psu_protection_lock_data(); + return 0; } -int psu_protection() { - psu_ddr_protection(); - psu_ocm_protection(); - psu_fpd_protection(); - psu_lpd_protection(); - return 0; +int psu_protection(void) +{ + psu_apply_master_tz(); + psu_ddr_protection(); + psu_ocm_protection(); + psu_fpd_protection(); + psu_lpd_protection(); + return 0; } - - int -psu_init() +psu_init(void) { - int status = 1; - status &= psu_mio_init_data (); - status &= psu_pll_init_data (); - status &= psu_clock_init_data (); - - status &= psu_ddr_init_data (); - status &= psu_ddr_phybringup_data (); - status &= psu_peripherals_init_data (); + int status = 1; + status &= psu_mio_init_data(); + status &= psu_pll_init_data(); + status &= psu_clock_init_data(); + status &= psu_ddr_init_data(); + status &= psu_ddr_phybringup_data(); + status &= psu_peripherals_init_data(); status &= init_serdes(); - init_peripheral (); + init_peripheral(); - status &= psu_peripherals_powerdwn_data (); - - if (status == 0) { + status &= psu_peripherals_powerdwn_data(); + status &= psu_afi_config(); + psu_ddr_qos_init_data(); + + if (status == 0) return 1; - } return 0; } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.h b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.h index 0fb578181..7feed7d35 100644 --- a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.h +++ b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/psu_init_gpl.h @@ -16,13 +16,13 @@ * with this program; if not, see * * -******************************************************************************/ +******************************************************************************/ /****************************************************************************/ /** * * @file psu_init_gpl.h * -* This file is automatically generated +* This file is automatically generated * *****************************************************************************/ @@ -41,8 +41,6 @@ #define CRL_APB_RPLL_CTRL_OFFSET 0XFF5E0030 #undef CRL_APB_RPLL_TO_FPD_CTRL_OFFSET #define CRL_APB_RPLL_TO_FPD_CTRL_OFFSET 0XFF5E0048 -#undef CRL_APB_RPLL_FRAC_CFG_OFFSET -#define CRL_APB_RPLL_FRAC_CFG_OFFSET 0XFF5E0038 #undef CRL_APB_IOPLL_CFG_OFFSET #define CRL_APB_IOPLL_CFG_OFFSET 0XFF5E0024 #undef CRL_APB_IOPLL_CTRL_OFFSET @@ -57,8 +55,6 @@ #define CRL_APB_IOPLL_CTRL_OFFSET 0XFF5E0020 #undef CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET #define CRL_APB_IOPLL_TO_FPD_CTRL_OFFSET 0XFF5E0044 -#undef CRL_APB_IOPLL_FRAC_CFG_OFFSET -#define CRL_APB_IOPLL_FRAC_CFG_OFFSET 0XFF5E0028 #undef CRF_APB_APLL_CFG_OFFSET #define CRF_APB_APLL_CFG_OFFSET 0XFD1A0024 #undef CRF_APB_APLL_CTRL_OFFSET @@ -73,8 +69,6 @@ #define CRF_APB_APLL_CTRL_OFFSET 0XFD1A0020 #undef CRF_APB_APLL_TO_LPD_CTRL_OFFSET #define CRF_APB_APLL_TO_LPD_CTRL_OFFSET 0XFD1A0048 -#undef CRF_APB_APLL_FRAC_CFG_OFFSET -#define CRF_APB_APLL_FRAC_CFG_OFFSET 0XFD1A0028 #undef CRF_APB_DPLL_CFG_OFFSET #define CRF_APB_DPLL_CFG_OFFSET 0XFD1A0030 #undef CRF_APB_DPLL_CTRL_OFFSET @@ -89,8 +83,6 @@ #define CRF_APB_DPLL_CTRL_OFFSET 0XFD1A002C #undef CRF_APB_DPLL_TO_LPD_CTRL_OFFSET #define CRF_APB_DPLL_TO_LPD_CTRL_OFFSET 0XFD1A004C -#undef CRF_APB_DPLL_FRAC_CFG_OFFSET -#define CRF_APB_DPLL_FRAC_CFG_OFFSET 0XFD1A0034 #undef CRF_APB_VPLL_CFG_OFFSET #define CRF_APB_VPLL_CFG_OFFSET 0XFD1A003C #undef CRF_APB_VPLL_CTRL_OFFSET @@ -105,675 +97,770 @@ #define CRF_APB_VPLL_CTRL_OFFSET 0XFD1A0038 #undef CRF_APB_VPLL_TO_LPD_CTRL_OFFSET #define CRF_APB_VPLL_TO_LPD_CTRL_OFFSET 0XFD1A0050 -#undef CRF_APB_VPLL_FRAC_CFG_OFFSET -#define CRF_APB_VPLL_FRAC_CFG_OFFSET 0XFD1A0040 -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRL_APB_RPLL_CFG_RES_DEFVAL #undef CRL_APB_RPLL_CFG_RES_SHIFT #undef CRL_APB_RPLL_CFG_RES_MASK -#define CRL_APB_RPLL_CFG_RES_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_RES_SHIFT 0 -#define CRL_APB_RPLL_CFG_RES_MASK 0x0000000FU +#define CRL_APB_RPLL_CFG_RES_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_RES_SHIFT 0 +#define CRL_APB_RPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRL_APB_RPLL_CFG_CP_DEFVAL #undef CRL_APB_RPLL_CFG_CP_SHIFT #undef CRL_APB_RPLL_CFG_CP_MASK -#define CRL_APB_RPLL_CFG_CP_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_CP_SHIFT 5 -#define CRL_APB_RPLL_CFG_CP_MASK 0x000001E0U +#define CRL_APB_RPLL_CFG_CP_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_CP_SHIFT 5 +#define CRL_APB_RPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRL_APB_RPLL_CFG_LFHF_DEFVAL #undef CRL_APB_RPLL_CFG_LFHF_SHIFT #undef CRL_APB_RPLL_CFG_LFHF_MASK -#define CRL_APB_RPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LFHF_SHIFT 10 -#define CRL_APB_RPLL_CFG_LFHF_MASK 0x00000C00U +#define CRL_APB_RPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LFHF_SHIFT 10 +#define CRL_APB_RPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL #undef CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT #undef CRL_APB_RPLL_CFG_LOCK_CNT_MASK -#define CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRL_APB_RPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRL_APB_RPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRL_APB_RPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL #undef CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT #undef CRL_APB_RPLL_CFG_LOCK_DLY_MASK -#define CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRL_APB_RPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRL_APB_RPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRL_APB_RPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRL_APB_RPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL #undef CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT #undef CRL_APB_RPLL_CTRL_PRE_SRC_MASK -#define CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRL_APB_RPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRL_APB_RPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRL_APB_RPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRL_APB_RPLL_CTRL_FBDIV_DEFVAL #undef CRL_APB_RPLL_CTRL_FBDIV_SHIFT #undef CRL_APB_RPLL_CTRL_FBDIV_MASK -#define CRL_APB_RPLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_FBDIV_SHIFT 8 -#define CRL_APB_RPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRL_APB_RPLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_FBDIV_SHIFT 8 +#define CRL_APB_RPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRL_APB_RPLL_CTRL_DIV2_DEFVAL #undef CRL_APB_RPLL_CTRL_DIV2_SHIFT #undef CRL_APB_RPLL_CTRL_DIV2_MASK -#define CRL_APB_RPLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_DIV2_SHIFT 16 -#define CRL_APB_RPLL_CTRL_DIV2_MASK 0x00010000U +#define CRL_APB_RPLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_DIV2_SHIFT 16 +#define CRL_APB_RPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_RPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_RPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_RPLL_CTRL_BYPASS_MASK -#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_RPLL_CTRL_RESET_DEFVAL #undef CRL_APB_RPLL_CTRL_RESET_SHIFT #undef CRL_APB_RPLL_CTRL_RESET_MASK -#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_RPLL_CTRL_RESET_DEFVAL #undef CRL_APB_RPLL_CTRL_RESET_SHIFT #undef CRL_APB_RPLL_CTRL_RESET_MASK -#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_RPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_RPLL_CTRL_RESET_MASK 0x00000001U -/*RPLL is locked*/ +/* +* RPLL is locked +*/ #undef CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL #undef CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT #undef CRL_APB_PLL_STATUS_RPLL_LOCK_MASK -#define CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL 0x00000018 -#define CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT 1 -#define CRL_APB_PLL_STATUS_RPLL_LOCK_MASK 0x00000002U +#define CRL_APB_PLL_STATUS_RPLL_LOCK_DEFVAL 0x00000018 +#define CRL_APB_PLL_STATUS_RPLL_LOCK_SHIFT 1 +#define CRL_APB_PLL_STATUS_RPLL_LOCK_MASK 0x00000002U #define CRL_APB_PLL_STATUS_OFFSET 0XFF5E0040 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_RPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_RPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_RPLL_CTRL_BYPASS_MASK -#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_RPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_RPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_RPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_RPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRL_APB_RPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRL_APB_RPLL_FRAC_CFG_DATA_DEFVAL -#undef CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT -#undef CRL_APB_RPLL_FRAC_CFG_DATA_MASK -#define CRL_APB_RPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRL_APB_RPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRL_APB_RPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRL_APB_IOPLL_CFG_RES_DEFVAL #undef CRL_APB_IOPLL_CFG_RES_SHIFT #undef CRL_APB_IOPLL_CFG_RES_MASK -#define CRL_APB_IOPLL_CFG_RES_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_RES_SHIFT 0 -#define CRL_APB_IOPLL_CFG_RES_MASK 0x0000000FU +#define CRL_APB_IOPLL_CFG_RES_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_RES_SHIFT 0 +#define CRL_APB_IOPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRL_APB_IOPLL_CFG_CP_DEFVAL #undef CRL_APB_IOPLL_CFG_CP_SHIFT #undef CRL_APB_IOPLL_CFG_CP_MASK -#define CRL_APB_IOPLL_CFG_CP_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_CP_SHIFT 5 -#define CRL_APB_IOPLL_CFG_CP_MASK 0x000001E0U +#define CRL_APB_IOPLL_CFG_CP_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_CP_SHIFT 5 +#define CRL_APB_IOPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRL_APB_IOPLL_CFG_LFHF_DEFVAL #undef CRL_APB_IOPLL_CFG_LFHF_SHIFT #undef CRL_APB_IOPLL_CFG_LFHF_MASK -#define CRL_APB_IOPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LFHF_SHIFT 10 -#define CRL_APB_IOPLL_CFG_LFHF_MASK 0x00000C00U +#define CRL_APB_IOPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LFHF_SHIFT 10 +#define CRL_APB_IOPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL #undef CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT #undef CRL_APB_IOPLL_CFG_LOCK_CNT_MASK -#define CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRL_APB_IOPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRL_APB_IOPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRL_APB_IOPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL #undef CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT #undef CRL_APB_IOPLL_CFG_LOCK_DLY_MASK -#define CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRL_APB_IOPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRL_APB_IOPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRL_APB_IOPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRL_APB_IOPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL #undef CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT #undef CRL_APB_IOPLL_CTRL_PRE_SRC_MASK -#define CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRL_APB_IOPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRL_APB_IOPLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRL_APB_IOPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL #undef CRL_APB_IOPLL_CTRL_FBDIV_SHIFT #undef CRL_APB_IOPLL_CTRL_FBDIV_MASK -#define CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_FBDIV_SHIFT 8 -#define CRL_APB_IOPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRL_APB_IOPLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_FBDIV_SHIFT 8 +#define CRL_APB_IOPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRL_APB_IOPLL_CTRL_DIV2_DEFVAL #undef CRL_APB_IOPLL_CTRL_DIV2_SHIFT #undef CRL_APB_IOPLL_CTRL_DIV2_MASK -#define CRL_APB_IOPLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_DIV2_SHIFT 16 -#define CRL_APB_IOPLL_CTRL_DIV2_MASK 0x00010000U +#define CRL_APB_IOPLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_DIV2_SHIFT 16 +#define CRL_APB_IOPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_IOPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_IOPLL_CTRL_BYPASS_MASK -#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_IOPLL_CTRL_RESET_DEFVAL #undef CRL_APB_IOPLL_CTRL_RESET_SHIFT #undef CRL_APB_IOPLL_CTRL_RESET_MASK -#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRL_APB_IOPLL_CTRL_RESET_DEFVAL #undef CRL_APB_IOPLL_CTRL_RESET_SHIFT #undef CRL_APB_IOPLL_CTRL_RESET_MASK -#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 -#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U +#define CRL_APB_IOPLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_RESET_SHIFT 0 +#define CRL_APB_IOPLL_CTRL_RESET_MASK 0x00000001U -/*IOPLL is locked*/ +/* +* IOPLL is locked +*/ #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT #undef CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL 0x00000018 -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT 0 -#define CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK 0x00000001U +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_DEFVAL 0x00000018 +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_SHIFT 0 +#define CRL_APB_PLL_STATUS_IOPLL_LOCK_MASK 0x00000001U #define CRL_APB_PLL_STATUS_OFFSET 0XFF5E0040 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL #undef CRL_APB_IOPLL_CTRL_BYPASS_SHIFT #undef CRL_APB_IOPLL_CTRL_BYPASS_MASK -#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 -#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRL_APB_IOPLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRL_APB_IOPLL_CTRL_BYPASS_SHIFT 3 +#define CRL_APB_IOPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_IOPLL_TO_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRL_APB_IOPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_DEFVAL -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT -#undef CRL_APB_IOPLL_FRAC_CFG_DATA_MASK -#define CRL_APB_IOPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRL_APB_IOPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRL_APB_IOPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_APLL_CFG_RES_DEFVAL #undef CRF_APB_APLL_CFG_RES_SHIFT #undef CRF_APB_APLL_CFG_RES_MASK -#define CRF_APB_APLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_RES_SHIFT 0 -#define CRF_APB_APLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_APLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_RES_SHIFT 0 +#define CRF_APB_APLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_APLL_CFG_CP_DEFVAL #undef CRF_APB_APLL_CFG_CP_SHIFT #undef CRF_APB_APLL_CFG_CP_MASK -#define CRF_APB_APLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_CP_SHIFT 5 -#define CRF_APB_APLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_APLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_CP_SHIFT 5 +#define CRF_APB_APLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_APLL_CFG_LFHF_DEFVAL #undef CRF_APB_APLL_CFG_LFHF_SHIFT #undef CRF_APB_APLL_CFG_LFHF_MASK -#define CRF_APB_APLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_APLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_APLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_APLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_APLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_APLL_CFG_LOCK_CNT_MASK -#define CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_APLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_APLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_APLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_APLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_APLL_CFG_LOCK_DLY_MASK -#define CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_APLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_APLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_APLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_APLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_APLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_APLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_APLL_CTRL_PRE_SRC_MASK -#define CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_APLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_APLL_CTRL_PRE_SRC_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_APLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_APLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_APLL_CTRL_FBDIV_SHIFT #undef CRF_APB_APLL_CTRL_FBDIV_MASK -#define CRF_APB_APLL_CTRL_FBDIV_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_APLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_APLL_CTRL_FBDIV_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_APLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_APLL_CTRL_DIV2_DEFVAL #undef CRF_APB_APLL_CTRL_DIV2_SHIFT #undef CRF_APB_APLL_CTRL_DIV2_MASK -#define CRF_APB_APLL_CTRL_DIV2_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_APLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_APLL_CTRL_DIV2_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_APLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_APLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_APLL_CTRL_BYPASS_SHIFT #undef CRF_APB_APLL_CTRL_BYPASS_MASK -#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_APLL_CTRL_RESET_DEFVAL #undef CRF_APB_APLL_CTRL_RESET_SHIFT #undef CRF_APB_APLL_CTRL_RESET_MASK -#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_APLL_CTRL_RESET_DEFVAL #undef CRF_APB_APLL_CTRL_RESET_SHIFT #undef CRF_APB_APLL_CTRL_RESET_MASK -#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_APLL_CTRL_RESET_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_APLL_CTRL_RESET_MASK 0x00000001U -/*APLL is locked*/ +/* +* APLL is locked +*/ #undef CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_APLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT 0 -#define CRF_APB_PLL_STATUS_APLL_LOCK_MASK 0x00000001U +#define CRF_APB_PLL_STATUS_APLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_APLL_LOCK_SHIFT 0 +#define CRF_APB_PLL_STATUS_APLL_LOCK_MASK 0x00000001U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_APLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_APLL_CTRL_BYPASS_SHIFT #undef CRF_APB_APLL_CTRL_BYPASS_MASK -#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 -#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_APLL_CTRL_BYPASS_DEFVAL 0x00012C09 +#define CRF_APB_APLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_APLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_APLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_APLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_APLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_APLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_APLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_APLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_APLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_APLL_FRAC_CFG_DATA_MASK -#define CRF_APB_APLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_APLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_APLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_DPLL_CFG_RES_DEFVAL #undef CRF_APB_DPLL_CFG_RES_SHIFT #undef CRF_APB_DPLL_CFG_RES_MASK -#define CRF_APB_DPLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_RES_SHIFT 0 -#define CRF_APB_DPLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_DPLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_RES_SHIFT 0 +#define CRF_APB_DPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_DPLL_CFG_CP_DEFVAL #undef CRF_APB_DPLL_CFG_CP_SHIFT #undef CRF_APB_DPLL_CFG_CP_MASK -#define CRF_APB_DPLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_CP_SHIFT 5 -#define CRF_APB_DPLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_DPLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_CP_SHIFT 5 +#define CRF_APB_DPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_DPLL_CFG_LFHF_DEFVAL #undef CRF_APB_DPLL_CFG_LFHF_SHIFT #undef CRF_APB_DPLL_CFG_LFHF_MASK -#define CRF_APB_DPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_DPLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_DPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_DPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_DPLL_CFG_LOCK_CNT_MASK -#define CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_DPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_DPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_DPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_DPLL_CFG_LOCK_DLY_MASK -#define CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_DPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_DPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_DPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_DPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_DPLL_CTRL_PRE_SRC_MASK -#define CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_DPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_DPLL_CTRL_PRE_SRC_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_DPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_DPLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_DPLL_CTRL_FBDIV_SHIFT #undef CRF_APB_DPLL_CTRL_FBDIV_MASK -#define CRF_APB_DPLL_CTRL_FBDIV_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_DPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_DPLL_CTRL_FBDIV_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_DPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_DPLL_CTRL_DIV2_DEFVAL #undef CRF_APB_DPLL_CTRL_DIV2_SHIFT #undef CRF_APB_DPLL_CTRL_DIV2_MASK -#define CRF_APB_DPLL_CTRL_DIV2_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_DPLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_DPLL_CTRL_DIV2_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_DPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_DPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_DPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_DPLL_CTRL_BYPASS_MASK -#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_DPLL_CTRL_RESET_DEFVAL #undef CRF_APB_DPLL_CTRL_RESET_SHIFT #undef CRF_APB_DPLL_CTRL_RESET_MASK -#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_DPLL_CTRL_RESET_DEFVAL #undef CRF_APB_DPLL_CTRL_RESET_SHIFT #undef CRF_APB_DPLL_CTRL_RESET_MASK -#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_DPLL_CTRL_RESET_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_DPLL_CTRL_RESET_MASK 0x00000001U -/*DPLL is locked*/ +/* +* DPLL is locked +*/ #undef CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_DPLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT 1 -#define CRF_APB_PLL_STATUS_DPLL_LOCK_MASK 0x00000002U +#define CRF_APB_PLL_STATUS_DPLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_DPLL_LOCK_SHIFT 1 +#define CRF_APB_PLL_STATUS_DPLL_LOCK_MASK 0x00000002U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_DPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_DPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_DPLL_CTRL_BYPASS_MASK -#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 -#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_DPLL_CTRL_BYPASS_DEFVAL 0x00002C09 +#define CRF_APB_DPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_DPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_DPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_DPLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_DPLL_FRAC_CFG_DATA_MASK -#define CRF_APB_DPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_DPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_DPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU - -/*PLL loop filter resistor control*/ +/* +* PLL loop filter resistor control +*/ #undef CRF_APB_VPLL_CFG_RES_DEFVAL #undef CRF_APB_VPLL_CFG_RES_SHIFT #undef CRF_APB_VPLL_CFG_RES_MASK -#define CRF_APB_VPLL_CFG_RES_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_RES_SHIFT 0 -#define CRF_APB_VPLL_CFG_RES_MASK 0x0000000FU +#define CRF_APB_VPLL_CFG_RES_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_RES_SHIFT 0 +#define CRF_APB_VPLL_CFG_RES_MASK 0x0000000FU -/*PLL charge pump control*/ +/* +* PLL charge pump control +*/ #undef CRF_APB_VPLL_CFG_CP_DEFVAL #undef CRF_APB_VPLL_CFG_CP_SHIFT #undef CRF_APB_VPLL_CFG_CP_MASK -#define CRF_APB_VPLL_CFG_CP_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_CP_SHIFT 5 -#define CRF_APB_VPLL_CFG_CP_MASK 0x000001E0U +#define CRF_APB_VPLL_CFG_CP_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_CP_SHIFT 5 +#define CRF_APB_VPLL_CFG_CP_MASK 0x000001E0U -/*PLL loop filter high frequency capacitor control*/ +/* +* PLL loop filter high frequency capacitor control +*/ #undef CRF_APB_VPLL_CFG_LFHF_DEFVAL #undef CRF_APB_VPLL_CFG_LFHF_SHIFT #undef CRF_APB_VPLL_CFG_LFHF_MASK -#define CRF_APB_VPLL_CFG_LFHF_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LFHF_SHIFT 10 -#define CRF_APB_VPLL_CFG_LFHF_MASK 0x00000C00U +#define CRF_APB_VPLL_CFG_LFHF_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LFHF_SHIFT 10 +#define CRF_APB_VPLL_CFG_LFHF_MASK 0x00000C00U -/*Lock circuit counter setting*/ +/* +* Lock circuit counter setting +*/ #undef CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL #undef CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT #undef CRF_APB_VPLL_CFG_LOCK_CNT_MASK -#define CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT 13 -#define CRF_APB_VPLL_CFG_LOCK_CNT_MASK 0x007FE000U +#define CRF_APB_VPLL_CFG_LOCK_CNT_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LOCK_CNT_SHIFT 13 +#define CRF_APB_VPLL_CFG_LOCK_CNT_MASK 0x007FE000U -/*Lock circuit configuration settings for lock windowsize*/ +/* +* Lock circuit configuration settings for lock windowsize +*/ #undef CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL #undef CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT #undef CRF_APB_VPLL_CFG_LOCK_DLY_MASK -#define CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 -#define CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT 25 -#define CRF_APB_VPLL_CFG_LOCK_DLY_MASK 0xFE000000U +#define CRF_APB_VPLL_CFG_LOCK_DLY_DEFVAL 0x00000000 +#define CRF_APB_VPLL_CFG_LOCK_DLY_SHIFT 25 +#define CRF_APB_VPLL_CFG_LOCK_DLY_MASK 0xFE000000U -/*Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk is the source 100 video clk is the source 101 pss_alt_ - ef_clk is the source 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source*/ +/* +* Mux select for determining which clock feeds this PLL. 0XX pss_ref_clk i + * s the source 100 video clk is the source 101 pss_alt_ref_clk is the sour + * ce 110 aux_refclk[X] is the source 111 gt_crx_ref_clk is the source +*/ #undef CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL #undef CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT #undef CRF_APB_VPLL_CTRL_PRE_SRC_MASK -#define CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT 20 -#define CRF_APB_VPLL_CTRL_PRE_SRC_MASK 0x00700000U +#define CRF_APB_VPLL_CTRL_PRE_SRC_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_PRE_SRC_SHIFT 20 +#define CRF_APB_VPLL_CTRL_PRE_SRC_MASK 0x00700000U -/*The integer portion of the feedback divider to the PLL*/ +/* +* The integer portion of the feedback divider to the PLL +*/ #undef CRF_APB_VPLL_CTRL_FBDIV_DEFVAL #undef CRF_APB_VPLL_CTRL_FBDIV_SHIFT #undef CRF_APB_VPLL_CTRL_FBDIV_MASK -#define CRF_APB_VPLL_CTRL_FBDIV_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_FBDIV_SHIFT 8 -#define CRF_APB_VPLL_CTRL_FBDIV_MASK 0x00007F00U +#define CRF_APB_VPLL_CTRL_FBDIV_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_FBDIV_SHIFT 8 +#define CRF_APB_VPLL_CTRL_FBDIV_MASK 0x00007F00U -/*This turns on the divide by 2 that is inside of the PLL. This does not change the VCO frequency, just the output frequency*/ +/* +* This turns on the divide by 2 that is inside of the PLL. This does not c + * hange the VCO frequency, just the output frequency +*/ #undef CRF_APB_VPLL_CTRL_DIV2_DEFVAL #undef CRF_APB_VPLL_CTRL_DIV2_SHIFT #undef CRF_APB_VPLL_CTRL_DIV2_MASK -#define CRF_APB_VPLL_CTRL_DIV2_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_DIV2_SHIFT 16 -#define CRF_APB_VPLL_CTRL_DIV2_MASK 0x00010000U +#define CRF_APB_VPLL_CTRL_DIV2_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_DIV2_SHIFT 16 +#define CRF_APB_VPLL_CTRL_DIV2_MASK 0x00010000U -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_VPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_VPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_VPLL_CTRL_BYPASS_MASK -#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_VPLL_CTRL_RESET_DEFVAL #undef CRF_APB_VPLL_CTRL_RESET_SHIFT #undef CRF_APB_VPLL_CTRL_RESET_MASK -#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U -/*Asserts Reset to the PLL. When asserting reset, the PLL must already be in BYPASS.*/ +/* +* Asserts Reset to the PLL. When asserting reset, the PLL must already be + * in BYPASS. +*/ #undef CRF_APB_VPLL_CTRL_RESET_DEFVAL #undef CRF_APB_VPLL_CTRL_RESET_SHIFT #undef CRF_APB_VPLL_CTRL_RESET_MASK -#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 -#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U +#define CRF_APB_VPLL_CTRL_RESET_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_RESET_SHIFT 0 +#define CRF_APB_VPLL_CTRL_RESET_MASK 0x00000001U -/*VPLL is locked*/ +/* +* VPLL is locked +*/ #undef CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL #undef CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT #undef CRF_APB_PLL_STATUS_VPLL_LOCK_MASK -#define CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL 0x00000038 -#define CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT 2 -#define CRF_APB_PLL_STATUS_VPLL_LOCK_MASK 0x00000004U +#define CRF_APB_PLL_STATUS_VPLL_LOCK_DEFVAL 0x00000038 +#define CRF_APB_PLL_STATUS_VPLL_LOCK_SHIFT 2 +#define CRF_APB_PLL_STATUS_VPLL_LOCK_MASK 0x00000004U #define CRF_APB_PLL_STATUS_OFFSET 0XFD1A0044 -/*Bypasses the PLL clock. The usable clock will be determined from the POST_SRC field. (This signal may only be toggled after 4 - cycles of the old clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* Bypasses the PLL clock. The usable clock will be determined from the POS + * T_SRC field. (This signal may only be toggled after 4 cycles of the old + * clock and 4 cycles of the new clock. This is not usually an issue, but d + * esigners must be aware.) +*/ #undef CRF_APB_VPLL_CTRL_BYPASS_DEFVAL #undef CRF_APB_VPLL_CTRL_BYPASS_SHIFT #undef CRF_APB_VPLL_CTRL_BYPASS_MASK -#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 -#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 -#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U +#define CRF_APB_VPLL_CTRL_BYPASS_DEFVAL 0x00012809 +#define CRF_APB_VPLL_CTRL_BYPASS_SHIFT 3 +#define CRF_APB_VPLL_CTRL_BYPASS_MASK 0x00000008U -/*Divisor value for this clock.*/ +/* +* Divisor value for this clock. +*/ #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U - -/*Fractional SDM bypass control. When 0, PLL is in integer mode and it ignores all fractional data. When 1, PLL is in fractiona - mode and uses DATA of this register for the fractional portion of the feedback divider.*/ -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_DEFVAL -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT -#undef CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_DEFVAL 0x00000000 -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_SHIFT 31 -#define CRF_APB_VPLL_FRAC_CFG_ENABLED_MASK 0x80000000U - -/*Fractional value for the Feedback value.*/ -#undef CRF_APB_VPLL_FRAC_CFG_DATA_DEFVAL -#undef CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT -#undef CRF_APB_VPLL_FRAC_CFG_DATA_MASK -#define CRF_APB_VPLL_FRAC_CFG_DATA_DEFVAL 0x00000000 -#define CRF_APB_VPLL_FRAC_CFG_DATA_SHIFT 0 -#define CRF_APB_VPLL_FRAC_CFG_DATA_MASK 0x0000FFFFU +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_DEFVAL 0x00000400 +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_VPLL_TO_LPD_CTRL_DIVISOR0_MASK 0x00003F00U #undef CRL_APB_GEM3_REF_CTRL_OFFSET #define CRL_APB_GEM3_REF_CTRL_OFFSET 0XFF5E005C +#undef CRL_APB_GEM_TSU_REF_CTRL_OFFSET +#define CRL_APB_GEM_TSU_REF_CTRL_OFFSET 0XFF5E0100 #undef CRL_APB_USB0_BUS_REF_CTRL_OFFSET #define CRL_APB_USB0_BUS_REF_CTRL_OFFSET 0XFF5E0060 #undef CRL_APB_USB3_DUAL_REF_CTRL_OFFSET @@ -810,12 +897,6 @@ #define CRL_APB_ADMA_REF_CTRL_OFFSET 0XFF5E00B8 #undef CRL_APB_PL0_REF_CTRL_OFFSET #define CRL_APB_PL0_REF_CTRL_OFFSET 0XFF5E00C0 -#undef CRL_APB_PL1_REF_CTRL_OFFSET -#define CRL_APB_PL1_REF_CTRL_OFFSET 0XFF5E00C4 -#undef CRL_APB_PL2_REF_CTRL_OFFSET -#define CRL_APB_PL2_REF_CTRL_OFFSET 0XFF5E00C8 -#undef CRL_APB_PL3_REF_CTRL_OFFSET -#define CRL_APB_PL3_REF_CTRL_OFFSET 0XFF5E00CC #undef CRL_APB_AMS_REF_CTRL_OFFSET #define CRL_APB_AMS_REF_CTRL_OFFSET 0XFF5E0108 #undef CRL_APB_DLL_REF_CTRL_OFFSET @@ -834,8 +915,6 @@ #define CRF_APB_DP_STC_REF_CTRL_OFFSET 0XFD1A007C #undef CRF_APB_ACPU_CTRL_OFFSET #define CRF_APB_ACPU_CTRL_OFFSET 0XFD1A0060 -#undef CRF_APB_DBG_TRACE_CTRL_OFFSET -#define CRF_APB_DBG_TRACE_CTRL_OFFSET 0XFD1A0064 #undef CRF_APB_DBG_FPD_CTRL_OFFSET #define CRF_APB_DBG_FPD_CTRL_OFFSET 0XFD1A0068 #undef CRF_APB_DDR_CTRL_OFFSET @@ -861,1195 +940,1418 @@ #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET #define LPD_SLCR_CSUPMU_WDT_CLK_SEL_OFFSET 0XFF410050 -/*Clock active for the RX channel*/ +/* +* Clock active for the RX channel +*/ #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT #undef CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT 26 -#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK 0x04000000U +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_SHIFT 26 +#define CRL_APB_GEM3_REF_CTRL_RX_CLKACT_MASK 0x04000000U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_GEM3_REF_CTRL_CLKACT_MASK -#define CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_GEM3_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_GEM3_REF_CTRL_CLKACT_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_GEM3_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_GEM3_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL 0x00002500 -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_DEFVAL 0x00002500 +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_GEM3_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* 6 bit divider +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR0_MASK 0x00003F00U + +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_GEM_TSU_REF_CTRL_SRCSEL_MASK 0x00000007U + +/* +* 6 bit divider +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_GEM_TSU_REF_CTRL_DIVISOR1_MASK 0x003F0000U + +/* +* Clock active signal. Switch to 0 to disable the clock +*/ +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_DEFVAL +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_SHIFT +#undef CRL_APB_GEM_TSU_REF_CTRL_CLKACT_MASK +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_DEFVAL 0x00051000 +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_GEM_TSU_REF_CTRL_CLKACT_MASK 0x01000000U + +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_USB0_BUS_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_USB0_BUS_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_USB0_BUS_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT 25 -#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK 0x02000000U +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_SHIFT 25 +#define CRL_APB_USB3_DUAL_REF_CTRL_CLKACT_MASK 0x02000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_USB3_DUAL_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL. (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_USB3_DUAL_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_QSPI_REF_CTRL_CLKACT_MASK -#define CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_QSPI_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_QSPI_REF_CTRL_CLKACT_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_QSPI_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_QSPI_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL 0x01000800 -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_DEFVAL 0x01000800 +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_QSPI_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_SDIO1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_SDIO1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = VPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL 0x01000F00 -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_DEFVAL 0x01000F00 +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_SDIO1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO [51] 1: MIO [76]*/ +/* +* MIO pad selection for sdio1_rx_clk (feedback clock from the PAD) 0: MIO + * [51] 1: MIO [76] +*/ #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT #undef IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT 17 -#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK 0x00020000U +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_SHIFT 17 +#define IOU_SLCR_SDIO_CLK_CTRL_SDIO1_RX_SRC_SEL_MASK 0x00020000U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_UART0_REF_CTRL_CLKACT_MASK -#define CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_UART0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_UART0_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_UART0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_UART0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_UART0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_UART0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_UART0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_UART0_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_UART0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_UART0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_UART1_REF_CTRL_CLKACT_MASK -#define CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_UART1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_UART1_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_UART1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_UART1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_UART1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_UART1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_UART1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_UART1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_UART1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_UART1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_I2C0_REF_CTRL_CLKACT_MASK -#define CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_I2C0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_I2C0_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_I2C0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_I2C0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_I2C0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_I2C1_REF_CTRL_CLKACT_MASK -#define CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_I2C1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_I2C1_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_I2C1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_I2C1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_I2C1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_CAN1_REF_CTRL_CLKACT_MASK -#define CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_CAN1_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_CAN1_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_CAN1_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_CAN1_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_CAN1_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Turing this off will shut down the OCM, some parts of the APM, and prevent transactions going from the FPD to the LPD and cou - d lead to system hang*/ +/* +* Turing this off will shut down the OCM, some parts of the APM, and preve + * nt transactions going from the FPD to the LPD and could lead to system h + * ang +*/ #undef CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL #undef CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT #undef CRL_APB_CPU_R5_CTRL_CLKACT_MASK -#define CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_CPU_R5_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_CPU_R5_CTRL_CLKACT_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_CPU_R5_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT #undef CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_CPU_R5_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL #undef CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT #undef CRL_APB_CPU_R5_CTRL_SRCSEL_MASK -#define CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL 0x03000600 -#define CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_CPU_R5_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_CPU_R5_CTRL_SRCSEL_DEFVAL 0x03000600 +#define CRL_APB_CPU_R5_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_CPU_R5_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_IOU_SWITCH_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_IOU_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT #undef CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_IOU_SWITCH_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_PCAP_CTRL_CLKACT_DEFVAL #undef CRL_APB_PCAP_CTRL_CLKACT_SHIFT #undef CRL_APB_PCAP_CTRL_CLKACT_MASK -#define CRL_APB_PCAP_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PCAP_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_PCAP_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_PCAP_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT #undef CRL_APB_PCAP_CTRL_DIVISOR0_MASK -#define CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PCAP_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_PCAP_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_PCAP_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL #undef CRL_APB_PCAP_CTRL_SRCSEL_SHIFT #undef CRL_APB_PCAP_CTRL_SRCSEL_MASK -#define CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRL_APB_PCAP_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PCAP_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_PCAP_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRL_APB_PCAP_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_PCAP_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_LPD_SWITCH_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_LPD_SWITCH_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT #undef CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_LPD_SWITCH_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_LPD_LSBUS_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_LPD_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT #undef CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_LPD_LSBUS_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT #undef CRL_APB_DBG_LPD_CTRL_CLKACT_MASK -#define CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_DBG_LPD_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_DBG_LPD_CTRL_CLKACT_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_DBG_LPD_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT #undef CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_DBG_LPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT #undef CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL 0x01002000 -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_DEFVAL 0x01002000 +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_DBG_LPD_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_ADMA_REF_CTRL_CLKACT_MASK -#define CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_ADMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_ADMA_REF_CTRL_CLKACT_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_ADMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_ADMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL 0x00002000 -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_DEFVAL 0x00002000 +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_ADMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_PL0_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL0_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_PL0_REF_CTRL_CLKACT_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_PL0_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_PL0_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_PL0_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_PL0_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL0_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_PL0_REF_CTRL_SRCSEL_DEFVAL 0x00052000 +#define CRL_APB_PL0_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_PL0_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL1_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL1_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL1_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL1_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL1_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL1_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL1_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL1_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL1_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL1_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL2_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL2_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL2_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL2_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL2_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL2_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL2_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL2_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL2_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL2_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRL_APB_PL3_REF_CTRL_CLKACT_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT -#undef CRL_APB_PL3_REF_CTRL_CLKACT_MASK -#define CRL_APB_PL3_REF_CTRL_CLKACT_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_PL3_REF_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT -#undef CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_PL3_REF_CTRL_DIVISOR1_MASK 0x003F0000U - -/*6 bit divider*/ -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT -#undef CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_PL3_REF_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_DEFVAL -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT -#undef CRL_APB_PL3_REF_CTRL_SRCSEL_MASK -#define CRL_APB_PL3_REF_CTRL_SRCSEL_DEFVAL 0x00052000 -#define CRL_APB_PL3_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_PL3_REF_CTRL_SRCSEL_MASK 0x00000007U - -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT #undef CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRL_APB_AMS_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_AMS_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = RPLL; 010 = IOPLL; 011 = DPLL; (This signal may only be toggled af + * ter 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_AMS_REF_CTRL_SRCSEL_MASK -#define CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_AMS_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_AMS_REF_CTRL_SRCSEL_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_AMS_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_AMS_REF_CTRL_CLKACT_MASK -#define CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL 0x01001800 -#define CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_AMS_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_AMS_REF_CTRL_CLKACT_DEFVAL 0x01001800 +#define CRL_APB_AMS_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_AMS_REF_CTRL_CLKACT_MASK 0x01000000U -/*000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL; 001 = RPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an + * issue, but designers must be aware.) +*/ #undef CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_DLL_REF_CTRL_SRCSEL_MASK -#define CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL 0x00000000 -#define CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_DLL_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_DLL_REF_CTRL_SRCSEL_DEFVAL 0x00000000 +#define CRL_APB_DLL_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_DLL_REF_CTRL_SRCSEL_MASK 0x00000007U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRL_APB_TIMESTAMP_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and - cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 1XX = pss_ref_clk; 000 = IOPLL; 010 = RPLL; 011 = DPLL; (This signal may + * only be toggled after 4 cycles of the old clock and 4 cycles of the new + * clock. This is not usually an issue, but designers must be aware.) +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT 0 -#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_SHIFT 0 +#define CRL_APB_TIMESTAMP_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT #undef CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL 0x00001800 -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT 24 -#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_DEFVAL 0x00001800 +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_SHIFT 24 +#define CRL_APB_TIMESTAMP_REF_CTRL_CLKACT_MASK 0x01000000U -/*000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = APLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_SATA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_SATA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_SATA_REF_CTRL_SRCSEL_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_SATA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_SATA_REF_CTRL_CLKACT_MASK -#define CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_SATA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_SATA_REF_CTRL_CLKACT_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_SATA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL 0x01001600 -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_DEFVAL 0x01001600 +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_SATA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cyc - es of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = RPLL_TO_FPD; 011 = DPLL; (This signal may only + * be toggled after 4 cycles of the old clock and 4 cycles of the new cloc + * k. This is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_PCIE_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_PCIE_REF_CTRL_CLKACT_MASK -#define CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_PCIE_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_PCIE_REF_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_PCIE_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_PCIE_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_VIDEO_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_VIDEO_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL 0x01002300 -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_DEFVAL 0x01002300 +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_VIDEO_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_AUDIO_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (This signal may only be toggled after 4 cycles of the - ld clock and 4 cycles of the new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD - might be using extra mux; (T + * his signal may only be toggled after 4 cycles of the old clock and 4 cyc + * les of the new clock. This is not usually an issue, but designers must b + * e aware.) +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_AUDIO_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL 0x01032300 -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_DEFVAL 0x01032300 +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_AUDIO_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT 16 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK 0x003F0000U +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_SHIFT 16 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR1_MASK 0x003F0000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DP_STC_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of t - e new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = VPLL; 010 = DPLL; 011 = RPLL_TO_FPD; (This signal may only be togg + * led after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DP_STC_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL 0x01203200 -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_DEFVAL 0x01203200 +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DP_STC_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT #undef CRF_APB_ACPU_CTRL_DIVISOR0_MASK -#define CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_ACPU_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_ACPU_CTRL_DIVISOR0_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_ACPU_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = DPLL; 011 = VPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL #undef CRF_APB_ACPU_CTRL_SRCSEL_SHIFT #undef CRF_APB_ACPU_CTRL_SRCSEL_MASK -#define CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_ACPU_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_ACPU_CTRL_SRCSEL_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_ACPU_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock. For the half speed APU Clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock. For the half spee + * d APU Clock +*/ #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT #undef CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT 25 -#define CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK 0x02000000U +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_SHIFT 25 +#define CRF_APB_ACPU_CTRL_CLKACT_HALF_MASK 0x02000000U -/*Clock active signal. Switch to 0 to disable the clock. For the full speed ACPUX Clock. This will shut off the high speed cloc - to the entire APU*/ +/* +* Clock active signal. Switch to 0 to disable the clock. For the full spee + * d ACPUX Clock. This will shut off the high speed clock to the entire APU +*/ #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT #undef CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL 0x03000400 -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT 24 -#define CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK 0x01000000U +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_DEFVAL 0x03000400 +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_SHIFT 24 +#define CRF_APB_ACPU_CTRL_CLKACT_FULL_MASK 0x01000000U -/*6 bit divider*/ -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_TRACE_CTRL_DIVISOR0_MASK 0x00003F00U - -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_TRACE_CTRL_SRCSEL_MASK 0x00000007U - -/*Clock active signal. Switch to 0 to disable the clock*/ -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_DEFVAL -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT -#undef CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_DEFVAL 0x00002500 -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DBG_TRACE_CTRL_CLKACT_MASK 0x01000000U - -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DBG_FPD_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT #undef CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DBG_FPD_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL #undef CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT #undef CRF_APB_DBG_FPD_CTRL_CLKACT_MASK -#define CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL 0x01002500 -#define CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DBG_FPD_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DBG_FPD_CTRL_CLKACT_DEFVAL 0x01002500 +#define CRF_APB_DBG_FPD_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DBG_FPD_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DDR_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DDR_CTRL_DIVISOR0_MASK -#define CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_DDR_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DDR_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DDR_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_DDR_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DDR_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new clock. This - s not usually an issue, but designers must be aware.)*/ +/* +* 000 = DPLL; 001 = VPLL; (This signal may only be toggled after 4 cycles + * of the old clock and 4 cycles of the new clock. This is not usually an i + * ssue, but designers must be aware.) +*/ #undef CRF_APB_DDR_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DDR_CTRL_SRCSEL_SHIFT #undef CRF_APB_DDR_CTRL_SRCSEL_MASK -#define CRF_APB_DDR_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_DDR_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DDR_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DDR_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_DDR_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DDR_CTRL_SRCSEL_MASK 0x00000007U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_GPU_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = VPLL; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_GPU_REF_CTRL_SRCSEL_MASK -#define CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_GPU_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_GPU_REF_CTRL_SRCSEL_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_GPU_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock, which will stop clock for GPU (and both Pixel Processors).*/ +/* +* Clock active signal. Switch to 0 to disable the clock, which will stop c + * lock for GPU (and both Pixel Processors). +*/ #undef CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_GPU_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_GPU_REF_CTRL_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_GPU_REF_CTRL_CLKACT_MASK 0x01000000U -/*Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor*/ +/* +* Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor +*/ #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT 25 -#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK 0x02000000U +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_SHIFT 25 +#define CRF_APB_GPU_REF_CTRL_PP0_CLKACT_MASK 0x02000000U -/*Clock active signal for Pixel Processor. Switch to 0 to disable the clock only to this Pixel Processor*/ +/* +* Clock active signal for Pixel Processor. Switch to 0 to disable the cloc + * k only to this Pixel Processor +*/ #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT #undef CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL 0x00001500 -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT 26 -#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK 0x04000000U +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_DEFVAL 0x00001500 +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_SHIFT 26 +#define CRF_APB_GPU_REF_CTRL_PP1_CLKACT_MASK 0x04000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_GDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_GDMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_GDMA_REF_CTRL_CLKACT_MASK -#define CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_GDMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_GDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRF_APB_GDMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_GDMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DPDMA_REF_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DPDMA_REF_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT #undef CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_DEFVAL 0x01000500 +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_DPDMA_REF_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_TOPSW_MAIN_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of the new - lock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = VPLL; 011 = DPLL; (This signal may only be toggled aft + * er 4 cycles of the old clock and 4 cycles of the new clock. This is not + * usually an issue, but designers must be aware.) +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_TOPSW_MAIN_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT #undef CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL 0x01000400 -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_DEFVAL 0x01000400 +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_TOPSW_MAIN_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_TOPSW_LSBUS_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = APLL; 010 = IOPLL_TO_FPD; 011 = DPLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_TOPSW_LSBUS_CTRL_SRCSEL_MASK 0x00000007U -/*Clock active signal. Switch to 0 to disable the clock*/ +/* +* Clock active signal. Switch to 0 to disable the clock +*/ #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT #undef CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL 0x01000800 -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT 24 -#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK 0x01000000U +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_DEFVAL 0x01000800 +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_SHIFT 24 +#define CRF_APB_TOPSW_LSBUS_CTRL_CLKACT_MASK 0x01000000U -/*6 bit divider*/ +/* +* 6 bit divider +*/ #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT #undef CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL 0x00000A00 -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT 8 -#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK 0x00003F00U +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_DEFVAL 0x00000A00 +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_SHIFT 8 +#define CRF_APB_DBG_TSTMP_CTRL_DIVISOR0_MASK 0x00003F00U -/*000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be toggled after 4 cycles of the old clock and 4 cycles of - he new clock. This is not usually an issue, but designers must be aware.)*/ +/* +* 000 = IOPLL_TO_FPD; 010 = DPLL; 011 = APLL; (This signal may only be tog + * gled after 4 cycles of the old clock and 4 cycles of the new clock. This + * is not usually an issue, but designers must be aware.) +*/ #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT #undef CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL 0x00000A00 -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT 0 -#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK 0x00000007U +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_DEFVAL 0x00000A00 +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_SHIFT 0 +#define CRF_APB_DBG_TSTMP_CTRL_SRCSEL_MASK 0x00000007U -/*00" = Select the APB switch clock for the APB interface of TTC0'01" = Select the PLL ref clock for the APB interface of TTC0' - 0" = Select the R5 clock for the APB interface of TTC0*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC0'01" = Se + * lect the PLL ref clock for the APB interface of TTC0'10" = Select the R5 + * clock for the APB interface of TTC0 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT 0 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK 0x00000003U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_SHIFT 0 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC0_SEL_MASK 0x00000003U -/*00" = Select the APB switch clock for the APB interface of TTC1'01" = Select the PLL ref clock for the APB interface of TTC1' - 0" = Select the R5 clock for the APB interface of TTC1*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC1'01" = Se + * lect the PLL ref clock for the APB interface of TTC1'10" = Select the R5 + * clock for the APB interface of TTC1 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT 2 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK 0x0000000CU +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_SHIFT 2 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC1_SEL_MASK 0x0000000CU -/*00" = Select the APB switch clock for the APB interface of TTC2'01" = Select the PLL ref clock for the APB interface of TTC2' - 0" = Select the R5 clock for the APB interface of TTC2*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC2'01" = Se + * lect the PLL ref clock for the APB interface of TTC2'10" = Select the R5 + * clock for the APB interface of TTC2 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT 4 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK 0x00000030U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_SHIFT 4 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC2_SEL_MASK 0x00000030U -/*00" = Select the APB switch clock for the APB interface of TTC3'01" = Select the PLL ref clock for the APB interface of TTC3' - 0" = Select the R5 clock for the APB interface of TTC3*/ +/* +* 00" = Select the APB switch clock for the APB interface of TTC3'01" = Se + * lect the PLL ref clock for the APB interface of TTC3'10" = Select the R5 + * clock for the APB interface of TTC3 +*/ #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT #undef IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT 6 -#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK 0x000000C0U +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_SHIFT 6 +#define IOU_SLCR_IOU_TTC_APB_CLK_TTC3_SEL_MASK 0x000000C0U -/*System watchdog timer clock source selection: 0: Internal APB clock 1: External (PL clock via EMIO or Pinout clock via MIO)*/ +/* +* System watchdog timer clock source selection: 0: Internal APB clock 1: E + * xternal (PL clock via EMIO or Pinout clock via MIO) +*/ #undef FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL #undef FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT #undef FPD_SLCR_WDT_CLK_SEL_SELECT_MASK -#define FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 -#define FPD_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define FPD_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define FPD_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 +#define FPD_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U -/*System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock from PL via EMIO, or from pinout - ia MIO*/ +/* +* System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock from PL via EMIO, or from pinout via MIO +*/ #undef IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL #undef IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT #undef IOU_SLCR_WDT_CLK_SEL_SELECT_MASK -#define IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 -#define IOU_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define IOU_SLCR_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define IOU_SLCR_WDT_CLK_SEL_SELECT_SHIFT 0 +#define IOU_SLCR_WDT_CLK_SEL_SELECT_MASK 0x00000001U -/*System watchdog timer clock source selection: 0: internal clock APB clock 1: external clock pss_ref_clk*/ +/* +* System watchdog timer clock source selection: 0: internal clock APB cloc + * k 1: external clock pss_ref_clk +*/ #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT #undef LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT 0 -#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK 0x00000001U +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_DEFVAL 0x00000000 +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_SHIFT 0 +#define LPD_SLCR_CSUPMU_WDT_CLK_SEL_SELECT_MASK 0x00000001U #undef CRF_APB_RST_DDR_SS_OFFSET #define CRF_APB_RST_DDR_SS_OFFSET 0XFD1A0108 #undef DDRC_MSTR_OFFSET @@ -2066,6 +2368,8 @@ #define DDRC_PWRTMG_OFFSET 0XFD070034 #undef DDRC_RFSHCTL0_OFFSET #define DDRC_RFSHCTL0_OFFSET 0XFD070050 +#undef DDRC_RFSHCTL1_OFFSET +#define DDRC_RFSHCTL1_OFFSET 0XFD070054 #undef DDRC_RFSHCTL3_OFFSET #define DDRC_RFSHCTL3_OFFSET 0XFD070060 #undef DDRC_RFSHTMG_OFFSET @@ -2134,6 +2438,8 @@ #define DDRC_DFILPCFG0_OFFSET 0XFD070198 #undef DDRC_DFILPCFG1_OFFSET #define DDRC_DFILPCFG1_OFFSET 0XFD07019C +#undef DDRC_DFIUPD0_OFFSET +#define DDRC_DFIUPD0_OFFSET 0XFD0701A0 #undef DDRC_DFIUPD1_OFFSET #define DDRC_DFIUPD1_OFFSET 0XFD0701A4 #undef DDRC_DFIMISC_OFFSET @@ -2176,6 +2482,16 @@ #define DDRC_PERFLPR1_OFFSET 0XFD070264 #undef DDRC_PERFWR1_OFFSET #define DDRC_PERFWR1_OFFSET 0XFD07026C +#undef DDRC_DQMAP0_OFFSET +#define DDRC_DQMAP0_OFFSET 0XFD070280 +#undef DDRC_DQMAP1_OFFSET +#define DDRC_DQMAP1_OFFSET 0XFD070284 +#undef DDRC_DQMAP2_OFFSET +#define DDRC_DQMAP2_OFFSET 0XFD070288 +#undef DDRC_DQMAP3_OFFSET +#define DDRC_DQMAP3_OFFSET 0XFD07028C +#undef DDRC_DQMAP4_OFFSET +#define DDRC_DQMAP4_OFFSET 0XFD070290 #undef DDRC_DQMAP5_OFFSET #define DDRC_DQMAP5_OFFSET 0XFD070294 #undef DDRC_DBG0_OFFSET @@ -2282,8 +2598,12 @@ #define DDR_PHY_PTR0_OFFSET 0XFD080040 #undef DDR_PHY_PTR1_OFFSET #define DDR_PHY_PTR1_OFFSET 0XFD080044 +#undef DDR_PHY_PLLCR0_OFFSET +#define DDR_PHY_PLLCR0_OFFSET 0XFD080068 #undef DDR_PHY_DSGCR_OFFSET #define DDR_PHY_DSGCR_OFFSET 0XFD080090 +#undef DDR_PHY_GPR0_OFFSET +#define DDR_PHY_GPR0_OFFSET 0XFD0800C0 #undef DDR_PHY_DCR_OFFSET #define DDR_PHY_DCR_OFFSET 0XFD080100 #undef DDR_PHY_DTPR0_OFFSET @@ -2338,6 +2658,8 @@ #define DDR_PHY_DTCR1_OFFSET 0XFD080204 #undef DDR_PHY_CATR0_OFFSET #define DDR_PHY_CATR0_OFFSET 0XFD080240 +#undef DDR_PHY_DQSDR0_OFFSET +#define DDR_PHY_DQSDR0_OFFSET 0XFD080250 #undef DDR_PHY_BISTLSR_OFFSET #define DDR_PHY_BISTLSR_OFFSET 0XFD080414 #undef DDR_PHY_RIOCR5_OFFSET @@ -2386,10 +2708,6 @@ #define DDR_PHY_DX0GCR5_OFFSET 0XFD080714 #undef DDR_PHY_DX0GCR6_OFFSET #define DDR_PHY_DX0GCR6_OFFSET 0XFD080718 -#undef DDR_PHY_DX0LCDLR2_OFFSET -#define DDR_PHY_DX0LCDLR2_OFFSET 0XFD080788 -#undef DDR_PHY_DX0GTR0_OFFSET -#define DDR_PHY_DX0GTR0_OFFSET 0XFD0807C0 #undef DDR_PHY_DX1GCR0_OFFSET #define DDR_PHY_DX1GCR0_OFFSET 0XFD080800 #undef DDR_PHY_DX1GCR4_OFFSET @@ -2398,10 +2716,6 @@ #define DDR_PHY_DX1GCR5_OFFSET 0XFD080814 #undef DDR_PHY_DX1GCR6_OFFSET #define DDR_PHY_DX1GCR6_OFFSET 0XFD080818 -#undef DDR_PHY_DX1LCDLR2_OFFSET -#define DDR_PHY_DX1LCDLR2_OFFSET 0XFD080888 -#undef DDR_PHY_DX1GTR0_OFFSET -#define DDR_PHY_DX1GTR0_OFFSET 0XFD0808C0 #undef DDR_PHY_DX2GCR0_OFFSET #define DDR_PHY_DX2GCR0_OFFSET 0XFD080900 #undef DDR_PHY_DX2GCR1_OFFSET @@ -2412,10 +2726,6 @@ #define DDR_PHY_DX2GCR5_OFFSET 0XFD080914 #undef DDR_PHY_DX2GCR6_OFFSET #define DDR_PHY_DX2GCR6_OFFSET 0XFD080918 -#undef DDR_PHY_DX2LCDLR2_OFFSET -#define DDR_PHY_DX2LCDLR2_OFFSET 0XFD080988 -#undef DDR_PHY_DX2GTR0_OFFSET -#define DDR_PHY_DX2GTR0_OFFSET 0XFD0809C0 #undef DDR_PHY_DX3GCR0_OFFSET #define DDR_PHY_DX3GCR0_OFFSET 0XFD080A00 #undef DDR_PHY_DX3GCR1_OFFSET @@ -2426,10 +2736,6 @@ #define DDR_PHY_DX3GCR5_OFFSET 0XFD080A14 #undef DDR_PHY_DX3GCR6_OFFSET #define DDR_PHY_DX3GCR6_OFFSET 0XFD080A18 -#undef DDR_PHY_DX3LCDLR2_OFFSET -#define DDR_PHY_DX3LCDLR2_OFFSET 0XFD080A88 -#undef DDR_PHY_DX3GTR0_OFFSET -#define DDR_PHY_DX3GTR0_OFFSET 0XFD080AC0 #undef DDR_PHY_DX4GCR0_OFFSET #define DDR_PHY_DX4GCR0_OFFSET 0XFD080B00 #undef DDR_PHY_DX4GCR1_OFFSET @@ -2440,10 +2746,6 @@ #define DDR_PHY_DX4GCR5_OFFSET 0XFD080B14 #undef DDR_PHY_DX4GCR6_OFFSET #define DDR_PHY_DX4GCR6_OFFSET 0XFD080B18 -#undef DDR_PHY_DX4LCDLR2_OFFSET -#define DDR_PHY_DX4LCDLR2_OFFSET 0XFD080B88 -#undef DDR_PHY_DX4GTR0_OFFSET -#define DDR_PHY_DX4GTR0_OFFSET 0XFD080BC0 #undef DDR_PHY_DX5GCR0_OFFSET #define DDR_PHY_DX5GCR0_OFFSET 0XFD080C00 #undef DDR_PHY_DX5GCR1_OFFSET @@ -2454,10 +2756,6 @@ #define DDR_PHY_DX5GCR5_OFFSET 0XFD080C14 #undef DDR_PHY_DX5GCR6_OFFSET #define DDR_PHY_DX5GCR6_OFFSET 0XFD080C18 -#undef DDR_PHY_DX5LCDLR2_OFFSET -#define DDR_PHY_DX5LCDLR2_OFFSET 0XFD080C88 -#undef DDR_PHY_DX5GTR0_OFFSET -#define DDR_PHY_DX5GTR0_OFFSET 0XFD080CC0 #undef DDR_PHY_DX6GCR0_OFFSET #define DDR_PHY_DX6GCR0_OFFSET 0XFD080D00 #undef DDR_PHY_DX6GCR1_OFFSET @@ -2468,10 +2766,6 @@ #define DDR_PHY_DX6GCR5_OFFSET 0XFD080D14 #undef DDR_PHY_DX6GCR6_OFFSET #define DDR_PHY_DX6GCR6_OFFSET 0XFD080D18 -#undef DDR_PHY_DX6LCDLR2_OFFSET -#define DDR_PHY_DX6LCDLR2_OFFSET 0XFD080D88 -#undef DDR_PHY_DX6GTR0_OFFSET -#define DDR_PHY_DX6GTR0_OFFSET 0XFD080DC0 #undef DDR_PHY_DX7GCR0_OFFSET #define DDR_PHY_DX7GCR0_OFFSET 0XFD080E00 #undef DDR_PHY_DX7GCR1_OFFSET @@ -2482,10 +2776,6 @@ #define DDR_PHY_DX7GCR5_OFFSET 0XFD080E14 #undef DDR_PHY_DX7GCR6_OFFSET #define DDR_PHY_DX7GCR6_OFFSET 0XFD080E18 -#undef DDR_PHY_DX7LCDLR2_OFFSET -#define DDR_PHY_DX7LCDLR2_OFFSET 0XFD080E88 -#undef DDR_PHY_DX7GTR0_OFFSET -#define DDR_PHY_DX7GTR0_OFFSET 0XFD080EC0 #undef DDR_PHY_DX8GCR0_OFFSET #define DDR_PHY_DX8GCR0_OFFSET 0XFD080F00 #undef DDR_PHY_DX8GCR1_OFFSET @@ -2496,12 +2786,10 @@ #define DDR_PHY_DX8GCR5_OFFSET 0XFD080F14 #undef DDR_PHY_DX8GCR6_OFFSET #define DDR_PHY_DX8GCR6_OFFSET 0XFD080F18 -#undef DDR_PHY_DX8LCDLR2_OFFSET -#define DDR_PHY_DX8LCDLR2_OFFSET 0XFD080F88 -#undef DDR_PHY_DX8GTR0_OFFSET -#define DDR_PHY_DX8GTR0_OFFSET 0XFD080FC0 #undef DDR_PHY_DX8SL0OSC_OFFSET #define DDR_PHY_DX8SL0OSC_OFFSET 0XFD081400 +#undef DDR_PHY_DX8SL0PLLCR0_OFFSET +#define DDR_PHY_DX8SL0PLLCR0_OFFSET 0XFD081404 #undef DDR_PHY_DX8SL0DQSCTL_OFFSET #define DDR_PHY_DX8SL0DQSCTL_OFFSET 0XFD08141C #undef DDR_PHY_DX8SL0DXCTL2_OFFSET @@ -2510,6 +2798,8 @@ #define DDR_PHY_DX8SL0IOCR_OFFSET 0XFD081430 #undef DDR_PHY_DX8SL1OSC_OFFSET #define DDR_PHY_DX8SL1OSC_OFFSET 0XFD081440 +#undef DDR_PHY_DX8SL1PLLCR0_OFFSET +#define DDR_PHY_DX8SL1PLLCR0_OFFSET 0XFD081444 #undef DDR_PHY_DX8SL1DQSCTL_OFFSET #define DDR_PHY_DX8SL1DQSCTL_OFFSET 0XFD08145C #undef DDR_PHY_DX8SL1DXCTL2_OFFSET @@ -2518,6 +2808,8 @@ #define DDR_PHY_DX8SL1IOCR_OFFSET 0XFD081470 #undef DDR_PHY_DX8SL2OSC_OFFSET #define DDR_PHY_DX8SL2OSC_OFFSET 0XFD081480 +#undef DDR_PHY_DX8SL2PLLCR0_OFFSET +#define DDR_PHY_DX8SL2PLLCR0_OFFSET 0XFD081484 #undef DDR_PHY_DX8SL2DQSCTL_OFFSET #define DDR_PHY_DX8SL2DQSCTL_OFFSET 0XFD08149C #undef DDR_PHY_DX8SL2DXCTL2_OFFSET @@ -2526,6 +2818,8 @@ #define DDR_PHY_DX8SL2IOCR_OFFSET 0XFD0814B0 #undef DDR_PHY_DX8SL3OSC_OFFSET #define DDR_PHY_DX8SL3OSC_OFFSET 0XFD0814C0 +#undef DDR_PHY_DX8SL3PLLCR0_OFFSET +#define DDR_PHY_DX8SL3PLLCR0_OFFSET 0XFD0814C4 #undef DDR_PHY_DX8SL3DQSCTL_OFFSET #define DDR_PHY_DX8SL3DQSCTL_OFFSET 0XFD0814DC #undef DDR_PHY_DX8SL3DXCTL2_OFFSET @@ -2534,14391 +2828,18570 @@ #define DDR_PHY_DX8SL3IOCR_OFFSET 0XFD0814F0 #undef DDR_PHY_DX8SL4OSC_OFFSET #define DDR_PHY_DX8SL4OSC_OFFSET 0XFD081500 +#undef DDR_PHY_DX8SL4PLLCR0_OFFSET +#define DDR_PHY_DX8SL4PLLCR0_OFFSET 0XFD081504 #undef DDR_PHY_DX8SL4DQSCTL_OFFSET #define DDR_PHY_DX8SL4DQSCTL_OFFSET 0XFD08151C #undef DDR_PHY_DX8SL4DXCTL2_OFFSET #define DDR_PHY_DX8SL4DXCTL2_OFFSET 0XFD08152C #undef DDR_PHY_DX8SL4IOCR_OFFSET #define DDR_PHY_DX8SL4IOCR_OFFSET 0XFD081530 +#undef DDR_PHY_DX8SLBPLLCR0_OFFSET +#define DDR_PHY_DX8SLBPLLCR0_OFFSET 0XFD0817C4 #undef DDR_PHY_DX8SLBDQSCTL_OFFSET #define DDR_PHY_DX8SLBDQSCTL_OFFSET 0XFD0817DC -#undef DDR_PHY_PIR_OFFSET -#define DDR_PHY_PIR_OFFSET 0XFD080004 -/*DDR block level reset inside of the DDR Sub System*/ +/* +* DDR block level reset inside of the DDR Sub System +*/ #undef CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL #undef CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT #undef CRF_APB_RST_DDR_SS_DDR_RESET_MASK -#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F -#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 -#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U +#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 +#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U -/*Indicates the configuration of the device used in the system. - 00 - x4 device - 01 - x8 device - 10 - x16 device - 11 - x32 - evice*/ +/* +* Indicates the configuration of the device used in the system. - 00 - x4 + * device - 01 - x8 device - 10 - x16 device - 11 - x32 device +*/ #undef DDRC_MSTR_DEVICE_CONFIG_DEFVAL #undef DDRC_MSTR_DEVICE_CONFIG_SHIFT #undef DDRC_MSTR_DEVICE_CONFIG_MASK -#define DDRC_MSTR_DEVICE_CONFIG_DEFVAL 0x03040001 -#define DDRC_MSTR_DEVICE_CONFIG_SHIFT 30 -#define DDRC_MSTR_DEVICE_CONFIG_MASK 0xC0000000U +#define DDRC_MSTR_DEVICE_CONFIG_DEFVAL 0x03040001 +#define DDRC_MSTR_DEVICE_CONFIG_SHIFT 30 +#define DDRC_MSTR_DEVICE_CONFIG_MASK 0xC0000000U -/*Choose which registers are used. - 0 - Original registers - 1 - Shadow registers*/ +/* +* Choose which registers are used. - 0 - Original registers - 1 - Shadow r + * egisters +*/ #undef DDRC_MSTR_FREQUENCY_MODE_DEFVAL #undef DDRC_MSTR_FREQUENCY_MODE_SHIFT #undef DDRC_MSTR_FREQUENCY_MODE_MASK -#define DDRC_MSTR_FREQUENCY_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_FREQUENCY_MODE_SHIFT 29 -#define DDRC_MSTR_FREQUENCY_MODE_MASK 0x20000000U +#define DDRC_MSTR_FREQUENCY_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_FREQUENCY_MODE_SHIFT 29 +#define DDRC_MSTR_FREQUENCY_MODE_MASK 0x20000000U -/*Only present for multi-rank configurations. Each bit represents one rank. For two-rank configurations, only bits[25:24] are p - esent. - 1 - populated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks following combinations are legal: - 01 - - ne rank - 11 - Two ranks - Others - Reserved. For 4 ranks following combinations are legal: - 0001 - One rank - 0011 - Two ra - ks - 1111 - Four ranks*/ +/* +* Only present for multi-rank configurations. Each bit represents one rank + * . For two-rank configurations, only bits[25:24] are present. - 1 - popul + * ated - 0 - unpopulated LSB is the lowest rank number. For 2 ranks follow + * ing combinations are legal: - 01 - One rank - 11 - Two ranks - Others - + * Reserved. For 4 ranks following combinations are legal: - 0001 - One ran + * k - 0011 - Two ranks - 1111 - Four ranks +*/ #undef DDRC_MSTR_ACTIVE_RANKS_DEFVAL #undef DDRC_MSTR_ACTIVE_RANKS_SHIFT #undef DDRC_MSTR_ACTIVE_RANKS_MASK -#define DDRC_MSTR_ACTIVE_RANKS_DEFVAL 0x03040001 -#define DDRC_MSTR_ACTIVE_RANKS_SHIFT 24 -#define DDRC_MSTR_ACTIVE_RANKS_MASK 0x03000000U +#define DDRC_MSTR_ACTIVE_RANKS_DEFVAL 0x03040001 +#define DDRC_MSTR_ACTIVE_RANKS_SHIFT 24 +#define DDRC_MSTR_ACTIVE_RANKS_MASK 0x03000000U -/*SDRAM burst length used: - 0001 - Burst length of 2 (only supported for mDDR) - 0010 - Burst length of 4 - 0100 - Burst lengt - of 8 - 1000 - Burst length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other values are reserved. This controls - he burst size used to access the SDRAM. This must match the burst length mode register setting in the SDRAM. (For BC4/8 on-th - -fly mode of DDR3 and DDR4, set this field to 0x0100) Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGT - is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1*/ +/* +* SDRAM burst length used: - 0001 - Burst length of 2 (only supported for + * mDDR) - 0010 - Burst length of 4 - 0100 - Burst length of 8 - 1000 - Bur + * st length of 16 (only supported for mDDR, LPDDR2, and LPDDR4) All other + * values are reserved. This controls the burst size used to access the SDR + * AM. This must match the burst length mode register setting in the SDRAM. + * (For BC4/8 on-the-fly mode of DDR3 and DDR4, set this field to 0x0100) + * Burst length of 2 is not supported with AXI ports when MEMC_BURST_LENGTH + * is 8. Burst length of 2 is only supported with MEMC_FREQ_RATIO = 1 +*/ #undef DDRC_MSTR_BURST_RDWR_DEFVAL #undef DDRC_MSTR_BURST_RDWR_SHIFT #undef DDRC_MSTR_BURST_RDWR_MASK -#define DDRC_MSTR_BURST_RDWR_DEFVAL 0x03040001 -#define DDRC_MSTR_BURST_RDWR_SHIFT 16 -#define DDRC_MSTR_BURST_RDWR_MASK 0x000F0000U +#define DDRC_MSTR_BURST_RDWR_DEFVAL 0x03040001 +#define DDRC_MSTR_BURST_RDWR_SHIFT 16 +#define DDRC_MSTR_BURST_RDWR_MASK 0x000F0000U -/*Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low frequency operation. Set to 0 to put uMCTL2 and DRAM - n DLL-on mode for normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d - l_off_mode is not supported, and this bit must be set to '0'.*/ +/* +* Set to 1 when the uMCTL2 and DRAM has to be put in DLL-off mode for low + * frequency operation. Set to 0 to put uMCTL2 and DRAM in DLL-on mode for + * normal frequency operation. If DDR4 CRC/parity retry is enabled (CRCPARC + * TL1.crc_parity_retry_enable = 1), dll_off_mode is not supported, and thi + * s bit must be set to '0'. +*/ #undef DDRC_MSTR_DLL_OFF_MODE_DEFVAL #undef DDRC_MSTR_DLL_OFF_MODE_SHIFT #undef DDRC_MSTR_DLL_OFF_MODE_MASK -#define DDRC_MSTR_DLL_OFF_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_DLL_OFF_MODE_SHIFT 15 -#define DDRC_MSTR_DLL_OFF_MODE_MASK 0x00008000U +#define DDRC_MSTR_DLL_OFF_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_DLL_OFF_MODE_SHIFT 15 +#define DDRC_MSTR_DLL_OFF_MODE_MASK 0x00008000U -/*Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full DQ bus width to SDRAM - 01 - Half DQ bus width to SD - AM - 10 - Quarter DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is only supported when the SDRAM bus w - dth is a multiple of 16, and quarter bus width mode is only supported when the SDRAM bus width is a multiple of 32 and the co - figuration parameter MEMC_QBUS_SUPPORT is set. Bus width refers to DQ bus width (excluding any ECC width).*/ +/* +* Selects proportion of DQ bus width that is used by the SDRAM - 00 - Full + * DQ bus width to SDRAM - 01 - Half DQ bus width to SDRAM - 10 - Quarter + * DQ bus width to SDRAM - 11 - Reserved. Note that half bus width mode is + * only supported when the SDRAM bus width is a multiple of 16, and quarter + * bus width mode is only supported when the SDRAM bus width is a multiple + * of 32 and the configuration parameter MEMC_QBUS_SUPPORT is set. Bus wid + * th refers to DQ bus width (excluding any ECC width). +*/ #undef DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL #undef DDRC_MSTR_DATA_BUS_WIDTH_SHIFT #undef DDRC_MSTR_DATA_BUS_WIDTH_MASK -#define DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL 0x03040001 -#define DDRC_MSTR_DATA_BUS_WIDTH_SHIFT 12 -#define DDRC_MSTR_DATA_BUS_WIDTH_MASK 0x00003000U +#define DDRC_MSTR_DATA_BUS_WIDTH_DEFVAL 0x03040001 +#define DDRC_MSTR_DATA_BUS_WIDTH_SHIFT 12 +#define DDRC_MSTR_DATA_BUS_WIDTH_MASK 0x00003000U -/*1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the DRAM in normal mode (1N). This register can be changed - only when the Controller is in self-refresh mode. This signal must be set the same value as MR3 bit A3. Note: Geardown mode - s not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set*/ +/* +* 1 indicates put the DRAM in geardown mode (2N) and 0 indicates put the D + * RAM in normal mode (1N). This register can be changed, only when the Con + * troller is in self-refresh mode. This signal must be set the same value + * as MR3 bit A3. Note: Geardown mode is not supported if the configuration + * parameter MEMC_CMD_RTN2IDLE is set +*/ #undef DDRC_MSTR_GEARDOWN_MODE_DEFVAL #undef DDRC_MSTR_GEARDOWN_MODE_SHIFT #undef DDRC_MSTR_GEARDOWN_MODE_MASK -#define DDRC_MSTR_GEARDOWN_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_GEARDOWN_MODE_SHIFT 11 -#define DDRC_MSTR_GEARDOWN_MODE_MASK 0x00000800U +#define DDRC_MSTR_GEARDOWN_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_GEARDOWN_MODE_SHIFT 11 +#define DDRC_MSTR_GEARDOWN_MODE_MASK 0x00000800U -/*If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timing, all command signals (except chip select) are held - or 2 clocks on the SDRAM bus. Chip select is asserted on the second cycle of the command Note: 2T timing is not supported in - PDDR2/LPDDR3/LPDDR4 mode Note: 2T timing is not supported if the configuration parameter MEMC_CMD_RTN2IDLE is set Note: 2T ti - ing is not supported in DDR4 geardown mode.*/ +/* +* If 1, then uMCTL2 uses 2T timing. Otherwise, uses 1T timing. In 2T timin + * g, all command signals (except chip select) are held for 2 clocks on the + * SDRAM bus. Chip select is asserted on the second cycle of the command N + * ote: 2T timing is not supported in LPDDR2/LPDDR3/LPDDR4 mode Note: 2T ti + * ming is not supported if the configuration parameter MEMC_CMD_RTN2IDLE i + * s set Note: 2T timing is not supported in DDR4 geardown mode. +*/ #undef DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL #undef DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT #undef DDRC_MSTR_EN_2T_TIMING_MODE_MASK -#define DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL 0x03040001 -#define DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT 10 -#define DDRC_MSTR_EN_2T_TIMING_MODE_MASK 0x00000400U +#define DDRC_MSTR_EN_2T_TIMING_MODE_DEFVAL 0x03040001 +#define DDRC_MSTR_EN_2T_TIMING_MODE_SHIFT 10 +#define DDRC_MSTR_EN_2T_TIMING_MODE_MASK 0x00000400U -/*When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exercised only in HIF configurations (UMCTL2_INCL_ARB not s - t) and if in full bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exercised only if Partial Writes enable - (UMCTL2_PARTIAL_WR=1) and if CRC is disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabled (CRCPARCTL1.cr - _parity_retry_enable = 1), burst chop is not supported, and this bit must be set to '0'*/ +/* +* When set, enable burst-chop in DDR3/DDR4. Burst Chop for Reads is exerci + * sed only in HIF configurations (UMCTL2_INCL_ARB not set) and if in full + * bus width mode (MSTR.data_bus_width = 00). Burst Chop for Writes is exer + * cised only if Partial Writes enabled (UMCTL2_PARTIAL_WR=1) and if CRC is + * disabled (CRCPARCTL1.crc_enable = 0). If DDR4 CRC/parity retry is enabl + * ed (CRCPARCTL1.crc_parity_retry_enable = 1), burst chop is not supported + * , and this bit must be set to '0' +*/ #undef DDRC_MSTR_BURSTCHOP_DEFVAL #undef DDRC_MSTR_BURSTCHOP_SHIFT #undef DDRC_MSTR_BURSTCHOP_MASK -#define DDRC_MSTR_BURSTCHOP_DEFVAL 0x03040001 -#define DDRC_MSTR_BURSTCHOP_SHIFT 9 -#define DDRC_MSTR_BURSTCHOP_MASK 0x00000200U +#define DDRC_MSTR_BURSTCHOP_DEFVAL 0x03040001 +#define DDRC_MSTR_BURSTCHOP_SHIFT 9 +#define DDRC_MSTR_BURSTCHOP_MASK 0x00000200U -/*Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 device in use Present only in designs configured to su - port LPDDR4.*/ +/* +* Select LPDDR4 SDRAM - 1 - LPDDR4 SDRAM device in use. - 0 - non-LPDDR4 d + * evice in use Present only in designs configured to support LPDDR4. +*/ #undef DDRC_MSTR_LPDDR4_DEFVAL #undef DDRC_MSTR_LPDDR4_SHIFT #undef DDRC_MSTR_LPDDR4_MASK -#define DDRC_MSTR_LPDDR4_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR4_SHIFT 5 -#define DDRC_MSTR_LPDDR4_MASK 0x00000020U +#define DDRC_MSTR_LPDDR4_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR4_SHIFT 5 +#define DDRC_MSTR_LPDDR4_MASK 0x00000020U -/*Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device in use Present only in designs configured to support - DR4.*/ +/* +* Select DDR4 SDRAM - 1 - DDR4 SDRAM device in use. - 0 - non-DDR4 device + * in use Present only in designs configured to support DDR4. +*/ #undef DDRC_MSTR_DDR4_DEFVAL #undef DDRC_MSTR_DDR4_SHIFT #undef DDRC_MSTR_DDR4_MASK -#define DDRC_MSTR_DDR4_DEFVAL 0x03040001 -#define DDRC_MSTR_DDR4_SHIFT 4 -#define DDRC_MSTR_DDR4_MASK 0x00000010U +#define DDRC_MSTR_DDR4_DEFVAL 0x03040001 +#define DDRC_MSTR_DDR4_SHIFT 4 +#define DDRC_MSTR_DDR4_MASK 0x00000010U -/*Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 device in use Present only in designs configured to su - port LPDDR3.*/ +/* +* Select LPDDR3 SDRAM - 1 - LPDDR3 SDRAM device in use. - 0 - non-LPDDR3 d + * evice in use Present only in designs configured to support LPDDR3. +*/ #undef DDRC_MSTR_LPDDR3_DEFVAL #undef DDRC_MSTR_LPDDR3_SHIFT #undef DDRC_MSTR_LPDDR3_MASK -#define DDRC_MSTR_LPDDR3_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR3_SHIFT 3 -#define DDRC_MSTR_LPDDR3_MASK 0x00000008U +#define DDRC_MSTR_LPDDR3_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR3_SHIFT 3 +#define DDRC_MSTR_LPDDR3_MASK 0x00000008U -/*Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 device in use Present only in designs configured to su - port LPDDR2.*/ +/* +* Select LPDDR2 SDRAM - 1 - LPDDR2 SDRAM device in use. - 0 - non-LPDDR2 d + * evice in use Present only in designs configured to support LPDDR2. +*/ #undef DDRC_MSTR_LPDDR2_DEFVAL #undef DDRC_MSTR_LPDDR2_SHIFT #undef DDRC_MSTR_LPDDR2_MASK -#define DDRC_MSTR_LPDDR2_DEFVAL 0x03040001 -#define DDRC_MSTR_LPDDR2_SHIFT 2 -#define DDRC_MSTR_LPDDR2_MASK 0x00000004U +#define DDRC_MSTR_LPDDR2_DEFVAL 0x03040001 +#define DDRC_MSTR_LPDDR2_SHIFT 2 +#define DDRC_MSTR_LPDDR2_MASK 0x00000004U -/*Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM device in use Only present in designs that support DDR3 - */ +/* +* Select DDR3 SDRAM - 1 - DDR3 SDRAM device in use - 0 - non-DDR3 SDRAM de + * vice in use Only present in designs that support DDR3. +*/ #undef DDRC_MSTR_DDR3_DEFVAL #undef DDRC_MSTR_DDR3_SHIFT #undef DDRC_MSTR_DDR3_MASK -#define DDRC_MSTR_DDR3_DEFVAL 0x03040001 -#define DDRC_MSTR_DDR3_SHIFT 0 -#define DDRC_MSTR_DDR3_MASK 0x00000001U +#define DDRC_MSTR_DDR3_DEFVAL 0x03040001 +#define DDRC_MSTR_DDR3_SHIFT 0 +#define DDRC_MSTR_DDR3_MASK 0x00000001U -/*Setting this register bit to 1 triggers a mode register read or write operation. When the MR operation is complete, the uMCTL - automatically clears this bit. The other register fields of this register must be written in a separate APB transaction, bef - re setting this mr_wr bit. It is recommended NOT to set this signal if in Init, Deep power-down or MPSM operating modes.*/ +/* +* Setting this register bit to 1 triggers a mode register read or write op + * eration. When the MR operation is complete, the uMCTL2 automatically cle + * ars this bit. The other register fields of this register must be written + * in a separate APB transaction, before setting this mr_wr bit. It is rec + * ommended NOT to set this signal if in Init, Deep power-down or MPSM oper + * ating modes. +*/ #undef DDRC_MRCTRL0_MR_WR_DEFVAL #undef DDRC_MRCTRL0_MR_WR_SHIFT #undef DDRC_MRCTRL0_MR_WR_MASK -#define DDRC_MRCTRL0_MR_WR_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_WR_SHIFT 31 -#define DDRC_MRCTRL0_MR_WR_MASK 0x80000000U +#define DDRC_MRCTRL0_MR_WR_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_WR_SHIFT 31 +#define DDRC_MRCTRL0_MR_WR_MASK 0x80000000U -/*Address of the mode register that is to be written to. - 0000 - MR0 - 0001 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 010 - - MR5 - 0110 - MR6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data for mode register addressing in LPD - R2/LPDDR3/LPDDR4) This signal is also used for writing to control words of RDIMMs. In that case, it corresponds to the bank a - dress bits sent to the RDIMM In case of DDR4, the bit[3:2] corresponds to the bank group bits. Therefore, the bit[3] as well - s the bit[2:0] must be set to an appropriate value which is considered both the Address Mirroring of UDIMMs/RDIMMs and the Ou - put Inversion of RDIMMs.*/ +/* +* Address of the mode register that is to be written to. - 0000 - MR0 - 00 + * 01 - MR1 - 0010 - MR2 - 0011 - MR3 - 0100 - MR4 - 0101 - MR5 - 0110 - MR + * 6 - 0111 - MR7 Don't Care for LPDDR2/LPDDR3/LPDDR4 (see MRCTRL1.mr_data + * for mode register addressing in LPDDR2/LPDDR3/LPDDR4) This signal is als + * o used for writing to control words of RDIMMs. In that case, it correspo + * nds to the bank address bits sent to the RDIMM In case of DDR4, the bit[ + * 3:2] corresponds to the bank group bits. Therefore, the bit[3] as well a + * s the bit[2:0] must be set to an appropriate value which is considered b + * oth the Address Mirroring of UDIMMs/RDIMMs and the Output Inversion of R + * DIMMs. +*/ #undef DDRC_MRCTRL0_MR_ADDR_DEFVAL #undef DDRC_MRCTRL0_MR_ADDR_SHIFT #undef DDRC_MRCTRL0_MR_ADDR_MASK -#define DDRC_MRCTRL0_MR_ADDR_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_ADDR_SHIFT 12 -#define DDRC_MRCTRL0_MR_ADDR_MASK 0x0000F000U +#define DDRC_MRCTRL0_MR_ADDR_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_ADDR_SHIFT 12 +#define DDRC_MRCTRL0_MR_ADDR_MASK 0x0000F000U -/*Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desired to access all ranks, so all bits should be set to 1 - However, for multi-rank UDIMMs/RDIMMs which implement address mirroring, it may be necessary to access ranks individually. E - amples (assume uMCTL2 is configured for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x5 - select ranks - and 2 - 0xA - select ranks 1 and 3 - 0xF - select ranks 0, 1, 2 and 3*/ +/* +* Controls which rank is accessed by MRCTRL0.mr_wr. Normally, it is desire + * d to access all ranks, so all bits should be set to 1. However, for mult + * i-rank UDIMMs/RDIMMs which implement address mirroring, it may be necess + * ary to access ranks individually. Examples (assume uMCTL2 is configured + * for 4 ranks): - 0x1 - select rank 0 only - 0x2 - select rank 1 only - 0x + * 5 - select ranks 0 and 2 - 0xA - select ranks 1 and 3 - 0xF - select ran + * ks 0, 1, 2 and 3 +*/ #undef DDRC_MRCTRL0_MR_RANK_DEFVAL #undef DDRC_MRCTRL0_MR_RANK_SHIFT #undef DDRC_MRCTRL0_MR_RANK_MASK -#define DDRC_MRCTRL0_MR_RANK_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_RANK_SHIFT 4 -#define DDRC_MRCTRL0_MR_RANK_MASK 0x00000030U +#define DDRC_MRCTRL0_MR_RANK_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_RANK_SHIFT 4 +#define DDRC_MRCTRL0_MR_RANK_MASK 0x00000030U -/*Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 before automatic SDRAM initialization routine or not. - or DDR4, this bit can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM initialization. For LPDDR4, this bit ca - be used to program additional mode registers before automatic SDRAM initialization if necessary. Note: This must be cleared - o 0 after completing Software operation. Otherwise, SDRAM initialization routine will not re-start. - 0 - Software interventi - n is not allowed - 1 - Software intervention is allowed*/ +/* +* Indicates whether Software intervention is allowed via MRCTRL0/MRCTRL1 b + * efore automatic SDRAM initialization routine or not. For DDR4, this bit + * can be used to initialize the DDR4 RCD (MR7) before automatic SDRAM init + * ialization. For LPDDR4, this bit can be used to program additional mode + * registers before automatic SDRAM initialization if necessary. Note: This + * must be cleared to 0 after completing Software operation. Otherwise, SD + * RAM initialization routine will not re-start. - 0 - Software interventio + * n is not allowed - 1 - Software intervention is allowed +*/ #undef DDRC_MRCTRL0_SW_INIT_INT_DEFVAL #undef DDRC_MRCTRL0_SW_INIT_INT_SHIFT #undef DDRC_MRCTRL0_SW_INIT_INT_MASK -#define DDRC_MRCTRL0_SW_INIT_INT_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_SW_INIT_INT_SHIFT 3 -#define DDRC_MRCTRL0_SW_INIT_INT_MASK 0x00000008U +#define DDRC_MRCTRL0_SW_INIT_INT_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_SW_INIT_INT_SHIFT 3 +#define DDRC_MRCTRL0_SW_INIT_INT_MASK 0x00000008U -/*Indicates whether the mode register operation is MRS in PDA mode or not - 0 - MRS - 1 - MRS in Per DRAM Addressability mode*/ +/* +* Indicates whether the mode register operation is MRS in PDA mode or not + * - 0 - MRS - 1 - MRS in Per DRAM Addressability mode +*/ #undef DDRC_MRCTRL0_PDA_EN_DEFVAL #undef DDRC_MRCTRL0_PDA_EN_SHIFT #undef DDRC_MRCTRL0_PDA_EN_MASK -#define DDRC_MRCTRL0_PDA_EN_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_PDA_EN_SHIFT 2 -#define DDRC_MRCTRL0_PDA_EN_MASK 0x00000004U +#define DDRC_MRCTRL0_PDA_EN_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_PDA_EN_SHIFT 2 +#define DDRC_MRCTRL0_PDA_EN_MASK 0x00000004U -/*Indicates whether the mode register operation is MRS or WR/RD for MPR (only supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR*/ +/* +* Indicates whether the mode register operation is MRS or WR/RD for MPR (o + * nly supported for DDR4) - 0 - MRS - 1 - WR/RD for MPR +*/ #undef DDRC_MRCTRL0_MPR_EN_DEFVAL #undef DDRC_MRCTRL0_MPR_EN_SHIFT #undef DDRC_MRCTRL0_MPR_EN_MASK -#define DDRC_MRCTRL0_MPR_EN_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MPR_EN_SHIFT 1 -#define DDRC_MRCTRL0_MPR_EN_MASK 0x00000002U +#define DDRC_MRCTRL0_MPR_EN_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MPR_EN_SHIFT 1 +#define DDRC_MRCTRL0_MPR_EN_MASK 0x00000002U -/*Indicates whether the mode register operation is read or write. Only used for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Re - d*/ +/* +* Indicates whether the mode register operation is read or write. Only use + * d for LPDDR2/LPDDR3/LPDDR4/DDR4. - 0 - Write - 1 - Read +*/ #undef DDRC_MRCTRL0_MR_TYPE_DEFVAL #undef DDRC_MRCTRL0_MR_TYPE_SHIFT #undef DDRC_MRCTRL0_MR_TYPE_MASK -#define DDRC_MRCTRL0_MR_TYPE_DEFVAL 0x00000030 -#define DDRC_MRCTRL0_MR_TYPE_SHIFT 0 -#define DDRC_MRCTRL0_MR_TYPE_MASK 0x00000001U +#define DDRC_MRCTRL0_MR_TYPE_DEFVAL 0x00000030 +#define DDRC_MRCTRL0_MR_TYPE_SHIFT 0 +#define DDRC_MRCTRL0_MR_TYPE_MASK 0x00000001U -/*Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating uses +2. - 2 - Derating uses +3. - 3 - Derating uses +4 - Present only in designs configured to support LPDDR4. The required number of cycles for derating can be determined by dividi - g 3.75ns by the core_ddrc_core_clk period, and rounding up the next integer.*/ +/* +* Derate value of tRC for LPDDR4 - 0 - Derating uses +1. - 1 - Derating us + * es +2. - 2 - Derating uses +3. - 3 - Derating uses +4. Present only in d + * esigns configured to support LPDDR4. The required number of cycles for d + * erating can be determined by dividing 3.75ns by the core_ddrc_core_clk p + * eriod, and rounding up the next integer. +*/ #undef DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL #undef DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT #undef DDRC_DERATEEN_RC_DERATE_VALUE_MASK -#define DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT 8 -#define DDRC_DERATEEN_RC_DERATE_VALUE_MASK 0x00000300U +#define DDRC_DERATEEN_RC_DERATE_VALUE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_RC_DERATE_VALUE_SHIFT 8 +#define DDRC_DERATEEN_RC_DERATE_VALUE_MASK 0x00000300U -/*Derate byte Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 Indicates which byte of the MRR data is used f - r derating. The maximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH.*/ +/* +* Derate byte Present only in designs configured to support LPDDR2/LPDDR3/ + * LPDDR4 Indicates which byte of the MRR data is used for derating. The ma + * ximum valid value depends on MEMC_DRAM_TOTAL_DATA_WIDTH. +*/ #undef DDRC_DERATEEN_DERATE_BYTE_DEFVAL #undef DDRC_DERATEEN_DERATE_BYTE_SHIFT #undef DDRC_DERATEEN_DERATE_BYTE_MASK -#define DDRC_DERATEEN_DERATE_BYTE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_BYTE_SHIFT 4 -#define DDRC_DERATEEN_DERATE_BYTE_MASK 0x000000F0U +#define DDRC_DERATEEN_DERATE_BYTE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_BYTE_SHIFT 4 +#define DDRC_DERATEEN_DERATE_BYTE_MASK 0x000000F0U -/*Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present only in designs configured to support LPDDR2/LPDDR3/LPDD - 4 Set to 0 for all LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ddrc_core_clk period. Can be 0 or 1 - for LPDDR3/LPDDR4, depending if +1.875 ns is less than a core_ddrc_core_clk period or not.*/ +/* +* Derate value - 0 - Derating uses +1. - 1 - Derating uses +2. Present onl + * y in designs configured to support LPDDR2/LPDDR3/LPDDR4 Set to 0 for all + * LPDDR2 speed grades as derating value of +1.875 ns is less than a core_ + * ddrc_core_clk period. Can be 0 or 1 for LPDDR3/LPDDR4, depending if +1.8 + * 75 ns is less than a core_ddrc_core_clk period or not. +*/ #undef DDRC_DERATEEN_DERATE_VALUE_DEFVAL #undef DDRC_DERATEEN_DERATE_VALUE_SHIFT #undef DDRC_DERATEEN_DERATE_VALUE_MASK -#define DDRC_DERATEEN_DERATE_VALUE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_VALUE_SHIFT 1 -#define DDRC_DERATEEN_DERATE_VALUE_MASK 0x00000002U +#define DDRC_DERATEEN_DERATE_VALUE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_VALUE_SHIFT 1 +#define DDRC_DERATEEN_DERATE_VALUE_MASK 0x00000002U -/*Enables derating - 0 - Timing parameter derating is disabled - 1 - Timing parameter derating is enabled using MR4 read value. - Present only in designs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set to '0' for non-LPDDR2/LPDDR3/LPDDR4 - mode.*/ +/* +* Enables derating - 0 - Timing parameter derating is disabled - 1 - Timin + * g parameter derating is enabled using MR4 read value. Present only in de + * signs configured to support LPDDR2/LPDDR3/LPDDR4 This field must be set + * to '0' for non-LPDDR2/LPDDR3/LPDDR4 mode. +*/ #undef DDRC_DERATEEN_DERATE_ENABLE_DEFVAL #undef DDRC_DERATEEN_DERATE_ENABLE_SHIFT #undef DDRC_DERATEEN_DERATE_ENABLE_MASK -#define DDRC_DERATEEN_DERATE_ENABLE_DEFVAL 0x00000000 -#define DDRC_DERATEEN_DERATE_ENABLE_SHIFT 0 -#define DDRC_DERATEEN_DERATE_ENABLE_MASK 0x00000001U +#define DDRC_DERATEEN_DERATE_ENABLE_DEFVAL 0x00000000 +#define DDRC_DERATEEN_DERATE_ENABLE_SHIFT 0 +#define DDRC_DERATEEN_DERATE_ENABLE_MASK 0x00000001U -/*Interval between two MR4 reads, used to derate the timing parameters. Present only in designs configured to support LPDDR2/LP - DR3/LPDDR4. This register must not be set to zero*/ +/* +* Interval between two MR4 reads, used to derate the timing parameters. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4. This r + * egister must not be set to zero +*/ #undef DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL #undef DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT #undef DDRC_DERATEINT_MR4_READ_INTERVAL_MASK -#define DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL -#define DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT 0 -#define DDRC_DERATEINT_MR4_READ_INTERVAL_MASK 0xFFFFFFFFU +#define DDRC_DERATEINT_MR4_READ_INTERVAL_DEFVAL +#define DDRC_DERATEINT_MR4_READ_INTERVAL_SHIFT 0 +#define DDRC_DERATEINT_MR4_READ_INTERVAL_MASK 0xFFFFFFFFU -/*Self refresh state is an intermediate state to enter to Self refresh power down state or exit Self refresh power down state f - r LPDDR4. This register controls transition from the Self refresh state. - 1 - Prohibit transition from Self refresh state - - - Allow transition from Self refresh state*/ +/* +* Self refresh state is an intermediate state to enter to Self refresh pow + * er down state or exit Self refresh power down state for LPDDR4. This reg + * ister controls transition from the Self refresh state. - 1 - Prohibit tr + * ansition from Self refresh state - 0 - Allow transition from Self refres + * h state +*/ #undef DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL #undef DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT #undef DDRC_PWRCTL_STAY_IN_SELFREF_MASK -#define DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL 0x00000000 -#define DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT 6 -#define DDRC_PWRCTL_STAY_IN_SELFREF_MASK 0x00000040U +#define DDRC_PWRCTL_STAY_IN_SELFREF_DEFVAL 0x00000000 +#define DDRC_PWRCTL_STAY_IN_SELFREF_SHIFT 6 +#define DDRC_PWRCTL_STAY_IN_SELFREF_MASK 0x00000040U -/*A value of 1 to this register causes system to move to Self Refresh state immediately, as long as it is not in INIT or DPD/MP - M operating_mode. This is referred to as Software Entry/Exit to Self Refresh. - 1 - Software Entry to Self Refresh - 0 - Soft - are Exit from Self Refresh*/ +/* +* A value of 1 to this register causes system to move to Self Refresh stat + * e immediately, as long as it is not in INIT or DPD/MPSM operating_mode. + * This is referred to as Software Entry/Exit to Self Refresh. - 1 - Softwa + * re Entry to Self Refresh - 0 - Software Exit from Self Refresh +*/ #undef DDRC_PWRCTL_SELFREF_SW_DEFVAL #undef DDRC_PWRCTL_SELFREF_SW_SHIFT #undef DDRC_PWRCTL_SELFREF_SW_MASK -#define DDRC_PWRCTL_SELFREF_SW_DEFVAL 0x00000000 -#define DDRC_PWRCTL_SELFREF_SW_SHIFT 5 -#define DDRC_PWRCTL_SELFREF_SW_MASK 0x00000020U +#define DDRC_PWRCTL_SELFREF_SW_DEFVAL 0x00000000 +#define DDRC_PWRCTL_SELFREF_SW_SHIFT 5 +#define DDRC_PWRCTL_SELFREF_SW_MASK 0x00000020U -/*When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode when the transaction store is empty. This register m - st be reset to '0' to bring uMCTL2 out of maximum power saving mode. Present only in designs configured to support DDR4. For - on-DDR4, this register should not be set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if the PHY parameter - DWC_AC_CS_USE is disabled, as the MPSM exit sequence requires the chip-select signal to toggle. FOR PERFORMANCE ONLY.*/ +/* +* When this is 1, the uMCTL2 puts the SDRAM into maximum power saving mode + * when the transaction store is empty. This register must be reset to '0' + * to bring uMCTL2 out of maximum power saving mode. Present only in desig + * ns configured to support DDR4. For non-DDR4, this register should not be + * set to 1. Note that MPSM is not supported when using a DWC DDR PHY, if + * the PHY parameter DWC_AC_CS_USE is disabled, as the MPSM exit sequence r + * equires the chip-select signal to toggle. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRCTL_MPSM_EN_DEFVAL #undef DDRC_PWRCTL_MPSM_EN_SHIFT #undef DDRC_PWRCTL_MPSM_EN_MASK -#define DDRC_PWRCTL_MPSM_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_MPSM_EN_SHIFT 4 -#define DDRC_PWRCTL_MPSM_EN_MASK 0x00000010U +#define DDRC_PWRCTL_MPSM_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_MPSM_EN_SHIFT 4 +#define DDRC_PWRCTL_MPSM_EN_MASK 0x00000010U -/*Enable the assertion of dfi_dram_clk_disable whenever a clock is not required by the SDRAM. If set to 0, dfi_dram_clk_disable - is never asserted. Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only be asserted in Self Refresh. In DD - 4, can be asserted in following: - in Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, can be asserted in - ollowing: - in Self Refresh - in Power Down - in Deep Power Down - during Normal operation (Clock Stop) In LPDDR4, can be ass - rted in following: - in Self Refresh Power Down - in Power Down - during Normal operation (Clock Stop)*/ +/* +* Enable the assertion of dfi_dram_clk_disable whenever a clock is not req + * uired by the SDRAM. If set to 0, dfi_dram_clk_disable is never asserted. + * Assertion of dfi_dram_clk_disable is as follows: In DDR2/DDR3, can only + * be asserted in Self Refresh. In DDR4, can be asserted in following: - i + * n Self Refresh. - in Maximum Power Saving Mode In mDDR/LPDDR2/LPDDR3, ca + * n be asserted in following: - in Self Refresh - in Power Down - in Deep + * Power Down - during Normal operation (Clock Stop) In LPDDR4, can be asse + * rted in following: - in Self Refresh Power Down - in Power Down - during + * Normal operation (Clock Stop) +*/ #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT #undef DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL 0x00000000 -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT 3 -#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK 0x00000008U +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_DEFVAL 0x00000000 +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_SHIFT 3 +#define DDRC_PWRCTL_EN_DFI_DRAM_CLK_DISABLE_MASK 0x00000008U -/*When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the transaction store is empty. This register must be re - et to '0' to bring uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM initialization on deep power-down - xit. Present only in designs configured to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPDDR3, this registe - should not be set to 1. FOR PERFORMANCE ONLY.*/ +/* +* When this is 1, uMCTL2 puts the SDRAM into deep power-down mode when the + * transaction store is empty. This register must be reset to '0' to bring + * uMCTL2 out of deep power-down mode. Controller performs automatic SDRAM + * initialization on deep power-down exit. Present only in designs configu + * red to support mDDR or LPDDR2 or LPDDR3. For non-mDDR/non-LPDDR2/non-LPD + * DR3, this register should not be set to 1. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT #undef DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT 2 -#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK 0x00000004U +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_SHIFT 2 +#define DDRC_PWRCTL_DEEPPOWERDOWN_EN_MASK 0x00000004U -/*If true then the uMCTL2 goes into power-down after a programmable number of cycles 'maximum idle clocks before power down' (P - RTMG.powerdown_to_x32). This register bit may be re-programmed during the course of normal operation.*/ +/* +* If true then the uMCTL2 goes into power-down after a programmable number + * of cycles 'maximum idle clocks before power down' (PWRTMG.powerdown_to_ + * x32). This register bit may be re-programmed during the course of normal + * operation. +*/ #undef DDRC_PWRCTL_POWERDOWN_EN_DEFVAL #undef DDRC_PWRCTL_POWERDOWN_EN_SHIFT #undef DDRC_PWRCTL_POWERDOWN_EN_MASK -#define DDRC_PWRCTL_POWERDOWN_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_POWERDOWN_EN_SHIFT 1 -#define DDRC_PWRCTL_POWERDOWN_EN_MASK 0x00000002U +#define DDRC_PWRCTL_POWERDOWN_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_POWERDOWN_EN_SHIFT 1 +#define DDRC_PWRCTL_POWERDOWN_EN_MASK 0x00000002U -/*If true then the uMCTL2 puts the SDRAM into Self Refresh after a programmable number of cycles 'maximum idle clocks before Se - f Refresh (PWRTMG.selfref_to_x32)'. This register bit may be re-programmed during the course of normal operation.*/ +/* +* If true then the uMCTL2 puts the SDRAM into Self Refresh after a program + * mable number of cycles 'maximum idle clocks before Self Refresh (PWRTMG. + * selfref_to_x32)'. This register bit may be re-programmed during the cour + * se of normal operation. +*/ #undef DDRC_PWRCTL_SELFREF_EN_DEFVAL #undef DDRC_PWRCTL_SELFREF_EN_SHIFT #undef DDRC_PWRCTL_SELFREF_EN_MASK -#define DDRC_PWRCTL_SELFREF_EN_DEFVAL 0x00000000 -#define DDRC_PWRCTL_SELFREF_EN_SHIFT 0 -#define DDRC_PWRCTL_SELFREF_EN_MASK 0x00000001U +#define DDRC_PWRCTL_SELFREF_EN_DEFVAL 0x00000000 +#define DDRC_PWRCTL_SELFREF_EN_SHIFT 0 +#define DDRC_PWRCTL_SELFREF_EN_MASK 0x00000001U -/*After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into Self Refresh. This must be enabled in - he PWRCTL.selfref_en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY.*/ +/* +* After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into Self Refresh. This must be enabled in the PWRCTL.selfref_ + * en. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL #undef DDRC_PWRTMG_SELFREF_TO_X32_SHIFT #undef DDRC_PWRTMG_SELFREF_TO_X32_MASK -#define DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL 0x00402010 -#define DDRC_PWRTMG_SELFREF_TO_X32_SHIFT 16 -#define DDRC_PWRTMG_SELFREF_TO_X32_MASK 0x00FF0000U +#define DDRC_PWRTMG_SELFREF_TO_X32_DEFVAL 0x00402010 +#define DDRC_PWRTMG_SELFREF_TO_X32_SHIFT 16 +#define DDRC_PWRTMG_SELFREF_TO_X32_MASK 0x00FF0000U -/*Minimum deep power-down time. For mDDR, value from the JEDEC specification is 0 as mDDR exits from deep power-down mode immed - ately after PWRCTL.deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDEC specification is 500us. Unit: Mul - iples of 4096 clocks. Present only in designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE ONLY.*/ +/* +* Minimum deep power-down time. For mDDR, value from the JEDEC specificati + * on is 0 as mDDR exits from deep power-down mode immediately after PWRCTL + * .deeppowerdown_en is de-asserted. For LPDDR2/LPDDR3, value from the JEDE + * C specification is 500us. Unit: Multiples of 4096 clocks. Present only i + * n designs configured to support mDDR, LPDDR2 or LPDDR3. FOR PERFORMANCE + * ONLY. +*/ #undef DDRC_PWRTMG_T_DPD_X4096_DEFVAL #undef DDRC_PWRTMG_T_DPD_X4096_SHIFT #undef DDRC_PWRTMG_T_DPD_X4096_MASK -#define DDRC_PWRTMG_T_DPD_X4096_DEFVAL 0x00402010 -#define DDRC_PWRTMG_T_DPD_X4096_SHIFT 8 -#define DDRC_PWRTMG_T_DPD_X4096_MASK 0x0000FF00U +#define DDRC_PWRTMG_T_DPD_X4096_DEFVAL 0x00402010 +#define DDRC_PWRTMG_T_DPD_X4096_SHIFT 8 +#define DDRC_PWRTMG_T_DPD_X4096_MASK 0x0000FF00U -/*After this many clocks of NOP or deselect the uMCTL2 automatically puts the SDRAM into power-down. This must be enabled in th - PWRCTL.powerdown_en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY.*/ +/* +* After this many clocks of NOP or deselect the uMCTL2 automatically puts + * the SDRAM into power-down. This must be enabled in the PWRCTL.powerdown_ + * en. Unit: Multiples of 32 clocks FOR PERFORMANCE ONLY. +*/ #undef DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL #undef DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT #undef DDRC_PWRTMG_POWERDOWN_TO_X32_MASK -#define DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL 0x00402010 -#define DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT 0 -#define DDRC_PWRTMG_POWERDOWN_TO_X32_MASK 0x0000001FU +#define DDRC_PWRTMG_POWERDOWN_TO_X32_DEFVAL 0x00402010 +#define DDRC_PWRTMG_POWERDOWN_TO_X32_SHIFT 0 +#define DDRC_PWRTMG_POWERDOWN_TO_X32_MASK 0x0000001FU -/*Threshold value in number of clock cycles before the critical refresh or page timer expires. A critical refresh is to be issu - d before this threshold is reached. It is recommended that this not be changed from the default value, currently shown as 0x2 - It must always be less than internally used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally used t_rfc_nom_x32 - may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating is enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_ - om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clocks.*/ +/* +* Threshold value in number of clock cycles before the critical refresh or + * page timer expires. A critical refresh is to be issued before this thre + * shold is reached. It is recommended that this not be changed from the de + * fault value, currently shown as 0x2. It must always be less than interna + * lly used t_rfc_nom_x32. Note that, in LPDDR2/LPDDR3/LPDDR4, internally u + * sed t_rfc_nom_x32 may be equal to RFSHTMG.t_rfc_nom_x32>>2 if derating i + * s enabled (DERATEEN.derate_enable=1). Otherwise, internally used t_rfc_n + * om_x32 will be equal to RFSHTMG.t_rfc_nom_x32. Unit: Multiples of 32 clo + * cks. +*/ #undef DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT #undef DDRC_RFSHCTL0_REFRESH_MARGIN_MASK -#define DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT 20 -#define DDRC_RFSHCTL0_REFRESH_MARGIN_MASK 0x00F00000U +#define DDRC_RFSHCTL0_REFRESH_MARGIN_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_MARGIN_SHIFT 20 +#define DDRC_RFSHCTL0_REFRESH_MARGIN_MASK 0x00F00000U -/*If the refresh timer (tRFCnom, also known as tREFI) has expired at least once, but it has not expired (RFSHCTL0.refresh_burst - 1) times yet, then a speculative refresh may be performed. A speculative refresh is a refresh performed at a time when refres - would be useful, but before it is absolutely required. When the SDRAM bus is idle for a period of time determined by this RF - HCTL0.refresh_to_x32 and the refresh timer has expired at least once since the last refresh, then a speculative refresh is pe - formed. Speculative refreshes continues successively until there are no refreshes pending or until new reads or writes are is - ued to the uMCTL2. FOR PERFORMANCE ONLY.*/ +/* +* If the refresh timer (tRFCnom, also known as tREFI) has expired at least + * once, but it has not expired (RFSHCTL0.refresh_burst+1) times yet, then + * a speculative refresh may be performed. A speculative refresh is a refr + * esh performed at a time when refresh would be useful, but before it is a + * bsolutely required. When the SDRAM bus is idle for a period of time dete + * rmined by this RFSHCTL0.refresh_to_x32 and the refresh timer has expired + * at least once since the last refresh, then a speculative refresh is per + * formed. Speculative refreshes continues successively until there are no + * refreshes pending or until new reads or writes are issued to the uMCTL2. + * FOR PERFORMANCE ONLY. +*/ #undef DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT #undef DDRC_RFSHCTL0_REFRESH_TO_X32_MASK -#define DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT 12 -#define DDRC_RFSHCTL0_REFRESH_TO_X32_MASK 0x0001F000U +#define DDRC_RFSHCTL0_REFRESH_TO_X32_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_TO_X32_SHIFT 12 +#define DDRC_RFSHCTL0_REFRESH_TO_X32_MASK 0x0001F000U -/*The programmed value + 1 is the number of refresh timeouts that is allowed to accumulate before traffic is blocked and the re - reshes are forced to execute. Closing pages to perform a refresh is a one-time penalty that must be paid for each group of re - reshes. Therefore, performing refreshes in a burst reduces the per-refresh penalty of these page closings. Higher numbers for - RFSHCTL.refresh_burst slightly increases utilization; lower numbers decreases the worst-case latency associated with refreshe - . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh For information on burst refresh feature refer to se - tion 3.9 of DDR2 JEDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always per-rank and not per-bank. The rank r - fresh can be accumulated over 8*tREFI cycles using the burst refresh feature. In DDR4 mode, according to Fine Granularity fea - ure, 8 refreshes can be postponed in 1X mode, 16 refreshes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upd - tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ensure that tRFCmax is not violated due to a PHY-initiat - d update occurring shortly before a refresh burst was due. In this situation, the refresh burst will be delayed until the PHY - initiated update is complete.*/ +/* +* The programmed value + 1 is the number of refresh timeouts that is allow + * ed to accumulate before traffic is blocked and the refreshes are forced + * to execute. Closing pages to perform a refresh is a one-time penalty tha + * t must be paid for each group of refreshes. Therefore, performing refres + * hes in a burst reduces the per-refresh penalty of these page closings. H + * igher numbers for RFSHCTL.refresh_burst slightly increases utilization; + * lower numbers decreases the worst-case latency associated with refreshes + * . - 0 - single refresh - 1 - burst-of-2 refresh - 7 - burst-of-8 refresh + * For information on burst refresh feature refer to section 3.9 of DDR2 J + * EDEC specification - JESD79-2F.pdf. For DDR2/3, the refresh is always pe + * r-rank and not per-bank. The rank refresh can be accumulated over 8*tREF + * I cycles using the burst refresh feature. In DDR4 mode, according to Fin + * e Granularity feature, 8 refreshes can be postponed in 1X mode, 16 refre + * shes in 2X mode and 32 refreshes in 4X mode. If using PHY-initiated upda + * tes, care must be taken in the setting of RFSHCTL0.refresh_burst, to ens + * ure that tRFCmax is not violated due to a PHY-initiated update occurring + * shortly before a refresh burst was due. In this situation, the refresh + * burst will be delayed until the PHY-initiated update is complete. +*/ #undef DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL #undef DDRC_RFSHCTL0_REFRESH_BURST_SHIFT #undef DDRC_RFSHCTL0_REFRESH_BURST_MASK -#define DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_REFRESH_BURST_SHIFT 4 -#define DDRC_RFSHCTL0_REFRESH_BURST_MASK 0x000001F0U +#define DDRC_RFSHCTL0_REFRESH_BURST_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_REFRESH_BURST_SHIFT 4 +#define DDRC_RFSHCTL0_REFRESH_BURST_MASK 0x000001F0U -/*- 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows traffic to flow to other banks. Per bank refresh is n - t supported by all LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Present only in designs configured to - support LPDDR2/LPDDR3/LPDDR4*/ +/* +* - 1 - Per bank refresh; - 0 - All bank refresh. Per bank refresh allows + * traffic to flow to other banks. Per bank refresh is not supported by all + * LPDDR2 devices but should be supported by all LPDDR3/LPDDR4 devices. Pr + * esent only in designs configured to support LPDDR2/LPDDR3/LPDDR4 +*/ #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT #undef DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL 0x00210000 -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT 2 -#define DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK 0x00000004U +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_DEFVAL 0x00210000 +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_SHIFT 2 +#define DDRC_RFSHCTL0_PER_BANK_REFRESH_MASK 0x00000004U -/*Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fixed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x ( - ot supported) - 110 - Enable on the fly 4x (not supported) - Everything else - reserved Note: The on-the-fly modes is not sup - orted in this version of the uMCTL2. Note: This must be set up while the Controller is in reset or while the Controller is in - self-refresh mode. Changing this during normal operation is not allowed. Making this a dynamic register will be supported in - uture version of the uMCTL2.*/ +/* +* Refresh timer start for rank 1 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_DEFVAL +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_SHIFT +#undef DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_MASK +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_DEFVAL 0x00000000 +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_SHIFT 16 +#define DDRC_RFSHCTL1_REFRESH_TIMER1_START_VALUE_X32_MASK 0x0FFF0000U + +/* +* Refresh timer start for rank 0 (only present in multi-rank configuration + * s). This is useful in staggering the refreshes to multiple ranks to help + * traffic to proceed. This is explained in Refresh Controls section of ar + * chitecture chapter. Unit: Multiples of 32 clocks. FOR PERFORMANCE ONLY. +*/ +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_DEFVAL +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_SHIFT +#undef DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_MASK +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_DEFVAL 0x00000000 +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_SHIFT 0 +#define DDRC_RFSHCTL1_REFRESH_TIMER0_START_VALUE_X32_MASK 0x00000FFFU + +/* +* Fine Granularity Refresh Mode - 000 - Fixed 1x (Normal mode) - 001 - Fix + * ed 2x - 010 - Fixed 4x - 101 - Enable on the fly 2x (not supported) - 11 + * 0 - Enable on the fly 4x (not supported) - Everything else - reserved No + * te: The on-the-fly modes is not supported in this version of the uMCTL2. + * Note: This must be set up while the Controller is in reset or while the + * Controller is in self-refresh mode. Changing this during normal operati + * on is not allowed. Making this a dynamic register will be supported in f + * uture version of the uMCTL2. +*/ #undef DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL #undef DDRC_RFSHCTL3_REFRESH_MODE_SHIFT #undef DDRC_RFSHCTL3_REFRESH_MODE_MASK -#define DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_REFRESH_MODE_SHIFT 4 -#define DDRC_RFSHCTL3_REFRESH_MODE_MASK 0x00000070U +#define DDRC_RFSHCTL3_REFRESH_MODE_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_REFRESH_MODE_SHIFT 4 +#define DDRC_RFSHCTL3_REFRESH_MODE_MASK 0x00000070U -/*Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that the refresh register(s) have been updated. The value - s automatically updated when exiting reset, so it does not need to be toggled initially.*/ +/* +* Toggle this signal (either from 0 to 1 or from 1 to 0) to indicate that + * the refresh register(s) have been updated. The value is automatically up + * dated when exiting reset, so it does not need to be toggled initially. +*/ #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT #undef DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT 1 -#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK 0x00000002U +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_SHIFT 1 +#define DDRC_RFSHCTL3_REFRESH_UPDATE_LEVEL_MASK 0x00000002U -/*When '1', disable auto-refresh generated by the uMCTL2. When auto-refresh is disabled, the SoC core must generate refreshes u - ing the registers reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh and reg_ddrc_rank3_refresh. When dis - auto_refresh transitions from 0 to 1, any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 CRC/parity retry - is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), disable auto-refresh is not supported, and this bit must be set to '0'. - his register field is changeable on the fly.*/ +/* +* When '1', disable auto-refresh generated by the uMCTL2. When auto-refres + * h is disabled, the SoC core must generate refreshes using the registers + * reg_ddrc_rank0_refresh, reg_ddrc_rank1_refresh, reg_ddrc_rank2_refresh a + * nd reg_ddrc_rank3_refresh. When dis_auto_refresh transitions from 0 to 1 + * , any pending refreshes are immediately scheduled by the uMCTL2. If DDR4 + * CRC/parity retry is enabled (CRCPARCTL1.crc_parity_retry_enable = 1), d + * isable auto-refresh is not supported, and this bit must be set to '0'. T + * his register field is changeable on the fly. +*/ #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT #undef DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL 0x00000000 -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT 0 -#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK 0x00000001U +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_DEFVAL 0x00000000 +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_SHIFT 0 +#define DDRC_RFSHCTL3_DIS_AUTO_REFRESH_MASK 0x00000001U -/*tREFI: Average time interval between refreshes per rank (Specification: 7.8us for DDR2, DDR3 and DDR4. See JEDEC specificatio - for mDDR, LPDDR2, LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refreshes (RFSHCTL0.per_bank_refresh = 0 - , this register should be set to tREFIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this register should - e set to tREFIpb For configurations with MEMC_FREQ_RATIO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI va - ue is different depending on the refresh mode. The user should program the appropriate value from the spec based on the value - programmed in the refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be greater than RFSHTMG.t_rfc_min, and RFS - TMG.t_rfc_nom_x32 must be greater than 0x1. Unit: Multiples of 32 clocks.*/ +/* +* tREFI: Average time interval between refreshes per rank (Specification: + * 7.8us for DDR2, DDR3 and DDR4. See JEDEC specification for mDDR, LPDDR2, + * LPDDR3 and LPDDR4). For LPDDR2/LPDDR3/LPDDR4: - if using all-bank refre + * shes (RFSHCTL0.per_bank_refresh = 0), this register should be set to tRE + * FIab - if using per-bank refreshes (RFSHCTL0.per_bank_refresh = 1), this + * register should be set to tREFIpb For configurations with MEMC_FREQ_RAT + * IO=2, program this to (tREFI/2), no rounding up. In DDR4 mode, tREFI val + * ue is different depending on the refresh mode. The user should program t + * he appropriate value from the spec based on the value programmed in the + * refresh mode register. Note that RFSHTMG.t_rfc_nom_x32 * 32 must be grea + * ter than RFSHTMG.t_rfc_min, and RFSHTMG.t_rfc_nom_x32 must be greater th + * an 0x1. Unit: Multiples of 32 clocks. +*/ #undef DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL #undef DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT #undef DDRC_RFSHTMG_T_RFC_NOM_X32_MASK -#define DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT 16 -#define DDRC_RFSHTMG_T_RFC_NOM_X32_MASK 0x0FFF0000U +#define DDRC_RFSHTMG_T_RFC_NOM_X32_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_T_RFC_NOM_X32_SHIFT 16 +#define DDRC_RFSHTMG_T_RFC_NOM_X32_MASK 0x0FFF0000U -/*Used only when LPDDR3 memory type is connected. Should only be changed when uMCTL2 is in reset. Specifies whether to use the - REFBW parameter (required by some LPDDR3 devices which comply with earlier versions of the LPDDR3 JEDEC specification) or not - - 0 - tREFBW parameter not used - 1 - tREFBW parameter used*/ +/* +* Used only when LPDDR3 memory type is connected. Should only be changed w + * hen uMCTL2 is in reset. Specifies whether to use the tREFBW parameter (r + * equired by some LPDDR3 devices which comply with earlier versions of the + * LPDDR3 JEDEC specification) or not: - 0 - tREFBW parameter not used - 1 + * - tREFBW parameter used +*/ #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT #undef DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT 15 -#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK 0x00008000U +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_SHIFT 15 +#define DDRC_RFSHTMG_LPDDR3_TREFBW_EN_MASK 0x00008000U -/*tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_FREQ_RATIO=1 configurations, t_rfc_min should be set t - RoundUp(tRFCmin/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to RoundUp(RoundUp(tRFCmin/tCK)/2). In L - DDR2/LPDDR3/LPDDR4 mode: - if using all-bank refreshes, the tRFCmin value in the above equations is equal to tRFCab - if usin - per-bank refreshes, the tRFCmin value in the above equations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above - equations is different depending on the refresh mode (fixed 1X,2X,4X) and the device density. The user should program the app - opriate value from the spec based on the 'refresh_mode' and the device density that is used. Unit: Clocks.*/ +/* +* tRFC (min): Minimum time from refresh to refresh or activate. For MEMC_F + * REQ_RATIO=1 configurations, t_rfc_min should be set to RoundUp(tRFCmin/t + * CK). For MEMC_FREQ_RATIO=2 configurations, t_rfc_min should be set to Ro + * undUp(RoundUp(tRFCmin/tCK)/2). In LPDDR2/LPDDR3/LPDDR4 mode: - if using + * all-bank refreshes, the tRFCmin value in the above equations is equal to + * tRFCab - if using per-bank refreshes, the tRFCmin value in the above eq + * uations is equal to tRFCpb In DDR4 mode, the tRFCmin value in the above + * equations is different depending on the refresh mode (fixed 1X,2X,4X) an + * d the device density. The user should program the appropriate value from + * the spec based on the 'refresh_mode' and the device density that is use + * d. Unit: Clocks. +*/ #undef DDRC_RFSHTMG_T_RFC_MIN_DEFVAL #undef DDRC_RFSHTMG_T_RFC_MIN_SHIFT #undef DDRC_RFSHTMG_T_RFC_MIN_MASK -#define DDRC_RFSHTMG_T_RFC_MIN_DEFVAL 0x0062008C -#define DDRC_RFSHTMG_T_RFC_MIN_SHIFT 0 -#define DDRC_RFSHTMG_T_RFC_MIN_MASK 0x000003FFU +#define DDRC_RFSHTMG_T_RFC_MIN_DEFVAL 0x0062008C +#define DDRC_RFSHTMG_T_RFC_MIN_SHIFT 0 +#define DDRC_RFSHTMG_T_RFC_MIN_MASK 0x000003FFU -/*Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_USE_RMW is defined*/ +/* +* Disable ECC scrubs. Valid only when ECCCFG0.ecc_mode = 3'b100 and MEMC_U + * SE_RMW is defined +*/ #undef DDRC_ECCCFG0_DIS_SCRUB_DEFVAL #undef DDRC_ECCCFG0_DIS_SCRUB_SHIFT #undef DDRC_ECCCFG0_DIS_SCRUB_MASK -#define DDRC_ECCCFG0_DIS_SCRUB_DEFVAL 0x00000000 -#define DDRC_ECCCFG0_DIS_SCRUB_SHIFT 4 -#define DDRC_ECCCFG0_DIS_SCRUB_MASK 0x00000010U +#define DDRC_ECCCFG0_DIS_SCRUB_DEFVAL 0x00000000 +#define DDRC_ECCCFG0_DIS_SCRUB_SHIFT 4 +#define DDRC_ECCCFG0_DIS_SCRUB_MASK 0x00000010U -/*ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED over 1 beat - all other settings are reserved for futur - use*/ +/* +* ECC mode indicator - 000 - ECC disabled - 100 - ECC enabled - SEC/DED ov + * er 1 beat - all other settings are reserved for future use +*/ #undef DDRC_ECCCFG0_ECC_MODE_DEFVAL #undef DDRC_ECCCFG0_ECC_MODE_SHIFT #undef DDRC_ECCCFG0_ECC_MODE_MASK -#define DDRC_ECCCFG0_ECC_MODE_DEFVAL 0x00000000 -#define DDRC_ECCCFG0_ECC_MODE_SHIFT 0 -#define DDRC_ECCCFG0_ECC_MODE_MASK 0x00000007U +#define DDRC_ECCCFG0_ECC_MODE_DEFVAL 0x00000000 +#define DDRC_ECCCFG0_ECC_MODE_SHIFT 0 +#define DDRC_ECCCFG0_ECC_MODE_MASK 0x00000007U -/*Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) data poisoning, if 1 -> 1-bit (correctable) data poison - ng, if ECCCFG1.data_poison_en=1*/ +/* +* Selects whether to poison 1 or 2 bits - if 0 -> 2-bit (uncorrectable) da + * ta poisoning, if 1 -> 1-bit (correctable) data poisoning, if ECCCFG1.dat + * a_poison_en=1 +*/ #undef DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL #undef DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT #undef DDRC_ECCCFG1_DATA_POISON_BIT_MASK -#define DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL 0x00000000 -#define DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT 1 -#define DDRC_ECCCFG1_DATA_POISON_BIT_MASK 0x00000002U +#define DDRC_ECCCFG1_DATA_POISON_BIT_DEFVAL 0x00000000 +#define DDRC_ECCCFG1_DATA_POISON_BIT_SHIFT 1 +#define DDRC_ECCCFG1_DATA_POISON_BIT_MASK 0x00000002U -/*Enable ECC data poisoning - introduces ECC errors on writes to address specified by the ECCPOISONADDR0/1 registers*/ +/* +* Enable ECC data poisoning - introduces ECC errors on writes to address s + * pecified by the ECCPOISONADDR0/1 registers +*/ #undef DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL #undef DDRC_ECCCFG1_DATA_POISON_EN_SHIFT #undef DDRC_ECCCFG1_DATA_POISON_EN_MASK -#define DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL 0x00000000 -#define DDRC_ECCCFG1_DATA_POISON_EN_SHIFT 0 -#define DDRC_ECCCFG1_DATA_POISON_EN_MASK 0x00000001U +#define DDRC_ECCCFG1_DATA_POISON_EN_DEFVAL 0x00000000 +#define DDRC_ECCCFG1_DATA_POISON_EN_SHIFT 0 +#define DDRC_ECCCFG1_DATA_POISON_EN_MASK 0x00000001U -/*The maximum number of DFI PHY clock cycles allowed from the assertion of the dfi_rddata_en signal to the assertion of each of - the corresponding bits of the dfi_rddata_valid signal. This corresponds to the DFI timing parameter tphy_rdlat. Refer to PHY - pecification for correct value. This value it only used for detecting read data timeout when DDR4 retry is enabled by CRCPARC - L1.crc_parity_retry_enable=1. Maximum supported value: - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ - dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mo - e ANDAND DFITMG0.dfi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_rdlat < 'd114 Unit: DFI Clocks*/ +/* +* The maximum number of DFI PHY clock cycles allowed from the assertion of + * the dfi_rddata_en signal to the assertion of each of the corresponding + * bits of the dfi_rddata_valid signal. This corresponds to the DFI timing + * parameter tphy_rdlat. Refer to PHY specification for correct value. This + * value it only used for detecting read data timeout when DDR4 retry is e + * nabled by CRCPARCTL1.crc_parity_retry_enable=1. Maximum supported value: + * - 1:1 Frequency mode : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_r + * dlat < 'd114 - 1:2 Frequency mode ANDAND DFITMG0.dfi_rddata_use_sdr == 1 + * : CRCPARCTL1.dfi_t_phy_rdlat < 64 - 1:2 Frequency mode ANDAND DFITMG0.d + * fi_rddata_use_sdr == 0 : DFITMG0.dfi_t_rddata_en + CRCPARCTL1.dfi_t_phy_ + * rdlat < 'd114 Unit: DFI Clocks +*/ #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT #undef DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT 24 -#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK 0x3F000000U +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_SHIFT 24 +#define DDRC_CRCPARCTL1_DFI_T_PHY_RDLAT_MASK 0x3F000000U -/*After a Parity or CRC error is flagged on dfi_alert_n signal, the software has an option to read the mode registers in the DR - M before the hardware begins the retry process - 1: Wait for software to read/write the mode registers before hardware begins - the retry. After software is done with its operations, it will clear the alert interrupt register bit - 0: Hardware can begin - the retry right away after the dfi_alert_n pulse goes away. The value on this register is valid only when retry is enabled (P - RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if the software doesn't clear the interrupt register afte - handling the parity/CRC error, then the hardware will not begin the retry process and the system will hang. In the case of P - rity/CRC error, there are two possibilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persistent parity' mode re - ister bit is NOT set: the commands sent during retry and normal operation are executed without parity checking. The value in - he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent parity' mode register bit is SET: Parity checking is - one for commands sent during retry and normal operation. If multiple errors occur before MR5[4] is cleared, the error log in - PR Page 1 should be treated as 'Don't care'.*/ +/* +* After a Parity or CRC error is flagged on dfi_alert_n signal, the softwa + * re has an option to read the mode registers in the DRAM before the hardw + * are begins the retry process - 1: Wait for software to read/write the mo + * de registers before hardware begins the retry. After software is done wi + * th its operations, it will clear the alert interrupt register bit - 0: H + * ardware can begin the retry right away after the dfi_alert_n pulse goes + * away. The value on this register is valid only when retry is enabled (PA + * RCTRL.crc_parity_retry_enable = 1) If this register is set to 1 and if t + * he software doesn't clear the interrupt register after handling the pari + * ty/CRC error, then the hardware will not begin the retry process and the + * system will hang. In the case of Parity/CRC error, there are two possib + * ilities when the software doesn't reset MR5[4] to 0. - (i) If 'Persisten + * t parity' mode register bit is NOT set: the commands sent during retry a + * nd normal operation are executed without parity checking. The value in t + * he Parity error log register MPR Page 1 is valid. - (ii) If 'Persistent + * parity' mode register bit is SET: Parity checking is done for commands s + * ent during retry and normal operation. If multiple errors occur before M + * R5[4] is cleared, the error log in MPR Page 1 should be treated as 'Don' + * t care'. +*/ #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT #undef DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT 9 -#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK 0x00000200U +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_SHIFT 9 +#define DDRC_CRCPARCTL1_ALERT_WAIT_FOR_SW_MASK 0x00000200U -/*- 1: Enable command retry mechanism in case of C/A Parity or CRC error - 0: Disable command retry mechanism when C/A Parity o - CRC features are enabled. Note that retry functionality is not supported if burst chop is enabled (MSTR.burstchop = 1) and/o - disable auto-refresh is enabled (RFSHCTL3.dis_auto_refresh = 1)*/ +/* +* - 1: Enable command retry mechanism in case of C/A Parity or CRC error - + * 0: Disable command retry mechanism when C/A Parity or CRC features are + * enabled. Note that retry functionality is not supported if burst chop is + * enabled (MSTR.burstchop = 1) and/or disable auto-refresh is enabled (RF + * SHCTL3.dis_auto_refresh = 1) +*/ #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT 8 -#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK 0x00000100U +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_SHIFT 8 +#define DDRC_CRCPARCTL1_CRC_PARITY_RETRY_ENABLE_MASK 0x00000100U -/*CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC not includes DM signal Present only in designs configur - d to support DDR4.*/ +/* +* CRC Calculation setting register - 1: CRC includes DM signal - 0: CRC no + * t includes DM signal Present only in designs configured to support DDR4. +*/ #undef DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL #undef DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT #undef DDRC_CRCPARCTL1_CRC_INC_DM_MASK -#define DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT 7 -#define DDRC_CRCPARCTL1_CRC_INC_DM_MASK 0x00000080U +#define DDRC_CRCPARCTL1_CRC_INC_DM_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_INC_DM_SHIFT 7 +#define DDRC_CRCPARCTL1_CRC_INC_DM_MASK 0x00000080U -/*CRC enable Register - 1: Enable generation of CRC - 0: Disable generation of CRC The setting of this register should match th - CRC mode register setting in the DRAM.*/ +/* +* CRC enable Register - 1: Enable generation of CRC - 0: Disable generatio + * n of CRC The setting of this register should match the CRC mode register + * setting in the DRAM. +*/ #undef DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_CRC_ENABLE_MASK -#define DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT 4 -#define DDRC_CRCPARCTL1_CRC_ENABLE_MASK 0x00000010U +#define DDRC_CRCPARCTL1_CRC_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_CRC_ENABLE_SHIFT 4 +#define DDRC_CRCPARCTL1_CRC_ENABLE_MASK 0x00000010U -/*C/A Parity enable register - 1: Enable generation of C/A parity and detection of C/A parity error - 0: Disable generation of - /A parity and disable detection of C/A parity error If RCD's parity error detection or SDRAM's parity detection is enabled, t - is register should be 1.*/ +/* +* C/A Parity enable register - 1: Enable generation of C/A parity and dete + * ction of C/A parity error - 0: Disable generation of C/A parity and disa + * ble detection of C/A parity error If RCD's parity error detection or SDR + * AM's parity detection is enabled, this register should be 1. +*/ #undef DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL #undef DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT #undef DDRC_CRCPARCTL1_PARITY_ENABLE_MASK -#define DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL 0x10000200 -#define DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT 0 -#define DDRC_CRCPARCTL1_PARITY_ENABLE_MASK 0x00000001U +#define DDRC_CRCPARCTL1_PARITY_ENABLE_DEFVAL 0x10000200 +#define DDRC_CRCPARCTL1_PARITY_ENABLE_SHIFT 0 +#define DDRC_CRCPARCTL1_PARITY_ENABLE_MASK 0x00000001U -/*Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a parity error occurs. Recommended values - - tPAR_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT_PW.MAX/2 and round up to next inte - er value. Values of 0, 1 and 2 are illegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max.*/ +/* +* Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a parity error occurs. Recommended values: - tPAR_ALERT_PW.M + * AX For configurations with MEMC_FREQ_RATIO=2, program this to tPAR_ALERT + * _PW.MAX/2 and round up to next integer value. Values of 0, 1 and 2 are i + * llegal. This value must be greater than CRCPARCTL2.t_crc_alert_pw_max. +*/ #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT #undef DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT 16 -#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK 0x01FF0000U +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_SHIFT 16 +#define DDRC_CRCPARCTL2_T_PAR_ALERT_PW_MAX_MASK 0x01FF0000U -/*Value from the DRAM spec indicating the maximum width of the dfi_alert_n pulse when a CRC error occurs. Recommended values: - - tCRC_ALERT_PW.MAX For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW.MAX/2 and round up to next integer - value. Values of 0, 1 and 2 are illegal. This value must be less than CRCPARCTL2.t_par_alert_pw_max.*/ +/* +* Value from the DRAM spec indicating the maximum width of the dfi_alert_n + * pulse when a CRC error occurs. Recommended values: - tCRC_ALERT_PW.MAX + * For configurations with MEMC_FREQ_RATIO=2, program this to tCRC_ALERT_PW + * .MAX/2 and round up to next integer value. Values of 0, 1 and 2 are ille + * gal. This value must be less than CRCPARCTL2.t_par_alert_pw_max. +*/ #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT #undef DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT 8 -#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK 0x00001F00U +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_SHIFT 8 +#define DDRC_CRCPARCTL2_T_CRC_ALERT_PW_MAX_MASK 0x00001F00U -/*Indicates the maximum duration in number of DRAM clock cycles for which a command should be held in the Command Retry FIFO be - ore it is popped out. Every location in the Command Retry FIFO has an associated down counting timer that will use this regis - er as the start value. The down counting starts when a command is loaded into the FIFO. The timer counts down every 4 DRAM cy - les. When the counter reaches zero, the entry is popped from the FIFO. All the counters are frozen, if a C/A Parity or CRC er - or occurs before the counter reaches zero. The counter is reset to 0, after all the commands in the FIFO are retried. Recomme - ded(minimum) values: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + tPAR_ALERT_ON - max + tPAR_UNKNOWN + PHY Alert Latency(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enabled/ Only CRC is en - bled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + RDIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) - + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be in terms of DRAM Clock and round up Note 2: Board de - ay(Command/Alert_n) should be considered. Note 3: Use the worst case(longer) value for PHY Latencies/Board delay Note 4: The - ecommended values are minimum value to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max value can be set - to this register is defined below: - MEMC_BURST_LENGTH == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH- - Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_D - PTH-4 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CM - _FIFO_DEPTH-8 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 Full bus Mode (C - C=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mo - e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarte - bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEP - H-6 Values of 0, 1 and 2 are illegal.*/ +/* +* Indicates the maximum duration in number of DRAM clock cycles for which + * a command should be held in the Command Retry FIFO before it is popped o + * ut. Every location in the Command Retry FIFO has an associated down coun + * ting timer that will use this register as the start value. The down coun + * ting starts when a command is loaded into the FIFO. The timer counts dow + * n every 4 DRAM cycles. When the counter reaches zero, the entry is poppe + * d from the FIFO. All the counters are frozen, if a C/A Parity or CRC err + * or occurs before the counter reaches zero. The counter is reset to 0, af + * ter all the commands in the FIFO are retried. Recommended(minimum) value + * s: - Only C/A Parity is enabled. RoundUp((PHY Command Latency(DRAM CLK) + * + CAL + RDIMM delay + tPAR_ALERT_ON.max + tPAR_UNKNOWN + PHY Alert Laten + * cy(DRAM CLK) + board delay) / 4) + 2 - Both C/A Parity and CRC is enable + * d/ Only CRC is enabled. RoundUp((PHY Command Latency(DRAM CLK) + CAL + R + * DIMM delay + WL + 5(BL10)+ tCRC_ALERT.max + PHY Alert Latency(DRAM CLK) + * + board delay) / 4) + 2 Note 1: All value (e.g. tPAR_ALERT_ON) should be + * in terms of DRAM Clock and round up Note 2: Board delay(Command/Alert_n + * ) should be considered. Note 3: Use the worst case(longer) value for PHY + * Latencies/Board delay Note 4: The Recommended values are minimum value + * to be set. For mode detail, See 'Calculation of FIFO Depth' section. Max + * value can be set to this register is defined below: - MEMC_BURST_LENGTH + * == 16 Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 + * Full bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Half b + * us Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Half bus Mod + * e (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Quarter bus Mode (C + * RC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-8 Quarter bus Mode (CRC= + * ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-12 - MEMC_BURST_LENGTH != 16 + * Full bus Mode (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-1 Full + * bus Mode (CRC=ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mod + * e (CRC=OFF) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-2 Half bus Mode (CRC + * =ON) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-3 Quarter bus Mode (CRC=OFF + * ) Max value = UMCTL2_RETRY_CMD_FIFO_DEPTH-4 Quarter bus Mode (CRC=ON) Ma + * x value = UMCTL2_RETRY_CMD_FIFO_DEPTH-6 Values of 0, 1 and 2 are illegal + * . +*/ #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT #undef DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL 0x0030050C -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT 0 -#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK 0x0000003FU +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_DEFVAL 0x0030050C +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_SHIFT 0 +#define DDRC_CRCPARCTL2_RETRY_FIFO_MAX_HOLD_TIMER_X4_MASK 0x0000003FU -/*If lower bit is enabled the SDRAM initialization routine is skipped. The upper bit decides what state the controller starts u - in when reset is removed - 00 - SDRAM Intialization routine is run after power-up - 01 - SDRAM Intialization routine is skip - ed after power-up. Controller starts up in Normal Mode - 11 - SDRAM Intialization routine is skipped after power-up. Controll - r starts up in Self-refresh Mode - 10 - SDRAM Intialization routine is run after power-up. Note: The only 2'b00 is supported - or LPDDR4 in this version of the uMCTL2.*/ +/* +* If lower bit is enabled the SDRAM initialization routine is skipped. The + * upper bit decides what state the controller starts up in when reset is + * removed - 00 - SDRAM Intialization routine is run after power-up - 01 - + * SDRAM Intialization routine is skipped after power-up. Controller starts + * up in Normal Mode - 11 - SDRAM Intialization routine is skipped after p + * ower-up. Controller starts up in Self-refresh Mode - 10 - SDRAM Intializ + * ation routine is run after power-up. Note: The only 2'b00 is supported f + * or LPDDR4 in this version of the uMCTL2. +*/ #undef DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL #undef DDRC_INIT0_SKIP_DRAM_INIT_SHIFT #undef DDRC_INIT0_SKIP_DRAM_INIT_MASK -#define DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL 0x0002004E -#define DDRC_INIT0_SKIP_DRAM_INIT_SHIFT 30 -#define DDRC_INIT0_SKIP_DRAM_INIT_MASK 0xC0000000U +#define DDRC_INIT0_SKIP_DRAM_INIT_DEFVAL 0x0002004E +#define DDRC_INIT0_SKIP_DRAM_INIT_SHIFT 30 +#define DDRC_INIT0_SKIP_DRAM_INIT_MASK 0xC0000000U -/*Cycles to wait after driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clocks. DDR2 typically requires - 400 ns delay, requiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDDR3 typically requires this to be pr - grammed for a delay of 200 us. LPDDR4 typically requires this to be programmed for a delay of 2 us. For configurations with M - MC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it up to next integer value.*/ +/* +* Cycles to wait after driving CKE high to start the SDRAM initialization + * sequence. Unit: 1024 clocks. DDR2 typically requires a 400 ns delay, req + * uiring this value to be programmed to 2 at all clock speeds. LPDDR2/LPDD + * R3 typically requires this to be programmed for a delay of 200 us. LPDDR + * 4 typically requires this to be programmed for a delay of 2 us. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divi + * ded by 2, and round it up to next integer value. +*/ #undef DDRC_INIT0_POST_CKE_X1024_DEFVAL #undef DDRC_INIT0_POST_CKE_X1024_SHIFT #undef DDRC_INIT0_POST_CKE_X1024_MASK -#define DDRC_INIT0_POST_CKE_X1024_DEFVAL 0x0002004E -#define DDRC_INIT0_POST_CKE_X1024_SHIFT 16 -#define DDRC_INIT0_POST_CKE_X1024_MASK 0x03FF0000U +#define DDRC_INIT0_POST_CKE_X1024_DEFVAL 0x0002004E +#define DDRC_INIT0_POST_CKE_X1024_SHIFT 16 +#define DDRC_INIT0_POST_CKE_X1024_MASK 0x03FF0000U -/*Cycles to wait after reset before driving CKE high to start the SDRAM initialization sequence. Unit: 1024 clock cycles. DDR2 - pecifications typically require this to be programmed for a delay of >= 200 us. LPDDR2/LPDDR3: tINIT1 of 100 ns (min) LPDDR4: - tINIT3 of 2 ms (min) For configurations with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by 2, and round it u - to next integer value.*/ +/* +* Cycles to wait after reset before driving CKE high to start the SDRAM in + * itialization sequence. Unit: 1024 clock cycles. DDR2 specifications typi + * cally require this to be programmed for a delay of >= 200 us. LPDDR2/LPD + * DR3: tINIT1 of 100 ns (min) LPDDR4: tINIT3 of 2 ms (min) For configurati + * ons with MEMC_FREQ_RATIO=2, program this to JEDEC spec value divided by + * 2, and round it up to next integer value. +*/ #undef DDRC_INIT0_PRE_CKE_X1024_DEFVAL #undef DDRC_INIT0_PRE_CKE_X1024_SHIFT #undef DDRC_INIT0_PRE_CKE_X1024_MASK -#define DDRC_INIT0_PRE_CKE_X1024_DEFVAL 0x0002004E -#define DDRC_INIT0_PRE_CKE_X1024_SHIFT 0 -#define DDRC_INIT0_PRE_CKE_X1024_MASK 0x00000FFFU +#define DDRC_INIT0_PRE_CKE_X1024_DEFVAL 0x0002004E +#define DDRC_INIT0_PRE_CKE_X1024_SHIFT 0 +#define DDRC_INIT0_PRE_CKE_X1024_MASK 0x00000FFFU -/*Number of cycles to assert SDRAM reset signal during init sequence. This is only present for designs supporting DDR3, DDR4 or - LPDDR4 devices. For use with a DDR PHY, this should be set to a minimum of 1*/ +/* +* Number of cycles to assert SDRAM reset signal during init sequence. This + * is only present for designs supporting DDR3, DDR4 or LPDDR4 devices. Fo + * r use with a DDR PHY, this should be set to a minimum of 1 +*/ #undef DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL #undef DDRC_INIT1_DRAM_RSTN_X1024_SHIFT #undef DDRC_INIT1_DRAM_RSTN_X1024_MASK -#define DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL 0x00000000 -#define DDRC_INIT1_DRAM_RSTN_X1024_SHIFT 16 -#define DDRC_INIT1_DRAM_RSTN_X1024_MASK 0x01FF0000U +#define DDRC_INIT1_DRAM_RSTN_X1024_DEFVAL 0x00000000 +#define DDRC_INIT1_DRAM_RSTN_X1024_SHIFT 16 +#define DDRC_INIT1_DRAM_RSTN_X1024_MASK 0x01FF0000U -/*Cycles to wait after completing the SDRAM initialization sequence before starting the dynamic scheduler. Unit: Counts of a gl - bal timer that pulses every 32 clock cycles. There is no known specific requirement for this; it may be set to zero.*/ +/* +* Cycles to wait after completing the SDRAM initialization sequence before + * starting the dynamic scheduler. Unit: Counts of a global timer that pul + * ses every 32 clock cycles. There is no known specific requirement for th + * is; it may be set to zero. +*/ #undef DDRC_INIT1_FINAL_WAIT_X32_DEFVAL #undef DDRC_INIT1_FINAL_WAIT_X32_SHIFT #undef DDRC_INIT1_FINAL_WAIT_X32_MASK -#define DDRC_INIT1_FINAL_WAIT_X32_DEFVAL 0x00000000 -#define DDRC_INIT1_FINAL_WAIT_X32_SHIFT 8 -#define DDRC_INIT1_FINAL_WAIT_X32_MASK 0x00007F00U +#define DDRC_INIT1_FINAL_WAIT_X32_DEFVAL 0x00000000 +#define DDRC_INIT1_FINAL_WAIT_X32_SHIFT 8 +#define DDRC_INIT1_FINAL_WAIT_X32_MASK 0x00007F00U -/*Wait period before driving the OCD complete command to SDRAM. Unit: Counts of a global timer that pulses every 32 clock cycle - . There is no known specific requirement for this; it may be set to zero.*/ +/* +* Wait period before driving the OCD complete command to SDRAM. Unit: Coun + * ts of a global timer that pulses every 32 clock cycles. There is no know + * n specific requirement for this; it may be set to zero. +*/ #undef DDRC_INIT1_PRE_OCD_X32_DEFVAL #undef DDRC_INIT1_PRE_OCD_X32_SHIFT #undef DDRC_INIT1_PRE_OCD_X32_MASK -#define DDRC_INIT1_PRE_OCD_X32_DEFVAL 0x00000000 -#define DDRC_INIT1_PRE_OCD_X32_SHIFT 0 -#define DDRC_INIT1_PRE_OCD_X32_MASK 0x0000000FU +#define DDRC_INIT1_PRE_OCD_X32_DEFVAL 0x00000000 +#define DDRC_INIT1_PRE_OCD_X32_SHIFT 0 +#define DDRC_INIT1_PRE_OCD_X32_MASK 0x0000000FU -/*Idle time after the reset command, tINIT4. Present only in designs configured to support LPDDR2. Unit: 32 clock cycles.*/ +/* +* Idle time after the reset command, tINIT4. Present only in designs confi + * gured to support LPDDR2. Unit: 32 clock cycles. +*/ #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT #undef DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL 0x00000D05 -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT 8 -#define DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK 0x0000FF00U +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_DEFVAL 0x00000D05 +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_SHIFT 8 +#define DDRC_INIT2_IDLE_AFTER_RESET_X32_MASK 0x0000FF00U -/*Time to wait after the first CKE high, tINIT2. Present only in designs configured to support LPDDR2/LPDDR3. Unit: 1 clock cyc - e. LPDDR2/LPDDR3 typically requires 5 x tCK delay.*/ +/* +* Time to wait after the first CKE high, tINIT2. Present only in designs c + * onfigured to support LPDDR2/LPDDR3. Unit: 1 clock cycle. LPDDR2/LPDDR3 t + * ypically requires 5 x tCK delay. +*/ #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT #undef DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL 0x00000D05 -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT 0 -#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK 0x0000000FU +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_DEFVAL 0x00000D05 +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_SHIFT 0 +#define DDRC_INIT2_MIN_STABLE_CLOCK_X1_MASK 0x0000000FU -/*DDR2: Value to write to MR register. Bit 8 is for DLL and the setting here is ignored. The uMCTL2 sets this bit appropriately - DDR3/DDR4: Value loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LPDDR3/LPDDR4 - Value to write to MR1 - register*/ +/* +* DDR2: Value to write to MR register. Bit 8 is for DLL and the setting he + * re is ignored. The uMCTL2 sets this bit appropriately. DDR3/DDR4: Value + * loaded into MR0 register. mDDR: Value to write to MR register. LPDDR2/LP + * DDR3/LPDDR4 - Value to write to MR1 register +*/ #undef DDRC_INIT3_MR_DEFVAL #undef DDRC_INIT3_MR_SHIFT #undef DDRC_INIT3_MR_MASK -#define DDRC_INIT3_MR_DEFVAL 0x00000510 -#define DDRC_INIT3_MR_SHIFT 16 -#define DDRC_INIT3_MR_MASK 0xFFFF0000U +#define DDRC_INIT3_MR_DEFVAL 0x00000510 +#define DDRC_INIT3_MR_SHIFT 16 +#define DDRC_INIT3_MR_MASK 0xFFFF0000U -/*DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setting in this register is ignored. The uMCTL2 sets those - bits appropriately. DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evaluation mode training is enabled, thi - bit is set appropriately by the uMCTL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/LPDDR3/LPDDR4 - V - lue to write to MR2 register*/ +/* +* DDR2: Value to write to EMR register. Bits 9:7 are for OCD and the setti + * ng in this register is ignored. The uMCTL2 sets those bits appropriately + * . DDR3/DDR4: Value to write to MR1 register Set bit 7 to 0. If PHY-evalu + * ation mode training is enabled, this bit is set appropriately by the uMC + * TL2 during write leveling. mDDR: Value to write to EMR register. LPDDR2/ + * LPDDR3/LPDDR4 - Value to write to MR2 register +*/ #undef DDRC_INIT3_EMR_DEFVAL #undef DDRC_INIT3_EMR_SHIFT #undef DDRC_INIT3_EMR_MASK -#define DDRC_INIT3_EMR_DEFVAL 0x00000510 -#define DDRC_INIT3_EMR_SHIFT 0 -#define DDRC_INIT3_EMR_MASK 0x0000FFFFU +#define DDRC_INIT3_EMR_DEFVAL 0x00000510 +#define DDRC_INIT3_EMR_SHIFT 0 +#define DDRC_INIT3_EMR_MASK 0x0000FFFFU -/*DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 - egister mDDR: Unused*/ +/* +* DDR2: Value to write to EMR2 register. DDR3/DDR4: Value to write to MR2 + * register LPDDR2/LPDDR3/LPDDR4: Value to write to MR3 register mDDR: Unus + * ed +*/ #undef DDRC_INIT4_EMR2_DEFVAL #undef DDRC_INIT4_EMR2_SHIFT #undef DDRC_INIT4_EMR2_MASK -#define DDRC_INIT4_EMR2_DEFVAL 0x00000000 -#define DDRC_INIT4_EMR2_SHIFT 16 -#define DDRC_INIT4_EMR2_MASK 0xFFFF0000U +#define DDRC_INIT4_EMR2_DEFVAL 0x00000000 +#define DDRC_INIT4_EMR2_SHIFT 16 +#define DDRC_INIT4_EMR2_MASK 0xFFFF0000U -/*DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to - rite to MR13 register*/ +/* +* DDR2: Value to write to EMR3 register. DDR3/DDR4: Value to write to MR3 + * register mDDR/LPDDR2/LPDDR3: Unused LPDDR4: Value to write to MR13 regis + * ter +*/ #undef DDRC_INIT4_EMR3_DEFVAL #undef DDRC_INIT4_EMR3_SHIFT #undef DDRC_INIT4_EMR3_MASK -#define DDRC_INIT4_EMR3_DEFVAL 0x00000000 -#define DDRC_INIT4_EMR3_SHIFT 0 -#define DDRC_INIT4_EMR3_MASK 0x0000FFFFU +#define DDRC_INIT4_EMR3_DEFVAL 0x00000000 +#define DDRC_INIT4_EMR3_SHIFT 0 +#define DDRC_INIT4_EMR3_MASK 0x0000FFFFU -/*ZQ initial calibration, tZQINIT. Present only in designs configured to support DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock - ycles. DDR3 typically requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requires 1 us.*/ +/* +* ZQ initial calibration, tZQINIT. Present only in designs configured to s + * upport DDR3 or DDR4 or LPDDR2/LPDDR3. Unit: 32 clock cycles. DDR3 typica + * lly requires 512 clocks. DDR4 requires 1024 clocks. LPDDR2/LPDDR3 requir + * es 1 us. +*/ #undef DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL #undef DDRC_INIT5_DEV_ZQINIT_X32_SHIFT #undef DDRC_INIT5_DEV_ZQINIT_X32_MASK -#define DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL 0x00100004 -#define DDRC_INIT5_DEV_ZQINIT_X32_SHIFT 16 -#define DDRC_INIT5_DEV_ZQINIT_X32_MASK 0x00FF0000U +#define DDRC_INIT5_DEV_ZQINIT_X32_DEFVAL 0x00100004 +#define DDRC_INIT5_DEV_ZQINIT_X32_SHIFT 16 +#define DDRC_INIT5_DEV_ZQINIT_X32_MASK 0x00FF0000U -/*Maximum duration of the auto initialization, tINIT5. Present only in designs configured to support LPDDR2/LPDDR3. LPDDR2/LPDD - 3 typically requires 10 us.*/ +/* +* Maximum duration of the auto initialization, tINIT5. Present only in des + * igns configured to support LPDDR2/LPDDR3. LPDDR2/LPDDR3 typically requir + * es 10 us. +*/ #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT #undef DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL 0x00100004 -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT 0 -#define DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK 0x000003FFU +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_DEFVAL 0x00100004 +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_SHIFT 0 +#define DDRC_INIT5_MAX_AUTO_INIT_X1024_MASK 0x000003FFU -/*DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR4 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT6_MR4_DEFVAL #undef DDRC_INIT6_MR4_SHIFT #undef DDRC_INIT6_MR4_MASK -#define DDRC_INIT6_MR4_DEFVAL 0x00000000 -#define DDRC_INIT6_MR4_SHIFT 16 -#define DDRC_INIT6_MR4_MASK 0xFFFF0000U +#define DDRC_INIT6_MR4_DEFVAL 0x00000000 +#define DDRC_INIT6_MR4_SHIFT 16 +#define DDRC_INIT6_MR4_MASK 0xFFFF0000U -/*DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR5 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT6_MR5_DEFVAL #undef DDRC_INIT6_MR5_SHIFT #undef DDRC_INIT6_MR5_MASK -#define DDRC_INIT6_MR5_DEFVAL 0x00000000 -#define DDRC_INIT6_MR5_SHIFT 0 -#define DDRC_INIT6_MR5_MASK 0x0000FFFFU +#define DDRC_INIT6_MR5_DEFVAL 0x00000000 +#define DDRC_INIT6_MR5_SHIFT 0 +#define DDRC_INIT6_MR5_MASK 0x0000FFFFU -/*DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs only.*/ +/* +* DDR4- Value to be loaded into SDRAM MR6 registers. Used in DDR4 designs + * only. +*/ #undef DDRC_INIT7_MR6_DEFVAL #undef DDRC_INIT7_MR6_SHIFT #undef DDRC_INIT7_MR6_MASK -#define DDRC_INIT7_MR6_DEFVAL -#define DDRC_INIT7_MR6_SHIFT 16 -#define DDRC_INIT7_MR6_MASK 0xFFFF0000U +#define DDRC_INIT7_MR6_DEFVAL +#define DDRC_INIT7_MR6_SHIFT 16 +#define DDRC_INIT7_MR6_MASK 0xFFFF0000U -/*Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enab - ed. This will be required for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapped. - 0 - BG0 and BG1 are swapped i - address mirroring is enabled.*/ +/* +* Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and + * BG1 are NOT swapped even if Address Mirroring is enabled. This will be r + * equired for DDR4 DIMMs with x16 devices. - 1 - BG0 and BG1 are NOT swapp + * ed. - 0 - BG0 and BG1 are swapped if address mirroring is enabled. +*/ #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT #undef DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT 5 -#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK 0x00000020U +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_SHIFT 5 +#define DDRC_DIMMCTL_DIMM_DIS_BG_MIRRORING_MASK 0x00000020U -/*Enable for BG1 bit of MRS command. BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output - nversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit. Note: This has no - effect on the address of any other memory accesses, or of software-driven mode register accesses. If address mirroring is ena - led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - Enabled - 0 - Disabled*/ +/* +* Enable for BG1 bit of MRS command. BG1 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have BG1 are attached and + * both the CA parity and the Output Inversion are enabled, this must be s + * et to 0, so that the calculation of CA parity will not include BG1 bit. + * Note: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. If address mirroring is enab + * led, this is applied to BG1 of even ranks and BG0 of odd ranks. - 1 - En + * abled - 0 - Disabled +*/ #undef DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL #undef DDRC_DIMMCTL_MRS_BG1_EN_SHIFT #undef DDRC_DIMMCTL_MRS_BG1_EN_MASK -#define DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_MRS_BG1_EN_SHIFT 4 -#define DDRC_DIMMCTL_MRS_BG1_EN_MASK 0x00000010U +#define DDRC_DIMMCTL_MRS_BG1_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_MRS_BG1_EN_SHIFT 4 +#define DDRC_DIMMCTL_MRS_BG1_EN_MASK 0x00000010U -/*Enable for A17 bit of MRS command. A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and mus - be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, - his must be set to 0, so that the calculation of CA parity will not include A17 bit. Note: This has no effect on the address - f any other memory accesses, or of software-driven mode register accesses. - 1 - Enabled - 0 - Disabled*/ +/* +* Enable for A17 bit of MRS command. A17 bit of the mode register address + * is specified as RFU (Reserved for Future Use) and must be programmed to + * 0 during MRS. In case where DRAMs which do not have A17 are attached and + * the Output Inversion are enabled, this must be set to 0, so that the ca + * lculation of CA parity will not include A17 bit. Note: This has no effec + * t on the address of any other memory accesses, or of software-driven mod + * e register accesses. - 1 - Enabled - 0 - Disabled +*/ #undef DDRC_DIMMCTL_MRS_A17_EN_DEFVAL #undef DDRC_DIMMCTL_MRS_A17_EN_SHIFT #undef DDRC_DIMMCTL_MRS_A17_EN_MASK -#define DDRC_DIMMCTL_MRS_A17_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_MRS_A17_EN_SHIFT 3 -#define DDRC_DIMMCTL_MRS_A17_EN_MASK 0x00000008U +#define DDRC_DIMMCTL_MRS_A17_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_MRS_A17_EN_SHIFT 3 +#define DDRC_DIMMCTL_MRS_A17_EN_MASK 0x00000008U -/*Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIMM implements the Output Inversion feature by default, - which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, - A0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the uMCTL2 during the automatic initi - lization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. - or B-side mode register accesses, these bits are inverted within the uMCTL2 to compensate for this RDIMM inversion. Note: Thi - has no effect on the address of any other memory accesses, or of software-driven mode register accesses. - 1 - Implement out - ut inversion for B-side DRAMs. - 0 - Do not implement output inversion for B-side DRAMs.*/ +/* +* Output Inversion Enable (for DDR4 RDIMM implementations only). DDR4 RDIM + * M implements the Output Inversion feature by default, which means that t + * he following address, bank address and bank group bits of B-side DRAMs a + * re inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit en + * sures that, for mode register accesses generated by the uMCTL2 during th + * e automatic initialization routine and enabling of a particular DDR4 fea + * ture, separate A-side and B-side mode register accesses are generated. F + * or B-side mode register accesses, these bits are inverted within the uMC + * TL2 to compensate for this RDIMM inversion. Note: This has no effect on + * the address of any other memory accesses, or of software-driven mode reg + * ister accesses. - 1 - Implement output inversion for B-side DRAMs. - 0 - + * Do not implement output inversion for B-side DRAMs. +*/ #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT 2 -#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK 0x00000004U +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_SHIFT 2 +#define DDRC_DIMMCTL_DIMM_OUTPUT_INV_EN_MASK 0x00000004U -/*Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations). Some UDIMMs and DD - 4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits - re swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures t - at, for mode register accesses during the automatic initialization routine, these bits are swapped within the uMCTL2 to compe - sate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they ar - swapped during the automatic MRS access to enable/disable of a particular DDR4 feature. Note: This has no effect on the addr - ss of any other memory accesses, or of software-driven mode register accesses. This is not supported for mDDR, LPDDR2, LPDDR3 - or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, - hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ranks, implement address mirroring for MRS commands to d - ring initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring) - 0 - Do - not implement address mirroring*/ +/* +* Address Mirroring Enable (for multi-rank UDIMM implementations and multi + * -rank DDR4 RDIMM implementations). Some UDIMMs and DDR4 RDIMMs implement + * address mirroring for odd ranks, which means that the following address + * , bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, + * A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting t + * his bit ensures that, for mode register accesses during the automatic in + * itialization routine, these bits are swapped within the uMCTL2 to compen + * sate for this UDIMM/RDIMM swapping. In addition to the automatic initial + * ization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during th + * e automatic MRS access to enable/disable of a particular DDR4 feature. N + * ote: This has no effect on the address of any other memory accesses, or + * of software-driven mode register accesses. This is not supported for mDD + * R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: In case of x16 DDR4 DIMMs, BG1 + * output of MRS for the odd ranks is same as BG0 because BG1 is invalid, + * hence dimm_dis_bg_mirroring register must be set to 1. - 1 - For odd ran + * ks, implement address mirroring for MRS commands to during initializatio + * n and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM imp + * lements address mirroring) - 0 - Do not implement address mirroring +*/ #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT 1 -#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK 0x00000002U +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_SHIFT 1 +#define DDRC_DIMMCTL_DIMM_ADDR_MIRR_EN_MASK 0x00000002U -/*Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only). This is not supported for mD - R, LPDDR2, LPDDR3 or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of software driven MR commands (via M - CTRL0/MRCTRL1), where software is responsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Send MRS commands t - each ranks seperately - 1 - (non-DDR4) Send all commands to even and odd ranks seperately - 0 - Do not stagger accesses*/ +/* +* Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIM + * M implementations only). This is not supported for mDDR, LPDDR2, LPDDR3 + * or LPDDR4 SDRAMs. Note: Even if this bit is set it does not take care of + * software driven MR commands (via MRCTRL0/MRCTRL1), where software is re + * sponsible to send them to seperate ranks as appropriate. - 1 - (DDR4) Se + * nd MRS commands to each ranks seperately - 1 - (non-DDR4) Send all comma + * nds to even and odd ranks seperately - 0 - Do not stagger accesses +*/ #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT #undef DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL 0x00000000 -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT 0 -#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK 0x00000001U +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_DEFVAL 0x00000000 +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_SHIFT 0 +#define DDRC_DIMMCTL_DIMM_STAGGER_CS_EN_MASK 0x00000001U -/*Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e writes to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should c - nsider both PHY requirement and ODT requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for value of tphy_wrcs - ap) If CRC feature is enabled, should be increased by 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increa - ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be increased by 1. - ODT requirement: The value programmed - n this register takes care of the ODT switch off timing requirement when switching ranks during writes. For LPDDR4, the requi - ement is ODTLoff - ODTLon - BL/2 + 1 For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY requirement - or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and round it u - to the next integer.*/ +/* +* Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive writes to differ + * ent ranks. This is used to switch the delays in the PHY to match the ran + * k requirements. This value should consider both PHY requirement and ODT + * requirement. - PHY requirement: tphy_wrcsgap + 1 (see PHY databook for v + * alue of tphy_wrcsgap) If CRC feature is enabled, should be increased by + * 1. If write preamble is set to 2tCK(DDR4/LPDDR4 only), should be increas + * ed by 1. If write postamble is set to 1.5tCK(LPDDR4 only), should be inc + * reased by 1. - ODT requirement: The value programmed in this register ta + * kes care of the ODT switch off timing requirement when switching ranks d + * uring writes. For LPDDR4, the requirement is ODTLoff - ODTLon - BL/2 + 1 + * For configurations with MEMC_FREQ_RATIO=1, program this to the larger o + * f PHY requirement or ODT requirement. For configurations with MEMC_FREQ_ + * RATIO=2, program this to the larger value divided by two and round it up + * to the next integer. +*/ #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT #undef DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL 0x0000066F -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT 8 -#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK 0x00000F00U +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_DEFVAL 0x0000066F +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_SHIFT 8 +#define DDRC_RANKCTL_DIFF_RANK_WR_GAP_MASK 0x00000F00U -/*Only present for multi-rank configurations. Indicates the number of clocks of gap in data responses when performing consecuti - e reads to different ranks. This is used to switch the delays in the PHY to match the rank requirements. This value should co - sider both PHY requirement and ODT requirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for value of tphy_rdcsg - p) If read preamble is set to 2tCK(DDR4/LPDDR4 only), should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 onl - ), should be increased by 1. - ODT requirement: The value programmed in this register takes care of the ODT switch off timing - requirement when switching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, program this to the larger of PHY r - quirement or ODT requirement. For configurations with MEMC_FREQ_RATIO=2, program this to the larger value divided by two and - ound it up to the next integer.*/ +/* +* Only present for multi-rank configurations. Indicates the number of cloc + * ks of gap in data responses when performing consecutive reads to differe + * nt ranks. This is used to switch the delays in the PHY to match the rank + * requirements. This value should consider both PHY requirement and ODT r + * equirement. - PHY requirement: tphy_rdcsgap + 1 (see PHY databook for va + * lue of tphy_rdcsgap) If read preamble is set to 2tCK(DDR4/LPDDR4 only), + * should be increased by 1. If read postamble is set to 1.5tCK(LPDDR4 only + * ), should be increased by 1. - ODT requirement: The value programmed in + * this register takes care of the ODT switch off timing requirement when s + * witching ranks during reads. For configurations with MEMC_FREQ_RATIO=1, + * program this to the larger of PHY requirement or ODT requirement. For co + * nfigurations with MEMC_FREQ_RATIO=2, program this to the larger value di + * vided by two and round it up to the next integer. +*/ #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT #undef DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL 0x0000066F -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT 4 -#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK 0x000000F0U +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_DEFVAL 0x0000066F +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_SHIFT 4 +#define DDRC_RANKCTL_DIFF_RANK_RD_GAP_MASK 0x000000F0U -/*Only present for multi-rank configurations. Background: Reads to the same rank can be performed back-to-back. Reads to differ - nt ranks require additional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is to avoid possible data bus content - on as well as to give PHY enough time to switch the delay when changing ranks. The uMCTL2 arbitrates for bus access on a cycl - -by-cycle basis; therefore after a read is scheduled, there are few clock cycles (determined by the value on RANKCTL.diff_ran - _rd_gap register) in which only reads from the same rank are eligible to be scheduled. This prevents reads from other ranks f - om having fair access to the data bus. This parameter represents the maximum number of reads that can be scheduled consecutiv - ly to the same rank. After this number is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by the scheduler to - llow all ranks a fair opportunity to be scheduled. Higher numbers increase bandwidth utilization, lower numbers increase fair - ess. This feature can be DISABLED by setting this register to 0. When set to 0, the Controller will stay on the same rank as - ong as commands are available for it. Minimum programmable value is 0 (feature disabled) and maximum programmable value is 0x - . FOR PERFORMANCE ONLY.*/ +/* +* Only present for multi-rank configurations. Background: Reads to the sam + * e rank can be performed back-to-back. Reads to different ranks require a + * dditional gap dictated by the register RANKCTL.diff_rank_rd_gap. This is + * to avoid possible data bus contention as well as to give PHY enough tim + * e to switch the delay when changing ranks. The uMCTL2 arbitrates for bus + * access on a cycle-by-cycle basis; therefore after a read is scheduled, + * there are few clock cycles (determined by the value on RANKCTL.diff_rank + * _rd_gap register) in which only reads from the same rank are eligible to + * be scheduled. This prevents reads from other ranks from having fair acc + * ess to the data bus. This parameter represents the maximum number of rea + * ds that can be scheduled consecutively to the same rank. After this numb + * er is reached, a delay equal to RANKCTL.diff_rank_rd_gap is inserted by + * the scheduler to allow all ranks a fair opportunity to be scheduled. Hig + * her numbers increase bandwidth utilization, lower numbers increase fairn + * ess. This feature can be DISABLED by setting this register to 0. When se + * t to 0, the Controller will stay on the same rank as long as commands ar + * e available for it. Minimum programmable value is 0 (feature disabled) a + * nd maximum programmable value is 0xF. FOR PERFORMANCE ONLY. +*/ #undef DDRC_RANKCTL_MAX_RANK_RD_DEFVAL #undef DDRC_RANKCTL_MAX_RANK_RD_SHIFT #undef DDRC_RANKCTL_MAX_RANK_RD_MASK -#define DDRC_RANKCTL_MAX_RANK_RD_DEFVAL 0x0000066F -#define DDRC_RANKCTL_MAX_RANK_RD_SHIFT 0 -#define DDRC_RANKCTL_MAX_RANK_RD_MASK 0x0000000FU +#define DDRC_RANKCTL_MAX_RANK_RD_DEFVAL 0x0000066F +#define DDRC_RANKCTL_MAX_RANK_RD_SHIFT 0 +#define DDRC_RANKCTL_MAX_RANK_RD_MASK 0x0000000FU -/*Minimum time between write and precharge to same bank. Unit: Clocks Specifications: WL + BL/2 + tWR = approximately 8 cycles - 15 ns = 14 clocks @400MHz and less for lower frequencies where: - WL = write latency - BL = burst length. This must match th - value programmed in the BL bit of the mode register to the SDRAM. BST (burst terminate) is not supported at present. - tWR = - Write recovery time. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this - arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For configurations - with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer value.*/ +/* +* Minimum time between write and precharge to same bank. Unit: Clocks Spec + * ifications: WL + BL/2 + tWR = approximately 8 cycles + 15 ns = 14 clocks + * @400MHz and less for lower frequencies where: - WL = write latency - BL + * = burst length. This must match the value programmed in the BL bit of t + * he mode register to the SDRAM. BST (burst terminate) is not supported at + * present. - tWR = Write recovery time. This comes directly from the SDRA + * M specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 for this p + * arameter. For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the + * above value by 2. No rounding up. For configurations with MEMC_FREQ_RAT + * IO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it u + * p to the next integer value. +*/ #undef DDRC_DRAMTMG0_WR2PRE_DEFVAL #undef DDRC_DRAMTMG0_WR2PRE_SHIFT #undef DDRC_DRAMTMG0_WR2PRE_MASK -#define DDRC_DRAMTMG0_WR2PRE_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_WR2PRE_SHIFT 24 -#define DDRC_DRAMTMG0_WR2PRE_MASK 0x7F000000U +#define DDRC_DRAMTMG0_WR2PRE_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_WR2PRE_SHIFT 24 +#define DDRC_DRAMTMG0_WR2PRE_MASK 0x7F000000U -/*tFAW Valid only when 8 or more banks(or banks x bank groups) are present. In 8-bank design, at most 4 banks must be activated - in a rolling window of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program this to (tFAW/2) and round up to next - nteger value. In a 4-bank design, set this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. Unit: Clocks*/ +/* +* tFAW Valid only when 8 or more banks(or banks x bank groups) are present + * . In 8-bank design, at most 4 banks must be activated in a rolling windo + * w of tFAW cycles. For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tFAW/2) and round up to next integer value. In a 4-bank design, se + * t this register to 0x1 independent of the MEMC_FREQ_RATIO configuration. + * Unit: Clocks +*/ #undef DDRC_DRAMTMG0_T_FAW_DEFVAL #undef DDRC_DRAMTMG0_T_FAW_SHIFT #undef DDRC_DRAMTMG0_T_FAW_MASK -#define DDRC_DRAMTMG0_T_FAW_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_FAW_SHIFT 16 -#define DDRC_DRAMTMG0_T_FAW_MASK 0x003F0000U +#define DDRC_DRAMTMG0_T_FAW_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_FAW_SHIFT 16 +#define DDRC_DRAMTMG0_T_FAW_MASK 0x003F0000U -/*tRAS(max): Maximum time between activate and precharge to same bank. This is the maximum time that a page can be kept open Mi - imum value of this register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO=2, program this to (tRAS(max)-1)/2 - No rounding up. Unit: Multiples of 1024 clocks.*/ +/* +* tRAS(max): Maximum time between activate and precharge to same bank. Thi + * s is the maximum time that a page can be kept open Minimum value of this + * register is 1. Zero is invalid. For configurations with MEMC_FREQ_RATIO + * =2, program this to (tRAS(max)-1)/2. No rounding up. Unit: Multiples of + * 1024 clocks. +*/ #undef DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL #undef DDRC_DRAMTMG0_T_RAS_MAX_SHIFT #undef DDRC_DRAMTMG0_T_RAS_MAX_MASK -#define DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_RAS_MAX_SHIFT 8 -#define DDRC_DRAMTMG0_T_RAS_MAX_MASK 0x00007F00U +#define DDRC_DRAMTMG0_T_RAS_MAX_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_RAS_MAX_SHIFT 8 +#define DDRC_DRAMTMG0_T_RAS_MAX_MASK 0x00007F00U -/*tRAS(min): Minimum time between activate and precharge to the same bank. For configurations with MEMC_FREQ_RATIO=2, 1T mode, - rogram this to tRAS(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, program this t - (tRAS(min)/2) and round it up to the next integer value. Unit: Clocks*/ +/* +* tRAS(min): Minimum time between activate and precharge to the same bank. + * For configurations with MEMC_FREQ_RATIO=2, 1T mode, program this to tRA + * S(min)/2. No rounding up. For configurations with MEMC_FREQ_RATIO=2, 2T + * mode or LPDDR4 mode, program this to (tRAS(min)/2) and round it up to th + * e next integer value. Unit: Clocks +*/ #undef DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL #undef DDRC_DRAMTMG0_T_RAS_MIN_SHIFT #undef DDRC_DRAMTMG0_T_RAS_MIN_MASK -#define DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL 0x0F101B0F -#define DDRC_DRAMTMG0_T_RAS_MIN_SHIFT 0 -#define DDRC_DRAMTMG0_T_RAS_MIN_MASK 0x0000003FU +#define DDRC_DRAMTMG0_T_RAS_MIN_DEFVAL 0x0F101B0F +#define DDRC_DRAMTMG0_T_RAS_MIN_SHIFT 0 +#define DDRC_DRAMTMG0_T_RAS_MIN_MASK 0x0000003FU -/*tXP: Minimum time after power-down exit to any operation. For DDR3, this should be programmed to tXPDLL if slow powerdown exi - is selected in MR0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For configurations with MEMC_FREQ_RATIO=2, - rogram this to (tXP/2) and round it up to the next integer value. Units: Clocks*/ +/* +* tXP: Minimum time after power-down exit to any operation. For DDR3, this + * should be programmed to tXPDLL if slow powerdown exit is selected in MR + * 0[12]. If C/A parity for DDR4 is used, set to (tXP+PL) instead. For conf + * igurations with MEMC_FREQ_RATIO=2, program this to (tXP/2) and round it + * up to the next integer value. Units: Clocks +*/ #undef DDRC_DRAMTMG1_T_XP_DEFVAL #undef DDRC_DRAMTMG1_T_XP_SHIFT #undef DDRC_DRAMTMG1_T_XP_MASK -#define DDRC_DRAMTMG1_T_XP_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_T_XP_SHIFT 16 -#define DDRC_DRAMTMG1_T_XP_MASK 0x001F0000U +#define DDRC_DRAMTMG1_T_XP_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_T_XP_SHIFT 16 +#define DDRC_DRAMTMG1_T_XP_MASK 0x001F0000U -/*tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL/2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - D - R4: Max of following two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 - LPDDR2: Depends on if it's LPDDR2 - S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + tRTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) - 4 - LPDDR4: BL - 2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_RATIO=2, 1T mode, divide the above value by 2. No rounding up. For conf - gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the above value by 2 and round it up to the next integer val - e. Unit: Clocks.*/ +/* +* tRTP: Minimum time from read to precharge of same bank. - DDR2: tAL + BL + * /2 + max(tRTP, 2) - 2 - DDR3: tAL + max (tRTP, 4) - DDR4: Max of followi + * ng two equations: tAL + max (tRTP, 4) or, RL + BL/2 - tRP. - mDDR: BL/2 + * - LPDDR2: Depends on if it's LPDDR2-S2 or LPDDR2-S4: LPDDR2-S2: BL/2 + t + * RTP - 1. LPDDR2-S4: BL/2 + max(tRTP,2) - 2. - LPDDR3: BL/2 + max(tRTP,4) + * - 4 - LPDDR4: BL/2 + max(tRTP,8) - 8 For configurations with MEMC_FREQ_ + * RATIO=2, 1T mode, divide the above value by 2. No rounding up. For confi + * gurations with MEMC_FREQ_RATIO=2, 2T mode or LPDDR4 mode, divide the abo + * ve value by 2 and round it up to the next integer value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG1_RD2PRE_DEFVAL #undef DDRC_DRAMTMG1_RD2PRE_SHIFT #undef DDRC_DRAMTMG1_RD2PRE_MASK -#define DDRC_DRAMTMG1_RD2PRE_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_RD2PRE_SHIFT 8 -#define DDRC_DRAMTMG1_RD2PRE_MASK 0x00001F00U +#define DDRC_DRAMTMG1_RD2PRE_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_RD2PRE_SHIFT 8 +#define DDRC_DRAMTMG1_RD2PRE_MASK 0x00001F00U -/*tRC: Minimum time between activates to same bank. For configurations with MEMC_FREQ_RATIO=2, program this to (tRC/2) and roun - up to next integer value. Unit: Clocks.*/ +/* +* tRC: Minimum time between activates to same bank. For configurations wit + * h MEMC_FREQ_RATIO=2, program this to (tRC/2) and round up to next intege + * r value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG1_T_RC_DEFVAL #undef DDRC_DRAMTMG1_T_RC_SHIFT #undef DDRC_DRAMTMG1_T_RC_MASK -#define DDRC_DRAMTMG1_T_RC_DEFVAL 0x00080414 -#define DDRC_DRAMTMG1_T_RC_SHIFT 0 -#define DDRC_DRAMTMG1_T_RC_MASK 0x0000007FU +#define DDRC_DRAMTMG1_T_RC_DEFVAL 0x00080414 +#define DDRC_DRAMTMG1_T_RC_SHIFT 0 +#define DDRC_DRAMTMG1_T_RC_MASK 0x0000007FU -/*Set to WL Time from write command to write data on SDRAM interface. This must be set to WL. For mDDR, it should normally be s - t to 1. Note that, depending on the PHY, if using RDIMM, it may be necessary to use a value of WL + 1 to compensate for the e - tra cycle of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above - equation by 2, and round it up to next integer. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAININ - is set), as the DFI read and write latencies defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks*/ +/* +* Set to WL Time from write command to write data on SDRAM interface. This + * must be set to WL. For mDDR, it should normally be set to 1. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use a valu + * e of WL + 1 to compensate for the extra cycle of latency through the RDI + * MM For configurations with MEMC_FREQ_RATIO=2, divide the value calculate + * d using the above equation by 2, and round it up to next integer. This r + * egister field is not required for DDR2 and DDR3 (except if MEMC_TRAINING + * is set), as the DFI read and write latencies defined in DFITMG0 and DFI + * TMG1 are sufficient for those protocols Unit: clocks +*/ #undef DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL #undef DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT #undef DDRC_DRAMTMG2_WRITE_LATENCY_MASK -#define DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT 24 -#define DDRC_DRAMTMG2_WRITE_LATENCY_MASK 0x3F000000U +#define DDRC_DRAMTMG2_WRITE_LATENCY_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_WRITE_LATENCY_SHIFT 24 +#define DDRC_DRAMTMG2_WRITE_LATENCY_MASK 0x3F000000U -/*Set to RL Time from read command to read data on SDRAM interface. This must be set to RL. Note that, depending on the PHY, if - using RDIMM, it mat be necessary to use a value of RL + 1 to compensate for the extra cycle of latency through the RDIMM For - onfigurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next inte - er. This register field is not required for DDR2 and DDR3 (except if MEMC_TRAINING is set), as the DFI read and write latenci - s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit: clocks*/ +/* +* Set to RL Time from read command to read data on SDRAM interface. This m + * ust be set to RL. Note that, depending on the PHY, if using RDIMM, it ma + * t be necessary to use a value of RL + 1 to compensate for the extra cycl + * e of latency through the RDIMM For configurations with MEMC_FREQ_RATIO=2 + * , divide the value calculated using the above equation by 2, and round i + * t up to next integer. This register field is not required for DDR2 and D + * DR3 (except if MEMC_TRAINING is set), as the DFI read and write latencie + * s defined in DFITMG0 and DFITMG1 are sufficient for those protocols Unit + * : clocks +*/ #undef DDRC_DRAMTMG2_READ_LATENCY_DEFVAL #undef DDRC_DRAMTMG2_READ_LATENCY_SHIFT #undef DDRC_DRAMTMG2_READ_LATENCY_MASK -#define DDRC_DRAMTMG2_READ_LATENCY_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_READ_LATENCY_SHIFT 16 -#define DDRC_DRAMTMG2_READ_LATENCY_MASK 0x003F0000U +#define DDRC_DRAMTMG2_READ_LATENCY_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_READ_LATENCY_SHIFT 16 +#define DDRC_DRAMTMG2_READ_LATENCY_MASK 0x003F0000U -/*DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL LPDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL - PDDR4(DQ ODT is Disabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL LPDDR4(DQ ODT is Enabled) : RL + B - /2 + RU(tDQSCKmax/tCK) + RD_POSTAMBLE - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write command. Include - time for bus turnaround and all per-bank, per-rank, and global constraints. Unit: Clocks. Where: - WL = write latency - BL = - urst length. This must match the value programmed in the BL bit of the mode register to the SDRAM - RL = read latency = CAS l - tency - WR_PREAMBLE = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = read postamble. This is unique to L - DDR4. For LPDDR2/LPDDR3/LPDDR4, if derating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should be used. For conf - gurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer.*/ +/* +* DDR2/3/mDDR: RL + BL/2 + 2 - WL DDR4: RL + BL/2 + 1 + WR_PREAMBLE - WL L + * PDDR2/LPDDR3: RL + BL/2 + RU(tDQSCKmax/tCK) + 1 - WL LPDDR4(DQ ODT is Di + * sabled): RL + BL/2 + RU(tDQSCKmax/tCK) + WR_PREAMBLE + RD_POSTAMBLE - WL + * LPDDR4(DQ ODT is Enabled) : RL + BL/2 + RU(tDQSCKmax/tCK) + RD_POSTAMBL + * E - ODTLon - RU(tODTon(min)/tCK) Minimum time from read command to write + * command. Include time for bus turnaround and all per-bank, per-rank, an + * d global constraints. Unit: Clocks. Where: - WL = write latency - BL = b + * urst length. This must match the value programmed in the BL bit of the m + * ode register to the SDRAM - RL = read latency = CAS latency - WR_PREAMBL + * E = write preamble. This is unique to DDR4 and LPDDR4. - RD_POSTAMBLE = + * read postamble. This is unique to LPDDR4. For LPDDR2/LPDDR3/LPDDR4, if d + * erating is enabled (DERATEEN.derate_enable=1), derated tDQSCKmax should + * be used. For configurations with MEMC_FREQ_RATIO=2, divide the value cal + * culated using the above equation by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG2_RD2WR_DEFVAL #undef DDRC_DRAMTMG2_RD2WR_SHIFT #undef DDRC_DRAMTMG2_RD2WR_MASK -#define DDRC_DRAMTMG2_RD2WR_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_RD2WR_SHIFT 8 -#define DDRC_DRAMTMG2_RD2WR_MASK 0x00003F00U +#define DDRC_DRAMTMG2_RD2WR_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_RD2WR_SHIFT 8 +#define DDRC_DRAMTMG2_RD2WR_MASK 0x00003F00U -/*DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimum time from write command to read command for same ba - k group. In others, minimum time from write command to read command. Includes time for bus turnaround, recovery times, and al - per-bank, per-rank, and global constraints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burs - length. This must match the value programmed in the BL bit of the mode register to the SDRAM - tWTR_L = internal write to re - d command delay for same bank group. This comes directly from the SDRAM specification. - tWTR = internal write to read comman - delay. This comes directly from the SDRAM specification. Add one extra cycle for LPDDR2/LPDDR3/LPDDR4 operation. For configu - ations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next integer.*/ +/* +* DDR4: CWL + PL + BL/2 + tWTR_L Others: CWL + BL/2 + tWTR In DDR4, minimu + * m time from write command to read command for same bank group. In others + * , minimum time from write command to read command. Includes time for bus + * turnaround, recovery times, and all per-bank, per-rank, and global cons + * traints. Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity la + * tency - BL = burst length. This must match the value programmed in the B + * L bit of the mode register to the SDRAM - tWTR_L = internal write to rea + * d command delay for same bank group. This comes directly from the SDRAM + * specification. - tWTR = internal write to read command delay. This comes + * directly from the SDRAM specification. Add one extra cycle for LPDDR2/L + * PDDR3/LPDDR4 operation. For configurations with MEMC_FREQ_RATIO=2, divid + * e the value calculated using the above equation by 2, and round it up to + * next integer. +*/ #undef DDRC_DRAMTMG2_WR2RD_DEFVAL #undef DDRC_DRAMTMG2_WR2RD_SHIFT #undef DDRC_DRAMTMG2_WR2RD_MASK -#define DDRC_DRAMTMG2_WR2RD_DEFVAL 0x0305060D -#define DDRC_DRAMTMG2_WR2RD_SHIFT 0 -#define DDRC_DRAMTMG2_WR2RD_MASK 0x0000003FU +#define DDRC_DRAMTMG2_WR2RD_DEFVAL 0x0305060D +#define DDRC_DRAMTMG2_WR2RD_SHIFT 0 +#define DDRC_DRAMTMG2_WR2RD_MASK 0x0000003FU -/*Time to wait after a mode register write or read (MRW or MRR). Present only in designs configured to support LPDDR2, LPDDR3 o - LPDDR4. LPDDR2 typically requires value of 5. LPDDR3 typically requires value of 10. LPDDR4: Set this to the larger of tMRW - nd tMRWCKEL. For LPDDR2, this register is used for the time from a MRW/MRR to all other commands. For LDPDR3, this register i - used for the time from a MRW/MRR to a MRW/MRR.*/ +/* +* Time to wait after a mode register write or read (MRW or MRR). Present o + * nly in designs configured to support LPDDR2, LPDDR3 or LPDDR4. LPDDR2 ty + * pically requires value of 5. LPDDR3 typically requires value of 10. LPDD + * R4: Set this to the larger of tMRW and tMRWCKEL. For LPDDR2, this regist + * er is used for the time from a MRW/MRR to all other commands. For LDPDR3 + * , this register is used for the time from a MRW/MRR to a MRW/MRR. +*/ #undef DDRC_DRAMTMG3_T_MRW_DEFVAL #undef DDRC_DRAMTMG3_T_MRW_SHIFT #undef DDRC_DRAMTMG3_T_MRW_MASK -#define DDRC_DRAMTMG3_T_MRW_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MRW_SHIFT 20 -#define DDRC_DRAMTMG3_T_MRW_MASK 0x3FF00000U +#define DDRC_DRAMTMG3_T_MRW_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MRW_SHIFT 20 +#define DDRC_DRAMTMG3_T_MRW_MASK 0x3FF00000U -/*tMRD: Cycles to wait after a mode register write or read. Depending on the connected SDRAM, tMRD represents: DDR2/mDDR: Time - rom MRS to any command DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Time from MRS to non-MRS command For c - nfigurations with MEMC_FREQ_RATIO=2, program this to (tMRD/2) and round it up to the next integer value. If C/A parity for DD - 4 is used, set to tMRD_PAR(tMOD+PL) instead.*/ +/* +* tMRD: Cycles to wait after a mode register write or read. Depending on t + * he connected SDRAM, tMRD represents: DDR2/mDDR: Time from MRS to any com + * mand DDR3/4: Time from MRS to MRS command LPDDR2: not used LPDDR3/4: Tim + * e from MRS to non-MRS command For configurations with MEMC_FREQ_RATIO=2, + * program this to (tMRD/2) and round it up to the next integer value. If + * C/A parity for DDR4 is used, set to tMRD_PAR(tMOD+PL) instead. +*/ #undef DDRC_DRAMTMG3_T_MRD_DEFVAL #undef DDRC_DRAMTMG3_T_MRD_SHIFT #undef DDRC_DRAMTMG3_T_MRD_MASK -#define DDRC_DRAMTMG3_T_MRD_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MRD_SHIFT 12 -#define DDRC_DRAMTMG3_T_MRD_MASK 0x0003F000U +#define DDRC_DRAMTMG3_T_MRD_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MRD_SHIFT 12 +#define DDRC_DRAMTMG3_T_MRD_MASK 0x0003F000U -/*tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode command and following non-load mode command. If C/A pari - y for DDR4 is used, set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or tMOD/2 (rounded up to next integer - if MEMC_FREQ_RATIO=2. Note that if using RDIMM, depending on the PHY, it may be necessary to use a value of tMOD + 1 or (tMO - + 1)/2 to compensate for the extra cycle of latency applied to mode register writes by the RDIMM chip.*/ +/* +* tMOD: Parameter used only in DDR3 and DDR4. Cycles between load mode com + * mand and following non-load mode command. If C/A parity for DDR4 is used + * , set to tMOD_PAR(tMOD+PL) instead. Set to tMOD if MEMC_FREQ_RATIO=1, or + * tMOD/2 (rounded up to next integer) if MEMC_FREQ_RATIO=2. Note that if + * using RDIMM, depending on the PHY, it may be necessary to use a value of + * tMOD + 1 or (tMOD + 1)/2 to compensate for the extra cycle of latency a + * pplied to mode register writes by the RDIMM chip. +*/ #undef DDRC_DRAMTMG3_T_MOD_DEFVAL #undef DDRC_DRAMTMG3_T_MOD_SHIFT #undef DDRC_DRAMTMG3_T_MOD_MASK -#define DDRC_DRAMTMG3_T_MOD_DEFVAL 0x0050400C -#define DDRC_DRAMTMG3_T_MOD_SHIFT 0 -#define DDRC_DRAMTMG3_T_MOD_MASK 0x000003FFU +#define DDRC_DRAMTMG3_T_MOD_DEFVAL 0x0050400C +#define DDRC_DRAMTMG3_T_MOD_SHIFT 0 +#define DDRC_DRAMTMG3_T_MOD_MASK 0x000003FFU -/*tRCD - tAL: Minimum time from activate to read or write command to same bank. For configurations with MEMC_FREQ_RATIO=2, prog - am this to ((tRCD - tAL)/2) and round it up to the next integer value. Minimum value allowed for this register is 1, which im - lies minimum (tRCD - tAL) value to be 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks.*/ +/* +* tRCD - tAL: Minimum time from activate to read or write command to same + * bank. For configurations with MEMC_FREQ_RATIO=2, program this to ((tRCD + * - tAL)/2) and round it up to the next integer value. Minimum value allow + * ed for this register is 1, which implies minimum (tRCD - tAL) value to b + * e 2 in configurations with MEMC_FREQ_RATIO=2. Unit: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RCD_DEFVAL #undef DDRC_DRAMTMG4_T_RCD_SHIFT #undef DDRC_DRAMTMG4_T_RCD_MASK -#define DDRC_DRAMTMG4_T_RCD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RCD_SHIFT 24 -#define DDRC_DRAMTMG4_T_RCD_MASK 0x1F000000U +#define DDRC_DRAMTMG4_T_RCD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RCD_SHIFT 24 +#define DDRC_DRAMTMG4_T_RCD_MASK 0x1F000000U -/*DDR4: tCCD_L: This is the minimum time between two reads or two writes for same bank group. Others: tCCD: This is the minimum - time between two reads or two writes. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_L/2 or tCCD/2) and rou - d it up to the next integer value. Unit: clocks.*/ +/* +* DDR4: tCCD_L: This is the minimum time between two reads or two writes f + * or same bank group. Others: tCCD: This is the minimum time between two r + * eads or two writes. For configurations with MEMC_FREQ_RATIO=2, program t + * his to (tCCD_L/2 or tCCD/2) and round it up to the next integer value. U + * nit: clocks. +*/ #undef DDRC_DRAMTMG4_T_CCD_DEFVAL #undef DDRC_DRAMTMG4_T_CCD_SHIFT #undef DDRC_DRAMTMG4_T_CCD_MASK -#define DDRC_DRAMTMG4_T_CCD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_CCD_SHIFT 16 -#define DDRC_DRAMTMG4_T_CCD_MASK 0x000F0000U +#define DDRC_DRAMTMG4_T_CCD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_CCD_SHIFT 16 +#define DDRC_DRAMTMG4_T_CCD_MASK 0x000F0000U -/*DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' for same bank group. Others: tRRD: Minimum time betwee - activates from bank 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program this to (tRRD_L/2 or tRRD/2) and round - it up to the next integer value. Unit: Clocks.*/ +/* +* DDR4: tRRD_L: Minimum time between activates from bank 'a' to bank 'b' f + * or same bank group. Others: tRRD: Minimum time between activates from ba + * nk 'a' to bank 'b'For configurations with MEMC_FREQ_RATIO=2, program thi + * s to (tRRD_L/2 or tRRD/2) and round it up to the next integer value. Uni + * t: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RRD_DEFVAL #undef DDRC_DRAMTMG4_T_RRD_SHIFT #undef DDRC_DRAMTMG4_T_RRD_MASK -#define DDRC_DRAMTMG4_T_RRD_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RRD_SHIFT 8 -#define DDRC_DRAMTMG4_T_RRD_MASK 0x00000F00U +#define DDRC_DRAMTMG4_T_RRD_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RRD_SHIFT 8 +#define DDRC_DRAMTMG4_T_RRD_MASK 0x00000F00U -/*tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ_RATIO=1 configurations, t_rp should be set to RoundU - (tRP/tCK). For MEMC_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(tRP/tCK)/2) + 1. For MEMC_FREQ_RATIO - 2 configurations in LPDDR4, t_rp should be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks.*/ +/* +* tRP: Minimum time from precharge to activate of same bank. For MEMC_FREQ + * _RATIO=1 configurations, t_rp should be set to RoundUp(tRP/tCK). For MEM + * C_FREQ_RATIO=2 configurations, t_rp should be set to RoundDown(RoundUp(t + * RP/tCK)/2) + 1. For MEMC_FREQ_RATIO=2 configurations in LPDDR4, t_rp sho + * uld be set to RoundUp(RoundUp(tRP/tCK)/2). Unit: Clocks. +*/ #undef DDRC_DRAMTMG4_T_RP_DEFVAL #undef DDRC_DRAMTMG4_T_RP_SHIFT #undef DDRC_DRAMTMG4_T_RP_MASK -#define DDRC_DRAMTMG4_T_RP_DEFVAL 0x05040405 -#define DDRC_DRAMTMG4_T_RP_SHIFT 0 -#define DDRC_DRAMTMG4_T_RP_MASK 0x0000001FU +#define DDRC_DRAMTMG4_T_RP_DEFVAL 0x05040405 +#define DDRC_DRAMTMG4_T_RP_SHIFT 0 +#define DDRC_DRAMTMG4_T_RP_MASK 0x0000001FU -/*This is the time before Self Refresh Exit that CK is maintained as a valid clock before issuing SRX. Specifies the clock stab - e time before SRX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEH - DDR2: 1 - DDR3: tCKSRX - DDR4: - tCKSRX For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next in - eger.*/ +/* +* This is the time before Self Refresh Exit that CK is maintained as a val + * id clock before issuing SRX. Specifies the clock stable time before SRX. + * Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCK + * EH - DDR2: 1 - DDR3: tCKSRX - DDR4: tCKSRX For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKSRX_DEFVAL #undef DDRC_DRAMTMG5_T_CKSRX_SHIFT #undef DDRC_DRAMTMG5_T_CKSRX_MASK -#define DDRC_DRAMTMG5_T_CKSRX_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKSRX_SHIFT 24 -#define DDRC_DRAMTMG5_T_CKSRX_MASK 0x0F000000U +#define DDRC_DRAMTMG5_T_CKSRX_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKSRX_SHIFT 24 +#define DDRC_DRAMTMG5_T_CKSRX_MASK 0x0F000000U -/*This is the time after Self Refresh Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay afte - SRE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 - DDR3: max (10 ns, 5 tCK) - DDR4: - ax (10 ns, 5 tCK) For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up - to next integer.*/ +/* +* This is the time after Self Refresh Down Entry that CK is maintained as + * a valid clock. Specifies the clock disable delay after SRE. Recommended + * settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL - DDR2: 1 + * - DDR3: max (10 ns, 5 tCK) - DDR4: max (10 ns, 5 tCK) For configurations + * with MEMC_FREQ_RATIO=2, program this to recommended value divided by tw + * o and round it up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKSRE_DEFVAL #undef DDRC_DRAMTMG5_T_CKSRE_SHIFT #undef DDRC_DRAMTMG5_T_CKSRE_MASK -#define DDRC_DRAMTMG5_T_CKSRE_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKSRE_SHIFT 16 -#define DDRC_DRAMTMG5_T_CKSRE_MASK 0x000F0000U +#define DDRC_DRAMTMG5_T_CKSRE_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKSRE_SHIFT 16 +#define DDRC_DRAMTMG5_T_CKSRE_MASK 0x000F0000U -/*Minimum CKE low width for Self refresh or Self refresh power down entry to exit timing in memory clock cycles. Recommended se - tings: - mDDR: tRFC - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: tCKE - DDR3: tCKE + 1 - DDR4: tCKE - 1 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it up to next intege - .*/ +/* +* Minimum CKE low width for Self refresh or Self refresh power down entry + * to exit timing in memory clock cycles. Recommended settings: - mDDR: tRF + * C - LPDDR2: tCKESR - LPDDR3: tCKESR - LPDDR4: max(tCKELPD, tSR) - DDR2: + * tCKE - DDR3: tCKE + 1 - DDR4: tCKE + 1 For configurations with MEMC_FREQ + * _RATIO=2, program this to recommended value divided by two and round it + * up to next integer. +*/ #undef DDRC_DRAMTMG5_T_CKESR_DEFVAL #undef DDRC_DRAMTMG5_T_CKESR_SHIFT #undef DDRC_DRAMTMG5_T_CKESR_MASK -#define DDRC_DRAMTMG5_T_CKESR_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKESR_SHIFT 8 -#define DDRC_DRAMTMG5_T_CKESR_MASK 0x00003F00U +#define DDRC_DRAMTMG5_T_CKESR_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKESR_SHIFT 8 +#define DDRC_DRAMTMG5_T_CKESR_MASK 0x00003F00U -/*Minimum number of cycles of CKE HIGH/LOW during power-down and self refresh. - LPDDR2/LPDDR3 mode: Set this to the larger of - CKE or tCKESR - LPDDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/non-LPDDR3/non-LPDDR4 designs: Set - his to tCKE value. For configurations with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and round it up to th - next integer value. Unit: Clocks.*/ +/* +* Minimum number of cycles of CKE HIGH/LOW during power-down and self refr + * esh. - LPDDR2/LPDDR3 mode: Set this to the larger of tCKE or tCKESR - LP + * DDR4 mode: Set this to the larger of tCKE, tCKELPD or tSR. - Non-LPDDR2/ + * non-LPDDR3/non-LPDDR4 designs: Set this to tCKE value. For configuration + * s with MEMC_FREQ_RATIO=2, program this to (value described above)/2 and + * round it up to the next integer value. Unit: Clocks. +*/ #undef DDRC_DRAMTMG5_T_CKE_DEFVAL #undef DDRC_DRAMTMG5_T_CKE_SHIFT #undef DDRC_DRAMTMG5_T_CKE_MASK -#define DDRC_DRAMTMG5_T_CKE_DEFVAL 0x05050403 -#define DDRC_DRAMTMG5_T_CKE_SHIFT 0 -#define DDRC_DRAMTMG5_T_CKE_MASK 0x0000001FU +#define DDRC_DRAMTMG5_T_CKE_DEFVAL 0x05050403 +#define DDRC_DRAMTMG5_T_CKE_SHIFT 0 +#define DDRC_DRAMTMG5_T_CKE_MASK 0x0000001FU -/*This is the time after Deep Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after - PDE. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, program this to recom - ended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3 - devices.*/ +/* +* This is the time after Deep Power Down Entry that CK is maintained as a + * valid clock. Specifies the clock disable delay after DPDE. Recommended s + * ettings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_ + * FREQ_RATIO=2, program this to recommended value divided by two and round + * it up to next integer. This is only present for designs supporting mDDR + * or LPDDR2/LPDDR3 devices. +*/ #undef DDRC_DRAMTMG6_T_CKDPDE_DEFVAL #undef DDRC_DRAMTMG6_T_CKDPDE_SHIFT #undef DDRC_DRAMTMG6_T_CKDPDE_MASK -#define DDRC_DRAMTMG6_T_CKDPDE_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKDPDE_SHIFT 24 -#define DDRC_DRAMTMG6_T_CKDPDE_MASK 0x0F000000U +#define DDRC_DRAMTMG6_T_CKDPDE_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKDPDE_SHIFT 24 +#define DDRC_DRAMTMG6_T_CKDPDE_MASK 0x0F000000U -/*This is the time before Deep Power Down Exit that CK is maintained as a valid clock before issuing DPDX. Specifies the clock - table time before DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For configurations with MEMC_FREQ_RATIO=2, pr - gram this to recommended value divided by two and round it up to next integer. This is only present for designs supporting mD - R or LPDDR2 devices.*/ +/* +* This is the time before Deep Power Down Exit that CK is maintained as a + * valid clock before issuing DPDX. Specifies the clock stable time before + * DPDX. Recommended settings: - mDDR: 1 - LPDDR2: 2 - LPDDR3: 2 For config + * urations with MEMC_FREQ_RATIO=2, program this to recommended value divid + * ed by two and round it up to next integer. This is only present for desi + * gns supporting mDDR or LPDDR2 devices. +*/ #undef DDRC_DRAMTMG6_T_CKDPDX_DEFVAL #undef DDRC_DRAMTMG6_T_CKDPDX_SHIFT #undef DDRC_DRAMTMG6_T_CKDPDX_MASK -#define DDRC_DRAMTMG6_T_CKDPDX_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKDPDX_SHIFT 16 -#define DDRC_DRAMTMG6_T_CKDPDX_MASK 0x000F0000U +#define DDRC_DRAMTMG6_T_CKDPDX_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKDPDX_SHIFT 16 +#define DDRC_DRAMTMG6_T_CKDPDX_MASK 0x000F0000U -/*This is the time before Clock Stop Exit that CK is maintained as a valid clock before issuing Clock Stop Exit. Specifies the - lock stable time before next command after Clock Stop Exit. Recommended settings: - mDDR: 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + - 2 - LPDDR4: tXP + 2 For configurations with MEMC_FREQ_RATIO=2, program this to recommended value divided by two and round it - p to next integer. This is only present for designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time before Clock Stop Exit that CK is maintained as a valid + * clock before issuing Clock Stop Exit. Specifies the clock stable time b + * efore next command after Clock Stop Exit. Recommended settings: - mDDR: + * 1 - LPDDR2: tXP + 2 - LPDDR3: tXP + 2 - LPDDR4: tXP + 2 For configuratio + * ns with MEMC_FREQ_RATIO=2, program this to recommended value divided by + * two and round it up to next integer. This is only present for designs su + * pporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG6_T_CKCSX_DEFVAL #undef DDRC_DRAMTMG6_T_CKCSX_SHIFT #undef DDRC_DRAMTMG6_T_CKCSX_MASK -#define DDRC_DRAMTMG6_T_CKCSX_DEFVAL 0x02020005 -#define DDRC_DRAMTMG6_T_CKCSX_SHIFT 0 -#define DDRC_DRAMTMG6_T_CKCSX_MASK 0x0000000FU +#define DDRC_DRAMTMG6_T_CKCSX_DEFVAL 0x02020005 +#define DDRC_DRAMTMG6_T_CKCSX_SHIFT 0 +#define DDRC_DRAMTMG6_T_CKCSX_MASK 0x0000000FU -/*This is the time after Power Down Entry that CK is maintained as a valid clock. Specifies the clock disable delay after PDE. - ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configurations with MEMC_FREQ_RATIO=2, program t - is to recommended value divided by two and round it up to next integer. This is only present for designs supporting mDDR or L - DDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time after Power Down Entry that CK is maintained as a valid + * clock. Specifies the clock disable delay after PDE. Recommended setting + * s: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: tCKCKEL For configuration + * s with MEMC_FREQ_RATIO=2, program this to recommended value divided by t + * wo and round it up to next integer. This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG7_T_CKPDE_DEFVAL #undef DDRC_DRAMTMG7_T_CKPDE_SHIFT #undef DDRC_DRAMTMG7_T_CKPDE_MASK -#define DDRC_DRAMTMG7_T_CKPDE_DEFVAL 0x00000202 -#define DDRC_DRAMTMG7_T_CKPDE_SHIFT 8 -#define DDRC_DRAMTMG7_T_CKPDE_MASK 0x00000F00U +#define DDRC_DRAMTMG7_T_CKPDE_DEFVAL 0x00000202 +#define DDRC_DRAMTMG7_T_CKPDE_SHIFT 8 +#define DDRC_DRAMTMG7_T_CKPDE_MASK 0x00000F00U -/*This is the time before Power Down Exit that CK is maintained as a valid clock before issuing PDX. Specifies the clock stable - time before PDX. Recommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For configurations with MEMC_FREQ_RATIO= - , program this to recommended value divided by two and round it up to next integer. This is only present for designs supporti - g mDDR or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* This is the time before Power Down Exit that CK is maintained as a valid + * clock before issuing PDX. Specifies the clock stable time before PDX. R + * ecommended settings: - mDDR: 0 - LPDDR2: 2 - LPDDR3: 2 - LPDDR4: 2 For c + * onfigurations with MEMC_FREQ_RATIO=2, program this to recommended value + * divided by two and round it up to next integer. This is only present for + * designs supporting mDDR or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_DRAMTMG7_T_CKPDX_DEFVAL #undef DDRC_DRAMTMG7_T_CKPDX_SHIFT #undef DDRC_DRAMTMG7_T_CKPDX_MASK -#define DDRC_DRAMTMG7_T_CKPDX_DEFVAL 0x00000202 -#define DDRC_DRAMTMG7_T_CKPDX_SHIFT 0 -#define DDRC_DRAMTMG7_T_CKPDX_MASK 0x0000000FU +#define DDRC_DRAMTMG7_T_CKPDX_DEFVAL 0x00000202 +#define DDRC_DRAMTMG7_T_CKPDX_SHIFT 0 +#define DDRC_DRAMTMG7_T_CKPDX_MASK 0x0000000FU -/*tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and Geardown mode). For configurations with MEMC_FREQ_RAT - O=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Thi - is applicable to only ZQCL/ZQCS commands. Note: Ensure this is less than or equal to t_xs_x32.*/ +/* +* tXS_FAST: Exit Self Refresh to ZQCL, ZQCS and MRS (only CL, WR, RTP and + * Geardown mode). For configurations with MEMC_FREQ_RATIO=2, program this + * to the above value divided by 2 and round up to next integer value. Unit + * : Multiples of 32 clocks. Note: This is applicable to only ZQCL/ZQCS com + * mands. Note: Ensure this is less than or equal to t_xs_x32. +*/ #undef DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_FAST_X32_MASK -#define DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT 24 -#define DDRC_DRAMTMG8_T_XS_FAST_X32_MASK 0x7F000000U +#define DDRC_DRAMTMG8_T_XS_FAST_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_FAST_X32_SHIFT 24 +#define DDRC_DRAMTMG8_T_XS_FAST_X32_MASK 0x7F000000U -/*tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in Self Refresh Abort. For configurations with MEMC_FREQ_ - ATIO=2, program this to the above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: - nsure this is less than or equal to t_xs_x32.*/ +/* +* tXS_ABORT: Exit Self Refresh to commands not requiring a locked DLL in S + * elf Refresh Abort. For configurations with MEMC_FREQ_RATIO=2, program th + * is to the above value divided by 2 and round up to next integer value. U + * nit: Multiples of 32 clocks. Note: Ensure this is less than or equal to + * t_xs_x32. +*/ #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT 16 -#define DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK 0x007F0000U +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_SHIFT 16 +#define DDRC_DRAMTMG8_T_XS_ABORT_X32_MASK 0x007F0000U -/*tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - bove value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DR4 SDRAMs.*/ +/* +* tXSDLL: Exit Self Refresh to commands requiring a locked DLL. For config + * urations with MEMC_FREQ_RATIO=2, program this to the above value divided + * by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. +*/ #undef DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_DLL_X32_MASK -#define DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT 8 -#define DDRC_DRAMTMG8_T_XS_DLL_X32_MASK 0x00007F00U +#define DDRC_DRAMTMG8_T_XS_DLL_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_DLL_X32_SHIFT 8 +#define DDRC_DRAMTMG8_T_XS_DLL_X32_MASK 0x00007F00U -/*tXS: Exit Self Refresh to commands not requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program this to the - above value divided by 2 and round up to next integer value. Unit: Multiples of 32 clocks. Note: Used only for DDR2, DDR3 and - DDR4 SDRAMs.*/ +/* +* tXS: Exit Self Refresh to commands not requiring a locked DLL. For confi + * gurations with MEMC_FREQ_RATIO=2, program this to the above value divide + * d by 2 and round up to next integer value. Unit: Multiples of 32 clocks. + * Note: Used only for DDR2, DDR3 and DDR4 SDRAMs. +*/ #undef DDRC_DRAMTMG8_T_XS_X32_DEFVAL #undef DDRC_DRAMTMG8_T_XS_X32_SHIFT #undef DDRC_DRAMTMG8_T_XS_X32_MASK -#define DDRC_DRAMTMG8_T_XS_X32_DEFVAL 0x03034405 -#define DDRC_DRAMTMG8_T_XS_X32_SHIFT 0 -#define DDRC_DRAMTMG8_T_XS_X32_MASK 0x0000007FU +#define DDRC_DRAMTMG8_T_XS_X32_DEFVAL 0x03034405 +#define DDRC_DRAMTMG8_T_XS_X32_SHIFT 0 +#define DDRC_DRAMTMG8_T_XS_X32_MASK 0x0000007FU -/*DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present only with MEMC_FREQ_RATIO=2*/ +/* +* DDR4 Write preamble mode - 0: 1tCK preamble - 1: 2tCK preamble Present o + * nly with MEMC_FREQ_RATIO=2 +*/ #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT #undef DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT 30 -#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK 0x40000000U +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_SHIFT 30 +#define DDRC_DRAMTMG9_DDR4_WR_PREAMBLE_MASK 0x40000000U -/*tCCD_S: This is the minimum time between two reads or two writes for different bank group. For bank switching (from bank 'a' - o bank 'b'), the minimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2, program this to (tCCD_S/2) and ro - nd it up to the next integer value. Present only in designs configured to support DDR4. Unit: clocks.*/ +/* +* tCCD_S: This is the minimum time between two reads or two writes for dif + * ferent bank group. For bank switching (from bank 'a' to bank 'b'), the m + * inimum time is this value + 1. For configurations with MEMC_FREQ_RATIO=2 + * , program this to (tCCD_S/2) and round it up to the next integer value. + * Present only in designs configured to support DDR4. Unit: clocks. +*/ #undef DDRC_DRAMTMG9_T_CCD_S_DEFVAL #undef DDRC_DRAMTMG9_T_CCD_S_SHIFT #undef DDRC_DRAMTMG9_T_CCD_S_MASK -#define DDRC_DRAMTMG9_T_CCD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_T_CCD_S_SHIFT 16 -#define DDRC_DRAMTMG9_T_CCD_S_MASK 0x00070000U +#define DDRC_DRAMTMG9_T_CCD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_T_CCD_S_SHIFT 16 +#define DDRC_DRAMTMG9_T_CCD_S_MASK 0x00070000U -/*tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for different bank group. For configurations with MEMC_FREQ_ - ATIO=2, program this to (tRRD_S/2) and round it up to the next integer value. Present only in designs configured to support D - R4. Unit: Clocks.*/ +/* +* tRRD_S: Minimum time between activates from bank 'a' to bank 'b' for dif + * ferent bank group. For configurations with MEMC_FREQ_RATIO=2, program th + * is to (tRRD_S/2) and round it up to the next integer value. Present only + * in designs configured to support DDR4. Unit: Clocks. +*/ #undef DDRC_DRAMTMG9_T_RRD_S_DEFVAL #undef DDRC_DRAMTMG9_T_RRD_S_SHIFT #undef DDRC_DRAMTMG9_T_RRD_S_MASK -#define DDRC_DRAMTMG9_T_RRD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_T_RRD_S_SHIFT 8 -#define DDRC_DRAMTMG9_T_RRD_S_MASK 0x00000F00U +#define DDRC_DRAMTMG9_T_RRD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_T_RRD_S_SHIFT 8 +#define DDRC_DRAMTMG9_T_RRD_S_MASK 0x00000F00U -/*CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command for different bank group. Includes time for bus turn - round, recovery times, and all per-bank, per-rank, and global constraints. Present only in designs configured to support DDR4 - Unit: Clocks. Where: - CWL = CAS write latency - PL = Parity latency - BL = burst length. This must match the value programm - d in the BL bit of the mode register to the SDRAM - tWTR_S = internal write to read command delay for different bank group. T - is comes directly from the SDRAM specification. For configurations with MEMC_FREQ_RATIO=2, divide the value calculated using - he above equation by 2, and round it up to next integer.*/ +/* +* CWL + PL + BL/2 + tWTR_S Minimum time from write command to read command + * for different bank group. Includes time for bus turnaround, recovery ti + * mes, and all per-bank, per-rank, and global constraints. Present only in + * designs configured to support DDR4. Unit: Clocks. Where: - CWL = CAS wr + * ite latency - PL = Parity latency - BL = burst length. This must match t + * he value programmed in the BL bit of the mode register to the SDRAM - tW + * TR_S = internal write to read command delay for different bank group. Th + * is comes directly from the SDRAM specification. For configurations with + * MEMC_FREQ_RATIO=2, divide the value calculated using the above equation + * by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG9_WR2RD_S_DEFVAL #undef DDRC_DRAMTMG9_WR2RD_S_SHIFT #undef DDRC_DRAMTMG9_WR2RD_S_MASK -#define DDRC_DRAMTMG9_WR2RD_S_DEFVAL 0x0004040D -#define DDRC_DRAMTMG9_WR2RD_S_SHIFT 0 -#define DDRC_DRAMTMG9_WR2RD_S_MASK 0x0000003FU +#define DDRC_DRAMTMG9_WR2RD_S_DEFVAL 0x0004040D +#define DDRC_DRAMTMG9_WR2RD_S_SHIFT 0 +#define DDRC_DRAMTMG9_WR2RD_S_MASK 0x0000003FU -/*tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DLL. For configurations with MEMC_FREQ_RATIO=2, program - this to (tXMPDLL/2) and round it up to the next integer value. Present only in designs configured to support DDR4. Unit: Mult - ples of 32 clocks.*/ +/* +* tXMPDLL: This is the minimum Exit MPSM to commands requiring a locked DL + * L. For configurations with MEMC_FREQ_RATIO=2, program this to (tXMPDLL/2 + * ) and round it up to the next integer value. Present only in designs con + * figured to support DDR4. Unit: Multiples of 32 clocks. +*/ #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT #undef DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT 24 -#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK 0x7F000000U +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_SHIFT 24 +#define DDRC_DRAMTMG11_POST_MPSM_GAP_X32_MASK 0x7F000000U -/*tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For configurations with MEMC_FREQ_RATIO=2, program this t - RoundUp(tMPX_LH/2)+1. Present only in designs configured to support DDR4. Unit: clocks.*/ +/* +* tMPX_LH: This is the minimum CS_n Low hold time to CKE rising edge. For + * configurations with MEMC_FREQ_RATIO=2, program this to RoundUp(tMPX_LH/2 + * )+1. Present only in designs configured to support DDR4. Unit: clocks. +*/ #undef DDRC_DRAMTMG11_T_MPX_LH_DEFVAL #undef DDRC_DRAMTMG11_T_MPX_LH_SHIFT #undef DDRC_DRAMTMG11_T_MPX_LH_MASK -#define DDRC_DRAMTMG11_T_MPX_LH_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_MPX_LH_SHIFT 16 -#define DDRC_DRAMTMG11_T_MPX_LH_MASK 0x001F0000U +#define DDRC_DRAMTMG11_T_MPX_LH_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_MPX_LH_SHIFT 16 +#define DDRC_DRAMTMG11_T_MPX_LH_MASK 0x001F0000U -/*tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_FREQ_RATIO=2, program this to (tMPX_S/2) and round it - up to the next integer value. Present only in designs configured to support DDR4. Unit: Clocks.*/ +/* +* tMPX_S: Minimum time CS setup time to CKE. For configurations with MEMC_ + * FREQ_RATIO=2, program this to (tMPX_S/2) and round it up to the next int + * eger value. Present only in designs configured to support DDR4. Unit: Cl + * ocks. +*/ #undef DDRC_DRAMTMG11_T_MPX_S_DEFVAL #undef DDRC_DRAMTMG11_T_MPX_S_SHIFT #undef DDRC_DRAMTMG11_T_MPX_S_MASK -#define DDRC_DRAMTMG11_T_MPX_S_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_MPX_S_SHIFT 8 -#define DDRC_DRAMTMG11_T_MPX_S_MASK 0x00000300U +#define DDRC_DRAMTMG11_T_MPX_S_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_MPX_S_SHIFT 8 +#define DDRC_DRAMTMG11_T_MPX_S_MASK 0x00000300U -/*tCKMPE: Minimum valid clock requirement after MPSM entry. Present only in designs configured to support DDR4. Unit: Clocks. F - r configurations with MEMC_FREQ_RATIO=2, divide the value calculated using the above equation by 2, and round it up to next i - teger.*/ +/* +* tCKMPE: Minimum valid clock requirement after MPSM entry. Present only i + * n designs configured to support DDR4. Unit: Clocks. For configurations w + * ith MEMC_FREQ_RATIO=2, divide the value calculated using the above equat + * ion by 2, and round it up to next integer. +*/ #undef DDRC_DRAMTMG11_T_CKMPE_DEFVAL #undef DDRC_DRAMTMG11_T_CKMPE_SHIFT #undef DDRC_DRAMTMG11_T_CKMPE_MASK -#define DDRC_DRAMTMG11_T_CKMPE_DEFVAL 0x440C021C -#define DDRC_DRAMTMG11_T_CKMPE_SHIFT 0 -#define DDRC_DRAMTMG11_T_CKMPE_MASK 0x0000001FU +#define DDRC_DRAMTMG11_T_CKMPE_DEFVAL 0x440C021C +#define DDRC_DRAMTMG11_T_CKMPE_SHIFT 0 +#define DDRC_DRAMTMG11_T_CKMPE_MASK 0x0000001FU -/*tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larger of tESCKE or tCMDCKE For configurations with MEMC_ - REQ_RATIO=2, program this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer value.*/ +/* +* tCMDCKE: Delay from valid command to CKE input LOW. Set this to the larg + * er of tESCKE or tCMDCKE For configurations with MEMC_FREQ_RATIO=2, progr + * am this to (max(tESCKE, tCMDCKE)/2) and round it up to next integer valu + * e. +*/ #undef DDRC_DRAMTMG12_T_CMDCKE_DEFVAL #undef DDRC_DRAMTMG12_T_CMDCKE_SHIFT #undef DDRC_DRAMTMG12_T_CMDCKE_MASK -#define DDRC_DRAMTMG12_T_CMDCKE_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_CMDCKE_SHIFT 16 -#define DDRC_DRAMTMG12_T_CMDCKE_MASK 0x00030000U +#define DDRC_DRAMTMG12_T_CMDCKE_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_CMDCKE_SHIFT 16 +#define DDRC_DRAMTMG12_T_CMDCKE_MASK 0x00030000U -/*tCKEHCMD: Valid command requirement after CKE input HIGH. For configurations with MEMC_FREQ_RATIO=2, program this to (tCKEHCM - /2) and round it up to next integer value.*/ +/* +* tCKEHCMD: Valid command requirement after CKE input HIGH. For configurat + * ions with MEMC_FREQ_RATIO=2, program this to (tCKEHCMD/2) and round it u + * p to next integer value. +*/ #undef DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL #undef DDRC_DRAMTMG12_T_CKEHCMD_SHIFT #undef DDRC_DRAMTMG12_T_CKEHCMD_MASK -#define DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_CKEHCMD_SHIFT 8 -#define DDRC_DRAMTMG12_T_CKEHCMD_MASK 0x00000F00U +#define DDRC_DRAMTMG12_T_CKEHCMD_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_CKEHCMD_SHIFT 8 +#define DDRC_DRAMTMG12_T_CKEHCMD_MASK 0x00000F00U -/*tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. For configurations with MEMC_FREQ_RATIO=2, program th - s to (tMRD_PDA/2) and round it up to next integer value.*/ +/* +* tMRD_PDA: This is the Mode Register Set command cycle time in PDA mode. + * For configurations with MEMC_FREQ_RATIO=2, program this to (tMRD_PDA/2) + * and round it up to next integer value. +*/ #undef DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL #undef DDRC_DRAMTMG12_T_MRD_PDA_SHIFT #undef DDRC_DRAMTMG12_T_MRD_PDA_MASK -#define DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL 0x00020610 -#define DDRC_DRAMTMG12_T_MRD_PDA_SHIFT 0 -#define DDRC_DRAMTMG12_T_MRD_PDA_MASK 0x0000001FU +#define DDRC_DRAMTMG12_T_MRD_PDA_DEFVAL 0x00020610 +#define DDRC_DRAMTMG12_T_MRD_PDA_SHIFT 0 +#define DDRC_DRAMTMG12_T_MRD_PDA_MASK 0x0000001FU -/*- 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Register DBGCMD.zq_calib_short can be used instead to is - ue ZQ calibration request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibration) commands based on ZQCTL1.t_zq_s - ort_interval_x1024. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Disable uMCTL2 generation of ZQCS/MPC(ZQ calibration) command. Reg + * ister DBGCMD.zq_calib_short can be used instead to issue ZQ calibration + * request from APB module. - 0 - Internally generate ZQCS/MPC(ZQ calibrati + * on) commands based on ZQCTL1.t_zq_short_interval_x1024. This is only pre + * sent for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT #undef DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT 31 -#define DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK 0x80000000U +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_SHIFT 31 +#define DDRC_ZQCTL0_DIS_AUTO_ZQ_MASK 0x80000000U -/*- 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Powerdown exit. Only applicable when run in DDR3 - or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refresh/SR-Power - own exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present for designs suppo - ting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Disable issuing of ZQCL/MPC(ZQ calibration) command at Self-Refres + * h/SR-Powerdown exit. Only applicable when run in DDR3 or DDR4 or LPDDR2 + * or LPDDR3 or LPDDR4 mode. - 0 - Enable issuing of ZQCL/MPC(ZQ calibratio + * n) command at Self-Refresh/SR-Powerdown exit. Only applicable when run i + * n DDR3 or DDR4 or LPDDR2 or LPDDR3 or LPDDR4 mode. This is only present + * for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT #undef DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT 30 -#define DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK 0x40000000U +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_SHIFT 30 +#define DDRC_ZQCTL0_DIS_SRX_ZQCL_MASK 0x40000000U -/*- 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQCL/ZQCS/MPC(ZQ calibration) commands are sent to one r - nk at a time with tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that commands to different ranks do not ov - rlap. - 0 - ZQ resistor is not shared. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* - 1 - Denotes that ZQ resistor is shared between ranks. Means ZQinit/ZQC + * L/ZQCS/MPC(ZQ calibration) commands are sent to one rank at a time with + * tZQinit/tZQCL/tZQCS/tZQCAL/tZQLAT timing met between commands so that co + * mmands to different ranks do not overlap. - 0 - ZQ resistor is not share + * d. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR + * 3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT #undef DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT 29 -#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK 0x20000000U +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_SHIFT 29 +#define DDRC_ZQCTL0_ZQ_RESISTOR_SHARED_MASK 0x20000000U -/*- 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. - 0 - Enable - ssuing of ZQCL command at Maximum Power Saving Mode exit. Only applicable when run in DDR4 mode. This is only present for des - gns supporting DDR4 devices.*/ +/* +* - 1 - Disable issuing of ZQCL command at Maximum Power Saving Mode exit. + * Only applicable when run in DDR4 mode. - 0 - Enable issuing of ZQCL com + * mand at Maximum Power Saving Mode exit. Only applicable when run in DDR4 + * mode. This is only present for designs supporting DDR4 devices. +*/ #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT #undef DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT 28 -#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK 0x10000000U +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_SHIFT 28 +#define DDRC_ZQCTL0_DIS_MPSMX_ZQCL_MASK 0x10000000U -/*tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Number of cycles of NOP required after a ZQCL (ZQ calibrat - on long)/MPC(ZQ Start) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2: DDR3/DDR4: program this to tZQo - er/2 and round it up to the next integer value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to the next integer va - ue. LPDDR4: program this to tZQCAL/2 and round it up to the next integer value. Unit: Clock cycles. This is only present for - esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* tZQoper for DDR3/DDR4, tZQCL for LPDDR2/LPDDR3, tZQCAL for LPDDR4: Numbe + * r of cycles of NOP required after a ZQCL (ZQ calibration long)/MPC(ZQ St + * art) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO + * =2: DDR3/DDR4: program this to tZQoper/2 and round it up to the next int + * eger value. LPDDR2/LPDDR3: program this to tZQCL/2 and round it up to th + * e next integer value. LPDDR4: program this to tZQCAL/2 and round it up t + * o the next integer value. Unit: Clock cycles. This is only present for d + * esigns supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT #undef DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT 16 -#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK 0x07FF0000U +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_SHIFT 16 +#define DDRC_ZQCTL0_T_ZQ_LONG_NOP_MASK 0x07FF0000U -/*tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of NOP required after a ZQCS (ZQ calibration short)/MPC - ZQ Latch) command is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program this to tZQCS/2 and round it up to t - e next integer value. Unit: Clock cycles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devic - s.*/ +/* +* tZQCS for DDR3/DD4/LPDDR2/LPDDR3, tZQLAT for LPDDR4: Number of cycles of + * NOP required after a ZQCS (ZQ calibration short)/MPC(ZQ Latch) command + * is issued to SDRAM. For configurations with MEMC_FREQ_RATIO=2, program t + * his to tZQCS/2 and round it up to the next integer value. Unit: Clock cy + * cles. This is only present for designs supporting DDR3/DDR4 or LPDDR2/LP + * DDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT #undef DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL 0x02000040 -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT 0 -#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK 0x000003FFU +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_DEFVAL 0x02000040 +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_SHIFT 0 +#define DDRC_ZQCTL0_T_ZQ_SHORT_NOP_MASK 0x000003FFU -/*tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibration Reset) command is issued to SDRAM. For configurati - ns with MEMC_FREQ_RATIO=2, program this to tZQReset/2 and round it up to the next integer value. Unit: Clock cycles. This is - nly present for designs supporting LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* tZQReset: Number of cycles of NOP required after a ZQReset (ZQ calibrati + * on Reset) command is issued to SDRAM. For configurations with MEMC_FREQ_ + * RATIO=2, program this to tZQReset/2 and round it up to the next integer + * value. Unit: Clock cycles. This is only present for designs supporting L + * PDDR2/LPDDR3/LPDDR4 devices. +*/ #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT #undef DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL 0x02000100 -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT 20 -#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK 0x3FF00000U +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_DEFVAL 0x02000100 +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_SHIFT 20 +#define DDRC_ZQCTL1_T_ZQ_RESET_NOP_MASK 0x3FF00000U -/*Average interval to wait between automatically issuing ZQCS (ZQ calibration short)/MPC(ZQ calibration) commands to DDR3/DDR4/ - PDDR2/LPDDR3/LPDDR4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles. This is only present for designs - upporting DDR3/DDR4 or LPDDR2/LPDDR3/LPDDR4 devices.*/ +/* +* Average interval to wait between automatically issuing ZQCS (ZQ calibrat + * ion short)/MPC(ZQ calibration) commands to DDR3/DDR4/LPDDR2/LPDDR3/LPDDR + * 4 devices. Meaningless, if ZQCTL0.dis_auto_zq=1. Unit: 1024 clock cycles + * . This is only present for designs supporting DDR3/DDR4 or LPDDR2/LPDDR3 + * /LPDDR4 devices. +*/ #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT #undef DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL 0x02000100 -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT 0 -#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK 0x000FFFFFU +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_DEFVAL 0x02000100 +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_SHIFT 0 +#define DDRC_ZQCTL1_T_ZQ_SHORT_INTERVAL_X1024_MASK 0x000FFFFFU -/*Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock.*/ +/* +* Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. +*/ #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT #undef DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT 24 -#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK 0x1F000000U +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_SHIFT 24 +#define DDRC_DFITMG0_DFI_T_CTRL_DELAY_MASK 0x1F000000U -/*Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value.*/ +/* +* Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. +*/ #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT 23 -#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK 0x00800000U +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_SHIFT 23 +#define DDRC_DFITMG0_DFI_RDDATA_USE_SDR_MASK 0x00800000U -/*Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks*/ +/* +* Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks +*/ #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT #undef DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT 16 -#define DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK 0x003F0000U +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_SHIFT 16 +#define DDRC_DFITMG0_DFI_T_RDDATA_EN_MASK 0x003F0000U -/*Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e.*/ +/* +* Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. +*/ #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT 15 -#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK 0x00008000U +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_SHIFT 15 +#define DDRC_DFITMG0_DFI_WRDATA_USE_SDR_MASK 0x00008000U -/*Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks*/ +/* +* Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks +*/ #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT #undef DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT 8 -#define DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK 0x00003F00U +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_SHIFT 8 +#define DDRC_DFITMG0_DFI_TPHY_WRDATA_MASK 0x00003F00U -/*Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM.*/ +/* +* Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. +*/ #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT #undef DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL 0x07020002 -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT 0 -#define DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK 0x0000003FU +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_DEFVAL 0x07020002 +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_SHIFT 0 +#define DDRC_DFITMG0_DFI_TPHY_WRLAT_MASK 0x0000003FU -/*Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated command is driven. - his field is used for CAL mode, should be set to '0' or the value which matches the CAL mode register setting in the DRAM. If - the PHY can add the latency for CAL mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8*/ +/* +* Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated command is driven. This field is used + * for CAL mode, should be set to '0' or the value which matches the CAL mo + * de register setting in the DRAM. If the PHY can add the latency for CAL + * mode, this should be set to '0'. Valid Range: 0, 3, 4, 5, 6, and 8 +*/ #undef DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL #undef DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT #undef DDRC_DFITMG1_DFI_T_CMD_LAT_MASK -#define DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT 28 -#define DDRC_DFITMG1_DFI_T_CMD_LAT_MASK 0xF0000000U +#define DDRC_DFITMG1_DFI_T_CMD_LAT_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_CMD_LAT_SHIFT 28 +#define DDRC_DFITMG1_DFI_T_CMD_LAT_MASK 0xF0000000U -/*Specifies the number of DFI PHY clocks between when the dfi_cs signal is asserted and when the associated dfi_parity_in signa - is driven.*/ +/* +* Specifies the number of DFI PHY clocks between when the dfi_cs signal is + * asserted and when the associated dfi_parity_in signal is driven. +*/ #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT #undef DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT 24 -#define DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK 0x03000000U +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_SHIFT 24 +#define DDRC_DFITMG1_DFI_T_PARIN_LAT_MASK 0x03000000U -/*Specifies the number of DFI clocks between when the dfi_wrdata_en signal is asserted and when the corresponding write data tr - nsfer is completed on the DRAM bus. This corresponds to the DFI timing parameter twrdata_delay. Refer to PHY specification fo - correct value. For DFI 3.0 PHY, set to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI 2.1 PHY, set to - phy_wrdata + (delay of DFI write data to the DRAM). Value to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ - RATIO=2, divide PHY's value by 2 and round up to next integer. If using DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Uni - : Clocks*/ +/* +* Specifies the number of DFI clocks between when the dfi_wrdata_en signal + * is asserted and when the corresponding write data transfer is completed + * on the DRAM bus. This corresponds to the DFI timing parameter twrdata_d + * elay. Refer to PHY specification for correct value. For DFI 3.0 PHY, set + * to twrdata_delay, a new timing parameter introduced in DFI 3.0. For DFI + * 2.1 PHY, set to tphy_wrdata + (delay of DFI write data to the DRAM). Va + * lue to be programmed is in terms of DFI clocks, not PHY clocks. In FREQ_ + * RATIO=2, divide PHY's value by 2 and round up to next integer. If using + * DFITMG0.dfi_wrdata_use_sdr=1, add 1 to the value. Unit: Clocks +*/ #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT #undef DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT 16 -#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK 0x001F0000U +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_SHIFT 16 +#define DDRC_DFITMG1_DFI_T_WRDATA_DELAY_MASK 0x001F0000U -/*Specifies the number of DFI clock cycles from the assertion of the dfi_dram_clk_disable signal on the DFI until the clock to - he DRAM memory devices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock and the memory clock are not phase - ligned, this timing parameter should be rounded up to the next integer value.*/ +/* +* Specifies the number of DFI clock cycles from the assertion of the dfi_d + * ram_clk_disable signal on the DFI until the clock to the DRAM memory dev + * ices, at the PHY-DRAM boundary, maintains a low value. If the DFI clock + * and the memory clock are not phase aligned, this timing parameter should + * be rounded up to the next integer value. +*/ #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT 8 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK 0x00000F00U +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_SHIFT 8 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_DISABLE_MASK 0x00000F00U -/*Specifies the number of DFI clock cycles from the de-assertion of the dfi_dram_clk_disable signal on the DFI until the first - alid rising edge of the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the DFI clock and the memory clock are - not phase aligned, this timing parameter should be rounded up to the next integer value.*/ +/* +* Specifies the number of DFI clock cycles from the de-assertion of the df + * i_dram_clk_disable signal on the DFI until the first valid rising edge o + * f the clock to the DRAM memory devices, at the PHY-DRAM boundary. If the + * DFI clock and the memory clock are not phase aligned, this timing param + * eter should be rounded up to the next integer value. +*/ #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT #undef DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL 0x00000404 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT 0 -#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK 0x0000000FU +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_DEFVAL 0x00000404 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_SHIFT 0 +#define DDRC_DFITMG1_DFI_T_DRAM_CLK_ENABLE_MASK 0x0000000FU -/*Setting for DFI's tlp_resp time. Same value is used for both Power Down, Self Refresh, Deep Power Down and Maximum Power Savi - g modes. DFI 2.1 specification onwards, recommends using a fixed value of 7 always.*/ +/* +* Setting for DFI's tlp_resp time. Same value is used for both Power Down, + * Self Refresh, Deep Power Down and Maximum Power Saving modes. DFI 2.1 s + * pecification onwards, recommends using a fixed value of 7 always. +*/ #undef DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL #undef DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT #undef DDRC_DFILPCFG0_DFI_TLP_RESP_MASK -#define DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT 24 -#define DDRC_DFILPCFG0_DFI_TLP_RESP_MASK 0x0F000000U +#define DDRC_DFILPCFG0_DFI_TLP_RESP_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_TLP_RESP_SHIFT 24 +#define DDRC_DFILPCFG0_DFI_TLP_RESP_MASK 0x0F000000U -/*Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 - cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - - 31072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting mDDR or LPDDR2/LPDDR3 device - .*/ +/* +* Value to drive on dfi_lp_wakeup signal when Deep Power Down mode is ente + * red. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 + * cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 5 + * 12 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - + * 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 6553 + * 6 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited T + * his is only present for designs supporting mDDR or LPDDR2/LPDDR3 devices + * . +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT 20 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK 0x00F00000U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_SHIFT 20 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_DPD_MASK 0x00F00000U -/*Enables DFI Low Power interface handshaking during Deep Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled This is only pres - nt for designs supporting mDDR or LPDDR2/LPDDR3 devices.*/ +/* +* Enables DFI Low Power interface handshaking during Deep Power Down Entry + * /Exit. - 0 - Disabled - 1 - Enabled This is only present for designs sup + * porting mDDR or LPDDR2/LPDDR3 devices. +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT 16 -#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK 0x00010000U +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_SHIFT 16 +#define DDRC_DFILPCFG0_DFI_LP_EN_DPD_MASK 0x00010000U -/*Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cy - les - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - - 048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 131 - 72 cycles - 0xE - 262144 cycles - 0xF - Unlimited*/ +/* +* Value to drive on dfi_lp_wakeup signal when Self Refresh mode is entered + * . Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cyc + * les - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 + * cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 + * - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 c + * ycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT 12 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK 0x0000F000U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_SHIFT 12 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_SR_MASK 0x0000F000U -/*Enables DFI Low Power interface handshaking during Self Refresh Entry/Exit. - 0 - Disabled - 1 - Enabled*/ +/* +* Enables DFI Low Power interface handshaking during Self Refresh Entry/Ex + * it. - 0 - Disabled - 1 - Enabled +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT 8 -#define DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK 0x00000100U +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_SHIFT 8 +#define DDRC_DFILPCFG0_DFI_LP_EN_SR_MASK 0x00000100U -/*Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycl - s - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 20 - 8 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0xD - 13107 - cycles - 0xE - 262144 cycles - 0xF - Unlimited*/ +/* +* Value to drive on dfi_lp_wakeup signal when Power Down mode is entered. + * Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 - 32 cycle + * s - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cy + * cles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - + * 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cyc + * les - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited +*/ #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT 4 -#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK 0x000000F0U +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_SHIFT 4 +#define DDRC_DFILPCFG0_DFI_LP_WAKEUP_PD_MASK 0x000000F0U -/*Enables DFI Low Power interface handshaking during Power Down Entry/Exit. - 0 - Disabled - 1 - Enabled*/ +/* +* Enables DFI Low Power interface handshaking during Power Down Entry/Exit + * . - 0 - Disabled - 1 - Enabled +*/ #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT #undef DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL 0x07000000 -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT 0 -#define DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK 0x00000001U +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_DEFVAL 0x07000000 +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_SHIFT 0 +#define DDRC_DFILPCFG0_DFI_LP_EN_PD_MASK 0x00000001U -/*Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is entered. Determines the DFI's tlp_wakeup time: - 0x0 - - 16 cycles - 0x1 - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycles - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - 65536 cycles - 0 - D - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimited This is only present for designs supporting DDR4 devices.*/ +/* +* Value to drive on dfi_lp_wakeup signal when Maximum Power Saving Mode is + * entered. Determines the DFI's tlp_wakeup time: - 0x0 - 16 cycles - 0x1 + * - 32 cycles - 0x2 - 64 cycles - 0x3 - 128 cycles - 0x4 - 256 cycles - 0x + * 5 - 512 cycles - 0x6 - 1024 cycles - 0x7 - 2048 cycles - 0x8 - 4096 cycl + * es - 0x9 - 8192 cycles - 0xA - 16384 cycles - 0xB - 32768 cycles - 0xC - + * 65536 cycles - 0xD - 131072 cycles - 0xE - 262144 cycles - 0xF - Unlimi + * ted This is only present for designs supporting DDR4 devices. +*/ #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT #undef DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL 0x00000000 -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT 4 -#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK 0x000000F0U +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_DEFVAL 0x00000000 +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_SHIFT 4 +#define DDRC_DFILPCFG1_DFI_LP_WAKEUP_MPSM_MASK 0x000000F0U -/*Enables DFI Low Power interface handshaking during Maximum Power Saving Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is - only present for designs supporting DDR4 devices.*/ +/* +* Enables DFI Low Power interface handshaking during Maximum Power Saving + * Mode Entry/Exit. - 0 - Disabled - 1 - Enabled This is only present for d + * esigns supporting DDR4 devices. +*/ #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT #undef DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL 0x00000000 -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT 0 -#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK 0x00000001U +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_DEFVAL 0x00000000 +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_SHIFT 0 +#define DDRC_DFILPCFG1_DFI_LP_EN_MPSM_MASK 0x00000001U -/*This is the minimum amount of time between uMCTL2 initiated DFI update requests (which is executed whenever the uMCTL2 is idl - ). Set this number higher to reduce the frequency of update requests, which can have a small impact on the latency of the fir - t read request when the uMCTL2 is idle. Unit: 1024 clocks*/ +/* +* When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * . The core must issue the dfi_ctrlupd_req signal using register reg_ddrc + * _ctrlupd. When '0', uMCTL2 issues dfi_ctrlupd_req periodically. +*/ +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_DEFVAL +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SHIFT +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_MASK +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SHIFT 31 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_MASK 0x80000000U + +/* +* When '1', disable the automatic dfi_ctrlupd_req generation by the uMCTL2 + * following a self-refresh exit. The core must issue the dfi_ctrlupd_req + * signal using register reg_ddrc_ctrlupd. When '0', uMCTL2 issues a dfi_ct + * rlupd_req after exiting self-refresh. +*/ +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_DEFVAL +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_SHIFT +#undef DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_MASK +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_SHIFT 30 +#define DDRC_DFIUPD0_DIS_AUTO_CTRLUPD_SRX_MASK 0x40000000U + +/* +* Specifies the maximum number of clock cycles that the dfi_ctrlupd_req si + * gnal can assert. Lowest value to assign to this variable is 0x40. Unit: + * Clocks +*/ +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_DEFVAL +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_SHIFT +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_MASK +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_SHIFT 16 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MAX_MASK 0x03FF0000U + +/* +* Specifies the minimum number of clock cycles that the dfi_ctrlupd_req si + * gnal must be asserted. The uMCTL2 expects the PHY to respond within this + * time. If the PHY does not respond, the uMCTL2 will de-assert dfi_ctrlup + * d_req after dfi_t_ctrlup_min + 2 cycles. Lowest value to assign to this + * variable is 0x3. Unit: Clocks +*/ +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_DEFVAL +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_SHIFT +#undef DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_MASK +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_DEFVAL 0x00400003 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_SHIFT 0 +#define DDRC_DFIUPD0_DFI_T_CTRLUP_MIN_MASK 0x000003FFU + +/* +* This is the minimum amount of time between uMCTL2 initiated DFI update r + * equests (which is executed whenever the uMCTL2 is idle). Set this number + * higher to reduce the frequency of update requests, which can have a sma + * ll impact on the latency of the first read request when the uMCTL2 is id + * le. Unit: 1024 clocks +*/ #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL 0x00000000 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT 16 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK 0x00FF0000U +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_DEFVAL 0x00000000 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_SHIFT 16 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MIN_X1024_MASK 0x00FF0000U -/*This is the maximum amount of time between uMCTL2 initiated DFI update requests. This timer resets with each update request; - hen the timer expires dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd_ackx is received. PHY can use this - idle time to recalibrate the delay lines to the DLLs. The DFI controller update is also used to reset PHY FIFO pointers in ca - e of data capture errors. Updates are required to maintain calibration over PVT, but frequent updates may impact performance. - Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x - 024. Unit: 1024 clocks*/ +/* +* This is the maximum amount of time between uMCTL2 initiated DFI update r + * equests. This timer resets with each update request; when the timer expi + * res dfi_ctrlupd_req is sent and traffic is blocked until the dfi_ctrlupd + * _ackx is received. PHY can use this idle time to recalibrate the delay l + * ines to the DLLs. The DFI controller update is also used to reset PHY FI + * FO pointers in case of data capture errors. Updates are required to main + * tain calibration over PVT, but frequent updates may impact performance. + * Note: Value programmed for DFIUPD1.dfi_t_ctrlupd_interval_max_x1024 must + * be greater than DFIUPD1.dfi_t_ctrlupd_interval_min_x1024. Unit: 1024 cl + * ocks +*/ #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT #undef DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL 0x00000000 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT 0 -#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK 0x000000FFU +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_DEFVAL 0x00000000 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_SHIFT 0 +#define DDRC_DFIUPD1_DFI_T_CTRLUPD_INTERVAL_MAX_X1024_MASK 0x000000FFU -/*Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signals are active low - 1: Signals are active high*/ +/* +* Defines polarity of dfi_wrdata_cs and dfi_rddata_cs signals. - 0: Signal + * s are active low - 1: Signals are active high +*/ #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT #undef DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL 0x00000001 -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT 2 -#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK 0x00000004U +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_DEFVAL 0x00000001 +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_SHIFT 2 +#define DDRC_DFIMISC_DFI_DATA_CS_POLARITY_MASK 0x00000004U -/*DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. - 1 - PHY implements DBI functionality. Present only - in designs configured to support DDR4 and LPDDR4.*/ +/* +* DBI implemented in DDRC or PHY. - 0 - DDRC implements DBI functionality. + * - 1 - PHY implements DBI functionality. Present only in designs configu + * red to support DDR4 and LPDDR4. +*/ #undef DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL #undef DDRC_DFIMISC_PHY_DBI_MODE_SHIFT #undef DDRC_DFIMISC_PHY_DBI_MODE_MASK -#define DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL 0x00000001 -#define DDRC_DFIMISC_PHY_DBI_MODE_SHIFT 1 -#define DDRC_DFIMISC_PHY_DBI_MODE_MASK 0x00000002U +#define DDRC_DFIMISC_PHY_DBI_MODE_DEFVAL 0x00000001 +#define DDRC_DFIMISC_PHY_DBI_MODE_SHIFT 1 +#define DDRC_DFIMISC_PHY_DBI_MODE_MASK 0x00000002U -/*PHY initialization complete enable signal. When asserted the dfi_init_complete signal can be used to trigger SDRAM initialisa - ion*/ +/* +* PHY initialization complete enable signal. When asserted the dfi_init_co + * mplete signal can be used to trigger SDRAM initialisation +*/ #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT #undef DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL 0x00000001 -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT 0 -#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK 0x00000001U +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_DEFVAL 0x00000001 +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_SHIFT 0 +#define DDRC_DFIMISC_DFI_INIT_COMPLETE_EN_MASK 0x00000001U -/*>Number of clocks between when a read command is sent on the DFI control interface and when the associated dfi_rddata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY specification for correct value.*/ +/* +* >Number of clocks between when a read command is sent on the DFI control + * interface and when the associated dfi_rddata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_rdcslat. Refer to PHY spe + * cification for correct value. +*/ #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT #undef DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL 0x00000202 -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT 8 -#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK 0x00003F00U +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_DEFVAL 0x00000202 +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_SHIFT 8 +#define DDRC_DFITMG2_DFI_TPHY_RDCSLAT_MASK 0x00003F00U -/*Number of clocks between when a write command is sent on the DFI control interface and when the associated dfi_wrdata_cs sign - l is asserted. This corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY specification for correct value.*/ +/* +* Number of clocks between when a write command is sent on the DFI control + * interface and when the associated dfi_wrdata_cs signal is asserted. Thi + * s corresponds to the DFI timing parameter tphy_wrcslat. Refer to PHY spe + * cification for correct value. +*/ #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT #undef DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL 0x00000202 -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT 0 -#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK 0x0000003FU +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_DEFVAL 0x00000202 +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_SHIFT 0 +#define DDRC_DFITMG2_DFI_TPHY_WRCSLAT_MASK 0x0000003FU -/*Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read DBI is enabled. This signal must be set the same value - as DRAM's mode register. - DDR4: MR5 bit A12. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[6]*/ +/* +* Read DBI enable signal in DDRC. - 0 - Read DBI is disabled. - 1 - Read D + * BI is enabled. This signal must be set the same value as DRAM's mode reg + * ister. - DDR4: MR5 bit A12. When x4 devices are used, this signal must b + * e set to 0. - LPDDR4: MR3[6] +*/ #undef DDRC_DBICTL_RD_DBI_EN_DEFVAL #undef DDRC_DBICTL_RD_DBI_EN_SHIFT #undef DDRC_DBICTL_RD_DBI_EN_MASK -#define DDRC_DBICTL_RD_DBI_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_RD_DBI_EN_SHIFT 2 -#define DDRC_DBICTL_RD_DBI_EN_MASK 0x00000004U +#define DDRC_DBICTL_RD_DBI_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_RD_DBI_EN_SHIFT 2 +#define DDRC_DBICTL_RD_DBI_EN_MASK 0x00000004U -/*Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Write DBI is enabled. This signal must be set the same va - ue as DRAM's mode register. - DDR4: MR5 bit A11. When x4 devices are used, this signal must be set to 0. - LPDDR4: MR3[7]*/ +/* +* Write DBI enable signal in DDRC. - 0 - Write DBI is disabled. - 1 - Writ + * e DBI is enabled. This signal must be set the same value as DRAM's mode + * register. - DDR4: MR5 bit A11. When x4 devices are used, this signal mus + * t be set to 0. - LPDDR4: MR3[7] +*/ #undef DDRC_DBICTL_WR_DBI_EN_DEFVAL #undef DDRC_DBICTL_WR_DBI_EN_SHIFT #undef DDRC_DBICTL_WR_DBI_EN_MASK -#define DDRC_DBICTL_WR_DBI_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_WR_DBI_EN_SHIFT 1 -#define DDRC_DBICTL_WR_DBI_EN_MASK 0x00000002U +#define DDRC_DBICTL_WR_DBI_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_WR_DBI_EN_SHIFT 1 +#define DDRC_DBICTL_WR_DBI_EN_MASK 0x00000002U -/*DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. This signal must be set the same logical value as DRAM's - mode register. - DDR4: Set this to same value as MR5 bit A10. When x4 devices are used, this signal must be set to 0. - LPDDR - : Set this to inverted value of MR13[5] which is opposite polarity from this signal*/ +/* +* DM enable signal in DDRC. - 0 - DM is disabled. - 1 - DM is enabled. Thi + * s signal must be set the same logical value as DRAM's mode register. - D + * DR4: Set this to same value as MR5 bit A10. When x4 devices are used, th + * is signal must be set to 0. - LPDDR4: Set this to inverted value of MR13 + * [5] which is opposite polarity from this signal +*/ #undef DDRC_DBICTL_DM_EN_DEFVAL #undef DDRC_DBICTL_DM_EN_SHIFT #undef DDRC_DBICTL_DM_EN_MASK -#define DDRC_DBICTL_DM_EN_DEFVAL 0x00000001 -#define DDRC_DBICTL_DM_EN_SHIFT 0 -#define DDRC_DBICTL_DM_EN_MASK 0x00000001U +#define DDRC_DBICTL_DM_EN_DEFVAL 0x00000001 +#define DDRC_DBICTL_DM_EN_SHIFT 0 +#define DDRC_DBICTL_DM_EN_MASK 0x00000001U -/*Selects the HIF address bit used as rank address bit 0. Valid Range: 0 to 27, and 31 Internal Base: 6 The selected HIF addres - bit is determined by adding the internal base to the value of this field. If set to 31, rank address bit 0 is set to 0.*/ +/* +* Selects the HIF address bit used as rank address bit 0. Valid Range: 0 t + * o 27, and 31 Internal Base: 6 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, r + * ank address bit 0 is set to 0. +*/ #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT #undef DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT 0 -#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK 0x0000001FU +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_DEFVAL +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_SHIFT 0 +#define DDRC_ADDRMAP0_ADDRMAP_CS_BIT0_MASK 0x0000001FU -/*Selects the HIF address bit used as bank address bit 2. Valid Range: 0 to 29 and 31 Internal Base: 4 The selected HIF address - bit is determined by adding the internal base to the value of this field. If set to 31, bank address bit 2 is set to 0.*/ +/* +* Selects the HIF address bit used as bank address bit 2. Valid Range: 0 t + * o 29 and 31 Internal Base: 4 The selected HIF address bit is determined + * by adding the internal base to the value of this field. If set to 31, ba + * nk address bit 2 is set to 0. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT 16 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK 0x001F0000U +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_SHIFT 16 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B2_MASK 0x001F0000U -/*Selects the HIF address bits used as bank address bit 1. Valid Range: 0 to 30 Internal Base: 3 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank address bit 1. Valid Range: 0 + * to 30 Internal Base: 3 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT 8 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK 0x00001F00U +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_SHIFT 8 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B1_MASK 0x00001F00U -/*Selects the HIF address bits used as bank address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address bit f - r each of the bank address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank address bit 0. Valid Range: 0 + * to 30 Internal Base: 2 The selected HIF address bit for each of the bank + * address bits is determined by adding the internal base to the value of + * this field. +*/ #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT #undef DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT 0 -#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK 0x0000001FU +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_SHIFT 0 +#define DDRC_ADDRMAP1_ADDRMAP_BANK_B0_MASK 0x0000001FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 5. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 6. - Quarter bus width mode: Selects the HIF address bit used as column address bit 7 . Vali - Range: 0 to 7, and 15 Internal Base: 5 The selected HIF address bit is determined by adding the internal base to the value o - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 5. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 6. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 7 . Valid Range: 0 to 7, and 15 Internal Base + * : 5 The selected HIF address bit is determined by adding the internal ba + * se to the value of this field. If set to 15, this column address bit is + * set to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT 24 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK 0x0F000000U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_SHIFT 24 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B5_MASK 0x0F000000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 4. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 5. - Quarter bus width mode: Selects the HIF address bit used as column address bit 6. Valid - Range: 0 to 7, and 15 Internal Base: 4 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 4. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 5. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 6. Valid Range: 0 to 7, and 15 Internal Base: + * 4 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT 16 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK 0x000F0000U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_SHIFT 16 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B4_MASK 0x000F0000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 3. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 4. - Quarter bus width mode: Selects the HIF address bit used as column address bit 5. Valid - Range: 0 to 7 Internal Base: 3 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=16, it is required to program this to 0, hence register does not exist i - this case.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 3. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 4. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 5. Valid Range: 0 to 7 Internal Base: 3 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=1 + * 6, it is required to program this to 0, hence register does not exist in + * this case. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT 8 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK 0x00000F00U +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_SHIFT 8 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B3_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 2. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 3. - Quarter bus width mode: Selects the HIF address bit used as column address bit 4. Valid - Range: 0 to 7 Internal Base: 2 The selected HIF address bit is determined by adding the internal base to the value of this fi - ld. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 or 16, it is required to program this to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 2. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 3. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 4. Valid Range: 0 to 7 Internal Base: 2 The s + * elected HIF address bit is determined by adding the internal base to the + * value of this field. Note, if UMCTL2_INCL_ARB=1 and MEMC_BURST_LENGTH=8 + * or 16, it is required to program this to 0. +*/ #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT #undef DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT 0 -#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK 0x0000000FU +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_SHIFT 0 +#define DDRC_ADDRMAP2_ADDRMAP_COL_B2_MASK 0x0000000FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 9. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: Selects the HIF address bit used as - column address bit 13 (11 in LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected HIF address bit i - determined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: - er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source addr - ss bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus an - hence column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 9. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 11 (10 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: + * Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/ + * LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 9 The selected + * HIF address bit is determined by adding the internal base to the value o + * f this field. If set to 15, this column address bit is set to 0. Note: P + * er JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved fo + * r indicating auto-precharge, and hence no source address bit can be mapp + * ed to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit + * for auto-precharge in the CA bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT 24 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK 0x0F000000U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_SHIFT 24 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B9_MASK 0x0F000000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 8. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 9. - Quarter bus width mode: Selects the HIF address bit used as column address bit 11 (10 i - LPDDR2/LPDDR3 mode). Valid Range: 0 to 7, and 15 Internal Base: 8 The selected HIF address bit is determined by adding the i - ternal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specif - cation, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to col - mn address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is use - .*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 8. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 9. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). Valid Range: 0 + * to 7, and 15 Internal Base: 8 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specifi + * cation, column address bit 10 is reserved for indicating auto-precharge, + * and hence no source address bit can be mapped to column address bit 10. + * In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA + * bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT 16 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK 0x000F0000U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_SHIFT 16 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B8_MASK 0x000F0000U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 7. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 8. - Quarter bus width mode: Selects the HIF address bit used as column address bit 9. Valid - Range: 0 to 7, and 15 Internal Base: 7 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 7. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 8. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 9. Valid Range: 0 to 7, and 15 Internal Base: + * 7 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT 8 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK 0x00000F00U +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_SHIFT 8 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B7_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 6. - Half bus width mode: Selects the HIF addre - s bit used as column address bit 7. - Quarter bus width mode: Selects the HIF address bit used as column address bit 8. Valid - Range: 0 to 7, and 15 Internal Base: 6 The selected HIF address bit is determined by adding the internal base to the value of - this field. If set to 15, this column address bit is set to 0.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 6. - Half bus width mode: Selects the HIF address bit used as colu + * mn address bit 7. - Quarter bus width mode: Selects the HIF address bit + * used as column address bit 8. Valid Range: 0 to 7, and 15 Internal Base: + * 6 The selected HIF address bit is determined by adding the internal bas + * e to the value of this field. If set to 15, this column address bit is s + * et to 0. +*/ #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT #undef DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL 0x00000000 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT 0 -#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK 0x0000000FU +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_DEFVAL 0x00000000 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_SHIFT 0 +#define DDRC_ADDRMAP3_ADDRMAP_COL_B6_MASK 0x0000000FU -/*- Full bus width mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Unused. To make it unused, this should be tied to 4'hF. - Quarter bus width mode: Unused. To make it unused, this must - e tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 11 The selected HIF address bit is determined by adding the intern - l base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificati - n, column address bit 10 is reserved for indicating auto-precharge, and hence no source address bit can be mapped to column a - dress bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and hence column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 13 (11 in LPDDR2/LPDDR3 mode). - Half bus width mode: Unused. To m + * ake it unused, this should be tied to 4'hF. - Quarter bus width mode: Un + * used. To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, + * and 15 Internal Base: 11 The selected HIF address bit is determined by + * adding the internal base to the value of this field. If set to 15, this + * column address bit is set to 0. Note: Per JEDEC DDR2/3/mDDR specificatio + * n, column address bit 10 is reserved for indicating auto-precharge, and + * hence no source address bit can be mapped to column address bit 10. In L + * PDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus + * and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT #undef DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL 0x00000000 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT 8 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK 0x00000F00U +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_DEFVAL 0x00000000 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_SHIFT 8 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B11_MASK 0x00000F00U -/*- Full bus width mode: Selects the HIF address bit used as column address bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width - mode: Selects the HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode). - Quarter bus width mode: UNUSED. - To make it unused, this must be tied to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF address bit is d - termined by adding the internal base to the value of this field. If set to 15, this column address bit is set to 0. Note: Per - JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for indicating auto-precharge, and hence no source address - bit can be mapped to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for auto-precharge in the CA bus and h - nce column bit 10 is used.*/ +/* +* - Full bus width mode: Selects the HIF address bit used as column addres + * s bit 11 (10 in LPDDR2/LPDDR3 mode). - Half bus width mode: Selects the + * HIF address bit used as column address bit 13 (11 in LPDDR2/LPDDR3 mode) + * . - Quarter bus width mode: UNUSED. To make it unused, this must be tied + * to 4'hF. Valid Range: 0 to 7, and 15 Internal Base: 10 The selected HIF + * address bit is determined by adding the internal base to the value of t + * his field. If set to 15, this column address bit is set to 0. Note: Per + * JEDEC DDR2/3/mDDR specification, column address bit 10 is reserved for i + * ndicating auto-precharge, and hence no source address bit can be mapped + * to column address bit 10. In LPDDR2/LPDDR3, there is a dedicated bit for + * auto-precharge in the CA bus and hence column bit 10 is used. +*/ #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT #undef DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL 0x00000000 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT 0 -#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK 0x0000000FU +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_DEFVAL 0x00000000 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_SHIFT 0 +#define DDRC_ADDRMAP4_ADDRMAP_COL_B10_MASK 0x0000000FU -/*Selects the HIF address bit used as row address bit 11. Valid Range: 0 to 11, and 15 Internal Base: 17 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 11 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 11. Valid Range: 0 t + * o 11, and 15 Internal Base: 17 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 11 is set to 0. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT 24 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK 0x0F000000U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_SHIFT 24 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B11_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bits 2 to 10. Valid Range: 0 to 11, and 15 Internal Base: 8 (for row address - bit 2), 9 (for row address bit 3), 10 (for row address bit 4) etc increasing to 16 (for row address bit 10) The selected HIF - ddress bit for each of the row address bits is determined by adding the internal base to the value of this field. When value - 5 is used the values of row address bits 2 to 10 are defined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11.*/ +/* +* Selects the HIF address bits used as row address bits 2 to 10. Valid Ran + * ge: 0 to 11, and 15 Internal Base: 8 (for row address bit 2), 9 (for row + * address bit 3), 10 (for row address bit 4) etc increasing to 16 (for ro + * w address bit 10) The selected HIF address bit for each of the row addre + * ss bits is determined by adding the internal base to the value of this f + * ield. When value 15 is used the values of row address bits 2 to 10 are d + * efined by registers ADDRMAP9, ADDRMAP10, ADDRMAP11. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT 16 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK 0x000F0000U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_SHIFT 16 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B2_10_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 1. Valid Range: 0 to 11 Internal Base: 7 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as row address bit 1. Valid Range: 0 t + * o 11 Internal Base: 7 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT 8 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK 0x00000F00U +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_SHIFT 8 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B1_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 0. Valid Range: 0 to 11 Internal Base: 6 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as row address bit 0. Valid Range: 0 t + * o 11 Internal Base: 6 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. +*/ #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT #undef DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT 0 -#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK 0x0000000FU +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_SHIFT 0 +#define DDRC_ADDRMAP5_ADDRMAP_ROW_B0_MASK 0x0000000FU -/*Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address - having row[14:13]==2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. All addresses are valid Present on - y in designs configured to support LPDDR3.*/ +/* +* Set this to 1 if there is an LPDDR3 SDRAM 6Gb or 12Gb device in use. - 1 + * - LPDDR3 SDRAM 6Gb/12Gb device in use. Every address having row[14:13]= + * =2'b11 is considered as invalid - 0 - non-LPDDR3 6Gb/12Gb device in use. + * All addresses are valid Present only in designs configured to support L + * PDDR3. +*/ #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT #undef DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT 31 -#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK 0x80000000U +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_SHIFT 31 +#define DDRC_ADDRMAP6_LPDDR3_6GB_12GB_MASK 0x80000000U -/*Selects the HIF address bit used as row address bit 15. Valid Range: 0 to 11, and 15 Internal Base: 21 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 15 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 15. Valid Range: 0 t + * o 11, and 15 Internal Base: 21 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 15 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT 24 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK 0x0F000000U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_SHIFT 24 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B15_MASK 0x0F000000U -/*Selects the HIF address bit used as row address bit 14. Valid Range: 0 to 11, and 15 Internal Base: 20 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 14 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 14. Valid Range: 0 t + * o 11, and 15 Internal Base: 20 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 14 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT 16 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK 0x000F0000U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_SHIFT 16 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B14_MASK 0x000F0000U -/*Selects the HIF address bit used as row address bit 13. Valid Range: 0 to 11, and 15 Internal Base: 19 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 13 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 13. Valid Range: 0 t + * o 11, and 15 Internal Base: 19 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 13 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT 8 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK 0x00000F00U +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_SHIFT 8 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B13_MASK 0x00000F00U -/*Selects the HIF address bit used as row address bit 12. Valid Range: 0 to 11, and 15 Internal Base: 18 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 12 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 12. Valid Range: 0 t + * o 11, and 15 Internal Base: 18 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 12 is set to 0. +*/ #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT #undef DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL 0x00000000 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT 0 -#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK 0x0000000FU +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_DEFVAL 0x00000000 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_SHIFT 0 +#define DDRC_ADDRMAP6_ADDRMAP_ROW_B12_MASK 0x0000000FU -/*Selects the HIF address bit used as row address bit 17. Valid Range: 0 to 10, and 15 Internal Base: 23 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 17 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 17. Valid Range: 0 t + * o 10, and 15 Internal Base: 23 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 17 is set to 0. +*/ #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL 0x00000000 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT 8 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK 0x00000F00U +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_DEFVAL 0x00000000 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_SHIFT 8 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B17_MASK 0x00000F00U -/*Selects the HIF address bit used as row address bit 16. Valid Range: 0 to 11, and 15 Internal Base: 22 The selected HIF addre - s bit is determined by adding the internal base to the value of this field. If set to 15, row address bit 16 is set to 0.*/ +/* +* Selects the HIF address bit used as row address bit 16. Valid Range: 0 t + * o 11, and 15 Internal Base: 22 The selected HIF address bit is determine + * d by adding the internal base to the value of this field. If set to 15, + * row address bit 16 is set to 0. +*/ #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT #undef DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL 0x00000000 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT 0 -#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK 0x0000000FU +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_DEFVAL 0x00000000 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_SHIFT 0 +#define DDRC_ADDRMAP7_ADDRMAP_ROW_B16_MASK 0x0000000FU -/*Selects the HIF address bits used as bank group address bit 1. Valid Range: 0 to 30, and 31 Internal Base: 3 The selected HIF - address bit for each of the bank group address bits is determined by adding the internal base to the value of this field. If - et to 31, bank group address bit 1 is set to 0.*/ +/* +* Selects the HIF address bits used as bank group address bit 1. Valid Ran + * ge: 0 to 30, and 31 Internal Base: 3 The selected HIF address bit for ea + * ch of the bank group address bits is determined by adding the internal b + * ase to the value of this field. If set to 31, bank group address bit 1 i + * s set to 0. +*/ #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT #undef DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL 0x00000000 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT 8 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK 0x00001F00U +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_DEFVAL 0x00000000 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_SHIFT 8 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B1_MASK 0x00001F00U -/*Selects the HIF address bits used as bank group address bit 0. Valid Range: 0 to 30 Internal Base: 2 The selected HIF address - bit for each of the bank group address bits is determined by adding the internal base to the value of this field.*/ +/* +* Selects the HIF address bits used as bank group address bit 0. Valid Ran + * ge: 0 to 30 Internal Base: 2 The selected HIF address bit for each of th + * e bank group address bits is determined by adding the internal base to t + * he value of this field. +*/ #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT #undef DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL 0x00000000 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT 0 -#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK 0x0000001FU +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_DEFVAL 0x00000000 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_SHIFT 0 +#define DDRC_ADDRMAP8_ADDRMAP_BG_B0_MASK 0x0000001FU -/*Selects the HIF address bits used as row address bit 5. Valid Range: 0 to 11 Internal Base: 11 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 5. Valid Range: 0 t + * o 11 Internal Base: 11 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT 24 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK 0x0F000000U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_SHIFT 24 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B5_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bit 4. Valid Range: 0 to 11 Internal Base: 10 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 4. Valid Range: 0 t + * o 11 Internal Base: 10 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT 16 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK 0x000F0000U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_SHIFT 16 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B4_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 3. Valid Range: 0 to 11 Internal Base: 9 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 3. Valid Range: 0 t + * o 11 Internal Base: 9 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT 8 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK 0x00000F00U +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_SHIFT 8 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B3_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 2. Valid Range: 0 to 11 Internal Base: 8 The selected HIF address bit fo - each of the row address bits is determined by adding the internal base to the value of this field. This register field is us - d only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 2. Valid Range: 0 t + * o 11 Internal Base: 8 The selected HIF address bit for each of the row a + * ddress bits is determined by adding the internal base to the value of th + * is field. This register field is used only when ADDRMAP5.addrmap_row_b2_ + * 10 is set to value 15. +*/ #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT #undef DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL 0x00000000 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT 0 -#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK 0x0000000FU +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_DEFVAL 0x00000000 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_SHIFT 0 +#define DDRC_ADDRMAP9_ADDRMAP_ROW_B2_MASK 0x0000000FU -/*Selects the HIF address bits used as row address bit 9. Valid Range: 0 to 11 Internal Base: 15 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 9. Valid Range: 0 t + * o 11 Internal Base: 15 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT 24 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK 0x0F000000U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_SHIFT 24 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B9_MASK 0x0F000000U -/*Selects the HIF address bits used as row address bit 8. Valid Range: 0 to 11 Internal Base: 14 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 8. Valid Range: 0 t + * o 11 Internal Base: 14 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT 16 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK 0x000F0000U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_SHIFT 16 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B8_MASK 0x000F0000U -/*Selects the HIF address bits used as row address bit 7. Valid Range: 0 to 11 Internal Base: 13 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 7. Valid Range: 0 t + * o 11 Internal Base: 13 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT 8 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK 0x00000F00U +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_SHIFT 8 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B7_MASK 0x00000F00U -/*Selects the HIF address bits used as row address bit 6. Valid Range: 0 to 11 Internal Base: 12 The selected HIF address bit f - r each of the row address bits is determined by adding the internal base to the value of this field. This register field is u - ed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 6. Valid Range: 0 t + * o 11 Internal Base: 12 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of t + * his field. This register field is used only when ADDRMAP5.addrmap_row_b2 + * _10 is set to value 15. +*/ #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT #undef DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL 0x00000000 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT 0 -#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK 0x0000000FU +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_DEFVAL 0x00000000 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_SHIFT 0 +#define DDRC_ADDRMAP10_ADDRMAP_ROW_B6_MASK 0x0000000FU -/*Selects the HIF address bits used as row address bit 10. Valid Range: 0 to 11 Internal Base: 16 The selected HIF address bit - or each of the row address bits is determined by adding the internal base to the value of this field. This register field is - sed only when ADDRMAP5.addrmap_row_b2_10 is set to value 15.*/ +/* +* Selects the HIF address bits used as row address bit 10. Valid Range: 0 + * to 11 Internal Base: 16 The selected HIF address bit for each of the row + * address bits is determined by adding the internal base to the value of + * this field. This register field is used only when ADDRMAP5.addrmap_row_b + * 2_10 is set to value 15. +*/ #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT #undef DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT 0 -#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK 0x0000000FU +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_DEFVAL +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_SHIFT 0 +#define DDRC_ADDRMAP11_ADDRMAP_ROW_B10_MASK 0x0000000FU -/*Cycles to hold ODT for a write command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/ - 67), 0x6 (DDR2-800), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (DDR2-1066) DDR3: - BL8: 0x6 DDR4: - - L8: 5 + WR_PREAMBLE + CRC_MODE WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 (not CRC mode), 1 - CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK)*/ +/* +* Cycles to hold ODT for a write command. The minimum supported value is 2 + * . Recommended values: DDR2: - BL8: 0x5 (DDR2-400/533/667), 0x6 (DDR2-800 + * ), 0x7 (DDR2-1066) - BL4: 0x3 (DDR2-400/533/667), 0x4 (DDR2-800), 0x5 (D + * DR2-1066) DDR3: - BL8: 0x6 DDR4: - BL8: 5 + WR_PREAMBLE + CRC_MODE WR_PR + * EAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) CRC_MODE = 0 ( + * not CRC mode), 1 (CRC mode) LPDDR3: - BL8: 7 + RU(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL #undef DDRC_ODTCFG_WR_ODT_HOLD_SHIFT #undef DDRC_ODTCFG_WR_ODT_HOLD_MASK -#define DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL 0x04000400 -#define DDRC_ODTCFG_WR_ODT_HOLD_SHIFT 24 -#define DDRC_ODTCFG_WR_ODT_HOLD_MASK 0x0F000000U +#define DDRC_ODTCFG_WR_ODT_HOLD_DEFVAL 0x04000400 +#define DDRC_ODTCFG_WR_ODT_HOLD_SHIFT 24 +#define DDRC_ODTCFG_WR_ODT_HOLD_MASK 0x0F000000U -/*The delay, in clock cycles, from issuing a write command to setting ODT values associated with that command. ODT setting must - remain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CWL + AL - 3 (DDR2-400/533/ - 67), CWL + AL - 4 (DDR2-800), CWL + AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT for write operation - DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK))*/ +/* +* The delay, in clock cycles, from issuing a write command to setting ODT + * values associated with that command. ODT setting must remain constant fo + * r the entire time that DQS is driven by the uMCTL2. Recommended values: + * DDR2: - CWL + AL - 3 (DDR2-400/533/667), CWL + AL - 4 (DDR2-800), CWL + + * AL - 5 (DDR2-1066) If (CWL + AL - 3 < 0), uMCTL2 does not support ODT fo + * r write operation. DDR3: - 0x0 DDR4: - DFITMG1.dfi_t_cmd_lat (to adjust + * for CAL mode) LPDDR3: - WL - 1 - RU(tODTon(max)/tCK)) +*/ #undef DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL #undef DDRC_ODTCFG_WR_ODT_DELAY_SHIFT #undef DDRC_ODTCFG_WR_ODT_DELAY_MASK -#define DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL 0x04000400 -#define DDRC_ODTCFG_WR_ODT_DELAY_SHIFT 16 -#define DDRC_ODTCFG_WR_ODT_DELAY_MASK 0x001F0000U +#define DDRC_ODTCFG_WR_ODT_DELAY_DEFVAL 0x04000400 +#define DDRC_ODTCFG_WR_ODT_DELAY_SHIFT 16 +#define DDRC_ODTCFG_WR_ODT_DELAY_MASK 0x001F0000U -/*Cycles to hold ODT for a read command. The minimum supported value is 2. Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066) - 0x7 (DDR2-1066) - BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8: 5 + RD_PREAMBLE RD_PREAMBLE = 1 ( - tCK write preamble), 2 (2tCK write preamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + RU(tODTon(max)/tC - )*/ +/* +* Cycles to hold ODT for a read command. The minimum supported value is 2. + * Recommended values: DDR2: - BL8: 0x6 (not DDR2-1066), 0x7 (DDR2-1066) - + * BL4: 0x4 (not DDR2-1066), 0x5 (DDR2-1066) DDR3: - BL8 - 0x6 DDR4: - BL8 + * : 5 + RD_PREAMBLE RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write p + * reamble) LPDDR3: - BL8: 5 + RU(tDQSCK(max)/tCK) - RD(tDQSCK(min)/tCK) + + * RU(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL #undef DDRC_ODTCFG_RD_ODT_HOLD_SHIFT #undef DDRC_ODTCFG_RD_ODT_HOLD_MASK -#define DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL 0x04000400 -#define DDRC_ODTCFG_RD_ODT_HOLD_SHIFT 8 -#define DDRC_ODTCFG_RD_ODT_HOLD_MASK 0x00000F00U +#define DDRC_ODTCFG_RD_ODT_HOLD_DEFVAL 0x04000400 +#define DDRC_ODTCFG_RD_ODT_HOLD_SHIFT 8 +#define DDRC_ODTCFG_RD_ODT_HOLD_MASK 0x00000F00U -/*The delay, in clock cycles, from issuing a read command to setting ODT values associated with that command. ODT setting must - emain constant for the entire time that DQS is driven by the uMCTL2. Recommended values: DDR2: - CL + AL - 4 (not DDR2-1066), - CL + AL - 5 (DDR2-1066) If (CL + AL - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - CWL DDR4: - CL - C - L - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK - write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write preamble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, - uMCTL2 does not support ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - RU(tODTon(max)/tCK)*/ +/* +* The delay, in clock cycles, from issuing a read command to setting ODT v + * alues associated with that command. ODT setting must remain constant for + * the entire time that DQS is driven by the uMCTL2. Recommended values: D + * DR2: - CL + AL - 4 (not DDR2-1066), CL + AL - 5 (DDR2-1066) If (CL + AL + * - 4 < 0), uMCTL2 does not support ODT for read operation. DDR3: - CL - C + * WL DDR4: - CL - CWL - RD_PREAMBLE + WR_PREAMBLE + DFITMG1.dfi_t_cmd_lat + * (to adjust for CAL mode) WR_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK + * write preamble) RD_PREAMBLE = 1 (1tCK write preamble), 2 (2tCK write pre + * amble) If (CL - CWL - RD_PREAMBLE + WR_PREAMBLE) < 0, uMCTL2 does not su + * pport ODT for read operation. LPDDR3: - RL + RD(tDQSCK(min)/tCK) - 1 - R + * U(tODTon(max)/tCK) +*/ #undef DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL #undef DDRC_ODTCFG_RD_ODT_DELAY_SHIFT #undef DDRC_ODTCFG_RD_ODT_DELAY_MASK -#define DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL 0x04000400 -#define DDRC_ODTCFG_RD_ODT_DELAY_SHIFT 2 -#define DDRC_ODTCFG_RD_ODT_DELAY_MASK 0x0000007CU +#define DDRC_ODTCFG_RD_ODT_DELAY_DEFVAL 0x04000400 +#define DDRC_ODTCFG_RD_ODT_DELAY_SHIFT 2 +#define DDRC_ODTCFG_RD_ODT_DELAY_MASK 0x0000007CU -/*Indicates which remote ODTs must be turned on during a read from rank 1. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks*/ +/* +* Indicates which remote ODTs must be turned on during a read from rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. Present only in configurations that have 2 or more + * ranks +*/ #undef DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL #undef DDRC_ODTMAP_RANK1_RD_ODT_SHIFT #undef DDRC_ODTMAP_RANK1_RD_ODT_MASK -#define DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK1_RD_ODT_SHIFT 12 -#define DDRC_ODTMAP_RANK1_RD_ODT_MASK 0x00003000U +#define DDRC_ODTMAP_RANK1_RD_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK1_RD_ODT_SHIFT 12 +#define DDRC_ODTMAP_RANK1_RD_ODT_MASK 0x00003000U -/*Indicates which remote ODTs must be turned on during a write to rank 1. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT. Present only in configurations that have 2 or more ranks*/ +/* +* Indicates which remote ODTs must be turned on during a write to rank 1. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. Present only in configurations that have 2 or more r + * anks +*/ #undef DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL #undef DDRC_ODTMAP_RANK1_WR_ODT_SHIFT #undef DDRC_ODTMAP_RANK1_WR_ODT_MASK -#define DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK1_WR_ODT_SHIFT 8 -#define DDRC_ODTMAP_RANK1_WR_ODT_MASK 0x00000300U +#define DDRC_ODTMAP_RANK1_WR_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK1_WR_ODT_SHIFT 8 +#define DDRC_ODTMAP_RANK1_WR_ODT_MASK 0x00000300U -/*Indicates which remote ODTs must be turned on during a read from rank 0. Each rank has a remote ODT (in the SDRAM) which can - e turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB - etc. For each rank, set its bit to 1 to enable its ODT.*/ +/* +* Indicates which remote ODTs must be turned on during a read from rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by set + * ting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 i + * s controlled by bit next to the LSB, etc. For each rank, set its bit to + * 1 to enable its ODT. +*/ #undef DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL #undef DDRC_ODTMAP_RANK0_RD_ODT_SHIFT #undef DDRC_ODTMAP_RANK0_RD_ODT_MASK -#define DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK0_RD_ODT_SHIFT 4 -#define DDRC_ODTMAP_RANK0_RD_ODT_MASK 0x00000030U +#define DDRC_ODTMAP_RANK0_RD_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK0_RD_ODT_SHIFT 4 +#define DDRC_ODTMAP_RANK0_RD_ODT_MASK 0x00000030U -/*Indicates which remote ODTs must be turned on during a write to rank 0. Each rank has a remote ODT (in the SDRAM) which can b - turned on by setting the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is controlled by bit next to the LSB, - etc. For each rank, set its bit to 1 to enable its ODT.*/ +/* +* Indicates which remote ODTs must be turned on during a write to rank 0. + * Each rank has a remote ODT (in the SDRAM) which can be turned on by sett + * ing the appropriate bit here. Rank 0 is controlled by the LSB; rank 1 is + * controlled by bit next to the LSB, etc. For each rank, set its bit to 1 + * to enable its ODT. +*/ #undef DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL #undef DDRC_ODTMAP_RANK0_WR_ODT_SHIFT #undef DDRC_ODTMAP_RANK0_WR_ODT_MASK -#define DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL 0x00002211 -#define DDRC_ODTMAP_RANK0_WR_ODT_SHIFT 0 -#define DDRC_ODTMAP_RANK0_WR_ODT_MASK 0x00000003U +#define DDRC_ODTMAP_RANK0_WR_ODT_DEFVAL 0x00002211 +#define DDRC_ODTMAP_RANK0_WR_ODT_SHIFT 0 +#define DDRC_ODTMAP_RANK0_WR_ODT_MASK 0x00000003U -/*When the preferred transaction store is empty for these many clock cycles, switch to the alternate transaction store if it is - non-empty. The read transaction store (both high and low priority) is the default preferred transaction store and the write t - ansaction store is the alternative store. When prefer write over read is set this is reversed. 0x0 is a legal value for this - egister. When set to 0x0, the transaction store switching will happen immediately when the switching conditions become true. - OR PERFORMANCE ONLY*/ +/* +* When the preferred transaction store is empty for these many clock cycle + * s, switch to the alternate transaction store if it is non-empty. The rea + * d transaction store (both high and low priority) is the default preferre + * d transaction store and the write transaction store is the alternative s + * tore. When prefer write over read is set this is reversed. 0x0 is a lega + * l value for this register. When set to 0x0, the transaction store switch + * ing will happen immediately when the switching conditions become true. F + * OR PERFORMANCE ONLY +*/ #undef DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL #undef DDRC_SCHED_RDWR_IDLE_GAP_SHIFT #undef DDRC_SCHED_RDWR_IDLE_GAP_MASK -#define DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL 0x00002005 -#define DDRC_SCHED_RDWR_IDLE_GAP_SHIFT 24 -#define DDRC_SCHED_RDWR_IDLE_GAP_MASK 0x7F000000U +#define DDRC_SCHED_RDWR_IDLE_GAP_DEFVAL 0x00002005 +#define DDRC_SCHED_RDWR_IDLE_GAP_SHIFT 24 +#define DDRC_SCHED_RDWR_IDLE_GAP_MASK 0x7F000000U -/*UNUSED*/ +/* +* UNUSED +*/ #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT #undef DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL 0x00002005 -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT 16 -#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK 0x00FF0000U +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_DEFVAL 0x00002005 +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_SHIFT 16 +#define DDRC_SCHED_GO2CRITICAL_HYSTERESIS_MASK 0x00FF0000U -/*Number of entries in the low priority transaction store is this value + 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) i - the number of entries available for the high priority transaction store. Setting this to maximum value allocates all entries - to low priority transaction store. Setting this to 0 allocates 1 entry to low priority transaction store and the rest to high - priority transaction store. Note: In ECC configurations, the numbers of write and low priority read credits issued is one les - than in the non-ECC case. One entry each is reserved in the write and low-priority read CAMs for storing the RMW requests ar - sing out of single bit error correction RMW operation.*/ +/* +* Number of entries in the low priority transaction store is this value + + * 1. (MEMC_NO_OF_ENTRY - (SCHED.lpr_num_entries + 1)) is the number of ent + * ries available for the high priority transaction store. Setting this to + * maximum value allocates all entries to low priority transaction store. S + * etting this to 0 allocates 1 entry to low priority transaction store and + * the rest to high priority transaction store. Note: In ECC configuration + * s, the numbers of write and low priority read credits issued is one less + * than in the non-ECC case. One entry each is reserved in the write and l + * ow-priority read CAMs for storing the RMW requests arising out of single + * bit error correction RMW operation. +*/ #undef DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL #undef DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT #undef DDRC_SCHED_LPR_NUM_ENTRIES_MASK -#define DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL 0x00002005 -#define DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT 8 -#define DDRC_SCHED_LPR_NUM_ENTRIES_MASK 0x00003F00U +#define DDRC_SCHED_LPR_NUM_ENTRIES_DEFVAL 0x00002005 +#define DDRC_SCHED_LPR_NUM_ENTRIES_SHIFT 8 +#define DDRC_SCHED_LPR_NUM_ENTRIES_MASK 0x00003F00U -/*If true, bank is kept open only while there are page hit transactions available in the CAM to that bank. The last read or wri - e command in the CAM with a bank and page hit will be executed with auto-precharge if SCHED1.pageclose_timer=0. Even if this - egister set to 1 and SCHED1.pageclose_timer is set to 0, explicit precharge (and not auto-precharge) may be issued in some ca - es where there is a mode switch between Write and Read or between LPR and HPR. The Read and Write commands that are executed - s part of the ECC scrub requests are also executed without auto-precharge. If false, the bank remains open until there is a n - ed to close it (to open a different page, or for page timeout or refresh timeout) - also known as open page policy. The open - age policy can be overridden by setting the per-command-autopre bit on the HIF interface (hif_cmd_autopre). The pageclose fea - ure provids a midway between Open and Close page policies. FOR PERFORMANCE ONLY.*/ +/* +* If true, bank is kept open only while there are page hit transactions av + * ailable in the CAM to that bank. The last read or write command in the C + * AM with a bank and page hit will be executed with auto-precharge if SCHE + * D1.pageclose_timer=0. Even if this register set to 1 and SCHED1.pageclos + * e_timer is set to 0, explicit precharge (and not auto-precharge) may be + * issued in some cases where there is a mode switch between Write and Read + * or between LPR and HPR. The Read and Write commands that are executed a + * s part of the ECC scrub requests are also executed without auto-precharg + * e. If false, the bank remains open until there is a need to close it (to + * open a different page, or for page timeout or refresh timeout) - also k + * nown as open page policy. The open page policy can be overridden by sett + * ing the per-command-autopre bit on the HIF interface (hif_cmd_autopre). + * The pageclose feature provids a midway between Open and Close page polic + * ies. FOR PERFORMANCE ONLY. +*/ #undef DDRC_SCHED_PAGECLOSE_DEFVAL #undef DDRC_SCHED_PAGECLOSE_SHIFT #undef DDRC_SCHED_PAGECLOSE_MASK -#define DDRC_SCHED_PAGECLOSE_DEFVAL 0x00002005 -#define DDRC_SCHED_PAGECLOSE_SHIFT 2 -#define DDRC_SCHED_PAGECLOSE_MASK 0x00000004U +#define DDRC_SCHED_PAGECLOSE_DEFVAL 0x00002005 +#define DDRC_SCHED_PAGECLOSE_SHIFT 2 +#define DDRC_SCHED_PAGECLOSE_MASK 0x00000004U -/*If set then the bank selector prefers writes over reads. FOR DEBUG ONLY.*/ +/* +* If set then the bank selector prefers writes over reads. FOR DEBUG ONLY. +*/ #undef DDRC_SCHED_PREFER_WRITE_DEFVAL #undef DDRC_SCHED_PREFER_WRITE_SHIFT #undef DDRC_SCHED_PREFER_WRITE_MASK -#define DDRC_SCHED_PREFER_WRITE_DEFVAL 0x00002005 -#define DDRC_SCHED_PREFER_WRITE_SHIFT 1 -#define DDRC_SCHED_PREFER_WRITE_MASK 0x00000002U +#define DDRC_SCHED_PREFER_WRITE_DEFVAL 0x00002005 +#define DDRC_SCHED_PREFER_WRITE_SHIFT 1 +#define DDRC_SCHED_PREFER_WRITE_MASK 0x00000002U -/*Active low signal. When asserted ('0'), all incoming transactions are forced to low priority. This implies that all High Prio - ity Read (HPR) and Variable Priority Read commands (VPR) will be treated as Low Priority Read (LPR) commands. On the write si - e, all Variable Priority Write (VPW) commands will be treated as Normal Priority Write (NPW) commands. Forcing the incoming t - ansactions to low priority implicitly turns off Bypass path for read commands. FOR PERFORMANCE ONLY.*/ +/* +* Active low signal. When asserted ('0'), all incoming transactions are fo + * rced to low priority. This implies that all High Priority Read (HPR) and + * Variable Priority Read commands (VPR) will be treated as Low Priority R + * ead (LPR) commands. On the write side, all Variable Priority Write (VPW) + * commands will be treated as Normal Priority Write (NPW) commands. Forci + * ng the incoming transactions to low priority implicitly turns off Bypass + * path for read commands. FOR PERFORMANCE ONLY. +*/ #undef DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL #undef DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT #undef DDRC_SCHED_FORCE_LOW_PRI_N_MASK -#define DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL 0x00002005 -#define DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT 0 -#define DDRC_SCHED_FORCE_LOW_PRI_N_MASK 0x00000001U +#define DDRC_SCHED_FORCE_LOW_PRI_N_DEFVAL 0x00002005 +#define DDRC_SCHED_FORCE_LOW_PRI_N_SHIFT 0 +#define DDRC_SCHED_FORCE_LOW_PRI_N_MASK 0x00000001U -/*Number of transactions that are serviced once the LPR queue goes critical is the smaller of: - (a) This number - (b) Number o - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY.*/ +/* +* Number of transactions that are serviced once the LPR queue goes critica + * l is the smaller of: - (a) This number - (b) Number of transactions avai + * lable. Unit: Transaction. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT #undef DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL 0x0F00007F -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT 24 -#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK 0xFF000000U +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_DEFVAL 0x0F00007F +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_SHIFT 24 +#define DDRC_PERFLPR1_LPR_XACT_RUN_LENGTH_MASK 0xFF000000U -/*Number of clocks that the LPR queue can be starved before it goes critical. The minimum valid functional value for this regis - er is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - be disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY.*/ +/* +* Number of clocks that the LPR queue can be starved before it goes critic + * al. The minimum valid functional value for this register is 0x1. Program + * ming it to 0x0 will disable the starvation functionality; during normal + * operation, this function should not be disabled as it will cause excessi + * ve latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL #undef DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT #undef DDRC_PERFLPR1_LPR_MAX_STARVE_MASK -#define DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL 0x0F00007F -#define DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT 0 -#define DDRC_PERFLPR1_LPR_MAX_STARVE_MASK 0x0000FFFFU +#define DDRC_PERFLPR1_LPR_MAX_STARVE_DEFVAL 0x0F00007F +#define DDRC_PERFLPR1_LPR_MAX_STARVE_SHIFT 0 +#define DDRC_PERFLPR1_LPR_MAX_STARVE_MASK 0x0000FFFFU -/*Number of transactions that are serviced once the WR queue goes critical is the smaller of: - (a) This number - (b) Number of - transactions available. Unit: Transaction. FOR PERFORMANCE ONLY.*/ +/* +* Number of transactions that are serviced once the WR queue goes critical + * is the smaller of: - (a) This number - (b) Number of transactions avail + * able. Unit: Transaction. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT #undef DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL 0x0F00007F -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT 24 -#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK 0xFF000000U +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_DEFVAL 0x0F00007F +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_SHIFT 24 +#define DDRC_PERFWR1_W_XACT_RUN_LENGTH_MASK 0xFF000000U -/*Number of clocks that the WR queue can be starved before it goes critical. The minimum valid functional value for this regist - r is 0x1. Programming it to 0x0 will disable the starvation functionality; during normal operation, this function should not - e disabled as it will cause excessive latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY.*/ +/* +* Number of clocks that the WR queue can be starved before it goes critica + * l. The minimum valid functional value for this register is 0x1. Programm + * ing it to 0x0 will disable the starvation functionality; during normal o + * peration, this function should not be disabled as it will cause excessiv + * e latencies. Unit: Clock cycles. FOR PERFORMANCE ONLY. +*/ #undef DDRC_PERFWR1_W_MAX_STARVE_DEFVAL #undef DDRC_PERFWR1_W_MAX_STARVE_SHIFT #undef DDRC_PERFWR1_W_MAX_STARVE_MASK -#define DDRC_PERFWR1_W_MAX_STARVE_DEFVAL 0x0F00007F -#define DDRC_PERFWR1_W_MAX_STARVE_SHIFT 0 -#define DDRC_PERFWR1_W_MAX_STARVE_MASK 0x0000FFFFU +#define DDRC_PERFWR1_W_MAX_STARVE_DEFVAL 0x0F00007F +#define DDRC_PERFWR1_W_MAX_STARVE_SHIFT 0 +#define DDRC_PERFWR1_W_MAX_STARVE_MASK 0x0000FFFFU -/*All even ranks have the same DQ mapping controled by DQMAP0-4 register as rank 0. This register provides DQ swap function for - all odd ranks to support CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap bit 2 with 3, swap bit 4 with 5 and - wap bit 6 with 7. 1: Disable rank based DQ swapping 0: Enable rank based DQ swapping Present only in designs configured to su - port DDR4.*/ +/* +* DQ nibble map for DQ bits [12-15] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_SHIFT 24 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_12_15_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [8-11] Present only in designs configured to s + * upport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_SHIFT 16 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_8_11_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [4-7] Present only in designs configured to su + * pport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_SHIFT 8 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_4_7_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [0-3] Present only in designs configured to su + * pport DDR4. +*/ +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_DEFVAL +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_SHIFT +#undef DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_MASK +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_DEFVAL 0x00000000 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_SHIFT 0 +#define DDRC_DQMAP0_DQ_NIBBLE_MAP_0_3_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [28-31] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_SHIFT 24 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_28_31_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [24-27] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_SHIFT 16 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_24_27_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [20-23] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_SHIFT 8 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_20_23_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [16-19] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_DEFVAL +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_SHIFT +#undef DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_MASK +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_DEFVAL 0x00000000 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_SHIFT 0 +#define DDRC_DQMAP1_DQ_NIBBLE_MAP_16_19_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [44-47] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_SHIFT 24 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_44_47_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [40-43] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_SHIFT 16 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_40_43_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [36-39] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_SHIFT 8 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_36_39_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [32-35] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_DEFVAL +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_SHIFT +#undef DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_MASK +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_DEFVAL 0x00000000 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_SHIFT 0 +#define DDRC_DQMAP2_DQ_NIBBLE_MAP_32_35_MASK 0x000000FFU + +/* +* DQ nibble map for DQ bits [60-63] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_SHIFT 24 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_60_63_MASK 0xFF000000U + +/* +* DQ nibble map for DQ bits [56-59] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_SHIFT 16 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_56_59_MASK 0x00FF0000U + +/* +* DQ nibble map for DQ bits [52-55] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_SHIFT 8 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_52_55_MASK 0x0000FF00U + +/* +* DQ nibble map for DQ bits [48-51] Present only in designs configured to + * support DDR4. +*/ +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_DEFVAL +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_SHIFT +#undef DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_MASK +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_DEFVAL 0x00000000 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_SHIFT 0 +#define DDRC_DQMAP3_DQ_NIBBLE_MAP_48_51_MASK 0x000000FFU + +/* +* DQ nibble map for DIMM ECC check bits [4-7] Present only in designs conf + * igured to support DDR4. +*/ +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_DEFVAL +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_SHIFT +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_MASK +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_DEFVAL 0x00000000 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_SHIFT 8 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_4_7_MASK 0x0000FF00U + +/* +* DQ nibble map for DIMM ECC check bits [0-3] Present only in designs conf + * igured to support DDR4. +*/ +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_DEFVAL +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_SHIFT +#undef DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_MASK +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_DEFVAL 0x00000000 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_SHIFT 0 +#define DDRC_DQMAP4_DQ_NIBBLE_MAP_CB_0_3_MASK 0x000000FFU + +/* +* All even ranks have the same DQ mapping controled by DQMAP0-4 register a + * s rank 0. This register provides DQ swap function for all odd ranks to s + * upport CRC feature. rank based DQ swapping is: swap bit 0 with 1, swap b + * it 2 with 3, swap bit 4 with 5 and swap bit 6 with 7. 1: Disable rank ba + * sed DQ swapping 0: Enable rank based DQ swapping Present only in designs + * configured to support DDR4. +*/ #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT #undef DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT 0 -#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK 0x00000001U +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_DEFVAL +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_SHIFT 0 +#define DDRC_DQMAP5_DIS_DQ_RANK_SWAP_MASK 0x00000001U -/*When this is set to '0', auto-precharge is disabled for the flushed command in a collision case. Collision cases are write fo - lowed by read to same address, read followed by write to same address, or write followed by write to same address with DBG0.d - s_wc bit = 1 (where same address comparisons exclude the two address bits representing critical word). FOR DEBUG ONLY.*/ +/* +* When this is set to '0', auto-precharge is disabled for the flushed comm + * and in a collision case. Collision cases are write followed by read to s + * ame address, read followed by write to same address, or write followed b + * y write to same address with DBG0.dis_wc bit = 1 (where same address com + * parisons exclude the two address bits representing critical word). FOR D + * EBUG ONLY. +*/ #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT #undef DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL 0x00000000 -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT 4 -#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK 0x00000010U +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_DEFVAL 0x00000000 +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_SHIFT 4 +#define DDRC_DBG0_DIS_COLLISION_PAGE_OPT_MASK 0x00000010U -/*When 1, disable write combine. FOR DEBUG ONLY*/ +/* +* When 1, disable write combine. FOR DEBUG ONLY +*/ #undef DDRC_DBG0_DIS_WC_DEFVAL #undef DDRC_DBG0_DIS_WC_SHIFT #undef DDRC_DBG0_DIS_WC_MASK -#define DDRC_DBG0_DIS_WC_DEFVAL 0x00000000 -#define DDRC_DBG0_DIS_WC_SHIFT 0 -#define DDRC_DBG0_DIS_WC_MASK 0x00000001U +#define DDRC_DBG0_DIS_WC_DEFVAL 0x00000000 +#define DDRC_DBG0_DIS_WC_SHIFT 0 +#define DDRC_DBG0_DIS_WC_MASK 0x00000001U -/*Setting this register bit to 1 allows refresh and ZQCS commands to be triggered from hardware via the IOs ext_*. If set to 1, - the fields DBGCMD.zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignored by the uMCTL2 logic. Setting this - register bit to 0 allows refresh and ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_short and DBGCMD.rank - _refresh. If set to 0, the hardware pins ext_* have no function, and are ignored by the uMCTL2 logic. This register is static - and may only be changed when the DDRC reset signal, core_ddrc_rstn, is asserted (0).*/ +/* +* Setting this register bit to 1 allows refresh and ZQCS commands to be tr + * iggered from hardware via the IOs ext_*. If set to 1, the fields DBGCMD. + * zq_calib_short and DBGCMD.rank*_refresh have no function, and are ignore + * d by the uMCTL2 logic. Setting this register bit to 0 allows refresh and + * ZQCS to be triggered from software, via the fields DBGCMD.zq_calib_shor + * t and DBGCMD.rank*_refresh. If set to 0, the hardware pins ext_* have no + * function, and are ignored by the uMCTL2 logic. This register is static, + * and may only be changed when the DDRC reset signal, core_ddrc_rstn, is + * asserted (0). +*/ #undef DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL #undef DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT #undef DDRC_DBGCMD_HW_REF_ZQ_EN_MASK -#define DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL 0x00000000 -#define DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT 31 -#define DDRC_DBGCMD_HW_REF_ZQ_EN_MASK 0x80000000U +#define DDRC_DBGCMD_HW_REF_ZQ_EN_DEFVAL 0x00000000 +#define DDRC_DBGCMD_HW_REF_ZQ_EN_SHIFT 31 +#define DDRC_DBGCMD_HW_REF_ZQ_EN_MASK 0x80000000U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ctrlupd_req to the PHY. When this request is stored in - he uMCTL2, the bit is automatically cleared. This operation must only be performed when DFIUPD0.dis_auto_ctrlupd=1.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a dfi_ct + * rlupd_req to the PHY. When this request is stored in the uMCTL2, the bit + * is automatically cleared. This operation must only be performed when DF + * IUPD0.dis_auto_ctrlupd=1. +*/ #undef DDRC_DBGCMD_CTRLUPD_DEFVAL #undef DDRC_DBGCMD_CTRLUPD_SHIFT #undef DDRC_DBGCMD_CTRLUPD_MASK -#define DDRC_DBGCMD_CTRLUPD_DEFVAL 0x00000000 -#define DDRC_DBGCMD_CTRLUPD_SHIFT 5 -#define DDRC_DBGCMD_CTRLUPD_MASK 0x00000020U +#define DDRC_DBGCMD_CTRLUPD_DEFVAL 0x00000000 +#define DDRC_DBGCMD_CTRLUPD_SHIFT 5 +#define DDRC_DBGCMD_CTRLUPD_MASK 0x00000020U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS (ZQ calibration short)/MPC(ZQ calibration) command to - he SDRAM. When this request is stored in the uMCTL2, the bit is automatically cleared. This operation can be performed only w - en ZQCTL0.dis_auto_zq=1. It is recommended NOT to set this register bit if in Init operating mode. This register bit is ignor - d when in Self-Refresh(except LPDDR4) and SR-Powerdown(LPDDR4) and Deep power-down operating modes and Maximum Power Saving M - de.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a ZQCS ( + * ZQ calibration short)/MPC(ZQ calibration) command to the SDRAM. When thi + * s request is stored in the uMCTL2, the bit is automatically cleared. Thi + * s operation can be performed only when ZQCTL0.dis_auto_zq=1. It is recom + * mended NOT to set this register bit if in Init operating mode. This regi + * ster bit is ignored when in Self-Refresh(except LPDDR4) and SR-Powerdown + * (LPDDR4) and Deep power-down operating modes and Maximum Power Saving Mo + * de. +*/ #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT #undef DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL 0x00000000 -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT 4 -#define DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK 0x00000010U +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_DEFVAL 0x00000000 +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_SHIFT 4 +#define DDRC_DBGCMD_ZQ_CALIB_SHORT_MASK 0x00000010U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 1. Writing to this bit causes DBGSTAT.rank1 - refresh_busy to be set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 1. Writing to this bit causes DBGSTAT.rank1_refresh_busy to be + * set. When DBGSTAT.rank1_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. +*/ #undef DDRC_DBGCMD_RANK1_REFRESH_DEFVAL #undef DDRC_DBGCMD_RANK1_REFRESH_SHIFT #undef DDRC_DBGCMD_RANK1_REFRESH_MASK -#define DDRC_DBGCMD_RANK1_REFRESH_DEFVAL 0x00000000 -#define DDRC_DBGCMD_RANK1_REFRESH_SHIFT 1 -#define DDRC_DBGCMD_RANK1_REFRESH_MASK 0x00000002U +#define DDRC_DBGCMD_RANK1_REFRESH_DEFVAL 0x00000000 +#define DDRC_DBGCMD_RANK1_REFRESH_SHIFT 1 +#define DDRC_DBGCMD_RANK1_REFRESH_MASK 0x00000002U -/*Setting this register bit to 1 indicates to the uMCTL2 to issue a refresh to rank 0. Writing to this bit causes DBGSTAT.rank0 - refresh_busy to be set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been stored in uMCTL2. This operation can - be performed only when RFSHCTL3.dis_auto_refresh=1. It is recommended NOT to set this register bit if in Init or Deep power-d - wn operating modes or Maximum Power Saving Mode.*/ +/* +* Setting this register bit to 1 indicates to the uMCTL2 to issue a refres + * h to rank 0. Writing to this bit causes DBGSTAT.rank0_refresh_busy to be + * set. When DBGSTAT.rank0_refresh_busy is cleared, the command has been s + * tored in uMCTL2. This operation can be performed only when RFSHCTL3.dis_ + * auto_refresh=1. It is recommended NOT to set this register bit if in Ini + * t or Deep power-down operating modes or Maximum Power Saving Mode. +*/ #undef DDRC_DBGCMD_RANK0_REFRESH_DEFVAL #undef DDRC_DBGCMD_RANK0_REFRESH_SHIFT #undef DDRC_DBGCMD_RANK0_REFRESH_MASK -#define DDRC_DBGCMD_RANK0_REFRESH_DEFVAL 0x00000000 -#define DDRC_DBGCMD_RANK0_REFRESH_SHIFT 0 -#define DDRC_DBGCMD_RANK0_REFRESH_MASK 0x00000001U +#define DDRC_DBGCMD_RANK0_REFRESH_DEFVAL 0x00000000 +#define DDRC_DBGCMD_RANK0_REFRESH_SHIFT 0 +#define DDRC_DBGCMD_RANK0_REFRESH_MASK 0x00000001U -/*Enable quasi-dynamic register programming outside reset. Program register to 0 to enable quasi-dynamic programming. Set back - egister to 1 once programming is done.*/ +/* +* Enable quasi-dynamic register programming outside reset. Program registe + * r to 0 to enable quasi-dynamic programming. Set back register to 1 once + * programming is done. +*/ #undef DDRC_SWCTL_SW_DONE_DEFVAL #undef DDRC_SWCTL_SW_DONE_SHIFT #undef DDRC_SWCTL_SW_DONE_MASK -#define DDRC_SWCTL_SW_DONE_DEFVAL -#define DDRC_SWCTL_SW_DONE_SHIFT 0 -#define DDRC_SWCTL_SW_DONE_MASK 0x00000001U +#define DDRC_SWCTL_SW_DONE_DEFVAL +#define DDRC_SWCTL_SW_DONE_SHIFT 0 +#define DDRC_SWCTL_SW_DONE_MASK 0x00000001U -/*Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expands every AXI burst into multiple HIF commands, using t - e memory burst length as a unit. If set to 1, then XPI will use half of the memory burst length as a unit. This applies to bo - h reads and writes. When MSTR.data_bus_width==00, setting bl_exp_mode to 1 has no effect. This can be used in cases where Par - ial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.dis_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_cc - _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionality is not supported in the following cases: - UMCTL2_ - ARTIAL_WR=0 - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 and MSTR.reg_ddrc_burst_rdwr=1000 (LP - DR4 only) - UMCTL2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burst_rdwr=0100 (DDR4 - only), with either MSTR.reg_ddrc_burstchop=0 or CRCPARCTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Share - -AC is enabled*/ +/* +* Burst length expansion mode. By default (i.e. bl_exp_mode==0) XPI expand + * s every AXI burst into multiple HIF commands, using the memory burst len + * gth as a unit. If set to 1, then XPI will use half of the memory burst l + * ength as a unit. This applies to both reads and writes. When MSTR.data_b + * us_width==00, setting bl_exp_mode to 1 has no effect. This can be used i + * n cases where Partial Writes is enabled (UMCTL2_PARTIAL_WR=1) and DBG0.d + * is_wc=1, in order to avoid or minimize t_ccd_l penalty in DDR4 and t_ccd + * _mw penalty in LPDDR4. Note that if DBICTL.reg_ddrc_dm_en=0, functionali + * ty is not supported in the following cases: - UMCTL2_PARTIAL_WR=0 - UMCT + * L2_PARTIAL_WR=1, MSTR.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=8 an + * d MSTR.reg_ddrc_burst_rdwr=1000 (LPDDR4 only) - UMCTL2_PARTIAL_WR=1, MST + * R.reg_ddrc_data_bus_width=01, MEMC_BURST_LENGTH=4 and MSTR.reg_ddrc_burs + * t_rdwr=0100 (DDR4 only), with either MSTR.reg_ddrc_burstchop=0 or CRCPAR + * CTL1.reg_ddrc_crc_enable=1 Functionality is also not supported if Shared + * -AC is enabled +*/ #undef DDRC_PCCFG_BL_EXP_MODE_DEFVAL #undef DDRC_PCCFG_BL_EXP_MODE_SHIFT #undef DDRC_PCCFG_BL_EXP_MODE_MASK -#define DDRC_PCCFG_BL_EXP_MODE_DEFVAL 0x00000000 -#define DDRC_PCCFG_BL_EXP_MODE_SHIFT 8 -#define DDRC_PCCFG_BL_EXP_MODE_MASK 0x00000100U +#define DDRC_PCCFG_BL_EXP_MODE_DEFVAL 0x00000000 +#define DDRC_PCCFG_BL_EXP_MODE_SHIFT 8 +#define DDRC_PCCFG_BL_EXP_MODE_MASK 0x00000100U -/*Page match four limit. If set to 1, limits the number of consecutive same page DDRC transactions that can be granted by the P - rt Arbiter to four when Page Match feature is enabled. If set to 0, there is no limit imposed on number of consecutive same p - ge DDRC transactions.*/ +/* +* Page match four limit. If set to 1, limits the number of consecutive sam + * e page DDRC transactions that can be granted by the Port Arbiter to four + * when Page Match feature is enabled. If set to 0, there is no limit impo + * sed on number of consecutive same page DDRC transactions. +*/ #undef DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL #undef DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT #undef DDRC_PCCFG_PAGEMATCH_LIMIT_MASK -#define DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL 0x00000000 -#define DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT 4 -#define DDRC_PCCFG_PAGEMATCH_LIMIT_MASK 0x00000010U +#define DDRC_PCCFG_PAGEMATCH_LIMIT_DEFVAL 0x00000000 +#define DDRC_PCCFG_PAGEMATCH_LIMIT_SHIFT 4 +#define DDRC_PCCFG_PAGEMATCH_LIMIT_MASK 0x00000010U -/*If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals going to DDRC based - n urgent input (awurgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_go2critical_wr and co_gs_go2critica - _lpr/co_gs_go2critical_hpr signals at DDRC are driven to 1b'0.*/ +/* +* If set to 1 (enabled), sets co_gs_go2critical_wr and co_gs_go2critical_l + * pr/co_gs_go2critical_hpr signals going to DDRC based on urgent input (aw + * urgent, arurgent) coming from AXI master. If set to 0 (disabled), co_gs_ + * go2critical_wr and co_gs_go2critical_lpr/co_gs_go2critical_hpr signals a + * t DDRC are driven to 1b'0. +*/ #undef DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL #undef DDRC_PCCFG_GO2CRITICAL_EN_SHIFT #undef DDRC_PCCFG_GO2CRITICAL_EN_MASK -#define DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL 0x00000000 -#define DDRC_PCCFG_GO2CRITICAL_EN_SHIFT 0 -#define DDRC_PCCFG_GO2CRITICAL_EN_MASK 0x00000001U +#define DDRC_PCCFG_GO2CRITICAL_EN_DEFVAL 0x00000000 +#define DDRC_PCCFG_GO2CRITICAL_EN_SHIFT 0 +#define DDRC_PCCFG_GO2CRITICAL_EN_MASK 0x00000001U -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_0_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_0_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_0_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_0_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_0_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_0_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_0_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_0_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_0_PORT_EN_DEFVAL #undef DDRC_PCTRL_0_PORT_EN_SHIFT #undef DDRC_PCTRL_0_PORT_EN_MASK -#define DDRC_PCTRL_0_PORT_EN_DEFVAL -#define DDRC_PCTRL_0_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_0_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_0_PORT_EN_DEFVAL +#define DDRC_PCTRL_0_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_0_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_0_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_0_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_0_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_1_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_1_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_1_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_1_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_1_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_1_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_1_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_1_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_1_PORT_EN_DEFVAL #undef DDRC_PCTRL_1_PORT_EN_SHIFT #undef DDRC_PCTRL_1_PORT_EN_MASK -#define DDRC_PCTRL_1_PORT_EN_DEFVAL -#define DDRC_PCTRL_1_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_1_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_1_PORT_EN_DEFVAL +#define DDRC_PCTRL_1_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_1_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT 24 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK 0x03000000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_SHIFT 24 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION2_MASK 0x03000000U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_1_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values.*/ +/* +* Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT 8 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK 0x00000F00U +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_SHIFT 8 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL2_MASK 0x00000F00U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_1_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_1_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_2_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_2_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_2_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_2_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_2_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_2_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_2_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_2_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_2_PORT_EN_DEFVAL #undef DDRC_PCTRL_2_PORT_EN_SHIFT #undef DDRC_PCTRL_2_PORT_EN_MASK -#define DDRC_PCTRL_2_PORT_EN_DEFVAL -#define DDRC_PCTRL_2_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_2_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_2_PORT_EN_DEFVAL +#define DDRC_PCTRL_2_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_2_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region2. For dual address queue configurations, region2 maps to the red address - ueue. Valid values are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and traffic class of region2 - s set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region2. For dual address q + * ueue configurations, region2 maps to the red address queue. Valid values + * are 1: VPR and 2: HPR only. When VPR support is disabled (UMCTL2_VPR_EN + * = 0) and traffic class of region2 is set to 1 (VPR), VPR traffic is ali + * ased to LPR traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT 24 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK 0x03000000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_SHIFT 24 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION2_MASK 0x03000000U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_2_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level2 indicating the end of region1 mapping; start of region1 is (level1 + 1). Possible values for level2 are (le - el1 + 1) to 14 which corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note that for PA, arqos values are used - directly as port priorities, where the higher the value corresponds to higher port priority. All of the map_level* registers - ust be set to distinct values.*/ +/* +* Separation level2 indicating the end of region1 mapping; start of region + * 1 is (level1 + 1). Possible values for level2 are (level1 + 1) to 14 whi + * ch corresponds to arqos. Region2 starts from (level2 + 1) up to 15. Note + * that for PA, arqos values are used directly as port priorities, where t + * he higher the value corresponds to higher port priority. All of the map_ + * level* registers must be set to distinct values. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT 8 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK 0x00000F00U +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_SHIFT 8 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL2_MASK 0x00000F00U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_DEFVAL 0x02000E00 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_2_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_2_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_3_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_3_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_3_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_3_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_3_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_3_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_3_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_3_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_3_PORT_EN_DEFVAL #undef DDRC_PCTRL_3_PORT_EN_SHIFT #undef DDRC_PCTRL_3_PORT_EN_MASK -#define DDRC_PCTRL_3_PORT_EN_DEFVAL -#define DDRC_PCTRL_3_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_3_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_3_PORT_EN_DEFVAL +#define DDRC_PCTRL_3_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_3_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_3_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_3_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_3_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_3_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_3_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_4_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_4_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_4_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_4_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_4_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_4_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_4_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_4_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_4_PORT_EN_DEFVAL #undef DDRC_PCTRL_4_PORT_EN_SHIFT #undef DDRC_PCTRL_4_PORT_EN_MASK -#define DDRC_PCTRL_4_PORT_EN_DEFVAL -#define DDRC_PCTRL_4_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_4_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_4_PORT_EN_DEFVAL +#define DDRC_PCTRL_4_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_4_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_4_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_4_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_4_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_4_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_4_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGR_5_RD_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (arurgent). When enabled and arurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DDRC is asserted if enabled in PCCFG. - o2critical_en register. Note that arurgent signal can be asserted anytime and as long as required which is independent of add - ess handshaking (it is not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (arurgent). When ena + * bled and arurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_lpr/co_gs_go2critical_hpr signal to DD + * RC is asserted if enabled in PCCFG.go2critical_en register. Note that ar + * urgent signal can be asserted anytime and as long as required which is i + * ndependent of address handshaking (it is not associated with any particu + * lar command). +*/ #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGR_5_RD_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the read channel of the port.*/ +/* +* If set to 1, enables aging function for the read channel of the port. +*/ #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT #undef DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGR_5_RD_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of read aging counters. These counters will be parallel loaded after reset, or after each g - ant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - he higher significant 5-bits of the read aging counter sets the priority of the read channel of a given port. Port's priority - will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0, the corre - ponding port channel will have the highest priority level (timeout condition - Priority0). For multi-port configurations, the - aging counters cannot be used to set port priorities when external dynamic priority inputs (arqos) are enabled (timeout is st - ll applicable). For single port configurations, the aging counters are only used when they timeout (become 0) to force read-w - ite direction switching. In this case, external dynamic priority input, arqos (for reads only) can still be used to set the D - RC read priority (2 priority levels: low priority read - LPR, high priority read - HPR) on a command by command basis. Note: - he two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of read aging counters. These counters + * will be parallel loaded after reset, or after each grant to the corresp + * onding port. The aging counters down-count every clock cycle where the p + * ort is requesting but not granted. The higher significant 5-bits of the + * read aging counter sets the priority of the read channel of a given port + * . Port's priority will increase as the higher significant 5-bits of the + * counter starts to decrease. When the aging counter becomes 0, the corres + * ponding port channel will have the highest priority level (timeout condi + * tion - Priority0). For multi-port configurations, the aging counters can + * not be used to set port priorities when external dynamic priority inputs + * (arqos) are enabled (timeout is still applicable). For single port conf + * igurations, the aging counters are only used when they timeout (become 0 + * ) to force read-write direction switching. In this case, external dynami + * c priority input, arqos (for reads only) can still be used to set the DD + * RC read priority (2 priority levels: low priority read - LPR, high prior + * ity read - HPR) on a command by command basis. Note: The two LSBs of thi + * s register field are tied internally to 2'b00. +*/ #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT #undef DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL 0x00000000 -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_DEFVAL 0x00000000 +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGR_5_RD_PORT_PRIORITY_MASK 0x000003FFU -/*If set to 1, enables the Page Match feature. If enabled, once a requesting port is granted, the port is continued to be grant - d if the following immediate commands are to the same memory page (same bank and same row). See also related PCCFG.pagematch_ - imit register.*/ +/* +* If set to 1, enables the Page Match feature. If enabled, once a requesti + * ng port is granted, the port is continued to be granted if the following + * immediate commands are to the same memory page (same bank and same row) + * . See also related PCCFG.pagematch_limit register. +*/ #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT 14 -#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_SHIFT 14 +#define DDRC_PCFGW_5_WR_PORT_PAGEMATCH_EN_MASK 0x00004000U -/*If set to 1, enables the AXI urgent sideband signal (awurgent). When enabled and awurgent is asserted by the master, that por - becomes the highest priority and co_gs_go2critical_wr signal to DDRC is asserted if enabled in PCCFG.go2critical_en register - Note that awurgent signal can be asserted anytime and as long as required which is independent of address handshaking (it is - not associated with any particular command).*/ +/* +* If set to 1, enables the AXI urgent sideband signal (awurgent). When ena + * bled and awurgent is asserted by the master, that port becomes the highe + * st priority and co_gs_go2critical_wr signal to DDRC is asserted if enabl + * ed in PCCFG.go2critical_en register. Note that awurgent signal can be as + * serted anytime and as long as required which is independent of address h + * andshaking (it is not associated with any particular command). +*/ #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT 13 -#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK 0x00002000U +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_SHIFT 13 +#define DDRC_PCFGW_5_WR_PORT_URGENT_EN_MASK 0x00002000U -/*If set to 1, enables aging function for the write channel of the port.*/ +/* +* If set to 1, enables aging function for the write channel of the port. +*/ #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT #undef DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT 12 -#define DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK 0x00001000U +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_SHIFT 12 +#define DDRC_PCFGW_5_WR_PORT_AGING_EN_MASK 0x00001000U -/*Determines the initial load value of write aging counters. These counters will be parallel loaded after reset, or after each - rant to the corresponding port. The aging counters down-count every clock cycle where the port is requesting but not granted. - The higher significant 5-bits of the write aging counter sets the initial priority of the write channel of a given port. Port - s priority will increase as the higher significant 5-bits of the counter starts to decrease. When the aging counter becomes 0 - the corresponding port channel will have the highest priority level. For multi-port configurations, the aging counters canno - be used to set port priorities when external dynamic priority inputs (awqos) are enabled (timeout is still applicable). For - ingle port configurations, the aging counters are only used when they timeout (become 0) to force read-write direction switch - ng. Note: The two LSBs of this register field are tied internally to 2'b00.*/ +/* +* Determines the initial load value of write aging counters. These counter + * s will be parallel loaded after reset, or after each grant to the corres + * ponding port. The aging counters down-count every clock cycle where the + * port is requesting but not granted. The higher significant 5-bits of the + * write aging counter sets the initial priority of the write channel of a + * given port. Port's priority will increase as the higher significant 5-b + * its of the counter starts to decrease. When the aging counter becomes 0, + * the corresponding port channel will have the highest priority level. Fo + * r multi-port configurations, the aging counters cannot be used to set po + * rt priorities when external dynamic priority inputs (awqos) are enabled + * (timeout is still applicable). For single port configurations, the aging + * counters are only used when they timeout (become 0) to force read-write + * direction switching. Note: The two LSBs of this register field are tied + * internally to 2'b00. +*/ #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT #undef DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL 0x00004000 -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT 0 -#define DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK 0x000003FFU +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_DEFVAL 0x00004000 +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_SHIFT 0 +#define DDRC_PCFGW_5_WR_PORT_PRIORITY_MASK 0x000003FFU -/*Enables port n.*/ +/* +* Enables port n. +*/ #undef DDRC_PCTRL_5_PORT_EN_DEFVAL #undef DDRC_PCTRL_5_PORT_EN_SHIFT #undef DDRC_PCTRL_5_PORT_EN_MASK -#define DDRC_PCTRL_5_PORT_EN_DEFVAL -#define DDRC_PCTRL_5_PORT_EN_SHIFT 0 -#define DDRC_PCTRL_5_PORT_EN_MASK 0x00000001U +#define DDRC_PCTRL_5_PORT_EN_DEFVAL +#define DDRC_PCTRL_5_PORT_EN_SHIFT 0 +#define DDRC_PCTRL_5_PORT_EN_MASK 0x00000001U -/*This bitfield indicates the traffic class of region 1. Valid values are: 0 : LPR, 1: VPR, 2: HPR. For dual address queue conf - gurations, region1 maps to the blue address queue. In this case, valid values are 0: LPR and 1: VPR only. When VPR support is - disabled (UMCTL2_VPR_EN = 0) and traffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0 : LPR, 1: VPR, 2: HPR. For dual address queue configurations, region1 + * maps to the blue address queue. In this case, valid values are 0: LPR a + * nd 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tra + * ffic class of region 1 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: LPR, 1: VPR, 2: HPR. For dual address queue confi - urations, region 0 maps to the blue address queue. In this case, valid values are: 0: LPR and 1: VPR only. When VPR support i - disabled (UMCTL2_VPR_EN = 0) and traffic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: LPR, 1: VPR, 2: HPR. For dual address queue configurations, region 0 + * maps to the blue address queue. In this case, valid values are: 0: LPR + * and 1: VPR only. When VPR support is disabled (UMCTL2_VPR_EN = 0) and tr + * affic class of region0 is set to 1 (VPR), VPR traffic is aliased to LPR + * traffic. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGQOS0_5_RQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level1 indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 13 (for d - al RAQ) or 0 to 14 (for single RAQ) which corresponds to arqos. Note that for PA, arqos values are used directly as port prio - ities, where the higher the value corresponds to higher port priority. All of the map_level* registers must be set to distinc - values.*/ +/* +* Separation level1 indicating the end of region0 mapping; start of region + * 0 is 0. Possible values for level1 are 0 to 13 (for dual RAQ) or 0 to 14 + * (for single RAQ) which corresponds to arqos. Note that for PA, arqos va + * lues are used directly as port priorities, where the higher the value co + * rresponds to higher port priority. All of the map_level* registers must + * be set to distinct values. +*/ #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT #undef DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT 0 -#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK 0x0000000FU +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_DEFVAL 0x00000000 +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_SHIFT 0 +#define DDRC_PCFGQOS0_5_RQOS_MAP_LEVEL1_MASK 0x0000000FU -/*Specifies the timeout value for transactions mapped to the red address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the red address q + * ueue. +*/ #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT 16 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_SHIFT 16 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTR_MASK 0x07FF0000U -/*Specifies the timeout value for transactions mapped to the blue address queue.*/ +/* +* Specifies the timeout value for transactions mapped to the blue address + * queue. +*/ #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT #undef DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT 0 -#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_DEFVAL 0x00000000 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_SHIFT 0 +#define DDRC_PCFGQOS1_5_RQOS_MAP_TIMEOUTB_MASK 0x000007FFU -/*This bitfield indicates the traffic class of region 1. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 1. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region 1 is set to 1 (VPW), VPW traffic is aliased to LPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT 20 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK 0x00300000U +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_SHIFT 20 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION1_MASK 0x00300000U -/*This bitfield indicates the traffic class of region 0. Valid values are: 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2 - VPW_EN = 0) and traffic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW traffic.*/ +/* +* This bitfield indicates the traffic class of region 0. Valid values are: + * 0: NPW, 1: VPW. When VPW support is disabled (UMCTL2_VPW_EN = 0) and tr + * affic class of region0 is set to 1 (VPW), VPW traffic is aliased to NPW + * traffic. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT 16 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK 0x00030000U +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_SHIFT 16 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_REGION0_MASK 0x00030000U -/*Separation level indicating the end of region0 mapping; start of region0 is 0. Possible values for level1 are 0 to 14 which c - rresponds to awqos. Note that for PA, awqos values are used directly as port priorities, where the higher the value correspon - s to higher port priority.*/ +/* +* Separation level indicating the end of region0 mapping; start of region0 + * is 0. Possible values for level1 are 0 to 14 which corresponds to awqos + * . Note that for PA, awqos values are used directly as port priorities, w + * here the higher the value corresponds to higher port priority. +*/ #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT #undef DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL 0x00000000 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT 0 -#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK 0x0000000FU +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_DEFVAL 0x00000000 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_SHIFT 0 +#define DDRC_PCFGWQOS0_5_WQOS_MAP_LEVEL_MASK 0x0000000FU -/*Specifies the timeout value for write transactions.*/ +/* +* Specifies the timeout value for write transactions. +*/ #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT #undef DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT 0 -#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK 0x000007FFU +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_DEFVAL +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_SHIFT 0 +#define DDRC_PCFGWQOS1_5_WQOS_MAP_TIMEOUT_MASK 0x000007FFU -/*Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)).*/ +/* +* Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). +*/ #undef DDRC_SARBASE0_BASE_ADDR_DEFVAL #undef DDRC_SARBASE0_BASE_ADDR_SHIFT #undef DDRC_SARBASE0_BASE_ADDR_MASK -#define DDRC_SARBASE0_BASE_ADDR_DEFVAL -#define DDRC_SARBASE0_BASE_ADDR_SHIFT 0 -#define DDRC_SARBASE0_BASE_ADDR_MASK 0x000001FFU +#define DDRC_SARBASE0_BASE_ADDR_DEFVAL +#define DDRC_SARBASE0_BASE_ADDR_SHIFT 0 +#define DDRC_SARBASE0_BASE_ADDR_MASK 0x000001FFU -/*Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block.*/ +/* +* Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. +*/ #undef DDRC_SARSIZE0_NBLOCKS_DEFVAL #undef DDRC_SARSIZE0_NBLOCKS_SHIFT #undef DDRC_SARSIZE0_NBLOCKS_MASK -#define DDRC_SARSIZE0_NBLOCKS_DEFVAL -#define DDRC_SARSIZE0_NBLOCKS_SHIFT 0 -#define DDRC_SARSIZE0_NBLOCKS_MASK 0x000000FFU +#define DDRC_SARSIZE0_NBLOCKS_DEFVAL +#define DDRC_SARSIZE0_NBLOCKS_SHIFT 0 +#define DDRC_SARSIZE0_NBLOCKS_MASK 0x000000FFU -/*Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x] and araddr[UMCTL2_A_ADDRW-1:x] where x is determine - by the minimum block size parameter UMCTL2_SARMINSIZE: (x=log2(block size)).*/ +/* +* Base address for address region n specified as awaddr[UMCTL2_A_ADDRW-1:x + * ] and araddr[UMCTL2_A_ADDRW-1:x] where x is determined by the minimum bl + * ock size parameter UMCTL2_SARMINSIZE: (x=log2(block size)). +*/ #undef DDRC_SARBASE1_BASE_ADDR_DEFVAL #undef DDRC_SARBASE1_BASE_ADDR_SHIFT #undef DDRC_SARBASE1_BASE_ADDR_MASK -#define DDRC_SARBASE1_BASE_ADDR_DEFVAL -#define DDRC_SARBASE1_BASE_ADDR_SHIFT 0 -#define DDRC_SARBASE1_BASE_ADDR_MASK 0x000001FFU +#define DDRC_SARBASE1_BASE_ADDR_DEFVAL +#define DDRC_SARBASE1_BASE_ADDR_SHIFT 0 +#define DDRC_SARBASE1_BASE_ADDR_MASK 0x000001FFU -/*Number of blocks for address region n. This register determines the total size of the region in multiples of minimum block si - e as specified by the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded as number of blocks = nblocks + 1. - or example, if register is programmed to 0, region will have 1 block.*/ +/* +* Number of blocks for address region n. This register determines the tota + * l size of the region in multiples of minimum block size as specified by + * the hardware parameter UMCTL2_SARMINSIZE. The register value is encoded + * as number of blocks = nblocks + 1. For example, if register is programme + * d to 0, region will have 1 block. +*/ #undef DDRC_SARSIZE1_NBLOCKS_DEFVAL #undef DDRC_SARSIZE1_NBLOCKS_SHIFT #undef DDRC_SARSIZE1_NBLOCKS_MASK -#define DDRC_SARSIZE1_NBLOCKS_DEFVAL -#define DDRC_SARSIZE1_NBLOCKS_SHIFT 0 -#define DDRC_SARSIZE1_NBLOCKS_MASK 0x000000FFU +#define DDRC_SARSIZE1_NBLOCKS_DEFVAL +#define DDRC_SARSIZE1_NBLOCKS_SHIFT 0 +#define DDRC_SARSIZE1_NBLOCKS_MASK 0x000000FFU -/*Specifies the number of DFI clock cycles after an assertion or de-assertion of the DFI control signals that the control signa - s at the PHY-DRAM interface reflect the assertion or de-assertion. If the DFI clock and the memory clock are not phase-aligne - , this timing parameter should be rounded up to the next integer value. Note that if using RDIMM, it is necessary to incremen - this parameter by RDIMM's extra cycle of latency in terms of DFI clock.*/ +/* +* Specifies the number of DFI clock cycles after an assertion or de-assert + * ion of the DFI control signals that the control signals at the PHY-DRAM + * interface reflect the assertion or de-assertion. If the DFI clock and th + * e memory clock are not phase-aligned, this timing parameter should be ro + * unded up to the next integer value. Note that if using RDIMM, it is nece + * ssary to increment this parameter by RDIMM's extra cycle of latency in t + * erms of DFI clock. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT 24 -#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK 0x1F000000U +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_SHIFT 24 +#define DDRC_DFITMG0_SHADOW_DFI_T_CTRL_DELAY_MASK 0x1F000000U -/*Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated using HDR or SDR values Selects whether value in DFITM - 0.dfi_t_rddata_en is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles R - fer to PHY specification for correct value.*/ +/* +* Defines whether dfi_rddata_en/dfi_rddata/dfi_rddata_valid is generated u + * sing HDR or SDR values Selects whether value in DFITMG0.dfi_t_rddata_en + * is in terms of SDR or HDR clock cycles: - 0 in terms of HDR clock cycles + * - 1 in terms of SDR clock cycles Refer to PHY specification for correct + * value. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT 23 -#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK 0x00800000U +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_SHIFT 23 +#define DDRC_DFITMG0_SHADOW_DFI_RDDATA_USE_SDR_MASK 0x00800000U -/*Time from the assertion of a read command on the DFI interface to the assertion of the dfi_rddata_en signal. Refer to PHY spe - ification for correct value. This corresponds to the DFI parameter trddata_en. Note that, depending on the PHY, if using RDIM - , it may be necessary to use the value (CL + 1) in the calculation of trddata_en. This is to compensate for the extra cycle o - latency through the RDIMM. Unit: Clocks*/ +/* +* Time from the assertion of a read command on the DFI interface to the as + * sertion of the dfi_rddata_en signal. Refer to PHY specification for corr + * ect value. This corresponds to the DFI parameter trddata_en. Note that, + * depending on the PHY, if using RDIMM, it may be necessary to use the val + * ue (CL + 1) in the calculation of trddata_en. This is to compensate for + * the extra cycle of latency through the RDIMM. Unit: Clocks +*/ #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT 16 -#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK 0x003F0000U +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_SHIFT 16 +#define DDRC_DFITMG0_SHADOW_DFI_T_RDDATA_EN_MASK 0x003F0000U -/*Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated using HDR or SDR values Selects whether value in DFITMG - .dfi_tphy_wrlat is in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.dfi_tphy_wrdata is in terms of SDR or - HDR clock cycles - 0 in terms of HDR clock cycles - 1 in terms of SDR clock cycles Refer to PHY specification for correct val - e.*/ +/* +* Defines whether dfi_wrdata_en/dfi_wrdata/dfi_wrdata_mask is generated us + * ing HDR or SDR values Selects whether value in DFITMG0.dfi_tphy_wrlat is + * in terms of SDR or HDR clock cycles Selects whether value in DFITMG0.df + * i_tphy_wrdata is in terms of SDR or HDR clock cycles - 0 in terms of HDR + * clock cycles - 1 in terms of SDR clock cycles Refer to PHY specificatio + * n for correct value. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT 15 -#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK 0x00008000U +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_SHIFT 15 +#define DDRC_DFITMG0_SHADOW_DFI_WRDATA_USE_SDR_MASK 0x00008000U -/*Specifies the number of clock cycles between when dfi_wrdata_en is asserted to when the associated write data is driven on th - dfi_wrdata signal. This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY specification for correct value. N - te, max supported value is 8. Unit: Clocks*/ +/* +* Specifies the number of clock cycles between when dfi_wrdata_en is asser + * ted to when the associated write data is driven on the dfi_wrdata signal + * . This corresponds to the DFI timing parameter tphy_wrdata. Refer to PHY + * specification for correct value. Note, max supported value is 8. Unit: + * Clocks +*/ #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT 8 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK 0x00003F00U +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_SHIFT 8 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRDATA_MASK 0x00003F00U -/*Write latency Number of clocks from the write command to write data enable (dfi_wrdata_en). This corresponds to the DFI timin - parameter tphy_wrlat. Refer to PHY specification for correct value.Note that, depending on the PHY, if using RDIMM, it may b - necessary to use the value (CL + 1) in the calculation of tphy_wrlat. This is to compensate for the extra cycle of latency t - rough the RDIMM.*/ +/* +* Write latency Number of clocks from the write command to write data enab + * le (dfi_wrdata_en). This corresponds to the DFI timing parameter tphy_wr + * lat. Refer to PHY specification for correct value.Note that, depending o + * n the PHY, if using RDIMM, it may be necessary to use the value (CL + 1) + * in the calculation of tphy_wrlat. This is to compensate for the extra c + * ycle of latency through the RDIMM. +*/ #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT #undef DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL 0x07020002 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT 0 -#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK 0x0000003FU +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_DEFVAL 0x07020002 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_SHIFT 0 +#define DDRC_DFITMG0_SHADOW_DFI_TPHY_WRLAT_MASK 0x0000003FU -/*DDR block level reset inside of the DDR Sub System*/ +/* +* DDR block level reset inside of the DDR Sub System +*/ #undef CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL #undef CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT #undef CRF_APB_RST_DDR_SS_DDR_RESET_MASK -#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F -#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 -#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U +#define CRF_APB_RST_DDR_SS_DDR_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_DDR_RESET_SHIFT 3 +#define CRF_APB_RST_DDR_SS_DDR_RESET_MASK 0x00000008U -/*Address Copy*/ +/* +* APM block level reset inside of the DDR Sub System +*/ +#undef CRF_APB_RST_DDR_SS_APM_RESET_DEFVAL +#undef CRF_APB_RST_DDR_SS_APM_RESET_SHIFT +#undef CRF_APB_RST_DDR_SS_APM_RESET_MASK +#define CRF_APB_RST_DDR_SS_APM_RESET_DEFVAL 0x0000000F +#define CRF_APB_RST_DDR_SS_APM_RESET_SHIFT 2 +#define CRF_APB_RST_DDR_SS_APM_RESET_MASK 0x00000004U + +/* +* Address Copy +*/ #undef DDR_PHY_PGCR0_ADCP_DEFVAL #undef DDR_PHY_PGCR0_ADCP_SHIFT #undef DDR_PHY_PGCR0_ADCP_MASK -#define DDR_PHY_PGCR0_ADCP_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_ADCP_SHIFT 31 -#define DDR_PHY_PGCR0_ADCP_MASK 0x80000000U +#define DDR_PHY_PGCR0_ADCP_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_ADCP_SHIFT 31 +#define DDR_PHY_PGCR0_ADCP_MASK 0x80000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_30_27_SHIFT #undef DDR_PHY_PGCR0_RESERVED_30_27_MASK -#define DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_30_27_SHIFT 27 -#define DDR_PHY_PGCR0_RESERVED_30_27_MASK 0x78000000U +#define DDR_PHY_PGCR0_RESERVED_30_27_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_30_27_SHIFT 27 +#define DDR_PHY_PGCR0_RESERVED_30_27_MASK 0x78000000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_PGCR0_PHYFRST_DEFVAL #undef DDR_PHY_PGCR0_PHYFRST_SHIFT #undef DDR_PHY_PGCR0_PHYFRST_MASK -#define DDR_PHY_PGCR0_PHYFRST_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_PHYFRST_SHIFT 26 -#define DDR_PHY_PGCR0_PHYFRST_MASK 0x04000000U +#define DDR_PHY_PGCR0_PHYFRST_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_PHYFRST_SHIFT 26 +#define DDR_PHY_PGCR0_PHYFRST_MASK 0x04000000U -/*Oscillator Mode Address/Command Delay Line Select*/ +/* +* Oscillator Mode Address/Command Delay Line Select +*/ #undef DDR_PHY_PGCR0_OSCACDL_DEFVAL #undef DDR_PHY_PGCR0_OSCACDL_SHIFT #undef DDR_PHY_PGCR0_OSCACDL_MASK -#define DDR_PHY_PGCR0_OSCACDL_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCACDL_SHIFT 24 -#define DDR_PHY_PGCR0_OSCACDL_MASK 0x03000000U +#define DDR_PHY_PGCR0_OSCACDL_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCACDL_SHIFT 24 +#define DDR_PHY_PGCR0_OSCACDL_MASK 0x03000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_23_19_SHIFT #undef DDR_PHY_PGCR0_RESERVED_23_19_MASK -#define DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_23_19_SHIFT 19 -#define DDR_PHY_PGCR0_RESERVED_23_19_MASK 0x00F80000U +#define DDR_PHY_PGCR0_RESERVED_23_19_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_23_19_SHIFT 19 +#define DDR_PHY_PGCR0_RESERVED_23_19_MASK 0x00F80000U -/*Digital Test Output Select*/ +/* +* Digital Test Output Select +*/ #undef DDR_PHY_PGCR0_DTOSEL_DEFVAL #undef DDR_PHY_PGCR0_DTOSEL_SHIFT #undef DDR_PHY_PGCR0_DTOSEL_MASK -#define DDR_PHY_PGCR0_DTOSEL_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_DTOSEL_SHIFT 14 -#define DDR_PHY_PGCR0_DTOSEL_MASK 0x0007C000U +#define DDR_PHY_PGCR0_DTOSEL_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_DTOSEL_SHIFT 14 +#define DDR_PHY_PGCR0_DTOSEL_MASK 0x0007C000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_13_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_13_SHIFT #undef DDR_PHY_PGCR0_RESERVED_13_MASK -#define DDR_PHY_PGCR0_RESERVED_13_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_13_SHIFT 13 -#define DDR_PHY_PGCR0_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_PGCR0_RESERVED_13_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_13_SHIFT 13 +#define DDR_PHY_PGCR0_RESERVED_13_MASK 0x00002000U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_PGCR0_OSCDIV_DEFVAL #undef DDR_PHY_PGCR0_OSCDIV_SHIFT #undef DDR_PHY_PGCR0_OSCDIV_MASK -#define DDR_PHY_PGCR0_OSCDIV_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCDIV_SHIFT 9 -#define DDR_PHY_PGCR0_OSCDIV_MASK 0x00001E00U +#define DDR_PHY_PGCR0_OSCDIV_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCDIV_SHIFT 9 +#define DDR_PHY_PGCR0_OSCDIV_MASK 0x00001E00U -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_PGCR0_OSCEN_DEFVAL #undef DDR_PHY_PGCR0_OSCEN_SHIFT #undef DDR_PHY_PGCR0_OSCEN_MASK -#define DDR_PHY_PGCR0_OSCEN_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_OSCEN_SHIFT 8 -#define DDR_PHY_PGCR0_OSCEN_MASK 0x00000100U +#define DDR_PHY_PGCR0_OSCEN_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_OSCEN_SHIFT 8 +#define DDR_PHY_PGCR0_OSCEN_MASK 0x00000100U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL #undef DDR_PHY_PGCR0_RESERVED_7_0_SHIFT #undef DDR_PHY_PGCR0_RESERVED_7_0_MASK -#define DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL 0x07001E00 -#define DDR_PHY_PGCR0_RESERVED_7_0_SHIFT 0 -#define DDR_PHY_PGCR0_RESERVED_7_0_MASK 0x000000FFU +#define DDR_PHY_PGCR0_RESERVED_7_0_DEFVAL 0x07001E00 +#define DDR_PHY_PGCR0_RESERVED_7_0_SHIFT 0 +#define DDR_PHY_PGCR0_RESERVED_7_0_MASK 0x000000FFU -/*Clear Training Status Registers*/ +/* +* Clear Training Status Registers +*/ #undef DDR_PHY_PGCR2_CLRTSTAT_DEFVAL #undef DDR_PHY_PGCR2_CLRTSTAT_SHIFT #undef DDR_PHY_PGCR2_CLRTSTAT_MASK -#define DDR_PHY_PGCR2_CLRTSTAT_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRTSTAT_SHIFT 31 -#define DDR_PHY_PGCR2_CLRTSTAT_MASK 0x80000000U +#define DDR_PHY_PGCR2_CLRTSTAT_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRTSTAT_SHIFT 31 +#define DDR_PHY_PGCR2_CLRTSTAT_MASK 0x80000000U -/*Clear Impedance Calibration*/ +/* +* Clear Impedance Calibration +*/ #undef DDR_PHY_PGCR2_CLRZCAL_DEFVAL #undef DDR_PHY_PGCR2_CLRZCAL_SHIFT #undef DDR_PHY_PGCR2_CLRZCAL_MASK -#define DDR_PHY_PGCR2_CLRZCAL_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRZCAL_SHIFT 30 -#define DDR_PHY_PGCR2_CLRZCAL_MASK 0x40000000U +#define DDR_PHY_PGCR2_CLRZCAL_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRZCAL_SHIFT 30 +#define DDR_PHY_PGCR2_CLRZCAL_MASK 0x40000000U -/*Clear Parity Error*/ +/* +* Clear Parity Error +*/ #undef DDR_PHY_PGCR2_CLRPERR_DEFVAL #undef DDR_PHY_PGCR2_CLRPERR_SHIFT #undef DDR_PHY_PGCR2_CLRPERR_MASK -#define DDR_PHY_PGCR2_CLRPERR_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_CLRPERR_SHIFT 29 -#define DDR_PHY_PGCR2_CLRPERR_MASK 0x20000000U +#define DDR_PHY_PGCR2_CLRPERR_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_CLRPERR_SHIFT 29 +#define DDR_PHY_PGCR2_CLRPERR_MASK 0x20000000U -/*Initialization Complete Pin Configuration*/ +/* +* Initialization Complete Pin Configuration +*/ #undef DDR_PHY_PGCR2_ICPC_DEFVAL #undef DDR_PHY_PGCR2_ICPC_SHIFT #undef DDR_PHY_PGCR2_ICPC_MASK -#define DDR_PHY_PGCR2_ICPC_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_ICPC_SHIFT 28 -#define DDR_PHY_PGCR2_ICPC_MASK 0x10000000U +#define DDR_PHY_PGCR2_ICPC_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_ICPC_SHIFT 28 +#define DDR_PHY_PGCR2_ICPC_MASK 0x10000000U -/*Data Training PUB Mode Exit Timer*/ +/* +* Data Training PUB Mode Exit Timer +*/ #undef DDR_PHY_PGCR2_DTPMXTMR_DEFVAL #undef DDR_PHY_PGCR2_DTPMXTMR_SHIFT #undef DDR_PHY_PGCR2_DTPMXTMR_MASK -#define DDR_PHY_PGCR2_DTPMXTMR_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_DTPMXTMR_SHIFT 20 -#define DDR_PHY_PGCR2_DTPMXTMR_MASK 0x0FF00000U +#define DDR_PHY_PGCR2_DTPMXTMR_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_DTPMXTMR_SHIFT 20 +#define DDR_PHY_PGCR2_DTPMXTMR_MASK 0x0FF00000U -/*Initialization Bypass*/ +/* +* Initialization Bypass +*/ #undef DDR_PHY_PGCR2_INITFSMBYP_DEFVAL #undef DDR_PHY_PGCR2_INITFSMBYP_SHIFT #undef DDR_PHY_PGCR2_INITFSMBYP_MASK -#define DDR_PHY_PGCR2_INITFSMBYP_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_INITFSMBYP_SHIFT 19 -#define DDR_PHY_PGCR2_INITFSMBYP_MASK 0x00080000U +#define DDR_PHY_PGCR2_INITFSMBYP_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_INITFSMBYP_SHIFT 19 +#define DDR_PHY_PGCR2_INITFSMBYP_MASK 0x00080000U -/*PLL FSM Bypass*/ +/* +* PLL FSM Bypass +*/ #undef DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL #undef DDR_PHY_PGCR2_PLLFSMBYP_SHIFT #undef DDR_PHY_PGCR2_PLLFSMBYP_MASK -#define DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_PLLFSMBYP_SHIFT 18 -#define DDR_PHY_PGCR2_PLLFSMBYP_MASK 0x00040000U +#define DDR_PHY_PGCR2_PLLFSMBYP_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_PLLFSMBYP_SHIFT 18 +#define DDR_PHY_PGCR2_PLLFSMBYP_MASK 0x00040000U -/*Refresh Period*/ +/* +* Refresh Period +*/ #undef DDR_PHY_PGCR2_TREFPRD_DEFVAL #undef DDR_PHY_PGCR2_TREFPRD_SHIFT #undef DDR_PHY_PGCR2_TREFPRD_MASK -#define DDR_PHY_PGCR2_TREFPRD_DEFVAL 0x00F12480 -#define DDR_PHY_PGCR2_TREFPRD_SHIFT 0 -#define DDR_PHY_PGCR2_TREFPRD_MASK 0x0003FFFFU +#define DDR_PHY_PGCR2_TREFPRD_DEFVAL 0x00F12480 +#define DDR_PHY_PGCR2_TREFPRD_SHIFT 0 +#define DDR_PHY_PGCR2_TREFPRD_MASK 0x0003FFFFU -/*CKN Enable*/ +/* +* CKN Enable +*/ #undef DDR_PHY_PGCR3_CKNEN_DEFVAL #undef DDR_PHY_PGCR3_CKNEN_SHIFT #undef DDR_PHY_PGCR3_CKNEN_MASK -#define DDR_PHY_PGCR3_CKNEN_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CKNEN_SHIFT 24 -#define DDR_PHY_PGCR3_CKNEN_MASK 0xFF000000U +#define DDR_PHY_PGCR3_CKNEN_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CKNEN_SHIFT 24 +#define DDR_PHY_PGCR3_CKNEN_MASK 0xFF000000U -/*CK Enable*/ +/* +* CK Enable +*/ #undef DDR_PHY_PGCR3_CKEN_DEFVAL #undef DDR_PHY_PGCR3_CKEN_SHIFT #undef DDR_PHY_PGCR3_CKEN_MASK -#define DDR_PHY_PGCR3_CKEN_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CKEN_SHIFT 16 -#define DDR_PHY_PGCR3_CKEN_MASK 0x00FF0000U +#define DDR_PHY_PGCR3_CKEN_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CKEN_SHIFT 16 +#define DDR_PHY_PGCR3_CKEN_MASK 0x00FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR3_RESERVED_15_DEFVAL #undef DDR_PHY_PGCR3_RESERVED_15_SHIFT #undef DDR_PHY_PGCR3_RESERVED_15_MASK -#define DDR_PHY_PGCR3_RESERVED_15_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RESERVED_15_SHIFT 15 -#define DDR_PHY_PGCR3_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_PGCR3_RESERVED_15_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RESERVED_15_SHIFT 15 +#define DDR_PHY_PGCR3_RESERVED_15_MASK 0x00008000U -/*Enable Clock Gating for AC [0] ctl_rd_clk*/ +/* +* Enable Clock Gating for AC [0] ctl_rd_clk +*/ #undef DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACRDCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACRDCLK_MASK -#define DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACRDCLK_SHIFT 13 -#define DDR_PHY_PGCR3_GATEACRDCLK_MASK 0x00006000U +#define DDR_PHY_PGCR3_GATEACRDCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACRDCLK_SHIFT 13 +#define DDR_PHY_PGCR3_GATEACRDCLK_MASK 0x00006000U -/*Enable Clock Gating for AC [0] ddr_clk*/ +/* +* Enable Clock Gating for AC [0] ddr_clk +*/ #undef DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACDDRCLK_MASK -#define DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT 11 -#define DDR_PHY_PGCR3_GATEACDDRCLK_MASK 0x00001800U +#define DDR_PHY_PGCR3_GATEACDDRCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACDDRCLK_SHIFT 11 +#define DDR_PHY_PGCR3_GATEACDDRCLK_MASK 0x00001800U -/*Enable Clock Gating for AC [0] ctl_clk*/ +/* +* Enable Clock Gating for AC [0] ctl_clk +*/ #undef DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL #undef DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT #undef DDR_PHY_PGCR3_GATEACCTLCLK_MASK -#define DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT 9 -#define DDR_PHY_PGCR3_GATEACCTLCLK_MASK 0x00000600U +#define DDR_PHY_PGCR3_GATEACCTLCLK_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_GATEACCTLCLK_SHIFT 9 +#define DDR_PHY_PGCR3_GATEACCTLCLK_MASK 0x00000600U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR3_RESERVED_8_DEFVAL #undef DDR_PHY_PGCR3_RESERVED_8_SHIFT #undef DDR_PHY_PGCR3_RESERVED_8_MASK -#define DDR_PHY_PGCR3_RESERVED_8_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RESERVED_8_SHIFT 8 -#define DDR_PHY_PGCR3_RESERVED_8_MASK 0x00000100U +#define DDR_PHY_PGCR3_RESERVED_8_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RESERVED_8_SHIFT 8 +#define DDR_PHY_PGCR3_RESERVED_8_MASK 0x00000100U -/*Controls DDL Bypass Modes*/ +/* +* Controls DDL Bypass Modes +*/ #undef DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL #undef DDR_PHY_PGCR3_DDLBYPMODE_SHIFT #undef DDR_PHY_PGCR3_DDLBYPMODE_MASK -#define DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_DDLBYPMODE_SHIFT 6 -#define DDR_PHY_PGCR3_DDLBYPMODE_MASK 0x000000C0U +#define DDR_PHY_PGCR3_DDLBYPMODE_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_DDLBYPMODE_SHIFT 6 +#define DDR_PHY_PGCR3_DDLBYPMODE_MASK 0x000000C0U -/*IO Loop-Back Select*/ +/* +* IO Loop-Back Select +*/ #undef DDR_PHY_PGCR3_IOLB_DEFVAL #undef DDR_PHY_PGCR3_IOLB_SHIFT #undef DDR_PHY_PGCR3_IOLB_MASK -#define DDR_PHY_PGCR3_IOLB_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_IOLB_SHIFT 5 -#define DDR_PHY_PGCR3_IOLB_MASK 0x00000020U +#define DDR_PHY_PGCR3_IOLB_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_IOLB_SHIFT 5 +#define DDR_PHY_PGCR3_IOLB_MASK 0x00000020U -/*AC Receive FIFO Read Mode*/ +/* +* AC Receive FIFO Read Mode +*/ #undef DDR_PHY_PGCR3_RDMODE_DEFVAL #undef DDR_PHY_PGCR3_RDMODE_SHIFT #undef DDR_PHY_PGCR3_RDMODE_MASK -#define DDR_PHY_PGCR3_RDMODE_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_RDMODE_SHIFT 3 -#define DDR_PHY_PGCR3_RDMODE_MASK 0x00000018U +#define DDR_PHY_PGCR3_RDMODE_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_RDMODE_SHIFT 3 +#define DDR_PHY_PGCR3_RDMODE_MASK 0x00000018U -/*Read FIFO Reset Disable*/ +/* +* Read FIFO Reset Disable +*/ #undef DDR_PHY_PGCR3_DISRST_DEFVAL #undef DDR_PHY_PGCR3_DISRST_SHIFT #undef DDR_PHY_PGCR3_DISRST_MASK -#define DDR_PHY_PGCR3_DISRST_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_DISRST_SHIFT 2 -#define DDR_PHY_PGCR3_DISRST_MASK 0x00000004U +#define DDR_PHY_PGCR3_DISRST_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_DISRST_SHIFT 2 +#define DDR_PHY_PGCR3_DISRST_MASK 0x00000004U -/*Clock Level when Clock Gating*/ +/* +* Clock Level when Clock Gating +*/ #undef DDR_PHY_PGCR3_CLKLEVEL_DEFVAL #undef DDR_PHY_PGCR3_CLKLEVEL_SHIFT #undef DDR_PHY_PGCR3_CLKLEVEL_MASK -#define DDR_PHY_PGCR3_CLKLEVEL_DEFVAL 0x55AA0080 -#define DDR_PHY_PGCR3_CLKLEVEL_SHIFT 0 -#define DDR_PHY_PGCR3_CLKLEVEL_MASK 0x00000003U +#define DDR_PHY_PGCR3_CLKLEVEL_DEFVAL 0x55AA0080 +#define DDR_PHY_PGCR3_CLKLEVEL_SHIFT 0 +#define DDR_PHY_PGCR3_CLKLEVEL_MASK 0x00000003U -/*Frequency B Ratio Term*/ +/* +* Frequency B Ratio Term +*/ #undef DDR_PHY_PGCR5_FRQBT_DEFVAL #undef DDR_PHY_PGCR5_FRQBT_SHIFT #undef DDR_PHY_PGCR5_FRQBT_MASK -#define DDR_PHY_PGCR5_FRQBT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_FRQBT_SHIFT 24 -#define DDR_PHY_PGCR5_FRQBT_MASK 0xFF000000U +#define DDR_PHY_PGCR5_FRQBT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_FRQBT_SHIFT 24 +#define DDR_PHY_PGCR5_FRQBT_MASK 0xFF000000U -/*Frequency A Ratio Term*/ +/* +* Frequency A Ratio Term +*/ #undef DDR_PHY_PGCR5_FRQAT_DEFVAL #undef DDR_PHY_PGCR5_FRQAT_SHIFT #undef DDR_PHY_PGCR5_FRQAT_MASK -#define DDR_PHY_PGCR5_FRQAT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_FRQAT_SHIFT 16 -#define DDR_PHY_PGCR5_FRQAT_MASK 0x00FF0000U +#define DDR_PHY_PGCR5_FRQAT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_FRQAT_SHIFT 16 +#define DDR_PHY_PGCR5_FRQAT_MASK 0x00FF0000U -/*DFI Disconnect Time Period*/ +/* +* DFI Disconnect Time Period +*/ #undef DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL #undef DDR_PHY_PGCR5_DISCNPERIOD_SHIFT #undef DDR_PHY_PGCR5_DISCNPERIOD_MASK -#define DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DISCNPERIOD_SHIFT 8 -#define DDR_PHY_PGCR5_DISCNPERIOD_MASK 0x0000FF00U +#define DDR_PHY_PGCR5_DISCNPERIOD_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DISCNPERIOD_SHIFT 8 +#define DDR_PHY_PGCR5_DISCNPERIOD_MASK 0x0000FF00U -/*Receiver bias core side control*/ +/* +* Receiver bias core side control +*/ #undef DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL #undef DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT #undef DDR_PHY_PGCR5_VREF_RBCTRL_MASK -#define DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT 4 -#define DDR_PHY_PGCR5_VREF_RBCTRL_MASK 0x000000F0U +#define DDR_PHY_PGCR5_VREF_RBCTRL_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_VREF_RBCTRL_SHIFT 4 +#define DDR_PHY_PGCR5_VREF_RBCTRL_MASK 0x000000F0U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_PGCR5_RESERVED_3_DEFVAL #undef DDR_PHY_PGCR5_RESERVED_3_SHIFT #undef DDR_PHY_PGCR5_RESERVED_3_MASK -#define DDR_PHY_PGCR5_RESERVED_3_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_RESERVED_3_SHIFT 3 -#define DDR_PHY_PGCR5_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_PGCR5_RESERVED_3_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_RESERVED_3_SHIFT 3 +#define DDR_PHY_PGCR5_RESERVED_3_MASK 0x00000008U -/*Internal VREF generator REFSEL ragne select*/ +/* +* Internal VREF generator REFSEL ragne select +*/ #undef DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL #undef DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT #undef DDR_PHY_PGCR5_DXREFISELRANGE_MASK -#define DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT 2 -#define DDR_PHY_PGCR5_DXREFISELRANGE_MASK 0x00000004U +#define DDR_PHY_PGCR5_DXREFISELRANGE_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DXREFISELRANGE_SHIFT 2 +#define DDR_PHY_PGCR5_DXREFISELRANGE_MASK 0x00000004U -/*DDL Page Read Write select*/ +/* +* DDL Page Read Write select +*/ #undef DDR_PHY_PGCR5_DDLPGACT_DEFVAL #undef DDR_PHY_PGCR5_DDLPGACT_SHIFT #undef DDR_PHY_PGCR5_DDLPGACT_MASK -#define DDR_PHY_PGCR5_DDLPGACT_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DDLPGACT_SHIFT 1 -#define DDR_PHY_PGCR5_DDLPGACT_MASK 0x00000002U +#define DDR_PHY_PGCR5_DDLPGACT_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DDLPGACT_SHIFT 1 +#define DDR_PHY_PGCR5_DDLPGACT_MASK 0x00000002U -/*DDL Page Read Write select*/ +/* +* DDL Page Read Write select +*/ #undef DDR_PHY_PGCR5_DDLPGRW_DEFVAL #undef DDR_PHY_PGCR5_DDLPGRW_SHIFT #undef DDR_PHY_PGCR5_DDLPGRW_MASK -#define DDR_PHY_PGCR5_DDLPGRW_DEFVAL 0x01010000 -#define DDR_PHY_PGCR5_DDLPGRW_SHIFT 0 -#define DDR_PHY_PGCR5_DDLPGRW_MASK 0x00000001U +#define DDR_PHY_PGCR5_DDLPGRW_DEFVAL 0x01010000 +#define DDR_PHY_PGCR5_DDLPGRW_SHIFT 0 +#define DDR_PHY_PGCR5_DDLPGRW_MASK 0x00000001U -/*PLL Power-Down Time*/ +/* +* PLL Power-Down Time +*/ #undef DDR_PHY_PTR0_TPLLPD_DEFVAL #undef DDR_PHY_PTR0_TPLLPD_SHIFT #undef DDR_PHY_PTR0_TPLLPD_MASK -#define DDR_PHY_PTR0_TPLLPD_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPLLPD_SHIFT 21 -#define DDR_PHY_PTR0_TPLLPD_MASK 0xFFE00000U +#define DDR_PHY_PTR0_TPLLPD_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPLLPD_SHIFT 21 +#define DDR_PHY_PTR0_TPLLPD_MASK 0xFFE00000U -/*PLL Gear Shift Time*/ +/* +* PLL Gear Shift Time +*/ #undef DDR_PHY_PTR0_TPLLGS_DEFVAL #undef DDR_PHY_PTR0_TPLLGS_SHIFT #undef DDR_PHY_PTR0_TPLLGS_MASK -#define DDR_PHY_PTR0_TPLLGS_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPLLGS_SHIFT 6 -#define DDR_PHY_PTR0_TPLLGS_MASK 0x001FFFC0U +#define DDR_PHY_PTR0_TPLLGS_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPLLGS_SHIFT 6 +#define DDR_PHY_PTR0_TPLLGS_MASK 0x001FFFC0U -/*PHY Reset Time*/ +/* +* PHY Reset Time +*/ #undef DDR_PHY_PTR0_TPHYRST_DEFVAL #undef DDR_PHY_PTR0_TPHYRST_SHIFT #undef DDR_PHY_PTR0_TPHYRST_MASK -#define DDR_PHY_PTR0_TPHYRST_DEFVAL 0x42C21590 -#define DDR_PHY_PTR0_TPHYRST_SHIFT 0 -#define DDR_PHY_PTR0_TPHYRST_MASK 0x0000003FU +#define DDR_PHY_PTR0_TPHYRST_DEFVAL 0x42C21590 +#define DDR_PHY_PTR0_TPHYRST_SHIFT 0 +#define DDR_PHY_PTR0_TPHYRST_MASK 0x0000003FU -/*PLL Lock Time*/ +/* +* PLL Lock Time +*/ #undef DDR_PHY_PTR1_TPLLLOCK_DEFVAL #undef DDR_PHY_PTR1_TPLLLOCK_SHIFT #undef DDR_PHY_PTR1_TPLLLOCK_MASK -#define DDR_PHY_PTR1_TPLLLOCK_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_TPLLLOCK_SHIFT 16 -#define DDR_PHY_PTR1_TPLLLOCK_MASK 0xFFFF0000U +#define DDR_PHY_PTR1_TPLLLOCK_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_TPLLLOCK_SHIFT 16 +#define DDR_PHY_PTR1_TPLLLOCK_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_PTR1_RESERVED_15_13_DEFVAL #undef DDR_PHY_PTR1_RESERVED_15_13_SHIFT #undef DDR_PHY_PTR1_RESERVED_15_13_MASK -#define DDR_PHY_PTR1_RESERVED_15_13_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_PTR1_RESERVED_15_13_MASK 0x0000E000U +#define DDR_PHY_PTR1_RESERVED_15_13_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_RESERVED_15_13_SHIFT 13 +#define DDR_PHY_PTR1_RESERVED_15_13_MASK 0x0000E000U -/*PLL Reset Time*/ +/* +* PLL Reset Time +*/ #undef DDR_PHY_PTR1_TPLLRST_DEFVAL #undef DDR_PHY_PTR1_TPLLRST_SHIFT #undef DDR_PHY_PTR1_TPLLRST_MASK -#define DDR_PHY_PTR1_TPLLRST_DEFVAL 0xD05612C0 -#define DDR_PHY_PTR1_TPLLRST_SHIFT 0 -#define DDR_PHY_PTR1_TPLLRST_MASK 0x00001FFFU +#define DDR_PHY_PTR1_TPLLRST_DEFVAL 0xD05612C0 +#define DDR_PHY_PTR1_TPLLRST_SHIFT 0 +#define DDR_PHY_PTR1_TPLLRST_MASK 0x00001FFFU -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_PLLCR0_PLLBYP_MASK +#define DDR_PHY_PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_PLLCR0_PLLRST_MASK +#define DDR_PHY_PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_PLLCR0_PLLPD_MASK +#define DDR_PHY_PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_PLLCR0_RSTOPM_MASK +#define DDR_PHY_PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_PLLCR0_FRQSEL_MASK +#define DDR_PHY_PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_PLLCR0_RLOCKM_MASK +#define DDR_PHY_PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_PLLCR0_CPPC_SHIFT +#undef DDR_PHY_PLLCR0_CPPC_MASK +#define DDR_PHY_PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_PLLCR0_CPIC_SHIFT +#undef DDR_PHY_PLLCR0_CPIC_MASK +#define DDR_PHY_PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_PLLCR0_GSHIFT_MASK +#define DDR_PHY_PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable +*/ +#undef DDR_PHY_PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_PLLCR0_ATOEN_MASK +#define DDR_PHY_PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_PLLCR0_ATC_DEFVAL +#undef DDR_PHY_PLLCR0_ATC_SHIFT +#undef DDR_PHY_PLLCR0_ATC_MASK +#define DDR_PHY_PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_PLLCR0_DTC_DEFVAL +#undef DDR_PHY_PLLCR0_DTC_SHIFT +#undef DDR_PHY_PLLCR0_DTC_MASK +#define DDR_PHY_PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_31_28_SHIFT #undef DDR_PHY_DSGCR_RESERVED_31_28_MASK -#define DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_31_28_SHIFT 28 -#define DDR_PHY_DSGCR_RESERVED_31_28_MASK 0xF0000000U +#define DDR_PHY_DSGCR_RESERVED_31_28_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_31_28_SHIFT 28 +#define DDR_PHY_DSGCR_RESERVED_31_28_MASK 0xF0000000U -/*When RDBI enabled, this bit is used to select RDBI CL calculation, if it is 1b1, calculation will use RDBICL, otherwise use d - fault calculation.*/ +/* +* When RDBI enabled, this bit is used to select RDBI CL calculation, if it + * is 1b1, calculation will use RDBICL, otherwise use default calculation. +*/ #undef DDR_PHY_DSGCR_RDBICLSEL_DEFVAL #undef DDR_PHY_DSGCR_RDBICLSEL_SHIFT #undef DDR_PHY_DSGCR_RDBICLSEL_MASK -#define DDR_PHY_DSGCR_RDBICLSEL_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RDBICLSEL_SHIFT 27 -#define DDR_PHY_DSGCR_RDBICLSEL_MASK 0x08000000U +#define DDR_PHY_DSGCR_RDBICLSEL_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RDBICLSEL_SHIFT 27 +#define DDR_PHY_DSGCR_RDBICLSEL_MASK 0x08000000U -/*When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this value.*/ +/* +* When RDBI enabled, if RDBICLSEL is asserted, RDBI CL adjust using this v + * alue. +*/ #undef DDR_PHY_DSGCR_RDBICL_DEFVAL #undef DDR_PHY_DSGCR_RDBICL_SHIFT #undef DDR_PHY_DSGCR_RDBICL_MASK -#define DDR_PHY_DSGCR_RDBICL_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RDBICL_SHIFT 24 -#define DDR_PHY_DSGCR_RDBICL_MASK 0x07000000U +#define DDR_PHY_DSGCR_RDBICL_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RDBICL_SHIFT 24 +#define DDR_PHY_DSGCR_RDBICL_MASK 0x07000000U -/*PHY Impedance Update Enable*/ +/* +* PHY Impedance Update Enable +*/ #undef DDR_PHY_DSGCR_PHYZUEN_DEFVAL #undef DDR_PHY_DSGCR_PHYZUEN_SHIFT #undef DDR_PHY_DSGCR_PHYZUEN_MASK -#define DDR_PHY_DSGCR_PHYZUEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PHYZUEN_SHIFT 23 -#define DDR_PHY_DSGCR_PHYZUEN_MASK 0x00800000U +#define DDR_PHY_DSGCR_PHYZUEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PHYZUEN_SHIFT 23 +#define DDR_PHY_DSGCR_PHYZUEN_MASK 0x00800000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_22_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_22_SHIFT #undef DDR_PHY_DSGCR_RESERVED_22_MASK -#define DDR_PHY_DSGCR_RESERVED_22_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_22_SHIFT 22 -#define DDR_PHY_DSGCR_RESERVED_22_MASK 0x00400000U +#define DDR_PHY_DSGCR_RESERVED_22_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_22_SHIFT 22 +#define DDR_PHY_DSGCR_RESERVED_22_MASK 0x00400000U -/*SDRAM Reset Output Enable*/ +/* +* SDRAM Reset Output Enable +*/ #undef DDR_PHY_DSGCR_RSTOE_DEFVAL #undef DDR_PHY_DSGCR_RSTOE_SHIFT #undef DDR_PHY_DSGCR_RSTOE_MASK -#define DDR_PHY_DSGCR_RSTOE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RSTOE_SHIFT 21 -#define DDR_PHY_DSGCR_RSTOE_MASK 0x00200000U +#define DDR_PHY_DSGCR_RSTOE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RSTOE_SHIFT 21 +#define DDR_PHY_DSGCR_RSTOE_MASK 0x00200000U -/*Single Data Rate Mode*/ +/* +* Single Data Rate Mode +*/ #undef DDR_PHY_DSGCR_SDRMODE_DEFVAL #undef DDR_PHY_DSGCR_SDRMODE_SHIFT #undef DDR_PHY_DSGCR_SDRMODE_MASK -#define DDR_PHY_DSGCR_SDRMODE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_SDRMODE_SHIFT 19 -#define DDR_PHY_DSGCR_SDRMODE_MASK 0x00180000U +#define DDR_PHY_DSGCR_SDRMODE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_SDRMODE_SHIFT 19 +#define DDR_PHY_DSGCR_SDRMODE_MASK 0x00180000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DSGCR_RESERVED_18_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_18_SHIFT #undef DDR_PHY_DSGCR_RESERVED_18_MASK -#define DDR_PHY_DSGCR_RESERVED_18_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_18_SHIFT 18 -#define DDR_PHY_DSGCR_RESERVED_18_MASK 0x00040000U +#define DDR_PHY_DSGCR_RESERVED_18_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_18_SHIFT 18 +#define DDR_PHY_DSGCR_RESERVED_18_MASK 0x00040000U -/*ATO Analog Test Enable*/ +/* +* ATO Analog Test Enable +*/ #undef DDR_PHY_DSGCR_ATOAE_DEFVAL #undef DDR_PHY_DSGCR_ATOAE_SHIFT #undef DDR_PHY_DSGCR_ATOAE_MASK -#define DDR_PHY_DSGCR_ATOAE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_ATOAE_SHIFT 17 -#define DDR_PHY_DSGCR_ATOAE_MASK 0x00020000U +#define DDR_PHY_DSGCR_ATOAE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_ATOAE_SHIFT 17 +#define DDR_PHY_DSGCR_ATOAE_MASK 0x00020000U -/*DTO Output Enable*/ +/* +* DTO Output Enable +*/ #undef DDR_PHY_DSGCR_DTOOE_DEFVAL #undef DDR_PHY_DSGCR_DTOOE_SHIFT #undef DDR_PHY_DSGCR_DTOOE_MASK -#define DDR_PHY_DSGCR_DTOOE_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOOE_SHIFT 16 -#define DDR_PHY_DSGCR_DTOOE_MASK 0x00010000U +#define DDR_PHY_DSGCR_DTOOE_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOOE_SHIFT 16 +#define DDR_PHY_DSGCR_DTOOE_MASK 0x00010000U -/*DTO I/O Mode*/ +/* +* DTO I/O Mode +*/ #undef DDR_PHY_DSGCR_DTOIOM_DEFVAL #undef DDR_PHY_DSGCR_DTOIOM_SHIFT #undef DDR_PHY_DSGCR_DTOIOM_MASK -#define DDR_PHY_DSGCR_DTOIOM_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOIOM_SHIFT 15 -#define DDR_PHY_DSGCR_DTOIOM_MASK 0x00008000U +#define DDR_PHY_DSGCR_DTOIOM_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOIOM_SHIFT 15 +#define DDR_PHY_DSGCR_DTOIOM_MASK 0x00008000U -/*DTO Power Down Receiver*/ +/* +* DTO Power Down Receiver +*/ #undef DDR_PHY_DSGCR_DTOPDR_DEFVAL #undef DDR_PHY_DSGCR_DTOPDR_SHIFT #undef DDR_PHY_DSGCR_DTOPDR_MASK -#define DDR_PHY_DSGCR_DTOPDR_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOPDR_SHIFT 14 -#define DDR_PHY_DSGCR_DTOPDR_MASK 0x00004000U +#define DDR_PHY_DSGCR_DTOPDR_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOPDR_SHIFT 14 +#define DDR_PHY_DSGCR_DTOPDR_MASK 0x00004000U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_13_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_13_SHIFT #undef DDR_PHY_DSGCR_RESERVED_13_MASK -#define DDR_PHY_DSGCR_RESERVED_13_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_13_SHIFT 13 -#define DDR_PHY_DSGCR_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_DSGCR_RESERVED_13_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_13_SHIFT 13 +#define DDR_PHY_DSGCR_RESERVED_13_MASK 0x00002000U -/*DTO On-Die Termination*/ +/* +* DTO On-Die Termination +*/ #undef DDR_PHY_DSGCR_DTOODT_DEFVAL #undef DDR_PHY_DSGCR_DTOODT_SHIFT #undef DDR_PHY_DSGCR_DTOODT_MASK -#define DDR_PHY_DSGCR_DTOODT_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_DTOODT_SHIFT 12 -#define DDR_PHY_DSGCR_DTOODT_MASK 0x00001000U +#define DDR_PHY_DSGCR_DTOODT_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_DTOODT_SHIFT 12 +#define DDR_PHY_DSGCR_DTOODT_MASK 0x00001000U -/*PHY Update Acknowledge Delay*/ +/* +* PHY Update Acknowledge Delay +*/ #undef DDR_PHY_DSGCR_PUAD_DEFVAL #undef DDR_PHY_DSGCR_PUAD_SHIFT #undef DDR_PHY_DSGCR_PUAD_MASK -#define DDR_PHY_DSGCR_PUAD_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PUAD_SHIFT 6 -#define DDR_PHY_DSGCR_PUAD_MASK 0x00000FC0U +#define DDR_PHY_DSGCR_PUAD_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PUAD_SHIFT 6 +#define DDR_PHY_DSGCR_PUAD_MASK 0x00000FC0U -/*Controller Update Acknowledge Enable*/ +/* +* Controller Update Acknowledge Enable +*/ #undef DDR_PHY_DSGCR_CUAEN_DEFVAL #undef DDR_PHY_DSGCR_CUAEN_SHIFT #undef DDR_PHY_DSGCR_CUAEN_MASK -#define DDR_PHY_DSGCR_CUAEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_CUAEN_SHIFT 5 -#define DDR_PHY_DSGCR_CUAEN_MASK 0x00000020U +#define DDR_PHY_DSGCR_CUAEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_CUAEN_SHIFT 5 +#define DDR_PHY_DSGCR_CUAEN_MASK 0x00000020U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_4_3_SHIFT #undef DDR_PHY_DSGCR_RESERVED_4_3_MASK -#define DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_4_3_SHIFT 3 -#define DDR_PHY_DSGCR_RESERVED_4_3_MASK 0x00000018U +#define DDR_PHY_DSGCR_RESERVED_4_3_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_4_3_SHIFT 3 +#define DDR_PHY_DSGCR_RESERVED_4_3_MASK 0x00000018U -/*Controller Impedance Update Enable*/ +/* +* Controller Impedance Update Enable +*/ #undef DDR_PHY_DSGCR_CTLZUEN_DEFVAL #undef DDR_PHY_DSGCR_CTLZUEN_SHIFT #undef DDR_PHY_DSGCR_CTLZUEN_MASK -#define DDR_PHY_DSGCR_CTLZUEN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_CTLZUEN_SHIFT 2 -#define DDR_PHY_DSGCR_CTLZUEN_MASK 0x00000004U +#define DDR_PHY_DSGCR_CTLZUEN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_CTLZUEN_SHIFT 2 +#define DDR_PHY_DSGCR_CTLZUEN_MASK 0x00000004U -/*Reserved. Return zeroes on reads*/ +/* +* Reserved. Return zeroes on reads +*/ #undef DDR_PHY_DSGCR_RESERVED_1_DEFVAL #undef DDR_PHY_DSGCR_RESERVED_1_SHIFT #undef DDR_PHY_DSGCR_RESERVED_1_MASK -#define DDR_PHY_DSGCR_RESERVED_1_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_RESERVED_1_SHIFT 1 -#define DDR_PHY_DSGCR_RESERVED_1_MASK 0x00000002U +#define DDR_PHY_DSGCR_RESERVED_1_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_RESERVED_1_SHIFT 1 +#define DDR_PHY_DSGCR_RESERVED_1_MASK 0x00000002U -/*PHY Update Request Enable*/ +/* +* PHY Update Request Enable +*/ #undef DDR_PHY_DSGCR_PUREN_DEFVAL #undef DDR_PHY_DSGCR_PUREN_SHIFT #undef DDR_PHY_DSGCR_PUREN_MASK -#define DDR_PHY_DSGCR_PUREN_DEFVAL 0x02A04101 -#define DDR_PHY_DSGCR_PUREN_SHIFT 0 -#define DDR_PHY_DSGCR_PUREN_MASK 0x00000001U +#define DDR_PHY_DSGCR_PUREN_DEFVAL 0x02A04101 +#define DDR_PHY_DSGCR_PUREN_SHIFT 0 +#define DDR_PHY_DSGCR_PUREN_MASK 0x00000001U -/*DDR4 Gear Down Timing.*/ +/* +* General Purpose Register 0 +*/ +#undef DDR_PHY_GPR0_GPR0_DEFVAL +#undef DDR_PHY_GPR0_GPR0_SHIFT +#undef DDR_PHY_GPR0_GPR0_MASK +#define DDR_PHY_GPR0_GPR0_DEFVAL +#define DDR_PHY_GPR0_GPR0_SHIFT 0 +#define DDR_PHY_GPR0_GPR0_MASK 0xFFFFFFFFU + +/* +* DDR4 Gear Down Timing. +*/ #undef DDR_PHY_DCR_GEARDN_DEFVAL #undef DDR_PHY_DCR_GEARDN_SHIFT #undef DDR_PHY_DCR_GEARDN_MASK -#define DDR_PHY_DCR_GEARDN_DEFVAL 0x0000040D -#define DDR_PHY_DCR_GEARDN_SHIFT 31 -#define DDR_PHY_DCR_GEARDN_MASK 0x80000000U +#define DDR_PHY_DCR_GEARDN_DEFVAL 0x0000040D +#define DDR_PHY_DCR_GEARDN_SHIFT 31 +#define DDR_PHY_DCR_GEARDN_MASK 0x80000000U -/*Un-used Bank Group*/ +/* +* Un-used Bank Group +*/ #undef DDR_PHY_DCR_UBG_DEFVAL #undef DDR_PHY_DCR_UBG_SHIFT #undef DDR_PHY_DCR_UBG_MASK -#define DDR_PHY_DCR_UBG_DEFVAL 0x0000040D -#define DDR_PHY_DCR_UBG_SHIFT 30 -#define DDR_PHY_DCR_UBG_MASK 0x40000000U +#define DDR_PHY_DCR_UBG_DEFVAL 0x0000040D +#define DDR_PHY_DCR_UBG_SHIFT 30 +#define DDR_PHY_DCR_UBG_MASK 0x40000000U -/*Un-buffered DIMM Address Mirroring*/ +/* +* Un-buffered DIMM Address Mirroring +*/ #undef DDR_PHY_DCR_UDIMM_DEFVAL #undef DDR_PHY_DCR_UDIMM_SHIFT #undef DDR_PHY_DCR_UDIMM_MASK -#define DDR_PHY_DCR_UDIMM_DEFVAL 0x0000040D -#define DDR_PHY_DCR_UDIMM_SHIFT 29 -#define DDR_PHY_DCR_UDIMM_MASK 0x20000000U +#define DDR_PHY_DCR_UDIMM_DEFVAL 0x0000040D +#define DDR_PHY_DCR_UDIMM_SHIFT 29 +#define DDR_PHY_DCR_UDIMM_MASK 0x20000000U -/*DDR 2T Timing*/ +/* +* DDR 2T Timing +*/ #undef DDR_PHY_DCR_DDR2T_DEFVAL #undef DDR_PHY_DCR_DDR2T_SHIFT #undef DDR_PHY_DCR_DDR2T_MASK -#define DDR_PHY_DCR_DDR2T_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDR2T_SHIFT 28 -#define DDR_PHY_DCR_DDR2T_MASK 0x10000000U +#define DDR_PHY_DCR_DDR2T_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDR2T_SHIFT 28 +#define DDR_PHY_DCR_DDR2T_MASK 0x10000000U -/*No Simultaneous Rank Access*/ +/* +* No Simultaneous Rank Access +*/ #undef DDR_PHY_DCR_NOSRA_DEFVAL #undef DDR_PHY_DCR_NOSRA_SHIFT #undef DDR_PHY_DCR_NOSRA_MASK -#define DDR_PHY_DCR_NOSRA_DEFVAL 0x0000040D -#define DDR_PHY_DCR_NOSRA_SHIFT 27 -#define DDR_PHY_DCR_NOSRA_MASK 0x08000000U +#define DDR_PHY_DCR_NOSRA_DEFVAL 0x0000040D +#define DDR_PHY_DCR_NOSRA_SHIFT 27 +#define DDR_PHY_DCR_NOSRA_MASK 0x08000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DCR_RESERVED_26_18_DEFVAL #undef DDR_PHY_DCR_RESERVED_26_18_SHIFT #undef DDR_PHY_DCR_RESERVED_26_18_MASK -#define DDR_PHY_DCR_RESERVED_26_18_DEFVAL 0x0000040D -#define DDR_PHY_DCR_RESERVED_26_18_SHIFT 18 -#define DDR_PHY_DCR_RESERVED_26_18_MASK 0x07FC0000U +#define DDR_PHY_DCR_RESERVED_26_18_DEFVAL 0x0000040D +#define DDR_PHY_DCR_RESERVED_26_18_SHIFT 18 +#define DDR_PHY_DCR_RESERVED_26_18_MASK 0x07FC0000U -/*Byte Mask*/ +/* +* Byte Mask +*/ #undef DDR_PHY_DCR_BYTEMASK_DEFVAL #undef DDR_PHY_DCR_BYTEMASK_SHIFT #undef DDR_PHY_DCR_BYTEMASK_MASK -#define DDR_PHY_DCR_BYTEMASK_DEFVAL 0x0000040D -#define DDR_PHY_DCR_BYTEMASK_SHIFT 10 -#define DDR_PHY_DCR_BYTEMASK_MASK 0x0003FC00U +#define DDR_PHY_DCR_BYTEMASK_DEFVAL 0x0000040D +#define DDR_PHY_DCR_BYTEMASK_SHIFT 10 +#define DDR_PHY_DCR_BYTEMASK_MASK 0x0003FC00U -/*DDR Type*/ +/* +* DDR Type +*/ #undef DDR_PHY_DCR_DDRTYPE_DEFVAL #undef DDR_PHY_DCR_DDRTYPE_SHIFT #undef DDR_PHY_DCR_DDRTYPE_MASK -#define DDR_PHY_DCR_DDRTYPE_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDRTYPE_SHIFT 8 -#define DDR_PHY_DCR_DDRTYPE_MASK 0x00000300U +#define DDR_PHY_DCR_DDRTYPE_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDRTYPE_SHIFT 8 +#define DDR_PHY_DCR_DDRTYPE_MASK 0x00000300U -/*Multi-Purpose Register (MPR) DQ (DDR3 Only)*/ +/* +* Multi-Purpose Register (MPR) DQ (DDR3 Only) +*/ #undef DDR_PHY_DCR_MPRDQ_DEFVAL #undef DDR_PHY_DCR_MPRDQ_SHIFT #undef DDR_PHY_DCR_MPRDQ_MASK -#define DDR_PHY_DCR_MPRDQ_DEFVAL 0x0000040D -#define DDR_PHY_DCR_MPRDQ_SHIFT 7 -#define DDR_PHY_DCR_MPRDQ_MASK 0x00000080U +#define DDR_PHY_DCR_MPRDQ_DEFVAL 0x0000040D +#define DDR_PHY_DCR_MPRDQ_SHIFT 7 +#define DDR_PHY_DCR_MPRDQ_MASK 0x00000080U -/*Primary DQ (DDR3 Only)*/ +/* +* Primary DQ (DDR3 Only) +*/ #undef DDR_PHY_DCR_PDQ_DEFVAL #undef DDR_PHY_DCR_PDQ_SHIFT #undef DDR_PHY_DCR_PDQ_MASK -#define DDR_PHY_DCR_PDQ_DEFVAL 0x0000040D -#define DDR_PHY_DCR_PDQ_SHIFT 4 -#define DDR_PHY_DCR_PDQ_MASK 0x00000070U +#define DDR_PHY_DCR_PDQ_DEFVAL 0x0000040D +#define DDR_PHY_DCR_PDQ_SHIFT 4 +#define DDR_PHY_DCR_PDQ_MASK 0x00000070U -/*DDR 8-Bank*/ +/* +* DDR 8-Bank +*/ #undef DDR_PHY_DCR_DDR8BNK_DEFVAL #undef DDR_PHY_DCR_DDR8BNK_SHIFT #undef DDR_PHY_DCR_DDR8BNK_MASK -#define DDR_PHY_DCR_DDR8BNK_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDR8BNK_SHIFT 3 -#define DDR_PHY_DCR_DDR8BNK_MASK 0x00000008U +#define DDR_PHY_DCR_DDR8BNK_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDR8BNK_SHIFT 3 +#define DDR_PHY_DCR_DDR8BNK_MASK 0x00000008U -/*DDR Mode*/ +/* +* DDR Mode +*/ #undef DDR_PHY_DCR_DDRMD_DEFVAL #undef DDR_PHY_DCR_DDRMD_SHIFT #undef DDR_PHY_DCR_DDRMD_MASK -#define DDR_PHY_DCR_DDRMD_DEFVAL 0x0000040D -#define DDR_PHY_DCR_DDRMD_SHIFT 0 -#define DDR_PHY_DCR_DDRMD_MASK 0x00000007U +#define DDR_PHY_DCR_DDRMD_DEFVAL 0x0000040D +#define DDR_PHY_DCR_DDRMD_SHIFT 0 +#define DDR_PHY_DCR_DDRMD_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_31_29_SHIFT #undef DDR_PHY_DTPR0_RESERVED_31_29_MASK -#define DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DTPR0_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DTPR0_RESERVED_31_29_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DTPR0_RESERVED_31_29_MASK 0xE0000000U -/*Activate to activate command delay (different banks)*/ +/* +* Activate to activate command delay (different banks) +*/ #undef DDR_PHY_DTPR0_TRRD_DEFVAL #undef DDR_PHY_DTPR0_TRRD_SHIFT #undef DDR_PHY_DTPR0_TRRD_MASK -#define DDR_PHY_DTPR0_TRRD_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRRD_SHIFT 24 -#define DDR_PHY_DTPR0_TRRD_MASK 0x1F000000U +#define DDR_PHY_DTPR0_TRRD_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRRD_SHIFT 24 +#define DDR_PHY_DTPR0_TRRD_MASK 0x1F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_23_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_23_SHIFT #undef DDR_PHY_DTPR0_RESERVED_23_MASK -#define DDR_PHY_DTPR0_RESERVED_23_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_23_SHIFT 23 -#define DDR_PHY_DTPR0_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DTPR0_RESERVED_23_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_23_SHIFT 23 +#define DDR_PHY_DTPR0_RESERVED_23_MASK 0x00800000U -/*Activate to precharge command delay*/ +/* +* Activate to precharge command delay +*/ #undef DDR_PHY_DTPR0_TRAS_DEFVAL #undef DDR_PHY_DTPR0_TRAS_SHIFT #undef DDR_PHY_DTPR0_TRAS_MASK -#define DDR_PHY_DTPR0_TRAS_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRAS_SHIFT 16 -#define DDR_PHY_DTPR0_TRAS_MASK 0x007F0000U +#define DDR_PHY_DTPR0_TRAS_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRAS_SHIFT 16 +#define DDR_PHY_DTPR0_TRAS_MASK 0x007F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_15_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_15_SHIFT #undef DDR_PHY_DTPR0_RESERVED_15_MASK -#define DDR_PHY_DTPR0_RESERVED_15_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_15_SHIFT 15 -#define DDR_PHY_DTPR0_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DTPR0_RESERVED_15_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_15_SHIFT 15 +#define DDR_PHY_DTPR0_RESERVED_15_MASK 0x00008000U -/*Precharge command period*/ +/* +* Precharge command period +*/ #undef DDR_PHY_DTPR0_TRP_DEFVAL #undef DDR_PHY_DTPR0_TRP_SHIFT #undef DDR_PHY_DTPR0_TRP_MASK -#define DDR_PHY_DTPR0_TRP_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRP_SHIFT 8 -#define DDR_PHY_DTPR0_TRP_MASK 0x00007F00U +#define DDR_PHY_DTPR0_TRP_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRP_SHIFT 8 +#define DDR_PHY_DTPR0_TRP_MASK 0x00007F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR0_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR0_RESERVED_7_5_MASK -#define DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR0_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR0_RESERVED_7_5_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR0_RESERVED_7_5_MASK 0x000000E0U -/*Internal read to precharge command delay*/ +/* +* Internal read to precharge command delay +*/ #undef DDR_PHY_DTPR0_TRTP_DEFVAL #undef DDR_PHY_DTPR0_TRTP_SHIFT #undef DDR_PHY_DTPR0_TRTP_MASK -#define DDR_PHY_DTPR0_TRTP_DEFVAL 0x105A2D08 -#define DDR_PHY_DTPR0_TRTP_SHIFT 0 -#define DDR_PHY_DTPR0_TRTP_MASK 0x0000001FU +#define DDR_PHY_DTPR0_TRTP_DEFVAL 0x105A2D08 +#define DDR_PHY_DTPR0_TRTP_SHIFT 0 +#define DDR_PHY_DTPR0_TRTP_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_31_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_31_SHIFT #undef DDR_PHY_DTPR1_RESERVED_31_MASK -#define DDR_PHY_DTPR1_RESERVED_31_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_31_SHIFT 31 -#define DDR_PHY_DTPR1_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DTPR1_RESERVED_31_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_31_SHIFT 31 +#define DDR_PHY_DTPR1_RESERVED_31_MASK 0x80000000U -/*Minimum delay from when write leveling mode is programmed to the first DQS/DQS# rising edge.*/ +/* +* Minimum delay from when write leveling mode is programmed to the first D + * QS/DQS# rising edge. +*/ #undef DDR_PHY_DTPR1_TWLMRD_DEFVAL #undef DDR_PHY_DTPR1_TWLMRD_SHIFT #undef DDR_PHY_DTPR1_TWLMRD_MASK -#define DDR_PHY_DTPR1_TWLMRD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TWLMRD_SHIFT 24 -#define DDR_PHY_DTPR1_TWLMRD_MASK 0x7F000000U +#define DDR_PHY_DTPR1_TWLMRD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TWLMRD_SHIFT 24 +#define DDR_PHY_DTPR1_TWLMRD_MASK 0x7F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_23_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_23_SHIFT #undef DDR_PHY_DTPR1_RESERVED_23_MASK -#define DDR_PHY_DTPR1_RESERVED_23_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_23_SHIFT 23 -#define DDR_PHY_DTPR1_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DTPR1_RESERVED_23_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_23_SHIFT 23 +#define DDR_PHY_DTPR1_RESERVED_23_MASK 0x00800000U -/*4-bank activate period*/ +/* +* 4-bank activate period +*/ #undef DDR_PHY_DTPR1_TFAW_DEFVAL #undef DDR_PHY_DTPR1_TFAW_SHIFT #undef DDR_PHY_DTPR1_TFAW_MASK -#define DDR_PHY_DTPR1_TFAW_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TFAW_SHIFT 16 -#define DDR_PHY_DTPR1_TFAW_MASK 0x007F0000U +#define DDR_PHY_DTPR1_TFAW_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TFAW_SHIFT 16 +#define DDR_PHY_DTPR1_TFAW_MASK 0x007F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_15_11_SHIFT #undef DDR_PHY_DTPR1_RESERVED_15_11_MASK -#define DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_15_11_SHIFT 11 -#define DDR_PHY_DTPR1_RESERVED_15_11_MASK 0x0000F800U +#define DDR_PHY_DTPR1_RESERVED_15_11_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_15_11_SHIFT 11 +#define DDR_PHY_DTPR1_RESERVED_15_11_MASK 0x0000F800U -/*Load mode update delay (DDR4 and DDR3 only)*/ +/* +* Load mode update delay (DDR4 and DDR3 only) +*/ #undef DDR_PHY_DTPR1_TMOD_DEFVAL #undef DDR_PHY_DTPR1_TMOD_SHIFT #undef DDR_PHY_DTPR1_TMOD_MASK -#define DDR_PHY_DTPR1_TMOD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TMOD_SHIFT 8 -#define DDR_PHY_DTPR1_TMOD_MASK 0x00000700U +#define DDR_PHY_DTPR1_TMOD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TMOD_SHIFT 8 +#define DDR_PHY_DTPR1_TMOD_MASK 0x00000700U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR1_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR1_RESERVED_7_5_MASK -#define DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR1_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR1_RESERVED_7_5_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR1_RESERVED_7_5_MASK 0x000000E0U -/*Load mode cycle time*/ +/* +* Load mode cycle time +*/ #undef DDR_PHY_DTPR1_TMRD_DEFVAL #undef DDR_PHY_DTPR1_TMRD_SHIFT #undef DDR_PHY_DTPR1_TMRD_MASK -#define DDR_PHY_DTPR1_TMRD_DEFVAL 0x5656041E -#define DDR_PHY_DTPR1_TMRD_SHIFT 0 -#define DDR_PHY_DTPR1_TMRD_MASK 0x0000001FU +#define DDR_PHY_DTPR1_TMRD_DEFVAL 0x5656041E +#define DDR_PHY_DTPR1_TMRD_SHIFT 0 +#define DDR_PHY_DTPR1_TMRD_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_31_29_SHIFT #undef DDR_PHY_DTPR2_RESERVED_31_29_MASK -#define DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DTPR2_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DTPR2_RESERVED_31_29_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DTPR2_RESERVED_31_29_MASK 0xE0000000U -/*Read to Write command delay. Valid values are*/ +/* +* Read to Write command delay. Valid values are +*/ #undef DDR_PHY_DTPR2_TRTW_DEFVAL #undef DDR_PHY_DTPR2_TRTW_SHIFT #undef DDR_PHY_DTPR2_TRTW_MASK -#define DDR_PHY_DTPR2_TRTW_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TRTW_SHIFT 28 -#define DDR_PHY_DTPR2_TRTW_MASK 0x10000000U +#define DDR_PHY_DTPR2_TRTW_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TRTW_SHIFT 28 +#define DDR_PHY_DTPR2_TRTW_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_27_25_SHIFT #undef DDR_PHY_DTPR2_RESERVED_27_25_MASK -#define DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_27_25_SHIFT 25 -#define DDR_PHY_DTPR2_RESERVED_27_25_MASK 0x0E000000U +#define DDR_PHY_DTPR2_RESERVED_27_25_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_27_25_SHIFT 25 +#define DDR_PHY_DTPR2_RESERVED_27_25_MASK 0x0E000000U -/*Read to ODT delay (DDR3 only)*/ +/* +* Read to ODT delay (DDR3 only) +*/ #undef DDR_PHY_DTPR2_TRTODT_DEFVAL #undef DDR_PHY_DTPR2_TRTODT_SHIFT #undef DDR_PHY_DTPR2_TRTODT_MASK -#define DDR_PHY_DTPR2_TRTODT_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TRTODT_SHIFT 24 -#define DDR_PHY_DTPR2_TRTODT_MASK 0x01000000U +#define DDR_PHY_DTPR2_TRTODT_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TRTODT_SHIFT 24 +#define DDR_PHY_DTPR2_TRTODT_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_23_20_SHIFT #undef DDR_PHY_DTPR2_RESERVED_23_20_MASK -#define DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DTPR2_RESERVED_23_20_MASK 0x00F00000U +#define DDR_PHY_DTPR2_RESERVED_23_20_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_23_20_SHIFT 20 +#define DDR_PHY_DTPR2_RESERVED_23_20_MASK 0x00F00000U -/*CKE minimum pulse width*/ +/* +* CKE minimum pulse width +*/ #undef DDR_PHY_DTPR2_TCKE_DEFVAL #undef DDR_PHY_DTPR2_TCKE_SHIFT #undef DDR_PHY_DTPR2_TCKE_MASK -#define DDR_PHY_DTPR2_TCKE_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TCKE_SHIFT 16 -#define DDR_PHY_DTPR2_TCKE_MASK 0x000F0000U +#define DDR_PHY_DTPR2_TCKE_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TCKE_SHIFT 16 +#define DDR_PHY_DTPR2_TCKE_MASK 0x000F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL #undef DDR_PHY_DTPR2_RESERVED_15_10_SHIFT #undef DDR_PHY_DTPR2_RESERVED_15_10_MASK -#define DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_DTPR2_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_DTPR2_RESERVED_15_10_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_DTPR2_RESERVED_15_10_MASK 0x0000FC00U -/*Self refresh exit delay*/ +/* +* Self refresh exit delay +*/ #undef DDR_PHY_DTPR2_TXS_DEFVAL #undef DDR_PHY_DTPR2_TXS_SHIFT #undef DDR_PHY_DTPR2_TXS_MASK -#define DDR_PHY_DTPR2_TXS_DEFVAL 0x000B01D0 -#define DDR_PHY_DTPR2_TXS_SHIFT 0 -#define DDR_PHY_DTPR2_TXS_MASK 0x000003FFU +#define DDR_PHY_DTPR2_TXS_DEFVAL 0x000B01D0 +#define DDR_PHY_DTPR2_TXS_SHIFT 0 +#define DDR_PHY_DTPR2_TXS_MASK 0x000003FFU -/*ODT turn-off delay extension*/ +/* +* ODT turn-off delay extension +*/ #undef DDR_PHY_DTPR3_TOFDX_DEFVAL #undef DDR_PHY_DTPR3_TOFDX_SHIFT #undef DDR_PHY_DTPR3_TOFDX_MASK -#define DDR_PHY_DTPR3_TOFDX_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TOFDX_SHIFT 29 -#define DDR_PHY_DTPR3_TOFDX_MASK 0xE0000000U +#define DDR_PHY_DTPR3_TOFDX_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TOFDX_SHIFT 29 +#define DDR_PHY_DTPR3_TOFDX_MASK 0xE0000000U -/*Read to read and write to write command delay*/ +/* +* Read to read and write to write command delay +*/ #undef DDR_PHY_DTPR3_TCCD_DEFVAL #undef DDR_PHY_DTPR3_TCCD_SHIFT #undef DDR_PHY_DTPR3_TCCD_MASK -#define DDR_PHY_DTPR3_TCCD_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TCCD_SHIFT 26 -#define DDR_PHY_DTPR3_TCCD_MASK 0x1C000000U +#define DDR_PHY_DTPR3_TCCD_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TCCD_SHIFT 26 +#define DDR_PHY_DTPR3_TCCD_MASK 0x1C000000U -/*DLL locking time*/ +/* +* DLL locking time +*/ #undef DDR_PHY_DTPR3_TDLLK_DEFVAL #undef DDR_PHY_DTPR3_TDLLK_SHIFT #undef DDR_PHY_DTPR3_TDLLK_MASK -#define DDR_PHY_DTPR3_TDLLK_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDLLK_SHIFT 16 -#define DDR_PHY_DTPR3_TDLLK_MASK 0x03FF0000U +#define DDR_PHY_DTPR3_TDLLK_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDLLK_SHIFT 16 +#define DDR_PHY_DTPR3_TDLLK_MASK 0x03FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL #undef DDR_PHY_DTPR3_RESERVED_15_12_SHIFT #undef DDR_PHY_DTPR3_RESERVED_15_12_MASK -#define DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_RESERVED_15_12_SHIFT 12 -#define DDR_PHY_DTPR3_RESERVED_15_12_MASK 0x0000F000U +#define DDR_PHY_DTPR3_RESERVED_15_12_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_RESERVED_15_12_SHIFT 12 +#define DDR_PHY_DTPR3_RESERVED_15_12_MASK 0x0000F000U -/*Maximum DQS output access time from CK/CK# (LPDDR2/3 only)*/ +/* +* Maximum DQS output access time from CK/CK# (LPDDR2/3 only) +*/ #undef DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL #undef DDR_PHY_DTPR3_TDQSCKMAX_SHIFT #undef DDR_PHY_DTPR3_TDQSCKMAX_MASK -#define DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDQSCKMAX_SHIFT 8 -#define DDR_PHY_DTPR3_TDQSCKMAX_MASK 0x00000F00U +#define DDR_PHY_DTPR3_TDQSCKMAX_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDQSCKMAX_SHIFT 8 +#define DDR_PHY_DTPR3_TDQSCKMAX_MASK 0x00000F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL #undef DDR_PHY_DTPR3_RESERVED_7_3_SHIFT #undef DDR_PHY_DTPR3_RESERVED_7_3_MASK -#define DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_RESERVED_7_3_SHIFT 3 -#define DDR_PHY_DTPR3_RESERVED_7_3_MASK 0x000000F8U +#define DDR_PHY_DTPR3_RESERVED_7_3_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_RESERVED_7_3_SHIFT 3 +#define DDR_PHY_DTPR3_RESERVED_7_3_MASK 0x000000F8U -/*DQS output access time from CK/CK# (LPDDR2/3 only)*/ +/* +* DQS output access time from CK/CK# (LPDDR2/3 only) +*/ #undef DDR_PHY_DTPR3_TDQSCK_DEFVAL #undef DDR_PHY_DTPR3_TDQSCK_SHIFT #undef DDR_PHY_DTPR3_TDQSCK_MASK -#define DDR_PHY_DTPR3_TDQSCK_DEFVAL 0x02000804 -#define DDR_PHY_DTPR3_TDQSCK_SHIFT 0 -#define DDR_PHY_DTPR3_TDQSCK_MASK 0x00000007U +#define DDR_PHY_DTPR3_TDQSCK_DEFVAL 0x02000804 +#define DDR_PHY_DTPR3_TDQSCK_SHIFT 0 +#define DDR_PHY_DTPR3_TDQSCK_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_31_30_SHIFT #undef DDR_PHY_DTPR4_RESERVED_31_30_MASK -#define DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DTPR4_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DTPR4_RESERVED_31_30_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DTPR4_RESERVED_31_30_MASK 0xC0000000U -/*ODT turn-on/turn-off delays (DDR2 only)*/ +/* +* ODT turn-on/turn-off delays (DDR2 only) +*/ #undef DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL #undef DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT #undef DDR_PHY_DTPR4_TAOND_TAOFD_MASK -#define DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT 28 -#define DDR_PHY_DTPR4_TAOND_TAOFD_MASK 0x30000000U +#define DDR_PHY_DTPR4_TAOND_TAOFD_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TAOND_TAOFD_SHIFT 28 +#define DDR_PHY_DTPR4_TAOND_TAOFD_MASK 0x30000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_27_26_SHIFT #undef DDR_PHY_DTPR4_RESERVED_27_26_MASK -#define DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_27_26_SHIFT 26 -#define DDR_PHY_DTPR4_RESERVED_27_26_MASK 0x0C000000U +#define DDR_PHY_DTPR4_RESERVED_27_26_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_27_26_SHIFT 26 +#define DDR_PHY_DTPR4_RESERVED_27_26_MASK 0x0C000000U -/*Refresh-to-Refresh*/ +/* +* Refresh-to-Refresh +*/ #undef DDR_PHY_DTPR4_TRFC_DEFVAL #undef DDR_PHY_DTPR4_TRFC_SHIFT #undef DDR_PHY_DTPR4_TRFC_MASK -#define DDR_PHY_DTPR4_TRFC_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TRFC_SHIFT 16 -#define DDR_PHY_DTPR4_TRFC_MASK 0x03FF0000U +#define DDR_PHY_DTPR4_TRFC_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TRFC_SHIFT 16 +#define DDR_PHY_DTPR4_TRFC_MASK 0x03FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_15_14_SHIFT #undef DDR_PHY_DTPR4_RESERVED_15_14_MASK -#define DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DTPR4_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DTPR4_RESERVED_15_14_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DTPR4_RESERVED_15_14_MASK 0x0000C000U -/*Write leveling output delay*/ +/* +* Write leveling output delay +*/ #undef DDR_PHY_DTPR4_TWLO_DEFVAL #undef DDR_PHY_DTPR4_TWLO_SHIFT #undef DDR_PHY_DTPR4_TWLO_MASK -#define DDR_PHY_DTPR4_TWLO_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TWLO_SHIFT 8 -#define DDR_PHY_DTPR4_TWLO_MASK 0x00003F00U +#define DDR_PHY_DTPR4_TWLO_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TWLO_SHIFT 8 +#define DDR_PHY_DTPR4_TWLO_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR4_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR4_RESERVED_7_5_MASK -#define DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR4_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR4_RESERVED_7_5_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR4_RESERVED_7_5_MASK 0x000000E0U -/*Power down exit delay*/ +/* +* Power down exit delay +*/ #undef DDR_PHY_DTPR4_TXP_DEFVAL #undef DDR_PHY_DTPR4_TXP_SHIFT #undef DDR_PHY_DTPR4_TXP_MASK -#define DDR_PHY_DTPR4_TXP_DEFVAL 0x01C02B10 -#define DDR_PHY_DTPR4_TXP_SHIFT 0 -#define DDR_PHY_DTPR4_TXP_MASK 0x0000001FU +#define DDR_PHY_DTPR4_TXP_DEFVAL 0x01C02B10 +#define DDR_PHY_DTPR4_TXP_SHIFT 0 +#define DDR_PHY_DTPR4_TXP_MASK 0x0000001FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_31_24_SHIFT #undef DDR_PHY_DTPR5_RESERVED_31_24_MASK -#define DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DTPR5_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DTPR5_RESERVED_31_24_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DTPR5_RESERVED_31_24_MASK 0xFF000000U -/*Activate to activate command delay (same bank)*/ +/* +* Activate to activate command delay (same bank) +*/ #undef DDR_PHY_DTPR5_TRC_DEFVAL #undef DDR_PHY_DTPR5_TRC_SHIFT #undef DDR_PHY_DTPR5_TRC_MASK -#define DDR_PHY_DTPR5_TRC_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TRC_SHIFT 16 -#define DDR_PHY_DTPR5_TRC_MASK 0x00FF0000U +#define DDR_PHY_DTPR5_TRC_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TRC_SHIFT 16 +#define DDR_PHY_DTPR5_TRC_MASK 0x00FF0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_15_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_15_SHIFT #undef DDR_PHY_DTPR5_RESERVED_15_MASK -#define DDR_PHY_DTPR5_RESERVED_15_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DTPR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DTPR5_RESERVED_15_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DTPR5_RESERVED_15_MASK 0x00008000U -/*Activate to read or write delay*/ +/* +* Activate to read or write delay +*/ #undef DDR_PHY_DTPR5_TRCD_DEFVAL #undef DDR_PHY_DTPR5_TRCD_SHIFT #undef DDR_PHY_DTPR5_TRCD_MASK -#define DDR_PHY_DTPR5_TRCD_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TRCD_SHIFT 8 -#define DDR_PHY_DTPR5_TRCD_MASK 0x00007F00U +#define DDR_PHY_DTPR5_TRCD_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TRCD_SHIFT 8 +#define DDR_PHY_DTPR5_TRCD_MASK 0x00007F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL #undef DDR_PHY_DTPR5_RESERVED_7_5_SHIFT #undef DDR_PHY_DTPR5_RESERVED_7_5_MASK -#define DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DTPR5_RESERVED_7_5_MASK 0x000000E0U +#define DDR_PHY_DTPR5_RESERVED_7_5_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_RESERVED_7_5_SHIFT 5 +#define DDR_PHY_DTPR5_RESERVED_7_5_MASK 0x000000E0U -/*Internal write to read command delay*/ +/* +* Internal write to read command delay +*/ #undef DDR_PHY_DTPR5_TWTR_DEFVAL #undef DDR_PHY_DTPR5_TWTR_SHIFT #undef DDR_PHY_DTPR5_TWTR_MASK -#define DDR_PHY_DTPR5_TWTR_DEFVAL 0x00872716 -#define DDR_PHY_DTPR5_TWTR_SHIFT 0 -#define DDR_PHY_DTPR5_TWTR_MASK 0x0000001FU +#define DDR_PHY_DTPR5_TWTR_DEFVAL 0x00872716 +#define DDR_PHY_DTPR5_TWTR_SHIFT 0 +#define DDR_PHY_DTPR5_TWTR_MASK 0x0000001FU -/*PUB Write Latency Enable*/ +/* +* PUB Write Latency Enable +*/ #undef DDR_PHY_DTPR6_PUBWLEN_DEFVAL #undef DDR_PHY_DTPR6_PUBWLEN_SHIFT #undef DDR_PHY_DTPR6_PUBWLEN_MASK -#define DDR_PHY_DTPR6_PUBWLEN_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBWLEN_SHIFT 31 -#define DDR_PHY_DTPR6_PUBWLEN_MASK 0x80000000U +#define DDR_PHY_DTPR6_PUBWLEN_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBWLEN_SHIFT 31 +#define DDR_PHY_DTPR6_PUBWLEN_MASK 0x80000000U -/*PUB Read Latency Enable*/ +/* +* PUB Read Latency Enable +*/ #undef DDR_PHY_DTPR6_PUBRLEN_DEFVAL #undef DDR_PHY_DTPR6_PUBRLEN_SHIFT #undef DDR_PHY_DTPR6_PUBRLEN_MASK -#define DDR_PHY_DTPR6_PUBRLEN_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBRLEN_SHIFT 30 -#define DDR_PHY_DTPR6_PUBRLEN_MASK 0x40000000U +#define DDR_PHY_DTPR6_PUBRLEN_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBRLEN_SHIFT 30 +#define DDR_PHY_DTPR6_PUBRLEN_MASK 0x40000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL #undef DDR_PHY_DTPR6_RESERVED_29_14_SHIFT #undef DDR_PHY_DTPR6_RESERVED_29_14_MASK -#define DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_RESERVED_29_14_SHIFT 14 -#define DDR_PHY_DTPR6_RESERVED_29_14_MASK 0x3FFFC000U +#define DDR_PHY_DTPR6_RESERVED_29_14_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_RESERVED_29_14_SHIFT 14 +#define DDR_PHY_DTPR6_RESERVED_29_14_MASK 0x3FFFC000U -/*Write Latency*/ +/* +* Write Latency +*/ #undef DDR_PHY_DTPR6_PUBWL_DEFVAL #undef DDR_PHY_DTPR6_PUBWL_SHIFT #undef DDR_PHY_DTPR6_PUBWL_MASK -#define DDR_PHY_DTPR6_PUBWL_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBWL_SHIFT 8 -#define DDR_PHY_DTPR6_PUBWL_MASK 0x00003F00U +#define DDR_PHY_DTPR6_PUBWL_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBWL_SHIFT 8 +#define DDR_PHY_DTPR6_PUBWL_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DTPR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DTPR6_RESERVED_7_6_MASK -#define DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DTPR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DTPR6_RESERVED_7_6_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DTPR6_RESERVED_7_6_MASK 0x000000C0U -/*Read Latency*/ +/* +* Read Latency +*/ #undef DDR_PHY_DTPR6_PUBRL_DEFVAL #undef DDR_PHY_DTPR6_PUBRL_SHIFT #undef DDR_PHY_DTPR6_PUBRL_MASK -#define DDR_PHY_DTPR6_PUBRL_DEFVAL 0x00000505 -#define DDR_PHY_DTPR6_PUBRL_SHIFT 0 -#define DDR_PHY_DTPR6_PUBRL_MASK 0x0000003FU +#define DDR_PHY_DTPR6_PUBRL_DEFVAL 0x00000505 +#define DDR_PHY_DTPR6_PUBRL_SHIFT 0 +#define DDR_PHY_DTPR6_PUBRL_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_31_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT 31 -#define DDR_PHY_RDIMMGCR0_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_31_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_31_SHIFT 31 +#define DDR_PHY_RDIMMGCR0_RESERVED_31_MASK 0x80000000U -/*RDMIMM Quad CS Enable*/ +/* +* RDMIMM Quad CS Enable +*/ #undef DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL #undef DDR_PHY_RDIMMGCR0_QCSEN_SHIFT #undef DDR_PHY_RDIMMGCR0_QCSEN_MASK -#define DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_QCSEN_SHIFT 30 -#define DDR_PHY_RDIMMGCR0_QCSEN_MASK 0x40000000U +#define DDR_PHY_RDIMMGCR0_QCSEN_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_QCSEN_SHIFT 30 +#define DDR_PHY_RDIMMGCR0_QCSEN_MASK 0x40000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT 28 -#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK 0x30000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_SHIFT 28 +#define DDR_PHY_RDIMMGCR0_RESERVED_29_28_MASK 0x30000000U -/*RDIMM Outputs I/O Mode*/ +/* +* RDIMM Outputs I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT 27 -#define DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK 0x08000000U +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_SHIFT 27 +#define DDR_PHY_RDIMMGCR0_RDIMMIOM_MASK 0x08000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT 24 -#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK 0x07000000U +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_SHIFT 24 +#define DDR_PHY_RDIMMGCR0_RESERVED_26_24_MASK 0x07000000U -/*ERROUT# Output Enable*/ +/* +* ERROUT# Output Enable +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTOE_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT 23 -#define DDR_PHY_RDIMMGCR0_ERROUTOE_MASK 0x00800000U +#define DDR_PHY_RDIMMGCR0_ERROUTOE_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTOE_SHIFT 23 +#define DDR_PHY_RDIMMGCR0_ERROUTOE_MASK 0x00800000U -/*ERROUT# I/O Mode*/ +/* +* ERROUT# I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT 22 -#define DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK 0x00400000U +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_SHIFT 22 +#define DDR_PHY_RDIMMGCR0_ERROUTIOM_MASK 0x00400000U -/*ERROUT# Power Down Receiver*/ +/* +* ERROUT# Power Down Receiver +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT 21 -#define DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK 0x00200000U +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_SHIFT 21 +#define DDR_PHY_RDIMMGCR0_ERROUTPDR_MASK 0x00200000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_20_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT 20 -#define DDR_PHY_RDIMMGCR0_RESERVED_20_MASK 0x00100000U +#define DDR_PHY_RDIMMGCR0_RESERVED_20_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_20_SHIFT 20 +#define DDR_PHY_RDIMMGCR0_RESERVED_20_MASK 0x00100000U -/*ERROUT# On-Die Termination*/ +/* +* ERROUT# On-Die Termination +*/ #undef DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT #undef DDR_PHY_RDIMMGCR0_ERROUTODT_MASK -#define DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT 19 -#define DDR_PHY_RDIMMGCR0_ERROUTODT_MASK 0x00080000U +#define DDR_PHY_RDIMMGCR0_ERROUTODT_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERROUTODT_SHIFT 19 +#define DDR_PHY_RDIMMGCR0_ERROUTODT_MASK 0x00080000U -/*Load Reduced DIMM*/ +/* +* Load Reduced DIMM +*/ #undef DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL #undef DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT #undef DDR_PHY_RDIMMGCR0_LRDIMM_MASK -#define DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT 18 -#define DDR_PHY_RDIMMGCR0_LRDIMM_MASK 0x00040000U +#define DDR_PHY_RDIMMGCR0_LRDIMM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_LRDIMM_SHIFT 18 +#define DDR_PHY_RDIMMGCR0_LRDIMM_MASK 0x00040000U -/*PAR_IN I/O Mode*/ +/* +* PAR_IN I/O Mode +*/ #undef DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL #undef DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT #undef DDR_PHY_RDIMMGCR0_PARINIOM_MASK -#define DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT 17 -#define DDR_PHY_RDIMMGCR0_PARINIOM_MASK 0x00020000U +#define DDR_PHY_RDIMMGCR0_PARINIOM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_PARINIOM_SHIFT 17 +#define DDR_PHY_RDIMMGCR0_PARINIOM_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT 8 -#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK 0x0001FF00U +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_SHIFT 8 +#define DDR_PHY_RDIMMGCR0_RESERVED_16_8_MASK 0x0001FF00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT #undef DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT 6 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK 0x000000C0U +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_SHIFT 6 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_RSVD_MASK 0x000000C0U -/*Rank Mirror Enable.*/ +/* +* Rank Mirror Enable. +*/ #undef DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL #undef DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT #undef DDR_PHY_RDIMMGCR0_RNKMRREN_MASK -#define DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT 4 -#define DDR_PHY_RDIMMGCR0_RNKMRREN_MASK 0x00000030U +#define DDR_PHY_RDIMMGCR0_RNKMRREN_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_SHIFT 4 +#define DDR_PHY_RDIMMGCR0_RNKMRREN_MASK 0x00000030U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL #undef DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT #undef DDR_PHY_RDIMMGCR0_RESERVED_3_MASK -#define DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT 3 -#define DDR_PHY_RDIMMGCR0_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_RDIMMGCR0_RESERVED_3_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RESERVED_3_SHIFT 3 +#define DDR_PHY_RDIMMGCR0_RESERVED_3_MASK 0x00000008U -/*Stop on Parity Error*/ +/* +* Stop on Parity Error +*/ #undef DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL #undef DDR_PHY_RDIMMGCR0_SOPERR_SHIFT #undef DDR_PHY_RDIMMGCR0_SOPERR_MASK -#define DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_SOPERR_SHIFT 2 -#define DDR_PHY_RDIMMGCR0_SOPERR_MASK 0x00000004U +#define DDR_PHY_RDIMMGCR0_SOPERR_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_SOPERR_SHIFT 2 +#define DDR_PHY_RDIMMGCR0_SOPERR_MASK 0x00000004U -/*Parity Error No Registering*/ +/* +* Parity Error No Registering +*/ #undef DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL #undef DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT #undef DDR_PHY_RDIMMGCR0_ERRNOREG_MASK -#define DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT 1 -#define DDR_PHY_RDIMMGCR0_ERRNOREG_MASK 0x00000002U +#define DDR_PHY_RDIMMGCR0_ERRNOREG_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_ERRNOREG_SHIFT 1 +#define DDR_PHY_RDIMMGCR0_ERRNOREG_MASK 0x00000002U -/*Registered DIMM*/ +/* +* Registered DIMM +*/ #undef DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL #undef DDR_PHY_RDIMMGCR0_RDIMM_SHIFT #undef DDR_PHY_RDIMMGCR0_RDIMM_MASK -#define DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL 0x08400020 -#define DDR_PHY_RDIMMGCR0_RDIMM_SHIFT 0 -#define DDR_PHY_RDIMMGCR0_RDIMM_MASK 0x00000001U +#define DDR_PHY_RDIMMGCR0_RDIMM_DEFVAL 0x08400020 +#define DDR_PHY_RDIMMGCR0_RDIMM_SHIFT 0 +#define DDR_PHY_RDIMMGCR0_RDIMM_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_RDIMMGCR1_RESERVED_31_29_MASK 0xE0000000U -/*Address [17] B-side Inversion Disable*/ +/* +* Address [17] B-side Inversion Disable +*/ #undef DDR_PHY_RDIMMGCR1_A17BID_DEFVAL #undef DDR_PHY_RDIMMGCR1_A17BID_SHIFT #undef DDR_PHY_RDIMMGCR1_A17BID_MASK -#define DDR_PHY_RDIMMGCR1_A17BID_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_A17BID_SHIFT 28 -#define DDR_PHY_RDIMMGCR1_A17BID_MASK 0x10000000U +#define DDR_PHY_RDIMMGCR1_A17BID_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_A17BID_SHIFT 28 +#define DDR_PHY_RDIMMGCR1_A17BID_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_27_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT 27 -#define DDR_PHY_RDIMMGCR1_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_RDIMMGCR1_RESERVED_27_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_27_SHIFT 27 +#define DDR_PHY_RDIMMGCR1_RESERVED_27_MASK 0x08000000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT 24 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK 0x07000000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_SHIFT 24 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L2_MASK 0x07000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_23_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT 23 -#define DDR_PHY_RDIMMGCR1_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_RDIMMGCR1_RESERVED_23_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_23_SHIFT 23 +#define DDR_PHY_RDIMMGCR1_RESERVED_23_MASK 0x00800000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT 20 -#define DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK 0x00700000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_SHIFT 20 +#define DDR_PHY_RDIMMGCR1_TBCMRD_L_MASK 0x00700000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_19_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT 19 -#define DDR_PHY_RDIMMGCR1_RESERVED_19_MASK 0x00080000U +#define DDR_PHY_RDIMMGCR1_RESERVED_19_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_19_SHIFT 19 +#define DDR_PHY_RDIMMGCR1_RESERVED_19_MASK 0x00080000U -/*Command word to command word programming delay*/ +/* +* Command word to command word programming delay +*/ #undef DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCMRD_MASK -#define DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT 16 -#define DDR_PHY_RDIMMGCR1_TBCMRD_MASK 0x00070000U +#define DDR_PHY_RDIMMGCR1_TBCMRD_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCMRD_SHIFT 16 +#define DDR_PHY_RDIMMGCR1_TBCMRD_MASK 0x00070000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT #undef DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_RDIMMGCR1_RESERVED_15_14_MASK 0x0000C000U -/*Stabilization time*/ +/* +* Stabilization time +*/ #undef DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL #undef DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT #undef DDR_PHY_RDIMMGCR1_TBCSTAB_MASK -#define DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL 0x00000C80 -#define DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT 0 -#define DDR_PHY_RDIMMGCR1_TBCSTAB_MASK 0x00003FFFU +#define DDR_PHY_RDIMMGCR1_TBCSTAB_DEFVAL 0x00000C80 +#define DDR_PHY_RDIMMGCR1_TBCSTAB_SHIFT 0 +#define DDR_PHY_RDIMMGCR1_TBCSTAB_MASK 0x00003FFFU -/*DDR4/DDR3 Control Word 7*/ +/* +* DDR4/DDR3 Control Word 7 +*/ #undef DDR_PHY_RDIMMCR0_RC7_DEFVAL #undef DDR_PHY_RDIMMCR0_RC7_SHIFT #undef DDR_PHY_RDIMMCR0_RC7_MASK -#define DDR_PHY_RDIMMCR0_RC7_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC7_SHIFT 28 -#define DDR_PHY_RDIMMCR0_RC7_MASK 0xF0000000U +#define DDR_PHY_RDIMMCR0_RC7_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC7_SHIFT 28 +#define DDR_PHY_RDIMMCR0_RC7_MASK 0xF0000000U -/*DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 6 (Comman space Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR0_RC6_DEFVAL #undef DDR_PHY_RDIMMCR0_RC6_SHIFT #undef DDR_PHY_RDIMMCR0_RC6_MASK -#define DDR_PHY_RDIMMCR0_RC6_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC6_SHIFT 24 -#define DDR_PHY_RDIMMCR0_RC6_MASK 0x0F000000U +#define DDR_PHY_RDIMMCR0_RC6_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC6_SHIFT 24 +#define DDR_PHY_RDIMMCR0_RC6_MASK 0x0F000000U -/*DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word)*/ +/* +* DDR4/DDR3 Control Word 5 (CK Driver Characteristics Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC5_DEFVAL #undef DDR_PHY_RDIMMCR0_RC5_SHIFT #undef DDR_PHY_RDIMMCR0_RC5_MASK -#define DDR_PHY_RDIMMCR0_RC5_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC5_SHIFT 20 -#define DDR_PHY_RDIMMCR0_RC5_MASK 0x00F00000U +#define DDR_PHY_RDIMMCR0_RC5_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC5_SHIFT 20 +#define DDR_PHY_RDIMMCR0_RC5_MASK 0x00F00000U -/*DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control Word) / DDR3 Control Word 4 (Control Signals Driver C - aracteristics Control Word)*/ +/* +* DDR4 Control Word 4 (ODT and CKE Signals Driver Characteristics Control + * Word) / DDR3 Control Word 4 (Control Signals Driver Characteristics Cont + * rol Word) +*/ #undef DDR_PHY_RDIMMCR0_RC4_DEFVAL #undef DDR_PHY_RDIMMCR0_RC4_SHIFT #undef DDR_PHY_RDIMMCR0_RC4_MASK -#define DDR_PHY_RDIMMCR0_RC4_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC4_SHIFT 16 -#define DDR_PHY_RDIMMCR0_RC4_MASK 0x000F0000U +#define DDR_PHY_RDIMMCR0_RC4_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC4_SHIFT 16 +#define DDR_PHY_RDIMMCR0_RC4_MASK 0x000F0000U -/*DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Word) / DDR3 Control Word 3 (Command/Address Signals Dr - ver Characteristrics Control Word)*/ +/* +* DDR4 Control Word 3 (CA and CS Signals Driver Characteristics Control Wo + * rd) / DDR3 Control Word 3 (Command/Address Signals Driver Characteristri + * cs Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC3_DEFVAL #undef DDR_PHY_RDIMMCR0_RC3_SHIFT #undef DDR_PHY_RDIMMCR0_RC3_MASK -#define DDR_PHY_RDIMMCR0_RC3_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC3_SHIFT 12 -#define DDR_PHY_RDIMMCR0_RC3_MASK 0x0000F000U +#define DDR_PHY_RDIMMCR0_RC3_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC3_SHIFT 12 +#define DDR_PHY_RDIMMCR0_RC3_MASK 0x0000F000U -/*DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 (Timing Control Word)*/ +/* +* DDR4 Control Word 2 (Timing and IBT Control Word) / DDR3 Control Word 2 + * (Timing Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC2_DEFVAL #undef DDR_PHY_RDIMMCR0_RC2_SHIFT #undef DDR_PHY_RDIMMCR0_RC2_MASK -#define DDR_PHY_RDIMMCR0_RC2_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC2_SHIFT 8 -#define DDR_PHY_RDIMMCR0_RC2_MASK 0x00000F00U +#define DDR_PHY_RDIMMCR0_RC2_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC2_SHIFT 8 +#define DDR_PHY_RDIMMCR0_RC2_MASK 0x00000F00U -/*DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word)*/ +/* +* DDR4/DDR3 Control Word 1 (Clock Driver Enable Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC1_DEFVAL #undef DDR_PHY_RDIMMCR0_RC1_SHIFT #undef DDR_PHY_RDIMMCR0_RC1_MASK -#define DDR_PHY_RDIMMCR0_RC1_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC1_SHIFT 4 -#define DDR_PHY_RDIMMCR0_RC1_MASK 0x000000F0U +#define DDR_PHY_RDIMMCR0_RC1_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC1_SHIFT 4 +#define DDR_PHY_RDIMMCR0_RC1_MASK 0x000000F0U -/*DDR4/DDR3 Control Word 0 (Global Features Control Word)*/ +/* +* DDR4/DDR3 Control Word 0 (Global Features Control Word) +*/ #undef DDR_PHY_RDIMMCR0_RC0_DEFVAL #undef DDR_PHY_RDIMMCR0_RC0_SHIFT #undef DDR_PHY_RDIMMCR0_RC0_MASK -#define DDR_PHY_RDIMMCR0_RC0_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR0_RC0_SHIFT 0 -#define DDR_PHY_RDIMMCR0_RC0_MASK 0x0000000FU +#define DDR_PHY_RDIMMCR0_RC0_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR0_RC0_SHIFT 0 +#define DDR_PHY_RDIMMCR0_RC0_MASK 0x0000000FU -/*Control Word 15*/ +/* +* Control Word 15 +*/ #undef DDR_PHY_RDIMMCR1_RC15_DEFVAL #undef DDR_PHY_RDIMMCR1_RC15_SHIFT #undef DDR_PHY_RDIMMCR1_RC15_MASK -#define DDR_PHY_RDIMMCR1_RC15_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC15_SHIFT 28 -#define DDR_PHY_RDIMMCR1_RC15_MASK 0xF0000000U +#define DDR_PHY_RDIMMCR1_RC15_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC15_SHIFT 28 +#define DDR_PHY_RDIMMCR1_RC15_MASK 0xF0000000U -/*DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 14 (Parity Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC14_DEFVAL #undef DDR_PHY_RDIMMCR1_RC14_SHIFT #undef DDR_PHY_RDIMMCR1_RC14_MASK -#define DDR_PHY_RDIMMCR1_RC14_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC14_SHIFT 24 -#define DDR_PHY_RDIMMCR1_RC14_MASK 0x0F000000U +#define DDR_PHY_RDIMMCR1_RC14_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC14_SHIFT 24 +#define DDR_PHY_RDIMMCR1_RC14_MASK 0x0F000000U -/*DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 13 (DIMM Configuration Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC13_DEFVAL #undef DDR_PHY_RDIMMCR1_RC13_SHIFT #undef DDR_PHY_RDIMMCR1_RC13_MASK -#define DDR_PHY_RDIMMCR1_RC13_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC13_SHIFT 20 -#define DDR_PHY_RDIMMCR1_RC13_MASK 0x00F00000U +#define DDR_PHY_RDIMMCR1_RC13_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC13_SHIFT 20 +#define DDR_PHY_RDIMMCR1_RC13_MASK 0x00F00000U -/*DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved*/ +/* +* DDR4 Control Word 12 (Training Control Word) / DDR3 Reserved +*/ #undef DDR_PHY_RDIMMCR1_RC12_DEFVAL #undef DDR_PHY_RDIMMCR1_RC12_SHIFT #undef DDR_PHY_RDIMMCR1_RC12_MASK -#define DDR_PHY_RDIMMCR1_RC12_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC12_SHIFT 16 -#define DDR_PHY_RDIMMCR1_RC12_MASK 0x000F0000U +#define DDR_PHY_RDIMMCR1_RC12_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC12_SHIFT 16 +#define DDR_PHY_RDIMMCR1_RC12_MASK 0x000F0000U -/*DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Word) / DDR3 Control Word 11 (Operation Voltage VDD Con - rol Word)*/ +/* +* DDR4 Control Word 11 (Operating Voltage VDD and VREFCA Source Control Wo + * rd) / DDR3 Control Word 11 (Operation Voltage VDD Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC11_DEFVAL #undef DDR_PHY_RDIMMCR1_RC11_SHIFT #undef DDR_PHY_RDIMMCR1_RC11_MASK -#define DDR_PHY_RDIMMCR1_RC11_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC11_SHIFT 12 -#define DDR_PHY_RDIMMCR1_RC11_MASK 0x0000F000U +#define DDR_PHY_RDIMMCR1_RC11_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC11_SHIFT 12 +#define DDR_PHY_RDIMMCR1_RC11_MASK 0x0000F000U -/*DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word)*/ +/* +* DDR4/DDR3 Control Word 10 (RDIMM Operating Speed Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC10_DEFVAL #undef DDR_PHY_RDIMMCR1_RC10_SHIFT #undef DDR_PHY_RDIMMCR1_RC10_MASK -#define DDR_PHY_RDIMMCR1_RC10_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC10_SHIFT 8 -#define DDR_PHY_RDIMMCR1_RC10_MASK 0x00000F00U +#define DDR_PHY_RDIMMCR1_RC10_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC10_SHIFT 8 +#define DDR_PHY_RDIMMCR1_RC10_MASK 0x00000F00U -/*DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word)*/ +/* +* DDR4/DDR3 Control Word 9 (Power Saving Settings Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC9_DEFVAL #undef DDR_PHY_RDIMMCR1_RC9_SHIFT #undef DDR_PHY_RDIMMCR1_RC9_MASK -#define DDR_PHY_RDIMMCR1_RC9_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC9_SHIFT 4 -#define DDR_PHY_RDIMMCR1_RC9_MASK 0x000000F0U +#define DDR_PHY_RDIMMCR1_RC9_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC9_SHIFT 4 +#define DDR_PHY_RDIMMCR1_RC9_MASK 0x000000F0U -/*DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Control Word 8 (Additional Input Bus Termination Setting - Control Word)*/ +/* +* DDR4 Control Word 8 (Input/Output Configuration Control Word) / DDR3 Con + * trol Word 8 (Additional Input Bus Termination Setting Control Word) +*/ #undef DDR_PHY_RDIMMCR1_RC8_DEFVAL #undef DDR_PHY_RDIMMCR1_RC8_SHIFT #undef DDR_PHY_RDIMMCR1_RC8_MASK -#define DDR_PHY_RDIMMCR1_RC8_DEFVAL 0x00000000 -#define DDR_PHY_RDIMMCR1_RC8_SHIFT 0 -#define DDR_PHY_RDIMMCR1_RC8_MASK 0x0000000FU +#define DDR_PHY_RDIMMCR1_RC8_DEFVAL 0x00000000 +#define DDR_PHY_RDIMMCR1_RC8_SHIFT 0 +#define DDR_PHY_RDIMMCR1_RC8_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR0_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR0_RESERVED_31_8_SHIFT #undef DDR_PHY_MR0_RESERVED_31_8_MASK -#define DDR_PHY_MR0_RESERVED_31_8_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR0_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR0_RESERVED_31_8_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR0_RESERVED_31_8_MASK 0xFFFFFF00U -/*CA Terminating Rank*/ +/* +* CA Terminating Rank +*/ #undef DDR_PHY_MR0_CATR_DEFVAL #undef DDR_PHY_MR0_CATR_SHIFT #undef DDR_PHY_MR0_CATR_MASK -#define DDR_PHY_MR0_CATR_DEFVAL 0x00000052 -#define DDR_PHY_MR0_CATR_SHIFT 7 -#define DDR_PHY_MR0_CATR_MASK 0x00000080U +#define DDR_PHY_MR0_CATR_DEFVAL 0x00000052 +#define DDR_PHY_MR0_CATR_SHIFT 7 +#define DDR_PHY_MR0_CATR_MASK 0x00000080U -/*Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. +*/ #undef DDR_PHY_MR0_RSVD_6_5_DEFVAL #undef DDR_PHY_MR0_RSVD_6_5_SHIFT #undef DDR_PHY_MR0_RSVD_6_5_MASK -#define DDR_PHY_MR0_RSVD_6_5_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RSVD_6_5_SHIFT 5 -#define DDR_PHY_MR0_RSVD_6_5_MASK 0x00000060U +#define DDR_PHY_MR0_RSVD_6_5_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RSVD_6_5_SHIFT 5 +#define DDR_PHY_MR0_RSVD_6_5_MASK 0x00000060U -/*Built-in Self-Test for RZQ*/ +/* +* Built-in Self-Test for RZQ +*/ #undef DDR_PHY_MR0_RZQI_DEFVAL #undef DDR_PHY_MR0_RZQI_SHIFT #undef DDR_PHY_MR0_RZQI_MASK -#define DDR_PHY_MR0_RZQI_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RZQI_SHIFT 3 -#define DDR_PHY_MR0_RZQI_MASK 0x00000018U +#define DDR_PHY_MR0_RZQI_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RZQI_SHIFT 3 +#define DDR_PHY_MR0_RZQI_MASK 0x00000018U -/*Reserved. These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* Reserved. These are JEDEC reserved bits and are recommended by JEDEC to + * be programmed to 0x0. +*/ #undef DDR_PHY_MR0_RSVD_2_0_DEFVAL #undef DDR_PHY_MR0_RSVD_2_0_SHIFT #undef DDR_PHY_MR0_RSVD_2_0_MASK -#define DDR_PHY_MR0_RSVD_2_0_DEFVAL 0x00000052 -#define DDR_PHY_MR0_RSVD_2_0_SHIFT 0 -#define DDR_PHY_MR0_RSVD_2_0_MASK 0x00000007U +#define DDR_PHY_MR0_RSVD_2_0_DEFVAL 0x00000052 +#define DDR_PHY_MR0_RSVD_2_0_SHIFT 0 +#define DDR_PHY_MR0_RSVD_2_0_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR1_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR1_RESERVED_31_8_SHIFT #undef DDR_PHY_MR1_RESERVED_31_8_MASK -#define DDR_PHY_MR1_RESERVED_31_8_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR1_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR1_RESERVED_31_8_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR1_RESERVED_31_8_MASK 0xFFFFFF00U -/*Read Postamble Length*/ +/* +* Read Postamble Length +*/ #undef DDR_PHY_MR1_RDPST_DEFVAL #undef DDR_PHY_MR1_RDPST_SHIFT #undef DDR_PHY_MR1_RDPST_MASK -#define DDR_PHY_MR1_RDPST_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RDPST_SHIFT 7 -#define DDR_PHY_MR1_RDPST_MASK 0x00000080U +#define DDR_PHY_MR1_RDPST_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RDPST_SHIFT 7 +#define DDR_PHY_MR1_RDPST_MASK 0x00000080U -/*Write-recovery for auto-precharge command*/ +/* +* Write-recovery for auto-precharge command +*/ #undef DDR_PHY_MR1_NWR_DEFVAL #undef DDR_PHY_MR1_NWR_SHIFT #undef DDR_PHY_MR1_NWR_MASK -#define DDR_PHY_MR1_NWR_DEFVAL 0x00000004 -#define DDR_PHY_MR1_NWR_SHIFT 4 -#define DDR_PHY_MR1_NWR_MASK 0x00000070U +#define DDR_PHY_MR1_NWR_DEFVAL 0x00000004 +#define DDR_PHY_MR1_NWR_SHIFT 4 +#define DDR_PHY_MR1_NWR_MASK 0x00000070U -/*Read Preamble Length*/ +/* +* Read Preamble Length +*/ #undef DDR_PHY_MR1_RDPRE_DEFVAL #undef DDR_PHY_MR1_RDPRE_SHIFT #undef DDR_PHY_MR1_RDPRE_MASK -#define DDR_PHY_MR1_RDPRE_DEFVAL 0x00000004 -#define DDR_PHY_MR1_RDPRE_SHIFT 3 -#define DDR_PHY_MR1_RDPRE_MASK 0x00000008U +#define DDR_PHY_MR1_RDPRE_DEFVAL 0x00000004 +#define DDR_PHY_MR1_RDPRE_SHIFT 3 +#define DDR_PHY_MR1_RDPRE_MASK 0x00000008U -/*Write Preamble Length*/ +/* +* Write Preamble Length +*/ #undef DDR_PHY_MR1_WRPRE_DEFVAL #undef DDR_PHY_MR1_WRPRE_SHIFT #undef DDR_PHY_MR1_WRPRE_MASK -#define DDR_PHY_MR1_WRPRE_DEFVAL 0x00000004 -#define DDR_PHY_MR1_WRPRE_SHIFT 2 -#define DDR_PHY_MR1_WRPRE_MASK 0x00000004U +#define DDR_PHY_MR1_WRPRE_DEFVAL 0x00000004 +#define DDR_PHY_MR1_WRPRE_SHIFT 2 +#define DDR_PHY_MR1_WRPRE_MASK 0x00000004U -/*Burst Length*/ +/* +* Burst Length +*/ #undef DDR_PHY_MR1_BL_DEFVAL #undef DDR_PHY_MR1_BL_SHIFT #undef DDR_PHY_MR1_BL_MASK -#define DDR_PHY_MR1_BL_DEFVAL 0x00000004 -#define DDR_PHY_MR1_BL_SHIFT 0 -#define DDR_PHY_MR1_BL_MASK 0x00000003U +#define DDR_PHY_MR1_BL_DEFVAL 0x00000004 +#define DDR_PHY_MR1_BL_SHIFT 0 +#define DDR_PHY_MR1_BL_MASK 0x00000003U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR2_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR2_RESERVED_31_8_SHIFT #undef DDR_PHY_MR2_RESERVED_31_8_MASK -#define DDR_PHY_MR2_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR2_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR2_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR2_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR2_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR2_RESERVED_31_8_MASK 0xFFFFFF00U -/*Write Leveling*/ +/* +* Write Leveling +*/ #undef DDR_PHY_MR2_WRL_DEFVAL #undef DDR_PHY_MR2_WRL_SHIFT #undef DDR_PHY_MR2_WRL_MASK -#define DDR_PHY_MR2_WRL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WRL_SHIFT 7 -#define DDR_PHY_MR2_WRL_MASK 0x00000080U +#define DDR_PHY_MR2_WRL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WRL_SHIFT 7 +#define DDR_PHY_MR2_WRL_MASK 0x00000080U -/*Write Latency Set*/ +/* +* Write Latency Set +*/ #undef DDR_PHY_MR2_WLS_DEFVAL #undef DDR_PHY_MR2_WLS_SHIFT #undef DDR_PHY_MR2_WLS_MASK -#define DDR_PHY_MR2_WLS_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WLS_SHIFT 6 -#define DDR_PHY_MR2_WLS_MASK 0x00000040U +#define DDR_PHY_MR2_WLS_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WLS_SHIFT 6 +#define DDR_PHY_MR2_WLS_MASK 0x00000040U -/*Write Latency*/ +/* +* Write Latency +*/ #undef DDR_PHY_MR2_WL_DEFVAL #undef DDR_PHY_MR2_WL_SHIFT #undef DDR_PHY_MR2_WL_MASK -#define DDR_PHY_MR2_WL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_WL_SHIFT 3 -#define DDR_PHY_MR2_WL_MASK 0x00000038U +#define DDR_PHY_MR2_WL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_WL_SHIFT 3 +#define DDR_PHY_MR2_WL_MASK 0x00000038U -/*Read Latency*/ +/* +* Read Latency +*/ #undef DDR_PHY_MR2_RL_DEFVAL #undef DDR_PHY_MR2_RL_SHIFT #undef DDR_PHY_MR2_RL_MASK -#define DDR_PHY_MR2_RL_DEFVAL 0x00000000 -#define DDR_PHY_MR2_RL_SHIFT 0 -#define DDR_PHY_MR2_RL_MASK 0x00000007U +#define DDR_PHY_MR2_RL_DEFVAL 0x00000000 +#define DDR_PHY_MR2_RL_SHIFT 0 +#define DDR_PHY_MR2_RL_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR3_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR3_RESERVED_31_8_SHIFT #undef DDR_PHY_MR3_RESERVED_31_8_MASK -#define DDR_PHY_MR3_RESERVED_31_8_DEFVAL 0x00000031 -#define DDR_PHY_MR3_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR3_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR3_RESERVED_31_8_DEFVAL 0x00000031 +#define DDR_PHY_MR3_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR3_RESERVED_31_8_MASK 0xFFFFFF00U -/*DBI-Write Enable*/ +/* +* DBI-Write Enable +*/ #undef DDR_PHY_MR3_DBIWR_DEFVAL #undef DDR_PHY_MR3_DBIWR_SHIFT #undef DDR_PHY_MR3_DBIWR_MASK -#define DDR_PHY_MR3_DBIWR_DEFVAL 0x00000031 -#define DDR_PHY_MR3_DBIWR_SHIFT 7 -#define DDR_PHY_MR3_DBIWR_MASK 0x00000080U +#define DDR_PHY_MR3_DBIWR_DEFVAL 0x00000031 +#define DDR_PHY_MR3_DBIWR_SHIFT 7 +#define DDR_PHY_MR3_DBIWR_MASK 0x00000080U -/*DBI-Read Enable*/ +/* +* DBI-Read Enable +*/ #undef DDR_PHY_MR3_DBIRD_DEFVAL #undef DDR_PHY_MR3_DBIRD_SHIFT #undef DDR_PHY_MR3_DBIRD_MASK -#define DDR_PHY_MR3_DBIRD_DEFVAL 0x00000031 -#define DDR_PHY_MR3_DBIRD_SHIFT 6 -#define DDR_PHY_MR3_DBIRD_MASK 0x00000040U +#define DDR_PHY_MR3_DBIRD_DEFVAL 0x00000031 +#define DDR_PHY_MR3_DBIRD_SHIFT 6 +#define DDR_PHY_MR3_DBIRD_MASK 0x00000040U -/*Pull-down Drive Strength*/ +/* +* Pull-down Drive Strength +*/ #undef DDR_PHY_MR3_PDDS_DEFVAL #undef DDR_PHY_MR3_PDDS_SHIFT #undef DDR_PHY_MR3_PDDS_MASK -#define DDR_PHY_MR3_PDDS_DEFVAL 0x00000031 -#define DDR_PHY_MR3_PDDS_SHIFT 3 -#define DDR_PHY_MR3_PDDS_MASK 0x00000038U +#define DDR_PHY_MR3_PDDS_DEFVAL 0x00000031 +#define DDR_PHY_MR3_PDDS_SHIFT 3 +#define DDR_PHY_MR3_PDDS_MASK 0x00000038U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR3_RSVD_DEFVAL #undef DDR_PHY_MR3_RSVD_SHIFT #undef DDR_PHY_MR3_RSVD_MASK -#define DDR_PHY_MR3_RSVD_DEFVAL 0x00000031 -#define DDR_PHY_MR3_RSVD_SHIFT 2 -#define DDR_PHY_MR3_RSVD_MASK 0x00000004U +#define DDR_PHY_MR3_RSVD_DEFVAL 0x00000031 +#define DDR_PHY_MR3_RSVD_SHIFT 2 +#define DDR_PHY_MR3_RSVD_MASK 0x00000004U -/*Write Postamble Length*/ +/* +* Write Postamble Length +*/ #undef DDR_PHY_MR3_WRPST_DEFVAL #undef DDR_PHY_MR3_WRPST_SHIFT #undef DDR_PHY_MR3_WRPST_MASK -#define DDR_PHY_MR3_WRPST_DEFVAL 0x00000031 -#define DDR_PHY_MR3_WRPST_SHIFT 1 -#define DDR_PHY_MR3_WRPST_MASK 0x00000002U +#define DDR_PHY_MR3_WRPST_DEFVAL 0x00000031 +#define DDR_PHY_MR3_WRPST_SHIFT 1 +#define DDR_PHY_MR3_WRPST_MASK 0x00000002U -/*Pull-up Calibration Point*/ +/* +* Pull-up Calibration Point +*/ #undef DDR_PHY_MR3_PUCAL_DEFVAL #undef DDR_PHY_MR3_PUCAL_SHIFT #undef DDR_PHY_MR3_PUCAL_MASK -#define DDR_PHY_MR3_PUCAL_DEFVAL 0x00000031 -#define DDR_PHY_MR3_PUCAL_SHIFT 0 -#define DDR_PHY_MR3_PUCAL_MASK 0x00000001U +#define DDR_PHY_MR3_PUCAL_DEFVAL 0x00000031 +#define DDR_PHY_MR3_PUCAL_SHIFT 0 +#define DDR_PHY_MR3_PUCAL_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR4_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR4_RESERVED_31_16_SHIFT #undef DDR_PHY_MR4_RESERVED_31_16_MASK -#define DDR_PHY_MR4_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR4_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR4_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR4_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR4_RSVD_15_13_DEFVAL #undef DDR_PHY_MR4_RSVD_15_13_SHIFT #undef DDR_PHY_MR4_RSVD_15_13_MASK -#define DDR_PHY_MR4_RSVD_15_13_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD_15_13_SHIFT 13 -#define DDR_PHY_MR4_RSVD_15_13_MASK 0x0000E000U +#define DDR_PHY_MR4_RSVD_15_13_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD_15_13_SHIFT 13 +#define DDR_PHY_MR4_RSVD_15_13_MASK 0x0000E000U -/*Write Preamble*/ +/* +* Write Preamble +*/ #undef DDR_PHY_MR4_WRP_DEFVAL #undef DDR_PHY_MR4_WRP_SHIFT #undef DDR_PHY_MR4_WRP_MASK -#define DDR_PHY_MR4_WRP_DEFVAL 0x00000000 -#define DDR_PHY_MR4_WRP_SHIFT 12 -#define DDR_PHY_MR4_WRP_MASK 0x00001000U +#define DDR_PHY_MR4_WRP_DEFVAL 0x00000000 +#define DDR_PHY_MR4_WRP_SHIFT 12 +#define DDR_PHY_MR4_WRP_MASK 0x00001000U -/*Read Preamble*/ +/* +* Read Preamble +*/ #undef DDR_PHY_MR4_RDP_DEFVAL #undef DDR_PHY_MR4_RDP_SHIFT #undef DDR_PHY_MR4_RDP_MASK -#define DDR_PHY_MR4_RDP_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RDP_SHIFT 11 -#define DDR_PHY_MR4_RDP_MASK 0x00000800U +#define DDR_PHY_MR4_RDP_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RDP_SHIFT 11 +#define DDR_PHY_MR4_RDP_MASK 0x00000800U -/*Read Preamble Training Mode*/ +/* +* Read Preamble Training Mode +*/ #undef DDR_PHY_MR4_RPTM_DEFVAL #undef DDR_PHY_MR4_RPTM_SHIFT #undef DDR_PHY_MR4_RPTM_MASK -#define DDR_PHY_MR4_RPTM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RPTM_SHIFT 10 -#define DDR_PHY_MR4_RPTM_MASK 0x00000400U +#define DDR_PHY_MR4_RPTM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RPTM_SHIFT 10 +#define DDR_PHY_MR4_RPTM_MASK 0x00000400U -/*Self Refresh Abort*/ +/* +* Self Refresh Abort +*/ #undef DDR_PHY_MR4_SRA_DEFVAL #undef DDR_PHY_MR4_SRA_SHIFT #undef DDR_PHY_MR4_SRA_MASK -#define DDR_PHY_MR4_SRA_DEFVAL 0x00000000 -#define DDR_PHY_MR4_SRA_SHIFT 9 -#define DDR_PHY_MR4_SRA_MASK 0x00000200U +#define DDR_PHY_MR4_SRA_DEFVAL 0x00000000 +#define DDR_PHY_MR4_SRA_SHIFT 9 +#define DDR_PHY_MR4_SRA_MASK 0x00000200U -/*CS to Command Latency Mode*/ +/* +* CS to Command Latency Mode +*/ #undef DDR_PHY_MR4_CS2CMDL_DEFVAL #undef DDR_PHY_MR4_CS2CMDL_SHIFT #undef DDR_PHY_MR4_CS2CMDL_MASK -#define DDR_PHY_MR4_CS2CMDL_DEFVAL 0x00000000 -#define DDR_PHY_MR4_CS2CMDL_SHIFT 6 -#define DDR_PHY_MR4_CS2CMDL_MASK 0x000001C0U +#define DDR_PHY_MR4_CS2CMDL_DEFVAL 0x00000000 +#define DDR_PHY_MR4_CS2CMDL_SHIFT 6 +#define DDR_PHY_MR4_CS2CMDL_MASK 0x000001C0U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR4_RSVD1_DEFVAL #undef DDR_PHY_MR4_RSVD1_SHIFT #undef DDR_PHY_MR4_RSVD1_MASK -#define DDR_PHY_MR4_RSVD1_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD1_SHIFT 5 -#define DDR_PHY_MR4_RSVD1_MASK 0x00000020U +#define DDR_PHY_MR4_RSVD1_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD1_SHIFT 5 +#define DDR_PHY_MR4_RSVD1_MASK 0x00000020U -/*Internal VREF Monitor*/ +/* +* Internal VREF Monitor +*/ #undef DDR_PHY_MR4_IVM_DEFVAL #undef DDR_PHY_MR4_IVM_SHIFT #undef DDR_PHY_MR4_IVM_MASK -#define DDR_PHY_MR4_IVM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_IVM_SHIFT 4 -#define DDR_PHY_MR4_IVM_MASK 0x00000010U +#define DDR_PHY_MR4_IVM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_IVM_SHIFT 4 +#define DDR_PHY_MR4_IVM_MASK 0x00000010U -/*Temperature Controlled Refresh Mode*/ +/* +* Temperature Controlled Refresh Mode +*/ #undef DDR_PHY_MR4_TCRM_DEFVAL #undef DDR_PHY_MR4_TCRM_SHIFT #undef DDR_PHY_MR4_TCRM_MASK -#define DDR_PHY_MR4_TCRM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_TCRM_SHIFT 3 -#define DDR_PHY_MR4_TCRM_MASK 0x00000008U +#define DDR_PHY_MR4_TCRM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_TCRM_SHIFT 3 +#define DDR_PHY_MR4_TCRM_MASK 0x00000008U -/*Temperature Controlled Refresh Range*/ +/* +* Temperature Controlled Refresh Range +*/ #undef DDR_PHY_MR4_TCRR_DEFVAL #undef DDR_PHY_MR4_TCRR_SHIFT #undef DDR_PHY_MR4_TCRR_MASK -#define DDR_PHY_MR4_TCRR_DEFVAL 0x00000000 -#define DDR_PHY_MR4_TCRR_SHIFT 2 -#define DDR_PHY_MR4_TCRR_MASK 0x00000004U +#define DDR_PHY_MR4_TCRR_DEFVAL 0x00000000 +#define DDR_PHY_MR4_TCRR_SHIFT 2 +#define DDR_PHY_MR4_TCRR_MASK 0x00000004U -/*Maximum Power Down Mode*/ +/* +* Maximum Power Down Mode +*/ #undef DDR_PHY_MR4_MPDM_DEFVAL #undef DDR_PHY_MR4_MPDM_SHIFT #undef DDR_PHY_MR4_MPDM_MASK -#define DDR_PHY_MR4_MPDM_DEFVAL 0x00000000 -#define DDR_PHY_MR4_MPDM_SHIFT 1 -#define DDR_PHY_MR4_MPDM_MASK 0x00000002U +#define DDR_PHY_MR4_MPDM_DEFVAL 0x00000000 +#define DDR_PHY_MR4_MPDM_SHIFT 1 +#define DDR_PHY_MR4_MPDM_MASK 0x00000002U -/*This is a JEDEC reserved bit and is recommended by JEDEC to be programmed to 0x0.*/ +/* +* This is a JEDEC reserved bit and is recommended by JEDEC to be programme + * d to 0x0. +*/ #undef DDR_PHY_MR4_RSVD_0_DEFVAL #undef DDR_PHY_MR4_RSVD_0_SHIFT #undef DDR_PHY_MR4_RSVD_0_MASK -#define DDR_PHY_MR4_RSVD_0_DEFVAL 0x00000000 -#define DDR_PHY_MR4_RSVD_0_SHIFT 0 -#define DDR_PHY_MR4_RSVD_0_MASK 0x00000001U +#define DDR_PHY_MR4_RSVD_0_DEFVAL 0x00000000 +#define DDR_PHY_MR4_RSVD_0_SHIFT 0 +#define DDR_PHY_MR4_RSVD_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR5_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR5_RESERVED_31_16_SHIFT #undef DDR_PHY_MR5_RESERVED_31_16_MASK -#define DDR_PHY_MR5_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR5_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR5_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR5_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR5_RSVD_DEFVAL #undef DDR_PHY_MR5_RSVD_SHIFT #undef DDR_PHY_MR5_RSVD_MASK -#define DDR_PHY_MR5_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RSVD_SHIFT 13 -#define DDR_PHY_MR5_RSVD_MASK 0x0000E000U +#define DDR_PHY_MR5_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RSVD_SHIFT 13 +#define DDR_PHY_MR5_RSVD_MASK 0x0000E000U -/*Read DBI*/ +/* +* Read DBI +*/ #undef DDR_PHY_MR5_RDBI_DEFVAL #undef DDR_PHY_MR5_RDBI_SHIFT #undef DDR_PHY_MR5_RDBI_MASK -#define DDR_PHY_MR5_RDBI_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RDBI_SHIFT 12 -#define DDR_PHY_MR5_RDBI_MASK 0x00001000U +#define DDR_PHY_MR5_RDBI_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RDBI_SHIFT 12 +#define DDR_PHY_MR5_RDBI_MASK 0x00001000U -/*Write DBI*/ +/* +* Write DBI +*/ #undef DDR_PHY_MR5_WDBI_DEFVAL #undef DDR_PHY_MR5_WDBI_SHIFT #undef DDR_PHY_MR5_WDBI_MASK -#define DDR_PHY_MR5_WDBI_DEFVAL 0x00000000 -#define DDR_PHY_MR5_WDBI_SHIFT 11 -#define DDR_PHY_MR5_WDBI_MASK 0x00000800U +#define DDR_PHY_MR5_WDBI_DEFVAL 0x00000000 +#define DDR_PHY_MR5_WDBI_SHIFT 11 +#define DDR_PHY_MR5_WDBI_MASK 0x00000800U -/*Data Mask*/ +/* +* Data Mask +*/ #undef DDR_PHY_MR5_DM_DEFVAL #undef DDR_PHY_MR5_DM_SHIFT #undef DDR_PHY_MR5_DM_MASK -#define DDR_PHY_MR5_DM_DEFVAL 0x00000000 -#define DDR_PHY_MR5_DM_SHIFT 10 -#define DDR_PHY_MR5_DM_MASK 0x00000400U +#define DDR_PHY_MR5_DM_DEFVAL 0x00000000 +#define DDR_PHY_MR5_DM_SHIFT 10 +#define DDR_PHY_MR5_DM_MASK 0x00000400U -/*CA Parity Persistent Error*/ +/* +* CA Parity Persistent Error +*/ #undef DDR_PHY_MR5_CAPPE_DEFVAL #undef DDR_PHY_MR5_CAPPE_SHIFT #undef DDR_PHY_MR5_CAPPE_MASK -#define DDR_PHY_MR5_CAPPE_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPPE_SHIFT 9 -#define DDR_PHY_MR5_CAPPE_MASK 0x00000200U +#define DDR_PHY_MR5_CAPPE_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPPE_SHIFT 9 +#define DDR_PHY_MR5_CAPPE_MASK 0x00000200U -/*RTT_PARK*/ +/* +* RTT_PARK +*/ #undef DDR_PHY_MR5_RTTPARK_DEFVAL #undef DDR_PHY_MR5_RTTPARK_SHIFT #undef DDR_PHY_MR5_RTTPARK_MASK -#define DDR_PHY_MR5_RTTPARK_DEFVAL 0x00000000 -#define DDR_PHY_MR5_RTTPARK_SHIFT 6 -#define DDR_PHY_MR5_RTTPARK_MASK 0x000001C0U +#define DDR_PHY_MR5_RTTPARK_DEFVAL 0x00000000 +#define DDR_PHY_MR5_RTTPARK_SHIFT 6 +#define DDR_PHY_MR5_RTTPARK_MASK 0x000001C0U -/*ODT Input Buffer during Power Down mode*/ +/* +* ODT Input Buffer during Power Down mode +*/ #undef DDR_PHY_MR5_ODTIBPD_DEFVAL #undef DDR_PHY_MR5_ODTIBPD_SHIFT #undef DDR_PHY_MR5_ODTIBPD_MASK -#define DDR_PHY_MR5_ODTIBPD_DEFVAL 0x00000000 -#define DDR_PHY_MR5_ODTIBPD_SHIFT 5 -#define DDR_PHY_MR5_ODTIBPD_MASK 0x00000020U +#define DDR_PHY_MR5_ODTIBPD_DEFVAL 0x00000000 +#define DDR_PHY_MR5_ODTIBPD_SHIFT 5 +#define DDR_PHY_MR5_ODTIBPD_MASK 0x00000020U -/*C/A Parity Error Status*/ +/* +* C/A Parity Error Status +*/ #undef DDR_PHY_MR5_CAPES_DEFVAL #undef DDR_PHY_MR5_CAPES_SHIFT #undef DDR_PHY_MR5_CAPES_MASK -#define DDR_PHY_MR5_CAPES_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPES_SHIFT 4 -#define DDR_PHY_MR5_CAPES_MASK 0x00000010U +#define DDR_PHY_MR5_CAPES_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPES_SHIFT 4 +#define DDR_PHY_MR5_CAPES_MASK 0x00000010U -/*CRC Error Clear*/ +/* +* CRC Error Clear +*/ #undef DDR_PHY_MR5_CRCEC_DEFVAL #undef DDR_PHY_MR5_CRCEC_SHIFT #undef DDR_PHY_MR5_CRCEC_MASK -#define DDR_PHY_MR5_CRCEC_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CRCEC_SHIFT 3 -#define DDR_PHY_MR5_CRCEC_MASK 0x00000008U +#define DDR_PHY_MR5_CRCEC_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CRCEC_SHIFT 3 +#define DDR_PHY_MR5_CRCEC_MASK 0x00000008U -/*C/A Parity Latency Mode*/ +/* +* C/A Parity Latency Mode +*/ #undef DDR_PHY_MR5_CAPM_DEFVAL #undef DDR_PHY_MR5_CAPM_SHIFT #undef DDR_PHY_MR5_CAPM_MASK -#define DDR_PHY_MR5_CAPM_DEFVAL 0x00000000 -#define DDR_PHY_MR5_CAPM_SHIFT 0 -#define DDR_PHY_MR5_CAPM_MASK 0x00000007U +#define DDR_PHY_MR5_CAPM_DEFVAL 0x00000000 +#define DDR_PHY_MR5_CAPM_SHIFT 0 +#define DDR_PHY_MR5_CAPM_MASK 0x00000007U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR6_RESERVED_31_16_DEFVAL #undef DDR_PHY_MR6_RESERVED_31_16_SHIFT #undef DDR_PHY_MR6_RESERVED_31_16_MASK -#define DDR_PHY_MR6_RESERVED_31_16_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_MR6_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_MR6_RESERVED_31_16_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_MR6_RESERVED_31_16_MASK 0xFFFF0000U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR6_RSVD_15_13_DEFVAL #undef DDR_PHY_MR6_RSVD_15_13_SHIFT #undef DDR_PHY_MR6_RSVD_15_13_MASK -#define DDR_PHY_MR6_RSVD_15_13_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RSVD_15_13_SHIFT 13 -#define DDR_PHY_MR6_RSVD_15_13_MASK 0x0000E000U +#define DDR_PHY_MR6_RSVD_15_13_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RSVD_15_13_SHIFT 13 +#define DDR_PHY_MR6_RSVD_15_13_MASK 0x0000E000U -/*CAS_n to CAS_n command delay for same bank group (tCCD_L)*/ +/* +* CAS_n to CAS_n command delay for same bank group (tCCD_L) +*/ #undef DDR_PHY_MR6_TCCDL_DEFVAL #undef DDR_PHY_MR6_TCCDL_SHIFT #undef DDR_PHY_MR6_TCCDL_MASK -#define DDR_PHY_MR6_TCCDL_DEFVAL 0x00000000 -#define DDR_PHY_MR6_TCCDL_SHIFT 10 -#define DDR_PHY_MR6_TCCDL_MASK 0x00001C00U +#define DDR_PHY_MR6_TCCDL_DEFVAL 0x00000000 +#define DDR_PHY_MR6_TCCDL_SHIFT 10 +#define DDR_PHY_MR6_TCCDL_MASK 0x00001C00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR6_RSVD_9_8_DEFVAL #undef DDR_PHY_MR6_RSVD_9_8_SHIFT #undef DDR_PHY_MR6_RSVD_9_8_MASK -#define DDR_PHY_MR6_RSVD_9_8_DEFVAL 0x00000000 -#define DDR_PHY_MR6_RSVD_9_8_SHIFT 8 -#define DDR_PHY_MR6_RSVD_9_8_MASK 0x00000300U +#define DDR_PHY_MR6_RSVD_9_8_DEFVAL 0x00000000 +#define DDR_PHY_MR6_RSVD_9_8_SHIFT 8 +#define DDR_PHY_MR6_RSVD_9_8_MASK 0x00000300U -/*VrefDQ Training Enable*/ +/* +* VrefDQ Training Enable +*/ #undef DDR_PHY_MR6_VDDQTEN_DEFVAL #undef DDR_PHY_MR6_VDDQTEN_SHIFT #undef DDR_PHY_MR6_VDDQTEN_MASK -#define DDR_PHY_MR6_VDDQTEN_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDDQTEN_SHIFT 7 -#define DDR_PHY_MR6_VDDQTEN_MASK 0x00000080U +#define DDR_PHY_MR6_VDDQTEN_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDDQTEN_SHIFT 7 +#define DDR_PHY_MR6_VDDQTEN_MASK 0x00000080U -/*VrefDQ Training Range*/ +/* +* VrefDQ Training Range +*/ #undef DDR_PHY_MR6_VDQTRG_DEFVAL #undef DDR_PHY_MR6_VDQTRG_SHIFT #undef DDR_PHY_MR6_VDQTRG_MASK -#define DDR_PHY_MR6_VDQTRG_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDQTRG_SHIFT 6 -#define DDR_PHY_MR6_VDQTRG_MASK 0x00000040U +#define DDR_PHY_MR6_VDQTRG_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDQTRG_SHIFT 6 +#define DDR_PHY_MR6_VDQTRG_MASK 0x00000040U -/*VrefDQ Training Values*/ +/* +* VrefDQ Training Values +*/ #undef DDR_PHY_MR6_VDQTVAL_DEFVAL #undef DDR_PHY_MR6_VDQTVAL_SHIFT #undef DDR_PHY_MR6_VDQTVAL_MASK -#define DDR_PHY_MR6_VDQTVAL_DEFVAL 0x00000000 -#define DDR_PHY_MR6_VDQTVAL_SHIFT 0 -#define DDR_PHY_MR6_VDQTVAL_MASK 0x0000003FU +#define DDR_PHY_MR6_VDQTVAL_DEFVAL 0x00000000 +#define DDR_PHY_MR6_VDQTVAL_SHIFT 0 +#define DDR_PHY_MR6_VDQTVAL_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR11_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR11_RESERVED_31_8_SHIFT #undef DDR_PHY_MR11_RESERVED_31_8_MASK -#define DDR_PHY_MR11_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR11_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR11_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR11_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR11_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR11_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR11_RSVD_DEFVAL #undef DDR_PHY_MR11_RSVD_SHIFT #undef DDR_PHY_MR11_RSVD_MASK -#define DDR_PHY_MR11_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR11_RSVD_SHIFT 3 -#define DDR_PHY_MR11_RSVD_MASK 0x000000F8U +#define DDR_PHY_MR11_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR11_RSVD_SHIFT 3 +#define DDR_PHY_MR11_RSVD_MASK 0x000000F8U -/*Power Down Control*/ +/* +* Power Down Control +*/ #undef DDR_PHY_MR11_PDCTL_DEFVAL #undef DDR_PHY_MR11_PDCTL_SHIFT #undef DDR_PHY_MR11_PDCTL_MASK -#define DDR_PHY_MR11_PDCTL_DEFVAL 0x00000000 -#define DDR_PHY_MR11_PDCTL_SHIFT 2 -#define DDR_PHY_MR11_PDCTL_MASK 0x00000004U +#define DDR_PHY_MR11_PDCTL_DEFVAL 0x00000000 +#define DDR_PHY_MR11_PDCTL_SHIFT 2 +#define DDR_PHY_MR11_PDCTL_MASK 0x00000004U -/*DQ Bus Receiver On-Die-Termination*/ +/* +* DQ Bus Receiver On-Die-Termination +*/ #undef DDR_PHY_MR11_DQODT_DEFVAL #undef DDR_PHY_MR11_DQODT_SHIFT #undef DDR_PHY_MR11_DQODT_MASK -#define DDR_PHY_MR11_DQODT_DEFVAL 0x00000000 -#define DDR_PHY_MR11_DQODT_SHIFT 0 -#define DDR_PHY_MR11_DQODT_MASK 0x00000003U +#define DDR_PHY_MR11_DQODT_DEFVAL 0x00000000 +#define DDR_PHY_MR11_DQODT_SHIFT 0 +#define DDR_PHY_MR11_DQODT_MASK 0x00000003U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR12_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR12_RESERVED_31_8_SHIFT #undef DDR_PHY_MR12_RESERVED_31_8_MASK -#define DDR_PHY_MR12_RESERVED_31_8_DEFVAL 0x0000004D -#define DDR_PHY_MR12_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR12_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR12_RESERVED_31_8_DEFVAL 0x0000004D +#define DDR_PHY_MR12_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR12_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR12_RSVD_DEFVAL #undef DDR_PHY_MR12_RSVD_SHIFT #undef DDR_PHY_MR12_RSVD_MASK -#define DDR_PHY_MR12_RSVD_DEFVAL 0x0000004D -#define DDR_PHY_MR12_RSVD_SHIFT 7 -#define DDR_PHY_MR12_RSVD_MASK 0x00000080U +#define DDR_PHY_MR12_RSVD_DEFVAL 0x0000004D +#define DDR_PHY_MR12_RSVD_SHIFT 7 +#define DDR_PHY_MR12_RSVD_MASK 0x00000080U -/*VREF_CA Range Select.*/ +/* +* VREF_CA Range Select. +*/ #undef DDR_PHY_MR12_VR_CA_DEFVAL #undef DDR_PHY_MR12_VR_CA_SHIFT #undef DDR_PHY_MR12_VR_CA_MASK -#define DDR_PHY_MR12_VR_CA_DEFVAL 0x0000004D -#define DDR_PHY_MR12_VR_CA_SHIFT 6 -#define DDR_PHY_MR12_VR_CA_MASK 0x00000040U +#define DDR_PHY_MR12_VR_CA_DEFVAL 0x0000004D +#define DDR_PHY_MR12_VR_CA_SHIFT 6 +#define DDR_PHY_MR12_VR_CA_MASK 0x00000040U -/*Controls the VREF(ca) levels for Frequency-Set-Point[1:0].*/ +/* +* Controls the VREF(ca) levels for Frequency-Set-Point[1:0]. +*/ #undef DDR_PHY_MR12_VREF_CA_DEFVAL #undef DDR_PHY_MR12_VREF_CA_SHIFT #undef DDR_PHY_MR12_VREF_CA_MASK -#define DDR_PHY_MR12_VREF_CA_DEFVAL 0x0000004D -#define DDR_PHY_MR12_VREF_CA_SHIFT 0 -#define DDR_PHY_MR12_VREF_CA_MASK 0x0000003FU +#define DDR_PHY_MR12_VREF_CA_DEFVAL 0x0000004D +#define DDR_PHY_MR12_VREF_CA_SHIFT 0 +#define DDR_PHY_MR12_VREF_CA_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR13_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR13_RESERVED_31_8_SHIFT #undef DDR_PHY_MR13_RESERVED_31_8_MASK -#define DDR_PHY_MR13_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR13_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR13_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR13_RESERVED_31_8_MASK 0xFFFFFF00U -/*Frequency Set Point Operation Mode*/ +/* +* Frequency Set Point Operation Mode +*/ #undef DDR_PHY_MR13_FSPOP_DEFVAL #undef DDR_PHY_MR13_FSPOP_SHIFT #undef DDR_PHY_MR13_FSPOP_MASK -#define DDR_PHY_MR13_FSPOP_DEFVAL 0x00000000 -#define DDR_PHY_MR13_FSPOP_SHIFT 7 -#define DDR_PHY_MR13_FSPOP_MASK 0x00000080U +#define DDR_PHY_MR13_FSPOP_DEFVAL 0x00000000 +#define DDR_PHY_MR13_FSPOP_SHIFT 7 +#define DDR_PHY_MR13_FSPOP_MASK 0x00000080U -/*Frequency Set Point Write Enable*/ +/* +* Frequency Set Point Write Enable +*/ #undef DDR_PHY_MR13_FSPWR_DEFVAL #undef DDR_PHY_MR13_FSPWR_SHIFT #undef DDR_PHY_MR13_FSPWR_MASK -#define DDR_PHY_MR13_FSPWR_DEFVAL 0x00000000 -#define DDR_PHY_MR13_FSPWR_SHIFT 6 -#define DDR_PHY_MR13_FSPWR_MASK 0x00000040U +#define DDR_PHY_MR13_FSPWR_DEFVAL 0x00000000 +#define DDR_PHY_MR13_FSPWR_SHIFT 6 +#define DDR_PHY_MR13_FSPWR_MASK 0x00000040U -/*Data Mask Enable*/ +/* +* Data Mask Enable +*/ #undef DDR_PHY_MR13_DMD_DEFVAL #undef DDR_PHY_MR13_DMD_SHIFT #undef DDR_PHY_MR13_DMD_MASK -#define DDR_PHY_MR13_DMD_DEFVAL 0x00000000 -#define DDR_PHY_MR13_DMD_SHIFT 5 -#define DDR_PHY_MR13_DMD_MASK 0x00000020U +#define DDR_PHY_MR13_DMD_DEFVAL 0x00000000 +#define DDR_PHY_MR13_DMD_SHIFT 5 +#define DDR_PHY_MR13_DMD_MASK 0x00000020U -/*Refresh Rate Option*/ +/* +* Refresh Rate Option +*/ #undef DDR_PHY_MR13_RRO_DEFVAL #undef DDR_PHY_MR13_RRO_SHIFT #undef DDR_PHY_MR13_RRO_MASK -#define DDR_PHY_MR13_RRO_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RRO_SHIFT 4 -#define DDR_PHY_MR13_RRO_MASK 0x00000010U +#define DDR_PHY_MR13_RRO_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RRO_SHIFT 4 +#define DDR_PHY_MR13_RRO_MASK 0x00000010U -/*VREF Current Generator*/ +/* +* VREF Current Generator +*/ #undef DDR_PHY_MR13_VRCG_DEFVAL #undef DDR_PHY_MR13_VRCG_SHIFT #undef DDR_PHY_MR13_VRCG_MASK -#define DDR_PHY_MR13_VRCG_DEFVAL 0x00000000 -#define DDR_PHY_MR13_VRCG_SHIFT 3 -#define DDR_PHY_MR13_VRCG_MASK 0x00000008U +#define DDR_PHY_MR13_VRCG_DEFVAL 0x00000000 +#define DDR_PHY_MR13_VRCG_SHIFT 3 +#define DDR_PHY_MR13_VRCG_MASK 0x00000008U -/*VREF Output*/ +/* +* VREF Output +*/ #undef DDR_PHY_MR13_VRO_DEFVAL #undef DDR_PHY_MR13_VRO_SHIFT #undef DDR_PHY_MR13_VRO_MASK -#define DDR_PHY_MR13_VRO_DEFVAL 0x00000000 -#define DDR_PHY_MR13_VRO_SHIFT 2 -#define DDR_PHY_MR13_VRO_MASK 0x00000004U +#define DDR_PHY_MR13_VRO_DEFVAL 0x00000000 +#define DDR_PHY_MR13_VRO_SHIFT 2 +#define DDR_PHY_MR13_VRO_MASK 0x00000004U -/*Read Preamble Training Mode*/ +/* +* Read Preamble Training Mode +*/ #undef DDR_PHY_MR13_RPT_DEFVAL #undef DDR_PHY_MR13_RPT_SHIFT #undef DDR_PHY_MR13_RPT_MASK -#define DDR_PHY_MR13_RPT_DEFVAL 0x00000000 -#define DDR_PHY_MR13_RPT_SHIFT 1 -#define DDR_PHY_MR13_RPT_MASK 0x00000002U +#define DDR_PHY_MR13_RPT_DEFVAL 0x00000000 +#define DDR_PHY_MR13_RPT_SHIFT 1 +#define DDR_PHY_MR13_RPT_MASK 0x00000002U -/*Command Bus Training*/ +/* +* Command Bus Training +*/ #undef DDR_PHY_MR13_CBT_DEFVAL #undef DDR_PHY_MR13_CBT_SHIFT #undef DDR_PHY_MR13_CBT_MASK -#define DDR_PHY_MR13_CBT_DEFVAL 0x00000000 -#define DDR_PHY_MR13_CBT_SHIFT 0 -#define DDR_PHY_MR13_CBT_MASK 0x00000001U +#define DDR_PHY_MR13_CBT_DEFVAL 0x00000000 +#define DDR_PHY_MR13_CBT_SHIFT 0 +#define DDR_PHY_MR13_CBT_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR14_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR14_RESERVED_31_8_SHIFT #undef DDR_PHY_MR14_RESERVED_31_8_MASK -#define DDR_PHY_MR14_RESERVED_31_8_DEFVAL 0x0000004D -#define DDR_PHY_MR14_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR14_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR14_RESERVED_31_8_DEFVAL 0x0000004D +#define DDR_PHY_MR14_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR14_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR14_RSVD_DEFVAL #undef DDR_PHY_MR14_RSVD_SHIFT #undef DDR_PHY_MR14_RSVD_MASK -#define DDR_PHY_MR14_RSVD_DEFVAL 0x0000004D -#define DDR_PHY_MR14_RSVD_SHIFT 7 -#define DDR_PHY_MR14_RSVD_MASK 0x00000080U +#define DDR_PHY_MR14_RSVD_DEFVAL 0x0000004D +#define DDR_PHY_MR14_RSVD_SHIFT 7 +#define DDR_PHY_MR14_RSVD_MASK 0x00000080U -/*VREFDQ Range Selects.*/ +/* +* VREFDQ Range Selects. +*/ #undef DDR_PHY_MR14_VR_DQ_DEFVAL #undef DDR_PHY_MR14_VR_DQ_SHIFT #undef DDR_PHY_MR14_VR_DQ_MASK -#define DDR_PHY_MR14_VR_DQ_DEFVAL 0x0000004D -#define DDR_PHY_MR14_VR_DQ_SHIFT 6 -#define DDR_PHY_MR14_VR_DQ_MASK 0x00000040U +#define DDR_PHY_MR14_VR_DQ_DEFVAL 0x0000004D +#define DDR_PHY_MR14_VR_DQ_SHIFT 6 +#define DDR_PHY_MR14_VR_DQ_MASK 0x00000040U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR14_VREF_DQ_DEFVAL #undef DDR_PHY_MR14_VREF_DQ_SHIFT #undef DDR_PHY_MR14_VREF_DQ_MASK -#define DDR_PHY_MR14_VREF_DQ_DEFVAL 0x0000004D -#define DDR_PHY_MR14_VREF_DQ_SHIFT 0 -#define DDR_PHY_MR14_VREF_DQ_MASK 0x0000003FU +#define DDR_PHY_MR14_VREF_DQ_DEFVAL 0x0000004D +#define DDR_PHY_MR14_VREF_DQ_SHIFT 0 +#define DDR_PHY_MR14_VREF_DQ_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_MR22_RESERVED_31_8_DEFVAL #undef DDR_PHY_MR22_RESERVED_31_8_SHIFT #undef DDR_PHY_MR22_RESERVED_31_8_MASK -#define DDR_PHY_MR22_RESERVED_31_8_DEFVAL 0x00000000 -#define DDR_PHY_MR22_RESERVED_31_8_SHIFT 8 -#define DDR_PHY_MR22_RESERVED_31_8_MASK 0xFFFFFF00U +#define DDR_PHY_MR22_RESERVED_31_8_DEFVAL 0x00000000 +#define DDR_PHY_MR22_RESERVED_31_8_SHIFT 8 +#define DDR_PHY_MR22_RESERVED_31_8_MASK 0xFFFFFF00U -/*These are JEDEC reserved bits and are recommended by JEDEC to be programmed to 0x0.*/ +/* +* These are JEDEC reserved bits and are recommended by JEDEC to be program + * med to 0x0. +*/ #undef DDR_PHY_MR22_RSVD_DEFVAL #undef DDR_PHY_MR22_RSVD_SHIFT #undef DDR_PHY_MR22_RSVD_MASK -#define DDR_PHY_MR22_RSVD_DEFVAL 0x00000000 -#define DDR_PHY_MR22_RSVD_SHIFT 6 -#define DDR_PHY_MR22_RSVD_MASK 0x000000C0U +#define DDR_PHY_MR22_RSVD_DEFVAL 0x00000000 +#define DDR_PHY_MR22_RSVD_SHIFT 6 +#define DDR_PHY_MR22_RSVD_MASK 0x000000C0U -/*CA ODT termination disable.*/ +/* +* CA ODT termination disable. +*/ #undef DDR_PHY_MR22_ODTD_CA_DEFVAL #undef DDR_PHY_MR22_ODTD_CA_SHIFT #undef DDR_PHY_MR22_ODTD_CA_MASK -#define DDR_PHY_MR22_ODTD_CA_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTD_CA_SHIFT 5 -#define DDR_PHY_MR22_ODTD_CA_MASK 0x00000020U +#define DDR_PHY_MR22_ODTD_CA_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTD_CA_SHIFT 5 +#define DDR_PHY_MR22_ODTD_CA_MASK 0x00000020U -/*ODT CS override.*/ +/* +* ODT CS override. +*/ #undef DDR_PHY_MR22_ODTE_CS_DEFVAL #undef DDR_PHY_MR22_ODTE_CS_SHIFT #undef DDR_PHY_MR22_ODTE_CS_MASK -#define DDR_PHY_MR22_ODTE_CS_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTE_CS_SHIFT 4 -#define DDR_PHY_MR22_ODTE_CS_MASK 0x00000010U +#define DDR_PHY_MR22_ODTE_CS_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTE_CS_SHIFT 4 +#define DDR_PHY_MR22_ODTE_CS_MASK 0x00000010U -/*ODT CK override.*/ +/* +* ODT CK override. +*/ #undef DDR_PHY_MR22_ODTE_CK_DEFVAL #undef DDR_PHY_MR22_ODTE_CK_SHIFT #undef DDR_PHY_MR22_ODTE_CK_MASK -#define DDR_PHY_MR22_ODTE_CK_DEFVAL 0x00000000 -#define DDR_PHY_MR22_ODTE_CK_SHIFT 3 -#define DDR_PHY_MR22_ODTE_CK_MASK 0x00000008U +#define DDR_PHY_MR22_ODTE_CK_DEFVAL 0x00000000 +#define DDR_PHY_MR22_ODTE_CK_SHIFT 3 +#define DDR_PHY_MR22_ODTE_CK_MASK 0x00000008U -/*Controller ODT value for VOH calibration.*/ +/* +* Controller ODT value for VOH calibration. +*/ #undef DDR_PHY_MR22_CODT_DEFVAL #undef DDR_PHY_MR22_CODT_SHIFT #undef DDR_PHY_MR22_CODT_MASK -#define DDR_PHY_MR22_CODT_DEFVAL 0x00000000 -#define DDR_PHY_MR22_CODT_SHIFT 0 -#define DDR_PHY_MR22_CODT_MASK 0x00000007U +#define DDR_PHY_MR22_CODT_DEFVAL 0x00000000 +#define DDR_PHY_MR22_CODT_SHIFT 0 +#define DDR_PHY_MR22_CODT_MASK 0x00000007U -/*Refresh During Training*/ +/* +* Refresh During Training +*/ #undef DDR_PHY_DTCR0_RFSHDT_DEFVAL #undef DDR_PHY_DTCR0_RFSHDT_SHIFT #undef DDR_PHY_DTCR0_RFSHDT_MASK -#define DDR_PHY_DTCR0_RFSHDT_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RFSHDT_SHIFT 28 -#define DDR_PHY_DTCR0_RFSHDT_MASK 0xF0000000U +#define DDR_PHY_DTCR0_RFSHDT_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RFSHDT_SHIFT 28 +#define DDR_PHY_DTCR0_RFSHDT_MASK 0xF0000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_27_26_SHIFT #undef DDR_PHY_DTCR0_RESERVED_27_26_MASK -#define DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_27_26_SHIFT 26 -#define DDR_PHY_DTCR0_RESERVED_27_26_MASK 0x0C000000U +#define DDR_PHY_DTCR0_RESERVED_27_26_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_27_26_SHIFT 26 +#define DDR_PHY_DTCR0_RESERVED_27_26_MASK 0x0C000000U -/*Data Training Debug Rank Select*/ +/* +* Data Training Debug Rank Select +*/ #undef DDR_PHY_DTCR0_DTDRS_DEFVAL #undef DDR_PHY_DTCR0_DTDRS_SHIFT #undef DDR_PHY_DTCR0_DTDRS_MASK -#define DDR_PHY_DTCR0_DTDRS_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDRS_SHIFT 24 -#define DDR_PHY_DTCR0_DTDRS_MASK 0x03000000U +#define DDR_PHY_DTCR0_DTDRS_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDRS_SHIFT 24 +#define DDR_PHY_DTCR0_DTDRS_MASK 0x03000000U -/*Data Training with Early/Extended Gate*/ +/* +* Data Training with Early/Extended Gate +*/ #undef DDR_PHY_DTCR0_DTEXG_DEFVAL #undef DDR_PHY_DTCR0_DTEXG_SHIFT #undef DDR_PHY_DTCR0_DTEXG_MASK -#define DDR_PHY_DTCR0_DTEXG_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTEXG_SHIFT 23 -#define DDR_PHY_DTCR0_DTEXG_MASK 0x00800000U +#define DDR_PHY_DTCR0_DTEXG_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTEXG_SHIFT 23 +#define DDR_PHY_DTCR0_DTEXG_MASK 0x00800000U -/*Data Training Extended Write DQS*/ +/* +* Data Training Extended Write DQS +*/ #undef DDR_PHY_DTCR0_DTEXD_DEFVAL #undef DDR_PHY_DTCR0_DTEXD_SHIFT #undef DDR_PHY_DTCR0_DTEXD_MASK -#define DDR_PHY_DTCR0_DTEXD_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTEXD_SHIFT 22 -#define DDR_PHY_DTCR0_DTEXD_MASK 0x00400000U +#define DDR_PHY_DTCR0_DTEXD_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTEXD_SHIFT 22 +#define DDR_PHY_DTCR0_DTEXD_MASK 0x00400000U -/*Data Training Debug Step*/ +/* +* Data Training Debug Step +*/ #undef DDR_PHY_DTCR0_DTDSTP_DEFVAL #undef DDR_PHY_DTCR0_DTDSTP_SHIFT #undef DDR_PHY_DTCR0_DTDSTP_MASK -#define DDR_PHY_DTCR0_DTDSTP_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDSTP_SHIFT 21 -#define DDR_PHY_DTCR0_DTDSTP_MASK 0x00200000U +#define DDR_PHY_DTCR0_DTDSTP_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDSTP_SHIFT 21 +#define DDR_PHY_DTCR0_DTDSTP_MASK 0x00200000U -/*Data Training Debug Enable*/ +/* +* Data Training Debug Enable +*/ #undef DDR_PHY_DTCR0_DTDEN_DEFVAL #undef DDR_PHY_DTCR0_DTDEN_SHIFT #undef DDR_PHY_DTCR0_DTDEN_MASK -#define DDR_PHY_DTCR0_DTDEN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDEN_SHIFT 20 -#define DDR_PHY_DTCR0_DTDEN_MASK 0x00100000U +#define DDR_PHY_DTCR0_DTDEN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDEN_SHIFT 20 +#define DDR_PHY_DTCR0_DTDEN_MASK 0x00100000U -/*Data Training Debug Byte Select*/ +/* +* Data Training Debug Byte Select +*/ #undef DDR_PHY_DTCR0_DTDBS_DEFVAL #undef DDR_PHY_DTCR0_DTDBS_SHIFT #undef DDR_PHY_DTCR0_DTDBS_MASK -#define DDR_PHY_DTCR0_DTDBS_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTDBS_SHIFT 16 -#define DDR_PHY_DTCR0_DTDBS_MASK 0x000F0000U +#define DDR_PHY_DTCR0_DTDBS_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTDBS_SHIFT 16 +#define DDR_PHY_DTCR0_DTDBS_MASK 0x000F0000U -/*Data Training read DBI deskewing configuration*/ +/* +* Data Training read DBI deskewing configuration +*/ #undef DDR_PHY_DTCR0_DTRDBITR_DEFVAL #undef DDR_PHY_DTCR0_DTRDBITR_SHIFT #undef DDR_PHY_DTCR0_DTRDBITR_MASK -#define DDR_PHY_DTCR0_DTRDBITR_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTRDBITR_SHIFT 14 -#define DDR_PHY_DTCR0_DTRDBITR_MASK 0x0000C000U +#define DDR_PHY_DTCR0_DTRDBITR_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTRDBITR_SHIFT 14 +#define DDR_PHY_DTCR0_DTRDBITR_MASK 0x0000C000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_13_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_13_SHIFT #undef DDR_PHY_DTCR0_RESERVED_13_MASK -#define DDR_PHY_DTCR0_RESERVED_13_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_13_SHIFT 13 -#define DDR_PHY_DTCR0_RESERVED_13_MASK 0x00002000U +#define DDR_PHY_DTCR0_RESERVED_13_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_13_SHIFT 13 +#define DDR_PHY_DTCR0_RESERVED_13_MASK 0x00002000U -/*Data Training Write Bit Deskew Data Mask*/ +/* +* Data Training Write Bit Deskew Data Mask +*/ #undef DDR_PHY_DTCR0_DTWBDDM_DEFVAL #undef DDR_PHY_DTCR0_DTWBDDM_SHIFT #undef DDR_PHY_DTCR0_DTWBDDM_MASK -#define DDR_PHY_DTCR0_DTWBDDM_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTWBDDM_SHIFT 12 -#define DDR_PHY_DTCR0_DTWBDDM_MASK 0x00001000U +#define DDR_PHY_DTCR0_DTWBDDM_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTWBDDM_SHIFT 12 +#define DDR_PHY_DTCR0_DTWBDDM_MASK 0x00001000U -/*Refreshes Issued During Entry to Training*/ +/* +* Refreshes Issued During Entry to Training +*/ #undef DDR_PHY_DTCR0_RFSHEN_DEFVAL #undef DDR_PHY_DTCR0_RFSHEN_SHIFT #undef DDR_PHY_DTCR0_RFSHEN_MASK -#define DDR_PHY_DTCR0_RFSHEN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RFSHEN_SHIFT 8 -#define DDR_PHY_DTCR0_RFSHEN_MASK 0x00000F00U +#define DDR_PHY_DTCR0_RFSHEN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RFSHEN_SHIFT 8 +#define DDR_PHY_DTCR0_RFSHEN_MASK 0x00000F00U -/*Data Training Compare Data*/ +/* +* Data Training Compare Data +*/ #undef DDR_PHY_DTCR0_DTCMPD_DEFVAL #undef DDR_PHY_DTCR0_DTCMPD_SHIFT #undef DDR_PHY_DTCR0_DTCMPD_MASK -#define DDR_PHY_DTCR0_DTCMPD_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTCMPD_SHIFT 7 -#define DDR_PHY_DTCR0_DTCMPD_MASK 0x00000080U +#define DDR_PHY_DTCR0_DTCMPD_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTCMPD_SHIFT 7 +#define DDR_PHY_DTCR0_DTCMPD_MASK 0x00000080U -/*Data Training Using MPR*/ +/* +* Data Training Using MPR +*/ #undef DDR_PHY_DTCR0_DTMPR_DEFVAL #undef DDR_PHY_DTCR0_DTMPR_SHIFT #undef DDR_PHY_DTCR0_DTMPR_MASK -#define DDR_PHY_DTCR0_DTMPR_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTMPR_SHIFT 6 -#define DDR_PHY_DTCR0_DTMPR_MASK 0x00000040U +#define DDR_PHY_DTCR0_DTMPR_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTMPR_SHIFT 6 +#define DDR_PHY_DTCR0_DTMPR_MASK 0x00000040U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL #undef DDR_PHY_DTCR0_RESERVED_5_4_SHIFT #undef DDR_PHY_DTCR0_RESERVED_5_4_MASK -#define DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_RESERVED_5_4_SHIFT 4 -#define DDR_PHY_DTCR0_RESERVED_5_4_MASK 0x00000030U +#define DDR_PHY_DTCR0_RESERVED_5_4_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_RESERVED_5_4_SHIFT 4 +#define DDR_PHY_DTCR0_RESERVED_5_4_MASK 0x00000030U -/*Data Training Repeat Number*/ +/* +* Data Training Repeat Number +*/ #undef DDR_PHY_DTCR0_DTRPTN_DEFVAL #undef DDR_PHY_DTCR0_DTRPTN_SHIFT #undef DDR_PHY_DTCR0_DTRPTN_MASK -#define DDR_PHY_DTCR0_DTRPTN_DEFVAL 0x800091C7 -#define DDR_PHY_DTCR0_DTRPTN_SHIFT 0 -#define DDR_PHY_DTCR0_DTRPTN_MASK 0x0000000FU +#define DDR_PHY_DTCR0_DTRPTN_DEFVAL 0x800091C7 +#define DDR_PHY_DTCR0_DTRPTN_SHIFT 0 +#define DDR_PHY_DTCR0_DTRPTN_MASK 0x0000000FU -/*Rank Enable.*/ +/* +* Rank Enable. +*/ #undef DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL #undef DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT #undef DDR_PHY_DTCR1_RANKEN_RSVD_MASK -#define DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT 18 -#define DDR_PHY_DTCR1_RANKEN_RSVD_MASK 0xFFFC0000U +#define DDR_PHY_DTCR1_RANKEN_RSVD_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RANKEN_RSVD_SHIFT 18 +#define DDR_PHY_DTCR1_RANKEN_RSVD_MASK 0xFFFC0000U -/*Rank Enable.*/ +/* +* Rank Enable. +*/ #undef DDR_PHY_DTCR1_RANKEN_DEFVAL #undef DDR_PHY_DTCR1_RANKEN_SHIFT #undef DDR_PHY_DTCR1_RANKEN_MASK -#define DDR_PHY_DTCR1_RANKEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RANKEN_SHIFT 16 -#define DDR_PHY_DTCR1_RANKEN_MASK 0x00030000U +#define DDR_PHY_DTCR1_RANKEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RANKEN_SHIFT 16 +#define DDR_PHY_DTCR1_RANKEN_MASK 0x00030000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_15_14_SHIFT #undef DDR_PHY_DTCR1_RESERVED_15_14_MASK -#define DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DTCR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DTCR1_RESERVED_15_14_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DTCR1_RESERVED_15_14_MASK 0x0000C000U -/*Data Training Rank*/ +/* +* Data Training Rank +*/ #undef DDR_PHY_DTCR1_DTRANK_DEFVAL #undef DDR_PHY_DTCR1_DTRANK_SHIFT #undef DDR_PHY_DTCR1_DTRANK_MASK -#define DDR_PHY_DTCR1_DTRANK_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_DTRANK_SHIFT 12 -#define DDR_PHY_DTCR1_DTRANK_MASK 0x00003000U +#define DDR_PHY_DTCR1_DTRANK_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_DTRANK_SHIFT 12 +#define DDR_PHY_DTCR1_DTRANK_MASK 0x00003000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_11_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_11_SHIFT #undef DDR_PHY_DTCR1_RESERVED_11_MASK -#define DDR_PHY_DTCR1_RESERVED_11_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_11_SHIFT 11 -#define DDR_PHY_DTCR1_RESERVED_11_MASK 0x00000800U +#define DDR_PHY_DTCR1_RESERVED_11_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_11_SHIFT 11 +#define DDR_PHY_DTCR1_RESERVED_11_MASK 0x00000800U -/*Read Leveling Gate Sampling Difference*/ +/* +* Read Leveling Gate Sampling Difference +*/ #undef DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL #undef DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT #undef DDR_PHY_DTCR1_RDLVLGDIFF_MASK -#define DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT 8 -#define DDR_PHY_DTCR1_RDLVLGDIFF_MASK 0x00000700U +#define DDR_PHY_DTCR1_RDLVLGDIFF_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLGDIFF_SHIFT 8 +#define DDR_PHY_DTCR1_RDLVLGDIFF_MASK 0x00000700U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_7_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_7_SHIFT #undef DDR_PHY_DTCR1_RESERVED_7_MASK -#define DDR_PHY_DTCR1_RESERVED_7_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_7_SHIFT 7 -#define DDR_PHY_DTCR1_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DTCR1_RESERVED_7_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_7_SHIFT 7 +#define DDR_PHY_DTCR1_RESERVED_7_MASK 0x00000080U -/*Read Leveling Gate Shift*/ +/* +* Read Leveling Gate Shift +*/ #undef DDR_PHY_DTCR1_RDLVLGS_DEFVAL #undef DDR_PHY_DTCR1_RDLVLGS_SHIFT #undef DDR_PHY_DTCR1_RDLVLGS_MASK -#define DDR_PHY_DTCR1_RDLVLGS_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLGS_SHIFT 4 -#define DDR_PHY_DTCR1_RDLVLGS_MASK 0x00000070U +#define DDR_PHY_DTCR1_RDLVLGS_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLGS_SHIFT 4 +#define DDR_PHY_DTCR1_RDLVLGS_MASK 0x00000070U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DTCR1_RESERVED_3_DEFVAL #undef DDR_PHY_DTCR1_RESERVED_3_SHIFT #undef DDR_PHY_DTCR1_RESERVED_3_MASK -#define DDR_PHY_DTCR1_RESERVED_3_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RESERVED_3_SHIFT 3 -#define DDR_PHY_DTCR1_RESERVED_3_MASK 0x00000008U +#define DDR_PHY_DTCR1_RESERVED_3_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RESERVED_3_SHIFT 3 +#define DDR_PHY_DTCR1_RESERVED_3_MASK 0x00000008U -/*Read Preamble Training enable*/ +/* +* Read Preamble Training enable +*/ #undef DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL #undef DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT #undef DDR_PHY_DTCR1_RDPRMVL_TRN_MASK -#define DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT 2 -#define DDR_PHY_DTCR1_RDPRMVL_TRN_MASK 0x00000004U +#define DDR_PHY_DTCR1_RDPRMVL_TRN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDPRMVL_TRN_SHIFT 2 +#define DDR_PHY_DTCR1_RDPRMVL_TRN_MASK 0x00000004U -/*Read Leveling Enable*/ +/* +* Read Leveling Enable +*/ #undef DDR_PHY_DTCR1_RDLVLEN_DEFVAL #undef DDR_PHY_DTCR1_RDLVLEN_SHIFT #undef DDR_PHY_DTCR1_RDLVLEN_MASK -#define DDR_PHY_DTCR1_RDLVLEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_RDLVLEN_SHIFT 1 -#define DDR_PHY_DTCR1_RDLVLEN_MASK 0x00000002U +#define DDR_PHY_DTCR1_RDLVLEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_RDLVLEN_SHIFT 1 +#define DDR_PHY_DTCR1_RDLVLEN_MASK 0x00000002U -/*Basic Gate Training Enable*/ +/* +* Basic Gate Training Enable +*/ #undef DDR_PHY_DTCR1_BSTEN_DEFVAL #undef DDR_PHY_DTCR1_BSTEN_SHIFT #undef DDR_PHY_DTCR1_BSTEN_MASK -#define DDR_PHY_DTCR1_BSTEN_DEFVAL 0x00030237 -#define DDR_PHY_DTCR1_BSTEN_SHIFT 0 -#define DDR_PHY_DTCR1_BSTEN_MASK 0x00000001U +#define DDR_PHY_DTCR1_BSTEN_DEFVAL 0x00030237 +#define DDR_PHY_DTCR1_BSTEN_SHIFT 0 +#define DDR_PHY_DTCR1_BSTEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_CATR0_RESERVED_31_21_DEFVAL #undef DDR_PHY_CATR0_RESERVED_31_21_SHIFT #undef DDR_PHY_CATR0_RESERVED_31_21_MASK -#define DDR_PHY_CATR0_RESERVED_31_21_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_RESERVED_31_21_SHIFT 21 -#define DDR_PHY_CATR0_RESERVED_31_21_MASK 0xFFE00000U +#define DDR_PHY_CATR0_RESERVED_31_21_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_RESERVED_31_21_SHIFT 21 +#define DDR_PHY_CATR0_RESERVED_31_21_MASK 0xFFE00000U -/*Minimum time (in terms of number of dram clocks) between two consectuve CA calibration command*/ +/* +* Minimum time (in terms of number of dram clocks) between two consectuve + * CA calibration command +*/ #undef DDR_PHY_CATR0_CACD_DEFVAL #undef DDR_PHY_CATR0_CACD_SHIFT #undef DDR_PHY_CATR0_CACD_MASK -#define DDR_PHY_CATR0_CACD_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CACD_SHIFT 16 -#define DDR_PHY_CATR0_CACD_MASK 0x001F0000U +#define DDR_PHY_CATR0_CACD_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CACD_SHIFT 16 +#define DDR_PHY_CATR0_CACD_MASK 0x001F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_CATR0_RESERVED_15_13_DEFVAL #undef DDR_PHY_CATR0_RESERVED_15_13_SHIFT #undef DDR_PHY_CATR0_RESERVED_15_13_MASK -#define DDR_PHY_CATR0_RESERVED_15_13_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_CATR0_RESERVED_15_13_MASK 0x0000E000U +#define DDR_PHY_CATR0_RESERVED_15_13_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_RESERVED_15_13_SHIFT 13 +#define DDR_PHY_CATR0_RESERVED_15_13_MASK 0x0000E000U -/*Minimum time (in terms of number of dram clocks) PUB should wait before sampling the CA response after Calibration command ha - been sent to the memory*/ +/* +* Minimum time (in terms of number of dram clocks) PUB should wait before + * sampling the CA response after Calibration command has been sent to the + * memory +*/ #undef DDR_PHY_CATR0_CAADR_DEFVAL #undef DDR_PHY_CATR0_CAADR_SHIFT #undef DDR_PHY_CATR0_CAADR_MASK -#define DDR_PHY_CATR0_CAADR_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CAADR_SHIFT 8 -#define DDR_PHY_CATR0_CAADR_MASK 0x00001F00U +#define DDR_PHY_CATR0_CAADR_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CAADR_SHIFT 8 +#define DDR_PHY_CATR0_CAADR_MASK 0x00001F00U -/*CA_1 Response Byte Lane 1*/ +/* +* CA_1 Response Byte Lane 1 +*/ #undef DDR_PHY_CATR0_CA1BYTE1_DEFVAL #undef DDR_PHY_CATR0_CA1BYTE1_SHIFT #undef DDR_PHY_CATR0_CA1BYTE1_MASK -#define DDR_PHY_CATR0_CA1BYTE1_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CA1BYTE1_SHIFT 4 -#define DDR_PHY_CATR0_CA1BYTE1_MASK 0x000000F0U +#define DDR_PHY_CATR0_CA1BYTE1_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CA1BYTE1_SHIFT 4 +#define DDR_PHY_CATR0_CA1BYTE1_MASK 0x000000F0U -/*CA_1 Response Byte Lane 0*/ +/* +* CA_1 Response Byte Lane 0 +*/ #undef DDR_PHY_CATR0_CA1BYTE0_DEFVAL #undef DDR_PHY_CATR0_CA1BYTE0_SHIFT #undef DDR_PHY_CATR0_CA1BYTE0_MASK -#define DDR_PHY_CATR0_CA1BYTE0_DEFVAL 0x00141054 -#define DDR_PHY_CATR0_CA1BYTE0_SHIFT 0 -#define DDR_PHY_CATR0_CA1BYTE0_MASK 0x0000000FU +#define DDR_PHY_CATR0_CA1BYTE0_DEFVAL 0x00141054 +#define DDR_PHY_CATR0_CA1BYTE0_SHIFT 0 +#define DDR_PHY_CATR0_CA1BYTE0_MASK 0x0000000FU -/*LFSR seed for pseudo-random BIST patterns*/ +/* +* Number of delay taps by which the DQS gate LCDL will be updated when DQS + * drift is detected +*/ +#undef DDR_PHY_DQSDR0_DFTDLY_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDLY_SHIFT +#undef DDR_PHY_DQSDR0_DFTDLY_MASK +#define DDR_PHY_DQSDR0_DFTDLY_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDLY_SHIFT 28 +#define DDR_PHY_DQSDR0_DFTDLY_MASK 0xF0000000U + +/* +* Drift Impedance Update +*/ +#undef DDR_PHY_DQSDR0_DFTZQUP_DEFVAL +#undef DDR_PHY_DQSDR0_DFTZQUP_SHIFT +#undef DDR_PHY_DQSDR0_DFTZQUP_MASK +#define DDR_PHY_DQSDR0_DFTZQUP_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTZQUP_SHIFT 27 +#define DDR_PHY_DQSDR0_DFTZQUP_MASK 0x08000000U + +/* +* Drift DDL Update +*/ +#undef DDR_PHY_DQSDR0_DFTDDLUP_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDDLUP_SHIFT +#undef DDR_PHY_DQSDR0_DFTDDLUP_MASK +#define DDR_PHY_DQSDR0_DFTDDLUP_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDDLUP_SHIFT 26 +#define DDR_PHY_DQSDR0_DFTDDLUP_MASK 0x04000000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DQSDR0_RESERVED_25_22_DEFVAL +#undef DDR_PHY_DQSDR0_RESERVED_25_22_SHIFT +#undef DDR_PHY_DQSDR0_RESERVED_25_22_MASK +#define DDR_PHY_DQSDR0_RESERVED_25_22_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_RESERVED_25_22_SHIFT 22 +#define DDR_PHY_DQSDR0_RESERVED_25_22_MASK 0x03C00000U + +/* +* Drift Read Spacing +*/ +#undef DDR_PHY_DQSDR0_DFTRDSPC_DEFVAL +#undef DDR_PHY_DQSDR0_DFTRDSPC_SHIFT +#undef DDR_PHY_DQSDR0_DFTRDSPC_MASK +#define DDR_PHY_DQSDR0_DFTRDSPC_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTRDSPC_SHIFT 20 +#define DDR_PHY_DQSDR0_DFTRDSPC_MASK 0x00300000U + +/* +* Drift Back-to-Back Reads +*/ +#undef DDR_PHY_DQSDR0_DFTB2BRD_DEFVAL +#undef DDR_PHY_DQSDR0_DFTB2BRD_SHIFT +#undef DDR_PHY_DQSDR0_DFTB2BRD_MASK +#define DDR_PHY_DQSDR0_DFTB2BRD_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTB2BRD_SHIFT 16 +#define DDR_PHY_DQSDR0_DFTB2BRD_MASK 0x000F0000U + +/* +* Drift Idle Reads +*/ +#undef DDR_PHY_DQSDR0_DFTIDLRD_DEFVAL +#undef DDR_PHY_DQSDR0_DFTIDLRD_SHIFT +#undef DDR_PHY_DQSDR0_DFTIDLRD_MASK +#define DDR_PHY_DQSDR0_DFTIDLRD_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTIDLRD_SHIFT 12 +#define DDR_PHY_DQSDR0_DFTIDLRD_MASK 0x0000F000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DQSDR0_RESERVED_11_8_DEFVAL +#undef DDR_PHY_DQSDR0_RESERVED_11_8_SHIFT +#undef DDR_PHY_DQSDR0_RESERVED_11_8_MASK +#define DDR_PHY_DQSDR0_RESERVED_11_8_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_RESERVED_11_8_SHIFT 8 +#define DDR_PHY_DQSDR0_RESERVED_11_8_MASK 0x00000F00U + +/* +* Gate Pulse Enable +*/ +#undef DDR_PHY_DQSDR0_DFTGPULSE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTGPULSE_SHIFT +#undef DDR_PHY_DQSDR0_DFTGPULSE_MASK +#define DDR_PHY_DQSDR0_DFTGPULSE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTGPULSE_SHIFT 4 +#define DDR_PHY_DQSDR0_DFTGPULSE_MASK 0x000000F0U + +/* +* DQS Drift Update Mode +*/ +#undef DDR_PHY_DQSDR0_DFTUPMODE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTUPMODE_SHIFT +#undef DDR_PHY_DQSDR0_DFTUPMODE_MASK +#define DDR_PHY_DQSDR0_DFTUPMODE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTUPMODE_SHIFT 2 +#define DDR_PHY_DQSDR0_DFTUPMODE_MASK 0x0000000CU + +/* +* DQS Drift Detection Mode +*/ +#undef DDR_PHY_DQSDR0_DFTDTMODE_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDTMODE_SHIFT +#undef DDR_PHY_DQSDR0_DFTDTMODE_MASK +#define DDR_PHY_DQSDR0_DFTDTMODE_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDTMODE_SHIFT 1 +#define DDR_PHY_DQSDR0_DFTDTMODE_MASK 0x00000002U + +/* +* DQS Drift Detection Enable +*/ +#undef DDR_PHY_DQSDR0_DFTDTEN_DEFVAL +#undef DDR_PHY_DQSDR0_DFTDTEN_SHIFT +#undef DDR_PHY_DQSDR0_DFTDTEN_MASK +#define DDR_PHY_DQSDR0_DFTDTEN_DEFVAL 0x00088000 +#define DDR_PHY_DQSDR0_DFTDTEN_SHIFT 0 +#define DDR_PHY_DQSDR0_DFTDTEN_MASK 0x00000001U + +/* +* LFSR seed for pseudo-random BIST patterns +*/ #undef DDR_PHY_BISTLSR_SEED_DEFVAL #undef DDR_PHY_BISTLSR_SEED_SHIFT #undef DDR_PHY_BISTLSR_SEED_MASK -#define DDR_PHY_BISTLSR_SEED_DEFVAL -#define DDR_PHY_BISTLSR_SEED_SHIFT 0 -#define DDR_PHY_BISTLSR_SEED_MASK 0xFFFFFFFFU +#define DDR_PHY_BISTLSR_SEED_DEFVAL +#define DDR_PHY_BISTLSR_SEED_SHIFT 0 +#define DDR_PHY_BISTLSR_SEED_MASK 0xFFFFFFFFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL #undef DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT #undef DDR_PHY_RIOCR5_RESERVED_31_16_MASK -#define DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT 16 -#define DDR_PHY_RIOCR5_RESERVED_31_16_MASK 0xFFFF0000U +#define DDR_PHY_RIOCR5_RESERVED_31_16_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_RESERVED_31_16_SHIFT 16 +#define DDR_PHY_RIOCR5_RESERVED_31_16_MASK 0xFFFF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT #undef DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT 4 -#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK 0x0000FFF0U +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_SHIFT 4 +#define DDR_PHY_RIOCR5_ODTOEMODE_RSVD_MASK 0x0000FFF0U -/*SDRAM On-die Termination Output Enable (OE) Mode Selection.*/ +/* +* SDRAM On-die Termination Output Enable (OE) Mode Selection. +*/ #undef DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL #undef DDR_PHY_RIOCR5_ODTOEMODE_SHIFT #undef DDR_PHY_RIOCR5_ODTOEMODE_MASK -#define DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_RIOCR5_ODTOEMODE_SHIFT 0 -#define DDR_PHY_RIOCR5_ODTOEMODE_MASK 0x0000000FU +#define DDR_PHY_RIOCR5_ODTOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_RIOCR5_ODTOEMODE_SHIFT 0 +#define DDR_PHY_RIOCR5_ODTOEMODE_MASK 0x0000000FU -/*Address/Command Slew Rate (D3F I/O Only)*/ +/* +* Address/Command Slew Rate (D3F I/O Only) +*/ #undef DDR_PHY_ACIOCR0_ACSR_DEFVAL #undef DDR_PHY_ACIOCR0_ACSR_SHIFT #undef DDR_PHY_ACIOCR0_ACSR_MASK -#define DDR_PHY_ACIOCR0_ACSR_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACSR_SHIFT 30 -#define DDR_PHY_ACIOCR0_ACSR_MASK 0xC0000000U +#define DDR_PHY_ACIOCR0_ACSR_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACSR_SHIFT 30 +#define DDR_PHY_ACIOCR0_ACSR_MASK 0xC0000000U -/*SDRAM Reset I/O Mode*/ +/* +* SDRAM Reset I/O Mode +*/ #undef DDR_PHY_ACIOCR0_RSTIOM_DEFVAL #undef DDR_PHY_ACIOCR0_RSTIOM_SHIFT #undef DDR_PHY_ACIOCR0_RSTIOM_MASK -#define DDR_PHY_ACIOCR0_RSTIOM_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTIOM_SHIFT 29 -#define DDR_PHY_ACIOCR0_RSTIOM_MASK 0x20000000U +#define DDR_PHY_ACIOCR0_RSTIOM_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTIOM_SHIFT 29 +#define DDR_PHY_ACIOCR0_RSTIOM_MASK 0x20000000U -/*SDRAM Reset Power Down Receiver*/ +/* +* SDRAM Reset Power Down Receiver +*/ #undef DDR_PHY_ACIOCR0_RSTPDR_DEFVAL #undef DDR_PHY_ACIOCR0_RSTPDR_SHIFT #undef DDR_PHY_ACIOCR0_RSTPDR_MASK -#define DDR_PHY_ACIOCR0_RSTPDR_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTPDR_SHIFT 28 -#define DDR_PHY_ACIOCR0_RSTPDR_MASK 0x10000000U +#define DDR_PHY_ACIOCR0_RSTPDR_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTPDR_SHIFT 28 +#define DDR_PHY_ACIOCR0_RSTPDR_MASK 0x10000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_27_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_27_MASK -#define DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_27_SHIFT 27 -#define DDR_PHY_ACIOCR0_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_ACIOCR0_RESERVED_27_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_27_SHIFT 27 +#define DDR_PHY_ACIOCR0_RESERVED_27_MASK 0x08000000U -/*SDRAM Reset On-Die Termination*/ +/* +* SDRAM Reset On-Die Termination +*/ #undef DDR_PHY_ACIOCR0_RSTODT_DEFVAL #undef DDR_PHY_ACIOCR0_RSTODT_SHIFT #undef DDR_PHY_ACIOCR0_RSTODT_MASK -#define DDR_PHY_ACIOCR0_RSTODT_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RSTODT_SHIFT 26 -#define DDR_PHY_ACIOCR0_RSTODT_MASK 0x04000000U +#define DDR_PHY_ACIOCR0_RSTODT_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RSTODT_SHIFT 26 +#define DDR_PHY_ACIOCR0_RSTODT_MASK 0x04000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_25_10_MASK -#define DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT 10 -#define DDR_PHY_ACIOCR0_RESERVED_25_10_MASK 0x03FFFC00U +#define DDR_PHY_ACIOCR0_RESERVED_25_10_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_25_10_SHIFT 10 +#define DDR_PHY_ACIOCR0_RESERVED_25_10_MASK 0x03FFFC00U -/*CK Duty Cycle Correction*/ +/* +* CK Duty Cycle Correction +*/ #undef DDR_PHY_ACIOCR0_CKDCC_DEFVAL #undef DDR_PHY_ACIOCR0_CKDCC_SHIFT #undef DDR_PHY_ACIOCR0_CKDCC_MASK -#define DDR_PHY_ACIOCR0_CKDCC_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_CKDCC_SHIFT 6 -#define DDR_PHY_ACIOCR0_CKDCC_MASK 0x000003C0U +#define DDR_PHY_ACIOCR0_CKDCC_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_CKDCC_SHIFT 6 +#define DDR_PHY_ACIOCR0_CKDCC_MASK 0x000003C0U -/*AC Power Down Receiver Mode*/ +/* +* AC Power Down Receiver Mode +*/ #undef DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL #undef DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT #undef DDR_PHY_ACIOCR0_ACPDRMODE_MASK -#define DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT 4 -#define DDR_PHY_ACIOCR0_ACPDRMODE_MASK 0x00000030U +#define DDR_PHY_ACIOCR0_ACPDRMODE_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACPDRMODE_SHIFT 4 +#define DDR_PHY_ACIOCR0_ACPDRMODE_MASK 0x00000030U -/*AC On-die Termination Mode*/ +/* +* AC On-die Termination Mode +*/ #undef DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL #undef DDR_PHY_ACIOCR0_ACODTMODE_SHIFT #undef DDR_PHY_ACIOCR0_ACODTMODE_MASK -#define DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACODTMODE_SHIFT 2 -#define DDR_PHY_ACIOCR0_ACODTMODE_MASK 0x0000000CU +#define DDR_PHY_ACIOCR0_ACODTMODE_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACODTMODE_SHIFT 2 +#define DDR_PHY_ACIOCR0_ACODTMODE_MASK 0x0000000CU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL #undef DDR_PHY_ACIOCR0_RESERVED_1_SHIFT #undef DDR_PHY_ACIOCR0_RESERVED_1_MASK -#define DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_RESERVED_1_SHIFT 1 -#define DDR_PHY_ACIOCR0_RESERVED_1_MASK 0x00000002U +#define DDR_PHY_ACIOCR0_RESERVED_1_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_RESERVED_1_SHIFT 1 +#define DDR_PHY_ACIOCR0_RESERVED_1_MASK 0x00000002U -/*Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices.*/ +/* +* Control delayed or non-delayed clock to CS_N/ODT?CKE AC slices. +*/ #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT #undef DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL 0x30000000 -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT 0 -#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK 0x00000001U +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_DEFVAL 0x30000000 +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_SHIFT 0 +#define DDR_PHY_ACIOCR0_ACRANKCLKSEL_MASK 0x00000001U -/*Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL slice*/ +/* +* Clock gating for glue logic inside CLKGEN and glue logic inside CONTROL + * slice +*/ #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT #undef DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT 31 -#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK 0x80000000U +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_SHIFT 31 +#define DDR_PHY_ACIOCR2_CLKGENCLKGATE_MASK 0x80000000U -/*Clock gating for Output Enable D slices [0]*/ +/* +* Clock gating for Output Enable D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT 30 -#define DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK 0x40000000U +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_SHIFT 30 +#define DDR_PHY_ACIOCR2_ACOECLKGATE0_MASK 0x40000000U -/*Clock gating for Power Down Receiver D slices [0]*/ +/* +* Clock gating for Power Down Receiver D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT 29 -#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK 0x20000000U +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_SHIFT 29 +#define DDR_PHY_ACIOCR2_ACPDRCLKGATE0_MASK 0x20000000U -/*Clock gating for Termination Enable D slices [0]*/ +/* +* Clock gating for Termination Enable D slices [0] +*/ #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT 28 -#define DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK 0x10000000U +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_SHIFT 28 +#define DDR_PHY_ACIOCR2_ACTECLKGATE0_MASK 0x10000000U -/*Clock gating for CK# D slices [1:0]*/ +/* +* Clock gating for CK# D slices [1:0] +*/ #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT 26 -#define DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK 0x0C000000U +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_SHIFT 26 +#define DDR_PHY_ACIOCR2_CKNCLKGATE0_MASK 0x0C000000U -/*Clock gating for CK D slices [1:0]*/ +/* +* Clock gating for CK D slices [1:0] +*/ #undef DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_CKCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT 24 -#define DDR_PHY_ACIOCR2_CKCLKGATE0_MASK 0x03000000U +#define DDR_PHY_ACIOCR2_CKCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_CKCLKGATE0_SHIFT 24 +#define DDR_PHY_ACIOCR2_CKCLKGATE0_MASK 0x03000000U -/*Clock gating for AC D slices [23:0]*/ +/* +* Clock gating for AC D slices [23:0] +*/ #undef DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL #undef DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT #undef DDR_PHY_ACIOCR2_ACCLKGATE0_MASK -#define DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT 0 -#define DDR_PHY_ACIOCR2_ACCLKGATE0_MASK 0x00FFFFFFU +#define DDR_PHY_ACIOCR2_ACCLKGATE0_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR2_ACCLKGATE0_SHIFT 0 +#define DDR_PHY_ACIOCR2_ACCLKGATE0_MASK 0x00FFFFFFU -/*SDRAM Parity Output Enable (OE) Mode Selection*/ +/* +* SDRAM Parity Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_PAROEMODE_SHIFT #undef DDR_PHY_ACIOCR3_PAROEMODE_MASK -#define DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_PAROEMODE_SHIFT 30 -#define DDR_PHY_ACIOCR3_PAROEMODE_MASK 0xC0000000U +#define DDR_PHY_ACIOCR3_PAROEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_PAROEMODE_SHIFT 30 +#define DDR_PHY_ACIOCR3_PAROEMODE_MASK 0xC0000000U -/*SDRAM Bank Group Output Enable (OE) Mode Selection*/ +/* +* SDRAM Bank Group Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_BGOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_BGOEMODE_MASK -#define DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_BGOEMODE_SHIFT 26 -#define DDR_PHY_ACIOCR3_BGOEMODE_MASK 0x3C000000U +#define DDR_PHY_ACIOCR3_BGOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_BGOEMODE_SHIFT 26 +#define DDR_PHY_ACIOCR3_BGOEMODE_MASK 0x3C000000U -/*SDRAM Bank Address Output Enable (OE) Mode Selection*/ +/* +* SDRAM Bank Address Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_BAOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_BAOEMODE_MASK -#define DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_BAOEMODE_SHIFT 22 -#define DDR_PHY_ACIOCR3_BAOEMODE_MASK 0x03C00000U +#define DDR_PHY_ACIOCR3_BAOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_BAOEMODE_SHIFT 22 +#define DDR_PHY_ACIOCR3_BAOEMODE_MASK 0x03C00000U -/*SDRAM A[17] Output Enable (OE) Mode Selection*/ +/* +* SDRAM A[17] Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_A17OEMODE_SHIFT #undef DDR_PHY_ACIOCR3_A17OEMODE_MASK -#define DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_A17OEMODE_SHIFT 20 -#define DDR_PHY_ACIOCR3_A17OEMODE_MASK 0x00300000U +#define DDR_PHY_ACIOCR3_A17OEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_A17OEMODE_SHIFT 20 +#define DDR_PHY_ACIOCR3_A17OEMODE_MASK 0x00300000U -/*SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection*/ +/* +* SDRAM A[16] / RAS_n Output Enable (OE) Mode Selection +*/ #undef DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_A16OEMODE_SHIFT #undef DDR_PHY_ACIOCR3_A16OEMODE_MASK -#define DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_A16OEMODE_SHIFT 18 -#define DDR_PHY_ACIOCR3_A16OEMODE_MASK 0x000C0000U +#define DDR_PHY_ACIOCR3_A16OEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_A16OEMODE_SHIFT 18 +#define DDR_PHY_ACIOCR3_A16OEMODE_MASK 0x000C0000U -/*SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only)*/ +/* +* SDRAM ACT_n Output Enable (OE) Mode Selection (DDR4 only) +*/ #undef DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_ACTOEMODE_MASK -#define DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT 16 -#define DDR_PHY_ACIOCR3_ACTOEMODE_MASK 0x00030000U +#define DDR_PHY_ACIOCR3_ACTOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_ACTOEMODE_SHIFT 16 +#define DDR_PHY_ACIOCR3_ACTOEMODE_MASK 0x00030000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL #undef DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT #undef DDR_PHY_ACIOCR3_RESERVED_15_8_MASK -#define DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT 8 -#define DDR_PHY_ACIOCR3_RESERVED_15_8_MASK 0x0000FF00U +#define DDR_PHY_ACIOCR3_RESERVED_15_8_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_RESERVED_15_8_SHIFT 8 +#define DDR_PHY_ACIOCR3_RESERVED_15_8_MASK 0x0000FF00U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT #undef DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT 4 -#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK 0x000000F0U +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_SHIFT 4 +#define DDR_PHY_ACIOCR3_CKOEMODE_RSVD_MASK 0x000000F0U -/*SDRAM CK Output Enable (OE) Mode Selection.*/ +/* +* SDRAM CK Output Enable (OE) Mode Selection. +*/ #undef DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL #undef DDR_PHY_ACIOCR3_CKOEMODE_SHIFT #undef DDR_PHY_ACIOCR3_CKOEMODE_MASK -#define DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL 0x00000005 -#define DDR_PHY_ACIOCR3_CKOEMODE_SHIFT 0 -#define DDR_PHY_ACIOCR3_CKOEMODE_MASK 0x0000000FU +#define DDR_PHY_ACIOCR3_CKOEMODE_DEFVAL 0x00000005 +#define DDR_PHY_ACIOCR3_CKOEMODE_SHIFT 0 +#define DDR_PHY_ACIOCR3_CKOEMODE_MASK 0x0000000FU -/*Clock gating for AC LB slices and loopback read valid slices*/ +/* +* Clock gating for AC LB slices and loopback read valid slices +*/ #undef DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL #undef DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT #undef DDR_PHY_ACIOCR4_LBCLKGATE_MASK -#define DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT 31 -#define DDR_PHY_ACIOCR4_LBCLKGATE_MASK 0x80000000U +#define DDR_PHY_ACIOCR4_LBCLKGATE_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_LBCLKGATE_SHIFT 31 +#define DDR_PHY_ACIOCR4_LBCLKGATE_MASK 0x80000000U -/*Clock gating for Output Enable D slices [1]*/ +/* +* Clock gating for Output Enable D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT 30 -#define DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK 0x40000000U +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_SHIFT 30 +#define DDR_PHY_ACIOCR4_ACOECLKGATE1_MASK 0x40000000U -/*Clock gating for Power Down Receiver D slices [1]*/ +/* +* Clock gating for Power Down Receiver D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT 29 -#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK 0x20000000U +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_SHIFT 29 +#define DDR_PHY_ACIOCR4_ACPDRCLKGATE1_MASK 0x20000000U -/*Clock gating for Termination Enable D slices [1]*/ +/* +* Clock gating for Termination Enable D slices [1] +*/ #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT 28 -#define DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK 0x10000000U +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_SHIFT 28 +#define DDR_PHY_ACIOCR4_ACTECLKGATE1_MASK 0x10000000U -/*Clock gating for CK# D slices [3:2]*/ +/* +* Clock gating for CK# D slices [3:2] +*/ #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT 26 -#define DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK 0x0C000000U +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_SHIFT 26 +#define DDR_PHY_ACIOCR4_CKNCLKGATE1_MASK 0x0C000000U -/*Clock gating for CK D slices [3:2]*/ +/* +* Clock gating for CK D slices [3:2] +*/ #undef DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_CKCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT 24 -#define DDR_PHY_ACIOCR4_CKCLKGATE1_MASK 0x03000000U +#define DDR_PHY_ACIOCR4_CKCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_CKCLKGATE1_SHIFT 24 +#define DDR_PHY_ACIOCR4_CKCLKGATE1_MASK 0x03000000U -/*Clock gating for AC D slices [47:24]*/ +/* +* Clock gating for AC D slices [47:24] +*/ #undef DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL #undef DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT #undef DDR_PHY_ACIOCR4_ACCLKGATE1_MASK -#define DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL 0x00000000 -#define DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT 0 -#define DDR_PHY_ACIOCR4_ACCLKGATE1_MASK 0x00FFFFFFU +#define DDR_PHY_ACIOCR4_ACCLKGATE1_DEFVAL 0x00000000 +#define DDR_PHY_ACIOCR4_ACCLKGATE1_SHIFT 0 +#define DDR_PHY_ACIOCR4_ACCLKGATE1_MASK 0x00FFFFFFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL #undef DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT #undef DDR_PHY_IOVCR0_RESERVED_31_29_MASK -#define DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_IOVCR0_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_IOVCR0_RESERVED_31_29_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_IOVCR0_RESERVED_31_29_MASK 0xE0000000U -/*Address/command lane VREF Pad Enable*/ +/* +* Address/command lane VREF Pad Enable +*/ #undef DDR_PHY_IOVCR0_ACREFPEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFPEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFPEN_MASK -#define DDR_PHY_IOVCR0_ACREFPEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFPEN_SHIFT 28 -#define DDR_PHY_IOVCR0_ACREFPEN_MASK 0x10000000U +#define DDR_PHY_IOVCR0_ACREFPEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFPEN_SHIFT 28 +#define DDR_PHY_IOVCR0_ACREFPEN_MASK 0x10000000U -/*Address/command lane Internal VREF Enable*/ +/* +* Address/command lane Internal VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFEEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFEEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFEEN_MASK -#define DDR_PHY_IOVCR0_ACREFEEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFEEN_SHIFT 26 -#define DDR_PHY_IOVCR0_ACREFEEN_MASK 0x0C000000U +#define DDR_PHY_IOVCR0_ACREFEEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFEEN_SHIFT 26 +#define DDR_PHY_IOVCR0_ACREFEEN_MASK 0x0C000000U -/*Address/command lane Single-End VREF Enable*/ +/* +* Address/command lane Single-End VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFSEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFSEN_MASK -#define DDR_PHY_IOVCR0_ACREFSEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSEN_SHIFT 25 -#define DDR_PHY_IOVCR0_ACREFSEN_MASK 0x02000000U +#define DDR_PHY_IOVCR0_ACREFSEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSEN_SHIFT 25 +#define DDR_PHY_IOVCR0_ACREFSEN_MASK 0x02000000U -/*Address/command lane Internal VREF Enable*/ +/* +* Address/command lane Internal VREF Enable +*/ #undef DDR_PHY_IOVCR0_ACREFIEN_DEFVAL #undef DDR_PHY_IOVCR0_ACREFIEN_SHIFT #undef DDR_PHY_IOVCR0_ACREFIEN_MASK -#define DDR_PHY_IOVCR0_ACREFIEN_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFIEN_SHIFT 24 -#define DDR_PHY_IOVCR0_ACREFIEN_MASK 0x01000000U +#define DDR_PHY_IOVCR0_ACREFIEN_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFIEN_SHIFT 24 +#define DDR_PHY_IOVCR0_ACREFIEN_MASK 0x01000000U -/*External VREF generato REFSEL range select*/ +/* +* External VREF generato REFSEL range select +*/ #undef DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACREFESELRANGE_MASK -#define DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT 23 -#define DDR_PHY_IOVCR0_ACREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_IOVCR0_ACREFESELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFESELRANGE_SHIFT 23 +#define DDR_PHY_IOVCR0_ACREFESELRANGE_MASK 0x00800000U -/*Address/command lane External VREF Select*/ +/* +* Address/command lane External VREF Select +*/ #undef DDR_PHY_IOVCR0_ACREFESEL_DEFVAL #undef DDR_PHY_IOVCR0_ACREFESEL_SHIFT #undef DDR_PHY_IOVCR0_ACREFESEL_MASK -#define DDR_PHY_IOVCR0_ACREFESEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFESEL_SHIFT 16 -#define DDR_PHY_IOVCR0_ACREFESEL_MASK 0x007F0000U +#define DDR_PHY_IOVCR0_ACREFESEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFESEL_SHIFT 16 +#define DDR_PHY_IOVCR0_ACREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT 15 -#define DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_SHIFT 15 +#define DDR_PHY_IOVCR0_ACREFSSELRANGE_MASK 0x00008000U -/*Address/command lane Single-End VREF Select*/ +/* +* Address/command lane Single-End VREF Select +*/ #undef DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL #undef DDR_PHY_IOVCR0_ACREFSSEL_SHIFT #undef DDR_PHY_IOVCR0_ACREFSSEL_MASK -#define DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACREFSSEL_SHIFT 8 -#define DDR_PHY_IOVCR0_ACREFSSEL_MASK 0x00007F00U +#define DDR_PHY_IOVCR0_ACREFSSEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACREFSSEL_SHIFT 8 +#define DDR_PHY_IOVCR0_ACREFSSEL_MASK 0x00007F00U -/*Internal VREF generator REFSEL ragne select*/ +/* +* Internal VREF generator REFSEL ragne select +*/ #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT #undef DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT 7 -#define DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK 0x00000080U +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_SHIFT 7 +#define DDR_PHY_IOVCR0_ACVREFISELRANGE_MASK 0x00000080U -/*REFSEL Control for internal AC IOs*/ +/* +* REFSEL Control for internal AC IOs +*/ #undef DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL #undef DDR_PHY_IOVCR0_ACVREFISEL_SHIFT #undef DDR_PHY_IOVCR0_ACVREFISEL_MASK -#define DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL 0x0F000000 -#define DDR_PHY_IOVCR0_ACVREFISEL_SHIFT 0 -#define DDR_PHY_IOVCR0_ACVREFISEL_MASK 0x0000007FU +#define DDR_PHY_IOVCR0_ACVREFISEL_DEFVAL 0x0F000000 +#define DDR_PHY_IOVCR0_ACVREFISEL_SHIFT 0 +#define DDR_PHY_IOVCR0_ACVREFISEL_MASK 0x0000007FU -/*Number of ctl_clk required to meet (> 150ns) timing requirements during DRAM DQ VREF training*/ +/* +* Number of ctl_clk required to meet (> 150ns) timing requirements during + * DRAM DQ VREF training +*/ #undef DDR_PHY_VTCR0_TVREF_DEFVAL #undef DDR_PHY_VTCR0_TVREF_SHIFT #undef DDR_PHY_VTCR0_TVREF_MASK -#define DDR_PHY_VTCR0_TVREF_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_TVREF_SHIFT 29 -#define DDR_PHY_VTCR0_TVREF_MASK 0xE0000000U +#define DDR_PHY_VTCR0_TVREF_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_TVREF_SHIFT 29 +#define DDR_PHY_VTCR0_TVREF_MASK 0xE0000000U -/*DRM DQ VREF training Enable*/ +/* +* DRM DQ VREF training Enable +*/ #undef DDR_PHY_VTCR0_DVEN_DEFVAL #undef DDR_PHY_VTCR0_DVEN_SHIFT #undef DDR_PHY_VTCR0_DVEN_MASK -#define DDR_PHY_VTCR0_DVEN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVEN_SHIFT 28 -#define DDR_PHY_VTCR0_DVEN_MASK 0x10000000U +#define DDR_PHY_VTCR0_DVEN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVEN_SHIFT 28 +#define DDR_PHY_VTCR0_DVEN_MASK 0x10000000U -/*Per Device Addressability Enable*/ +/* +* Per Device Addressability Enable +*/ #undef DDR_PHY_VTCR0_PDAEN_DEFVAL #undef DDR_PHY_VTCR0_PDAEN_SHIFT #undef DDR_PHY_VTCR0_PDAEN_MASK -#define DDR_PHY_VTCR0_PDAEN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_PDAEN_SHIFT 27 -#define DDR_PHY_VTCR0_PDAEN_MASK 0x08000000U +#define DDR_PHY_VTCR0_PDAEN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_PDAEN_SHIFT 27 +#define DDR_PHY_VTCR0_PDAEN_MASK 0x08000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR0_RESERVED_26_DEFVAL #undef DDR_PHY_VTCR0_RESERVED_26_SHIFT #undef DDR_PHY_VTCR0_RESERVED_26_MASK -#define DDR_PHY_VTCR0_RESERVED_26_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_RESERVED_26_SHIFT 26 -#define DDR_PHY_VTCR0_RESERVED_26_MASK 0x04000000U +#define DDR_PHY_VTCR0_RESERVED_26_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_RESERVED_26_SHIFT 26 +#define DDR_PHY_VTCR0_RESERVED_26_MASK 0x04000000U -/*VREF Word Count*/ +/* +* VREF Word Count +*/ #undef DDR_PHY_VTCR0_VWCR_DEFVAL #undef DDR_PHY_VTCR0_VWCR_SHIFT #undef DDR_PHY_VTCR0_VWCR_MASK -#define DDR_PHY_VTCR0_VWCR_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_VWCR_SHIFT 22 -#define DDR_PHY_VTCR0_VWCR_MASK 0x03C00000U +#define DDR_PHY_VTCR0_VWCR_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_VWCR_SHIFT 22 +#define DDR_PHY_VTCR0_VWCR_MASK 0x03C00000U -/*DRAM DQ VREF step size used during DRAM VREF training*/ +/* +* DRAM DQ VREF step size used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVSS_DEFVAL #undef DDR_PHY_VTCR0_DVSS_SHIFT #undef DDR_PHY_VTCR0_DVSS_MASK -#define DDR_PHY_VTCR0_DVSS_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVSS_SHIFT 18 -#define DDR_PHY_VTCR0_DVSS_MASK 0x003C0000U +#define DDR_PHY_VTCR0_DVSS_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVSS_SHIFT 18 +#define DDR_PHY_VTCR0_DVSS_MASK 0x003C0000U -/*Maximum VREF limit value used during DRAM VREF training*/ +/* +* Maximum VREF limit value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVMAX_DEFVAL #undef DDR_PHY_VTCR0_DVMAX_SHIFT #undef DDR_PHY_VTCR0_DVMAX_MASK -#define DDR_PHY_VTCR0_DVMAX_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVMAX_SHIFT 12 -#define DDR_PHY_VTCR0_DVMAX_MASK 0x0003F000U +#define DDR_PHY_VTCR0_DVMAX_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVMAX_SHIFT 12 +#define DDR_PHY_VTCR0_DVMAX_MASK 0x0003F000U -/*Minimum VREF limit value used during DRAM VREF training*/ +/* +* Minimum VREF limit value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVMIN_DEFVAL #undef DDR_PHY_VTCR0_DVMIN_SHIFT #undef DDR_PHY_VTCR0_DVMIN_MASK -#define DDR_PHY_VTCR0_DVMIN_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVMIN_SHIFT 6 -#define DDR_PHY_VTCR0_DVMIN_MASK 0x00000FC0U +#define DDR_PHY_VTCR0_DVMIN_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVMIN_SHIFT 6 +#define DDR_PHY_VTCR0_DVMIN_MASK 0x00000FC0U -/*Initial DRAM DQ VREF value used during DRAM VREF training*/ +/* +* Initial DRAM DQ VREF value used during DRAM VREF training +*/ #undef DDR_PHY_VTCR0_DVINIT_DEFVAL #undef DDR_PHY_VTCR0_DVINIT_SHIFT #undef DDR_PHY_VTCR0_DVINIT_MASK -#define DDR_PHY_VTCR0_DVINIT_DEFVAL 0x70032019 -#define DDR_PHY_VTCR0_DVINIT_SHIFT 0 -#define DDR_PHY_VTCR0_DVINIT_MASK 0x0000003FU +#define DDR_PHY_VTCR0_DVINIT_DEFVAL 0x70032019 +#define DDR_PHY_VTCR0_DVINIT_SHIFT 0 +#define DDR_PHY_VTCR0_DVINIT_MASK 0x0000003FU -/*Host VREF step size used during VREF training. The register value of N indicates step size of (N+1)*/ +/* +* Host VREF step size used during VREF training. The register value of N i + * ndicates step size of (N+1) +*/ #undef DDR_PHY_VTCR1_HVSS_DEFVAL #undef DDR_PHY_VTCR1_HVSS_SHIFT #undef DDR_PHY_VTCR1_HVSS_MASK -#define DDR_PHY_VTCR1_HVSS_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVSS_SHIFT 28 -#define DDR_PHY_VTCR1_HVSS_MASK 0xF0000000U +#define DDR_PHY_VTCR1_HVSS_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVSS_SHIFT 28 +#define DDR_PHY_VTCR1_HVSS_MASK 0xF0000000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_27_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_27_SHIFT #undef DDR_PHY_VTCR1_RESERVED_27_MASK -#define DDR_PHY_VTCR1_RESERVED_27_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_27_SHIFT 27 -#define DDR_PHY_VTCR1_RESERVED_27_MASK 0x08000000U +#define DDR_PHY_VTCR1_RESERVED_27_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_27_SHIFT 27 +#define DDR_PHY_VTCR1_RESERVED_27_MASK 0x08000000U -/*Maximum VREF limit value used during DRAM VREF training.*/ +/* +* Maximum VREF limit value used during DRAM VREF training. +*/ #undef DDR_PHY_VTCR1_HVMAX_DEFVAL #undef DDR_PHY_VTCR1_HVMAX_SHIFT #undef DDR_PHY_VTCR1_HVMAX_MASK -#define DDR_PHY_VTCR1_HVMAX_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVMAX_SHIFT 20 -#define DDR_PHY_VTCR1_HVMAX_MASK 0x07F00000U +#define DDR_PHY_VTCR1_HVMAX_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVMAX_SHIFT 20 +#define DDR_PHY_VTCR1_HVMAX_MASK 0x07F00000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_19_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_19_SHIFT #undef DDR_PHY_VTCR1_RESERVED_19_MASK -#define DDR_PHY_VTCR1_RESERVED_19_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_19_SHIFT 19 -#define DDR_PHY_VTCR1_RESERVED_19_MASK 0x00080000U +#define DDR_PHY_VTCR1_RESERVED_19_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_19_SHIFT 19 +#define DDR_PHY_VTCR1_RESERVED_19_MASK 0x00080000U -/*Minimum VREF limit value used during DRAM VREF training.*/ +/* +* Minimum VREF limit value used during DRAM VREF training. +*/ #undef DDR_PHY_VTCR1_HVMIN_DEFVAL #undef DDR_PHY_VTCR1_HVMIN_SHIFT #undef DDR_PHY_VTCR1_HVMIN_MASK -#define DDR_PHY_VTCR1_HVMIN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVMIN_SHIFT 12 -#define DDR_PHY_VTCR1_HVMIN_MASK 0x0007F000U +#define DDR_PHY_VTCR1_HVMIN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVMIN_SHIFT 12 +#define DDR_PHY_VTCR1_HVMIN_MASK 0x0007F000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_VTCR1_RESERVED_11_DEFVAL #undef DDR_PHY_VTCR1_RESERVED_11_SHIFT #undef DDR_PHY_VTCR1_RESERVED_11_MASK -#define DDR_PHY_VTCR1_RESERVED_11_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_RESERVED_11_SHIFT 11 -#define DDR_PHY_VTCR1_RESERVED_11_MASK 0x00000800U +#define DDR_PHY_VTCR1_RESERVED_11_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_RESERVED_11_SHIFT 11 +#define DDR_PHY_VTCR1_RESERVED_11_MASK 0x00000800U -/*Static Host Vref Rank Value*/ +/* +* Static Host Vref Rank Value +*/ #undef DDR_PHY_VTCR1_SHRNK_DEFVAL #undef DDR_PHY_VTCR1_SHRNK_SHIFT #undef DDR_PHY_VTCR1_SHRNK_MASK -#define DDR_PHY_VTCR1_SHRNK_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_SHRNK_SHIFT 9 -#define DDR_PHY_VTCR1_SHRNK_MASK 0x00000600U +#define DDR_PHY_VTCR1_SHRNK_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_SHRNK_SHIFT 9 +#define DDR_PHY_VTCR1_SHRNK_MASK 0x00000600U -/*Static Host Vref Rank Enable*/ +/* +* Static Host Vref Rank Enable +*/ #undef DDR_PHY_VTCR1_SHREN_DEFVAL #undef DDR_PHY_VTCR1_SHREN_SHIFT #undef DDR_PHY_VTCR1_SHREN_MASK -#define DDR_PHY_VTCR1_SHREN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_SHREN_SHIFT 8 -#define DDR_PHY_VTCR1_SHREN_MASK 0x00000100U +#define DDR_PHY_VTCR1_SHREN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_SHREN_SHIFT 8 +#define DDR_PHY_VTCR1_SHREN_MASK 0x00000100U -/*Number of ctl_clk required to meet (> 200ns) VREF Settling timing requirements during Host IO VREF training*/ +/* +* Number of ctl_clk required to meet (> 200ns) VREF Settling timing requir + * ements during Host IO VREF training +*/ #undef DDR_PHY_VTCR1_TVREFIO_DEFVAL #undef DDR_PHY_VTCR1_TVREFIO_SHIFT #undef DDR_PHY_VTCR1_TVREFIO_MASK -#define DDR_PHY_VTCR1_TVREFIO_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_TVREFIO_SHIFT 5 -#define DDR_PHY_VTCR1_TVREFIO_MASK 0x000000E0U +#define DDR_PHY_VTCR1_TVREFIO_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_TVREFIO_SHIFT 5 +#define DDR_PHY_VTCR1_TVREFIO_MASK 0x000000E0U -/*Eye LCDL Offset value for VREF training*/ +/* +* Eye LCDL Offset value for VREF training +*/ #undef DDR_PHY_VTCR1_EOFF_DEFVAL #undef DDR_PHY_VTCR1_EOFF_SHIFT #undef DDR_PHY_VTCR1_EOFF_MASK -#define DDR_PHY_VTCR1_EOFF_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_EOFF_SHIFT 3 -#define DDR_PHY_VTCR1_EOFF_MASK 0x00000018U +#define DDR_PHY_VTCR1_EOFF_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_EOFF_SHIFT 3 +#define DDR_PHY_VTCR1_EOFF_MASK 0x00000018U -/*Number of LCDL Eye points for which VREF training is repeated*/ +/* +* Number of LCDL Eye points for which VREF training is repeated +*/ #undef DDR_PHY_VTCR1_ENUM_DEFVAL #undef DDR_PHY_VTCR1_ENUM_SHIFT #undef DDR_PHY_VTCR1_ENUM_MASK -#define DDR_PHY_VTCR1_ENUM_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_ENUM_SHIFT 2 -#define DDR_PHY_VTCR1_ENUM_MASK 0x00000004U +#define DDR_PHY_VTCR1_ENUM_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_ENUM_SHIFT 2 +#define DDR_PHY_VTCR1_ENUM_MASK 0x00000004U -/*HOST (IO) internal VREF training Enable*/ +/* +* HOST (IO) internal VREF training Enable +*/ #undef DDR_PHY_VTCR1_HVEN_DEFVAL #undef DDR_PHY_VTCR1_HVEN_SHIFT #undef DDR_PHY_VTCR1_HVEN_MASK -#define DDR_PHY_VTCR1_HVEN_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVEN_SHIFT 1 -#define DDR_PHY_VTCR1_HVEN_MASK 0x00000002U +#define DDR_PHY_VTCR1_HVEN_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVEN_SHIFT 1 +#define DDR_PHY_VTCR1_HVEN_MASK 0x00000002U -/*Host IO Type Control*/ +/* +* Host IO Type Control +*/ #undef DDR_PHY_VTCR1_HVIO_DEFVAL #undef DDR_PHY_VTCR1_HVIO_SHIFT #undef DDR_PHY_VTCR1_HVIO_MASK -#define DDR_PHY_VTCR1_HVIO_DEFVAL 0x07F00072 -#define DDR_PHY_VTCR1_HVIO_SHIFT 0 -#define DDR_PHY_VTCR1_HVIO_MASK 0x00000001U +#define DDR_PHY_VTCR1_HVIO_DEFVAL 0x07F00072 +#define DDR_PHY_VTCR1_HVIO_SHIFT 0 +#define DDR_PHY_VTCR1_HVIO_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR1_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR1_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR1_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Parity.*/ +/* +* Delay select for the BDL on Parity. +*/ #undef DDR_PHY_ACBDLR1_PARBD_DEFVAL #undef DDR_PHY_ACBDLR1_PARBD_SHIFT #undef DDR_PHY_ACBDLR1_PARBD_MASK -#define DDR_PHY_ACBDLR1_PARBD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_PARBD_SHIFT 24 -#define DDR_PHY_ACBDLR1_PARBD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR1_PARBD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_PARBD_SHIFT 24 +#define DDR_PHY_ACBDLR1_PARBD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR1_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR1_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR1_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[16]. In DDR3 mode this pin is connected to WE.*/ +/* +* Delay select for the BDL on Address A[16]. In DDR3 mode this pin is conn + * ected to WE. +*/ #undef DDR_PHY_ACBDLR1_A16BD_DEFVAL #undef DDR_PHY_ACBDLR1_A16BD_SHIFT #undef DDR_PHY_ACBDLR1_A16BD_MASK -#define DDR_PHY_ACBDLR1_A16BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_A16BD_SHIFT 16 -#define DDR_PHY_ACBDLR1_A16BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR1_A16BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_A16BD_SHIFT 16 +#define DDR_PHY_ACBDLR1_A16BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR1_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR1_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR1_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[17]. When not in DDR4 modemode this pin is connected to CAS.*/ +/* +* Delay select for the BDL on Address A[17]. When not in DDR4 modemode thi + * s pin is connected to CAS. +*/ #undef DDR_PHY_ACBDLR1_A17BD_DEFVAL #undef DDR_PHY_ACBDLR1_A17BD_SHIFT #undef DDR_PHY_ACBDLR1_A17BD_MASK -#define DDR_PHY_ACBDLR1_A17BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_A17BD_SHIFT 8 -#define DDR_PHY_ACBDLR1_A17BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR1_A17BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_A17BD_SHIFT 8 +#define DDR_PHY_ACBDLR1_A17BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR1_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR1_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR1_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR1_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on ACTN.*/ +/* +* Delay select for the BDL on ACTN. +*/ #undef DDR_PHY_ACBDLR1_ACTBD_DEFVAL #undef DDR_PHY_ACBDLR1_ACTBD_SHIFT #undef DDR_PHY_ACBDLR1_ACTBD_MASK -#define DDR_PHY_ACBDLR1_ACTBD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR1_ACTBD_SHIFT 0 -#define DDR_PHY_ACBDLR1_ACTBD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR1_ACTBD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR1_ACTBD_SHIFT 0 +#define DDR_PHY_ACBDLR1_ACTBD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR2_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR2_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR2_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on BG[1].*/ +/* +* Delay select for the BDL on BG[1]. +*/ #undef DDR_PHY_ACBDLR2_BG1BD_DEFVAL #undef DDR_PHY_ACBDLR2_BG1BD_SHIFT #undef DDR_PHY_ACBDLR2_BG1BD_MASK -#define DDR_PHY_ACBDLR2_BG1BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BG1BD_SHIFT 24 -#define DDR_PHY_ACBDLR2_BG1BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR2_BG1BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BG1BD_SHIFT 24 +#define DDR_PHY_ACBDLR2_BG1BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR2_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR2_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR2_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on BG[0].*/ +/* +* Delay select for the BDL on BG[0]. +*/ #undef DDR_PHY_ACBDLR2_BG0BD_DEFVAL #undef DDR_PHY_ACBDLR2_BG0BD_SHIFT #undef DDR_PHY_ACBDLR2_BG0BD_MASK -#define DDR_PHY_ACBDLR2_BG0BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BG0BD_SHIFT 16 -#define DDR_PHY_ACBDLR2_BG0BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR2_BG0BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BG0BD_SHIFT 16 +#define DDR_PHY_ACBDLR2_BG0BD_MASK 0x003F0000U -/*Reser.ved Return zeroes on reads.*/ +/* +* Reser.ved Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR2_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR2_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR2_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on BA[1].*/ +/* +* Delay select for the BDL on BA[1]. +*/ #undef DDR_PHY_ACBDLR2_BA1BD_DEFVAL #undef DDR_PHY_ACBDLR2_BA1BD_SHIFT #undef DDR_PHY_ACBDLR2_BA1BD_MASK -#define DDR_PHY_ACBDLR2_BA1BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BA1BD_SHIFT 8 -#define DDR_PHY_ACBDLR2_BA1BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR2_BA1BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BA1BD_SHIFT 8 +#define DDR_PHY_ACBDLR2_BA1BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR2_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR2_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR2_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR2_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on BA[0].*/ +/* +* Delay select for the BDL on BA[0]. +*/ #undef DDR_PHY_ACBDLR2_BA0BD_DEFVAL #undef DDR_PHY_ACBDLR2_BA0BD_SHIFT #undef DDR_PHY_ACBDLR2_BA0BD_MASK -#define DDR_PHY_ACBDLR2_BA0BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR2_BA0BD_SHIFT 0 -#define DDR_PHY_ACBDLR2_BA0BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR2_BA0BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR2_BA0BD_SHIFT 0 +#define DDR_PHY_ACBDLR2_BA0BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR6_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR6_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[3].*/ +/* +* Delay select for the BDL on Address A[3]. +*/ #undef DDR_PHY_ACBDLR6_A03BD_DEFVAL #undef DDR_PHY_ACBDLR6_A03BD_SHIFT #undef DDR_PHY_ACBDLR6_A03BD_MASK -#define DDR_PHY_ACBDLR6_A03BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A03BD_SHIFT 24 -#define DDR_PHY_ACBDLR6_A03BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR6_A03BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A03BD_SHIFT 24 +#define DDR_PHY_ACBDLR6_A03BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR6_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR6_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[2].*/ +/* +* Delay select for the BDL on Address A[2]. +*/ #undef DDR_PHY_ACBDLR6_A02BD_DEFVAL #undef DDR_PHY_ACBDLR6_A02BD_SHIFT #undef DDR_PHY_ACBDLR6_A02BD_MASK -#define DDR_PHY_ACBDLR6_A02BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A02BD_SHIFT 16 -#define DDR_PHY_ACBDLR6_A02BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR6_A02BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A02BD_SHIFT 16 +#define DDR_PHY_ACBDLR6_A02BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR6_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR6_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[1].*/ +/* +* Delay select for the BDL on Address A[1]. +*/ #undef DDR_PHY_ACBDLR6_A01BD_DEFVAL #undef DDR_PHY_ACBDLR6_A01BD_SHIFT #undef DDR_PHY_ACBDLR6_A01BD_MASK -#define DDR_PHY_ACBDLR6_A01BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A01BD_SHIFT 8 -#define DDR_PHY_ACBDLR6_A01BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR6_A01BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A01BD_SHIFT 8 +#define DDR_PHY_ACBDLR6_A01BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR6_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR6_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR6_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[0].*/ +/* +* Delay select for the BDL on Address A[0]. +*/ #undef DDR_PHY_ACBDLR6_A00BD_DEFVAL #undef DDR_PHY_ACBDLR6_A00BD_SHIFT #undef DDR_PHY_ACBDLR6_A00BD_MASK -#define DDR_PHY_ACBDLR6_A00BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR6_A00BD_SHIFT 0 -#define DDR_PHY_ACBDLR6_A00BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR6_A00BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR6_A00BD_SHIFT 0 +#define DDR_PHY_ACBDLR6_A00BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR7_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR7_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR7_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[7].*/ +/* +* Delay select for the BDL on Address A[7]. +*/ #undef DDR_PHY_ACBDLR7_A07BD_DEFVAL #undef DDR_PHY_ACBDLR7_A07BD_SHIFT #undef DDR_PHY_ACBDLR7_A07BD_MASK -#define DDR_PHY_ACBDLR7_A07BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A07BD_SHIFT 24 -#define DDR_PHY_ACBDLR7_A07BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR7_A07BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A07BD_SHIFT 24 +#define DDR_PHY_ACBDLR7_A07BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR7_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR7_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR7_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[6].*/ +/* +* Delay select for the BDL on Address A[6]. +*/ #undef DDR_PHY_ACBDLR7_A06BD_DEFVAL #undef DDR_PHY_ACBDLR7_A06BD_SHIFT #undef DDR_PHY_ACBDLR7_A06BD_MASK -#define DDR_PHY_ACBDLR7_A06BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A06BD_SHIFT 16 -#define DDR_PHY_ACBDLR7_A06BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR7_A06BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A06BD_SHIFT 16 +#define DDR_PHY_ACBDLR7_A06BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR7_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR7_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR7_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[5].*/ +/* +* Delay select for the BDL on Address A[5]. +*/ #undef DDR_PHY_ACBDLR7_A05BD_DEFVAL #undef DDR_PHY_ACBDLR7_A05BD_SHIFT #undef DDR_PHY_ACBDLR7_A05BD_MASK -#define DDR_PHY_ACBDLR7_A05BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A05BD_SHIFT 8 -#define DDR_PHY_ACBDLR7_A05BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR7_A05BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A05BD_SHIFT 8 +#define DDR_PHY_ACBDLR7_A05BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR7_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR7_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR7_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR7_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[4].*/ +/* +* Delay select for the BDL on Address A[4]. +*/ #undef DDR_PHY_ACBDLR7_A04BD_DEFVAL #undef DDR_PHY_ACBDLR7_A04BD_SHIFT #undef DDR_PHY_ACBDLR7_A04BD_MASK -#define DDR_PHY_ACBDLR7_A04BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR7_A04BD_SHIFT 0 -#define DDR_PHY_ACBDLR7_A04BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR7_A04BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR7_A04BD_SHIFT 0 +#define DDR_PHY_ACBDLR7_A04BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR8_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR8_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR8_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[11].*/ +/* +* Delay select for the BDL on Address A[11]. +*/ #undef DDR_PHY_ACBDLR8_A11BD_DEFVAL #undef DDR_PHY_ACBDLR8_A11BD_SHIFT #undef DDR_PHY_ACBDLR8_A11BD_MASK -#define DDR_PHY_ACBDLR8_A11BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A11BD_SHIFT 24 -#define DDR_PHY_ACBDLR8_A11BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR8_A11BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A11BD_SHIFT 24 +#define DDR_PHY_ACBDLR8_A11BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR8_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR8_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR8_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[10].*/ +/* +* Delay select for the BDL on Address A[10]. +*/ #undef DDR_PHY_ACBDLR8_A10BD_DEFVAL #undef DDR_PHY_ACBDLR8_A10BD_SHIFT #undef DDR_PHY_ACBDLR8_A10BD_MASK -#define DDR_PHY_ACBDLR8_A10BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A10BD_SHIFT 16 -#define DDR_PHY_ACBDLR8_A10BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR8_A10BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A10BD_SHIFT 16 +#define DDR_PHY_ACBDLR8_A10BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR8_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR8_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR8_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[9].*/ +/* +* Delay select for the BDL on Address A[9]. +*/ #undef DDR_PHY_ACBDLR8_A09BD_DEFVAL #undef DDR_PHY_ACBDLR8_A09BD_SHIFT #undef DDR_PHY_ACBDLR8_A09BD_MASK -#define DDR_PHY_ACBDLR8_A09BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A09BD_SHIFT 8 -#define DDR_PHY_ACBDLR8_A09BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR8_A09BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A09BD_SHIFT 8 +#define DDR_PHY_ACBDLR8_A09BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR8_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR8_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR8_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR8_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[8].*/ +/* +* Delay select for the BDL on Address A[8]. +*/ #undef DDR_PHY_ACBDLR8_A08BD_DEFVAL #undef DDR_PHY_ACBDLR8_A08BD_SHIFT #undef DDR_PHY_ACBDLR8_A08BD_MASK -#define DDR_PHY_ACBDLR8_A08BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR8_A08BD_SHIFT 0 -#define DDR_PHY_ACBDLR8_A08BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR8_A08BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR8_A08BD_SHIFT 0 +#define DDR_PHY_ACBDLR8_A08BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_31_30_MASK -#define DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_ACBDLR9_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_ACBDLR9_RESERVED_31_30_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_ACBDLR9_RESERVED_31_30_MASK 0xC0000000U -/*Delay select for the BDL on Address A[15].*/ +/* +* Delay select for the BDL on Address A[15]. +*/ #undef DDR_PHY_ACBDLR9_A15BD_DEFVAL #undef DDR_PHY_ACBDLR9_A15BD_SHIFT #undef DDR_PHY_ACBDLR9_A15BD_MASK -#define DDR_PHY_ACBDLR9_A15BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A15BD_SHIFT 24 -#define DDR_PHY_ACBDLR9_A15BD_MASK 0x3F000000U +#define DDR_PHY_ACBDLR9_A15BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A15BD_SHIFT 24 +#define DDR_PHY_ACBDLR9_A15BD_MASK 0x3F000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_23_22_MASK -#define DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_ACBDLR9_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_ACBDLR9_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_ACBDLR9_RESERVED_23_22_MASK 0x00C00000U -/*Delay select for the BDL on Address A[14].*/ +/* +* Delay select for the BDL on Address A[14]. +*/ #undef DDR_PHY_ACBDLR9_A14BD_DEFVAL #undef DDR_PHY_ACBDLR9_A14BD_SHIFT #undef DDR_PHY_ACBDLR9_A14BD_MASK -#define DDR_PHY_ACBDLR9_A14BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A14BD_SHIFT 16 -#define DDR_PHY_ACBDLR9_A14BD_MASK 0x003F0000U +#define DDR_PHY_ACBDLR9_A14BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A14BD_SHIFT 16 +#define DDR_PHY_ACBDLR9_A14BD_MASK 0x003F0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_15_14_MASK -#define DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_ACBDLR9_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_ACBDLR9_RESERVED_15_14_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_ACBDLR9_RESERVED_15_14_MASK 0x0000C000U -/*Delay select for the BDL on Address A[13].*/ +/* +* Delay select for the BDL on Address A[13]. +*/ #undef DDR_PHY_ACBDLR9_A13BD_DEFVAL #undef DDR_PHY_ACBDLR9_A13BD_SHIFT #undef DDR_PHY_ACBDLR9_A13BD_MASK -#define DDR_PHY_ACBDLR9_A13BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A13BD_SHIFT 8 -#define DDR_PHY_ACBDLR9_A13BD_MASK 0x00003F00U +#define DDR_PHY_ACBDLR9_A13BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A13BD_SHIFT 8 +#define DDR_PHY_ACBDLR9_A13BD_MASK 0x00003F00U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL #undef DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT #undef DDR_PHY_ACBDLR9_RESERVED_7_6_MASK -#define DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_ACBDLR9_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_ACBDLR9_RESERVED_7_6_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_ACBDLR9_RESERVED_7_6_MASK 0x000000C0U -/*Delay select for the BDL on Address A[12].*/ +/* +* Delay select for the BDL on Address A[12]. +*/ #undef DDR_PHY_ACBDLR9_A12BD_DEFVAL #undef DDR_PHY_ACBDLR9_A12BD_SHIFT #undef DDR_PHY_ACBDLR9_A12BD_MASK -#define DDR_PHY_ACBDLR9_A12BD_DEFVAL 0x00000000 -#define DDR_PHY_ACBDLR9_A12BD_SHIFT 0 -#define DDR_PHY_ACBDLR9_A12BD_MASK 0x0000003FU +#define DDR_PHY_ACBDLR9_A12BD_DEFVAL 0x00000000 +#define DDR_PHY_ACBDLR9_A12BD_SHIFT 0 +#define DDR_PHY_ACBDLR9_A12BD_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQCR_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQCR_RESERVED_31_26_MASK -#define DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQCR_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQCR_RESERVED_31_26_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQCR_RESERVED_31_26_MASK 0xFC000000U -/*ZQ VREF Range*/ +/* +* ZQ VREF Range +*/ #undef DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL #undef DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT #undef DDR_PHY_ZQCR_ZQREFISELRANGE_MASK -#define DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT 25 -#define DDR_PHY_ZQCR_ZQREFISELRANGE_MASK 0x02000000U +#define DDR_PHY_ZQCR_ZQREFISELRANGE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFISELRANGE_SHIFT 25 +#define DDR_PHY_ZQCR_ZQREFISELRANGE_MASK 0x02000000U -/*Programmable Wait for Frequency B*/ +/* +* Programmable Wait for Frequency B +*/ #undef DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL #undef DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT #undef DDR_PHY_ZQCR_PGWAIT_FRQB_MASK -#define DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT 19 -#define DDR_PHY_ZQCR_PGWAIT_FRQB_MASK 0x01F80000U +#define DDR_PHY_ZQCR_PGWAIT_FRQB_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_PGWAIT_FRQB_SHIFT 19 +#define DDR_PHY_ZQCR_PGWAIT_FRQB_MASK 0x01F80000U -/*Programmable Wait for Frequency A*/ +/* +* Programmable Wait for Frequency A +*/ #undef DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL #undef DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT #undef DDR_PHY_ZQCR_PGWAIT_FRQA_MASK -#define DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT 13 -#define DDR_PHY_ZQCR_PGWAIT_FRQA_MASK 0x0007E000U +#define DDR_PHY_ZQCR_PGWAIT_FRQA_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_PGWAIT_FRQA_SHIFT 13 +#define DDR_PHY_ZQCR_PGWAIT_FRQA_MASK 0x0007E000U -/*ZQ VREF Pad Enable*/ +/* +* ZQ VREF Pad Enable +*/ #undef DDR_PHY_ZQCR_ZQREFPEN_DEFVAL #undef DDR_PHY_ZQCR_ZQREFPEN_SHIFT #undef DDR_PHY_ZQCR_ZQREFPEN_MASK -#define DDR_PHY_ZQCR_ZQREFPEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFPEN_SHIFT 12 -#define DDR_PHY_ZQCR_ZQREFPEN_MASK 0x00001000U +#define DDR_PHY_ZQCR_ZQREFPEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFPEN_SHIFT 12 +#define DDR_PHY_ZQCR_ZQREFPEN_MASK 0x00001000U -/*ZQ Internal VREF Enable*/ +/* +* ZQ Internal VREF Enable +*/ #undef DDR_PHY_ZQCR_ZQREFIEN_DEFVAL #undef DDR_PHY_ZQCR_ZQREFIEN_SHIFT #undef DDR_PHY_ZQCR_ZQREFIEN_MASK -#define DDR_PHY_ZQCR_ZQREFIEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQREFIEN_SHIFT 11 -#define DDR_PHY_ZQCR_ZQREFIEN_MASK 0x00000800U +#define DDR_PHY_ZQCR_ZQREFIEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQREFIEN_SHIFT 11 +#define DDR_PHY_ZQCR_ZQREFIEN_MASK 0x00000800U -/*Choice of termination mode*/ +/* +* Choice of termination mode +*/ #undef DDR_PHY_ZQCR_ODT_MODE_DEFVAL #undef DDR_PHY_ZQCR_ODT_MODE_SHIFT #undef DDR_PHY_ZQCR_ODT_MODE_MASK -#define DDR_PHY_ZQCR_ODT_MODE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ODT_MODE_SHIFT 9 -#define DDR_PHY_ZQCR_ODT_MODE_MASK 0x00000600U +#define DDR_PHY_ZQCR_ODT_MODE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ODT_MODE_SHIFT 9 +#define DDR_PHY_ZQCR_ODT_MODE_MASK 0x00000600U -/*Force ZCAL VT update*/ +/* +* Force ZCAL VT update +*/ #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT #undef DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT 8 -#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK 0x00000100U +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_SHIFT 8 +#define DDR_PHY_ZQCR_FORCE_ZCAL_VT_UPDATE_MASK 0x00000100U -/*IO VT Drift Limit*/ +/* +* IO VT Drift Limit +*/ #undef DDR_PHY_ZQCR_IODLMT_DEFVAL #undef DDR_PHY_ZQCR_IODLMT_SHIFT #undef DDR_PHY_ZQCR_IODLMT_MASK -#define DDR_PHY_ZQCR_IODLMT_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_IODLMT_SHIFT 5 -#define DDR_PHY_ZQCR_IODLMT_MASK 0x000000E0U +#define DDR_PHY_ZQCR_IODLMT_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_IODLMT_SHIFT 5 +#define DDR_PHY_ZQCR_IODLMT_MASK 0x000000E0U -/*Averaging algorithm enable, if set, enables averaging algorithm*/ +/* +* Averaging algorithm enable, if set, enables averaging algorithm +*/ #undef DDR_PHY_ZQCR_AVGEN_DEFVAL #undef DDR_PHY_ZQCR_AVGEN_SHIFT #undef DDR_PHY_ZQCR_AVGEN_MASK -#define DDR_PHY_ZQCR_AVGEN_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_AVGEN_SHIFT 4 -#define DDR_PHY_ZQCR_AVGEN_MASK 0x00000010U +#define DDR_PHY_ZQCR_AVGEN_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_AVGEN_SHIFT 4 +#define DDR_PHY_ZQCR_AVGEN_MASK 0x00000010U -/*Maximum number of averaging rounds to be used by averaging algorithm*/ +/* +* Maximum number of averaging rounds to be used by averaging algorithm +*/ #undef DDR_PHY_ZQCR_AVGMAX_DEFVAL #undef DDR_PHY_ZQCR_AVGMAX_SHIFT #undef DDR_PHY_ZQCR_AVGMAX_MASK -#define DDR_PHY_ZQCR_AVGMAX_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_AVGMAX_SHIFT 2 -#define DDR_PHY_ZQCR_AVGMAX_MASK 0x0000000CU +#define DDR_PHY_ZQCR_AVGMAX_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_AVGMAX_SHIFT 2 +#define DDR_PHY_ZQCR_AVGMAX_MASK 0x0000000CU -/*ZQ Calibration Type*/ +/* +* ZQ Calibration Type +*/ #undef DDR_PHY_ZQCR_ZCALT_DEFVAL #undef DDR_PHY_ZQCR_ZCALT_SHIFT #undef DDR_PHY_ZQCR_ZCALT_MASK -#define DDR_PHY_ZQCR_ZCALT_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZCALT_SHIFT 1 -#define DDR_PHY_ZQCR_ZCALT_MASK 0x00000002U +#define DDR_PHY_ZQCR_ZCALT_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZCALT_SHIFT 1 +#define DDR_PHY_ZQCR_ZCALT_MASK 0x00000002U -/*ZQ Power Down*/ +/* +* ZQ Power Down +*/ #undef DDR_PHY_ZQCR_ZQPD_DEFVAL #undef DDR_PHY_ZQCR_ZQPD_SHIFT #undef DDR_PHY_ZQCR_ZQPD_MASK -#define DDR_PHY_ZQCR_ZQPD_DEFVAL 0x008A2858 -#define DDR_PHY_ZQCR_ZQPD_SHIFT 0 -#define DDR_PHY_ZQCR_ZQPD_MASK 0x00000001U +#define DDR_PHY_ZQCR_ZQPD_DEFVAL 0x008A2858 +#define DDR_PHY_ZQCR_ZQPD_SHIFT 0 +#define DDR_PHY_ZQCR_ZQPD_MASK 0x00000001U -/*Pull-down drive strength ZCTRL over-ride enable*/ +/* +* Pull-down drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT 31 -#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK 0x80000000U +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_SHIFT 31 +#define DDR_PHY_ZQ0PR0_PD_DRV_ZDEN_MASK 0x80000000U -/*Pull-up drive strength ZCTRL over-ride enable*/ +/* +* Pull-up drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT 30 -#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK 0x40000000U +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_SHIFT 30 +#define DDR_PHY_ZQ0PR0_PU_DRV_ZDEN_MASK 0x40000000U -/*Pull-down termination ZCTRL over-ride enable*/ +/* +* Pull-down termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT 29 -#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK 0x20000000U +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_SHIFT 29 +#define DDR_PHY_ZQ0PR0_PD_ODT_ZDEN_MASK 0x20000000U -/*Pull-up termination ZCTRL over-ride enable*/ +/* +* Pull-up termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT 28 -#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK 0x10000000U +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_SHIFT 28 +#define DDR_PHY_ZQ0PR0_PU_ODT_ZDEN_MASK 0x10000000U -/*Calibration segment bypass*/ +/* +* Calibration segment bypass +*/ #undef DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL #undef DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT #undef DDR_PHY_ZQ0PR0_ZSEGBYP_MASK -#define DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT 27 -#define DDR_PHY_ZQ0PR0_ZSEGBYP_MASK 0x08000000U +#define DDR_PHY_ZQ0PR0_ZSEGBYP_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZSEGBYP_SHIFT 27 +#define DDR_PHY_ZQ0PR0_ZSEGBYP_MASK 0x08000000U -/*VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB*/ +/* +* VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB +*/ #undef DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL #undef DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT #undef DDR_PHY_ZQ0PR0_ZLE_MODE_MASK -#define DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT 25 -#define DDR_PHY_ZQ0PR0_ZLE_MODE_MASK 0x06000000U +#define DDR_PHY_ZQ0PR0_ZLE_MODE_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZLE_MODE_SHIFT 25 +#define DDR_PHY_ZQ0PR0_ZLE_MODE_MASK 0x06000000U -/*Termination adjustment*/ +/* +* Termination adjustment +*/ #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT 22 -#define DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK 0x01C00000U +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_SHIFT 22 +#define DDR_PHY_ZQ0PR0_ODT_ADJUST_MASK 0x01C00000U -/*Pulldown drive strength adjustment*/ +/* +* Pulldown drive strength adjustment +*/ #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT 19 -#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK 0x00380000U +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_SHIFT 19 +#define DDR_PHY_ZQ0PR0_PD_DRV_ADJUST_MASK 0x00380000U -/*Pullup drive strength adjustment*/ +/* +* Pullup drive strength adjustment +*/ #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT 16 -#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK 0x00070000U +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_SHIFT 16 +#define DDR_PHY_ZQ0PR0_PU_DRV_ADJUST_MASK 0x00070000U -/*DRAM Impedance Divide Ratio*/ +/* +* DRAM Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT 12 -#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_SHIFT 12 +#define DDR_PHY_ZQ0PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U -/*HOST Impedance Divide Ratio*/ +/* +* HOST Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT 8 -#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK 0x00000F00U +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_SHIFT 8 +#define DDR_PHY_ZQ0PR0_ZPROG_HOST_ODT_MASK 0x00000F00U -/*Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U -/*Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) +*/ #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT #undef DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 -#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 +#define DDR_PHY_ZQ0PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQ0OR0_RESERVED_31_26_MASK 0xFC000000U -/*Override value for the pull-up output impedance*/ +/* +* Override value for the pull-up output impedance +*/ #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT #undef DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT 16 -#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK 0x03FF0000U +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_SHIFT 16 +#define DDR_PHY_ZQ0OR0_ZDATA_PU_DRV_OVRD_MASK 0x03FF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT #undef DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_ZQ0OR0_RESERVED_15_10_MASK 0x0000FC00U -/*Override value for the pull-down output impedance*/ +/* +* Override value for the pull-down output impedance +*/ #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT #undef DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT 0 -#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK 0x000003FFU +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_SHIFT 0 +#define DDR_PHY_ZQ0OR0_ZDATA_PD_DRV_OVRD_MASK 0x000003FFU -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT #undef DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT 26 -#define DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK 0xFC000000U +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_SHIFT 26 +#define DDR_PHY_ZQ0OR1_RESERVED_31_26_MASK 0xFC000000U -/*Override value for the pull-up termination*/ +/* +* Override value for the pull-up termination +*/ #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT #undef DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT 16 -#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK 0x03FF0000U +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_SHIFT 16 +#define DDR_PHY_ZQ0OR1_ZDATA_PU_ODT_OVRD_MASK 0x03FF0000U -/*Reserved. Return zeros on reads.*/ +/* +* Reserved. Return zeros on reads. +*/ #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT #undef DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT 10 -#define DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK 0x0000FC00U +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_SHIFT 10 +#define DDR_PHY_ZQ0OR1_RESERVED_15_10_MASK 0x0000FC00U -/*Override value for the pull-down termination*/ +/* +* Override value for the pull-down termination +*/ #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT #undef DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL 0x00000000 -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT 0 -#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK 0x000003FFU +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_DEFVAL 0x00000000 +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_SHIFT 0 +#define DDR_PHY_ZQ0OR1_ZDATA_PD_ODT_OVRD_MASK 0x000003FFU -/*Pull-down drive strength ZCTRL over-ride enable*/ +/* +* Pull-down drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT 31 -#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK 0x80000000U +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_SHIFT 31 +#define DDR_PHY_ZQ1PR0_PD_DRV_ZDEN_MASK 0x80000000U -/*Pull-up drive strength ZCTRL over-ride enable*/ +/* +* Pull-up drive strength ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT 30 -#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK 0x40000000U +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_SHIFT 30 +#define DDR_PHY_ZQ1PR0_PU_DRV_ZDEN_MASK 0x40000000U -/*Pull-down termination ZCTRL over-ride enable*/ +/* +* Pull-down termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT 29 -#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK 0x20000000U +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_SHIFT 29 +#define DDR_PHY_ZQ1PR0_PD_ODT_ZDEN_MASK 0x20000000U -/*Pull-up termination ZCTRL over-ride enable*/ +/* +* Pull-up termination ZCTRL over-ride enable +*/ #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT #undef DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT 28 -#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK 0x10000000U +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_SHIFT 28 +#define DDR_PHY_ZQ1PR0_PU_ODT_ZDEN_MASK 0x10000000U -/*Calibration segment bypass*/ +/* +* Calibration segment bypass +*/ #undef DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL #undef DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT #undef DDR_PHY_ZQ1PR0_ZSEGBYP_MASK -#define DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT 27 -#define DDR_PHY_ZQ1PR0_ZSEGBYP_MASK 0x08000000U +#define DDR_PHY_ZQ1PR0_ZSEGBYP_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZSEGBYP_SHIFT 27 +#define DDR_PHY_ZQ1PR0_ZSEGBYP_MASK 0x08000000U -/*VREF latch mode controls the mode in which the ZLE pin of the PVREF cell is driven by the PUB*/ +/* +* VREF latch mode controls the mode in which the ZLE pin of the PVREF cell + * is driven by the PUB +*/ #undef DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL #undef DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT #undef DDR_PHY_ZQ1PR0_ZLE_MODE_MASK -#define DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT 25 -#define DDR_PHY_ZQ1PR0_ZLE_MODE_MASK 0x06000000U +#define DDR_PHY_ZQ1PR0_ZLE_MODE_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZLE_MODE_SHIFT 25 +#define DDR_PHY_ZQ1PR0_ZLE_MODE_MASK 0x06000000U -/*Termination adjustment*/ +/* +* Termination adjustment +*/ #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT 22 -#define DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK 0x01C00000U +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_SHIFT 22 +#define DDR_PHY_ZQ1PR0_ODT_ADJUST_MASK 0x01C00000U -/*Pulldown drive strength adjustment*/ +/* +* Pulldown drive strength adjustment +*/ #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT 19 -#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK 0x00380000U +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_SHIFT 19 +#define DDR_PHY_ZQ1PR0_PD_DRV_ADJUST_MASK 0x00380000U -/*Pullup drive strength adjustment*/ +/* +* Pullup drive strength adjustment +*/ #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT #undef DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT 16 -#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK 0x00070000U +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_SHIFT 16 +#define DDR_PHY_ZQ1PR0_PU_DRV_ADJUST_MASK 0x00070000U -/*DRAM Impedance Divide Ratio*/ +/* +* DRAM Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT 12 -#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_SHIFT 12 +#define DDR_PHY_ZQ1PR0_ZPROG_DRAM_ODT_MASK 0x0000F000U -/*HOST Impedance Divide Ratio*/ +/* +* HOST Impedance Divide Ratio +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT 8 -#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK 0x00000F00U +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_SHIFT 8 +#define DDR_PHY_ZQ1PR0_ZPROG_HOST_ODT_MASK 0x00000F00U -/*Impedance Divide Ratio (pulldown drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pulldown drive calibration during asymmetric dri + * ve strength calibration) +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_SHIFT 4 +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PD_MASK 0x000000F0U -/*Impedance Divide Ratio (pullup drive calibration during asymmetric drive strength calibration)*/ +/* +* Impedance Divide Ratio (pullup drive calibration during asymmetric drive + * strength calibration) +*/ #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT #undef DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 -#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_DEFVAL 0x000077BB +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_SHIFT 0 +#define DDR_PHY_ZQ1PR0_ZPROG_ASYM_DRV_PU_MASK 0x0000000FU -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX0GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX0GCR0_CALBYP_SHIFT #undef DDR_PHY_DX0GCR0_CALBYP_MASK -#define DDR_PHY_DX0GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX0GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX0GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX0GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX0GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX0GCR0_MDLEN_SHIFT #undef DDR_PHY_DX0GCR0_MDLEN_MASK -#define DDR_PHY_DX0GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX0GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX0GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX0GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX0GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX0GCR0_CODTSHFT_MASK -#define DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX0GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX0GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX0GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX0GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX0GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX0GCR0_DQSDCC_MASK -#define DDR_PHY_DX0GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX0GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX0GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX0GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX0GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX0GCR0_RDDLY_SHIFT #undef DDR_PHY_DX0GCR0_RDDLY_MASK -#define DDR_PHY_DX0GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX0GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX0GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX0GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX0GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX0GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX0GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX0GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX0GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX0GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX0GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX0GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX0GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX0GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX0GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX0GCR0_RTTOAL_MASK -#define DDR_PHY_DX0GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX0GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX0GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX0GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX0GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX0GCR0_RTTOH_SHIFT #undef DDR_PHY_DX0GCR0_RTTOH_MASK -#define DDR_PHY_DX0GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX0GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX0GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX0GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX0GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX0GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX0GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX0GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX0GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX0GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX0GCR0_DQSRPD_MASK -#define DDR_PHY_DX0GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX0GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX0GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX0GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX0GCR0_DQSGPDR_MASK -#define DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX0GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX0GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX0GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_4_MASK -#define DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX0GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX0GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX0GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX0GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX0GCR0_DQSGODT_MASK -#define DDR_PHY_DX0GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX0GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX0GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX0GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX0GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX0GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX0GCR0_DQSGOE_MASK -#define DDR_PHY_DX0GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX0GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX0GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX0GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX0GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX0GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX0GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX0GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX0GCR0_RESERVED_1_0_MASK 0x00000003U -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX0GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX0GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX0GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFPEN_MASK -#define DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX0GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX0GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX0GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFEEN_MASK -#define DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX0GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX0GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX0GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSEN_MASK -#define DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX0GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX0GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX0GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_24_MASK -#define DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX0GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX0GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX0GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX0GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX0GCR4_DXREFESEL_MASK -#define DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX0GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX0GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX0GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX0GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX0GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX0GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX0GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX0GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX0GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX0GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX0GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX0GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX0GCR4_DXREFIEN_MASK -#define DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX0GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX0GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX0GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX0GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX0GCR4_DXREFIMON_MASK -#define DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX0GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX0GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX0GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX0GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX0GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_31_MASK -#define DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX0GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX0GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX0GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX0GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX0GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX0GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_23_MASK -#define DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX0GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX0GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX0GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX0GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX0GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX0GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_15_MASK -#define DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX0GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX0GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX0GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX0GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX0GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX0GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX0GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX0GCR5_RESERVED_7_MASK -#define DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX0GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX0GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX0GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX0GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX0GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX0GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX0GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX0GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX0GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX0GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX0GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX0GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX0GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX0GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX0GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX0GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX0GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX0GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX0GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX0GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX0GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX0GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX0GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX0GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX0GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX0GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX0GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX0GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX0GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX0GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX0GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX0GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX0GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX0GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX0LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX0LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX0LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX0LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX0LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX0LCDLR2_DQSGD_MASK -#define DDR_PHY_DX0LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX0LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX0LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX0GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX0GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX0GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX0GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX0GTR0_WDQSL_MASK -#define DDR_PHY_DX0GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX0GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX0GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX0GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX0GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX0GTR0_WLSL_SHIFT -#undef DDR_PHY_DX0GTR0_WLSL_MASK -#define DDR_PHY_DX0GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX0GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX0GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX0GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX0GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX0GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX0GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX0GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX0GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX0GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX0GTR0_DGSL_SHIFT -#undef DDR_PHY_DX0GTR0_DGSL_MASK -#define DDR_PHY_DX0GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX0GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX0GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX1GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX1GCR0_CALBYP_SHIFT #undef DDR_PHY_DX1GCR0_CALBYP_MASK -#define DDR_PHY_DX1GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX1GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX1GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX1GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX1GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX1GCR0_MDLEN_SHIFT #undef DDR_PHY_DX1GCR0_MDLEN_MASK -#define DDR_PHY_DX1GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX1GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX1GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX1GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX1GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX1GCR0_CODTSHFT_MASK -#define DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX1GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX1GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX1GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX1GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX1GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX1GCR0_DQSDCC_MASK -#define DDR_PHY_DX1GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX1GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX1GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX1GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX1GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX1GCR0_RDDLY_SHIFT #undef DDR_PHY_DX1GCR0_RDDLY_MASK -#define DDR_PHY_DX1GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX1GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX1GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX1GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX1GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX1GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX1GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX1GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX1GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX1GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX1GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX1GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX1GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX1GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX1GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX1GCR0_RTTOAL_MASK -#define DDR_PHY_DX1GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX1GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX1GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX1GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX1GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX1GCR0_RTTOH_SHIFT #undef DDR_PHY_DX1GCR0_RTTOH_MASK -#define DDR_PHY_DX1GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX1GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX1GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX1GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX1GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX1GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX1GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX1GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX1GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX1GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX1GCR0_DQSRPD_MASK -#define DDR_PHY_DX1GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX1GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX1GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX1GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX1GCR0_DQSGPDR_MASK -#define DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX1GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX1GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX1GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_4_MASK -#define DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX1GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX1GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX1GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX1GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX1GCR0_DQSGODT_MASK -#define DDR_PHY_DX1GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX1GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX1GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX1GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX1GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX1GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX1GCR0_DQSGOE_MASK -#define DDR_PHY_DX1GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX1GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX1GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX1GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX1GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX1GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX1GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX1GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX1GCR0_RESERVED_1_0_MASK 0x00000003U -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX1GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX1GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX1GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFPEN_MASK -#define DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX1GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX1GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX1GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFEEN_MASK -#define DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX1GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX1GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX1GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSEN_MASK -#define DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX1GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX1GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX1GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_24_MASK -#define DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX1GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX1GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX1GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX1GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX1GCR4_DXREFESEL_MASK -#define DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX1GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX1GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX1GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX1GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX1GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX1GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX1GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX1GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX1GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX1GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX1GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX1GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX1GCR4_DXREFIEN_MASK -#define DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX1GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX1GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX1GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX1GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX1GCR4_DXREFIMON_MASK -#define DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX1GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX1GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX1GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX1GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX1GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_31_MASK -#define DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX1GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX1GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX1GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX1GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX1GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX1GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_23_MASK -#define DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX1GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX1GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX1GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX1GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX1GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX1GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_15_MASK -#define DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX1GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX1GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX1GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX1GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX1GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX1GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX1GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX1GCR5_RESERVED_7_MASK -#define DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX1GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX1GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX1GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX1GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX1GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX1GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX1GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX1GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX1GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX1GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX1GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX1GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX1GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX1GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX1GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX1GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX1GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX1GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX1GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX1GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX1GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX1GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX1GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX1GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX1GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX1GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX1GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX1GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX1GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX1GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX1GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX1GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX1GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX1GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX1LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX1LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX1LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX1LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX1LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX1LCDLR2_DQSGD_MASK -#define DDR_PHY_DX1LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX1LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX1LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX1GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX1GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX1GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX1GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX1GTR0_WDQSL_MASK -#define DDR_PHY_DX1GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX1GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX1GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX1GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX1GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX1GTR0_WLSL_SHIFT -#undef DDR_PHY_DX1GTR0_WLSL_MASK -#define DDR_PHY_DX1GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX1GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX1GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX1GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX1GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX1GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX1GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX1GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX1GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX1GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX1GTR0_DGSL_SHIFT -#undef DDR_PHY_DX1GTR0_DGSL_MASK -#define DDR_PHY_DX1GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX1GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX1GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX2GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX2GCR0_CALBYP_SHIFT #undef DDR_PHY_DX2GCR0_CALBYP_MASK -#define DDR_PHY_DX2GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX2GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX2GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX2GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX2GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX2GCR0_MDLEN_SHIFT #undef DDR_PHY_DX2GCR0_MDLEN_MASK -#define DDR_PHY_DX2GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX2GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX2GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX2GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX2GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX2GCR0_CODTSHFT_MASK -#define DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX2GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX2GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX2GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX2GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX2GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX2GCR0_DQSDCC_MASK -#define DDR_PHY_DX2GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX2GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX2GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX2GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX2GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX2GCR0_RDDLY_SHIFT #undef DDR_PHY_DX2GCR0_RDDLY_MASK -#define DDR_PHY_DX2GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX2GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX2GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX2GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX2GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX2GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX2GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX2GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX2GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX2GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX2GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX2GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX2GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX2GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX2GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX2GCR0_RTTOAL_MASK -#define DDR_PHY_DX2GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX2GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX2GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX2GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX2GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX2GCR0_RTTOH_SHIFT #undef DDR_PHY_DX2GCR0_RTTOH_MASK -#define DDR_PHY_DX2GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX2GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX2GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX2GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX2GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX2GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX2GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX2GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX2GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX2GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX2GCR0_DQSRPD_MASK -#define DDR_PHY_DX2GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX2GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX2GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX2GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX2GCR0_DQSGPDR_MASK -#define DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX2GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX2GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX2GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_4_MASK -#define DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX2GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX2GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX2GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX2GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX2GCR0_DQSGODT_MASK -#define DDR_PHY_DX2GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX2GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX2GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX2GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX2GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX2GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX2GCR0_DQSGOE_MASK -#define DDR_PHY_DX2GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX2GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX2GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX2GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX2GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX2GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX2GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX2GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX2GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX2GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX2GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX2GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX2GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX2GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX2GCR1_RESERVED_15_MASK -#define DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX2GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX2GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX2GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX2GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX2GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX2GCR1_QSNSEL_MASK -#define DDR_PHY_DX2GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX2GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX2GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX2GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX2GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX2GCR1_QSSEL_SHIFT #undef DDR_PHY_DX2GCR1_QSSEL_MASK -#define DDR_PHY_DX2GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX2GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX2GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX2GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX2GCR1_OEEN_DEFVAL #undef DDR_PHY_DX2GCR1_OEEN_SHIFT #undef DDR_PHY_DX2GCR1_OEEN_MASK -#define DDR_PHY_DX2GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX2GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX2GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX2GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX2GCR1_PDREN_DEFVAL #undef DDR_PHY_DX2GCR1_PDREN_SHIFT #undef DDR_PHY_DX2GCR1_PDREN_MASK -#define DDR_PHY_DX2GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX2GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX2GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX2GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX2GCR1_TEEN_DEFVAL #undef DDR_PHY_DX2GCR1_TEEN_SHIFT #undef DDR_PHY_DX2GCR1_TEEN_MASK -#define DDR_PHY_DX2GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX2GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX2GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX2GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX2GCR1_DSEN_DEFVAL #undef DDR_PHY_DX2GCR1_DSEN_SHIFT #undef DDR_PHY_DX2GCR1_DSEN_MASK -#define DDR_PHY_DX2GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX2GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX2GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX2GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX2GCR1_DMEN_DEFVAL #undef DDR_PHY_DX2GCR1_DMEN_SHIFT #undef DDR_PHY_DX2GCR1_DMEN_MASK -#define DDR_PHY_DX2GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX2GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX2GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX2GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX2GCR1_DQEN_DEFVAL #undef DDR_PHY_DX2GCR1_DQEN_SHIFT #undef DDR_PHY_DX2GCR1_DQEN_MASK -#define DDR_PHY_DX2GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX2GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX2GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX2GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX2GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX2GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX2GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX2GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX2GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFPEN_MASK -#define DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX2GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX2GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX2GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFEEN_MASK -#define DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX2GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX2GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX2GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSEN_MASK -#define DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX2GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX2GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX2GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_24_MASK -#define DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX2GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX2GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX2GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX2GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX2GCR4_DXREFESEL_MASK -#define DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX2GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX2GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX2GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX2GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX2GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX2GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX2GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX2GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX2GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX2GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX2GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX2GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX2GCR4_DXREFIEN_MASK -#define DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX2GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX2GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX2GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX2GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX2GCR4_DXREFIMON_MASK -#define DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX2GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX2GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX2GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX2GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX2GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_31_MASK -#define DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX2GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX2GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX2GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX2GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX2GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX2GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_23_MASK -#define DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX2GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX2GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX2GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX2GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX2GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX2GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_15_MASK -#define DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX2GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX2GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX2GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX2GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX2GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX2GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX2GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX2GCR5_RESERVED_7_MASK -#define DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX2GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX2GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX2GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX2GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX2GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX2GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX2GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX2GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX2GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX2GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX2GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX2GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX2GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX2GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX2GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX2GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX2GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX2GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX2GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX2GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX2GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX2GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX2GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX2GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX2GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX2GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX2GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX2GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX2GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX2GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX2GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX2GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX2GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX2GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX2LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX2LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX2LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX2LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX2LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX2LCDLR2_DQSGD_MASK -#define DDR_PHY_DX2LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX2LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX2LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX2GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX2GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX2GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX2GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX2GTR0_WDQSL_MASK -#define DDR_PHY_DX2GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX2GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX2GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX2GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX2GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX2GTR0_WLSL_SHIFT -#undef DDR_PHY_DX2GTR0_WLSL_MASK -#define DDR_PHY_DX2GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX2GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX2GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX2GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX2GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX2GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX2GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX2GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX2GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX2GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX2GTR0_DGSL_SHIFT -#undef DDR_PHY_DX2GTR0_DGSL_MASK -#define DDR_PHY_DX2GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX2GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX2GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX3GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX3GCR0_CALBYP_SHIFT #undef DDR_PHY_DX3GCR0_CALBYP_MASK -#define DDR_PHY_DX3GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX3GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX3GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX3GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX3GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX3GCR0_MDLEN_SHIFT #undef DDR_PHY_DX3GCR0_MDLEN_MASK -#define DDR_PHY_DX3GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX3GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX3GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX3GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX3GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX3GCR0_CODTSHFT_MASK -#define DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX3GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX3GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX3GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX3GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX3GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX3GCR0_DQSDCC_MASK -#define DDR_PHY_DX3GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX3GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX3GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX3GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX3GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX3GCR0_RDDLY_SHIFT #undef DDR_PHY_DX3GCR0_RDDLY_MASK -#define DDR_PHY_DX3GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX3GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX3GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX3GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX3GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX3GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX3GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX3GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX3GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX3GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX3GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX3GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX3GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX3GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX3GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX3GCR0_RTTOAL_MASK -#define DDR_PHY_DX3GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX3GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX3GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX3GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX3GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX3GCR0_RTTOH_SHIFT #undef DDR_PHY_DX3GCR0_RTTOH_MASK -#define DDR_PHY_DX3GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX3GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX3GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX3GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX3GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX3GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX3GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX3GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX3GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX3GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX3GCR0_DQSRPD_MASK -#define DDR_PHY_DX3GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX3GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX3GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX3GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX3GCR0_DQSGPDR_MASK -#define DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX3GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX3GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX3GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_4_MASK -#define DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX3GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX3GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX3GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX3GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX3GCR0_DQSGODT_MASK -#define DDR_PHY_DX3GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX3GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX3GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX3GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX3GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX3GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX3GCR0_DQSGOE_MASK -#define DDR_PHY_DX3GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX3GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX3GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX3GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX3GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX3GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX3GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX3GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX3GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX3GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX3GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX3GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX3GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX3GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX3GCR1_RESERVED_15_MASK -#define DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX3GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX3GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX3GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX3GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX3GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX3GCR1_QSNSEL_MASK -#define DDR_PHY_DX3GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX3GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX3GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX3GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX3GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX3GCR1_QSSEL_SHIFT #undef DDR_PHY_DX3GCR1_QSSEL_MASK -#define DDR_PHY_DX3GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX3GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX3GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX3GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX3GCR1_OEEN_DEFVAL #undef DDR_PHY_DX3GCR1_OEEN_SHIFT #undef DDR_PHY_DX3GCR1_OEEN_MASK -#define DDR_PHY_DX3GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX3GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX3GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX3GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX3GCR1_PDREN_DEFVAL #undef DDR_PHY_DX3GCR1_PDREN_SHIFT #undef DDR_PHY_DX3GCR1_PDREN_MASK -#define DDR_PHY_DX3GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX3GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX3GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX3GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX3GCR1_TEEN_DEFVAL #undef DDR_PHY_DX3GCR1_TEEN_SHIFT #undef DDR_PHY_DX3GCR1_TEEN_MASK -#define DDR_PHY_DX3GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX3GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX3GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX3GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX3GCR1_DSEN_DEFVAL #undef DDR_PHY_DX3GCR1_DSEN_SHIFT #undef DDR_PHY_DX3GCR1_DSEN_MASK -#define DDR_PHY_DX3GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX3GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX3GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX3GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX3GCR1_DMEN_DEFVAL #undef DDR_PHY_DX3GCR1_DMEN_SHIFT #undef DDR_PHY_DX3GCR1_DMEN_MASK -#define DDR_PHY_DX3GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX3GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX3GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX3GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX3GCR1_DQEN_DEFVAL #undef DDR_PHY_DX3GCR1_DQEN_SHIFT #undef DDR_PHY_DX3GCR1_DQEN_MASK -#define DDR_PHY_DX3GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX3GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX3GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX3GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX3GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX3GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX3GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX3GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX3GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFPEN_MASK -#define DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX3GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX3GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX3GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFEEN_MASK -#define DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX3GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX3GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX3GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSEN_MASK -#define DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX3GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX3GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX3GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_24_MASK -#define DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX3GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX3GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX3GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX3GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX3GCR4_DXREFESEL_MASK -#define DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX3GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX3GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX3GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX3GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX3GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX3GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX3GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX3GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX3GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX3GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX3GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX3GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX3GCR4_DXREFIEN_MASK -#define DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX3GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX3GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX3GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX3GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX3GCR4_DXREFIMON_MASK -#define DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX3GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX3GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX3GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX3GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX3GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_31_MASK -#define DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX3GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX3GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX3GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX3GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX3GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX3GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_23_MASK -#define DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX3GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX3GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX3GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX3GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX3GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX3GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_15_MASK -#define DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX3GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX3GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX3GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX3GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX3GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX3GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX3GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX3GCR5_RESERVED_7_MASK -#define DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX3GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX3GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX3GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX3GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX3GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX3GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX3GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX3GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX3GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX3GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX3GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX3GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX3GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX3GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX3GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX3GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX3GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX3GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX3GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX3GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX3GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX3GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX3GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX3GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX3GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX3GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX3GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX3GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX3GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX3GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX3GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX3GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX3GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX3GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX3LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX3LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX3LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX3LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX3LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX3LCDLR2_DQSGD_MASK -#define DDR_PHY_DX3LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX3LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX3LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX3GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX3GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX3GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX3GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX3GTR0_WDQSL_MASK -#define DDR_PHY_DX3GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX3GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX3GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX3GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX3GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX3GTR0_WLSL_SHIFT -#undef DDR_PHY_DX3GTR0_WLSL_MASK -#define DDR_PHY_DX3GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX3GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX3GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX3GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX3GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX3GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX3GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX3GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX3GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX3GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX3GTR0_DGSL_SHIFT -#undef DDR_PHY_DX3GTR0_DGSL_MASK -#define DDR_PHY_DX3GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX3GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX3GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX4GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX4GCR0_CALBYP_SHIFT #undef DDR_PHY_DX4GCR0_CALBYP_MASK -#define DDR_PHY_DX4GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX4GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX4GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX4GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX4GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX4GCR0_MDLEN_SHIFT #undef DDR_PHY_DX4GCR0_MDLEN_MASK -#define DDR_PHY_DX4GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX4GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX4GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX4GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX4GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX4GCR0_CODTSHFT_MASK -#define DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX4GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX4GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX4GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX4GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX4GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX4GCR0_DQSDCC_MASK -#define DDR_PHY_DX4GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX4GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX4GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX4GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX4GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX4GCR0_RDDLY_SHIFT #undef DDR_PHY_DX4GCR0_RDDLY_MASK -#define DDR_PHY_DX4GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX4GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX4GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX4GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX4GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX4GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX4GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX4GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX4GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX4GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX4GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX4GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX4GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX4GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX4GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX4GCR0_RTTOAL_MASK -#define DDR_PHY_DX4GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX4GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX4GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX4GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX4GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX4GCR0_RTTOH_SHIFT #undef DDR_PHY_DX4GCR0_RTTOH_MASK -#define DDR_PHY_DX4GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX4GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX4GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX4GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX4GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX4GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX4GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX4GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX4GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX4GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX4GCR0_DQSRPD_MASK -#define DDR_PHY_DX4GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX4GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX4GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX4GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX4GCR0_DQSGPDR_MASK -#define DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX4GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX4GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX4GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_4_MASK -#define DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX4GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX4GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX4GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX4GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX4GCR0_DQSGODT_MASK -#define DDR_PHY_DX4GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX4GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX4GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX4GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX4GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX4GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX4GCR0_DQSGOE_MASK -#define DDR_PHY_DX4GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX4GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX4GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX4GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX4GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX4GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX4GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX4GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX4GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX4GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX4GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX4GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX4GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX4GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX4GCR1_RESERVED_15_MASK -#define DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX4GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX4GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX4GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX4GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX4GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX4GCR1_QSNSEL_MASK -#define DDR_PHY_DX4GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX4GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX4GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX4GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX4GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX4GCR1_QSSEL_SHIFT #undef DDR_PHY_DX4GCR1_QSSEL_MASK -#define DDR_PHY_DX4GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX4GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX4GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX4GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX4GCR1_OEEN_DEFVAL #undef DDR_PHY_DX4GCR1_OEEN_SHIFT #undef DDR_PHY_DX4GCR1_OEEN_MASK -#define DDR_PHY_DX4GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX4GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX4GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX4GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX4GCR1_PDREN_DEFVAL #undef DDR_PHY_DX4GCR1_PDREN_SHIFT #undef DDR_PHY_DX4GCR1_PDREN_MASK -#define DDR_PHY_DX4GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX4GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX4GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX4GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX4GCR1_TEEN_DEFVAL #undef DDR_PHY_DX4GCR1_TEEN_SHIFT #undef DDR_PHY_DX4GCR1_TEEN_MASK -#define DDR_PHY_DX4GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX4GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX4GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX4GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX4GCR1_DSEN_DEFVAL #undef DDR_PHY_DX4GCR1_DSEN_SHIFT #undef DDR_PHY_DX4GCR1_DSEN_MASK -#define DDR_PHY_DX4GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX4GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX4GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX4GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX4GCR1_DMEN_DEFVAL #undef DDR_PHY_DX4GCR1_DMEN_SHIFT #undef DDR_PHY_DX4GCR1_DMEN_MASK -#define DDR_PHY_DX4GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX4GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX4GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX4GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX4GCR1_DQEN_DEFVAL #undef DDR_PHY_DX4GCR1_DQEN_SHIFT #undef DDR_PHY_DX4GCR1_DQEN_MASK -#define DDR_PHY_DX4GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX4GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX4GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX4GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX4GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX4GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX4GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX4GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX4GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFPEN_MASK -#define DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX4GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX4GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX4GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFEEN_MASK -#define DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX4GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX4GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX4GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSEN_MASK -#define DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX4GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX4GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX4GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_24_MASK -#define DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX4GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX4GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX4GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX4GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX4GCR4_DXREFESEL_MASK -#define DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX4GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX4GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX4GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX4GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX4GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX4GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX4GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX4GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX4GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX4GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX4GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX4GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX4GCR4_DXREFIEN_MASK -#define DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX4GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX4GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX4GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX4GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX4GCR4_DXREFIMON_MASK -#define DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX4GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX4GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX4GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX4GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX4GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_31_MASK -#define DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX4GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX4GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX4GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX4GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX4GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX4GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_23_MASK -#define DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX4GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX4GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX4GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX4GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX4GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX4GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_15_MASK -#define DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX4GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX4GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX4GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX4GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX4GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX4GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX4GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX4GCR5_RESERVED_7_MASK -#define DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX4GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX4GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX4GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX4GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX4GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX4GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX4GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX4GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX4GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX4GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX4GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX4GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX4GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX4GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX4GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX4GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX4GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX4GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX4GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX4GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX4GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX4GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX4GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX4GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX4GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX4GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX4GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX4GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX4GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX4GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX4GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX4GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX4GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX4GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX4LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX4LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX4LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX4LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX4LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX4LCDLR2_DQSGD_MASK -#define DDR_PHY_DX4LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX4LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX4LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX4GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX4GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX4GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX4GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX4GTR0_WDQSL_MASK -#define DDR_PHY_DX4GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX4GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX4GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX4GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX4GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX4GTR0_WLSL_SHIFT -#undef DDR_PHY_DX4GTR0_WLSL_MASK -#define DDR_PHY_DX4GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX4GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX4GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX4GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX4GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX4GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX4GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX4GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX4GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX4GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX4GTR0_DGSL_SHIFT -#undef DDR_PHY_DX4GTR0_DGSL_MASK -#define DDR_PHY_DX4GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX4GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX4GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX5GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX5GCR0_CALBYP_SHIFT #undef DDR_PHY_DX5GCR0_CALBYP_MASK -#define DDR_PHY_DX5GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX5GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX5GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX5GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX5GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX5GCR0_MDLEN_SHIFT #undef DDR_PHY_DX5GCR0_MDLEN_MASK -#define DDR_PHY_DX5GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX5GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX5GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX5GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX5GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX5GCR0_CODTSHFT_MASK -#define DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX5GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX5GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX5GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX5GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX5GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX5GCR0_DQSDCC_MASK -#define DDR_PHY_DX5GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX5GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX5GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX5GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX5GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX5GCR0_RDDLY_SHIFT #undef DDR_PHY_DX5GCR0_RDDLY_MASK -#define DDR_PHY_DX5GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX5GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX5GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX5GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX5GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX5GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX5GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX5GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX5GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX5GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX5GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX5GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX5GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX5GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX5GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX5GCR0_RTTOAL_MASK -#define DDR_PHY_DX5GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX5GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX5GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX5GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX5GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX5GCR0_RTTOH_SHIFT #undef DDR_PHY_DX5GCR0_RTTOH_MASK -#define DDR_PHY_DX5GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX5GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX5GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX5GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX5GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX5GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX5GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX5GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX5GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX5GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX5GCR0_DQSRPD_MASK -#define DDR_PHY_DX5GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX5GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX5GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX5GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX5GCR0_DQSGPDR_MASK -#define DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX5GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX5GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX5GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_4_MASK -#define DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX5GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX5GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX5GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX5GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX5GCR0_DQSGODT_MASK -#define DDR_PHY_DX5GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX5GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX5GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX5GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX5GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX5GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX5GCR0_DQSGOE_MASK -#define DDR_PHY_DX5GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX5GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX5GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX5GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX5GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX5GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX5GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX5GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX5GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX5GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX5GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX5GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX5GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX5GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX5GCR1_RESERVED_15_MASK -#define DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX5GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX5GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX5GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX5GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX5GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX5GCR1_QSNSEL_MASK -#define DDR_PHY_DX5GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX5GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX5GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX5GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX5GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX5GCR1_QSSEL_SHIFT #undef DDR_PHY_DX5GCR1_QSSEL_MASK -#define DDR_PHY_DX5GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX5GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX5GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX5GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX5GCR1_OEEN_DEFVAL #undef DDR_PHY_DX5GCR1_OEEN_SHIFT #undef DDR_PHY_DX5GCR1_OEEN_MASK -#define DDR_PHY_DX5GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX5GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX5GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX5GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX5GCR1_PDREN_DEFVAL #undef DDR_PHY_DX5GCR1_PDREN_SHIFT #undef DDR_PHY_DX5GCR1_PDREN_MASK -#define DDR_PHY_DX5GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX5GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX5GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX5GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX5GCR1_TEEN_DEFVAL #undef DDR_PHY_DX5GCR1_TEEN_SHIFT #undef DDR_PHY_DX5GCR1_TEEN_MASK -#define DDR_PHY_DX5GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX5GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX5GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX5GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX5GCR1_DSEN_DEFVAL #undef DDR_PHY_DX5GCR1_DSEN_SHIFT #undef DDR_PHY_DX5GCR1_DSEN_MASK -#define DDR_PHY_DX5GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX5GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX5GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX5GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX5GCR1_DMEN_DEFVAL #undef DDR_PHY_DX5GCR1_DMEN_SHIFT #undef DDR_PHY_DX5GCR1_DMEN_MASK -#define DDR_PHY_DX5GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX5GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX5GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX5GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX5GCR1_DQEN_DEFVAL #undef DDR_PHY_DX5GCR1_DQEN_SHIFT #undef DDR_PHY_DX5GCR1_DQEN_MASK -#define DDR_PHY_DX5GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX5GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX5GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX5GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX5GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX5GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX5GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX5GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX5GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFPEN_MASK -#define DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX5GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX5GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX5GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFEEN_MASK -#define DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX5GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX5GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX5GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSEN_MASK -#define DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX5GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX5GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX5GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_24_MASK -#define DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX5GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX5GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX5GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX5GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX5GCR4_DXREFESEL_MASK -#define DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX5GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX5GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX5GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX5GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX5GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX5GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX5GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX5GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX5GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX5GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX5GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX5GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX5GCR4_DXREFIEN_MASK -#define DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX5GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX5GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX5GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX5GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX5GCR4_DXREFIMON_MASK -#define DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX5GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX5GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX5GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX5GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX5GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_31_MASK -#define DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX5GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX5GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX5GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX5GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX5GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX5GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_23_MASK -#define DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX5GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX5GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX5GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX5GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX5GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX5GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_15_MASK -#define DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX5GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX5GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX5GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX5GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX5GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX5GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX5GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX5GCR5_RESERVED_7_MASK -#define DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX5GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX5GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX5GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX5GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX5GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX5GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX5GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX5GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX5GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX5GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX5GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX5GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX5GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX5GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX5GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX5GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX5GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX5GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX5GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX5GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX5GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX5GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX5GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX5GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX5GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX5GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX5GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX5GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX5GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX5GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX5GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX5GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX5GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX5GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX5LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX5LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX5LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX5LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX5LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX5LCDLR2_DQSGD_MASK -#define DDR_PHY_DX5LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX5LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX5LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX5GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX5GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX5GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX5GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX5GTR0_WDQSL_MASK -#define DDR_PHY_DX5GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX5GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX5GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX5GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX5GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX5GTR0_WLSL_SHIFT -#undef DDR_PHY_DX5GTR0_WLSL_MASK -#define DDR_PHY_DX5GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX5GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX5GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX5GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX5GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX5GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX5GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX5GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX5GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX5GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX5GTR0_DGSL_SHIFT -#undef DDR_PHY_DX5GTR0_DGSL_MASK -#define DDR_PHY_DX5GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX5GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX5GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX6GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX6GCR0_CALBYP_SHIFT #undef DDR_PHY_DX6GCR0_CALBYP_MASK -#define DDR_PHY_DX6GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX6GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX6GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX6GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX6GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX6GCR0_MDLEN_SHIFT #undef DDR_PHY_DX6GCR0_MDLEN_MASK -#define DDR_PHY_DX6GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX6GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX6GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX6GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX6GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX6GCR0_CODTSHFT_MASK -#define DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX6GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX6GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX6GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX6GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX6GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX6GCR0_DQSDCC_MASK -#define DDR_PHY_DX6GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX6GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX6GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX6GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX6GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX6GCR0_RDDLY_SHIFT #undef DDR_PHY_DX6GCR0_RDDLY_MASK -#define DDR_PHY_DX6GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX6GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX6GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX6GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX6GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX6GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX6GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX6GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX6GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX6GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX6GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX6GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX6GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX6GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX6GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX6GCR0_RTTOAL_MASK -#define DDR_PHY_DX6GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX6GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX6GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX6GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX6GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX6GCR0_RTTOH_SHIFT #undef DDR_PHY_DX6GCR0_RTTOH_MASK -#define DDR_PHY_DX6GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX6GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX6GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX6GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX6GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX6GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX6GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX6GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX6GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX6GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX6GCR0_DQSRPD_MASK -#define DDR_PHY_DX6GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX6GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX6GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX6GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX6GCR0_DQSGPDR_MASK -#define DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX6GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX6GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX6GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_4_MASK -#define DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX6GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX6GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX6GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX6GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX6GCR0_DQSGODT_MASK -#define DDR_PHY_DX6GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX6GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX6GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX6GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX6GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX6GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX6GCR0_DQSGOE_MASK -#define DDR_PHY_DX6GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX6GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX6GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX6GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX6GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX6GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX6GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX6GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX6GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX6GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX6GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX6GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX6GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX6GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX6GCR1_RESERVED_15_MASK -#define DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX6GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX6GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX6GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX6GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX6GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX6GCR1_QSNSEL_MASK -#define DDR_PHY_DX6GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX6GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX6GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX6GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX6GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX6GCR1_QSSEL_SHIFT #undef DDR_PHY_DX6GCR1_QSSEL_MASK -#define DDR_PHY_DX6GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX6GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX6GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX6GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX6GCR1_OEEN_DEFVAL #undef DDR_PHY_DX6GCR1_OEEN_SHIFT #undef DDR_PHY_DX6GCR1_OEEN_MASK -#define DDR_PHY_DX6GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX6GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX6GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX6GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX6GCR1_PDREN_DEFVAL #undef DDR_PHY_DX6GCR1_PDREN_SHIFT #undef DDR_PHY_DX6GCR1_PDREN_MASK -#define DDR_PHY_DX6GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX6GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX6GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX6GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX6GCR1_TEEN_DEFVAL #undef DDR_PHY_DX6GCR1_TEEN_SHIFT #undef DDR_PHY_DX6GCR1_TEEN_MASK -#define DDR_PHY_DX6GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX6GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX6GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX6GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX6GCR1_DSEN_DEFVAL #undef DDR_PHY_DX6GCR1_DSEN_SHIFT #undef DDR_PHY_DX6GCR1_DSEN_MASK -#define DDR_PHY_DX6GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX6GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX6GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX6GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX6GCR1_DMEN_DEFVAL #undef DDR_PHY_DX6GCR1_DMEN_SHIFT #undef DDR_PHY_DX6GCR1_DMEN_MASK -#define DDR_PHY_DX6GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX6GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX6GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX6GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX6GCR1_DQEN_DEFVAL #undef DDR_PHY_DX6GCR1_DQEN_SHIFT #undef DDR_PHY_DX6GCR1_DQEN_MASK -#define DDR_PHY_DX6GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX6GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX6GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX6GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX6GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX6GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX6GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX6GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX6GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFPEN_MASK -#define DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX6GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX6GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX6GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFEEN_MASK -#define DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX6GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX6GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX6GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSEN_MASK -#define DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX6GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX6GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX6GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_24_MASK -#define DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX6GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX6GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX6GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX6GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX6GCR4_DXREFESEL_MASK -#define DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX6GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX6GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX6GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX6GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX6GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX6GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX6GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX6GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX6GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX6GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX6GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX6GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX6GCR4_DXREFIEN_MASK -#define DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX6GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX6GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX6GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX6GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX6GCR4_DXREFIMON_MASK -#define DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX6GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX6GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX6GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX6GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX6GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_31_MASK -#define DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX6GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX6GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX6GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX6GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX6GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX6GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_23_MASK -#define DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX6GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX6GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX6GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX6GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX6GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX6GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_15_MASK -#define DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX6GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX6GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX6GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX6GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX6GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX6GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX6GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX6GCR5_RESERVED_7_MASK -#define DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX6GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX6GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX6GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX6GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX6GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX6GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX6GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX6GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX6GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX6GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX6GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX6GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX6GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX6GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX6GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX6GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX6GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX6GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX6GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX6GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX6GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX6GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX6GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX6GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX6GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX6GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX6GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX6GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX6GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX6GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX6GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX6GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX6GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX6GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX6LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX6LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX6LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX6LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX6LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX6LCDLR2_DQSGD_MASK -#define DDR_PHY_DX6LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX6LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX6LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX6GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX6GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX6GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX6GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX6GTR0_WDQSL_MASK -#define DDR_PHY_DX6GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX6GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX6GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX6GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX6GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX6GTR0_WLSL_SHIFT -#undef DDR_PHY_DX6GTR0_WLSL_MASK -#define DDR_PHY_DX6GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX6GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX6GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX6GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX6GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX6GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX6GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX6GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX6GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX6GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX6GTR0_DGSL_SHIFT -#undef DDR_PHY_DX6GTR0_DGSL_MASK -#define DDR_PHY_DX6GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX6GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX6GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX7GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX7GCR0_CALBYP_SHIFT #undef DDR_PHY_DX7GCR0_CALBYP_MASK -#define DDR_PHY_DX7GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX7GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX7GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX7GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX7GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX7GCR0_MDLEN_SHIFT #undef DDR_PHY_DX7GCR0_MDLEN_MASK -#define DDR_PHY_DX7GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX7GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX7GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX7GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX7GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX7GCR0_CODTSHFT_MASK -#define DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX7GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX7GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX7GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX7GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX7GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX7GCR0_DQSDCC_MASK -#define DDR_PHY_DX7GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX7GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX7GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX7GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX7GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX7GCR0_RDDLY_SHIFT #undef DDR_PHY_DX7GCR0_RDDLY_MASK -#define DDR_PHY_DX7GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX7GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX7GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX7GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX7GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX7GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX7GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX7GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX7GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX7GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX7GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX7GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX7GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX7GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX7GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX7GCR0_RTTOAL_MASK -#define DDR_PHY_DX7GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX7GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX7GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX7GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX7GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX7GCR0_RTTOH_SHIFT #undef DDR_PHY_DX7GCR0_RTTOH_MASK -#define DDR_PHY_DX7GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX7GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX7GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX7GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX7GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX7GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX7GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX7GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX7GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX7GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX7GCR0_DQSRPD_MASK -#define DDR_PHY_DX7GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX7GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX7GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX7GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX7GCR0_DQSGPDR_MASK -#define DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX7GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX7GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX7GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_4_MASK -#define DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX7GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX7GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX7GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX7GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX7GCR0_DQSGODT_MASK -#define DDR_PHY_DX7GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX7GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX7GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX7GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX7GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX7GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX7GCR0_DQSGOE_MASK -#define DDR_PHY_DX7GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX7GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX7GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX7GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX7GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX7GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX7GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX7GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX7GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX7GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX7GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX7GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX7GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX7GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX7GCR1_RESERVED_15_MASK -#define DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX7GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX7GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX7GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX7GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX7GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX7GCR1_QSNSEL_MASK -#define DDR_PHY_DX7GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX7GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX7GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX7GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX7GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX7GCR1_QSSEL_SHIFT #undef DDR_PHY_DX7GCR1_QSSEL_MASK -#define DDR_PHY_DX7GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX7GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX7GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX7GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX7GCR1_OEEN_DEFVAL #undef DDR_PHY_DX7GCR1_OEEN_SHIFT #undef DDR_PHY_DX7GCR1_OEEN_MASK -#define DDR_PHY_DX7GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX7GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX7GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX7GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX7GCR1_PDREN_DEFVAL #undef DDR_PHY_DX7GCR1_PDREN_SHIFT #undef DDR_PHY_DX7GCR1_PDREN_MASK -#define DDR_PHY_DX7GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX7GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX7GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX7GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX7GCR1_TEEN_DEFVAL #undef DDR_PHY_DX7GCR1_TEEN_SHIFT #undef DDR_PHY_DX7GCR1_TEEN_MASK -#define DDR_PHY_DX7GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX7GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX7GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX7GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX7GCR1_DSEN_DEFVAL #undef DDR_PHY_DX7GCR1_DSEN_SHIFT #undef DDR_PHY_DX7GCR1_DSEN_MASK -#define DDR_PHY_DX7GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX7GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX7GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX7GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX7GCR1_DMEN_DEFVAL #undef DDR_PHY_DX7GCR1_DMEN_SHIFT #undef DDR_PHY_DX7GCR1_DMEN_MASK -#define DDR_PHY_DX7GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX7GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX7GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX7GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX7GCR1_DQEN_DEFVAL #undef DDR_PHY_DX7GCR1_DQEN_SHIFT #undef DDR_PHY_DX7GCR1_DQEN_MASK -#define DDR_PHY_DX7GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX7GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX7GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX7GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX7GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX7GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX7GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX7GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX7GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFPEN_MASK -#define DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX7GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX7GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX7GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFEEN_MASK -#define DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX7GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX7GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX7GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSEN_MASK -#define DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX7GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX7GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX7GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_24_MASK -#define DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX7GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX7GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX7GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX7GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX7GCR4_DXREFESEL_MASK -#define DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX7GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX7GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX7GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX7GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX7GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX7GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX7GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX7GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX7GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX7GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX7GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX7GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX7GCR4_DXREFIEN_MASK -#define DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX7GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX7GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX7GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX7GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX7GCR4_DXREFIMON_MASK -#define DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX7GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX7GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX7GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX7GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX7GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_31_MASK -#define DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX7GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX7GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX7GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX7GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX7GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX7GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_23_MASK -#define DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX7GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX7GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX7GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX7GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX7GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX7GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_15_MASK -#define DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX7GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX7GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX7GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX7GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX7GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX7GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX7GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX7GCR5_RESERVED_7_MASK -#define DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX7GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX7GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX7GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX7GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX7GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX7GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX7GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX7GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX7GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX7GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX7GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX7GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX7GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX7GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX7GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX7GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX7GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX7GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX7GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX7GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX7GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX7GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX7GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX7GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX7GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX7GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX7GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX7GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX7GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX7GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX7GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX7GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX7GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX7GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX7LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX7LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX7LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX7LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX7LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX7LCDLR2_DQSGD_MASK -#define DDR_PHY_DX7LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX7LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX7LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX7GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX7GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX7GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX7GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX7GTR0_WDQSL_MASK -#define DDR_PHY_DX7GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX7GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX7GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX7GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX7GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX7GTR0_WLSL_SHIFT -#undef DDR_PHY_DX7GTR0_WLSL_MASK -#define DDR_PHY_DX7GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX7GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX7GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX7GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX7GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX7GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX7GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX7GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX7GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX7GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX7GTR0_DGSL_SHIFT -#undef DDR_PHY_DX7GTR0_DGSL_MASK -#define DDR_PHY_DX7GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX7GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX7GTR0_DGSL_MASK 0x0000001FU - -/*Calibration Bypass*/ +/* +* Calibration Bypass +*/ #undef DDR_PHY_DX8GCR0_CALBYP_DEFVAL #undef DDR_PHY_DX8GCR0_CALBYP_SHIFT #undef DDR_PHY_DX8GCR0_CALBYP_MASK -#define DDR_PHY_DX8GCR0_CALBYP_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CALBYP_SHIFT 31 -#define DDR_PHY_DX8GCR0_CALBYP_MASK 0x80000000U +#define DDR_PHY_DX8GCR0_CALBYP_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CALBYP_SHIFT 31 +#define DDR_PHY_DX8GCR0_CALBYP_MASK 0x80000000U -/*Master Delay Line Enable*/ +/* +* Master Delay Line Enable +*/ #undef DDR_PHY_DX8GCR0_MDLEN_DEFVAL #undef DDR_PHY_DX8GCR0_MDLEN_SHIFT #undef DDR_PHY_DX8GCR0_MDLEN_MASK -#define DDR_PHY_DX8GCR0_MDLEN_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_MDLEN_SHIFT 30 -#define DDR_PHY_DX8GCR0_MDLEN_MASK 0x40000000U +#define DDR_PHY_DX8GCR0_MDLEN_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_MDLEN_SHIFT 30 +#define DDR_PHY_DX8GCR0_MDLEN_MASK 0x40000000U -/*Configurable ODT(TE) Phase Shift*/ +/* +* Configurable ODT(TE) Phase Shift +*/ #undef DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL #undef DDR_PHY_DX8GCR0_CODTSHFT_SHIFT #undef DDR_PHY_DX8GCR0_CODTSHFT_MASK -#define DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CODTSHFT_SHIFT 28 -#define DDR_PHY_DX8GCR0_CODTSHFT_MASK 0x30000000U +#define DDR_PHY_DX8GCR0_CODTSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CODTSHFT_SHIFT 28 +#define DDR_PHY_DX8GCR0_CODTSHFT_MASK 0x30000000U -/*DQS Duty Cycle Correction*/ +/* +* DQS Duty Cycle Correction +*/ #undef DDR_PHY_DX8GCR0_DQSDCC_DEFVAL #undef DDR_PHY_DX8GCR0_DQSDCC_SHIFT #undef DDR_PHY_DX8GCR0_DQSDCC_MASK -#define DDR_PHY_DX8GCR0_DQSDCC_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSDCC_SHIFT 24 -#define DDR_PHY_DX8GCR0_DQSDCC_MASK 0x0F000000U +#define DDR_PHY_DX8GCR0_DQSDCC_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSDCC_SHIFT 24 +#define DDR_PHY_DX8GCR0_DQSDCC_MASK 0x0F000000U -/*Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd input for the respective bypte lane of the PHY*/ +/* +* Number of Cycles ( in terms of ctl_clk) to generate ctl_dx_get_static_rd + * input for the respective bypte lane of the PHY +*/ #undef DDR_PHY_DX8GCR0_RDDLY_DEFVAL #undef DDR_PHY_DX8GCR0_RDDLY_SHIFT #undef DDR_PHY_DX8GCR0_RDDLY_MASK -#define DDR_PHY_DX8GCR0_RDDLY_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RDDLY_SHIFT 20 -#define DDR_PHY_DX8GCR0_RDDLY_MASK 0x00F00000U +#define DDR_PHY_DX8GCR0_RDDLY_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RDDLY_SHIFT 20 +#define DDR_PHY_DX8GCR0_RDDLY_MASK 0x00F00000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_19_14_MASK -#define DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT 14 -#define DDR_PHY_DX8GCR0_RESERVED_19_14_MASK 0x000FC000U +#define DDR_PHY_DX8GCR0_RESERVED_19_14_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_19_14_SHIFT 14 +#define DDR_PHY_DX8GCR0_RESERVED_19_14_MASK 0x000FC000U -/*DQSNSE Power Down Receiver*/ +/* +* DQSNSE Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSNSEPDR_MASK -#define DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT 13 -#define DDR_PHY_DX8GCR0_DQSNSEPDR_MASK 0x00002000U +#define DDR_PHY_DX8GCR0_DQSNSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSNSEPDR_SHIFT 13 +#define DDR_PHY_DX8GCR0_DQSNSEPDR_MASK 0x00002000U -/*DQSSE Power Down Receiver*/ +/* +* DQSSE Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSSEPDR_MASK -#define DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT 12 -#define DDR_PHY_DX8GCR0_DQSSEPDR_MASK 0x00001000U +#define DDR_PHY_DX8GCR0_DQSSEPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSSEPDR_SHIFT 12 +#define DDR_PHY_DX8GCR0_DQSSEPDR_MASK 0x00001000U -/*RTT On Additive Latency*/ +/* +* RTT On Additive Latency +*/ #undef DDR_PHY_DX8GCR0_RTTOAL_DEFVAL #undef DDR_PHY_DX8GCR0_RTTOAL_SHIFT #undef DDR_PHY_DX8GCR0_RTTOAL_MASK -#define DDR_PHY_DX8GCR0_RTTOAL_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RTTOAL_SHIFT 11 -#define DDR_PHY_DX8GCR0_RTTOAL_MASK 0x00000800U +#define DDR_PHY_DX8GCR0_RTTOAL_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RTTOAL_SHIFT 11 +#define DDR_PHY_DX8GCR0_RTTOAL_MASK 0x00000800U -/*RTT Output Hold*/ +/* +* RTT Output Hold +*/ #undef DDR_PHY_DX8GCR0_RTTOH_DEFVAL #undef DDR_PHY_DX8GCR0_RTTOH_SHIFT #undef DDR_PHY_DX8GCR0_RTTOH_MASK -#define DDR_PHY_DX8GCR0_RTTOH_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RTTOH_SHIFT 9 -#define DDR_PHY_DX8GCR0_RTTOH_MASK 0x00000600U +#define DDR_PHY_DX8GCR0_RTTOH_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RTTOH_SHIFT 9 +#define DDR_PHY_DX8GCR0_RTTOH_MASK 0x00000600U -/*Configurable PDR Phase Shift*/ +/* +* Configurable PDR Phase Shift +*/ #undef DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL #undef DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT #undef DDR_PHY_DX8GCR0_CPDRSHFT_MASK -#define DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT 7 -#define DDR_PHY_DX8GCR0_CPDRSHFT_MASK 0x00000180U +#define DDR_PHY_DX8GCR0_CPDRSHFT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_CPDRSHFT_SHIFT 7 +#define DDR_PHY_DX8GCR0_CPDRSHFT_MASK 0x00000180U -/*DQSR Power Down*/ +/* +* DQSR Power Down +*/ #undef DDR_PHY_DX8GCR0_DQSRPD_DEFVAL #undef DDR_PHY_DX8GCR0_DQSRPD_SHIFT #undef DDR_PHY_DX8GCR0_DQSRPD_MASK -#define DDR_PHY_DX8GCR0_DQSRPD_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSRPD_SHIFT 6 -#define DDR_PHY_DX8GCR0_DQSRPD_MASK 0x00000040U +#define DDR_PHY_DX8GCR0_DQSRPD_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSRPD_SHIFT 6 +#define DDR_PHY_DX8GCR0_DQSRPD_MASK 0x00000040U -/*DQSG Power Down Receiver*/ +/* +* DQSG Power Down Receiver +*/ #undef DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGPDR_SHIFT #undef DDR_PHY_DX8GCR0_DQSGPDR_MASK -#define DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGPDR_SHIFT 5 -#define DDR_PHY_DX8GCR0_DQSGPDR_MASK 0x00000020U +#define DDR_PHY_DX8GCR0_DQSGPDR_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGPDR_SHIFT 5 +#define DDR_PHY_DX8GCR0_DQSGPDR_MASK 0x00000020U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_4_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_4_MASK -#define DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_4_SHIFT 4 -#define DDR_PHY_DX8GCR0_RESERVED_4_MASK 0x00000010U +#define DDR_PHY_DX8GCR0_RESERVED_4_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_4_SHIFT 4 +#define DDR_PHY_DX8GCR0_RESERVED_4_MASK 0x00000010U -/*DQSG On-Die Termination*/ +/* +* DQSG On-Die Termination +*/ #undef DDR_PHY_DX8GCR0_DQSGODT_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGODT_SHIFT #undef DDR_PHY_DX8GCR0_DQSGODT_MASK -#define DDR_PHY_DX8GCR0_DQSGODT_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGODT_SHIFT 3 -#define DDR_PHY_DX8GCR0_DQSGODT_MASK 0x00000008U +#define DDR_PHY_DX8GCR0_DQSGODT_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGODT_SHIFT 3 +#define DDR_PHY_DX8GCR0_DQSGODT_MASK 0x00000008U -/*DQSG Output Enable*/ +/* +* DQSG Output Enable +*/ #undef DDR_PHY_DX8GCR0_DQSGOE_DEFVAL #undef DDR_PHY_DX8GCR0_DQSGOE_SHIFT #undef DDR_PHY_DX8GCR0_DQSGOE_MASK -#define DDR_PHY_DX8GCR0_DQSGOE_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_DQSGOE_SHIFT 2 -#define DDR_PHY_DX8GCR0_DQSGOE_MASK 0x00000004U +#define DDR_PHY_DX8GCR0_DQSGOE_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_DQSGOE_SHIFT 2 +#define DDR_PHY_DX8GCR0_DQSGOE_MASK 0x00000004U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL #undef DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT #undef DDR_PHY_DX8GCR0_RESERVED_1_0_MASK -#define DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL 0x40200204 -#define DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT 0 -#define DDR_PHY_DX8GCR0_RESERVED_1_0_MASK 0x00000003U +#define DDR_PHY_DX8GCR0_RESERVED_1_0_DEFVAL 0x40200204 +#define DDR_PHY_DX8GCR0_RESERVED_1_0_SHIFT 0 +#define DDR_PHY_DX8GCR0_RESERVED_1_0_MASK 0x00000003U -/*Enables the PDR mode for DQ[7:0]*/ +/* +* Enables the PDR mode for DQ[7:0] +*/ #undef DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL #undef DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT #undef DDR_PHY_DX8GCR1_DXPDRMODE_MASK -#define DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT 16 -#define DDR_PHY_DX8GCR1_DXPDRMODE_MASK 0xFFFF0000U +#define DDR_PHY_DX8GCR1_DXPDRMODE_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DXPDRMODE_SHIFT 16 +#define DDR_PHY_DX8GCR1_DXPDRMODE_MASK 0xFFFF0000U -/*Reserved. Returns zeroes on reads.*/ +/* +* Reserved. Returns zeroes on reads. +*/ #undef DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL #undef DDR_PHY_DX8GCR1_RESERVED_15_SHIFT #undef DDR_PHY_DX8GCR1_RESERVED_15_MASK -#define DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX8GCR1_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX8GCR1_RESERVED_15_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX8GCR1_RESERVED_15_MASK 0x00008000U -/*Select the delayed or non-delayed read data strobe #*/ +/* +* Select the delayed or non-delayed read data strobe # +*/ #undef DDR_PHY_DX8GCR1_QSNSEL_DEFVAL #undef DDR_PHY_DX8GCR1_QSNSEL_SHIFT #undef DDR_PHY_DX8GCR1_QSNSEL_MASK -#define DDR_PHY_DX8GCR1_QSNSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_QSNSEL_SHIFT 14 -#define DDR_PHY_DX8GCR1_QSNSEL_MASK 0x00004000U +#define DDR_PHY_DX8GCR1_QSNSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_QSNSEL_SHIFT 14 +#define DDR_PHY_DX8GCR1_QSNSEL_MASK 0x00004000U -/*Select the delayed or non-delayed read data strobe*/ +/* +* Select the delayed or non-delayed read data strobe +*/ #undef DDR_PHY_DX8GCR1_QSSEL_DEFVAL #undef DDR_PHY_DX8GCR1_QSSEL_SHIFT #undef DDR_PHY_DX8GCR1_QSSEL_MASK -#define DDR_PHY_DX8GCR1_QSSEL_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_QSSEL_SHIFT 13 -#define DDR_PHY_DX8GCR1_QSSEL_MASK 0x00002000U +#define DDR_PHY_DX8GCR1_QSSEL_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_QSSEL_SHIFT 13 +#define DDR_PHY_DX8GCR1_QSSEL_MASK 0x00002000U -/*Enables Read Data Strobe in a byte lane*/ +/* +* Enables Read Data Strobe in a byte lane +*/ #undef DDR_PHY_DX8GCR1_OEEN_DEFVAL #undef DDR_PHY_DX8GCR1_OEEN_SHIFT #undef DDR_PHY_DX8GCR1_OEEN_MASK -#define DDR_PHY_DX8GCR1_OEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_OEEN_SHIFT 12 -#define DDR_PHY_DX8GCR1_OEEN_MASK 0x00001000U +#define DDR_PHY_DX8GCR1_OEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_OEEN_SHIFT 12 +#define DDR_PHY_DX8GCR1_OEEN_MASK 0x00001000U -/*Enables PDR in a byte lane*/ +/* +* Enables PDR in a byte lane +*/ #undef DDR_PHY_DX8GCR1_PDREN_DEFVAL #undef DDR_PHY_DX8GCR1_PDREN_SHIFT #undef DDR_PHY_DX8GCR1_PDREN_MASK -#define DDR_PHY_DX8GCR1_PDREN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_PDREN_SHIFT 11 -#define DDR_PHY_DX8GCR1_PDREN_MASK 0x00000800U +#define DDR_PHY_DX8GCR1_PDREN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_PDREN_SHIFT 11 +#define DDR_PHY_DX8GCR1_PDREN_MASK 0x00000800U -/*Enables ODT/TE in a byte lane*/ +/* +* Enables ODT/TE in a byte lane +*/ #undef DDR_PHY_DX8GCR1_TEEN_DEFVAL #undef DDR_PHY_DX8GCR1_TEEN_SHIFT #undef DDR_PHY_DX8GCR1_TEEN_MASK -#define DDR_PHY_DX8GCR1_TEEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_TEEN_SHIFT 10 -#define DDR_PHY_DX8GCR1_TEEN_MASK 0x00000400U +#define DDR_PHY_DX8GCR1_TEEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_TEEN_SHIFT 10 +#define DDR_PHY_DX8GCR1_TEEN_MASK 0x00000400U -/*Enables Write Data strobe in a byte lane*/ +/* +* Enables Write Data strobe in a byte lane +*/ #undef DDR_PHY_DX8GCR1_DSEN_DEFVAL #undef DDR_PHY_DX8GCR1_DSEN_SHIFT #undef DDR_PHY_DX8GCR1_DSEN_MASK -#define DDR_PHY_DX8GCR1_DSEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DSEN_SHIFT 9 -#define DDR_PHY_DX8GCR1_DSEN_MASK 0x00000200U +#define DDR_PHY_DX8GCR1_DSEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DSEN_SHIFT 9 +#define DDR_PHY_DX8GCR1_DSEN_MASK 0x00000200U -/*Enables DM pin in a byte lane*/ +/* +* Enables DM pin in a byte lane +*/ #undef DDR_PHY_DX8GCR1_DMEN_DEFVAL #undef DDR_PHY_DX8GCR1_DMEN_SHIFT #undef DDR_PHY_DX8GCR1_DMEN_MASK -#define DDR_PHY_DX8GCR1_DMEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DMEN_SHIFT 8 -#define DDR_PHY_DX8GCR1_DMEN_MASK 0x00000100U +#define DDR_PHY_DX8GCR1_DMEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DMEN_SHIFT 8 +#define DDR_PHY_DX8GCR1_DMEN_MASK 0x00000100U -/*Enables DQ corresponding to each bit in a byte*/ +/* +* Enables DQ corresponding to each bit in a byte +*/ #undef DDR_PHY_DX8GCR1_DQEN_DEFVAL #undef DDR_PHY_DX8GCR1_DQEN_SHIFT #undef DDR_PHY_DX8GCR1_DQEN_MASK -#define DDR_PHY_DX8GCR1_DQEN_DEFVAL 0x00007FFF -#define DDR_PHY_DX8GCR1_DQEN_SHIFT 0 -#define DDR_PHY_DX8GCR1_DQEN_MASK 0x000000FFU +#define DDR_PHY_DX8GCR1_DQEN_DEFVAL 0x00007FFF +#define DDR_PHY_DX8GCR1_DQEN_SHIFT 0 +#define DDR_PHY_DX8GCR1_DQEN_MASK 0x000000FFU -/*Byte lane VREF IOM (Used only by D4MU IOs)*/ +/* +* Byte lane VREF IOM (Used only by D4MU IOs) +*/ #undef DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_31_29_MASK -#define DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT 29 -#define DDR_PHY_DX8GCR4_RESERVED_31_29_MASK 0xE0000000U +#define DDR_PHY_DX8GCR4_RESERVED_31_29_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_31_29_SHIFT 29 +#define DDR_PHY_DX8GCR4_RESERVED_31_29_MASK 0xE0000000U -/*Byte Lane VREF Pad Enable*/ +/* +* Byte Lane VREF Pad Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFPEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFPEN_MASK -#define DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFPEN_SHIFT 28 -#define DDR_PHY_DX8GCR4_DXREFPEN_MASK 0x10000000U +#define DDR_PHY_DX8GCR4_DXREFPEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFPEN_SHIFT 28 +#define DDR_PHY_DX8GCR4_DXREFPEN_MASK 0x10000000U -/*Byte Lane Internal VREF Enable*/ +/* +* Byte Lane Internal VREF Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFEEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFEEN_MASK -#define DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFEEN_SHIFT 26 -#define DDR_PHY_DX8GCR4_DXREFEEN_MASK 0x0C000000U +#define DDR_PHY_DX8GCR4_DXREFEEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFEEN_SHIFT 26 +#define DDR_PHY_DX8GCR4_DXREFEEN_MASK 0x0C000000U -/*Byte Lane Single-End VREF Enable*/ +/* +* Byte Lane Single-End VREF Enable +*/ #undef DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSEN_MASK -#define DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSEN_SHIFT 25 -#define DDR_PHY_DX8GCR4_DXREFSEN_MASK 0x02000000U +#define DDR_PHY_DX8GCR4_DXREFSEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSEN_SHIFT 25 +#define DDR_PHY_DX8GCR4_DXREFSEN_MASK 0x02000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_24_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_24_MASK -#define DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_24_SHIFT 24 -#define DDR_PHY_DX8GCR4_RESERVED_24_MASK 0x01000000U +#define DDR_PHY_DX8GCR4_RESERVED_24_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_24_SHIFT 24 +#define DDR_PHY_DX8GCR4_RESERVED_24_MASK 0x01000000U -/*External VREF generator REFSEL range select*/ +/* +* External VREF generator REFSEL range select +*/ #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT #undef DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT 23 -#define DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK 0x00800000U +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_SHIFT 23 +#define DDR_PHY_DX8GCR4_DXREFESELRANGE_MASK 0x00800000U -/*Byte Lane External VREF Select*/ +/* +* Byte Lane External VREF Select +*/ #undef DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFESEL_SHIFT #undef DDR_PHY_DX8GCR4_DXREFESEL_MASK -#define DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFESEL_SHIFT 16 -#define DDR_PHY_DX8GCR4_DXREFESEL_MASK 0x007F0000U +#define DDR_PHY_DX8GCR4_DXREFESEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFESEL_SHIFT 16 +#define DDR_PHY_DX8GCR4_DXREFESEL_MASK 0x007F0000U -/*Single ended VREF generator REFSEL range select*/ +/* +* Single ended VREF generator REFSEL range select +*/ #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT 15 -#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK 0x00008000U +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_SHIFT 15 +#define DDR_PHY_DX8GCR4_DXREFSSELRANGE_MASK 0x00008000U -/*Byte Lane Single-End VREF Select*/ +/* +* Byte Lane Single-End VREF Select +*/ #undef DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT #undef DDR_PHY_DX8GCR4_DXREFSSEL_MASK -#define DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT 8 -#define DDR_PHY_DX8GCR4_DXREFSSEL_MASK 0x00007F00U +#define DDR_PHY_DX8GCR4_DXREFSSEL_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFSSEL_SHIFT 8 +#define DDR_PHY_DX8GCR4_DXREFSSEL_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT #undef DDR_PHY_DX8GCR4_RESERVED_7_6_MASK -#define DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX8GCR4_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX8GCR4_RESERVED_7_6_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX8GCR4_RESERVED_7_6_MASK 0x000000C0U -/*VREF Enable control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VREF Enable control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFIEN_SHIFT #undef DDR_PHY_DX8GCR4_DXREFIEN_MASK -#define DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFIEN_SHIFT 2 -#define DDR_PHY_DX8GCR4_DXREFIEN_MASK 0x0000003CU +#define DDR_PHY_DX8GCR4_DXREFIEN_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFIEN_SHIFT 2 +#define DDR_PHY_DX8GCR4_DXREFIEN_MASK 0x0000003CU -/*VRMON control for DQ IO (Single Ended) buffers of a byte lane.*/ +/* +* VRMON control for DQ IO (Single Ended) buffers of a byte lane. +*/ #undef DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL #undef DDR_PHY_DX8GCR4_DXREFIMON_SHIFT #undef DDR_PHY_DX8GCR4_DXREFIMON_MASK -#define DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL 0x0E00003C -#define DDR_PHY_DX8GCR4_DXREFIMON_SHIFT 0 -#define DDR_PHY_DX8GCR4_DXREFIMON_MASK 0x00000003U +#define DDR_PHY_DX8GCR4_DXREFIMON_DEFVAL 0x0E00003C +#define DDR_PHY_DX8GCR4_DXREFIMON_SHIFT 0 +#define DDR_PHY_DX8GCR4_DXREFIMON_MASK 0x00000003U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_31_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_31_MASK -#define DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8GCR5_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8GCR5_RESERVED_31_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8GCR5_RESERVED_31_MASK 0x80000000U -/*Byte Lane internal VREF Select for Rank 3*/ +/* +* Byte Lane internal VREF Select for Rank 3 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR3_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT 24 -#define DDR_PHY_DX8GCR5_DXREFISELR3_MASK 0x7F000000U +#define DDR_PHY_DX8GCR5_DXREFISELR3_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR3_SHIFT 24 +#define DDR_PHY_DX8GCR5_DXREFISELR3_MASK 0x7F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_23_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_23_MASK -#define DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_23_SHIFT 23 -#define DDR_PHY_DX8GCR5_RESERVED_23_MASK 0x00800000U +#define DDR_PHY_DX8GCR5_RESERVED_23_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_23_SHIFT 23 +#define DDR_PHY_DX8GCR5_RESERVED_23_MASK 0x00800000U -/*Byte Lane internal VREF Select for Rank 2*/ +/* +* Byte Lane internal VREF Select for Rank 2 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR2_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT 16 -#define DDR_PHY_DX8GCR5_DXREFISELR2_MASK 0x007F0000U +#define DDR_PHY_DX8GCR5_DXREFISELR2_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR2_SHIFT 16 +#define DDR_PHY_DX8GCR5_DXREFISELR2_MASK 0x007F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_15_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_15_MASK -#define DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_15_SHIFT 15 -#define DDR_PHY_DX8GCR5_RESERVED_15_MASK 0x00008000U +#define DDR_PHY_DX8GCR5_RESERVED_15_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_15_SHIFT 15 +#define DDR_PHY_DX8GCR5_RESERVED_15_MASK 0x00008000U -/*Byte Lane internal VREF Select for Rank 1*/ +/* +* Byte Lane internal VREF Select for Rank 1 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR1_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT 8 -#define DDR_PHY_DX8GCR5_DXREFISELR1_MASK 0x00007F00U +#define DDR_PHY_DX8GCR5_DXREFISELR1_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR1_SHIFT 8 +#define DDR_PHY_DX8GCR5_DXREFISELR1_MASK 0x00007F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL #undef DDR_PHY_DX8GCR5_RESERVED_7_SHIFT #undef DDR_PHY_DX8GCR5_RESERVED_7_MASK -#define DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_RESERVED_7_SHIFT 7 -#define DDR_PHY_DX8GCR5_RESERVED_7_MASK 0x00000080U +#define DDR_PHY_DX8GCR5_RESERVED_7_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_RESERVED_7_SHIFT 7 +#define DDR_PHY_DX8GCR5_RESERVED_7_MASK 0x00000080U -/*Byte Lane internal VREF Select for Rank 0*/ +/* +* Byte Lane internal VREF Select for Rank 0 +*/ #undef DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL #undef DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT #undef DDR_PHY_DX8GCR5_DXREFISELR0_MASK -#define DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT 0 -#define DDR_PHY_DX8GCR5_DXREFISELR0_MASK 0x0000007FU +#define DDR_PHY_DX8GCR5_DXREFISELR0_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR5_DXREFISELR0_SHIFT 0 +#define DDR_PHY_DX8GCR5_DXREFISELR0_MASK 0x0000007FU -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_31_30_MASK -#define DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8GCR6_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8GCR6_RESERVED_31_30_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8GCR6_RESERVED_31_30_MASK 0xC0000000U -/*DRAM DQ VREF Select for Rank3*/ +/* +* DRAM DQ VREF Select for Rank3 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR3_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT 24 -#define DDR_PHY_DX8GCR6_DXDQVREFR3_MASK 0x3F000000U +#define DDR_PHY_DX8GCR6_DXDQVREFR3_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR3_SHIFT 24 +#define DDR_PHY_DX8GCR6_DXDQVREFR3_MASK 0x3F000000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_23_22_MASK -#define DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8GCR6_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8GCR6_RESERVED_23_22_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8GCR6_RESERVED_23_22_MASK 0x00C00000U -/*DRAM DQ VREF Select for Rank2*/ +/* +* DRAM DQ VREF Select for Rank2 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR2_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT 16 -#define DDR_PHY_DX8GCR6_DXDQVREFR2_MASK 0x003F0000U +#define DDR_PHY_DX8GCR6_DXDQVREFR2_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR2_SHIFT 16 +#define DDR_PHY_DX8GCR6_DXDQVREFR2_MASK 0x003F0000U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_15_14_MASK -#define DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT 14 -#define DDR_PHY_DX8GCR6_RESERVED_15_14_MASK 0x0000C000U +#define DDR_PHY_DX8GCR6_RESERVED_15_14_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_15_14_SHIFT 14 +#define DDR_PHY_DX8GCR6_RESERVED_15_14_MASK 0x0000C000U -/*DRAM DQ VREF Select for Rank1*/ +/* +* DRAM DQ VREF Select for Rank1 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR1_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT 8 -#define DDR_PHY_DX8GCR6_DXDQVREFR1_MASK 0x00003F00U +#define DDR_PHY_DX8GCR6_DXDQVREFR1_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR1_SHIFT 8 +#define DDR_PHY_DX8GCR6_DXDQVREFR1_MASK 0x00003F00U -/*Reserved. Returns zeros on reads.*/ +/* +* Reserved. Returns zeros on reads. +*/ #undef DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL #undef DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT #undef DDR_PHY_DX8GCR6_RESERVED_7_6_MASK -#define DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT 6 -#define DDR_PHY_DX8GCR6_RESERVED_7_6_MASK 0x000000C0U +#define DDR_PHY_DX8GCR6_RESERVED_7_6_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_RESERVED_7_6_SHIFT 6 +#define DDR_PHY_DX8GCR6_RESERVED_7_6_MASK 0x000000C0U -/*DRAM DQ VREF Select for Rank0*/ +/* +* DRAM DQ VREF Select for Rank0 +*/ #undef DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL #undef DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT #undef DDR_PHY_DX8GCR6_DXDQVREFR0_MASK -#define DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL 0x09090909 -#define DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT 0 -#define DDR_PHY_DX8GCR6_DXDQVREFR0_MASK 0x0000003FU +#define DDR_PHY_DX8GCR6_DXDQVREFR0_DEFVAL 0x09090909 +#define DDR_PHY_DX8GCR6_DXDQVREFR0_SHIFT 0 +#define DDR_PHY_DX8GCR6_DXDQVREFR0_MASK 0x0000003FU -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8LCDLR2_RESERVED_31_25_MASK 0xFE000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_SHIFT 16 -#define DDR_PHY_DX8LCDLR2_RESERVED_24_16_MASK 0x01FF0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_DEFVAL -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT -#undef DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_SHIFT 9 -#define DDR_PHY_DX8LCDLR2_RESERVED_15_9_MASK 0x0000FE00U - -/*Read DQS Gating Delay*/ -#undef DDR_PHY_DX8LCDLR2_DQSGD_DEFVAL -#undef DDR_PHY_DX8LCDLR2_DQSGD_SHIFT -#undef DDR_PHY_DX8LCDLR2_DQSGD_MASK -#define DDR_PHY_DX8LCDLR2_DQSGD_DEFVAL 0x00000000 -#define DDR_PHY_DX8LCDLR2_DQSGD_SHIFT 0 -#define DDR_PHY_DX8LCDLR2_DQSGD_MASK 0x000001FFU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_31_24_MASK -#define DDR_PHY_DX8GTR0_RESERVED_31_24_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_31_24_SHIFT 27 -#define DDR_PHY_DX8GTR0_RESERVED_31_24_MASK 0xF8000000U - -/*DQ Write Path Latency Pipeline*/ -#undef DDR_PHY_DX8GTR0_WDQSL_DEFVAL -#undef DDR_PHY_DX8GTR0_WDQSL_SHIFT -#undef DDR_PHY_DX8GTR0_WDQSL_MASK -#define DDR_PHY_DX8GTR0_WDQSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_WDQSL_SHIFT 24 -#define DDR_PHY_DX8GTR0_WDQSL_MASK 0x07000000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_23_20_MASK -#define DDR_PHY_DX8GTR0_RESERVED_23_20_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_23_20_SHIFT 20 -#define DDR_PHY_DX8GTR0_RESERVED_23_20_MASK 0x00F00000U - -/*Write Leveling System Latency*/ -#undef DDR_PHY_DX8GTR0_WLSL_DEFVAL -#undef DDR_PHY_DX8GTR0_WLSL_SHIFT -#undef DDR_PHY_DX8GTR0_WLSL_MASK -#define DDR_PHY_DX8GTR0_WLSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_WLSL_SHIFT 16 -#define DDR_PHY_DX8GTR0_WLSL_MASK 0x000F0000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_15_13_MASK -#define DDR_PHY_DX8GTR0_RESERVED_15_13_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_15_13_SHIFT 13 -#define DDR_PHY_DX8GTR0_RESERVED_15_13_MASK 0x0000E000U - -/*Reserved. Caution, do not write to this register field.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_12_8_MASK -#define DDR_PHY_DX8GTR0_RESERVED_12_8_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_12_8_SHIFT 8 -#define DDR_PHY_DX8GTR0_RESERVED_12_8_MASK 0x00001F00U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_DEFVAL -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT -#undef DDR_PHY_DX8GTR0_RESERVED_7_5_MASK -#define DDR_PHY_DX8GTR0_RESERVED_7_5_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_RESERVED_7_5_SHIFT 5 -#define DDR_PHY_DX8GTR0_RESERVED_7_5_MASK 0x000000E0U - -/*DQS Gating System Latency*/ -#undef DDR_PHY_DX8GTR0_DGSL_DEFVAL -#undef DDR_PHY_DX8GTR0_DGSL_SHIFT -#undef DDR_PHY_DX8GTR0_DGSL_MASK -#define DDR_PHY_DX8GTR0_DGSL_DEFVAL 0x00020000 -#define DDR_PHY_DX8GTR0_DGSL_SHIFT 0 -#define DDR_PHY_DX8GTR0_DGSL_MASK 0x0000001FU - -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL0OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL0OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL0OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL0OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL0OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL0OSC_LBMODE_MASK -#define DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL0OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL0OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL0OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL0OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL0OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL0OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL0OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL0OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL0OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL0OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL0OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL0OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL0OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL0OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL0OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL0OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL0OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL0OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL0OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL0OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL0OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL0OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL0OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL0OSC_DLTST_MASK -#define DDR_PHY_DX8SL0OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL0OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL0OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL0OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL0OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL0OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL0OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL0OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL0OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL0OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL0OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL0OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL0OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL0OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL0OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL0OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL0OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL0OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL0OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL0OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL0OSC_OSCEN_MASK -#define DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL0OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL0OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL0OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL0OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL0OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL0PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL0PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL0PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL0PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL0PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL0PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL0PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL0PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL0PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL0PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL0PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL0PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL0PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL0PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL0PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL0PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL0PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL0PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL0PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL0PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL0PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL0DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL0DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL0DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL0DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL0DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL0DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL0DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL0DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL0DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL0DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL0DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL0DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL0DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL0DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL0DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL0DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL0DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL0DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL0DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL0DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL0DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL0DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL0DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL0DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL0DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL0DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL0DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL0DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL0DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL0DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL0DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL0DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL0DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL0DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL0DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL0DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL0IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL0IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL0IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL0IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL0IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL0IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL0IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL0IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL0IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL0IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL0IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL0IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL0IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL0IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL1OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL1OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL1OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL1OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL1OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL1OSC_LBMODE_MASK -#define DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL1OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL1OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL1OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL1OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL1OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL1OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL1OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL1OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL1OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL1OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL1OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL1OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL1OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL1OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL1OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL1OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL1OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL1OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL1OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL1OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL1OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL1OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL1OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL1OSC_DLTST_MASK -#define DDR_PHY_DX8SL1OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL1OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL1OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL1OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL1OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL1OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL1OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL1OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL1OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL1OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL1OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL1OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL1OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL1OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL1OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL1OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL1OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL1OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL1OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL1OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL1OSC_OSCEN_MASK -#define DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL1OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL1OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL1OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL1OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL1OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL1PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL1PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL1PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL1PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL1PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL1PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL1PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL1PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL1PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL1PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL1PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL1PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL1PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL1PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL1PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL1PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL1PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL1PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL1PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL1PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL1PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL1DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL1DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL1DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL1DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL1DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL1DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL1DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL1DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL1DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL1DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL1DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL1DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL1DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL1DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL1DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL1DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL1DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL1DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL1DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL1DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL1DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL1DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL1DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL1DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL1DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL1DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL1DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL1DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL1DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL1DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL1DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL1DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL1DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL1DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL1DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL1DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL1IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL1IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL1IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL1IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL1IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL1IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL1IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL1IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL1IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL1IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL1IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL1IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL1IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL1IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL2OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL2OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL2OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL2OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL2OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL2OSC_LBMODE_MASK -#define DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL2OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL2OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL2OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL2OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL2OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL2OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL2OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL2OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL2OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL2OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL2OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL2OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL2OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL2OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL2OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL2OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL2OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL2OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL2OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL2OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL2OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL2OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL2OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL2OSC_DLTST_MASK -#define DDR_PHY_DX8SL2OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL2OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL2OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL2OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL2OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL2OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL2OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL2OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL2OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL2OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL2OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL2OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL2OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL2OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL2OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL2OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL2OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL2OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL2OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL2OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL2OSC_OSCEN_MASK -#define DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL2OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL2OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL2OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL2OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL2OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL2PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL2PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL2PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL2PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL2PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL2PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL2PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL2PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL2PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL2PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL2PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL2PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL2PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL2PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL2PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL2PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL2PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL2PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL2PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL2PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL2PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL2DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL2DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL2DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL2DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL2DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL2DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL2DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL2DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL2DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL2DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL2DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL2DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL2DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL2DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL2DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL2DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL2DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL2DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL2DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL2DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL2DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL2DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL2DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL2DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL2DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL2DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL2DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL2DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL2DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL2DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL2DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL2DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL2DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL2DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL2DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL2DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL2IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL2IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL2IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL2IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL2IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL2IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL2IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL2IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL2IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL2IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL2IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL2IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL2IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL2IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL3OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL3OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL3OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL3OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL3OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL3OSC_LBMODE_MASK -#define DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL3OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL3OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL3OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL3OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL3OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL3OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL3OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL3OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL3OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL3OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL3OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL3OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL3OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL3OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL3OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL3OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL3OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL3OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL3OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL3OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL3OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL3OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL3OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL3OSC_DLTST_MASK -#define DDR_PHY_DX8SL3OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL3OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL3OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL3OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL3OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL3OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL3OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL3OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL3OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL3OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL3OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL3OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL3OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL3OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL3OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL3OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL3OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL3OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL3OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL3OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL3OSC_OSCEN_MASK -#define DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL3OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL3OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL3OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL3OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL3OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL3PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL3PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL3PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL3PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL3PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL3PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL3PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL3PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL3PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL3PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL3PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL3PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL3PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL3PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL3PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL3PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL3PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL3PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL3PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL3PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL3PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL3DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL3DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL3DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL3DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL3DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL3DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL3DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL3DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL3DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL3DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL3DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL3DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL3DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL3DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL3DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL3DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL3DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL3DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL3DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL3DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL3DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL3DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL3DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL3DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL3DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL3DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL3DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL3DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL3DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL3DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL3DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL3DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL3DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL3DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL3DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL3DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL3IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL3IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL3IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL3IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL3IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL3IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL3IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL3IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL3IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL3IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL3IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL3IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL3IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL3IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT 30 -#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK 0xC0000000U +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_SHIFT 30 +#define DDR_PHY_DX8SL4OSC_RESERVED_31_30_MASK 0xC0000000U -/*Enable Clock Gating for DX ddr_clk*/ +/* +* Enable Clock Gating for DX ddr_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT 28 -#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK 0x30000000U +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_SHIFT 28 +#define DDR_PHY_DX8SL4OSC_GATEDXRDCLK_MASK 0x30000000U -/*Enable Clock Gating for DX ctl_rd_clk*/ +/* +* Enable Clock Gating for DX ctl_rd_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT 26 -#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK 0x0C000000U +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_SHIFT 26 +#define DDR_PHY_DX8SL4OSC_GATEDXDDRCLK_MASK 0x0C000000U -/*Enable Clock Gating for DX ctl_clk*/ +/* +* Enable Clock Gating for DX ctl_clk +*/ #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT #undef DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT 24 -#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK 0x03000000U +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_SHIFT 24 +#define DDR_PHY_DX8SL4OSC_GATEDXCTLCLK_MASK 0x03000000U -/*Selects the level to which clocks will be stalled when clock gating is enabled.*/ +/* +* Selects the level to which clocks will be stalled when clock gating is e + * nabled. +*/ #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT #undef DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT 22 -#define DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK 0x00C00000U +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_SHIFT 22 +#define DDR_PHY_DX8SL4OSC_CLKLEVEL_MASK 0x00C00000U -/*Loopback Mode*/ +/* +* Loopback Mode +*/ #undef DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBMODE_SHIFT #undef DDR_PHY_DX8SL4OSC_LBMODE_MASK -#define DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBMODE_SHIFT 21 -#define DDR_PHY_DX8SL4OSC_LBMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL4OSC_LBMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBMODE_SHIFT 21 +#define DDR_PHY_DX8SL4OSC_LBMODE_MASK 0x00200000U -/*Load GSDQS LCDL with 2x the calibrated GSDQSPRD value*/ +/* +* Load GSDQS LCDL with 2x the calibrated GSDQSPRD value +*/ #undef DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBGSDQS_MASK -#define DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT 20 -#define DDR_PHY_DX8SL4OSC_LBGSDQS_MASK 0x00100000U +#define DDR_PHY_DX8SL4OSC_LBGSDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBGSDQS_SHIFT 20 +#define DDR_PHY_DX8SL4OSC_LBGSDQS_MASK 0x00100000U -/*Loopback DQS Gating*/ +/* +* Loopback DQS Gating +*/ #undef DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBGDQS_MASK -#define DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT 18 -#define DDR_PHY_DX8SL4OSC_LBGDQS_MASK 0x000C0000U +#define DDR_PHY_DX8SL4OSC_LBGDQS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBGDQS_SHIFT 18 +#define DDR_PHY_DX8SL4OSC_LBGDQS_MASK 0x000C0000U -/*Loopback DQS Shift*/ +/* +* Loopback DQS Shift +*/ #undef DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL #undef DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT #undef DDR_PHY_DX8SL4OSC_LBDQSS_MASK -#define DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT 17 -#define DDR_PHY_DX8SL4OSC_LBDQSS_MASK 0x00020000U +#define DDR_PHY_DX8SL4OSC_LBDQSS_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_LBDQSS_SHIFT 17 +#define DDR_PHY_DX8SL4OSC_LBDQSS_MASK 0x00020000U -/*PHY High-Speed Reset*/ +/* +* PHY High-Speed Reset +*/ #undef DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL #undef DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT #undef DDR_PHY_DX8SL4OSC_PHYHRST_MASK -#define DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT 16 -#define DDR_PHY_DX8SL4OSC_PHYHRST_MASK 0x00010000U +#define DDR_PHY_DX8SL4OSC_PHYHRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_PHYHRST_SHIFT 16 +#define DDR_PHY_DX8SL4OSC_PHYHRST_MASK 0x00010000U -/*PHY FIFO Reset*/ +/* +* PHY FIFO Reset +*/ #undef DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL #undef DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT #undef DDR_PHY_DX8SL4OSC_PHYFRST_MASK -#define DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT 15 -#define DDR_PHY_DX8SL4OSC_PHYFRST_MASK 0x00008000U +#define DDR_PHY_DX8SL4OSC_PHYFRST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_PHYFRST_SHIFT 15 +#define DDR_PHY_DX8SL4OSC_PHYFRST_MASK 0x00008000U -/*Delay Line Test Start*/ +/* +* Delay Line Test Start +*/ #undef DDR_PHY_DX8SL4OSC_DLTST_DEFVAL #undef DDR_PHY_DX8SL4OSC_DLTST_SHIFT #undef DDR_PHY_DX8SL4OSC_DLTST_MASK -#define DDR_PHY_DX8SL4OSC_DLTST_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_DLTST_SHIFT 14 -#define DDR_PHY_DX8SL4OSC_DLTST_MASK 0x00004000U +#define DDR_PHY_DX8SL4OSC_DLTST_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_DLTST_SHIFT 14 +#define DDR_PHY_DX8SL4OSC_DLTST_MASK 0x00004000U -/*Delay Line Test Mode*/ +/* +* Delay Line Test Mode +*/ #undef DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL #undef DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT #undef DDR_PHY_DX8SL4OSC_DLTMODE_MASK -#define DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT 13 -#define DDR_PHY_DX8SL4OSC_DLTMODE_MASK 0x00002000U +#define DDR_PHY_DX8SL4OSC_DLTMODE_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_DLTMODE_SHIFT 13 +#define DDR_PHY_DX8SL4OSC_DLTMODE_MASK 0x00002000U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT 11 -#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK 0x00001800U +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_SHIFT 11 +#define DDR_PHY_DX8SL4OSC_RESERVED_12_11_MASK 0x00001800U -/*Oscillator Mode Write-Data Delay Line Select*/ +/* +* Oscillator Mode Write-Data Delay Line Select +*/ #undef DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCWDDL_MASK -#define DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT 9 -#define DDR_PHY_DX8SL4OSC_OSCWDDL_MASK 0x00000600U +#define DDR_PHY_DX8SL4OSC_OSCWDDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCWDDL_SHIFT 9 +#define DDR_PHY_DX8SL4OSC_OSCWDDL_MASK 0x00000600U -/*Reserved. Caution, do not write to this register field.*/ +/* +* Reserved. Caution, do not write to this register field. +*/ #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT #undef DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT 7 -#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK 0x00000180U +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_SHIFT 7 +#define DDR_PHY_DX8SL4OSC_RESERVED_8_7_MASK 0x00000180U -/*Oscillator Mode Write-Leveling Delay Line Select*/ +/* +* Oscillator Mode Write-Leveling Delay Line Select +*/ #undef DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCWDL_MASK -#define DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT 5 -#define DDR_PHY_DX8SL4OSC_OSCWDL_MASK 0x00000060U +#define DDR_PHY_DX8SL4OSC_OSCWDL_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCWDL_SHIFT 5 +#define DDR_PHY_DX8SL4OSC_OSCWDL_MASK 0x00000060U -/*Oscillator Mode Division*/ +/* +* Oscillator Mode Division +*/ #undef DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCDIV_MASK -#define DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT 1 -#define DDR_PHY_DX8SL4OSC_OSCDIV_MASK 0x0000001EU +#define DDR_PHY_DX8SL4OSC_OSCDIV_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCDIV_SHIFT 1 +#define DDR_PHY_DX8SL4OSC_OSCDIV_MASK 0x0000001EU -/*Oscillator Enable*/ +/* +* Oscillator Enable +*/ #undef DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL #undef DDR_PHY_DX8SL4OSC_OSCEN_SHIFT #undef DDR_PHY_DX8SL4OSC_OSCEN_MASK -#define DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL 0x00019FFE -#define DDR_PHY_DX8SL4OSC_OSCEN_SHIFT 0 -#define DDR_PHY_DX8SL4OSC_OSCEN_MASK 0x00000001U +#define DDR_PHY_DX8SL4OSC_OSCEN_DEFVAL 0x00019FFE +#define DDR_PHY_DX8SL4OSC_OSCEN_SHIFT 0 +#define DDR_PHY_DX8SL4OSC_OSCEN_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SL4PLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SL4PLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SL4PLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SL4PLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SL4PLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SL4PLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_CPPC_MASK +#define DDR_PHY_DX8SL4PLLCR0_CPPC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SL4PLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_CPIC_MASK +#define DDR_PHY_DX8SL4PLLCR0_CPIC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SL4PLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SL4PLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SL4PLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SL4PLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_ATC_MASK +#define DDR_PHY_DX8SL4PLLCR0_ATC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SL4PLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SL4PLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SL4PLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SL4PLLCR0_DTC_MASK +#define DDR_PHY_DX8SL4PLLCR0_DTC_DEFVAL 0x001C0000 +#define DDR_PHY_DX8SL4PLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SL4PLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SL4DQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SL4DQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SL4DQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SL4DQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SL4DQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SL4DQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SL4DQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SL4DQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DXSR_MASK -#define DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SL4DQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SL4DQSCTL_DXSR_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SL4DQSCTL_DXSR_MASK 0x00000300U -/*DQS_N Resistor*/ +/* +* DQS_N Resistor +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SL4DQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL 0x01264000 -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK 0x0000000FU +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_DEFVAL 0x01264000 +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SL4DQSCTL_DQSRES_MASK 0x0000000FU -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT 24 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK 0xFF000000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_SHIFT 24 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_31_24_MASK 0xFF000000U -/*Configurable Read Data Enable*/ +/* +* Configurable Read Data Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT 23 -#define DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK 0x00800000U +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_SHIFT 23 +#define DDR_PHY_DX8SL4DXCTL2_CRDEN_MASK 0x00800000U -/*OX Extension during Post-amble*/ +/* +* OX Extension during Post-amble +*/ #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT 20 -#define DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK 0x00700000U +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_SHIFT 20 +#define DDR_PHY_DX8SL4DXCTL2_POSOEX_MASK 0x00700000U -/*OE Extension during Pre-amble*/ +/* +* OE Extension during Pre-amble +*/ #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT 18 -#define DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK 0x000C0000U +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_SHIFT 18 +#define DDR_PHY_DX8SL4DXCTL2_PREOEX_MASK 0x000C0000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT 17 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK 0x00020000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_SHIFT 17 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_17_MASK 0x00020000U -/*I/O Assisted Gate Select*/ +/* +* I/O Assisted Gate Select +*/ #undef DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_IOAG_MASK -#define DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT 16 -#define DDR_PHY_DX8SL4DXCTL2_IOAG_MASK 0x00010000U +#define DDR_PHY_DX8SL4DXCTL2_IOAG_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_IOAG_SHIFT 16 +#define DDR_PHY_DX8SL4DXCTL2_IOAG_MASK 0x00010000U -/*I/O Loopback Select*/ +/* +* I/O Loopback Select +*/ #undef DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_IOLB_MASK -#define DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT 15 -#define DDR_PHY_DX8SL4DXCTL2_IOLB_MASK 0x00008000U +#define DDR_PHY_DX8SL4DXCTL2_IOLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_IOLB_SHIFT 15 +#define DDR_PHY_DX8SL4DXCTL2_IOLB_MASK 0x00008000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT 13 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK 0x00006000U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_SHIFT 13 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_14_13_MASK 0x00006000U -/*Low Power Wakeup Threshold*/ +/* +* Low Power Wakeup Threshold +*/ #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT 9 -#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_SHIFT 9 +#define DDR_PHY_DX8SL4DXCTL2_LPWAKEUP_THRSH_MASK 0x00001E00U -/*Read Data Bus Inversion Enable*/ +/* +* Read Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RDBI_MASK -#define DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT 8 -#define DDR_PHY_DX8SL4DXCTL2_RDBI_MASK 0x00000100U +#define DDR_PHY_DX8SL4DXCTL2_RDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RDBI_SHIFT 8 +#define DDR_PHY_DX8SL4DXCTL2_RDBI_MASK 0x00000100U -/*Write Data Bus Inversion Enable*/ +/* +* Write Data Bus Inversion Enable +*/ #undef DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_WDBI_MASK -#define DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT 7 -#define DDR_PHY_DX8SL4DXCTL2_WDBI_MASK 0x00000080U +#define DDR_PHY_DX8SL4DXCTL2_WDBI_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_WDBI_SHIFT 7 +#define DDR_PHY_DX8SL4DXCTL2_WDBI_MASK 0x00000080U -/*PUB Read FIFO Bypass*/ +/* +* PUB Read FIFO Bypass +*/ #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT 6 -#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK 0x00000040U +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_SHIFT 6 +#define DDR_PHY_DX8SL4DXCTL2_PRFBYP_MASK 0x00000040U -/*DATX8 Receive FIFO Read Mode*/ +/* +* DATX8 Receive FIFO Read Mode +*/ #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT 4 -#define DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK 0x00000030U +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_SHIFT 4 +#define DDR_PHY_DX8SL4DXCTL2_RDMODE_MASK 0x00000030U -/*Disables the Read FIFO Reset*/ +/* +* Disables the Read FIFO Reset +*/ #undef DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_DISRST_MASK -#define DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT 3 -#define DDR_PHY_DX8SL4DXCTL2_DISRST_MASK 0x00000008U +#define DDR_PHY_DX8SL4DXCTL2_DISRST_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_DISRST_SHIFT 3 +#define DDR_PHY_DX8SL4DXCTL2_DISRST_MASK 0x00000008U -/*Read DQS Gate I/O Loopback*/ +/* +* Read DQS Gate I/O Loopback +*/ #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT 1 -#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK 0x00000006U +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_SHIFT 1 +#define DDR_PHY_DX8SL4DXCTL2_DQSGLB_MASK 0x00000006U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT #undef DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL 0x00141800 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT 0 -#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK 0x00000001U +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_DEFVAL 0x00141800 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_SHIFT 0 +#define DDR_PHY_DX8SL4DXCTL2_RESERVED_0_MASK 0x00000001U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT #undef DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT 31 -#define DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK 0x80000000U +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_SHIFT 31 +#define DDR_PHY_DX8SL4IOCR_RESERVED_31_MASK 0x80000000U -/*PVREF_DAC REFSEL range select*/ +/* +* PVREF_DAC REFSEL range select +*/ #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT 28 -#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK 0x70000000U +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_SHIFT 28 +#define DDR_PHY_DX8SL4IOCR_DXDACRANGE_MASK 0x70000000U -/*IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring*/ +/* +* IOM bits for PVREF, PVREF_DAC and PVREFE cells in DX IO ring +*/ #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT 25 -#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK 0x0E000000U +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_SHIFT 25 +#define DDR_PHY_DX8SL4IOCR_DXVREFIOM_MASK 0x0E000000U -/*DX IO Mode*/ +/* +* DX IO Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXIOM_MASK -#define DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT 22 -#define DDR_PHY_DX8SL4IOCR_DXIOM_MASK 0x01C00000U +#define DDR_PHY_DX8SL4IOCR_DXIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXIOM_SHIFT 22 +#define DDR_PHY_DX8SL4IOCR_DXIOM_MASK 0x01C00000U -/*DX IO Transmitter Mode*/ +/* +* DX IO Transmitter Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXTXM_MASK -#define DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT 11 -#define DDR_PHY_DX8SL4IOCR_DXTXM_MASK 0x003FF800U +#define DDR_PHY_DX8SL4IOCR_DXTXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXTXM_SHIFT 11 +#define DDR_PHY_DX8SL4IOCR_DXTXM_MASK 0x003FF800U -/*DX IO Receiver Mode*/ +/* +* DX IO Receiver Mode +*/ #undef DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL #undef DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT #undef DDR_PHY_DX8SL4IOCR_DXRXM_MASK -#define DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT 0 -#define DDR_PHY_DX8SL4IOCR_DXRXM_MASK 0x000007FFU +#define DDR_PHY_DX8SL4IOCR_DXRXM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SL4IOCR_DXRXM_SHIFT 0 +#define DDR_PHY_DX8SL4IOCR_DXRXM_MASK 0x000007FFU -/*Reserved. Return zeroes on reads.*/ +/* +* PLL Bypass +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLBYP_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_SHIFT 31 +#define DDR_PHY_DX8SLBPLLCR0_PLLBYP_MASK 0x80000000U + +/* +* PLL Reset +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLRST_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_SHIFT 30 +#define DDR_PHY_DX8SLBPLLCR0_PLLRST_MASK 0x40000000U + +/* +* PLL Power Down +*/ +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_PLLPD_MASK +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_SHIFT 29 +#define DDR_PHY_DX8SLBPLLCR0_PLLPD_MASK 0x20000000U + +/* +* Reference Stop Mode +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RSTOPM_MASK +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_SHIFT 28 +#define DDR_PHY_DX8SLBPLLCR0_RSTOPM_MASK 0x10000000U + +/* +* PLL Frequency Select +*/ +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_FRQSEL_MASK +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_SHIFT 24 +#define DDR_PHY_DX8SLBPLLCR0_FRQSEL_MASK 0x0F000000U + +/* +* Relock Mode +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RLOCKM_MASK +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_SHIFT 23 +#define DDR_PHY_DX8SLBPLLCR0_RLOCKM_MASK 0x00800000U + +/* +* Charge Pump Proportional Current Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_CPPC_MASK +#define DDR_PHY_DX8SLBPLLCR0_CPPC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_CPPC_SHIFT 17 +#define DDR_PHY_DX8SLBPLLCR0_CPPC_MASK 0x007E0000U + +/* +* Charge Pump Integrating Current Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_CPIC_MASK +#define DDR_PHY_DX8SLBPLLCR0_CPIC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_CPIC_SHIFT 13 +#define DDR_PHY_DX8SLBPLLCR0_CPIC_MASK 0x0001E000U + +/* +* Gear Shift +*/ +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_GSHIFT_MASK +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_SHIFT 12 +#define DDR_PHY_DX8SLBPLLCR0_GSHIFT_MASK 0x00001000U + +/* +* Reserved. Return zeroes on reads. +*/ +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_MASK +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_SHIFT 9 +#define DDR_PHY_DX8SLBPLLCR0_RESERVED_11_9_MASK 0x00000E00U + +/* +* Analog Test Enable (ATOEN) +*/ +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_ATOEN_MASK +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_SHIFT 8 +#define DDR_PHY_DX8SLBPLLCR0_ATOEN_MASK 0x00000100U + +/* +* Analog Test Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_ATC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_ATC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_ATC_MASK +#define DDR_PHY_DX8SLBPLLCR0_ATC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_ATC_SHIFT 4 +#define DDR_PHY_DX8SLBPLLCR0_ATC_MASK 0x000000F0U + +/* +* Digital Test Control +*/ +#undef DDR_PHY_DX8SLBPLLCR0_DTC_DEFVAL +#undef DDR_PHY_DX8SLBPLLCR0_DTC_SHIFT +#undef DDR_PHY_DX8SLBPLLCR0_DTC_MASK +#define DDR_PHY_DX8SLBPLLCR0_DTC_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBPLLCR0_DTC_SHIFT 0 +#define DDR_PHY_DX8SLBPLLCR0_DTC_MASK 0x0000000FU + +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT 25 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK 0xFE000000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_SHIFT 25 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_31_25_MASK 0xFE000000U -/*Read Path Rise-to-Rise Mode*/ +/* +* Read Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT 24 -#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK 0x01000000U +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_SHIFT 24 +#define DDR_PHY_DX8SLBDQSCTL_RRRMODE_MASK 0x01000000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT 22 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK 0x00C00000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_SHIFT 22 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_23_22_MASK 0x00C00000U -/*Write Path Rise-to-Rise Mode*/ +/* +* Write Path Rise-to-Rise Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT 21 -#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK 0x00200000U +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_SHIFT 21 +#define DDR_PHY_DX8SLBDQSCTL_WRRMODE_MASK 0x00200000U -/*DQS Gate Extension*/ +/* +* DQS Gate Extension +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT 19 -#define DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK 0x00180000U +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_SHIFT 19 +#define DDR_PHY_DX8SLBDQSCTL_DQSGX_MASK 0x00180000U -/*Low Power PLL Power Down*/ +/* +* Low Power PLL Power Down +*/ #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT 18 -#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK 0x00040000U +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_SHIFT 18 +#define DDR_PHY_DX8SLBDQSCTL_LPPLLPD_MASK 0x00040000U -/*Low Power I/O Power Down*/ +/* +* Low Power I/O Power Down +*/ #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT 17 -#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK 0x00020000U +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_SHIFT 17 +#define DDR_PHY_DX8SLBDQSCTL_LPIOPD_MASK 0x00020000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT 15 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK 0x00018000U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_SHIFT 15 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_16_15_MASK 0x00018000U -/*QS Counter Enable*/ +/* +* QS Counter Enable +*/ #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT 14 -#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK 0x00004000U +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_SHIFT 14 +#define DDR_PHY_DX8SLBDQSCTL_QSCNTEN_MASK 0x00004000U -/*Unused DQ I/O Mode*/ +/* +* Unused DQ I/O Mode +*/ #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT 13 -#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK 0x00002000U +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_SHIFT 13 +#define DDR_PHY_DX8SLBDQSCTL_UDQIOM_MASK 0x00002000U -/*Reserved. Return zeroes on reads.*/ +/* +* Reserved. Return zeroes on reads. +*/ #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT 10 -#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK 0x00001C00U +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_SHIFT 10 +#define DDR_PHY_DX8SLBDQSCTL_RESERVED_12_10_MASK 0x00001C00U -/*Data Slew Rate*/ +/* +* Data Slew Rate +*/ #undef DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DXSR_MASK -#define DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT 8 -#define DDR_PHY_DX8SLBDQSCTL_DXSR_MASK 0x00000300U +#define DDR_PHY_DX8SLBDQSCTL_DXSR_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DXSR_SHIFT 8 +#define DDR_PHY_DX8SLBDQSCTL_DXSR_MASK 0x00000300U -/*DQS# Resistor*/ +/* +* DQS# Resistor +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT 4 -#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK 0x000000F0U +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_SHIFT 4 +#define DDR_PHY_DX8SLBDQSCTL_DQSNRES_MASK 0x000000F0U -/*DQS Resistor*/ +/* +* DQS Resistor +*/ #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT #undef DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL 0x00000000 -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT 0 -#define DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK 0x0000000FU - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_31_DEFVAL -#undef DDR_PHY_PIR_RESERVED_31_SHIFT -#undef DDR_PHY_PIR_RESERVED_31_MASK -#define DDR_PHY_PIR_RESERVED_31_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_31_SHIFT 31 -#define DDR_PHY_PIR_RESERVED_31_MASK 0x80000000U - -/*Impedance Calibration Bypass*/ -#undef DDR_PHY_PIR_ZCALBYP_DEFVAL -#undef DDR_PHY_PIR_ZCALBYP_SHIFT -#undef DDR_PHY_PIR_ZCALBYP_MASK -#define DDR_PHY_PIR_ZCALBYP_DEFVAL 0x00000000 -#define DDR_PHY_PIR_ZCALBYP_SHIFT 30 -#define DDR_PHY_PIR_ZCALBYP_MASK 0x40000000U - -/*Digital Delay Line (DDL) Calibration Pause*/ -#undef DDR_PHY_PIR_DCALPSE_DEFVAL -#undef DDR_PHY_PIR_DCALPSE_SHIFT -#undef DDR_PHY_PIR_DCALPSE_MASK -#define DDR_PHY_PIR_DCALPSE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DCALPSE_SHIFT 29 -#define DDR_PHY_PIR_DCALPSE_MASK 0x20000000U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_28_21_DEFVAL -#undef DDR_PHY_PIR_RESERVED_28_21_SHIFT -#undef DDR_PHY_PIR_RESERVED_28_21_MASK -#define DDR_PHY_PIR_RESERVED_28_21_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_28_21_SHIFT 21 -#define DDR_PHY_PIR_RESERVED_28_21_MASK 0x1FE00000U - -/*Write DQS2DQ Training*/ -#undef DDR_PHY_PIR_DQS2DQ_DEFVAL -#undef DDR_PHY_PIR_DQS2DQ_SHIFT -#undef DDR_PHY_PIR_DQS2DQ_MASK -#define DDR_PHY_PIR_DQS2DQ_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DQS2DQ_SHIFT 20 -#define DDR_PHY_PIR_DQS2DQ_MASK 0x00100000U - -/*RDIMM Initialization*/ -#undef DDR_PHY_PIR_RDIMMINIT_DEFVAL -#undef DDR_PHY_PIR_RDIMMINIT_SHIFT -#undef DDR_PHY_PIR_RDIMMINIT_MASK -#define DDR_PHY_PIR_RDIMMINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDIMMINIT_SHIFT 19 -#define DDR_PHY_PIR_RDIMMINIT_MASK 0x00080000U - -/*Controller DRAM Initialization*/ -#undef DDR_PHY_PIR_CTLDINIT_DEFVAL -#undef DDR_PHY_PIR_CTLDINIT_SHIFT -#undef DDR_PHY_PIR_CTLDINIT_MASK -#define DDR_PHY_PIR_CTLDINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_CTLDINIT_SHIFT 18 -#define DDR_PHY_PIR_CTLDINIT_MASK 0x00040000U - -/*VREF Training*/ -#undef DDR_PHY_PIR_VREF_DEFVAL -#undef DDR_PHY_PIR_VREF_SHIFT -#undef DDR_PHY_PIR_VREF_MASK -#define DDR_PHY_PIR_VREF_DEFVAL 0x00000000 -#define DDR_PHY_PIR_VREF_SHIFT 17 -#define DDR_PHY_PIR_VREF_MASK 0x00020000U - -/*Static Read Training*/ -#undef DDR_PHY_PIR_SRD_DEFVAL -#undef DDR_PHY_PIR_SRD_SHIFT -#undef DDR_PHY_PIR_SRD_MASK -#define DDR_PHY_PIR_SRD_DEFVAL 0x00000000 -#define DDR_PHY_PIR_SRD_SHIFT 16 -#define DDR_PHY_PIR_SRD_MASK 0x00010000U - -/*Write Data Eye Training*/ -#undef DDR_PHY_PIR_WREYE_DEFVAL -#undef DDR_PHY_PIR_WREYE_SHIFT -#undef DDR_PHY_PIR_WREYE_MASK -#define DDR_PHY_PIR_WREYE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WREYE_SHIFT 15 -#define DDR_PHY_PIR_WREYE_MASK 0x00008000U - -/*Read Data Eye Training*/ -#undef DDR_PHY_PIR_RDEYE_DEFVAL -#undef DDR_PHY_PIR_RDEYE_SHIFT -#undef DDR_PHY_PIR_RDEYE_MASK -#define DDR_PHY_PIR_RDEYE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDEYE_SHIFT 14 -#define DDR_PHY_PIR_RDEYE_MASK 0x00004000U - -/*Write Data Bit Deskew*/ -#undef DDR_PHY_PIR_WRDSKW_DEFVAL -#undef DDR_PHY_PIR_WRDSKW_SHIFT -#undef DDR_PHY_PIR_WRDSKW_MASK -#define DDR_PHY_PIR_WRDSKW_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WRDSKW_SHIFT 13 -#define DDR_PHY_PIR_WRDSKW_MASK 0x00002000U - -/*Read Data Bit Deskew*/ -#undef DDR_PHY_PIR_RDDSKW_DEFVAL -#undef DDR_PHY_PIR_RDDSKW_SHIFT -#undef DDR_PHY_PIR_RDDSKW_MASK -#define DDR_PHY_PIR_RDDSKW_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RDDSKW_SHIFT 12 -#define DDR_PHY_PIR_RDDSKW_MASK 0x00001000U - -/*Write Leveling Adjust*/ -#undef DDR_PHY_PIR_WLADJ_DEFVAL -#undef DDR_PHY_PIR_WLADJ_SHIFT -#undef DDR_PHY_PIR_WLADJ_MASK -#define DDR_PHY_PIR_WLADJ_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WLADJ_SHIFT 11 -#define DDR_PHY_PIR_WLADJ_MASK 0x00000800U - -/*Read DQS Gate Training*/ -#undef DDR_PHY_PIR_QSGATE_DEFVAL -#undef DDR_PHY_PIR_QSGATE_SHIFT -#undef DDR_PHY_PIR_QSGATE_MASK -#define DDR_PHY_PIR_QSGATE_DEFVAL 0x00000000 -#define DDR_PHY_PIR_QSGATE_SHIFT 10 -#define DDR_PHY_PIR_QSGATE_MASK 0x00000400U - -/*Write Leveling*/ -#undef DDR_PHY_PIR_WL_DEFVAL -#undef DDR_PHY_PIR_WL_SHIFT -#undef DDR_PHY_PIR_WL_MASK -#define DDR_PHY_PIR_WL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_WL_SHIFT 9 -#define DDR_PHY_PIR_WL_MASK 0x00000200U - -/*DRAM Initialization*/ -#undef DDR_PHY_PIR_DRAMINIT_DEFVAL -#undef DDR_PHY_PIR_DRAMINIT_SHIFT -#undef DDR_PHY_PIR_DRAMINIT_MASK -#define DDR_PHY_PIR_DRAMINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DRAMINIT_SHIFT 8 -#define DDR_PHY_PIR_DRAMINIT_MASK 0x00000100U - -/*DRAM Reset (DDR3/DDR4/LPDDR4 Only)*/ -#undef DDR_PHY_PIR_DRAMRST_DEFVAL -#undef DDR_PHY_PIR_DRAMRST_SHIFT -#undef DDR_PHY_PIR_DRAMRST_MASK -#define DDR_PHY_PIR_DRAMRST_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DRAMRST_SHIFT 7 -#define DDR_PHY_PIR_DRAMRST_MASK 0x00000080U - -/*PHY Reset*/ -#undef DDR_PHY_PIR_PHYRST_DEFVAL -#undef DDR_PHY_PIR_PHYRST_SHIFT -#undef DDR_PHY_PIR_PHYRST_MASK -#define DDR_PHY_PIR_PHYRST_DEFVAL 0x00000000 -#define DDR_PHY_PIR_PHYRST_SHIFT 6 -#define DDR_PHY_PIR_PHYRST_MASK 0x00000040U - -/*Digital Delay Line (DDL) Calibration*/ -#undef DDR_PHY_PIR_DCAL_DEFVAL -#undef DDR_PHY_PIR_DCAL_SHIFT -#undef DDR_PHY_PIR_DCAL_MASK -#define DDR_PHY_PIR_DCAL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_DCAL_SHIFT 5 -#define DDR_PHY_PIR_DCAL_MASK 0x00000020U - -/*PLL Initialiazation*/ -#undef DDR_PHY_PIR_PLLINIT_DEFVAL -#undef DDR_PHY_PIR_PLLINIT_SHIFT -#undef DDR_PHY_PIR_PLLINIT_MASK -#define DDR_PHY_PIR_PLLINIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_PLLINIT_SHIFT 4 -#define DDR_PHY_PIR_PLLINIT_MASK 0x00000010U - -/*Reserved. Return zeroes on reads.*/ -#undef DDR_PHY_PIR_RESERVED_3_DEFVAL -#undef DDR_PHY_PIR_RESERVED_3_SHIFT -#undef DDR_PHY_PIR_RESERVED_3_MASK -#define DDR_PHY_PIR_RESERVED_3_DEFVAL 0x00000000 -#define DDR_PHY_PIR_RESERVED_3_SHIFT 3 -#define DDR_PHY_PIR_RESERVED_3_MASK 0x00000008U - -/*CA Training*/ -#undef DDR_PHY_PIR_CA_DEFVAL -#undef DDR_PHY_PIR_CA_SHIFT -#undef DDR_PHY_PIR_CA_MASK -#define DDR_PHY_PIR_CA_DEFVAL 0x00000000 -#define DDR_PHY_PIR_CA_SHIFT 2 -#define DDR_PHY_PIR_CA_MASK 0x00000004U - -/*Impedance Calibration*/ -#undef DDR_PHY_PIR_ZCAL_DEFVAL -#undef DDR_PHY_PIR_ZCAL_SHIFT -#undef DDR_PHY_PIR_ZCAL_MASK -#define DDR_PHY_PIR_ZCAL_DEFVAL 0x00000000 -#define DDR_PHY_PIR_ZCAL_SHIFT 1 -#define DDR_PHY_PIR_ZCAL_MASK 0x00000002U - -/*Initialization Trigger*/ -#undef DDR_PHY_PIR_INIT_DEFVAL -#undef DDR_PHY_PIR_INIT_SHIFT -#undef DDR_PHY_PIR_INIT_MASK -#define DDR_PHY_PIR_INIT_DEFVAL 0x00000000 -#define DDR_PHY_PIR_INIT_SHIFT 0 -#define DDR_PHY_PIR_INIT_MASK 0x00000001U +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_DEFVAL 0x00000000 +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_SHIFT 0 +#define DDR_PHY_DX8SLBDQSCTL_DQSRES_MASK 0x0000000FU #undef IOU_SLCR_MIO_PIN_0_OFFSET #define IOU_SLCR_MIO_PIN_0_OFFSET 0XFF180000 #undef IOU_SLCR_MIO_PIN_1_OFFSET @@ -17120,7308 +21593,9482 @@ #undef IOU_SLCR_MIO_LOOPBACK_OFFSET #define IOU_SLCR_MIO_LOOPBACK_OFFSET 0XFF180200 -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- (QSPI Clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out- + * (QSPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_0_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_0_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_0_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_0_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_0_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_0_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[0]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[0]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[0]- (Test Scan Port) = test_scan, Output, test_scan_out[0 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_0_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_0_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_0_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[0]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[0]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_0_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_0_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_0_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_0_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_0_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (QSPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Data - us)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_mi1- (Q + * SPI Databus) 1= qspi, Output, qspi_so_mo1- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_1_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_1_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_1_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_1_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_1_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_1_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[1]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[1]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[1]- (Test Scan Port) = test_scan, Output, test_scan_out[1 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_1_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_1_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_1_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[1]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[1]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc3, Ou + * tput, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) +*/ #undef IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_1_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_1_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_1_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_1_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_1_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi2- (QSPI + * Databus) 1= qspi, Output, qspi_mo2- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_2_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_2_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_2_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_2_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_2_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_2_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[2]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[2]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[2]- (Test Scan Port) = test_scan, Output, test_scan_out[2 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_2_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_2_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_2_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, Input, ttc2_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[2]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[2]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc2, I + * nput, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_2_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_2_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_2_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_2_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_2_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi3- (QSPI + * Databus) 1= qspi, Output, qspi_mo3- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_3_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_3_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_3_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_3_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_3_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_3_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[3]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[3]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[3]- (Test Scan Port) = test_scan, Output, test_scan_out[3 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_3_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_3_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_3_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[3]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[3]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_3_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_3_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_3_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_3_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_3_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- (QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Data - us)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_mo_mo0- ( + * QSPI Databus) 1= qspi, Input, qspi_si_mi0- (QSPI Databus) +*/ #undef IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_4_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_4_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_4_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_4_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_4_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_4_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[4]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[4]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[4]- (Test Scan Port) = test_scan, Output, test_scan_out[4 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_4_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_4_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_4_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[4]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[4]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_4_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_4_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_4_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_4_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_4_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- (QSPI Slave Select)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out- + * (QSPI Slave Select) +*/ #undef IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_5_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_5_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_5_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_5_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_5_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_5_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[5]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[5]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[5]- (Test Scan Port) = test_scan, Output, test_scan_out[5 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_5_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_5_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_5_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[5]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[5]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_5_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_5_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_5_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_5_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_5_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_lpbk- (QSPI Clock to be fed-back)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_clk_for_l + * pbk- (QSPI Clock to be fed-back) +*/ #undef IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_6_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_6_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_6_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_6_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_6_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_6_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[6]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[6]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[6]- (Test Scan Port) = test_scan, Output, test_scan_out[6 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_6_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_6_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_6_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1 - sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, - Output, tracedq[4]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[6]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[6]- (GPIO bank 0) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= s + * pi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TT + * C Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, + * Output, tracedq[4]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_6_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_6_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_6_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_6_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_6_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_upper- (QSPI Slave Select upper)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_n_ss_out_ + * upper- (QSPI Slave Select upper) +*/ #undef IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_7_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_7_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_7_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_7_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_7_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_7_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[7]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[7]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[7]- (Test Scan Port) = test_scan, Output, test_scan_out[7 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_7_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_7_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_7_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - tc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, - racedq[5]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[7]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[7]- (GPIO bank 0) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Ma + * ster Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua + * 0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, t + * racedq[5]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_7_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_7_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_7_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_7_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_7_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [0]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[0 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[0]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_8_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_8_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_8_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_8_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_8_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_8_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[8]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[8]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[8]- (Test Scan Port) = test_scan, Output, test_scan_out[8 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_8_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_8_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_8_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc - , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tr - ce Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[8]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[8]- (GPIO bank 0) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Maste + * r Selects) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_ + * txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Tra + * ce Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_8_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_8_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_8_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_8_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_8_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [1]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[1 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[1]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_9_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_9_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_9_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_9_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_9_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_9_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[9]- (Test Scan Port) = test_scan, Outp - t, test_scan_out[9]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[9]- (Test Scan Port) = test_scan, Output, test_scan_out[9 + * ]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_9_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_9_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_9_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - utput, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (U - RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[9]- (GPIO bank 0) 0= g + * pio0, Output, gpio_0_pin_out[9]- (GPIO bank 0) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master S + * elects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc3, + * Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UA + * RT receiver serial input) 7= trace, Output, tracedq[7]- (Trace Port Data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_9_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_9_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_9_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_9_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_9_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [2]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[2 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[2]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_10_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_10_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_10_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_10_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_10_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_10_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[10]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[10]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[10]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 10]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_10_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_10_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_10_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[10]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[10]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_10_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_10_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_10_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_10_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_10_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_uppe - [3]- (QSPI Upper Databus)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Input, qspi_mi_upper[3 + * ]- (QSPI Upper Databus) 1= qspi, Output, qspi_mo_upper[3]- (QSPI Upper D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_11_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_11_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_11_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_11_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_11_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_11_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[11]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[11]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[11]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 11]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_11_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_11_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_11_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[11]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[11]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_11_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_11_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_11_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_11_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_11_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_upper- (QSPI Upper Clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= qspi, Output, qspi_sclk_out_ + * upper- (QSPI Upper Clock) +*/ #undef IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_12_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_12_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_12_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - */ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) +*/ #undef IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_12_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_12_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_12_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input, test_scan_in[12]- (Test Scan Port) = test_scan, Out - ut, test_scan_out[12]- (Test Scan Port) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= test_scan, Input + * , test_scan_in[12]- (Test Scan Port) = test_scan, Output, test_scan_out[ + * 12]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_12_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_12_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_12_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cl - ck) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trac - dq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[12]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[12]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJT + * AG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_ + * sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, O + * utput, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace + * dq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_12_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_12_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_12_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_12_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_12_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_13_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_13_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_13_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[0]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_13_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_13_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_13_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, test_scan_out[13]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[13]- (Test Scan Port) = test_scan, Output, + * test_scan_out[13]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_13_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_13_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_13_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave - out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Dat - bus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[13]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[13]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTA + * G TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, + * Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UAR + * T receiver serial input) 7= trace, Output, tracedq[11]- (Trace Port Data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_13_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_13_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_13_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_13_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_13_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_14_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_14_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_14_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND Command Latch Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_cle- (NAND + * Command Latch Enable) +*/ #undef IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_14_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_14_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_14_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, test_scan_out[14]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[14]- (Test Scan Port) = test_scan, Output, + * test_scan_out[14]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_14_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_14_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_14_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_ - n- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[14]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[14]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJT + * AG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, + * Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver + * serial input) 7= trace, Output, tracedq[12]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_14_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_14_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_14_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_14_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_14_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_15_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_15_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_15_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND Address Latch Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ale- (NAND + * Address Latch Enable) +*/ #undef IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_15_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_15_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_15_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, test_scan_out[15]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[15]- (Test Scan Port) = test_scan, Output, + * test_scan_out[15]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_15_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_15_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_15_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out - 0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seri - l output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[15]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[15]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJT + * AG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outp + * ut, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_ou + * t- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter seria + * l output) 7= trace, Output, tracedq[13]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_15_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_15_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_15_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_15_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_15_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_16_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_16_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_16_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[0]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[0]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_16_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_16_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_16_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, test_scan_out[16]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[16]- (Test Scan Port) = test_scan, Output, + * test_scan_out[16]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_16_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_16_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_16_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[16]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[16]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_16_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_16_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_16_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_16_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_16_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_17_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_17_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_17_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[1]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[1]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_17_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_17_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_17_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, test_scan_out[17]- (Test Scan Port - 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[17]- (Test Scan Port) = test_scan, Output, + * test_scan_out[17]- (Test Scan Port) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_17_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_17_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_17_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[17]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[17]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_17_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_17_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_17_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_17_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_17_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_18_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_18_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_18_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[2]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[2]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_18_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_18_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_18_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, test_scan_out[18]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[18]- (Test Scan Port) = test_scan, Output, + * test_scan_out[18]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_18_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_18_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_18_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[18]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[18]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_18_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_18_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_18_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_18_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_18_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_19_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_19_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_19_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[3]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[3]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_19_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_19_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_19_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, test_scan_out[19]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[19]- (Test Scan Port) = test_scan, Output, + * test_scan_out[19]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_19_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_19_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_19_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[19]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[19]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_19_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_19_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_19_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_19_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_19_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_20_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_20_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_20_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[4]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[4]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_20_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_20_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_20_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= test_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, test_scan_out[20]- (Test Scan Port - 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= t + * est_scan, Input, test_scan_in[20]- (Test Scan Port) = test_scan, Output, + * test_scan_out[20]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU + * Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_20_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_20_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_20_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= t - c1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[20]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[20]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua + * 1_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_20_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_20_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_20_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_20_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_20_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_21_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_21_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_21_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[5]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[5]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_21_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_21_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_21_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= test_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, test_scan_out[21]- (Test Scan Port) - = csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= tes + * t_scan, Input, test_scan_in[21]- (Test Scan Port) = test_scan, Output, t + * est_scan_out[21]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU E + * xt Tamper) +*/ #undef IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_21_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_21_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_21_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- - UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[21]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[21]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc + * 1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- ( + * UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_21_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_21_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_21_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_21_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_21_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_22_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_22_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_22_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAND Write Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_we_b- (NAN + * D Write Enable) +*/ #undef IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_22_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_22_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_22_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- - (Test Scan Port) = test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= test_scan, Input, test_scan_in[22]- (Test Scan Port) = + * test_scan, Output, test_scan_out[22]- (Test Scan Port) 3= csu, Input, c + * su_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_22_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_22_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_22_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[22]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[22]- (GPIO bank 0) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed +*/ #undef IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_22_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_22_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_22_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_22_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_22_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_23_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_23_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_23_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[6]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[6]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_23_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_23_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_23_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= test_scan, Input, test_scan_in - 23]- (Test Scan Port) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper - */ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= test_scan, Input, test_scan_in[23]- (Test Scan Po + * rt) = test_scan, Output, test_scan_out[23]- (Test Scan Port) 3= csu, Inp + * ut, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_23_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_23_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_23_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[23]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[23]- (GPIO bank 0) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_23_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_23_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_23_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_23_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_23_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_24_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_24_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_24_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- (NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND - ata Bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dq_in[7]- ( + * NAND Data Bus) 1= nand, Output, nfc_dq_out[7]- (NAND Data Bus) +*/ #undef IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_24_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_24_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_24_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= test_scan, Input, test - scan_in[24]- (Test Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ex - Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= test_scan, Input, test_scan_in[24]- (Test + * Scan Port) = test_scan, Output, test_scan_out[24]- (Test Scan Port) 3= + * csu, Input, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_24_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_24_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_24_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, - Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[24]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[24]- (GPIO bank 0) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= Not Used 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= N + * ot Used +*/ #undef IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_24_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_24_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_24_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_24_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_24_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_25_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_25_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_25_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAND Read Enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_re_n- (NAN + * D Read Enable) +*/ #undef IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_25_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_25_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_25_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= test_scan, Input, - test_scan_in[25]- (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (C - U Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= test_scan, Input, test_scan_in[25]- + * (Test Scan Port) = test_scan, Output, test_scan_out[25]- (Test Scan Port + * ) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_25_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_25_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_25_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_out- (TTC Waveform - lock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio0, Input, gpio_0_pin_in[25]- (GPIO bank 0) 0= + * gpio0, Output, gpio_0_pin_out[25]- (GPIO bank 0) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= Not Used 5= ttc3, Output, ttc3_wave_ou + * t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in + * put) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_25_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_25_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_25_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_25_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_25_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_26_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_26_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_26_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NAND chip enable)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Output, nfc_ce[1]- (NA + * ND chip enable) +*/ #undef IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_26_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_26_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_26_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[26]- (Test Sc - n Port) = test_scan, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[0]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[26]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[26]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_26_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_26_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_26_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[0]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[0]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_26_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_26_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_26_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_26_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_26_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_27_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_27_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_27_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[0]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_27_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_27_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_27_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[27]- (Test Sc - n Port) = test_scan, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[1]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[27]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[27]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_27_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_27_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_27_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[1]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[1]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_27_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_27_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_27_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_27_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_27_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_28_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_28_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_28_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (NAND Ready/Busy)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_rb_n[1]- (N + * AND Ready/Busy) +*/ #undef IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_28_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_28_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_28_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[28]- (Test Sc - n Port) = test_scan, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[2]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[28]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[28]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_28_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_28_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_28_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[2]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[2]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_28_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_28_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_28_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_28_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_28_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_29_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_29_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_29_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_29_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_29_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_29_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[29]- (Test Sc - n Port) = test_scan, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Outp - t, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[3]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[29]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[29]- (Test Scan Port) 3= dpaux, Input, dp_aux_d + * ata_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_29_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_29_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_29_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[3]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[3]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, + * spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_29_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_29_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_29_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_29_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_29_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_30_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_30_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_30_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_30_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_30_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_30_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[30]- (Test Sc - n Port) = test_scan, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[4]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[30]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[30]- (Test Scan Port) 3= dpaux, Input, dp_hot_p + * lug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_30_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_30_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_30_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_so - (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output - tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[4]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[4]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0 + * , Output, spi0_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock + * ) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, + * tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_30_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_30_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_30_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_30_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_30_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Output, gem0_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_31_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_31_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_31_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_31_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_31_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_31_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[31]- (Test Sc - n Port) = test_scan, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Input, pmu_gpi[5]- (PMU + * GPI) 2= test_scan, Input, test_scan_in[31]- (Test Scan Port) = test_sca + * n, Output, test_scan_out[31]- (Test Scan Port) 3= csu, Input, csu_ext_ta + * mper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_31_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_31_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_31_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi - _si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial out - ut) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[5]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[5]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TT + * C Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial outp + * ut) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_31_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_31_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_31_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_31_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_31_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_32_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_32_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_32_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NAND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe - */ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= nand, Input, nfc_dqs_in- (NA + * ND Strobe) 1= nand, Output, nfc_dqs_out- (NAND Strobe) +*/ #undef IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_32_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_32_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_32_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PMU GPI) 2= test_scan, Input, test_scan_in[32]- (Test S - an Port) = test_scan, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[0]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[32]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[32]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_32_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_32_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_32_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi - _sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= - race, Output, tracedq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[6]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[6]- (GPIO bank 1) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (T + * TC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= t + * race, Output, tracedq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_32_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_32_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_32_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_32_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_32_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_33_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_33_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_33_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_33_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_33_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_33_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PMU GPI) 2= test_scan, Input, test_scan_in[33]- (Test S - an Port) = test_scan, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_tamper- (CSU Ext Tamper)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[1]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[33]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[33]- (Test Scan Port) 3= csu, Input, csu_ext_t + * amper- (CSU Ext Tamper) +*/ #undef IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_33_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_33_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_33_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= t - c3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, traced - [11]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[7]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[7]- (GPIO bank 1) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Mas + * ter Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1 + * , Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, tracedq + * [11]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_33_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_33_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_33_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_33_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_33_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_34_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_34_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_34_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_34_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_34_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_34_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PMU GPI) 2= test_scan, Input, test_scan_in[34]- (Test S - an Port) = test_scan, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[2]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[34]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[34]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_34_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_34_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_34_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc2 - Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace P - rt Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[8]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[8]- (GPIO bank 1) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (Wat + * ch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master + * Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rx + * d- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace Po + * rt Databus) +*/ #undef IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_34_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_34_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_34_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_34_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_34_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_35_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_35_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_35_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_35_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_35_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_35_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PMU GPI) 2= test_scan, Input, test_scan_in[35]- (Test S - an Port) = test_scan, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[3]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[35]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[35]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_35_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_35_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_35_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- - UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[9]- (GPIO bank 1) 0= g + * pio1, Output, gpio_1_pin_out[9]- (GPIO bank 1) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- ( + * Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc2 + * , Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- ( + * UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Po + * rt Databus) +*/ #undef IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_35_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_35_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_35_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_35_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_35_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_36_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_36_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_36_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_36_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_36_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_36_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PMU GPI) 2= test_scan, Input, test_scan_in[36]- (Test S - an Port) = test_scan, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_data_in- (Dp Aux Data) = dpaux, Out - ut, dp_aux_data_out- (Dp Aux Data)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[4]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[36]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[36]- (Test Scan Port) 3= dpaux, Input, dp_aux_ + * data_in- (Dp Aux Data) = dpaux, Output, dp_aux_data_out- (Dp Aux Data) +*/ #undef IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_36_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_36_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_36_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[10]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[10]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_36_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_36_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_36_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_36_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_36_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem0, Input, gem0_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_37_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_37_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_37_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- (PCIE Reset signal)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= pcie, Input, pcie_reset_n- ( + * PCIE Reset signal) +*/ #undef IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_37_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_37_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_37_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PMU GPI) 2= test_scan, Input, test_scan_in[37]- (Test S - an Port) = test_scan, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_plug_detect- (Dp Aux Hot Plug)*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= pmu, Output, pmu_gpo[5]- (PM + * U GPI) 2= test_scan, Input, test_scan_in[37]- (Test Scan Port) = test_sc + * an, Output, test_scan_out[37]- (Test Scan Port) 3= dpaux, Input, dp_hot_ + * plug_detect- (Dp Aux Hot Plug) +*/ #undef IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_37_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_37_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_37_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[11]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[11]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_37_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_37_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_37_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_37_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_37_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_38_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_38_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_38_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_38_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_38_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_38_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_38_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_38_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_38_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Clo - k) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- - (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[12]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[12]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTA + * G TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_s + * clk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, In + * put, ua0_rxd- (UART receiver serial input) 7= trace, Output, trace_clk- + * (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_38_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_38_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_38_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_38_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_38_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_39_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_39_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_39_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_39_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_39_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_39_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= sd1, Input, sd1_data_i - [4]- (8-bit Data bus) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= sd1, Input, sd1_data_in[4]- (8-bit Data b + * us) = sd1, Output, sdio1_data_out[4]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_39_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_39_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_39_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, Output, ttc0_wav - _out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port - Control Signal)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[13]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[13]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJT + * AG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc0, + * Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (U + * ART transmitter serial output) 7= trace, Output, trace_ctl- (Trace Port + * Control Signal) +*/ #undef IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_39_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_39_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_39_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_39_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_39_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_40_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_40_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_40_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_40_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_40_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_40_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= sd1, Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[5]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= sd1 + * , Input, sd1_data_in[5]- (8-bit Data bus) = sd1, Output, sdio1_data_out[ + * 5]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_40_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_40_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_40_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3, Input, ttc3_clk - in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[14]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[14]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJ + * TAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc3 + * , Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmi + * tter serial output) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_40_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_40_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_40_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_40_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_40_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_41_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_41_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_41_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_41_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_41_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_41_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_out[6]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[6]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[6]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_41_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_41_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_41_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[ - ]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial in - ut) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[15]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[15]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTA + * G TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Outpu + * t, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc3, Output, ttc3_wave_out + * - (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inp + * ut) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_41_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_41_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_41_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_41_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_41_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_42_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_42_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_42_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_42_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_42_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_42_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_out[7]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[7]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[7]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_42_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_42_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_42_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_ - o- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[16]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[16]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= sp + * i0, Output, spi0_so- (MISO signal) 5= ttc2, Input, ttc2_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_42_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_42_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_42_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_42_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_42_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Output, gem1_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_43_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_43_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_43_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_43_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_43_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_43_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_43_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_43_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_43_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, s - i0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[17]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[17]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) + * 4= spi0, Input, spi0_si- (MOSI signal) 5= ttc2, Output, ttc2_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_43_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_43_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_43_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_43_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_43_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_44_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_44_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_44_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_44_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_44_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_44_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_44_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_44_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_44_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, s - i1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[18]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[18]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4 + * = spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * Not Used +*/ #undef IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_44_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_44_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_44_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_44_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_44_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_45_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_45_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_45_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_45_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_45_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_45_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_45_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_45_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_45_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= - ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[19]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[19]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_45_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_45_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_45_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_45_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_45_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_46_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_46_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_46_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_46_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_46_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_46_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_46_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_46_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_46_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= tt - 0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[20]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[20]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_46_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_46_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_46_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_46_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_46_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_47_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_47_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_47_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_47_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_47_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_47_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_47_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_47_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_47_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[21]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[21]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Maste + * r Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= tt + * c0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_47_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_47_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_47_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_47_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_47_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_48_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_48_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_48_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_48_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_48_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_48_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_48_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_48_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_48_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1 - so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not U - ed*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[22]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[22]- (GPIO bank 1) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= s + * pi1, Output, spi1_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Us + * ed +*/ #undef IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_48_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_48_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_48_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_48_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_48_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem1, Input, gem1_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_49_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_49_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_49_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_49_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_49_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_49_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8 - bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd + * 1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_49_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_49_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_49_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, sp - 1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[23]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[23]- (GPIO bank 1) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4 + * = spi1, Input, spi1_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_49_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_49_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_49_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_49_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_49_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) +*/ #undef IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_50_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_50_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_50_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_50_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_50_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_50_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Input, sd1_c - d_in- (Command Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Input, sd1_cmd_in- (Command Ind + * icator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_50_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_50_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_50_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= ttc2, Input, ttc2 - clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[24]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[24]- (GPIO bank 1) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= + * ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART rece + * iver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_50_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_50_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_50_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_50_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_50_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- (TSU clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem_tsu, Input, gem_tsu_clk- + * (TSU clock) +*/ #undef IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_51_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_51_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_51_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_51_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_51_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_51_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdio1_clk_out- (SDSDIO clock) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Output, sdi + * o1_clk_out- (SDSDIO clock) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_51_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_51_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_51_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Data) 4= mdio1, Outp - t, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter - serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio1, Input, gpio_1_pin_in[25]- (GPIO bank 1) 0= + * gpio1, Output, gpio_1_pin_out[25]- (GPIO bank 1) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= mdio1, Input, gem1_mdio_in- (MDIO Dat + * a) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= ttc2, Output, ttc2_wa + * ve_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter + * serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_51_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_51_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_51_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_51_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_51_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_52_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_52_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_52_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_in- (ULPI Clock)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_clk_i + * n- (ULPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_52_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_52_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_52_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_52_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_52_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_52_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sclk_out- (SPI Cloc - ) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_ - lk- (Trace Port Clock)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[0]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[0]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, spi0_sc + * lk_out- (SPI Clock) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Out + * put, ua1_txd- (UART transmitter serial output) 7= trace, Output, trace_c + * lk- (Trace Port Clock) +*/ #undef IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_52_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_52_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_52_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_52_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_52_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_53_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_53_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_53_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- (Data bus direction control)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_dir- + * (Data bus direction control) +*/ #undef IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_53_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_53_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_53_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_53_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_53_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_53_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_o - t- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control - Signal)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[1]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[1]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= ttc1, Ou + * tput, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART + * receiver serial input) 7= trace, Output, trace_ctl- (Trace Port Control + * Signal) +*/ #undef IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_53_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_53_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_53_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_53_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_53_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_54_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_54_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_54_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[2]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[2]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_54_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_54_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_54_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_54_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_54_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_54_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, Input, ttc0_clk_in - (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[0]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[2]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[2]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTAG + * TDO) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= ttc0, I + * nput, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver se + * rial input) 7= trace, Output, tracedq[0]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_54_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_54_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_54_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_54_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_54_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_55_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_55_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_55_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- (Data flow control signal from the PHY)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_nxt- + * (Data flow control signal from the PHY) +*/ #undef IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_55_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_55_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_55_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_55_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_55_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_55_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output, spi0_n_ss_out[0 - - (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial - output) 7= trace, Output, tracedq[1]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[3]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[3]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi0, Output + * , spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc0, Output, ttc0_wave_out- + * (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial + * output) 7= trace, Output, tracedq[1]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_55_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_55_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_55_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_55_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_55_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_56_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_56_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_56_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[0]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[0]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_56_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_56_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_56_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_56_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_56_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_56_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0_s - - (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, - utput, tracedq[2]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[4]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[4]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- (Wa + * tch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi + * 0, Output, spi0_so- (MISO signal) 5= ttc3, Input, ttc3_clk_in- (TTC Cloc + * k) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, O + * utput, tracedq[2]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_56_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_56_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_56_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_56_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_56_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Output, gem2_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_57_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_57_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_57_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[1]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[1]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_57_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_57_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_57_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_57_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_57_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_57_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, spi0 - si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7 - trace, Output, tracedq[3]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[5]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[5]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- (W + * atch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= + * spi0, Input, spi0_si- (MOSI signal) 5= ttc3, Output, ttc3_wave_out- (TTC + * Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= + * trace, Output, tracedq[3]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_57_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_57_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_57_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_57_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_57_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_58_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_58_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_58_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- (Asserted to end or interrupt transfers)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Output, usb0_ulpi_stp- + * (Asserted to end or interrupt transfers) +*/ #undef IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_58_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_58_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_58_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_58_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_58_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_58_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can - , Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL signal - 3= pjtag, Input, pjtag_tck- (PJTAG TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_sclk_out- (SPI Clock - 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- - Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[6]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[6]- (GPIO bank 2) 1= can0, Input, can0_phy_ + * rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0 + * , Output, i2c0_scl_out- (SCL signal) 3= pjtag, Input, pjtag_tck- (PJTAG + * TCK) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, spi1_scl + * k_out- (SPI Clock) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Inpu + * t, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[4]- ( + * Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_58_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_58_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_58_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_58_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_58_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_59_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_59_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_59_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[3]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[3]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_59_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_59_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_59_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_59_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_59_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_59_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can - , Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA signa - ) 3= pjtag, Input, pjtag_tdi- (PJTAG TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_ - ut- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port - atabus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[7]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[7]- (GPIO bank 2) 1= can0, Output, can0_phy + * _tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c + * 0, Output, i2c0_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tdi- (PJTAG + * TDI) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5= ttc2, O + * utput, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UAR + * T transmitter serial output) 7= trace, Output, tracedq[5]- (Trace Port D + * atabus) +*/ #undef IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_59_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_59_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_59_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_59_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_59_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_60_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_60_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_60_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[4]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[4]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_60_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_60_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_60_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_60_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_60_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_60_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can - , Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL signa - ) 3= pjtag, Output, pjtag_tdo- (PJTAG TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, Input, ttc1_clk_i - - (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[8]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[8]- (GPIO bank 2) 1= can1, Output, can1_phy + * _tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c + * 1, Output, i2c1_scl_out- (SCL signal) 3= pjtag, Output, pjtag_tdo- (PJTA + * G TDO) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= ttc1, + * Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitt + * er serial output) 7= trace, Output, tracedq[6]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_60_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_60_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_60_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_60_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_60_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_61_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_61_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_61_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[5]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[5]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_61_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_61_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_61_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_61_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_61_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_61_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can - , Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA signal - 3= pjtag, Input, pjtag_tms- (PJTAG TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, spi1_n_ss_out[0] - (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial inpu - ) 7= trace, Output, tracedq[7]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[9]- (GPIO bank 2) 0= g + * pio2, Output, gpio_2_pin_out[9]- (GPIO bank 2) 1= can1, Input, can1_phy_ + * rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1 + * , Output, i2c1_sda_out- (SDA signal) 3= pjtag, Input, pjtag_tms- (PJTAG + * TMS) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1, Output, + * spi1_n_ss_out[0]- (SPI Master Selects) 5= ttc1, Output, ttc1_wave_out- + * (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input + * ) 7= trace, Output, tracedq[7]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_61_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_61_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_61_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_61_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_61_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_62_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_62_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_62_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[6]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[6]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_62_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_62_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_62_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_62_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_62_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_62_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outp - t, tracedq[8]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[10]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[10]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= ttc0, Input, ttc0_clk_in- (TTC Clo + * ck) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Outpu + * t, tracedq[8]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_62_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_62_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_62_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_62_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_62_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem2, Input, gem2_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_63_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_63_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_63_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_data[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_ - ata[7]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb0, Input, usb0_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb0, Output, usb0_ulpi_tx_data[7]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_63_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_63_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_63_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= Not Used 3= Not + * Used +*/ #undef IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_63_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_63_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_63_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial o - tput) 7= trace, Output, tracedq[9]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[11]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[11]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= ttc0, Output, ttc0_wave_out- ( + * TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial ou + * tput) 7= trace, Output, tracedq[9]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_63_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_63_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_63_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_63_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_63_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_clk- (TX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * clk- (TX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_64_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_64_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_64_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_in- (ULPI Clock)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_clk_i + * n- (ULPI Clock) +*/ #undef IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_64_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_64_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_64_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- (SDSDIO clock) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_clk_out- + * (SDSDIO clock) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_64_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_64_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_64_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4= spi0, Output, s - i0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7 - trace, Output, tracedq[10]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[12]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[12]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_sclk_in- (SPI Clock) 4 + * = spi0, Output, spi0_sclk_out- (SPI Clock) 5= ttc3, Input, ttc3_clk_in- + * (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= + * trace, Output, tracedq[10]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_64_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_64_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_64_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_64_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_64_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[0]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [0]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_65_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_65_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_65_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- (Data bus direction control)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_dir- + * (Data bus direction control) +*/ #undef IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_65_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_65_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_65_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD card detect from connector) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_cd_n- (SD + * card detect from connector) 2= Not Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_65_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_65_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_65_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI Master Selects) 5= - ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trac - dq[11]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[13]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[13]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_n_ss_out[2]- (SPI M + * aster Selects) 5= ttc3, Output, ttc3_wave_out- (TTC Waveform Clock) 6= u + * a1, Input, ua1_rxd- (UART receiver serial input) 7= trace, Output, trace + * dq[11]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_65_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_65_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_65_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_65_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_65_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[1]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [1]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_66_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_66_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_66_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[2]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[2]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[2]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_66_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_66_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_66_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Command Indicator) = sd0, Output, sdio0_cmd_out- (Comman - Indicator) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_cmd_in- (Com + * mand Indicator) = sd0, Output, sdio0_cmd_out- (Command Indicator) 2= Not + * Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_66_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_66_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_66_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Master Selects) 5= tt - 2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace - Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[14]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[14]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi0, Output, spi0_n_ss_out[1]- (SPI Mast + * er Selects) 5= ttc2, Input, ttc2_clk_in- (TTC Clock) 6= ua0, Input, ua0_ + * rxd- (UART receiver serial input) 7= trace, Output, tracedq[12]- (Trace + * Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_66_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_66_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_66_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_66_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_66_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[2]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [2]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_67_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_67_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_67_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- (Data flow control signal from the PHY)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_nxt- + * (Data flow control signal from the PHY) +*/ #undef IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_67_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_67_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_67_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8 - bit Data bus) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[0]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[0]- (8-bit Data bus) 2= N + * ot Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_67_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_67_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_67_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Master Selects) 4= spi - , Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= ttc2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd - (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[15]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[15]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Input, spi0_n_ss_in- (SPI Maste + * r Selects) 4= spi0, Output, spi0_n_ss_out[0]- (SPI Master Selects) 5= tt + * c2, Output, ttc2_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- + * (UART transmitter serial output) 7= trace, Output, tracedq[13]- (Trace + * Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_67_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_67_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_67_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_67_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_67_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd[3]- (TX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_txd + * [3]- (TX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_68_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_68_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_68_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[0]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[0]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[0]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_68_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_68_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_68_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8 - bit Data bus) 2= Not Used 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[1]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[1]- (8-bit Data bus) 2= N + * ot Used 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_68_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_68_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_68_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= spi0, Output, spi0 - so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Clock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace - Output, tracedq[14]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[16]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[16]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi0, Input, spi0_mi- (MISO signal) 4= s + * pi0, Output, spi0_so- (MISO signal) 5= ttc1, Input, ttc1_clk_in- (TTC Cl + * ock) 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= trace, + * Output, tracedq[14]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_68_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_68_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_68_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_68_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_68_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ctl- (TX RGMII control)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Output, gem3_rgmii_tx_ + * ctl- (TX RGMII control) +*/ #undef IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_69_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_69_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_69_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[1]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[1]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[1]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_69_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_69_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_69_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8 - bit Data bus) 2= sd1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[2]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[2]- (8-bit Data bus) 2= s + * d1, Input, sdio1_wp- (SD card write protect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_69_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_69_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_69_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4= spi0, Input, sp - 0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (TTC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) - 7= trace, Output, tracedq[15]- (Trace Port Databus)*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[17]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[17]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi0, Output, spi0_mo- (MOSI signal) 4 + * = spi0, Input, spi0_si- (MOSI signal) 5= ttc1, Output, ttc1_wave_out- (T + * TC Waveform Clock) 6= ua1, Input, ua1_rxd- (UART receiver serial input) + * 7= trace, Output, tracedq[15]- (Trace Port Databus) +*/ #undef IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_69_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_69_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_69_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_69_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_69_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_clk- (RX RGMII clock)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * lk- (RX RGMII clock) +*/ #undef IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_70_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_70_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_70_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- (Asserted to end or interrupt transfers)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Output, usb1_ulpi_stp- + * (Asserted to end or interrupt transfers) +*/ #undef IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_70_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_70_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_70_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8 - bit Data bus) 2= sd1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[3]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[3]- (8-bit Data bus) 2= s + * d1, Output, sdio1_bus_pow- (SD card bus power) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_70_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_70_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_70_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= spi1, Output, sp - 1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- (TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not - sed*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[18]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[18]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_sclk_in- (SPI Clock) 4= + * spi1, Output, spi1_sclk_out- (SPI Clock) 5= ttc0, Input, ttc0_clk_in- ( + * TTC Clock) 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not U + * sed +*/ #undef IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_70_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_70_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_70_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_70_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_70_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[0]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 0]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_71_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_71_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_71_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[3]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[3]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[3]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_71_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_71_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_71_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_out[0]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[4]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[4]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[0]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[0]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_71_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_71_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_71_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI Master Selects) 5 - ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[19]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[19]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_n_ss_out[2]- (SPI + * Master Selects) 5= ttc0, Output, ttc0_wave_out- (TTC Waveform Clock) 6= + * ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_71_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_71_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_71_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_71_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_71_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[1]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 1]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_72_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_72_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_72_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[4]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[4]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[4]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_72_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_72_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_72_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_out[1]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[5]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[5]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[1]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[1]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_72_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_72_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_72_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= swdt1, Input, swdt1_clk_in- (Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Master Selects) 5= N - t Used 6= ua1, Output, ua1_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[20]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[20]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= swdt1, Input, swdt1_clk_in- ( + * Watch Dog Timer Input clock) 4= spi1, Output, spi1_n_ss_out[1]- (SPI Mas + * ter Selects) 5= Not Used 6= ua1, Output, ua1_txd- (UART transmitter seri + * al output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_72_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_72_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_72_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_72_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_72_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[2]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 2]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_73_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_73_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_73_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[5]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[5]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[5]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_73_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_73_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_73_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_out[2]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[6]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[6]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[2]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[2]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_73_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_73_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_73_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= swdt1, Output, swdt1_rst_out- (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master Selects) 4= spi1 - Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[21]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[21]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= swdt1, Output, swdt1_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Input, spi1_n_ss_in- (SPI Master + * Selects) 4= spi1, Output, spi1_n_ss_out[0]- (SPI Master Selects) 5= Not + * Used 6= ua1, Input, ua1_rxd- (UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_73_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_73_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_73_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_73_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_73_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[3]- (RX RGMII data)*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rxd[ + * 3]- (RX RGMII data) +*/ #undef IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_74_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_74_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_74_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[6]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[6]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[6]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_74_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_74_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_74_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8 - bit Data bus) 2= sd1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_out[3]- (8-bit Data bus) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sd0_data_in[7]- + * (8-bit Data bus) = sd0, Output, sdio0_data_out[7]- (8-bit Data bus) 2= s + * d1, Input, sd1_data_in[3]- (8-bit Data bus) = sd1, Output, sdio1_data_ou + * t[3]- (8-bit Data bus) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_74_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_74_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_74_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= c - n0, Input, can0_phy_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2c0, Output, i2c0_scl_out- (SCL sign - l) 3= swdt0, Input, swdt0_clk_in- (Watch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= spi1, Output, spi1_ - o- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- (UART receiver serial input) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[22]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[22]- (GPIO bank 2) 1= can0, Input, can0_ph + * y_rx- (Can RX signal) 2= i2c0, Input, i2c0_scl_input- (SCL signal) 2= i2 + * c0, Output, i2c0_scl_out- (SCL signal) 3= swdt0, Input, swdt0_clk_in- (W + * atch Dog Timer Input clock) 4= spi1, Input, spi1_mi- (MISO signal) 4= sp + * i1, Output, spi1_so- (MISO signal) 5= Not Used 6= ua0, Input, ua0_rxd- ( + * UART receiver serial input) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_74_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_74_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_74_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_74_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_74_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_ctl- (RX RGMII control )*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= gem3, Input, gem3_rgmii_rx_c + * tl- (RX RGMII control ) +*/ #undef IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_75_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_75_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_75_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_data[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_ - ata[7]- (ULPI data bus)*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= usb1, Input, usb1_ulpi_rx_da + * ta[7]- (ULPI data bus) 1= usb1, Output, usb1_ulpi_tx_data[7]- (ULPI data + * bus) +*/ #undef IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_75_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_75_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_75_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Comma - d Indicator) = sd1, Output, sdio1_cmd_out- (Command Indicator) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Output, sdio0_bus_pow- + * (SD card bus power) 2= sd1, Input, sd1_cmd_in- (Command Indicator) = sd1 + * , Output, sdio1_cmd_out- (Command Indicator) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_75_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_75_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_75_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= c - n0, Output, can0_phy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i2c0, Output, i2c0_sda_out- (SDA sig - al) 3= swdt0, Output, swdt0_rst_out- (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) 4= spi1, Input, s - i1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_txd- (UART transmitter serial output) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[23]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[23]- (GPIO bank 2) 1= can0, Output, can0_p + * hy_tx- (Can TX signal) 2= i2c0, Input, i2c0_sda_input- (SDA signal) 2= i + * 2c0, Output, i2c0_sda_out- (SDA signal) 3= swdt0, Output, swdt0_rst_out- + * (Watch Dog Timer Output clock) 4= spi1, Output, spi1_mo- (MOSI signal) + * 4= spi1, Input, spi1_si- (MOSI signal) 5= Not Used 6= ua0, Output, ua0_t + * xd- (UART transmitter serial output) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_75_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_75_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_75_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_75_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_75_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_76_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_76_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_76_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_76_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_76_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_76_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD card write protect from connector) 2= sd1, Output, sdio - _clk_out- (SDSDIO clock) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= sd0, Input, sdio0_wp- (SD ca + * rd write protect from connector) 2= sd1, Output, sdio1_clk_out- (SDSDIO + * clock) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_76_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_76_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_76_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= c - n1, Output, can1_phy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i2c1, Output, i2c1_scl_out- (SCL sig - al) 3= mdio0, Output, gem0_mdc- (MDIO Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2_mdc- (MDIO Clock - 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[24]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[24]- (GPIO bank 2) 1= can1, Output, can1_p + * hy_tx- (Can TX signal) 2= i2c1, Input, i2c1_scl_input- (SCL signal) 2= i + * 2c1, Output, i2c1_scl_out- (SCL signal) 3= mdio0, Output, gem0_mdc- (MDI + * O Clock) 4= mdio1, Output, gem1_mdc- (MDIO Clock) 5= mdio2, Output, gem2 + * _mdc- (MDIO Clock) 6= mdio3, Output, gem3_mdc- (MDIO Clock) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_76_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_76_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_76_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_76_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_76_L3_SEL_MASK 0x000000E0U -/*Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used*/ +/* +* Level 0 Mux Select 0= Level 1 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L0_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT 1 -#define IOU_SLCR_MIO_PIN_77_L0_SEL_MASK 0x00000002U +#define IOU_SLCR_MIO_PIN_77_L0_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L0_SEL_SHIFT 1 +#define IOU_SLCR_MIO_PIN_77_L0_SEL_MASK 0x00000002U -/*Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used*/ +/* +* Level 1 Mux Select 0= Level 2 Mux Output 1= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L1_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT 2 -#define IOU_SLCR_MIO_PIN_77_L1_SEL_MASK 0x00000004U +#define IOU_SLCR_MIO_PIN_77_L1_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L1_SEL_SHIFT 2 +#define IOU_SLCR_MIO_PIN_77_L1_SEL_MASK 0x00000004U -/*Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio1_cd_n- (SD card detect from connector) 3= Not Used*/ +/* +* Level 2 Mux Select 0= Level 3 Mux Output 1= Not Used 2= sd1, Input, sdio + * 1_cd_n- (SD card detect from connector) 3= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L2_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT 3 -#define IOU_SLCR_MIO_PIN_77_L2_SEL_MASK 0x00000018U +#define IOU_SLCR_MIO_PIN_77_L2_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L2_SEL_SHIFT 3 +#define IOU_SLCR_MIO_PIN_77_L2_SEL_MASK 0x00000018U -/*Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= c - n1, Input, can1_phy_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2c1, Output, i2c1_sda_out- (SDA sign - l) 3= mdio0, Input, gem0_mdio_in- (MDIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, gem1_mdio_in- (MD - O Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5= mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_o - t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Output, gem3_mdio_out- (MDIO Data) 7= Not Used*/ +/* +* Level 3 Mux Select 0= gpio2, Input, gpio_2_pin_in[25]- (GPIO bank 2) 0= + * gpio2, Output, gpio_2_pin_out[25]- (GPIO bank 2) 1= can1, Input, can1_ph + * y_rx- (Can RX signal) 2= i2c1, Input, i2c1_sda_input- (SDA signal) 2= i2 + * c1, Output, i2c1_sda_out- (SDA signal) 3= mdio0, Input, gem0_mdio_in- (M + * DIO Data) 3= mdio0, Output, gem0_mdio_out- (MDIO Data) 4= mdio1, Input, + * gem1_mdio_in- (MDIO Data) 4= mdio1, Output, gem1_mdio_out- (MDIO Data) 5 + * = mdio2, Input, gem2_mdio_in- (MDIO Data) 5= mdio2, Output, gem2_mdio_ou + * t- (MDIO Data) 6= mdio3, Input, gem3_mdio_in- (MDIO Data) 6= mdio3, Outp + * ut, gem3_mdio_out- (MDIO Data) 7= Not Used +*/ #undef IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL #undef IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT #undef IOU_SLCR_MIO_PIN_77_L3_SEL_MASK -#define IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT 5 -#define IOU_SLCR_MIO_PIN_77_L3_SEL_MASK 0x000000E0U +#define IOU_SLCR_MIO_PIN_77_L3_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_PIN_77_L3_SEL_SHIFT 5 +#define IOU_SLCR_MIO_PIN_77_L3_SEL_MASK 0x000000E0U -/*Master Tri-state Enable for pin 0, active high*/ +/* +* Master Tri-state Enable for pin 0, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI0_PIN_00_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 1, active high*/ +/* +* Master Tri-state Enable for pin 1, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI0_PIN_01_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 2, active high*/ +/* +* Master Tri-state Enable for pin 2, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI0_PIN_02_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 3, active high*/ +/* +* Master Tri-state Enable for pin 3, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI0_PIN_03_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 4, active high*/ +/* +* Master Tri-state Enable for pin 4, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI0_PIN_04_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 5, active high*/ +/* +* Master Tri-state Enable for pin 5, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI0_PIN_05_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 6, active high*/ +/* +* Master Tri-state Enable for pin 6, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI0_PIN_06_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 7, active high*/ +/* +* Master Tri-state Enable for pin 7, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI0_PIN_07_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 8, active high*/ +/* +* Master Tri-state Enable for pin 8, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI0_PIN_08_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 9, active high*/ +/* +* Master Tri-state Enable for pin 9, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI0_PIN_09_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 10, active high*/ +/* +* Master Tri-state Enable for pin 10, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI0_PIN_10_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 11, active high*/ +/* +* Master Tri-state Enable for pin 11, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI0_PIN_11_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 12, active high*/ +/* +* Master Tri-state Enable for pin 12, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI0_PIN_12_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 13, active high*/ +/* +* Master Tri-state Enable for pin 13, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI0_PIN_13_TRI_MASK 0x00002000U -/*Master Tri-state Enable for pin 14, active high*/ +/* +* Master Tri-state Enable for pin 14, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT 14 -#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK 0x00004000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_SHIFT 14 +#define IOU_SLCR_MIO_MST_TRI0_PIN_14_TRI_MASK 0x00004000U -/*Master Tri-state Enable for pin 15, active high*/ +/* +* Master Tri-state Enable for pin 15, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT 15 -#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK 0x00008000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_SHIFT 15 +#define IOU_SLCR_MIO_MST_TRI0_PIN_15_TRI_MASK 0x00008000U -/*Master Tri-state Enable for pin 16, active high*/ +/* +* Master Tri-state Enable for pin 16, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT 16 -#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK 0x00010000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_SHIFT 16 +#define IOU_SLCR_MIO_MST_TRI0_PIN_16_TRI_MASK 0x00010000U -/*Master Tri-state Enable for pin 17, active high*/ +/* +* Master Tri-state Enable for pin 17, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT 17 -#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK 0x00020000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_SHIFT 17 +#define IOU_SLCR_MIO_MST_TRI0_PIN_17_TRI_MASK 0x00020000U -/*Master Tri-state Enable for pin 18, active high*/ +/* +* Master Tri-state Enable for pin 18, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT 18 -#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK 0x00040000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_SHIFT 18 +#define IOU_SLCR_MIO_MST_TRI0_PIN_18_TRI_MASK 0x00040000U -/*Master Tri-state Enable for pin 19, active high*/ +/* +* Master Tri-state Enable for pin 19, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT 19 -#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK 0x00080000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_SHIFT 19 +#define IOU_SLCR_MIO_MST_TRI0_PIN_19_TRI_MASK 0x00080000U -/*Master Tri-state Enable for pin 20, active high*/ +/* +* Master Tri-state Enable for pin 20, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT 20 -#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK 0x00100000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_SHIFT 20 +#define IOU_SLCR_MIO_MST_TRI0_PIN_20_TRI_MASK 0x00100000U -/*Master Tri-state Enable for pin 21, active high*/ +/* +* Master Tri-state Enable for pin 21, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT 21 -#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK 0x00200000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_SHIFT 21 +#define IOU_SLCR_MIO_MST_TRI0_PIN_21_TRI_MASK 0x00200000U -/*Master Tri-state Enable for pin 22, active high*/ +/* +* Master Tri-state Enable for pin 22, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT 22 -#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK 0x00400000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_SHIFT 22 +#define IOU_SLCR_MIO_MST_TRI0_PIN_22_TRI_MASK 0x00400000U -/*Master Tri-state Enable for pin 23, active high*/ +/* +* Master Tri-state Enable for pin 23, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT 23 -#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK 0x00800000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_SHIFT 23 +#define IOU_SLCR_MIO_MST_TRI0_PIN_23_TRI_MASK 0x00800000U -/*Master Tri-state Enable for pin 24, active high*/ +/* +* Master Tri-state Enable for pin 24, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT 24 -#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK 0x01000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_SHIFT 24 +#define IOU_SLCR_MIO_MST_TRI0_PIN_24_TRI_MASK 0x01000000U -/*Master Tri-state Enable for pin 25, active high*/ +/* +* Master Tri-state Enable for pin 25, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT 25 -#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK 0x02000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_SHIFT 25 +#define IOU_SLCR_MIO_MST_TRI0_PIN_25_TRI_MASK 0x02000000U -/*Master Tri-state Enable for pin 26, active high*/ +/* +* Master Tri-state Enable for pin 26, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT 26 -#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK 0x04000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_SHIFT 26 +#define IOU_SLCR_MIO_MST_TRI0_PIN_26_TRI_MASK 0x04000000U -/*Master Tri-state Enable for pin 27, active high*/ +/* +* Master Tri-state Enable for pin 27, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT 27 -#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK 0x08000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_SHIFT 27 +#define IOU_SLCR_MIO_MST_TRI0_PIN_27_TRI_MASK 0x08000000U -/*Master Tri-state Enable for pin 28, active high*/ +/* +* Master Tri-state Enable for pin 28, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT 28 -#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK 0x10000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_SHIFT 28 +#define IOU_SLCR_MIO_MST_TRI0_PIN_28_TRI_MASK 0x10000000U -/*Master Tri-state Enable for pin 29, active high*/ +/* +* Master Tri-state Enable for pin 29, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT 29 -#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK 0x20000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_SHIFT 29 +#define IOU_SLCR_MIO_MST_TRI0_PIN_29_TRI_MASK 0x20000000U -/*Master Tri-state Enable for pin 30, active high*/ +/* +* Master Tri-state Enable for pin 30, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT 30 -#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK 0x40000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_SHIFT 30 +#define IOU_SLCR_MIO_MST_TRI0_PIN_30_TRI_MASK 0x40000000U -/*Master Tri-state Enable for pin 31, active high*/ +/* +* Master Tri-state Enable for pin 31, active high +*/ #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT 31 -#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK 0x80000000U +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_SHIFT 31 +#define IOU_SLCR_MIO_MST_TRI0_PIN_31_TRI_MASK 0x80000000U -/*Master Tri-state Enable for pin 32, active high*/ +/* +* Master Tri-state Enable for pin 32, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI1_PIN_32_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 33, active high*/ +/* +* Master Tri-state Enable for pin 33, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI1_PIN_33_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 34, active high*/ +/* +* Master Tri-state Enable for pin 34, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI1_PIN_34_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 35, active high*/ +/* +* Master Tri-state Enable for pin 35, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI1_PIN_35_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 36, active high*/ +/* +* Master Tri-state Enable for pin 36, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI1_PIN_36_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 37, active high*/ +/* +* Master Tri-state Enable for pin 37, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI1_PIN_37_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 38, active high*/ +/* +* Master Tri-state Enable for pin 38, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI1_PIN_38_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 39, active high*/ +/* +* Master Tri-state Enable for pin 39, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI1_PIN_39_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 40, active high*/ +/* +* Master Tri-state Enable for pin 40, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI1_PIN_40_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 41, active high*/ +/* +* Master Tri-state Enable for pin 41, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI1_PIN_41_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 42, active high*/ +/* +* Master Tri-state Enable for pin 42, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI1_PIN_42_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 43, active high*/ +/* +* Master Tri-state Enable for pin 43, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI1_PIN_43_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 44, active high*/ +/* +* Master Tri-state Enable for pin 44, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI1_PIN_44_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 45, active high*/ +/* +* Master Tri-state Enable for pin 45, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI1_PIN_45_TRI_MASK 0x00002000U -/*Master Tri-state Enable for pin 46, active high*/ +/* +* Master Tri-state Enable for pin 46, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT 14 -#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK 0x00004000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_SHIFT 14 +#define IOU_SLCR_MIO_MST_TRI1_PIN_46_TRI_MASK 0x00004000U -/*Master Tri-state Enable for pin 47, active high*/ +/* +* Master Tri-state Enable for pin 47, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT 15 -#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK 0x00008000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_SHIFT 15 +#define IOU_SLCR_MIO_MST_TRI1_PIN_47_TRI_MASK 0x00008000U -/*Master Tri-state Enable for pin 48, active high*/ +/* +* Master Tri-state Enable for pin 48, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT 16 -#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK 0x00010000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_SHIFT 16 +#define IOU_SLCR_MIO_MST_TRI1_PIN_48_TRI_MASK 0x00010000U -/*Master Tri-state Enable for pin 49, active high*/ +/* +* Master Tri-state Enable for pin 49, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT 17 -#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK 0x00020000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_SHIFT 17 +#define IOU_SLCR_MIO_MST_TRI1_PIN_49_TRI_MASK 0x00020000U -/*Master Tri-state Enable for pin 50, active high*/ +/* +* Master Tri-state Enable for pin 50, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT 18 -#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK 0x00040000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_SHIFT 18 +#define IOU_SLCR_MIO_MST_TRI1_PIN_50_TRI_MASK 0x00040000U -/*Master Tri-state Enable for pin 51, active high*/ +/* +* Master Tri-state Enable for pin 51, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT 19 -#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK 0x00080000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_SHIFT 19 +#define IOU_SLCR_MIO_MST_TRI1_PIN_51_TRI_MASK 0x00080000U -/*Master Tri-state Enable for pin 52, active high*/ +/* +* Master Tri-state Enable for pin 52, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT 20 -#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK 0x00100000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_SHIFT 20 +#define IOU_SLCR_MIO_MST_TRI1_PIN_52_TRI_MASK 0x00100000U -/*Master Tri-state Enable for pin 53, active high*/ +/* +* Master Tri-state Enable for pin 53, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT 21 -#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK 0x00200000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_SHIFT 21 +#define IOU_SLCR_MIO_MST_TRI1_PIN_53_TRI_MASK 0x00200000U -/*Master Tri-state Enable for pin 54, active high*/ +/* +* Master Tri-state Enable for pin 54, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT 22 -#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK 0x00400000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_SHIFT 22 +#define IOU_SLCR_MIO_MST_TRI1_PIN_54_TRI_MASK 0x00400000U -/*Master Tri-state Enable for pin 55, active high*/ +/* +* Master Tri-state Enable for pin 55, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT 23 -#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK 0x00800000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_SHIFT 23 +#define IOU_SLCR_MIO_MST_TRI1_PIN_55_TRI_MASK 0x00800000U -/*Master Tri-state Enable for pin 56, active high*/ +/* +* Master Tri-state Enable for pin 56, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT 24 -#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK 0x01000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_SHIFT 24 +#define IOU_SLCR_MIO_MST_TRI1_PIN_56_TRI_MASK 0x01000000U -/*Master Tri-state Enable for pin 57, active high*/ +/* +* Master Tri-state Enable for pin 57, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT 25 -#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK 0x02000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_SHIFT 25 +#define IOU_SLCR_MIO_MST_TRI1_PIN_57_TRI_MASK 0x02000000U -/*Master Tri-state Enable for pin 58, active high*/ +/* +* Master Tri-state Enable for pin 58, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT 26 -#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK 0x04000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_SHIFT 26 +#define IOU_SLCR_MIO_MST_TRI1_PIN_58_TRI_MASK 0x04000000U -/*Master Tri-state Enable for pin 59, active high*/ +/* +* Master Tri-state Enable for pin 59, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT 27 -#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK 0x08000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_SHIFT 27 +#define IOU_SLCR_MIO_MST_TRI1_PIN_59_TRI_MASK 0x08000000U -/*Master Tri-state Enable for pin 60, active high*/ +/* +* Master Tri-state Enable for pin 60, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT 28 -#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK 0x10000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_SHIFT 28 +#define IOU_SLCR_MIO_MST_TRI1_PIN_60_TRI_MASK 0x10000000U -/*Master Tri-state Enable for pin 61, active high*/ +/* +* Master Tri-state Enable for pin 61, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT 29 -#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK 0x20000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_SHIFT 29 +#define IOU_SLCR_MIO_MST_TRI1_PIN_61_TRI_MASK 0x20000000U -/*Master Tri-state Enable for pin 62, active high*/ +/* +* Master Tri-state Enable for pin 62, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT 30 -#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK 0x40000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_SHIFT 30 +#define IOU_SLCR_MIO_MST_TRI1_PIN_62_TRI_MASK 0x40000000U -/*Master Tri-state Enable for pin 63, active high*/ +/* +* Master Tri-state Enable for pin 63, active high +*/ #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL 0xFFFFFFFF -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT 31 -#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK 0x80000000U +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_DEFVAL 0xFFFFFFFF +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_SHIFT 31 +#define IOU_SLCR_MIO_MST_TRI1_PIN_63_TRI_MASK 0x80000000U -/*Master Tri-state Enable for pin 64, active high*/ +/* +* Master Tri-state Enable for pin 64, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT 0 -#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK 0x00000001U +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_SHIFT 0 +#define IOU_SLCR_MIO_MST_TRI2_PIN_64_TRI_MASK 0x00000001U -/*Master Tri-state Enable for pin 65, active high*/ +/* +* Master Tri-state Enable for pin 65, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT 1 -#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK 0x00000002U +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_SHIFT 1 +#define IOU_SLCR_MIO_MST_TRI2_PIN_65_TRI_MASK 0x00000002U -/*Master Tri-state Enable for pin 66, active high*/ +/* +* Master Tri-state Enable for pin 66, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT 2 -#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK 0x00000004U +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_SHIFT 2 +#define IOU_SLCR_MIO_MST_TRI2_PIN_66_TRI_MASK 0x00000004U -/*Master Tri-state Enable for pin 67, active high*/ +/* +* Master Tri-state Enable for pin 67, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT 3 -#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK 0x00000008U +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_SHIFT 3 +#define IOU_SLCR_MIO_MST_TRI2_PIN_67_TRI_MASK 0x00000008U -/*Master Tri-state Enable for pin 68, active high*/ +/* +* Master Tri-state Enable for pin 68, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT 4 -#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK 0x00000010U +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_SHIFT 4 +#define IOU_SLCR_MIO_MST_TRI2_PIN_68_TRI_MASK 0x00000010U -/*Master Tri-state Enable for pin 69, active high*/ +/* +* Master Tri-state Enable for pin 69, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT 5 -#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK 0x00000020U +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_SHIFT 5 +#define IOU_SLCR_MIO_MST_TRI2_PIN_69_TRI_MASK 0x00000020U -/*Master Tri-state Enable for pin 70, active high*/ +/* +* Master Tri-state Enable for pin 70, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT 6 -#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK 0x00000040U +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_SHIFT 6 +#define IOU_SLCR_MIO_MST_TRI2_PIN_70_TRI_MASK 0x00000040U -/*Master Tri-state Enable for pin 71, active high*/ +/* +* Master Tri-state Enable for pin 71, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT 7 -#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK 0x00000080U +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_SHIFT 7 +#define IOU_SLCR_MIO_MST_TRI2_PIN_71_TRI_MASK 0x00000080U -/*Master Tri-state Enable for pin 72, active high*/ +/* +* Master Tri-state Enable for pin 72, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT 8 -#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK 0x00000100U +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_SHIFT 8 +#define IOU_SLCR_MIO_MST_TRI2_PIN_72_TRI_MASK 0x00000100U -/*Master Tri-state Enable for pin 73, active high*/ +/* +* Master Tri-state Enable for pin 73, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT 9 -#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK 0x00000200U +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_SHIFT 9 +#define IOU_SLCR_MIO_MST_TRI2_PIN_73_TRI_MASK 0x00000200U -/*Master Tri-state Enable for pin 74, active high*/ +/* +* Master Tri-state Enable for pin 74, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT 10 -#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK 0x00000400U +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_SHIFT 10 +#define IOU_SLCR_MIO_MST_TRI2_PIN_74_TRI_MASK 0x00000400U -/*Master Tri-state Enable for pin 75, active high*/ +/* +* Master Tri-state Enable for pin 75, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT 11 -#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK 0x00000800U +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_SHIFT 11 +#define IOU_SLCR_MIO_MST_TRI2_PIN_75_TRI_MASK 0x00000800U -/*Master Tri-state Enable for pin 76, active high*/ +/* +* Master Tri-state Enable for pin 76, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT 12 -#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK 0x00001000U +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_SHIFT 12 +#define IOU_SLCR_MIO_MST_TRI2_PIN_76_TRI_MASK 0x00001000U -/*Master Tri-state Enable for pin 77, active high*/ +/* +* Master Tri-state Enable for pin 77, active high +*/ #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT #undef IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL 0x00003FFF -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT 13 -#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK 0x00002000U +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_DEFVAL 0x00003FFF +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_SHIFT 13 +#define IOU_SLCR_MIO_MST_TRI2_PIN_77_TRI_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[0].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[0]. +*/ #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK0_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_12_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_13_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_24_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL5_PULL_ENABLE_BIT_25_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[26].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[26]. +*/ #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK1_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL0_DRIVE0_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL1_DRIVE1_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL3_SCHMITT_CMOS_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL4_PULL_HIGH_LOW_N_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL5_PULL_ENABLE_BIT_25_MASK 0x02000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_SHIFT 0 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_0_MASK 0x00000001U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_SHIFT 1 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_1_MASK 0x00000002U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_SHIFT 2 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_2_MASK 0x00000004U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_SHIFT 3 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_3_MASK 0x00000008U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_SHIFT 4 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_4_MASK 0x00000010U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_SHIFT 5 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_5_MASK 0x00000020U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_SHIFT 6 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_6_MASK 0x00000040U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_SHIFT 7 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_7_MASK 0x00000080U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_SHIFT 8 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_8_MASK 0x00000100U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_SHIFT 9 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_9_MASK 0x00000200U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_SHIFT 10 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_10_MASK 0x00000400U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_SHIFT 11 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_11_MASK 0x00000800U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_SHIFT 12 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_12_MASK 0x00001000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_SHIFT 13 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_13_MASK 0x00002000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_SHIFT 14 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_14_MASK 0x00004000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_SHIFT 15 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_15_MASK 0x00008000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_SHIFT 16 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_16_MASK 0x00010000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_SHIFT 17 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_17_MASK 0x00020000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_SHIFT 18 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_18_MASK 0x00040000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_SHIFT 19 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_19_MASK 0x00080000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_SHIFT 20 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_20_MASK 0x00100000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_SHIFT 21 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_21_MASK 0x00200000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_SHIFT 22 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_22_MASK 0x00400000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_SHIFT 23 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_23_MASK 0x00800000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_SHIFT 24 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_24_MASK 0x01000000U -/*Each bit applies to a single IO. Bit 0 for MIO[52].*/ +/* +* Each bit applies to a single IO. Bit 0 for MIO[52]. +*/ #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT #undef IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 -#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_DEFVAL +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_SHIFT 25 +#define IOU_SLCR_BANK2_CTRL6_SLOW_FAST_SLEW_N_BIT_25_MASK 0x02000000U -/*I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outp - ts to I2C 0 inputs.*/ +/* +* I2C Loopback Control. 0 = Connect I2C inputs according to MIO mapping. 1 + * = Loop I2C 0 outputs to I2C 1 inputs, and I2C 1 outputs to I2C 0 inputs + * . +*/ #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT 3 -#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK 0x00000008U +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_SHIFT 3 +#define IOU_SLCR_MIO_LOOPBACK_I2C0_LOOP_I2C1_MASK 0x00000008U -/*CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 R - .*/ +/* +* CAN Loopback Control. 0 = Connect CAN inputs according to MIO mapping. 1 + * = Loop CAN 0 Tx to CAN 1 Rx, and CAN 1 Tx to CAN 0 Rx. +*/ #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT 2 -#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK 0x00000004U +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_SHIFT 2 +#define IOU_SLCR_MIO_LOOPBACK_CAN0_LOOP_CAN1_MASK 0x00000004U -/*UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 - outputs to UART 0 inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD and RI not used.*/ +/* +* UART Loopback Control. 0 = Connect UART inputs according to MIO mapping. + * 1 = Loop UART 0 outputs to UART 1 inputs, and UART 1 outputs to UART 0 + * inputs. RXD/TXD cross-connected. RTS/CTS cross-connected. DSR, DTR, DCD + * and RI not used. +*/ #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT 1 -#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK 0x00000002U +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_SHIFT 1 +#define IOU_SLCR_MIO_LOOPBACK_UA0_LOOP_UA1_MASK 0x00000002U -/*SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outp - ts to SPI 0 inputs. The other SPI core will appear on the LS Slave Select.*/ +/* +* SPI Loopback Control. 0 = Connect SPI inputs according to MIO mapping. 1 + * = Loop SPI 0 outputs to SPI 1 inputs, and SPI 1 outputs to SPI 0 inputs + * . The other SPI core will appear on the LS Slave Select. +*/ #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT #undef IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL 0x00000000 -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT 0 -#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK 0x00000001U +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_DEFVAL 0x00000000 +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_SHIFT 0 +#define IOU_SLCR_MIO_LOOPBACK_SPI0_LOOP_SPI1_MASK 0x00000001U +#undef CRF_APB_RST_FPD_TOP_OFFSET +#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 #undef CRL_APB_RST_LPD_IOU2_OFFSET #define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 +#undef CRL_APB_RST_LPD_TOP_OFFSET +#define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET #define CRL_APB_RST_LPD_IOU0_OFFSET 0XFF5E0230 #undef CRL_APB_RST_LPD_IOU2_OFFSET @@ -24430,8 +31077,10 @@ #define IOU_SLCR_IOU_TAPDLY_BYPASS_OFFSET 0XFF180390 #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C -#undef CRF_APB_RST_FPD_TOP_OFFSET -#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef USB3_0_FPD_POWER_PRSNT_OFFSET +#define USB3_0_FPD_POWER_PRSNT_OFFSET 0XFF9D0080 +#undef USB3_0_FPD_PIPE_CLK_OFFSET +#define USB3_0_FPD_PIPE_CLK_OFFSET 0XFF9D007C #undef CRL_APB_RST_LPD_IOU2_OFFSET #define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 #undef IOU_SLCR_CTRL_REG_SD_OFFSET @@ -24440,6 +31089,8 @@ #define IOU_SLCR_SD_CONFIG_REG2_OFFSET 0XFF180320 #undef IOU_SLCR_SD_CONFIG_REG1_OFFSET #define IOU_SLCR_SD_CONFIG_REG1_OFFSET 0XFF18031C +#undef IOU_SLCR_SD_DLL_CTRL_OFFSET +#define IOU_SLCR_SD_DLL_CTRL_OFFSET 0XFF180358 #undef IOU_SLCR_SD_CONFIG_REG3_OFFSET #define IOU_SLCR_SD_CONFIG_REG3_OFFSET 0XFF180324 #undef CRL_APB_RST_LPD_IOU2_OFFSET @@ -24468,6 +31119,8 @@ #define UART1_CONTROL_REG0_OFFSET 0XFF010000 #undef UART1_MODE_REG0_OFFSET #define UART1_MODE_REG0_OFFSET 0XFF010004 +#undef CRL_APB_RST_LPD_IOU2_OFFSET +#define CRL_APB_RST_LPD_IOU2_OFFSET 0XFF5E0238 #undef LPD_SLCR_SECURE_SLCR_ADMA_OFFSET #define LPD_SLCR_SECURE_SLCR_ADMA_OFFSET 0XFF4B0024 #undef CSU_TAMPER_STATUS_OFFSET @@ -24480,782 +31133,1656 @@ #define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_OFFSET 0XFF260020 #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET #define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_OFFSET 0XFF260000 +#undef GPIO_DIRM_1_OFFSET +#define GPIO_DIRM_1_OFFSET 0XFF0A0244 +#undef GPIO_OEN_1_OFFSET +#define GPIO_OEN_1_OFFSET 0XFF0A0248 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 -/*Block level reset*/ -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT 20 -#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK 0x00100000U - -/*GEM 3 reset*/ -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U - -/*Block level reset*/ -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT -#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT 0 -#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK 0x00000001U - -/*0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypass the Tap delay on the Rx clock signal of LQSPI*/ -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT -#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL 0x00000007 -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT 2 -#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK 0x00000004U - -/*USB 0 reset for control registers*/ -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U - -/*USB 0 sleep circuit reset*/ -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U - -/*USB 0 reset*/ -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT -#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U - -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U -/*FPD WDT reset*/ +/* +* FPD WDT reset +*/ #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT 15 -#define CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK 0x00008000U +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_SHIFT 15 +#define CRF_APB_RST_FPD_TOP_SWDT_RESET_MASK 0x00008000U -/*GDMA block level reset*/ +/* +* GDMA block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT 6 -#define CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK 0x00000040U +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_SHIFT 6 +#define CRF_APB_RST_FPD_TOP_GDMA_RESET_MASK 0x00000040U -/*Pixel Processor (submodule of GPU) block level reset*/ +/* +* Pixel Processor (submodule of GPU) block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT 4 -#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK 0x00000010U +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_SHIFT 4 +#define CRF_APB_RST_FPD_TOP_GPU_PP0_RESET_MASK 0x00000010U -/*Pixel Processor (submodule of GPU) block level reset*/ +/* +* Pixel Processor (submodule of GPU) block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT 5 -#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK 0x00000020U +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_SHIFT 5 +#define CRF_APB_RST_FPD_TOP_GPU_PP1_RESET_MASK 0x00000020U -/*GPU block level reset*/ +/* +* GPU block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GPU_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT 3 -#define CRF_APB_RST_FPD_TOP_GPU_RESET_MASK 0x00000008U +#define CRF_APB_RST_FPD_TOP_GPU_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GPU_RESET_SHIFT 3 +#define CRF_APB_RST_FPD_TOP_GPU_RESET_MASK 0x00000008U -/*GT block level reset*/ +/* +* GT block level reset +*/ #undef CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_GT_RESET_MASK -#define CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT 2 -#define CRF_APB_RST_FPD_TOP_GT_RESET_MASK 0x00000004U +#define CRF_APB_RST_FPD_TOP_GT_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_GT_RESET_SHIFT 2 +#define CRF_APB_RST_FPD_TOP_GT_RESET_MASK 0x00000004U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*Block level reset*/ +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_SHIFT 20 +#define CRL_APB_RST_LPD_IOU2_TIMESTAMP_RESET_MASK 0x00100000U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_SHIFT 19 +#define CRL_APB_RST_LPD_IOU2_IOU_CC_RESET_MASK 0x00080000U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_ADMA_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_SHIFT 17 +#define CRL_APB_RST_LPD_IOU2_ADMA_RESET_MASK 0x00020000U + +/* +* Reset entire full power domain. +*/ +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_FPD_RESET_MASK +#define CRL_APB_RST_LPD_TOP_FPD_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_FPD_RESET_SHIFT 23 +#define CRL_APB_RST_LPD_TOP_FPD_RESET_MASK 0x00800000U + +/* +* LPD SWDT +*/ +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_MASK +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_SHIFT 20 +#define CRL_APB_RST_LPD_TOP_LPD_SWDT_RESET_MASK 0x00100000U + +/* +* Sysmonitor reset +*/ +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_SYSMON_RESET_MASK +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_SHIFT 17 +#define CRL_APB_RST_LPD_TOP_SYSMON_RESET_MASK 0x00020000U + +/* +* Real Time Clock reset +*/ +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_RTC_RESET_MASK +#define CRL_APB_RST_LPD_TOP_RTC_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_RTC_RESET_SHIFT 16 +#define CRL_APB_RST_LPD_TOP_RTC_RESET_MASK 0x00010000U + +/* +* APM reset +*/ +#undef CRL_APB_RST_LPD_TOP_APM_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_APM_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_APM_RESET_MASK +#define CRL_APB_RST_LPD_TOP_APM_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_APM_RESET_SHIFT 15 +#define CRL_APB_RST_LPD_TOP_APM_RESET_MASK 0x00008000U + +/* +* IPI reset +*/ +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_IPI_RESET_MASK +#define CRL_APB_RST_LPD_TOP_IPI_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_IPI_RESET_SHIFT 14 +#define CRL_APB_RST_LPD_TOP_IPI_RESET_MASK 0x00004000U + +/* +* reset entire RPU power island +*/ +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_MASK +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_SHIFT 4 +#define CRL_APB_RST_LPD_TOP_RPU_PGE_RESET_MASK 0x00000010U + +/* +* reset ocm +*/ +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_OCM_RESET_MASK +#define CRL_APB_RST_LPD_TOP_OCM_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_OCM_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_TOP_OCM_RESET_MASK 0x00000008U + +/* +* GEM 3 reset +*/ +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U + +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_SHIFT 0 +#define CRL_APB_RST_LPD_IOU2_QSPI_RESET_MASK 0x00000001U + +/* +* 0: Do not by pass the tap delays on the Rx clock signal of LQSPI 1: Bypa + * ss the Tap delay on the Rx clock signal of LQSPI +*/ +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT +#undef IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_DEFVAL 0x00000007 +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_SHIFT 2 +#define IOU_SLCR_IOU_TAPDLY_BYPASS_LQSPI_RX_MASK 0x00000004U + +/* +* USB 0 reset for control registers +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U + +/* +* USB 0 sleep circuit reset +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U + +/* +* USB 0 reset +*/ +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U + +/* +* This bit is used to choose between PIPE power present and 1'b1 +*/ +#undef USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL +#undef USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT +#undef USB3_0_FPD_POWER_PRSNT_OPTION_MASK +#define USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL +#define USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT 0 +#define USB3_0_FPD_POWER_PRSNT_OPTION_MASK 0x00000001U + +/* +* This bit is used to choose between PIPE clock coming from SerDes and the + * suspend clk +*/ +#undef USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL +#undef USB3_0_FPD_PIPE_CLK_OPTION_SHIFT +#undef USB3_0_FPD_PIPE_CLK_OPTION_MASK +#define USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL +#define USB3_0_FPD_PIPE_CLK_OPTION_SHIFT 0 +#define USB3_0_FPD_PIPE_CLK_OPTION_MASK 0x00000001U + +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT 6 -#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_SHIFT 6 +#define CRL_APB_RST_LPD_IOU2_SDIO1_RESET_MASK 0x00000040U -/*SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled*/ +/* +* SD or eMMC selection on SDIO1 0: SD enabled 1: eMMC enabled +*/ #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT #undef IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL 0x00000000 -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT 15 -#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK 0x00008000U +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_DEFVAL 0x00000000 +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_SHIFT 15 +#define IOU_SLCR_CTRL_REG_SD_SD1_EMMC_SEL_MASK 0x00008000U -/*Should be set based on the final product usage 00 - Removable SCard Slot 01 - Embedded Slot for One Device 10 - Shared Bus Sl - t 11 - Reserved*/ +/* +* Should be set based on the final product usage 00 - Removable SCard Slot + * 01 - Embedded Slot for One Device 10 - Shared Bus Slot 11 - Reserved +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT 28 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK 0x30000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_SHIFT 28 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_SLOTTYPE_MASK 0x30000000U -/*1.8V Support 1: 1.8V supported 0: 1.8V not supported support*/ +/* +* 1.8V Support 1: 1.8V supported 0: 1.8V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT 25 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK 0x02000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_SHIFT 25 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_1P8V_MASK 0x02000000U -/*3.0V Support 1: 3.0V supported 0: 3.0V not supported support*/ +/* +* 3.0V Support 1: 3.0V supported 0: 3.0V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT 24 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK 0x01000000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_SHIFT 24 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P0V_MASK 0x01000000U -/*3.3V Support 1: 3.3V supported 0: 3.3V not supported support*/ +/* +* 3.3V Support 1: 3.3V supported 0: 3.3V not supported support +*/ #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT #undef IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL 0x0FFC0FFC -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT 23 -#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK 0x00800000U +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_DEFVAL 0x0FFC0FFC +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_SHIFT 23 +#define IOU_SLCR_SD_CONFIG_REG2_SD1_3P3V_MASK 0x00800000U -/*Base Clock Frequency for SD Clock. This is the frequency of the xin_clk.*/ +/* +* Base Clock Frequency for SD Clock. This is the frequency of the xin_clk. +*/ #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT #undef IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL 0x32403240 -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT 23 -#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK 0x7F800000U +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_DEFVAL 0x32403240 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_SHIFT 23 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_BASECLK_MASK 0x7F800000U -/*This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. Setting to 4'b0 disables Re-Tuning Timer. 0h - Get inf - rmation via other source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n = 2(n-1) seconds -- Bh = 1024 secon - s Fh - Ch = Reserved*/ +/* +* Configures the Number of Taps (Phases) of the rxclk_in that is supported + * . +*/ +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_DEFVAL +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_SHIFT +#undef IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_MASK +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_DEFVAL 0x32403240 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_SHIFT 17 +#define IOU_SLCR_SD_CONFIG_REG1_SD1_TUNIGCOUNT_MASK 0x007E0000U + +/* +* Reserved. +*/ +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_DEFVAL +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_SHIFT +#undef IOU_SLCR_SD_DLL_CTRL_RESERVED_MASK +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_DEFVAL 0x00080008 +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_SHIFT 3 +#define IOU_SLCR_SD_DLL_CTRL_RESERVED_MASK 0x00000008U + +/* +* This is the Timer Count for Re-Tuning Timer for Re-Tuning Mode 1 to 3. S + * etting to 4'b0 disables Re-Tuning Timer. 0h - Get information via other + * source 1h = 1 seconds 2h = 2 seconds 3h = 4 seconds 4h = 8 seconds -- n + * = 2(n-1) seconds -- Bh = 1024 seconds Fh - Ch = Reserved +*/ #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT #undef IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL 0x06070607 -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT 22 -#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK 0x03C00000U +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_DEFVAL 0x06070607 +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_SHIFT 22 +#define IOU_SLCR_SD_CONFIG_REG3_SD1_RETUNETMR_MASK 0x03C00000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT 8 -#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_SHIFT 8 +#define CRL_APB_RST_LPD_IOU2_CAN1_RESET_MASK 0x00000100U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT 9 -#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK 0x00000200U +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_SHIFT 9 +#define CRL_APB_RST_LPD_IOU2_I2C0_RESET_MASK 0x00000200U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_IOU2_I2C1_RESET_MASK 0x00000400U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT 15 -#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK 0x00008000U +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_SHIFT 15 +#define CRL_APB_RST_LPD_IOU2_SWDT_RESET_MASK 0x00008000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT 11 -#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK 0x00000800U +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_SHIFT 11 +#define CRL_APB_RST_LPD_IOU2_TTC0_RESET_MASK 0x00000800U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT 12 -#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK 0x00001000U +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_SHIFT 12 +#define CRL_APB_RST_LPD_IOU2_TTC1_RESET_MASK 0x00001000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT 13 -#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK 0x00002000U +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_SHIFT 13 +#define CRL_APB_RST_LPD_IOU2_TTC2_RESET_MASK 0x00002000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT 14 -#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK 0x00004000U +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_SHIFT 14 +#define CRL_APB_RST_LPD_IOU2_TTC3_RESET_MASK 0x00004000U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT 1 -#define CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK 0x00000002U +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_SHIFT 1 +#define CRL_APB_RST_LPD_IOU2_UART0_RESET_MASK 0x00000002U -/*Block level reset*/ +/* +* Block level reset +*/ #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL 0x0017FFFF -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT 2 -#define CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK 0x00000004U +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_SHIFT 2 +#define CRL_APB_RST_LPD_IOU2_UART1_RESET_MASK 0x00000004U -/*Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate*/ +/* +* Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +*/ #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT #undef UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 -#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 +#define UART0_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU -/*Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample*/ +/* +* Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +*/ #undef UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL #undef UART0_BAUD_RATE_GEN_REG0_CD_SHIFT #undef UART0_BAUD_RATE_GEN_REG0_CD_MASK -#define UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B -#define UART0_BAUD_RATE_GEN_REG0_CD_SHIFT 0 -#define UART0_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU +#define UART0_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B +#define UART0_BAUD_RATE_GEN_REG0_CD_SHIFT 0 +#define UART0_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU -/*Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK.*/ +/* +* Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. +*/ #undef UART0_CONTROL_REG0_STPBRK_DEFVAL #undef UART0_CONTROL_REG0_STPBRK_SHIFT #undef UART0_CONTROL_REG0_STPBRK_MASK -#define UART0_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_STPBRK_SHIFT 8 -#define UART0_CONTROL_REG0_STPBRK_MASK 0x00000100U +#define UART0_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_STPBRK_SHIFT 8 +#define UART0_CONTROL_REG0_STPBRK_MASK 0x00000100U -/*Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high.*/ +/* +* Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. +*/ #undef UART0_CONTROL_REG0_STTBRK_DEFVAL #undef UART0_CONTROL_REG0_STTBRK_SHIFT #undef UART0_CONTROL_REG0_STTBRK_MASK -#define UART0_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_STTBRK_SHIFT 7 -#define UART0_CONTROL_REG0_STTBRK_MASK 0x00000080U +#define UART0_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_STTBRK_SHIFT 7 +#define UART0_CONTROL_REG0_STTBRK_MASK 0x00000080U -/*Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted.*/ +/* +* Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. +*/ #undef UART0_CONTROL_REG0_RSTTO_DEFVAL #undef UART0_CONTROL_REG0_RSTTO_SHIFT #undef UART0_CONTROL_REG0_RSTTO_MASK -#define UART0_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RSTTO_SHIFT 6 -#define UART0_CONTROL_REG0_RSTTO_MASK 0x00000040U +#define UART0_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RSTTO_SHIFT 6 +#define UART0_CONTROL_REG0_RSTTO_MASK 0x00000040U -/*Transmit disable: 0: enable transmitter 1: disable transmitter*/ +/* +* Transmit disable: 0: enable transmitter 1: disable transmitter +*/ #undef UART0_CONTROL_REG0_TXDIS_DEFVAL #undef UART0_CONTROL_REG0_TXDIS_SHIFT #undef UART0_CONTROL_REG0_TXDIS_MASK -#define UART0_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXDIS_SHIFT 5 -#define UART0_CONTROL_REG0_TXDIS_MASK 0x00000020U +#define UART0_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXDIS_SHIFT 5 +#define UART0_CONTROL_REG0_TXDIS_MASK 0x00000020U -/*Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0.*/ +/* +* Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. +*/ #undef UART0_CONTROL_REG0_TXEN_DEFVAL #undef UART0_CONTROL_REG0_TXEN_SHIFT #undef UART0_CONTROL_REG0_TXEN_MASK -#define UART0_CONTROL_REG0_TXEN_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXEN_SHIFT 4 -#define UART0_CONTROL_REG0_TXEN_MASK 0x00000010U +#define UART0_CONTROL_REG0_TXEN_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXEN_SHIFT 4 +#define UART0_CONTROL_REG0_TXEN_MASK 0x00000010U -/*Receive disable: 0: enable 1: disable, regardless of the value of RXEN*/ +/* +* Receive disable: 0: enable 1: disable, regardless of the value of RXEN +*/ #undef UART0_CONTROL_REG0_RXDIS_DEFVAL #undef UART0_CONTROL_REG0_RXDIS_SHIFT #undef UART0_CONTROL_REG0_RXDIS_MASK -#define UART0_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXDIS_SHIFT 3 -#define UART0_CONTROL_REG0_RXDIS_MASK 0x00000008U +#define UART0_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXDIS_SHIFT 3 +#define UART0_CONTROL_REG0_RXDIS_MASK 0x00000008U -/*Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero.*/ +/* +* Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. +*/ #undef UART0_CONTROL_REG0_RXEN_DEFVAL #undef UART0_CONTROL_REG0_RXEN_SHIFT #undef UART0_CONTROL_REG0_RXEN_MASK -#define UART0_CONTROL_REG0_RXEN_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXEN_SHIFT 2 -#define UART0_CONTROL_REG0_RXEN_MASK 0x00000004U +#define UART0_CONTROL_REG0_RXEN_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXEN_SHIFT 2 +#define UART0_CONTROL_REG0_RXEN_MASK 0x00000004U -/*Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed.*/ +/* +* Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. +*/ #undef UART0_CONTROL_REG0_TXRES_DEFVAL #undef UART0_CONTROL_REG0_TXRES_SHIFT #undef UART0_CONTROL_REG0_TXRES_MASK -#define UART0_CONTROL_REG0_TXRES_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_TXRES_SHIFT 1 -#define UART0_CONTROL_REG0_TXRES_MASK 0x00000002U +#define UART0_CONTROL_REG0_TXRES_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_TXRES_SHIFT 1 +#define UART0_CONTROL_REG0_TXRES_MASK 0x00000002U -/*Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed.*/ +/* +* Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. +*/ #undef UART0_CONTROL_REG0_RXRES_DEFVAL #undef UART0_CONTROL_REG0_RXRES_SHIFT #undef UART0_CONTROL_REG0_RXRES_MASK -#define UART0_CONTROL_REG0_RXRES_DEFVAL 0x00000128 -#define UART0_CONTROL_REG0_RXRES_SHIFT 0 -#define UART0_CONTROL_REG0_RXRES_MASK 0x00000001U +#define UART0_CONTROL_REG0_RXRES_DEFVAL 0x00000128 +#define UART0_CONTROL_REG0_RXRES_SHIFT 0 +#define UART0_CONTROL_REG0_RXRES_MASK 0x00000001U -/*Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback*/ +/* +* Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback +*/ #undef UART0_MODE_REG0_CHMODE_DEFVAL #undef UART0_MODE_REG0_CHMODE_SHIFT #undef UART0_MODE_REG0_CHMODE_MASK -#define UART0_MODE_REG0_CHMODE_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CHMODE_SHIFT 8 -#define UART0_MODE_REG0_CHMODE_MASK 0x00000300U +#define UART0_MODE_REG0_CHMODE_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CHMODE_SHIFT 8 +#define UART0_MODE_REG0_CHMODE_MASK 0x00000300U -/*Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved*/ +/* +* Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved +*/ #undef UART0_MODE_REG0_NBSTOP_DEFVAL #undef UART0_MODE_REG0_NBSTOP_SHIFT #undef UART0_MODE_REG0_NBSTOP_MASK -#define UART0_MODE_REG0_NBSTOP_DEFVAL 0x00000000 -#define UART0_MODE_REG0_NBSTOP_SHIFT 6 -#define UART0_MODE_REG0_NBSTOP_MASK 0x000000C0U +#define UART0_MODE_REG0_NBSTOP_DEFVAL 0x00000000 +#define UART0_MODE_REG0_NBSTOP_SHIFT 6 +#define UART0_MODE_REG0_NBSTOP_MASK 0x000000C0U -/*Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity*/ +/* +* Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty +*/ #undef UART0_MODE_REG0_PAR_DEFVAL #undef UART0_MODE_REG0_PAR_SHIFT #undef UART0_MODE_REG0_PAR_MASK -#define UART0_MODE_REG0_PAR_DEFVAL 0x00000000 -#define UART0_MODE_REG0_PAR_SHIFT 3 -#define UART0_MODE_REG0_PAR_MASK 0x00000038U +#define UART0_MODE_REG0_PAR_DEFVAL 0x00000000 +#define UART0_MODE_REG0_PAR_SHIFT 3 +#define UART0_MODE_REG0_PAR_MASK 0x00000038U -/*Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits*/ +/* +* Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits +*/ #undef UART0_MODE_REG0_CHRL_DEFVAL #undef UART0_MODE_REG0_CHRL_SHIFT #undef UART0_MODE_REG0_CHRL_MASK -#define UART0_MODE_REG0_CHRL_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CHRL_SHIFT 1 -#define UART0_MODE_REG0_CHRL_MASK 0x00000006U +#define UART0_MODE_REG0_CHRL_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CHRL_SHIFT 1 +#define UART0_MODE_REG0_CHRL_MASK 0x00000006U -/*Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8*/ +/* +* Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 +*/ #undef UART0_MODE_REG0_CLKS_DEFVAL #undef UART0_MODE_REG0_CLKS_SHIFT #undef UART0_MODE_REG0_CLKS_MASK -#define UART0_MODE_REG0_CLKS_DEFVAL 0x00000000 -#define UART0_MODE_REG0_CLKS_SHIFT 0 -#define UART0_MODE_REG0_CLKS_MASK 0x00000001U +#define UART0_MODE_REG0_CLKS_DEFVAL 0x00000000 +#define UART0_MODE_REG0_CLKS_SHIFT 0 +#define UART0_MODE_REG0_CLKS_MASK 0x00000001U -/*Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate*/ +/* +* Baud rate divider value: 0 - 3: ignored 4 - 255: Baud rate +*/ #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT #undef UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 -#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_DEFVAL 0x0000000F +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_SHIFT 0 +#define UART1_BAUD_RATE_DIVIDER_REG0_BDIV_MASK 0x000000FFU -/*Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor bypass (baud_sample = sel_clk) 2 - 65535: baud_sample*/ +/* +* Baud Rate Clock Divisor Value: 0: Disables baud_sample 1: Clock divisor + * bypass (baud_sample = sel_clk) 2 - 65535: baud_sample +*/ #undef UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL #undef UART1_BAUD_RATE_GEN_REG0_CD_SHIFT #undef UART1_BAUD_RATE_GEN_REG0_CD_MASK -#define UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B -#define UART1_BAUD_RATE_GEN_REG0_CD_SHIFT 0 -#define UART1_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU +#define UART1_BAUD_RATE_GEN_REG0_CD_DEFVAL 0x0000028B +#define UART1_BAUD_RATE_GEN_REG0_CD_SHIFT 0 +#define UART1_BAUD_RATE_GEN_REG0_CD_MASK 0x0000FFFFU -/*Stop transmitter break: 0: no affect 1: stop transmission of the break after a minimum of one character length and transmit a - high level during 12 bit periods. It can be set regardless of the value of STTBRK.*/ +/* +* Stop transmitter break: 0: no affect 1: stop transmission of the break a + * fter a minimum of one character length and transmit a high level during + * 12 bit periods. It can be set regardless of the value of STTBRK. +*/ #undef UART1_CONTROL_REG0_STPBRK_DEFVAL #undef UART1_CONTROL_REG0_STPBRK_SHIFT #undef UART1_CONTROL_REG0_STPBRK_MASK -#define UART1_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_STPBRK_SHIFT 8 -#define UART1_CONTROL_REG0_STPBRK_MASK 0x00000100U +#define UART1_CONTROL_REG0_STPBRK_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_STPBRK_SHIFT 8 +#define UART1_CONTROL_REG0_STPBRK_MASK 0x00000100U -/*Start transmitter break: 0: no affect 1: start to transmit a break after the characters currently present in the FIFO and the - transmit shift register have been transmitted. It can only be set if STPBRK (Stop transmitter break) is not high.*/ +/* +* Start transmitter break: 0: no affect 1: start to transmit a break after + * the characters currently present in the FIFO and the transmit shift reg + * ister have been transmitted. It can only be set if STPBRK (Stop transmit + * ter break) is not high. +*/ #undef UART1_CONTROL_REG0_STTBRK_DEFVAL #undef UART1_CONTROL_REG0_STTBRK_SHIFT #undef UART1_CONTROL_REG0_STTBRK_MASK -#define UART1_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_STTBRK_SHIFT 7 -#define UART1_CONTROL_REG0_STTBRK_MASK 0x00000080U +#define UART1_CONTROL_REG0_STTBRK_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_STTBRK_SHIFT 7 +#define UART1_CONTROL_REG0_STTBRK_MASK 0x00000080U -/*Restart receiver timeout counter: 1: receiver timeout counter is restarted. This bit is self clearing once the restart has co - pleted.*/ +/* +* Restart receiver timeout counter: 1: receiver timeout counter is restart + * ed. This bit is self clearing once the restart has completed. +*/ #undef UART1_CONTROL_REG0_RSTTO_DEFVAL #undef UART1_CONTROL_REG0_RSTTO_SHIFT #undef UART1_CONTROL_REG0_RSTTO_MASK -#define UART1_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RSTTO_SHIFT 6 -#define UART1_CONTROL_REG0_RSTTO_MASK 0x00000040U +#define UART1_CONTROL_REG0_RSTTO_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RSTTO_SHIFT 6 +#define UART1_CONTROL_REG0_RSTTO_MASK 0x00000040U -/*Transmit disable: 0: enable transmitter 1: disable transmitter*/ +/* +* Transmit disable: 0: enable transmitter 1: disable transmitter +*/ #undef UART1_CONTROL_REG0_TXDIS_DEFVAL #undef UART1_CONTROL_REG0_TXDIS_SHIFT #undef UART1_CONTROL_REG0_TXDIS_MASK -#define UART1_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXDIS_SHIFT 5 -#define UART1_CONTROL_REG0_TXDIS_MASK 0x00000020U +#define UART1_CONTROL_REG0_TXDIS_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXDIS_SHIFT 5 +#define UART1_CONTROL_REG0_TXDIS_MASK 0x00000020U -/*Transmit enable: 0: disable transmitter 1: enable transmitter, provided the TXDIS field is set to 0.*/ +/* +* Transmit enable: 0: disable transmitter 1: enable transmitter, provided + * the TXDIS field is set to 0. +*/ #undef UART1_CONTROL_REG0_TXEN_DEFVAL #undef UART1_CONTROL_REG0_TXEN_SHIFT #undef UART1_CONTROL_REG0_TXEN_MASK -#define UART1_CONTROL_REG0_TXEN_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXEN_SHIFT 4 -#define UART1_CONTROL_REG0_TXEN_MASK 0x00000010U +#define UART1_CONTROL_REG0_TXEN_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXEN_SHIFT 4 +#define UART1_CONTROL_REG0_TXEN_MASK 0x00000010U -/*Receive disable: 0: enable 1: disable, regardless of the value of RXEN*/ +/* +* Receive disable: 0: enable 1: disable, regardless of the value of RXEN +*/ #undef UART1_CONTROL_REG0_RXDIS_DEFVAL #undef UART1_CONTROL_REG0_RXDIS_SHIFT #undef UART1_CONTROL_REG0_RXDIS_MASK -#define UART1_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXDIS_SHIFT 3 -#define UART1_CONTROL_REG0_RXDIS_MASK 0x00000008U +#define UART1_CONTROL_REG0_RXDIS_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXDIS_SHIFT 3 +#define UART1_CONTROL_REG0_RXDIS_MASK 0x00000008U -/*Receive enable: 0: disable 1: enable When set to one, the receiver logic is enabled, provided the RXDIS field is set to zero.*/ +/* +* Receive enable: 0: disable 1: enable When set to one, the receiver logic + * is enabled, provided the RXDIS field is set to zero. +*/ #undef UART1_CONTROL_REG0_RXEN_DEFVAL #undef UART1_CONTROL_REG0_RXEN_SHIFT #undef UART1_CONTROL_REG0_RXEN_MASK -#define UART1_CONTROL_REG0_RXEN_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXEN_SHIFT 2 -#define UART1_CONTROL_REG0_RXEN_MASK 0x00000004U +#define UART1_CONTROL_REG0_RXEN_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXEN_SHIFT 2 +#define UART1_CONTROL_REG0_RXEN_MASK 0x00000004U -/*Software reset for Tx data path: 0: no affect 1: transmitter logic is reset and all pending transmitter data is discarded Thi - bit is self clearing once the reset has completed.*/ +/* +* Software reset for Tx data path: 0: no affect 1: transmitter logic is re + * set and all pending transmitter data is discarded This bit is self clear + * ing once the reset has completed. +*/ #undef UART1_CONTROL_REG0_TXRES_DEFVAL #undef UART1_CONTROL_REG0_TXRES_SHIFT #undef UART1_CONTROL_REG0_TXRES_MASK -#define UART1_CONTROL_REG0_TXRES_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_TXRES_SHIFT 1 -#define UART1_CONTROL_REG0_TXRES_MASK 0x00000002U +#define UART1_CONTROL_REG0_TXRES_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_TXRES_SHIFT 1 +#define UART1_CONTROL_REG0_TXRES_MASK 0x00000002U -/*Software reset for Rx data path: 0: no affect 1: receiver logic is reset and all pending receiver data is discarded. This bit - is self clearing once the reset has completed.*/ +/* +* Software reset for Rx data path: 0: no affect 1: receiver logic is reset + * and all pending receiver data is discarded. This bit is self clearing o + * nce the reset has completed. +*/ #undef UART1_CONTROL_REG0_RXRES_DEFVAL #undef UART1_CONTROL_REG0_RXRES_SHIFT #undef UART1_CONTROL_REG0_RXRES_MASK -#define UART1_CONTROL_REG0_RXRES_DEFVAL 0x00000128 -#define UART1_CONTROL_REG0_RXRES_SHIFT 0 -#define UART1_CONTROL_REG0_RXRES_MASK 0x00000001U +#define UART1_CONTROL_REG0_RXRES_DEFVAL 0x00000128 +#define UART1_CONTROL_REG0_RXRES_SHIFT 0 +#define UART1_CONTROL_REG0_RXRES_MASK 0x00000001U -/*Channel mode: Defines the mode of operation of the UART. 00: normal 01: automatic echo 10: local loopback 11: remote loopback*/ +/* +* Channel mode: Defines the mode of operation of the UART. 00: normal 01: + * automatic echo 10: local loopback 11: remote loopback +*/ #undef UART1_MODE_REG0_CHMODE_DEFVAL #undef UART1_MODE_REG0_CHMODE_SHIFT #undef UART1_MODE_REG0_CHMODE_MASK -#define UART1_MODE_REG0_CHMODE_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CHMODE_SHIFT 8 -#define UART1_MODE_REG0_CHMODE_MASK 0x00000300U +#define UART1_MODE_REG0_CHMODE_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CHMODE_SHIFT 8 +#define UART1_MODE_REG0_CHMODE_MASK 0x00000300U -/*Number of stop bits: Defines the number of stop bits to detect on receive and to generate on transmit. 00: 1 stop bit 01: 1.5 - stop bits 10: 2 stop bits 11: reserved*/ +/* +* Number of stop bits: Defines the number of stop bits to detect on receiv + * e and to generate on transmit. 00: 1 stop bit 01: 1.5 stop bits 10: 2 st + * op bits 11: reserved +*/ #undef UART1_MODE_REG0_NBSTOP_DEFVAL #undef UART1_MODE_REG0_NBSTOP_SHIFT #undef UART1_MODE_REG0_NBSTOP_MASK -#define UART1_MODE_REG0_NBSTOP_DEFVAL 0x00000000 -#define UART1_MODE_REG0_NBSTOP_SHIFT 6 -#define UART1_MODE_REG0_NBSTOP_MASK 0x000000C0U +#define UART1_MODE_REG0_NBSTOP_DEFVAL 0x00000000 +#define UART1_MODE_REG0_NBSTOP_SHIFT 6 +#define UART1_MODE_REG0_NBSTOP_MASK 0x000000C0U -/*Parity type select: Defines the expected parity to check on receive and the parity to generate on transmit. 000: even parity - 01: odd parity 010: forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no parity*/ +/* +* Parity type select: Defines the expected parity to check on receive and + * the parity to generate on transmit. 000: even parity 001: odd parity 010 + * : forced to 0 parity (space) 011: forced to 1 parity (mark) 1xx: no pari + * ty +*/ #undef UART1_MODE_REG0_PAR_DEFVAL #undef UART1_MODE_REG0_PAR_SHIFT #undef UART1_MODE_REG0_PAR_MASK -#define UART1_MODE_REG0_PAR_DEFVAL 0x00000000 -#define UART1_MODE_REG0_PAR_SHIFT 3 -#define UART1_MODE_REG0_PAR_MASK 0x00000038U +#define UART1_MODE_REG0_PAR_DEFVAL 0x00000000 +#define UART1_MODE_REG0_PAR_SHIFT 3 +#define UART1_MODE_REG0_PAR_MASK 0x00000038U -/*Character length select: Defines the number of bits in each character. 11: 6 bits 10: 7 bits 0x: 8 bits*/ +/* +* Character length select: Defines the number of bits in each character. 1 + * 1: 6 bits 10: 7 bits 0x: 8 bits +*/ #undef UART1_MODE_REG0_CHRL_DEFVAL #undef UART1_MODE_REG0_CHRL_SHIFT #undef UART1_MODE_REG0_CHRL_MASK -#define UART1_MODE_REG0_CHRL_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CHRL_SHIFT 1 -#define UART1_MODE_REG0_CHRL_MASK 0x00000006U +#define UART1_MODE_REG0_CHRL_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CHRL_SHIFT 1 +#define UART1_MODE_REG0_CHRL_MASK 0x00000006U -/*Clock source select: This field defines whether a pre-scalar of 8 is applied to the baud rate generator input clock. 0: clock - source is uart_ref_clk 1: clock source is uart_ref_clk/8*/ +/* +* Clock source select: This field defines whether a pre-scalar of 8 is app + * lied to the baud rate generator input clock. 0: clock source is uart_ref + * _clk 1: clock source is uart_ref_clk/8 +*/ #undef UART1_MODE_REG0_CLKS_DEFVAL #undef UART1_MODE_REG0_CLKS_SHIFT #undef UART1_MODE_REG0_CLKS_MASK -#define UART1_MODE_REG0_CLKS_DEFVAL 0x00000000 -#define UART1_MODE_REG0_CLKS_SHIFT 0 -#define UART1_MODE_REG0_CLKS_MASK 0x00000001U +#define UART1_MODE_REG0_CLKS_DEFVAL 0x00000000 +#define UART1_MODE_REG0_CLKS_SHIFT 0 +#define UART1_MODE_REG0_CLKS_MASK 0x00000001U -/*TrustZone Classification for ADMA*/ +/* +* Block level reset +*/ +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_DEFVAL +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_SHIFT +#undef CRL_APB_RST_LPD_IOU2_GPIO_RESET_MASK +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_DEFVAL 0x0017FFFF +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_SHIFT 18 +#define CRL_APB_RST_LPD_IOU2_GPIO_RESET_MASK 0x00040000U + +/* +* TrustZone Classification for ADMA +*/ #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT #undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 -#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU -/*CSU regsiter*/ +/* +* CSU regsiter +*/ #undef CSU_TAMPER_STATUS_TAMPER_0_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_0_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_0_MASK -#define CSU_TAMPER_STATUS_TAMPER_0_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_0_SHIFT 0 -#define CSU_TAMPER_STATUS_TAMPER_0_MASK 0x00000001U +#define CSU_TAMPER_STATUS_TAMPER_0_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_0_SHIFT 0 +#define CSU_TAMPER_STATUS_TAMPER_0_MASK 0x00000001U -/*External MIO*/ +/* +* External MIO +*/ #undef CSU_TAMPER_STATUS_TAMPER_1_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_1_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_1_MASK -#define CSU_TAMPER_STATUS_TAMPER_1_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_1_SHIFT 1 -#define CSU_TAMPER_STATUS_TAMPER_1_MASK 0x00000002U +#define CSU_TAMPER_STATUS_TAMPER_1_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_1_SHIFT 1 +#define CSU_TAMPER_STATUS_TAMPER_1_MASK 0x00000002U -/*JTAG toggle detect*/ +/* +* JTAG toggle detect +*/ #undef CSU_TAMPER_STATUS_TAMPER_2_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_2_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_2_MASK -#define CSU_TAMPER_STATUS_TAMPER_2_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_2_SHIFT 2 -#define CSU_TAMPER_STATUS_TAMPER_2_MASK 0x00000004U +#define CSU_TAMPER_STATUS_TAMPER_2_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_2_SHIFT 2 +#define CSU_TAMPER_STATUS_TAMPER_2_MASK 0x00000004U -/*PL SEU error*/ +/* +* PL SEU error +*/ #undef CSU_TAMPER_STATUS_TAMPER_3_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_3_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_3_MASK -#define CSU_TAMPER_STATUS_TAMPER_3_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_3_SHIFT 3 -#define CSU_TAMPER_STATUS_TAMPER_3_MASK 0x00000008U +#define CSU_TAMPER_STATUS_TAMPER_3_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_3_SHIFT 3 +#define CSU_TAMPER_STATUS_TAMPER_3_MASK 0x00000008U -/*AMS over temperature alarm for LPD*/ +/* +* AMS over temperature alarm for LPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_4_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_4_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_4_MASK -#define CSU_TAMPER_STATUS_TAMPER_4_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_4_SHIFT 4 -#define CSU_TAMPER_STATUS_TAMPER_4_MASK 0x00000010U +#define CSU_TAMPER_STATUS_TAMPER_4_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_4_SHIFT 4 +#define CSU_TAMPER_STATUS_TAMPER_4_MASK 0x00000010U -/*AMS over temperature alarm for APU*/ +/* +* AMS over temperature alarm for APU +*/ #undef CSU_TAMPER_STATUS_TAMPER_5_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_5_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_5_MASK -#define CSU_TAMPER_STATUS_TAMPER_5_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_5_SHIFT 5 -#define CSU_TAMPER_STATUS_TAMPER_5_MASK 0x00000020U +#define CSU_TAMPER_STATUS_TAMPER_5_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_5_SHIFT 5 +#define CSU_TAMPER_STATUS_TAMPER_5_MASK 0x00000020U -/*AMS voltage alarm for VCCPINT_FPD*/ +/* +* AMS voltage alarm for VCCPINT_FPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_6_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_6_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_6_MASK -#define CSU_TAMPER_STATUS_TAMPER_6_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_6_SHIFT 6 -#define CSU_TAMPER_STATUS_TAMPER_6_MASK 0x00000040U +#define CSU_TAMPER_STATUS_TAMPER_6_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_6_SHIFT 6 +#define CSU_TAMPER_STATUS_TAMPER_6_MASK 0x00000040U -/*AMS voltage alarm for VCCPINT_LPD*/ +/* +* AMS voltage alarm for VCCPINT_LPD +*/ #undef CSU_TAMPER_STATUS_TAMPER_7_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_7_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_7_MASK -#define CSU_TAMPER_STATUS_TAMPER_7_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_7_SHIFT 7 -#define CSU_TAMPER_STATUS_TAMPER_7_MASK 0x00000080U +#define CSU_TAMPER_STATUS_TAMPER_7_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_7_SHIFT 7 +#define CSU_TAMPER_STATUS_TAMPER_7_MASK 0x00000080U -/*AMS voltage alarm for VCCPAUX*/ +/* +* AMS voltage alarm for VCCPAUX +*/ #undef CSU_TAMPER_STATUS_TAMPER_8_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_8_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_8_MASK -#define CSU_TAMPER_STATUS_TAMPER_8_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_8_SHIFT 8 -#define CSU_TAMPER_STATUS_TAMPER_8_MASK 0x00000100U +#define CSU_TAMPER_STATUS_TAMPER_8_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_8_SHIFT 8 +#define CSU_TAMPER_STATUS_TAMPER_8_MASK 0x00000100U -/*AMS voltage alarm for DDRPHY*/ +/* +* AMS voltage alarm for DDRPHY +*/ #undef CSU_TAMPER_STATUS_TAMPER_9_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_9_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_9_MASK -#define CSU_TAMPER_STATUS_TAMPER_9_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_9_SHIFT 9 -#define CSU_TAMPER_STATUS_TAMPER_9_MASK 0x00000200U +#define CSU_TAMPER_STATUS_TAMPER_9_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_9_SHIFT 9 +#define CSU_TAMPER_STATUS_TAMPER_9_MASK 0x00000200U -/*AMS voltage alarm for PSIO bank 0/1/2*/ +/* +* AMS voltage alarm for PSIO bank 0/1/2 +*/ #undef CSU_TAMPER_STATUS_TAMPER_10_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_10_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_10_MASK -#define CSU_TAMPER_STATUS_TAMPER_10_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_10_SHIFT 10 -#define CSU_TAMPER_STATUS_TAMPER_10_MASK 0x00000400U +#define CSU_TAMPER_STATUS_TAMPER_10_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_10_SHIFT 10 +#define CSU_TAMPER_STATUS_TAMPER_10_MASK 0x00000400U -/*AMS voltage alarm for PSIO bank 3 (dedicated pins)*/ +/* +* AMS voltage alarm for PSIO bank 3 (dedicated pins) +*/ #undef CSU_TAMPER_STATUS_TAMPER_11_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_11_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_11_MASK -#define CSU_TAMPER_STATUS_TAMPER_11_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_11_SHIFT 11 -#define CSU_TAMPER_STATUS_TAMPER_11_MASK 0x00000800U +#define CSU_TAMPER_STATUS_TAMPER_11_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_11_SHIFT 11 +#define CSU_TAMPER_STATUS_TAMPER_11_MASK 0x00000800U -/*AMS voltaage alarm for GT*/ +/* +* AMS voltaage alarm for GT +*/ #undef CSU_TAMPER_STATUS_TAMPER_12_DEFVAL #undef CSU_TAMPER_STATUS_TAMPER_12_SHIFT #undef CSU_TAMPER_STATUS_TAMPER_12_MASK -#define CSU_TAMPER_STATUS_TAMPER_12_DEFVAL 0x00000000 -#define CSU_TAMPER_STATUS_TAMPER_12_SHIFT 12 -#define CSU_TAMPER_STATUS_TAMPER_12_MASK 0x00001000U +#define CSU_TAMPER_STATUS_TAMPER_12_DEFVAL 0x00000000 +#define CSU_TAMPER_STATUS_TAMPER_12_SHIFT 12 +#define CSU_TAMPER_STATUS_TAMPER_12_MASK 0x00001000U -/*Set ACE outgoing AWQOS value*/ +/* +* Set ACE outgoing AWQOS value +*/ #undef APU_ACE_CTRL_AWQOS_DEFVAL #undef APU_ACE_CTRL_AWQOS_SHIFT #undef APU_ACE_CTRL_AWQOS_MASK -#define APU_ACE_CTRL_AWQOS_DEFVAL 0x000F000F -#define APU_ACE_CTRL_AWQOS_SHIFT 16 -#define APU_ACE_CTRL_AWQOS_MASK 0x000F0000U +#define APU_ACE_CTRL_AWQOS_DEFVAL 0x000F000F +#define APU_ACE_CTRL_AWQOS_SHIFT 16 +#define APU_ACE_CTRL_AWQOS_MASK 0x000F0000U -/*Set ACE outgoing ARQOS value*/ +/* +* Set ACE outgoing ARQOS value +*/ #undef APU_ACE_CTRL_ARQOS_DEFVAL #undef APU_ACE_CTRL_ARQOS_SHIFT #undef APU_ACE_CTRL_ARQOS_MASK -#define APU_ACE_CTRL_ARQOS_DEFVAL 0x000F000F -#define APU_ACE_CTRL_ARQOS_SHIFT 0 -#define APU_ACE_CTRL_ARQOS_MASK 0x0000000FU +#define APU_ACE_CTRL_ARQOS_DEFVAL 0x000F000F +#define APU_ACE_CTRL_ARQOS_SHIFT 0 +#define APU_ACE_CTRL_ARQOS_MASK 0x0000000FU -/*Enables the RTC. By writing a 0 to this bit, RTC will be powered off and the only module that potentially draws current from - he battery will be BBRAM. The value read through this bit does not necessarily reflect whether RTC is enabled or not. It is e - pected that RTC is enabled every time it is being configured. If RTC is not used in the design, FSBL will disable it by writi - g a 0 to this bit.*/ +/* +* Enables the RTC. By writing a 0 to this bit, RTC will be powered off and + * the only module that potentially draws current from the battery will be + * BBRAM. The value read through this bit does not necessarily reflect whe + * ther RTC is enabled or not. It is expected that RTC is enabled every tim + * e it is being configured. If RTC is not used in the design, FSBL will di + * sable it by writing a 0 to this bit. +*/ #undef RTC_CONTROL_BATTERY_DISABLE_DEFVAL #undef RTC_CONTROL_BATTERY_DISABLE_SHIFT #undef RTC_CONTROL_BATTERY_DISABLE_MASK -#define RTC_CONTROL_BATTERY_DISABLE_DEFVAL 0x01000000 -#define RTC_CONTROL_BATTERY_DISABLE_SHIFT 31 -#define RTC_CONTROL_BATTERY_DISABLE_MASK 0x80000000U +#define RTC_CONTROL_BATTERY_DISABLE_DEFVAL 0x01000000 +#define RTC_CONTROL_BATTERY_DISABLE_SHIFT 31 +#define RTC_CONTROL_BATTERY_DISABLE_MASK 0x80000000U -/*Frequency in number of ticks per second. Valid range from 10 MHz to 100 MHz.*/ +/* +* Frequency in number of ticks per second. Valid range from 10 MHz to 100 + * MHz. +*/ #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT #undef IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT 0 -#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK 0xFFFFFFFFU +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_DEFVAL +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_SHIFT 0 +#define IOU_SCNTRS_BASE_FREQUENCY_ID_REGISTER_FREQ_MASK 0xFFFFFFFFU -/*Enable 0: The counter is disabled and not incrementing. 1: The counter is enabled and is incrementing.*/ +/* +* Enable 0: The counter is disabled and not incrementing. 1: The counter i + * s enabled and is incrementing. +*/ #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT #undef IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL 0x00000000 -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT 0 -#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK 0x00000001U -#undef LPD_XPPU_CFG_IEN_OFFSET -#define LPD_XPPU_CFG_IEN_OFFSET 0XFF980018 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_DEFVAL 0x00000000 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_SHIFT 0 +#define IOU_SCNTRS_COUNTER_CONTROL_REGISTER_EN_MASK 0x00000001U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_PARITY_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_PARITY_MASK -#define LPD_XPPU_CFG_IEN_APER_PARITY_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_PARITY_SHIFT 7 -#define LPD_XPPU_CFG_IEN_APER_PARITY_MASK 0x00000080U +/* +* Operation is the same as DIRM_0[DIRECTION_0] +*/ +#undef GPIO_DIRM_1_DIRECTION_1_DEFVAL +#undef GPIO_DIRM_1_DIRECTION_1_SHIFT +#undef GPIO_DIRM_1_DIRECTION_1_MASK +#define GPIO_DIRM_1_DIRECTION_1_DEFVAL 0x00000000 +#define GPIO_DIRM_1_DIRECTION_1_SHIFT 0 +#define GPIO_DIRM_1_DIRECTION_1_MASK 0x03FFFFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_TZ_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_TZ_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_TZ_MASK -#define LPD_XPPU_CFG_IEN_APER_TZ_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_TZ_SHIFT 6 -#define LPD_XPPU_CFG_IEN_APER_TZ_MASK 0x00000040U +/* +* Operation is the same as OEN_0[OP_ENABLE_0] +*/ +#undef GPIO_OEN_1_OP_ENABLE_1_DEFVAL +#undef GPIO_OEN_1_OP_ENABLE_1_SHIFT +#undef GPIO_OEN_1_OP_ENABLE_1_MASK +#define GPIO_OEN_1_OP_ENABLE_1_DEFVAL 0x00000000 +#define GPIO_OEN_1_OP_ENABLE_1_SHIFT 0 +#define GPIO_OEN_1_OP_ENABLE_1_MASK 0x03FFFFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_APER_PERM_DEFVAL -#undef LPD_XPPU_CFG_IEN_APER_PERM_SHIFT -#undef LPD_XPPU_CFG_IEN_APER_PERM_MASK -#define LPD_XPPU_CFG_IEN_APER_PERM_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_APER_PERM_SHIFT 5 -#define LPD_XPPU_CFG_IEN_APER_PERM_MASK 0x00000020U +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_PARITY_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_PARITY_MASK -#define LPD_XPPU_CFG_IEN_MID_PARITY_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_PARITY_SHIFT 3 -#define LPD_XPPU_CFG_IEN_MID_PARITY_MASK 0x00000008U +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_RO_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_RO_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_RO_MASK -#define LPD_XPPU_CFG_IEN_MID_RO_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_RO_SHIFT 2 -#define LPD_XPPU_CFG_IEN_MID_RO_MASK 0x00000004U +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_MID_MISS_DEFVAL -#undef LPD_XPPU_CFG_IEN_MID_MISS_SHIFT -#undef LPD_XPPU_CFG_IEN_MID_MISS_MASK -#define LPD_XPPU_CFG_IEN_MID_MISS_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_MID_MISS_SHIFT 1 -#define LPD_XPPU_CFG_IEN_MID_MISS_MASK 0x00000002U +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU +#undef FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET +#define FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET 0XFD690040 +#undef FPD_SLCR_SECURE_SLCR_PCIE_OFFSET +#define FPD_SLCR_SECURE_SLCR_PCIE_OFFSET 0XFD690030 +#undef LPD_SLCR_SECURE_SLCR_USB_OFFSET +#define LPD_SLCR_SECURE_SLCR_USB_OFFSET 0XFF4B0034 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_OFFSET 0XFF240004 +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_OFFSET 0XFF240000 +#undef LPD_SLCR_SECURE_SLCR_ADMA_OFFSET +#define LPD_SLCR_SECURE_SLCR_ADMA_OFFSET 0XFF4B0024 +#undef FPD_SLCR_SECURE_SLCR_GDMA_OFFSET +#define FPD_SLCR_SECURE_SLCR_GDMA_OFFSET 0XFD690050 -/*See Interuppt Status Register for details*/ -#undef LPD_XPPU_CFG_IEN_INV_APB_DEFVAL -#undef LPD_XPPU_CFG_IEN_INV_APB_SHIFT -#undef LPD_XPPU_CFG_IEN_INV_APB_MASK -#define LPD_XPPU_CFG_IEN_INV_APB_DEFVAL 0x00000000 -#define LPD_XPPU_CFG_IEN_INV_APB_SHIFT 0 -#define LPD_XPPU_CFG_IEN_INV_APB_MASK 0x00000001U +/* +* TrustZone classification for DisplayPort DMA +*/ +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_SHIFT +#undef FPD_SLCR_SECURE_SLCR_DPDMA_TZ_MASK +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_DEFVAL 0x00000001 +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_DPDMA_TZ_MASK 0x00000001U + +/* +* TrustZone classification for DMA Channel 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_SHIFT 21 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_0_MASK 0x00200000U + +/* +* TrustZone classification for DMA Channel 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_SHIFT 22 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_1_MASK 0x00400000U + +/* +* TrustZone classification for DMA Channel 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_SHIFT 23 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_2_MASK 0x00800000U + +/* +* TrustZone classification for DMA Channel 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_SHIFT 24 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_3_MASK 0x01000000U + +/* +* TrustZone classification for Ingress Address Translation 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_SHIFT 13 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_0_MASK 0x00002000U + +/* +* TrustZone classification for Ingress Address Translation 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_SHIFT 14 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_1_MASK 0x00004000U + +/* +* TrustZone classification for Ingress Address Translation 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_SHIFT 15 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_2_MASK 0x00008000U + +/* +* TrustZone classification for Ingress Address Translation 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_SHIFT 16 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_3_MASK 0x00010000U + +/* +* TrustZone classification for Ingress Address Translation 4 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_SHIFT 17 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_4_MASK 0x00020000U + +/* +* TrustZone classification for Ingress Address Translation 5 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_SHIFT 18 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_5_MASK 0x00040000U + +/* +* TrustZone classification for Ingress Address Translation 6 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_SHIFT 19 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_6_MASK 0x00080000U + +/* +* TrustZone classification for Ingress Address Translation 7 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_SHIFT 20 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_INGR_7_MASK 0x00100000U + +/* +* TrustZone classification for Egress Address Translation 0 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_SHIFT 5 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_0_MASK 0x00000020U + +/* +* TrustZone classification for Egress Address Translation 1 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_SHIFT 6 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_1_MASK 0x00000040U + +/* +* TrustZone classification for Egress Address Translation 2 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_SHIFT 7 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_2_MASK 0x00000080U + +/* +* TrustZone classification for Egress Address Translation 3 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_SHIFT 8 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_3_MASK 0x00000100U + +/* +* TrustZone classification for Egress Address Translation 4 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_SHIFT 9 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_4_MASK 0x00000200U + +/* +* TrustZone classification for Egress Address Translation 5 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_SHIFT 10 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_5_MASK 0x00000400U + +/* +* TrustZone classification for Egress Address Translation 6 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_SHIFT 11 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_6_MASK 0x00000800U + +/* +* TrustZone classification for Egress Address Translation 7 +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_SHIFT 12 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_AT_EGR_7_MASK 0x00001000U + +/* +* TrustZone classification for DMA Registers +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_SHIFT 4 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_DMA_REGS_MASK 0x00000010U + +/* +* TrustZone classification for MSIx Table +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_SHIFT 2 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_TABLE_MASK 0x00000004U + +/* +* TrustZone classification for MSIx PBA +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_SHIFT 3 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_MSIX_PBA_MASK 0x00000008U + +/* +* TrustZone classification for ECAM +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_SHIFT 1 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_ECAM_MASK 0x00000002U + +/* +* TrustZone classification for Bridge Common Registers +*/ +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_SHIFT +#undef FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_MASK +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_DEFVAL 0x01FFFFFF +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_PCIE_TZ_BRIDGE_REGS_MASK 0x00000001U + +/* +* TrustZone Classification for USB3_0 +*/ +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_SHIFT +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_MASK +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_DEFVAL 0x00000003 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_0_MASK 0x00000001U + +/* +* TrustZone Classification for USB3_1 +*/ +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_SHIFT +#undef LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_MASK +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_DEFVAL 0x00000003 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_SHIFT 1 +#define LPD_SLCR_SECURE_SLCR_USB_TZ_USB3_1_MASK 0x00000002U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_SHIFT 16 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD0_AXI_ARPROT_MASK 0x00070000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_SHIFT 19 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_SD1_AXI_ARPROT_MASK 0x00380000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_SHIFT 16 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD0_AXI_AWPROT_MASK 0x00070000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_SHIFT 19 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_SD1_AXI_AWPROT_MASK 0x00380000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_SHIFT 0 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM0_AXI_ARPROT_MASK 0x00000007U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_SHIFT 3 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM1_AXI_ARPROT_MASK 0x00000038U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_SHIFT 6 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM2_AXI_ARPROT_MASK 0x000001C0U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_SHIFT 9 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_GEM3_AXI_ARPROT_MASK 0x00000E00U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_SHIFT 0 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM0_AXI_AWPROT_MASK 0x00000007U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_SHIFT 3 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM1_AXI_AWPROT_MASK 0x00000038U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_SHIFT 6 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM2_AXI_AWPROT_MASK 0x000001C0U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_SHIFT 9 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_GEM3_AXI_AWPROT_MASK 0x00000E00U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_SHIFT 25 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_QSPI_AXI_AWPROT_MASK 0x0E000000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_SHIFT 22 +#define IOU_SECURE_SLCR_IOU_AXI_RPRTCN_NAND_AXI_ARPROT_MASK 0x01C00000U + +/* +* AXI protection [0] = '0' : Normal access [0] = '1' : Previleged access [ + * 1] = '0' : Secure access [1] = '1' : No secure access [2] = '0' : Data a + * ccess [2] = '1'' : Instruction access +*/ +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_DEFVAL +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_SHIFT +#undef IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_MASK +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_DEFVAL 0x00000000 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_SHIFT 22 +#define IOU_SECURE_SLCR_IOU_AXI_WPRTCN_NAND_AXI_AWPROT_MASK 0x01C00000U + +/* +* TrustZone Classification for ADMA +*/ +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT +#undef LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_DEFVAL +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_SHIFT 0 +#define LPD_SLCR_SECURE_SLCR_ADMA_TZ_MASK 0x000000FFU + +/* +* TrustZone Classification for GDMA +*/ +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_DEFVAL +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_SHIFT +#undef FPD_SLCR_SECURE_SLCR_GDMA_TZ_MASK +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_DEFVAL +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_SHIFT 0 +#define FPD_SLCR_SECURE_SLCR_GDMA_TZ_MASK 0x000000FFU #undef SERDES_PLL_REF_SEL0_OFFSET #define SERDES_PLL_REF_SEL0_OFFSET 0XFD410000 #undef SERDES_PLL_REF_SEL1_OFFSET @@ -25320,8 +32847,6 @@ #define SERDES_L3_TM_DIG_6_OFFSET 0XFD40D06C #undef SERDES_L3_TX_DIG_TM_61_OFFSET #define SERDES_L3_TX_DIG_TM_61_OFFSET 0XFD40C0F4 -#undef SERDES_L3_TXPMA_ST_0_OFFSET -#define SERDES_L3_TXPMA_ST_0_OFFSET 0XFD40CB00 #undef SERDES_L0_TM_AUX_0_OFFSET #define SERDES_L0_TM_AUX_0_OFFSET 0XFD4010CC #undef SERDES_L2_TM_AUX_0_OFFSET @@ -25360,6 +32885,10 @@ #define SERDES_L0_TM_E_ILL8_OFFSET 0XFD401940 #undef SERDES_L0_TM_E_ILL9_OFFSET #define SERDES_L0_TM_E_ILL9_OFFSET 0XFD401944 +#undef SERDES_L0_TM_ILL13_OFFSET +#define SERDES_L0_TM_ILL13_OFFSET 0XFD401994 +#undef SERDES_L1_TM_ILL13_OFFSET +#define SERDES_L1_TM_ILL13_OFFSET 0XFD405994 #undef SERDES_L2_TM_MISC2_OFFSET #define SERDES_L2_TM_MISC2_OFFSET 0XFD40989C #undef SERDES_L2_TM_IQ_ILL1_OFFSET @@ -25386,6 +32915,8 @@ #define SERDES_L2_TM_E_ILL8_OFFSET 0XFD409940 #undef SERDES_L2_TM_E_ILL9_OFFSET #define SERDES_L2_TM_E_ILL9_OFFSET 0XFD409944 +#undef SERDES_L2_TM_ILL13_OFFSET +#define SERDES_L2_TM_ILL13_OFFSET 0XFD409994 #undef SERDES_L3_TM_MISC2_OFFSET #define SERDES_L3_TM_MISC2_OFFSET 0XFD40D89C #undef SERDES_L3_TM_IQ_ILL1_OFFSET @@ -25414,10 +32945,16 @@ #define SERDES_L3_TM_E_ILL8_OFFSET 0XFD40D940 #undef SERDES_L3_TM_E_ILL9_OFFSET #define SERDES_L3_TM_E_ILL9_OFFSET 0XFD40D944 -#undef SERDES_L0_TM_DIG_21_OFFSET -#define SERDES_L0_TM_DIG_21_OFFSET 0XFD4010A8 +#undef SERDES_L3_TM_ILL13_OFFSET +#define SERDES_L3_TM_ILL13_OFFSET 0XFD40D994 #undef SERDES_L0_TM_DIG_10_OFFSET #define SERDES_L0_TM_DIG_10_OFFSET 0XFD40107C +#undef SERDES_L1_TM_DIG_10_OFFSET +#define SERDES_L1_TM_DIG_10_OFFSET 0XFD40507C +#undef SERDES_L2_TM_DIG_10_OFFSET +#define SERDES_L2_TM_DIG_10_OFFSET 0XFD40907C +#undef SERDES_L3_TM_DIG_10_OFFSET +#define SERDES_L3_TM_DIG_10_OFFSET 0XFD40D07C #undef SERDES_L0_TM_RST_DLY_OFFSET #define SERDES_L0_TM_RST_DLY_OFFSET 0XFD4019A4 #undef SERDES_L0_TM_ANA_BYP_15_OFFSET @@ -25442,6 +32979,24 @@ #define SERDES_L3_TM_ANA_BYP_15_OFFSET 0XFD40D038 #undef SERDES_L3_TM_ANA_BYP_12_OFFSET #define SERDES_L3_TM_ANA_BYP_12_OFFSET 0XFD40D02C +#undef SERDES_L0_TM_MISC3_OFFSET +#define SERDES_L0_TM_MISC3_OFFSET 0XFD4019AC +#undef SERDES_L1_TM_MISC3_OFFSET +#define SERDES_L1_TM_MISC3_OFFSET 0XFD4059AC +#undef SERDES_L2_TM_MISC3_OFFSET +#define SERDES_L2_TM_MISC3_OFFSET 0XFD4099AC +#undef SERDES_L3_TM_MISC3_OFFSET +#define SERDES_L3_TM_MISC3_OFFSET 0XFD40D9AC +#undef SERDES_L0_TM_EQ11_OFFSET +#define SERDES_L0_TM_EQ11_OFFSET 0XFD401978 +#undef SERDES_L1_TM_EQ11_OFFSET +#define SERDES_L1_TM_EQ11_OFFSET 0XFD405978 +#undef SERDES_L2_TM_EQ11_OFFSET +#define SERDES_L2_TM_EQ11_OFFSET 0XFD409978 +#undef SERDES_L3_TM_EQ11_OFFSET +#define SERDES_L3_TM_EQ11_OFFSET 0XFD40D978 +#undef SIOU_ECO_0_OFFSET +#define SIOU_ECO_0_OFFSET 0XFD3D001C #undef SERDES_ICM_CFG0_OFFSET #define SERDES_ICM_CFG0_OFFSET 0XFD410010 #undef SERDES_ICM_CFG1_OFFSET @@ -25467,1055 +33022,1511 @@ #undef SERDES_L3_TX_ANA_TM_18_OFFSET #define SERDES_L3_TX_ANA_TM_18_OFFSET 0XFD40C048 -/*PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL0 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT #undef SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL 0x0000000D -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT 0 -#define SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_DEFVAL 0x0000000D +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_SHIFT 0 +#define SERDES_PLL_REF_SEL0_PLLREFSEL0_MASK 0x0000001FU -/*PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL1 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT #undef SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL 0x00000008 -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT 0 -#define SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_DEFVAL 0x00000008 +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_SHIFT 0 +#define SERDES_PLL_REF_SEL1_PLLREFSEL1_MASK 0x0000001FU -/*PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL2 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT #undef SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL 0x0000000F -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT 0 -#define SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_DEFVAL 0x0000000F +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_SHIFT 0 +#define SERDES_PLL_REF_SEL2_PLLREFSEL2_MASK 0x0000001FU -/*PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 12MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - - 4MHz, 0x8 - 26MHz, 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE - 108MHz, 0xF - 125MHz, 0x10 - 135 - Hz, 0x11 - 150 MHz. 0x12 to 0x1F - Reserved*/ +/* +* PLL3 Reference Selection. 0x0 - 5MHz, 0x1 - 9.6MHz, 0x2 - 10MHz, 0x3 - 1 + * 2MHz, 0x4 - 13MHz, 0x5 - 19.2MHz, 0x6 - 20MHz, 0x7 - 24MHz, 0x8 - 26MHz, + * 0x9 - 27MHz, 0xA - 38.4MHz, 0xB - 40MHz, 0xC - 52MHz, 0xD - 100MHz, 0xE + * - 108MHz, 0xF - 125MHz, 0x10 - 135MHz, 0x11 - 150 MHz. 0x12 to 0x1F - R + * eserved +*/ #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT #undef SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL 0x0000000E -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT 0 -#define SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK 0x0000001FU +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_DEFVAL 0x0000000E +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_SHIFT 0 +#define SERDES_PLL_REF_SEL3_PLLREFSEL3_MASK 0x0000001FU -/*Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer output. Set to 0 to select lane0 ref clock mux output.*/ +/* +* Sel of lane 0 ref clock local mux. Set to 1 to select lane 0 slicer outp + * ut. Set to 0 to select lane0 ref clock mux output. +*/ #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L0_REF_CLK_SEL_L0_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane1 ref clock mux output.*/ +/* +* Sel of lane 1 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane1 ref clock mux output. +*/ #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 slicer output from ref clock network*/ +/* +* Bit 3 of lane 1 ref clock mux one hot sel. Set to 1 to select lane 3 sli + * cer output from ref clock network +*/ #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT #undef SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL 0x00000080 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT 3 -#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK 0x00000008U +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_DEFVAL 0x00000080 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_SHIFT 3 +#define SERDES_L0_L1_REF_CLK_SEL_L1_REF_CLK_SEL_3_MASK 0x00000008U -/*Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer output. Set to 0 to select lane2 ref clock mux output.*/ +/* +* Sel of lane 2 ref clock local mux. Set to 1 to select lane 1 slicer outp + * ut. Set to 0 to select lane2 ref clock mux output. +*/ #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L2_REF_CLK_SEL_L2_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer output. Set to 0 to select lane3 ref clock mux output.*/ +/* +* Sel of lane 3 ref clock local mux. Set to 1 to select lane 3 slicer outp + * ut. Set to 0 to select lane3 ref clock mux output. +*/ #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL 0x00000080 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT 7 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK 0x00000080U +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_DEFVAL 0x00000080 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_SHIFT 7 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_LCL_SEL_MASK 0x00000080U -/*Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 slicer output from ref clock network*/ +/* +* Bit 1 of lane 3 ref clock mux one hot sel. Set to 1 to select lane 1 sli + * cer output from ref clock network +*/ #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT #undef SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL 0x00000080 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT 1 -#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK 0x00000002U +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_DEFVAL 0x00000080 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_SHIFT 1 +#define SERDES_L0_L3_REF_CLK_SEL_L3_REF_CLK_SEL_1_MASK 0x00000002U -/*Enable/Disable coarse code satureation limiting logic*/ +/* +* Enable/Disable coarse code satureation limiting logic +*/ #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT #undef SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL 0x00000000 -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT 4 -#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK 0x00000010U +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_DEFVAL 0x00000000 +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_SHIFT 4 +#define SERDES_L2_TM_PLL_DIG_37_TM_ENABLE_COARSE_SATURATION_MASK 0x00000010U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Spread Spectrum No of Steps [7:0]*/ +/* +* Spread Spectrum No of Steps [7:0] +*/ #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT #undef SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEPS_0_LSB_SS_NUM_OF_STEPS_0_LSB_MASK 0x000000FFU -/*Spread Spectrum No of Steps [10:8]*/ +/* +* Spread Spectrum No of Steps [10:8] +*/ #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT #undef SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEPS_1_MSB_SS_NUM_OF_STEPS_1_MSB_MASK 0x00000007U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L1_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L2_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Step Size for Spread Spectrum [7:0]*/ +/* +* Step Size for Spread Spectrum [7:0] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_0_LSB_SS_STEP_SIZE_0_LSB_MASK 0x000000FFU -/*Step Size for Spread Spectrum [15:8]*/ +/* +* Step Size for Spread Spectrum [15:8] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_1_SS_STEP_SIZE_1_MASK 0x000000FFU -/*Step Size for Spread Spectrum [23:16]*/ +/* +* Step Size for Spread Spectrum [23:16] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_2_SS_STEP_SIZE_2_MASK 0x000000FFU -/*Step Size for Spread Spectrum [25:24]*/ +/* +* Step Size for Spread Spectrum [25:24] +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_SHIFT 0 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_SS_STEP_SIZE_3_MSB_MASK 0x00000003U -/*Enable/Disable test mode force on SS step size*/ +/* +* Enable/Disable test mode force on SS step size +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_SHIFT 4 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_STEP_SIZE_MASK 0x00000010U -/*Enable/Disable test mode force on SS no of steps*/ +/* +* Enable/Disable test mode force on SS no of steps +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_SHIFT 5 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_FORCE_SS_NUM_OF_STEPS_MASK 0x00000020U -/*Enable test mode forcing on enable Spread Spectrum*/ +/* +* Enable test mode forcing on enable Spread Spectrum +*/ #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT #undef SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL 0x00000000 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT 7 -#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK 0x00000080U +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_DEFVAL 0x00000000 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_SHIFT 7 +#define SERDES_L3_PLL_SS_STEP_SIZE_3_MSB_TM_FORCE_EN_SS_MASK 0x00000080U -/*Bypass Descrambler*/ +/* +* Bypass Descrambler +*/ #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT #undef SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 -#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 +#define SERDES_L2_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U -/*Enable Bypass for <1> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <1> TM_DIG_CTRL_6 +*/ #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT #undef SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 -#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 +#define SERDES_L2_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U -/*Bypass scrambler signal*/ +/* +* Bypass scrambler signal +*/ #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT #undef SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 -#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 +#define SERDES_L2_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U -/*Enable/disable scrambler bypass signal*/ +/* +* Enable/disable scrambler bypass signal +*/ #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT #undef SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 -#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 +#define SERDES_L2_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U -/*Enable test mode force on fractional mode enable*/ +/* +* Enable test mode force on fractional mode enable +*/ #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT #undef SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL 0x00000000 -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT 6 -#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK 0x00000040U +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_DEFVAL 0x00000000 +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_SHIFT 6 +#define SERDES_L3_PLL_FBDIV_FRAC_3_MSB_TM_FORCE_EN_FRAC_MASK 0x00000040U -/*Bypass 8b10b decoder*/ +/* +* Bypass 8b10b decoder +*/ #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT #undef SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT 3 -#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK 0x00000008U +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_SHIFT 3 +#define SERDES_L3_TM_DIG_6_BYPASS_DECODER_MASK 0x00000008U -/*Enable Bypass for <3> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <3> TM_DIG_CTRL_6 +*/ #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT 2 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK 0x00000004U +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_SHIFT 2 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DEC_MASK 0x00000004U -/*Bypass Descrambler*/ +/* +* Bypass Descrambler +*/ #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT #undef SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 -#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_SHIFT 1 +#define SERDES_L3_TM_DIG_6_BYPASS_DESCRAM_MASK 0x00000002U -/*Enable Bypass for <1> TM_DIG_CTRL_6*/ +/* +* Enable Bypass for <1> TM_DIG_CTRL_6 +*/ #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT #undef SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 -#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_SHIFT 0 +#define SERDES_L3_TM_DIG_6_FORCE_BYPASS_DESCRAM_MASK 0x00000001U -/*Enable/disable encoder bypass signal*/ +/* +* Enable/disable encoder bypass signal +*/ #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT #undef SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT 3 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK 0x00000008U +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_SHIFT 3 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_ENC_MASK 0x00000008U -/*Bypass scrambler signal*/ +/* +* Bypass scrambler signal +*/ #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT #undef SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 -#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_SHIFT 1 +#define SERDES_L3_TX_DIG_TM_61_BYPASS_SCRAM_MASK 0x00000002U -/*Enable/disable scrambler bypass signal*/ +/* +* Enable/disable scrambler bypass signal +*/ #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT #undef SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 -#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_DEFVAL 0x00000000 +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_SHIFT 0 +#define SERDES_L3_TX_DIG_TM_61_FORCE_BYPASS_SCRAM_MASK 0x00000001U -/*PHY Mode: 4'b000 - PCIe, 4'b001 - USB3, 4'b0010 - SATA, 4'b0100 - SGMII, 4'b0101 - DP, 4'b1000 - MPHY*/ -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_DEFVAL -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT -#undef SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_DEFVAL 0x00000001 -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_SHIFT 4 -#define SERDES_L3_TXPMA_ST_0_TX_PHY_MODE_MASK 0x000000F0U - -/*Spare- not used*/ +/* +* Spare- not used +*/ #undef SERDES_L0_TM_AUX_0_BIT_2_DEFVAL #undef SERDES_L0_TM_AUX_0_BIT_2_SHIFT #undef SERDES_L0_TM_AUX_0_BIT_2_MASK -#define SERDES_L0_TM_AUX_0_BIT_2_DEFVAL 0x00000000 -#define SERDES_L0_TM_AUX_0_BIT_2_SHIFT 5 -#define SERDES_L0_TM_AUX_0_BIT_2_MASK 0x00000020U +#define SERDES_L0_TM_AUX_0_BIT_2_DEFVAL 0x00000000 +#define SERDES_L0_TM_AUX_0_BIT_2_SHIFT 5 +#define SERDES_L0_TM_AUX_0_BIT_2_MASK 0x00000020U -/*Spare- not used*/ +/* +* Spare- not used +*/ #undef SERDES_L2_TM_AUX_0_BIT_2_DEFVAL #undef SERDES_L2_TM_AUX_0_BIT_2_SHIFT #undef SERDES_L2_TM_AUX_0_BIT_2_MASK -#define SERDES_L2_TM_AUX_0_BIT_2_DEFVAL 0x00000000 -#define SERDES_L2_TM_AUX_0_BIT_2_SHIFT 5 -#define SERDES_L2_TM_AUX_0_BIT_2_MASK 0x00000020U +#define SERDES_L2_TM_AUX_0_BIT_2_DEFVAL 0x00000000 +#define SERDES_L2_TM_AUX_0_BIT_2_SHIFT 5 +#define SERDES_L2_TM_AUX_0_BIT_2_MASK 0x00000020U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L0_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L1_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L2_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*Enable Eye Surf*/ +/* +* Enable Eye Surf +*/ #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT #undef SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 -#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_DEFVAL 0x00000000 +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_SHIFT 4 +#define SERDES_L3_TM_DIG_8_EYESURF_ENABLE_MASK 0x00000010U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L0_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L0_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L0_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L0_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L0_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L0_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L0_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L0_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L0_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L0_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L1_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L2_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L2_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L2_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L2_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L2_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L2_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L2_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L2_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L2_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*ILL calib counts BYPASSED with calcode bits*/ +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L2_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U + +/* +* ILL calib counts BYPASSED with calcode bits +*/ #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT #undef SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 -#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_DEFVAL 0x00000000 +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_SHIFT 7 +#define SERDES_L3_TM_MISC2_ILL_CAL_BYPASS_COUNTS_MASK 0x00000080U -/*IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* IQ ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , + * USB3 : SS +*/ #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT #undef SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL1_ILL_BYPASS_IQ_CALCODE_F0_MASK 0x000000FFU -/*IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* IQ ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT #undef SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL2_ILL_BYPASS_IQ_CALCODE_F1_MASK 0x000000FFU -/*G1A pll ctr bypass value*/ +/* +* G1A pll ctr bypass value +*/ #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT #undef SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 -#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_SHIFT 0 +#define SERDES_L3_TM_ILL12_G1A_PLL_CTR_BYP_VAL_MASK 0x000000FFU -/*E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , USB3 : SS*/ +/* +* E ILL F0 CALCODE bypass value. MPHY : G1a, PCIE : Gen 1, SATA : Gen1 , U + * SB3 : SS +*/ #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT #undef SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 -#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_SHIFT 0 +#define SERDES_L3_TM_E_ILL1_ILL_BYPASS_E_CALCODE_F0_MASK 0x000000FFU -/*E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2*/ +/* +* E ILL F1 CALCODE bypass value. MPHY : G1b, PCIE : Gen2, SATA: Gen2 +*/ #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT #undef SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 -#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_SHIFT 0 +#define SERDES_L3_TM_E_ILL2_ILL_BYPASS_E_CALCODE_F1_MASK 0x000000FFU -/*G2A_PCIe1 PLL ctr bypass value*/ +/* +* G2A_PCIe1 PLL ctr bypass value +*/ #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT #undef SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT 4 -#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK 0x000000F0U +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_SHIFT 4 +#define SERDES_L3_TM_ILL11_G2A_PCIEG1_PLL_CTR_11_8_BYP_VAL_MASK 0x000000F0U -/*IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* IQ ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT #undef SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL3_ILL_BYPASS_IQ_CALCODE_F2_MASK 0x000000FFU -/*E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3*/ +/* +* E ILL F2CALCODE bypass value. MPHY : G2a, SATA : Gen3 +*/ #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT #undef SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 -#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_SHIFT 0 +#define SERDES_L3_TM_E_ILL3_ILL_BYPASS_E_CALCODE_F2_MASK 0x000000FFU -/*ILL calibration code change wait time*/ +/* +* ILL calibration code change wait time +*/ #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT #undef SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 -#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_DEFVAL 0x00000002 +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_SHIFT 0 +#define SERDES_L3_TM_ILL8_ILL_CAL_ITER_WAIT_MASK 0x000000FFU -/*IQ ILL polytrim bypass value*/ +/* +* IQ ILL polytrim bypass value +*/ #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT #undef SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL8_ILL_BYPASS_IQ_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass IQ polytrim*/ +/* +* bypass IQ polytrim +*/ #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT #undef SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 -#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_SHIFT 0 +#define SERDES_L3_TM_IQ_ILL9_ILL_BYPASS_IQ_POLYTIM_MASK 0x00000001U -/*E ILL polytrim bypass value*/ +/* +* E ILL polytrim bypass value +*/ #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT #undef SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 -#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_SHIFT 0 +#define SERDES_L3_TM_E_ILL8_ILL_BYPASS_E_POLYTRIM_VAL_MASK 0x000000FFU -/*bypass E polytrim*/ +/* +* bypass E polytrim +*/ #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT #undef SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 -#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_DEFVAL 0x00000000 +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_SHIFT 0 +#define SERDES_L3_TM_E_ILL9_ILL_BYPASS_E_POLYTIM_MASK 0x00000001U -/*pre lock comma count threshold. 2'b 00 : 3, 2'b 01 : 5, 2'b 10 : 10, 2'b 11 : 20*/ -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_DEFVAL -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT -#undef SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_DEFVAL 0x00000000 -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_SHIFT 0 -#define SERDES_L0_TM_DIG_21_COMMA_PRE_LOCK_THRESH_MASK 0x00000003U +/* +* ILL cal idle val refcnt +*/ +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT +#undef SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_DEFVAL 0x00000001 +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_SHIFT 0 +#define SERDES_L3_TM_ILL13_ILL_CAL_IDLE_VAL_REFCNT_MASK 0x00000007U -/*CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001*/ +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT #undef SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 -#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L0_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU -/*Delay apb reset by specified amount*/ +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L1_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L2_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* CDR lock wait time. (1-16 us). cdr_lock_wait_time = 4'b xxxx + 4'b 0001 +*/ +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT +#undef SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_DEFVAL 0x00000001 +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_SHIFT 0 +#define SERDES_L3_TM_DIG_10_CDR_BIT_LOCK_TIME_MASK 0x0000000FU + +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L0_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L0_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L0_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L1_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L1_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L1_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L2_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L2_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L2_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Delay apb reset by specified amount*/ +/* +* Delay apb reset by specified amount +*/ #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT #undef SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT 0 -#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_DEFVAL 0x00000000 +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_SHIFT 0 +#define SERDES_L3_TM_RST_DLY_APB_RST_DLY_MASK 0x000000FFU -/*Enable Bypass for <7> of TM_ANA_BYPS_15*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_15 +*/ #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT #undef SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 -#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_DEFVAL 0x00000000 +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_SHIFT 6 +#define SERDES_L3_TM_ANA_BYP_15_FORCE_UPHY_ENABLE_LOW_LEAKAGE_MASK 0x00000040U -/*Enable Bypass for <7> of TM_ANA_BYPS_12*/ +/* +* Enable Bypass for <7> of TM_ANA_BYPS_12 +*/ #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT #undef SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 -#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_DEFVAL 0x00000000 +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_SHIFT 6 +#define SERDES_L3_TM_ANA_BYP_12_FORCE_UPHY_PSO_HSRXDIG_MASK 0x00000040U -/*Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unuse - , 7 - Unused*/ +/* +* CDR fast phase lock control +*/ +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L0_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L0_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L0_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L0_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L1_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L1_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L1_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L1_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L2_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L2_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L2_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L2_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* CDR fast phase lock control +*/ +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_DEFVAL +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_SHIFT +#undef SERDES_L3_TM_MISC3_CDR_EN_FPL_MASK +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_DEFVAL 0x00000003 +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_SHIFT 1 +#define SERDES_L3_TM_MISC3_CDR_EN_FPL_MASK 0x00000002U + +/* +* CDR fast frequency lock control +*/ +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_DEFVAL +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_SHIFT +#undef SERDES_L3_TM_MISC3_CDR_EN_FFL_MASK +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_DEFVAL 0x00000003 +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_SHIFT 0 +#define SERDES_L3_TM_MISC3_CDR_EN_FFL_MASK 0x00000001U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L0_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L1_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L2_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* Force EQ offset correction algo off if not forced on +*/ +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT +#undef SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_SHIFT 4 +#define SERDES_L3_TM_EQ11_FORCE_EQ_OFFS_OFF_MASK 0x00000010U + +/* +* For future use +*/ +#undef SIOU_ECO_0_FIELD_DEFVAL +#undef SIOU_ECO_0_FIELD_SHIFT +#undef SIOU_ECO_0_FIELD_MASK +#define SIOU_ECO_0_FIELD_DEFVAL +#define SIOU_ECO_0_FIELD_SHIFT 0 +#define SIOU_ECO_0_FIELD_MASK 0xFFFFFFFFU + +/* +* Controls UPHY Lane 0 protocol configuration. 0 - PowerDown, 1 - PCIe .0, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII0, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT #undef SERDES_ICM_CFG0_L0_ICM_CFG_MASK -#define SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT 0 -#define SERDES_ICM_CFG0_L0_ICM_CFG_MASK 0x00000007U +#define SERDES_ICM_CFG0_L0_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG0_L0_ICM_CFG_SHIFT 0 +#define SERDES_ICM_CFG0_L0_ICM_CFG_MASK 0x00000007U -/*Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 1 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata1, 3 - USB0, 4 - DP.0, 5 - SGMII1, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT #undef SERDES_ICM_CFG0_L1_ICM_CFG_MASK -#define SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT 4 -#define SERDES_ICM_CFG0_L1_ICM_CFG_MASK 0x00000070U +#define SERDES_ICM_CFG0_L1_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG0_L1_ICM_CFG_SHIFT 4 +#define SERDES_ICM_CFG0_L1_ICM_CFG_MASK 0x00000070U -/*Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 2 protocol configuration. 0 - PowerDown, 1 - PCIe.1, + * 2 - Sata0, 3 - USB0, 4 - DP.1, 5 - SGMII2, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT #undef SERDES_ICM_CFG1_L2_ICM_CFG_MASK -#define SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT 0 -#define SERDES_ICM_CFG1_L2_ICM_CFG_MASK 0x00000007U +#define SERDES_ICM_CFG1_L2_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG1_L2_ICM_CFG_SHIFT 0 +#define SERDES_ICM_CFG1_L2_ICM_CFG_MASK 0x00000007U -/*Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused - 7 - Unused*/ +/* +* Controls UPHY Lane 3 protocol configuration. 0 - PowerDown, 1 - PCIe.3, + * 2 - Sata1, 3 - USB1, 4 - DP.0, 5 - SGMII3, 6 - Unused, 7 - Unused +*/ #undef SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL #undef SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT #undef SERDES_ICM_CFG1_L3_ICM_CFG_MASK -#define SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL 0x00000000 -#define SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT 4 -#define SERDES_ICM_CFG1_L3_ICM_CFG_MASK 0x00000070U +#define SERDES_ICM_CFG1_L3_ICM_CFG_DEFVAL 0x00000000 +#define SERDES_ICM_CFG1_L3_ICM_CFG_SHIFT 4 +#define SERDES_ICM_CFG1_L3_ICM_CFG_MASK 0x00000070U -/*Enable/disable DP post2 path*/ +/* +* Enable/disable DP post2 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT 5 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK 0x00000020U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_SHIFT 5 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_POST2_PATH_MASK 0x00000020U -/*Override enable/disable of DP post2 path*/ +/* +* Override enable/disable of DP post2 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT 4 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK 0x00000010U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_SHIFT 4 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST2_PATH_MASK 0x00000010U -/*Override enable/disable of DP post1 path*/ +/* +* Override enable/disable of DP post1 path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT 2 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK 0x00000004U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_SHIFT 2 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_POST1_PATH_MASK 0x00000004U -/*Enable/disable DP main path*/ +/* +* Enable/disable DP main path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT 1 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK 0x00000002U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_SHIFT 1 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_DP_ENABLE_MAIN_PATH_MASK 0x00000002U -/*Override enable/disable of DP main path*/ +/* +* Override enable/disable of DP main path +*/ #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT #undef SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT 0 -#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK 0x00000001U +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_SHIFT 0 +#define SERDES_L1_TXPMD_TM_45_DP_TM_TX_OVRD_DP_ENABLE_MAIN_PATH_MASK 0x00000001U -/*Test register force for enabling/disablign TX deemphasis bits <17:0>*/ +/* +* Test register force for enabling/disablign TX deemphasis bits <17:0> +*/ #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT #undef SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 -#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 +#define SERDES_L1_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U -/*Test register force for enabling/disablign TX deemphasis bits <17:0>*/ +/* +* Test register force for enabling/disablign TX deemphasis bits <17:0> +*/ #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT #undef SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 -#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_DEFVAL 0x00000000 +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_SHIFT 0 +#define SERDES_L3_TX_ANA_TM_118_FORCE_TX_DEEMPH_17_0_MASK 0x00000001U -/*FPHL FSM accumulate cycles*/ +/* +* FPHL FSM accumulate cycles +*/ #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT #undef SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT 5 -#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK 0x000000E0U +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_SHIFT 5 +#define SERDES_L3_TM_CDR5_FPHL_FSM_ACC_CYCLES_MASK 0x000000E0U -/*FFL Phase0 int gain aka 2ol SD update rate*/ +/* +* FFL Phase0 int gain aka 2ol SD update rate +*/ #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT #undef SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT 0 -#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK 0x0000001FU +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_SHIFT 0 +#define SERDES_L3_TM_CDR5_FFL_PH0_INT_GAIN_MASK 0x0000001FU -/*FFL Phase0 prop gain aka 1ol SD update rate*/ +/* +* FFL Phase0 prop gain aka 1ol SD update rate +*/ #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT #undef SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL 0x00000000 -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT 0 -#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK 0x0000001FU +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_DEFVAL 0x00000000 +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_SHIFT 0 +#define SERDES_L3_TM_CDR16_FFL_PH0_PROP_GAIN_MASK 0x0000001FU -/*EQ stg 2 controls BYPASSED*/ +/* +* EQ stg 2 controls BYPASSED +*/ #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT #undef SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT 5 -#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK 0x00000020U +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_SHIFT 5 +#define SERDES_L3_TM_EQ0_EQ_STG2_CTRL_BYP_MASK 0x00000020U -/*EQ STG2 RL PROG*/ +/* +* EQ STG2 RL PROG +*/ #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT #undef SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT 0 -#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK 0x00000003U +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_SHIFT 0 +#define SERDES_L3_TM_EQ1_EQ_STG2_RL_PROG_MASK 0x00000003U -/*EQ stg 2 preamp mode val*/ +/* +* EQ stg 2 preamp mode val +*/ #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT #undef SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL 0x00000000 -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT 2 -#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK 0x00000004U +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_DEFVAL 0x00000000 +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_SHIFT 2 +#define SERDES_L3_TM_EQ1_EQ_STG2_PREAMP_MODE_VAL_MASK 0x00000004U -/*Margining factor value*/ +/* +* Margining factor value +*/ #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT #undef SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL 0x00000000 -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT 0 -#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK 0x0000001FU +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_DEFVAL 0x00000000 +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_SHIFT 0 +#define SERDES_L1_TXPMD_TM_48_TM_RESULTANT_MARGINING_FACTOR_MASK 0x0000001FU -/*pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved*/ +/* +* pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved +*/ #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT #undef SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 -#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 +#define SERDES_L1_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU -/*pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-emphasis, Others: reserved*/ +/* +* pipe_TX_Deemph. 0: -6dB de-emphasis, 1: -3.5dB de-emphasis, 2 : No de-em + * phasis, Others: reserved +*/ #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT #undef SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 -#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_DEFVAL 0x00000002 +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_SHIFT 0 +#define SERDES_L3_TX_ANA_TM_18_PIPE_TX_DEEMPH_7_0_MASK 0x000000FFU #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C -#undef USB3_0_FPD_POWER_PRSNT_OFFSET -#define USB3_0_FPD_POWER_PRSNT_OFFSET 0XFF9D0080 -#undef USB3_0_FPD_PIPE_CLK_OFFSET -#define USB3_0_FPD_PIPE_CLK_OFFSET 0XFF9D007C #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET @@ -26536,6 +34547,10 @@ #define USB3_0_XHCI_GUSB2PHYCFG_OFFSET 0XFE20C200 #undef USB3_0_XHCI_GFLADJ_OFFSET #define USB3_0_XHCI_GFLADJ_OFFSET 0XFE20C630 +#undef USB3_0_XHCI_GUCTL1_OFFSET +#define USB3_0_XHCI_GUCTL1_OFFSET 0XFE20C11C +#undef USB3_0_XHCI_GUCTL_OFFSET +#define USB3_0_XHCI_GUCTL_OFFSET 0XFE20C12C #undef PCIE_ATTRIB_ATTR_25_OFFSET #define PCIE_ATTRIB_ATTR_25_OFFSET 0XFD480064 #undef PCIE_ATTRIB_ATTR_7_OFFSET @@ -26626,6 +34641,8 @@ #define PCIE_ATTRIB_ATTR_35_OFFSET 0XFD48008C #undef CRF_APB_RST_FPD_TOP_OFFSET #define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef GPIO_MASK_DATA_1_LSW_OFFSET +#define GPIO_MASK_DATA_1_LSW_OFFSET 0XFF0A0008 #undef SATA_AHCI_VENDOR_PP2C_OFFSET #define SATA_AHCI_VENDOR_PP2C_OFFSET 0XFD0C00AC #undef SATA_AHCI_VENDOR_PP3C_OFFSET @@ -26635,1015 +34652,1462 @@ #undef SATA_AHCI_VENDOR_PP5C_OFFSET #define SATA_AHCI_VENDOR_PP5C_OFFSET 0XFD0C00B8 -/*USB 0 reset for control registers*/ +/* +* USB 0 reset for control registers +*/ #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U -/*This bit is used to choose between PIPE power present and 1'b1*/ -#undef USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL -#undef USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT -#undef USB3_0_FPD_POWER_PRSNT_OPTION_MASK -#define USB3_0_FPD_POWER_PRSNT_OPTION_DEFVAL -#define USB3_0_FPD_POWER_PRSNT_OPTION_SHIFT 0 -#define USB3_0_FPD_POWER_PRSNT_OPTION_MASK 0x00000001U - -/*This bit is used to choose between PIPE clock coming from SerDes and the suspend clk*/ -#undef USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL -#undef USB3_0_FPD_PIPE_CLK_OPTION_SHIFT -#undef USB3_0_FPD_PIPE_CLK_OPTION_MASK -#define USB3_0_FPD_PIPE_CLK_OPTION_DEFVAL -#define USB3_0_FPD_PIPE_CLK_OPTION_SHIFT 0 -#define USB3_0_FPD_PIPE_CLK_OPTION_MASK 0x00000001U - -/*USB 0 sleep circuit reset*/ +/* +* USB 0 sleep circuit reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U -/*USB 0 reset*/ +/* +* USB 0 reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U -/*GEM 3 reset*/ +/* +* GEM 3 reset +*/ #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U -/*Sata PM clock control select*/ +/* +* Sata PM clock control select +*/ #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT #undef SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT 0 -#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK 0x00000003U +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_DEFVAL +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_SHIFT 0 +#define SIOU_SATA_MISC_CTRL_SATA_PM_CLK_SEL_MASK 0x00000003U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U -/*Set to '1' to hold the GT in reset. Clear to release.*/ +/* +* Set to '1' to hold the GT in reset. Clear to release. +*/ #undef DP_DP_PHY_RESET_GT_RESET_DEFVAL #undef DP_DP_PHY_RESET_GT_RESET_SHIFT #undef DP_DP_PHY_RESET_GT_RESET_MASK -#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 -#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 -#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U +#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 +#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 +#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U -/*Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1*/ +/* +* Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 +*/ #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU -/*USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to - he Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). The following are the required values for the minimum S - C bus frequency of 60 MHz. USB turnaround time is a critical certification criteria when using long cables and five hub level - . The required values for this field: - 4'h5: When the MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit - UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround time is not critical, this field can be set to a larger - alue. Note: This field is valid only in device mode.*/ +/* +* USB 2.0 Turnaround Time (USBTrdTim) Sets the turnaround time in PHY cloc + * ks. Specifies the response time for a MAC request to the Packet FIFO Con + * troller (PFC) to fetch data from the DFIFO (SPRAM). The following are th + * e required values for the minimum SoC bus frequency of 60 MHz. USB turna + * round time is a critical certification criteria when using long cables a + * nd five hub levels. The required values for this field: - 4'h5: When the + * MAC interface is 16-bit UTMI+. - 4'h9: When the MAC interface is 8-bit + * UTMI+/ULPI. If SoC bus clock is less than 60 MHz, and USB turnaround tim + * e is not critical, this field can be set to a larger value. Note: This f + * ield is valid only in device mode. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT 10 -#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK 0x00003C00U +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_SHIFT 10 +#define USB3_0_XHCI_GUSB2PHYCFG_USBTRDTIM_MASK 0x00003C00U -/*Transceiver Delay: Enables a delay between the assertion of the UTMI/ULPI Transceiver Select signal (for HS) and the assertio - of the TxValid signal during a HS Chirp. When this bit is set to 1, a delay (of approximately 2.5 us) is introduced from the - time when the Transceiver Select is set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the chirp-K. This de - ay is required for some UTMI/ULPI PHYs. Note: - If you enable the hibernation feature when the device core comes out of power - off, you must re-initialize this bit with the appropriate value because the core does not save and restore this bit value dur - ng hibernation. - This bit is valid only in device mode.*/ +/* +* Transceiver Delay: Enables a delay between the assertion of the UTMI/ULP + * I Transceiver Select signal (for HS) and the assertion of the TxValid si + * gnal during a HS Chirp. When this bit is set to 1, a delay (of approxima + * tely 2.5 us) is introduced from the time when the Transceiver Select is + * set to 2'b00 (HS) to the time the TxValid is driven to 0 for sending the + * chirp-K. This delay is required for some UTMI/ULPI PHYs. Note: - If you + * enable the hibernation feature when the device core comes out of power- + * off, you must re-initialize this bit with the appropriate value because + * the core does not save and restore this bit value during hibernation. - + * This bit is valid only in device mode. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT 9 -#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK 0x00000200U +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_SHIFT 9 +#define USB3_0_XHCI_GUSB2PHYCFG_XCVRDLY_MASK 0x00000200U -/*Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application uses this bit to control utmi_sleep_n and utmi_l1_suspen - _n assertion to the PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is not transferre - to the external PHY. - 1'b1: utmi_sleep_n and utmi_l1_suspend_n assertion from the core is transferred to the external PHY. - ote: This bit must be set high for Port0 if PHY is used. Note: In Device mode - Before issuing any device endpoint command wh - n operating in 2.0 speeds, disable this bit and enable it after the command completes. Without disabling this bit, if a comma - d is issued when the device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get complet - d.*/ +/* +* Enable utmi_sleep_n and utmi_l1_suspend_n (EnblSlpM) The application use + * s this bit to control utmi_sleep_n and utmi_l1_suspend_n assertion to th + * e PHY in the L1 state. - 1'b0: utmi_sleep_n and utmi_l1_suspend_n assert + * ion from the core is not transferred to the external PHY. - 1'b1: utmi_s + * leep_n and utmi_l1_suspend_n assertion from the core is transferred to t + * he external PHY. Note: This bit must be set high for Port0 if PHY is use + * d. Note: In Device mode - Before issuing any device endpoint command whe + * n operating in 2.0 speeds, disable this bit and enable it after the comm + * and completes. Without disabling this bit, if a command is issued when t + * he device is in L1 state and if mac2_clk (utmi_clk/ulpi_clk) is gated of + * f, the command will not get completed. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT 8 -#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK 0x00000100U +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_SHIFT 8 +#define USB3_0_XHCI_GUSB2PHYCFG_ENBLSLPM_MASK 0x00000100U -/*USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select The application uses this bit to select a high-speed P - Y or a full-speed transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is always 0, with Write Only access. - - 'b1: USB 1.1 full-speed serial transceiver. This bit is always 1, with Write Only access. If both interface types are selecte - in coreConsultant (that is, parameters' values are not zero), the application uses this bit to select the active interface i - active, with Read-Write bit access. Note: USB 1.1 full-serial transceiver is not supported. This bit always reads as 1'b0.*/ +/* +* USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select T + * he application uses this bit to select a high-speed PHY or a full-speed + * transceiver. - 1'b0: USB 2.0 high-speed UTMI+ or ULPI PHY. This bit is a + * lways 0, with Write Only access. - 1'b1: USB 1.1 full-speed serial trans + * ceiver. This bit is always 1, with Write Only access. If both interface + * types are selected in coreConsultant (that is, parameters' values are no + * t zero), the application uses this bit to select the active interface is + * active, with Read-Write bit access. Note: USB 1.1 full-serial transceiv + * er is not supported. This bit always reads as 1'b0. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT 7 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK 0x00000080U +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_SHIFT 7 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYSEL_MASK 0x00000080U -/*Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select a unidirectional or bidirectional USB 1.1 - full-speed serial transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial interface. This bit is set to 0 with - ead Only access. - 1'b1: 3-pin bidirectional full-speed serial interface. This bit is set to 0 with Read Only access. Note: U - B 1.1 full-speed serial interface is not supported. This bit always reads as 1'b0.*/ +/* +* Suspend USB2.0 HS/FS/LS PHY (SusPHY) When set, USB2.0 PHY enters Suspend + * mode if Suspend conditions are valid. For DRD/OTG configurations, it is + * recommended that this bit is set to 0 during coreConsultant configurati + * on. If it is set to 1, then the application must clear this bit after po + * wer-on reset. Application needs to set it to 1 after the core initializa + * tion completes. For all other configurations, this bit can be set to 1 d + * uring core configuration. Note: - In host mode, on reset, this bit is se + * t to 1. Software can override this bit after reset. - In device mode, be + * fore issuing any device endpoint command when operating in 2.0 speeds, d + * isable this bit and enable it after the command completes. If you issue + * a command without disabling this bit when the device is in L2 state and + * if mac2_clk (utmi_clk/ulpi_clk) is gated off, the command will not get c + * ompleted. +*/ +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_DEFVAL +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_SHIFT +#undef USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_MASK +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_SHIFT 6 +#define USB3_0_XHCI_GUSB2PHYCFG_SUSPENDUSB20_MASK 0x00000040U + +/* +* Full-Speed Serial Interface Select (FSIntf) The application uses this bi + * t to select a unidirectional or bidirectional USB 1.1 full-speed serial + * transceiver interface. - 1'b0: 6-pin unidirectional full-speed serial in + * terface. This bit is set to 0 with Read Only access. - 1'b1: 3-pin bidir + * ectional full-speed serial interface. This bit is set to 0 with Read Onl + * y access. Note: USB 1.1 full-speed serial interface is not supported. Th + * is bit always reads as 1'b0. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT 5 -#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK 0x00000020U +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_SHIFT 5 +#define USB3_0_XHCI_GUSB2PHYCFG_FSINTF_MASK 0x00000020U -/*ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interfa - e - 1'b1: ULPI Interface This bit is writable only if UTMI+ and ULPI is specified for High-Speed PHY Interface(s) in coreCons - ltant configuration (DWC_USB3_HSPHY_INTERFACE = 3). Otherwise, this bit is read-only and the value depends on the interface s - lected through DWC_USB3_HSPHY_INTERFACE.*/ +/* +* ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to se + * lect a UTMI+ or ULPI Interface. - 1'b0: UTMI+ Interface - 1'b1: ULPI Int + * erface This bit is writable only if UTMI+ and ULPI is specified for High + * -Speed PHY Interface(s) in coreConsultant configuration (DWC_USB3_HSPHY_ + * INTERFACE = 3). Otherwise, this bit is read-only and the value depends o + * n the interface selected through DWC_USB3_HSPHY_INTERFACE. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT 4 -#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK 0x00000010U +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_SHIFT 4 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPI_UTMI_SEL_MASK 0x00000010U -/*PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bit to configure the core to support a UTMI+ PHY with a - 8- or 16-bit interface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the enabled 2.0 ports must have the same - lock frequency as Port0 clock frequency (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used together for differen - ports at the same time (that is, all the ports must be in 8-bit mode, or all of them must be in 16-bit mode, at a time). - I - any of the USB 2.0 ports is selected as ULPI port for operation, then all the USB 2.0 ports must be operating at 60 MHz.*/ +/* +* PHY Interface (PHYIf) If UTMI+ is selected, the application uses this bi + * t to configure the core to support a UTMI+ PHY with an 8- or 16-bit inte + * rface. - 1'b0: 8 bits - 1'b1: 16 bits ULPI Mode: 1'b0 Note: - All the en + * abled 2.0 ports must have the same clock frequency as Port0 clock freque + * ncy (utmi_clk[0]). - The UTMI 8-bit and 16-bit modes cannot be used toge + * ther for different ports at the same time (that is, all the ports must b + * e in 8-bit mode, or all of them must be in 16-bit mode, at a time). - If + * any of the USB 2.0 ports is selected as ULPI port for operation, then a + * ll the USB 2.0 ports must be operating at 60 MHz. +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT 3 -#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK 0x00000008U +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_SHIFT 3 +#define USB3_0_XHCI_GUSB2PHYCFG_PHYIF_MASK 0x00000008U -/*HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicated by the application in this field, is multiplied by - a bit-time factor; this factor is added to the high-speed/full-speed interpacket timeout duration in the core to account for - dditional delays introduced by the PHY. This may be required, since the delay introduced by the PHY in generating the linesta - e condition may vary among PHYs. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. - The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this - ield based on the speed of connection. The number of bit times added per PHY clock are: High-speed operation: - One 30-MHz PH - clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One - 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times*/ +/* +* HS/FS Timeout Calibration (TOutCal) The number of PHY clocks, as indicat + * ed by the application in this field, is multiplied by a bit-time factor; + * this factor is added to the high-speed/full-speed interpacket timeout d + * uration in the core to account for additional delays introduced by the P + * HY. This may be required, since the delay introduced by the PHY in gener + * ating the linestate condition may vary among PHYs. The USB standard time + * out value for high-speed operation is 736 to 816 (inclusive) bit times. + * The USB standard timeout value for full-speed operation is 16 to 18 (inc + * lusive) bit times. The application must program this field based on the + * speed of connection. The number of bit times added per PHY clock are: Hi + * gh-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz P + * HY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0. + * 4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY cloc + * k = 0.25 bit times +*/ #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT #undef USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL 0x00000000 -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT 0 -#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK 0x00000007U +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_SHIFT 0 +#define USB3_0_XHCI_GUSB2PHYCFG_TOUTCAL_MASK 0x00000007U -/*This field indicates the frame length adjustment to be applied when SOF/ITP counter is running on the ref_clk. This register - alue is used to adjust the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP interval when GLADJ.GFLADJ_REFCLK_LP - _SEL is set to '1'. This field must be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set to '1' or GCTL.SOF - TPSYNC is set to '1'. The value is derived as follows: FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_p - riod)) * ref_clk_period where - the ref_clk_period_integer is the integer value of the ref_clk period got by truncating the d - cimal (fractional) value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_clk_period is the ref_clk period inc - uding the fractional value. Examples: If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLADJ_REFCLK_FLADJ = - ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignoring the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_P - RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*20.8333 = 5208 (ignoring the fractional value)*/ +/* +* ULPI External VBUS Drive (ULPIExtVbusDrv) Selects supply source to drive + * 5V on VBUS, in the ULPI PHY. - 1'b0: PHY drives VBUS with internal char + * ge pump (default). - 1'b1: PHY drives VBUS with an external supply. (Onl + * y when RTL parameter DWC_USB3_HSPHY_INTERFACE = 2 or 3) +*/ +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_DEFVAL +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_SHIFT +#undef USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_MASK +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_SHIFT 17 +#define USB3_0_XHCI_GUSB2PHYCFG_ULPIEXTVBUSDRV_MASK 0x00020000U + +/* +* This field indicates the frame length adjustment to be applied when SOF/ + * ITP counter is running on the ref_clk. This register value is used to ad + * just the ITP interval when GCTL[SOFITPSYNC] is set to '1'; SOF and ITP i + * nterval when GLADJ.GFLADJ_REFCLK_LPM_SEL is set to '1'. This field must + * be programmed to a non-zero value only if GFLADJ_REFCLK_LPM_SEL is set t + * o '1' or GCTL.SOFITPSYNC is set to '1'. The value is derived as follows: + * FLADJ_REF_CLK_FLADJ=((125000/ref_clk_period_integer)-(125000/ref_clk_pe + * riod)) * ref_clk_period where - the ref_clk_period_integer is the intege + * r value of the ref_clk period got by truncating the decimal (fractional) + * value that is programmed in the GUCTL.REF_CLK_PERIOD field. - the ref_c + * lk_period is the ref_clk period including the fractional value. Examples + * : If the ref_clk is 24 MHz then - GUCTL.REF_CLK_PERIOD = 41 - GFLADJ.GLA + * DJ_REFCLK_FLADJ = ((125000/41)-(125000/41.6666))*41.6666 = 2032 (ignorin + * g the fractional value) If the ref_clk is 48 MHz then - GUCTL.REF_CLK_PE + * RIOD = 20 - GFLADJ.GLADJ_REFCLK_FLADJ = ((125000/20)-(125000/20.8333))*2 + * 0.8333 = 5208 (ignoring the fractional value) +*/ #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT #undef USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL 0x00000000 -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT 8 -#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK 0x003FFF00U +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_DEFVAL 0x00000000 +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_SHIFT 8 +#define USB3_0_XHCI_GFLADJ_GFLADJ_REFCLK_FLADJ_MASK 0x003FFF00U -/*If TRUE Completion Timeout Disable is supported. This is required to be TRUE for Endpoint and either setting allowed for Root - ports. Drives Device Capability 2 [4]; EP=0x0001; RP=0x0001*/ +/* +* When this bit is set to '0', termsel, xcvrsel will become 0 during end o + * f resume while the opmode will become 0 once controller completes end of + * resume and enters U0 state (2 separate commandswill be issued). When th + * is bit is set to '1', all the termsel, xcvrsel, opmode becomes 0 during + * end of resume itself (only 1 command will be issued) +*/ +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_DEFVAL +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_SHIFT +#undef USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_MASK +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_SHIFT 10 +#define USB3_0_XHCI_GUCTL1_RESUME_TERMSEL_XCVRSEL_UNIFY_MASK 0x00000400U + +/* +* Reserved +*/ +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_DEFVAL +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_SHIFT +#undef USB3_0_XHCI_GUCTL1_RESERVED_9_MASK +#define USB3_0_XHCI_GUCTL1_RESERVED_9_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL1_RESERVED_9_SHIFT 9 +#define USB3_0_XHCI_GUCTL1_RESERVED_9_MASK 0x00000200U + +/* +* Host IN Auto Retry (USBHstInAutoRetryEn) When set, this field enables th + * e Auto Retry feature. For IN transfers (non-isochronous) that encounter + * data packets with CRC errors or internal overrun scenarios, the auto ret + * ry feature causes the Host core to reply to the device with a non-termin + * ating retry ACK (that is, an ACK transaction packet with Retry = 1 and N + * umP != 0). If the Auto Retry feature is disabled (default), the core wil + * l respond with a terminating retry ACK (that is, an ACK transaction pack + * et with Retry = 1 and NumP = 0). - 1'b0: Auto Retry Disabled - 1'b1: Aut + * o Retry Enabled Note: This bit is also applicable to the device mode. +*/ +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_DEFVAL +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_SHIFT +#undef USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_MASK +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_DEFVAL 0x00000000 +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_SHIFT 14 +#define USB3_0_XHCI_GUCTL_USBHSTINAUTORETRYEN_MASK 0x00004000U + +/* +* If TRUE Completion Timeout Disable is supported. This is required to be + * TRUE for Endpoint and either setting allowed for Root ports. Drives Devi + * ce Capability 2 [4]; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT 9 -#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_SHIFT 9 +#define PCIE_ATTRIB_ATTR_25_ATTR_CPL_TIMEOUT_DISABLE_SUPPORTED_MASK 0x00000200U -/*Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0x0004; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0x0004; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT #undef PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT 0 -#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_DEFVAL +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_SHIFT 0 +#define PCIE_ATTRIB_ATTR_7_ATTR_BAR0_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not to be implemented, set to 32'h00000000. Bits are def - ned as follows: Memory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = - Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory a - erture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator - set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o apert - re size in bytes.; EP=0xFFF0; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 0. If BAR is not + * to be implemented, set to 32'h00000000. Bits are defined as follows: Me + * mory Space BAR [0] = Mem Space Indicator (set to 0) [2:1] = Type field ( + * 10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask + * for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to 1, w + * here 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63: + * n bits of \'7bBAR1,BAR0\'7d to 1. IO Space BAR 0] = IO Space Indicator ( + * set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of B + * AR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; + * EP=0xFFF0; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT #undef PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT 0 -#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_DEFVAL +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_SHIFT 0 +#define PCIE_ATTRIB_ATTR_8_ATTR_BAR0_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT #undef PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT 0 -#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_DEFVAL +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_SHIFT 0 +#define PCIE_ATTRIB_ATTR_9_ATTR_BAR1_MASK 0x0000FFFFU -/*Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 32-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if - AR0 is a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR0 description if this functions as the uppe - bits of a 64-bit BAR. Bits are defined as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Space Indicator (set - o 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if - 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of - '7bBAR2,BAR1\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable b - ts of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* Specifies mask/settings for Base Address Register (BAR) 1 if BAR0 is a 3 + * 2-bit BAR, or the upper bits of \'7bBAR1,BAR0\'7d if BAR0 is a 64-bit BA + * R. If BAR is not to be implemented, set to 32'h00000000. See BAR0 descri + * ption if this functions as the upper bits of a 64-bit BAR. Bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR0) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) + * [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if + * 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size + * in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR2,BAR1\'7d t + * o 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set + * to 0) [31:2] = Mask for writable bits of BAR; set uppermost 31:n bits t + * o 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT #undef PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT 0 -#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_DEFVAL +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_SHIFT 0 +#define PCIE_ATTRIB_ATTR_10_ATTR_BAR1_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFFF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFFF +*/ #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT #undef PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT 0 -#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_DEFVAL +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_SHIFT 0 +#define PCIE_ATTRIB_ATTR_11_ATTR_BAR2_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7b - AR2,BAR1\'7d if BAR1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR1 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFFF. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR3,BAR2\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0x00FF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 2 if BAR1 is a 32-bit BAR, or the upper bits of \'7bBAR2,BAR1\'7d if BA + * R1 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR1 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to 00FF_FFF + * F. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR1) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR3,BAR2\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0x00FF +*/ #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT #undef PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT 0 -#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_DEFVAL +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_SHIFT 0 +#define PCIE_ATTRIB_ATTR_12_ATTR_BAR2_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0x0000*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT #undef PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT 0 -#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_DEFVAL +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_SHIFT 0 +#define PCIE_ATTRIB_ATTR_13_ATTR_BAR3_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7b - AR3,BAR2\'7d if BAR2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR2 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_0000 = IO Limit/Bas - Registers not implemented FFFF_F0F0 = IO Limit/Base Registers use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-b - t decode For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of BAR2) [0] = Mem Space Indicator (s - t to 0) [2:1] = Type field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; - if 32-bit BAR, set uppermost 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits - f \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writabl - bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFFF*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 3 if BAR2 is a 32-bit BAR, or the upper bits of \'7bBAR3,BAR2\'7d if BA + * R2 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR2 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: FFFF_00 + * 00 = IO Limit/Base Registers not implemented FFFF_F0F0 = IO Limit/Base R + * egisters use 16-bit decode FFFF_F1F1 = IO Limit/Base Registers use 32-bi + * t decode For an endpoint, bits are defined as follows: Memory Space BAR + * (not upper bits of BAR2) [0] = Mem Space Indicator (set to 0) [2:1] = Ty + * pe field (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31: + * 4] = Mask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bi + * ts to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set upp + * ermost 63:n bits of \'7bBAR4,BAR3\'7d to 1. IO Space BAR 0] = IO Space I + * ndicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable + * bits of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size + * in bytes.; EP=0xFFFF; RP=0xFFFF +*/ #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT #undef PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT 0 -#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_DEFVAL +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_SHIFT 0 +#define PCIE_ATTRIB_ATTR_14_ATTR_BAR3_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0x0004; RP=0xFFF0*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0x0004; RP=0xFFF0 +*/ #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT #undef PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT 0 -#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_DEFVAL +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_SHIFT 0 +#define PCIE_ATTRIB_ATTR_15_ATTR_BAR4_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7b - AR4,BAR3\'7d if BAR3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR3 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF0. For an endpoin - , bits are defined as follows: Memory Space BAR (not upper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fi - ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = Mask for writable bits of BAR; if 32-bit BAR, set uppe - most 31:n bits to 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost 63:n bits of \'7bBAR5,BAR4\'7d to - . IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set upper - ost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFF0; RP=0xFFF0*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 4 if BAR3 is a 32-bit BAR, or the upper bits of \'7bBAR4,BAR3\'7d if BA + * R3 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR3 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root: This must be set to FFF0_FFF + * 0. For an endpoint, bits are defined as follows: Memory Space BAR (not u + * pper bits of BAR3) [0] = Mem Space Indicator (set to 0) [2:1] = Type fie + * ld (10 for 64-bit, 00 for 32-bit) [3] = Prefetchable (0 or 1) [31:4] = M + * ask for writable bits of BAR; if 32-bit BAR, set uppermost 31:n bits to + * 1, where 2^n=memory aperture size in bytes. If 64-bit BAR, set uppermost + * 63:n bits of \'7bBAR5,BAR4\'7d to 1. IO Space BAR 0] = IO Space Indicat + * or (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits + * of BAR; set uppermost 31:n bits to 1, where 2^n=i/o aperture size in byt + * es.; EP=0xFFF0; RP=0xFFF0 +*/ #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT #undef PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT 0 -#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_DEFVAL +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_SHIFT 0 +#define PCIE_ATTRIB_ATTR_16_ATTR_BAR4_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 +*/ #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT #undef PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT 0 -#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_DEFVAL +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_SHIFT 0 +#define PCIE_ATTRIB_ATTR_17_ATTR_BAR5_MASK 0x0000FFFFU -/*For an endpoint, specifies mask/settings for Base Address Register (BAR) 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7b - AR5,BAR4\'7d if BAR4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, set to 32'h00000000. See BAR4 descri - tion if this functions as the upper bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_0000 = Prefetchable - Memory Limit/Base Registers not implemented FFF0_FFF0 = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit - refetchable Memory Limit/Base implemented For an endpoint, bits are defined as follows: Memory Space BAR (not upper bits of B - R4) [0] = Mem Space Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be lower part of a 64-bit BAR) [3] = - refetchable (0 or 1) [31:4] = Mask for writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory aperture size in - ytes. IO Space BAR 0] = IO Space Indicator (set to 1) [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set u - permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF; RP=0xFFF1*/ +/* +* For an endpoint, specifies mask/settings for Base Address Register (BAR) + * 5 if BAR4 is a 32-bit BAR, or the upper bits of \'7bBAR5,BAR4\'7d if BA + * R4 is the lower part of a 64-bit BAR. If BAR is not to be implemented, s + * et to 32'h00000000. See BAR4 description if this functions as the upper + * bits of a 64-bit BAR. For a switch or root, this must be set to: 0000_00 + * 00 = Prefetchable Memory Limit/Base Registers not implemented FFF0_FFF0 + * = 32-bit Prefetchable Memory Limit/Base implemented FFF1_FFF1 = 64-bit P + * refetchable Memory Limit/Base implemented For an endpoint, bits are defi + * ned as follows: Memory Space BAR (not upper bits of BAR4) [0] = Mem Spac + * e Indicator (set to 0) [2:1] = Type field (00 for 32-bit; BAR5 cannot be + * lower part of a 64-bit BAR) [3] = Prefetchable (0 or 1) [31:4] = Mask f + * or writable bits of BAR; set uppermost 31:n bits to 1, where 2^n=memory + * aperture size in bytes. IO Space BAR 0] = IO Space Indicator (set to 1) + * [1] = Reserved (set to 0) [31:2] = Mask for writable bits of BAR; set up + * permost 31:n bits to 1, where 2^n=i/o aperture size in bytes.; EP=0xFFFF + * ; RP=0xFFF1 +*/ #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT #undef PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT 0 -#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_DEFVAL +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_SHIFT 0 +#define PCIE_ATTRIB_ATTR_18_ATTR_BAR5_MASK 0x0000FFFFU -/*Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1- 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred - to the Device Capabilities register. The values: 4-2048 bytes, 5- 4096 bytes are not supported; EP=0x0001; RP=0x0001*/ +/* +* Specifies maximum payload supported. Valid settings are: 0- 128 bytes, 1 + * - 256 bytes, 2- 512 bytes, 3- 1024 bytes. Transferred to the Device Capa + * bilities register. The values: 4-2048 bytes, 5- 4096 bytes are not suppo + * rted; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL 0x00002138 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT 8 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK 0x00000700U +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_DEFVAL 0x00002138 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_SHIFT 8 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_MAX_PAYLOAD_SUPPORTED_MASK 0x00000700U -/*Endpoint L1 Acceptable Latency. Records the latency that the endpoint can withstand on transitions from L1 state to L0 (if L1 - state supported). Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to 8us, 4h 8 to 16us, 5h 16 to 32us, 6 - 32 to 64us, 7h more than 64us. For Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000*/ +/* +* Endpoint L1 Acceptable Latency. Records the latency that the endpoint ca + * n withstand on transitions from L1 state to L0 (if L1 state supported). + * Valid settings are: 0h less than 1us, 1h 1 to 2us, 2h 2 to 4us, 3h 4 to + * 8us, 4h 8 to 16us, 5h 16 to 32us, 6h 32 to 64us, 7h more than 64us. For + * Endpoints only. Must be 0h for other devices.; EP=0x0007; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT #undef PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL 0x00002138 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT 3 -#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK 0x00000038U +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_DEFVAL 0x00002138 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_SHIFT 3 +#define PCIE_ATTRIB_ATTR_27_ATTR_DEV_CAP_ENDPOINT_L1_LATENCY_MASK 0x00000038U -/*Identifies the type of device/port as follows: 0000b PCI Express Endpoint device, 0001b Legacy PCI Express Endpoint device, 0 - 00b Root Port of PCI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110b Downstream Port of PCI Express Sw - tch, 0111b PCIE Express to PCI/PCI-X Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Express Capabilities r - gister. Must be consistent with IS_SWITCH and UPSTREAM_FACING settings.; EP=0x0000; RP=0x0004*/ +/* +* Identifies the type of device/port as follows: 0000b PCI Express Endpoin + * t device, 0001b Legacy PCI Express Endpoint device, 0100b Root Port of P + * CI Express Root Complex, 0101b Upstream Port of PCI Express Switch, 0110 + * b Downstream Port of PCI Express Switch, 0111b PCIE Express to PCI/PCI-X + * Bridge, 1000b PCI/PCI-X to PCI Express Bridge. Transferred to PCI Expre + * ss Capabilities register. Must be consistent with IS_SWITCH and UPSTREAM + * _FACING settings.; EP=0x0000; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL 0x00009C02 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT 4 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK 0x000000F0U +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_DEFVAL 0x00009C02 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_SHIFT 4 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_DEVICE_PORT_TYPE_MASK 0x000000F0U -/*PCIe Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capab - lity.; EP=0x009C; RP=0x0000*/ +/* +* PCIe Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x009C; + * RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL 0x00009C02 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT 8 -#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK 0x0000FF00U +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_DEFVAL 0x00009C02 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_SHIFT 8 +#define PCIE_ATTRIB_ATTR_50_ATTR_PCIE_CAP_NEXTPTR_MASK 0x0000FF00U -/*Number of credits that should be advertised for Completion data received on Virtual Channel 0. The bytes advertised must be l - ss than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD*/ +/* +* Number of credits that should be advertised for Completion data received + * on Virtual Channel 0. The bytes advertised must be less than or equal t + * o the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0172; RP=0x00CD +*/ #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT #undef PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_DEFVAL +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_105_ATTR_VC0_TOTAL_CREDITS_CD_MASK 0x000007FFU -/*Number of credits that should be advertised for Completion headers received on Virtual Channel 0. The sum of the posted, non - osted, and completion header credits must be <= 80; EP=0x0048; RP=0x0024*/ +/* +* Number of credits that should be advertised for Completion headers recei + * ved on Virtual Channel 0. The sum of the posted, non posted, and complet + * ion header credits must be <= 80; EP=0x0048; RP=0x0024 +*/ #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL 0x00000248 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK 0x0000007FU +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_DEFVAL 0x00000248 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_CH_MASK 0x0000007FU -/*Number of credits that should be advertised for Non-Posted headers received on Virtual Channel 0. The number of non posted da - a credits advertised by the block is equal to the number of non posted header credits. The sum of the posted, non posted, and - completion header credits must be <= 80; EP=0x0004; RP=0x000C*/ +/* +* Number of credits that should be advertised for Non-Posted headers recei + * ved on Virtual Channel 0. The number of non posted data credits advertis + * ed by the block is equal to the number of non posted header credits. The + * sum of the posted, non posted, and completion header credits must be <= + * 80; EP=0x0004; RP=0x000C +*/ #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT #undef PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL 0x00000248 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT 7 -#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK 0x00003F80U +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_DEFVAL 0x00000248 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_SHIFT 7 +#define PCIE_ATTRIB_ATTR_106_ATTR_VC0_TOTAL_CREDITS_NPH_MASK 0x00003F80U -/*Number of credits that should be advertised for Non-Posted data received on Virtual Channel 0. The number of non posted data - redits advertised by the block is equal to two times the number of non posted header credits if atomic operations are support - d or is equal to the number of non posted header credits if atomic operations are not supported. The bytes advertised must be - less than or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018*/ +/* +* Number of credits that should be advertised for Non-Posted data received + * on Virtual Channel 0. The number of non posted data credits advertised + * by the block is equal to two times the number of non posted header credi + * ts if atomic operations are supported or is equal to the number of non p + * osted header credits if atomic operations are not supported. The bytes a + * dvertised must be less than or equal to the bram bytes available. See VC + * 0_RX_RAM_LIMIT; EP=0x0008; RP=0x0018 +*/ #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT #undef PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_DEFVAL +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_107_ATTR_VC0_TOTAL_CREDITS_NPD_MASK 0x000007FFU -/*Number of credits that should be advertised for Posted data received on Virtual Channel 0. The bytes advertised must be less - han or equal to the bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5*/ +/* +* Number of credits that should be advertised for Posted data received on + * Virtual Channel 0. The bytes advertised must be less than or equal to th + * e bram bytes available. See VC0_RX_RAM_LIMIT; EP=0x0020; RP=0x00B5 +*/ #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT #undef PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT 0 -#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_DEFVAL +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_SHIFT 0 +#define PCIE_ATTRIB_ATTR_108_ATTR_VC0_TOTAL_CREDITS_PD_MASK 0x000007FFU -/*Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x00 - 0*/ +/* +* Not currently in use. Invert ECRC generated by block when trn_tecrc_gen_ + * n and trn_terrfwd_n are asserted.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT 15 -#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK 0x00008000U +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_SHIFT 15 +#define PCIE_ATTRIB_ATTR_109_ATTR_TECRC_EP_INV_MASK 0x00008000U -/*Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim TRUE == trim.; EP=0x0001; RP=0x0001*/ +/* +* Enables td bit clear and ECRC trim on received TLP's FALSE == don't trim + * TRUE == trim.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT 14 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK 0x00004000U +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_SHIFT 14 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_TRIM_MASK 0x00004000U -/*Enables ECRC check on received TLP's 0 == don't check 1 == always check 3 == check if enabled by ECRC check enable bit of AER - cap structure; EP=0x0003; RP=0x0003*/ +/* +* Enables ECRC check on received TLP's 0 == don't check 1 == always check + * 3 == check if enabled by ECRC check enable bit of AER cap structure; EP= + * 0x0003; RP=0x0003 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT 12 -#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK 0x00003000U +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_SHIFT 12 +#define PCIE_ATTRIB_ATTR_109_ATTR_RECRC_CHK_MASK 0x00003000U -/*Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). Calculated from max payload size supported and the n - mber of brams configured for transmit; EP=0x001C; RP=0x001C*/ +/* +* Index of last packet buffer used by TX TLM (i.e. number of buffers - 1). + * Calculated from max payload size supported and the number of brams conf + * igured for transmit; EP=0x001C; RP=0x001C +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT 7 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK 0x00000F80U +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_SHIFT 7 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TX_LASTPACKET_MASK 0x00000F80U -/*Number of credits that should be advertised for Posted headers received on Virtual Channel 0. The sum of the posted, non post - d, and completion header credits must be <= 80; EP=0x0004; RP=0x0020*/ +/* +* Number of credits that should be advertised for Posted headers received + * on Virtual Channel 0. The sum of the posted, non posted, and completion + * header credits must be <= 80; EP=0x0004; RP=0x0020 +*/ #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT #undef PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL 0x00007E04 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK 0x0000007FU +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_DEFVAL 0x00007E04 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_109_ATTR_VC0_TOTAL_CREDITS_PH_MASK 0x0000007FU -/*Specifies values to be transferred to Header Type register. Bit 7 should be set to '0' indicating single-function device. Bit - 0 identifies header as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; RP=0x0001*/ +/* +* Specifies values to be transferred to Header Type register. Bit 7 should + * be set to '0' indicating single-function device. Bit 0 identifies heade + * r as Type 0 or Type 1, with '0' indicating a Type 0 header.; EP=0x0000; + * RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT #undef PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL 0x00000100 -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_DEFVAL 0x00000100 +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_34_ATTR_HEADER_TYPE_MASK 0x000000FFU -/*PM Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabil - ty.; EP=0x0048; RP=0x0060*/ +/* +* PM Capability's Next Capability Offset pointer to the next item in the c + * apabilities list, or 00h if this is the final capability.; EP=0x0048; RP + * =0x0060 +*/ #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL 0x00003D48 -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT 0 -#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_DEFVAL 0x00003D48 +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_SHIFT 0 +#define PCIE_ATTRIB_ATTR_53_ATTR_PM_CAP_NEXTPTR_MASK 0x000000FFU -/*MSI Per-Vector Masking Capable. The value is transferred to the MSI Control Register[8]. When set, adds Mask and Pending Dwor - to Cap structure; EP=0x0000; RP=0x0000*/ +/* +* MSI Per-Vector Masking Capable. The value is transferred to the MSI Cont + * rol Register[8]. When set, adds Mask and Pending Dword to Cap structure; + * EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT 9 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_SHIFT 9 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_PER_VECTOR_MASKING_CAPABLE_MASK 0x00000200U -/*Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U -/*MSI Capability's Next Capability Offset pointer to the next item in the capabilities list, or 00h if this is the final capabi - ity.; EP=0x0060; RP=0x0000*/ +/* +* MSI Capability's Next Capability Offset pointer to the next item in the + * capabilities list, or 00h if this is the final capability.; EP=0x0060; R + * P=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT 0 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_SHIFT 0 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_NEXTPTR_MASK 0x000000FFU -/*Indicates that the MSI structures exists. If this is FALSE, then the MSI structure cannot be accessed via either the link or - he management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSI structures exists. If this is FALSE, then the MSI + * structure cannot be accessed via either the link or the management port + * .; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_DEFVAL 0x00000160 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_41_ATTR_MSI_CAP_ON_MASK 0x00000100U -/*Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b x4, 001000b x8.; EP=0x0004; RP=0x0004*/ +/* +* Maximum Link Width. Valid settings are: 000001b x1, 000010b x2, 000100b + * x4, 001000b x8.; EP=0x0004; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT #undef PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL 0x00000104 -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT 0 -#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK 0x0000003FU +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_DEFVAL 0x00000104 +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_SHIFT 0 +#define PCIE_ATTRIB_ATTR_97_ATTR_LINK_CAP_MAX_LINK_WIDTH_MASK 0x0000003FU -/*Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x00 - 4; RP=0x0004*/ +/* +* Used by LTSSM to set Maximum Link Width. Valid settings are: 000001b [x1 + * ], 000010b [x2], 000100b [x4], 001000b [x8].; EP=0x0004; RP=0x0004 +*/ #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT #undef PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL 0x00000104 -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT 6 -#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK 0x00000FC0U +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_DEFVAL 0x00000104 +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_SHIFT 6 +#define PCIE_ATTRIB_ATTR_97_ATTR_LTSSM_MAX_LINK_WIDTH_MASK 0x00000FC0U -/*TRUE specifies upstream-facing port. FALSE specifies downstream-facing port.; EP=0x0001; RP=0x0000*/ +/* +* TRUE specifies upstream-facing port. FALSE specifies downstream-facing p + * ort.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT #undef PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL 0x000000F0 -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT 6 -#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK 0x00000040U +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_DEFVAL 0x000000F0 +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_SHIFT 6 +#define PCIE_ATTRIB_ATTR_100_ATTR_UPSTREAM_FACING_MASK 0x00000040U -/*Enable the routing of message TLPs to the user through the TRN RX interface. A bit value of 1 enables routing of the message - LP to the user. Messages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 - ERR NONFATAL, Bit 2 - ERR FATAL, - Bit 3 - INTA Bit 4 - INTB, Bit 5 - INTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit 10 PME_Turn_Off; - EP=0x0000; RP=0x07FF*/ +/* +* Enable the routing of message TLPs to the user through the TRN RX interf + * ace. A bit value of 1 enables routing of the message TLP to the user. Me + * ssages are always decoded by the message decoder. Bit 0 - ERR COR, Bit 1 + * - ERR NONFATAL, Bit 2 - ERR FATAL, Bit 3 - INTA Bit 4 - INTB, Bit 5 - I + * NTC, Bit 6 - INTD, Bit 7 PM_PME, Bit 8 - PME_TO_ACK, Bit 9 - unlock, Bit + * 10 PME_Turn_Off; EP=0x0000; RP=0x07FF +*/ #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT #undef PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT 5 -#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK 0x0000FFE0U +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_SHIFT 5 +#define PCIE_ATTRIB_ATTR_101_ATTR_ENABLE_MSG_ROUTE_MASK 0x0000FFE0U -/*Disable BAR filtering. Does not change the behavior of the bar hit outputs; EP=0x0000; RP=0x0001*/ +/* +* Disable BAR filtering. Does not change the behavior of the bar hit outpu + * ts; EP=0x0000; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT #undef PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT 1 -#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK 0x00000002U +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_SHIFT 1 +#define PCIE_ATTRIB_ATTR_101_ATTR_DISABLE_BAR_FILTERING_MASK 0x00000002U -/*Link Bandwidth notification capability. Indicates support for the link bandwidth notification status and interrupt mechanism. - Required for Root.; EP=0x0000; RP=0x0001*/ +/* +* Link Bandwidth notification capability. Indicates support for the link b + * andwidth notification status and interrupt mechanism. Required for Root. + * ; EP=0x0000; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL 0x000009FF -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT 9 -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK 0x00000200U +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_DEFVAL 0x000009FF +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_SHIFT 9 +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP_MASK 0x00000200U -/*Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Optionality ECN. Transferred to the Link Capabilities r - gister.; EP=0x0001; RP=0x0001*/ +/* +* Sets the ASPM Optionality Compliance bit, to comply with the 2.1 ASPM Op + * tionality ECN. Transferred to the Link Capabilities register.; EP=0x0001 + * ; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT #undef PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL 0x000009FF -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT 14 -#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK 0x00004000U +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_DEFVAL 0x000009FF +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_SHIFT 14 +#define PCIE_ATTRIB_ATTR_37_ATTR_LINK_CAP_ASPM_OPTIONALITY_MASK 0x00004000U -/*Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value (or combined with the built-in value, depending on L - _REPLAY_TIMEOUT_FUNC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000*/ +/* +* Enables the Replay Timer to use the user-defined LL_REPLAY_TIMEOUT value + * (or combined with the built-in value, depending on LL_REPLAY_TIMEOUT_FU + * NC). If FALSE, the built-in value is used.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT 15 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK 0x00008000U +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_SHIFT 15 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_EN_MASK 0x00008000U -/*Sets a user-defined timeout for the Replay Timer to force cause the retransmission of unacknowledged TLPs; refer to LL_REPLAY - TIMEOUT_EN and LL_REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this attribute is in symbol times, which is - 4ns at GEN1 speeds and 2ns at GEN2.; EP=0x0000; RP=0x0000*/ +/* +* Sets a user-defined timeout for the Replay Timer to force cause the retr + * ansmission of unacknowledged TLPs; refer to LL_REPLAY_TIMEOUT_EN and LL_ + * REPLAY_TIMEOUT_FUNC to see how this value is used. The unit for this att + * ribute is in symbol times, which is 4ns at GEN1 speeds and 2ns at GEN2.; + * EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT #undef PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT 0 -#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK 0x00007FFFU +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_SHIFT 0 +#define PCIE_ATTRIB_ATTR_93_ATTR_LL_REPLAY_TIMEOUT_MASK 0x00007FFFU -/*Device ID for the the PCIe Cap Structure Device ID field*/ +/* +* Device ID for the the PCIe Cap Structure Device ID field +*/ #undef PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL #undef PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT #undef PCIE_ATTRIB_ID_CFG_DEV_ID_MASK -#define PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL 0x10EE7024 -#define PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT 0 -#define PCIE_ATTRIB_ID_CFG_DEV_ID_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ID_CFG_DEV_ID_DEFVAL 0x10EE7024 +#define PCIE_ATTRIB_ID_CFG_DEV_ID_SHIFT 0 +#define PCIE_ATTRIB_ID_CFG_DEV_ID_MASK 0x0000FFFFU -/*Vendor ID for the PCIe Cap Structure Vendor ID field*/ +/* +* Vendor ID for the PCIe Cap Structure Vendor ID field +*/ #undef PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL #undef PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT #undef PCIE_ATTRIB_ID_CFG_VEND_ID_MASK -#define PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL 0x10EE7024 -#define PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT 16 -#define PCIE_ATTRIB_ID_CFG_VEND_ID_MASK 0xFFFF0000U +#define PCIE_ATTRIB_ID_CFG_VEND_ID_DEFVAL 0x10EE7024 +#define PCIE_ATTRIB_ID_CFG_VEND_ID_SHIFT 16 +#define PCIE_ATTRIB_ID_CFG_VEND_ID_MASK 0xFFFF0000U -/*Subsystem ID for the the PCIe Cap Structure Subsystem ID field*/ +/* +* Subsystem ID for the the PCIe Cap Structure Subsystem ID field +*/ #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL 0x10EE0007 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT 0 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK 0x0000FFFFU +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_DEFVAL 0x10EE0007 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_SHIFT 0 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_ID_MASK 0x0000FFFFU -/*Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field*/ +/* +* Subsystem Vendor ID for the PCIe Cap Structure Subsystem Vendor ID field +*/ #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT #undef PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL 0x10EE0007 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT 16 -#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK 0xFFFF0000U +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_DEFVAL 0x10EE0007 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_SHIFT 16 +#define PCIE_ATTRIB_SUBSYS_ID_CFG_SUBSYS_VEND_ID_MASK 0xFFFF0000U -/*Revision ID for the the PCIe Cap Structure*/ +/* +* Revision ID for the the PCIe Cap Structure +*/ #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT #undef PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT 0 -#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK 0x000000FFU +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_DEFVAL +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_SHIFT 0 +#define PCIE_ATTRIB_REV_ID_CFG_REV_ID_MASK 0x000000FFU -/*Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 8000; RP=0x8000*/ +/* +* Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x8000; RP=0x8000 +*/ #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT #undef PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_DEFVAL +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_24_ATTR_CLASS_CODE_MASK 0x0000FFFFU -/*Code identifying basic function, subclass and applicable programming interface. Transferred to the Class Code register.; EP=0 - 0005; RP=0x0006*/ +/* +* Code identifying basic function, subclass and applicable programming int + * erface. Transferred to the Class Code register.; EP=0x0005; RP=0x0006 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK 0x000000FFU +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_25_ATTR_CLASS_CODE_MASK 0x000000FFU -/*INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] to be hardwired to 0.; EP=0x0001; RP=0x0001*/ +/* +* INTX Interrupt Generation Capable. If FALSE, this will cause Command[10] + * to be hardwired to 0.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT #undef PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL 0x00000905 -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT 8 -#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_DEFVAL 0x00000905 +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_SHIFT 8 +#define PCIE_ATTRIB_ATTR_25_ATTR_CMD_INTX_IMPLEMENTED_MASK 0x00000100U -/*Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001*/ +/* +* Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U -/*Indicates that the AER structures exists. If this is FALSE, then the AER structure cannot be accessed via either the link or - he management port, and AER will be considered to not be present for error management tasks (such as what types of error mess - ges are sent if an error is detected).; EP=0x0001; RP=0x0001*/ +/* +* Indicates that the AER structures exists. If this is FALSE, then the AER + * structure cannot be accessed via either the link or the management port + * , and AER will be considered to not be present for error management task + * s (such as what types of error messages are sent if an error is detected + * ).; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 -#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_DEFVAL 0x00001000 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_SHIFT 12 +#define PCIE_ATTRIB_ATTR_4_ATTR_AER_CAP_ON_MASK 0x00001000U -/*VSEC's Next Capability Offset pointer to the next item in the capabilities list, or 000h if this is the final capability.; EP - 0x0140; RP=0x0140*/ +/* +* VSEC's Next Capability Offset pointer to the next item in the capabiliti + * es list, or 000h if this is the final capability.; EP=0x0140; RP=0x0140 +*/ #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT #undef PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL 0x00002281 -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT 1 -#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK 0x00001FFEU +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_DEFVAL 0x00002281 +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_SHIFT 1 +#define PCIE_ATTRIB_ATTR_89_ATTR_VSEC_CAP_NEXTPTR_MASK 0x00001FFEU -/*CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the Root Capabilities register.; EP=0x0000; RP=0x0000*/ +/* +* CRS SW Visibility. Indicates RC can return CRS to SW. Transferred to the + * Root Capabilities register.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT #undef PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL 0x00000000 -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT 5 -#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK 0x00000020U +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_DEFVAL 0x00000000 +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_SHIFT 5 +#define PCIE_ATTRIB_ATTR_79_ATTR_ROOT_CAP_CRS_SW_VISIBILITY_MASK 0x00000020U -/*Indicates that the MSIX structures exists. If this is FALSE, then the MSIX structure cannot be accessed via either the link o - the management port.; EP=0x0001; RP=0x0000*/ +/* +* Indicates that the MSIX structures exists. If this is FALSE, then the MS + * IX structure cannot be accessed via either the link or the management po + * rt.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT #undef PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL 0x00000100 -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT 8 -#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK 0x00000100U +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_DEFVAL 0x00000100 +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_SHIFT 8 +#define PCIE_ATTRIB_ATTR_43_ATTR_MSIX_CAP_ON_MASK 0x00000100U -/*MSI-X Table Size. This value is transferred to the MSI-X Message Control[10:0] field. Set to 0 if MSI-X is not enabled. Note - hat the core does not implement the table; that must be implemented in user logic.; EP=0x0003; RP=0x0000*/ +/* +* MSI-X Table Size. This value is transferred to the MSI-X Message Control + * [10:0] field. Set to 0 if MSI-X is not enabled. Note that the core does + * not implement the table; that must be implemented in user logic.; EP=0x0 + * 003; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT #undef PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT 0 -#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK 0x000007FFU +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_DEFVAL +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_SHIFT 0 +#define PCIE_ATTRIB_ATTR_48_ATTR_MSIX_CAP_TABLE_SIZE_MASK 0x000007FFU -/*MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; - P=0x0000*/ +/* +* MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_46_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x0000FFFFU -/*MSI-X Table Offset. This value is transferred to the MSI-X Table Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0000; - P=0x0000*/ +/* +* MSI-X Table Offset. This value is transferred to the MSI-X Table Offset + * field. Set to 0 if MSI-X is not enabled.; EP=0x0000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x00001FFFU +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_47_ATTR_MSIX_CAP_TABLE_OFFSET_MASK 0x00001FFFU -/*MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x0001; RP=0x0000*/ +/* +* MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x0001; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 0 -#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFFFU +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 0 +#define PCIE_ATTRIB_ATTR_44_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFFFU -/*MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PBA Offset field. Set to 0 if MSI-X is not enabled.; EP - 0x1000; RP=0x0000*/ +/* +* MSI-X Pending Bit Array Offset This value is transferred to the MSI-X PB + * A Offset field. Set to 0 if MSI-X is not enabled.; EP=0x1000; RP=0x0000 +*/ #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT #undef PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL 0x00008000 -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 3 -#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFF8U +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_DEFVAL 0x00008000 +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_SHIFT 3 +#define PCIE_ATTRIB_ATTR_45_ATTR_MSIX_CAP_PBA_OFFSET_MASK 0x0000FFF8U -/*DT837748 Enable*/ +/* +* DT837748 Enable +*/ #undef PCIE_ATTRIB_CB_CB1_DEFVAL #undef PCIE_ATTRIB_CB_CB1_SHIFT #undef PCIE_ATTRIB_CB_CB1_MASK -#define PCIE_ATTRIB_CB_CB1_DEFVAL 0x00000001 -#define PCIE_ATTRIB_CB_CB1_SHIFT 1 -#define PCIE_ATTRIB_CB_CB1_MASK 0x00000002U +#define PCIE_ATTRIB_CB_CB1_DEFVAL 0x00000001 +#define PCIE_ATTRIB_CB_CB1_SHIFT 1 +#define PCIE_ATTRIB_CB_CB1_MASK 0x00000002U -/*Active State PM Support. Indicates the level of active state power management supported by the selected PCI Express Link, enc - ded as follows: 0 Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supported.; EP=0x0001; RP=0x0001*/ +/* +* Active State PM Support. Indicates the level of active state power manag + * ement supported by the selected PCI Express Link, encoded as follows: 0 + * Reserved, 1 L0s entry supported, 2 Reserved, 3 L0s and L1 entry supporte + * d.; EP=0x0001; RP=0x0001 +*/ #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT #undef PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL 0x00001FFD -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT 12 -#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK 0x00003000U +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_DEFVAL 0x00001FFD +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_SHIFT 12 +#define PCIE_ATTRIB_ATTR_35_ATTR_LINK_CAP_ASPM_SUPPORT_MASK 0x00003000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*Status Read value of PLL Lock*/ +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_SHIFT 16 +#define GPIO_MASK_DATA_1_LSW_MASK_1_LSW_MASK 0xFFFF0000U + +/* +* Operation is the same as MASK_DATA_0_LSW[DATA_0_LSW] +*/ +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT +#undef GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_SHIFT 0 +#define GPIO_MASK_DATA_1_LSW_DATA_1_LSW_MASK 0x0000FFFFU + +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L0_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L0_PLL_STATUS_READ_1_OFFSET 0XFD4023E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L1_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L1_PLL_STATUS_READ_1_OFFSET 0XFD4063E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L2_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L2_PLL_STATUS_READ_1_OFFSET 0XFD40A3E4 -/*Status Read value of PLL Lock*/ +/* +* Status Read value of PLL Lock +*/ #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT #undef SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 -#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_DEFVAL 0x00000001 +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_SHIFT 4 +#define SERDES_L3_PLL_STATUS_READ_1_PLL_LOCK_STATUS_READ_MASK 0x00000010U #define SERDES_L3_PLL_STATUS_READ_1_OFFSET 0XFD40E3E4 -/*CIBGMN: COMINIT Burst Gap Minimum.*/ +/* +* CIBGMN: COMINIT Burst Gap Minimum. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT 0 -#define SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_SHIFT 0 +#define SATA_AHCI_VENDOR_PP2C_CIBGMN_MASK 0x000000FFU -/*CIBGMX: COMINIT Burst Gap Maximum.*/ +/* +* CIBGMX: COMINIT Burst Gap Maximum. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT 8 -#define SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_SHIFT 8 +#define SATA_AHCI_VENDOR_PP2C_CIBGMX_MASK 0x0000FF00U -/*CIBGN: COMINIT Burst Gap Nominal.*/ +/* +* CIBGN: COMINIT Burst Gap Nominal. +*/ #undef SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CIBGN_MASK -#define SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT 16 -#define SATA_AHCI_VENDOR_PP2C_CIBGN_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP2C_CIBGN_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CIBGN_SHIFT 16 +#define SATA_AHCI_VENDOR_PP2C_CIBGN_MASK 0x00FF0000U -/*CINMP: COMINIT Negate Minimum Period.*/ +/* +* CINMP: COMINIT Negate Minimum Period. +*/ #undef SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL #undef SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT #undef SATA_AHCI_VENDOR_PP2C_CINMP_MASK -#define SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL 0x28184D1B -#define SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT 24 -#define SATA_AHCI_VENDOR_PP2C_CINMP_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP2C_CINMP_DEFVAL 0x28184D1B +#define SATA_AHCI_VENDOR_PP2C_CINMP_SHIFT 24 +#define SATA_AHCI_VENDOR_PP2C_CINMP_MASK 0xFF000000U -/*CWBGMN: COMWAKE Burst Gap Minimum.*/ +/* +* CWBGMN: COMWAKE Burst Gap Minimum. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT 0 -#define SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_SHIFT 0 +#define SATA_AHCI_VENDOR_PP3C_CWBGMN_MASK 0x000000FFU -/*CWBGMX: COMWAKE Burst Gap Maximum.*/ +/* +* CWBGMX: COMWAKE Burst Gap Maximum. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT 8 -#define SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_SHIFT 8 +#define SATA_AHCI_VENDOR_PP3C_CWBGMX_MASK 0x0000FF00U -/*CWBGN: COMWAKE Burst Gap Nominal.*/ +/* +* CWBGN: COMWAKE Burst Gap Nominal. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWBGN_MASK -#define SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT 16 -#define SATA_AHCI_VENDOR_PP3C_CWBGN_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP3C_CWBGN_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWBGN_SHIFT 16 +#define SATA_AHCI_VENDOR_PP3C_CWBGN_MASK 0x00FF0000U -/*CWNMP: COMWAKE Negate Minimum Period.*/ +/* +* CWNMP: COMWAKE Negate Minimum Period. +*/ #undef SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL #undef SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT #undef SATA_AHCI_VENDOR_PP3C_CWNMP_MASK -#define SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL 0x0E081906 -#define SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT 24 -#define SATA_AHCI_VENDOR_PP3C_CWNMP_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP3C_CWNMP_DEFVAL 0x0E081906 +#define SATA_AHCI_VENDOR_PP3C_CWNMP_SHIFT 24 +#define SATA_AHCI_VENDOR_PP3C_CWNMP_MASK 0xFF000000U -/*BMX: COM Burst Maximum.*/ +/* +* BMX: COM Burst Maximum. +*/ #undef SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_BMX_SHIFT #undef SATA_AHCI_VENDOR_PP4C_BMX_MASK -#define SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_BMX_SHIFT 0 -#define SATA_AHCI_VENDOR_PP4C_BMX_MASK 0x000000FFU +#define SATA_AHCI_VENDOR_PP4C_BMX_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_BMX_SHIFT 0 +#define SATA_AHCI_VENDOR_PP4C_BMX_MASK 0x000000FFU -/*BNM: COM Burst Nominal.*/ +/* +* BNM: COM Burst Nominal. +*/ #undef SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_BNM_SHIFT #undef SATA_AHCI_VENDOR_PP4C_BNM_MASK -#define SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_BNM_SHIFT 8 -#define SATA_AHCI_VENDOR_PP4C_BNM_MASK 0x0000FF00U +#define SATA_AHCI_VENDOR_PP4C_BNM_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_BNM_SHIFT 8 +#define SATA_AHCI_VENDOR_PP4C_BNM_MASK 0x0000FF00U -/*SFD: Signal Failure Detection, if the signal detection de-asserts for a time greater than this then the OOB detector will det - rmine this is a line idle and cause the PhyInit state machine to exit the Phy Ready State. A value of zero disables the Signa - Failure Detector. The value is based on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving a nominal time of - 500ns based on a 150MHz PMCLK.*/ +/* +* SFD: Signal Failure Detection, if the signal detection de-asserts for a + * time greater than this then the OOB detector will determine this is a li + * ne idle and cause the PhyInit state machine to exit the Phy Ready State. + * A value of zero disables the Signal Failure Detector. The value is base + * d on the OOB Detector Clock typically (PMCLK Clock Period) * SFD giving + * a nominal time of 500ns based on a 150MHz PMCLK. +*/ #undef SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_SFD_SHIFT #undef SATA_AHCI_VENDOR_PP4C_SFD_MASK -#define SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_SFD_SHIFT 16 -#define SATA_AHCI_VENDOR_PP4C_SFD_MASK 0x00FF0000U +#define SATA_AHCI_VENDOR_PP4C_SFD_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_SFD_SHIFT 16 +#define SATA_AHCI_VENDOR_PP4C_SFD_MASK 0x00FF0000U -/*PTST: Partial to Slumber timer value, specific delay the controller should apply while in partial before entering slumber. Th - value is bases on the system clock divided by 128, total delay = (Sys Clock Period) * PTST * 128*/ +/* +* PTST: Partial to Slumber timer value, specific delay the controller shou + * ld apply while in partial before entering slumber. The value is bases on + * the system clock divided by 128, total delay = (Sys Clock Period) * PTS + * T * 128 +*/ #undef SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL #undef SATA_AHCI_VENDOR_PP4C_PTST_SHIFT #undef SATA_AHCI_VENDOR_PP4C_PTST_MASK -#define SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL 0x064A0813 -#define SATA_AHCI_VENDOR_PP4C_PTST_SHIFT 24 -#define SATA_AHCI_VENDOR_PP4C_PTST_MASK 0xFF000000U +#define SATA_AHCI_VENDOR_PP4C_PTST_DEFVAL 0x064A0813 +#define SATA_AHCI_VENDOR_PP4C_PTST_SHIFT 24 +#define SATA_AHCI_VENDOR_PP4C_PTST_MASK 0xFF000000U -/*RIT: Retry Interval Timer. The calculated value divided by two, the lower digit of precision is not needed.*/ +/* +* RIT: Retry Interval Timer. The calculated value divided by two, the lowe + * r digit of precision is not needed. +*/ #undef SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL #undef SATA_AHCI_VENDOR_PP5C_RIT_SHIFT #undef SATA_AHCI_VENDOR_PP5C_RIT_MASK -#define SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL 0x3FFC96A4 -#define SATA_AHCI_VENDOR_PP5C_RIT_SHIFT 0 -#define SATA_AHCI_VENDOR_PP5C_RIT_MASK 0x000FFFFFU +#define SATA_AHCI_VENDOR_PP5C_RIT_DEFVAL 0x3FFC96A4 +#define SATA_AHCI_VENDOR_PP5C_RIT_SHIFT 0 +#define SATA_AHCI_VENDOR_PP5C_RIT_MASK 0x000FFFFFU -/*RCT: Rate Change Timer, a value based on the 54.2us for which a SATA device will transmit at a fixed rate ALIGNp after OOB ha - completed, for a fast SERDES it is suggested that this value be 54.2us / 4*/ +/* +* RCT: Rate Change Timer, a value based on the 54.2us for which a SATA dev + * ice will transmit at a fixed rate ALIGNp after OOB has completed, for a + * fast SERDES it is suggested that this value be 54.2us / 4 +*/ #undef SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL #undef SATA_AHCI_VENDOR_PP5C_RCT_SHIFT #undef SATA_AHCI_VENDOR_PP5C_RCT_MASK -#define SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL 0x3FFC96A4 -#define SATA_AHCI_VENDOR_PP5C_RCT_SHIFT 20 -#define SATA_AHCI_VENDOR_PP5C_RCT_MASK 0xFFF00000U +#define SATA_AHCI_VENDOR_PP5C_RCT_DEFVAL 0x3FFC96A4 +#define SATA_AHCI_VENDOR_PP5C_RCT_SHIFT 20 +#define SATA_AHCI_VENDOR_PP5C_RCT_MASK 0xFFF00000U #undef CRL_APB_RST_LPD_TOP_OFFSET #define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C #undef CRL_APB_RST_LPD_IOU0_OFFSET @@ -27659,123 +36123,252 @@ #undef CRF_APB_RST_FPD_TOP_OFFSET #define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 -/*USB 0 reset for control registers*/ +/* +* USB 0 reset for control registers +*/ #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 -#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_SHIFT 10 +#define CRL_APB_RST_LPD_TOP_USB0_APB_RESET_MASK 0x00000400U -/*USB 0 sleep circuit reset*/ +/* +* USB 0 sleep circuit reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 -#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_SHIFT 8 +#define CRL_APB_RST_LPD_TOP_USB0_HIBERRESET_MASK 0x00000100U -/*USB 0 reset*/ +/* +* USB 0 reset +*/ #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT #undef CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 -#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_SHIFT 6 +#define CRL_APB_RST_LPD_TOP_USB0_CORERESET_MASK 0x00000040U -/*GEM 3 reset*/ +/* +* GEM 3 reset +*/ #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT #undef CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 -#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_DEFVAL 0x0000000F +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_SHIFT 3 +#define CRL_APB_RST_LPD_IOU0_GEM3_RESET_MASK 0x00000008U -/*Sata block level reset*/ +/* +* Sata block level reset +*/ #undef CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_SATA_RESET_MASK -#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 -#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U +#define CRF_APB_RST_FPD_TOP_SATA_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_SATA_RESET_SHIFT 1 +#define CRF_APB_RST_FPD_TOP_SATA_RESET_MASK 0x00000002U -/*PCIE config reset*/ +/* +* PCIE config reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 -#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_SHIFT 19 +#define CRF_APB_RST_FPD_TOP_PCIE_CFG_RESET_MASK 0x00080000U -/*PCIE control block level reset*/ +/* +* PCIE control block level reset +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 -#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_SHIFT 17 +#define CRF_APB_RST_FPD_TOP_PCIE_CTRL_RESET_MASK 0x00020000U -/*PCIE bridge block level reset (AXI interface)*/ +/* +* PCIE bridge block level reset (AXI interface) +*/ #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 -#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_SHIFT 18 +#define CRF_APB_RST_FPD_TOP_PCIE_BRIDGE_RESET_MASK 0x00040000U -/*Two bits per lane. When set to 11, moves the GT to power down mode. When set to 00, GT will be in active state. bits [1:0] - - ane0 Bits [3:2] - lane 1*/ +/* +* Two bits per lane. When set to 11, moves the GT to power down mode. When + * set to 00, GT will be in active state. bits [1:0] - lane0 Bits [3:2] - + * lane 1 +*/ #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT #undef DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 -#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_DEFVAL 0x00000000 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_SHIFT 0 +#define DP_DP_TX_PHY_POWER_DOWN_POWER_DWN_MASK 0x0000000FU -/*Set to '1' to hold the GT in reset. Clear to release.*/ +/* +* Set to '1' to hold the GT in reset. Clear to release. +*/ #undef DP_DP_PHY_RESET_GT_RESET_DEFVAL #undef DP_DP_PHY_RESET_GT_RESET_SHIFT #undef DP_DP_PHY_RESET_GT_RESET_MASK -#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 -#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 -#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U +#define DP_DP_PHY_RESET_GT_RESET_DEFVAL 0x00010003 +#define DP_DP_PHY_RESET_GT_RESET_SHIFT 1 +#define DP_DP_PHY_RESET_GT_RESET_MASK 0x00000002U -/*Display Port block level reset (includes DPDMA)*/ +/* +* Display Port block level reset (includes DPDMA) +*/ #undef CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL #undef CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT #undef CRF_APB_RST_FPD_TOP_DP_RESET_MASK -#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE -#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 -#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U +#define CRF_APB_RST_FPD_TOP_DP_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_DP_RESET_SHIFT 16 +#define CRF_APB_RST_FPD_TOP_DP_RESET_MASK 0x00010000U #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET #define PMU_GLOBAL_REQ_PWRUP_INT_EN_OFFSET 0XFFD80118 #undef PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET #define PMU_GLOBAL_REQ_PWRUP_TRIG_OFFSET 0XFFD80120 -/*Power-up Request Interrupt Enable for PL*/ +/* +* Power-up Request Interrupt Enable for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_INT_EN_PL_MASK 0x00800000U -/*Power-up Request Trigger for PL*/ +/* +* Power-up Request Trigger for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_TRIG_PL_MASK 0x00800000U -/*Power-up Request Status for PL*/ +/* +* Power-up Request Status for PL +*/ #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT #undef PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL 0x00000000 -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT 23 -#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK 0x00800000U +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_DEFVAL 0x00000000 +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_SHIFT 23 +#define PMU_GLOBAL_REQ_PWRUP_STATUS_PL_MASK 0x00800000U #define PMU_GLOBAL_REQ_PWRUP_STATUS_OFFSET 0XFFD80110 +#undef CRF_APB_RST_FPD_TOP_OFFSET +#define CRF_APB_RST_FPD_TOP_OFFSET 0XFD1A0100 +#undef CRL_APB_RST_LPD_TOP_OFFSET +#define CRL_APB_RST_LPD_TOP_OFFSET 0XFF5E023C +#undef FPD_SLCR_AFI_FS_OFFSET +#define FPD_SLCR_AFI_FS_OFFSET 0XFD615000 + +/* +* AF_FM0 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_SHIFT 7 +#define CRF_APB_RST_FPD_TOP_AFI_FM0_RESET_MASK 0x00000080U + +/* +* AF_FM1 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_SHIFT 8 +#define CRF_APB_RST_FPD_TOP_AFI_FM1_RESET_MASK 0x00000100U + +/* +* AF_FM2 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_SHIFT 9 +#define CRF_APB_RST_FPD_TOP_AFI_FM2_RESET_MASK 0x00000200U + +/* +* AF_FM3 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_SHIFT 10 +#define CRF_APB_RST_FPD_TOP_AFI_FM3_RESET_MASK 0x00000400U + +/* +* AF_FM4 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_SHIFT 11 +#define CRF_APB_RST_FPD_TOP_AFI_FM4_RESET_MASK 0x00000800U + +/* +* AF_FM5 block level reset +*/ +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_DEFVAL +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_SHIFT +#undef CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_MASK +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_DEFVAL 0x000F9FFE +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_SHIFT 12 +#define CRF_APB_RST_FPD_TOP_AFI_FM5_RESET_MASK 0x00001000U + +/* +* AFI FM 6 +*/ +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_DEFVAL +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_SHIFT +#undef CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_MASK +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_DEFVAL 0x00188FDF +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_SHIFT 19 +#define CRL_APB_RST_LPD_TOP_AFI_FM6_RESET_MASK 0x00080000U + +/* +* Select the 32/64/128-bit data width selection for the Slave 0 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved +*/ +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_DEFVAL +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_SHIFT +#undef FPD_SLCR_AFI_FS_DW_SS0_SEL_MASK +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_DEFVAL 0x00000A00 +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_SHIFT 8 +#define FPD_SLCR_AFI_FS_DW_SS0_SEL_MASK 0x00000300U + +/* +* Select the 32/64/128-bit data width selection for the Slave 1 00: 32-bit + * AXI data width (default) 01: 64-bit AXI data width 10: 128-bit AXI data + * width 11: reserved +*/ +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_DEFVAL +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_SHIFT +#undef FPD_SLCR_AFI_FS_DW_SS1_SEL_MASK +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_DEFVAL 0x00000A00 +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_SHIFT 10 +#define FPD_SLCR_AFI_FS_DW_SS1_SEL_MASK 0x00000C00U #undef GPIO_MASK_DATA_5_MSW_OFFSET #define GPIO_MASK_DATA_5_MSW_OFFSET 0XFF0A002C #undef GPIO_DIRM_5_OFFSET @@ -27789,53 +36382,65 @@ #undef GPIO_DATA_5_OFFSET #define GPIO_DATA_5_OFFSET 0XFF0A0054 -/*Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW]*/ +/* +* Operation is the same as MASK_DATA_0_LSW[MASK_0_LSW] +*/ #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT #undef GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL 0x00000000 -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT 16 -#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK 0xFFFF0000U +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_DEFVAL 0x00000000 +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_SHIFT 16 +#define GPIO_MASK_DATA_5_MSW_MASK_5_MSW_MASK 0xFFFF0000U -/*Operation is the same as DIRM_0[DIRECTION_0]*/ +/* +* Operation is the same as DIRM_0[DIRECTION_0] +*/ #undef GPIO_DIRM_5_DIRECTION_5_DEFVAL #undef GPIO_DIRM_5_DIRECTION_5_SHIFT #undef GPIO_DIRM_5_DIRECTION_5_MASK -#define GPIO_DIRM_5_DIRECTION_5_DEFVAL -#define GPIO_DIRM_5_DIRECTION_5_SHIFT 0 -#define GPIO_DIRM_5_DIRECTION_5_MASK 0xFFFFFFFFU +#define GPIO_DIRM_5_DIRECTION_5_DEFVAL +#define GPIO_DIRM_5_DIRECTION_5_SHIFT 0 +#define GPIO_DIRM_5_DIRECTION_5_MASK 0xFFFFFFFFU -/*Operation is the same as OEN_0[OP_ENABLE_0]*/ +/* +* Operation is the same as OEN_0[OP_ENABLE_0] +*/ #undef GPIO_OEN_5_OP_ENABLE_5_DEFVAL #undef GPIO_OEN_5_OP_ENABLE_5_SHIFT #undef GPIO_OEN_5_OP_ENABLE_5_MASK -#define GPIO_OEN_5_OP_ENABLE_5_DEFVAL -#define GPIO_OEN_5_OP_ENABLE_5_SHIFT 0 -#define GPIO_OEN_5_OP_ENABLE_5_MASK 0xFFFFFFFFU +#define GPIO_OEN_5_OP_ENABLE_5_DEFVAL +#define GPIO_OEN_5_OP_ENABLE_5_SHIFT 0 +#define GPIO_OEN_5_OP_ENABLE_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU -/*Output Data*/ +/* +* Output Data +*/ #undef GPIO_DATA_5_DATA_5_DEFVAL #undef GPIO_DATA_5_DATA_5_SHIFT #undef GPIO_DATA_5_DATA_5_MASK -#define GPIO_DATA_5_DATA_5_DEFVAL -#define GPIO_DATA_5_DATA_5_SHIFT 0 -#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU +#define GPIO_DATA_5_DATA_5_DEFVAL +#define GPIO_DATA_5_DATA_5_SHIFT 0 +#define GPIO_DATA_5_DATA_5_MASK 0xFFFFFFFFU #ifdef __cplusplus extern "C" { #endif @@ -27848,6 +36453,7 @@ extern "C" { int psu_ddr_protection(); int psu_lpd_protection(); int psu_protection_lock(); + unsigned long psu_ddr_qos_init_data(void); unsigned long psu_apply_master_tz(); #ifdef __cplusplus } diff --git a/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/system.hdf b/FreeRTOS/Demo/CORTEX_R5_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/system.hdf index 01f63760595e17790977e02fadedd4c4d2167ed7..8502f0d4b18de1b29ef091e250216543653894f9 100644 GIT binary patch literal 830291 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%0Al8wBX00PBk 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

      ReT>y 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

      24G!+1ek<>*JzDI#81khm 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%0D#pG$$*C6b^3i(fO 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%0AhF4Y=It@bznDpN?4!Ls+ZWoydw_~cEBe0 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

    qd_5(4u>@QqLvNNxB)bLoKd@6W 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 !I(c^>*5^d76y1@t-K>Ta$ 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

    t|(W{zsO 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

    dKO%pEJ9(tzt!8r_{~MP; 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

    !M>MCcOB%Xo$AlNprfIiU$3!ZOOB#H*%XeK^ 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�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
    45FGQQO_rt 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

      6?3LU){3`F^KFzFITt@_I%h%B%qe*6jc-dTjf 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 literal 867807 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

      eCnNYl-(#_p+&en(p~OjZwt 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 z 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

24G!+1ek<>*JzDI#81khm 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%0D#pG$$*C6b^3i(fO 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�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
45FGQQO_rt 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